:root{--paper:#f5f1e5;--ink:#20372b;--forest:#193b2e;--line:#d2d2c8;--muted:#5e695e}*{box-sizing:border-box}body{margin:0;background:#14251e;color:var(--paper);font:16px Arial,Helvetica,sans-serif}button,select{font:inherit}button{cursor:pointer;border:0;background:none;color:inherit}a{color:inherit;text-decoration:none}button,a,select{touch-action:manipulation}button:focus-visible,a:focus-visible,select:focus-visible{outline:2px solid #dbb976;outline-offset:5px}img{max-width:100%;display:block}h1,h2,h3,p{margin:0}h1,h2,.brand{font-family:Georgia,'Times New Roman',serif;font-weight:400}[hidden]{display:none!important}header{height:90px;padding:0 4%;display:flex;align-items:center;justify-content:space-between;background:#172b22;border-bottom:1px solid #65725b44;position:relative;z-index:9}.brand{display:flex;gap:16px;align-items:center;font-size:35px;letter-spacing:-1.6px;line-height:1}.brand>img{width:49px;height:auto}.brand small{display:block;font:9px Arial;letter-spacing:.23em;margin-top:9px;color:#c1c8b7}nav{display:flex;gap:32px}nav button{font-size:14px;padding:13px 0;position:relative;color:#c7cdbf}nav button.active{color:var(--paper)}nav button.active:after{content:'';height:1px;background:#d8bf85;position:absolute;bottom:4px;left:0;right:0}.bag-button{font-size:14px;display:flex;gap:12px;align-items:center}.bag-button span{border:1px solid #e0e1c188;border-radius:50%;width:26px;height:26px;display:grid;place-items:center;font-size:12px}main{height:calc(100svh - 142px);min-height:600px}.scene{height:100%;position:relative;overflow:hidden;isolation:isolate}.scene.active{animation:enter-scene .65s ease both}@keyframes enter-scene{from{opacity:0;transform:scale(1.035)}to{opacity:1;transform:scale(1)}}.room-bg,.closet-bg,.desk-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-3}.room-bg{object-position:center 53%}.room-shade{position:absolute;inset:0;z-index:-2;background:linear-gradient(0deg,#08170ed6,transparent 42%),linear-gradient(90deg,#0b180c30,transparent 65%)}.room-intro{position:absolute;left:4.5%;bottom:7.5%;text-shadow:0 3px 24px #000a;pointer-events:none}.eyebrow{font-size:11px;letter-spacing:.16em;line-height:1.7}.room-intro h1{font-size:clamp(44px,4.7vw,72px);line-height:1.05;letter-spacing:-2px;margin:15px 0}.room-intro p{font-size:15px;line-height:1.7;color:#e1ddcb}.hotspot{position:absolute;display:flex;gap:12px;align-items:center;background:#f4eee3ed;backdrop-filter:blur(10px);border:1px solid #fff8;box-shadow:0 8px 30px #0003;padding:13px 17px;color:#24362c;text-align:left;border-radius:3px;transition:transform .2s,background .2s;font-size:15px}.hotspot:hover{transform:translateY(-5px);background:#fff8df}.hotspot small{display:block;font-size:9px;letter-spacing:.14em;margin-top:5px}.target{width:27px;height:27px;border:1px solid #65785988;border-radius:50%;display:grid;place-items:center;font-size:23px;font-weight:200}.closet-hotspot{left:68%;top:48%}.desk-hotspot{left:22%;top:43%}.room-note{position:absolute;bottom:35px;right:4%;font-size:12px;letter-spacing:.03em;color:#d4d8c7}footer{height:52px;padding:0 4%;display:flex;align-items:center;justify-content:space-between;background:#172b22;font-size:10px;letter-spacing:.12em;gap:20px}footer button{font-size:12px;border-bottom:1px solid #738475;padding:4px 0;letter-spacing:0}.preview-note{font-size:11px;letter-spacing:0;color:#bcc6b7}.closet-bg{object-fit:fill}.closet-shade{position:absolute;inset:0;background:linear-gradient(0deg,#0d130df0,transparent 30%);z-index:-2}.scene-heading{position:absolute;left:4.5%;top:30px;z-index:3}.back-room{padding:5px 0;font-size:12px;letter-spacing:.02em;color:#ece2c9}.scene-heading h1{font-size:50px;letter-spacing:-2px;margin:16px 0 10px;line-height:1}.scene-heading p{font-size:14px;color:#d7d6c7;line-height:1.6}.closet .scene-heading{top:auto;bottom:33px}.closet .scene-heading h1{font-size:40px;margin:11px 0}.clothes-rail{position:absolute;left:9%;right:9%;height:73%;top:8.9%;isolation:isolate}.garment{position:absolute;top:0;left:calc(var(--i)*9.5%);width:23%;height:100%;padding:0;transform:translateX(var(--offset));transform-origin:50% 0;transition:transform .48s cubic-bezier(.2,.8,.2,1),filter .35s;z-index:calc(12 - var(--i));filter:drop-shadow(8px 8px 9px #0008);display:flex;justify-content:center;align-items:flex-start}.garment img{width:100%;height:auto;max-height:100%;object-fit:contain;object-position:50% 0;pointer-events:none}.garment-jeans{width:18%}.garment-jorts{width:19%}.garment-tonal>img{filter:sepia(.8) hue-rotate(65deg) saturate(.9)}.garment.selected{transform:translateX(var(--offset)) scale(1.07) rotate(-2deg);z-index:30;filter:drop-shadow(6px 12px 14px #0008)}.has-selection .garment:not(.selected){filter:brightness(.78) drop-shadow(8px 8px 8px #0008)}.garment-tag{position:absolute;top:18%;left:52%;padding:5px;background:#e8ddbd;color:#302f24;font-size:9px;opacity:0;transition:opacity .25s;box-shadow:0 2px 6px #0004}.garment.selected .garment-tag{opacity:1}.rail-caption{position:absolute;left:40%;bottom:42px;z-index:3;text-shadow:0 2px 10px #000c}.rail-caption>span{font-size:10px;letter-spacing:.16em;color:#d5c7a2}.rail-caption p{font:28px Georgia;margin-top:8px}.rail-caption small{display:block;font:12px Arial;margin-top:9px;color:#d4d3be}.closet-shelf{position:absolute;right:6.5%;bottom:7%;display:flex;gap:14px;z-index:4}.closet-shelf button{width:95px;padding:0;transform:rotate(3deg);transition:.25s;background:#ece5d5;box-shadow:0 8px 22px #0007;color:var(--ink)}.closet-shelf button:nth-child(2){transform:rotate(-4deg)}.closet-shelf button:hover{transform:translateY(-9px) rotate(0deg)}.closet-shelf img{height:74px;width:100%;object-fit:cover}.closet-shelf span{display:block;padding:7px 5px;font-size:9px;line-height:1.4}.swipe-hint{display:none}.desk-bg{width:180%;max-width:none;object-position:left 50%;filter:brightness(.53)}.desk-shade{position:absolute;inset:0;z-index:-2;background:linear-gradient(0deg,#0e1a10d9,transparent 80%)}.desk .scene-heading{top:34px}.desk .scene-heading h1{font-size:58px}.desk-objects{position:absolute;left:10%;right:10%;bottom:9%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:38px;align-items:end}.desk-object{padding:0;background:#ece4d2;box-shadow:0 15px 50px #0008;color:#283528;transition:transform .3s;transform:rotate(-3deg);text-align:left}.desk-object:nth-child(2){transform:rotate(3deg);margin-bottom:25px}.desk-object:nth-child(3){transform:rotate(-1deg)}.desk-object:hover{transform:translateY(-12px) rotate(0deg)}.desk-object>img{width:100%;height:clamp(180px,25vh,290px);object-fit:cover}.desk-object>span{display:block;padding:18px;font-size:10px;letter-spacing:.1em}.desk-object em{display:block;font:16px Georgia;margin-top:10px;letter-spacing:0}.button{display:flex;justify-content:space-between;align-items:center;padding:18px 23px;font-size:14px;border:1px solid var(--ink);gap:20px}.button.dark{color:var(--paper);background:var(--forest);width:100%;margin-top:24px}.button.dark:hover{background:#365841}.sample-note{font-size:12px;color:var(--muted);line-height:1.6;margin-top:16px}select{width:100%;padding:13px;background:transparent;border:1px solid #9ba69c;color:var(--ink);border-radius:0}
dialog{background:var(--paper);color:var(--ink);border:0;padding:0;max-height:90dvh;max-width:1100px;width:90vw;overflow:auto;box-shadow:0 15px 80px #0003}dialog::backdrop{background:#14251ac0;backdrop-filter:blur(4px)}.close{position:absolute;top:15px;right:18px;width:42px;height:42px;background:var(--paper);z-index:2;font-size:32px;line-height:1}.product-layout{display:grid;grid-template-columns:1fr 1fr}.detail-photo{min-height:630px;position:relative;background:#dedcd1}.detail-photo>img{width:100%;height:100%;position:absolute;object-fit:cover}.view-toggle{position:absolute;bottom:20px;left:20px;background:var(--paper);padding:12px 17px;font-size:13px}.detail-info{padding:65px 42px 40px}.detail-info h2{font-size:42px;line-height:1.08;margin:18px 0}.detail-price{margin-bottom:25px;font-size:19px}.detail-info>p:not(.eyebrow,.detail-price,.sample-note){font-size:15px;line-height:1.7;color:var(--muted)}.details{border-bottom:1px solid var(--line);padding:15px 0 25px;margin-bottom:22px}.detail-info label{display:block;font-size:13px;margin:20px 0 9px}select{width:100%;padding:13px;background:transparent;border:1px solid #9ba69c;color:var(--ink);border-radius:0}.button.dark{background:var(--forest);color:var(--paper);width:100%;margin-top:24px}.button.dark:hover{background:#2c4f3e}.sample-note{font-size:12px;color:var(--muted);line-height:1.6;margin-top:16px}#bag-dialog{margin:0 0 0 auto;top:0;right:0;width:560px;max-width:100%;height:100dvh;max-height:100dvh;padding:32px}.bag-heading{border-bottom:1px solid var(--line);padding-bottom:26px}.bag-heading h2{font-size:40px}.bag-heading .close{top:29px}.bag-item{display:grid;grid-template-columns:85px 1fr auto;gap:17px;padding:24px 0;border-bottom:1px solid var(--line)}.bag-item>img{width:85px;height:105px;object-fit:cover}.bag-item h3{font-size:15px;font-weight:400}.bag-item p{font-size:12px;color:var(--muted);margin:8px 0}.bag-item strong{font-weight:400;font-size:14px}.quantity{display:flex;align-items:center;gap:11px;margin-top:13px;font-size:13px}.quantity button{border:1px solid var(--line);width:28px;height:28px;padding:0}.quantity .remove{border:0;text-decoration:underline;width:auto;margin-left:auto;font-size:12px}.subtotal{display:flex;justify-content:space-between;margin-top:27px}.empty-bag{text-align:center;padding:60px 20px}.empty-bag img{width:80px;filter:brightness(0) saturate(100%);opacity:.65;margin:0 auto 30px}.empty-bag h3{font:28px Georgia;line-height:1.3;margin-bottom:12px}.empty-bag p{color:var(--muted);font-size:14px}.checkout-message{background:#e3e8db;padding:16px;margin-top:18px;line-height:1.5;font-size:14px}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,30px);background:var(--forest);border:1px solid #a9b69f;color:var(--paper);padding:17px 26px;box-shadow:0 6px 25px #0002;opacity:0;pointer-events:none;transition:.25s;z-index:100;font-size:14px;max-width:90vw}.toast.show{opacity:1;transform:translate(-50%,0)}#flight{position:fixed;inset:90px 0 52px;pointer-events:none;overflow:hidden;z-index:8}.fly{position:absolute;width:49px;height:43px;opacity:.8;filter:drop-shadow(1px 4px 3px #0008);animation:flight-one 29s linear infinite}.bug{position:relative;width:100%;height:100%;perspective:120px;transform:rotate(-15deg)}.bug img{position:absolute;width:100%;height:100%;object-fit:contain;inset:0}.left-wing{clip-path:polygon(0 0,49% 0,49% 64%,0 64%);transform-origin:49% 35%;animation:flap-left .13s ease-in-out infinite alternate}.right-wing{clip-path:polygon(51% 0,100% 0,100% 64%,51% 64%);transform-origin:51% 35%;animation:flap-right .13s ease-in-out infinite alternate}.bug-body{clip-path:polygon(42% 0,58% 0,58% 47%,71% 62%,58% 69%,58% 100%,42% 100%,42% 69%,29% 62%,42% 47%)}.fly-1{width:32px;height:28px;animation:flight-two 37s linear infinite;opacity:.7}.fly-2{width:41px;height:36px;animation:flight-three 43s linear infinite;opacity:.75}.fly-3{width:27px;height:24px;animation:flight-two 55s linear infinite reverse;opacity:.6}.fly-1 .wing{animation-duration:.11s}.fly-2 .wing{animation-duration:.16s}.flight-paused .fly,.flight-paused .wing{animation-play-state:paused}@keyframes flap-left{from{transform:rotateY(-70deg) rotateZ(9deg)}to{transform:rotateY(8deg) rotateZ(-4deg)}}@keyframes flap-right{from{transform:rotateY(70deg) rotateZ(-9deg)}to{transform:rotateY(-8deg) rotateZ(4deg)}}@keyframes flight-one{0%{transform:translate(7vw,22vh) rotate(20deg)}20%{transform:translate(30vw,8vh) rotate(-20deg)}45%{transform:translate(62vw,44vh) rotate(30deg)}68%{transform:translate(85vw,25vh) rotate(-35deg)}85%{transform:translate(38vw,65vh) rotate(45deg)}100%{transform:translate(7vw,22vh) rotate(20deg)}}@keyframes flight-two{0%{transform:translate(88vw,58vh) rotate(-30deg)}25%{transform:translate(55vw,50vh) rotate(35deg)}50%{transform:translate(21vw,63vh) rotate(55deg)}75%{transform:translate(42vw,14vh) rotate(-15deg)}100%{transform:translate(88vw,58vh) rotate(-30deg)}}@keyframes flight-three{0%{transform:translate(66vw,13vh) rotate(20deg)}30%{transform:translate(90vw,55vh) rotate(55deg)}65%{transform:translate(14vw,35vh) rotate(-60deg)}100%{transform:translate(66vw,13vh) rotate(20deg)}}body:has(dialog[open]){overflow:hidden}body:has(dialog[open]) #flight{visibility:hidden}.details{border-bottom:1px solid var(--line);padding:15px 0 25px;margin-bottom:22px}.detail-info label{display:block;font-size:13px;margin:20px 0 9px}.detail-info .eyebrow{font-size:10px}dialog{color:var(--ink)}@media(max-width:1000px){.brand{font-size:30px}.brand>img{width:40px}nav{gap:20px}.room-intro h1{font-size:49px}.closet-hotspot{left:66%}.desk-hotspot{left:14%}.desk-objects{left:6%;right:6%;gap:22px}.closet .scene-heading h1{font-size:32px}.closet .scene-heading p{max-width:220px;font-size:12px}.rail-caption{left:36%;bottom:40px}.rail-caption p{font-size:24px}.closet-shelf{right:6%;gap:9px}.closet-shelf button{width:75px}.closet-shelf img{height:60px}.detail-info{padding:60px 25px 30px}.detail-info h2{font-size:34px}}@media(max-width:640px){header{height:112px;padding:16px 5% 42px;align-items:center}.brand{font-size:29px}.brand>img{width:36px}.brand small{font-size:8px}nav{position:absolute;bottom:8px;left:5%;right:5%;justify-content:center;gap:38px}nav button{font-size:12px;padding:9px 0}.bag-button{font-size:12px}.bag-button span{width:22px;height:22px}.scene.active{animation-duration:.35s}main{height:calc(100svh - 169px);min-height:610px}.studio .room-bg{object-position:63% center}.room-intro{left:6%;bottom:16%;}.room-intro h1{font-size:45px;letter-spacing:-1.5px}.room-intro .eyebrow{font-size:9px;max-width:260px}.room-intro p{font-size:13px}.room-shade{background:linear-gradient(0deg,#08170ef0,transparent 90%)}.hotspot{font-size:12px;padding:12px;gap:8px}.hotspot small{font-size:8px;letter-spacing:.05em}.target{width:22px;height:22px;font-size:19px}.closet-hotspot{top:27%;left:auto;right:7%}.desk-hotspot{top:51%;left:6%}.room-note{left:6%;right:auto;bottom:6%;font-size:11px}footer{height:57px;flex-wrap:wrap;gap:3px 15px;padding:9px 5%;font-size:8px}footer .preview-note{order:3;width:100%;font-size:9px}footer button{font-size:10px;margin-left:auto}#flight{inset:112px 0 57px}.fly{width:37px;height:32px}.fly-1{width:27px;height:24px}.fly-3{display:none}.closet-bg{object-fit:cover;object-position:center}.clothes-rail{left:0;right:0;top:9%;height:64%;overflow-x:auto;overflow-y:hidden;padding-left:28px;scrollbar-width:none;isolation:isolate}.clothes-rail:after{content:'';position:absolute;width:1550px;height:1px;pointer-events:none;left:0;top:0}.garment{left:calc(28px + var(--i)*150px);width:200px;max-height:100%;height:auto;min-height:300px}.garment-jeans{width:163px}.garment-jorts{width:180px}.garment.selected{transform:translateX(0) scale(1.03);}.garment{transform:none}.garment-tag{display:none}.closet .scene-heading{left:6%;bottom:55px}.closet .scene-heading h1{font-size:33px}.closet .scene-heading p{display:none}.rail-caption{left:6%;bottom:145px}.rail-caption p{font-size:24px}.rail-caption>span{font-size:9px}.rail-caption small{font-size:11px}.closet-shelf{right:5%;bottom:55px}.closet-shelf button{width:66px}.closet-shelf img{height:57px}.closet-shelf span{font-size:8px}.swipe-hint{display:block;position:absolute;bottom:21px;left:6%;font-size:11px;color:#e1d5b8}.desk .scene-heading{top:20px;left:6%}.desk .scene-heading h1{font-size:43px;margin:15px 0 10px}.desk .scene-heading p{font-size:12px}.desk-bg{width:250%}.desk-objects{left:6%;right:6%;bottom:6%;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.desk-object:first-child{grid-column:1/3;width:65%;justify-self:center}.desk-object:nth-child(2){margin-bottom:0}.desk-object>img{height:135px}.desk-object:first-child>img{height:160px}.desk-object>span{padding:10px;font-size:8px;line-height:1.5;letter-spacing:.03em}.desk-object em{font-size:13px;margin-top:5px}.product-layout{grid-template-columns:1fr}#product-dialog{width:94vw;max-height:94dvh}.detail-photo{min-height:0;height:410px}.detail-info{padding:28px 23px}.detail-info h2{font-size:36px}#bag-dialog{padding:28px 20px}.bag-item{grid-template-columns:70px 1fr auto;gap:10px}.bag-item>img{width:70px;height:95px}.bag-item h3{font-size:14px}.quantity{gap:7px}.close{right:10px}.sample-note{font-size:12px}}@media(prefers-reduced-motion:reduce){.scene.active{animation:none}*,*::before,*::after{transition:none!important}}

/* Objects that open music and live dates. */
.desk-hotspot{left:21%;top:58%}.laptop-hotspot{left:25%;top:42%;font-size:12px;padding:9px 12px}.laptop-hotspot small{font-size:8px}.closet-hotspot{left:72%;top:46%}.tour-poster{position:absolute;left:43.1%;top:23%;width:5.5%;min-width:70px;aspect-ratio:.65;background:#d9c59f;color:#26392c;padding:10px 5px;box-shadow:2px 3px 6px #0008,inset 0 0 15px #70552e44;transform:rotate(-2deg);display:flex;flex-direction:column;align-items:center;justify-content:space-around;transition:transform .2s}.tour-poster:hover{transform:rotate(0) scale(1.09)}.tour-poster>span{font:bold clamp(8px,.8vw,12px) Georgia;letter-spacing:.03em}.tour-poster img{width:55%;filter:brightness(0);opacity:.8}.tour-poster strong{font:clamp(20px,2vw,32px) Georgia}.tour-poster small{font-size:5px;letter-spacing:.06em}.studio-panel{max-width:640px;padding:55px 40px 36px}.studio-panel h2{font-size:50px;letter-spacing:-1px;margin:15px 0}.studio-panel>p:not(.eyebrow){font-size:14px;line-height:1.7;color:var(--muted);margin-bottom:24px}#spotify-player{min-height:352px;background:#20372b;border-radius:12px;overflow:hidden;margin:22px 0 20px}#spotify-player iframe{display:block;border:0}.external-link{display:inline-block;font-size:13px;text-decoration:underline;text-underline-offset:5px;margin-top:15px}.tour-mark{width:130px;filter:brightness(0);opacity:.8;margin:30px auto}.tour-panel{text-align:center}.tour-panel .button{margin-top:25px}.desk-listen{position:absolute;right:5%;top:60px;border-bottom:1px solid #d7c5a7;padding:10px 0;font-size:13px;z-index:4}
@media(max-width:640px){.studio .room-bg{object-fit:cover;object-position:50% center}.tour-poster{left:45%;top:9%;width:70px;min-width:0;aspect-ratio:.68;padding:7px}.tour-poster>span{font-size:9px}.tour-poster strong{font-size:22px}.tour-poster small{font-size:5px}.closet-hotspot{left:auto;right:5%;top:31%}.laptop-hotspot{left:5%;top:29%;max-width:175px}.desk-hotspot{left:5%;top:44%}.room-intro{bottom:13%}.room-intro h1{font-size:40px}.desk-listen{right:auto;left:6%;top:161px;font-size:11px}.studio-panel{padding:54px 22px 30px}.studio-panel h2{font-size:38px}.studio-panel>p:not(.eyebrow){font-size:13px}}

/* Quiet object-based exploration and spatial transitions. */
.studio .hotspot{background:none;border:0;box-shadow:none;backdrop-filter:none;padding:0;display:flex;align-items:center;justify-content:center;color:var(--paper);border-radius:0}.studio .hotspot .target{display:none}.studio .hotspot>span:last-child{opacity:0;transform:translateY(8px);transition:opacity .25s,transform .25s;background:#19291de8;padding:10px 15px;border:1px solid #e5d6ad55;border-radius:2px;font-size:12px;white-space:nowrap;box-shadow:0 8px 20px #0004}.studio .hotspot:hover,.studio .hotspot:focus-visible{transform:none;background:#edcf8c0a;box-shadow:inset 0 0 45px #edcf8c0d}.studio .hotspot:hover>span:last-child,.studio .hotspot:focus-visible>span:last-child{opacity:1;transform:translateY(0)}.studio .closet-hotspot{left:71%;top:15%;width:18%;height:56%}.studio .desk-hotspot{left:19%;top:51%;width:21%;height:19%}.studio .laptop-hotspot{left:29%;top:44%;width:8%;height:8%;z-index:2}.room-note{color:#eee0c2}.room-intro{bottom:7%}.room-intro h1{font-size:clamp(38px,4vw,62px)}.room-intro p{font-size:13px}.scene{perspective:1100px}.studio .room-bg,.studio .tour-poster,.studio .room-shade{transition:transform .85s cubic-bezier(.6,.02,.18,1),filter .85s}.studio.travel-closet .room-bg{transform:scale(2.3);transform-origin:81% 42%;filter:blur(2px)}.studio.travel-desk .room-bg{transform:scale(2.5);transform-origin:30% 52%;filter:blur(2px)}.studio[class*="travel-"] .hotspot,.studio[class*="travel-"] .room-intro,.studio[class*="travel-"] .tour-poster,.studio[class*="travel-"] .room-note{opacity:0;transition:opacity .2s}.scene.active:not(.studio){animation:arrive .85s cubic-bezier(.2,.7,.2,1) both}@keyframes arrive{from{opacity:0;transform:perspective(1200px) translateZ(-140px) rotateY(-5deg)}to{opacity:1;transform:perspective(1200px) translateZ(0) rotateY(0)}}
.clothes-rail{left:10%;right:10%;height:72%;top:8.9%;perspective:900px}.garment{left:calc(var(--i)*9%);width:29%;height:100%;transform:translateX(var(--offset)) rotateY(-66deg);transform-origin:50% 0;transition:transform .65s cubic-bezier(.2,.8,.2,1),filter .4s}.garment img{width:100%;height:100%;object-fit:fill}.garment-jeans{width:23%}.garment-jorts{width:24%;height:88%}.garment.selected{transform:translateX(var(--offset)) rotateY(-8deg) scale(1.03);filter:drop-shadow(8px 16px 12px #0009)}.clothes-rail.has-selection .garment:not(.selected){filter:brightness(.85) drop-shadow(8px 8px 8px #0008)}.closet .scene-heading{bottom:23px}.rail-caption{bottom:28px}.closet-shelf{bottom:4%}.desk-objects{left:15%;right:15%;bottom:18%;gap:40px;perspective:1000px}.desk-object{background:transparent;box-shadow:none;transform:rotate(-8deg) rotateX(18deg);position:relative}.desk-object:nth-child(2){transform:rotate(9deg) rotateX(12deg);margin-bottom:40px}.desk-object:nth-child(3){transform:rotate(-5deg) rotateX(20deg);width:65%;justify-self:center}.desk-object>img{object-fit:contain;filter:drop-shadow(9px 18px 10px #0008);height:clamp(190px,30vh,350px)}.desk-object>span{position:absolute;left:50%;bottom:-45px;transform:translateX(-50%);color:var(--paper);background:#19291ded;padding:12px 16px;white-space:nowrap;opacity:0;transition:opacity .25s}.desk-object:hover>span,.desk-object:focus-visible>span{opacity:1}.desk-object:hover,.desk-object:focus-visible{transform:translateY(-16px) rotate(0) rotateX(0)}.desk-object em{font-size:13px}.desk-bg{filter:brightness(.8);transform:scale(1.2);transform-origin:30% 55%}.desk-listen{opacity:.75;font-size:11px}.bug{animation:flutter-turn 4.7s ease-in-out infinite}.fly{animation-timing-function:ease-in-out;opacity:.65}.fly-1 .bug{animation-duration:6.3s}.fly-2 .bug{animation-duration:5.1s}.fly-3 .bug{animation-duration:7.5s}.wing{animation-timing-function:cubic-bezier(.4,0,.2,1)!important}.left-wing,.right-wing{animation-duration:.22s}.fly-1 .wing{animation-duration:.27s}.fly-2 .wing{animation-duration:.19s}.flight-paused .bug{animation-play-state:paused}@keyframes flutter-turn{0%,100%{transform:translateY(0) rotate(-12deg) rotateY(0)}20%{transform:translateY(-14px) rotate(9deg) rotateY(22deg)}45%{transform:translateY(6px) rotate(-7deg) rotateY(-14deg)}70%{transform:translateY(-9px) rotate(18deg) rotateY(17deg)}}
@media(max-width:640px){.studio .closet-hotspot{left:68%;top:22%;width:30%;height:32%}.studio .desk-hotspot{left:0;top:44%;width:35%;height:18%}.studio .laptop-hotspot{left:3%;top:32%;width:25%;height:12%}.studio .hotspot>span:last-child{font-size:10px;padding:8px}.room-intro{bottom:12%}.clothes-rail{left:0;right:0;height:65%;top:9%;perspective:1000px}.garment{left:calc(14px + var(--i)*110px);width:260px;height:100%;min-height:0;transform:rotateY(-58deg)}.garment-jeans{width:210px}.garment-jorts{width:220px;height:90%}.garment.selected{transform:rotateY(-12deg)}.clothes-rail:after{width:1250px}.closet .scene-heading{bottom:55px}.rail-caption{bottom:153px}.closet-shelf{bottom:55px}.desk-objects{left:7%;right:7%;bottom:12%;gap:28px}.desk-object:first-child{width:70%}.desk-object>img{height:135px}.desk-object:first-child>img{height:185px}.desk-object:nth-child(2){margin-bottom:0}.desk-object:nth-child(3){width:85%}.desk-object>span{font-size:7px;bottom:-28px;padding:7px}.desk-object em{font-size:11px}.room-note{max-width:260px;line-height:1.5}}
.garment img{height:100%;width:auto;max-width:none;object-fit:contain}.garment{height:66%;transform:translateX(var(--offset)) rotateY(-64deg);top:0}.garment-jeans{height:100%}.garment-jorts{height:78%}.garment.selected{transform:translateX(var(--offset)) rotateY(-12deg) scale(1.03)}.clothes-rail{height:72%}.garment.selected img{filter:brightness(1.06)}@media(max-width:640px){.garment{height:78%;transform:rotateY(-62deg)}.garment-jeans{height:100%}.garment-jorts{height:85%}.garment.selected{transform:rotateY(-18deg)}}

/* Oblique photographic garments keep their natural proportions. */
.clothes-rail{left:7%;right:11%;top:9%;height:72%;perspective:1500px}.garment{left:calc(var(--i)*8.8%);width:28%;height:79%;transform:translateX(var(--offset)) rotateY(-28deg);transform-origin:50% 0;filter:drop-shadow(12px 6px 9px #0009)}.garment img{height:100%;width:auto;max-width:none;object-fit:contain;object-position:50% 0}.garment-jeans{height:100%;width:25%}.garment-jacket{height:87%}.garment-jorts{height:83%;width:25%}.garment-crew,.garment-wrap,.garment-tonal{height:74%}.garment.selected{transform:translateX(var(--offset)) translateZ(55px) rotateY(10deg) rotateZ(-2deg) scale(1.02);z-index:30}.garment-tag{display:none}.clothes-rail.has-selection .garment:not(.selected){filter:brightness(.86) drop-shadow(12px 8px 9px #0009)}
@media(max-width:640px){.clothes-rail{left:0;right:0;height:65%;top:9%;perspective:1200px}.garment{left:calc(15px + var(--i)*115px);width:250px;height:83%;transform:rotateY(-25deg)}.garment-jeans{height:100%;width:220px}.garment-jacket{height:88%}.garment-jorts{height:85%;width:220px}.garment-crew,.garment-wrap,.garment-tonal{height:77%}.garment.selected{transform:translateZ(20px) rotateY(8deg) rotateZ(-2deg)}.clothes-rail:after{width:1370px}}

.tour-poster{z-index:5;min-width:0;border:3px solid #392d1c;border-radius:1px;background:#d4bf97;box-shadow:2px 3px 3px #0007,inset 0 0 15px #70552e33;transform:perspective(500px) rotateY(-8deg) rotateZ(.5deg);transform-origin:center;cursor:pointer;padding:6px 4px}.tour-poster:hover,.tour-poster:focus-visible{transform:perspective(500px) rotateY(-8deg) rotateZ(.5deg);filter:brightness(1.12);outline:1px solid #dec38a;outline-offset:2px}.tour-poster>span{font-size:clamp(7px,.66vw,10px)}.tour-poster strong{font-size:clamp(17px,1.5vw,25px)}.tour-poster small{font-size:4px}.shows-status{border-top:1px solid #b9bead;border-bottom:1px solid #b9bead;padding:20px 0;margin-top:20px}.shows-status>span{font-size:10px;letter-spacing:.17em}.shows-status p{font-size:15px;line-height:1.6;margin:12px 0}.shows-status small{color:var(--muted);font-size:12px}.tour-panel .tour-mark{width:100px;margin:22px auto}@media(max-width:640px){.tour-poster{left:43%;top:14%;width:65px}.tour-poster>span{font-size:8px}.tour-poster strong{font-size:18px}}

/* Painted portrait tour print, mounted within the brick pier. */
.tour-poster{padding:0;border:2px solid #34271d;aspect-ratio:2/3;overflow:hidden;box-shadow:2px 3px 3px #0008,0 0 0 1px #80644988;transform:perspective(600px) rotateY(-4deg);background:#d4bf97}.tour-poster>img{width:100%;height:100%;object-fit:fill;filter:brightness(.83) sepia(.12);opacity:1}.tour-poster:hover,.tour-poster:focus-visible{transform:perspective(600px) rotateY(-4deg);filter:brightness(1.09)}.tour-panel .tour-artwork{width:235px;max-height:44vh;object-fit:contain;margin:23px auto;box-shadow:0 5px 15px #18281d25}.tour-panel h2{font-size:40px}.tour-panel{padding-top:42px}.tour-panel .shows-status{margin-top:16px;padding:16px 0}

/* Product cutouts sit on the wardrobe's wooden shelf. */
.closet-shelf{right:7%;bottom:13%;gap:22px;align-items:flex-end;z-index:4;pointer-events:none}.closet-shelf button{pointer-events:auto;width:150px;padding:0;background:none;box-shadow:none;transform:none;color:var(--paper);position:relative}.closet-shelf button:nth-child(2){width:93px;transform:rotate(-9deg);margin-bottom:1px}.closet-shelf img{width:100%;height:auto;object-fit:contain;filter:brightness(.87) drop-shadow(2px 5px 3px #0009)}.closet-shelf span{position:absolute;top:100%;left:50%;transform:translateX(-50%);white-space:nowrap;padding:7px 10px;background:#19291de8;border:1px solid #d3c29955;opacity:0;transition:opacity .2s;font-size:10px}.closet-shelf button:hover,.closet-shelf button:focus-visible{transform:translateY(-4px)}.closet-shelf button:hover span,.closet-shelf button:focus-visible span{opacity:1}.rail-caption{left:37%;bottom:25px}.rail-caption p{font-size:24px}
@media(max-width:640px){.closet-shelf{right:6%;bottom:14%;gap:10px}.closet-shelf button{width:102px}.closet-shelf button:nth-child(2){width:66px}.closet-shelf img{height:auto}.rail-caption{left:6%;bottom:160px}.rail-caption p{font-size:23px}.closet-shelf span{font-size:8px}}

/* Objects, rather than floating labels, react to exploration. */
.studio .hotspot>span:not(.door-interior){display:none!important}.studio .hotspot{overflow:visible!important;min-width:0;max-width:none;min-height:0;perspective:900px}.studio .hotspot:hover,.studio .hotspot:focus-visible{background:none;box-shadow:none}.hover-object{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:fill;transform-origin:50% 65%;transition:transform .35s cubic-bezier(.2,.8,.2,1),filter .35s;pointer-events:none}.hotspot:hover .hover-object,.hotspot:focus-visible .hover-object{transform:scale(1.12);filter:drop-shadow(0 5px 5px #0008)}.studio .laptop-hotspot,.studio .desk-hotspot{z-index:6}.tour-poster{transition:transform .35s cubic-bezier(.2,.8,.2,1),filter .35s;overflow:visible}.tour-poster:hover,.tour-poster:focus-visible{transform:perspective(600px) rotateY(-4deg) scale(1.12);filter:brightness(1.08);z-index:10}.studio .closet-hotspot{perspective:900px;z-index:4}.door-interior{position:absolute;inset:0;background:linear-gradient(90deg,#090d09,#28251a 50%,#070c08);opacity:0;transition:opacity .25s;pointer-events:none}.door-panel{position:absolute;top:0;height:100%;width:50%;max-width:none;object-fit:fill;transition:transform .65s cubic-bezier(.2,.7,.2,1),filter .65s;backface-visibility:hidden;pointer-events:none}.door-left{left:0;transform-origin:left center}.door-right{right:0;transform-origin:right center}.closet-hotspot:hover .door-interior,.closet-hotspot:focus-visible .door-interior{opacity:1}.closet-hotspot:hover .door-left,.closet-hotspot:focus-visible .door-left{transform:rotateY(-76deg);filter:brightness(.8)}.closet-hotspot:hover .door-right,.closet-hotspot:focus-visible .door-right{transform:rotateY(76deg);filter:brightness(.8)}.desk-object>span,.closet-shelf span{display:none!important}.desk-object:hover,.desk-object:focus-visible{transform:scale(1.12) rotate(0);z-index:8}.closet-shelf button:hover,.closet-shelf button:focus-visible{transform:scale(1.12);z-index:8}.closet-shelf button{transform-origin:50% 100%}.desk-object{transition:transform .4s cubic-bezier(.2,.8,.2,1)}

.door-interior{background:#211c14 url('assets/closet-empty.webp') center/100% 100% no-repeat;display:flex;align-items:flex-start;justify-content:center;padding:13% 8% 0;overflow:hidden;box-shadow:inset 0 0 25px 8px #0008}.door-interior>img{height:70%;width:34%;max-width:none;object-fit:contain;object-position:top;margin-left:-12%;filter:brightness(.65)}.door-interior>img:first-child{margin-left:0}

/* Four objects arranged on the closet shelf. */
.closet-shelf{left:43%;right:7%;bottom:13%;gap:20px;justify-content:flex-end;align-items:flex-end}.closet-shelf button{flex:0 1 140px;width:140px;transform:none;margin:0}.closet-shelf button:nth-child(2){flex:0 1 85px;width:85px;transform:rotate(-5deg);margin:0 0 3px}.closet-shelf button:nth-child(3){flex:0 1 105px;width:105px;transform:rotate(8deg);margin:0 0 2px}.closet-shelf button:nth-child(4){flex:0 1 65px;width:65px;transform:rotate(-9deg);margin:0}.closet-shelf button:hover,.closet-shelf button:focus-visible{transform:scale(1.12);z-index:8}.desk .desk-listen{left:29%;top:45%;right:auto;width:22%;height:16%;font-size:0;border:0;opacity:1}.desk .desk-listen:hover,.desk .desk-listen:focus-visible{background:#e9d8a712;box-shadow:0 0 35px #e9d8a71a}
@media(max-width:640px){.closet-shelf{left:6%;right:6%;bottom:19%;gap:14px}.closet-shelf button{flex-basis:102px;width:102px}.closet-shelf button:nth-child(2){flex-basis:65px;width:65px}.closet-shelf button:nth-child(3){flex-basis:80px;width:80px}.closet-shelf button:nth-child(4){flex-basis:48px;width:48px}.rail-caption{bottom:38px;left:6%}.closet .scene-heading{bottom:105px}.desk .desk-listen{left:15%;top:40%;width:42%;height:23%}}

/* Working laptop screen, photographed hardware at its natural proportions. */
.studio.travel-laptop .room-bg{transform:scale(2.8);transform-origin:33% 48%;filter:blur(2px)}
#music-dialog.laptop-dialog{width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;border:0;background:#160f09;overflow:hidden;box-shadow:none;color:#ede9df}#music-dialog::backdrop{background:#110e09}.laptop-stage{position:absolute;width:min(100vw,150dvh);aspect-ratio:3/2;left:50%;top:50%;transform:translate(-50%,-50%);animation:laptop-arrive .55s ease both}.laptop-photo{width:100%;height:100%;object-fit:contain}.laptop-screen{position:absolute;left:18.9%;top:8.6%;width:62.4%;height:58.5%;background:#121212;overflow:hidden;border-radius:2px;display:flex;flex-direction:column;box-shadow:0 0 3px #1a1a1a}.laptop-bar{height:34px;flex:0 0 34px;display:flex;align-items:center;gap:12px;background:#242424;border-bottom:1px solid #343434;padding:0 10px;font:11px Arial}.window-dots{color:#928474;letter-spacing:2px;font-size:9px}.laptop-bar [role=tablist]{display:flex;height:100%}.laptop-bar button{font-size:11px;padding:0 14px;color:#aaa}.laptop-bar button[aria-selected=true]{background:#121212;color:#fff;border-top:2px solid #9daa8c}.laptop-owner{margin-left:auto;font-size:9px;color:#888}.laptop-back{position:fixed;top:20px;left:24px;z-index:5;border:1px solid #e8e0c75c;background:#181b17d9;padding:11px 17px;border-radius:3px;font-size:12px}.laptop-screen [role=tabpanel]{flex:1;min-height:0;overflow:auto}.laptop-screen #spotify-player{margin:0;border-radius:0;height:100%;min-height:0;background:#121212}.laptop-screen #spotify-player iframe{width:100%;height:100%;min-height:300px;border-radius:0}.mail-content{padding:24px 7%;color:#e9e2d2;background:radial-gradient(at top right,#304338,#15221b);min-height:100%;position:relative}.mail-content>img{width:54px;float:right;opacity:.65}.mail-content h2{font:clamp(23px,2.8vw,40px) Georgia;margin:12px 0}.mail-content>p:not(.eyebrow){font-size:13px;line-height:1.6;color:#c6cebd;max-width:350px}.mail-content .eyebrow{font-size:9px;letter-spacing:.18em}#mail-form{margin-top:20px}#mail-form label{display:block;font-size:11px;margin-bottom:8px}.mail-entry{display:flex;border:1px solid #a1ac9777}.mail-entry input{background:#102017;color:#fff;padding:12px;border:0;min-width:0;flex:1;font:13px Arial}.mail-entry button{background:#ded5bc;color:#213626;font-size:12px;padding:12px 17px;white-space:nowrap}.mail-note,#mail-status{font-size:10px;line-height:1.5;color:#afbda5;margin-top:10px}@keyframes laptop-arrive{from{opacity:0;transform:translate(-50%,-50%) scale(.9)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@media(max-width:640px){.laptop-stage{width:157vw;max-width:none}.laptop-back{top:18px;left:15px}.laptop-bar{gap:4px;padding:0 5px}.window-dots,.laptop-owner{display:none}.laptop-bar button{font-size:11px;padding:0 12px}.mail-content{padding:17px 20px}.mail-content h2{font-size:26px}.mail-content>img{width:35px}.mail-content>p:not(.eyebrow){font-size:11px}#mail-form{margin-top:14px}.mail-entry input,.mail-entry button{padding:10px;font-size:11px}}@media(prefers-reduced-motion:reduce){.laptop-stage{animation:none}}
/* A paper-and-frame lift, with a gentle spring at the end. */
.tour-poster{transform:perspective(700px) rotateY(-4deg) translateZ(0);transform-origin:50% 55%;transition:transform .55s cubic-bezier(.22,1.35,.4,1),box-shadow .4s ease,filter .4s ease;will-change:transform;box-shadow:2px 3px 3px #0008,0 0 0 1px #80644988}.tour-poster:hover,.tour-poster:focus-visible{transform:perspective(700px) translateY(-7px) rotateX(5deg) rotateY(-11deg) rotateZ(-2deg) scale(1.12);box-shadow:12px 20px 18px #0009,2px 3px 4px #0005,0 0 0 1px #b3986d;filter:brightness(1.13);outline:none;z-index:10}.tour-poster>img{transition:filter .35s ease}.tour-poster:hover>img,.tour-poster:focus-visible>img{filter:brightness(.98) sepia(.05)}.tour-poster:active{transform:perspective(700px) translateY(-4px) rotateY(-5deg) scale(1.42);transition-duration:.12s}

#mail-app{background:#f0ebf8}#mail-app>iframe{display:block;border:0;width:100%;height:100%;min-height:300px}

.phone-hotspot{z-index:7}.phone-hotspot .hover-object{filter:drop-shadow(1px 2px 1px #0008)}#phone-dialog{padding:0;border:0;background:transparent;box-shadow:none;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;overflow:auto;color:#f4ecdb}#phone-dialog::backdrop{background:#111a15c9;backdrop-filter:blur(9px)}.phone-device{width:365px;min-height:695px;max-height:90dvh;margin:5dvh auto;border:8px solid #262729;border-radius:48px;background:radial-gradient(at 90% 20%,#6d7855,#273f32 50%,#172d25);box-shadow:0 25px 75px #000b,inset 0 0 0 2px #ffffff22;position:relative;overflow:auto;scrollbar-width:none;padding:25px 23px 35px}.phone-island{position:absolute;top:12px;left:50%;transform:translateX(-50%);width:90px;height:24px;border-radius:30px;background:#111}.phone-status{display:flex;justify-content:space-between;font-size:11px;font-weight:bold;padding:0 9px;margin-bottom:38px}.phone-eyebrow{font-size:9px;letter-spacing:.17em;color:#c4ccb4}.phone-device h2{font:43px/1.02 Georgia;margin-top:10px;letter-spacing:-1px}.phone-wallpaper-mark{position:absolute;top:112px;right:28px;width:77px;opacity:.25;transform:rotate(15deg)}.phone-apps{display:grid;grid-template-columns:repeat(3,1fr);gap:25px 14px;margin-top:48px}.phone-apps a,.phone-apps button{display:flex;flex-direction:column;align-items:center;gap:8px;font-size:10px;padding:0;white-space:nowrap}.app-icon{display:grid;place-items:center;width:59px;height:59px;border-radius:16px;font:36px Arial;box-shadow:0 4px 10px #0003;transition:transform .2s}.phone-apps a:hover .app-icon,.phone-apps button:hover .app-icon{transform:scale(1.12)}.instagram{background:linear-gradient(35deg,#e9ac54,#a74373,#6853a4)}.tiktok{background:#171719;text-shadow:2px 1px #d7446d,-2px -1px #63c9ce}.youtube{background:#a83131;font-size:27px}.spotify{background:#54a36c;color:#15291b;font-size:49px}.apple-music{background:#e4ded0;color:#a42b3d}.contacts{background:#ddd4ba;color:#233e2e}.phone-contact-shortcut{margin-top:38px;width:100%;border:1px solid #d3dcc25c;border-radius:17px;padding:19px 14px;background:#eff0dc13;font-size:12px;display:flex;justify-content:space-between;gap:6px}.phone-home-indicator{position:absolute;bottom:12px;left:35%;right:35%;height:4px;border-radius:4px;background:#e7e9dc}.phone-exit{position:fixed;top:18px;left:22px;background:#16241ce8;border:1px solid #c5cbb45c;padding:11px 16px;border-radius:4px;z-index:4;font-size:12px}.phone-home-back{font-size:13px;padding:0 0 12px;color:#d4ddc2}.contact-widget{padding:22px 6%;background:#edf0e4;color:#24382c;min-height:100%}.contact-avatar{float:right;width:48px;height:48px;border-radius:50%;background:#294632;display:grid;place-items:center}.contact-avatar img{width:36px}.contact-widget>.eyebrow{font-size:8px;letter-spacing:.13em}.contact-widget h2{font:32px Georgia;letter-spacing:-.8px;margin:8px 0}.contact-widget>p{font-size:11px;line-height:1.5;color:#63705f;max-width:300px;margin-bottom:17px}.contact-form{display:grid;grid-template-columns:1fr 1fr;gap:12px}.contact-form label{font-size:10px;color:#51624f;display:flex;flex-direction:column;gap:5px}.contact-form input{width:100%;min-width:0;border:1px solid #b8c1af;border-radius:5px;background:#ffffffb0;padding:10px;font:12px Arial;color:#203a29}.contact-form>button{grid-column:1/-1;display:flex;justify-content:space-between;background:#294631;border-radius:6px;padding:12px 15px;color:#f4efdf;font-size:12px}.contact-consent{grid-column:1/-1;font-size:9px;line-height:1.5;color:#72806b;margin:0}.signup-result>p{font-size:12px;line-height:1.5;margin-bottom:12px}.signup-result iframe{width:100%;height:300px;border:0;background:white}.signup-fallback,.signup-edit{display:block;font-size:11px;text-decoration:underline;margin-top:12px;padding:0}.phone-device.contact-open{background:#edf0e4;color:#233a2b}.contact-open .phone-home-back{color:#314c37}.contact-open .phone-home-indicator{background:#4d6045}.phone-device .contact-widget{padding:7px 0 20px}.phone-device .contact-form{grid-template-columns:1fr}.phone-device .contact-widget h2{font-size:32px}.phone-device .contact-widget>p{font-size:11px}.phone-device .contact-form input{padding:11px}.phone-device.contact-open .phone-status{margin-bottom:25px}#mail-app,#laptop-contact{background:#edf0e4;min-height:100%}@media(max-width:640px){.phone-device{width:min(365px,94vw);margin:70px auto 18px;max-height:none;min-height:670px}.phone-exit{top:15px;left:15px}.contact-widget{padding:17px}.contact-widget h2{font-size:26px}.contact-form{gap:9px}.contact-form input{font-size:11px;padding:8px}.contact-widget>p{font-size:10px}.contact-avatar{width:36px;height:36px}.contact-avatar img{width:28px}}
/* Move the entire room as one camera, keeping mounted objects registered. */
.room-camera{position:absolute;inset:0;isolation:isolate;transform-origin:0 0;will-change:transform}.studio.active,.closet.active{animation:none}.studio.approaching{pointer-events:none}.approaching .room-intro,.approaching .room-note{opacity:0;transition:opacity .25s}.approaching .hover-object{transform:none!important}.approaching .tour-poster{transform:perspective(600px) rotateY(-4deg)!important;filter:none}.approaching .door-interior{opacity:1}.approaching .door-left{transform:rotateY(-76deg)}.approaching .door-right{transform:rotateY(76deg)}
#music-dialog[open],#phone-dialog[open],#tour-dialog[open]{animation:arrive-view .45s ease both}@keyframes arrive-view{from{opacity:0}to{opacity:1}}.laptop-stage{animation:none}.laptop-photo{object-fit:cover}#music-dialog{background:radial-gradient(ellipse at center,#725033,#1b140e)!important}
#tour-dialog.wall-view{position:fixed;inset:0;margin:0;width:100vw;max-width:none;height:100dvh;max-height:none;padding:55px 20px 25px;display:none;align-items:center;justify-content:center;background:linear-gradient(100deg,#201b13b8,#372b1933),repeating-linear-gradient(0deg,transparent 0 61px,#ae9f852e 62px 65px),repeating-linear-gradient(90deg,#b7aa8e 0 160px,#988b73 162px 165px);overflow:auto;box-shadow:none}#tour-dialog.wall-view[open]{display:flex}.mounted-poster{position:relative;width:min(470px,78vw);height:min(820px,86dvh);background:#e5dfcb;border:7px solid #403327;box-shadow:9px 13px 22px #0007,1px 1px 0 #baa780;display:flex;flex-direction:column;transform:rotate(-.6deg)}.mounted-poster>img{height:0;min-height:0;flex:1;width:100%;object-fit:cover;object-position:center 36%}.poster-dates{padding:18px 22px 22px;background:#e6e1cf;color:#7c2728;border-top:3px solid #8c3031}.poster-dates h2{font:30px Georgia;margin:5px 0 10px}.poster-dates p{font-size:13px;line-height:1.5}.poster-dates a{display:block;margin-top:14px;border-top:1px solid #a4575266;padding-top:12px;font-size:12px;letter-spacing:.03em}.poster-dates .eyebrow{font-size:9px;letter-spacing:.15em}.wall-view::backdrop{background:#282018}
.arrival-doors{position:absolute;inset:0;z-index:8;display:flex;perspective:1400px;pointer-events:none}.arrival-doors img{width:50%;height:100%;object-fit:fill;backface-visibility:hidden;transform:rotateY(-105deg);transform-origin:left center}.arrival-doors img+img{transform-origin:right center;transform:rotateY(105deg)}.doors-arriving .arrival-doors img{animation:open-left 1.15s cubic-bezier(.2,.65,.2,1) both}.doors-arriving .arrival-doors img+img{animation-name:open-right}@keyframes open-left{from{transform:rotateY(0)}to{transform:rotateY(-105deg)}}@keyframes open-right{from{transform:rotateY(0)}to{transform:rotateY(105deg)}}@media(prefers-reduced-motion:reduce){.doors-arriving .arrival-doors img{animation-duration:.01ms}#music-dialog[open],#phone-dialog[open],#tour-dialog[open]{animation:none}}
.wall-view .laptop-back{color:#ede9df}.studio.approaching .hotspot{transform:none!important}.room-camera .room-bg{transition:none}
.app-icon.messages{background:#d9d6bd;color:#254532}#phone-message-view{height:calc(100% - 50px);overflow:auto;background:#e9edde;padding:12px 18px 35px;color:#253e2c}#phone-message-view .contact-widget{padding:8px 4px}#phone-message-view .contact-form{display:flex;flex-direction:column;gap:12px}#phone-message-view textarea{display:block;width:100%;resize:vertical;min-height:95px;padding:11px;border:1px solid #aeb9a6;border-radius:6px;background:#f8faf4;color:#20372b;font:13px Arial;margin-top:5px}.phone-apps{row-gap:14px}
/* A leftward approach, then settle at the desk / above the phone. */
#music-dialog .laptop-stage{width:min(90vw,135dvh);animation:desk-settle .7s cubic-bezier(.2,.7,.2,1) both;transform-origin:center center}#music-dialog{background:linear-gradient(#17130ddd,#17130ddd),url('assets/laptop-desktop.webp') center/cover!important}
@keyframes desk-settle{from{opacity:0;transform:translate(-46%,-48%) perspective(1400px) rotateY(-14deg) scale(.93)}to{opacity:1;transform:translate(-50%,-50%) perspective(1400px) rotateY(0deg) scale(1)}}
#phone-dialog{background:linear-gradient(#241c13a6,#20190dcc),url('assets/laptop-desktop.webp') center/cover;perspective:1400px}#phone-dialog .phone-device{transform:perspective(1400px) rotateX(20deg) rotateZ(-7deg) scale(.9);transform-origin:center center;box-shadow:22px 42px 24px #0009,3px 7px 0 #101113;animation:phone-settle .8s cubic-bezier(.2,.7,.2,1) both}
@keyframes phone-settle{from{opacity:0;transform:perspective(1400px) translateX(65px) rotateY(-16deg) rotateX(35deg) rotateZ(-12deg) scale(.78)}to{opacity:1;transform:perspective(1400px) translateX(0) rotateY(0deg) rotateX(20deg) rotateZ(-7deg) scale(.9)}}
.studio .closet-hotspot .door-interior{opacity:1;background:radial-gradient(ellipse at 50% 30%,#fbe7a1,#9b7336 55%,#302415);box-shadow:0 0 16px #efce7c77}.studio .closet-hotspot .door-left{transform:rotateY(-12deg)}.studio .closet-hotspot .door-right{transform:rotateY(12deg)}.studio .closet-hotspot:after{content:'';position:absolute;left:42%;width:16%;top:6%;height:90%;background:#ffe6a1;box-shadow:0 0 12px 5px #ffd58188;filter:blur(5px);opacity:.6;pointer-events:none;z-index:-1}.studio .closet-hotspot:before{content:'';position:absolute;left:16%;top:91%;width:68%;height:30%;background:linear-gradient(#ffde915c,transparent);clip-path:polygon(40% 0,60% 0,100% 100%,0 100%);filter:blur(9px);pointer-events:none}.studio .closet-hotspot:hover .door-left,.studio .closet-hotspot:focus-visible .door-left{transform:rotateY(-65deg)}.studio .closet-hotspot:hover .door-right,.studio .closet-hotspot:focus-visible .door-right{transform:rotateY(65deg)}
@media(max-width:640px){#music-dialog .laptop-stage{width:150vw}#phone-dialog .phone-device{width:min(350px,86vw);transform:perspective(1400px) rotateX(12deg) rotateZ(-4deg) scale(.9)}}
@media(prefers-reduced-motion:reduce){#music-dialog .laptop-stage,#phone-dialog .phone-device{animation:none}}
#phone-dialog{background:radial-gradient(ellipse at 40% 35%,#c6975522,#110d09b8),repeating-linear-gradient(2deg,#68472b 0px,#624129 2px,#715035 4px,#63432a 8px,#6d492e 13px);box-shadow:inset 0 0 180px #100b07}.studio .closet-hotspot .door-panel{filter:brightness(.95)}
#music-dialog{background:radial-gradient(ellipse at center,#553d25,#17130d 75%)!important}

/* Fast, clean poster enlargement; retain the mounted angle. */
.studio .tour-poster{transition:transform 120ms ease-out;filter:none;will-change:auto}
.studio .tour-poster:hover,.studio .tour-poster:focus-visible{transform:perspective(600px) rotateY(-4deg) scale(1.12);filter:none;box-shadow:2px 3px 3px #0008,0 0 0 1px #80644988}
.studio .tour-poster>img{filter:none;image-rendering:auto}
.studio .hover-object{image-rendering:auto;backface-visibility:visible}
/* Keep both devices within reach from the seated desk. */
#music-dialog .laptop-stage{width:min(82vw,125dvh);left:44%;z-index:1}
.desk-docked-phone{position:absolute;left:82%;top:43%;width:11%;max-width:150px;min-width:70px;height:240px;z-index:3;padding:0;filter:drop-shadow(6px 12px 8px #0009);transition:transform .2s;transform:perspective(900px) rotateY(-12deg)}.desk-docked-phone:hover{transform:perspective(900px) rotateY(-5deg) scale(1.08)}.dock-mini-screen{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:15px;background:linear-gradient(140deg,#617351,#173a2c);border:5px solid #242829;border-radius:17px;height:170px;padding:12px 8px;color:#e8eddb;font-size:9px;z-index:2}.dock-mini-screen>img{width:60%;opacity:.7}.dock-mini-apps{font-size:16px;letter-spacing:5px;color:#d9ceac;line-height:1.7}.dock-neck{display:block;position:absolute;left:40%;width:20%;height:60px;background:linear-gradient(90deg,#555c5c,#c4c8c5,#6b7371);bottom:15px;transform:skewX(-8deg)}.dock-foot{position:absolute;bottom:0;left:5%;width:90%;height:24px;border-radius:50%;background:linear-gradient(#a7afab,#414a47);box-shadow:0 5px 0 #303633}
#phone-dialog .phone-device{transform:perspective(1600px) rotateY(-3deg) rotateX(3deg) scale(.88);animation:phone-dock-arrive .6s ease both;box-shadow:9px 14px 25px #0009;margin:3dvh auto 100px;overflow:visible}#phone-dialog .phone-device:before{content:'';position:absolute;top:100%;left:43%;width:14%;height:75px;background:linear-gradient(90deg,#626966,#b7bdb9,#626966);transform:skewX(-8deg)}#phone-dialog .phone-device:after{content:'';position:absolute;top:calc(100% + 65px);left:18%;width:64%;height:30px;border-radius:50%;background:linear-gradient(#a6ada8,#414945);box-shadow:0 8px 10px #0008}#phone-home,#phone-contact-view,#phone-message-view{max-height:73dvh;overflow:auto;scrollbar-width:none}#phone-dialog{background:radial-gradient(ellipse at 50% 40%,#6b5236,#221a12 75%)}
@keyframes phone-dock-arrive{from{opacity:0;transform:perspective(1600px) translateX(35px) rotateY(-12deg) scale(.8)}to{opacity:1;transform:perspective(1600px) translateX(0) rotateY(-3deg) rotateX(3deg) scale(.88)}}
@media(max-width:640px){#music-dialog .laptop-stage{width:140vw;left:40%}.desk-docked-phone{left:auto;right:12px;top:66%;width:80px;height:170px}.dock-mini-screen{height:130px;gap:5px}.dock-mini-apps{font-size:12px}.dock-neck{height:40px}#phone-dialog .phone-device{margin-top:65px}}@media(prefers-reduced-motion:reduce){#phone-dialog .phone-device{animation:none}}
.desk-docked-phone>img{width:100%;height:100%;object-fit:contain}.studio .phone-hotspot .hover-object{object-fit:contain}
@media(min-width:641px){.desk-docked-phone{left:73%;top:43%;width:10%}}
/* Match the oblique desk in the room; preserve that angle when enlarged. */
.studio .laptop-hotspot .hover-object{transform:perspective(700px) rotateY(-23deg) rotateZ(5deg) skewX(-6deg);transform-origin:50% 80%}.studio .laptop-hotspot:hover .hover-object,.studio .laptop-hotspot:focus-visible .hover-object{transform:perspective(700px) rotateY(-23deg) rotateZ(5deg) skewX(-6deg) scale(1.12)}
.studio .phone-hotspot .hover-object{transform:perspective(600px) rotateY(-27deg) rotateZ(4deg);transform-origin:50% 90%}.studio .phone-hotspot:hover .hover-object,.studio .phone-hotspot:focus-visible .hover-object{transform:perspective(600px) rotateY(-27deg) rotateZ(4deg) scale(1.12)}
/* The image is the environment, filling the viewport, not an inset card. */
#music-dialog .laptop-stage{width:max(100vw,150dvh);left:50%;top:50%;transform:translate(-50%,-50%);animation:desk-environment-arrive .6s ease both}#music-dialog{background:#251c12!important}.laptop-stage .laptop-photo{width:100%;height:100%;object-fit:cover}#music-dialog .laptop-screen{left:18.9%;top:8.6%;width:62.4%;height:58.5%}
@keyframes desk-environment-arrive{from{opacity:0;transform:translate(-48%,-50%) perspective(1800px) rotateY(-5deg) scale(1.04)}to{opacity:1;transform:translate(-50%,-50%) perspective(1800px) rotateY(0deg) scale(1)}}
.desk-docked-phone{left:auto;right:3vw;top:auto;bottom:12vh;width:clamp(90px,12vw,170px);height:clamp(190px,29vh,290px);transform:perspective(900px) rotateY(-8deg)}
#phone-dialog{background:transparent;box-shadow:none;pointer-events:none;overflow:hidden}#phone-dialog::backdrop{background:transparent;backdrop-filter:none}#phone-dialog .phone-device{pointer-events:auto;position:absolute;right:3vw;top:8vh;width:320px;min-height:640px;margin:0;transform:perspective(1600px) rotateY(-5deg) scale(.88);transform-origin:right center;animation:phone-right-arrive .45s ease both}#phone-dialog .phone-exit{pointer-events:auto;left:auto;right:25px;top:18px}#phone-dialog[open]{pointer-events:auto}.phone-device .phone-apps{margin-top:25px}.phone-device .phone-status{margin-bottom:28px}
@keyframes phone-right-arrive{from{opacity:0;transform:perspective(1600px) translateY(80px) rotateY(-8deg) scale(.55)}to{opacity:1;transform:perspective(1600px) translateY(0) rotateY(-5deg) scale(.88)}}
@media(max-width:640px){#music-dialog .laptop-stage{width:150dvh}.desk-docked-phone{right:12px;bottom:10vh;width:90px;top:auto}#phone-dialog .phone-device{right:10px;top:75px;width:min(320px,88vw)}}
@media(prefers-reduced-motion:reduce){#music-dialog .laptop-stage,#phone-dialog .phone-device{animation:none}}
/* Anchor the crack to the photographed meeting stile, not the frame edge. */
.studio .closet-hotspot{perspective:none}.studio .closet-hotspot .door-left{left:0;width:47.273%;transform-origin:left center;transform:scaleX(.97);filter:none}.studio .closet-hotspot .door-right{right:0;width:52.727%;transform-origin:right center;transform:scaleX(.973);filter:none}.studio .closet-hotspot .door-interior{inset:0;background:#272217;box-shadow:none;overflow:hidden}.studio .closet-hotspot .door-interior:after{content:'';position:absolute;left:45.7%;width:3%;top:4%;bottom:3%;background:#f6d58b;box-shadow:0 0 9px #edc46f88}.studio .closet-hotspot:after{display:none}.studio .closet-hotspot:before{left:31%;width:32%;top:97%;height:18%;background:linear-gradient(#e5bc6566,transparent)}.studio .closet-hotspot:hover .door-left,.studio .closet-hotspot:focus-visible .door-left{transform:scaleX(.76)}.studio .closet-hotspot:hover .door-right,.studio .closet-hotspot:focus-visible .door-right{transform:scaleX(.78)}
.studio .laptop-hotspot .hover-object{transform:none}.studio .laptop-hotspot:hover .hover-object,.studio .laptop-hotspot:focus-visible .hover-object{transform:scale(1.12)}
.studio .closet-hotspot .door-left{transform:scaleX(.987)}.studio .closet-hotspot .door-right{transform:scaleX(.988)}.studio .closet-hotspot .door-interior:after{left:46.6%;width:1.4%;background:#d7b56d;box-shadow:0 0 6px #edc46f55}
/* Keep the entire computer in view even in a tall browser panel. */
#music-dialog .laptop-stage{width:100vw;left:50%;top:50%}#music-dialog{background:linear-gradient(#352718 0%,#50371f 22%,#50371f 72%,#392719 100%)!important}.laptop-stage:before,.laptop-stage:after{content:'';position:absolute;left:0;right:0;height:35px;z-index:2;pointer-events:none}.laptop-stage:before{top:-1px;background:linear-gradient(#50371f,transparent)}.laptop-stage:after{bottom:-1px;background:linear-gradient(transparent,#50371f)}.desk-docked-phone{bottom:auto;top:calc(50% + 2vw);right:3vw;width:10vw;min-width:65px;height:21vw;min-height:130px}
@media(max-width:640px){#music-dialog .laptop-stage{width:115vw;left:47%}.desk-docked-phone{right:8px;top:55%;width:75px;height:150px}}
/* Preserve the complete 2:3 poster artwork above the dates. */
#tour-dialog .mounted-poster{width:min(470px,78vw,calc((100dvh - 260px)*.666667));height:auto;max-height:none;flex-shrink:0;transform:none}
#tour-dialog .mounted-poster>img{display:block;flex:none;width:100%;height:auto;min-height:0;aspect-ratio:2/3;object-fit:contain;object-position:center}
#tour-dialog .poster-dates{flex:none;padding:14px 18px 16px}#tour-dialog .poster-dates h2{font-size:26px;margin:4px 0 8px}#tour-dialog .poster-dates a{margin-top:10px;padding-top:9px}
@media(max-height:580px){#tour-dialog.wall-view{align-items:flex-start;padding-top:65px}#tour-dialog .mounted-poster{width:min(340px,76vw)}}
/* Left-hand charging stand, turned inward toward the computer. */
.studio .phone-hotspot .hover-object{transform:perspective(600px) rotateY(22deg) rotateZ(-2deg)}.studio .phone-hotspot:hover .hover-object,.studio .phone-hotspot:focus-visible .hover-object{transform:perspective(600px) rotateY(22deg) rotateZ(-2deg) scale(1.12)}
.desk-docked-phone{left:3vw;right:auto;transform:perspective(900px) rotateY(16deg)}.desk-docked-phone:hover{transform:perspective(900px) rotateY(16deg) scale(1.08)}#phone-dialog .phone-device{left:3vw;right:auto;transform-origin:left center;transform:perspective(1600px) rotateY(7deg) scale(.88);animation-name:phone-left-arrive}#phone-dialog .phone-exit{left:25px;right:auto}
@keyframes phone-left-arrive{from{opacity:0;transform:perspective(1600px) translateY(80px) rotateY(13deg) scale(.55)}to{opacity:1;transform:perspective(1600px) translateY(0) rotateY(7deg) scale(.88)}}
/* Uncoated paper: subdued pigment, soft frame shadow, no shine. */
.studio .tour-poster,.studio .tour-poster:hover,.studio .tour-poster:focus-visible{filter:none;background:#cec4ad;outline:none;box-shadow:1px 2px 3px #0005;border-color:#514333}.studio .tour-poster>img{filter:saturate(.78) brightness(.85) contrast(.92)}#tour-dialog .mounted-poster{background:#d9d0ba;border-color:#514333;box-shadow:4px 6px 12px #0005}#tour-dialog .mounted-poster>img{filter:saturate(.8) brightness(.94) contrast(.94)}#tour-dialog .poster-dates{background:#d9d0ba}.mounted-poster:after{content:'';position:absolute;inset:0;pointer-events:none;opacity:.1;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23908771' filter='url(%23n)' d='M0 0h160v160H0z'/%3E%3C/svg%3E");mix-blend-mode:multiply}
@media(max-width:640px){.desk-docked-phone{left:8px;right:auto}#phone-dialog .phone-device{left:10px;right:auto}}
/* A single continuous wardrobe interior behind both door leaves. */
.studio .closet-hotspot .door-interior{inset:1% 0 0;overflow:hidden;background:linear-gradient(#bd8d4326,#120f0bb8),url('assets/closet-empty.webp') center/100% 100% no-repeat;box-shadow:inset 0 10px 18px #f4cb6b30,inset 0 0 16px #090905;opacity:1}
.studio .closet-hotspot .door-interior:after{inset:0;width:auto;height:auto;background:linear-gradient(180deg,#efba522a,transparent 32%,#100d0b30);box-shadow:none;pointer-events:none}
.studio .closet-hotspot .interior-rail{position:absolute;display:flex;left:10%;right:10%;top:14%;height:69%;align-items:flex-start;justify-content:center;filter:brightness(.62) sepia(.16);border-top:2px solid #907c58}
.studio .closet-hotspot .interior-rail img{position:relative;display:block;width:27%;height:100%;max-width:none;object-fit:contain;object-position:top;margin:0 -5%;opacity:1}
.studio .closet-hotspot:before{left:29%;width:36%;top:97%;height:18%;opacity:.35;background:linear-gradient(#e5bc6540,transparent);transition:opacity .5s}.studio .closet-hotspot:hover:before,.studio .closet-hotspot:focus-visible:before{opacity:.65}
/* Bring the stand onto the near edge of the desk, facing inward/right. */
.studio .phone-hotspot{z-index:9}.studio .phone-hotspot .hover-object{transform:perspective(600px) rotateY(30deg) rotateZ(-3deg);transform-origin:50% 100%}.studio .phone-hotspot:hover .hover-object,.studio .phone-hotspot:focus-visible .hover-object{transform:perspective(600px) rotateY(30deg) rotateZ(-3deg) scale(1.12)}
#music-dialog .desk-docked-phone{left:12vw;right:auto;top:calc(50% + 7vw);bottom:auto;width:clamp(95px,14vw,190px);height:clamp(180px,27vw,360px);z-index:10;transform:perspective(1000px) rotateY(28deg) rotateZ(-2deg);transform-origin:center bottom;filter:drop-shadow(12px 14px 9px #0009)}#music-dialog .desk-docked-phone:hover,#music-dialog .desk-docked-phone:focus-visible{transform:perspective(1000px) rotateY(28deg) rotateZ(-2deg) scale(1.08)}
#phone-dialog .phone-device{transform:perspective(1600px) rotateY(12deg) scale(.88)}
@keyframes phone-left-arrive{from{opacity:0;transform:perspective(1600px) translateY(80px) rotateY(22deg) scale(.55)}to{opacity:1;transform:perspective(1600px) translateY(0) rotateY(12deg) scale(.88)}}
@media(max-width:640px){#music-dialog .desk-docked-phone{left:6vw;top:calc(50% + 12vw);width:95px;height:185px}}
/* Re-rasterize the original artwork at each zoom size, outside the room layer. */
.poster-zoom-art{position:fixed;z-index:100;max-width:none;object-fit:contain;pointer-events:none;box-shadow:1px 2px 5px #0005;background:#d9d0ba;image-rendering:auto}.poster-in-flight{visibility:hidden}.room-camera{will-change:auto}#tour-dialog .mounted-poster>img{filter:none;opacity:.94}#tour-dialog .mounted-poster:after{opacity:.045}
/* Wider photographic environment, with both devices anchored to the desk. */
#music-dialog .laptop-stage{width:max(100vw,150dvh);aspect-ratio:3/2;left:50%;top:50%;max-width:none}#music-dialog .laptop-stage:before,#music-dialog .laptop-stage:after{display:none}#music-dialog .laptop-screen{left:32.9%;top:26.8%;width:37.2%;height:33.4%}.laptop-screen #spotify-player iframe{min-height:0}.laptop-bar{height:30px;flex-basis:30px}.laptop-owner,.window-dots{display:none}
#music-dialog .desk-docked-phone{left:20.5%;right:auto;top:55%;bottom:auto;width:8.5%;min-width:0;max-width:none;height:25%;min-height:0;z-index:10;transform:perspective(1000px) rotateY(22deg);transform-origin:center bottom}#music-dialog .desk-docked-phone:hover,#music-dialog .desk-docked-phone:focus-visible{transform:perspective(1000px) rotateY(22deg) scale(1.08)}
@media(max-width:640px){#music-dialog .laptop-stage{left:55%}#music-dialog .laptop-screen{left:32.9%;width:37.2%}#music-dialog .desk-docked-phone{left:27%;width:7%;height:22%}}
/* Stay in the same room: the real wall remains behind the close-up. */
#tour-dialog.wall-view,#tour-dialog.wall-view[open]{background:transparent;box-shadow:none;animation:none}#tour-dialog.wall-view::backdrop{background:transparent;backdrop-filter:none}.poster-zoom-art{opacity:1}
/* Product cutouts retain their full silhouettes on the shelf. */
.closet-shelf button{overflow:visible}.closet-shelf button>img{height:auto;max-height:none;object-fit:contain;overflow:visible}
/* Face the left-hand phone inward toward the seated listener. */
.studio .phone-hotspot .hover-object{transform:perspective(650px) rotateY(42deg) rotateZ(-2deg);transform-origin:50% 100%}.studio .phone-hotspot:hover .hover-object,.studio .phone-hotspot:focus-visible .hover-object{transform:perspective(650px) rotateY(42deg) rotateZ(-2deg) scale(1.12)}
#music-dialog .desk-docked-phone{transform:perspective(1000px) rotateY(38deg);transform-origin:center bottom}#music-dialog .desk-docked-phone:hover,#music-dialog .desk-docked-phone:focus-visible{transform:perspective(1000px) rotateY(38deg) scale(1.08)}
#phone-dialog .phone-device{transform:perspective(1600px) rotateY(18deg) scale(.88)}
@keyframes phone-left-arrive{from{opacity:0;transform:perspective(1600px) translateY(80px) rotateY(38deg) scale(.55)}to{opacity:1;transform:perspective(1600px) translateY(0) rotateY(18deg) scale(.88)}}
/* One continuous seated approach controls all arrival motion. */
#music-dialog[open],#music-dialog .laptop-stage,#phone-dialog[open],#phone-dialog .phone-device{animation:none}#music-dialog .laptop-stage{transform:translate(-50%,-50%)}#phone-dialog .phone-device{transform:perspective(1600px) rotateY(18deg) scale(.88)}
#music-dialog .laptop-stage{transform-origin:51.5% 44%}

/* Larger dock, farther left; preserve its resting point on the desk. */
#music-dialog .desk-docked-phone{left:14%;top:42.5%;width:12.75%;height:37.5%}
@media(max-width:640px){#music-dialog .desk-docked-phone{left:23.5%;top:44%;width:10.5%;height:33%}}

/* During the turn, the room stays visible behind the incoming desk angle. */
#music-dialog.turning-to-desk{background:transparent!important;overflow:hidden}#music-dialog.turning-to-desk::backdrop{background:transparent;backdrop-filter:none}#music-dialog.turning-to-desk .laptop-back{visibility:hidden}

/* Photographic motion-warp arrival. Screens and phone travel with the desk. */
#music-dialog.photo-warping{overflow:hidden}#music-dialog.photo-warping .laptop-back{visibility:hidden}#music-dialog.photo-warping .laptop-stage{will-change:transform,filter;pointer-events:none}.room-camera{backface-visibility:hidden}
@media(min-width:641px) and (max-width:1000px){#music-dialog .desk-docked-phone{left:18%}}
#spotify-player{position:relative}
.spotify-loading{position:absolute;inset:0;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:#121212;color:#d9ded7;font:12px Arial;text-align:center;padding:20px}
.spotify-loading button,.spotify-loading a{padding:8px 12px;border:1px solid #627863;border-radius:4px;color:#e0eadc}
#spotify-player iframe{display:block;border:0}

/* A graphite chassis gives the angled phone a visible left side. */
#phone-dialog .phone-device{box-shadow:-1px 1px 0 #839083,-3px 2px 0 #48534b,-5px 3px 0 #303b33,-8px 4px 0 #19241d,-10px 5px 0 #101912,9px 14px 25px #0009}
#music-dialog.phone-expanded .desk-docked-phone{visibility:hidden;pointer-events:none}
#phone-dialog .phone-device{transform-origin:0 0}
.phone-contact-shortcut{margin-top:27px;min-height:108px;padding:20px 17px;align-items:center;text-align:left;background:linear-gradient(130deg,#e3e9ca26,#e3e9ca10);border:1px solid #c4d0b580;border-radius:19px;gap:14px}
.signup-widget-copy{display:flex;flex-direction:column;gap:9px}
.signup-widget-copy strong{font:22px/1.15 Georgia;letter-spacing:-.3px}
.signup-widget-copy small{font:11px/1.5 Arial;color:#c6d2b7}
.signup-widget-arrow{font-size:24px}
/* Keep the original artwork mounted in the camera's wall plane. */
.studio.approaching .tour-poster,.studio.approaching .tour-poster:hover,.studio.approaching .tour-poster:focus-visible{transform:perspective(600px) rotateY(-4deg);transition:none}
#tour-dialog .mounted-poster{position:absolute;margin:0;height:auto;max-height:none;min-width:0;background:transparent;border:0;box-shadow:none;transform:none}
#tour-dialog .mounted-poster>img,#tour-dialog .mounted-poster:after{display:none}
#tour-dialog .poster-dates{padding:12px 14px;background:#d9d0ba;border:1px solid #77634d;box-shadow:1px 2px 3px #0004}
#tour-dialog .poster-dates h2{font-size:22px;margin:4px 0 8px}
#tour-dialog .poster-dates p{font-size:11px}
#tour-dialog .poster-dates a{font-size:11px;margin-top:9px;padding-top:8px}
#tour-dialog .poster-dates .eyebrow{font-size:7px}
#tour-dialog .laptop-back{top:105px}

/* Full-window studio, introduced only by the spinning mark. */
#app>header,#app>footer{display:none}
main{height:100svh;min-height:0}
#tour-dialog .laptop-back{top:24px}
.at-entry #app{visibility:hidden}
#entry-screen{position:fixed;inset:0;z-index:1000;width:100%;height:100svh;padding:32px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:44px;background:#13251d;color:#eee9d9;border:0;border-radius:0;cursor:pointer}
#entry-screen .entry-logo{width:150px;height:150px;object-fit:contain;animation:entry-logo-spin 12s linear infinite}
#entry-screen>span{font:12px Arial,Helvetica,sans-serif;letter-spacing:.16em;text-transform:lowercase}
#entry-screen:focus-visible{outline:none}
#entry-screen:focus-visible>span{text-decoration:underline;text-underline-offset:7px;text-decoration-color:#d8d1b76b}
@keyframes entry-logo-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){#entry-screen .entry-logo{animation:none}}
/* The doors finish opening before the camera approaches the wardrobe. */
.studio .closet-hotspot{perspective:900px;overflow:visible}
.studio .closet-hotspot .door-panel{backface-visibility:visible;transition:transform .7s cubic-bezier(.22,.7,.2,1)}
.studio .closet-hotspot .door-left{transform:rotateY(-7deg)}
.studio .closet-hotspot .door-right{transform:rotateY(7deg)}
.studio .closet-hotspot:hover .door-left,.studio .closet-hotspot:focus-visible .door-left{transform:rotateY(-38deg)}
.studio .closet-hotspot:hover .door-right,.studio .closet-hotspot:focus-visible .door-right{transform:rotateY(38deg)}
.studio .closet-hotspot.doors-open .door-left{transform:rotateY(-105deg)}
.studio .closet-hotspot.doors-open .door-right{transform:rotateY(105deg)}
.studio .closet-hotspot .interior-rail{height:57%}
.studio .closet-hotspot .interior-shelf{position:absolute;left:8%;right:8%;bottom:13%;height:20%;display:flex;align-items:flex-end;justify-content:space-around;gap:3%;padding:0 2% 3%;border-bottom:5px solid #9a7346;box-shadow:0 5px 7px #0a0c08aa;z-index:2}
.studio .closet-hotspot .interior-shelf img{position:static;width:21%;height:auto;max-height:94%;object-fit:contain;margin:0;filter:brightness(.82) sepia(.1)}
.studio .closet-hotspot .interior-shelf img:first-child{width:32%}
.studio .closet-hotspot .interior-shelf img:last-child{width:11%}
.studio .closet-hotspot .door-interior{z-index:0;isolation:isolate}
.studio .closet-hotspot .door-panel{z-index:3}
/* Raised wardrobe shelf, with a larger pair of high-tops. */
.closet .clothes-rail{height:48%}
.closet-shelf{left:10%;right:10%;bottom:31%;gap:clamp(16px,3vw,48px);justify-content:center;isolation:isolate}
.closet-shelf:before{content:'';position:absolute;left:-3%;right:-3%;height:26px;bottom:-13px;z-index:-1;background:linear-gradient(0deg,#342010 0 23%,#9a673b 25% 29%,#5d391e 32%,#986638 100%);border-bottom:3px solid #24160d;box-shadow:0 12px 15px #140d0aaa,inset 0 1px #c2935a88;transform:perspective(700px) rotateX(12deg)}
.closet-shelf button[data-product="shoes"]{flex:0 1 220px;width:220px}
.garment-tonal>img{filter:none}
.studio .closet-hotspot .interior-shelf{bottom:31%;height:21%}
.studio .closet-hotspot .interior-shelf img:first-child{width:39%}
.studio .closet-hotspot .interior-rail{height:43%}
@media(max-width:640px){.closet .clothes-rail{height:44%}.closet-shelf{left:8%;right:8%;bottom:32%;gap:12px}.closet-shelf button[data-product="shoes"]{flex:0 1 145px;width:145px}.closet-shelf:before{height:19px;bottom:-10px}}

/* Phone reclines toward the chair on a side-visible folding dock. */
.studio .phone-hotspot .hover-object{transform:none}
.studio .phone-hotspot:hover .hover-object,.studio .phone-hotspot:focus-visible .hover-object{transform:scale(1.12)}
#music-dialog .desk-docked-phone{transform:none}
#music-dialog .desk-docked-phone:hover,#music-dialog .desk-docked-phone:focus-visible{transform:scale(1.08)}
#phone-dialog .phone-device{transform:perspective(1600px) rotateY(28deg) rotateX(9deg) rotateZ(-12deg) scale(.88)}
/* Photographic phone sits behind the laptop's front edge, on the same desk plane. */
#music-dialog .desk-docked-phone{left:15.5%;top:47%;width:10.8%;height:30%;filter:brightness(.86) saturate(.8) drop-shadow(3px 5px 3px #170f0c88)}
#music-dialog .desk-docked-phone img{width:100%;height:100%;object-fit:contain;object-position:center bottom}
.studio .phone-hotspot .hover-object{object-fit:contain;object-position:center bottom;filter:brightness(.78) saturate(.78)}
@media(max-width:640px){#music-dialog .desk-docked-phone{left:24%;top:47%;width:9%;height:29%}}
#music-dialog .desk-docked-phone{left:13.5%;top:43%;width:13.5%;height:34%}
@media(max-width:640px){#music-dialog .desk-docked-phone{left:22%;top:44%;width:11%;height:32%}}
/* The close-up uses the original photographed lower shelf; room preview is separate. */
.closet .clothes-rail{height:72%}
.closet-shelf{left:43%;right:7%;bottom:13%;gap:20px;justify-content:flex-end}
.closet-shelf:before{display:none}
@media(max-width:640px){.closet .clothes-rail{height:65%}.closet-shelf{left:6%;right:6%;bottom:19%;gap:14px}}

/* Enter directly into the room: still emblem, then wings and a clear view. */
.at-entry #app{visibility:visible}
.at-entry #flight{visibility:hidden}
#entry-screen{background:#171b151f;backdrop-filter:blur(13px);-webkit-backdrop-filter:blur(13px);transition:backdrop-filter 1s ease,background 1s ease;gap:32px}
#entry-screen.entering{backdrop-filter:blur(0);-webkit-backdrop-filter:blur(0);background:transparent;cursor:default}
#entry-screen .entry-fly{display:block;position:relative;width:180px;height:180px;flex:none;filter:drop-shadow(0 3px 10px #13180d44)}
.entry-bug{position:absolute;inset:0;perspective:400px;display:block}
.entry-bug img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
#entry-screen .left-wing{animation:flap-left .32s ease-in-out infinite alternate}
#entry-screen .right-wing{animation:flap-right .32s ease-in-out infinite alternate}
#entry-screen.entering .left-wing{animation:flap-left .16s ease-in-out infinite alternate}
#entry-screen.entering .right-wing{animation:flap-right .16s ease-in-out infinite alternate}
#entry-screen .entry-prompt{font:12px Arial;letter-spacing:.13em;text-shadow:0 2px 8px #0008;transition:opacity .25s}
#entry-screen.entering .entry-prompt{opacity:0}
@media(prefers-reduced-motion:reduce){#entry-screen{transition:none}#entry-screen .wing,#entry-screen.entering .wing{animation:none;transform:none}}
#entry-screen .entry-fly{position:absolute;left:calc(50% - 90px);top:calc(50% - 90px)}
#entry-screen .entry-prompt{position:absolute;top:calc(50% + 125px);left:0;right:0;text-align:center}
/* Fit both desk devices in narrow windows instead of cropping and overlapping them. */
@media(max-aspect-ratio:6/5){
 #music-dialog .laptop-stage{width:130vw;left:59%;top:50%;aspect-ratio:3/2}
 #music-dialog .desk-docked-phone{left:14%;top:43%;width:10.5%;height:34%}
}
@media(max-aspect-ratio:3/4){
 #music-dialog .laptop-stage{width:130vw;left:59%}
 #music-dialog .desk-docked-phone{left:14%;width:10.5%}
}

/* Open toward the viewer while keeping the phone's lower edge planted. */
#phone-dialog .phone-device{transform-origin:50% 100%;transform:perspective(1600px) rotateY(0deg) rotateX(0deg) rotateZ(0deg) scale(.704);margin:0;bottom:auto;right:auto}

/* Product photographs stay whole, with familiar front/back thumbnail controls. */
#product-dialog .detail-photo{min-height:630px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 20px 112px;background:#e6e2d8}
#product-dialog .detail-photo>img{position:static;display:block;width:100%;height:490px;max-height:65dvh;object-fit:contain;object-position:center}
.product-thumbnails{position:absolute;bottom:20px;left:20px;right:20px;display:flex;gap:10px;justify-content:center}
.product-thumbnail{width:68px;padding:4px;border:1px solid #9b9d9270;background:#f2efe6;display:flex;flex-direction:column;align-items:center;gap:4px;color:#293d30;font-size:10px}
.product-thumbnail img{width:58px;height:58px;object-fit:contain}
.product-thumbnail[aria-pressed="true"]{border:2px solid #294e37;padding:3px;box-shadow:0 0 0 2px #294e3714}
.product-thumbnail:hover{border-color:#294e37}
.product-thumbnail:focus-visible{outline:2px solid #294e37;outline-offset:3px}
.bag-item>img{object-fit:contain}
@media(max-width:640px){#product-dialog .detail-photo{min-height:0;height:auto;padding:35px 18px 105px}#product-dialog .detail-photo>img{height:360px;max-height:55dvh}}

/* Spotify occupies the entire display beneath the laptop app tabs. */
#music-dialog .laptop-screen{overflow:hidden}
#music-app{position:relative;overflow:hidden;min-height:0}
#music-app #spotify-player{position:absolute;inset:0;width:100%;height:100%;overflow:hidden}
#music-app #spotify-player iframe{position:absolute;left:0;top:0;max-width:none;min-height:0;border:0;border-radius:0;transform-origin:top left}

/* Opening-room typography: handwritten welcome, typewritten supporting notes. */
.studio .room-intro h1{font-family:'Bradley Hand','Segoe Print','Chalkboard SE',cursive;font-weight:400;font-size:clamp(42px,4.5vw,70px);line-height:1.08;letter-spacing:-1px;text-shadow:0 2px 16px #17190dc0}
.studio .room-intro h1 em{font-family:inherit;font-style:normal;font-weight:400}
.studio .room-intro .eyebrow{font-family:'Courier New',Courier,monospace;font-weight:400;font-size:10px;letter-spacing:.13em}
.studio .room-intro p{font-family:'Courier New',Courier,monospace;font-size:13px;line-height:1.65;letter-spacing:-.2px}
.studio .room-note{font-family:'Bradley Hand','Segoe Print','Chalkboard SE',cursive;font-size:19px;line-height:1.3;letter-spacing:0}
.entry-prompt{font-family:'Courier New',Courier,monospace;font-size:12px;letter-spacing:.1em}
@media(max-width:640px){.studio .room-intro h1{font-size:40px}.studio .room-intro .eyebrow{font-size:8px}.studio .room-intro p{font-size:11px}.studio .room-note{font-size:17px}}

/* Only the four wings articulate; the body, head and legs remain fixed. */
#entry-screen .left-wing{clip-path:url(#entry-wing-left);transform-origin:44.5% 31%}
#entry-screen .right-wing{clip-path:url(#entry-wing-right);transform-origin:55.5% 31%}
#entry-screen .bug-body{clip-path:url(#entry-body-still);animation:none;transform:none}
#entry-screen .entry-bug{inset:15px 0}
#entry-screen:not(.entering) .wing{animation-duration:.8s}
/* Camera movement already delivers the final closet framing. */
#closet.scene.active{animation:none}

/* The entire show listing plaque is one accessible link. */
#tour-dialog .poster-dates{display:block;text-decoration:none;color:#772c26;cursor:pointer;font-family:'Courier New',Courier,monospace;transition:background .18s ease}
#tour-dialog .poster-dates h2{font-family:'Courier New',Courier,monospace;font-size:21px;font-weight:700;letter-spacing:-.8px;line-height:1.15}
#tour-dialog .poster-dates p,#tour-dialog .poster-dates .eyebrow{font-family:inherit}
#tour-dialog .poster-dates-link{display:block;border-top:1px solid #a87c6166;margin-top:9px;padding-top:8px;font:11px/1.4 'Courier New',Courier,monospace}
#tour-dialog .poster-dates:hover{background:#e5dbc3}
#tour-dialog .poster-dates:focus-visible{outline:2px solid #f0e6d0;outline-offset:4px}

/* The video player sits inside the same physical laptop display. */
#video-app{position:relative;min-height:0;overflow:hidden;background:#000}
#youtube-player{position:absolute;inset:0;width:100%;height:100%}
#youtube-player iframe{display:block;width:100%;height:100%;border:0}
.laptop-screen [role=tabpanel][hidden]{display:none}

/* Connection feedback never obscures Spotify's own player or controls. */
#spotify-player .spotify-connection{inset:auto 8px 8px auto;max-width:90%;padding:7px 9px;gap:8px;flex-direction:row;flex-wrap:wrap;font-size:10px;background:#202720ed;border:1px solid #65746155;border-radius:5px;box-shadow:0 2px 8px #0003}
#spotify-player .spotify-connection button,#spotify-player .spotify-connection a{padding:4px 6px;font-size:10px}

/* One permanent miniature of the actual closet remains behind the room doors. */
.studio .closet-hotspot .door-interior{inset:0;padding:0;display:block;background:#332316;box-shadow:none}
.studio .closet-hotspot .door-interior:after{display:none}
.closet-transition-view{color:var(--paper);text-align:left;font:16px Arial,Helvetica,sans-serif}
.closet-transition-view .garment,.closet-transition-view .closet-shelf button{transition:none!important}

/* Continue the wardrobe below the upper section used by the camera zoom. */
.closet-lower-shelves{position:absolute;left:3.5%;right:3.5%;bottom:2%;display:grid;grid-template-rows:1fr 1fr;background:#382416 url('assets/closet-empty.webp') center bottom/100% 180% no-repeat;box-shadow:inset 5px 0 12px #120b08aa,inset -5px 0 12px #120b08aa;pointer-events:none}
.closet-lower-bay{position:relative;display:flex;align-items:flex-end;justify-content:space-around;gap:3%;padding:10% 5% 8%;min-height:0;background:linear-gradient(180deg,#140c09a6,transparent 35%,#bb81431c 90%,#150b09a0);border-bottom:5px solid #684324;box-shadow:0 3px 4px #100906,inset 0 -2px #b1854f66}
.closet-lower-bay img{width:22%;height:auto;max-height:70%;object-fit:contain;filter:brightness(.8) drop-shadow(2px 3px 2px #160c09aa)}
.closet-lower-bay img:first-child{width:35%}.closet-lower-bay img:last-child{width:13%}

/* Blur a static room layer, rather than continuously sampling the animated scene. */
#entry-screen{backdrop-filter:none;-webkit-backdrop-filter:none;isolation:isolate;transition:background 1s ease}
#entry-screen::before{content:'';position:absolute;inset:-24px;z-index:-1;background:url('assets/studio-room-macbook.webp') center 53%/cover no-repeat;filter:blur(13px);opacity:1;transition:opacity 1s ease;pointer-events:none}
#entry-screen.entering::before{opacity:0}
.at-entry #flight *{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){#entry-screen::before{transition:none}}

/* Hover feedback uses prepared transform layers, without live background blur. */
.studio .hotspot{backdrop-filter:none;-webkit-backdrop-filter:none;transition:none}
.studio:not(.approaching) .hover-object{will-change:transform;transition:transform 150ms ease-out}
.studio .laptop-hotspot .hover-object,.studio .laptop-hotspot:hover .hover-object,.studio .laptop-hotspot:focus-visible .hover-object{filter:drop-shadow(0 5px 5px #0008)}
.studio .phone-hotspot .hover-object,.studio .phone-hotspot:hover .hover-object,.studio .phone-hotspot:focus-visible .hover-object{filter:brightness(.78) saturate(.78)}
.studio:not(.approaching) .tour-poster{will-change:transform;transition:transform 120ms ease-out}
.studio .closet-hotspot:not(.doors-open) .door-panel{will-change:transform;transition:transform 240ms ease-out}
#closet .garment{will-change:transform;transition:transform 220ms ease-out}
#closet .garment.selected,#closet .clothes-rail.has-selection .garment:not(.selected){filter:drop-shadow(8px 8px 9px #0008)}
.closet-shelf button,#music-dialog .desk-docked-phone{will-change:transform;transition:transform 150ms ease-out}
@media(prefers-reduced-motion:reduce){.studio .hover-object,.studio .tour-poster,.studio .closet-hotspot .door-panel,#closet .garment,.closet-shelf button,#music-dialog .desk-docked-phone{transition:none!important}}

/* Keep eight hangers spread across the same rail. */
@media(min-width:641px){.garment{left:calc(var(--i)*10.057142857%)}}
#drop-contact{margin-top:24px}#drop-contact .contact-widget{padding:20px;background:#e8deca;color:#25382d;border-radius:8px}#drop-contact input{color:#20291f;background:#fffaf0}#drop-contact .contact-avatar{display:none}.bag-button{display:none!important}

/* Collection variants: full, uncropped photography and accessible color controls. */
#product-dialog .product-layout{grid-template-columns:minmax(0,1.2fr) minmax(280px,1fr)}
#product-dialog .detail-photo{position:relative;min-width:0;min-height:580px;overflow:visible;padding:24px 22px 108px}
#product-dialog .detail-photo>img{width:100%;height:480px;max-height:62dvh;object-fit:contain;object-position:center;filter:none}
.color-swatches{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:12px}
.color-swatches button{width:34px;height:34px;padding:4px;border:1px solid transparent;border-radius:50%;background:transparent}
.color-swatches button span{display:block;width:100%;height:100%;background:var(--swatch);border-radius:50%;border:1px solid #0002}
.color-swatches button[aria-pressed="true"]{border-color:#334b3b}
.color-swatches button:focus-visible{outline:2px solid #334b3b;outline-offset:2px}
.collection-open{position:absolute;z-index:20;right:24px;top:22px;border:1px solid #c6b99288;border-radius:50%;background:#263b30e8;color:#f2eddf;padding:13px 23px;font:13px 'Courier New',monospace}
#collection-dialog{width:min(1000px,94vw);max-height:90dvh;padding:36px;background:#ece7dc}
#collection-title{font:38px Georgia,serif;margin:8px 0 24px}
.collection-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.collection-grid button{background:transparent;border:0;text-align:left;color:#263b30;padding:0}
.collection-grid img{display:block;width:100%;height:200px;object-fit:contain;background:#e5e0d5}
.collection-grid span{display:block;font-size:13px;padding:10px 0}
@media(max-width:640px){#product-dialog .product-layout{grid-template-columns:1fr}#product-dialog .detail-photo{min-height:0;padding:28px 18px 100px}#product-dialog .detail-photo>img{height:340px;max-height:52dvh}.collection-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.collection-grid img{height:155px}.collection-open{right:12px;top:12px;padding:10px 16px}}
/* Keep the gallery and its thumbnails visible on shorter desktop windows. */
#product-dialog .product-layout{align-items:start}
#product-dialog .detail-photo{position:sticky;top:0;height:min(640px,88dvh);min-height:0;padding:22px;gap:14px}
#product-dialog .detail-photo>img{height:calc(100% - 100px);max-height:none;min-height:0;flex:1;object-fit:contain}
#product-dialog .product-thumbnails{position:static;flex:0 0 80px;align-items:center;width:100%}
@media(max-width:640px){#product-dialog .detail-photo{position:relative;height:440px;max-height:62dvh;padding:18px}#product-dialog .detail-photo>img{max-height:none}}

/* Waistband-length crew preview, aligned to the same rail in all closet views. */
.garment-crew{height:80%}
@media(max-width:640px){.garment-crew{height:83%}}

/* All accessories share the wardrobe's existing wooden shelf. */
.closet .closet-shelf{left:8%;right:8%;bottom:12%;gap:clamp(8px,1.1vw,18px);display:flex;justify-content:center;align-items:flex-end;pointer-events:none}
.closet .closet-shelf button[data-product]{flex:0 1 var(--shelf-width,90px);width:var(--shelf-width,90px);min-width:0;margin:0;transform:none;padding:0;transform-origin:50% 100%;pointer-events:auto}
.closet .closet-shelf button[data-product="shoes"]{--shelf-width:200px}
.closet .closet-shelf button[data-product="cassette"]{--shelf-width:76px}
.closet .closet-shelf button[data-product="earbuds"]{--shelf-width:80px}
.closet .closet-shelf button[data-product="keychain"]{--shelf-width:55px}
.closet .closet-shelf button[data-product="glasses"]{--shelf-width:135px}
.closet .closet-shelf button[data-product="necklace"]{--shelf-width:105px}
.closet .closet-shelf button[data-product="earrings"]{--shelf-width:65px}
.closet .closet-shelf button[data-product="stickers"]{--shelf-width:65px}
.closet .closet-shelf button[data-product="tattoos"]{--shelf-width:95px}
.closet .closet-shelf button[data-product]>img{width:100%;height:auto;max-height:19vh;object-fit:contain;filter:brightness(.88) drop-shadow(2px 4px 2px #0008)}
.closet .closet-shelf button[data-product]:is(:hover,:focus-visible){transform:translateY(-3px) scale(1.12);z-index:8}
@media(max-width:640px){.closet .closet-shelf{left:5%;right:5%;bottom:15%;gap:8px;justify-content:flex-start;overflow-x:auto;overflow-y:hidden;padding:12px 5px 8px;pointer-events:auto;scrollbar-width:thin;scrollbar-color:#b59969 transparent}.closet .closet-shelf button[data-product]{flex:0 0 calc(var(--shelf-width,90px)*.75)}.closet .closet-shelf button[data-product]>img{max-height:16vh}.closet-transition-view .closet-shelf{overflow:hidden;pointer-events:none}}

/* Nine distinct pieces; preserve each cutout's native proportions. */
@media(min-width:641px){.garment{left:calc(var(--i)*8.8%)}}
.garment-ringer{height:74%}.garment-raglan{height:83%}
@media(max-width:640px){.garment-ringer{height:78%}.garment-raglan{height:86%}.clothes-rail:after{width:1510px}}
