:root{--ink:#080709;--wine:#260B16;--deep:#471A2C;--gold:#D7B77A;--gold2:#a8864a;--ivory:#F6EEE6;--serif:'Cormorant Garamond',Georgia,serif;--sans:'Jost',system-ui,sans-serif}
*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:70px}
body{background:var(--ink);color:var(--ivory);font-family:var(--sans);font-weight:300;line-height:1.6;overflow-x:hidden;padding-top:env(safe-area-inset-top,0)}
img{display:block;max-width:100%}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}a{color:inherit;text-decoration:none}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.wrap{max-width:1240px;margin:0 auto;padding:0 clamp(18px,4vw,48px)}
.eyebrow{font-size:.72rem;letter-spacing:.38em;text-transform:uppercase;color:var(--gold)}
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.02}
h2{font-size:clamp(2.4rem,6vw,4.6rem)}em{font-style:italic;color:var(--gold)}
.gold-text{background:linear-gradient(100deg,#8c6a30,#f0d9a2 35%,#D7B77A 50%,#f6e7bd 65%,#8c6a30);-webkit-background-clip:text;background-clip:text;color:transparent;background-size:200% 100%;animation:sheen 7s linear infinite}
@keyframes sheen{to{background-position:-200% 0}}
.btn{position:relative;display:inline-flex;align-items:center;gap:.7rem;padding:1rem 2rem;border:1px solid var(--gold);color:var(--ink);background:linear-gradient(120deg,#c9a45f,#f0d9a2 50%,#c9a45f);font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;font-weight:500;overflow:hidden;will-change:transform;border-radius:2px}
.btn::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.6) 50%,transparent 65%);transform:translateX(-120%);transition:transform .9s}
.btn:hover::after,.btn:focus-visible::after{transform:translateX(120%)}
.btn.ghost{background:transparent;color:var(--gold)}.btn.ghost::after{display:none}.btn.ghost:hover{background:rgba(215,183,122,.1)}
/* nav */
nav{position:fixed;top:0;left:0;right:0;z-index:50;padding:calc(14px + env(safe-area-inset-top,0)) 0 14px;transition:background .4s,backdrop-filter .4s}
nav.s{background:rgba(8,7,9,.72);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid rgba(215,183,122,.15)}
nav .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px}
.mark{font-family:var(--serif);font-size:1.5rem;letter-spacing:.12em}.mark b{font-weight:600}
.links{display:flex;gap:2.2rem;align-items:center}
.links a:not(.btn){position:relative;font-size:.74rem;letter-spacing:.26em;text-transform:uppercase;padding:6px 0}
.links a:not(.btn)::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;background:var(--gold);transform:scaleX(0);transform-origin:right;transition:transform .45s}
.links a:not(.btn):hover::after{transform:scaleX(1);transform-origin:left}
.links .btn{padding:.7rem 1.3rem}
.burger{display:none;width:44px;height:44px;position:relative}.burger i{position:absolute;left:11px;right:11px;height:1px;background:var(--gold);transition:.4s}.burger i:nth-child(1){top:16px}.burger i:nth-child(2){top:27px}
.burger[aria-expanded=true] i:nth-child(1){top:21px;transform:rotate(45deg)}.burger[aria-expanded=true] i:nth-child(2){top:21px;transform:rotate(-45deg)}
@media(max-width:860px){.burger{display:block;z-index:60}.links{position:fixed;inset:0;flex-direction:column;justify-content:center;background:radial-gradient(circle at 50% 30%,var(--deep),var(--ink));clip-path:circle(0 at calc(100% - 40px) 36px);transition:clip-path .7s cubic-bezier(.7,0,.2,1);gap:1.6rem}
.links.open{clip-path:circle(150% at calc(100% - 40px) 36px)}.links a:not(.btn){font-family:var(--serif);font-size:2rem;letter-spacing:.08em;text-transform:none}}
/* hero */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;overflow:hidden;background:radial-gradient(ellipse at 70% 40%,var(--deep) 0,var(--wine) 38%,var(--ink) 75%)}
#gl{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.hero .wrap{position:relative;display:grid;grid-template-columns:1.05fr .95fr;gap:3rem;align-items:center;padding-top:110px;padding-bottom:70px;width:100%}
.hero h1{font-size:clamp(3.2rem,8.4vw,7.2rem);margin:1.2rem 0}.hero h1 .l{display:block;overflow:hidden;padding-bottom:.08em}.hero h1 .l>span{display:inline-block}
.hero p.lead{max-width:30rem;color:rgba(246,238,230,.78);margin-bottom:2.2rem;font-size:1.05rem}
.stage{position:relative;aspect-ratio:4/5;max-width:520px;margin-left:auto;width:100%;perspective:1100px}
.plaque{position:absolute;left:4%;right:4%;top:6%;aspect-ratio:1;border-radius:50%;filter:drop-shadow(0 30px 50px rgba(0,0,0,.65)) drop-shadow(0 0 40px rgba(215,170,90,.25));transform-style:preserve-3d;overflow:hidden}
.plaque img{width:100%;height:100%;object-fit:cover}.plaque::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.55) 48%,transparent 62%);transform:translateX(-100%);animation:glint 6s 1.5s infinite}
@keyframes glint{0%{transform:translateX(-100%)}30%,100%{transform:translateX(100%)}}
.float{position:absolute;width:34%;border:1px solid var(--gold);box-shadow:0 30px 50px rgba(0,0,0,.55);border-radius:2px;overflow:hidden;will-change:transform}.float img{aspect-ratio:3/4;object-fit:cover;width:100%}
.f1{left:-8%;top:0}.f2{right:-4%;bottom:0;width:38%}.f3{left:6%;bottom:-4%;width:26%}
.scroll-cue{position:absolute;left:50%;bottom:22px;font-size:.62rem;letter-spacing:.4em;color:var(--gold);transform:translateX(-50%);text-transform:uppercase}
@media(max-width:860px){.hero .wrap{grid-template-columns:1fr;padding-top:100px}.stage{max-width:380px;margin:1rem auto 0}.hero p.lead{font-size:1rem}.f1{left:-3%}.scroll-cue{display:none}}
/* divider */
.divider{display:block;width:min(560px,80%);margin:0 auto;height:30px;overflow:visible}.divider path{stroke:var(--gold);fill:none;stroke-width:1}
section{position:relative;padding:clamp(80px,12vw,150px) 0}
.head{margin-bottom:3.5rem;max-width:44rem}.head p{color:rgba(246,238,230,.7);margin-top:1.2rem}
/* horizontal story */
.story{padding:0;background:var(--wine);overflow:hidden}.story .pin{height:100svh;display:flex;flex-direction:column;justify-content:center}
.story .t{padding:0 clamp(18px,4vw,48px);margin-bottom:2rem;display:flex;justify-content:space-between;align-items:end;gap:2rem}
.track{display:flex;gap:clamp(14px,2vw,28px);padding:0 clamp(18px,4vw,48px);width:max-content;will-change:transform}
.slide{width:clamp(200px,24vw,330px);flex:none;position:relative;overflow:hidden;border:1px solid rgba(215,183,122,.35)}.slide img{width:100%;aspect-ratio:3/4;object-fit:cover;transform:scale(1.15)}
.slide:nth-child(even){margin-top:3rem}.slide span{position:absolute;left:12px;bottom:10px;font-family:var(--serif);font-style:italic;font-size:1.2rem;text-shadow:0 2px 12px #000}
.reduced .story .pin{height:auto;padding:80px 0}.reduced .track{overflow-x:auto;width:100%;scroll-snap-type:x mandatory}.reduced .slide{scroll-snap-align:start}
.svc{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.card{position:relative;padding:1.8rem 1.5rem 1.6rem;min-height:370px;display:flex;flex-direction:column;background:linear-gradient(160deg,rgba(71,26,44,.55),rgba(8,7,9,.8));border:1px solid rgba(215,183,122,.18);transform-style:preserve-3d;will-change:transform;overflow:hidden;border-radius:3px}
.card::before{content:"";position:absolute;inset:0;padding:1px;background:conic-gradient(from var(--a,0deg),transparent 0 70%,var(--gold) 85%,transparent);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0;transition:opacity .5s;animation:spin 4s linear infinite;pointer-events:none}
@property --a{syntax:'<angle>';inherits:false;initial-value:0deg}@keyframes spin{to{--a:360deg}}
.card:hover::before,.card:focus-within::before{opacity:1}
.card .im{position:absolute;inset:0;opacity:.0;transition:opacity .7s,transform 1.2s}.card .im img{width:100%;height:100%;object-fit:cover}.card .im::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,7,9,.3),rgba(8,7,9,.92))}
.card:hover .im,.card:focus-within .im{opacity:.55;transform:scale(1.06)}
.card>*:not(.im){position:relative;transform:translateZ(30px)}
.card .no{font-family:var(--serif);color:var(--gold);font-size:1.1rem;margin-bottom:auto}.card h3{font-size:1.9rem;margin:2rem 0 .6rem}.card p{font-size:.92rem;color:rgba(246,238,230,.75)}
.card .go{font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);text-align:left;margin-top:1rem}.card .go:hover{text-decoration:underline}
@media(max-width:1000px){.svc{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.svc{grid-template-columns:1fr}.card{min-height:300px}}
/* portfolio */
.chips{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:2.2rem}.chip{padding:.55rem 1.2rem;border:1px solid rgba(215,183,122,.35);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;transition:.3s;border-radius:40px}
.chip[aria-pressed=true],.chip:hover{background:var(--gold);color:var(--ink)}
.mason{columns:4 220px;column-gap:16px}
.tile{break-inside:avoid;margin-bottom:16px;position:relative;display:block;width:100%;overflow:hidden;perspective:800px;border:1px solid rgba(215,183,122,.2);border-radius:2px;background:#111;}
.rv-on .tile::before{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;background:linear-gradient(135deg,#8c6a30,#f0d9a2 50%,#a8864a);transform-origin:bottom;transform:scaleY(1);transition:transform 1.05s cubic-bezier(.77,0,.18,1) var(--d,0ms)}
.rv-on .tile.in::before{transform:scaleY(0)}
.rv-on .tile:not(.in) img{scale:1.4}.tile img{transition:transform .8s cubic-bezier(.2,.7,.2,1),scale 1.6s cubic-bezier(.2,.7,.2,1) var(--d,0ms)}
.snap,.snap::before,.snap img{transition:none!important}
.tile .no{position:absolute;top:10px;left:12px;z-index:2;font-family:var(--serif);font-size:1rem;color:var(--gold);opacity:0;transform:translateY(-6px);transition:.4s;text-shadow:0 1px 8px #000}.tile:hover .no,.tile:focus-visible .no{opacity:1;transform:none}
.mq{overflow:hidden;margin:0 0 2.4rem;border-block:1px solid rgba(215,183,122,.2);padding:.5rem 0;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}.mq div{display:flex;width:max-content;gap:2.5rem;animation:mq 32s linear infinite;font-family:var(--serif);font-style:italic;font-size:clamp(1.6rem,3.4vw,2.6rem);color:transparent;-webkit-text-stroke:1px var(--gold);white-space:nowrap}.mq div span:nth-child(even){-webkit-text-stroke:0;color:var(--gold);font-style:normal;font-size:.5em;align-self:center}@keyframes mq{to{transform:translateX(-50%)}}
.tile.hide{display:none}.tile img{width:100%;height:auto;}.tile:hover img{transform:scale(1.07)}
.tile .cap{position:absolute;left:0;right:0;bottom:0;padding:2.5rem 14px 12px;background:linear-gradient(transparent,rgba(8,7,9,.9));text-align:left;transform:translateY(100%);transition:transform .45s;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
.tile:hover .cap,.tile:focus-visible .cap{transform:none}.tile .cap b{display:block;font-family:var(--serif);font-weight:500;font-size:1.15rem;letter-spacing:.02em;text-transform:none;color:var(--ivory)}
.tile::after{content:"";position:absolute;inset:6px;border:1px solid var(--gold);opacity:0;transition:opacity .4s;pointer-events:none}.tile:hover::after{opacity:.7}
.note{margin-top:2rem;font-size:.8rem;color:rgba(246,238,230,.5)}
/* lightbox */
.lb{position:fixed;inset:0;z-index:100;background:rgba(8,7,9,.94);backdrop-filter:blur(10px);display:none;align-items:center;justify-content:center;padding:20px;touch-action:pan-y}.lb.on{display:flex}
.lb figure{max-width:min(92vw,900px);max-height:92svh;display:flex;flex-direction:column;align-items:center;gap:14px;perspective:1200px}
.lb img{max-height:70svh;max-width:100%;object-fit:contain;border:1px solid var(--gold);box-shadow:0 0 0 8px rgba(215,183,122,.07),0 40px 90px #000;transition:transform .25s}
.lb figcaption{text-align:center}.lb figcaption b{font-family:var(--serif);font-size:1.6rem;font-weight:500;display:block}
.lb .x,.lb .nv{position:absolute;width:52px;height:52px;border:1px solid rgba(215,183,122,.4);border-radius:50%;color:var(--gold);font-size:1.4rem;display:grid;place-items:center;transition:.3s}.lb .x:hover,.lb .nv:hover{background:var(--gold);color:var(--ink)}
.lb .x{top:calc(18px + env(safe-area-inset-top,0));right:18px}.lb .p{left:16px;top:50%}.lb .n{right:16px;top:50%}
@media(max-width:700px){.lb .nv{top:auto;bottom:calc(18px + env(safe-area-inset-bottom,0))}}
/* booking */
.book{background:radial-gradient(ellipse at 20% 0,var(--deep),var(--wine) 45%,var(--ink))}
.bk{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(24px,5vw,70px);align-items:start}
.panel{border:1px solid rgba(215,183,122,.25);background:rgba(8,7,9,.55);backdrop-filter:blur(8px);padding:clamp(20px,3vw,40px);border-radius:3px}
.steps{display:flex;gap:8px;margin-bottom:1.8rem}.steps i{flex:1;height:2px;background:rgba(215,183,122,.2);position:relative;overflow:hidden}.steps i::after{content:"";position:absolute;inset:0;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .6s}.steps i.d::after{transform:none}
.stp{display:none}.stp.on{display:block;animation:in .55s both}@keyframes in{from{opacity:0;transform:translateX(24px)}}
.stp h3{font-size:2rem;margin-bottom:1.2rem}
.opts{display:grid;grid-template-columns:1fr 1fr;gap:10px}.opt{padding:1rem;border:1px solid rgba(215,183,122,.25);text-align:left;transition:.35s;font-family:var(--serif);font-size:1.25rem}.opt small{display:block;font-family:var(--sans);font-size:.62rem;letter-spacing:.2em;color:var(--gold)}
.opt:hover{transform:translateY(-3px);border-color:var(--gold)}.opt[aria-pressed=true]{background:var(--gold);color:var(--ink)}.opt[aria-pressed=true] small{color:var(--deep)}
.cal .h{display:flex;justify-content:space-between;align-items:center;margin-bottom:.8rem;font-family:var(--serif);font-size:1.4rem}.cal .h button{width:40px;height:40px;border:1px solid rgba(215,183,122,.3);border-radius:50%;color:var(--gold)}.cal .h button:disabled{opacity:.25}
.grid7{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}.grid7 .w{font-size:.62rem;letter-spacing:.15em;color:var(--gold);padding:6px 0}
.day{aspect-ratio:1;border:1px solid transparent;border-radius:50%;font-size:.9rem;transition:.25s}.day:hover:not(:disabled){border-color:var(--gold)}.day:disabled{opacity:.22;cursor:not-allowed}.day[aria-pressed=true]{background:var(--gold);color:var(--ink)}
.times{display:flex;gap:10px;margin-top:1rem;flex-wrap:wrap}.times .opt{flex:1;font-size:1.05rem;min-width:110px}
.fld{position:relative;margin-bottom:1.3rem}.fld input,.fld textarea{width:100%;background:transparent;border:0;border-bottom:1px solid rgba(215,183,122,.35);color:var(--ivory);padding:1.1rem 0 .5rem;font:inherit;border-radius:0;outline:0;transition:border-color .3s}
.fld label{position:absolute;left:0;top:1.1rem;color:rgba(246,238,230,.55);pointer-events:none;transition:.3s;font-size:.9rem}
.fld input:focus,.fld textarea:focus{border-color:var(--gold);box-shadow:0 1px 0 var(--gold)}.fld input:focus+label,.fld input:not(:placeholder-shown)+label,.fld textarea:focus+label,.fld textarea:not(:placeholder-shown)+label{top:0;font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
.nav2{display:flex;justify-content:space-between;margin-top:1.6rem;gap:10px}
.sum{list-style:none;margin:1rem 0;font-size:.95rem}.sum li{display:flex;justify-content:space-between;gap:1rem;padding:.6rem 0;border-bottom:1px solid rgba(215,183,122,.15)}.sum span:first-child{color:var(--gold);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase}
.warn{font-size:.8rem;color:var(--gold);margin-top:1rem;border-left:2px solid var(--gold);padding-left:12px}
.err{color:#e8a3a3;font-size:.8rem;min-height:1.2em;margin-top:.6rem}
.lookchip{display:none;align-items:center;gap:12px;margin-bottom:1.2rem;padding:8px;border:1px solid var(--gold)}.lookchip.on{display:flex}.lookchip img{width:46px;height:58px;object-fit:cover}.lookchip button{margin-left:auto;font-size:.65rem;letter-spacing:.2em;color:var(--gold);padding:8px}
@media(max-width:900px){.bk{grid-template-columns:1fr}}
/* footer */
footer{position:relative;background:var(--ink);overflow:hidden;padding:clamp(80px,12vw,140px) 0 30px;text-align:center;border-top:1px solid rgba(215,183,122,.2)}
footer .big{font-family:var(--serif);font-size:clamp(3rem,14.5vw,13rem);line-height:.9;letter-spacing:-.01em;white-space:nowrap;margin:2rem 0 1rem}
footer .lg{width:180px;margin:0 auto 2rem;border-radius:50%;filter:drop-shadow(0 10px 30px rgba(215,170,90,.3))}
footer .bg{position:absolute;inset:auto -10% -30% -10%;height:70%;opacity:.35;pointer-events:none}footer .bg path{fill:none;stroke:var(--gold);stroke-width:1}
.fl{display:flex;gap:2rem;justify-content:center;flex-wrap:wrap;margin:2.5rem 0;font-size:.72rem;letter-spacing:.24em;text-transform:uppercase}
.fl span{color:rgba(246,238,230,.6)}.copy{font-size:.7rem;color:rgba(246,238,230,.4);position:relative}
/* our story */
.ourstory{background:radial-gradient(ellipse at 50% 0,var(--deep),var(--ink) 70%);text-align:center}.os{max-width:820px;margin:0 auto}
.os h2{margin:1rem 0 2.2rem}.os p{color:rgba(246,238,230,.78);font-size:clamp(1rem,1.6vw,1.15rem);margin-bottom:1.3rem}
.os p.big{font-family:var(--serif);font-size:clamp(1.5rem,3vw,2.15rem);line-height:1.3;color:var(--ivory)}
.os .tag{font-family:var(--serif);font-style:italic;font-size:clamp(2rem,5vw,3.6rem);margin-top:2.5rem;line-height:1.1}
.os svg{width:min(300px,70%);margin:2rem auto;display:block;overflow:visible}.os svg path{fill:none;stroke:var(--gold);stroke-width:1}
/* founder */
.founder{background:linear-gradient(var(--wine),var(--ink))}.fd{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(30px,6vw,90px);align-items:center}
.arch{position:relative;aspect-ratio:3/4.1;max-width:460px;width:100%;margin:0 auto}.arch::before{content:"";position:absolute;inset:-14px -14px 14px 14px;border:1px solid var(--gold);border-radius:999px 999px 4px 4px;opacity:.55}
.arch .in{position:absolute;inset:0;overflow:hidden;border-radius:999px 999px 4px 4px;border:1px solid var(--gold);box-shadow:0 40px 80px rgba(0,0,0,.6)}.arch img{width:100%;height:112%;object-fit:cover;object-position:50% 12%}
.fd h2{margin:1rem 0 .4rem}.role{font-size:.78rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-bottom:1.8rem}.fd p{color:rgba(246,238,230,.78);margin-bottom:1.1rem;max-width:36rem}
.quote{font-family:var(--serif);font-style:italic;font-size:clamp(1.5rem,3vw,2.1rem);line-height:1.25;border-left:2px solid var(--gold);padding-left:1.2rem;margin:2rem 0;color:var(--ivory);max-width:34rem}
@media(max-width:860px){.fd{grid-template-columns:1fr}.arch{max-width:340px}}
/* mega menu + services */
.lnk{position:relative;font-size:.74rem;letter-spacing:.26em;text-transform:uppercase;padding:6px 0;display:inline-flex;gap:.4rem;align-items:center}
.lnk::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;background:var(--gold);transform:scaleX(0);transform-origin:right;transition:transform .45s}.lnk:hover::after,.lnk[aria-expanded=true]::after{transform:scaleX(1);transform-origin:left}
.lnk span{display:inline-block;transition:transform .35s}.lnk[aria-expanded=true] span{transform:rotate(180deg)}
.macc{display:none}
.mega{position:fixed;left:50%;top:76px;width:min(1000px,94vw);z-index:49;opacity:0;visibility:hidden;pointer-events:none;transform:translate(-50%,-14px) scale(.98);transform-origin:top center;transition:opacity .35s,transform .5s cubic-bezier(.2,.8,.2,1),visibility 0s .5s;color:#1a1216}
.mega.open{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0) scale(1);transition-delay:0s}
.mg{display:grid;grid-template-columns:300px 1fr;border-radius:20px;overflow:hidden;background:rgba(246,238,230,.95);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:1px solid rgba(215,183,122,.6);box-shadow:0 40px 90px rgba(0,0,0,.55),0 0 0 6px rgba(215,183,122,.1)}
.mgl{padding:22px 14px;background:linear-gradient(180deg,#efe2cf,#e7d6bb);display:flex;flex-direction:column;gap:2px;max-height:min(70vh,560px);overflow:auto}
.mgl .eyebrow{color:#8a6a2e;padding:0 12px 10px}
.mgl button{display:flex;align-items:center;gap:10px;text-align:left;padding:.8rem 12px;border-radius:12px;font-size:.78rem;letter-spacing:.16em;color:#2a1a20;position:relative;transition:background .3s,color .3s,padding .3s}
.mgl button span{flex:1}.mgl button small{font-size:.7rem;opacity:.55}.mgl button i{font-style:normal;font-size:1.2rem;opacity:.5;transition:transform .3s}
.mgl button:hover,.mgl button[aria-selected=true]{background:rgba(255,255,255,.6);padding-left:18px}.mgl button[aria-selected=true]{color:#6b4d17;font-weight:500}.mgl button[aria-selected=true] i{transform:translateX(4px);opacity:1;color:#a8864a}
.mgl button[aria-selected=true]::before{content:"";position:absolute;left:0;top:22%;bottom:22%;width:3px;border-radius:3px;background:linear-gradient(#a8864a,#f0d9a2)}
.mgl button,.mall{color:#2a1a20}.mgl button:focus-visible,.mgr a:focus-visible,.mall:focus-visible{outline-color:#a8864a}
.mall{margin:auto 0 0;padding:1rem 12px 0;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:#8a6a2e}.mall:hover{text-decoration:underline}
.mgr{padding:26px 30px 30px;max-height:min(70vh,560px);overflow:auto}
.mh{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.8rem;border-bottom:1px solid rgba(168,134,74,.35);padding-bottom:.8rem;animation:li .4s both}.mh h3{font-size:2rem;color:#2a1a20;letter-spacing:.04em}.mh a{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:#8a6a2e}.mh a:hover{text-decoration:underline}
.mgr ul{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:6px 18px}.mgr li{animation:li .5s both;animation-delay:calc(var(--i)*55ms + 60ms)}
@keyframes li{from{opacity:0;transform:translateY(12px)}}
.mgr li a{display:flex;align-items:center;gap:10px;padding:.8rem 14px;border-radius:12px;border:1px solid transparent;transition:.3s;color:#2a1a20}.mgr li a span{flex:1;font-family:var(--serif);font-size:1.25rem;line-height:1.15}.mgr li a em{font-style:normal;font-size:.62rem;letter-spacing:.1em;color:#8a6a2e;white-space:nowrap}
.mgr li a b{font-weight:400;color:#a8864a;transition:transform .3s}.mgr li a:hover,.mgr li a:focus-visible{background:linear-gradient(120deg,rgba(215,183,122,.35),rgba(255,255,255,.5));border-color:rgba(168,134,74,.5)}.mgr li a:hover b{transform:translateX(5px)}
.mgr li:only-child,.mgr li:nth-child(odd):last-child{grid-column:1/-1}
@media(max-width:860px){.mega{display:none}.links{overflow-y:auto;justify-content:flex-start;padding:90px 24px 40px}.links>:first-child{margin-top:auto}.links>:last-child{margin-bottom:auto}
.lnk{font-family:var(--serif);font-size:2rem;letter-spacing:.08em;text-transform:none}
.macc{display:grid;grid-template-rows:0fr;visibility:hidden;width:min(420px,100%);transition:grid-template-rows .5s cubic-bezier(.2,.8,.2,1),visibility 0s .5s}.macc.open{grid-template-rows:1fr;visibility:visible;transition-delay:0s}
.mi{overflow:hidden;min-height:0}}
.mi{display:flex;flex-direction:column;gap:8px}.ac{border:1px solid rgba(215,183,122,.3);border-radius:14px;background:rgba(246,238,230,.06);overflow:hidden}
.ac>button{width:100%;display:flex;align-items:center;justify-content:space-between;padding:.95rem 1.1rem;min-height:48px;font-size:.78rem;letter-spacing:.2em;color:var(--gold)}.ac>button i{font-style:normal;font-size:1.3rem;transition:transform .4s}.ac.open>button i{transform:rotate(45deg)}.ac.open{border-color:var(--gold);background:rgba(215,183,122,.1)}
.apn{display:grid;grid-template-rows:0fr;visibility:hidden;transition:grid-template-rows .45s cubic-bezier(.2,.8,.2,1),visibility 0s .45s}.ac.open .apn{grid-template-rows:1fr;visibility:visible;transition-delay:0s}.apn ul{overflow:hidden;min-height:0;list-style:none}
.links .macc a{display:flex;justify-content:space-between;align-items:center;padding:.8rem 1.1rem;min-height:46px;font-family:var(--sans);font-size:1rem;letter-spacing:.02em;text-transform:none;border-top:1px solid rgba(215,183,122,.14);color:var(--ivory)}.links .macc a::after{display:none}.links .macc a span{color:var(--gold)}
.links .macc a.mall{display:block;border:0;text-align:center;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-top:6px}
.pt{position:fixed;inset:0;z-index:90;background:linear-gradient(160deg,#471A2C,#080709 60%);transform:scaleY(0);transform-origin:bottom;transition:transform .48s cubic-bezier(.7,0,.2,1);pointer-events:none;display:grid;place-items:center}.pt.on{transform:scaleY(1);pointer-events:auto}.pt::after{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:var(--gold)}
/* service pages */
.ph{width:100%;height:100%;min-height:100%;aspect-ratio:3/4;display:grid;place-content:center;text-align:center;gap:.4rem;background:radial-gradient(circle at 50% 42%,rgba(215,183,122,.22),transparent 55%),repeating-radial-gradient(circle at 50% 42%,transparent 0 22px,rgba(215,183,122,.1) 22px 23px),linear-gradient(160deg,var(--deep),var(--ink))}
.ph .gold-text{font-family:var(--serif);font-size:clamp(3rem,9vw,5rem);line-height:1}.ph small{font-size:.62rem;letter-spacing:.34em;color:var(--gold)}
.sph{padding:130px 0 30px;background:radial-gradient(ellipse at 70% 0,var(--deep),var(--ink) 70%)}.sph h1{font-size:clamp(3rem,8vw,6rem);margin:1rem 0}.sph p{max-width:36rem;color:rgba(246,238,230,.72)}
.tb{display:flex;flex-wrap:wrap;gap:16px 24px;align-items:center;margin:2rem 0 2.4rem}.tb input{flex:1 1 280px;max-width:420px;background:rgba(246,238,230,.06);border:1px solid rgba(215,183,122,.35);color:var(--ivory);padding:.95rem 1.2rem;border-radius:40px;font:inherit;outline:0;transition:.3s}.tb input:focus{border-color:var(--gold);box-shadow:0 0 0 4px rgba(215,183,122,.15)}
.tb .chips{margin:0}
.sec{margin-bottom:3.6rem}.sh{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;border-bottom:1px solid rgba(215,183,122,.3);padding-bottom:.8rem;margin-bottom:1.6rem}.sh h2{font-size:clamp(1.8rem,4vw,2.8rem);letter-spacing:.06em}.sh span{font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold)}
.sg{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:22px}
.sc{display:flex;flex-direction:column;background:linear-gradient(160deg,rgba(71,26,44,.5),rgba(8,7,9,.85));border:1px solid rgba(215,183,122,.2);border-radius:4px;overflow:hidden;transform-style:preserve-3d;will-change:transform;animation:cin .7s both;animation-delay:calc(var(--i)*70ms);transition:border-color .4s}.sc:hover{border-color:var(--gold)}@keyframes cin{from{opacity:0;transform:translateY(36px)}}
.sci{display:block;aspect-ratio:4/3;overflow:hidden;position:relative}.sci img{width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.2,.7,.2,1)}.sc:hover .sci img{transform:scale(1.08)}.sci .ph{aspect-ratio:auto}
.scb{padding:1.2rem 1.2rem 1.3rem;display:flex;flex-direction:column;gap:.55rem;flex:1}.scb .eyebrow{font-size:.6rem}.scb h3{font-size:1.65rem}.scb h3 a:hover{color:var(--gold)}.scb p{font-size:.88rem;color:rgba(246,238,230,.72);flex:1}
.pp{display:flex;gap:10px;flex-wrap:wrap}.pp span{padding:.3rem .8rem;border:1px solid rgba(215,183,122,.4);border-radius:30px;font-size:.7rem;letter-spacing:.14em;color:var(--gold)}.pp b{font-weight:500;color:var(--ivory);margin-left:.3rem;letter-spacing:.04em}
.acts{display:flex;gap:10px;flex-wrap:wrap;margin-top:.5rem}.acts .btn{padding:.75rem 1rem;font-size:.66rem;letter-spacing:.16em;flex:1 1 auto;justify-content:center}
.empty{padding:3rem 0;text-align:center;color:rgba(246,238,230,.6);font-family:var(--serif);font-size:1.6rem}
.sdh{position:relative;padding:130px 0 70px;overflow:hidden;background:radial-gradient(ellipse at 80% 20%,var(--tint,#471A2C),var(--ink) 70%)}
.sbg{position:absolute;inset:0;pointer-events:none;opacity:.5}.sbg svg{position:absolute;right:-8%;top:6%;width:min(720px,80vw);animation:spinr 80s linear infinite}.sbg circle{fill:none;stroke:var(--gold);stroke-width:.6}@keyframes spinr{to{transform:rotate(360deg)}}
.sdg{position:relative;display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(30px,6vw,80px);align-items:center}.sdg.flip .sdt{order:2}
.crumb{font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:rgba(246,238,230,.6);margin-bottom:1.6rem}.crumb a{color:var(--gold)}.crumb a:hover{text-decoration:underline}
.sdt h1{font-size:clamp(2.8rem,7vw,5.8rem);margin:1rem 0 1.2rem;animation:li .9s .1s both}.sdt .lead{font-size:1.1rem;max-width:32rem;color:rgba(246,238,230,.82);margin-bottom:1.6rem;animation:li .9s .25s both}
.pr2{display:flex;gap:14px;margin-bottom:1.8rem;animation:li .9s .35s both}.pr2 span{padding:.6rem 1.2rem;border:1px solid var(--gold);border-radius:40px;letter-spacing:.14em;color:var(--gold);font-size:.8rem}.pr2 b{font-family:var(--serif);font-size:1.6rem;font-weight:500;color:var(--ivory);margin-left:.5rem;letter-spacing:.02em}
.sdi{position:relative;max-width:460px;width:100%;margin:0 auto;perspective:1000px}.sdi::before{content:"";position:absolute;inset:-14px 14px 14px -14px;border:1px solid var(--gold);border-radius:4px;opacity:.55}
.sdi .fr{position:relative;aspect-ratio:3/4;overflow:hidden;border:1px solid var(--gold);box-shadow:0 40px 80px rgba(0,0,0,.6);animation:wipe 1.4s cubic-bezier(.77,0,.18,1) .15s both;border-radius:3px}.sdi .fr img{width:100%;height:100%;object-fit:cover;animation:zoomo 2s ease-out both}
@keyframes wipe{from{clip-path:inset(100% 0 0 0)}to{clip-path:inset(0)}}@keyframes zoomo{from{transform:scale(1.25)}}
.sdi figcaption{margin-top:12px;font-size:.66rem;letter-spacing:.24em;text-transform:uppercase;color:rgba(246,238,230,.5);text-align:center}.no2{position:absolute;right:-6px;top:-34px;font-family:var(--serif);font-size:1rem;color:var(--gold)}
.sdc{padding:80px 0 60px;background:var(--ink)}.sdl{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(30px,5vw,70px);align-items:start}.sdl.flip>.sdm{order:2}
.sdm h2{font-size:clamp(2rem,4.5vw,3.2rem);margin-bottom:1rem}.sdm section{margin-bottom:2.8rem;padding-bottom:2.2rem;border-bottom:1px solid rgba(215,183,122,.15)}.sdm p{color:rgba(246,238,230,.8);max-width:38rem;font-size:1.05rem}
.kf{list-style:none;display:grid;gap:.7rem;margin-top:.4rem}.kf li{display:flex;gap:.8rem;align-items:flex-start;color:rgba(246,238,230,.85)}.kf li::before{content:"✦";color:var(--gold);font-size:.8rem;margin-top:.35rem}
.pcard{position:sticky;top:100px;padding:1.8rem;border:1px solid var(--gold);border-radius:4px;background:linear-gradient(160deg,rgba(71,26,44,.7),rgba(8,7,9,.9));box-shadow:0 30px 70px rgba(0,0,0,.5);transform-style:preserve-3d}
.prow{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:1rem 0}.prow div{padding:1rem;border:1px solid rgba(215,183,122,.35);text-align:center;border-radius:4px}.prow span{display:block;font-size:.7rem;letter-spacing:.3em;color:var(--gold)}.prow b{font-family:var(--serif);font-size:2.2rem;font-weight:500}
.pcard .small{font-size:.78rem;color:rgba(246,238,230,.6);margin-bottom:1rem}.pcard .btn{width:100%;justify-content:center}
.sbk{padding:70px 0;background:radial-gradient(ellipse at 20% 0,var(--deep),var(--wine) 50%,var(--ink))}.pnl2{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(24px,5vw,60px);align-items:center;border:1px solid rgba(215,183,122,.3);padding:clamp(22px,4vw,50px);border-radius:4px;background:rgba(8,7,9,.5)}
.pnl2 h2{font-size:clamp(2rem,4.5vw,3.2rem);margin:.8rem 0}.pnl2 p{color:rgba(246,238,230,.72)}
.bf fieldset{border:0;margin-bottom:1.2rem}.bf legend,.bf .lb2{font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin-bottom:.5rem;display:block}
.bf .two{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:1.4rem}.bf input[type=date],.bf input[type=time]{width:100%;background:transparent;border:0;border-bottom:1px solid rgba(215,183,122,.4);color:var(--ivory);padding:.5rem 0;font:inherit;color-scheme:dark;outline:0}.bf input:focus{border-color:var(--gold);box-shadow:0 1px 0 var(--gold)}
.bf .btn{width:100%;justify-content:center}
.rel{padding:70px 0 100px;background:var(--ink)}.rel h2{margin-bottom:2rem}.rel .back2{margin-top:2.4rem;text-align:center}
.rvx{transition:opacity .9s ease,translate .9s ease}.rv-on .rvx:not(.in){opacity:0;translate:0 34px}
@media(max-width:900px){.sdg,.sdl,.pnl2{grid-template-columns:1fr}.sdg.flip .sdt,.sdl.flip>.sdm{order:0}.pcard{position:static}.mgr ul{grid-template-columns:1fr}.sdh{padding-top:110px}.sdi{max-width:340px}.bf .two{grid-template-columns:1fr}}
#svc .card{min-height:300px}#svc .card h3{font-size:1.6rem;margin-top:1.4rem}
/* studio + testimonials */
.studio{background:radial-gradient(ellipse at 50% 0,rgba(71,26,44,.55),transparent 60%),var(--ink);overflow:hidden}.center{text-align:center;margin-inline:auto}.center p{margin-inline:auto}
.sgal{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:150px;gap:16px}
.sit{position:relative;overflow:hidden;border-radius:20px;border:1px solid rgba(215,183,122,.3);box-shadow:0 30px 60px rgba(0,0,0,.5);background:#120a0e;padding:0;text-align:left;transform:translate3d(calc(var(--mx,0)*var(--p,8)*1px),calc(var(--my,0)*var(--p,8)*1px),0);transition:transform .6s ease-out,opacity .9s ease,translate .9s ease,border-color .4s}
.sit:hover{border-color:var(--gold)}.sit img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}.sit:hover img{transform:scale(1.07)}
.sit::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 55%,rgba(8,7,9,.55));pointer-events:none}
.gcap{position:absolute;z-index:2;left:12px;right:12px;bottom:12px;padding:.65rem 1rem;border-radius:14px;background:rgba(246,238,230,.12);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(215,183,122,.35);font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}.gcap b{display:block;font-family:var(--serif);font-weight:500;font-size:1.15rem;letter-spacing:.03em;text-transform:none;color:var(--ivory)}
.s1{grid-column:1/6;grid-row:1/5;--p:5}.s2{grid-column:6/10;grid-row:1/3;--p:12}.s3{grid-column:10/13;grid-row:1/4;--p:9}.s4{grid-column:6/8;grid-row:3/5;--p:14}.s5{grid-column:8/10;grid-row:3/5;--p:7}.s6{grid-column:10/13;grid-row:4/5;--p:11}
.scta{text-align:center;margin-top:3rem}.swipe{display:none;text-align:center;font-size:.64rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-top:1rem}
@media(max-width:900px){.sgal{grid-template-columns:1fr 1fr;grid-auto-rows:auto}.sit{aspect-ratio:3/4}.s1,.s2,.s3,.s4,.s5,.s6{grid-column:auto;grid-row:auto}.s1{grid-column:1/-1;aspect-ratio:4/3}}
@media(max-width:640px){.sgal{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:14px;margin-inline:calc(-1*clamp(18px,4vw,48px));padding:0 clamp(18px,4vw,48px) 14px;scrollbar-width:none;-webkit-overflow-scrolling:touch}.sgal::-webkit-scrollbar{display:none}.sit,.s1{flex:0 0 78%;aspect-ratio:3/4;scroll-snap-align:center;transform:none!important}.swipe{display:block}}
.testi{background:radial-gradient(ellipse at 50% 100%,rgba(71,26,44,.6),transparent 60%),var(--ink);overflow:hidden}
.car{--w:clamp(200px,24vw,310px);position:relative;touch-action:pan-y;user-select:none;outline-offset:8px}
.cstage{position:relative;height:calc(var(--w)*1.42);perspective:1500px;transform-style:preserve-3d}
.cc{position:absolute;left:50%;top:0;width:var(--w);transform-style:preserve-3d;transform:translateX(-50%) translateX(calc(var(--o)*62%)) translateZ(calc(var(--ab)*-150px)) rotateY(calc(var(--o)*-24deg)) scale(calc(1 - var(--ab)*.08));opacity:calc(1 - var(--ab)*.35);z-index:calc(10 - var(--ab));filter:brightness(calc(1 - var(--ab)*.28));transition:transform .75s cubic-bezier(.2,.8,.2,1),opacity .6s,filter .6s;cursor:pointer}
.cc.far{opacity:0;pointer-events:none}.cc .tin{aspect-ratio:3/4;border-radius:16px;overflow:hidden;background:#0c080b;border:1px solid rgba(215,183,122,.4);box-shadow:0 30px 60px rgba(0,0,0,.6);transition:box-shadow .5s,border-color .5s,translate .4s}.cc .tin img{width:100%;height:100%;object-fit:contain;pointer-events:none}
.cc.act .tin{border-color:var(--gold);box-shadow:0 40px 80px rgba(0,0,0,.65),0 0 0 6px rgba(215,183,122,.1),0 0 60px rgba(215,170,90,.2)}.cc.act:hover .tin{translate:0 -8px}
.cb{position:absolute;top:50%;width:52px;height:52px;margin-top:-26px;border:1px solid rgba(215,183,122,.45);border-radius:50%;color:var(--gold);font-size:1.5rem;display:grid;place-items:center;z-index:20;background:rgba(8,7,9,.6);backdrop-filter:blur(8px);transition:.3s}.cb:hover{background:var(--gold);color:var(--ink)}.cb.prev{left:0}.cb.next{right:0}
.cdots{display:flex;justify-content:center;gap:12px;margin-top:2rem}.cdots button{position:relative;width:8px;height:8px;border-radius:8px;background:rgba(215,183,122,.3);transition:.4s}.cdots button::before{content:"";position:absolute;inset:-14px -6px}.cdots button[aria-current=true]{width:28px;background:var(--gold)}
.ccap{text-align:center;margin-top:1.2rem;min-height:3.2rem;font-family:var(--serif);font-size:1.3rem}.ccap small{display:block;font-family:var(--sans);font-size:.64rem;letter-spacing:.26em;text-transform:uppercase;color:var(--gold);margin-top:.3rem}
@media(max-width:700px){.car{--w:62vw}.cb{width:44px;height:44px;margin-top:-22px}.cc{transform:translateX(-50%) translateX(calc(var(--o)*70%)) translateZ(calc(var(--ab)*-120px)) rotateY(calc(var(--o)*-20deg)) scale(calc(1 - var(--ab)*.08))}}
/* cinematic intro (2s) */
#intro{display:none;position:fixed;inset:0;z-index:1000;overflow:hidden;touch-action:none;color:#5a3a12;background:radial-gradient(ellipse at 50% 38%,#fbf4e8 0,#f2e3c9 55%,#e4cba0 100%)}
.intro-on{overflow:hidden}.intro-on #intro{display:block}
#intro>*{position:absolute}
.i-skip{right:clamp(14px,3vw,28px);bottom:calc(clamp(14px,3vw,28px) + env(safe-area-inset-bottom,0px));min-height:44px;padding:0 1.3rem;border:1px solid #a8864a;background:rgba(251,244,232,.7);backdrop-filter:blur(8px);color:#5a3a12;font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;border-radius:40px;cursor:pointer;z-index:5;transition:background .3s,color .3s}.i-skip:hover,.i-skip:focus-visible{background:#a8864a;color:#fbf4e8;outline:2px solid #5a3a12;outline-offset:3px}
.rp{display:inline-block;margin:0 0 1.4rem;font-size:.66rem;letter-spacing:.26em;text-transform:uppercase;color:rgba(246,238,230,.5);padding:.6rem 1rem;min-height:40px}.rp:hover,.rp:focus-visible{color:var(--gold)}
/* responsive polish: touch targets, readable text, touch/hover parity, orientation and large screens */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
.menu-open,.menu-open body{overflow:hidden}
.mark{display:inline-flex;align-items:center;min-height:44px}
@media(max-width:860px){.links .btn{min-height:48px;display:inline-flex;align-items:center;justify-content:center}.links .lnk,.links>a:not(.btn){min-height:44px;display:inline-flex;align-items:center}}
@media(pointer:coarse){.links a:not(.btn),.lnk{padding:13px 0}.mgl button{min-height:46px}}
.card .go{display:inline-flex;align-items:center;min-height:44px;padding:.4rem 0}
.crumb a{display:inline-block;padding:.55rem 0}
.chip{min-height:44px;display:inline-flex;align-items:center}
.rp{min-height:44px}
.gcap,.opt small,.scroll-cue,.sdi figcaption{font-size:.7rem}.scb .eyebrow{font-size:.68rem}.eyebrow{font-size:max(.7rem,11px)}
@media(hover:none){.tile .cap{transform:none;padding-top:1.8rem}.tile .no{opacity:1;transform:none}.card .im{opacity:.42}.card:active .im{opacity:.6}.sc:hover .sci img,.sit:hover img,.tile:hover img{transform:none}}
@supports not (height:100svh){.hero{min-height:100vh}.story .pin{height:100vh}}
@media(max-height:520px) and (orientation:landscape){.hero{min-height:auto}.hero .wrap{padding-top:84px;padding-bottom:40px;gap:1.5rem}.hero h1{font-size:clamp(2.2rem,9vh,3.6rem);margin:.6rem 0}.hero p.lead{margin-bottom:1.2rem}.stage{max-width:300px}.sdh,.sph{padding-top:90px}.story .t h2{font-size:2rem}.story .t p{display:none}.slide{width:clamp(130px,20vw,240px)}.slide:nth-child(even){margin-top:1rem}.links{padding-top:70px}}
@media(min-width:1600px){.wrap{max-width:1440px}}
@media(min-width:1920px){html{font-size:112.5%}.wrap{max-width:1560px}.mega{width:min(1120px,70vw)}.stage{max-width:620px}.sdi,.arch{max-width:540px}}
@media(min-width:2560px){html{font-size:137.5%}.wrap{max-width:1900px}.stage{max-width:760px}.sdi,.arch{max-width:660px}}
.scb h3 a{display:inline-block;padding:.6rem 0}.crumb a{padding:.75rem 0}.swipe{font-size:.7rem}.cdots button::before{inset:-18px -14px}
.hero div.rv{display:flex;flex-wrap:wrap;gap:12px}
@media(max-width:600px){.f3{display:none}.f1{left:-4%;top:-2%;width:30%}.f2{width:32%;right:-3%}}
@media(max-height:520px) and (orientation:landscape){.hero .wrap{grid-template-columns:1.15fr .85fr}.stage{max-width:210px;margin:0 0 0 auto}.f3{display:none}.scroll-cue{display:none}}
/* motion and performance polish */
:root{--ease:cubic-bezier(.22,.8,.2,1)}
.card,.sc,.tile,.sit{will-change:auto}
.card::before{animation:none}.card:hover::before,.card:focus-within::before{animation:spin 4s linear infinite;opacity:1}
[data-off],[data-off]::before,[data-off]::after{animation-play-state:paused!important}
.float{animation:bob 7s ease-in-out infinite}.f2{animation-duration:8.5s;animation-delay:-2s}.f3{animation-duration:6.5s;animation-delay:-4s}
@keyframes bob{50%{translate:0 -9px}}
nav{transition:background .4s,backdrop-filter .4s,transform .45s var(--ease)}nav.nav-hide{transform:translateY(-100%)}
.sc,.card{transition:box-shadow .5s var(--ease),border-color .4s}.card:hover,.sc:hover{box-shadow:0 30px 60px rgba(0,0,0,.45)}
.prow div{transition:border-color .3s,translate .3s var(--ease)}.prow div:hover{border-color:var(--gold);translate:0 -3px}
.lb.on{animation:lbIn .35s var(--ease)}.lb.on img{animation:lbPop .5s var(--ease)}@keyframes lbIn{from{opacity:0}}@keyframes lbPop{from{opacity:0;scale:.94}}
.ourstory{isolation:isolate;overflow:hidden}.ourstory::before{content:"";position:absolute;left:50%;top:50%;width:min(130vw,1100px);aspect-ratio:1;translate:-50% -50%;border-radius:50%;background:repeating-radial-gradient(circle,transparent 0 46px,rgba(215,183,122,.08) 46px 47px);z-index:-1;pointer-events:none;-webkit-mask:radial-gradient(circle,#000 30%,transparent 70%);mask:radial-gradient(circle,#000 30%,transparent 70%)}
.tile img{transition:opacity .7s var(--ease),transform .8s cubic-bezier(.2,.7,.2,1),scale 1.6s cubic-bezier(.2,.7,.2,1) var(--d,0ms)}
.sit img,.sci img{transition:opacity .7s var(--ease),transform 1.2s cubic-bezier(.2,.7,.2,1)}.slide img{transition:opacity .7s var(--ease)}
.ld-on .tile img:not(.ld),.ld-on .sit img:not(.ld),.ld-on .sci img:not(.ld),.ld-on .slide img:not(.ld){opacity:0}
@media(max-width:900px){.gcap,.cb{backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(20,12,16,.58)}.i-skip{backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(251,244,232,.92)}}
@media(max-width:860px){.links>*{opacity:0;translate:0 14px;transition:opacity .5s var(--ease),translate .5s var(--ease)}.links.open>*{opacity:1;translate:0 0}.links.open>*:nth-child(1){transition-delay:.14s}.links.open>*:nth-child(2){transition-delay:.2s}.links.open>*:nth-child(3){transition-delay:.26s}.links.open>*:nth-child(4){transition-delay:.3s}.links.open>*:nth-child(5){transition-delay:.34s}.links.open>*:nth-child(6){transition-delay:.4s}}
/* intro 4 s: decorative nail, moving light, tinted gradient */
/* intro v3: silk waves, metallic frame, 3D nail shapes, layered logo */
#intro{--L:min(52vw,300px,44vh);--cy:calc(50% - 3vh)}
.i-wv{left:-30%;width:160%;pointer-events:none;will-change:transform;opacity:0}.i-wv svg{display:block;width:100%;height:100%}
.i-w1{top:54%;height:46%}.i-w2{top:30%;height:40%}.i-w3{top:4%;height:36%}
.i-g2{inset:0;background:radial-gradient(ellipse at 72% 72%,rgba(236,191,174,.55),transparent 62%);opacity:0;pointer-events:none}
.i-lt{inset:-30%;background:radial-gradient(circle,rgba(255,238,205,.6),transparent 38%);pointer-events:none;will-change:transform}
.i-arcs,.i-frame,.i-glow,.i-logo,.i-lsh{left:50%;top:var(--cy);translate:-50% -50%;pointer-events:none}
.i-arcs{width:calc(var(--L)*1.8);aspect-ratio:1;opacity:0}.i-arcs .sp{position:absolute;inset:0}
.i-arcs svg,.i-frame svg{width:100%;height:100%;display:block;overflow:visible}
.i-frame{width:calc(var(--L)*1.38);aspect-ratio:1;opacity:0}
.i-glow{width:calc(var(--L)*3);aspect-ratio:1;background:radial-gradient(circle,rgba(255,226,160,.7) 0,rgba(255,226,160,.22) 32%,transparent 62%);opacity:0}
.i-lsh{width:calc(var(--L)*1.15);height:calc(var(--L)*.15);top:calc(var(--cy) + var(--L)*.68);border-radius:50%;background:radial-gradient(ellipse,rgba(90,55,15,.38),transparent 70%);opacity:0}
.i-logo{width:var(--L);aspect-ratio:1;opacity:0;transform-style:preserve-3d;--sx:-120%}
.i-logo img{width:100%;height:100%;border-radius:50%;box-shadow:0 26px 44px rgba(90,55,15,.32)}
.i-logo::after{content:"";position:absolute;inset:3%;border-radius:50%;background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.65) 50%,transparent 60%);transform:translateX(var(--sx));mix-blend-mode:soft-light;pointer-events:none;-webkit-mask:radial-gradient(circle,#000 70%,transparent 72%);mask:radial-gradient(circle,#000 70%,transparent 72%);overflow:hidden}
.i-nl{left:50%;top:var(--cy);opacity:0;pointer-events:none;filter:drop-shadow(0 9px 7px rgba(80,50,20,.28))}.i-nl svg{display:block;width:100%;height:auto}
.i-tag{left:0;right:0;top:calc(var(--cy) + var(--L)*.76 + 2.2vh);text-align:center;font-family:var(--serif);font-weight:500;font-size:clamp(.85rem,2.6vw,1.35rem);letter-spacing:.32em;text-indent:.32em;opacity:0;color:#6b4d17;padding:0 12px}
/* floating social dock: Instagram, WhatsApp, Email (3D glass) */
.dock{position:fixed;z-index:45;right:max(14px,env(safe-area-inset-right,0px));top:50%;translate:0 -50%;display:flex;flex-direction:column;gap:12px;transition:opacity .45s var(--ease),translate .55s var(--ease)}
.dk{--rx:0deg;--ry:0deg;position:relative;width:52px;height:52px;display:grid;place-items:center;border-radius:50%;color:var(--gold);background:radial-gradient(circle at 30% 22%,rgba(255,255,255,.34),rgba(255,255,255,0) 46%),linear-gradient(150deg,rgba(255,255,255,.16),rgba(255,255,255,.03) 55%,rgba(0,0,0,.22)),rgba(20,12,16,.55);backdrop-filter:blur(10px) saturate(1.3);-webkit-backdrop-filter:blur(10px) saturate(1.3);border:1px solid rgba(215,183,122,.72);box-shadow:0 14px 26px rgba(0,0,0,.45),0 3px 6px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.35),inset 0 -7px 12px rgba(0,0,0,.35);transform:perspective(420px) rotateX(var(--rx)) rotateY(var(--ry));transition:transform .28s var(--ease),scale .35s var(--ease),color .3s,box-shadow .35s var(--ease);-webkit-tap-highlight-color:transparent}
.dk svg{width:23px;height:23px;display:block;filter:drop-shadow(0 2px 2px rgba(0,0,0,.45))}
.dk::after{content:"";position:absolute;inset:0;border-radius:50%;pointer-events:none;background:linear-gradient(115deg,transparent 38%,rgba(255,255,255,.5) 50%,transparent 62%);background-size:260% 100%;background-position:130% 0;transition:background-position .8s var(--ease)}
.dk:hover,.dk:focus-visible{scale:1.1;color:#f6e7bd;box-shadow:0 18px 30px rgba(0,0,0,.5),0 4px 8px rgba(0,0,0,.35),0 0 0 6px rgba(215,183,122,.12),0 0 28px rgba(215,183,122,.5),inset 0 1px 0 rgba(255,255,255,.45),inset 0 -7px 12px rgba(0,0,0,.3)}
.dk:hover::after,.dk:focus-visible::after{background-position:-30% 0}
.dk:focus-visible{outline:2px solid var(--gold);outline-offset:4px}
.dk:active{scale:1.02}
.dk-tip{position:absolute;right:calc(100% + 14px);top:50%;translate:8px -50%;white-space:nowrap;padding:.5rem .9rem;border-radius:30px;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ivory);background:rgba(18,10,14,.84);border:1px solid rgba(215,183,122,.5);opacity:0;pointer-events:none;transition:opacity .3s var(--ease),translate .3s var(--ease)}
.dk:hover .dk-tip,.dk:focus-visible .dk-tip{opacity:1;translate:0 -50%}
html.intro-on .dock,html.menu-open .dock,html.typing .dock{opacity:0;visibility:hidden;pointer-events:none;translate:14px -50%}
html.menu-open .dock{transition:opacity .15s,visibility 0s .15s}
.dock.yield{opacity:0;pointer-events:none;transition:opacity .15s var(--ease)}
.fl a{color:rgba(246,238,230,.85);transition:color .3s}.fl a:hover,.fl a:focus-visible{color:var(--gold)}
@media(max-width:860px),(hover:none){.dock{top:auto;bottom:calc(18px + env(safe-area-inset-bottom,0px));translate:none;flex-direction:row;gap:10px}html.intro-on .dock,html.menu-open .dock,html.typing .dock{translate:14px 0}.dk{width:44px;height:44px;backdrop-filter:none;-webkit-backdrop-filter:none;background:radial-gradient(circle at 30% 22%,rgba(255,255,255,.3),rgba(255,255,255,0) 46%),linear-gradient(150deg,rgba(255,255,255,.14),rgba(255,255,255,.02) 55%,rgba(0,0,0,.25)),rgba(18,10,14,.78)}.dk svg{width:21px;height:21px}.dk-tip{display:none}}
/* cursor */
.cur{position:fixed;left:0;top:0;width:38px;height:38px;margin:-19px 0 0 -19px;border:1px solid var(--gold);border-radius:50%;pointer-events:none;z-index:200;opacity:0;transition:width .3s,height .3s,margin .3s,background .3s,opacity .3s;mix-blend-mode:difference}
.cur.on{opacity:1}.cur.h{width:70px;height:70px;margin:-35px 0 0 -35px;background:rgba(215,183,122,.25)}
.reveal{opacity:0;transform:translateY(40px)}.reduced .reveal{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){*{animation-duration:.001s!important;animation-iteration-count:1!important;transition-duration:.001s!important;scroll-behavior:auto!important}}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
