:root{color-scheme:dark;--bg:#141213;--bgrgb:20,18,19;--bg2:#1c1919;--rose:#2b2326;--lav:#26232f;--taupe:#5e524d;--tx:#efe9e5;--tx2:#a69d98;--line:#2e2929;--w:#1a1717;--serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;--sans:Inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--max:1280px;--g:clamp(1.1rem,4vw,2.5rem);--hh:68px}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--tx);font:400 16px/1.65 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}
body.lock{overflow:hidden}
img{display:block;max-width:100%;height:auto}a{color:inherit;text-decoration:none}
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.1;margin:0;letter-spacing:-.005em}
h1{font-size:clamp(2.4rem,6vw,4.2rem)}h2{font-size:clamp(1.7rem,3.4vw,2.6rem)}h3{font-size:1.35rem}
p{margin:0 0 1em}ul,ol{margin:0;padding:0;list-style:none}
:focus-visible{outline:2px solid var(--tx);outline-offset:3px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:0;background:var(--tx);color:var(--bg);padding:.6rem 1rem;z-index:100}.skip:focus{left:0}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--g)}.narrow{max-width:640px}
.mut{color:var(--tx2)}.small{font-size:.85rem}.center{text-align:center}.hide-s{}
.eyebrow{font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--tx2);margin:0 0 1rem;font-weight:500}
.lead{font-size:1.15rem;color:var(--tx2);max-width:34ch}
.ic{display:block}
[hidden]{display:none!important}
.sample-banner{position:fixed;left:.8rem;bottom:.8rem;z-index:35;margin:0;padding:.35rem .8rem;background:var(--lav);font-size:.72rem;max-width:min(300px,70vw);line-height:1.35;border:1px solid var(--taupe)}
.sample-banner code{background:rgba(255,255,255,.1);padding:0 .3rem}
/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:46px;padding:.7rem 1.6rem;background:var(--tx);color:var(--bg);border:1px solid var(--tx);font:500 .85rem var(--sans);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:background .25s,color .25s,transform .15s}
.btn:hover{background:#fff;border-color:#fff}.btn:active{transform:translateY(1px)}
.btn.ghost{background:transparent;color:var(--tx)}.btn.ghost:hover{background:var(--tx);color:var(--bg)}
.btn.sm{min-height:36px;padding:.4rem 1rem;font-size:.75rem}.btn.block{width:100%}.btn[disabled]{opacity:.45;cursor:not-allowed}
.link{background:none;border:0;padding:0;font:inherit;font-size:.9rem;color:var(--tx);cursor:pointer;border-bottom:1px solid var(--taupe)}.link:hover{border-color:var(--tx)}
.icon-btn{position:relative;display:inline-grid;place-items:center;width:42px;height:42px;background:none;border:0;color:inherit;cursor:pointer;border-radius:50%}
.icon-btn:hover{background:var(--rose)}.icon-btn.lg{width:52px;height:52px;border:1px solid var(--line)}
[data-fav][aria-pressed=true]{color:#e58fa3}[data-fav][aria-pressed=true] svg{fill:currentColor}
.count{position:absolute;top:3px;right:1px;min-width:17px;height:17px;border-radius:9px;background:var(--tx);color:var(--bg);font-size:.66rem;display:grid;place-items:center;padding:0 4px}
.dot{position:absolute;top:9px;right:9px;width:7px;height:7px;border-radius:50%;background:#e58fa3}
/* header */
.header{position:sticky;top:0;z-index:40;background:transparent;border-bottom:1px solid transparent;transition:background .3s,border-color .3s}
body.on-home .header{position:fixed;left:0;right:0;top:0}
.header.solid{background:rgba(var(--bgrgb),.94);backdrop-filter:blur(8px);border-color:var(--line)}
.nav-in{max-width:var(--max);margin:0 auto;padding:0 var(--g);height:var(--hh);display:flex;align-items:center;justify-content:space-between;gap:1rem}
.brand{font-family:var(--serif);font-size:1.6rem;letter-spacing:.28em;font-weight:500}
.nav>ul{display:flex;gap:2.2rem}.nav a{position:relative;font-size:.85rem;font-weight:500;letter-spacing:.05em;padding:.4rem 0;display:inline-block}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--tx);transform:scaleX(0);transform-origin:left;transition:transform .3s}
.nav a:hover::after,.nav a.active::after{transform:scaleX(1)}
.has-dd{position:relative}.dd{position:absolute;top:100%;left:-1rem;min-width:200px;background:var(--bg);border:1px solid var(--line);padding:.6rem 1rem;opacity:0;visibility:hidden;transform:translateY(6px);transition:.25s;box-shadow:0 12px 30px rgba(0,0,0,0.14)}
.has-dd:hover .dd,.has-dd:focus-within .dd{opacity:1;visibility:visible;transform:none}.dd a{padding:.35rem 0;width:100%}
.nav-r{display:flex;align-items:center;gap:.2rem}.only-m{display:none}
.drawer{position:fixed;inset:0;z-index:60;background:var(--bg);transform:translateX(100%);visibility:hidden;transition:transform .4s cubic-bezier(.2,.7,.2,1),visibility .4s}
.drawer.open{transform:none;visibility:visible}.drawer-in{padding:1rem var(--g);height:100%;overflow:auto}.drawer-in>.icon-btn{margin-left:auto;display:grid}
.drawer li a{display:block;font-family:var(--serif);font-size:2.2rem;padding:.7rem 0;border-bottom:1px solid var(--line)}
.search{position:fixed;inset:0;z-index:70;background:rgba(var(--bgrgb),.97);overflow:auto}
.search-in{max-width:720px;margin:0 auto;padding:5rem var(--g) 2rem;position:relative}.search-in .close{position:absolute;right:var(--g);top:1rem}
.search-in input{width:100%;border:0;border-bottom:1px solid var(--tx);background:none;font:500 1.8rem var(--serif);padding:.6rem 0;outline:none}
.sr-list{margin-top:1rem}.sr-list a{display:flex;align-items:center;gap:1rem;padding:.7rem 0;border-bottom:1px solid var(--line)}.sr-list a span:nth-of-type(1){flex:1}.sr-list img{width:44px;height:58px;object-fit:cover}.sr-list .all a{border:0;font-size:.9rem;text-decoration:underline}
/* hero */
.hero{min-height:100svh;display:flex;align-items:center;background:radial-gradient(60% 50% at 80% 40%,var(--rose),transparent 70%),var(--bg);padding:calc(var(--hh) + 2rem) 0 4rem;overflow:hidden}
.hero-in{display:grid;grid-template-columns:1.1fr .9fr;gap:3rem;align-items:center;width:100%}
.hero-h{font-size:clamp(3rem,8vw,6.4rem);line-height:1;margin:0 0 1.5rem}
.hl{display:block;overflow:hidden;padding-bottom:.08em}.hl>span{display:block;transform:translateY(105%);transition:transform 1.1s cubic-bezier(.2,.7,.2,1)}
.hero-h.in .hl>span{transform:none}.hero-h .hl:nth-child(2)>span{transition-delay:.15s;font-style:italic}
.cta{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:2rem}
.hero-art{position:relative;height:min(62vh,560px)}
.hero-card{position:absolute;width:46%;aspect-ratio:3/4;box-shadow:0 24px 50px rgba(0,0,0,0.24);background:#fff;padding:6px}
.hero-card img{width:100%;height:100%;object-fit:cover}.c0{left:2%;top:8%;rotate:-5deg}.c1{right:4%;top:0;rotate:4deg}.c2{left:26%;bottom:0;rotate:-1deg}
/* sections */
.sec{padding:clamp(3rem,8vw,6rem) var(--g)}.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:2rem}.sec-head .eyebrow{margin-bottom:.6rem}
.grid{display:grid;gap:clamp(1rem,2.4vw,2rem) clamp(.8rem,2vw,1.6rem);grid-template-columns:repeat(4,1fr)}
.tile{position:relative}
.tile-img{display:block;aspect-ratio:3/4;overflow:hidden;background:var(--bg2);position:relative}
.tile-img img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1)}.tile:hover .tile-img img{transform:scale(1.04)}
.tile{transition:transform .3s}.tile:hover{transform:translateY(-2px)}
.badge{position:absolute;left:.6rem;top:.6rem;background:var(--bg);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;padding:.2rem .6rem}
.tile-actions{position:absolute;right:.4rem;top:.4rem;display:flex;flex-direction:column;gap:.2rem;opacity:0;transition:opacity .25s}
.tile-actions .icon-btn{background:rgba(var(--bgrgb),.92);width:38px;height:38px}
.tile:hover .tile-actions,.tile:focus-within .tile-actions{opacity:1}
@media(hover:none){.tile-actions{opacity:1}}
.tile-meta{display:flex;justify-content:space-between;gap:.5rem;margin-top:.8rem;align-items:baseline}.tile-meta h3{font-size:1.25rem}.price{font-size:.95rem;margin:0}.price.big{font-size:1.4rem;font-family:var(--serif)}
.tile-tags{font-size:.78rem;color:var(--tx2);margin:.1rem 0 0;letter-spacing:.04em}
.tax-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.tax{position:relative;display:block;aspect-ratio:4/5;overflow:hidden;background:var(--bg2)}.tax img{width:100%;height:100%;object-fit:cover;transition:transform .8s}.tax:hover img{transform:scale(1.05)}
.tax-name{position:absolute;left:0;right:0;bottom:0;padding:2.5rem 1rem 1rem;font:500 1.6rem var(--serif);color:var(--tx);background:linear-gradient(transparent,rgba(var(--bgrgb),.92))}
.chips{display:flex;flex-wrap:wrap;gap:.6rem}.chips a{display:inline-block;padding:.6rem 1.3rem;border:1px solid var(--taupe);font-family:var(--serif);font-size:1.25rem;transition:.25s}.chips a:hover{background:var(--lav);border-color:var(--lav)}
.feat-occ{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(1.5rem,5vw,5rem);align-items:center}.fo-img{aspect-ratio:4/3;overflow:hidden;background:var(--bg2)}.fo-img img{width:100%;height:100%;object-fit:cover}.fo-copy p{max-width:44ch;color:var(--tx2)}
.story{background:var(--bg2);padding:clamp(4rem,10vw,8rem) 0}.story-in{max-width:760px;text-align:center}.story-in p{color:var(--tx2);font-size:1.1rem}
.news-in{display:flex;justify-content:space-between;align-items:center;gap:2rem;flex-wrap:wrap;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:3rem 0}
.inline-form{display:flex;flex-wrap:wrap;gap:.5rem;max-width:460px;width:100%}.inline-form input{flex:1;min-width:180px;min-height:46px;border:1px solid var(--taupe);background:var(--w);padding:0 1rem;font:inherit}.inline-form .ferr{flex-basis:100%;margin:0}
/* footer */
.footer{border-top:1px solid var(--line);margin-top:2rem;padding-top:3rem}
.foot{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:2rem}.foot h2{font:500 .75rem var(--sans);letter-spacing:.18em;text-transform:uppercase;margin-bottom:1rem}.foot li{margin:.4rem 0}.foot a{font-size:.9rem;color:var(--tx2)}.foot a:hover{color:var(--tx)}
.copy{display:flex;gap:1rem;justify-content:space-between;padding-top:2rem;padding-bottom:2rem;font-size:.8rem;color:var(--tx2)}
/* listing */
.page-head{padding:clamp(2.5rem,6vw,4.5rem) 0 2rem}.page-head p{color:var(--tx2);margin-top:.8rem}
.banner{position:relative;background:var(--bg2);overflow:hidden}.banner-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.35;filter:blur(2px)}.banner-in{position:relative;padding-top:clamp(3rem,8vw,6rem);padding-bottom:clamp(3rem,8vw,6rem)}.banner-in p:last-child{max-width:52ch;color:var(--tx2);margin:1rem 0 0}
.toolbar{display:flex;gap:.8rem;align-items:center;flex-wrap:wrap;padding-bottom:1.2rem;border-bottom:1px solid var(--line);margin-bottom:1.5rem}
.search-field{flex:1;min-width:220px;display:flex;align-items:center;gap:.5rem;border:1px solid var(--taupe);background:var(--w);padding:0 .5rem 0 .9rem;min-height:46px}.search-field input{flex:1;border:0;outline:0;background:none;font:inherit;min-height:44px;min-width:0}
select,.fld input,.fld textarea,.price-range input{border:1px solid var(--taupe);background:var(--w);font:inherit;color:inherit;border-radius:0;min-height:46px;padding:0 .9rem}
select{padding-right:2rem}
.list-grid{display:grid;grid-template-columns:230px 1fr;gap:2.5rem;align-items:start}.list-grid .grid{grid-template-columns:repeat(3,1fr)}
.filters fieldset{border:0;padding:0;margin:0 0 1.6rem}.filters legend{font:500 .72rem var(--sans);letter-spacing:.18em;text-transform:uppercase;margin-bottom:.7rem;padding:0}.filters-head{display:flex;justify-content:space-between;align-items:center}.filters-head h2{font-size:1.5rem;margin-bottom:1rem}
.chk{display:flex;gap:.6rem;align-items:center;padding:.25rem 0;font-size:.92rem;cursor:pointer}.chk input{accent-color:var(--tx);width:16px;height:16px}
.price-range{display:flex;align-items:center;gap:.5rem}.price-range input{width:100%;min-width:0}
.results{font-size:.85rem;color:var(--tx2)}.more{text-align:center;margin-top:2.5rem}
.empty{text-align:center;padding:5rem 1rem;grid-column:1/-1}.empty h2{margin-bottom:.8rem}.empty p{color:var(--tx2)}
/* pdp */
.crumbs{padding:1.5rem 0;font-size:.82rem;color:var(--tx2)}.crumbs a:hover{color:var(--tx)}
.pdp-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(1.5rem,5vw,5rem);align-items:start}
.preview{position:sticky;top:calc(var(--hh) + 1rem)}
.pv-frame{position:relative;aspect-ratio:3/4;max-height:78vh;width:100%;background:var(--bg2);box-shadow:0 20px 50px rgba(0,0,0,0.19);overflow:hidden}
.pv-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;background:var(--bg2)}.pv-frame.static img{width:100%;height:100%;object-fit:cover}
.pv-state{position:absolute;inset:0;display:flex;flex-direction:column;gap:.8rem;align-items:center;justify-content:center;background:var(--bg2);text-align:center;padding:1rem;z-index:1}.pv-state[hidden]{display:none}
.spin{width:26px;height:26px;border:2px solid var(--taupe);border-top-color:var(--tx);border-radius:50%;animation:sp 1s linear infinite}@keyframes sp{to{rotate:360deg}}
.pv-bar{display:flex;justify-content:space-between;align-items:center;margin-top:.8rem}.pv-note{margin-top:.8rem;font-size:.85rem}
.pv-frame.full{position:fixed;inset:0;z-index:90;max-height:none;aspect-ratio:auto;height:100dvh}
.pv-exit{position:absolute;top:max(.8rem,env(safe-area-inset-top));left:.8rem;z-index:5}
.info h1{margin-bottom:.8rem}.desc{color:var(--tx2);max-width:48ch}.avail{font-size:.85rem}.avail.ok{color:#8fc79a}.avail.no{color:#e59a9a}
.buy{display:flex;gap:.7rem;flex-wrap:wrap;align-items:center;margin:1.6rem 0}.facts{border-top:1px solid var(--line);padding-top:1rem;font-size:.9rem;color:var(--tx2)}.facts li{padding:.2rem 0}
/* cart / checkout */
.cart-grid,.co-grid{display:grid;grid-template-columns:1fr 340px;gap:3rem;align-items:start}
.cl{display:grid;grid-template-columns:88px 1fr auto;gap:1.2rem;padding:1.2rem 0;border-bottom:1px solid var(--line);align-items:center}.cl-img img{aspect-ratio:3/4;object-fit:cover;width:88px}.cl h2{font-size:1.5rem}.cl-total{margin:0;font-family:var(--serif);font-size:1.3rem}
.qty{display:flex;gap:1rem;align-items:center}.qty input{width:70px;min-height:38px}
.summary{background:var(--bg2);padding:1.6rem;position:sticky;top:calc(var(--hh) + 1rem)}.summary h2{font-size:1.6rem;margin-bottom:1rem}.summary .btn{margin:1rem 0 .8rem}
dl{display:grid;grid-template-columns:1fr auto;gap:.5rem 1rem;margin:1rem 0}dt{color:var(--tx2)}dd{margin:0;text-align:right}
.mini li{display:grid;grid-template-columns:44px 1fr auto;gap:.8rem;align-items:center;padding:.5rem 0}.mini img{width:44px;aspect-ratio:3/4;object-fit:cover}
.steps{display:flex;gap:1.2rem;flex-wrap:wrap;margin:0 0 2rem;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:var(--tx2)}.steps li{padding-bottom:.4rem;border-bottom:2px solid transparent}.steps .cur{color:var(--tx);border-color:var(--tx)}.steps .done{color:var(--tx);border-color:var(--taupe)}
.step{animation:fadeup .4s both}@keyframes fadeup{from{opacity:0;translate:0 8px}}
.step h2{font-size:1.9rem;margin-bottom:1.2rem}.co-nav{display:flex;gap:.8rem;margin-top:1.8rem}
.pay{display:flex;gap:.9rem;padding:1rem;border:1px solid var(--taupe);margin-bottom:.7rem;cursor:pointer;align-items:flex-start}.pay input{accent-color:var(--tx);margin-top:.35rem}
.fld{margin-bottom:1.1rem}.fld label{display:block;font-size:.82rem;margin-bottom:.35rem;color:var(--tx2)}.fld input,.fld textarea{width:100%}.fld textarea{padding:.7rem .9rem;resize:vertical}
.ferr{color:#e59a9a;font-size:.85rem;margin:.3rem 0 0;min-height:0}
.note{background:var(--lav);padding:.9rem 1.1rem;font-size:.92rem}.box{border:1px solid var(--line);background:var(--w);padding:1.4rem;margin:1.5rem 0}
.success{text-align:center;padding-top:4rem}.success .lead{margin:0 auto 1rem}.success .cta{justify-content:center}.success .box{text-align:left}
/* account */
.acct{display:grid;grid-template-columns:200px 1fr;gap:3rem;padding-top:3rem}.acct-nav{display:flex;flex-direction:column;gap:.2rem;align-items:flex-start}.acct-nav a,.acct-nav .link{padding:.45rem 0;border:0}.acct-nav a[aria-current]{border-bottom:1px solid var(--tx)}
.acct-main h1{font-size:clamp(2rem,4vw,3rem);margin-bottom:1.5rem}.acct-main h2{font-size:1.7rem;margin:2rem 0 1rem}
.stats{display:flex;gap:1rem}.stats div{background:var(--bg2);padding:1.2rem 2rem}.stats b{display:block;font:500 2.4rem var(--serif)}.stats span{font-size:.8rem;color:var(--tx2);letter-spacing:.1em;text-transform:uppercase}
.tw{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.9rem}th,td{text-align:left;padding:.8rem .7rem;border-bottom:1px solid var(--line)}th{font:500 .72rem var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--tx2)}
.timeline{display:flex;gap:0;margin:1.5rem 0}.timeline li{flex:1;font-size:.8rem;color:var(--tx2);padding-top:1rem;border-top:2px solid var(--line)}.timeline .done{color:var(--tx);border-color:var(--tx)}
blockquote{margin:1rem 0;padding:.5rem 1.2rem;border-left:2px solid var(--taupe);font:italic 1.25rem var(--serif);color:var(--tx2)}
.prose p{color:var(--tx2)}details{border-bottom:1px solid var(--line);padding:1rem 0}summary{cursor:pointer;font:500 1.4rem var(--serif)}details p{margin:.7rem 0 0}
.toast{position:fixed;left:50%;bottom:1.4rem;translate:-50% 20px;opacity:0;pointer-events:none;background:var(--tx);color:var(--bg);padding:.8rem 1.3rem;font-size:.9rem;z-index:120;transition:.3s;max-width:90vw}.toast.show{opacity:1;translate:-50% 0}.toast.bad{background:#8a3a3a;color:#fff}
.loading{padding:6rem 0;text-align:center;color:var(--tx2)}
/* reveal */
.reveal{opacity:0;translate:0 18px;transition:opacity .9s cubic-bezier(.2,.7,.2,1) var(--d,0ms),translate .9s cubic-bezier(.2,.7,.2,1) var(--d,0ms)}.reveal.in{opacity:1;translate:none}
@media(max-width:1100px){.grid{grid-template-columns:repeat(3,1fr)}.list-grid .grid{grid-template-columns:repeat(2,1fr)}.tax-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:900px){
  .nav,.hide-s{display:none}.only-m{display:inline-grid}.btn.only-m{display:inline-flex}
  .hero-in,.feat-occ,.pdp-grid,.cart-grid,.co-grid,.acct{grid-template-columns:1fr}.hero{min-height:auto;padding-top:calc(var(--hh) + 1.5rem)}.hero-art{height:360px;order:-1}
  .preview,.summary{position:static}.foot{grid-template-columns:1fr 1fr}.foot>div:first-child{grid-column:1/-1}
  .list-grid{grid-template-columns:1fr}.filters{position:fixed;inset:auto 0 0 0;z-index:80;max-height:85dvh;overflow:auto;background:var(--bg);padding:1.4rem var(--g) 2rem;transform:translateY(105%);visibility:hidden;transition:transform .35s,visibility .35s;box-shadow:0 -20px 40px rgba(0,0,0,0.36)}.filters.open{transform:none;visibility:visible}
  .acct-nav{flex-direction:row;flex-wrap:wrap;gap:1rem}.timeline{flex-direction:column}.timeline li{border-top:0;border-left:2px solid var(--line);padding:.3rem 0 .3rem 1rem}.timeline .done{border-color:var(--tx)}
}
@media(min-width:901px){.filters .only-m,#apply{display:none}}
@media(max-width:700px){.grid,.list-grid .grid{grid-template-columns:repeat(2,1fr)}.tax-grid{grid-template-columns:repeat(2,1fr)}.tile-meta{flex-direction:column;gap:0}.sec-head{align-items:flex-start;flex-direction:column}.brand{font-size:1.35rem;letter-spacing:.22em}.cl{grid-template-columns:72px 1fr}.cl-total{grid-column:2}.cl-img img{width:72px}.hero-card{width:52%}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reveal{opacity:1;translate:none}.hl>span{transform:none}}
[tabindex="-1"]:focus{outline:none}
/* ---- effects ---- */
.rw{display:inline}.rw .w{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.1em}.rw .w>span{display:inline-block;transform:translateY(110%);transition:transform .9s cubic-bezier(.2,.7,.2,1) calc(var(--i)*70ms)}.rw.in .w>span{transform:none}
.hero{position:relative;--mx:70%;--my:30%}.hero::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(420px circle at var(--mx) var(--my),rgba(150,95,115,.32),transparent 70%);opacity:.9}
.hero-in{position:relative}
[data-tilt]{transition:transform .35s cubic-bezier(.2,.7,.2,1);will-change:transform;position:relative}[data-tilt].tilting{transition:transform .08s linear}
.tile-img::after,.hero-card::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at var(--gx,50%) var(--gy,50%),rgba(255,255,255,.38),transparent 55%);opacity:0;transition:opacity .3s}.tilting::after{opacity:1}
[data-mag]{transition:translate .25s cubic-bezier(.2,.7,.2,1),background .25s,color .25s}
.marquee{overflow:hidden;border-block:1px solid var(--line);padding:1.1rem 0;background:var(--bg)}
.mq-track{display:flex;width:max-content;animation:mq 38s linear infinite;font:italic 500 clamp(1.5rem,3vw,2.2rem) var(--serif);color:var(--tx2);white-space:nowrap}.mq-track i{font-style:normal;color:var(--taupe);margin:0 .9rem}.marquee:hover .mq-track{animation-play-state:paused}
@keyframes mq{to{transform:translateX(-50%)}}
.tax.reveal,.fo-img{clip-path:inset(7% 7% 7% 7%);transition:opacity .9s var(--d,0ms),translate .9s var(--d,0ms),clip-path 1.2s cubic-bezier(.2,.7,.2,1) var(--d,0ms)}
.tax.reveal.in,.feat-occ.in .fo-img{clip-path:inset(0)}
.tax img,.fo-img img{scale:1.18;transition:scale 1.6s cubic-bezier(.2,.7,.2,1)}.tax.in img,.feat-occ.in .fo-img img{scale:1}.tax:hover img{scale:1.05}
/* perspective carousel */
.pc{position:relative;perspective:1400px;margin:0 calc(var(--g) * -1)}
.pc-track{display:flex;gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:1.5rem calc(50% - 140px);scrollbar-width:none;-webkit-overflow-scrolling:touch}.pc-track::-webkit-scrollbar{display:none}
.pc-item{flex:0 0 280px;scroll-snap-align:center;transform-style:preserve-3d;transition:opacity .2s}
.pc-ctl{display:flex;justify-content:center;gap:.6rem;margin-top:.5rem}.pc-ctl .icon-btn{border:1px solid var(--taupe)}.pc-prev svg{rotate:180deg}
.pc-item .tile-actions{opacity:1}
@media(max-width:700px){.pc-item{flex-basis:230px}.pc-track{padding-inline:calc(50% - 115px)}}
/* sticky scroll story */
.story{background:var(--bg2);padding:clamp(3rem,8vw,7rem) 0;text-align:left}
.story-in{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,6rem);max-width:var(--max);text-align:left}
.story-h{margin-bottom:3rem;max-width:14ch}
.story-step{min-height:62vh;display:flex;flex-direction:column;justify-content:center;opacity:.28;transition:opacity .6s}.story-step.on{opacity:1}.story-step h3{font-size:2rem;margin-bottom:.6rem}.story-step p{color:var(--tx2);max-width:44ch}
.story-vis{position:sticky;top:calc(var(--hh) + 2rem);height:min(70vh,560px);align-self:start}
.sv{position:absolute;inset:0;margin:auto;width:min(100%,400px);aspect-ratio:3/4;max-height:100%;opacity:0;scale:.94;rotate:2deg;transition:opacity .8s,scale 1s cubic-bezier(.2,.7,.2,1),rotate 1s;box-shadow:0 30px 60px rgba(0,0,0,0.29);background:#ece6e1;padding:8px}.sv.on{opacity:1;scale:1;rotate:-1.5deg}.sv img{width:100%;height:100%;object-fit:cover}
@media(max-width:900px){.story-in{grid-template-columns:1fr}.story-vis{order:-1;top:var(--hh);height:36vh;z-index:1;background:var(--bg2);padding:.6rem 0;overflow:hidden}.sv{width:auto;height:100%;aspect-ratio:3/4}.story-step{min-height:44vh}.story-h{margin-bottom:1rem}}
/* floating pill nav on scroll (desktop) */
@media(min-width:901px){.header.solid{background:transparent;backdrop-filter:none;border-color:transparent;pointer-events:none}.header.solid .nav-in{pointer-events:auto;max-width:1060px;height:56px;margin-top:10px;border-radius:999px;background:rgba(var(--bgrgb),.88);backdrop-filter:blur(10px);border:1px solid var(--line);box-shadow:0 10px 30px rgba(0,0,0,0.17);transition:max-width .5s cubic-bezier(.2,.7,.2,1)}.nav-in{transition:max-width .5s cubic-bezier(.2,.7,.2,1),height .4s,margin .4s}.header.solid .brand{font-size:1.3rem}}
/* quick view modal */
.qv{border:0;padding:0;background:var(--bg);width:min(920px,94vw);max-height:92dvh;overflow:auto;margin:auto;opacity:0;transform:translateY(24px) scale(.97);transition:opacity .28s,transform .35s cubic-bezier(.2,.7,.2,1);box-shadow:0 40px 80px rgba(0,0,0,0.6)}
.qv.open{opacity:1;transform:none}.qv::backdrop{background:rgba(0,0,0,0.75);backdrop-filter:blur(3px)}
.qv-x{position:absolute;right:.5rem;top:.5rem;z-index:3;background:rgba(var(--bgrgb),.9)}
.qv-grid{display:grid;grid-template-columns:1fr 1fr}.qv-media{aspect-ratio:3/4;background:var(--bg2);position:relative}.qv-media iframe,.qv-media img{position:absolute;inset:0;width:100%;height:100%;border:0;object-fit:cover}
.qv-info{padding:clamp(1.4rem,4vw,3rem);align-self:center}.qv-info h2{margin-bottom:.6rem}
@media(max-width:700px){.qv-grid{grid-template-columns:1fr}.qv-media{aspect-ratio:4/3}}
@media(prefers-reduced-motion:reduce){.mq-track{animation:none}.rw .w>span{transform:none}.tax.reveal,.fo-img{clip-path:none}.tax img,.fo-img img{scale:1}.qv{transition:none;opacity:1;transform:none}}
