  *{box-sizing:border-box;margin:0}
  html{scroll-behavior:smooth}
  body{background:#1c1712;font-family:"Plus Jakarta Sans",system-ui,sans-serif;font-size:16px;line-height:1.6}
  img{max-width:100%}
  button{font-family:inherit;cursor:pointer}
  a{text-decoration:none}

  /* ============ palette tokens ============ */
  .pc{
    --photo-filter:none;
    --overlay:transparent;
    --below-bg:rgba(243,236,226,.6);
    --below-line:rgba(255,255,255,.5);
    --card1:rgba(250,246,238,.72);
    --card2:rgba(250,246,238,.46);
    --card-border:rgba(255,255,255,.65);
    --card-hi:rgba(255,255,255,.75);
    --card-shadow:rgba(60,44,24,.14);
    --ink:#33291f;
    --body-c:#6b5c48;
    --muted:#7d6c54;
    --muted-strong:#8a6a1c;
    --accent:#b5712f;
    --accent-h:#a2621f;
    --accent-ink:#ffffff;
    --zone:linear-gradient(90deg,#c9a05a,#b5712f);
    --zone-neutral:rgba(125,108,84,.4);
    --band-bg:rgba(255,255,255,.5);
    --band-border:rgba(255,255,255,.7);
    --dot-fill:#33291f;
    --dot-ring:#f3ece2;
    --quiet-bg:rgba(255,255,255,.35);
    --quiet-border:rgba(255,255,255,.7);
    --feat-bg1:rgba(51,41,31,.9);
    --feat-bg2:rgba(51,41,31,.78);
    --feat-border:rgba(201,160,90,.4);
    --feat-hi:rgba(201,160,90,.35);
    --feat-ink:#f3ece2;
    --feat-body:#c2b39c;
    --navglass:rgba(42,33,24,.5);
    --nav-ink:#ffffff;
    --step-line:rgba(125,108,84,.25);
    --ring-track:rgba(255,255,255,.6);
    --input-bg:rgba(255,255,255,.6);
    --input-border:rgba(125,108,84,.35);
    --ok:#0a7a48; --warn:#9a6206; --bad:#b02a2a;
    --ok-bg:rgba(11,169,98,.14); --warn-bg:rgba(245,158,11,.16); --bad-bg:rgba(239,68,68,.14);
  }
  .pc[data-pal="2"]{
    --overlay:linear-gradient(180deg,rgba(12,59,42,.16),rgba(12,59,42,.1));
    --below-bg:rgba(236,244,239,.62);
    --card1:rgba(248,252,249,.74);
    --card2:rgba(248,252,249,.46);
    --card-shadow:rgba(12,59,42,.14);
    --ink:#0c3b2a;
    --body-c:#4a5c52;
    --muted:#5f7066;
    --muted-strong:#0a7a48;
    --accent:#0ba962;
    --accent-h:#0a9155;
    --zone:linear-gradient(90deg,#1fd187,#0ba962);
    --zone-neutral:rgba(107,122,114,.38);
    --dot-fill:#0c3b2a;
    --dot-ring:#eef4f0;
    --feat-bg1:rgba(12,59,42,.9);
    --feat-bg2:rgba(12,59,42,.78);
    --feat-border:rgba(125,224,180,.4);
    --feat-hi:rgba(125,224,180,.32);
    --feat-ink:#ffffff;
    --feat-body:#9dbfae;
    --navglass:rgba(12,32,23,.52);
    --step-line:rgba(12,59,42,.18);
    --input-border:rgba(12,59,42,.3);
  }
  .pc[data-pal="3"]{
    --photo-filter:saturate(.92) brightness(.92);
    --overlay:linear-gradient(180deg,rgba(7,13,10,.38),rgba(7,13,10,.3));
    --below-bg:rgba(10,17,13,.66);
    --below-line:rgba(255,255,255,.16);
    --card1:rgba(16,26,20,.72);
    --card2:rgba(16,26,20,.5);
    --card-border:rgba(255,255,255,.2);
    --card-hi:rgba(255,255,255,.16);
    --card-shadow:rgba(0,0,0,.4);
    --ink:#eef5f0;
    --body-c:#b9ccc0;
    --muted:#8aa093;
    --muted-strong:#7de0b4;
    --accent:#1fd187;
    --accent-h:#27d6a6;
    --accent-ink:#0c3b2a;
    --zone:linear-gradient(90deg,#1fd187,#0ba962);
    --zone-neutral:rgba(255,255,255,.22);
    --band-bg:rgba(255,255,255,.1);
    --band-border:rgba(255,255,255,.2);
    --dot-fill:#eef5f0;
    --dot-ring:#0f1a14;
    --quiet-bg:rgba(255,255,255,.1);
    --quiet-border:rgba(255,255,255,.3);
    --feat-bg1:rgba(31,209,135,.22);
    --feat-bg2:rgba(31,209,135,.1);
    --feat-border:rgba(125,224,180,.45);
    --feat-hi:rgba(125,224,180,.3);
    --feat-ink:#ffffff;
    --feat-body:#a9d8bf;
    --navglass:rgba(8,14,11,.6);
    --step-line:rgba(255,255,255,.14);
    --ring-track:rgba(255,255,255,.18);
    --input-bg:rgba(255,255,255,.08);
    --input-border:rgba(255,255,255,.25);
    --ok:#7de0b4; --warn:#eec27a; --bad:#f0a0a0;
    --ok-bg:rgba(18,51,31,.8); --warn-bg:rgba(58,42,23,.8); --bad-bg:rgba(58,29,29,.8);
  }
  .pc[data-pal="4"]{
    --photo-filter:grayscale(.45) saturate(.9) brightness(1.03);
    --overlay:linear-gradient(180deg,rgba(198,209,218,.2),rgba(198,209,218,.12));
    --below-bg:rgba(235,239,242,.62);
    --card1:rgba(251,252,253,.74);
    --card2:rgba(251,252,253,.46);
    --card-border:rgba(255,255,255,.75);
    --card-shadow:rgba(34,49,58,.14);
    --ink:#22282e;
    --body-c:#4c565e;
    --muted:#71808a;
    --muted-strong:#0891b2;
    --accent:#0891b2;
    --accent-h:#07789a;
    --zone:linear-gradient(90deg,#3fb8d4,#0891b2);
    --zone-neutral:rgba(113,128,138,.36);
    --dot-fill:#22282e;
    --dot-ring:#eef1f3;
    --feat-bg1:rgba(30,41,49,.9);
    --feat-bg2:rgba(30,41,49,.78);
    --feat-border:rgba(120,200,222,.4);
    --feat-hi:rgba(120,200,222,.3);
    --feat-ink:#ffffff;
    --feat-body:#a9c2ce;
    --navglass:rgba(24,32,38,.55);
    --step-line:rgba(34,49,58,.16);
    --input-border:rgba(34,49,58,.3);
  }

  /* ============ chrome ============ */
  .pc{position:relative;min-height:100dvh;background:#1c1712;color:var(--body-c)}
  .pc .bgfx{position:fixed;inset:0;z-index:0;pointer-events:none;background-image:url('/assets/img/hero.jpg');background-size:cover;background-position:center;filter:var(--photo-filter);transition:filter .5s}
  .pc .bgtint{position:fixed;inset:0;z-index:0;pointer-events:none;background:var(--overlay);transition:background .5s}
  #topnav{position:fixed;top:18px;left:34px;right:34px;z-index:50;display:flex;align-items:center;padding:11px 20px;gap:22px;
    background:var(--navglass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.28);border-radius:999px;box-shadow:inset 0 1px 0 rgba(255,255,255,.25)}
  #topnav .logo{color:var(--nav-ink);font-weight:700;letter-spacing:.22em;font-size:14px}
  #topnav .links{margin-left:auto;display:flex;gap:20px;font-size:13.5px;font-weight:600;align-items:center}
  #topnav .links a{color:var(--nav-ink);opacity:.82;padding:4px 2px;border-bottom:2px solid transparent}
  #topnav .links a:hover{opacity:1}
  #topnav .links a.on{opacity:1;border-bottom-color:var(--accent)}
  #topnav .navcta{background:var(--accent);color:var(--accent-ink);border:none;border-radius:999px;padding:8px 18px;font-weight:700;font-size:13px}
  #topnav .navcta:hover{background:var(--accent-h)}

  .route{display:none}
  .route.active{display:block}

  /* home hero */
  .heroimg{position:relative;z-index:1;min-height:92dvh;display:flex;align-items:flex-end}
  .glasshero{margin:0 0 54px 54px;max-width:520px;background:linear-gradient(135deg,var(--card1),var(--card2));backdrop-filter:blur(20px) saturate(140%);-webkit-backdrop-filter:blur(20px) saturate(140%);
    border:1px solid var(--card-border);border-radius:26px;padding:34px 36px;box-shadow:inset 0 1px 0 var(--card-hi),0 24px 70px rgba(20,14,7,.4)}
  .pc h1{font-family:Lora,Georgia,serif;font-weight:600;font-size:clamp(1.7rem,3vw,2.4rem);line-height:1.18;color:var(--ink);text-wrap:balance}
  .glasshero p{margin-top:12px;font-size:15px;color:var(--body-c);max-width:40ch}
  .ctarow{display:flex;gap:12px;margin-top:22px;flex-wrap:wrap}
  .cta{background:var(--accent);color:var(--accent-ink);border:none;border-radius:999px;padding:11px 26px;font-weight:700;font-size:14px;transition:background .15s,transform .15s}
  .cta:hover{background:var(--accent-h);transform:translateY(-2px)}
  .quiet{background:var(--quiet-bg);color:var(--ink);border:1px solid var(--quiet-border);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-radius:999px;padding:11px 26px;font-weight:700;font-size:14px}

  /* frosted page ground (below-fold on home, whole page elsewhere) */
  .frost{position:relative;z-index:1;border-top:1px solid var(--below-line);
    background-image:linear-gradient(var(--below-bg),var(--below-bg)),url('/assets/img/hero-blur.jpg');
    background-size:auto,cover;background-position:center;background-attachment:scroll,fixed}
  .frost.pagetop{border-top:none;min-height:100dvh;padding-top:104px}
  .shell{max-width:900px;margin:0 auto;padding:0 28px}
  .pc section{padding:52px 0}
  .gcard{background:linear-gradient(135deg,var(--card1),var(--card2));backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--card-border);border-radius:22px;box-shadow:inset 0 1px 0 var(--card-hi),0 16px 44px var(--card-shadow)}
  .pc h2{font-family:Lora,serif;font-weight:600;font-size:1.6rem;color:var(--ink);margin-bottom:24px;text-wrap:balance}
  .pc .pagelede{font-size:15.5px;color:var(--body-c);max-width:58ch;margin:-10px 0 8px}
  .pc h3{color:var(--ink)}

  .ranges{display:grid;grid-template-columns:1fr 1fr;gap:18px}
  .range{padding:24px}
  .range h3{font-size:13px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:14px;font-family:"Plus Jakarta Sans",sans-serif}
  .range.opt h3{color:var(--muted-strong)}
  .band{height:10px;border-radius:99px;background:var(--band-bg);position:relative;border:1px solid var(--band-border)}
  .band .zone{position:absolute;top:0;bottom:0;border-radius:99px;background:var(--zone-neutral)}
  .range.opt .band .zone,.band .zone.hot{background:var(--zone)}
  .band .dot{position:absolute;top:50%;transform:translate(-50%,-50%);width:18px;height:18px;border-radius:99px;background:var(--dot-fill);border:3px solid var(--dot-ring)}
  .range p{font-size:14px;color:var(--body-c);margin-top:12px;max-width:36ch}

  .steps{display:flex;flex-direction:column;padding:8px 26px}
  .step{display:flex;gap:26px;align-items:baseline;padding:20px 0;border-top:1px solid var(--step-line)}
  .step:first-child{border-top:none}
  .stepnum{font-family:Lora,serif;font-style:italic;font-size:1.4rem;color:var(--accent);min-width:36px}
  .step h3{font-family:Lora,serif;font-size:1.15rem;min-width:150px}
  .step p{font-size:14.5px;color:var(--body-c)}

  .peek{display:flex;gap:34px;align-items:center;flex-wrap:wrap;padding:30px}
  .peek .txt{flex:1;min-width:240px}
  .peek p{font-size:14.5px;color:var(--body-c);max-width:44ch}
  .ring-track{stroke:var(--ring-track)}
  .ring-arc{stroke:var(--accent)}
  .ring-num{fill:var(--ink)}

  .tierline{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px}
  .tier{flex:1;min-width:200px;padding:22px;display:flex;flex-direction:column;gap:8px}
  .tier h3{font-family:Lora,serif;font-size:1.05rem;margin-bottom:2px}
  .tier p{font-size:13.5px;color:var(--body-c)}
  .tier ul{margin:6px 0 0;padding-left:18px;font-size:13.5px;color:var(--body-c)}
  .tier li{margin:4px 0}
  .tier .tierbtn{margin-top:14px;border-radius:999px;padding:9px 0;text-align:center;font-weight:700;font-size:13.5px;border:1px solid var(--quiet-border);background:var(--quiet-bg);color:var(--ink)}
  .tier.featured{background:linear-gradient(150deg,var(--feat-bg1),var(--feat-bg2));backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--feat-border);border-radius:22px;box-shadow:inset 0 1px 0 var(--feat-hi),0 16px 44px rgba(10,8,4,.3);position:relative}
  .tier.featured h3{color:var(--feat-ink)}
  .tier.featured p,.tier.featured ul{color:var(--feat-body)}
  .tier.featured .tierbtn{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
  .poptag{position:absolute;top:-11px;left:20px;background:var(--accent);color:var(--accent-ink);font-size:11px;font-weight:800;border-radius:99px;padding:3px 12px;letter-spacing:.06em}

  .disc{margin-top:30px;font-size:13.5px;color:var(--muted);padding:16px 22px}
  .disc b{color:var(--muted-strong);letter-spacing:.08em}
  .closing{text-align:center;padding:64px 0 56px}
  .pc footer{padding:26px 0 90px;color:var(--muted);font-size:13px;display:flex;gap:18px;justify-content:center;flex-wrap:wrap}

  /* science page */
  .statrow{display:flex;gap:14px;flex-wrap:wrap}
  .stat{flex:1;min-width:160px;padding:22px;text-align:center}
  .stat b{display:block;font-family:Lora,serif;font-size:2rem;color:var(--ink);font-variant-numeric:tabular-nums}
  .stat span{font-size:13px;color:var(--muted);font-weight:600}
  .domains{display:flex;gap:8px;flex-wrap:wrap;padding:22px}
  .domchip{font-size:13px;font-weight:600;color:var(--ink);background:var(--quiet-bg);border:1px solid var(--quiet-border);border-radius:999px;padding:7px 14px}

  /* pricing */
  .pricenote{font-size:13px;color:var(--muted);margin-top:16px}

  /* sample report shell */
  .repframe{padding:0;overflow:hidden;height:min(82vh,900px)}
  .repframe iframe{display:block;width:100%;height:100%;border:0;background:#e6e4df}
  .demobanner{padding:12px 18px;font-size:13px;font-weight:600;color:var(--muted-strong);margin-bottom:18px}
  .repshell{display:flex;gap:0;overflow:hidden;border-radius:22px}
  .reprail{background:linear-gradient(150deg,var(--feat-bg1),var(--feat-bg2));min-width:170px;padding:22px 0;display:flex;flex-direction:column}
  .reprail a{padding:9px 20px;font-size:13px;font-weight:600;color:var(--feat-body)}
  .reprail a.on{color:var(--feat-ink);background:rgba(255,255,255,.14);font-weight:700}
  .repmain{flex:1;padding:26px;display:flex;flex-direction:column;gap:16px;min-width:260px}
  .reptop{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
  .reptop .who{font-size:13px;color:var(--muted)}
  .reptop .who b{display:block;font-family:Lora,serif;font-size:1.2rem;color:var(--ink)}
  .chips{display:flex;gap:8px;flex-wrap:wrap}
  .chip{font-size:12px;font-weight:700;border-radius:999px;padding:6px 12px}
  .c-ok{background:var(--ok-bg);color:var(--ok)}
  .c-warn{background:var(--warn-bg);color:var(--warn)}
  .c-bad{background:var(--bad-bg);color:var(--bad)}
  .priority{background:linear-gradient(150deg,var(--feat-bg1),var(--feat-bg2));color:var(--feat-body);border:1px solid var(--feat-border);border-radius:16px;padding:14px 16px;font-size:14px}
  .priority b{color:var(--feat-ink);display:block;font-size:11px;text-transform:uppercase;letter-spacing:.12em;margin-bottom:4px}

  /* faq */
  .faq details{border-radius:18px;margin-bottom:12px;overflow:hidden}
  .faq summary{cursor:pointer;list-style:none;padding:18px 22px;font-weight:700;color:var(--ink);font-size:15px;display:flex;justify-content:space-between;align-items:center}
  .faq summary::after{content:"+";font-weight:400;font-size:20px;color:var(--muted)}
  .faq details[open] summary::after{content:"\2212"}
  .faq summary:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
  .faq .ans{padding:0 22px 18px;font-size:14.5px;color:var(--body-c);max-width:64ch}

  /* get started */
  .startgrid{display:grid;grid-template-columns:1.1fr .9fr;gap:18px;align-items:start}
  .form{padding:26px;display:flex;flex-direction:column;gap:16px}
  .field{display:flex;flex-direction:column;gap:6px}
  .field label{font-size:13px;font-weight:700;color:var(--ink)}
  .field input{background:var(--input-bg);border:1px solid var(--input-border);border-radius:12px;padding:11px 14px;font:inherit;font-size:14.5px;color:var(--ink)}
  .field input::placeholder{color:var(--muted)}
  .field input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
  .field .help{font-size:12.5px;color:var(--muted)}
  .selchip{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
  .selchip .sel{background:var(--quiet-bg);color:var(--muted-strong);border:1px solid var(--quiet-border);font-size:13px;font-weight:700;border-radius:999px;padding:8px 16px}
  .selchip a{font-size:13px;font-weight:600;color:var(--muted-strong)}
  .bookbox{padding:26px;text-align:center;color:var(--muted);font-size:13.5px;border:2px dashed var(--input-border);border-radius:18px;background:var(--quiet-bg)}
  .startnote{font-size:12.5px;color:var(--muted);text-align:center;margin-top:10px}


  /* ===== client app ===== */
  .flowbar{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0 10px}
  .flowbar a{font-size:12.5px;font-weight:700;color:var(--muted);background:var(--quiet-bg);border:1px solid var(--quiet-border);border-radius:999px;padding:7px 14px}
  .flowbar a.on{color:var(--accent-ink);background:var(--accent);border-color:var(--accent)}
  .qgroup{padding:24px;margin-bottom:16px}
  .qgroup h3{font-family:Lora,serif;font-size:1.1rem;margin-bottom:14px}
  .qrow{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}
  .qrow:last-child{margin-bottom:0}
  .qrow label{font-size:13px;font-weight:700;color:var(--ink)}
  .qrow select,.qrow input{background:var(--input-bg);border:1px solid var(--input-border);border-radius:12px;padding:11px 14px;font:inherit;font-size:14.5px;color:var(--ink);max-width:420px}
  .qrow select:focus-visible,.qrow input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
  .qchips{display:flex;gap:8px;flex-wrap:wrap}
  .qchips button{font-size:13px;font-weight:600;color:var(--ink);background:var(--quiet-bg);border:1px solid var(--quiet-border);border-radius:999px;padding:8px 15px}
  .qchips button[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
  .qchips button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
  .progress{height:8px;border-radius:99px;background:var(--band-bg);border:1px solid var(--band-border);overflow:hidden;margin:10px 0 26px;max-width:420px}
  .progress i{display:block;height:100%;width:40%;background:var(--zone)}
  .dropzone{border:2px dashed var(--input-border);border-radius:20px;background:var(--quiet-bg);padding:44px 26px;text-align:center;color:var(--muted);font-size:14.5px}
  .dropzone b{display:block;color:var(--ink);font-size:1.05rem;margin-bottom:6px;font-family:Lora,serif}
  .parseok{padding:20px 24px;margin-top:16px;display:flex;gap:20px;align-items:center;flex-wrap:wrap}
  .parseok .big{font-family:Lora,serif;font-size:2rem;color:var(--ink);font-variant-numeric:tabular-nums}
  .parseok p{font-size:13.5px;color:var(--body-c);max-width:46ch}
  .parseerr{margin-top:16px;padding:18px 22px;border:1px solid rgba(239,68,68,.5);border-radius:18px;background:var(--bad-bg);color:var(--bad);font-size:14px}
  .parseerr b{display:block;margin-bottom:4px}
  .timeline{padding:26px;display:flex;flex-direction:column;gap:0}
  .tstep{display:flex;gap:18px;padding:14px 0;align-items:flex-start}
  .tdot{width:14px;height:14px;border-radius:99px;margin-top:5px;flex:none;background:var(--zone-neutral)}
  .tstep.done .tdot{background:var(--accent)}
  .tstep.now .tdot{background:var(--accent);animation:pulse 1.6s infinite}
  @keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(11,169,98,.45)}50%{box-shadow:0 0 0 8px rgba(11,169,98,0)}}
  .tstep b{display:block;color:var(--ink);font-size:14.5px}
  .tstep span{font-size:13px;color:var(--muted)}
  .tstep.pending b{color:var(--muted)}
  .readycard{margin-top:18px;padding:24px;display:flex;gap:18px;align-items:center;flex-wrap:wrap;border:1px solid var(--feat-border);background:linear-gradient(150deg,var(--feat-bg1),var(--feat-bg2));border-radius:22px;color:var(--feat-body)}
  .readycard b{display:block;font-family:Lora,serif;font-size:1.2rem;color:var(--feat-ink)}
  /* report dashboard */
  .repgrid{display:grid;grid-template-columns:190px 1fr 1fr;gap:16px;align-items:start}
  .apprail{padding:14px 0;display:flex;flex-direction:column;position:sticky;top:104px}
  .apprail a{padding:8px 18px;font-size:13px;font-weight:600;color:var(--body-c);border-radius:0}
  .apprail a.on{color:var(--ink);background:var(--quiet-bg);font-weight:700}
  .repcol{display:flex;flex-direction:column;gap:16px}
  .scorecard{padding:22px;display:flex;gap:16px;align-items:center;cursor:pointer}
  .scorecard:hover{transform:translateY(-2px)}
  .scorecard .lab{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
  .scorecard .val{font-family:Lora,serif;font-size:1.7rem;color:var(--ink);font-variant-numeric:tabular-nums}
  .scorecard .sub{font-size:12.5px;color:var(--muted)}
  .prioritycard{padding:22px;cursor:pointer;background:linear-gradient(150deg,var(--feat-bg1),var(--feat-bg2));border:1px solid var(--feat-border);border-radius:22px;box-shadow:inset 0 1px 0 var(--feat-hi),0 16px 44px rgba(10,8,4,.3)}
  .prioritycard:hover{transform:translateY(-2px)}
  .prioritycard .lab{font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--feat-ink);opacity:.85}
  .prioritycard h3{font-family:Lora,serif;color:var(--feat-ink);font-size:1.25rem;margin:8px 0 6px}
  .prioritycard p{font-size:13.5px;color:var(--feat-body)}
  .prioritycard .go{margin-top:12px;font-size:13px;font-weight:700;color:var(--feat-ink)}
  .gentle{padding:20px 22px}
  .gentle .lab{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:12px}
  .gentle .chips{display:flex;flex-direction:column;gap:8px}
  .gentle .chip{cursor:pointer;text-align:left;border:none;font-family:inherit}
  .bodymap{padding:20px;position:relative;min-height:380px;display:flex;flex-direction:column}
  .bodymap .lab{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
  .bodymap .slot{flex:1;margin-top:12px;border:2px dashed var(--input-border);border-radius:18px;position:relative;background:var(--quiet-bg);min-height:280px}
  .bodymap .slotnote{position:absolute;bottom:10px;left:0;right:0;text-align:center;font-size:11.5px;color:var(--muted);padding:0 14px}
  .hotspot{position:absolute;display:flex;align-items:center;gap:8px;background:none;border:none;padding:0;cursor:pointer}
  .hotspot i{width:14px;height:14px;border-radius:99px;background:var(--accent);animation:pulse 1.8s infinite;flex:none}
  .hotspot span{font-size:11.5px;font-weight:700;color:var(--ink);background:var(--card1);border:1px solid var(--card-border);border-radius:999px;padding:4px 10px;white-space:nowrap}
  .hotspot:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
  .mapnote{margin-top:10px;font-size:12px;color:var(--muted)}
  .secstrip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
  .secmini{padding:16px;font-size:12.5px;color:var(--muted)}
  .secmini b{display:block;font-size:13.5px;color:var(--ink);margin-bottom:3px}
  /* modal (M92: every card expands) */
  #modal{position:fixed;inset:0;z-index:200;display:none;align-items:center;justify-content:center;padding:24px}
  #modal.open{display:flex}
  #modal .scrim{position:absolute;inset:0;background:rgba(10,12,10,.55);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
  #modal .dialog{position:relative;max-width:560px;width:100%;max-height:82dvh;overflow-y:auto;padding:30px 32px;border-radius:24px;
    background:linear-gradient(135deg,var(--card1),var(--card2));backdrop-filter:blur(20px) saturate(150%);-webkit-backdrop-filter:blur(20px) saturate(150%);
    border:1px solid var(--card-border);box-shadow:inset 0 1px 0 var(--card-hi),0 30px 90px rgba(0,0,0,.4)}
  #modal .dialog h3{font-family:Lora,serif;font-size:1.35rem;color:var(--ink);margin-bottom:12px;padding-right:40px}
  #modal .dialog p{font-size:14.5px;color:var(--body-c);margin-bottom:12px;max-width:60ch}
  #modal .dialog .cite{font-size:12px;color:var(--muted)}
  #modal .x{position:absolute;top:18px;right:18px;width:34px;height:34px;border-radius:99px;border:1px solid var(--quiet-border);background:var(--quiet-bg);color:var(--ink);font-size:16px;font-weight:700}
  #modal .x:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
  @media(max-width:860px){
    .repgrid{grid-template-columns:1fr}
    .apprail{position:static;flex-direction:row;overflow-x:auto;padding:0}
    .apprail a{white-space:nowrap}
    .secstrip{grid-template-columns:1fr 1fr}
  }

  /* dock */
  #dock{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);z-index:99;display:flex;align-items:center;gap:6px;
    background:rgba(16,20,18,.78);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:6px 10px 6px 14px;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 12px 40px rgba(0,0,0,.35)}
  #dock .dlabel{color:#e4ece7;font-size:12px;font-weight:600;margin-right:4px;white-space:nowrap}
  #dock button{width:34px;height:34px;border-radius:999px;border:1px solid rgba(255,255,255,.25);font-weight:700;font-size:12px;color:#fff}
  #dock button[data-pal="1"]{background:#b5712f}
  #dock button[data-pal="2"]{background:#0ba962}
  #dock button[data-pal="3"]{background:#10241a}
  #dock button[data-pal="4"]{background:#0891b2}
  #dock button.on{outline:2px solid #fff;outline-offset:2px}
  #dock button:focus-visible{outline:2px solid #27d6a6;outline-offset:2px}

  @media(max-width:860px){
    .ranges,.startgrid{grid-template-columns:1fr}
    #topnav .links a{display:none}
    #topnav .links .navcta{display:inline-block}
    .glasshero{margin:0 18px 32px}
    #topnav{left:18px;right:18px}
    .repshell{flex-direction:column}
    .reprail{flex-direction:row;overflow-x:auto;min-width:0;padding:0}
    .reprail a{white-space:nowrap}
    .reprail a.on{background:rgba(255,255,255,.18)}
  }
  @media (prefers-reduced-transparency: reduce){
    .gcard,.glasshero,#topnav{backdrop-filter:none;-webkit-backdrop-filter:none}
  }
  #dock{display:none}
  #dock.enabled{display:flex}

/* the hidden attribute must beat any display rule below */
[hidden]{display:none!important}
