/* Atelier Lumière v2: night and porcelain, film grain, light that takes the colour of the chosen look. */
@property --look{syntax:'<color>';inherits:true;initial-value:#A87A4F}
:root{
  --night:#150E10; --night2:#21171A; --porc:#F3ECE8; --porc2:#EAE0DB; --card:#FBF7F5;
  --ink:#1F1517; --muted:#5C4B4F; --mutedD:#BDABA8; --dim:#9C8986;
  --lineL:rgba(31,21,23,.15); --lineD:rgba(243,236,232,.16);
  --ox:#7A2236; --ox-ink:#FBF5F4;
  --fd:'Bodoni Moda',Didot,'Bodoni 72',Georgia,serif;
  --fb:'Hanken Grotesk',system-ui,-apple-system,'Segoe UI',sans-serif;
  --gut:clamp(16px,4vw,56px);
  --rib:30px; --hdr:64px;
  --F:clamp(5.4rem,17vw,16.5rem);
  --ease-out:cubic-bezier(.23,1,.32,1);
  --ease-io:cubic-bezier(.77,0,.175,1);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--hdr) + 12px)}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;background:var(--night);color:var(--ink);font:400 1rem/1.6 var(--fb);overflow-x:clip;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
h1,h2,h3,p,dl,dd,ol,ul,figure,blockquote,fieldset{margin:0;padding:0}
fieldset{border:0;min-width:0}
ol,ul{list-style:none}
a{color:inherit}
button,input{font:inherit;color:inherit}
h1,h2,h3{font-family:var(--fd);font-weight:400;text-wrap:balance;font-variation-settings:'opsz' 72}
html[data-lang="en"] .pt,html[data-lang="pt"] .en{display:none!important}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.skip{position:absolute;left:12px;top:-60px;z-index:70;background:var(--porc);color:var(--ink);padding:12px 16px;text-decoration:none}
.skip:focus{top:12px}
:focus-visible{outline:2px solid #D9A79B;outline-offset:3px}
.agenda :focus-visible,.visit :focus-visible,.voices :focus-visible,.ask :focus-visible{outline-color:var(--ox)}

/* film grain over everything */
body::after{content:"";position:fixed;inset:-60px;z-index:60;pointer-events:none;background:url(img/grain.png);opacity:.4;mix-blend-mode:overlay}
@media (prefers-reduced-motion:no-preference){body::after{animation:grain 1.1s steps(6) infinite}}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-22px,14px)}40%{transform:translate(18px,-30px)}60%{transform:translate(-34px,-8px)}80%{transform:translate(26px,24px)}100%{transform:translate(0,0)}}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6em;min-height:50px;padding:0 1.5rem;border:1px solid transparent;border-radius:2px;font:500 .95rem/1 var(--fb);letter-spacing:.01em;text-decoration:none;cursor:pointer;transition:transform 160ms var(--ease-out),background-color 200ms ease,color 200ms ease}
.btn:active{transform:scale(.97)}
.btn-light{background:var(--porc);color:var(--ink)}
.btn-ink{background:var(--ink);color:var(--porc)}
.btn-ox{background:var(--ox);color:var(--ox-ink)}
.btn-line{background:transparent;border-color:var(--ink)}
.btn-sm{min-height:44px;padding:0 1.1rem;font-size:.9rem}
.btn-wide{width:100%}
@media (hover:hover) and (pointer:fine){
  .btn-light:hover{background:#fff}
  .btn-ink:hover{background:#3a2a2d}
  .btn-ox:hover{background:#651a2b}
  .btn-line:hover{background:var(--ink);color:var(--porc)}
}

/* ribbon + header */
.ribbon{height:var(--rib);display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 var(--gut);background:#0C0809;color:#E3D5D1;font-size:.78rem;position:relative;z-index:21}
.ribbon p{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.ribbon a{white-space:nowrap;color:#fff;text-underline-offset:3px;padding:6px 0}
.rb-s{display:none}
.top{position:sticky;top:0;z-index:20;height:var(--hdr);display:flex;align-items:center;gap:32px;padding:0 var(--gut);background:rgba(21,14,16,.62);-webkit-backdrop-filter:blur(16px) saturate(1.2);backdrop-filter:blur(16px) saturate(1.2);color:var(--porc);border-bottom:1px solid var(--lineD)}
.mini-brand{font:400 1.3rem/1 var(--fd);letter-spacing:-.01em;text-decoration:none;white-space:nowrap;min-height:44px;display:flex;align-items:center;gap:.3em}
.mini-brand i{font-style:italic;color:var(--mutedD)}
.nav{display:flex;gap:28px;margin-right:auto}
.nav a{text-decoration:none;font-size:.94rem;color:#E4D8D4;padding:12px 0;background:linear-gradient(currentColor,currentColor) 0 calc(100% - 8px)/0 1px no-repeat;transition:background-size 240ms var(--ease-out),color 200ms ease}
@media (hover:hover){.nav a:hover{background-size:100% 1px;color:#fff}}
.top-r{display:flex;align-items:center;gap:14px;margin-left:auto}
.lang{display:flex;border:1px solid var(--lineD);border-radius:2px}
.lang button{min-width:44px;min-height:40px;border:0;background:transparent;font-size:.82rem;font-weight:500;cursor:pointer;color:var(--mutedD)}
.lang button[aria-pressed="true"]{background:var(--porc);color:var(--ink)}

/* ===== HERO ===== */
.hero{position:relative;z-index:2;background:var(--night);color:var(--porc);min-height:max(620px,calc(100svh - var(--rib) - var(--hdr)));display:grid;align-items:center;padding:clamp(28px,4vw,56px) var(--gut) calc(var(--F) * .5 + 28px);isolation:isolate}
.hero-media{position:absolute;top:0;right:0;bottom:0;width:64%;overflow:hidden;z-index:-1;-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 42%),linear-gradient(0deg,transparent 0%,#000 38%);-webkit-mask-composite:source-in;mask-image:linear-gradient(90deg,transparent 0%,#000 42%),linear-gradient(0deg,transparent 0%,#000 38%);mask-composite:intersect}
.frame{position:absolute;inset:0;transform-origin:60% 40%}
@media (prefers-reduced-motion:no-preference){.frame{animation:drift 24s ease-in-out infinite alternate}}
@keyframes drift{from{transform:scale(1.04)}to{transform:scale(1.14) translate3d(-2.2%,-1.6%,0)}}
.lp{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 30%;opacity:0;transition:opacity 900ms var(--ease-io)}
.lp.is-on{opacity:1}
.hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(21,14,16,.45),rgba(21,14,16,0) 22%)}
.sweep{position:absolute;inset:-30%;background:radial-gradient(28% 22% at 50% 50%,rgba(255,196,140,.34),rgba(255,196,140,0) 70%);mix-blend-mode:screen;pointer-events:none;z-index:1}
@media (prefers-reduced-motion:no-preference){.sweep{animation:sweep 13s ease-in-out infinite alternate}}
@keyframes sweep{from{transform:translate3d(-22%,14%,0)}to{transform:translate3d(18%,-14%,0)}}
.glow{position:absolute;z-index:-2;left:-14vmin;top:4%;width:78vmin;height:78vmin;background:radial-gradient(closest-side,color-mix(in oklab,var(--look) 60%,transparent),transparent);opacity:.5;transition:--look 900ms ease;pointer-events:none}

.hero-in{max-width:min(36rem,44%);min-width:0}
.hero-k{font-size:.9rem;color:var(--mutedD)}
.hero h1{font-size:clamp(2.3rem,3.9vw,3.9rem);line-height:1.02;letter-spacing:-.022em;margin-top:12px}
.hero-sub{margin:14px 0 18px;max-width:29rem;color:var(--mutedD);font-size:1.05rem}
.hero-svcs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px;max-width:34rem}
.hs{display:inline-flex;align-items:baseline;gap:8px;min-height:44px;padding:12px 15px;border-radius:999px;border:1px solid rgba(243,236,232,.2);background:rgba(255,240,235,.06);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--porc);font-size:.88rem;line-height:1.2;white-space:nowrap;cursor:pointer;transition:background-color 180ms ease,transform 160ms var(--ease-out)}
.hs small{font-size:.8rem;color:var(--mutedD)}
.hs:active{transform:scale(.97)}
@media (hover:hover){.hs:hover{background:rgba(255,240,235,.16)}}
.glass{background:linear-gradient(160deg,rgba(255,240,235,.13),rgba(255,240,235,.04));-webkit-backdrop-filter:blur(22px) saturate(1.3);backdrop-filter:blur(22px) saturate(1.3);border:1px solid rgba(255,240,235,.14);box-shadow:inset 0 1px 0 rgba(255,255,255,.12);border-radius:3px}
.picker{max-width:27.5rem;padding:18px 20px 20px}
.swatches legend{font-size:.82rem;color:var(--mutedD);margin-bottom:8px}
.sw-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}
.sw{position:relative;display:grid;justify-items:center;gap:7px;cursor:pointer;padding:4px 0;-webkit-tap-highlight-color:transparent}
.sw input{position:absolute;opacity:0;width:1px;height:1px}
.sw-dot{position:relative;width:42px;height:42px;border-radius:50%;background:radial-gradient(circle at 32% 28%,rgba(255,255,255,.35),rgba(255,255,255,0) 46%),var(--c);box-shadow:0 10px 22px -8px var(--c),inset 0 0 0 1px rgba(255,255,255,.18);transition:transform 180ms var(--ease-out)}
.sw-dot::after{content:"";position:absolute;inset:-6px;border-radius:50%;border:1.5px solid var(--porc);opacity:0;transform:scale(.86);transition:opacity 200ms ease,transform 240ms var(--ease-out)}
.sw input:checked+.sw-dot::after{opacity:1;transform:none}
.sw input:focus-visible+.sw-dot{outline:2px solid #D9A79B;outline-offset:9px}
.sw:active .sw-dot{transform:scale(.93)}
.sw-name{font-size:.78rem;line-height:1.2;color:var(--mutedD);text-align:center}
.sw input:checked~.sw-name{color:var(--porc);font-weight:600}
.look-card{margin-top:14px;padding-top:14px;border-top:1px solid var(--lineD)}
.look-name{font:italic 400 clamp(1.6rem,2.2vw,2rem)/1.1 var(--fd)}
.look-desc{margin-top:4px;color:#E7DCD8;font-size:.96rem}
.look-meta{margin-top:4px;font-size:.9rem;color:var(--mutedD);font-variant-numeric:tabular-nums}
.look-meta b{color:var(--porc);font-weight:600}
#lookCta{margin-top:16px}
.look-card.swap>*{animation:cardIn 420ms var(--ease-out) both}
.look-card.swap>*:nth-child(2){animation-delay:40ms}
.look-card.swap>*:nth-child(3){animation-delay:80ms}
@keyframes cardIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

.mast{position:absolute;left:calc(var(--gut) - .03em);bottom:calc(var(--F) * -.36);display:grid;font:400 var(--F)/.8 var(--fd);font-variation-settings:'opsz' 96;letter-spacing:-.04em;white-space:nowrap;pointer-events:none;z-index:3;margin:0}
.mast span{grid-area:1/1;padding-bottom:.02em}
.m-a{color:var(--porc);clip-path:inset(0 0 .38em 0)}
.m-b{color:var(--ink);clip-path:inset(calc(100% - .38em) 0 0 0)}
@media (prefers-reduced-motion:no-preference){.mast{animation:mastIn 1400ms var(--ease-out) both 120ms}}
@keyframes mastIn{from{opacity:0;transform:translateY(.12em)}to{opacity:1;transform:none}}

.hero.off .frame,.hero.off .sweep{animation-play-state:paused}

/* ===== AGENDA ===== */
.agenda{position:relative;z-index:1;overflow:clip;background:var(--porc);padding:calc(var(--F) * .36 + clamp(40px,6vw,88px)) var(--gut) clamp(56px,8vw,112px)}
.ag-glow{position:absolute;right:-18vmin;top:18%;width:70vmin;height:70vmin;background:radial-gradient(closest-side,color-mix(in oklab,var(--look) 38%,transparent),transparent);transition:--look 900ms ease;pointer-events:none;z-index:-1}
.ag-head{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:16px 48px;align-items:end;margin-bottom:clamp(24px,3.5vw,44px)}
.ag-head h2,.visit h2{font-size:clamp(2.2rem,4.8vw,4.4rem);line-height:1;letter-spacing:-.028em}
.ag-head p{max-width:30rem;color:var(--muted)}
.ag-label{display:block;font-size:.85rem;color:var(--muted);margin-bottom:10px}
.ag-svc{margin-bottom:22px}
.svc-chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{position:relative;cursor:pointer}
.chip input{position:absolute;opacity:0;width:1px;height:1px}
.chip span{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border:1px solid var(--lineL);background:rgba(251,247,245,.7);font-size:.92rem;border-radius:2px;transition:background-color 180ms ease,color 180ms ease,border-color 180ms ease,transform 160ms var(--ease-out)}
.chip input:checked+span{background:var(--ink);color:var(--porc);border-color:var(--ink)}
.chip input:focus-visible+span{outline:2px solid var(--ox);outline-offset:2px}
.chip:active span{transform:scale(.97)}
@media (hover:hover){.chip:hover input:not(:checked)+span{border-color:var(--ink)}}

.week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}
.day{position:relative;cursor:pointer}
.day+.day{border-left:1px solid var(--lineL)}
.day input{position:absolute;opacity:0;width:1px;height:1px}
.day-in{display:grid;gap:2px;padding:14px 12px 16px;min-height:112px;transition:background-color 220ms ease,color 220ms ease}
.d-wd{font-size:.82rem;color:var(--muted)}
.d-num{font:400 clamp(1.9rem,3vw,2.7rem)/1 var(--fd);font-variant-numeric:lining-nums}
.d-mo{font-size:.8rem;color:var(--muted)}
.d-free{margin-top:6px;font-size:.8rem;font-weight:500}
.day input:checked+.day-in{background:var(--ink);color:var(--porc)}
.day input:checked+.day-in .d-wd,.day input:checked+.day-in .d-mo{color:#CDBDB9}
.day input:focus-visible+.day-in{outline:2px solid var(--ox);outline-offset:-4px}
.day input:disabled+.day-in{cursor:default;color:#8E7D80}
.day input:disabled+.day-in .d-num{opacity:.4}
@media (hover:hover){.day:hover input:not(:checked):not(:disabled)+.day-in{background:rgba(251,247,245,.8)}}

.ag-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,23rem);gap:clamp(24px,4vw,64px);margin-top:clamp(24px,3vw,36px);align-items:start}
.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px}
.slot{position:relative;cursor:pointer}
.slot input{position:absolute;opacity:0;width:1px;height:1px}
.slot span{display:grid;place-items:center;min-height:52px;border:1px solid var(--lineL);background:rgba(251,247,245,.75);border-radius:2px;font:500 1.02rem/1 var(--fb);font-variant-numeric:tabular-nums;transition:background-color 180ms ease,color 180ms ease,transform 160ms var(--ease-out)}
.slot input:checked+span{background:var(--ox);color:var(--ox-ink);border-color:var(--ox)}
.slot input:focus-visible+span{outline:2px solid var(--ox);outline-offset:2px}
.slot:active span{transform:scale(.96)}
@media (hover:hover){.slot:hover input:not(:checked)+span{border-color:var(--ink)}}
.slots-empty{grid-column:1/-1;color:var(--muted);padding:12px 0}

.ticket{position:sticky;top:calc(var(--hdr) + 20px);background:var(--card);padding:26px;border-radius:3px;box-shadow:inset 0 1px 0 #fff,0 34px 60px -34px rgba(31,21,23,.42),0 10px 20px -14px rgba(31,21,23,.22)}
.tk-big{font:400 1.95rem/1.1 var(--fd);margin-bottom:6px}
.tk-empty p:not(.tk-big){color:var(--muted)}
.tk-sum{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:start;padding-bottom:18px;margin-bottom:8px;border-bottom:1px solid var(--lineL)}
.tk-dot{width:28px;height:28px;border-radius:50%;background:radial-gradient(circle at 32% 28%,rgba(255,255,255,.35),rgba(255,255,255,0) 46%),var(--look);box-shadow:0 8px 18px -6px var(--look);margin-top:3px}
.tk-svc{font:400 1.35rem/1.15 var(--fd)}
.tk-when{font-size:.92rem;color:var(--muted);margin-top:4px}
.tk-price{font:500 1rem/1.4 var(--fb);white-space:nowrap;font-variant-numeric:tabular-nums}
.tk-form label{display:block;font-size:.85rem;color:var(--muted);margin-top:14px}
.tk-form input{width:100%;min-height:46px;border:0;border-bottom:1px solid var(--ink);background:transparent;padding:6px 0;font-size:1.05rem;border-radius:0}
.tk-form input:focus-visible{outline:none;border-bottom:2px solid var(--ox)}
.tk-form input[aria-invalid="true"]{border-bottom-color:#A3192E}
.err{color:#9A1830;font-size:.85rem;margin-top:6px}
.tk-form .btn{margin-top:22px}
.tk-note{font-size:.82rem;color:var(--muted);margin-top:12px}
.tk-done p{margin-top:8px}
.tk-done .btn{margin-top:18px}
.demo-note{display:inline-block;background:var(--porc2);padding:6px 10px;font-size:.88rem}
.ticket.flash{animation:tkIn 340ms var(--ease-out)}
@keyframes tkIn{from{opacity:.4;transform:translateY(10px)}to{opacity:1;transform:none}}

/* ===== SERVICES (night) ===== */
.services{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(24px,5vw,80px);padding:clamp(64px,9vw,128px) var(--gut);background:var(--night);color:var(--porc)}
.sv-list h2{font-size:clamp(2.2rem,4.8vw,4.4rem);line-height:1;letter-spacing:-.028em;margin-bottom:clamp(20px,3vw,40px)}
.sv{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:'name price' 'desc book';gap:4px 24px;padding:clamp(22px,2.6vw,34px) 0;border-bottom:1px solid var(--lineD)}
.sv h3{grid-area:name;font-size:clamp(1.8rem,3.4vw,3rem);line-height:1.05;letter-spacing:-.02em;color:var(--dim);transition:color 400ms ease}
.sv.is-active h3{color:var(--porc);font-style:italic}
.sv .sv-price{grid-area:price;margin:0;align-self:end;font:500 1.05rem/1.3 var(--fb);font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right}
.sv-price small{display:block;font-weight:400;font-size:.85rem;color:var(--mutedD)}
.sv .sv-d{grid-area:desc;max-width:34rem;color:var(--mutedD);margin-top:6px}
.sv .sv-book{grid-area:book;align-self:end;justify-self:end;background:none;border:0;border-bottom:1px solid currentColor;padding:12px 0 2px;min-height:44px;cursor:pointer;font-size:.9rem;font-weight:500;color:var(--porc)}
.sv-media{position:sticky;top:calc(var(--hdr) + 24px);align-self:start}
.sv-frame{position:relative;aspect-ratio:4/5;max-height:calc(100svh - var(--hdr) - 48px);margin-left:auto;overflow:hidden;background:var(--night2);border-radius:2px}
.sv-frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.08);transition:opacity 700ms var(--ease-io),transform 1400ms var(--ease-out)}
.sv-frame img.is-on{opacity:1;transform:scale(1)}
.sv-frame::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(21,14,16,.35),rgba(21,14,16,0) 40%);pointer-events:none}

/* ===== HOUSE ===== */
.house{position:relative;padding:0 0 clamp(56px,8vw,112px);background:var(--night)}
.house-media{height:clamp(420px,82vh,820px);overflow:hidden}
.house-img{width:100%;height:118%;object-fit:cover;will-change:transform}
.glass-light{background:rgba(243,236,232,.74);-webkit-backdrop-filter:blur(20px) saturate(1.2);backdrop-filter:blur(20px) saturate(1.2);box-shadow:inset 0 1px 0 rgba(255,255,255,.6),0 30px 60px -30px rgba(0,0,0,.5)}
.house-txt{position:relative;margin:calc(clamp(160px,22vw,260px) * -1) var(--gut) 0 auto;max-width:36rem;padding:clamp(24px,3.2vw,44px);border-radius:3px;color:var(--ink);width:calc(100% - var(--gut) * 2)}
.house-txt h2{font-size:clamp(1.8rem,3.2vw,3rem);line-height:1.06;letter-spacing:-.02em}
.house-txt p{margin-top:16px;color:#3E3134;font-size:1.04rem}

/* ===== VOICES ===== */
.voices{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:24px clamp(32px,6vw,96px);padding:clamp(64px,9vw,120px) var(--gut);background:var(--porc)}
.vc-label{grid-column:1/-1;font:500 .9rem/1.4 var(--fb);color:var(--muted)}
.vc-main p{font:italic 400 clamp(1.9rem,3.8vw,3.5rem)/1.12 var(--fd);letter-spacing:-.015em;text-wrap:balance}
.vc-main p::before{content:"\201C"}
.vc-main p::after{content:"\201D"}
blockquote footer{margin-top:16px;font-size:.92rem;color:var(--muted);display:flex;align-items:center;gap:10px}
.tag{font-size:.75rem;border:1px solid var(--lineL);padding:2px 8px;border-radius:2px}
.vc-side{display:grid;gap:28px;align-content:start;padding-top:8px}
.vc-side p{font:400 1.22rem/1.4 var(--fd)}
.vc-side blockquote{padding-top:20px;border-top:1px solid var(--lineL)}
.vc-score{font-size:.88rem;color:var(--muted)}

/* ===== VISIT ===== */
.visit{padding:0 var(--gut) clamp(64px,9vw,120px);background:var(--porc)}
.visit h2{margin-bottom:clamp(24px,3vw,40px)}
.vs-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:0 32px;border-top:1px solid var(--ink);margin-bottom:32px}
.vs-grid div{padding:20px 0;border-bottom:1px solid var(--lineL)}
.vs-grid dt{font-size:.85rem;color:var(--muted)}
.vs-grid dd{font:400 1.3rem/1.3 var(--fd);margin-top:4px}

/* ===== FOOTER ===== */
.foot{position:relative;background:var(--night);color:#E2D5D2;padding:0 var(--gut) calc(92px + env(safe-area-inset-bottom));overflow:hidden}
.foot-mast{font:400 clamp(5rem,22vw,20rem)/.78 var(--fd);letter-spacing:-.045em;color:transparent;-webkit-text-stroke:1px rgba(243,236,232,.45);margin:0 0 28px -.04em;padding-top:.14em}
.foot p:not(.foot-mast){max-width:38rem;font-size:.92rem}
.foot a{display:inline-block;margin-top:14px;color:#fff;padding:10px 0;text-underline-offset:3px}

/* ===== REVEAL ===== */
@media (prefers-reduced-motion:no-preference){
  .js .rv{opacity:0;transform:translateY(22px);transition:opacity 800ms ease,transform 1000ms var(--ease-out)}
  .js .rv.in{opacity:1;transform:none}
}

/* ===== ASSISTANT ===== */
.ask-btn{position:fixed;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));z-index:30;min-height:52px;padding:0 22px;border:1px solid rgba(243,236,232,.28);border-radius:2px;background:rgba(21,14,16,.72);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);color:var(--porc);font:italic 400 1.15rem/1 var(--fd);cursor:pointer;transition:transform 160ms var(--ease-out),opacity 200ms ease}
.ask-btn:active{transform:scale(.97)}
.ask-btn[aria-expanded="true"]{opacity:0;pointer-events:none}
.ask[hidden]{display:none}
.ask{position:fixed;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));z-index:40;width:min(360px,calc(100vw - 32px));max-height:min(560px,calc(100svh - 120px));display:flex;flex-direction:column;background:var(--card);border-radius:3px;box-shadow:0 30px 60px -28px rgba(0,0,0,.55),0 0 0 1px rgba(31,21,23,.08);transform-origin:bottom right}
@media (prefers-reduced-motion:no-preference){.ask:not([hidden]){animation:askIn 240ms var(--ease-out)}}
@keyframes askIn{from{opacity:0;transform:scale(.96) translateY(6px)}to{opacity:1;transform:none}}
.ask-top{display:flex;justify-content:space-between;align-items:start;gap:12px;padding:16px 16px 14px 20px;border-bottom:1px solid var(--lineL)}
.ask-title{font:400 1.4rem/1.1 var(--fd)}
.ask-sub{font-size:.8rem;color:var(--muted);margin-top:4px}
.ask-x{width:44px;height:44px;border:0;background:none;font-size:1.6rem;line-height:1;cursor:pointer;margin:-8px -8px 0 0}
.ask-log{flex:1;overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:12px;overscroll-behavior:contain}
.msg{max-width:88%;font-size:.95rem;line-height:1.5}
.msg.me{align-self:flex-end;font:italic 400 1.05rem/1.35 var(--fd);text-align:right}
.msg.bot{align-self:flex-start;background:var(--porc2);padding:10px 14px}
.msg.typing{display:flex;gap:4px;padding:14px}
.msg.typing i{width:6px;height:6px;border-radius:50%;background:var(--muted);animation:dot 900ms infinite ease-in-out}
.msg.typing i:nth-child(2){animation-delay:150ms}.msg.typing i:nth-child(3){animation-delay:300ms}
@keyframes dot{0%,100%{opacity:.25}50%{opacity:1}}
.msg:not(.typing){animation:cardIn 260ms var(--ease-out)}
.ask-q{display:grid;gap:6px;padding:12px 16px 16px;border-top:1px solid var(--lineL)}
.ask-q button{min-height:44px;text-align:left;padding:8px 12px;border:1px solid var(--lineL);background:transparent;cursor:pointer;font-size:.92rem;border-radius:2px;transition:border-color 160ms ease,transform 160ms var(--ease-out)}
.ask-q button:active{transform:scale(.98)}
@media (hover:hover){.ask-q button:hover{border-color:var(--ink)}}

/* ===== RESPONSIVE ===== */
@media (max-width:1100px){.nav{gap:18px}.hero-in{max-width:min(34rem,50%)}}
@media (max-width:900px){
  .nav{display:none}
  .ag-head{grid-template-columns:1fr}
  .ag-body{grid-template-columns:1fr}
  .ticket{position:static}
  .services{grid-template-columns:1fr}
  .sv-media{order:-1;top:var(--hdr);z-index:5;background:var(--night);margin:0 calc(var(--gut) * -1);padding:8px var(--gut) 10px}
  .sv-frame{aspect-ratio:auto;height:30svh;max-height:none}
  .voices{grid-template-columns:1fr}
  .hero-media{width:72%}
  .hero-in{max-width:min(30rem,60%)}
}
@media (max-width:700px){
  :root{--hdr:56px;--F:clamp(4.6rem,25vw,7rem)}
  .ribbon{font-size:.72rem;gap:10px}
  .rb-l{display:none}.rb-s{display:inline}
  .top{gap:12px}
  .mini-brand{font-size:1.12rem}
  .mini-brand i{display:none}
  .hero{align-items:end;padding:0 var(--gut) calc(var(--F) * .5 + 30px);min-height:calc(100svh - var(--rib) - var(--hdr))}
  .hero-media{width:100%;bottom:auto;height:66%}
  .hero-media{-webkit-mask-image:linear-gradient(0deg,transparent 0%,rgba(0,0,0,.3) 34%,#000 72%);mask-image:linear-gradient(0deg,transparent 0%,rgba(0,0,0,.3) 34%,#000 72%);-webkit-mask-composite:source-over;mask-composite:add}
  .ask-btn{transition:transform 200ms var(--ease-out),opacity 200ms ease}
  .js body:not(.past-hero) .ask-btn{opacity:0;transform:translateY(10px);pointer-events:none}
  .lp{object-position:50% 22%}
  .glow{left:-30vmin;top:auto;bottom:10%;width:100vmin;height:100vmin}
  .hero-in{max-width:none;padding-top:30svh}
  .hero-k{display:none}
  .hero h1{font-size:1.85rem;margin-top:6px;text-shadow:0 2px 22px rgba(21,14,16,.75),0 1px 2px rgba(21,14,16,.5)}
  .hero-sub{display:none}
  .hero-svcs{flex-wrap:nowrap;overflow-x:auto;margin:12px calc(var(--gut) * -1) 0;padding:0 var(--gut);scrollbar-width:none}
  .hero-svcs::-webkit-scrollbar{display:none}
  .hs{min-height:40px;padding:10px 13px}
  .picker{margin-top:16px;padding:14px 14px 16px;max-width:none}
  .sw-dot{width:38px;height:38px}
  .sw-name{font-size:.74rem}
  .look-card{margin-top:10px;padding-top:10px}
  .look-name{font-size:1.4rem}
  .look-desc{display:none}
  #lookCta{margin-top:12px;min-height:48px}
  .agenda{padding-top:calc(var(--F) * .36 + 36px)}
  .week{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 calc(var(--gut) * -1);padding:0 var(--gut);border:0;gap:6px;scrollbar-width:none}
  .week::-webkit-scrollbar{display:none}
  .day{flex:0 0 76px;scroll-snap-align:start;border:1px solid var(--lineL)}
  .day+.day{border-left:1px solid var(--lineL)}
  .day-in{min-height:104px;padding:12px 10px}
  .slots{grid-template-columns:repeat(3,minmax(0,1fr))}
  .ticket{padding:20px}
  .sv-frame{height:26svh}
  .house-media{height:58svh}
  .house-txt{margin-top:-90px;width:auto;margin-left:var(--gut);margin-right:var(--gut)}
  .ask-btn{min-height:44px;padding:0 16px;font-size:1rem}
  .ask{left:8px;right:8px;bottom:8px;width:auto;max-height:calc(100svh - 80px)}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:1ms!important;animation-delay:0ms!important;transition-duration:1ms!important}
  .lp,.sv-frame img{transition:opacity 200ms ease!important}
}
