
:root { --ink:#121317; --ink2:#1a1b20; --paper:#F7F5F0; --amber:#E89C2A; --cobalt:#1C50FF; --emerald:#0D7C58; --grey:#82828A; --hair:#DDD9D2; --dhair:#26272e; }
* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { font-family:'Inter',sans-serif; background:var(--paper); color:var(--ink); font-size:17px; line-height:1.65; }
.wrap { max-width:1160px; margin:0 auto; padding:0 24px; }
h1,h2,h3 { font-family:'Space Grotesk',sans-serif; font-weight:600; letter-spacing:-0.025em; }
.eyebrow { font-family:'IBM Plex Mono',monospace; font-size:11.5px; letter-spacing:.22em; color:var(--amber); text-transform:uppercase; }
.mono { font-family:'IBM Plex Mono',monospace; }
.btn { display:inline-block; background:var(--amber); color:var(--ink); font-weight:600; padding:13px 28px; border-radius:8px; text-decoration:none; font-size:15px; }
.btn:hover { filter:brightness(1.07); }
.btn.ghost { background:none; border:1.5px solid currentColor; color:inherit; }
.ctas { display:flex; gap:12px; flex-wrap:wrap; }

/* reveal on scroll */
.rev { opacity:0; transform:translateY(26px); transition:opacity .7s ease, transform .7s ease; }
.rev.in { opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce) { .rev, .cas { opacity:1 !important; transform:none !important; transition:none !important; } .lifebody { transition:none; } .fl { animation:none !important; } }

/* ── nav ── */
header { position:sticky; top:0; background:rgba(18,19,23,.88); backdrop-filter:blur(10px); border-bottom:1px solid var(--dhair); z-index:60; }
nav { display:flex; align-items:center; justify-content:space-between; padding:14px 0; }
nav .links { display:flex; gap:26px; align-items:center; }
nav a { color:var(--paper); text-decoration:none; font-weight:500; font-size:14.5px; }
nav a:hover { color:var(--amber); }
nav .logo-w path { fill:#F7F5F0 !important; }

/* ── hero ── */
.hero { background:var(--ink); color:var(--paper); position:relative; overflow:hidden; padding:90px 0 0; }
.hero .wrap { position:relative; z-index:2; }
.hero h1 { font-size:clamp(52px,8vw,100px); line-height:1.02; max-width:900px; color:#fff; }
.hero h1 .amber { color:var(--amber); }
.hero .sub { font-size:clamp(17px,2vw,21px); color:#B9BAC1; max-width:780px; margin:28px 0 38px; }
.shapes { position:absolute; inset:0; z-index:1; pointer-events:none; }
.shapes svg { position:absolute; opacity:.22; }
.fl { animation:fl 7s ease-in-out infinite alternate; }
@keyframes fl { from { transform:translateY(-10px) rotate(-1.5deg); } to { transform:translateY(12px) rotate(1.5deg); } }
/* AI bar */
.aibar { background:var(--ink2); border:1px solid rgba(232,156,42,.38); border-radius:10px; padding:26px 30px; box-shadow:0 24px 70px rgba(0,0,0,.5), 0 0 60px rgba(232,156,42,.14), inset 0 1px 0 rgba(232,156,42,.18); }
.aibar .lbl { font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.18em; color:#A8A9B1; text-transform:uppercase; margin-bottom:12px; display:flex; align-items:center; gap:9px; }
.aibar .lbl:before { content:''; width:8px; height:8px; border-radius:50%; background:var(--amber); animation:pulse 1.6s ease-in-out infinite; }
@keyframes pulse { 0%,100% { box-shadow:0 0 0 0 rgba(232,156,42,.5); } 50% { box-shadow:0 0 0 7px rgba(232,156,42,0); } }
.aibar .line { font-size:clamp(16px,2.3vw,22px); color:#fff; min-height:2.2em; display:flex; align-items:center; }
.aibar .line .lt { width:100%; line-height:1.45; }
@media (max-width:860px) { .aibar .line { min-height:4.4em; } }
.aibar .line .caret { display:inline-block; width:9px; height:1.15em; background:var(--amber); vertical-align:text-bottom; margin:0 2px; animation:blink 1s steps(1) infinite; }
@keyframes blink { 50% { opacity:0; } }
.aibar .out { margin-top:16px; padding-top:15px; border-top:1px solid rgba(232,156,42,.16); font-family:'IBM Plex Mono',monospace; font-size:13px; color:var(--amber); }
.hero .shot { margin-top:72px; border-radius:10px 10px 0 0; overflow:hidden; border:1px solid var(--dhair); border-bottom:0; box-shadow:0 -10px 80px rgba(232,156,42,.08); }
.hero .shot img { width:100%; display:block; }

/* ── ticker ── */
.manifesto { background:var(--ink); border-top:1px solid var(--dhair); border-bottom:1px solid var(--dhair); padding:74px 0; }
.manifesto .eyebrow { text-align:center; display:block; margin-bottom:26px; }
.manifesto p { font-family:'Space Grotesk',sans-serif; font-weight:500; font-size:clamp(20px,3.2vw,33px); line-height:1.5; color:#5c5e66; text-align:center; max-width:880px; margin:0 auto; letter-spacing:-0.01em; }
.manifesto p b { color:var(--paper); font-weight:600; }
.manifesto p i { color:var(--amber); font-style:normal; }

/* ── modules ── */
section { padding:84px 0; }
section.dark { background:var(--ink); color:var(--paper); }
h2.sec { font-size:clamp(34px,5vw,54px); margin:12px 0 18px; line-height:1.08; }
p.lead { font-size:clamp(17px,2vw,20px); color:#4a4b52; max-width:640px; }
.dark p.lead { color:#B9BAC1; }
.modrows { margin-top:46px; display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.modrows .modcard:nth-child(5) { grid-column:1 / -1; }
.modrows .modcard:nth-child(5) p { max-width:72%; }
.modcard { position:relative; background:#fff; border:1px solid var(--hair); border-radius:10px; padding:34px 32px 30px; overflow:hidden; transition:transform .25s ease, box-shadow .25s ease; }
.modcard:hover { transform:translateY(-3px); box-shadow:0 24px 50px rgba(18,19,23,.09); }
.modcard .bigshape { display:block; width:36px; height:36px; opacity:1; margin-bottom:16px; transition:transform .25s ease; }
.modcard:hover .bigshape { transform:scale(1.06); }
.modcard .num { font-family:'IBM Plex Mono',monospace; font-size:12px; color:var(--grey); }
.modcard h3 { font-size:23px; margin:10px 0 8px; }
.modcard p { font-size:15px; color:#55565C; max-width:88%; }
.modcard .tagline { display:block; margin-top:14px; font-family:'IBM Plex Mono',monospace; font-size:11.5px; letter-spacing:.06em; color:var(--grey); }

/* ── life of a deck ── */
.life { position:relative; margin-top:56px; }
.life:before { content:''; position:absolute; left:145px; top:8px; bottom:8px; width:2px; background:linear-gradient(var(--amber), rgba(232,156,42,.15)); }
.stop { position:relative; display:grid; grid-template-columns:118px 1fr; gap:56px; padding:0 0 46px; }
.stop .t { font-family:'IBM Plex Mono',monospace; font-size:13px; color:var(--amber); text-align:right; padding-top:2px; }
.stop .t small { display:block; color:var(--grey); font-size:10.5px; letter-spacing:.12em; margin-top:3px; text-transform:uppercase; }
.stop:after { content:''; position:absolute; left:140px; top:6px; width:12px; height:12px; border-radius:50%; background:var(--ink); border:2.5px solid var(--amber); }
.stop h3 { font-size:21px; color:#fff; margin-bottom:6px; }
.stop p { font-size:15px; color:#B9BAC1; max-width:560px; }
.stop .shotwrap { margin-top:16px; display:flex; gap:14px; flex-wrap:wrap; }
.stop .shotwrap img { border-radius:10px; border:1px solid var(--dhair); max-width:340px; width:100%; cursor:zoom-in; display:block; }
.stop .ph { font-family:'IBM Plex Mono',monospace; font-size:12px; color:var(--amber); border:1px solid rgba(232,156,42,.4); border-radius:6px; padding:4px 12px; display:inline-block; margin-top:10px; }

/* feature grid */
.feats { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--dhair); border:1px solid var(--dhair); border-radius:10px; overflow:hidden; margin-top:60px; }
.feat { background:var(--ink); padding:26px 24px 24px; }
.feat .k { font-family:'IBM Plex Mono',monospace; font-size:12.5px; letter-spacing:.16em; color:var(--amber); text-transform:uppercase; }
.feat p { font-size:15px; color:#B9BAC1; margin-top:8px; line-height:1.6; }

/* ── collapsible life stories ── */
.lifestory { border:1px solid var(--dhair); border-radius:10px; padding:28px 32px 16px; margin-top:22px; transition:border-color .25s ease, transform .25s ease, box-shadow .25s ease; }
.lifestory:first-of-type { margin-top:40px; }
.lifestory:not(.open):hover { border-color:rgba(232,156,42,.55); transform:translateY(-3px); box-shadow:0 24px 50px rgba(0,0,0,.35); }
.lifetitle { margin:0; }
.lifetitle button { background:none; border:0; padding:0 0 12px; margin:0; width:100%; color:inherit; font:inherit; letter-spacing:inherit; cursor:pointer; display:flex; align-items:center; gap:22px; flex-wrap:wrap; text-align:left; }
.lifetitle button:focus-visible { outline:2px solid var(--amber); outline-offset:6px; border-radius:4px; }
.lifehint { font-family:'IBM Plex Mono',monospace; font-size:12px; font-weight:600; letter-spacing:.14em; color:var(--ink); text-transform:uppercase; background:var(--amber); border-radius:8px; padding:10px 18px; margin-left:auto; white-space:nowrap; display:inline-flex; align-items:center; gap:10px; transition:filter .25s ease; }
.lifehint:after { content:''; width:7px; height:7px; border-right:2.5px solid var(--ink); border-bottom:2.5px solid var(--ink); transform:translateY(-2px) rotate(45deg); transition:transform .35s ease; }
.lifestory.open .lifehint:after { transform:translateY(2px) rotate(225deg); }
.lifetitle button:hover .lifehint { filter:brightness(1.07); }
.lifebody { display:grid; grid-template-rows:0fr; transition:grid-template-rows .65s cubic-bezier(.4,0,.2,1); }
.lifebody > div { min-height:0; overflow:hidden; visibility:hidden; transition:visibility 0s .65s; }
.lifestory.open .lifebody { grid-template-rows:1fr; }
.lifestory.open .lifebody > div { visibility:visible; transition:visibility 0s; }
.cas { opacity:0; transform:translateY(24px); transition:opacity .55s ease, transform .55s ease; }
.lifestory.open .cas { opacity:1; transform:none; }
.lifestory.open .cas.dim { opacity:.82; }

/* ── showcases ── */
.showcase { display:grid; grid-template-columns:1fr 1fr; gap:38px; align-items:center; margin-top:44px; }
.showcase .txt h3 { font-size:27px; margin-bottom:12px; }
.showcase .txt p { color:#55565C; max-width:460px; font-size:15.5px; }
.showcase .modtag { display:flex; align-items:center; gap:10px; font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.18em; color:var(--grey); text-transform:uppercase; margin-bottom:14px; }
.showcase .modtag svg { width:17px; height:17px; flex:0 0 auto; }
.showcase .gov { list-style:none; margin:20px 0 0; padding:0; max-width:460px; }
.showcase .gov li { position:relative; padding-left:26px; margin-bottom:10px; font-size:14.5px; color:#4a4b52; line-height:1.55; }
.showcase .gov li:before { content:'\2713'; position:absolute; left:0; top:0; color:var(--amber); font-weight:700; }
.showcase .peek { display:inline-flex; align-items:center; gap:8px; margin-top:22px; font-family:'IBM Plex Mono',monospace; font-size:11.5px; letter-spacing:.12em; color:var(--amber); text-transform:uppercase; cursor:zoom-in; border-bottom:1px dashed rgba(232,156,42,.5); padding-bottom:3px; }
.showcase.rev2 .txt { order:2; }
.shotframe { background:#FFF; border:1px solid var(--hair); border-radius:10px; overflow:hidden; box-shadow:0 24px 60px rgba(18,19,23,.10); }
.shotframe img { width:100%; display:block; cursor:zoom-in; }
.shotframe.naked { background:none; border:0; box-shadow:none; border-radius:0; overflow:visible; }
.screen { background:#121317; border:1px solid var(--hair); border-radius:10px; overflow:hidden; box-shadow:0 24px 60px rgba(18,19,23,.12); transition:transform .3s ease, box-shadow .3s ease; }
.screen:hover { transform:translateY(-4px); box-shadow:0 34px 72px rgba(18,19,23,.16); }
.screen .bar { display:flex; align-items:center; gap:7px; padding:12px 16px; background:#121317; border-bottom:1px solid rgba(255,255,255,.07); }
.screen .bar i { width:9px; height:9px; border-radius:50%; background:#2E2F35; display:block; }
.screen .bar span { margin-left:12px; font-family:'IBM Plex Mono',monospace; font-size:10.5px; letter-spacing:.14em; color:#7A7B81; text-transform:uppercase; }
.screen img { width:100%; aspect-ratio:1.44; object-fit:cover; object-position:top; display:block; cursor:zoom-in; }

/* ── proof ── */
.proof { background:var(--ink); color:var(--paper); text-align:center; }
.proof img.bfg { height:84px; width:auto; display:block; margin:26px auto 18px; }
.proof b.line { font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:clamp(20px,3vw,30px); color:#fff; }
.pstats { display:flex; gap:20px; justify-content:center; flex-wrap:wrap; margin-top:40px; }
.pstat { min-width:200px; padding:22px 30px; border:1px solid var(--dhair); border-radius:10px; }
.pstat b { display:block; font-family:'IBM Plex Mono',monospace; font-size:34px; font-weight:500; font-variant-numeric:tabular-nums; color:var(--amber); line-height:1.2; }
.pstat span { font-size:12.5px; color:#B9BAC1; letter-spacing:.04em; }

/* ── how ── */
.steps { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:22px; margin-top:42px; }
.step { border-top:2px solid var(--amber); padding-top:18px; }
.step .n { font-family:'IBM Plex Mono',monospace; color:var(--amber); font-size:13px; }
.step h3 { font-size:19px; margin:8px 0; }
.step p { font-size:15px; color:#55565C; }

/* ── security & faq ── */
.pricenote { margin-top:46px; font-family:'IBM Plex Mono',monospace; font-size:12.5px; letter-spacing:.1em; color:var(--grey); text-transform:uppercase; border-top:1px solid var(--hair); padding-top:20px; }
.pricenote b { color:var(--ink); font-weight:500; }
.secgrid { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:22px; margin-top:42px; }
.sec-item { border-top:2px solid var(--ink); padding-top:18px; }
.sec-item .k { font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:.16em; color:var(--grey); text-transform:uppercase; }
.sec-item h3 { font-size:19px; margin:8px 0; }
.sec-item p { font-size:15px; color:#55565C; }
.faqgrid { display:grid; grid-template-columns:1fr 1fr; gap:34px 44px; margin-top:42px; }
.faq h3 { font-size:18px; margin-bottom:8px; }
.faq p { font-size:15px; color:#55565C; }
@media (max-width:860px) { .faqgrid { grid-template-columns:1fr; } }

/* ── contact form ── */
.form { max-width:640px; margin:0 auto; text-align:left; }
.form .row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
@media (max-width:640px) { .form .row { grid-template-columns:1fr; } }
.form input, .form textarea { width:100%; background:var(--ink2); border:1px solid var(--dhair); border-radius:8px; padding:13px 16px; color:#fff; font-family:'Inter',sans-serif; font-size:15px; margin-bottom:14px; transition:border-color .2s ease; }
.form input:focus, .form textarea:focus { outline:none; border-color:var(--amber); }
.form input::placeholder, .form textarea::placeholder { color:#6E7078; }
.form textarea { min-height:110px; resize:vertical; }
.form .hp { position:absolute; left:-9999px; opacity:0; height:0; overflow:hidden; }
.form button { width:100%; background:var(--amber); color:var(--ink); font-weight:600; font-size:15px; padding:14px 28px; border:0; border-radius:8px; cursor:pointer; font-family:'Inter',sans-serif; }
.form button:hover { filter:brightness(1.07); }
.form button:disabled { opacity:.6; cursor:default; }
.form .note { font-size:13px; color:#8a8b92; margin-top:14px; text-align:center; }
.form .note a { color:#B9BAC1; }
.formmsg { margin-top:16px; font-size:14.5px; text-align:center; display:none; }
.formmsg.ok { display:block; color:#7dc9a3; }
.formmsg.err { display:block; color:#e0876e; }

/* ── cta ── */
.cta { background:var(--ink); color:var(--paper); text-align:center; position:relative; overflow:hidden; }
.cta h2 { font-size:clamp(34px,5vw,54px); color:#fff; max-width:720px; margin:10px auto 18px; }
.cta p { color:#B9BAC1; max-width:520px; margin:0 auto 36px; }
.cta .crown { display:flex; gap:18px; justify-content:center; margin-bottom:30px; }
.cta .crown svg { width:34px; height:34px; }

/* ── footer ── */
footer { background:var(--ink); color:var(--paper); padding:54px 0 34px; border-top:1px solid var(--dhair); }
.fgrid { display:flex; justify-content:space-between; gap:34px; flex-wrap:wrap; align-items:flex-start; }
footer a { color:var(--amber); text-decoration:none; }
.fcol .h { font-family:'IBM Plex Mono',monospace; font-size:10.5px; letter-spacing:.18em; color:var(--grey); text-transform:uppercase; margin-bottom:12px; }
.fcol div { font-size:14px; color:#B9BAC1; margin-bottom:7px; }
.fmeta { font-family:'IBM Plex Mono',monospace; font-size:12px; color:#6E7078; margin-top:38px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; border-top:1px solid var(--dhair); padding-top:20px; }

/* lightbox */
.shotframe img, .stop .shotwrap img { cursor:zoom-in; }
.lightbox { position:fixed; inset:0; background:rgba(18,19,23,.94); display:none; align-items:center; justify-content:center; z-index:200; padding:4vh 4vw; cursor:zoom-out; }
.lightbox.on { display:flex; }
.lightbox img { max-width:100%; max-height:100%; border-radius:10px; box-shadow:0 30px 90px rgba(0,0,0,.5); }
.lightbox video { max-width:100%; max-height:100%; border-radius:10px; box-shadow:0 30px 90px rgba(0,0,0,.6); outline:none; }

@media (max-width:860px) {
  nav .links a:not(.btn) { display:none; }
  .shapes { display:none; }
  .feats { grid-template-columns:1fr 1fr; }
  .hero { padding-top:40px; }
  .ctas { flex-direction:column; max-width:340px; margin:0 auto; }
  .ctas .btn { width:100%; text-align:center; }
  .modcard p { max-width:100%; }
  .modcard .bigshape { width:40px; height:40px; opacity:1; margin-bottom:14px; }
  .modrows, .showcase { grid-template-columns:1fr; }
  .showcase.rev2 .txt { order:0; }
  .life:before { left:12px; }
  .stop { grid-template-columns:1fr; gap:10px; padding-left:38px; }
  .stop .t { text-align:left; }
  .stop:after { left:7px; }
  section { padding:60px 0; }
}

/* ── v3 additions ── */
a.modcard { display:block; color:inherit; text-decoration:none; }
.modcard .explore { display:inline-flex; align-items:center; gap:8px; margin-top:16px; font-family:'IBM Plex Mono',monospace; font-size:11.5px; letter-spacing:.14em; color:var(--amber); text-transform:uppercase; }
.modcard .explore:after { content:'\2192'; transition:transform .25s ease; }
.modcard:hover .explore:after { transform:translateX(4px); }
.filmsec { background:var(--ink); color:var(--paper); }
.filmposter { position:relative; border-radius:10px; overflow:hidden; border:1px solid var(--dhair); cursor:pointer; max-width:880px; margin:44px auto 0; box-shadow:0 30px 80px rgba(0,0,0,.4); }
.filmposter img { width:100%; display:block; opacity:.92; transition:opacity .3s ease, transform .5s ease; }
.filmposter:hover img { opacity:1; transform:scale(1.015); }
.filmposter .play { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; }
.filmposter .play span { display:inline-flex; align-items:center; gap:12px; background:var(--amber); color:var(--ink); font-weight:600; font-size:15px; padding:14px 30px; border-radius:999px; box-shadow:0 12px 40px rgba(0,0,0,.45); }
nav .links a.on { color:var(--amber); }
.crumb { font-family:'IBM Plex Mono',monospace; font-size:11.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--grey); }
.crumb a { color:inherit; text-decoration:none; }
.crumb a:hover { color:var(--amber); }
.modhero { background:var(--ink); color:var(--paper); padding:96px 0 74px; position:relative; overflow:hidden; }
.modhero .mtag { font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:.22em; color:var(--amber); text-transform:uppercase; display:flex; align-items:center; gap:12px; }
.modhero .mtag svg { width:20px; height:20px; }
.modhero h1 { font-size:clamp(38px,5.5vw,62px); line-height:1.05; margin:18px 0 20px; max-width:800px; }
.modhero .sub { font-size:clamp(17px,2vw,20px); color:#B9BAC1; max-width:640px; }
.modhero .ctas { margin-top:34px; display:flex; gap:14px; flex-wrap:wrap; }
.modhero .glyphwm { position:absolute; right:-40px; top:50%; transform:translateY(-50%); width:340px; height:340px; opacity:.14; }
.bigscreen { max-width:1000px; margin:-46px auto 0; position:relative; z-index:2; padding:0 24px; }
.xlinks { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:18px; margin-top:38px; }
a.xlink { display:block; background:#fff; border:1px solid var(--hair); border-radius:10px; padding:24px 24px 20px; color:inherit; text-decoration:none; transition:transform .25s ease, box-shadow .25s ease; }
a.xlink:hover { transform:translateY(-3px); box-shadow:0 18px 40px rgba(18,19,23,.09); }
.xlink svg { width:22px; height:22px; display:block; margin-bottom:12px; }
.xlink h4 { font-family:'Space Grotesk',sans-serif; font-size:17px; margin-bottom:6px; }
.xlink p { font-size:14px; color:#55565C; }
.proofline { background:var(--ink); color:var(--paper); text-align:center; padding:56px 0; }
.proofline img { height:56px; width:auto; display:block; margin:0 auto 16px; }
.proofline b { font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:clamp(17px,2.4vw,23px); color:#fff; }
@media (max-width:860px) { .modhero .glyphwm { display:none; } .bigscreen { margin-top:-30px; } }
