/* Hallmark · macrostructure: Marquee Hero (+HP3 cursor-spotlight) · tone: premium editorial-technical · anchor hue: chartreuse
 * genre: editorial · nav: N5 floating pill · footer: Ft8 marquee scroll
 * enrichment: real dossier cover plates (rendered from the printed PDFs) in a parallax depth-stack
 * motion primitives: reveal · pointer-parallax/tilt · count-up   (all cut under prefers-reduced-motion)
 * pre-emit critique: P5 H5 E5 S5 R4 V5
 */
@import url('tokens.css?v=2');

*,*::before,*::after{box-sizing:border-box}
html,body{overflow-x:clip}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--color-paper);color:var(--color-ink);
  font-family:var(--font-body);font-size:var(--text-base);line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:var(--font-display);font-style:normal;letter-spacing:-.03em;margin:0;
  overflow-wrap:anywhere;min-width:0}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
:where(a,button,dialog):focus-visible{outline:2px solid var(--color-focus);outline-offset:3px;border-radius:var(--radius-sm)}
.skip{position:absolute;left:-9999px}
.skip:focus{left:var(--space-md);top:var(--space-md);z-index:90;background:var(--color-accent);
  color:var(--color-accent-ink);padding:12px 18px;border-radius:var(--radius-pill);
  font-family:var(--font-display);font-weight:600;font-size:var(--text-sm)}
.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:clamp(1.15rem,4vw,2.5rem)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

/* ── reveal primitive ─────────────────────────
   Hidden ONLY when the motion layer is alive (html.js). No JS → everything
   is simply visible; nothing on this page depends on a script to be readable. */
.js [data-reveal]{opacity:0;transform:translate3d(0,26px,0);
  transition:opacity var(--dur-slow) var(--ease-out),transform var(--dur-slow) var(--ease-out);
  transition-delay:var(--d,0ms)}
.js [data-reveal].in{opacity:1;transform:none}

/* ── N5 · floating pill nav ─────────────────── */
.pill{position:fixed;z-index:60;top:clamp(12px,2vw,22px);left:50%;transform:translateX(-50%);
  display:flex;align-items:center;gap:clamp(10px,2vw,22px);
  padding:9px 9px 9px 20px;border-radius:var(--radius-pill);
  background:rgba(13,13,15,.72);backdrop-filter:blur(14px) saturate(1.4);
  border:1px solid var(--color-rule);box-shadow:0 18px 50px -24px rgba(0,0,0,.9);
  width:calc(100% - clamp(1.15rem,4vw,2.5rem)*2);max-width:640px;
  transition:transform var(--dur-mid) var(--ease-out),opacity var(--dur-mid) var(--ease-out)}
.pill.hide{transform:translateX(-50%) translateY(-140%);opacity:0}
.pill .mark{font-family:var(--font-display);font-weight:700;font-size:var(--text-sm);white-space:nowrap}
.pill .mark i{font-style:normal;color:var(--color-accent)}
.pill nav{display:flex;gap:clamp(10px,2vw,18px);margin-left:auto}
.pill nav a{font-size:var(--text-sm);color:var(--color-muted);white-space:nowrap;
  transition:color var(--dur-fast) var(--ease-out)}
.pill nav a:hover{color:var(--color-ink)}
.pill .cta{background:var(--color-accent);color:var(--color-accent-ink);border-radius:var(--radius-pill);
  font-family:var(--font-display);font-weight:600;font-size:var(--text-sm);padding:10px 18px;white-space:nowrap;
  transition:transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-mid) var(--ease-out)}
.pill .cta:hover{transform:translateY(-1px);box-shadow:0 10px 30px -12px var(--color-accent)}

/* ── hero ───────────────────────────────────── */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;overflow:clip;
  padding-block:clamp(120px,16vh,190px) clamp(60px,9vh,110px)}
.hero .spot{position:absolute;inset:0;pointer-events:none;z-index:0;
  background:radial-gradient(560px circle at var(--mx,50%) var(--my,32%),rgba(199,242,77,.11),transparent 62%)}
.hero .veil{position:absolute;inset:0;pointer-events:none;z-index:0;
  background:
    radial-gradient(900px 520px at 82% 18%,rgba(52,120,246,.10),transparent 70%),
    radial-gradient(760px 460px at 10% 82%,rgba(124,108,248,.09),transparent 70%)}
.hero .wrap{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);
  gap:clamp(28px,5vw,64px);align-items:center;width:100%}

.eyebrow{display:inline-flex;align-items:center;gap:9px;border:1px solid var(--color-rule);
  border-radius:var(--radius-pill);padding:8px 16px;font-size:var(--text-xs);
  letter-spacing:.16em;text-transform:uppercase;color:var(--color-muted);background:rgba(255,255,255,.02)}
.eyebrow::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--color-accent);
  box-shadow:0 0 0 4px rgba(199,242,77,.16)}
.hero h1{margin-top:var(--space-md);font-weight:700;line-height:.94;
  font-size:clamp(2.9rem,8.2vw,6.25rem)}
.hero h1 .l{display:block;overflow:hidden}
.hero h1 .l>span{display:block;transition:transform 1s var(--ease-out);transition-delay:var(--d,0ms)}
.js .hero h1 .l>span{transform:translateY(104%)}
.js .hero.lit h1 .l>span{transform:none}
.hero h1 em{font-style:normal;color:var(--color-accent)}
.hero .sub{margin:var(--space-lg) 0 0;max-width:46ch;color:var(--color-muted);
  font-size:clamp(1rem,1.4vw,var(--text-md));line-height:1.68}
.hero .acts{margin-top:var(--space-xl);display:flex;flex-wrap:wrap;gap:var(--space-sm) var(--space-md);align-items:center}
.btn{display:inline-flex;align-items:center;gap:10px;border-radius:var(--radius-pill);
  font-family:var(--font-display);font-weight:600;font-size:var(--text-base);padding:15px 26px;min-height:48px;
  transition:transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-mid) var(--ease-out),
             background var(--dur-mid) var(--ease-out),border-color var(--dur-mid) var(--ease-out)}
.btn-primary{background:var(--color-accent);color:var(--color-accent-ink)}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 16px 40px -16px var(--color-accent)}
.btn-primary:active{transform:translateY(0)}
.btn-ghost{border:1px solid var(--color-rule);color:var(--color-ink)}
.btn-ghost:hover{border-color:rgba(239,236,227,.34);transform:translateY(-2px)}
.btn .arrow{transition:transform var(--dur-mid) var(--ease-out)}
.btn:hover .arrow{transform:translateX(4px)}

.hero-figures{position:relative;height:clamp(400px,58vh,620px);perspective:1400px}
.hero-figures .fig{position:absolute;width:clamp(132px,14vw,196px);border-radius:10px;overflow:hidden;
  border:1px solid rgba(239,236,227,.12);background:var(--color-paper-3);
  box-shadow:0 40px 90px -40px rgba(0,0,0,.95),0 4px 14px -6px rgba(0,0,0,.6);
  opacity:1;transform:var(--rest);
  transition:opacity 900ms var(--ease-out),transform 900ms var(--ease-out);transition-delay:var(--d,0ms)}
.js .hero-figures .fig{opacity:0;transform:translate3d(0,40px,0) scale(.96)}
.js .hero.lit .hero-figures .fig{opacity:1;transform:var(--rest)}
.hero-figures .fig img{width:100%;height:auto}
.hero-figures .fig::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 55%,rgba(11,11,12,.55));pointer-events:none}
.f1{--rest:translate3d(0,0,0) rotate(-9deg);left:0%;top:7%;z-index:3}
.f2{--rest:translate3d(0,0,0) rotate(2deg);left:27%;top:0%;z-index:6}
.f3{--rest:translate3d(0,0,0) rotate(10deg);left:54%;top:9%;z-index:4}
.f4{--rest:translate3d(0,0,0) rotate(-5deg);left:7%;top:44%;z-index:2}
.f5{--rest:translate3d(0,0,0) rotate(6deg);left:33%;top:50%;z-index:5}
.f6{--rest:translate3d(0,0,0) rotate(-12deg);left:59%;top:43%;z-index:1}

.cue{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);z-index:2;
  display:flex;flex-direction:column;align-items:center;gap:9px;
  font-size:var(--text-xs);letter-spacing:.18em;text-transform:uppercase;color:var(--color-faint)}
.cue i{display:block;width:1px;height:44px;background:linear-gradient(var(--color-faint),transparent);
  animation:drop 2.4s var(--ease-in-out) infinite}
@keyframes drop{0%{transform:scaleY(.3);transform-origin:top;opacity:0}
  45%{transform:scaleY(1);opacity:1}100%{transform:scaleY(.3);transform-origin:bottom;opacity:0}}

/* ── kinetic band ───────────────────────────── */
.band-marquee{border-block:1px solid var(--color-rule);padding-block:var(--space-md);overflow:hidden;
  background:linear-gradient(180deg,rgba(255,255,255,.018),transparent);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent)}
/* two identical halves, each carrying its own trailing gap, so translateX(-50%)
   lands exactly one cycle on — no jump at the seam */
.track{display:flex;width:max-content;animation:slide 58s linear infinite}
.band-marquee:hover .track{animation-play-state:paused}
.track ul{display:flex;align-items:center;gap:clamp(28px,4vw,54px);list-style:none;margin:0;
  padding:0 clamp(28px,4vw,54px) 0 0}
.track li{display:inline-flex;align-items:center;gap:11px;white-space:nowrap;
  font-family:var(--font-display);font-weight:500;font-size:var(--text-sm);
  letter-spacing:.19em;text-transform:uppercase;color:var(--color-muted)}
.track li::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--pc);
  box-shadow:0 0 0 4px color-mix(in oklab,var(--pc) 16%,transparent)}
@keyframes slide{to{transform:translateX(-50%)}}

/* ── the shelf ──────────────────────────────── */
.shelf{padding-block:clamp(70px,10vh,130px)}
.shelf-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-lg);
  align-items:end;padding-bottom:var(--space-xl);border-bottom:1px solid var(--color-rule)}
.shelf-head h2{font-size:clamp(1.9rem,4.4vw,3.1rem);font-weight:700;line-height:1.04;max-width:16ch}
.shelf-head p{margin:0;color:var(--color-muted);max-width:46ch;font-size:var(--text-md);line-height:1.65}

.rows{display:flex;flex-direction:column}
.row{display:grid;grid-template-columns:64px minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(20px,3.4vw,56px);
  align-items:center;padding-block:clamp(44px,6vh,76px);border-bottom:1px solid var(--color-rule-2);
  position:relative}
.row::before{content:"";position:absolute;left:0;top:0;height:1px;width:0;background:var(--pc);
  transition:width 900ms var(--ease-out)}
.row.in::before{width:100%}
.row .idx{font-family:var(--font-display);font-weight:600;font-size:var(--text-sm);color:var(--color-faint);
  letter-spacing:.1em;align-self:start;padding-top:6px}
.row .idx b{display:block;color:var(--pt);font-weight:600}

/* plate with tilt + bloom */
.plate{position:relative;transform-style:preserve-3d;perspective:1000px}
.plate .inner{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--color-rule);
  background:var(--color-paper-3);transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));
  transition:transform var(--dur-mid) var(--ease-out),box-shadow var(--dur-slow) var(--ease-out);
  box-shadow:0 30px 70px -40px rgba(0,0,0,.9)}
.plate:hover .inner{box-shadow:0 46px 90px -40px color-mix(in oklab,var(--pc) 45%,transparent),
  0 30px 70px -44px rgba(0,0,0,.9)}
.plate .inner::after{content:"";position:absolute;inset:0;opacity:0;pointer-events:none;
  background:radial-gradient(420px circle at var(--px,50%) var(--py,50%),
    color-mix(in oklab,var(--pc) 26%,transparent),transparent 62%);
  transition:opacity var(--dur-mid) var(--ease-out)}
.plate:hover .inner::after{opacity:1}
.plate img{width:100%;height:auto;display:block}
.plate .tag{position:absolute;left:14px;top:14px;z-index:2;border-radius:var(--radius-pill);
  padding:6px 13px;font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--pt);
  background:rgba(11,11,12,.74);backdrop-filter:blur(8px);border:1px solid var(--color-rule)}

.row .lede{min-width:0}
.kind{font-size:var(--text-xs);letter-spacing:.16em;text-transform:uppercase;color:var(--color-faint)}
.row h3{margin-top:10px;font-size:clamp(1.75rem,3.6vw,2.6rem);font-weight:700;line-height:1.04}
.row .claim{margin:var(--space-sm) 0 0;font-size:var(--text-md);line-height:1.5}
.row .claim b{color:var(--pt);font-weight:600}
.row .desc{margin:var(--space-sm) 0 0;color:var(--color-muted);font-size:var(--text-base);
  line-height:1.66;max-width:52ch}

.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-md);
  margin-top:var(--space-lg);border-top:1px solid var(--color-rule-2);padding-top:var(--space-md)}
.stats div{min-width:0}
.stats dt{font-family:var(--font-display);font-weight:600;font-size:clamp(1.25rem,2.1vw,1.65rem);
  color:var(--pt);line-height:1;font-variant-numeric:tabular-nums}
.stats dd{margin:7px 0 0;font-size:var(--text-xs);line-height:1.5;color:var(--color-faint)}

.row .acts{display:flex;flex-wrap:wrap;gap:var(--space-sm) var(--space-md);align-items:center;margin-top:var(--space-lg)}
.link{display:inline-flex;align-items:center;gap:9px;min-height:44px;
  font-family:var(--font-display);font-weight:600;font-size:var(--text-base);color:var(--pt)}
.link .arrow{transition:transform var(--dur-mid) var(--ease-out)}
.link:hover .arrow{transform:translateX(5px)}
.link.quiet{color:var(--color-muted)}
.link.quiet:hover{color:var(--color-ink)}
.row:nth-child(even) .plate{order:2}
.row:nth-child(even) .lede{order:1}

/* ── anatomy band (light) ───────────────────── */
.anatomy{background:var(--color-cream);color:var(--color-cream-ink);padding-block:clamp(70px,10vh,130px)}
.anatomy h2{font-size:clamp(1.9rem,4.4vw,3.1rem);font-weight:700;line-height:1.05;max-width:15ch}
.anatomy .intro{margin:var(--space-md) 0 0;max-width:52ch;color:var(--color-cream-muted);font-size:var(--text-md);line-height:1.65}
.pages{margin-top:var(--space-2xl);border-top:1px solid var(--color-cream-rule)}
.page-row{display:grid;grid-template-columns:96px minmax(0,.7fr) minmax(0,1.3fr);gap:var(--space-md);
  align-items:baseline;padding-block:var(--space-md);border-bottom:1px solid var(--color-cream-rule);
  transition:background var(--dur-mid) var(--ease-out)}
.page-row:hover{background:rgba(23,21,15,.035)}
.page-row .n{font-family:var(--font-display);font-weight:600;font-size:var(--text-sm);
  color:var(--color-cream-faint);letter-spacing:.08em;white-space:nowrap}
.page-row h3{font-size:var(--text-md);font-weight:600;letter-spacing:-.01em}
.page-row p{margin:0;color:var(--color-cream-muted);font-size:var(--text-base);line-height:1.6}

/* ── close ──────────────────────────────────── */
.close{padding-block:clamp(70px,10vh,130px) var(--space-xl)}
.close h2{font-size:clamp(2rem,5.4vw,4rem);font-weight:700;line-height:1.06;max-width:17ch}
.close h2 em{font-style:normal;color:var(--color-accent)}
.close .acts{margin-top:var(--space-xl);display:flex;flex-wrap:wrap;gap:var(--space-sm) var(--space-md)}
.foot{border-top:1px solid var(--color-rule);margin-top:var(--space-2xl);padding-top:var(--space-md);
  display:flex;flex-wrap:wrap;gap:var(--space-sm) var(--space-lg);align-items:baseline}
.foot a{color:var(--color-ink);border-bottom:1px solid var(--color-rule);padding-bottom:2px;min-height:32px;
  transition:border-color var(--dur-fast) var(--ease-out)}
.foot a:hover{border-color:var(--color-accent)}
.foot .rights{margin-left:auto;font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--color-faint)}

/* ── dossier viewer ─────────────────────────── */
dialog.viewer{width:min(1060px,92vw);max-height:88vh;padding:0;border:1px solid var(--color-rule);
  border-radius:16px;background:var(--color-paper-2);color:var(--color-ink);overflow:hidden}
dialog.viewer::backdrop{background:rgba(6,6,7,.72);backdrop-filter:blur(7px)}
dialog.viewer[open]{animation:pop var(--dur-mid) var(--ease-out)}
@keyframes pop{from{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:none}}
.viewer .top{position:sticky;top:0;z-index:3;display:flex;align-items:center;gap:var(--space-sm);
  padding:var(--space-md);border-bottom:1px solid var(--color-rule-2);background:var(--color-paper-2)}
.viewer .top .kind{color:var(--pt)}
.viewer .top h3{font-size:var(--text-lg);font-weight:700}
.viewer .x{margin-left:auto;width:40px;height:40px;border-radius:50%;border:1px solid var(--color-rule);
  display:grid;place-items:center;color:var(--color-muted);
  transition:color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}
.viewer .x:hover{color:var(--color-ink);border-color:rgba(239,236,227,.34)}
.viewer .scroll{overflow-y:auto;max-height:calc(88vh - 74px);padding:var(--space-lg) var(--space-md) var(--space-xl)}
.viewer .cols{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:var(--space-lg)}
.viewer .cols img{border-radius:10px;border:1px solid var(--color-rule)}
.viewer h4{font-size:var(--text-sm);letter-spacing:.14em;text-transform:uppercase;color:var(--color-faint);
  font-weight:600;margin-bottom:var(--space-sm)}
.mods{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;
  background:var(--color-rule-2);border:1px solid var(--color-rule-2);border-radius:10px;overflow:hidden}
.mods li{background:var(--color-paper-2);padding:13px 15px;font-size:var(--text-sm);color:var(--color-ink)}
.mods li i{font-style:normal;color:var(--pt);margin-right:9px;font-family:var(--font-display);font-size:var(--text-xs)}
.viewer .stats{margin-top:var(--space-lg);grid-template-columns:repeat(2,minmax(0,1fr))}

/* ── responsive ─────────────────────────────── */
@media (max-width:1040px){
  .hero .wrap{grid-template-columns:minmax(0,1fr)}
  .hero-figures{height:clamp(300px,42vh,420px);margin-top:var(--space-xl)}
  .row{grid-template-columns:44px minmax(0,1fr);gap:var(--space-md) var(--space-lg)}
  .row .plate{grid-column:1/-1;max-width:520px}
  .row:nth-child(even) .plate{order:0}
  .row:nth-child(even) .lede{order:0}
  .shelf-head{grid-template-columns:minmax(0,1fr)}
  .viewer .cols{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:720px){
  .pill{padding-left:16px;gap:10px}
  .pill nav{display:none}
  .pill .cta{margin-left:auto}
  .hero{min-height:auto;padding-block:120px var(--space-2xl)}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .page-row{grid-template-columns:minmax(0,1fr);gap:6px}
  .page-row .n{letter-spacing:.16em}
  .mods{grid-template-columns:minmax(0,1fr)}
  .foot .rights{margin-left:0;width:100%}
  .cue{display:none}
  .row .idx{padding-top:2px}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{animation-duration:.001ms !important;animation-iteration-count:1 !important;
    transition-duration:.001ms !important}
  [data-reveal]{opacity:1;transform:none}
  [data-reveal="mask"]{clip-path:none}
  .hero h1 .l>span{transform:none}
  .hero-figures .fig{opacity:1;transform:var(--rest)}
  .track{animation:none}
}

/* ══════════════════ product pages ══════════════════ */
.product .pill .mark{color:var(--color-ink)}
.p-hero{position:relative;overflow:clip;padding-block:clamp(120px,15vh,180px) clamp(50px,7vh,90px)}
.p-hero .spot{position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(760px 480px at 78% 12%,color-mix(in oklab,var(--pc) 12%,transparent),transparent 70%)}
.p-hero .wrap{position:relative;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);
  gap:clamp(28px,5vw,64px);align-items:center}
.p-hero h1{margin-top:var(--space-md);font-size:clamp(2.6rem,6.6vw,4.75rem);font-weight:700;line-height:1}
.p-hero .claim{margin:var(--space-md) 0 0;font-size:clamp(1.1rem,2vw,1.5rem);line-height:1.35;
  font-family:var(--font-display);font-weight:400}
.p-hero .claim b{color:var(--pt);font-weight:600}
.p-hero .desc{margin:var(--space-md) 0 0;max-width:56ch;color:var(--color-muted);font-size:var(--text-md);line-height:1.66}
.p-hero .stats{grid-template-columns:repeat(4,minmax(0,1fr))}
.p-hero-plate{max-width:360px;justify-self:end;width:100%}

.sec-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-lg);
  align-items:end;padding-bottom:var(--space-xl);border-bottom:1px solid var(--color-rule)}
.sec-head h2{font-size:clamp(1.8rem,4vw,2.8rem);font-weight:700;line-height:1.05;max-width:16ch}
.sec-head p{margin:0;color:var(--color-muted);max-width:46ch;font-size:var(--text-md);line-height:1.65}

.modules{padding-block:clamp(60px,8vh,110px)}
.mod-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--color-rule-2);
  border:1px solid var(--color-rule-2);border-radius:14px;overflow:hidden;margin-top:var(--space-xl)}
.mod{background:var(--color-paper);padding:var(--space-lg) var(--space-md);
  transition:background var(--dur-mid) var(--ease-out)}
.mod:hover{background:var(--color-paper-2)}
.mod .n{font-family:var(--font-display);font-weight:600;font-size:var(--text-xs);color:var(--pt);letter-spacing:.1em}
.mod h3{margin:var(--space-sm) 0 8px;font-size:var(--text-md);font-weight:600;letter-spacing:-.01em}
.mod p{margin:0;color:var(--color-muted);font-size:var(--text-sm);line-height:1.6}

.dossier{padding-block:clamp(60px,8vh,110px);background:linear-gradient(180deg,var(--color-paper-2),var(--color-paper))}
.strip{display:flex;gap:var(--space-md);overflow-x:auto;scroll-snap-type:x mandatory;
  padding:var(--space-xl) clamp(1.15rem,4vw,2.5rem);scrollbar-width:thin}
.strip figure{margin:0;flex:0 0 auto;scroll-snap-align:center;width:clamp(200px,26vw,290px)}
.strip img{width:100%;height:auto;border-radius:10px;border:1px solid var(--color-rule);
  box-shadow:0 26px 60px -34px rgba(0,0,0,.95);transition:transform var(--dur-mid) var(--ease-out)}
.strip figure:hover img{transform:translateY(-6px)}
.strip figcaption{margin-top:10px;font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--color-faint)}

.demo{padding-block:clamp(60px,8vh,110px)}
.demo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));
  gap:var(--space-lg);margin-top:var(--space-xl)}
.demo-card{position:relative;border:1px solid var(--color-rule);border-radius:14px;
  background:var(--color-paper-2);padding:var(--space-lg) var(--space-md) var(--space-md);
  display:flex;flex-direction:column;gap:var(--space-sm)}
.demo-card::before{content:"";position:absolute;inset-inline:0;top:0;height:2px;background:var(--pc);
  border-radius:14px 14px 0 0}
.demo-card.locked::before{background:var(--color-rule)}
.demo-head{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap}
.demo-head h3{font-size:var(--text-lg);font-weight:700;width:100%}
.badge{font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--pt);
  border:1px solid var(--color-rule);border-radius:var(--radius-pill);padding:5px 12px}
.locked .badge{color:var(--color-faint)}
.demo-sees{margin:0;color:var(--color-muted);font-size:var(--text-base);line-height:1.6}
.creds{margin:var(--space-sm) 0 0;display:flex;flex-direction:column;gap:1px;
  background:var(--color-rule-2);border:1px solid var(--color-rule-2);border-radius:10px;overflow:hidden}
.creds>div{background:var(--color-paper);display:flex;align-items:center;gap:var(--space-sm);
  padding:11px 14px;flex-wrap:wrap}
.creds dt{font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--color-faint);
  min-width:88px}
.creds dd{margin:0;display:flex;align-items:center;gap:10px;flex:1;min-width:0}
.creds code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:var(--text-sm);
  color:var(--color-ink);overflow-wrap:anywhere}
.creds a{color:var(--pt);border-bottom:1px solid transparent;transition:border-color var(--dur-fast) var(--ease-out)}
.creds a:hover{border-color:var(--pt)}
.copy{margin-left:auto;font-family:var(--font-display);font-weight:600;font-size:var(--text-xs);
  letter-spacing:.06em;color:var(--color-muted);border:1px solid var(--color-rule);border-radius:var(--radius-pill);
  padding:7px 13px;min-height:34px;
  transition:color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}
.copy:hover{color:var(--color-ink);border-color:rgba(239,236,227,.34)}
.copy[data-state="done"]{color:var(--pt);border-color:var(--pt)}
.demo-note{margin:var(--space-sm) 0 0;font-size:var(--text-sm);line-height:1.55;color:var(--color-faint)}
.demo-card .btn{margin-top:auto;align-self:flex-start}

@media (max-width:1040px){
  .p-hero .wrap{grid-template-columns:minmax(0,1fr)}
  .p-hero-plate{justify-self:start;max-width:300px}
  .mod-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sec-head{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:720px){
  .p-hero .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mod-grid{grid-template-columns:minmax(0,1fr)}
  .creds dt{min-width:0;width:100%}
  .copy{margin-left:0}
}
.p-hero .acts{margin-top:var(--space-xl);display:flex;flex-wrap:wrap;gap:var(--space-sm) var(--space-md);align-items:center}
.p-hero .stats{margin-top:var(--space-xl)}
.dossier>.wrap:last-child{margin-top:var(--space-md)}
.wa-line{margin:10px 0 0;font-size:var(--text-xs);letter-spacing:.06em;color:var(--color-faint)}
