/* ============================================================
   home.css — cosmic-editorial homepage layer (index.html only)
   Loaded AFTER site.css. Reshapes the homepage toward the
   reference direction (ARV cosmic serif · Rekreate editorial
   framing · Chase product cards) while reusing every site.css
   component + app.js hook. Nothing here touches other pages.
   ============================================================ */

/* ---------- deepen the base into true space ---------- */
.home{
  --bg:#070A12; --bg2:#0A0E18; --surface:#111725; --surface2:#18202F;
  --serif:"Fraunces",Georgia,"Times New Roman",serif;
  --grad-cool:linear-gradient(105deg,var(--accent2-bright),var(--accent2-cyan));
  --ease-rev:cubic-bezier(.22,1,.36,1);
  background-color:#04060c;
  background-image:
    radial-gradient(60% 50% at 50% 26%,rgba(139,123,255,.16),transparent 62%),
    radial-gradient(46% 42% at 80% 12%,rgba(53,224,208,.12),transparent 60%),
    radial-gradient(115% 92% at 50% 40%,#0d1a33 0%,#0a1426 42%,#060b18 72%,#03050b 100%);
  background-attachment:fixed;
}
/* real WebGL cosmos (webgl-bg.js) replaces the CSS star layers on the homepage */
.home .field{display:none}
/* sections transparent so the 3D canvas shows through everywhere */
.home section.blk,.home section.blk.alt{background:transparent}
.home .stats,.home .stat,.home .stats .wrap{background:transparent}
.home .marquee{background:transparent}

/* ---------- cosmic field: starfield + nebula glows ---------- */
/* two drifting star layers via field pseudo-elements (no markup change) */
/* 3D depth vignette: luminous blue core at ~36%, near-black edges */
.home .field{background:radial-gradient(110% 90% at 50% 36%,#152a4a 0%,#0c1a30 38%,#070f1c 70%,#03050b 100%)}
.home .field .stars,.home .field .stars2{
  position:absolute;inset:-18%;pointer-events:none;will-change:transform;transition:transform .3s var(--ease);
  -webkit-mask:radial-gradient(120% 108% at 50% 42%,#000 46%,rgba(0,0,0,.5) 76%,transparent 100%);
          mask:radial-gradient(120% 108% at 50% 42%,#000 46%,rgba(0,0,0,.5) 76%,transparent 100%);
}
/* scattered SVG starfields → real elements, parallax-ready */
.home .field .stars{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1400' height='1400' viewBox='0 0 1400 1400'%3E%3Cg fill='%23ffffff'%3E%3Ccircle cx='60' cy='90' r='1' opacity='.9'/%3E%3Ccircle cx='210' cy='40' r='.7' opacity='.5'/%3E%3Ccircle cx='330' cy='160' r='1.3' opacity='1'/%3E%3Ccircle cx='120' cy='300' r='.8' opacity='.6'/%3E%3Ccircle cx='470' cy='70' r='.9' opacity='.8'/%3E%3Ccircle cx='560' cy='230' r='.6' opacity='.4'/%3E%3Ccircle cx='690' cy='120' r='1.2' opacity='.95'/%3E%3Ccircle cx='800' cy='300' r='.8' opacity='.6'/%3E%3Ccircle cx='930' cy='80' r='1' opacity='.85'/%3E%3Ccircle cx='1050' cy='210' r='.7' opacity='.5'/%3E%3Ccircle cx='1200' cy='120' r='1.4' opacity='1'/%3E%3Ccircle cx='1320' cy='280' r='.8' opacity='.6'/%3E%3Ccircle cx='40' cy='520' r='1.1' opacity='.9'/%3E%3Ccircle cx='250' cy='470' r='.7' opacity='.5'/%3E%3Ccircle cx='390' cy='600' r='1' opacity='.8'/%3E%3Ccircle cx='620' cy='440' r='.9' opacity='.7'/%3E%3Ccircle cx='740' cy='560' r='.6' opacity='.4'/%3E%3Ccircle cx='880' cy='500' r='1.3' opacity='1'/%3E%3Ccircle cx='1010' cy='620' r='.8' opacity='.6'/%3E%3Ccircle cx='1160' cy='470' r='1' opacity='.85'/%3E%3Ccircle cx='1300' cy='600' r='.7' opacity='.5'/%3E%3Ccircle cx='100' cy='760' r='.9' opacity='.75'/%3E%3Ccircle cx='300' cy='840' r='1.2' opacity='.95'/%3E%3Ccircle cx='450' cy='720' r='.7' opacity='.5'/%3E%3Ccircle cx='580' cy='860' r='1' opacity='.8'/%3E%3Ccircle cx='720' cy='780' r='.8' opacity='.6'/%3E%3Ccircle cx='900' cy='880' r='.6' opacity='.4'/%3E%3Ccircle cx='1080' cy='760' r='1.3' opacity='1'/%3E%3Ccircle cx='1240' cy='840' r='.8' opacity='.6'/%3E%3Ccircle cx='1360' cy='720' r='1' opacity='.8'/%3E%3Ccircle cx='70' cy='1010' r='1' opacity='.8'/%3E%3Ccircle cx='230' cy='1120' r='.7' opacity='.5'/%3E%3Ccircle cx='410' cy='990' r='1.1' opacity='.9'/%3E%3Ccircle cx='560' cy='1150' r='.8' opacity='.6'/%3E%3Ccircle cx='700' cy='1040' r='.6' opacity='.4'/%3E%3Ccircle cx='860' cy='1180' r='1.2' opacity='.95'/%3E%3Ccircle cx='1020' cy='1020' r='.8' opacity='.6'/%3E%3Ccircle cx='1180' cy='1140' r='1' opacity='.8'/%3E%3Ccircle cx='1330' cy='1010' r='.7' opacity='.5'/%3E%3Ccircle cx='160' cy='1290' r='.9' opacity='.7'/%3E%3Ccircle cx='480' cy='1320' r='1' opacity='.8'/%3E%3Ccircle cx='780' cy='1300' r='.7' opacity='.5'/%3E%3Ccircle cx='1100' cy='1330' r='1.1' opacity='.9'/%3E%3C/g%3E%3C/svg%3E");
  background-repeat:repeat;background-size:1400px 1400px;opacity:.8;
  animation:starPanA 240s linear infinite;
}
.home .field .stars2{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1400' height='1400' viewBox='0 0 1400 1400'%3E%3Cg%3E%3Ccircle cx='180' cy='210' r='1.4' fill='%23cfe0ff' opacity='.9'/%3E%3Ccircle cx='520' cy='150' r='1.6' fill='%23ffffff' opacity='1'/%3E%3Ccircle cx='880' cy='260' r='1.5' fill='%23ffe4cc' opacity='.9'/%3E%3Ccircle cx='1240' cy='180' r='1.4' fill='%23ffffff' opacity='.85'/%3E%3Ccircle cx='340' cy='560' r='1.6' fill='%23ffffff' opacity='1'/%3E%3Ccircle cx='760' cy='620' r='1.4' fill='%23cfe0ff' opacity='.85'/%3E%3Ccircle cx='1120' cy='520' r='1.5' fill='%23ffffff' opacity='.9'/%3E%3Ccircle cx='240' cy='900' r='1.5' fill='%23ffe4cc' opacity='.9'/%3E%3Ccircle cx='620' cy='980' r='1.6' fill='%23ffffff' opacity='1'/%3E%3Ccircle cx='1000' cy='880' r='1.4' fill='%23ffffff' opacity='.85'/%3E%3Ccircle cx='1300' cy='1000' r='1.5' fill='%23cfe0ff' opacity='.9'/%3E%3Ccircle cx='440' cy='1240' r='1.5' fill='%23ffffff' opacity='.9'/%3E%3Ccircle cx='900' cy='1300' r='1.6' fill='%23ffffff' opacity='1'/%3E%3C/g%3E%3C/svg%3E");
  background-repeat:repeat;background-size:1650px 1650px;opacity:.9;
  animation:starPanB 320s linear infinite, twinkle 6s ease-in-out infinite;
}
@keyframes starPanA{from{background-position:0 0}to{background-position:0 -1400px}}
@keyframes starPanB{from{background-position:0 0}to{background-position:0 1650px}}
@keyframes twinkle{0%,100%{opacity:.42}50%{opacity:.22}}
/* repurpose blueprint grid → faint deep nebula */
.home .field .grid{
  background-image:radial-gradient(60% 50% at 78% 8%,rgba(var(--accent-rgb),.10),transparent 60%),
                   radial-gradient(55% 45% at 20% 30%,rgba(var(--accent2-rgb),.12),transparent 62%);
  background-size:100% 100%;background-repeat:no-repeat;
  -webkit-mask:none;mask:none;will-change:transform;transition:transform .5s var(--ease);
}
.home .field .aura{background:radial-gradient(circle,rgba(var(--accent2-rgb),.18),transparent 66%)}
.home .field .aura2{background:radial-gradient(circle,rgba(var(--accent-rgb),.13),transparent 66%)}
.home .field .ripple{display:none}
/* cursor-reactive nebula glow (moved by app.js) — bluish, larger, brand-warm core */
.home .cursorlight{width:560px;height:560px;
  background:radial-gradient(circle,rgba(var(--accent2-rgb),.10),rgba(var(--accent-rgb),.05) 42%,transparent 66%)}

/* ---------- serif-forward type system ---------- */
.home h1,
.home .shead h2,
.home .ctaband h2{font-family:var(--serif);font-weight:540;letter-spacing:-.012em}
.home h1{font-size:clamp(2.9rem,6.2vw,5.4rem);line-height:1.02;font-optical-sizing:auto}
.home .shead h2{font-size:clamp(2.1rem,4vw,3.35rem);line-height:1.08}
.home .ctaband h2{font-size:clamp(1.9rem,3.2vw,2.7rem);line-height:1.1}

/* emphasis words — italic serif with gradient fill (amber default, cool variant) */
.home .em,.home .em .em-in,
.home .emn,.home .accent-it,.home .serif-it{font-family:"Instrument Serif",var(--serif);font-style:italic;font-weight:400}
.home .emn,.home .em .em-in{
  background:var(--grad-accent);-webkit-background-clip:text;background-clip:text;color:transparent;
}
.home .emn.cool,.home .em.cool .em-in{background:var(--grad-cool);-webkit-background-clip:text;background-clip:text;color:transparent}

/* mono eyebrows — a touch more editorial */
.home .kick{color:var(--accent);letter-spacing:.24em;font-size:.68rem;display:inline-flex;align-items:center;gap:.6rem}
.home .kick::before{content:"";width:16px;height:1px;background:var(--accent);opacity:.8}


/* ---------- cinematic hero: hook up top, Jeremy rising from the cosmos below ---------- */
.home .hero.cine{padding:clamp(1.4rem,3vw,2.4rem) 0 0;min-height:calc(100vh - 66px);display:flex;align-items:stretch;overflow:hidden}
.home .hero.cine .wrap{display:flex;flex-direction:column;align-items:center;text-align:center;width:100%}
.home .hero-top{display:flex;flex-direction:column;align-items:center;max-width:940px;padding-top:clamp(1rem,3.5vw,3rem)}
.home .h-eyebrow{display:inline-flex;align-items:center;gap:.65rem;font-family:"JetBrains Mono",monospace;
  font-size:.68rem;letter-spacing:.26em;text-transform:uppercase;color:var(--mut);margin-bottom:1.4rem}
.home .h-eyebrow .dot{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 12px 1px rgba(var(--accent-rgb),.8)}
.home .hero.cine h1{font-size:clamp(2.7rem,6.6vw,5.8rem);line-height:1.0;max-width:15ch;margin:0 auto;
  background:linear-gradient(102deg,#EAF2FF 0%,#B6ABFF 26%,#86F0E6 48%,#EAF2FF 66%,#86F0E6 100%);
  background-size:230% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;
  animation:jlFoil 9s linear infinite}
@keyframes jlFoil{to{background-position:230% 0}}
/* keep the italic emphasis word, but let it take the same sheen (no two-tone split) */
.home .hero.cine h1 .accent-it{color:transparent;-webkit-text-fill-color:transparent}
.home .hero.cine .lead{font-size:clamp(1.05rem,1.35vw,1.22rem);color:var(--mut);max-width:60ch;margin:1.6rem auto 0}
.home .hero.cine .hcta{justify-content:center;margin-top:2rem}

/* white-pill primary (reference signature), amber ring on hover */
.home .hcta .btn-primary{background:#F6F7FB;color:#0b0d14;box-shadow:0 10px 40px -12px rgba(255,255,255,.25)}
.home .hcta .btn-primary:hover{background:#fff;box-shadow:0 0 0 1px rgba(var(--accent-rgb),.5),0 16px 46px -12px rgba(var(--accent-rgb),.5)}

/* the figure: bottom-anchored, emerging from the starfield */
.home .hero-figure{position:relative;flex:1 1 auto;display:flex;align-items:flex-end;justify-content:center;
  width:100%;min-height:min(48vh,460px);margin-top:clamp(1.4rem,3vw,2.4rem)}
.home .portrait-cine{position:relative;width:min(440px,74vw);display:flex;align-items:flex-end;justify-content:center}
.home .portrait-cine::before{content:"";position:absolute;left:50%;bottom:-4%;transform:translateX(-50%);
  width:170%;height:135%;z-index:-1;filter:blur(8px);pointer-events:none;
  background:radial-gradient(58% 52% at 50% 72%,rgba(var(--accent-rgb),.30),transparent 62%),
             radial-gradient(46% 44% at 50% 54%,rgba(var(--accent2-rgb),.22),transparent 66%)}
.home .portrait-cine img{width:100%;height:auto;display:block;object-fit:contain;object-position:bottom center;
  /* dissolve the rectangular amber studio backdrop into the cosmos on all sides */
  -webkit-mask:radial-gradient(76% 80% at 50% 38%,#000 50%,rgba(0,0,0,.4) 74%,transparent 90%);
          mask:radial-gradient(76% 80% at 50% 38%,#000 50%,rgba(0,0,0,.4) 74%,transparent 90%);
  filter:drop-shadow(0 30px 60px rgba(0,0,0,.5));transition:transform .3s var(--ease)}

/* spatial mono labels flanking the figure (ARV editorial) */
.home .hlabel{position:absolute;bottom:32%;display:flex;flex-direction:column;gap:.15rem;line-height:1.5;
  font-family:"JetBrains Mono",monospace;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}
.home .hlabel b{color:var(--mut);font-weight:500;font-size:.74rem;letter-spacing:.08em}
.home .hlabel::before{content:"";width:26px;height:1px;background:var(--accent);opacity:.7;margin-bottom:.5rem}
.home .hl-left{left:clamp(1rem,7vw,8rem);text-align:right;align-items:flex-end}
.home .hl-right{right:clamp(1rem,7vw,8rem);text-align:left;align-items:flex-start}

/* scroll cue (lower-left, clear of the figure) */
.home .scrollcue{position:absolute;bottom:7%;left:clamp(1rem,7vw,8rem);z-index:3;color:var(--faint);
  font-family:"JetBrains Mono",monospace;font-size:.56rem;letter-spacing:.3em;text-transform:uppercase;
  display:flex;flex-direction:column;align-items:flex-start;gap:.55rem}
.home .scrollcue .cue{width:1px;height:32px;background:linear-gradient(var(--accent),transparent);animation:cuePulse 2.1s ease-in-out infinite}
@keyframes cuePulse{0%,100%{opacity:.25;transform:scaleY(.65)}50%{opacity:1;transform:scaleY(1)}}

@media(max-width:880px){
  .home .hero.cine{min-height:auto;padding-bottom:1rem}
  .home .hero-figure{min-height:min(52vh,400px)}
  .home .hlabel{display:none}
  .home .portrait-cine{width:min(320px,80vw)}
}

/* ---------- marquee eyebrow tone ---------- */
.home .marquee .cap{letter-spacing:.28em}

/* ---------- stats: sit over the cosmos, brighter numerals ---------- */
.home .stat{background:rgba(255,255,255,.015)}
.home .stat .n{font-family:var(--serif);font-weight:560}

/* ---------- dark-glass cards, editorial numbering ---------- */
.home .card{border-radius:6px;background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.012));
  border-color:rgba(255,255,255,.09);transition:transform .16s ease-out,border-color .35s}
.home .card:hover{border-color:rgba(var(--accent-rgb),.35)}
.home .card h3{font-family:var(--serif);font-weight:560;font-size:1.24rem;letter-spacing:-.01em}
.home .card .code{font-size:.72rem;letter-spacing:.18em;color:var(--faint)}
.home .card.feat{border-color:rgba(var(--accent-rgb),.4);
  background:radial-gradient(120% 90% at 0% 0%,rgba(var(--accent-rgb),.12),transparent 55%),linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.012))}
.home .card .big{font-family:var(--serif);font-weight:600}
.home .card .ic{border-radius:8px}

/* comparison + steps + faq headings → serif for cohesion */
.home .step h3,.home .faq .qa h3,.home .cmp-head .me,.home .cmp-head .them{font-family:var(--serif);font-weight:560}
.home .step .sn{font-family:var(--serif);font-weight:600}
.home .step{border-radius:6px}
.home .quote{border-radius:6px}
.home .cmp{border-radius:8px}

/* ---------- bio (section 7): floating portrait, emerges from cosmos instead of a frame ---------- */
.home .about .ph{background:transparent;border:0;border-radius:0;aspect-ratio:auto;overflow:visible}
.home .about .ph::before{content:"";position:absolute;left:50%;top:52%;transform:translate(-50%,-50%);
  width:118%;height:114%;z-index:-1;filter:blur(10px);pointer-events:none;
  background:radial-gradient(54% 54% at 50% 56%,rgba(var(--accent-rgb),.28),transparent 62%),
             radial-gradient(44% 44% at 50% 46%,rgba(var(--accent2-rgb),.20),transparent 66%)}
.home .about .ph img{border-radius:0;
  -webkit-mask:radial-gradient(72% 80% at 50% 42%,#000 50%,rgba(0,0,0,.4) 74%,transparent 90%);
          mask:radial-gradient(72% 80% at 50% 42%,#000 50%,rgba(0,0,0,.4) 74%,transparent 90%);
  filter:drop-shadow(0 26px 54px rgba(0,0,0,.5))}
.home .about h2{font-family:var(--serif)!important;font-weight:540!important}

/* ---------- CTA band ---------- */
.home .ctaband .card2{border-radius:10px}
.home .ctaband .btn-primary{background:#F6F7FB;color:#0b0d14}
.home .ctaband .btn-primary:hover{background:#fff;box-shadow:0 0 0 1px rgba(var(--accent-rgb),.5),0 16px 46px -12px rgba(var(--accent-rgb),.55)}

/* ---------- right-edge section progress rail ---------- */
.railnav{position:fixed;right:clamp(.6rem,1.6vw,1.4rem);top:50%;transform:translateY(-50%);z-index:40;
  display:flex;flex-direction:column;align-items:flex-end;gap:.85rem;pointer-events:none;
  background:transparent;border:0;backdrop-filter:none;-webkit-backdrop-filter:none}
.railnav a{pointer-events:auto;display:flex;align-items:center;gap:.6rem;color:var(--faint);
  font-family:"JetBrains Mono",monospace;font-size:.56rem;letter-spacing:.18em;text-transform:uppercase;
  opacity:.5;transition:opacity .3s,color .3s}
.railnav a .tick{width:22px;height:1px;background:currentColor;transition:width .3s,background .3s}
.railnav a .rl{opacity:0;transform:translateX(6px);transition:opacity .3s,transform .3s}
.railnav a:hover,.railnav a.on{opacity:1;color:var(--accent-bright)}
.railnav a:hover .rl,.railnav a.on .rl{opacity:1;transform:none}
.railnav a.on .tick{width:34px;background:var(--accent)}
@media(max-width:1180px){.railnav{display:none}}

/* ---------- reveal: match the reference (expo-out, 1s, no stagger, mask wipe) ---------- */
.home .rise{transform:translateY(28px)}
.home .rise.in{transition:opacity 1s var(--ease-rev),transform 1s var(--ease-rev)}
.home .hero .rise{transition-delay:0s!important}
/* heading mask wipe: each heading clipped, its inner line slides up from behind */
.home .ln{display:block;overflow:hidden}
.home .lni{display:block;transform:translateY(112%);transition:transform 1.05s var(--ease-rev)}
.home .ln.in .lni{transform:none}

/* ---------- de-slop: drop geometric icons, glowing dots, radio-button marks ---------- */
.home .card .ic{display:none}
.home .h-eyebrow .dot{display:none}
.home .h-eyebrow{gap:0}

/* ============================================================
   CRAFT PASS — a bespoke instrument visual language so nothing
   reads as a generated template: reticle bullets (not dots),
   corner ticks framing cards, an editorial section index, and
   refined hover mechanics. Homepage-scoped.
   ============================================================ */

/* reticle crosshair bullets (replace the round dot — his motif) */
.home .card ul li{position:relative;padding-left:1.45rem;gap:0}
.home .card ul li::before{content:"";position:absolute;left:0;top:.58rem;width:12px;height:1px;margin:0;border-radius:0;background:var(--accent);opacity:.8}
.home .card ul li::after{content:"";position:absolute;left:5.5px;top:calc(.58rem - 5.5px);width:1px;height:12px;background:var(--accent);opacity:.8}

/* instrument corner ticks framing every card (currentColor → recolor on hover) */
.home .card::after{content:"";position:absolute;inset:7px;pointer-events:none;color:var(--faint);opacity:.4;
  transition:opacity .35s var(--ease),color .35s var(--ease);
  background:
    linear-gradient(currentColor,currentColor) 0 0/10px 1px no-repeat,
    linear-gradient(currentColor,currentColor) 0 0/1px 10px no-repeat,
    linear-gradient(currentColor,currentColor) 100% 0/10px 1px no-repeat,
    linear-gradient(currentColor,currentColor) 100% 0/1px 10px no-repeat,
    linear-gradient(currentColor,currentColor) 0 100%/10px 1px no-repeat,
    linear-gradient(currentColor,currentColor) 0 100%/1px 10px no-repeat,
    linear-gradient(currentColor,currentColor) 100% 100%/10px 1px no-repeat,
    linear-gradient(currentColor,currentColor) 100% 100%/1px 10px no-repeat}
.home .card:hover::after{opacity:1;color:var(--accent)}
.home .card.feat::after{color:var(--accent);opacity:.6}

/* editorial section index — a hairline rule + dossier numeral on each section head */
.home{counter-reset:jlsec}
.home section.blk>.wrap>.shead{position:relative;border-top:1px solid var(--line);padding-top:1.7rem}
.home section.blk>.wrap>.shead::after{counter-increment:jlsec;content:"§ " counter(jlsec,decimal-leading-zero);
  position:absolute;top:1.7rem;right:0;font-family:"JetBrains Mono",monospace;font-size:.62rem;
  letter-spacing:.22em;color:var(--faint)}
.home section.blk>.wrap>.shead .kick::before{width:22px}

/* refined "explore" link — animated rule + arrow travel */
.home .card .more{position:relative;padding-bottom:2px}
.home .card .more::after{content:"";position:absolute;left:0;bottom:-1px;height:1px;width:0;background:var(--accent);transition:width .35s var(--ease)}
.home .card:hover .more::after{width:100%}
.home .card:hover .more{gap:.7rem}

/* case-study readout: hairline under the metric + unit alignment */
.home #proof .card .big{position:relative;display:inline-block;padding-bottom:.5rem;margin-bottom:.2rem}
.home #proof .card .big::after{content:"";position:absolute;left:0;bottom:0;width:38px;height:2px;background:var(--grad-accent);border-radius:2px}

/* stat numerals get a small reticle tick above */
.home .stat{position:relative}
.home .stat::before{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);width:1px;height:12px;background:var(--accent);opacity:.5}

/* marquee framed as an instrument strip */
.home .marquee{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.home .marquee .cap{color:var(--faint)}

/* page registration marks (bespoke print frame) */
.jl-crop{position:fixed;z-index:35;width:16px;height:16px;pointer-events:none;opacity:.3;
  transition:opacity .5s var(--ease)}
.jl-crop::before,.jl-crop::after{content:"";position:absolute;background:var(--accent)}
.jl-crop::before{width:16px;height:1px;top:0;left:0}
.jl-crop::after{width:1px;height:16px;top:0;left:0}
.jl-crop.tl{top:14px;left:14px}
.jl-crop.tr{top:14px;right:14px;transform:scaleX(-1)}
.jl-crop.bl{bottom:14px;left:14px;transform:scaleY(-1)}
.jl-crop.br{bottom:14px;right:14px;transform:scale(-1)}
@media(max-width:900px){.jl-crop{opacity:.16;width:12px;height:12px}}

@media(prefers-reduced-motion:reduce){
  .home .field .stars,.home .field .stars2{animation:none;transform:none!important}
  .home .rise,.home .lni{opacity:1!important;transform:none!important}
  .home .opmap svg [data-flow]{animation:none!important}
  .home .hero.cine h1{animation:none;background-position:0 0}
}

/* ============================================================
   BLUEPRINT LAYER — dark "operating console" artifacts (before/after
   map, symptom sheet) styled as glass panels lit by the galaxy, so
   they read as instrument readouts, not paper. One cohesive dark look.
   ============================================================ */

/* the console panel — dark glass with a faint blueprint grid */
.opdoc{position:relative;border:1px solid rgba(255,255,255,.10);border-radius:8px;
  background:
    linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.012)),
    radial-gradient(120% 80% at 0% 0%,rgba(var(--accent-rgb),.06),transparent 60%);
  box-shadow:0 30px 80px -34px rgba(0,0,0,.85),0 0 0 1px rgba(var(--accent-rgb),.06) inset;
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.opdoc::before{content:"";position:absolute;inset:0;pointer-events:none;border-radius:8px;opacity:.5;
  background-image:linear-gradient(rgba(var(--accent2-rgb),.05) 1px,transparent 1px),linear-gradient(90deg,rgba(var(--accent2-rgb),.05) 1px,transparent 1px);
  background-size:26px 26px;-webkit-mask:linear-gradient(180deg,#000,transparent);mask:linear-gradient(180deg,#000,transparent)}
.opdoc>*{position:relative}
.opdoc .op-tab{display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:.7rem 1.1rem;border-bottom:1px solid var(--line);
  font-family:"JetBrains Mono",monospace;font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--faint)}
.opdoc .op-tab .stamp{color:var(--accent-bright);border:1px solid rgba(var(--accent-rgb),.35);border-radius:2px;
  padding:.16rem .5rem;letter-spacing:.16em;background:rgba(var(--accent-rgb),.08)}
.opdoc .op-body{padding:clamp(1.1rem,2.6vw,1.9rem)}

.op-label{font-family:"JetBrains Mono",monospace;font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;color:var(--faint)}

/* ---------- before/after OPERATING MAP ---------- */
.opmap-sec .wrap{max-width:1100px}
.opmap{display:grid;grid-template-columns:1fr auto 1fr;gap:0;align-items:stretch;overflow:hidden;border-radius:0 0 8px 8px}
.opmap .col{padding:clamp(1.1rem,2.6vw,1.9rem)}
.opmap .col.after{background:linear-gradient(180deg,rgba(var(--accent-rgb),.04),transparent)}
.opmap .seam{width:1px;background:repeating-linear-gradient(180deg,rgba(var(--accent-rgb),.4),rgba(var(--accent-rgb),.4) 5px,transparent 5px,transparent 11px);position:relative}
.opmap .seam::after{content:"→";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:34px;height:34px;display:grid;place-items:center;border-radius:50%;
  background:var(--grad-accent);color:#04120f;font-weight:700;font-size:1rem;box-shadow:0 6px 22px -4px rgba(var(--accent-rgb),.8)}
.opmap .col-h{display:flex;align-items:baseline;gap:.6rem;margin-bottom:1.1rem}
.opmap .col-h b{font-family:var(--serif);font-weight:560;font-size:1.15rem;color:var(--text);letter-spacing:-.01em}
.opmap svg{width:100%;height:auto;display:block}
.opmap .note{font-family:"Instrument Serif",serif;font-style:italic;color:var(--faint)}
.opmap .note.good{color:var(--accent-bright)}
.opmap [data-flow]{animation:flowDash 1.4s linear infinite}
@keyframes flowDash{to{stroke-dashoffset:-16}}
@media(max-width:760px){
  .opmap{grid-template-columns:1fr}
  .opmap .seam{width:auto;height:1px;background:repeating-linear-gradient(90deg,rgba(var(--accent-rgb),.4),rgba(var(--accent-rgb),.4) 5px,transparent 5px,transparent 11px)}
  .opmap .seam::after{content:"↓"}
}

/* ---------- problem "symptom sheet" ---------- */
.symlist{list-style:none;margin:0;padding:0;display:grid;gap:0}
.symlist li{display:grid;grid-template-columns:auto 1fr;gap:.9rem;align-items:start;
  padding:.95rem 0;border-top:1px solid var(--line);color:var(--body)}
.symlist li:first-child{border-top:0}
.symlist li .no{font-family:"JetBrains Mono",monospace;font-size:.62rem;letter-spacing:.14em;color:var(--accent-bright);padding-top:.18rem}
.symlist li b{font-weight:600;color:var(--text)}

/* ---------- benefits: the four C's as index cards ---------- */
.home .quad .card{background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.015))}
.home .quad .card .cx{font-family:"JetBrains Mono",monospace;font-size:.6rem;letter-spacing:.22em;
  text-transform:uppercase;color:var(--accent-bright);display:block;margin-bottom:.55rem}

/* ---------- case study before→after chips ---------- */
.home .caseflip{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin:.2rem 0 .9rem;
  font-family:"JetBrains Mono",monospace;font-size:.62rem;letter-spacing:.06em}
.home .caseflip .b4{color:var(--faint);text-decoration:line-through;text-decoration-color:rgba(var(--accent-rgb),.5)}
.home .caseflip .ar{color:var(--accent)}
.home .caseflip .af{color:var(--accent-bright);font-weight:600}

/* ---------- engagement tiers ---------- */
.home .tiers .card{display:flex;flex-direction:column}
.home .tiers .card .lvl{font-family:"JetBrains Mono",monospace;font-size:.6rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--faint);margin-bottom:.7rem;display:flex;align-items:center;gap:.5rem}
.home .tiers .card .lvl::before{content:"";width:18px;height:1px;background:var(--accent)}
.home .tiers .card .more{margin-top:auto;padding-top:1rem}

/* ---------- POV pull-quote ---------- */
.pov .wrap{max-width:900px;text-align:center}
.pov .big-q{font-family:var(--serif);font-weight:540;letter-spacing:-.015em;
  font-size:clamp(1.7rem,3.4vw,2.7rem);line-height:1.18;color:var(--text)}
.pov .big-q .accent-it{font-size:1em}
.pov .pov-sub{color:var(--mut);max-width:62ch;margin:1.4rem auto 0}

/* ============================================================
   MODERN OLD MONEY — the finalized homepage system.
   Obsidian base, champagne ink, Playfair headline, gold heritage
   with a jade "solved-state" accent, over the lux particle field.
   Overrides the earlier cosmic layer (this block wins, loaded last).
   ============================================================ */
.home{
  --text:#ECE6D8; --body:#CBC4B4; --mut:#B4AD9C; --faint:#867F6E;
  --line:rgba(200,162,76,.16); --line-strong:rgba(200,162,76,.34);
  --champagne:#EAD9AE; --serif:"Playfair Display",Georgia,serif;
  background-color:#08080B;
  background-image:radial-gradient(120% 85% at 50% -6%,#141319 0%,#0b0b10 46%,#070709 100%);
  background-attachment:fixed;
}
#luxfield{position:fixed;inset:0;z-index:0;pointer-events:none}
.lux-vignette{position:fixed;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(120% 95% at 50% 14%,transparent 50%,rgba(0,0,0,.55) 100%)}
/* content sits above the field */
.home header.hero,.home section,.home .ctaband,.home #site-footer,.home .marquee{position:relative;z-index:1}
.home #site-nav{position:relative;z-index:50}

/* ---------- hero ---------- */
.home .hero.lux{position:relative;min-height:calc(100vh - 66px);display:flex;align-items:center;overflow:hidden;padding:2.2rem 0}
.home .hero.lux .wrap{position:relative;z-index:1;width:100%;display:grid;grid-template-columns:1.25fr .9fr;
  gap:clamp(2rem,5vw,4.5rem);align-items:center}
.home .hero-lead{min-width:0}
.home .hero.lux .h-eyebrow{display:inline-flex;align-items:center;gap:.7rem;font-family:"JetBrains Mono",monospace;
  font-size:.68rem;letter-spacing:.28em;text-transform:uppercase;color:var(--accent);margin-bottom:1.3rem;font-weight:500}
.home .hero.lux .h-eyebrow::before{content:"";width:26px;height:1px;background:linear-gradient(90deg,var(--accent2),var(--accent))}
.home .hero.lux h1{font-family:"Playfair Display",Georgia,serif;font-weight:600;font-size:clamp(2.7rem,6vw,5rem);
  line-height:1.05;letter-spacing:-.005em;color:var(--champagne);max-width:15ch;margin:0;
  text-shadow:0 0 42px rgba(233,208,150,.14),0 2px 2px rgba(0,0,0,.4)}
.home .hero.lux h1 .accent-it{font-family:"Playfair Display",Georgia,serif;font-style:italic;font-weight:600;
  color:var(--accent-bright);-webkit-text-fill-color:var(--accent-bright);background:none}
.home .hero.lux .lead{font-size:clamp(1.05rem,1.3vw,1.2rem);color:var(--mut);max-width:46ch;margin-top:1.5rem}
.home .hero.lux .hcta{margin-top:2rem;display:flex;gap:.8rem;flex-wrap:wrap}
.home .hero.lux .trust-line{font-family:"JetBrains Mono",monospace;font-size:.64rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--faint);margin-top:1.7rem;max-width:52ch;line-height:1.9}
/* readable, non-neon primary CTA */
.home .hero.lux .hcta .btn-primary{background:linear-gradient(180deg,#F2ECDC,#DCCDA9);color:#1c1408;
  box-shadow:0 12px 30px -12px rgba(0,0,0,.7),0 1px 0 rgba(255,255,255,.55) inset}
.home .hero.lux .hcta .btn-primary:hover{box-shadow:0 18px 42px -12px rgba(200,162,76,.4),0 1px 0 rgba(255,255,255,.6) inset}
.home .hero.lux .hcta .btn-ghost:hover{border-color:var(--accent2);color:var(--accent2-bright)}

/* monogram watermark */
.home .hero.lux .mono-wm{position:absolute;right:1%;top:50%;transform:translateY(-50%);z-index:0;pointer-events:none;
  font-family:"Playfair Display",serif;font-weight:700;font-size:clamp(15rem,32vw,32rem);line-height:.8;
  color:transparent;-webkit-text-stroke:1px rgba(200,162,76,.08);letter-spacing:-.04em}

/* credential strip */
.home .creds{display:grid;grid-template-columns:repeat(4,auto);gap:0;margin-top:1.7rem;width:fit-content;
  border-top:1px solid var(--line);padding-top:1.4rem}
.home .creds .cr{padding:0 1.5rem;border-right:1px solid var(--line)}
.home .creds .cr:first-child{padding-left:0}.home .creds .cr:last-child{border-right:0}
.home .creds .cr b{display:block;font-family:"Playfair Display",serif;font-weight:600;font-size:1.7rem;line-height:1;color:var(--accent-bright)}
.home .creds .cr span{display:block;margin-top:.4rem;font-size:.58rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint)}

/* ---------- hero console (embossed ledger) ---------- */
.home .hero-console{min-width:0}
.home .console{position:relative;perspective:1200px;animation:luxfloat 7s ease-in-out infinite}
@keyframes luxfloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
.home .console .sheet{position:absolute;inset:0;border-radius:5px;border:1px solid var(--line)}
.home .console .sheet.b1{transform:rotate(-3deg) translate(-13px,10px);background:rgba(255,255,255,.02);opacity:.6}
.home .console .sheet.b2{transform:rotate(2.2deg) translate(11px,-5px);background:rgba(255,255,255,.03);opacity:.8}
.home .ledger{position:relative;background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.015));
  border:1px solid var(--line-strong);border-radius:6px;transform:rotate(-.6deg);overflow:hidden;
  box-shadow:0 40px 90px -30px rgba(0,0,0,.9),0 1px 0 rgba(240,220,160,.14) inset;backdrop-filter:blur(6px)}
.home .ledger::after{content:"";position:absolute;inset:5px;border:1px solid var(--line);border-radius:3px;pointer-events:none}
.home .ltab{display:flex;justify-content:space-between;align-items:center;padding:.8rem 1.1rem;border-bottom:1px solid var(--line);
  font-family:"JetBrains Mono",monospace;font-size:.58rem;letter-spacing:.22em;text-transform:uppercase;color:var(--faint)}
.home .ltab .st{color:var(--accent-bright);border:1px solid var(--line-strong);border-radius:2px;padding:.16rem .5rem}
.home .lbd{padding:1.2rem}
.home .cmet{display:flex;gap:1.4rem;border-bottom:1px solid var(--line);padding-bottom:1rem;margin-bottom:1rem}
.home .cmet b{display:block;font-family:"Playfair Display",serif;font-weight:700;font-size:1.85rem;line-height:1;color:var(--accent-bright)}
.home .cmet b.j{color:var(--accent2-bright)}
.home .cmet span{display:block;margin-top:.35rem;font-size:.6rem;letter-spacing:.05em;line-height:1.35;color:var(--faint);text-transform:uppercase}
.home .clabel{display:block;font-family:"JetBrains Mono",monospace;font-size:.56rem;letter-spacing:.22em;text-transform:uppercase;color:var(--faint);margin-bottom:.6rem}
.home .bars{display:flex;align-items:flex-end;gap:5px;height:50px;margin-bottom:1.1rem}
.home .bars i{flex:1;background:linear-gradient(180deg,var(--accent-bright),#8A6C2E);border-radius:1px;transform-origin:bottom;transform:scaleY(.3);animation:eqbar 2.6s ease-in-out infinite}
.home .bars i:nth-child(1){animation-delay:0s}.home .bars i:nth-child(2){animation-delay:.18s}
.home .bars i:nth-child(3){animation-delay:.36s}.home .bars i:nth-child(4){animation-delay:.54s}
.home .bars i:nth-child(5){animation-delay:.72s}.home .bars i:nth-child(6){animation-delay:.9s}
.home .bars i:nth-child(7){animation-delay:1.08s}.home .bars i:nth-child(8){animation-delay:1.26s}
@keyframes eqbar{0%,100%{transform:scaleY(.28)}50%{transform:scaleY(1)}}
.home .cpipe{display:flex;align-items:center;gap:.45rem;font-family:"JetBrains Mono",monospace;font-size:.56rem;letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}
.home .cpipe b{color:var(--body);font-weight:600}.home .cpipe .ar{color:var(--accent)}.home .cpipe .dn{color:var(--accent2-bright);font-weight:600}

/* ---------- headline mask reveal keeps working; emphasis inherits ---------- */
.home .hero.lux h1.ln{overflow:hidden}

/* ---------- serif headings → Playfair for cohesion ---------- */
.home .shead h2,.home .ctaband h2,.home .pov .big-q{font-family:"Playfair Display",Georgia,serif;font-weight:600}
.home .shead h2 .emn,.home .ctaband h2 .emn{font-family:"Playfair Display",serif;font-style:italic;font-weight:600}

/* ---------- operating map: jade "after" ---------- */
.home .opmap .col.after{background:linear-gradient(180deg,rgba(var(--accent2-rgb),.05),transparent)}
.home .opmap .seam::after{background:linear-gradient(140deg,var(--accent-bright),var(--accent2));color:#08201a}
.home .opmap .note.good{color:var(--accent2-bright)}
.home .opmap .seam{background:repeating-linear-gradient(180deg,rgba(var(--accent-rgb),.4),rgba(var(--accent-rgb),.4) 5px,transparent 5px,transparent 11px)}

/* ---------- de-geometry: crosshair "+" bullets → a single clean gold rule ---------- */
.home .card ul li::after{content:none}
.home .card ul li::before{content:"";position:absolute;left:0;top:.62rem;width:13px;height:1px;background:var(--accent);opacity:.75}

/* ---------- responsive ---------- */
@media(max-width:900px){
  .home .hero.lux{min-height:auto;padding-top:1.5rem}
  .home .hero.lux .wrap{grid-template-columns:1fr}
  .home .hero-console,.home .hero.lux .mono-wm{display:none}
  .home .creds{grid-template-columns:repeat(2,auto);row-gap:1rem}
  .home .creds .cr{border-bottom:1px solid var(--line);padding-bottom:1rem}
}
@media(prefers-reduced-motion:reduce){
  .home .console,.home .bars i{animation:none}
  .home .bars i{transform:scaleY(.7)}
}

/* ============================================================
   ABOUT ME page — personal brand hub (split/photo/bio styles are
   consolidated in the ABOUT ME block lower in this file)
   ============================================================ */
.home .about-bio .sig{font-family:"Playfair Display",serif;font-style:italic;color:var(--champagne)}

.home .principles{margin:.4rem 0 0;padding:0}
.home .principles li{list-style:none;display:grid;grid-template-columns:auto 1fr;gap:1.1rem;padding:1.05rem 0;border-top:1px solid var(--line)}
.home .principles li:first-child{border-top:0}
.home .principles li .pn{font-family:"JetBrains Mono",monospace;font-size:.62rem;letter-spacing:.14em;color:var(--accent-bright);padding-top:.28rem}
.home .principles li b{color:var(--text);font-weight:600}
.home .principles li span.d{color:var(--mut)}

.home .ophist{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:1.2rem}
.home .ophist span{font-family:"JetBrains Mono",monospace;font-size:.66rem;letter-spacing:.04em;
  border:1px solid var(--line);border-radius:3px;padding:.5rem .8rem;color:var(--mut)}
.home .ophist span b{color:var(--accent-bright);font-weight:500}

.home .offclock{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:.4rem}
.home .offclock .oc{border:1px solid var(--line);border-radius:8px;padding:1.4rem;background:rgba(255,255,255,.02)}
.home .offclock .oc .n{font-family:"JetBrains Mono",monospace;font-size:.6rem;letter-spacing:.16em;color:var(--accent);text-transform:uppercase}
.home .offclock .oc h4{font-family:"Playfair Display",serif;font-weight:600;color:var(--text);margin:.5rem 0 .4rem;font-size:1.1rem}
.home .offclock .oc p{font-size:.9rem;color:var(--mut)}
@media(max-width:720px){.home .offclock{grid-template-columns:1fr}}

/* ============================================================
   ABOUT / content hero — big + centered (no empty right side)
   and bio = text left, big photo right (no orange). Space-max.
   ============================================================ */
.home #page .hero.solo .wrap{display:block}
.home #page .hero.solo .inner{max-width:74ch;margin:0 auto;text-align:center;
  display:flex;flex-direction:column;align-items:center}
.home #page .hero.solo h1{font-size:clamp(3rem,6.4vw,5.4rem);line-height:1.04}
.home #page .hero.solo .lead{margin-left:auto;margin-right:auto}
.home #page .hero.solo .kick{justify-content:center}
.home #page .hero.solo .ctas,.home #page .hero.solo .hcta{justify-content:center}

/* ============================================================
   ABOUT ME — one clean block. Big centered headline; bio LEFT
   (larger), portrait RIGHT feathered into the dark so it reads as
   an intentional editorial portrait, not a floating cutout.
   ============================================================ */
.home .prose:has(.about-split),
.home .prose:has(.offclock){max-width:none}

.home section.blk:has(.about-split) .shead{text-align:center;max-width:none;margin:0 auto 2.6rem}
.home section.blk:has(.about-split) .shead .kick{justify-content:center}
.home section.blk:has(.about-split) .shead h2{font-size:clamp(2.6rem,5.2vw,4.2rem);line-height:1.05}
.home section.blk:has(.about-split) .shead::after{display:none}

.home .about-split{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.home .about-bio{order:1;align-self:center;max-width:50ch}
.home .about-bio p{font-size:clamp(1.05rem,1.25vw,1.22rem);line-height:1.8;margin-bottom:1.1rem;color:var(--body)}
.home .about-bio .sig{font-size:1.55rem;margin-top:.6rem}

.home .about-photo{order:2;position:relative;display:flex;align-items:flex-end;justify-content:center;
  border:0;background:none;overflow:visible;box-shadow:none;min-height:0}
.home .about-photo img{width:100%;max-width:480px;height:auto;display:block;object-fit:contain;
  -webkit-mask:linear-gradient(180deg,#000 82%,rgba(0,0,0,.6) 93%,transparent 100%);
          mask:linear-gradient(180deg,#000 82%,rgba(0,0,0,.6) 93%,transparent 100%);
  filter:drop-shadow(0 26px 54px rgba(0,0,0,.5))}
/* warm pedestal glow so the figure is grounded, not floating */
.home .about-photo::before{content:"";position:absolute;left:50%;bottom:0;transform:translateX(-50%);
  width:122%;height:86%;z-index:-1;pointer-events:none;filter:blur(9px);
  background:radial-gradient(50% 52% at 50% 62%,rgba(var(--accent-rgb),.17),transparent 70%),
            radial-gradient(42% 42% at 50% 46%,rgba(var(--accent2-rgb),.08),transparent 72%)}
.home .about-photo::after{content:none}
.home .about-photo .tagchip{display:none}

@media(max-width:820px){
  .home section.blk:has(.about-split) .shead{margin-bottom:1.6rem}
  .home .about-split{grid-template-columns:1fr;gap:1.2rem}
  .home .about-photo{order:-1}
  .home .about-photo img{max-width:min(360px,76vw);margin:0 auto}
  .home .about-bio{order:1;max-width:none;margin:0 auto;text-align:left}
  .home .about-bio p,.home .about-bio .sig{text-align:left}
}

/* ============================================================
   PROFESSIONAL TYPE SYSTEM — one consistent set on every page.
   Playfair Display (all display + emphasis) · Hanken Grotesk
   (body/UI) · JetBrains Mono (labels). Retires Clash Display
   and Instrument Serif so nothing reads as mismatched.
   ============================================================ */
.home .display,.home .brand,.home .mega-feat b,.home h1,.home .shead h2,
.home .card h3,.home .card .big,.home .stat .n,.home .cmp-head .me,.home .cmp-head .them,
.home .step .sn,.home .step h3,.home .faq .qa h3,.home .frow h3,.home .strip .s b,
.home .tl h3,.home .prose h2,.home .tool .out .big,.home .ctaband h2{
  font-family:"Playfair Display",Georgia,serif}
/* emphasis words → Playfair italic (one voice, no Instrument-Serif mismatch) */
.home .serif-it,.home .accent-it,.home .em,.home .em .em-in,.home .emn,
.home .shead h2 .emn,.home .ctaband h2 .emn,.home .opmap .note{
  font-family:"Playfair Display",Georgia,serif;font-style:italic}
/* keep body + labels crisp and professional */
.home,.home body{font-family:"Hanken Grotesk",system-ui,sans-serif}
