/* ============================================================
   VIGIL by 33bit — site design system
   Canonical tokens: ~/Desktop/33bit-Brand/vigil-tokens.css
   Brand: navy + burgundy + gold candle flame. Fraunces + Plus Jakarta Sans.
   Rule: gold always separates navy and burgundy. Reverent, never playful.
   ============================================================ */

:root{
  --bg:#F3F2EF; --card:#FFFFFF;
  --navy:#1E2A44; --navy-deep:#16203A; --navy-2:#26324F;
  --burgundy:#6E1F2E; --burgundy-deep:#5A1825;
  --gold:#CFA14C; --gold-lt:#E7C56C; --gold-dk:#A67C33;
  --cream:#F5EFE3; --blush:#E9D7DC; --slate:#D6DCE6;
  --ink:#1B2236; --ink2:#4C5160; --muted:#8C8F99; --border:#E4E2DD;
  --serif:'Fraunces',Georgia,serif;
  --sans:'Plus Jakarta Sans',system-ui,sans-serif;
  --radius:14px; --radius-lg:20px;
  --shadow-sm:0 2px 10px rgba(27,34,54,.06);
  --shadow-md:0 14px 34px rgba(27,34,54,.12);
  --shadow-lg:0 30px 70px rgba(16,24,42,.22);
  --maxw:1120px;
  --ease:cubic-bezier(.16,.72,.3,1);
}

*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:var(--sans);color:var(--ink);background:var(--bg);line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
a{color:inherit;text-decoration:none;}
img,svg{display:block;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px;}
::selection{background:rgba(207,161,76,.28);color:var(--navy);}

/* ---- cross-document view transitions (frontier MPA) ---- */
@view-transition{ navigation:auto; }
::view-transition-old(root){animation:vt-out .32s var(--ease) both;}
::view-transition-new(root){animation:vt-in .42s var(--ease) both;}
@keyframes vt-out{to{opacity:0;transform:translateY(-6px);}}
@keyframes vt-in{from{opacity:0;transform:translateY(10px);}}

/* ============================ NAV ============================ */
nav{position:sticky;top:0;z-index:60;background:rgba(243,242,239,.82);backdrop-filter:saturate(160%) blur(12px);-webkit-backdrop-filter:saturate(160%) blur(12px);border-bottom:1px solid var(--border);view-transition-name:sitenav;}
nav .wrap{display:flex;align-items:center;justify-content:space-between;height:84px;}
.brand{display:flex;align-items:center;gap:11px;font-family:var(--serif);font-weight:600;font-size:29px;color:var(--navy);letter-spacing:-.02em;}
.brand .flame{view-transition-name:flame;}
.navlinks{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--ink2);}
.navlinks .lnk{padding:9px 13px;border-radius:9px;transition:color .18s,background .18s;}
.navlinks .lnk:hover{color:var(--navy);background:rgba(30,42,68,.05);}
.navlinks .lnk[aria-current="page"]{color:var(--burgundy);}

/* dropdown */
.menu{position:relative;}
.menu>.lnk{display:inline-flex;align-items:center;gap:5px;cursor:default;}
.menu>.lnk svg{transition:transform .2s var(--ease);}
.menu:hover>.lnk svg{transform:rotate(180deg);}
.menu-panel{position:absolute;top:calc(100% + 6px);left:50%;transform:translateX(-50%) translateY(6px);min-width:300px;background:var(--card);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-md);padding:8px;opacity:0;visibility:hidden;transition:opacity .2s var(--ease),transform .2s var(--ease);}
.menu:hover .menu-panel,.menu:focus-within .menu-panel{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);}
.menu-panel a{display:flex;gap:12px;align-items:flex-start;padding:11px 12px;border-radius:11px;transition:background .15s;}
.menu-panel a:hover{background:#F7F5F1;}
.menu-panel .mi{width:34px;height:34px;border-radius:9px;background:#FBF1DD;display:flex;align-items:center;justify-content:center;flex:none;margin-top:1px;}
.menu-panel b{display:block;font-size:14px;color:var(--navy);font-weight:700;}
.menu-panel span{display:block;font-size:12.5px;color:var(--muted);line-height:1.4;margin-top:1px;}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:700;border-radius:11px;transition:transform .14s var(--ease),box-shadow .18s var(--ease),background .18s;cursor:pointer;font-family:var(--sans);}
.btn-primary{background:var(--burgundy);color:#fff;padding:11px 19px;font-size:14px;box-shadow:0 2px 10px rgba(110,31,46,.25);}
.btn-primary:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(110,31,46,.34);}
.btn-gold{background:var(--gold);color:#3A2410;padding:11px 19px;font-size:14px;box-shadow:0 2px 14px rgba(207,161,76,.4);}
.btn-gold:hover{transform:translateY(-1px);box-shadow:0 10px 26px rgba(207,161,76,.5);}
.btn-lg{padding:15px 28px;font-size:15px;border-radius:13px;}
.btn-ghost{color:var(--navy);font-weight:700;font-size:15px;padding:15px 8px;}
.btn-ghost:hover{color:var(--burgundy);}
.btn-ghost.on-dark{color:var(--cream);}
.btn-ghost.on-dark:hover{color:var(--gold-lt);}

.flame{filter:drop-shadow(0 2px 7px rgba(207,161,76,.4));transform-origin:50% 92%;}

/* ====================== TYPE SCALE ====================== */
.eyebrow{font-size:13px;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--burgundy);margin-bottom:20px;display:inline-flex;align-items:center;gap:10px;}
.eyebrow::before{content:"";width:22px;height:1.5px;background:var(--gold);display:inline-block;}
.deep .eyebrow,.on-dark .eyebrow{color:var(--gold-lt);}
.deep .eyebrow::before,.on-dark .eyebrow::before{background:var(--gold);}

h1{font-family:var(--serif);font-weight:600;font-size:clamp(40px,6vw,66px);line-height:1.03;letter-spacing:-.03em;color:var(--navy);}
h2{font-family:var(--serif);font-weight:600;font-size:clamp(28px,3.6vw,40px);line-height:1.1;letter-spacing:-.02em;color:var(--navy);}
h3{font-family:var(--sans);font-weight:700;font-size:19px;color:var(--navy);}
.lead{font-size:clamp(17px,2vw,20px);color:var(--ink2);line-height:1.55;}

/* ====================== HERO (deep candle) ====================== */
.hero{position:relative;overflow:hidden;background:var(--bg);color:var(--ink);isolation:isolate;}
.hero .wrap{padding:92px 28px 116px;position:relative;z-index:2;}
.hero h1{color:var(--navy);max-width:14ch;}
.hero .sub{font-size:clamp(17px,2vw,20px);color:var(--ink2);line-height:1.55;margin-top:26px;max-width:54ch;}
.hero .herobtns{display:flex;gap:14px;margin-top:38px;align-items:center;flex-wrap:wrap;}
.hero .reassure{margin-top:26px;font-size:13.5px;color:var(--muted);display:flex;align-items:center;gap:9px;}
.hero .reassure .pulse{width:8px;height:8px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 0 rgba(207,161,76,.7);animation:pulse 2.6s var(--ease) infinite;flex:none;}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(207,161,76,.55);}70%{box-shadow:0 0 0 10px rgba(207,161,76,0);}100%{box-shadow:0 0 0 0 rgba(207,161,76,0);}}

/* ambient ember glow + drift */
.hero .glow{position:absolute;inset:0;z-index:0;pointer-events:none;}
.hero .glow::before{content:"";position:absolute;top:-22%;left:46%;width:min(760px,82%);height:78%;transform:translateX(-50%);background:radial-gradient(closest-side,rgba(207,161,76,.16),rgba(207,161,76,.04) 56%,transparent 72%);animation:breathe 7s ease-in-out infinite;}
.hero .glow::after{content:"";position:absolute;bottom:-32%;right:-8%;width:56%;height:78%;background:radial-gradient(closest-side,rgba(30,42,68,.06),transparent 70%);}
@keyframes breathe{0%,100%{opacity:.85;transform:translateX(-50%) scale(1);}50%{opacity:1;transform:translateX(-50%) scale(1.06);}}
.embers{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden;}
.embers i{position:absolute;bottom:-12px;width:3px;height:3px;border-radius:50%;background:var(--gold-lt);opacity:0;filter:blur(.4px);box-shadow:0 0 6px rgba(231,197,108,.8);animation:ember linear infinite;}
@keyframes ember{0%{opacity:0;transform:translateY(0) translateX(0) scale(1);}10%{opacity:.9;}90%{opacity:.5;}100%{opacity:0;transform:translateY(-78vh) translateX(var(--dx,12px)) scale(.4);}}

/* word-stagger reveal target */
.stagger .word{display:inline-block;opacity:0;transform:translateY(0.5em);filter:blur(4px);transition:opacity .7s var(--ease),transform .7s var(--ease),filter .7s var(--ease);}
.stagger.in .word{opacity:1;transform:none;filter:none;}

/* ============== APP MOCKUP (the product, abstracted) ============== */
.mock-stage{position:relative;margin-top:-72px;z-index:3;}
.app-mock{background:var(--card);border:1px solid rgba(255,255,255,.6);border-radius:18px;box-shadow:var(--shadow-lg);overflow:hidden;max-width:980px;margin:0 auto;}
.app-mock .bar{display:flex;align-items:center;gap:10px;padding:13px 18px;border-bottom:1px solid var(--border);background:#FCFBF9;}
.app-mock .bar .dot{width:11px;height:11px;border-radius:50%;background:#E3DFD7;}
.app-mock .bar .mbrand{display:flex;align-items:center;gap:8px;font-family:var(--serif);font-weight:600;color:var(--navy);font-size:16px;margin-left:6px;}
.app-mock .bar .mtabs{margin-left:auto;display:flex;gap:18px;font-size:12.5px;color:var(--muted);font-weight:600;}
.app-mock .bar .mtabs .on{color:var(--burgundy);}
.app-mock .body{display:grid;grid-template-columns:208px 1fr;min-height:330px;}
.app-mock .rail{border-right:1px solid var(--border);padding:14px;background:#FBFAF8;}
.app-mock .rail .rlbl{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:700;margin:4px 4px 10px;}
.app-mock .rail .ci{padding:9px 10px;border-radius:9px;font-size:13px;color:var(--ink2);display:flex;align-items:center;gap:9px;margin-bottom:3px;}
.app-mock .rail .ci .av{width:7px;height:7px;border-radius:50%;background:var(--slate);flex:none;}
.app-mock .rail .ci.sel{background:#fff;color:var(--navy);font-weight:600;box-shadow:var(--shadow-sm);}
.app-mock .rail .ci.sel .av{background:var(--gold);box-shadow:0 0 8px rgba(207,161,76,.7);}
.app-mock .main{padding:22px 24px;}
.app-mock .main .ch{display:flex;align-items:center;justify-content:space-between;gap:12px;}
.app-mock .main .ch h4{font-family:var(--serif);font-weight:600;font-size:22px;color:var(--navy);}
.app-mock .main .ch .meta{font-size:12.5px;color:var(--muted);margin-top:2px;}
.app-mock .chips{display:flex;gap:7px;flex-wrap:wrap;margin-top:14px;}
.app-mock .chip{font-size:11.5px;font-weight:600;padding:5px 10px;border-radius:20px;background:#F1EEE8;color:var(--ink2);}
.app-mock .chip.gold{background:#FBF1DD;color:var(--gold-dk);}
.app-mock .chip.bur{background:var(--blush);color:var(--burgundy);}
.app-mock .gen{margin-top:18px;border:1px solid var(--border);border-radius:13px;padding:15px 16px;background:#FCFBF9;}
.app-mock .gen .gh{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;color:var(--gold-dk);text-transform:uppercase;letter-spacing:.1em;margin-bottom:10px;}
.app-mock .gen .gh .spark{width:14px;height:14px;}
.app-mock .gen p{font-size:13.5px;color:var(--ink2);line-height:1.7;min-height:1.7em;}
.app-mock .gen .cursor{display:inline-block;width:2px;height:1em;background:var(--gold);vertical-align:-2px;animation:blink 1s step-end infinite;}
@keyframes blink{50%{opacity:0;}}

/* subtle tint band for section rhythm (replaces saturated color blocks) */
.tint{background:#FAF7F2;}
.section.tint{border-top:1px solid var(--border);border-bottom:1px solid var(--border);}

/* ============== VIRGIL — the AI assistant ============== */
.assistant{background:var(--card);border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow-md);overflow:hidden;}
.assistant .ahead{display:flex;align-items:center;gap:11px;padding:14px 18px;border-bottom:1px solid var(--border);background:#FCFBF9;}
.assistant .ava{width:34px;height:34px;border-radius:9px;background:var(--navy-deep);display:flex;align-items:center;justify-content:center;flex:none;box-shadow:0 0 0 1px rgba(207,161,76,.28),inset 0 0 12px rgba(207,161,76,.25);}
.assistant .ava .flame{filter:drop-shadow(0 0 5px rgba(231,197,108,.6));}
.assistant .who{line-height:1.15;}
.assistant .aname{font-family:var(--serif);font-weight:600;color:var(--navy);font-size:17px;}
.assistant .arole{display:block;font-size:11.5px;color:var(--muted);margin-top:1px;}
.assistant .status{margin-left:auto;display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--ink2);font-weight:600;}
.assistant .status .d{width:7px;height:7px;border-radius:50%;background:#2F7D4F;box-shadow:0 0 7px rgba(47,125,79,.55);flex:none;}
.assistant .athread{padding:18px;display:flex;flex-direction:column;gap:12px;}
.msg{max-width:86%;font-size:14px;line-height:1.55;padding:11px 14px;border-radius:15px;}
.msg.you{align-self:flex-end;background:#EEEAE3;color:var(--ink);border-bottom-right-radius:5px;}
.msg.vir{align-self:flex-start;background:#FCF7EC;border:1px solid #F1E6CC;color:var(--ink2);border-bottom-left-radius:5px;}
.msg.vir .vlabel{display:flex;align-items:center;gap:6px;font-size:10.5px;font-weight:700;color:var(--gold-dk);text-transform:uppercase;letter-spacing:.09em;margin-bottom:6px;}
.msg.vir .vlabel svg{width:12px;height:12px;}
.msg.vir b{color:var(--navy);font-weight:700;}
.msg.vir .cursor{display:inline-block;width:2px;height:1em;background:var(--gold);vertical-align:-2px;animation:blink 1s step-end infinite;}

/* ====================== SECTIONS ====================== */
.section{padding:84px 0;}
.section.tight{padding:60px 0;}
.section-head{max-width:680px;margin:0 auto 52px;text-align:center;}
.section-head.left{text-align:left;margin-left:0;}
.section-head p{font-size:17px;color:var(--ink2);margin-top:14px;}

.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.card{background:var(--card);border:1px solid var(--border);border-radius:18px;padding:30px;transition:box-shadow .28s var(--ease),transform .28s var(--ease),border-color .28s;}
.card:hover{box-shadow:var(--shadow-md);transform:translateY(-3px);border-color:#D9D3C7;}
.card .ic{width:46px;height:46px;border-radius:12px;background:#FBF1DD;display:flex;align-items:center;justify-content:center;margin-bottom:18px;}
.card h3{margin-bottom:9px;}
.card p{font-size:15px;color:var(--ink2);line-height:1.55;}

/* pillars (link cards to product detail) */
.pillars{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;}
.pillar{position:relative;background:var(--card);border:1px solid var(--border);border-radius:18px;padding:30px 30px 26px;transition:box-shadow .28s var(--ease),transform .28s var(--ease),border-color .28s;overflow:hidden;}
.pillar::after{content:"";position:absolute;left:0;top:0;height:100%;width:3px;background:var(--gold);transform:scaleY(0);transform-origin:top;transition:transform .35s var(--ease);}
.pillar:hover{box-shadow:var(--shadow-md);transform:translateY(-3px);border-color:#D9D3C7;}
.pillar:hover::after{transform:scaleY(1);}
.pillar .ic{width:46px;height:46px;border-radius:12px;background:#FBF1DD;display:flex;align-items:center;justify-content:center;margin-bottom:18px;}
.pillar h3{font-size:20px;margin-bottom:8px;}
.pillar p{font-size:15px;color:var(--ink2);line-height:1.55;}
.pillar .go{margin-top:16px;font-size:13.5px;font-weight:700;color:var(--burgundy);display:inline-flex;align-items:center;gap:6px;}
.pillar .go svg{transition:transform .2s var(--ease);}
.pillar:hover .go svg{transform:translateX(4px);}

/* ====================== DEEP (candle in the dark) ====================== */
.deep{background:var(--navy-deep);color:var(--cream);position:relative;overflow:hidden;}
.deep .wrap{padding:90px 28px;position:relative;z-index:1;}
.deep h2{color:var(--cream);max-width:18ch;}
.deep .lead{color:#C2C8D8;margin-top:20px;max-width:60ch;}
.deep .scroll-glow{position:absolute;top:0;left:-10%;width:55%;height:120%;background:radial-gradient(closest-side,rgba(207,161,76,.14),transparent 72%);pointer-events:none;will-change:transform;}
.deeplist{display:grid;grid-template-columns:1fr 1fr;gap:20px 40px;margin-top:42px;max-width:840px;}
.deeplist .item{display:flex;gap:13px;align-items:flex-start;}
.deeplist .item .dot{width:9px;height:9px;border-radius:50%;background:var(--gold);margin-top:9px;flex:none;box-shadow:0 0 11px rgba(207,161,76,.7);}
.deeplist .item b{color:var(--cream);font-weight:700;}
.deeplist .item span{color:#AEB4C6;font-size:15px;line-height:1.55;}

/* ====================== STATS (count-up) ====================== */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;text-align:center;}
.stat .num{font-family:var(--serif);font-weight:600;font-size:clamp(40px,5vw,56px);color:var(--gold);line-height:1;letter-spacing:-.02em;}
.deep .stat .num,.on-dark .stat .num{color:var(--gold-lt);}
.stat .lbl{font-size:14.5px;color:var(--ink2);margin-top:12px;}
.deep .stat .lbl,.on-dark .stat .lbl{color:#AEB4C6;}

/* ====================== FEATURE ROWS (alternating) ====================== */
.feature-row{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;}
.feature-row+.feature-row{margin-top:90px;}
.feature-row.reverse .fr-text{order:2;}
.fr-text h2{margin-bottom:16px;}
.fr-text .lead{margin-bottom:22px;}
.fr-list{list-style:none;display:flex;flex-direction:column;gap:14px;}
.fr-list li{display:flex;gap:12px;align-items:flex-start;font-size:15.5px;color:var(--ink2);line-height:1.5;}
.fr-list li .tick{width:22px;height:22px;border-radius:50%;background:#FBF1DD;flex:none;display:flex;align-items:center;justify-content:center;margin-top:1px;}
.fr-list li b{color:var(--navy);font-weight:700;}
.fr-visual{position:relative;}

/* generic visual panel for feature rows */
.panel{background:var(--card);border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow-md);padding:22px;}
.panel.dark{background:var(--navy);border-color:rgba(255,255,255,.08);color:var(--cream);}
.panel .ph{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;color:var(--gold-dk);text-transform:uppercase;letter-spacing:.1em;margin-bottom:14px;}

/* document stack (automation: generated artifacts) */
.docstack{display:flex;flex-direction:column;gap:11px;}
.doc{display:flex;gap:13px;align-items:center;border:1px solid var(--border);border-radius:13px;padding:13px 15px;background:#FCFBF9;transition:transform .25s var(--ease),box-shadow .25s var(--ease);}
.doc:hover{transform:translateX(4px);box-shadow:var(--shadow-sm);}
.doc .di{width:38px;height:38px;border-radius:10px;background:#FBF1DD;display:flex;align-items:center;justify-content:center;flex:none;}
.doc b{display:block;font-size:14.5px;color:var(--navy);font-weight:700;}
.doc span{display:block;font-size:12.5px;color:var(--muted);margin-top:1px;}
.doc .stat-dot{margin-left:auto;font-size:11.5px;font-weight:700;color:var(--gold-dk);background:#FBF1DD;padding:4px 9px;border-radius:20px;flex:none;}

/* location grid (multi-location: one source of truth) */
.locgrid{display:grid;grid-template-columns:1fr 1fr;gap:11px;}
.loc{border:1px solid var(--border);border-radius:12px;padding:13px 14px;background:#FCFBF9;}
.loc .ln{font-size:14px;font-weight:700;color:var(--navy);display:flex;align-items:center;gap:7px;}
.loc .ln .pin{width:7px;height:7px;border-radius:50%;background:var(--gold);box-shadow:0 0 8px rgba(207,161,76,.6);flex:none;}
.loc .lm{font-size:12px;color:var(--muted);margin-top:5px;}

/* gated fields (security: protected identifiers) */
.gated{display:flex;flex-direction:column;gap:9px;}
.gfield{display:flex;align-items:center;gap:12px;border:1px solid var(--border);border-radius:11px;padding:12px 14px;background:#FCFBF9;}
.gfield .lbl2{font-size:13.5px;color:var(--ink2);font-weight:600;width:120px;flex:none;}
.gfield .val{font-family:var(--serif);letter-spacing:.18em;color:var(--muted);font-size:14px;flex:1;}
.gfield .lock{margin-left:auto;width:26px;height:26px;border-radius:7px;background:var(--blush);display:flex;align-items:center;justify-content:center;flex:none;}
.gfield.open .val{color:var(--navy);letter-spacing:0;font-family:var(--sans);}
.gfield.open .lock{background:#E3F0E6;}

/* numbered process (migration sequence) */
.steps{counter-reset:step;display:flex;flex-direction:column;gap:0;}
.step{position:relative;padding:0 0 30px 60px;}
.step:last-child{padding-bottom:0;}
.step::before{counter-increment:step;content:counter(step);position:absolute;left:0;top:-2px;width:40px;height:40px;border-radius:50%;background:var(--navy);color:var(--gold-lt);font-family:var(--serif);font-weight:600;font-size:18px;display:flex;align-items:center;justify-content:center;z-index:1;}
.step::after{content:"";position:absolute;left:19.5px;top:38px;bottom:6px;width:1.5px;background:linear-gradient(var(--gold),rgba(207,161,76,.15));}
.step:last-child::after{display:none;}
.step h4{font-size:17px;font-weight:700;color:var(--navy);margin-bottom:5px;}
.step p{font-size:14.5px;color:var(--ink2);line-height:1.55;}
.deep .step::before{background:var(--gold);color:var(--navy-deep);}
.deep .step h4{color:var(--cream);}
.deep .step p{color:#AEB4C6;}
@media(max-width:520px){.locgrid{grid-template-columns:1fr;}.gfield .lbl2{width:96px;}}

/* ====================== PAGE HERO (inner pages) ====================== */
.page-hero{background:var(--bg);color:var(--ink);position:relative;overflow:hidden;border-bottom:1px solid var(--border);}
.page-hero .wrap{padding:60px 28px 66px;position:relative;z-index:1;}
.page-hero .glow{position:absolute;top:-34%;left:50%;transform:translateX(-50%);width:min(720px,88%);height:120%;background:radial-gradient(closest-side,rgba(207,161,76,.12),transparent 68%);pointer-events:none;z-index:0;}
.page-hero h1{color:var(--navy);max-width:20ch;font-size:clamp(34px,5vw,54px);}
.page-hero .sub{font-size:clamp(16px,1.8vw,19px);color:var(--ink2);margin-top:20px;max-width:58ch;}
.crumbs{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);margin-bottom:22px;font-weight:600;}
.crumbs a:hover{color:var(--burgundy);}
.crumbs .sep{opacity:.5;}

/* ====================== PROSE ====================== */
.prose{max-width:680px;}
.prose p{font-size:16.5px;color:var(--ink2);line-height:1.75;margin-bottom:18px;}
.prose h3{font-size:22px;font-family:var(--serif);font-weight:600;color:var(--navy);margin:34px 0 12px;}
.prose .pull{font-family:var(--serif);font-size:24px;line-height:1.4;color:var(--navy);border-left:3px solid var(--gold);padding-left:22px;margin:30px 0;}

/* ====================== CTA BAND ====================== */
.cta-band{background:linear-gradient(180deg,#FBF8F3,var(--bg));color:var(--ink);text-align:center;position:relative;overflow:hidden;border-top:1px solid var(--border);}
.cta-band::before{content:"";position:absolute;top:-46%;left:50%;transform:translateX(-50%);width:54%;height:120%;background:radial-gradient(closest-side,rgba(207,161,76,.14),transparent 70%);pointer-events:none;}
.cta-band .wrap{padding:82px 28px;position:relative;z-index:1;}
.cta-band h2{color:var(--navy);}
.cta-band p{font-size:18px;color:var(--ink2);margin-top:14px;max-width:520px;margin-left:auto;margin-right:auto;}

.demo-form{max-width:460px;margin:30px auto 0;background:#fff;border-radius:18px;padding:26px;display:flex;flex-direction:column;gap:12px;text-align:left;box-shadow:var(--shadow-lg);}
.demo-form input,.demo-form textarea{font-family:var(--sans);font-size:15px;color:var(--ink);background:#FBFAF8;border:1px solid var(--border);border-radius:10px;padding:12px 14px;width:100%;outline:none;transition:border-color .15s,box-shadow .15s;}
.demo-form input:focus,.demo-form textarea:focus{border-color:var(--burgundy);box-shadow:0 0 0 3px rgba(110,31,46,.13);}
.demo-form textarea{resize:vertical;}
.demo-form button{margin-top:4px;border:none;cursor:pointer;width:100%;padding:14px;background:var(--gold);color:#3A2410;font-weight:700;font-size:15px;border-radius:11px;transition:transform .14s var(--ease),box-shadow .18s;}
.demo-form button:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(207,161,76,.4);}
.demo-form button:disabled{opacity:.7;cursor:default;transform:none;}
.hp{position:absolute !important;left:-9999px !important;width:1px;height:1px;opacity:0;}
.formnote{font-size:13.5px;text-align:center;min-height:2px;}
.formnote.ok{color:#1D6B3A;}
.formnote.err{color:#9A2530;}

/* ====================== FOOTER ====================== */
footer{background:var(--bg);color:var(--ink2);view-transition-name:sitefoot;border-top:1px solid var(--border);}
footer .wrap{padding:54px 28px 32px;}
.foot-top{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:32px;padding-bottom:32px;border-bottom:1px solid var(--border);}
.foot-brand .brand{color:var(--navy);font-size:24px;margin-bottom:12px;}
.foot-brand p{font-size:14px;color:var(--muted);max-width:34ch;line-height:1.6;}
.foot-col h5{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-bottom:14px;}
.foot-col a{display:block;font-size:14px;color:var(--ink2);padding:5px 0;transition:color .15s;}
.foot-col a:hover{color:var(--burgundy);}
.foot-bot{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding-top:24px;font-size:13px;color:var(--muted);}
.foot-bot a:hover{color:var(--navy);}

/* ====================== MOTION PRIMITIVES ====================== */
.reveal{opacity:0;transform:translateY(20px);transition:opacity .7s var(--ease),transform .7s var(--ease);}
.reveal.in{opacity:1;transform:none;}
.reveal[data-reveal="left"]{transform:translateX(-26px);}
.reveal[data-reveal="right"]{transform:translateX(26px);}
.reveal[data-reveal="scale"]{transform:scale(.96);}
.reveal.in[data-reveal]{transform:none;}
[data-stagger]>*{opacity:0;transform:translateY(18px);transition:opacity .6s var(--ease),transform .6s var(--ease);}
[data-stagger].in>*{opacity:1;transform:none;}

@keyframes flicker{0%,100%{transform:scale(1,1);opacity:1;}20%{transform:scale(1.05,.96);opacity:.9;}40%{transform:scale(.98,1.03);opacity:1;}60%{transform:scale(1.03,.99);opacity:.93;}80%{transform:scale(.99,1.01);opacity:.98;}}
.flame.live{animation:flicker 3.4s ease-in-out infinite;}

/* ====================== RESPONSIVE ====================== */
@media(max-width:920px){
  .feature-row{grid-template-columns:1fr;gap:34px;}
  .feature-row.reverse .fr-text{order:0;}
  .foot-top{grid-template-columns:1fr 1fr;}
  .foot-brand{grid-column:1/-1;}
}
@media(max-width:860px){.cards{grid-template-columns:1fr;}.pillars{grid-template-columns:1fr;}.stats{grid-template-columns:1fr;gap:36px;}}
@media(max-width:760px){
  .navlinks .lnk:not(.btn),.menu{display:none;}
  .deeplist{grid-template-columns:1fr;}
  .app-mock .body{grid-template-columns:1fr;}
  .app-mock .rail{display:none;}
}
@media(max-width:680px){
  .wrap{padding:0 20px;}
  .hero .wrap{padding:64px 20px 96px;}
  .mock-stage{margin-top:-56px;}
  .section{padding:58px 0;}
  .deep .wrap,.cta-band .wrap{padding:60px 20px;}
  nav .wrap{height:74px;}
  .brand{font-size:25px;}
}

@media (prefers-reduced-motion: reduce){
  *{scroll-behavior:auto !important;}
  .reveal,[data-stagger]>*,.stagger .word{opacity:1 !important;transform:none !important;filter:none !important;transition:none !important;}
  .flame.live,.hero .glow::before,.embers i,.reassure .pulse{animation:none !important;}
  .embers{display:none;}
  ::view-transition-old(root),::view-transition-new(root){animation:none !important;}
}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:4px;}
