
:root{--bg:#FBF6F3;--ink:#262626;--mute:#7d7670;--line:#ddd2cb;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#1c1b1a;--ink:#f1eae4;--mute:#a1988f;--line:#38342f}}
:root[data-theme=dark]{--bg:#1c1b1a;--ink:#f1eae4;--mute:#a1988f;--line:#38342f}
*,*::before,*::after{box-sizing:inherit}
[hidden]{display:none!important}
html{scroll-padding-top:calc(env(safe-area-inset-top,0px) + 64px);scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:300 1rem/1.6 Jost,system-ui,sans-serif;-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);background:var(--bg);z-index:30}
h1,h2,h3{font-family:'Bodoni Moda',Georgia,serif;font-weight:400;margin:0;text-transform:lowercase}
a{color:inherit}
:focus-visible{outline:2px solid currentColor;outline-offset:3px}
nav{position:fixed;top:0;left:0;right:0;z-index:20;display:flex;align-items:center;gap:1.6rem;padding:calc(env(safe-area-inset-top,0px) + 14px) 5vw 14px;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(10px)}
.logo{font:400 1.4rem 'Bodoni Moda',serif;letter-spacing:.12em;text-decoration:none;margin-right:auto}
nav a.l{font-size:.9rem;text-decoration:none}
.btn{font:500 .85rem Jost,sans-serif;border:1px solid currentColor;background:none;color:inherit;border-radius:99px;padding:.7em 1.5em;cursor:pointer;text-decoration:none;display:inline-block}
.btn.f{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.hero{height:260vh;position:relative}
.stage{position:sticky;top:0;height:100svh;overflow:hidden;display:grid;place-items:center;text-align:center}
.mark{--ls:-.02em;font-size:clamp(4rem,22vw,20rem);line-height:1;letter-spacing:var(--ls);padding-left:var(--ls);text-transform:none;will-change:transform}
.sub{position:absolute;bottom:12vh;left:0;right:0;display:flex;flex-direction:column;align-items:center;gap:1.2rem;color:var(--mute)}
.curtain{position:absolute;inset:auto 0 0 0;background:var(--ink);color:var(--bg);display:flex;flex-direction:column;justify-content:flex-end;align-items:center;text-align:center;padding:clamp(2.2rem,5.5vw,3.4rem) 5vw;transform:translateY(100%);will-change:transform}
.curtain p{font:400 clamp(2rem,6.4vw,5.5rem)/1.08 'Bodoni Moda',serif;margin:0 0 2rem;max-width:16em}
section{padding:clamp(5rem,12vw,10rem) 5vw}
.wrap{max-width:1100px;margin:0 auto}
h2{font-size:clamp(2.6rem,7vw,5.5rem);line-height:1}
.t{overflow:hidden;padding-bottom:.12em}
.js .t>span{display:block;transform:translateY(110%);transition:transform 1s cubic-bezier(.2,.7,.2,1)}
.js .t.in>span{transform:none}
.note{color:var(--mute);margin:1rem 0 0}
.menu{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:3.5rem 6vw;margin-top:4rem}
.menu h3{font-size:2rem;margin-bottom:1rem}
.row{display:flex;align-items:baseline;gap:.8rem;width:100%;padding:.8rem 0;background:none;border:0;border-bottom:1px solid var(--line);color:inherit;font:inherit;text-align:left;cursor:pointer;transition:padding .25s}
.row:hover{padding-left:.6rem}
.row i{flex:1}
.row b{font-weight:500;white-space:nowrap}
#book{background:var(--ink);color:var(--bg)}
#book .note{color:inherit;opacity:.7}
.form{display:grid;gap:1.6rem;margin-top:3rem;max-width:620px}
label{display:grid;gap:.4rem;font-size:.9rem}
input,select,textarea{font:inherit;color:inherit;background:none;border:0;border-bottom:1px solid currentColor;padding:.6rem 0;border-radius:0;width:100%}
select option{background:var(--ink);color:var(--bg)}
.slots{display:flex;flex-wrap:wrap;gap:.6rem}
.slot{font:inherit;color:inherit;background:none;border:1px solid currentColor;border-radius:99px;padding:.5em 1.1em;cursor:pointer}
.slot[aria-pressed=true]{background:var(--bg);color:var(--ink)}
.slot:disabled{opacity:.3;text-decoration:line-through;cursor:not-allowed}
#book .btn.f{background:var(--bg);color:var(--ink);border-color:var(--bg);justify-self:start}
.chk{display:flex;gap:.7rem;align-items:flex-start}
.chk input{width:auto;margin-top:.35rem}
.sum{font:400 1.4rem/1.3 'Bodoni Moda',serif}
.msg{min-height:1.4em;margin:0}
.ok{max-width:620px;margin-top:3rem}
.ok h3{font-size:2.6rem;margin-bottom:1rem}
.pol{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:2.2rem 2rem;margin-top:4rem}
.pol h3{font:500 1rem Jost,sans-serif;text-transform:none;margin-bottom:.7rem}
.pol p{margin:0;background:var(--ink);color:var(--bg);border-radius:28px;padding:1.5rem 1.7rem}
.find{font:400 clamp(1.6rem,4vw,3rem)/1.2 'Bodoni Moda',serif;margin:2rem 0 0}
footer{padding:2rem 5vw;display:flex;gap:2rem;flex-wrap:wrap;color:var(--mute);font-size:.85rem}
#studio{border-top:1px solid var(--line)}
.stats{display:flex;gap:3rem;margin:2rem 0 1rem;flex-wrap:wrap;color:var(--mute)}
.stats b{font:400 3rem/1 'Bodoni Moda',serif;display:block;color:var(--ink)}
.tabs{display:flex;gap:.6rem;margin:1.5rem 0}
.tabs .btn[aria-pressed=true]{background:var(--ink);color:var(--bg)}
.bk{display:grid;grid-template-columns:1.1fr 1.3fr auto;gap:1rem 2rem;padding:1.3rem 0;border-bottom:1px solid var(--line);align-items:start}
.bk small{display:block;color:var(--mute)}
.acts{display:flex;gap:.4rem;flex-wrap:wrap}
.acts .btn{padding:.4em 1em;font-size:.8rem}
.st{font-size:.8rem;border:1px solid var(--line);border-radius:99px;padding:.1em .8em;margin-left:.5rem}
@media(max-width:760px){.bk{grid-template-columns:1fr}}
@media(max-width:640px){nav a.l{display:none}}

body{animation:fi .9s ease both}@keyframes fi{from{opacity:0}}
body.out{opacity:0;transition:opacity .45s ease}
.js .rv{opacity:var(--p,0);transform:translateY(calc((1 - var(--p,0))*60px)) scale(calc(.96 + var(--p,0)*.04));filter:blur(calc((1 - var(--p,0))*10px));transition:opacity 1.2s cubic-bezier(.2,.7,.2,1),transform 1.2s cubic-bezier(.2,.7,.2,1),filter 1.2s cubic-bezier(.2,.7,.2,1);transition-delay:var(--d,0s)}
.btn{transition:box-shadow .5s,background .5s,color .5s}
.btn:hover{box-shadow:0 0 28px color-mix(in srgb,currentColor 35%,transparent)}
.pg{padding-top:calc(env(safe-area-inset-top,0px) + 9rem)}
#book{min-height:100svh}
.ph{font-size:clamp(3rem,9vw,7rem);line-height:1;text-transform:lowercase}
.tz{border-top:1px solid var(--line);display:grid;grid-template-columns:1fr auto;gap:1.2rem 3rem;align-items:end;padding:clamp(2.5rem,7vw,5rem) 0}
.tz h2{font-size:clamp(2.2rem,6vw,4.5rem)}
.tz .note{max-width:34em}
.pks{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:1rem;margin-top:1.4rem}
.pk{font:400 clamp(1.3rem,3vw,2rem) 'Bodoni Moda',serif;text-transform:lowercase;background:none;border:1px solid var(--line);border-radius:28px;padding:1.2rem 1.6rem;color:inherit;cursor:pointer;text-align:left;transition:background .6s,color .6s,border-color .6s,box-shadow .6s}
.pk:hover{box-shadow:0 0 30px color-mix(in srgb,var(--ink) 18%,transparent)}
.pk[aria-pressed=true]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.big{font:400 clamp(5rem,16vw,11rem)/1 'Bodoni Moda',serif;margin-top:3.5rem}
.big small{font-size:.2em}
.cal{max-width:420px}
.ch{display:flex;justify-content:space-between;align-items:center;margin-bottom:.8rem;font:400 1.5rem 'Bodoni Moda',serif;text-transform:lowercase}
.cg{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}
.cg span{font-size:.75rem;opacity:.6;padding:.3rem 0}
.cd{aspect-ratio:1;border:0;border-radius:50%;background:none;color:inherit;font:inherit;cursor:pointer;transition:background .5s,color .5s}
.cd:hover:not(:disabled){background:color-mix(in srgb,var(--bg) 18%,transparent)}
.cd[aria-pressed=true]{background:var(--bg);color:var(--ink)}
.cd:disabled{opacity:.25;cursor:default}
.cn{background:none;border:1px solid currentColor;color:inherit;border-radius:50%;width:2.4rem;height:2.4rem;cursor:pointer}
.cn:disabled{opacity:.25}
.srch{max-width:320px;margin:0 0 1rem}
.pn{margin-top:3rem;border:1px solid var(--line);border-radius:28px;padding:1.5rem 1.7rem;max-width:620px}
@media(max-width:640px){.tz{grid-template-columns:1fr}}

.js .pk.rv{transition:opacity .9s ease-out var(--d,0s),transform .9s ease-out var(--d,0s),filter .9s ease-out var(--d,0s),background .6s,color .6s,border-color .6s,box-shadow .6s}
.pv{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 12px);transform:translateX(-50%);background:var(--ink);color:var(--bg);font-size:.75rem;padding:.4em 1em;border-radius:99px;z-index:25;opacity:.85;pointer-events:none;white-space:nowrap}

footer .btn{margin-left:auto;padding:.4em 1.2em;font-size:.8rem;color:var(--ink)}

.gal{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:2.5rem}
.gal figure{margin:0;overflow:hidden;border-radius:28px;aspect-ratio:3/4;background:var(--line)}
.gal figure:nth-child(even){margin-top:3rem}
.gal img{width:100%;height:100%;object-fit:cover;display:block;transform:scale(calc(1.2 - var(--p,0)*.2))}
@media(max-width:760px){.gal{grid-template-columns:repeat(2,1fr)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.js .rv{transform:none;filter:none}.gal img{transform:none}}

@font-face{font-family:'Brown Sugar';src:url(/fonts/BrownSugar.woff2) format('woff2');font-display:swap}
@font-face{font-family:'Brittany Signature';src:url(/fonts/BrittanySignature.woff) format('woff');font-display:swap}
@font-face{font-family:'Glacial Indifference';src:local('Glacial Indifference'),url(/fonts/GlacialIndifference-Regular.woff2) format('woff2'),url(/fonts/GlacialIndifference-Regular.otf) format('opentype');font-weight:400;font-display:swap}
@font-face{font-family:'Glacial Indifference';src:local('Glacial Indifference Bold'),url(/fonts/GlacialIndifference-Bold.woff2) format('woff2'),url(/fonts/GlacialIndifference-Bold.otf) format('opentype');font-weight:700;font-display:swap}
:root{--ft:'Brown Sugar',Georgia,serif;--fs:'Brittany Signature',Georgia,serif;--fx:'Glacial Indifference',Jost,system-ui,sans-serif}
body,.btn,.slot,input,select,textarea,.pk,.sum,.big,.stats b,.ch,footer{font-family:var(--fx)}
h1,h2,.logo,.mark,.curtain p,.find,.ok h3{font-family:var(--ft);font-synthesis:none}
h3,.pol h3,.sub span{font-family:var(--fs);font-synthesis:none;text-transform:none;font-weight:400}
.pol h3{font-size:1.9rem}
.sub span{font-size:1.9rem}
.logo{letter-spacing:.04em}
.curtain p{font-family:var(--fs);font-size:clamp(1.6rem,4.2vw,3rem);line-height:1.75;margin:0 0 1.4rem;max-width:20em}
.find{font-family:var(--fx)}

.gal figure:hover img{scale:1.06}
.gal img{transition:scale .9s cubic-bezier(.2,.7,.2,1)}
.g3{position:relative;margin-top:2rem;overflow:clip;padding:1.5rem 0 2.4rem}
.gbg{position:absolute;inset:0;z-index:0;overflow:hidden;display:grid;place-items:center;background:radial-gradient(68% 78% at 50% 42%,color-mix(in srgb,var(--tint,transparent) 46%,transparent),transparent 70%);transition:background .9s ease}
.gbg img{position:absolute;width:260px;height:340px;object-fit:cover;filter:blur(8px) saturate(1.45);transform:scale(7);opacity:0;transition:opacity 1.2s ease;will-change:opacity}
.gbg img.on{opacity:.55}
.g3::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(var(--bg),transparent 22%,transparent 78%,var(--bg))}
.gt{position:relative;z-index:2;display:flex;gap:1.6rem;overflow-x:auto;scroll-snap-type:x mandatory;perspective:1100px;padding:3rem calc(50% - min(36vw,190px));scrollbar-width:none;cursor:grab}
.gt::-webkit-scrollbar{display:none}
.gt.drag{scroll-snap-type:none;cursor:grabbing}
.gt.nosnap{scroll-snap-type:none}
.gc{flex:0 0 min(72vw,380px);aspect-ratio:3/4;scroll-snap-align:center;border:0;padding:0;background:none;border-radius:28px;cursor:inherit;will-change:transform}
.gi{display:block;position:relative;width:100%;height:100%;border-radius:28px;overflow:hidden;box-shadow:0 30px 70px rgba(0,0,0,.28);transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .3s ease}
.gi img{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none;-webkit-user-drag:none}
.gl{position:absolute;inset:0;background:radial-gradient(circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.45),transparent 55%);mix-blend-mode:soft-light;opacity:0;transition:opacity .3s;pointer-events:none}
.gc.act:hover .gl{opacity:1}
.gui{position:relative;z-index:3;display:flex;justify-content:center;align-items:center;gap:1.4rem}
.gui .cn{background:color-mix(in srgb,var(--bg) 60%,transparent);backdrop-filter:blur(6px)}
.gn{font:400 1.7rem/1 var(--ft);min-width:5.5rem;text-align:center}
.gcap{position:relative;z-index:3;text-align:center;font:400 2.3rem/1.9 var(--fs);margin:.4rem 0 0;padding:0 5vw .5rem;min-height:4.4rem;overflow:visible}
.gcur{position:fixed;left:0;top:0;margin:-34px 0 0 -34px;width:68px;height:68px;border-radius:50%;background:var(--ink);color:var(--bg);display:grid;place-items:center;font:.8rem var(--fx);pointer-events:none;opacity:0;transition:opacity .3s;z-index:35}
.gcur.on{opacity:1}
@media(hover:none){.gcur{display:none}}
.lb{position:fixed;inset:0;z-index:40;background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(18px);display:grid;place-items:center;opacity:0;transition:opacity .5s;touch-action:pan-y}
.lb.on{opacity:1}
.lb img{max-width:min(92vw,560px);max-height:80svh;border-radius:24px;box-shadow:0 30px 80px rgba(0,0,0,.35);transform:scale(.92);transition:transform .6s cubic-bezier(.2,.7,.2,1),opacity .2s}
.lb.on img{transform:none}
.lb .cn{position:absolute;background:var(--bg)}
.lbx{top:calc(env(safe-area-inset-top,0px) + 14px);right:5vw}
.lbp{left:3vw;top:50%}.lbn{right:3vw;top:50%}

.hbg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 58%;transform:scale(1.12);will-change:transform}
.hsh{position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,16,15,.9) 0%,rgba(18,16,15,.6) 28%,rgba(18,16,15,.45) 58%,rgba(18,16,15,.75) 100%)}
.hero .mark{position:relative;z-index:2;color:#FBF6F3;text-shadow:0 4px 50px rgba(0,0,0,.4)}
.hero .sub{z-index:2;color:rgba(251,246,243,.88)}
.hero .curtain{z-index:3}
#book .ok{background:var(--bg);color:var(--ink);border-radius:32px;padding:clamp(2rem,7vw,3.5rem) clamp(1.4rem,6vw,3rem);text-align:center;max-width:560px;margin:1.5rem auto 0;box-shadow:0 0 0 1px color-mix(in srgb,var(--bg) 40%,transparent),0 0 90px color-mix(in srgb,var(--bg) 28%,transparent)}
.ok h2{font-size:clamp(2.8rem,11vw,4.6rem);line-height:1;margin:1rem 0 .4rem}
.thx{font:400 2.3rem/1.2 var(--fs);margin:0 0 1.2rem}
.oks{margin:0 0 1.5rem;padding:1.1rem 0;border-block:1px solid var(--line);line-height:1.8}
#book .ok .btn.f{background:var(--ink);color:var(--bg);border-color:var(--ink);justify-self:auto}
#book .ok .note{color:var(--mute);opacity:1}
.tick{width:76px;height:76px;fill:none;stroke:var(--ink);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 14px color-mix(in srgb,var(--ink) 25%,transparent))}
.tick circle{stroke-dasharray:151;stroke-dashoffset:151;animation:dr .9s ease forwards}
.tick path{stroke-dasharray:40;stroke-dashoffset:40;animation:dr .5s .7s ease forwards}
@keyframes dr{to{stroke-dashoffset:0}}

/* gallery: tighter */
.gx{padding-top:calc(env(safe-area-inset-top,0px) + 6.5rem);padding-bottom:clamp(2rem,5vw,3.5rem)}
.gx .g3{margin-top:.8rem;padding:.4rem 0 0}
.gx .gt{padding-top:1.8rem;padding-bottom:1.8rem}
.gx .gcap{margin-top:0;min-height:4.4rem}
.gx .gui{gap:1.2rem}
.gx .wrap p.rv[style]{margin-top:1.4rem!important}
