/* ═══════════════════════════════════════════════════════════════
   BALLOON WHIMZY — "The Ascent"
   fonts: Fraunces (display) · Satoshi (ui)
   ═══════════════════════════════════════════════════════════════ */

@font-face{font-family:'Fraunces';src:url('../fonts/fraunces-normal.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap;}
@font-face{font-family:'Fraunces';src:url('../fonts/fraunces-italic.woff2') format('woff2');font-weight:100 900;font-style:italic;font-display:swap;}
@font-face{font-family:'Satoshi';src:url('../fonts/satoshi-400.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:'Satoshi';src:url('../fonts/satoshi-500.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap;}
@font-face{font-family:'Satoshi';src:url('../fonts/satoshi-700.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap;}

:root{
  --mag:#C2208F;
  --vio:#7B2D8E;
  --grad:linear-gradient(133deg,#D02F9C 8%,#7B2D8E 92%);
  --paper-dawn:#F8F2EA;
  --paper-sky:#E9F0F7;
  --paper:#F6F1E9;
  --paper-lav:#F3EDF3;
  --cloud:#26152F;
  --night:#1C0F24;
  --ink-dark:#2A1B31;
  --ink-light:#F6EEF4;
  --bg:var(--paper-dawn);
  --ink:var(--ink-dark);
  --soft:rgba(42,27,49,.6);
  --hair:rgba(42,27,49,.14);
  --card-shadow:0 24px 60px -28px rgba(42,27,49,.38);
  --ease-buoy:cubic-bezier(.16,.84,.26,1.13);
  --ease-taut:cubic-bezier(.34,1.56,.64,1);
  --disp:'Fraunces',Georgia,serif;
  --ui:'Satoshi',system-ui,sans-serif;
  --nav-h:78px;
}

/* rooms — the altitude repaint */
body[data-room="dawn"]  {--bg:var(--paper-dawn);--ink:var(--ink-dark);--soft:rgba(42,27,49,.6); --hair:rgba(42,27,49,.14);}
body[data-room="sky"]   {--bg:var(--paper-sky); --ink:var(--ink-dark);--soft:rgba(42,27,49,.62);--hair:rgba(42,27,49,.14);}
body[data-room="cloud"] {--bg:var(--cloud);     --ink:var(--ink-light);--soft:rgba(246,238,244,.62);--hair:rgba(246,238,244,.16);}
body[data-room="paper"] {--bg:var(--paper);     --ink:var(--ink-dark);--soft:rgba(42,27,49,.6); --hair:rgba(42,27,49,.14);}
body[data-room="menu"]  {--bg:var(--paper-lav); --ink:var(--ink-dark);--soft:rgba(42,27,49,.62);--hair:rgba(42,27,49,.15);}
body[data-room="night"] {--bg:var(--night);     --ink:var(--ink-light);--soft:rgba(246,238,244,.6);--hair:rgba(246,238,244,.15);}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
html.lenis-on{scroll-behavior:auto;}
body{
  font-family:var(--ui);
  font-size:1.05rem;line-height:1.7;
  background:var(--bg);color:var(--ink);
  transition:background-color .85s ease,color .85s ease;
  overflow-x:clip;
  -webkit-font-smoothing:antialiased;
}
::selection{background:var(--mag);color:#fff;}
img{max-width:100%;height:auto;display:block;}
a{color:inherit;}
section{scroll-margin-top:calc(var(--nav-h) + 8px);}
.wrap{width:min(1180px,92vw);margin-inline:auto;}

/* scrollbar */
::-webkit-scrollbar{width:9px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--vio) 55%,transparent);border-radius:99px;}

/* grain */
.grain{position:fixed;inset:0;z-index:2147483000;pointer-events:none;opacity:.06;mix-blend-mode:soft-light;background:url('../img/brand/noise.png');background-size:128px;}

/* ── reveals: FAIL-VISIBLE ─────────────────────────────── */
html.anim .fl{opacity:0;transform:translateY(46px) scale(.992);}
html.anim .fl.in{opacity:1;transform:none;transition:opacity .7s ease,transform 1.2s var(--ease-buoy);}
html.anim .fl.d1.in{transition-delay:.07s;}
html.anim .fl.d2.in{transition-delay:.14s;}
html.anim .fl.d3.in{transition-delay:.22s;}
html.anim .fl.d4.in{transition-delay:.3s;}

/* idle buoyancy (inner element only — never fights .fl transform) */
html.anim .bob{animation:bob var(--bt,7.5s) ease-in-out infinite alternate;}
@keyframes bob{from{transform:translateY(4px)}to{transform:translateY(-7px)}}

/* ── type voice ────────────────────────────────────────── */
.micro{font:700 .72rem/1.4 var(--ui);letter-spacing:.17em;text-transform:uppercase;color:var(--soft);}
.whisper{font:italic 500 clamp(1rem,1.35vw,1.2rem)/1.4 var(--disp);color:var(--mag);}
body[data-room="cloud"] .whisper,body[data-room="night"] .whisper{color:#E489C9;}
h2{font:600 clamp(2.7rem,6.6vw,5.6rem)/0.95 var(--disp);letter-spacing:-.02em;font-variation-settings:'opsz' 144;}
.chapter{padding:0 0 3.2rem;}
.chapter .whisper{margin-bottom:.5rem;}
.chapter-sub{color:var(--soft);max-width:46ch;margin-top:1rem;font-size:1.02rem;}

/* ── buttons ───────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;font:700 .95rem/1 var(--ui);text-decoration:none;border-radius:999px;padding:1.02em 1.9em;position:relative;transition:transform .45s var(--ease-taut),box-shadow .45s ease,background-color .3s ease,color .3s ease;}
.btn:active{transform:scale(.97);}
.btn-pill{background:var(--grad);color:#fff;box-shadow:0 14px 34px -14px rgba(194,32,143,.55);overflow:hidden;}
.btn-pill::after{content:"";position:absolute;left:14%;top:12%;width:34%;height:26%;border-radius:50%;background:rgba(255,255,255,.42);filter:blur(5px);transform:rotate(-18deg);}
.btn-pill:hover{transform:translateY(-3px);box-shadow:0 22px 44px -16px rgba(194,32,143,.65);}
.btn-ghost{border:1px solid color-mix(in srgb,currentColor 26%,transparent);color:inherit;background:transparent;}
.btn-ghost:hover{transform:translateY(-3px);border-color:var(--mag);color:var(--mag);}
body[data-room="cloud"] .btn-ghost:hover,body[data-room="night"] .btn-ghost:hover{color:#E489C9;border-color:#E489C9;}

/* focus */
:focus-visible{outline:2px solid var(--mag);outline-offset:3px;border-radius:4px;}

/* ── nav ───────────────────────────────────────────────── */
.nav{position:fixed;inset:0 0 auto 0;height:var(--nav-h);z-index:900;display:flex;align-items:center;gap:2.2rem;padding:0 clamp(1.1rem,3vw,2.6rem);transition:background-color .5s ease,backdrop-filter .5s ease,box-shadow .5s ease;}
.nav.scrolled{background:color-mix(in srgb,var(--bg) 72%,transparent);backdrop-filter:saturate(130%) blur(14px);-webkit-backdrop-filter:saturate(130%) blur(14px);box-shadow:0 1px 0 var(--hair);}
.nav-brand{display:flex;align-items:center;gap:.7rem;text-decoration:none;font:600 1.12rem/1 var(--disp);letter-spacing:.01em;}
.nav-brand img{height:42px;width:auto;}
.nav-links{display:flex;gap:1.7rem;margin-left:auto;}
.nav-links a{font:500 .88rem/1 var(--ui);text-decoration:none;color:var(--soft);height:1em;overflow:hidden;display:inline-block;position:relative;}
.nav-links a span{display:block;transition:transform .38s var(--ease-buoy);}
.nav-links a:hover span{transform:translateY(-100%);}
.nav-links a:hover{color:var(--ink);}
.nav-cta{padding:.78em 1.5em;font-size:.86rem;}
.burger{display:none;}

/* mobile sheet */
.sheet{position:fixed;inset:0;z-index:950;background:color-mix(in srgb,var(--night) 96%,transparent);color:var(--ink-light);display:grid;place-content:center;gap:1rem;text-align:center;opacity:0;pointer-events:none;transition:opacity .45s ease;}
html.menu-open .sheet{opacity:1;pointer-events:auto;}
html.menu-open{overflow:hidden;}
.sheet nav{display:grid;gap:.4rem;margin-bottom:1.6rem;}
.sheet a{font:600 clamp(2rem,9vw,2.9rem)/1.3 var(--disp);text-decoration:none;}
.sheet a:hover{color:#E489C9;font-style:italic;}
.sheet .btn{justify-self:center;}
.sheet-foot{margin-top:2.2rem;font-size:.85rem;color:rgba(246,238,244,.55);}

/* ── string rail ───────────────────────────────────────── */
.rail{position:fixed;left:30px;top:calc(var(--nav-h) + 18px);bottom:34px;width:24px;z-index:600;opacity:0;transition:opacity .8s ease .8s;}
html.anim .rail{opacity:1;}
.rail svg{width:100%;height:100%;overflow:visible;}
.rail path{stroke:color-mix(in srgb,var(--ink) 20%,transparent);stroke-width:1.5;}
.rail .drawn{position:absolute;inset:0;}
.rail-knots{position:absolute;inset:0;}
.rail-knot{position:absolute;left:50%;width:9px;height:9px;border-radius:50%;transform:translate(-50%,-50%);border:1.5px solid color-mix(in srgb,var(--ink) 22%,transparent);background:transparent;cursor:pointer;padding:0;transition:background-color .4s ease,border-color .4s ease,box-shadow .4s ease, transform .4s var(--ease-taut);}
.rail-knot:hover{transform:translate(-50%,-50%) scale(1.35);}
.rail-knot.on{background:var(--mag);border-color:var(--mag);box-shadow:0 0 14px rgba(194,32,143,.55);}
@media(max-width:1120px){.rail{display:none;}}

/* ═══ 1 · HERO ═══════════════════════════════════════════ */
.hero{min-height:100svh;display:flex;align-items:center;position:relative;overflow:clip;padding:calc(var(--nav-h) + 3vh) 0 6vh;}
.hero-inner{width:min(1240px,93vw);margin-inline:auto;display:grid;grid-template-columns:1.3fr .74fr;gap:2vw;align-items:center;}
.wm{font:550 clamp(4.1rem,11.6vw,10.6rem)/0.88 var(--disp);letter-spacing:-.03em;font-variation-settings:'opsz' 144;margin:1.4rem 0 1.8rem;}
.wm-line{display:block;white-space:nowrap;}
.wm-it{font-style:italic;font-weight:490;margin-left:.09em;padding-right:.06em;}
/* gradient must clip per-letter — clip:text can't paint through nested inline-blocks */
.wm-it .ld{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;padding:.04em .012em .1em;margin:-.04em -.012em -.1em;}
.wm .l{display:inline-block;}
.wm .ld{display:inline-block;}
html.anim .wm .ld{animation:ldrift calc(5.4s + var(--i)*.43s) ease-in-out infinite alternate;animation-delay:calc(var(--i) * -1.13s);}
@keyframes ldrift{from{transform:translateY(1.2px)}to{transform:translateY(-3.4px)}}
.hero-sub{color:var(--soft);max-width:34ch;font-size:1.04rem;}
.hero-ctas{display:flex;gap:.9rem;flex-wrap:wrap;margin-top:2.1rem;}
.hero-copy .whisper{margin-top:3.2rem;}
.hero-art{position:relative;height:min(74vh,760px);}
.halo{position:absolute;left:50%;top:8%;width:40vw;max-width:600px;aspect-ratio:1;transform:translateX(-50%);background:radial-gradient(circle,rgba(206,52,158,.30),rgba(123,45,142,.10) 55%,transparent 72%);filter:blur(44px);}
.hero-girl{position:absolute;left:50%;top:0;height:100%;transform:translateX(-50%);}
.hero-girl .bob{height:100%;}
.hero-girl img{height:100%;width:auto;filter:drop-shadow(0 30px 46px rgba(123,45,142,.28));}
.hero-string{position:absolute;left:34%;top:70%;height:52%;opacity:.9;}
.bow path,.rb-string{stroke:var(--mag);}
.hero-string path{stroke:url(#stringFade);stroke-width:1.6;}

/* ═══ 2 · WELCOME ════════════════════════════════════════ */
.welcome{padding:19vh 0 21vh;position:relative;}
.welcome-copy{max-width:21.5ch;font:500 clamp(1.7rem,3.3vw,2.85rem)/1.38 var(--disp);letter-spacing:-.012em;display:grid;gap:1.4em;margin-top:1.6rem;}
.welcome-copy .w{opacity:1;transition:opacity .3s ease;}
html.anim .welcome-copy .w{opacity:.15;}
html.anim .welcome-copy .w.lit{opacity:1;}
.welcome-chips{position:absolute;right:4vw;top:12%;height:76%;width:min(30vw,420px);pointer-events:none;}
.chip{border-radius:18px;position:relative;box-shadow:var(--card-shadow);}
.chip .bob{border-radius:inherit;overflow:hidden;position:relative;}
.chip img{border-radius:inherit;}

/* ── balloon language: latex gloss + ribbon knot & string ── */
.wcard::after,.chip .bob::after{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(95% 62% at 18% 9%,rgba(255,255,255,.32),rgba(255,255,255,0) 46%);mix-blend-mode:screen;pointer-events:none;}
.bstr{position:absolute;left:50%;top:99.5%;width:34px;height:96px;transform:translateX(-50%);transform-origin:50% 0;pointer-events:none;overflow:visible;}
html.anim .bstr{animation:ssway 5.6s ease-in-out infinite alternate;animation-delay:var(--sd,0s);}
.bstr .knot{fill:var(--mag);opacity:.92;}
.bstr .scurve{fill:none;stroke:var(--mag);stroke-width:1.7;opacity:.85;stroke-linecap:round;}
@keyframes ssway{from{transform:translateX(-50%) rotate(2.6deg)}to{transform:translateX(-50%) rotate(-2.6deg)}}

/* drifting logo-balloons in the cloud room */
.fball{position:absolute;left:50%;top:0;width:calc(74px * var(--bs,1));z-index:0;pointer-events:none;transform:translateY(118vh);will-change:transform;opacity:.78;}
.fball.front{z-index:3;filter:blur(2.4px);opacity:.85;}
.fball svg{width:100%;height:auto;overflow:visible;display:block;}
html:not(.anim) .fball{display:none;}
.welcome-chips .chip{position:absolute;}
.chip-a{width:62%;right:0;top:0;--bt:8.5s;transform:rotate(2.4deg);}
.chip-b{width:52%;left:0;top:38%;--bt:6.8s;transform:rotate(-2.8deg);}
.chip-c{width:44%;right:6%;bottom:0;--bt:7.7s;transform:rotate(1.8deg);}

/* ═══ 3 · WORK (cloud level) ═════════════════════════════ */
.work-runway{height:520vh;position:relative;}
.work-stage{position:sticky;top:0;height:100svh;overflow:clip;}
.work-label{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(88vw,1080px);text-align:center;font:600 clamp(2rem,4.6vw,4.2rem)/1.14 var(--disp);letter-spacing:-.015em;z-index:1;}
.work-label em{font-style:italic;display:block;font-weight:430;color:#E489C9;}
.work-cap{position:absolute;left:50%;bottom:7svh;transform:translateX(-50%);z-index:3;height:1.6em;font:italic 500 1.05rem/1.5 var(--disp);color:rgba(246,238,244,.66);}
.work-cap span{position:absolute;left:50%;transform:translateX(-50%);white-space:nowrap;opacity:0;transition:opacity .6s ease;}
.work-cap span.on{opacity:1;}
.wcard{position:absolute;left:var(--lane,50%);top:0;width:var(--cw,340px);border-radius:16px;box-shadow:0 34px 80px -30px rgba(0,0,0,.55);z-index:2;transform:translateY(115vh);will-change:transform;}
.wcard img{border-radius:inherit;}
.wcard[data-w="sm"]{--cw:min(21vw,268px);}
.wcard[data-w="md"]{--cw:min(25vw,330px);}
.wcard[data-w="lg"]{--cw:min(31vw,430px);}

/* static fallback (no JS or reduced motion): a composed collage */
html:not(.anim) .work-runway{height:auto;padding:16vh 0;}
html:not(.anim) .work-stage{position:static;height:auto;overflow:visible;display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;width:min(1180px,92vw);margin-inline:auto;padding-top:8rem;}
html:not(.anim) .work-label{position:static;transform:none;grid-column:1/-1;margin-bottom:2.5rem;width:auto;}
html:not(.anim) .work-cap{display:none;}
html:not(.anim) .wcard{position:static;transform:none;width:100%;}

/* ═══ 4 · ARCHIVE ════════════════════════════════════════ */
.archive{padding:17vh 0 13vh;}
.masonry{columns:4 240px;column-gap:1.1rem;}
.masonry.clipped a:nth-child(n+25){display:none;}
.archive-more{text-align:center;padding-top:2.4rem;}
.archive-more.done{display:none;}
.masonry a{display:block;margin-bottom:1.1rem;border-radius:14px;overflow:hidden;box-shadow:0 16px 38px -22px rgba(42,27,49,.35);transition:transform .5s var(--ease-buoy),box-shadow .5s ease;}
.masonry a:hover{transform:translateY(-7px);box-shadow:0 26px 52px -24px rgba(42,27,49,.45);}
.masonry img{width:100%;}

/* ═══ 5 · MENU (pricing) ═════════════════════════════════ */
.menu{padding:17vh 0 15vh;position:relative;}
.menu .wrap{position:relative;}
.menu-string{position:absolute;left:-3.4rem;top:16rem;bottom:2rem;height:calc(100% - 18rem);width:60px;}
.menu-string path{stroke:color-mix(in srgb,var(--vio) 45%,transparent);stroke-width:1.5;}
.menu-list{list-style:none;display:grid;gap:0;}
.mrow{display:grid;grid-template-columns:44px 1.15fr .9fr;gap:2.2rem;align-items:center;padding:2.6rem 0;border-top:1px solid var(--hair);}
.mrow:last-child{border-bottom:1px solid var(--hair);}
.knot{display:flex;flex-direction:column;gap:5px;align-items:center;}
.knot i{width:13px;height:15px;border-radius:50% 50% 46% 46%;background:var(--grad);opacity:.92;position:relative;transform:scale(1);transition:transform .8s var(--ease-taut);}
.knot i:nth-child(2){width:10px;height:12px;opacity:.6;}
.knot i:nth-child(3){width:7px;height:9px;opacity:.38;}
html.anim .fl:not(.in) .knot i{transform:scale(.25);}
html.anim .fl.in .knot i:nth-child(1){transition-delay:.25s;}
html.anim .fl.in .knot i:nth-child(2){transition-delay:.34s;}
html.anim .fl.in .knot i:nth-child(3){transition-delay:.43s;}
.mhead h3{font:600 clamp(1.9rem,3.3vw,2.9rem)/1.05 var(--disp);letter-spacing:-.015em;}
.mprice{margin-top:.6rem;color:var(--soft);font-size:1.12rem;}
.mprice strong{font:600 2.1em/1 var(--disp);color:var(--ink);letter-spacing:-.01em;}
.mnote{font-size:.82em;color:var(--soft);}
.tiers{list-style:none;margin-top:1rem;display:grid;gap:.6rem;max-width:430px;}
.tiers li{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;border-bottom:1px dashed color-mix(in srgb,var(--ink) 16%,transparent);padding-bottom:.5rem;font-size:1.06rem;color:var(--soft);}
.tiers strong{font:600 1.8rem/1 var(--disp);color:var(--ink);}
.mpics{display:flex;gap:1rem;justify-content:flex-end;}
.mpics img{width:min(15.5vw,218px);border-radius:14px;box-shadow:0 22px 48px -22px rgba(42,27,49,.45);transition:transform .5s var(--ease-buoy);}
.mpics img:nth-child(2){transform:translateY(12px);}
.mrow:hover .mpics img{transform:translateY(-4px);}
.mrow:hover .mpics img:nth-child(2){transform:translateY(7px);}

/* ═══ 6 · ABOUT ══════════════════════════════════════════ */
.about{padding:18vh 0 16vh;}
.about-grid{display:grid;grid-template-columns:1.05fr .85fr;gap:4vw;align-items:center;}
.about-lede{font:500 clamp(1.45rem,2.4vw,2.1rem)/1.42 var(--disp);letter-spacing:-.01em;margin-top:1.6rem;max-width:24ch;}
.contact-block{margin-top:2.6rem;border-left:2px solid var(--mag);padding-left:1.4rem;display:grid;gap:.15rem;}
.contact-block h3{font:italic 500 1.1rem/1.3 var(--disp);color:var(--mag);margin-bottom:.5rem;}
.contact-name{font:600 1.35rem/1.3 var(--disp);}
.contact-block p span{color:var(--soft);font-weight:700;font-size:.85em;}
.contact-block a{text-decoration:none;border-bottom:1px solid color-mix(in srgb,currentColor 25%,transparent);transition:border-color .3s,color .3s;}
.contact-block a:hover{color:var(--mag);border-color:var(--mag);}
.about .hero-ctas{margin-top:2.4rem;}
.about-art{position:relative;height:min(72vh,680px);}
.about-art .chip{position:absolute;}
.chip-lg{width:64%;left:0;top:4%;--bt:8.2s;transform:rotate(-2deg);z-index:2;}
.chip-md{width:52%;right:0;bottom:3%;--bt:6.6s;transform:rotate(2.5deg);z-index:3;}

/* ═══ 7 · INQUIRY ════════════════════════════════════════ */
.inquiry{padding:17vh 0 12vh;}
.inquiry .chapter{text-align:center;padding-bottom:2.6rem;}
.inquiry .chapter-sub{margin-inline:auto;}
.form-card{position:relative;width:min(880px,100%);margin-inline:auto;background:#FDFBF7;color:var(--ink-dark);border-radius:22px;box-shadow:0 50px 120px -50px rgba(0,0,0,.6);padding:clamp(1rem,3vw,2.6rem);}
.form-card .bow{position:absolute;top:-26px;left:50%;transform:translateX(-50%);width:82px;}
.bow path{stroke-width:2;}
.form-card iframe{display:block;width:100%;border:0;border-radius:10px;background:#FDFBF7;}
@media(max-width:640px){.form-card iframe{height:1640px;}}

/* ═══ 8 · RELEASE (footer) ═══════════════════════════════ */
.release{padding:15vh 0 5vh;text-align:center;position:relative;overflow:clip;}
.release::before{content:"";position:absolute;left:50%;bottom:-30%;width:70vw;height:70vh;transform:translateX(-50%);background:radial-gradient(ellipse at bottom,rgba(194,32,143,.16),transparent 62%);filter:blur(30px);pointer-events:none;}
.release-balloon{display:inline-block;width:86px;cursor:pointer;border:0;background:none;}
.release-balloon svg{overflow:visible;}
.rb-g{transform-origin:60px 300px;}
html.anim .release-balloon:not(.gone) .rb-g{animation:bob 6s ease-in-out infinite alternate;}
.release-balloon.gone .rb-g{transition:transform 4.2s cubic-bezier(.32,.14,.36,1),opacity 3.9s ease .3s;transform:translateY(-125vh) rotate(7deg);opacity:0;}
.rb-string{opacity:.85;}
.release-whisper{font:italic 500 1.15rem/1.5 var(--disp);color:#E489C9;margin:1.6rem 0 1rem;}
.wm-foot{font:550 clamp(3rem,9vw,8.4rem)/1 var(--disp);letter-spacing:-.03em;white-space:nowrap;margin:1.4rem 0 3rem;}
.wm-foot span{display:inline-block;transition:transform 1s var(--ease-buoy),opacity .7s ease;}
.wm-foot .it{font-style:italic;font-weight:480;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;}
html.anim .wm-foot:not(.in) span{transform:translateY(.6em);opacity:0;}
html.anim .wm-foot.in span{transition-delay:calc(var(--fi,0)*.045s);}
.foot-lines{border-top:1px solid var(--hair);padding-top:2rem;display:grid;gap:.5rem;}
.foot-contact{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;font-size:.95rem;}
.foot-contact span{color:var(--soft);}
.foot-contact a{text-decoration:none;border-bottom:1px solid color-mix(in srgb,currentColor 25%,transparent);}
.foot-contact a:hover{color:#E489C9;border-color:#E489C9;}
.foot-small{color:var(--soft);font-size:.85rem;padding-bottom:1.4rem;}

/* ═══ lightbox ═══════════════════════════════════════════ */
.lb{position:fixed;inset:0;z-index:990;background:rgba(18,8,24,.94);backdrop-filter:blur(10px);display:grid;place-items:center;opacity:0;pointer-events:none;transition:opacity .35s ease;}
.lb.open{opacity:1;pointer-events:auto;}
.lb figure{max-width:min(92vw,1080px);max-height:86svh;display:grid;gap:.7rem;}
.lb img{max-width:100%;max-height:80svh;width:auto;height:auto;margin-inline:auto;border-radius:10px;box-shadow:0 40px 120px -30px rgba(0,0,0,.8);}
.lb figcaption{text-align:center;color:rgba(246,238,244,.6);font-size:.88rem;}
.lb button{position:absolute;background:none;border:0;color:#F6EEF4;font-size:2.6rem;line-height:1;cursor:pointer;opacity:.7;transition:opacity .3s,transform .3s;padding:.4em;}
.lb button:hover{opacity:1;transform:scale(1.12);}
.lb-x{top:14px;right:22px;}
.lb-p{left:12px;top:50%;transform:translateY(-50%);}
.lb-n{right:12px;top:50%;transform:translateY(-50%);}

/* ═══ responsive ═════════════════════════════════════════ */
@media(max-width:1024px){
  .nav-links{display:none;}
  .nav-cta{margin-left:auto;}
  .burger{display:grid;gap:6px;background:none;border:0;padding:.6rem;cursor:pointer;z-index:960;}
  .burger i{display:block;width:26px;height:2px;background:currentColor;transition:transform .4s var(--ease-buoy),opacity .3s;}
  html.menu-open .burger i:nth-child(1){transform:translateY(4px) rotate(45deg);}
  html.menu-open .burger i:nth-child(2){transform:translateY(-4px) rotate(-45deg);}
  html.menu-open .burger{color:#F6EEF4;position:fixed;right:1rem;top:1rem;}
}
@media(max-width:900px){
  .hero{padding-top:calc(var(--nav-h) + 1vh);}
  .hero-inner{grid-template-columns:1fr;gap:0;}
  .hero-art{height:46svh;order:-1;margin-bottom:1rem;}
  .hero-girl{left:64%;}
  .halo{width:70vw;}
  .hero-string{display:none;}
  .wm{font-size:clamp(3.4rem,15.5vw,6.5rem);}
  .welcome{padding:14vh 0;}
  .welcome-copy{max-width:none;}
  .welcome-chips{position:static;width:auto;height:auto;display:flex;gap:.9rem;margin-top:3rem;pointer-events:auto;}
  .welcome-chips .chip{position:static;width:33%;}
  .work-runway{height:420vh;}
  .wcard[data-w="sm"]{--cw:38vw;}
  .wcard[data-w="md"]{--cw:46vw;}
  .wcard[data-w="lg"]{--cw:56vw;}
  html:not(.anim) .work-stage{grid-template-columns:repeat(2,1fr);}
  .masonry{columns:2 150px;column-gap:.8rem;}
  .masonry a{margin-bottom:.8rem;}
  .mrow{grid-template-columns:30px 1fr;grid-template-rows:auto auto;gap:1.1rem;padding:2.1rem 0;}
  .mpics{grid-column:2;justify-content:flex-start;}
  .mpics img{width:41vw;max-width:250px;}
  .menu-string{display:none;}
  .about-grid{grid-template-columns:1fr;}
  .about-art{height:auto;display:flex;gap:.9rem;margin-top:2.6rem;}
  .about-art .chip{position:static;}
  .chip-lg{width:56%;}
  .chip-md{width:44%;align-self:flex-end;}
  .wm-foot{font-size:clamp(2.2rem,11vw,4.4rem);}
}
@media(max-width:520px){
  body{font-size:1rem;}
  .nav-cta{display:none;}
  .work-cap{bottom:4svh;}
  .foot-contact{flex-direction:column;gap:.55rem;}
  .foot-contact span{display:none;}
}

/* ═══ reduced motion ═════════════════════════════════════ */
@media(prefers-reduced-motion:reduce){
  html.anim .fl{opacity:1;transform:none;transition:none;}
  html.anim .bob,.release-balloon .rb-g,html.anim .wm .ld{animation:none!important;}
  html.anim .welcome-copy .w{opacity:1;}
  html.anim .wm-foot:not(.in) span{transform:none;opacity:1;}
  html{scroll-behavior:auto;}
}
