/* Yousuf Virani — site styles
   Layout: Apple-style editorial. Light type, white and soft-grey bands, centred headlines, rounded tiles.
   The orange dot from the logo is the only accent. */
:root{
  --wall:#FFFFFF;          /* page */
  --gray:#F5F5F7;          /* alternate bands, tiles */
  --surface:#F5F5F7;
  --ink:#1D1D1F;           /* primary text */
  --ink-2:#6E6E73;         /* secondary text */
  --ink-3:#86868B;         /* tertiary text */
  --rule:#D2D2D7;          /* hairlines */
  --ember:#F5821F;         /* the dot */
  --ember-text:#B85400;    /* orange that reads on white */
  --ember-grad:linear-gradient(100deg,#F79A3E 0%,#F5821F 45%,#DD5A12 100%);

  --f-display:-apple-system,BlinkMacSystemFont,"SF Pro Display","Inter","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --f-text:-apple-system,BlinkMacSystemFont,"SF Pro Text","Inter","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --f-mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;

  --gutter:clamp(16px,4vw,48px);
  --maxw:1200px;
  --r-lg:28px;
  --r-md:20px;
  --ease:cubic-bezier(.65,0,.35,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
  color-scheme:light;
  --mark:url("data:image/png;base64,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");
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--wall);color:var(--ink);font-family:var(--f-text);font-size:1.0625rem;line-height:1.47;letter-spacing:-.011em;font-weight:400;overflow-x:clip;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
img,svg{max-width:100%;display:block}
img{height:auto}
a{color:inherit}
::selection{background:color-mix(in srgb,var(--ember) 35%,transparent)}
:focus-visible{outline:2px solid var(--ember);outline-offset:3px;border-radius:6px}
h1,h2,h3,h4{margin:0;font-family:var(--f-display);font-weight:600;letter-spacing:-.022em;text-wrap:balance}
p{margin:0}
ul,ol,dl,dd{margin:0;padding:0;list-style:none}
figure{margin:0}

.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter)}
.section{padding-block:clamp(4.5rem,10vw,8.5rem)}
.section--gray{background:var(--gray)}
.section--tight{padding-top:0}

/* type */
.eyebrow{display:block;font-family:var(--f-display);font-size:clamp(1rem,1.4vw,1.2rem);font-weight:600;color:var(--ember-text);letter-spacing:-.01em}
.h-xl{font-size:clamp(2.8rem,7vw,5.5rem);line-height:1.04;letter-spacing:-.03em}
.h-lg{font-size:clamp(2.2rem,5vw,3.6rem);line-height:1.07;letter-spacing:-.028em}
.h-md{font-size:clamp(1.6rem,2.8vw,2.3rem);line-height:1.12}
.sub{font-size:clamp(1.15rem,1.9vw,1.55rem);line-height:1.38;color:var(--ink-2);font-weight:400;letter-spacing:-.015em}
.grad{background:var(--ember-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.head{text-align:center;max-width:50rem;margin:0 auto clamp(2.8rem,5vw,4.2rem);display:grid;gap:.9rem;justify-items:center}
.head--left{text-align:left;margin-inline:0;justify-items:start}

/* links + buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;font:500 1.0625rem/1 var(--f-text);letter-spacing:-.01em;padding:.8rem 1.35rem;border-radius:980px;border:1px solid var(--ink);background:var(--ink);color:#fff;text-decoration:none;cursor:pointer;transition:background .25s,color .25s,border-color .25s,transform .25s var(--ease-out)}
.btn:hover{background:#000;transform:translateY(-1px)}
.btn--ghost{background:transparent;color:var(--ink);border-color:var(--rule)}
.btn--ghost:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.btn--sm{font-size:.8rem;padding:.42rem .9rem}
.link{color:var(--ember-text);text-decoration:none;font-weight:400;font-size:1.0625rem;display:inline-flex;align-items:center;gap:.25rem}
.link::after{content:"›";font-size:1.25em;line-height:1;transform:translateY(-.03em);transition:transform .25s var(--ease-out)}
.link:hover{text-decoration:underline;text-underline-offset:.18em}
.link:hover::after{transform:translate(.15em,-.03em)}
.actions{display:flex;flex-wrap:wrap;gap:.8rem 1.6rem;align-items:center}
.head .actions{justify-content:center}

/* ---------- the mark (logo cut-out as a mask) ---------- */
.mark{position:relative;aspect-ratio:912/590;width:100%;max-width:100%}
.mark__ink{position:absolute;inset:0;background:var(--ink);-webkit-mask:var(--mark) center/contain no-repeat;mask:var(--mark) center/contain no-repeat}
.mark__dot{position:absolute;left:82%;top:29.4%;width:7.8%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 38% 34%,#FFB067 0 18%,var(--ember) 55%,#D9660A 100%)}
.mark.is-drawing .mark__ink{animation:draw 1.9s var(--ease) both}
.mark.is-drawing .mark__dot{animation:drop 1s var(--ease-out) 1.55s both}
@keyframes draw{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
@keyframes drop{0%{transform:translateY(-260%) scale(.4);opacity:0}45%{transform:translateY(0) scale(1.08,.86);opacity:1}65%{transform:translateY(-38%) scale(.96,1.04)}82%{transform:translateY(0) scale(1.03,.95)}100%{transform:none;opacity:1}}

/* ---------- global nav ---------- */
.site-head{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:rgba(255,255,255,.72);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid transparent;transition:border-color .3s}
.site-head.is-scrolled{border-bottom-color:rgba(0,0,0,.08)}
.site-head .wrap{display:flex;align-items:center;justify-content:space-between;gap:1rem;height:52px}
.brand{display:flex;align-items:center;gap:.6rem;text-decoration:none}
.brand .mark{width:44px}
.wordmark{font:300 .74rem/1 var(--f-display);letter-spacing:.3em;text-transform:uppercase;white-space:nowrap}
.wordmark b{font-weight:600}
.nav{display:flex;align-items:center;gap:clamp(1.1rem,2.4vw,2.2rem)}
.nav a{font-size:.8rem;text-decoration:none;color:var(--ink);opacity:.8;transition:opacity .2s}
.nav a:hover,.nav a[aria-current="page"]{opacity:1}
.nav a[aria-current="page"]:not(.btn){font-weight:600}
.nav .btn{opacity:1;font-size:.78rem;padding:.4rem .85rem;color:#fff}
.menu-btn{display:none;background:none;border:0;color:var(--ink);font:500 .85rem var(--f-text);padding:.5rem 0;cursor:pointer}
@media (max-width:820px){
  .menu-btn{display:block}
  .nav{position:fixed;inset:52px 0 auto 0;height:calc(100dvh - 52px);flex-direction:column;align-items:stretch;gap:0;background:rgba(255,255,255,.97);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);padding:1.5rem var(--gutter) 2rem;overflow:auto}
  .nav:not(.is-open){display:none}
  .nav a{font:600 1.75rem/1.2 var(--f-display);letter-spacing:-.02em;opacity:1;padding-block:.55rem;border-bottom:1px solid var(--gray)}
  .nav a[aria-current="page"]{color:var(--ember-text)}
  .nav .btn{margin-top:1.5rem;font-size:1rem;padding:.85rem 1.3rem;align-self:flex-start;border-bottom:0}
  .wordmark{font-size:.66rem;letter-spacing:.22em}
}

/* ---------- home hero ---------- */
.hero{padding-top:clamp(2rem,5vw,4rem)}
/* three columns: greeting | portrait | topic. The two text blocks sit on a gentle diagonal around the photo. */
.hero__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr) minmax(0,1fr);gap:clamp(1rem,3vw,3rem);align-items:center}
.hello{align-self:center;margin-bottom:12%}
.topic{align-self:center;margin-top:18%;text-align:right;display:grid;justify-items:end;gap:.2rem;padding-right:calc(clamp(5rem,11vw,10rem) * .064);animation:rise 1.1s var(--ease-out) .3s both}
.topic__lead{font:300 clamp(1.3rem,2.4vw,2.2rem)/1.1 var(--f-display);letter-spacing:-.03em;color:var(--ink-2)}
.topic__big{font:600 clamp(2.2rem,4.3vw,3.9rem)/.95 var(--f-display);letter-spacing:-.045em}
.topic__big > span{display:block}
.topic .link{margin-top:1rem}
.hello{margin:0;font-weight:inherit}
.hello__hi{display:block;font:600 clamp(5rem,11vw,10rem)/.9 var(--f-display);letter-spacing:-.055em;animation:rise 1.1s var(--ease-out) both}
.hello__hi i{font-style:normal;background:var(--ember-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.hello__name{display:block;margin-top:clamp(.8rem,2vw,1.4rem);padding-left:calc(clamp(5rem,11vw,10rem) * .064);font:300 clamp(1.5rem,2.9vw,2.7rem)/1.1 var(--f-display);letter-spacing:-.035em;color:var(--ink-3);animation:rise 1.1s var(--ease-out) .15s both}
.hello__name b{display:block;font-weight:600;color:var(--ink)}
@keyframes rise{from{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}
@keyframes fade{from{opacity:0}to{opacity:1}}

.portrait{position:relative;align-self:end;max-width:100%}
.portrait img{width:100%;height:auto;aspect-ratio:4/5;animation:fade 1.4s ease both;user-select:none;-webkit-user-drag:none}
/* gaze: nine photos stacked; the one facing the pointer switches on instantly */
.gaze{touch-action:manipulation;-webkit-tap-highlight-color:transparent;animation:fade 1.4s ease both}   /* one fade-in on page load, never per frame */
.gaze .gaze__f{position:absolute;inset:0;height:100%;opacity:0;z-index:0;animation:none}
.gaze .gaze__f[data-dir="c"]{position:relative;inset:auto;height:auto}
.gaze .gaze__f.was-on{opacity:1;z-index:1;transition:none}
.gaze .gaze__f.is-on{opacity:1;z-index:2}


.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--rule);margin:0}
.stat{padding:clamp(1.4rem,3vw,2.2rem) 1rem;text-align:center}
.stat + .stat{border-left:1px solid var(--rule)}
.stat dt{font:600 clamp(2.2rem,5.4vw,4.2rem)/1 var(--f-display);letter-spacing:-.04em;font-variant-numeric:tabular-nums;background:var(--ember-grad);-webkit-background-clip:text;background-clip:text;color:transparent;padding-bottom:.08em}
.stat dd{margin-top:.45rem;font-size:clamp(.82rem,1.3vw,1.0625rem);color:var(--ink-2)}
@media (max-width:860px){
  .hero__grid{grid-template-columns:1fr;gap:1.6rem}
  .hello{padding-top:.5rem;margin-bottom:0}
  .portrait{width:min(100%,440px);margin-inline:auto;order:1}
  .topic{order:2;margin:0 0 1.6rem}
  .topic__big{font-size:clamp(2.6rem,11vw,3.6rem)}
}
@media (max-width:760px){
  .stat{padding-inline:.4rem}
}

/* ---------- statement ---------- */
.statement{font:600 clamp(1.9rem,4.4vw,3.6rem)/1.12 var(--f-display);letter-spacing:-.03em;text-align:center;max-width:22ch;margin-inline:auto;color:var(--ink-3)}
.statement b{font-weight:600;color:var(--ink)}
.story{display:grid;justify-items:center;gap:1.4rem;text-align:center}
.statement--story{font-size:clamp(1.45rem,2.7vw,2.35rem);line-height:1.28;letter-spacing:-.022em;max-width:36ch}

/* ---------- bento tiles ---------- */
.bento{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(12px,1.6vw,20px)}
.tile{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:.6rem;min-height:clamp(22rem,36vw,30rem);padding:clamp(2rem,4vw,3.2rem) clamp(1.4rem,3vw,2.6rem) 0;border-radius:var(--r-lg);background:var(--gray);text-decoration:none;overflow:hidden;isolation:isolate;transition:transform .5s var(--ease-out),box-shadow .5s var(--ease-out)}
.section--gray .tile{background:var(--wall)}
.tile:hover{transform:translateY(-4px);box-shadow:0 24px 48px -24px rgba(0,0,0,.18)}
.tile h3{font-size:clamp(2rem,3.6vw,3rem);line-height:1.05;letter-spacing:-.03em}
.tile p{font-size:clamp(1.05rem,1.4vw,1.25rem);color:var(--ink-2);max-width:28ch}
.tile .link{margin-top:.3rem}
.tile__art{margin-top:auto;width:100%;display:grid;place-items:end center;padding-top:1.5rem}
.tile--dark{background:#000!important;color:#F5F5F7}
.tile--dark p{color:#A1A1A6}
.tile--dark .link{color:#FF9A45}
.tile__num{font:600 clamp(4rem,9vw,7rem)/1 var(--f-display);letter-spacing:-.05em;padding-bottom:clamp(1.6rem,4vw,3rem)}
.tile__chips{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;padding-bottom:clamp(2rem,4vw,3rem)}
.tile__chips span{font-size:.85rem;padding:.4rem .85rem;border-radius:980px;background:var(--wall);color:var(--ink)}
.section--gray .tile__chips span{background:var(--gray)}
@media (max-width:760px){.bento{grid-template-columns:1fr}}

/* ---------- project cards + rail ---------- */
.card{display:flex;flex-direction:column;gap:.7rem;min-width:0}
.card__art{position:relative;aspect-ratio:4/5;width:100%;border-radius:var(--r-md);overflow:hidden;background:var(--gray);isolation:isolate}
.section--gray .card__art{background:var(--wall)}
.card__art.dark{background:#111;color:#fff;--wall:#FFFFFF;--ink:#111111;--ink-2:#A1A1A6;--rule:rgba(255,255,255,.16)}
.card__meta{display:flex;justify-content:space-between;gap:1rem;font-size:.8rem;color:var(--ink-3);margin-top:.4rem}
.card h3{font-size:1.5rem;letter-spacing:-.022em;line-height:1.1}
.card p{font-size:.98rem;color:var(--ink-2)}
.card__art > *{transition:transform .9s var(--ease-out)}
.card:hover .card__art > *{transform:scale(1.035)}
.rail{display:grid;grid-auto-flow:column;grid-auto-columns:clamp(270px,29vw,360px);gap:clamp(14px,1.8vw,24px);overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:max(var(--gutter),calc((100vw - var(--maxw)) / 2 + var(--gutter)));padding-inline:max(var(--gutter),calc((100vw - var(--maxw)) / 2 + var(--gutter)));padding-bottom:.5rem;scrollbar-width:none;overscroll-behavior-x:contain}
.rail::-webkit-scrollbar{display:none}
.rail > *{scroll-snap-align:start}
.paddles{display:flex;justify-content:flex-end;gap:.8rem;margin-top:1.6rem}
.paddle{width:44px;height:44px;border-radius:50%;border:0;background:color-mix(in srgb,var(--ink) 8%,var(--wall));color:var(--ink);font-size:1.4rem;line-height:1;display:grid;place-items:center;cursor:pointer;transition:background .2s,opacity .2s}
.paddle:hover{background:color-mix(in srgb,var(--ink) 14%,var(--wall))}
.paddle:disabled{opacity:.35;cursor:default}
.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(2rem,4vw,3rem) clamp(14px,2vw,24px)}
@media (max-width:1000px){.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.grid-3{grid-template-columns:1fr}}

/* card artworks */
.art-vape{position:absolute;inset:0;display:grid;place-items:center}
.art-vape i{position:absolute;border-radius:50%;border:1.5px solid rgba(255,255,255,.5);animation:vapor 7s ease-in-out infinite}
.art-vape i:nth-child(1){width:46%;aspect-ratio:1;left:14%;top:48%}
.art-vape i:nth-child(2){width:30%;aspect-ratio:1;left:48%;top:30%;animation-delay:-2.3s}
.art-vape i:nth-child(3){width:18%;aspect-ratio:1;left:36%;top:14%;animation-delay:-4.6s;border-color:var(--ember)}
.art-vape b{position:relative;font:600 clamp(4rem,9vw,6.5rem)/1 var(--f-display);letter-spacing:-.05em;color:transparent;-webkit-text-stroke:1.2px #fff}
@keyframes vapor{50%{transform:translate(4%,-9%) scale(1.08)}}
.art-voyage{position:absolute;inset:0}
.art-voyage svg{width:100%;height:100%}
.art-lefteez{position:absolute;inset:0;background:repeating-linear-gradient(135deg,rgba(255,255,255,.08) 0 2px,transparent 2px 7px),repeating-linear-gradient(45deg,rgba(255,255,255,.035) 0 1px,transparent 1px 5px)}
.art-lefteez::before{content:"";position:absolute;inset:9%;border:1.5px dashed var(--ember);border-radius:14px}
.art-lefteez .tag{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-4deg);background:#fff;color:#1D1D1F;padding:1.1rem 1.4rem;border-radius:10px;text-align:center}
.art-lefteez .tag b{display:block;font:700 clamp(1.5rem,2.6vw,2rem)/1 var(--f-display);letter-spacing:-.03em}
.art-lefteez .tag small{font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:#6E6E73}
.art-bot{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;gap:.6rem;padding:11%}
.bubble{max-width:80%;padding:.65rem .95rem;border-radius:18px;font-size:.86rem;line-height:1.35}
.bubble.in{background:#fff;border-bottom-left-radius:6px;box-shadow:0 1px 2px rgba(0,0,0,.06)}
.bubble.out{background:var(--ember);color:#fff;align-self:flex-end;border-bottom-right-radius:6px}
.bubble.btns{display:flex;gap:.4rem;padding:0;background:none;flex-wrap:wrap}
.bubble.btns span{background:#fff;color:var(--ember-text);border-radius:980px;padding:.35rem .8rem;font-size:.75rem;font-weight:500;box-shadow:0 1px 2px rgba(0,0,0,.06)}
.typing{display:flex;gap:4px;padding:.75rem .95rem;background:#fff;border-radius:18px;width:max-content;border-bottom-left-radius:6px}
.typing i{width:6px;height:6px;border-radius:50%;background:#86868B;animation:blink 1.2s infinite}
.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}
@keyframes blink{0%,60%,100%{opacity:.25}30%{opacity:1}}
.art-easy{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;gap:.3rem;padding:9%;background-image:radial-gradient(circle,rgba(255,255,255,.22) 1.4px,transparent 1.8px);background-size:14px 14px;background-position:7px 7px}
.art-easy b{font:600 clamp(3rem,6vw,4.6rem)/.95 var(--f-display);letter-spacing:-.05em;background:#111;padding-right:.1em;width:max-content}
.art-easy span{font-size:.8rem;background:#111;width:max-content;padding-block:.2rem;color:var(--ember)}
.art-merch{position:absolute;inset:0;display:grid;place-items:center}
.art-merch svg{width:74%}
.art-merch .chest{position:absolute;width:22%;left:39%;top:40%}
.art-merch .royalty{position:absolute;right:8%;bottom:7%;font-size:.75rem;color:var(--ink-2);text-align:right}
.art-merch .royalty b{display:block;font:600 1.9rem/1.1 var(--f-display);letter-spacing:-.03em;color:var(--ink)}
.art-seo{position:absolute;inset:0;padding:10% 9% 9%}
.art-seo svg{width:100%;height:100%;overflow:visible}
.art-seo .line{stroke-dasharray:600;stroke-dashoffset:600}
.card.is-in .art-seo .line,.no-reveal .art-seo .line{animation:trace 2.2s var(--ease) .3s forwards}
@keyframes trace{to{stroke-dashoffset:0}}

/* ---------- inner page hero ---------- */
.page-hero{padding-block:clamp(3.5rem,8vw,7rem) clamp(2.5rem,5vw,4.5rem);text-align:center}
.page-hero .wrap{display:grid;gap:1rem;justify-items:center}
.page-hero h1{font-size:clamp(3rem,8vw,6rem);line-height:1.02;letter-spacing:-.04em;animation:rise 1s var(--ease-out) both}
.page-hero .sub{max-width:36ch;animation:rise 1s var(--ease-out) .12s both}
.page-hero .eyebrow{animation:fade 1s ease both}

/* ---------- about ---------- */
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,6vw,6rem);align-items:center}
.split--top{align-items:start}
@media (max-width:860px){.split{grid-template-columns:1fr}}
.photo{border-radius:var(--r-lg);overflow:hidden;background:var(--gray)}
.photo img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover}
.facts{display:grid;gap:0;border-top:1px solid var(--rule)}
.facts div{display:grid;grid-template-columns:8rem minmax(0,1fr);gap:1rem;padding-block:1.1rem;border-bottom:1px solid var(--rule)}
.facts dt{color:var(--ink-3);font-size:.95rem}
.facts dd{font-weight:500}
.prose{display:grid;gap:1.2rem;font-size:clamp(1.1rem,1.5vw,1.3rem);line-height:1.5;color:var(--ink-2);max-width:38rem;margin-inline:auto}
.prose b{color:var(--ink);font-weight:600}
.quote-xl{font:600 clamp(1.9rem,4.2vw,3.4rem)/1.12 var(--f-display);letter-spacing:-.03em;text-align:center;max-width:24ch;margin-inline:auto}
.quote-xl em{font-style:normal;background:var(--ember-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.timeline{max-width:48rem;margin-inline:auto;border-top:1px solid var(--rule)}
.timeline li{display:grid;grid-template-columns:7rem minmax(0,1fr);gap:1.2rem;padding-block:1.4rem;border-bottom:1px solid var(--rule)}
.timeline time{font:600 1.05rem/1.4 var(--f-display);color:var(--ember-text);font-variant-numeric:tabular-nums}
.timeline b{display:block;font-weight:600;font-size:1.15rem;letter-spacing:-.015em}
.timeline span{color:var(--ink-2)}
@media (max-width:600px){.timeline li{grid-template-columns:4.6rem minmax(0,1fr)}.facts div{grid-template-columns:6rem minmax(0,1fr)}}

/* ---------- clients ---------- */
.clients{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(12px,1.6vw,20px)}
.client{display:flex;flex-direction:column;gap:.35rem;padding:clamp(1.5rem,2.6vw,2.2rem);border-radius:var(--r-md);background:var(--wall);text-decoration:none;transition:transform .4s var(--ease-out),box-shadow .4s var(--ease-out)}
.client:hover{transform:translateY(-3px);box-shadow:0 18px 40px -22px rgba(0,0,0,.2)}
.client__yr{font-size:.8rem;color:var(--ink-3);font-variant-numeric:tabular-nums}
.client__name{font:600 clamp(1.5rem,2.4vw,2rem)/1.1 var(--f-display);letter-spacing:-.025em;margin-top:.8rem}
.client__what{color:var(--ink-2);font-size:.98rem}
.client__what b{display:block;color:var(--ink);font-weight:500}
.client--you{background:#000;color:#F5F5F7}
.client--you .client__what{color:#A1A1A6}
.client--you .client__what b{color:#FF9A45}
@media (max-width:900px){.clients{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.clients{grid-template-columns:1fr}}

/* ---------- services ---------- */
.svc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(12px,1.6vw,20px)}
.svc{display:flex;flex-direction:column;gap:.7rem;padding:clamp(1.6rem,2.8vw,2.4rem);border-radius:var(--r-md);background:var(--gray)}
.section--gray .svc{background:var(--wall)}
.svc__tag{font-size:.85rem;font-weight:600;color:var(--ember-text)}
.svc h3{font-size:clamp(1.4rem,2vw,1.7rem);line-height:1.12}
.svc p{color:var(--ink-2)}
.svc__list{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:auto;padding-top:.8rem}
.svc__list li{font-size:.8rem;padding:.3rem .7rem;border-radius:980px;background:var(--gray);color:var(--ink-2)}
.section--gray .svc__list li{background:var(--gray)}

@media (max-width:900px){.svc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.svc-grid{grid-template-columns:1fr}}
.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(1.5rem,3vw,2.5rem)}
.step{display:grid;gap:.6rem;align-content:start;padding-top:1.4rem;border-top:1px solid var(--rule)}
.step__n{font:200 clamp(2.6rem,4.4vw,3.6rem)/1 var(--f-display);letter-spacing:-.04em;color:var(--ember-text);font-variant-numeric:tabular-nums}
.step h3{font-size:1.4rem}
.step p{color:var(--ink-2)}
@media (max-width:860px){.steps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.steps{grid-template-columns:1fr}}

/* ---------- training ---------- */
.programs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(12px,1.6vw,20px)}
.program{display:flex;flex-direction:column;gap:.7rem;padding:clamp(1.8rem,3.4vw,3rem);border-radius:var(--r-lg);background:var(--wall)}
.program__kicker{font-size:.9rem;font-weight:600;color:var(--ember-text)}
.program h3{font-size:clamp(1.7rem,2.8vw,2.4rem);line-height:1.08;letter-spacing:-.03em}
.program p{color:var(--ink-2);max-width:42ch}
.program ul{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:auto;padding-top:1rem}
.program li{font-size:.8rem;padding:.3rem .75rem;border-radius:980px;background:var(--gray);color:var(--ink-2)}
.quotes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(12px,1.6vw,20px)}
.quote{display:flex;flex-direction:column;justify-content:space-between;gap:1.4rem;padding:clamp(1.6rem,2.8vw,2.4rem);border-radius:var(--r-md);background:var(--gray);margin:0}
.quote p{font:500 clamp(1.1rem,1.6vw,1.3rem)/1.4 var(--f-display);letter-spacing:-.015em}
.quote cite{font-style:normal;font-size:.9rem;color:var(--ink-3)}
@media (max-width:900px){.programs,.quotes{grid-template-columns:1fr}}
.list{border-top:1px solid var(--rule)}
.list li{display:flex;justify-content:space-between;gap:1rem;padding-block:1.1rem;border-bottom:1px solid var(--rule);font-weight:500}
.list li span{color:var(--ink-3);font-weight:400;font-size:.95rem}

/* ---------- contact ---------- */
.contact{text-align:center}
.contact .wrap{display:grid;justify-items:center;gap:1.2rem}
.contact h1{font-size:clamp(3rem,8.5vw,6.8rem);line-height:1;letter-spacing:-.045em}
.contact__mark{width:min(70%,340px);margin-block:1rem}
.email-card{display:grid;gap:1rem;justify-items:center;padding:clamp(1.8rem,4vw,3rem);border-radius:var(--r-lg);background:var(--gray);width:min(100%,640px)}
.email{display:flex;flex-wrap:wrap;gap:.8rem;align-items:center;justify-content:center}
.email output{font:600 clamp(1.3rem,3vw,2rem)/1.2 var(--f-display);letter-spacing:-.025em;user-select:all;word-break:break-all}
.copy{font:500 .85rem var(--f-text);background:var(--wall);border:1px solid var(--rule);color:var(--ink);border-radius:980px;padding:.45rem .95rem;cursor:pointer}
.copy:hover{border-color:var(--ink)}
.helps{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;max-width:40rem}
.helps li{font-size:.85rem;padding:.4rem .9rem;border-radius:980px;background:var(--gray);color:var(--ink-2)}

/* ---------- CTA + footer ---------- */
.cta{text-align:center}
.cta .mark{width:clamp(120px,14vw,180px);margin:0 auto 1.6rem}
.site-foot{background:var(--gray);color:var(--ink-2);font-size:.8rem;padding-block:2.2rem 1.6rem}
.site-foot a{text-decoration:none}
.site-foot a:hover{color:var(--ink);text-decoration:underline}
.foot__note{padding-bottom:1.2rem;border-bottom:1px solid var(--rule);display:flex;align-items:center;gap:.9rem}
.foot__note .mark{width:52px;flex:none}
.foot__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.6rem;padding-block:1.6rem;border-bottom:1px solid var(--rule)}
.foot__col h2{font:600 .8rem var(--f-text);letter-spacing:0;color:var(--ink);margin-bottom:.6rem}
.foot__col ul{display:grid;gap:.45rem}
.foot__base{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-top:1.2rem}
@media (max-width:600px){.foot__grid{grid-template-columns:1fr 1fr}}

/* ---------- reveal ---------- */
.is-pre{opacity:0;transform:translateY(30px)}
.is-in{opacity:1;transform:none;transition:opacity 1s var(--ease-out),transform 1s var(--ease-out)}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}

/* layout fixes */
.svc--wide{grid-column:1/-1}
.cta{padding-top:0}
.cta .wrap{border-top:1px solid var(--rule);padding-top:clamp(4.5rem,10vw,8rem)}
.section--gray + .cta .wrap{border-top:0}
.tile--cta{min-height:0;justify-content:center;padding-bottom:clamp(2rem,4vw,3.2rem)}
@media (min-width:1001px){.tile--cta{grid-column:span 2}}

/* =====================================================================
   V3 — BLUEPRINT
   The page is a sheet of drawing paper: two hairline rails frame the content column,
   full-bleed hairlines separate sections, every crossing gets a small + registration mark,
   and content sits in cells that share one hairline. Hatched bands mark the gaps.
   ===================================================================== */
:root,.on-dark,.on-dark::before,.on-dark::after{
  --wall:#F0F0F0;            /* the sheet */
  --gray:#F0F0F0;
  --panel:#FAFAFA;           /* inset panels, chips, hover */
  --rule:#D9D9D9;            /* hairlines */
  --tick:#9E9E9E;            /* registration marks */
  --fw:calc(min(var(--maxw),100%) - 2 * var(--gutter));   /* frame width = content column */
  --cell-lines:inset 1px 0 0 var(--rule),inset 0 1px 0 var(--rule),1px 0 0 var(--rule),0 1px 0 var(--rule),1px 1px 0 var(--rule);
  /* a "+" at each corner of a box that is 6px bigger than the cell on every side */
  --corner-ticks:
    linear-gradient(var(--tick),var(--tick)) 0 6px/13px 1px no-repeat,
    linear-gradient(var(--tick),var(--tick)) 6px 0/1px 13px no-repeat,
    linear-gradient(var(--tick),var(--tick)) 100% 6px/13px 1px no-repeat,
    linear-gradient(var(--tick),var(--tick)) calc(100% - 5px) 0/1px 13px no-repeat,
    linear-gradient(var(--tick),var(--tick)) 0 calc(100% - 5px)/13px 1px no-repeat,
    linear-gradient(var(--tick),var(--tick)) 6px 100%/1px 13px no-repeat,
    linear-gradient(var(--tick),var(--tick)) 100% calc(100% - 5px)/13px 1px no-repeat,
    linear-gradient(var(--tick),var(--tick)) calc(100% - 5px) 100%/1px 13px no-repeat;
  --edge-ticks:
    linear-gradient(var(--tick),var(--tick)) 0 6px/13px 1px no-repeat,
    linear-gradient(var(--tick),var(--tick)) 6px 0/1px 13px no-repeat,
    linear-gradient(var(--tick),var(--tick)) 100% 6px/13px 1px no-repeat,
    linear-gradient(var(--tick),var(--tick)) calc(100% - 6px) 0/1px 13px no-repeat;
  --hatch:repeating-linear-gradient(-45deg,var(--rule) 0 1px,transparent 1px 9px);
}

/* the two rails, fixed behind everything */
.frame{position:fixed;inset:0;z-index:-1;pointer-events:none}
.frame::before{content:"";position:absolute;top:0;bottom:0;left:calc(50% - var(--fw) / 2);width:var(--fw);box-shadow:inset 1px 0 0 var(--rule),1px 0 0 var(--rule)}

/* header: solid hairline + marks where it meets the rails */
.site-head{background:rgba(240,240,240,.86);border-bottom:1px solid var(--rule)}
.site-head.is-scrolled{border-bottom-color:var(--rule)}
.site-head::after{content:"";position:absolute;bottom:-7px;left:calc(50% - var(--fw) / 2 - 6px);width:calc(var(--fw) + 13px);height:13px;background:var(--edge-ticks);pointer-events:none}

/* section separators: a full-bleed hairline with a + where it crosses each rail */
main > *{position:relative}
main > * + *::before,.site-foot::before{content:"";position:absolute;top:0;left:50%;width:100vw;translate:-50% 0;border-top:1px solid var(--rule);pointer-events:none}
main > * + *::after,.site-foot::after{content:"";position:absolute;top:-6px;left:calc(50% - var(--fw) / 2 - 6px);width:calc(var(--fw) + 13px);height:13px;background:var(--edge-ticks);pointer-events:none;z-index:2}
.section--gray{background:transparent}

/* hatched band */
.hatch{height:clamp(40px,6vw,72px);background:var(--hatch) center/var(--fw) 100% no-repeat}

/* framed label with the orange square */
.eyebrow{display:inline-flex;align-items:center;gap:.6rem;width:max-content;max-width:100%;font:500 .72rem/1 var(--f-text);letter-spacing:.14em;text-transform:uppercase;color:var(--ink);background:var(--panel);border:1px solid var(--rule);padding:.55rem .75rem}
.eyebrow::after{content:"";width:7px;height:7px;background:var(--ember);flex:none}
.tile--dark .eyebrow{background:transparent;border-color:rgba(255,255,255,.22)}

/* square-cut controls to match the drawing */
.btn{border-radius:2px}
.paddle{border-radius:2px;background:var(--panel);box-shadow:inset 0 0 0 1px var(--rule)}
.copy{border-radius:2px}

/* ---------- cells: shared hairlines + corner marks ---------- */
.stats,.bento,.rail,.grid-3,.clients,.svc-grid,.steps,.programs,.quotes,.faq,.logos,.fgrid{gap:0!important;border:0}
.stat,.tile,.rail > *,.grid-3 > *,.clients .client,.svc,.step,.program,.quote,.faq__item,.logos > li,.fgrid > *{
  position:relative;border-radius:0!important;background:transparent;box-shadow:var(--cell-lines);transform:none}
.stat::after,.tile::after,.rail > *::after,.grid-3 > *::after,.clients .client::after,.svc::after,.step::after,.program::after,.quote::after,.faq__item::after,.logos > li::after,.fgrid > *::after{
  content:"";position:absolute;inset:-6px;background:var(--corner-ticks);pointer-events:none;z-index:3}

/* hero stats */
.stats{border-top:0}
.stat + .stat{border-left:0}

/* bento tiles */
.tile{overflow:visible;transition:background .35s}
.tile:hover{background:var(--panel);transform:none;box-shadow:var(--cell-lines)}
.tile--dark{background:#111!important}
.tile--dark:hover{background:#000!important}
.tile__chips span{background:var(--panel);box-shadow:inset 0 0 0 1px var(--rule);border-radius:2px}

/* project cards: the artwork is an inset panel inside the cell */
.rail{padding-block:8px}
.rail > *{background:var(--wall)}
.rail > *,.grid-3 > *{padding:clamp(12px,1.4vw,18px) clamp(12px,1.4vw,18px) clamp(18px,2vw,24px)}
.card__art{border-radius:0;background:var(--panel)}
.card__art.dark{background:#111}
.card__meta{margin-top:.6rem}

/* clients, services, steps, training */
.client{background:transparent;padding:clamp(1.5rem,2.6vw,2.2rem)}
.client:hover{background:var(--panel);transform:none;box-shadow:var(--cell-lines)}
.client--you{background:#111}
.client--you:hover{background:#000}
.svc{padding:clamp(1.6rem,2.8vw,2.4rem)}
.svc__list li,.program li,.helps li{background:var(--panel);box-shadow:inset 0 0 0 1px var(--rule);border-radius:2px}
.step{border-top:0;padding:clamp(1.4rem,2.6vw,2rem)}
.program{background:transparent}
.quote{background:transparent}
.photo{border-radius:0;background:var(--panel);box-shadow:0 0 0 1px var(--rule)}
.email-card{border-radius:0;background:var(--panel);box-shadow:var(--cell-lines);position:relative}
.email-card::after{content:"";position:absolute;inset:-6px;background:var(--corner-ticks);pointer-events:none}

/* ---------- logo strip ---------- */
.logos{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.logos > li{display:grid;place-items:center;min-height:clamp(96px,11vw,140px);padding:1rem;text-align:center;font:600 clamp(1.05rem,1.8vw,1.5rem)/1.1 var(--f-display);letter-spacing:-.02em;color:var(--ink-3);transition:color .3s,background .3s}
.logos > li:hover{color:var(--ink);background:var(--panel)}
.logos > li.logos__label{font:500 .72rem/1.5 var(--f-text);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);place-items:center start;text-align:left;padding-inline:clamp(1rem,2vw,1.6rem)}
.logos__label::before{content:"";display:block;width:7px;height:7px;background:var(--ember);margin-bottom:.7rem}
@media (max-width:760px){.logos{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ---------- FAQ ---------- */
.faq{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
.faq__item summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1.2rem;padding:clamp(1.2rem,2.2vw,1.7rem) clamp(1.2rem,2.4vw,2rem);font:600 clamp(1rem,1.4vw,1.2rem)/1.35 var(--f-display);letter-spacing:-.015em}
.faq__item summary::-webkit-details-marker{display:none}
.faq__icon{position:relative;flex:none;width:14px;height:14px}
.faq__icon::before,.faq__icon::after{content:"";position:absolute;left:0;top:6.5px;width:14px;height:1.5px;background:var(--ink);transition:transform .35s var(--ease-out),background .35s}
.faq__icon::after{transform:rotate(90deg)}
.faq__item[open] .faq__icon::after{transform:rotate(0)}
.faq__item[open] .faq__icon::before,.faq__item[open] .faq__icon::after{background:var(--ember)}
.faq__item p{padding:0 clamp(1.2rem,2.4vw,2rem) clamp(1.2rem,2.2vw,1.7rem);color:var(--ink-2);max-width:52ch}
@media (max-width:760px){.faq{grid-template-columns:1fr}}

/* ---------- footer: the drawing's title block ---------- */
.site-foot{position:relative;background:transparent;color:var(--ink-2);font-size:.9rem;padding-block:0}
.site-foot a{text-decoration:none}
.site-foot a:hover{color:var(--ink);text-decoration:none}
.site-foot .wrap{padding-top:0}
.fgrid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr))}
.fgrid > *{padding:clamp(1.3rem,2.4vw,2rem)}
.fcell--cta{grid-column:span 8;display:grid;gap:1.4rem;align-content:start;padding-block:clamp(2.4rem,5vw,4rem)!important}
.foot__title{font:600 clamp(2.2rem,5vw,4.2rem)/1.02 var(--f-display);letter-spacing:-.04em;color:var(--ink)}
.foot__title span{color:var(--ink-3)}
.foot__title .grad{color:transparent}
.fcell--sign{grid-column:span 4;display:grid;align-content:center;justify-items:center;gap:1rem;background:var(--panel)!important}
.foot__sign{width:min(100%,240px)}
.foot__caption{font:500 .72rem/1 var(--f-text);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.fcell--nav{grid-column:span 3}
.fcell--nav h2,.fcell--clock h2{font:500 .72rem/1 var(--f-text);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin-bottom:1.1rem}
.fcell--nav ul{display:grid;gap:.6rem}
.fcell--nav a{color:var(--ink);font-size:1rem;display:inline-flex;align-items:center;gap:0;transition:gap .3s var(--ease-out)}
.fcell--nav a::before{content:"";width:0;height:7px;background:var(--ember);transition:width .3s var(--ease-out)}
.fcell--nav a:hover,.fcell--nav a[aria-current="page"]{gap:.55rem}
.fcell--nav a:hover::before,.fcell--nav a[aria-current="page"]::before{width:7px}
.fcell--clock{grid-column:span 3}
.clock{font:300 clamp(2.4rem,4vw,3.4rem)/1 var(--f-display);letter-spacing:-.04em;color:var(--ink);font-variant-numeric:tabular-nums}
.clock small{font-size:.4em;color:var(--ember-text);letter-spacing:0;margin-left:.12em;vertical-align:1em}
.clock__note{margin-top:.7rem;color:var(--ink-2)}
.fcell--giant{grid-column:1/-1;padding:clamp(1.4rem,3vw,2.4rem) clamp(.6rem,1.4vw,1.2rem)!important;container-type:inline-size;overflow:hidden}
.giant{display:block;white-space:nowrap;font:700 12.4cqw/1 var(--f-display);letter-spacing:-.05em;text-align:center;color:transparent;
  background:repeating-linear-gradient(-45deg,var(--ink) 0 1.4px,transparent 1.4px 5px);-webkit-background-clip:text;background-clip:text;
  text-box:trim-both cap alphabetic;cursor:default}
.giant i{font-style:normal;color:var(--ember);background:none;-webkit-background-clip:border-box;background-clip:border-box}
.fcell--giant:hover .giant{animation:hatch-run 1s linear infinite}
@keyframes hatch-run{to{background-position:17px 0}}
.tb{grid-column:span 2;display:grid;gap:.4rem;align-content:start;padding:1rem clamp(.9rem,1.4vw,1.3rem)!important}
.tb dt{font:500 .64rem/1 var(--f-text);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.tb dd{color:var(--ink);font-size:.88rem;font-variant-numeric:tabular-nums;margin:0}
.foot__hatch{height:clamp(28px,4vw,48px);background:var(--hatch) center/var(--fw) 100% no-repeat;margin-top:1px}
@media (max-width:900px){
  .fcell--cta{grid-column:1/-1}
  .fcell--sign{grid-column:1/-1;grid-auto-flow:column;justify-content:start;align-items:center}
  .foot__sign{width:120px}
  .fcell--nav{grid-column:span 4}
  .fcell--clock{grid-column:1/-1}
  .tb{grid-column:span 4}
}
@media (max-width:560px){
  .fcell--nav{grid-column:span 6}
  .fcell--nav.fcell--last{grid-column:1/-1}
  .tb{grid-column:span 6}
}
@media (prefers-reduced-motion:reduce){.fcell--giant:hover .giant{animation:none}}

/* story: words turn from grey to black as the paragraph scrolls through the screen (only once the script has split it into words) */
[data-words].is-split,[data-words].is-split b{color:inherit}
[data-words].is-split .w{color:#C2C2C2;transition:color .25s linear}
[data-words].is-split .w.is-read{color:var(--ink)}

/* brands: an endless strip of cells sliding left, clipped to the frame */
.logos-head{display:flex;justify-content:center;padding-block:clamp(2.6rem,5vw,4rem) clamp(1.6rem,3vw,2.4rem)}
.marquee-band{position:relative}
.marquee-band::before{content:"";position:absolute;top:0;left:50%;width:100vw;translate:-50% 0;border-top:1px solid var(--rule);pointer-events:none}
.marquee-band .mk{position:absolute;top:-6px;left:calc(50% - var(--fw) / 2 - 6px);width:calc(var(--fw) + 13px);height:13px;background:var(--edge-ticks);pointer-events:none;z-index:2}
.marquee{width:var(--fw);margin-inline:auto;overflow:hidden}
.marquee__track{display:flex;width:max-content;animation:marquee 70s linear infinite}
.marquee:hover .marquee__track{animation-play-state:paused}
@keyframes marquee{to{transform:translateX(-50%)}}
.marquee__track li{position:relative;flex:none;display:grid;place-items:center;width:clamp(180px,20vw,240px);height:clamp(104px,11vw,150px);padding-inline:1rem;
  font:600 clamp(1.1rem,1.7vw,1.4rem)/1.1 var(--f-display);letter-spacing:-.02em;color:var(--ink-3);text-align:center;transition:color .3s,background .3s}
.marquee__track li:hover{color:var(--ink);background:var(--panel)}
/* divider on the right of each cell, capped top and bottom like an I-beam */
.marquee__track li::before{content:"";position:absolute;top:0;bottom:0;right:0;width:1px;background:var(--rule)}
.marquee__track li::after{content:"";position:absolute;top:0;bottom:-1px;left:calc(100% - 13px);width:25px;pointer-events:none;
  background:
    linear-gradient(var(--tick),var(--tick)) 0 0/25px 1px no-repeat,
    linear-gradient(var(--tick),var(--tick)) 12px 0/1px 12px no-repeat,
    linear-gradient(var(--tick),var(--tick)) 0 100%/25px 1px no-repeat,
    linear-gradient(var(--tick),var(--tick)) 12px 100%/1px 12px no-repeat}
@media (prefers-reduced-motion:reduce){.marquee{overflow-x:auto}.marquee__track{animation:none}}

/* logos: each sized by visual weight (width set per logo), shown in full colour */
.marquee__track img{width:min(var(--w),74%);height:auto;max-height:62%;object-fit:contain;transition:transform .4s var(--ease-out)}
.marquee__track li:hover img{transform:scale(1.06)}
.marquee__track li.brand-text{font:800 clamp(.95rem,1.4vw,1.15rem)/1.1 var(--f-display);letter-spacing:.06em;text-transform:uppercase;color:var(--ink)}

/* services bento: picture cells sharing one hairline. Until the real images arrive each picture
   shows a hatched placeholder; once an <img> is inside .sv__pic the placeholder hides itself. */
.sv-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr))}
.sv{grid-column:span 4;position:relative;display:flex;flex-direction:column;padding:clamp(12px,1.4vw,18px) clamp(12px,1.4vw,18px) clamp(20px,2.4vw,28px);box-shadow:var(--cell-lines);transition:background .35s}
.sv::after{content:"";position:absolute;inset:-6px;background:var(--corner-ticks);pointer-events:none;z-index:3}
.sv:hover{background:var(--panel)}
.sv--ai{grid-column:span 7}
.sv--sw{grid-column:span 5}
/* row 1: both cells share the picture row and the text row, so the titles line up */
.sv--ai,.sv--sw{display:grid;grid-row:span 2;grid-template-rows:subgrid;align-content:start}
.sv--seo{grid-column:1/-1;flex-direction:row;align-items:stretch;gap:clamp(12px,1.4vw,18px)}

.sv__pic{position:relative;overflow:hidden;aspect-ratio:4/3;background:var(--hatch),var(--panel);box-shadow:0 0 0 1px var(--rule)}
.sv--ai .sv__pic{aspect-ratio:16/10}
.sv--sw .sv__pic{aspect-ratio:auto;min-height:220px}
.sv--seo .sv__pic{flex:1;aspect-ratio:5/2}
.sv__pic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease-out)}
.sv:hover .sv__pic img{transform:scale(1.05)}
.sv__pic:has(img) .sv__ph{display:none}
.sv__ph{position:absolute;inset:0;display:grid;place-items:center;font:500 .68rem/1 var(--f-text);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.sv__ph::before{content:"";position:absolute;left:50%;top:50%;width:25px;height:25px;translate:-50% calc(-50% - 22px);
  background:linear-gradient(var(--tick),var(--tick)) 50% 0/1px 100% no-repeat,linear-gradient(var(--tick),var(--tick)) 0 50%/100% 1px no-repeat}

.sv__body{display:flex;flex-direction:column;gap:.55rem;padding:clamp(1rem,1.8vw,1.4rem) clamp(.4rem,.8vw,.7rem) 0}
.sv--seo .sv__body{flex:0 0 38%;justify-content:center;padding:clamp(1rem,2vw,1.6rem)}
.sv__no{font:500 .66rem/1 var(--f-text);letter-spacing:.16em;color:var(--ink-3);font-variant-numeric:tabular-nums}
.sv h3{font-size:clamp(1.35rem,2vw,1.7rem);line-height:1.1;letter-spacing:-.025em}
.sv--ai h3{font-size:clamp(1.6rem,2.6vw,2.2rem)}
.sv p{color:var(--ink-2);max-width:44ch}
.sv__chips{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.45rem}
.sv__chips li{font-size:.78rem;padding:.3rem .65rem;background:var(--panel);box-shadow:inset 0 0 0 1px var(--rule);border-radius:2px;color:var(--ink-2);transition:color .3s,box-shadow .3s}
.sv:hover .sv__chips li{color:var(--ink)}
.sv-foot{display:flex;justify-content:center;margin-top:clamp(2.2rem,4vw,3.2rem)}

/* AI cell: a tiny chat that plays on a loop over the picture */
.sv__chat{position:absolute;left:clamp(12px,2vw,22px);bottom:clamp(12px,2vw,22px);width:clamp(130px,40%,250px);display:grid;gap:.4rem;z-index:1}
.sv__msg{grid-column:1;font-size:.8rem;line-height:1.3;padding:.5rem .75rem;border-radius:12px;box-shadow:0 6px 18px -10px rgba(0,0,0,.35);opacity:0;animation:7s var(--ease-out) infinite}
.sv__msg--in{justify-self:start;background:#fff;color:var(--ink);border-bottom-left-radius:3px;animation-name:sv-in}
.sv__msg--typing,.sv__msg--out{grid-row:2;justify-self:end;background:var(--ember);color:#fff;border-bottom-right-radius:3px}
.sv__msg--typing{display:flex;gap:4px;padding:.65rem .75rem;animation-name:sv-typing}
.sv__msg--typing i{width:5px;height:5px;border-radius:50%;background:#fff;animation:sv-dot 1s infinite}
.sv__msg--typing i:nth-child(2){animation-delay:.15s}
.sv__msg--typing i:nth-child(3){animation-delay:.3s}
.sv__msg--out{animation-name:sv-out}
@keyframes sv-in{0%{opacity:0;translate:0 8px}6%,88%{opacity:1;translate:0 0}96%,100%{opacity:0;translate:0 0}}
@keyframes sv-typing{0%,16%{opacity:0}21%,40%{opacity:1}44%,100%{opacity:0}}
@keyframes sv-out{0%,42%{opacity:0;translate:0 8px}48%,88%{opacity:1;translate:0 0}96%,100%{opacity:0;translate:0 0}}
@keyframes sv-dot{0%,60%,100%{translate:0 0;opacity:.6}30%{translate:0 -3px;opacity:1}}

/* SEO cell: a rank card with a line that draws itself */
.sv__rank{position:absolute;left:clamp(12px,2vw,22px);bottom:clamp(12px,2vw,22px);display:grid;grid-template-columns:auto 96px;align-items:end;gap:.2rem 1rem;padding:.75rem .9rem;background:#fff;box-shadow:0 0 0 1px var(--rule),0 10px 24px -14px rgba(0,0,0,.3);z-index:1}
.sv__rank-k{grid-column:1/-1;font:500 .62rem/1 var(--f-text);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.sv__rank-n{font:600 1.9rem/1 var(--f-display);letter-spacing:-.04em;color:var(--ink)}
.sv__rank-n b{color:var(--ember)}
.sv__rank svg{width:96px;height:32px;overflow:visible}
.sv__rank polyline{fill:none;stroke:var(--ember);stroke-width:2;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke;stroke-dasharray:100;stroke-dashoffset:100;animation:sv-draw 5s var(--ease-out) infinite}
@keyframes sv-draw{0%{stroke-dashoffset:100}40%,85%{stroke-dashoffset:0}100%{stroke-dashoffset:0;opacity:0}}

@media (max-width:900px){
  .sv{grid-column:span 6}
  .sv--ai,.sv--seo{grid-column:1/-1}
  .sv--ai,.sv--sw{display:flex;grid-row:auto}
  .sv--sw .sv__pic{aspect-ratio:4/3;flex:none;min-height:0}
}
@media (max-width:600px){
  .sv{grid-column:1/-1}
  .sv--seo{flex-direction:column-reverse}
  .sv--seo .sv__body{flex:none;padding:clamp(1rem,1.8vw,1.4rem) .4rem 0}
  .sv--seo .sv__pic{flex:none;aspect-ratio:4/3}
}
@media (prefers-reduced-motion:reduce){
  .sv__msg{animation:none;opacity:1}
  .sv__msg--typing{display:none}
  .sv__rank polyline{animation:none;stroke-dashoffset:0}
}

/* service renders sit on a flat #E9E9E9 backdrop, so the picture box takes the same colour and any box shape fits */
.sv__pic:has(img){background:#E9E9E9}
.sv__pic img{object-fit:contain}
@media (max-width:600px){.sv--ai .sv__pic{aspect-ratio:4/3}.sv__msg{font-size:.74rem}}

/* last row: social media + SEO side by side, both as regular picture-on-top cells */
.sv--smm,.sv--seo{grid-column:span 6;flex-direction:column;align-items:stretch;gap:0}
.sv--smm .sv__pic,.sv--seo .sv__pic{flex:none;aspect-ratio:16/10}
.sv--seo .sv__body{flex:none;justify-content:flex-start;padding:clamp(1rem,1.8vw,1.4rem) clamp(.4rem,.8vw,.7rem) 0}

/* social media cell: the render plus a followers card (top left, where the render is empty), styled like the SEO rank card */
.sv__pic--smm{container-type:inline-size}
.sv__stat{position:absolute;left:clamp(12px,2vw,22px);top:clamp(12px,2vw,22px);display:grid;gap:.45rem;padding:.75rem .9rem;background:#fff;box-shadow:0 0 0 1px var(--rule),0 10px 24px -14px rgba(0,0,0,.3);z-index:1}
.sv__stat .sv__rank-n{font-size:1.6rem}
@container (max-width:380px){
  .sv__stat{left:10px;top:10px;padding:.5rem .6rem;gap:.3rem}
  .sv__stat .sv__rank-k{font-size:.52rem}
  .sv__stat .sv__rank-n{font-size:1.15rem}
}
@container (max-width:280px){.sv__stat{left:8px;top:8px;padding:.4rem .5rem}.sv__stat .sv__rank-k{font-size:.48rem;letter-spacing:.1em}.sv__stat .sv__rank-n{font-size:.95rem}}

@media (max-width:900px){
  .sv--smm,.sv--seo{grid-column:span 6}
}
@media (max-width:600px){
  .sv--smm,.sv--seo{grid-column:1/-1;flex-direction:column}
  .sv--smm .sv__pic,.sv--seo .sv__pic{aspect-ratio:4/3}
  .sv--seo .sv__body{padding:clamp(1rem,1.8vw,1.4rem) .4rem 0}
}

/* ---------- training: Learn coding using AI (home section + its own page) ---------- */
.ac-head{display:flex;justify-content:center;margin-bottom:clamp(2rem,4vw,3rem)}
.ac-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr))}
.ac-grid > *,.tools > li,.earn > li{position:relative;box-shadow:var(--cell-lines);transition:background .35s}
.ac-grid > *::after,.tools > li::after,.earn > li::after{content:"";position:absolute;inset:-6px;background:var(--corner-ticks);pointer-events:none;z-index:3}
.ac-main{grid-column:span 6;display:grid;gap:1rem;align-content:center;justify-items:start;padding:clamp(1.6rem,3.6vw,3.2rem)}
.ac-badge{display:inline-flex;align-items:center;gap:.55rem;font:500 .7rem/1 var(--f-text);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);background:var(--panel);box-shadow:inset 0 0 0 1px var(--rule);padding:.5rem .7rem}
.ac-badge::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--ember);box-shadow:0 0 0 4px color-mix(in srgb,var(--ember) 20%,transparent);animation:ac-pulse 2s ease-in-out infinite}
@keyframes ac-pulse{50%{box-shadow:0 0 0 7px color-mix(in srgb,var(--ember) 0%,transparent)}}
.ac-title{font:600 clamp(2.6rem,5.4vw,4.6rem)/.98 var(--f-display);letter-spacing:-.045em}
.ac-by{font:300 clamp(1.15rem,1.9vw,1.55rem)/1.2 var(--f-display);letter-spacing:-.02em;color:var(--ink-3)}
.ac-by b{font-weight:600;color:var(--ink)}
.ac-desc{color:var(--ink-2);max-width:44ch}
.ac-main .actions{margin-top:.6rem}

/* a small terminal that types a request and shows what AI builds */
.ac-demo{grid-column:span 6;padding:clamp(12px,1.4vw,18px)}
.term{height:100%;min-height:clamp(280px,30vw,360px);display:flex;flex-direction:column;background:#141414;color:#EDEDED;font:400 clamp(.8rem,1.1vw,.92rem)/1.65 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.term__bar{display:flex;align-items:center;gap:6px;padding:.75rem .95rem;border-bottom:1px solid #262626;font-size:.72rem;color:#8A8A8A}
.term__bar i{width:9px;height:9px;border-radius:50%;background:#3A3A3A}
.term__bar i:nth-child(3){background:var(--ember)}
.term__bar span{margin-left:.6rem}
.term__body{flex:1;padding:clamp(1rem,2vw,1.5rem)}
.term__p{color:#fff}
.term__p::before{content:"> ";color:var(--ember)}
.term__cur{display:inline-block;width:.55em;height:1.1em;margin-left:2px;background:var(--ember);vertical-align:-.2em;animation:ac-blink 1s steps(1) infinite}
@keyframes ac-blink{50%{opacity:0}}
.term__out{margin-top:.9rem;display:grid;gap:.15rem;color:#A3A3A3}
.term__out p{transition:opacity .35s,translate .35s var(--ease-out)}
.term__out p.is-hid{opacity:0;translate:0 6px}
.term__out b{color:var(--ember);font-weight:400}
.term__out .term__ok{margin-top:.5rem;color:#fff}
.term__ok::before{content:"● ";color:#3DD68C}

.ac-cell{grid-column:span 4;display:grid;gap:.8rem;align-content:start;padding:clamp(1.4rem,2.6vw,2.1rem)}
.ac-cell:hover{background:var(--panel)}
.ac-k{font:500 .68rem/1 var(--f-text);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.ac-num{font:600 clamp(2.4rem,4.4vw,3.5rem)/1 var(--f-display);letter-spacing:-.04em;background:var(--ember-grad);-webkit-background-clip:text;background-clip:text;color:transparent;padding-bottom:.06em}
.ac-upto{color:var(--ink-3);margin-bottom:-.6rem}
.ac-num small{font-size:.38em;letter-spacing:-.01em;margin-left:.15em}
.ac-earn > p:last-child,.ac-why{color:var(--ink-2)}
.ac-why{font:500 clamp(1.05rem,1.5vw,1.25rem)/1.4 var(--f-display);letter-spacing:-.015em}
.ac-why b{font-weight:600;color:var(--ink)}
@media (max-width:900px){
  .ac-main,.ac-demo{grid-column:1/-1}
  .ac-cell{grid-column:span 6}
  .ac-cell:last-child{grid-column:1/-1}
}
@media (max-width:600px){.ac-cell{grid-column:1/-1}}
@media (prefers-reduced-motion:reduce){.ac-badge::before,.term__cur{animation:none}}

/* course page */
.ac-hero-actions{justify-content:center;margin-top:.8rem}
.ac-hero-by{margin-top:.4rem}
.tools > li:hover,.earn > li:hover{background:var(--panel)}
.tools p{color:var(--ink-2)}
.tools{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.tools > li{display:grid;gap:.45rem;align-content:start;padding:clamp(1.3rem,2.4vw,1.9rem)}
.tools h3{font-size:1.2rem}
.earn{display:grid}
.earn > li{display:grid;grid-template-columns:10rem minmax(0,1fr);gap:1rem;padding:clamp(1.1rem,2vw,1.5rem) clamp(1.2rem,2.2vw,1.7rem)}
.earn b{font-weight:600}
.earn span{color:var(--ink-2)}
.ac-note{font-size:.85rem;color:var(--ink-3)}
.ac-cta .actions{justify-content:center;margin-top:.6rem}
@media (max-width:560px){.earn > li{grid-template-columns:1fr;gap:.3rem}}

/* course outline: one row per phase, its steps strung on a hairline like a route */
.path,.stacks,.infra{display:grid}
.phase,.stack,.infra > li,.easy{position:relative;box-shadow:var(--cell-lines)}
.phase::after,.stack::after,.infra > li::after,.easy::after{content:"";position:absolute;inset:-6px;background:var(--corner-ticks);pointer-events:none;z-index:3}
.phase{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr)}
.phase__label{display:grid;gap:.5rem;align-content:start;padding:clamp(1.4rem,2.8vw,2.2rem);box-shadow:1px 0 0 var(--rule)}
.phase__n{font:500 .68rem/1 var(--f-text);letter-spacing:.14em;text-transform:uppercase;color:var(--ember-text)}
.phase__label h3{font-size:clamp(1.6rem,2.6vw,2.2rem);letter-spacing:-.03em}
.phase__label p{color:var(--ink-2)}
.phase__steps{padding:clamp(.6rem,1.4vw,1rem) clamp(1.2rem,2.6vw,2.2rem)}
.pstep{position:relative;display:grid;grid-template-columns:2.75rem minmax(0,1fr);gap:clamp(.9rem,1.8vw,1.4rem);padding-block:clamp(.9rem,1.6vw,1.2rem)}
.pstep::before{content:"";position:absolute;left:calc(1.375rem - .5px);top:0;bottom:0;width:1px;background:var(--rule)}
.pstep:first-child::before{top:2rem}
.pstep:last-child::before{bottom:calc(100% - 2rem)}
.pstep:only-child::before{display:none}
.pstep__n{position:relative;z-index:1;width:2.75rem;height:2.75rem;display:grid;place-items:center;background:var(--panel);box-shadow:inset 0 0 0 1px var(--rule);font:500 .95rem/1 var(--f-display);font-variant-numeric:tabular-nums;transition:background .3s,color .3s,box-shadow .3s}
.pstep:hover .pstep__n{background:var(--ember);color:#fff;box-shadow:none}
.pstep h4{font:600 clamp(1.1rem,1.6vw,1.3rem)/1.25 var(--f-display);letter-spacing:-.015em;margin-top:.55rem}
.pstep p{color:var(--ink-2);margin-top:.3rem}
.pstep .pstep__build{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem .55rem;margin-top:.65rem;color:var(--ink);font-size:.9rem}
.pstep__build span{font:500 .62rem/1 var(--f-text);letter-spacing:.14em;text-transform:uppercase;color:var(--ember-text);display:inline-flex;align-items:center;gap:.45rem}
.pstep__build span::before{content:"";width:6px;height:6px;background:var(--ember)}

/* AI tools and infrastructure carry their logos */
.tools img,.infra img{width:28px;height:28px;margin-bottom:.5rem}

/* tech stacks */
.stacks{grid-template-columns:repeat(4,minmax(0,1fr))}
.stack{display:grid;gap:.4rem;align-content:start;padding:clamp(1.4rem,2.6vw,2rem);transition:background .35s}
.stack:hover,.infra > li:hover{background:var(--panel)}
.stack h3{font:600 clamp(1.7rem,2.6vw,2.2rem)/1 var(--f-display);letter-spacing:.01em}
.stack__head{display:grid;gap:.4rem}
.stack__head p{color:var(--ink-2);min-height:3em}
.stack ul{display:grid;margin-top:.8rem;border-top:1px solid var(--rule)}
.stack li{display:flex;align-items:center;gap:.7rem;padding-block:.7rem;border-bottom:1px solid var(--rule);font-size:.95rem}
.stack li img{width:20px;height:20px;flex:none}
.stack li span{margin-left:auto;font-size:.78rem;color:var(--ink-3);text-align:right}

/* infrastructure */
.infra{grid-template-columns:repeat(3,minmax(0,1fr))}
.infra > li{display:grid;gap:.3rem;align-content:start;padding:clamp(1.4rem,2.6vw,2rem);transition:background .35s}
.infra img{width:34px;height:34px}
.infra h3{font-size:1.25rem}
.infra p{color:var(--ink-2)}

/* "looks complicated" band */
.easy{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(1.2rem,4vw,4rem);align-items:center;margin-top:clamp(2.4rem,5vw,4rem);padding:clamp(1.8rem,4vw,3.4rem);background:#141414;color:#fff}
.easy__t{font:600 clamp(1.8rem,3.4vw,2.9rem)/1.08 var(--f-display);letter-spacing:-.035em}
.easy__t span{color:var(--ember)}
.easy p{color:#A1A1A6;font-size:clamp(1rem,1.4vw,1.15rem)}
.easy b{color:#fff;font-weight:600}

@media (max-width:900px){
  .phase{grid-template-columns:1fr}
  .phase__label{box-shadow:0 1px 0 var(--rule)}
  .stacks,.tools,.infra{grid-template-columns:repeat(2,minmax(0,1fr))}
  .easy{grid-template-columns:1fr}
}
@media (max-width:1100px) and (min-width:561px){.stacks{grid-template-columns:repeat(2,minmax(0,1fr))}}
.stack li span{white-space:nowrap}
@media (max-width:560px){.stacks,.tools,.infra{grid-template-columns:1fr}.stack__head p{min-height:0}}

/* course page: placeholder for the course outline video (swap the frame's contents for the video later) */
.vid{width:100%;max-width:980px;margin:clamp(1.6rem,4vw,2.8rem) 0 0;padding:clamp(10px,1.2vw,16px);position:relative;box-shadow:var(--cell-lines)}
.vid::after{content:"";position:absolute;inset:-6px;background:var(--corner-ticks);pointer-events:none;z-index:3}
.vid__frame{position:relative;aspect-ratio:16/9;overflow:hidden;background:var(--panel);color:var(--ink);box-shadow:0 0 0 1px var(--rule);display:grid;place-items:center;text-align:left}
.vid__bg{position:absolute;inset:0;
  background:
    radial-gradient(ellipse 40% 50% at 50% 50%,color-mix(in srgb,var(--ember) 16%,transparent),transparent 70%),
    repeating-linear-gradient(0deg,rgba(0,0,0,.045) 0 1px,transparent 1px 48px),
    repeating-linear-gradient(90deg,rgba(0,0,0,.045) 0 1px,transparent 1px 48px);
  animation:vid-glow 6s ease-in-out infinite}
@keyframes vid-glow{50%{opacity:.65}}
/* camera viewfinder corners */
.vid__corner{position:absolute;inset:clamp(14px,2.4vw,28px);pointer-events:none;
  --c:var(--ink-3);
  background:
    linear-gradient(var(--c),var(--c)) 0 0/22px 1.5px no-repeat,linear-gradient(var(--c),var(--c)) 0 0/1.5px 22px no-repeat,
    linear-gradient(var(--c),var(--c)) 100% 0/22px 1.5px no-repeat,linear-gradient(var(--c),var(--c)) 100% 0/1.5px 22px no-repeat,
    linear-gradient(var(--c),var(--c)) 0 100%/22px 1.5px no-repeat,linear-gradient(var(--c),var(--c)) 0 100%/1.5px 22px no-repeat,
    linear-gradient(var(--c),var(--c)) 100% 100%/22px 1.5px no-repeat,linear-gradient(var(--c),var(--c)) 100% 100%/1.5px 22px no-repeat}
.vid__tag{position:absolute;top:calc(clamp(14px,2.4vw,28px) + 9px);right:calc(clamp(14px,2.4vw,28px) + 34px);font:500 .62rem/1 var(--f-text);letter-spacing:.14em;color:var(--ink-3)}
.vid__play{position:relative;z-index:1;width:clamp(64px,8vw,92px);aspect-ratio:1;border-radius:50%;display:grid;place-items:center;background:var(--ember);box-shadow:0 14px 40px -10px color-mix(in srgb,var(--ember) 70%,transparent);transition:transform .4s var(--ease-out)}
.vid__play::before,.vid__play::after{content:"";position:absolute;inset:0;border-radius:50%;border:1.5px solid var(--ember);animation:vid-ring 2.6s var(--ease-out) infinite}
.vid__play::after{animation-delay:1.3s}
@keyframes vid-ring{0%{transform:scale(1);opacity:.8}100%{transform:scale(1.9);opacity:0}}
.vid__play svg{width:38%;fill:#fff;margin-left:6%}
.vid:hover .vid__play{transform:scale(1.06)}
.vid__meta{position:absolute;left:calc(clamp(14px,2.4vw,28px) + 34px);bottom:calc(clamp(14px,2.4vw,28px) + clamp(34px,4.4vw,48px));display:grid;gap:.45rem}
.vid__k{font:500 .64rem/1 var(--f-text);letter-spacing:.14em;text-transform:uppercase;color:var(--ember-text)}
.vid__t{font:600 clamp(1.05rem,2.2vw,1.6rem)/1.1 var(--f-display);letter-spacing:-.02em}
.vid__bar{position:absolute;left:calc(clamp(14px,2.4vw,28px) + 34px);right:calc(clamp(14px,2.4vw,28px) + 34px);bottom:calc(clamp(14px,2.4vw,28px) + 4px);display:flex;align-items:center;gap:.9rem;font:500 .7rem/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--ink-3)}
.vid__track{flex:1;height:2px;background:var(--rule);position:relative;overflow:hidden}
.vid__track i{position:absolute;inset:0 auto 0 0;width:18%;background:var(--ember);animation:vid-load 3.2s ease-in-out infinite}
@keyframes vid-load{0%{left:-18%}100%{left:100%}}
@media (max-width:560px){.vid__tag{display:none}}
@media (prefers-reduced-motion:reduce){.vid__bg,.vid__play::before,.vid__play::after,.vid__track i{animation:none}}

/* stacks: web basics as a wide strip on top, the six stacks three across below */
@media (min-width:1101px){.stacks{grid-template-columns:repeat(3,minmax(0,1fr))}}
.stack--wide{grid-column:1/-1;grid-template-columns:1fr;gap:1.2rem}
.stack--wide .stack__head p{min-height:0}
.stack--wide ul{grid-template-columns:repeat(4,minmax(0,1fr));gap:0 1.4rem;margin-top:0;border-top:0}
.stack--wide li{border-top:1px solid var(--rule)}
.stack--wide li{flex-wrap:wrap;row-gap:.15rem}
.stack--wide li span{flex-basis:100%;margin-left:0;padding-left:calc(20px + .7rem);text-align:left;white-space:normal}
@media (max-width:900px){.stack--wide ul{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.stack--wide ul{grid-template-columns:1fr}.stack--wide li + li{border-top:0}}

/* free text never sits on the rails: left-aligned headings and plain lists get the same inset as the cells */
.split > .head--left{padding-left:clamp(1.2rem,2.6vw,2.2rem)}
.split > .list li{padding-inline:clamp(1.2rem,2.6vw,2.2rem)}
@media (max-width:860px){.split > .head--left{padding-right:clamp(1.2rem,2.6vw,2.2rem)}}
/* on narrow screens centred text runs edge to edge, so keep it off the rails too */
@media (max-width:860px){
  .head,.story > *,.page-hero .wrap > :not(.vid),.hero__grid > .hello,.hero__grid > .topic,.ac-head,
  .split > div:not(.photo),.prose,.timeline li,.quote-xl{padding-inline:clamp(12px,3.6vw,20px)}
}
.prose a{color:var(--ember-text);text-decoration:none;font-weight:500}
.prose a:hover{text-decoration:underline}

/* step numbers and timeline years: solid theme orange */
.step__n{font-weight:300;color:var(--ember)}
.timeline time{color:var(--ember)}

/* about portrait is square, so show all of it */
.photo--sq img{aspect-ratio:1/1}

/* nav: Training stands out as a solid orange button */
.nav a.nav__hl{opacity:1;color:#fff;font-weight:600;font-size:.78rem;padding:.4rem .85rem;border-radius:2px;background:var(--ember);transition:background .2s}
.nav a.nav__hl:hover{background:#DD6A0E}
@media (max-width:820px){
  .nav a.nav__hl{font-size:1.75rem;padding:.55rem 0;border-radius:0;background:none;color:var(--ember)}
  .nav a.nav__hl:hover,.nav a.nav__hl[aria-current="page"]{background:none}
}

/* ---------- enrolment: orange buttons, enroll bands on the course page, registration page ---------- */
.btn--ember{background:var(--ember);border-color:var(--ember);color:#fff}
.btn--ember:hover{background:#DD6A0E;border-color:#DD6A0E}

/* orange band between course phases */
.enroll-band{position:relative;display:flex;align-items:center;justify-content:space-between;gap:1rem 2rem;flex-wrap:wrap;padding:clamp(1.4rem,3vw,2.2rem) clamp(1.4rem,3vw,2.4rem);background:var(--ember);color:#fff;box-shadow:var(--cell-lines)}
.enroll-band::after{content:"";position:absolute;inset:-6px;background:var(--corner-ticks);pointer-events:none;z-index:3}
.enroll-band__k{font:500 .7rem/1.3 var(--f-text);letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.88)}
.enroll-band__t{font:600 clamp(1.35rem,2.4vw,1.9rem)/1.15 var(--f-display);letter-spacing:-.025em;margin-top:.35rem}
.enroll-band .btn{background:#fff;border-color:#fff;color:var(--ink);flex:none}
.enroll-band .btn:hover{background:var(--ink);border-color:var(--ink);color:#fff}
.wrap > .enroll-band{margin-top:clamp(2rem,4vw,3rem)}

/* registration page */
.reg{padding-top:clamp(3rem,6vw,5rem)}
.reg__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.reg__info,.reg__card{position:relative;box-shadow:var(--cell-lines)}
.reg__info::after,.reg__card::after{content:"";position:absolute;inset:-6px;background:var(--corner-ticks);pointer-events:none;z-index:3}
.reg__info{display:grid;gap:1.1rem;align-content:start;justify-items:start;padding:clamp(1.6rem,3.6vw,3.2rem)}
.reg__title{font:600 clamp(2.6rem,5.4vw,4.6rem)/.98 var(--f-display);letter-spacing:-.045em}
.reg__lead{color:var(--ink-2);max-width:42ch}
.proof{display:flex;align-items:center;gap:1rem;padding:.9rem 1.2rem .9rem .9rem;background:#fff;box-shadow:0 0 0 1px var(--rule);margin-top:.3rem}
.proof__faces{display:flex}
.proof__faces img{width:52px;height:52px;border-radius:50%;border:3px solid #fff;object-fit:cover}
.proof__faces img + img{margin-left:-14px}
.proof__rate{display:flex;align-items:center;gap:.7rem;font-size:1.15rem}
.proof__rate b{font-weight:700}
.proof__stars{color:#F5B301;letter-spacing:.18em;font-size:1rem}
.proof__k{color:var(--ink-2)}
.reg__list{display:grid;gap:.55rem;margin-top:.4rem}
.reg__list li{display:flex;align-items:center;gap:.7rem}
.reg__list li::before{content:"";width:7px;height:7px;background:var(--ember);flex:none}
.reg__stats{margin-top:clamp(2rem,4vw,3rem)}

.reg__card{padding:clamp(1.4rem,3vw,2.6rem);background:var(--panel)}
.reg__form{display:grid;gap:1.05rem}
.reg__form-head h2{font-size:clamp(1.6rem,2.6vw,2.1rem);letter-spacing:-.03em}
.reg__form-head p{color:var(--ink-3);margin-top:.2rem}
.field{display:grid;gap:.4rem;margin:0;padding:0;border:0;min-width:0}
.field > span,.field legend{font:500 .78rem/1 var(--f-text);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);padding:0;margin-bottom:.4rem}
.field input,.field select{width:100%;font:400 1rem/1.3 var(--f-text);color:var(--ink);padding:.8rem .85rem;background:#fff;border:1px solid var(--rule);border-radius:2px;transition:border-color .2s,box-shadow .2s;-webkit-appearance:none;appearance:none}
.field select{background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%236E6E73' stroke-width='1.6'/%3E%3C/svg%3E") right .85rem center/12px 8px no-repeat;padding-right:2.2rem}
.field input:focus,.field select:focus{outline:0;border-color:var(--ember);box-shadow:0 0 0 3px color-mix(in srgb,var(--ember) 22%,transparent)}
.field input::placeholder{color:#B0B0B5}
.field em{font-style:normal;font-size:.82rem;color:#B42318;min-height:0}
.field em:empty{display:none}
.field.is-bad input,.field.is-bad select{border-color:#D92D20}
.field-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:1rem}
.choice{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.choice label{position:relative;cursor:pointer}
.choice input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.choice span{display:grid;gap:.15rem;padding:.85rem .9rem .85rem 2.4rem;background:#fff;border:1px solid var(--rule);border-radius:2px;transition:border-color .2s,background .2s}
.choice span::before{content:"";position:absolute;left:.9rem;top:1.05rem;width:16px;height:16px;border-radius:50%;border:1px solid #B9B9BE;background:#fff;transition:border .2s}
.choice b{font-weight:600}
.choice small{color:var(--ink-3);font-size:.82rem}
.choice input:checked + span{border-color:var(--ember);background:color-mix(in srgb,var(--ember) 7%,#fff)}
.choice input:checked + span::before{border:5px solid var(--ember)}
.choice input:focus-visible + span{box-shadow:0 0 0 3px color-mix(in srgb,var(--ember) 22%,transparent)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.reg__msg{font-size:.9rem;color:#B42318;background:#FEF3F2;border:1px solid #F1C4C0;padding:.65rem .8rem}
.reg__submit{width:100%;padding-block:1rem;font-weight:600}
.reg__submit[disabled]{opacity:.7;cursor:progress}
.reg__note{font-size:.82rem;color:var(--ink-3);text-align:center}
.reg__done{display:grid;gap:.8rem;justify-items:start;align-content:center;min-height:min(420px,100%);padding:clamp(1rem,3vw,2rem) 0}
.reg__done:focus{outline:0}
.reg__done h2{font-size:clamp(1.8rem,3vw,2.4rem);letter-spacing:-.03em}
.reg__done p{color:var(--ink-2);max-width:40ch}
.reg__tick{width:56px;height:56px;background:var(--ember);display:grid;place-items:center}
.reg__tick::before{content:"";width:22px;height:12px;border-left:3px solid #fff;border-bottom:3px solid #fff;rotate:-45deg;translate:0 -3px}

@media (max-width:900px){
  .reg__grid{grid-template-columns:1fr}
}
@media (max-width:480px){
  .field-row,.choice{grid-template-columns:1fr}
  .proof{padding:.7rem .9rem .7rem .7rem;gap:.75rem}
  .proof__faces img{width:42px;height:42px}
}
.faq__item a{color:var(--ember-text);font-weight:500}
.choice label{display:grid}
.choice span{height:100%}
.reg__form[hidden],.reg__done[hidden],.reg__msg[hidden]{display:none}
@media (max-width:600px){.reg__stats{grid-template-columns:1fr}.reg__stats .stat + .stat{border-left:0}}

/* ---------- course fee ---------- */
.fee-line{display:inline-flex;align-items:baseline;flex-wrap:wrap;gap:.3rem .7rem;font-size:1.05rem}
.fee-line__k{font:500 .68rem/1 var(--f-text);letter-spacing:.14em;text-transform:uppercase;color:var(--ember-text)}
.fee-line b{font:600 1.35rem/1 var(--f-display);letter-spacing:-.02em}
.fee-line s,.fee-box s,.price__was s{color:var(--ink-3);text-decoration-thickness:1.5px}
.ac-hero-by + .fee-line{margin-top:.2rem}
.ac-main .fee-line{margin-top:.2rem}

.price{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);max-width:62rem;margin-inline:auto}
.price > *{position:relative;box-shadow:var(--cell-lines);padding:clamp(1.6rem,3.4vw,2.8rem)}
.price > *::after{content:"";position:absolute;inset:-6px;background:var(--corner-ticks);pointer-events:none;z-index:3}
.price__main{display:grid;gap:.7rem;justify-items:start;align-content:center;background:var(--panel)}
.price__tag{display:inline-block;font:600 .7rem/1 var(--f-text);letter-spacing:.12em;text-transform:uppercase;color:#fff;background:var(--ember);padding:.45rem .65rem}
.price__now{font:600 clamp(2.8rem,5.6vw,4.4rem)/1 var(--f-display);letter-spacing:-.045em;color:var(--ink)}
.price__was{color:var(--ink-3);font-size:1.05rem}
.price__main .btn{margin-top:.6rem}
.price__list{display:grid;gap:1rem;align-content:center}
.price__list li{display:flex;align-items:flex-start;gap:.8rem;font-size:1.08rem}
.price__list li::before{content:"";width:7px;height:7px;background:var(--ember);flex:none;margin-top:.55em}
@media (max-width:760px){.price{grid-template-columns:1fr}}

.fee-box{display:grid;gap:.55rem;justify-items:start;padding:1rem 1.2rem;background:#fff;box-shadow:0 0 0 1px var(--rule)}
.fee-box p{display:flex;align-items:baseline;gap:.75rem;flex-wrap:wrap}
.fee-box__now{font:600 clamp(2rem,3.4vw,2.6rem)/1 var(--f-display);letter-spacing:-.04em}
.fee-box s{font-size:1.1rem}

/* ---------- home training: the one dark panel, so it stops the scroll ---------- */
.on-dark{
  --rule:#2E2E2E;--tick:#5E5E5E;--panel:#1C1C1C;
  --ink:#F5F5F7;--ink-2:#A1A1A6;--ink-3:#8A8A8F;--ember-text:#FF9A45;
  color:var(--ink);
  /* dark only between the two rails; the page outside stays light */
  background:linear-gradient(to right,transparent calc(50% - var(--fw) / 2),#141414 0 calc(50% + var(--fw) / 2 + 1px),transparent 0);
}
.on-dark .btn--ember:hover{background:#FF9A45;border-color:#FF9A45}
.on-dark .term{background:#0C0C0C;box-shadow:0 0 0 1px var(--rule)}
.on-dark .proof{background:var(--panel)}
.on-dark .proof__faces img{border-color:var(--panel)}
.ac-main .proof{margin-top:.8rem}

/* terminal keeps earlier runs above the new one, like a real terminal */
.term__body{position:relative;overflow:hidden;padding:0}
.term__log{position:absolute;inset:0;padding:clamp(1rem,2vw,1.5rem);display:grid;align-content:start;gap:1.4rem;overflow:hidden}
.term__run .term__out{margin-top:.6rem}
