:root{
    --navy-950:#0c1730;
    --navy-900:#101f3d;
    --navy-800:#16294d;
    --navy-700:#1f3560;
    --navy-600:#2c4780;
    --gold-600:#a9812f;
    --gold-500:#c6a15b;
    --gold-400:#d9bc7c;
    --gold-300:#ecd9a8;
    --ivory-100:#fbf8f1;
    --ivory-200:#f6f0e2;
    --ivory-300:#efe6d0;
    --ink:#101826;
    --ink-soft:#3b4557;
    --white:#ffffff;
    --shadow-navy: 0 20px 60px -20px rgba(12,23,48,0.45);
    --ease: cubic-bezier(.22,1,.36,1);
    --serif: "JPL Serif", Georgia, 'Times New Roman', serif;
    --sans: "JPL Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --mono: "JPL Mono", 'Courier New', monospace;
  }

  @font-face{
    font-family:"JPL Serif";
    src: local("Georgia");
  }

  *,*::before,*::after{ box-sizing:border-box; }
  html{ scroll-behavior:auto; }
  body{
    margin:0;
    font-family: var(--sans);
    background: var(--ivory-100);
    color: var(--ink);
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  @font-face{
    font-family:'Fraunces';
    src: local('Fraunces');
  }
  h1,h2,h3,h4,.serif{
    font-family: 'Fraunces', 'Iowan Old Style', Georgia, serif;
    letter-spacing:-0.01em;
    color: var(--navy-900);
    margin:0;
  }
  p{ line-height:1.7; color: var(--ink-soft); margin:0 0 1rem; }
  a{ color:inherit; text-decoration:none; }
  ::selection{ background: var(--gold-300); color: var(--navy-950); }

  /* scrollbar */
  ::-webkit-scrollbar{ width:10px; }
  ::-webkit-scrollbar-track{ background: var(--ivory-200); }
  ::-webkit-scrollbar-thumb{ background: linear-gradient(var(--gold-500),var(--gold-600)); border-radius:10px; }

  .eyebrow{
    display:inline-flex; align-items:center; gap:.5rem;
    font-family: var(--mono); font-size:.72rem; letter-spacing:.18em; text-transform:uppercase;
    color: var(--gold-600); font-weight:600;
  }
  .eyebrow::before{ content:""; width:22px; height:1px; background: var(--gold-500); display:inline-block; }

  .container{ max-width:1180px; margin:0 auto; padding:0 clamp(1.25rem,4vw,3rem); }

  button{ font-family:inherit; cursor:pointer; }

  /* ============ LOADER ============ */
  #loader{
    position:fixed; inset:0; background:var(--navy-950); z-index:9999;
    display:flex; align-items:center; justify-content:center; flex-direction:column; gap:1.2rem;
    transition: opacity .7s var(--ease), visibility .7s var(--ease);
  }
  #loader.hide{ opacity:0; visibility:hidden; pointer-events:none; }
  #loader svg{ width:70px; height:70px; }
  #loader .nib{ stroke:var(--gold-400); stroke-width:2; fill:none; stroke-dasharray:300; stroke-dashoffset:300; animation: draw 1.6s var(--ease) forwards infinite; }
  @keyframes draw{ 0%{stroke-dashoffset:300;} 60%{stroke-dashoffset:0;} 100%{stroke-dashoffset:-300;} }
  #loader span{ font-family:var(--mono); letter-spacing:.3em; text-transform:uppercase; font-size:.7rem; color:var(--gold-300); opacity:.85; }

  /* ============ TOP BAR ============ */
  .topbar{
    background: var(--navy-950); color: var(--ivory-200);
    font-family: var(--mono); font-size:.72rem; letter-spacing:.05em;
  }
  .topbar .container{ display:flex; justify-content:space-between; align-items:center; height:34px; }
  .topbar .tb-links{ display:flex; gap:1.4rem; }
  .topbar .tb-links span{ opacity:.75; }
  .topbar .tb-links strong{ color:var(--gold-400); font-weight:600; }

  /* ============ NAV ============ */
  header.site-header{
    position:sticky; top:0; z-index:500;
    background: rgba(251,248,241,0.86);
    backdrop-filter: blur(14px) saturate(160%);
    border-bottom:1px solid rgba(16,25,45,0.08);
    transition: box-shadow .4s var(--ease);
  }
  header.site-header.scrolled{ box-shadow: var(--shadow-navy); }
  .nav-inner{ display:flex; align-items:center; justify-content:space-between; height:82px; gap:2rem; }
  .brand{ display:flex; align-items:center; gap:.75rem; }
  .brand img{ height:52px; width:auto; display:block; filter: drop-shadow(0 4px 10px rgba(16,25,45,.15)); }
  .brand-text{ display:flex; flex-direction:column; line-height:1.1; }
  .brand-text .b1{ font-family:'Fraunces',serif; font-size:1.28rem; font-weight:600; color:var(--navy-900); letter-spacing:.01em;}
  .brand-text .b2{ font-family:var(--mono); font-size:.6rem; letter-spacing:.22em; color:var(--gold-600); text-transform:uppercase; margin-top:2px;}

  nav.tabs{ display:flex; align-items:center; gap:.2rem; }
  .tab-btn{
    position:relative; background:none; border:none; padding:.7rem 1rem;
    font-size:.86rem; font-weight:600; color: var(--navy-800); letter-spacing:.01em;
    border-radius: 8px; transition: color .3s, background .3s;
    white-space:nowrap;
  }
  .tab-btn:hover{ background: rgba(198,161,91,0.12); color:var(--gold-600); }
  .tab-btn.active{ color: var(--navy-950); }
  .tab-btn.active::after{
    content:""; position:absolute; left:14px; right:14px; bottom:2px; height:2px;
    background: linear-gradient(90deg,var(--gold-500),var(--gold-300));
    border-radius:2px;
  }
  .dropdown{ position:relative; }
  .dropdown-menu{
    position:absolute; top:110%; left:0; min-width:190px; background:var(--white);
    border-radius:12px; box-shadow: var(--shadow-navy); padding:.5rem;
    opacity:0; visibility:hidden; transform: translateY(-6px);
    transition: all .25s var(--ease); border:1px solid rgba(16,25,45,.06);
  }
  .dropdown:hover .dropdown-menu, .dropdown:focus-within .dropdown-menu{ opacity:1; visibility:visible; transform:translateY(0); }
  .dropdown-menu a{ display:block; padding:.6rem .8rem; border-radius:8px; font-size:.85rem; font-weight:600; color:var(--navy-800); }
  .dropdown-menu a:hover{ background:var(--ivory-200); color:var(--gold-600); }

  .cta-btn{
    background: linear-gradient(135deg,var(--navy-900),var(--navy-700));
    color:var(--ivory-100); border:none; padding:.75rem 1.35rem; border-radius:999px;
    font-weight:700; font-size:.82rem; letter-spacing:.02em; display:inline-flex; align-items:center; gap:.5rem;
    box-shadow: 0 10px 24px -10px rgba(16,41,77,.55); transition: transform .35s var(--ease), box-shadow .35s var(--ease);
  }
  .cta-btn:hover{ transform: translateY(-2px); box-shadow: 0 16px 30px -10px rgba(16,41,77,.65); }
  .cta-btn.gold{ background: linear-gradient(135deg,var(--gold-500),var(--gold-600)); color:var(--navy-950); }

  .burger{ display:none; flex-direction:column; gap:5px; background:none; border:none; padding:8px; }
  .burger span{ width:24px; height:2px; background:var(--navy-900); border-radius:2px; transition:.3s; }

  /* ============ SECTIONS / PAGES ============ */
  .page{ display:none; animation: pageIn .6s var(--ease); }
  .page.active{ display:block; }
  @keyframes pageIn{ from{ opacity:0; transform: translateY(14px);} to{ opacity:1; transform:none;} }

  .reveal{ opacity:0; transform: translateY(26px); transition: opacity .8s var(--ease), transform .8s var(--ease); }
  .reveal.visible{ opacity:1; transform:none; }
  .reveal-delay-1{ transition-delay:.08s; } .reveal-delay-2{ transition-delay:.16s; } .reveal-delay-3{ transition-delay:.24s; } .reveal-delay-4{ transition-delay:.32s; }

  /* ---------- HERO ---------- */
  .hero{ position:relative; overflow:hidden; background:var(--navy-950); color:var(--ivory-100); padding:clamp(4.5rem,9vw,7.8rem) 0 clamp(4.5rem,8vw,7rem); }
  .remembrance{ background:var(--ivory-100); border-bottom:1px solid rgba(16,24,38,.12); }
  .remembrance-inner{ display:grid; grid-template-columns:60px minmax(0,1fr) 60px; align-items:center; gap:clamp(.75rem,2.5vw,2rem); padding-top:.4rem; padding-bottom:.4rem; }
  .remembrance-portrait{ width:52px; height:52px; margin:0; border:2px solid var(--ivory-100); outline:1px solid var(--gold-400); border-radius:50%; overflow:hidden; box-shadow:0 5px 12px rgba(12,23,48,.14); }
  .remembrance-portrait img{ width:100%; height:100%; display:block; object-fit:cover; }
  .remembrance-portrait-left{ justify-self:start; }
  .remembrance-portrait-right{ justify-self:end; }
  .remembrance-copy{ text-align:center; max-width:760px; justify-self:center; }
  .remembrance-copy .eyebrow{ justify-content:center; margin-bottom:.2rem; font-size:.62rem; }
  .remembrance-copy h2{ color:var(--navy-900); font-size:clamp(1rem,1.8vw,1.4rem); line-height:1.08; margin:0 auto .15rem; }
  .remembrance-copy>p:last-child{ color:var(--ink-soft); font-size:.72rem; margin:0; }
  .hero::before{ content:""; position:absolute; inset:0; background:radial-gradient(800px 520px at 78% 44%,rgba(44,71,128,.55),transparent 68%),radial-gradient(520px 420px at 8% 10%,rgba(198,161,91,.12),transparent 70%); pointer-events:none; }
  .hero::after{ content:""; position:absolute; width:1px; height:34%; left:clamp(1.25rem,8vw,8rem); bottom:0; background:linear-gradient(transparent,rgba(236,217,168,.55)); }
  .hero-grid{ display:grid; grid-template-columns:minmax(0,1fr) minmax(440px,.92fr); gap:clamp(2rem,6vw,6.5rem); align-items:center; position:relative; z-index:1; }
  .hero-copy{ max-width:620px; }
  .hero-kicker{ display:flex; align-items:center; gap:.7rem; color:var(--gold-300); font-family:var(--mono); font-size:.66rem; letter-spacing:.12em; text-transform:uppercase; }
  .kicker-mark{ width:27px; height:1px; background:var(--gold-400); }
  .kicker-status{ margin-left:auto; border:1px solid rgba(236,217,168,.3); border-radius:999px; padding:.35rem .6rem; font-size:.58rem; letter-spacing:.08em; }
  .hero h1{ color:var(--ivory-100); font-size:clamp(3.6rem,7vw,6.6rem); line-height:.9; letter-spacing:-.035em; margin:1.5rem 0 1.7rem; }
  .hero h1 em{ color:var(--gold-300); font-style:normal; font-weight:400; }
  .hero h1 span{ color:rgba(251,248,241,.48); }
  .hero p.lead{ color:rgba(251,248,241,.72); font-size:1.02rem; line-height:1.75; max-width:500px; }
  .hero-ctas{ display:flex; align-items:center; gap:1.4rem; margin-top:2rem; flex-wrap:wrap; }
  .hero .cta-btn{ padding:.9rem 1.25rem; }
  .hero-text-link{ color:var(--ivory-100); font-size:.82rem; font-weight:700; border-bottom:1px solid rgba(236,217,168,.55); padding-bottom:.3rem; transition:color .3s,border-color .3s; }
  .hero-text-link span{ color:var(--gold-300); margin-left:.35rem; }
  .hero-text-link:hover{ color:var(--gold-300); border-color:var(--gold-300); }
  .hero-proof{ display:flex; align-items:center; gap:.7rem; margin-top:3.6rem; color:rgba(251,248,241,.46); font-family:var(--mono); font-size:.64rem; letter-spacing:.08em; text-transform:uppercase; }
  .proof-line{ width:42px; height:1px; background:var(--gold-500); }
  .proof-arrow{ color:var(--gold-400); }
  .hero-art{ position:relative; height:520px; min-width:0; }
  .art-grid{ position:absolute; inset:3% 0 3% 5%; background-image:linear-gradient(rgba(236,217,168,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(236,217,168,.09) 1px,transparent 1px); background-size:42px 42px; mask-image:linear-gradient(135deg,transparent 3%,black 32%,black 78%,transparent 100%); }
  .orbit{ position:absolute; border:1px solid rgba(236,217,168,.2); border-radius:50%; transform:rotate(-28deg); }
  .orbit-one{ width:390px; height:520px; top:0; left:16%; }
  .orbit-two{ width:260px; height:420px; top:9%; left:30%; border-color:rgba(198,161,91,.35); }
  .hero-seal{ position:absolute; top:19%; left:36%; width:144px; height:144px; border:1px solid rgba(236,217,168,.45); border-radius:50%; display:flex; align-items:center; justify-content:center; text-align:center; color:var(--gold-300); font-family:var(--mono); font-size:.57rem; line-height:1.5; letter-spacing:.12em; text-transform:uppercase; transform:rotate(-13deg); animation:sealFloat 7s ease-in-out infinite; }
  .hero-seal::before{ content:""; position:absolute; inset:8px; border:1px dashed rgba(236,217,168,.35); border-radius:50%; }
  .hero-seal img{ position:absolute; width:48px; height:48px; object-fit:cover; border-radius:50%; opacity:.82; filter:sepia(.2); }
  .hero-seal span{ padding-top:68px; }
  @keyframes sealFloat{ 0%,100%{ transform:rotate(-13deg) translateY(0);} 50%{ transform:rotate(-8deg) translateY(-10px);} }
  .track-card{ position:absolute; width:215px; min-height:190px; padding:1.25rem; display:flex; flex-direction:column; justify-content:space-between; box-shadow:0 24px 50px rgba(0,0,0,.28); animation:cardFloat 8s ease-in-out infinite; }
  .track-card::after{ content:""; position:absolute; width:48px; height:48px; border:1px solid currentColor; border-radius:50%; right:-16px; bottom:-16px; opacity:.18; }
  .journal-card{ background:var(--gold-300); color:var(--navy-950); top:7%; right:1%; transform:rotate(6deg); }
  .patent-card{ background:var(--navy-700); color:var(--ivory-100); left:3%; bottom:9%; transform:rotate(-7deg); animation-delay:1s; }
  .track-card-top{ display:flex; align-items:center; justify-content:space-between; font-family:var(--mono); font-size:.6rem; letter-spacing:.1em; text-transform:uppercase; }
  .track-index{ opacity:.55; }
  .track-tag{ font-weight:700; }
  .track-card strong{ font-family:'Fraunces',serif; font-size:1.65rem; line-height:.95; letter-spacing:-.02em; }
  .track-note{ font-family:var(--mono); font-size:.59rem; letter-spacing:.08em; text-transform:uppercase; opacity:.62; }
  .track-icon{ position:absolute; right:1.15rem; bottom:1.1rem; font-size:1.1rem; }
  @keyframes cardFloat{ 0%,100%{ transform:translateY(0) rotate(6deg);} 50%{ transform:translateY(-8px) rotate(4deg);} }
  .patent-card{ animation-name:patentFloat; }
  @keyframes patentFloat{ 0%,100%{ transform:translateY(0) rotate(-7deg);} 50%{ transform:translateY(-9px) rotate(-4deg);} }
  .art-caption{ position:absolute; right:3%; bottom:2%; display:flex; align-items:center; gap:.55rem; color:rgba(251,248,241,.55); font-family:var(--mono); font-size:.6rem; letter-spacing:.12em; text-transform:uppercase; }
  .caption-dot{ width:6px; height:6px; background:var(--gold-400); border-radius:50%; box-shadow:0 0 0 5px rgba(236,217,168,.1); }

  /* ---------- STRIP ---------- */
  .strip{ background:var(--navy-950); padding: 1.6rem 0; overflow:hidden; }
  .strip-track{ display:flex; gap:3.5rem; white-space:nowrap; animation: marquee 26s linear infinite; }
  .strip-track span{ font-family:var(--mono); font-size:.75rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-300); opacity:.85; }
  @keyframes marquee{ from{ transform:translateX(0);} to{ transform:translateX(-50%);} }

  .iccr-marquee{ background:var(--gold-300); color:var(--navy-950); border-top:1px solid rgba(12,23,48,.15); border-bottom:1px solid rgba(12,23,48,.15); overflow:hidden; padding:.58rem 0; }
  .iccr-marquee-track{ display:flex; width:max-content; animation:iccrMarquee 28s linear infinite; }
  .iccr-marquee-set{ display:flex; align-items:center; gap:1.25rem; flex-shrink:0; padding-right:1.25rem; white-space:nowrap; font-family:var(--mono); font-size:.66rem; font-weight:600; letter-spacing:.13em; text-transform:uppercase; }
  .iccr-marquee-label{ color:var(--navy-950); font-weight:800; letter-spacing:.2em; }
  .iccr-marquee-dot{ color:var(--gold-600); font-size:.7rem; }
  @keyframes iccrMarquee{ from{ transform:translateX(0);} to{ transform:translateX(-50%);} }

  /* ---------- SECTION GENERIC ---------- */
  .section{ padding: clamp(4rem,8vw,6.5rem) 0; }
  .section.alt{ background: var(--ivory-200); }
  .section-head{ max-width:640px; margin-bottom:3rem; }
  .section-head h2{ font-size: clamp(1.9rem,3.4vw,2.7rem); margin-top:.6rem; }
  #services{ scroll-margin-top:100px; }

  .final-actions{ padding:clamp(3rem,6vw,5rem) 0; }
  .final-actions-panel{ display:flex; align-items:center; justify-content:space-between; gap:2rem; flex-wrap:wrap; padding:clamp(2rem,5vw,3.4rem); background:linear-gradient(135deg,var(--navy-950),var(--navy-800)); border-radius:26px; position:relative; overflow:hidden; }
  .final-actions-panel::before{ content:""; position:absolute; width:260px; height:260px; border-radius:50%; background:radial-gradient(circle,rgba(198,161,91,.3),transparent 70%); top:-80px; right:-40px; pointer-events:none; }
  .final-actions-copy,.final-actions-buttons{ position:relative; z-index:1; }
  .final-actions-copy .eyebrow{ color:var(--gold-300); }
  .final-actions-copy h2{ color:var(--white); margin:.5rem 0 .6rem; }
  .final-actions-copy p{ color:rgba(251,248,241,.72); margin:0; }
  .final-actions-buttons{ display:flex; gap:1rem; flex-wrap:wrap; }
  .final-action-link{ display:inline-flex; align-items:center; justify-content:center; gap:.5rem; min-height:46px; padding:.75rem 1.25rem; border-radius:999px; font-size:.82rem; font-weight:700; transition:transform .25s var(--ease),background .25s var(--ease),color .25s var(--ease); }
  .final-action-link:hover{ transform:translateY(-2px); }
  .final-action-primary{ background:linear-gradient(135deg,var(--gold-500),var(--gold-600)); color:var(--navy-950); }
  .final-action-secondary{ border:1.5px solid rgba(255,255,255,.35); color:var(--white); background:rgba(255,255,255,.1); }
  .final-action-secondary:hover{ background:var(--gold-300); color:var(--navy-950); }

  /* ---------- JPL ECOSYSTEM ---------- */
  .ecosystem-section{ background:linear-gradient(145deg,var(--ivory-100),#e9e4d6); position:relative; overflow:hidden; }
  .ecosystem-section::before{ content:""; position:absolute; width:520px; height:520px; border:1px solid rgba(198,161,91,.2); border-radius:50%; top:-250px; right:-120px; }
  .ecosystem-section .section-head{ position:relative; z-index:1; }
  .ecosystem-section .section-head p{ max-width:520px; margin-top:1rem; }
  .ecosystem-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.4rem; position:relative; z-index:1; }
  .ecosystem-card{ min-height:470px; padding:clamp(1.6rem,3vw,2.5rem); border:1px solid rgba(255,255,255,.55); border-radius:24px; position:relative; overflow:hidden; display:flex; flex-direction:column; box-shadow:0 24px 70px -35px rgba(12,23,48,.55); backdrop-filter:blur(18px); transition:transform .45s var(--ease),box-shadow .45s var(--ease); }
  .ecosystem-card:hover{ transform:translateY(-8px); box-shadow:0 30px 70px -30px rgba(12,23,48,.65); }
  .publication-card{ background:linear-gradient(145deg,rgba(255,255,255,.72),rgba(236,217,168,.46)); color:var(--navy-950); }
  .research-card{ background:linear-gradient(145deg,rgba(22,41,77,.94),rgba(31,53,96,.82)); color:var(--ivory-100); border-color:rgba(236,217,168,.22); }
  .ecosystem-card-glow{ position:absolute; width:230px; height:230px; border-radius:50%; top:-105px; right:-70px; background:radial-gradient(circle,rgba(236,217,168,.4),transparent 70%); pointer-events:none; }
  .research-card .ecosystem-card-glow{ background:radial-gradient(circle,rgba(198,161,91,.28),transparent 70%); }
  .ecosystem-top{ display:flex; justify-content:space-between; align-items:center; gap:1rem; font-family:var(--mono); font-size:.61rem; letter-spacing:.1em; text-transform:uppercase; position:relative; z-index:1; }
  .ecosystem-number{ color:var(--gold-600); font-weight:700; }
  .research-card .ecosystem-number{ color:var(--gold-300); }
  .ecosystem-label{ opacity:.6; }
  .ecosystem-icon{ width:54px; height:54px; border-radius:16px; display:flex; align-items:center; justify-content:center; margin:3.4rem 0 1.2rem; background:rgba(16,31,61,.1); color:var(--gold-600); font-size:1.6rem; border:1px solid rgba(16,31,61,.1); }
  .research-card .ecosystem-icon{ background:rgba(236,217,168,.13); color:var(--gold-300); border-color:rgba(236,217,168,.2); }
  .ecosystem-card h3{ font-size:clamp(1.55rem,2.7vw,2.1rem); margin-bottom:1rem; position:relative; z-index:1; }
  .research-card h3{ color:var(--white); }
  .ecosystem-card p{ font-size:.88rem; line-height:1.7; margin-bottom:.8rem; position:relative; z-index:1; }
  .research-card p{ color:rgba(251,248,241,.72); }
  .ecosystem-link{ display:inline-flex; align-items:center; gap:.6rem; align-self:flex-start; margin-top:auto; padding:.7rem 1rem; border:1px solid currentColor; border-radius:999px; font-size:.75rem; font-weight:700; position:relative; z-index:1; transition:background .3s,color .3s,transform .3s; }
  .ecosystem-link:hover{ background:var(--navy-950); color:var(--gold-300); transform:translateY(-2px); }
  .research-card .ecosystem-link:hover{ background:var(--gold-300); color:var(--navy-950); }

  .services-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:1.4rem; }
  .service-card{
    background:var(--white); border-radius:18px; padding:2rem 1.6rem; border:1px solid rgba(16,25,45,.06);
    box-shadow: 0 1px 0 rgba(16,25,45,.04); transition: transform .45s var(--ease), box-shadow .45s var(--ease), border-color .45s;
    position:relative; overflow:hidden;
  }
  .service-card::before{
    content:""; position:absolute; top:0; left:0; right:0; height:3px;
    background: linear-gradient(90deg,var(--gold-500),var(--navy-700)); transform: scaleX(0); transform-origin:left;
    transition: transform .5s var(--ease);
  }
  .service-card:hover{ transform: translateY(-8px); box-shadow: var(--shadow-navy); border-color:transparent; }
  .service-card:hover::before{ transform:scaleX(1); }
  .service-num{ font-family:var(--mono); font-size:.72rem; color:var(--gold-600); letter-spacing:.1em; }
  .service-card h3{ font-size:1.18rem; margin:.7rem 0 .6rem; }
  .service-icon{ width:46px; height:46px; border-radius:12px; background: linear-gradient(135deg,var(--navy-900),var(--navy-700)); display:flex; align-items:center; justify-content:center; margin-bottom:1.1rem; }
  .service-icon svg{ width:22px; height:22px; stroke:var(--gold-300); fill:none; stroke-width:1.6; }

  .split{ display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:center; }
  .mv-card{ background: linear-gradient(160deg,var(--navy-950),var(--navy-800)); color:var(--ivory-100); border-radius:22px; padding:2.4rem; position:relative; overflow:hidden; }
  .mv-card::after{ content:""; position:absolute; width:220px; height:220px; border-radius:50%; background:radial-gradient(circle,rgba(198,161,91,.35),transparent 70%); top:-60px; right:-60px; }
  .mv-card h3{ color:var(--gold-300); font-size:1.3rem; }
  .mv-card p{ color:rgba(251,248,241,.82); position:relative; z-index:1; }
  .mv-card + .mv-card{ margin-top:1.4rem; }

  /* ---------- TIMELINE (about) ---------- */
  .disciplines{ display:flex; flex-wrap:wrap; gap:.6rem; margin-top:1.2rem; }
  .chip{ font-family:var(--mono); font-size:.72rem; padding:.45rem .9rem; border-radius:999px; background:var(--white); border:1px solid rgba(16,25,45,.1); color:var(--navy-800); }

  /* ---------- BOOKS / EDITORIAL ---------- */
  .board-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:1.5rem; }
  .board-card{
    background:var(--white); border-radius:18px; padding:2rem 1.5rem; text-align:center; border:1px solid rgba(16,25,45,.06);
    transition: transform .4s var(--ease), box-shadow .4s var(--ease);
  }
  .board-card:hover{ transform: translateY(-6px) scale(1.015); box-shadow: var(--shadow-navy); }
  .avatar-ring{
    width:84px; height:84px; border-radius:50%; margin:0 auto 1.1rem; display:flex; align-items:center; justify-content:center;
    background: conic-gradient(from 180deg, var(--gold-500), var(--navy-700), var(--gold-500));
    padding:3px;
  }
  .avatar-ring .avatar{
    width:100%; height:100%; border-radius:50%; background: var(--navy-950); color:var(--gold-300);
    display:flex; align-items:center; justify-content:center; font-family:'Fraunces',serif; font-size:1.4rem; font-weight:600;
  }
  .board-card h4{ font-size:1.02rem; margin-bottom:.2rem; }
  .board-card span{ font-family:var(--mono); font-size:.68rem; letter-spacing:.06em; color:var(--gold-600); text-transform:uppercase; }

  /* ---------- CONSULTANCY ---------- */
  .consult-tabs{ display:flex; gap:.8rem; margin-bottom:2rem; }
  .ctab{ background:var(--white); border:1px solid rgba(16,25,45,.1); padding:.7rem 1.4rem; border-radius:999px; font-weight:700; font-size:.85rem; color:var(--navy-800); transition:.3s; }
  .ctab.active, .ctab:hover{ background: var(--navy-950); color: var(--gold-300); border-color:var(--navy-950); }
  .consult-panel{ display:none; }
  .consult-panel.active{ display:grid; grid-template-columns:1fr 1fr; gap:2.5rem; align-items:center; }
  .step-list{ counter-reset:step; }
  .step-item{ display:flex; gap:1.1rem; padding:1.1rem 0; border-bottom:1px solid rgba(16,25,45,.08); }
  .step-item:last-child{ border-bottom:none; }
  .step-num{ font-family:'Fraunces',serif; font-size:1.3rem; color:var(--gold-600); font-weight:600; min-width:2.2rem; }
  .consult-visual{ background: linear-gradient(160deg,var(--ivory-300),var(--ivory-200)); border-radius:22px; padding:2.4rem; border:1px solid rgba(16,25,45,.06); }

  /* ---------- CONFERENCE ---------- */
  .conf-hero{ background: linear-gradient(160deg,var(--navy-950) 0%, var(--navy-800) 60%, var(--navy-700) 100%); border-radius:26px; padding:clamp(2.4rem,5vw,4rem); color:var(--ivory-100); position:relative; overflow:hidden; }
  .conf-hero::before{ content:""; position:absolute; inset:0; background: radial-gradient(600px 300px at 90% 0%, rgba(198,161,91,.25), transparent 60%); }
  .conf-badge{ display:inline-block; background: rgba(198,161,91,.16); border:1px solid rgba(198,161,91,.4); color:var(--gold-300); font-family:var(--mono); font-size:.7rem; letter-spacing:.1em; padding:.4rem .9rem; border-radius:999px; text-transform:uppercase; }
  .conf-hero h2{ color:var(--white); font-size:clamp(1.9rem,3.6vw,2.9rem); margin: 1rem 0 1.2rem; max-width:720px; }
  .conf-hero p{ color: rgba(251,248,241,.82); max-width:640px; position:relative; z-index:1; }
  .conf-feats{ display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:1rem; margin-top:2.2rem; position:relative; z-index:1; }
  .conf-feat{ background: rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); border-radius:14px; padding:1.1rem; backdrop-filter: blur(6px); }
  .conf-feat b{ display:block; color:var(--gold-300); font-family:'Fraunces',serif; font-size:1.05rem; margin-bottom:.25rem; }
  .conf-feat span{ font-size:.82rem; color:rgba(251,248,241,.78); }

  /* ---------- PUBLICATIONS PAGE ---------- */
  .pub-toolbar{ display:flex; flex-wrap:wrap; gap:.7rem; align-items:center; justify-content:space-between; margin-bottom:2.2rem; }
  .filter-row{ display:flex; gap:.5rem; flex-wrap:wrap; }
  .filter-chip{ background:var(--white); border:1px solid rgba(16,25,45,.12); padding:.5rem 1.05rem; border-radius:999px; font-size:.78rem; font-weight:700; color:var(--navy-800); transition:.3s; }
  .filter-chip.active, .filter-chip:hover{ background:var(--navy-950); color:var(--gold-300); border-color:var(--navy-950); }
  .pub-search{ position:relative; }
  .pub-search input{ font-family:var(--sans); border:1px solid rgba(16,25,45,.14); background:var(--white); padding:.65rem 1rem .65rem 2.4rem; border-radius:999px; font-size:.85rem; width:240px; outline:none; transition:.3s; }
  .pub-search input:focus{ border-color:var(--gold-500); box-shadow:0 0 0 3px rgba(198,161,91,.18); }
  .pub-search svg{ position:absolute; left:.85rem; top:50%; transform:translateY(-50%); width:15px; height:15px; stroke:var(--ink-soft); fill:none; stroke-width:2; }

  .pub-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:1.3rem; }
  .pub-card{
    background:var(--white); border-radius:18px; padding:1.6rem; border:1px solid rgba(16,25,45,.06);
    display:flex; flex-direction:column; gap:.7rem; transition: transform .4s var(--ease), box-shadow .4s var(--ease);
    animation: cardIn .6s var(--ease) both;
  }
  @keyframes cardIn{ from{ opacity:0; transform: translateY(18px);} to{ opacity:1; transform:none;} }
  .pub-card:hover{ transform: translateY(-6px); box-shadow:var(--shadow-navy); }
  .pub-top{ display:flex; justify-content:space-between; align-items:flex-start; gap:.6rem; }
  .pub-tag{ font-family:var(--mono); font-size:.62rem; letter-spacing:.08em; text-transform:uppercase; background:var(--ivory-200); color:var(--gold-600); padding:.3rem .6rem; border-radius:999px; white-space:nowrap; font-weight:700; }
  .pub-date{ font-family:var(--mono); font-size:.68rem; color:var(--ink-soft); white-space:nowrap; }
  .pub-card h3{ font-size:1.06rem; line-height:1.35; }
  .pub-authors{ font-size:.8rem; color:var(--gold-600); font-weight:700; }
  .pub-desc{ font-size:.85rem; color:var(--ink-soft); margin-bottom:0; flex:1; }
  .pub-link{ font-size:.78rem; font-weight:700; color:var(--navy-800); display:inline-flex; align-items:center; gap:.35rem; margin-top:.2rem; }
  .pub-link svg{ width:13px; height:13px; stroke:currentColor; fill:none; stroke-width:2; transition:transform .3s; }
  .pub-link:hover svg{ transform: translate(2px,-2px); }
  .pub-empty{ text-align:center; padding:4rem 1rem; color:var(--ink-soft); }
  .pub-empty svg{ width:52px; height:52px; stroke:var(--gold-500); fill:none; stroke-width:1.4; margin-bottom:1rem; }

  /* ---------- ADMIN ---------- */
  .admin-wrap{ min-height:60vh; display:flex; align-items:center; justify-content:center; padding: 3rem 0; }
  .login-card{
    background:var(--white); width:100%; max-width:400px; border-radius:22px; padding:2.6rem 2.2rem;
    box-shadow: var(--shadow-navy); border:1px solid rgba(16,25,45,.06); text-align:center;
  }
  .login-card .lock{ width:52px; height:52px; margin:0 auto 1.1rem; border-radius:14px; background:linear-gradient(135deg,var(--navy-900),var(--navy-700)); display:flex; align-items:center; justify-content:center; }
  .login-card .lock svg{ width:22px; height:22px; stroke:var(--gold-300); fill:none; stroke-width:1.7; }
  .field{ text-align:left; margin-bottom:1.05rem; }
  .field label{ font-family:var(--mono); font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-soft); display:block; margin-bottom:.4rem; }
  .field input, .field select, .field textarea{
    width:100%; border:1px solid rgba(16,25,45,.14); border-radius:10px; padding:.72rem .85rem; font-family:var(--sans);
    font-size:.9rem; outline:none; transition:.25s; background:var(--ivory-100);
  }
  .field input:focus, .field select:focus, .field textarea:focus{ border-color:var(--gold-500); box-shadow:0 0 0 3px rgba(198,161,91,.18); background:var(--white); }
  .field textarea{ min-height:96px; resize:vertical; }
  .login-error{ background:#fdecec; color:#b3261e; font-size:.8rem; padding:.6rem .8rem; border-radius:10px; margin-bottom:1rem; display:none; font-weight:600; }
  .login-error.show{ display:block; animation: shake .4s; }
  @keyframes shake{ 10%,90%{transform:translateX(-1px);} 20%,80%{transform:translateX(2px);} 30%,50%,70%{transform:translateX(-4px);} 40%,60%{transform:translateX(4px);} }
  .full-btn{ width:100%; justify-content:center; }
  .hint-note{ font-size:.72rem; color: var(--ink-soft); margin-top:1rem; line-height:1.5; }

  .admin-dash{ display:none; }
  .admin-dash.active{ display:block; }
  .dash-head{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1rem; margin-bottom:2rem; }
  .dash-stats{ display:flex; gap:1rem; flex-wrap:wrap; }
  .dash-stat{ background:var(--white); border-radius:14px; padding:1rem 1.3rem; border:1px solid rgba(16,25,45,.06); min-width:120px; }
  .dash-stat b{ display:block; font-family:'Fraunces',serif; font-size:1.5rem; color:var(--navy-900); }
  .dash-stat span{ font-family:var(--mono); font-size:.65rem; letter-spacing:.06em; color:var(--gold-600); text-transform:uppercase; }
  .logout-btn{ background:none; border:1px solid rgba(16,25,45,.16); color:var(--navy-800); padding:.6rem 1.1rem; border-radius:999px; font-weight:700; font-size:.8rem; }
  .logout-btn:hover{ border-color:var(--navy-800); }

  .dash-grid{ display:grid; grid-template-columns: .9fr 1.1fr; gap:1.8rem; align-items:flex-start; }
  .panel{ background:var(--white); border-radius:20px; padding:1.8rem; border:1px solid rgba(16,25,45,.06); }
  .panel h3{ font-size:1.05rem; margin-bottom:1.2rem; display:flex; align-items:center; gap:.5rem; }
  .panel h3 svg{ width:18px; height:18px; stroke:var(--gold-600); fill:none; stroke-width:2; }
  .row2{ display:grid; grid-template-columns:1fr 1fr; gap:.9rem; }

  .table-wrap{ max-height:560px; overflow:auto; }
  .admin-row{
    display:flex; gap:.9rem; align-items:flex-start; padding:.95rem; border-radius:14px; border:1px solid rgba(16,25,45,.07);
    margin-bottom:.7rem; transition:.25s;
  }
  .admin-row:hover{ border-color: var(--gold-400); background: var(--ivory-100); }
  .admin-row .ar-main{ flex:1; min-width:0; }
  .admin-row h4{ font-size:.92rem; margin:0 0 .25rem; font-family:'Fraunces',serif; color:var(--navy-900); }
  .admin-row .ar-meta{ font-family:var(--mono); font-size:.66rem; color:var(--ink-soft); display:flex; gap:.6rem; flex-wrap:wrap; }
  .ar-actions{ display:flex; gap:.4rem; flex-shrink:0; }
  .icon-btn{ width:32px; height:32px; border-radius:9px; border:1px solid rgba(16,25,45,.12); background:var(--white); display:flex; align-items:center; justify-content:center; transition:.25s; }
  .icon-btn svg{ width:14px; height:14px; stroke:var(--navy-800); fill:none; stroke-width:2; }
  .icon-btn:hover{ background:var(--navy-950); border-color:var(--navy-950); }
  .icon-btn:hover svg{ stroke:var(--gold-300); }
  .icon-btn.danger:hover{ background:#b3261e; border-color:#b3261e; }
  .icon-btn.danger:hover svg{ stroke:#fff; }

  .toast{
    position:fixed; bottom:1.6rem; right:1.6rem; background:var(--navy-950); color:var(--ivory-100); padding:.9rem 1.3rem;
    border-radius:12px; font-size:.85rem; font-weight:600; box-shadow: var(--shadow-navy); z-index:9998; display:flex; align-items:center; gap:.6rem;
    transform: translateY(20px); opacity:0; transition: all .4s var(--ease); border-left:3px solid var(--gold-500);
  }
  .toast.show{ transform:none; opacity:1; }

  .spinner{ width:16px; height:16px; border-radius:50%; border:2px solid rgba(255,255,255,.3); border-top-color:var(--gold-400); animation: rot .7s linear infinite; }
  @keyframes rot{ to{ transform: rotate(360deg); } }

  /* ---------- FOOTER ---------- */
  footer{ background:var(--navy-950); color:rgba(251,248,241,.75); padding: 3.5rem 0 1.6rem; margin-top:4rem; }
  .foot-grid{ display:grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap:2.4rem; padding-bottom:2.4rem; border-bottom:1px solid rgba(255,255,255,.1); }
  footer h4{ color:var(--gold-300); font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; font-family:var(--mono); margin-bottom:1rem; }
  footer .brand-text .b1{ color:var(--white); }
  footer ul{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:.6rem; }
  footer ul a{ font-size:.85rem; opacity:.85; transition:.25s; }
  footer ul a:hover{ opacity:1; color:var(--gold-300); padding-left:3px; }
  .foot-bottom{ display:flex; justify-content:space-between; padding-top:1.6rem; font-size:.75rem; flex-wrap:wrap; gap:.6rem; opacity:.7; }

  /* ---------- RESPONSIVE ---------- */
  @media (max-width:960px){
    .hero-grid, .split, .consult-panel.active{ grid-template-columns:1fr; }
    .hero-art{ height:440px; order:initial; max-width:620px; width:100%; margin:0 auto; }
    .dash-grid{ grid-template-columns:1fr; }
    .foot-grid{ grid-template-columns:1fr 1fr; }
  }
  @media (max-width:760px){
    html,body{ overflow-x:clip; }
    nav.tabs{ position:fixed; top:0; right:-100%; z-index:501; height:100vh; width:82%; max-width:340px; background:var(--ivory-100);
      flex-direction:column; align-items:flex-start; padding:6rem 1.6rem 2rem; gap:.3rem; transition: right .5s var(--ease); box-shadow:-20px 0 60px rgba(0,0,0,.2); overflow-y:auto; }
    nav.tabs.open{ right:0; }
    .tab-btn{ width:100%; text-align:left; }
    .dropdown-menu{ position:static; opacity:1; visibility:visible; transform:none; box-shadow:none; display:none; padding-left:.6rem; }
    .dropdown.open .dropdown-menu{ display:block; }
    .burger{ display:flex; }
    .topbar .tb-links{ display:none; }
    .remembrance-inner{ grid-template-columns:1fr 1fr; grid-template-rows:auto auto; gap:.8rem 1rem; padding-top:1.2rem; padding-bottom:1.2rem; }
    .remembrance-copy{ grid-column:1 / -1; grid-row:1; min-width:0; }
    .remembrance-portrait{ width:42px; height:42px; margin:0; align-self:center; }
    .remembrance-portrait-left{ grid-column:1; grid-row:2; justify-self:start; }
    .remembrance-portrait-right{ grid-column:2; grid-row:2; justify-self:end; }
    .remembrance-copy h2{ font-size:.88rem; padding:0 .4rem; }
    .remembrance-copy>p:last-child{ font-size:.62rem; }
    .row2{ grid-template-columns:1fr; }
    .foot-grid{ grid-template-columns:1fr; gap:1.8rem; }
    .hero{ padding-top:3.5rem; }
    .hero-kicker{ align-items:flex-start; flex-wrap:wrap; row-gap:.55rem; }
    .kicker-status{ margin-left:0; }
    .hero h1{ font-size:clamp(3.45rem,16vw,5.4rem); margin-top:1.25rem; }
    .hero p.lead{ font-size:.96rem; }
    .hero-proof{ margin-top:2.8rem; flex-wrap:wrap; }
    .ecosystem-grid{ grid-template-columns:1fr; }
    .ecosystem-card{ min-height:430px; }
    .ecosystem-icon{ margin-top:2.5rem; }
    .hero-art{ height:370px; margin-top:1rem; }
    .orbit-one{ width:285px; height:390px; left:13%; }
    .orbit-two{ width:205px; height:315px; left:28%; }
    .hero-seal{ width:112px; height:112px; top:20%; left:37%; font-size:.48rem; }
    .hero-seal img{ width:38px; height:38px; }
    .hero-seal span{ padding-top:54px; }
    .track-card{ width:174px; min-height:156px; padding:1rem; }
    .track-card strong{ font-size:1.28rem; }
    .track-note{ font-size:.5rem; }
    .journal-card{ right:6px; }
    .patent-card{ left:6px; bottom:7%; }
    .art-caption{ right:0; font-size:.52rem; }
  }
  .nav-scrim{ position:fixed; inset:0; background:rgba(12,23,48,.4); z-index:499; opacity:0; visibility:hidden; pointer-events:none; transition:.4s; }
  .nav-scrim.show{ opacity:1; visibility:visible; pointer-events:auto; }

  /* ---------- STATS ---------- */
  .stats-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:1.3rem; }
  .stat-card{ background:var(--white); border-radius:18px; padding:1.9rem 1.5rem; text-align:center; border:1px solid rgba(16,25,45,.06); transition: transform .4s var(--ease), box-shadow .4s var(--ease); }
  .stat-card:hover{ transform: translateY(-6px); box-shadow: var(--shadow-navy); }
  .stat-icon{ width:44px; height:44px; margin:0 auto 1rem; border-radius:12px; background: linear-gradient(135deg,var(--navy-900),var(--navy-700)); display:flex; align-items:center; justify-content:center; }
  .stat-icon svg{ width:20px; height:20px; stroke:var(--gold-300); fill:none; stroke-width:1.7; }
  .stat-card b{ display:block; font-family:'Fraunces',serif; font-size:2.2rem; color:var(--navy-950); }
  .stat-card span{ font-family:var(--mono); font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; color:var(--gold-600); }

  /* ---------- PROCESS ---------- */
  .process-track{ position:relative; display:grid; grid-template-columns:repeat(5,1fr); gap:1.2rem; }
  .process-line{ position:absolute; top:24px; left:10%; right:10%; height:2px; background: repeating-linear-gradient(90deg,var(--gold-400) 0 8px, transparent 8px 16px); z-index:0; }
  .process-step{ position:relative; z-index:1; text-align:center; }
  .process-dot{ width:48px; height:48px; border-radius:50%; background: linear-gradient(135deg,var(--navy-900),var(--navy-700)); color:var(--gold-300); font-family:'Fraunces',serif; font-weight:600; font-size:1.15rem; display:flex; align-items:center; justify-content:center; margin:0 auto 1rem; box-shadow: 0 8px 20px -8px rgba(16,25,45,.5); }
  .process-step h4{ font-size:1rem; margin-bottom:.4rem; font-family:'Fraunces',serif; color:var(--navy-900); }
  .process-step p{ font-size:.82rem; }

  /* ---------- PERSONA ---------- */
  .persona-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:1.4rem; }
  .persona-card{ background:var(--white); border-radius:18px; padding:1.9rem 1.6rem; border:1px solid rgba(16,25,45,.06); transition: transform .4s var(--ease), box-shadow .4s var(--ease); }
  .persona-card:hover{ transform: translateY(-6px); box-shadow: var(--shadow-navy); }
  .persona-card h4{ font-size:1.02rem; margin:.9rem 0 .5rem; }
  .persona-card p{ font-size:.85rem; margin:0; }

  /* ---------- TESTIMONIALS ---------- */
  .testi-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:1.4rem; }
  .testi-card{ background:var(--white); border-radius:18px; padding:2rem 1.7rem; border:1px solid rgba(16,25,45,.06); position:relative; transition: transform .4s var(--ease), box-shadow .4s var(--ease); }
  .testi-card:hover{ transform: translateY(-6px); box-shadow: var(--shadow-navy); }
  .testi-quote{ font-family:'Fraunces',serif; font-size:3rem; color:var(--gold-400); line-height:1; margin-bottom:.4rem; }
  .testi-card p{ font-size:.9rem; font-style:italic; }
  .testi-author{ display:flex; align-items:center; gap:.7rem; margin-top:1.2rem; }
  .testi-author b{ display:block; font-size:.85rem; color:var(--navy-900); }
  .testi-author span{ font-family:var(--mono); font-size:.65rem; color:var(--gold-600); text-transform:uppercase; letter-spacing:.05em; }

  /* ---------- FAQ ---------- */
  .faq-list{ max-width:760px; }
  .faq-item{ border-bottom:1px solid rgba(16,25,45,.1); }
  .faq-q{ width:100%; text-align:left; background:none; border:none; padding:1.3rem .2rem; display:flex; justify-content:space-between; align-items:center; font-family:'Fraunces',serif; font-size:1.02rem; color:var(--navy-900); }
  .faq-plus{ font-family:var(--sans); font-size:1.4rem; color:var(--gold-600); transition: transform .35s var(--ease); flex-shrink:0; margin-left:1rem; }
  .faq-item.open .faq-plus{ transform: rotate(45deg); }
  .faq-a{ max-height:0; overflow:hidden; transition: max-height .4s var(--ease); }
  .faq-a p{ padding: 0 .2rem 1.3rem; font-size:.88rem; }
  .faq-item.open .faq-a{ max-height:220px; }

  /* ---------- CTA BANNER ---------- */
  .cta-banner{ background: linear-gradient(135deg,var(--navy-950),var(--navy-800)); border-radius:26px; padding:clamp(2.2rem,5vw,3.4rem); display:flex; justify-content:space-between; align-items:center; gap:2rem; flex-wrap:wrap; position:relative; overflow:hidden; }
  .cta-banner::before{ content:""; position:absolute; width:260px; height:260px; border-radius:50%; background: radial-gradient(circle,rgba(198,161,91,.3),transparent 70%); top:-80px; right:-40px; }

  /* ---------- PDF UPLOAD / BADGE ---------- */
  .file-drop{ border:1.5px dashed rgba(16,25,45,.22); border-radius:12px; padding:1.1rem; text-align:center; background:var(--ivory-100); transition:.25s; cursor:pointer; position:relative; }
  .file-drop:hover, .file-drop.drag{ border-color:var(--gold-500); background: rgba(198,161,91,.08); }
  .file-drop input[type=file]{ position:absolute; inset:0; opacity:0; cursor:pointer; width:100%; height:100%; }
  .file-drop svg{ width:22px; height:22px; stroke:var(--gold-600); fill:none; stroke-width:1.6; margin-bottom:.4rem; }
  .file-drop .fd-text{ font-size:.8rem; color:var(--ink-soft); font-weight:600; }
  .file-drop .fd-sub{ font-family:var(--mono); font-size:.65rem; color:var(--ink-soft); opacity:.7; margin-top:.15rem; }
  .file-chip{ display:inline-flex; align-items:center; gap:.5rem; background:var(--white); border:1px solid rgba(16,25,45,.14); border-radius:999px; padding:.4rem .5rem .4rem .8rem; font-size:.78rem; font-weight:600; color:var(--navy-800); margin-top:.6rem; }
  .file-chip svg{ width:14px; height:14px; stroke:#b3261e; fill:none; stroke-width:2; cursor:pointer; }
  .pdf-badge{ display:inline-flex; align-items:center; gap:.3rem; font-family:var(--mono); font-size:.62rem; letter-spacing:.06em; text-transform:uppercase; background: rgba(179,38,30,.08); color:#b3261e; padding:.3rem .55rem; border-radius:999px; font-weight:700; }
  .pdf-badge svg{ width:11px; height:11px; stroke:currentColor; fill:none; stroke-width:2.2; }
  .pdf-view-btn{ display:inline-flex; align-items:center; gap:.4rem; background: var(--navy-950); color:var(--gold-300); border:none; padding:.6rem .95rem; border-radius:10px; font-size:.78rem; font-weight:700; margin-top:.2rem; transition:.3s; }
  .pdf-view-btn:hover{ background: var(--navy-800); }
  .pdf-view-btn svg{ width:14px; height:14px; stroke:currentColor; fill:none; stroke-width:2; }

  /* ---------- PDF MODAL ---------- */
  .pdf-modal{ position:fixed; inset:0; z-index:9997; display:flex; align-items:center; justify-content:center; padding:2rem; opacity:0; visibility:hidden; transition:.35s; background: rgba(12,18,33,.72); backdrop-filter: blur(6px); }
  .pdf-modal.show{ opacity:1; visibility:visible; }
  .pdf-modal-inner{ background:var(--white); border-radius:18px; width:min(920px,100%); height:min(88vh,900px); display:flex; flex-direction:column; overflow:hidden; box-shadow: 0 40px 90px rgba(0,0,0,.4); transform: scale(.96); transition:.35s var(--ease); }
  .pdf-modal.show .pdf-modal-inner{ transform:none; }
  .pdf-modal-head{ display:flex; align-items:center; justify-content:space-between; padding:1rem 1.3rem; border-bottom:1px solid rgba(16,25,45,.08); gap:1rem; }
  .pdf-modal-head h4{ font-size:.95rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .pdf-modal-actions{ display:flex; gap:.5rem; flex-shrink:0; }
  .pdf-modal-body{ flex:1; background:var(--ivory-200); position:relative; }
  .pdf-modal-body iframe{ width:100%; height:100%; border:none; }
  .pdf-modal-loading{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; flex-direction:column; gap:.8rem; color:var(--ink-soft); font-size:.85rem; }
  .pdf-modal-loading .spinner{ width:26px; height:26px; border-width:3px; border-top-color:var(--gold-500); border-color:rgba(16,25,45,.15); }

  @media (max-width:760px){
    .process-track{ grid-template-columns:1fr; }
    .process-line{ display:none; }
    .pdf-modal{ padding:.6rem; }
  }

  @media (prefers-reduced-motion: reduce){
    *{ animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
  }

/* ---------- Config warning banner ---------- */
.config-warning{
  position:fixed; left:0; right:0; bottom:0; z-index:9996;
  background:#7a2b1f; color:#fff3ea; font-family:var(--mono); font-size:.75rem;
  text-align:center; padding:.7rem 1rem; letter-spacing:.02em;
}
.config-warning code{ background:rgba(255,255,255,.15); padding:.15rem .4rem; border-radius:4px; }
