:root{
    --navy-950:#050c19;
    --navy-900:#0a1730;
    --navy-800:#122444;
    --navy-700:#1b3560;
    --navy-600:#2a4a80;
    --gold:#c9a227;
    --gold-light:#e8c65c;
    --gold-dark:#8f6f16;
    --paper:#ffffff;
    --paper-dim:#f4f5f7;
    --line:#e2e6ec;
    --ink:#0a1730;
    --ink-soft:#4a5468;
    --white:#ffffff;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:'Inter',sans-serif;
    font-size:16px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,.display{
    font-family:'Fraunces',serif;
    font-weight:600;
    letter-spacing:-0.01em;
    margin:0;
  }
  .mono{
    font-family:'JetBrains Mono',monospace;
    letter-spacing:0.03em;
  }
  a{color:inherit;}
  img,svg{display:block;max-width:100%;}
  .wrap{
    max-width:1180px;
    margin:0 auto;
    padding:0 32px;
  }
  @media(max-width:640px){ .wrap{padding:0 20px;} }

  /* ---------- NAV ---------- */
  header.site{
    position:fixed;top:0;left:0;right:0;z-index:100;
    background:rgba(5,12,25,0.92);
    backdrop-filter:blur(8px);
    border-bottom:1px solid rgba(201,162,39,0.18);
  }
  nav.wrap{
    display:flex;align-items:center;justify-content:space-between;
    height:72px;
  }
  .logo{
    color:var(--paper);
    display:flex;align-items:center;gap:12px;
    text-decoration:none;
  }
  .logo img{ height:34px;width:auto; }
  .logo .wordmark{
    font-family:'Fraunces',serif;
    font-weight:600;
    font-size:1.12rem;
    letter-spacing:0.03em;
    color:var(--paper);
  }
  .logo .wordmark .dot{color:var(--gold-light);}
  nav.wrap ul{
    list-style:none;display:flex;gap:34px;margin:0;padding:0;
  }
  nav.wrap a.navlink{
    color:#c7cede;
    text-decoration:none;
    font-size:0.82rem;
    letter-spacing:0.06em;
    text-transform:uppercase;
    font-weight:500;
    transition:color 0.2s;
  }
  nav.wrap a.navlink:hover{color:var(--gold-light);}
  .navlinks{display:flex;align-items:center;}
  @media(max-width:760px){ .navlinks{display:none;} }
  .nav-cta{
    border:1px solid var(--gold);
    color:var(--gold-light) !important;
    padding:9px 18px;
    border-radius:2px;
    font-size:0.76rem !important;
  }
  .nav-cta:hover{ background:var(--gold); color:var(--navy-950) !important; }

  /* ---------- HERO ---------- */
  section.hero{
    background:
      radial-gradient(ellipse 700px 500px at 50% 8%, rgba(201,162,39,0.14), transparent 65%),
      linear-gradient(180deg, var(--navy-950) 0%, var(--navy-900) 60%, var(--navy-800) 100%);
    color:var(--paper);
    padding:168px 0 100px;
    position:relative;
    overflow:hidden;
    text-align:center;
  }
  .crest-holder{
    position:relative;
    width:220px;height:225px;
    margin:0 auto 30px;
  }
  .crest-holder img{
    width:100%;height:100%;object-fit:contain;
    position:relative;z-index:2;
    filter:drop-shadow(0 10px 30px rgba(201,162,39,0.25));
  }
  .crest-ring{
    position:absolute;
    border:1px solid rgba(201,162,39,0.35);
    border-radius:50%;
    top:50%;left:50%;
    transform:translate(-50%,-50%);
  }
  .crest-ring.r1{ width:260px;height:260px; animation:pulse-ring 4s ease-out infinite; }
  .crest-ring.r2{ width:330px;height:330px; animation:pulse-ring 4s ease-out infinite 1.3s; }
  .crest-ring.r3{ width:400px;height:400px; animation:pulse-ring 4s ease-out infinite 2.6s; }
  @keyframes pulse-ring{
    0%{ opacity:0.5; transform:translate(-50%,-50%) scale(0.85); }
    100%{ opacity:0; transform:translate(-50%,-50%) scale(1.08); }
  }

  .eyebrow{
    font-family:'JetBrains Mono',monospace;
    text-transform:uppercase;
    font-size:0.72rem;
    letter-spacing:0.16em;
    color:var(--gold-light);
    display:flex;align-items:center;justify-content:center;gap:10px;
    margin-bottom:24px;
  }
  .eyebrow::before, .eyebrow::after{
    content:"";
    width:26px;height:1px;
    background:var(--gold-light);
    display:inline-block;
  }
  .hero h1{
    font-size:clamp(2.3rem, 5vw, 3.5rem);
    line-height:1.08;
    color:var(--white);
    max-width:18ch;
    margin:0 auto;
  }
  .hero h1 em{
    font-style:italic;
    color:var(--gold-light);
    font-weight:500;
  }
  .hero p.lede{
    margin:24px auto 0;
    max-width:52ch;
    color:#c7cede;
    font-size:1.06rem;
  }
  .hero-ctas{
    margin-top:38px;
    display:flex;gap:14px;flex-wrap:wrap;
    justify-content:center;
  }
  .btn{
    display:inline-flex;align-items:center;gap:8px;
    padding:14px 26px;
    border-radius:2px;
    font-size:0.85rem;
    font-weight:600;
    letter-spacing:0.02em;
    text-decoration:none;
    border:1px solid transparent;
    cursor:pointer;
    transition:transform 0.15s ease, background 0.2s, border-color .2s, color .2s;
    font-family:'Inter',sans-serif;
  }
  .btn:hover{transform:translateY(-1px);}
  .btn-primary{
    background:var(--gold);
    color:var(--navy-950);
  }
  .btn-primary:hover{background:var(--gold-light);}
  .btn-ghost{
    border-color:rgba(255,255,255,0.3);
    color:var(--paper);
  }
  .btn-ghost:hover{border-color:var(--gold-light);color:var(--gold-light);}

  .ledger-strip{
    margin:64px auto 0;
    max-width:820px;
    display:flex;
    border-top:1px solid rgba(255,255,255,0.14);
    padding-top:24px;
    flex-wrap:wrap;
    justify-content:center;
  }
  .ledger-item{
    flex:1;min-width:140px;
    padding:0 22px;
    border-right:1px solid rgba(255,255,255,0.12);
  }
  .ledger-item:last-child{border-right:none;}
  .ledger-item .num{
    font-family:'JetBrains Mono',monospace;
    color:var(--gold-light);
    font-size:1.5rem;
    font-weight:600;
  }
  .ledger-item .label{
    font-size:0.72rem;
    text-transform:uppercase;
    letter-spacing:0.06em;
    color:#9aa5bc;
    margin-top:4px;
  }

  @media (prefers-reduced-motion: reduce){
    .crest-ring, .reveal{ animation:none !important; transition:none !important; }
  }

  /* ---------- INTRO ---------- */
  section.intro{
    background:var(--paper);
    padding:88px 0 44px;
  }
  .intro-grid{
    display:grid;grid-template-columns: 0.8fr 1.2fr;gap:60px;
  }
  @media(max-width:800px){ .intro-grid{grid-template-columns:1fr;gap:24px;} }
  .intro h2{
    font-size:clamp(1.6rem,3vw,2.1rem);
    color:var(--navy-900);
  }
  .intro p{color:var(--ink-soft);font-size:1.02rem;}

  /* ---------- SECTORS ---------- */
  section.sectors{
    background:var(--paper-dim);
    padding:76px 0 104px;
    border-top:1px solid var(--line);
    border-bottom:1px solid var(--line);
  }
  .section-head{
    display:flex;justify-content:space-between;align-items:flex-end;
    gap:24px;margin-bottom:44px;flex-wrap:wrap;
  }
  .section-head h2{
    font-size:clamp(1.8rem,3.4vw,2.4rem);
    color:var(--navy-900);
  }
  .section-head .note{
    max-width:34ch;
    color:var(--ink-soft);
    font-size:0.86rem;
  }
  .kicker{
    font-family:'JetBrains Mono',monospace;
    text-transform:uppercase;
    font-size:0.72rem;
    letter-spacing:0.14em;
    color:var(--gold-dark);
    margin-bottom:10px;
    display:block;
  }

  .manifest{
    display:grid;
    grid-template-columns:repeat(2, 1fr);
    gap:1px;
    background:var(--line);
    border:1px solid var(--line);
  }
  @media(max-width:800px){ .manifest{grid-template-columns:1fr;} }

  .card{
    background:var(--white);
    padding:36px 34px;
    opacity:0;
    transform:translateY(18px);
    transition:opacity 0.6s ease, transform 0.6s ease;
    border-top:2px solid transparent;
  }
  .card.in{ opacity:1; transform:translateY(0); }
  .card:hover{ border-top-color:var(--gold); }

  .card-top{
    display:flex;justify-content:space-between;align-items:flex-start;
    margin-bottom:14px;
    gap:12px;
  }
  .entry-code{
    font-family:'JetBrains Mono',monospace;
    font-size:0.72rem;
    color:var(--navy-600);
    letter-spacing:0.05em;
  }
  .exposure{
    display:flex;align-items:center;gap:6px;
    font-family:'JetBrains Mono',monospace;
    font-size:0.68rem;
    text-transform:uppercase;
    letter-spacing:0.05em;
    color:var(--ink-soft);
    white-space:nowrap;
  }
  .exposure .dot{
    width:7px;height:7px;border-radius:50%;
    display:inline-block;
  }
  .exp-low .dot{background:var(--navy-600);}
  .exp-mod .dot{background:var(--gold);}
  .exp-elevated .dot{background:var(--gold-dark);}

  .card h3{
    font-size:1.32rem;
    color:var(--navy-900);
    margin-bottom:12px;
  }
  .card p{
    color:var(--ink-soft);
    font-size:0.94rem;
    margin:0 0 12px;
  }
  .card .why{
    border-top:1px dashed var(--line);
    margin-top:14px;
    padding-top:14px;
  }
  .card .why .whylabel{
    font-family:'JetBrains Mono',monospace;
    font-size:0.68rem;
    text-transform:uppercase;
    letter-spacing:0.08em;
    color:var(--gold-dark);
    display:block;
    margin-bottom:6px;
  }

  /* ---------- CAVEATS ---------- */
  section.caveats{
    background:var(--navy-950);
    color:var(--paper);
    padding:96px 0;
    position:relative;
  }
  .declaration{
    background:var(--white);
    color:var(--ink);
    border:1px solid var(--line);
    padding:50px;
    position:relative;
    box-shadow:0 30px 70px rgba(0,0,0,0.4);
  }
  @media(max-width:640px){ .declaration{padding:32px 24px;} }
  .stamp{
    position:absolute;
    top:38px;right:42px;
    border:2px solid var(--gold-dark);
    color:var(--gold-dark);
    font-family:'JetBrains Mono',monospace;
    font-weight:600;
    font-size:0.7rem;
    letter-spacing:0.1em;
    text-transform:uppercase;
    padding:9px 16px;
    border-radius:3px;
    background:rgba(201,162,39,0.06);
  }
  @media(max-width:640px){ .stamp{position:static;display:inline-block;margin-bottom:20px;} }
  .declaration h2{
    color:var(--navy-900);
    font-size:clamp(1.6rem,3vw,2.1rem);
    max-width:20ch;
  }
  .declaration > p.intro-line{
    color:var(--ink-soft);
    max-width:70ch;
    margin:18px 0 32px;
  }
  .decl-list{
    display:grid;grid-template-columns:1fr 1fr;gap:0;
    border-top:1px solid var(--line);
  }
  @media(max-width:760px){ .decl-list{grid-template-columns:1fr;} }
  .decl-item{
    padding:24px 28px 24px 0;
    border-bottom:1px solid var(--line);
  }
  .decl-list .decl-item:nth-child(odd){
    border-right:1px solid var(--line);
    padding-right:28px;
  }
  @media(max-width:760px){ .decl-list .decl-item:nth-child(odd){border-right:none;} }
  .decl-item .tag{
    font-family:'JetBrains Mono',monospace;
    font-size:0.68rem;
    text-transform:uppercase;
    letter-spacing:0.08em;
    color:var(--gold-dark);
    display:block;
    margin-bottom:8px;
  }
  .decl-item h4{
    font-family:'Fraunces',serif;
    font-weight:600;
    font-size:1.05rem;
    color:var(--navy-900);
    margin:0 0 8px;
  }
  .decl-item p{
    font-size:0.9rem;
    color:var(--ink-soft);
    margin:0;
  }
  .decl-footer{
    margin-top:28px;
    font-size:0.92rem;
    color:var(--ink-soft);
    font-style:italic;
    border-top:1px dashed var(--line);
    padding-top:22px;
  }

  /* ---------- CTA ---------- */
  section.cta{
    background:var(--paper);
    padding:96px 0 116px;
  }
  .cta-head{
    text-align:center;max-width:640px;margin:0 auto 52px;
  }
  .cta-head h2{ font-size:clamp(1.8rem,3.2vw,2.3rem); color:var(--navy-900); }
  .cta-head p{ color:var(--ink-soft); margin-top:14px; }
  .cta-grid{
    display:grid;grid-template-columns:repeat(3,1fr);gap:24px;
  }
  @media(max-width:860px){ .cta-grid{grid-template-columns:1fr;} }
  .cta-card{
    background:var(--white);
    border:1px solid var(--line);
    padding:34px 30px;
    transition:transform .2s ease, box-shadow .2s ease, border-color .2s;
  }
  .cta-card:hover{ transform:translateY(-4px); box-shadow:0 20px 38px rgba(10,23,48,0.1); border-color:var(--gold); }
  .cta-card .icon{
    width:40px;height:40px;
    display:flex;align-items:center;justify-content:center;
    background:var(--navy-900);color:var(--gold-light);
    margin-bottom:22px;
    font-family:'JetBrains Mono',monospace;
    font-size:0.85rem;
  }
  .cta-card h3{ font-size:1.14rem; color:var(--navy-900); margin-bottom:10px;}
  .cta-card p{ font-size:0.9rem;color:var(--ink-soft);margin:0 0 20px;}
  .cta-card a.link{
    font-family:'JetBrains Mono',monospace;
    font-size:0.78rem;
    text-transform:uppercase;
    letter-spacing:0.05em;
    color:var(--navy-700);
    text-decoration:none;
    border-bottom:1px solid var(--navy-700);
    padding-bottom:2px;
  }
  .cta-card a.link:hover{ color:var(--gold-dark); border-color:var(--gold-dark); }

  /* ---------- CONTACT ---------- */
  section.contact{
    background:var(--navy-950);
    padding:90px 0 100px;
  }
  .contact-panel{
    background:linear-gradient(160deg, var(--navy-900) 0%, var(--navy-800) 100%);
    border:1px solid rgba(201,162,39,0.22);
    border-radius:2px;
    padding:56px;
    display:grid;
    grid-template-columns:1.2fr 1fr;
    gap:48px;
    align-items:center;
  }
  @media(max-width:800px){ .contact-panel{ grid-template-columns:1fr; padding:36px 26px; } }
  .contact-panel .kicker{ color:var(--gold-light); }
  .contact-panel h2{
    color:var(--white);
    font-size:clamp(1.7rem,3vw,2.2rem);
    margin-bottom:16px;
  }
  .contact-panel p{
    color:#c7cede;
    font-size:0.98rem;
    max-width:48ch;
  }
  .contact-card{
    background:rgba(255,255,255,0.04);
    border:1px solid rgba(201,162,39,0.25);
    padding:32px;
  }
  .contact-row{
    display:flex;
    align-items:center;
    gap:16px;
  }
  .contact-row + .contact-row{
    margin-top:20px;
    padding-top:20px;
    border-top:1px dashed rgba(255,255,255,0.14);
  }
  .contact-icon{
    width:40px;height:40px;flex:none;
    display:flex;align-items:center;justify-content:center;
    background:var(--gold);
    color:var(--navy-950);
    border-radius:50%;
    font-family:'JetBrains Mono',monospace;
    font-size:1rem;
  }
  .contact-text .label{
    font-family:'JetBrains Mono',monospace;
    font-size:0.68rem;
    text-transform:uppercase;
    letter-spacing:0.08em;
    color:#9aa5bc;
    display:block;
    margin-bottom:4px;
  }
  .contact-text a{
    color:var(--white);
    text-decoration:none;
    font-size:1.15rem;
    font-family:'JetBrains Mono',monospace;
    letter-spacing:0.02em;
  }
  .contact-text a:hover{ color:var(--gold-light); }
  .contact-note{
    font-size:0.8rem;
    color:#9aa5bc;
    margin-top:22px;
  }

  /* ---------- WHATSAPP ---------- */
  .whatsapp-cta{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    width:100%;
    margin-top:24px;
    padding:14px 22px;
    background:transparent;
    color:var(--gold-light);
    border:1px solid var(--gold);
    font-family:'Inter',sans-serif;
    font-weight:600;
    font-size:0.92rem;
    text-decoration:none;
    border-radius:2px;
    transition:transform .15s ease, background .2s ease, color .2s ease;
  }
  .whatsapp-cta:hover{ background:var(--gold); color:var(--navy-950); transform:translateY(-1px); }
  .whatsapp-cta svg{ width:20px;height:20px;flex:none; }

  .whatsapp-float{
    position:fixed;
    right:22px;
    bottom:22px;
    width:58px;height:58px;
    border-radius:50%;
    background:var(--navy-900);
    border:1.5px solid var(--gold);
    display:flex;align-items:center;justify-content:center;
    box-shadow:0 10px 26px rgba(0,0,0,0.45);
    z-index:200;
    text-decoration:none;
    transition:background .2s ease, transform .15s ease;
  }
  .whatsapp-float:hover{ background:var(--navy-800); transform:translateY(-1px); }
  .whatsapp-float svg{ width:28px;height:28px; }
  .whatsapp-float .wf-ring{
    position:absolute;
    inset:0;
    border-radius:50%;
    border:2px solid var(--gold-light);
    animation:wf-pulse 2.4s ease-out infinite;
  }
  @keyframes wf-pulse{
    0%{ transform:scale(1); opacity:0.6; }
    100%{ transform:scale(1.7); opacity:0; }
  }
  @media (prefers-reduced-motion: reduce){
    .whatsapp-float .wf-ring{ animation:none; display:none; }
  }
  @media(max-width:640px){
    .whatsapp-float{ right:16px; bottom:16px; width:52px;height:52px; }
    .whatsapp-float svg{ width:24px;height:24px; }
  }

  /* ---------- FOOTER ---------- */
  footer{
    background:var(--navy-950);
    color:#9aa5bc;
    padding:48px 0;
    font-size:0.85rem;
  }
  footer .wrap{
    display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;
  }
  footer .foot-brand{
    display:flex;align-items:center;gap:10px;
  }
  footer .foot-brand img{ height:24px; width:auto; }
  footer .mono{ color:#9aa5bc; }

  /* ---------- TRADE-LANE MAP ---------- */
  section.trade{
    background:var(--navy-950);
    padding:0 0 100px;
  }
  .trade .section-head{
    padding-top:90px;
    text-align:center;
    display:block;
    margin-bottom:40px;
  }
  .trade .section-head h2{ color:var(--white); }
  .trade .section-head .kicker{ color:var(--gold-light); }
  .trade .section-head p{
    color:#9aa5bc;
    max-width:56ch;
    margin:14px auto 0;
    font-size:0.95rem;
  }

  .tm-frame{
    --tm-navy-950:#050c19;
    --tm-land:#16305c;
    --tm-land-line:#25406e;
    --tm-gold-light:#e8c65c;
    --tm-lane:#e8c65c;
    --tm-text:#c7cede;
    position:relative;
    width:100%;
    background:
      radial-gradient(ellipse 900px 560px at 50% 35%, rgba(201,162,39,0.10), transparent 65%),
      var(--tm-navy-950);
    border:1px solid rgba(201,162,39,0.18);
    border-radius:2px;
    overflow:hidden;
  }
  #ceylonTradeMap{
    display:block;
    width:100%;
    height:auto;
  }
  .tm-land{
    fill:var(--tm-land);
    stroke:var(--tm-land-line);
    stroke-width:0.6;
  }
  .tm-lane{
    fill:none;
    stroke:var(--tm-lane);
    stroke-width:1.1;
    stroke-linecap:round;
    stroke-dasharray:3 6;
    opacity:0.55;
    animation-name:tm-dash;
    animation-timing-function:linear;
    animation-iteration-count:infinite;
  }
  .tm-lane[data-speed="slow"]{ animation-duration:7s; }
  .tm-lane[data-speed="medium"]{ animation-duration:4.5s; }
  .tm-lane[data-speed="fast"]{ animation-duration:2.6s; }
  @keyframes tm-dash{ to{ stroke-dashoffset:-90; } }
  .tm-shipment{
    fill:var(--tm-gold-light);
    opacity:0;
    filter:drop-shadow(0 0 3px rgba(232,198,92,0.9));
    offset-rotate:0deg;
    animation-name:tm-travel;
    animation-timing-function:linear;
    animation-iteration-count:infinite;
  }
  @keyframes tm-travel{
    0%{ offset-distance:0%; opacity:0; }
    6%{ opacity:1; }
    94%{ opacity:1; }
    100%{ offset-distance:100%; opacity:0; }
  }
  .tm-node-dot{
    fill:var(--tm-text);
    stroke:var(--tm-navy-950);
    stroke-width:0.6;
  }
  .tm-node-label{
    font-family:'JetBrains Mono', ui-monospace, monospace;
    font-size:11px;
    letter-spacing:0.06em;
    fill:var(--tm-text);
    opacity:0.85;
  }
  .tm-hub-dot{ fill:var(--tm-gold-light); }
  .tm-hub-label{
    font-family:'Fraunces', Georgia, serif;
    font-weight:600;
    font-size:14px;
    fill:var(--tm-gold-light);
  }
  .tm-hub-ring{
    fill:none;
    stroke:var(--tm-gold-light);
    stroke-width:1;
    opacity:0.55;
    transform-box:fill-box;
    transform-origin:center;
    animation:tm-pulse 3.9s ease-out infinite;
  }
  @keyframes tm-pulse{
    0%{ transform:scale(0.6); opacity:0.6; }
    100%{ transform:scale(4.2); opacity:0; }
  }
  @media (prefers-reduced-motion: reduce){
    .tm-lane, .tm-hub-ring, .tm-shipment{ animation:none !important; }
    .tm-lane{ opacity:0.4; stroke-dasharray:none; }
    .tm-shipment{ opacity:0; }
  }
  .tm-frame.tm-loading .tm-land{ opacity:0; }
  .tm-frame:not(.tm-loading) .tm-land{ opacity:1; transition:opacity 1.1s ease; }
  .tm-frame.tm-loading .tm-lane,
  .tm-frame.tm-loading .tm-node,
  .tm-frame.tm-loading .tm-hub{ opacity:0; }
  .tm-frame:not(.tm-loading) .tm-lane{ transition:opacity 0.6s ease; }
