@font-face{font-family:"Gambetta";src:url("../fonts/Gambetta-Medium.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Gambetta";src:url("../fonts/Gambetta-Regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
:root{--ink:#0E0B0A;--ink2:#171210;--paper:#F3ECE4;--paper2:#EADFD2;--muted:#BFB2A6;--rose:#E2647E;--wine:#6E1A2E;--saff:#E9A23B;--line:#2C221F;--g:clamp(1.25rem,5vw,3rem);--fd:"Gambetta",Georgia,serif;--fb:"Supreme",system-ui,sans-serif;--e:cubic-bezier(.2,.7,.1,1)}
*,*::before,*::after{box-sizing:border-box}
html{background:var(--ink);overflow-x:clip;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ink);color:var(--paper);font:400 17px/1.6 var(--fb);-webkit-font-smoothing:antialiased;overflow-x:clip}
@media(min-width:900px){body{font-size:18px}}
img{display:block;max-width:100%;height:auto}picture{display:block}
h1,h2,h3,p,figure,ul,ol{margin:0}ul,ol{padding:0;list-style:none}a{color:inherit}button{font:inherit;color:inherit}
h1,h2,h3{font-family:var(--fd);font-weight:500;letter-spacing:-.015em;line-height:1.04;text-wrap:balance}
html[data-lang=en] .l-ms{display:none!important}html[data-lang=ms] .l-en{display:none!important}
:focus-visible{outline:2px solid var(--rose);outline-offset:3px}
.skip{position:absolute;left:-9999px}.skip:focus{left:1rem;top:1rem;z-index:300;background:var(--rose);color:var(--ink);padding:.6rem 1rem;border-radius:99px}
.chk{display:inline-block;vertical-align:middle;margin-left:.3em;padding:.12em .55em;border:1px dashed currentColor;border-radius:99px;font:500 .72rem/1.3 var(--fb);letter-spacing:0;opacity:.7;white-space:nowrap}
/* header */
.hdr{position:fixed;inset:0 0 auto;z-index:100;display:flex;align-items:center;gap:1rem;height:64px;padding:0 var(--g);background:linear-gradient(var(--ink),rgba(14,11,10,0));transition:background .3s}
.hdr.solid{background:rgba(14,11,10,.92);backdrop-filter:blur(8px)}
.mark{margin-right:auto;text-decoration:none;display:inline-flex;align-items:baseline;gap:.35rem}.mark b{font:500 1.3rem/1 var(--fd);letter-spacing:.02em}.mark span{font-size:.85rem;color:var(--rose)}
.hdr nav{display:none;gap:1.8rem}.hdr nav a{text-decoration:none;font-size:.95rem}.hdr nav a:hover{color:var(--rose)}
@media(min-width:900px){.hdr nav{display:flex}}
.lang{display:flex;border:1px solid #4a3c36;border-radius:99px;padding:2px}.lang button{border:0;background:none;padding:.35rem .7rem;min-height:36px;border-radius:99px;cursor:pointer;font-size:.85rem}.lang button[aria-pressed=true]{background:var(--paper);color:var(--ink)}
/* buttons */
.btn{display:inline-flex;align-items:center;gap:.6rem;min-height:52px;padding:.8rem 1.4rem;border-radius:99px;background:var(--rose);color:var(--ink);font-weight:500;text-decoration:none;transition:transform .25s var(--e),background .2s}.btn:hover{background:#ee7d93}.btn:active{transform:scale(.97)}.btn svg,.ghost svg,.pkg-link svg,.maplink svg,.wa-link svg{width:18px;height:18px;transition:transform .25s var(--e)}.btn:hover svg{transform:translateX(4px)}
.btn--ink{background:var(--ink);color:var(--paper)}.btn--ink:hover{background:#2a201c}
.ghost{display:inline-flex;align-items:center;min-height:52px;padding:0 .4rem;text-decoration:underline;text-underline-offset:.25em;text-decoration-thickness:1px}
/* hero */
.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;padding:0 var(--g) 3.2rem;overflow:hidden}
.hero-media{position:absolute;inset:0;z-index:0}.hero-media picture,.hero-media img{width:100%;height:100%}.hero-media img{object-fit:cover;object-position:50% 18%;transform:scale(calc(1.06 + var(--hp,0)*.12)) translateY(calc(var(--hp,0)*-4%));transform-origin:50% 30%}
.hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,11,10,.15) 0%,rgba(14,11,10,0) 30%,rgba(14,11,10,.7) 62%,var(--ink) 92%)}
@media(min-width:900px){.hero-media img{object-position:78% 30%}.hero-media::after{background:linear-gradient(90deg,var(--ink) 0%,rgba(14,11,10,.75) 38%,rgba(14,11,10,0) 70%),linear-gradient(0deg,var(--ink),rgba(14,11,10,0) 30%)}.hero{justify-content:center;padding-bottom:0}}
.hero-copy{position:relative;z-index:2;max-width:1100px}
.kick{font-size:.95rem;color:var(--muted);margin-bottom:1rem}
h1{font-size:clamp(3.1rem,14.2vw,9rem);line-height:.98;letter-spacing:-.02em}
h1 .l1,h1 .l2{display:block}h1 .l2{color:var(--rose);font-weight:400;font-size:.62em;margin-top:.15em;letter-spacing:-.015em}
.w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}.w>span{display:inline-block}
html.js:not(.rm) h1 .l1 .w>span{transform:translateY(105%);animation:wup 1s var(--e) forwards;animation-delay:calc(.1s + var(--wi,0)*.09s)}
html.js:not(.rm) h1 .l2 .w>span{transform:translateY(105%) rotate(4deg);transition:transform .9s var(--e);transition-delay:calc(var(--wi,0)*.07s)}
html.js:not(.rm) .hero.l2on h1 .l2 .w>span{transform:none}
@keyframes wup{to{transform:none}}
.sub{margin-top:1.3rem;max-width:34ch;color:var(--paper);opacity:.85}
.acts{display:flex;flex-wrap:wrap;gap:.6rem 1.2rem;margin-top:1.6rem;align-items:center}
html.js:not(.rm) .kick,html.js:not(.rm) .sub,html.js:not(.rm) .acts{opacity:0;animation:fin .9s var(--e) forwards}html.js:not(.rm) .sub{animation-delay:.55s}html.js:not(.rm) .acts{animation-delay:.7s}
@keyframes fin{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.scrollcue{position:absolute;right:var(--g);bottom:2rem;width:1px;height:56px;background:#4a3c36;z-index:2}.scrollcue i{position:absolute;top:0;left:-1px;width:3px;height:16px;background:var(--rose);animation:cue 1.8s var(--e) infinite}@keyframes cue{to{transform:translateY(40px);opacity:0}}
/* marquee */
.marquee{overflow:hidden;border-block:1px solid var(--line);padding:1.1rem 0;white-space:nowrap}
.mq-track{display:inline-flex;gap:1.4rem;font:400 clamp(1.6rem,6vw,3rem)/1 var(--fd);letter-spacing:-.01em;transform:translateX(var(--mx,0px));will-change:transform}.mq-track b{color:var(--rose);font-weight:400}
/* shutter */
.shutter{position:relative;height:420vh}
.stage{position:sticky;top:0;height:100svh;overflow:hidden;display:grid;place-items:center;background:var(--ink)}
.viewfinder{position:absolute;inset:max(76px,9vh) var(--g) 9vh;z-index:6;pointer-events:none;opacity:calc(1 - var(--vf,0))}
.viewfinder .c{position:absolute;width:28px;height:28px;border:0 solid var(--paper)}.c.tl{left:0;top:0;border-width:2px 0 0 2px}.c.tr{right:0;top:0;border-width:2px 2px 0 0}.c.bl{left:0;bottom:0;border-width:0 0 2px 2px}.c.br{right:0;bottom:0;border-width:0 2px 2px 0}
.rec{position:absolute;left:38px;top:4px;font-size:.78rem;letter-spacing:.08em;display:flex;align-items:center;gap:.4rem}.rec b{width:8px;height:8px;border-radius:50%;background:#ff4d5e;animation:blink 1s steps(2) infinite}@keyframes blink{50%{opacity:0}}
.smile,.after{position:absolute;z-index:7;font:500 clamp(4rem,22vw,14rem)/1 var(--fd);letter-spacing:-.02em;text-align:center;padding:0 var(--g)}
.smile{opacity:var(--so,0);transform:scale(var(--ss,1.2));filter:blur(var(--sb,0px))}
.after{font-size:clamp(2.4rem,10vw,6.5rem);max-width:12ch;bottom:12vh;opacity:var(--ao,0);transform:translateY(var(--ay,30px));text-shadow:0 4px 40px rgba(0,0,0,.6)}
.count{position:absolute;z-index:7;font:400 clamp(7rem,40vw,22rem)/1 var(--fd);color:var(--rose)}.count span{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(var(--cs,1.4));opacity:0}
.reveal-img{position:absolute;inset:0;z-index:1;transform:scale(var(--rs,1.25));filter:saturate(var(--rsat,0)) brightness(var(--rbr,.4))}.reveal-img picture,.reveal-img img{width:100%;height:100%}.reveal-img img{object-fit:cover;object-position:50% 30%}
.iris{position:absolute;inset:-10%;width:120%;height:120%;z-index:3;pointer-events:none}
.blade{fill:#151010;stroke:#3a2c28;stroke-width:1.2}
.blades{transform:rotate(var(--ir,0deg))}
.blade{transform-box:view-box}
.flash{position:absolute;inset:0;z-index:8;background:#fffaf2;opacity:var(--fo,0);pointer-events:none}
.cap{position:absolute;z-index:9;width:min(46vw,360px);left:50%;top:50%;opacity:var(--co,0);transform:translate(-50%,-50%) translate(var(--cx,0px),var(--cy,0px)) rotate(var(--cr,0deg)) scale(var(--csc,1));filter:drop-shadow(0 24px 30px rgba(0,0,0,.55));will-change:transform}
/* gallery */
.gallery{padding:5rem var(--g) 6rem}
.gal-head{max-width:900px;margin-bottom:2.4rem}.gal-head h2{font-size:clamp(2.4rem,9vw,5rem)}.note{margin-top:1rem;color:var(--muted);max-width:44ch}
.tiles{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}.tile{overflow:hidden;border-radius:4px}.tile img{width:100%;height:100%;object-fit:cover;transform:scale(1.15) translateY(var(--ty,0px));transition:transform .1s linear}
.t0{grid-column:1/-1;aspect-ratio:4/3}.t1,.t3{aspect-ratio:3/4}.t2{grid-column:1/-1;aspect-ratio:16/10}
@media(min-width:900px){.tiles{grid-template-columns:repeat(12,1fr);gap:1rem}.t0{grid-column:1/8;aspect-ratio:4/3}.t1{grid-column:8/13;margin-top:8rem}.t2{grid-column:2/9}.t3{grid-column:9/13;margin-top:-6rem}}
html.js:not(.rm) .tile{clip-path:inset(18% 10% 18% 10% round 6px);opacity:.3;transition:clip-path 1.2s var(--e),opacity 1s}html.js:not(.rm) .tile.in{clip-path:inset(0 0 0 0 round 4px);opacity:1}
/* film */
.film{position:relative;height:340vh;background:#090706}
.film-stage{position:sticky;top:0;height:100svh;overflow:hidden;display:flex;flex-direction:column;justify-content:center}
.film-n{position:absolute;top:84px;left:var(--g);font:400 clamp(1.1rem,4vw,1.6rem) var(--fd);color:var(--muted)}.film-n .cur{color:var(--paper);font-size:2.2em;letter-spacing:-.02em}
.strip{position:relative;padding:34px 0;background:#1a1311;border-block:1px solid #2e221f}
.strip::before,.strip::after{content:"";position:absolute;left:0;right:0;height:14px;background:repeating-linear-gradient(90deg,transparent 0 10px,#e9dccb 10px 24px,transparent 24px 36px);opacity:.75;transform:translateX(var(--sp,0px))}
.strip::before{top:10px}.strip::after{bottom:10px}
.track{display:flex;gap:18px;padding-left:var(--g);transform:translateX(var(--tx,0px));will-change:transform}
.frame{flex:0 0 min(74vw,440px)}.frame-media{aspect-ratio:3/4;overflow:hidden;background:#000}.frame-media img{width:100%;height:100%;object-fit:cover;filter:grayscale(var(--gs,1)) sepia(var(--sep,.6)) brightness(var(--br,.45)) contrast(1.05);transform:scale(var(--fs,1.12))}
.frame figcaption{margin-top:.9rem;font:400 clamp(1.3rem,5vw,1.8rem)/1.2 var(--fd);letter-spacing:-.01em;display:flex;gap:.7rem;align-items:baseline}.fno{font:500 .85rem var(--fb);color:var(--rose)}
.film-bar{position:absolute;left:var(--g);right:var(--g);bottom:9vh;height:2px;background:#2e221f}.film-bar i{display:block;height:100%;background:var(--rose);transform-origin:left;transform:scaleX(var(--fp,0))}
/* season */
.season{position:relative;overflow:hidden;background:var(--rose);color:var(--ink);padding:6rem var(--g) 7rem}
.ribbon{font:400 clamp(4rem,18vw,12rem)/1 var(--fd);letter-spacing:-.02em;white-space:nowrap;color:#c94a64;transform:translateX(var(--rx,0px));margin-bottom:2rem}
.season-in{position:relative;z-index:2;max-width:860px}.season h2{font-size:clamp(2.6rem,10.5vw,6rem)}.season p{margin:1.4rem 0 2rem;max-width:40ch;font-size:1.1rem}
.cap2{position:absolute;right:-30px;bottom:-20px;width:min(48vw,320px);transform:rotate(var(--c2r,-18deg)) translateY(var(--c2y,0px));opacity:.95}
/* packages */
.pkgs{background:var(--paper);color:var(--ink);padding:6rem var(--g)}
.pk-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:1rem;margin-bottom:2.6rem}.pk-head h2{font-size:clamp(2.6rem,10vw,5.4rem);max-width:10ch}.pk-head p{color:#6b5a50}
.pk-grid{display:grid;gap:1rem}@media(min-width:900px){.pk-grid{grid-template-columns:repeat(3,1fr)}}
.pkg{position:relative;padding:1.8rem 1.6rem 1.6rem;border:1px solid #d8c9b8;border-radius:6px;background:#F8F3EC}
.pkg:nth-child(2){background:var(--ink);color:var(--paper);border-color:var(--ink)}
.pkg-top{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}.pkg h3{font-size:1.9rem}.price{font:500 2rem/1 var(--fd);letter-spacing:-.01em;text-align:right}.price small{display:block;font:500 .78rem var(--fb);opacity:.65}
.hook{margin:.6rem 0 1.2rem;color:var(--wine);font-weight:500}.pkg:nth-child(2) .hook{color:var(--rose)}
.pkg li{padding:.55rem 0;border-top:1px solid rgba(120,100,90,.25)}.deliv{margin:1rem 0 .4rem;font-size:.95rem;opacity:.8}
.pkg-link{display:inline-flex;align-items:center;gap:.4rem;min-height:44px;font-weight:500;text-underline-offset:.22em}
html.js:not(.rm) .pkg{opacity:0;transform:translateY(60px) rotate(calc((var(--k) - 1)*2.5deg));transition:transform 1s var(--e),opacity .8s;transition-delay:calc(var(--k)*.12s)}html.js:not(.rm) .pkg.in{opacity:1;transform:none}
/* studio */
.studio{position:relative;min-height:90svh;display:flex;align-items:flex-end;overflow:hidden}
.studio-media{position:absolute;inset:-10% 0;transform:translateY(var(--py,0px))}.studio-media picture,.studio-media img{width:100%;height:100%}.studio-media img{object-fit:cover}
.studio::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,var(--ink) 5%,rgba(14,11,10,0) 60%)}
.studio-copy{position:relative;z-index:2;padding:0 var(--g) 4rem;max-width:900px}.studio h2{font-size:clamp(2.4rem,9.5vw,5.4rem)}.studio p{margin-top:1rem;max-width:36ch;opacity:.85}
/* branches */
.branches{padding:6rem var(--g) 4rem}.branches h2,.steps h2,.faq h2{font-size:clamp(2.4rem,9vw,4.6rem);margin-bottom:2rem}
.br-grid{display:grid;gap:1px;background:var(--line);border-block:1px solid var(--line)}@media(min-width:900px){.br-grid{grid-template-columns:1fr 1fr}}
.br{background:var(--ink);padding:2rem 0}@media(min-width:900px){.br{padding:2.4rem 2rem 2.4rem 0}}.br h3{font-size:clamp(3rem,13vw,6rem);letter-spacing:-.02em}.br p{margin:.4rem 0 1rem;color:var(--muted)}
.maplink{display:inline-flex;align-items:center;gap:.4rem;min-height:44px;text-underline-offset:.22em}.hours{margin-top:1.4rem;color:var(--muted)}
/* steps */
.steps{padding:4rem var(--g) 6rem}.sl{position:relative;padding-left:3.6rem;display:grid;gap:2.4rem;max-width:760px}
.sline{position:absolute;left:1.15rem;top:.6rem;bottom:.6rem;width:1px;background:var(--line)}.sline::after{content:"";position:absolute;inset:0;background:var(--rose);transform-origin:top;transform:scaleY(var(--slp,0))}
.step{position:relative}.snum{position:absolute;left:-3.6rem;top:-.35rem;width:2.3rem;height:2.3rem;display:grid;place-items:center;border-radius:50%;background:var(--ink);border:1px solid #4a3c36;font:500 1.15rem var(--fd);transition:background .4s,color .4s,border-color .4s}.step.on .snum{background:var(--rose);color:var(--ink);border-color:var(--rose)}.step p{font-size:1.15rem}
/* faq */
.faq{padding:4rem var(--g) 6rem;max-width:900px}
details{border-top:1px solid var(--line)}details:last-child{border-bottom:1px solid var(--line)}
summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:1rem;align-items:center;min-height:64px;padding:.9rem 0;font:500 1.25rem/1.3 var(--fd);letter-spacing:-.01em}summary::-webkit-details-marker{display:none}
summary i{position:relative;flex:none;width:16px;height:16px}summary i::before,summary i::after{content:"";position:absolute;left:0;top:7px;width:16px;height:1.5px;background:var(--rose);transition:transform .3s var(--e)}summary i::after{transform:rotate(90deg)}details[open] summary i::after{transform:none}
details p{padding:0 0 1.3rem;color:var(--muted);max-width:56ch}
/* final */
.final{padding:7rem var(--g);background:var(--wine);text-align:left}.final-t{font-size:clamp(2.8rem,12vw,7rem);max-width:11ch;margin-bottom:2rem}
.ftr{padding:3rem var(--g) 7rem;display:grid;gap:.6rem;color:var(--muted);font-size:.95rem}.ftr .mark{color:var(--paper)}.badge{display:inline-block;padding:.1rem .55rem;border:1px solid currentColor;border-radius:99px;font-size:.78rem}
.wa-bar{position:fixed;left:0;right:0;bottom:0;z-index:90;padding:.55rem 88px .6rem var(--g);background:rgba(14,11,10,.94);border-top:1px solid var(--line);transform:translateY(110%);transition:transform .35s var(--e)}.wa-bar.show{transform:none}
.wa-link{display:flex;justify-content:center;align-items:center;gap:.5rem;min-height:46px;border-radius:99px;background:var(--rose);color:var(--ink);text-decoration:none;font-weight:500}
@media(min-width:720px){.wa-bar{display:none}}
/* reduced motion / no js */
html.rm .shutter,html:not(.js) .shutter{height:auto}
html.rm .stage,html:not(.js) .stage{position:relative;height:auto;min-height:70svh}
html.rm .iris,html.rm .flash,html.rm .count,html.rm .smile,html.rm .viewfinder,html:not(.js) .iris,html:not(.js) .flash,html:not(.js) .count,html:not(.js) .smile{display:none}
html.rm .reveal-img,html:not(.js) .reveal-img{transform:none;filter:none}html.rm .after,html:not(.js) .after{opacity:1;transform:none}html.rm .cap,html:not(.js) .cap{display:none}
html.rm .film,html:not(.js) .film{height:auto}html.rm .film-stage,html:not(.js) .film-stage{position:relative;height:auto;padding:6rem 0}
html.rm .strip,html:not(.js) .strip{overflow-x:auto;scroll-snap-type:x mandatory}html.rm .frame,html:not(.js) .frame{scroll-snap-align:start}html.rm .frame-media img,html:not(.js) .frame-media img{filter:none;transform:none}html.rm .film-bar{display:none}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
.frame-media picture,.tile picture{height:100%}
@media(min-width:900px){h1{font-size:clamp(4rem,7.4vw,7.4rem)}.hero{padding-top:90px}.frame{flex-basis:min(30vw,400px)}}
html.js:not(.rm) .reveal-img{transform:scale(calc(var(--rs,1.25)*(1 - var(--pr,0)*.26))) rotate(calc(var(--pr,0)*-3deg)) translateY(calc(var(--pr,0)*-4%));outline:calc(var(--pr,0)*12px) solid var(--paper);box-shadow:0 30px 80px -20px rgba(0,0,0,calc(var(--pr,0)*.9))}
.stage::before{content:"";position:absolute;inset:0;z-index:0;background:radial-gradient(80% 60% at 50% 40%,#3a1420,var(--ink));opacity:var(--pr,0)}
/* v4.1 */
.w{overflow:visible;padding:0;margin:0}
html.js:not(.rm) h1 .l1 .w>span{transform:translateY(.55em);opacity:0;animation:wrise .9s var(--e) forwards;animation-delay:calc(.15s + var(--wi,0)*.11s)}
html.js:not(.rm) h1 .l2 .w>span{transform:translateY(.6em) rotate(3deg);opacity:0;transition:transform .9s var(--e),opacity .6s;transition-delay:calc(var(--wi,0)*.09s)}
html.js:not(.rm) .hero.l2on h1 .l2 .w>span{transform:none;opacity:1}
@keyframes wrise{to{transform:none;opacity:1}}
.flash{background:radial-gradient(circle at 50% 50%,#fff 0,#fffaf2 55%,#ffe9d6 100%)}
.flash.pop{animation:bloom .9s cubic-bezier(.2,.6,.2,1) forwards}
@keyframes bloom{0%{opacity:0}8%{opacity:1}30%{opacity:1}100%{opacity:0}}
html.js:not(.rm) .tile{transform:translateY(var(--tt,0px))}
.tile img{transition:none}
html.js:not(.rm) .pkg{opacity:1;transition:none;transform:translateY(var(--py2,0px)) rotate(var(--pr2,0deg));transform-origin:50% 100%}
.stage.shot .iris{opacity:0;transition:opacity .25s .12s}
.stage.shot .reveal-img{filter:none!important;transition:filter .5s .1s}
.stage.shot .viewfinder{opacity:0;transition:opacity .4s}
/* v4.2 */
.blade{fill:url(#bm);stroke:#e6d8c8;stroke-width:1.6;stroke-opacity:.85;filter:drop-shadow(0 0 6px rgba(0,0,0,.8))}
.stage{perspective:900px}
.cap{opacity:var(--co,0);transform:translate(-50%,-50%) translate(var(--cx,0px),var(--cy,0px)) rotateZ(var(--cr,0deg)) rotateX(var(--crx,0deg)) scale(var(--csc,1))}
.stage.shot .iris{opacity:0;transition:opacity .2s .25s}
.iris{filter:brightness(calc(1 - var(--bk,0)*.92))}
