:root{
  --bg:#0c0a09; --bg2:#14110f; --fg:#efe7da; --dim:#8c8276; --line:rgba(239,231,218,.13);
  --brass:#d4a762; --glow:#ffcf8a; --lc:#ffb865;
  --serif:"Bodoni Moda","Didot",Georgia,serif;
  --sans:"Hanken Grotesk",system-ui,sans-serif;
  --mono:"DM Mono",ui-monospace,monospace;
  --ease:cubic-bezier(.2,.7,.1,1);
  --pad:clamp(20px,4.5vw,72px);
}
[data-mode=day]{--bg:#ece4d6;--bg2:#e2d9c8;--fg:#1b1612;--dim:#7a6f62;--line:rgba(27,22,18,.15);--brass:#8f6320}
.night{--bg:#0c0a09;--bg2:#14110f;--fg:#efe7da;--dim:#8c8276;--line:rgba(239,231,218,.13);--brass:#d4a762}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
html.locked{overflow:hidden}
body{background:var(--bg);color:var(--fg);font:300 clamp(16px,1.1vw,18px)/1.6 var(--sans);transition:background .8s,color .8s;overflow-x:hidden;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
em{font-family:var(--serif);font-style:italic;font-weight:400}
::selection{background:var(--glow);color:#1b1612}
:focus-visible{outline:2px solid var(--glow);outline-offset:4px;border-radius:4px}
.wrap{padding-inline:var(--pad);max-width:1600px;margin-inline:auto}
.mono{font:400 11px/1.4 var(--mono);letter-spacing:.14em;text-transform:uppercase}
.eyebrow{font:400 11px/1.4 var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--brass);display:flex;align-items:center;gap:14px}
.eyebrow::before{content:"";width:28px;height:1px;background:currentColor}
.h2{font-family:var(--serif);font-weight:400;font-size:clamp(40px,6.4vw,104px);line-height:.98;letter-spacing:-.025em;margin:22px 0 28px}
.h2-sm{font-size:clamp(34px,4.6vw,72px);margin-bottom:0}
.lede{color:var(--dim);max-width:46ch;font-size:clamp(16px,1.25vw,20px)}

/* line mask reveal */
.ln{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}
.ln>span{display:block;transform:translateY(110%);transition:transform 1.2s var(--ease)}
.in .ln>span,.ln.in>span{transform:none}
.ln:nth-child(2)>span{transition-delay:.12s}
.js .rv{opacity:0;transform:translateY(26px);transition:opacity 1s var(--ease),transform 1s var(--ease);transition-delay:calc(var(--d,0)*1ms)}
.js .rv.in{opacity:1;transform:none}

/* grain, cursor, filament */
.grain{position:fixed;inset:-50%;z-index:90;pointer-events:none;opacity:.07;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:grain 1s steps(6) infinite}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-3%)}60%{transform:translate(-2%,-1%)}80%{transform:translate(3%,3%)}100%{transform:translate(0,0)}}
.cursor{position:fixed;z-index:120;left:0;top:0;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:var(--glow);box-shadow:0 0 22px 6px rgba(255,200,120,.55);pointer-events:none;opacity:0;transition:width .35s var(--ease),height .35s var(--ease),margin .35s var(--ease),opacity .3s,background .3s;mix-blend-mode:normal}
.cursor.on{opacity:1}
.cursor.big{width:54px;height:54px;margin:-27px 0 0 -27px;background:rgba(255,207,138,.18);box-shadow:0 0 40px 10px rgba(255,200,120,.3)}
@media (hover:none),(pointer:coarse){.cursor{display:none}}
@media (hover:hover) and (pointer:fine){html.js body,html.js a,html.js button,html.js input{cursor:none}}
.filament{position:fixed;right:14px;top:50%;height:30vh;width:1px;transform:translateY(-50%);background:var(--line);z-index:70}
.filament i{position:absolute;left:-1px;top:0;width:3px;height:3px;border-radius:50%;background:var(--glow);box-shadow:0 0 12px 3px var(--glow);transform:translateY(0)}
@media(max-width:700px){.filament{display:none}}

/* NAV */
.nav{position:fixed;inset:0 0 auto 0;z-index:80;display:flex;align-items:center;justify-content:space-between;padding:18px var(--pad);transition:transform .6s var(--ease),background .5s;color:#efe7da}
.nav.hide{transform:translateY(-110%)}
.nav.solid{background:linear-gradient(#0c0a09ee,#0c0a0900)}
[data-mode=day] .nav.past{color:#1b1612}
.brand{display:flex;align-items:center;gap:12px;font:500 17px/1 var(--serif);letter-spacing:.02em}
.brand small{display:block;font:400 9px/1 var(--mono);letter-spacing:.2em;text-transform:uppercase;opacity:.6;margin-top:5px}
.brand-mark{width:18px;height:18px;border-radius:50%;background:radial-gradient(circle at 50% 35%,#fff6e0,#ffcf8a 45%,transparent 70%);box-shadow:0 0 18px 4px rgba(255,200,120,.5);animation:breathe 4s ease-in-out infinite}
@keyframes breathe{50%{box-shadow:0 0 26px 8px rgba(255,200,120,.75)}}
.nav-links{display:flex;gap:clamp(18px,3vw,44px);font:400 12px var(--mono);letter-spacing:.14em;text-transform:uppercase}
.nav-links a{position:relative;padding:6px 0;opacity:.75;transition:opacity .3s}
.nav-links a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--glow);transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease)}
.nav-links a:hover{opacity:1}.nav-links a:hover::after{transform:scaleX(1);transform-origin:left}
.nav-right{display:flex;align-items:center;gap:18px}
.mode{display:flex;align-items:center;gap:10px;font:400 10px var(--mono);letter-spacing:.16em;text-transform:uppercase}
.mode-track{width:36px;height:20px;border-radius:20px;border:1px solid currentColor;position:relative;opacity:.8}
.mode-knob{position:absolute;top:3px;left:3px;width:12px;height:12px;border-radius:50%;background:var(--glow);box-shadow:0 0 10px var(--glow);transition:transform .5s var(--ease),background .4s}
[data-mode=day] .mode-knob{transform:translateX(16px);background:#1b1612;box-shadow:none}
.burger{display:none;width:40px;height:40px;position:relative}
.burger i{position:absolute;left:8px;right:8px;height:1px;background:currentColor;transition:transform .5s var(--ease)}
.burger i:first-child{top:16px}.burger i:last-child{top:23px}
.burger[aria-expanded=true] i:first-child{transform:translateY(3.5px) rotate(45deg)}
.burger[aria-expanded=true] i:last-child{transform:translateY(-3.5px) rotate(-45deg)}
.sheet{position:fixed;inset:0;z-index:75;background:#0c0a09;color:#efe7da;display:flex;flex-direction:column;justify-content:center;gap:6px;padding:var(--pad);clip-path:circle(0 at calc(100% - 40px) 40px);transition:clip-path .9s var(--ease);visibility:hidden}
.sheet.open{clip-path:circle(150% at calc(100% - 40px) 40px);visibility:visible}
.sheet a{font:400 clamp(40px,12vw,72px)/1.1 var(--serif)}
.sheet p{margin-top:28px;color:var(--dim);font:400 12px/1.8 var(--mono);letter-spacing:.1em}
@media(max-width:900px){.nav-links,.nav-right .btn{display:none}.burger{display:block}}

/* BUTTONS */
.btn{--c:var(--glow);display:inline-flex;position:relative;overflow:hidden;padding:15px 26px;border-radius:99px;background:var(--c);color:#1b1612;font:500 13px/1 var(--sans);letter-spacing:.04em;transition:transform .5s var(--ease),box-shadow .5s;box-shadow:0 0 0 0 rgba(255,207,138,.0)}
.btn span{position:relative;z-index:1}
.btn::before{content:"";position:absolute;inset:0;background:#fff3dc;transform:translateY(101%);transition:transform .5s var(--ease)}
.btn:hover{box-shadow:0 0 40px 4px rgba(255,207,138,.45)}.btn:hover::before{transform:none}
.btn-sm{padding:11px 18px;font-size:12px}
.btn-ghost{background:transparent;color:var(--fg);box-shadow:inset 0 0 0 1px var(--line)}
.btn-ghost::before{background:var(--glow)}.btn-ghost:hover{color:#1b1612}
.link{display:inline-flex;gap:10px;align-items:center;font-size:14px;padding:6px 0;border-bottom:1px solid var(--line);transition:border-color .3s}
.link i{font-style:normal;transition:transform .4s var(--ease)}.link:hover{border-color:var(--glow)}.link:hover i{transform:translateX(5px)}

/* HERO */
.hero{position:relative;height:100svh;min-height:640px;overflow:hidden;background:#0a0807;color:#efe7da;--lx:75%;--ly:50%;--on:0}
.hero-glow{position:absolute;inset:0;pointer-events:none;opacity:calc(var(--on)*1);background:radial-gradient(circle 55vmax at var(--lx) var(--ly),rgba(255,176,90,.28),rgba(255,176,90,.07) 40%,transparent 70%)}
.hero-text{position:absolute;inset:0;display:flex;align-items:flex-end;padding:0 var(--pad) clamp(150px,22vh,240px);pointer-events:none}
.h1{font-family:var(--serif);font-weight:400;font-size:clamp(64px,min(13.6vw,25vh),238px);line-height:.88;letter-spacing:-.035em;display:block}
.h1 em{letter-spacing:-.045em;padding-right:.08em}
.hero-dim{color:rgba(239,231,218,.075)}
.hero-lit{color:#ffe3b3;opacity:var(--on);-webkit-mask-image:radial-gradient(circle var(--mr,46vmin) at var(--lx) var(--ly),#000 0%,rgba(0,0,0,.7) 38%,transparent 100%);mask-image:radial-gradient(circle var(--mr,46vmin) at var(--lx) var(--ly),#000 0%,rgba(0,0,0,.7) 38%,transparent 100%);text-shadow:0 0 60px rgba(255,170,80,.35)}
.hero-lit h1{font:inherit}
.hero-meta{position:absolute;left:var(--pad);bottom:clamp(64px,10vh,110px);max-width:min(430px,86vw);opacity:calc(var(--on));transform:translateY(calc((1 - var(--on))*20px));transition:none}
.hero-sub{margin:14px 0 22px;color:#bdb3a4;font-size:15px;line-height:1.55}
.hero-cta{display:flex;align-items:center;gap:26px;flex-wrap:wrap}
.hero-foot{position:absolute;left:var(--pad);right:var(--pad);bottom:22px;display:flex;justify-content:space-between;align-items:center;color:#8c8276}
.scrollcue{width:1px;height:34px;background:rgba(255,255,255,.15);position:relative;overflow:hidden}
.scrollcue i{position:absolute;left:0;top:-50%;width:1px;height:50%;background:var(--glow);animation:cue 2s var(--ease) infinite}
@keyframes cue{to{top:110%}}
@media(max-width:800px){.hero-addr{display:none}.hero-text{padding-bottom:clamp(250px,40vh,330px)}.hero-meta{bottom:60px}}

/* LAMP (hero) */
.lamp{position:absolute;left:0;top:0;width:0;height:0;will-change:transform;z-index:3}
.cord{position:absolute;left:-.5px;top:0;width:1px;height:var(--L,300px);background:linear-gradient(#5a4b36,#2d251b)}
.shade{position:absolute;left:-110px;top:var(--L,300px);width:220px;height:130px;cursor:grab;touch-action:none;filter:drop-shadow(0 18px 30px rgba(0,0,0,.6))}
.shade:active{cursor:grabbing}
.shade svg{display:block;overflow:visible}
.bulb,.bulb-core{opacity:var(--on);transform-origin:center}
.cone{position:absolute;left:-26vmin;top:calc(var(--L,300px) + 108px);width:52vmin;height:110vh;opacity:calc(var(--on)*.9);background:linear-gradient(rgba(255,205,130,.38),rgba(255,176,90,.1) 45%,transparent 85%);clip-path:polygon(40% 0,60% 0,100% 100%,0 100%);filter:blur(10px);pointer-events:none}
.chain{position:absolute;left:62px;top:calc(var(--L,300px) + 70px);width:30px;height:90px;display:flex;flex-direction:column;align-items:center;transform-origin:top center}
.chain-link{width:1px;flex:1;background:repeating-linear-gradient(#a58a56 0 3px,transparent 3px 5px)}
.chain-bead{width:11px;height:16px;border-radius:50% 50% 55% 55%;background:radial-gradient(circle at 35% 30%,#fff3cc,#c9a35c 50%,#6d5530);box-shadow:0 0 12px rgba(255,207,138,calc(.2 + var(--on)*.5));transition:transform .2s}
.chain.pull{animation:pull .5s var(--ease)}
@keyframes pull{30%{transform:translateY(18px)}}
.chain-hint{position:absolute;top:100%;left:50%;margin-top:14px;transform:translateX(-50%);white-space:nowrap;font:400 10px var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--glow);transition:opacity .5s}
.chain-hint::before{content:"";position:absolute;left:50%;top:-34px;width:28px;height:28px;margin-left:-14px;border-radius:50%;border:1px solid var(--glow);animation:ring 2s ease-out infinite}
@keyframes ring{from{transform:scale(.4);opacity:1}to{transform:scale(1.7);opacity:0}}
.lit .chain-hint{opacity:0;pointer-events:none}.lit .chain-hint::before{display:none}
.chain:hover .chain-bead{transform:scale(1.2)}

/* MARQUEE */
.marquee{overflow:hidden;border-block:1px solid var(--line);padding:26px 0;background:var(--bg);transition:background .8s}
.marquee-track{display:flex;gap:clamp(24px,3vw,56px);width:max-content;animation:mq 50s linear infinite;font:400 clamp(28px,3.6vw,56px)/1 var(--serif);white-space:nowrap}
.marquee-track span:nth-of-type(even){font-style:italic;color:var(--dim)}
.marquee-track b{color:var(--glow);font-size:.45em;align-self:center}
.marquee:hover .marquee-track{animation-play-state:paused}
@keyframes mq{to{transform:translateX(-50%)}}

/* STATEMENT */
.statement{padding-block:clamp(110px,18vw,260px)}
.statement-text{font:400 clamp(30px,4.7vw,78px)/1.1 var(--serif);letter-spacing:-.02em;max-width:19em;margin-top:34px}
.statement-text .w{color:var(--dim);opacity:.35;transition:color .5s,opacity .5s,text-shadow .6s}
.statement-text .w.on{color:var(--fg);opacity:1}
.statement-text em .w.on,.statement-text .w.on.hl{color:var(--brass);text-shadow:0 0 38px rgba(255,190,110,.35)}
html:not(.js) .statement-text .w{opacity:1}

/* SCENE (lamps switch on while scrolling) */
.scene{height:380vh;position:relative;background:#070605}
.scene-pin{position:sticky;top:0;height:100vh;overflow:hidden;--k:0}
.scene-wall{position:absolute;inset:0;background:
  radial-gradient(ellipse 90% 70% at 50% 30%,rgba(255,176,90,calc(var(--k)*.22)),transparent 70%),
  linear-gradient(#0a0807,#15100b calc(60% + var(--k)*0%),#0d0a07)}
.scene-wall::after{content:"";position:absolute;inset:0;opacity:calc(.2 + var(--k)*.5);background:repeating-linear-gradient(90deg,transparent 0 118px,rgba(255,235,200,.035) 118px 119px)}
.scene-floor{position:absolute;left:0;right:0;bottom:0;height:22vh;background:linear-gradient(#17110b,#0b0805)}
.scene-floor i{position:absolute;inset:0 0 auto 0;height:1px;background:rgba(255,220,160,calc(.1 + var(--k)*.5));box-shadow:0 0 30px 2px rgba(255,190,110,calc(var(--k)*.4))}
.scene-lamps{position:absolute;inset:0}
.sl{position:absolute;top:0;width:0;transform-origin:50% 0;animation:sway var(--sw,7s) ease-in-out infinite alternate;animation-delay:var(--dl,0s);--on:0}
@keyframes sway{from{transform:rotate(-1.3deg)}to{transform:rotate(1.3deg)}}
.sl-cord{position:absolute;left:-.5px;top:0;width:1px;height:var(--h);background:linear-gradient(#4a3d2b,#2a2218)}
.sl-body{position:absolute;left:calc(var(--w)/-2);top:var(--h);width:var(--w);height:var(--sh)}
.sl-shell{position:absolute;inset:0;background:linear-gradient(90deg,#14100c,#5a482f 35%,#a68351 50%,#41331f 72%,#100d0a);filter:drop-shadow(0 12px 18px rgba(0,0,0,.6))}
.t-dome .sl-shell{border-radius:50% 50% 6% 6%/90% 90% 8% 8%}
.t-cone .sl-shell{clip-path:polygon(34% 0,66% 0,100% 100%,0 100%)}
.t-globe .sl-shell{border-radius:50%;background:radial-gradient(circle at 36% 30%,#fff7e6,#d9c8a6 35%,#6b5c42 80%);opacity:1}
.t-cyl .sl-shell{border-radius:4px 4px 10px 10px}
.t-bell .sl-shell{border-radius:50% 50% 50% 50%/70% 70% 30% 30%;clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}
.sl-lit{position:absolute;left:8%;right:8%;bottom:-3px;height:36%;border-radius:50%;background:radial-gradient(#fffaf0,#ffd48a 55%,transparent 75%);opacity:var(--on);filter:blur(1px)}
.t-globe .sl-lit{inset:0;border-radius:50%;height:100%;left:0;right:0;bottom:0;background:radial-gradient(circle,#fffaf0,#ffdca0 55%,#ffb04a 100%);mix-blend-mode:screen}
.sl-halo{position:absolute;left:50%;top:calc(var(--sh)*.7);width:calc(var(--w)*5);height:calc(var(--w)*5);margin:calc(var(--w)*-2.5) 0 0 calc(var(--w)*-2.5);border-radius:50%;background:radial-gradient(rgba(255,190,110,.38),rgba(255,176,90,.12) 40%,transparent 68%);opacity:var(--on);pointer-events:none;mix-blend-mode:screen}
.sl-beam{position:absolute;left:calc(var(--w)*-.5);top:calc(var(--sh) - 2px);width:calc(var(--w)*2);height:var(--bh,60vh);opacity:calc(var(--on)*.9);background:linear-gradient(rgba(255,210,140,.34),rgba(255,176,90,.05) 80%,transparent);clip-path:polygon(25% 0,75% 0,100% 100%,0 100%);filter:blur(6px);pointer-events:none}
.t-globe .sl-beam{display:none}
.scene-ui{position:absolute;left:var(--pad);right:var(--pad);top:clamp(90px,16vh,150px);display:flex;flex-direction:column;gap:18px;pointer-events:none;z-index:4}
.scene-title{position:relative;font:400 clamp(30px,4.6vw,72px)/1.02 var(--serif);letter-spacing:-.025em;max-width:11em;height:2.1em;color:#efe7da}
.scene-title span{position:absolute;inset:0 auto auto 0;transition:opacity .7s,transform .9s var(--ease),filter .7s}
.scene-title .st-b{opacity:0;transform:translateY(24px);filter:blur(8px)}
.scene-title .st-b em{color:#ffd9a0;text-shadow:0 0 40px rgba(255,180,90,.5)}
.scene-pin.warm .st-a{opacity:0;transform:translateY(-24px);filter:blur(8px)}
.scene-pin.warm .st-b{opacity:1;transform:none;filter:none}
.scene-count{color:#8c8276}.scene-count b{color:var(--glow);font-weight:500}
@media(max-width:700px){.scene-title{height:3.2em}.sl-halo{opacity:calc(var(--on)*.8)}}

/* TEMP */
.temp{background:#0b0908;padding-block:clamp(90px,12vw,190px);overflow:hidden}
.temp-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(30px,6vw,110px);align-items:center}
.ctrl{margin-top:34px;max-width:480px}
.ctrl label{display:flex;justify-content:space-between;align-items:baseline;font:400 11px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--dim);margin-bottom:14px}
.ctrl output{font:400 28px/1 var(--serif);color:var(--lc);letter-spacing:0;text-transform:none;transition:color .2s}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:30px;background:transparent}
input[type=range]::-webkit-slider-runnable-track{height:3px;border-radius:3px;background:linear-gradient(90deg,#ff8a2c,#ffc27a 30%,#fff1de 62%,#cfe0ff)}
input[type=range]#dim::-webkit-slider-runnable-track{background:linear-gradient(90deg,#2a2118,var(--lc))}
input[type=range]::-moz-range-track{height:3px;border-radius:3px;background:linear-gradient(90deg,#ff8a2c,#ffc27a 30%,#fff1de 62%,#cfe0ff)}
input[type=range]#dim::-moz-range-track{background:linear-gradient(90deg,#2a2118,var(--lc))}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;margin-top:-9.5px;border-radius:50%;background:var(--lc);box-shadow:0 0 0 6px rgba(255,255,255,.07),0 0 24px 4px var(--lc);border:0;transition:transform .3s var(--ease)}
input[type=range]::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:var(--lc);box-shadow:0 0 0 6px rgba(255,255,255,.07),0 0 24px 4px var(--lc);border:0}
input[type=range]:active::-webkit-slider-thumb{transform:scale(1.25)}
.ticks{display:flex;justify-content:space-between;color:#5e564c;margin-top:4px;font-size:10px}
.verdict{margin-top:38px;padding-top:26px;border-top:1px solid var(--line);max-width:480px}
.verdict h3{font:400 clamp(26px,2.6vw,38px)/1.1 var(--serif);font-style:italic;color:var(--lc)}
.verdict p{margin-top:8px;color:var(--dim)}
.room{position:relative;aspect-ratio:640/760;border-radius:6px;overflow:hidden;box-shadow:0 40px 100px -30px rgba(0,0,0,.9),0 0 0 1px var(--line);isolation:isolate}
.room-svg{position:absolute;inset:0;width:100%;height:100%;display:block}
.light{opacity:var(--dimv,.8);mix-blend-mode:screen}
.room-veil{position:absolute;inset:0;background:#030201;opacity:calc(1 - var(--dimv,.8));pointer-events:none;mix-blend-mode:multiply}
.room-tag{position:absolute;left:14px;bottom:12px;color:rgba(255,255,255,.4);font-size:9px}
#bulbEl{filter:drop-shadow(0 0 14px var(--lc))}
.lit-obj{transition:filter .4s}
@media(max-width:900px){.temp-grid{grid-template-columns:1fr}.room{max-width:520px}}

/* SHOW (horizontal) */
.show{height:560vh;position:relative;background:#0c0a09}
.show-pin{position:sticky;top:0;height:100vh;overflow:hidden;display:flex;flex-direction:column;justify-content:center;gap:clamp(20px,4vh,48px)}
.show-head{width:100%}
.show-track{display:flex;gap:clamp(16px,2vw,32px);padding-inline:var(--pad);width:max-content;will-change:transform}
.card{position:relative;flex:0 0 clamp(270px,25vw,420px);height:clamp(380px,56vh,560px);border-radius:6px;padding:clamp(20px,2vw,30px);display:flex;flex-direction:column;justify-content:flex-end;background:linear-gradient(#14110e,#0d0b09);box-shadow:inset 0 0 0 1px var(--line);overflow:hidden;transition:box-shadow .6s,transform .8s var(--ease)}
.card h3{font:400 clamp(24px,2.2vw,34px)/1.1 var(--serif);margin-bottom:8px;position:relative}
.card p{color:var(--dim);font-size:14px;line-height:1.55;position:relative}
.lamp-ill{position:absolute;left:0;top:0;width:100%;height:68%;padding:4%;overflow:visible}
.lamp-ill .st{fill:none;stroke:#8c7650;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;transition:stroke .6s}
.lamp-ill .fl{fill:#17130f}
.lamp-ill .glow{opacity:0;transition:opacity .8s var(--ease)}
.lamp-ill .glowline{stroke:#ffd48a;stroke-width:1.5;opacity:0;transition:opacity .8s}
.card:hover,.card:focus-visible,.card.lit{box-shadow:inset 0 0 0 1px rgba(255,207,138,.35),0 0 60px -20px rgba(255,190,110,.4);transform:translateY(-6px)}
.card:hover .glow,.card:focus-visible .glow,.card.lit .glow,.card:hover .glowline,.card.lit .glowline{opacity:1}
.card:hover .st,.card.lit .st{stroke:#e5c48a}
.card-intro,.card-end{background:transparent;box-shadow:none;justify-content:space-between;padding-left:0}
.card-intro{flex-basis:clamp(300px,30vw,470px)}
.card-big{font:400 clamp(28px,3.2vw,52px)/1.05 var(--serif);letter-spacing:-.02em;color:var(--fg)}
.card-intro p:not(.card-big){max-width:32ch}
.card-end{justify-content:center;gap:28px;align-items:flex-start;flex-basis:clamp(280px,28vw,420px)}
.card-end .card-big{color:var(--glow)}
.drag{color:var(--brass)}
.show-bar{width:calc(100% - 2*var(--pad));margin-inline:auto;height:1px;background:var(--line);position:relative}
.show-bar i{position:absolute;left:0;top:-1px;height:3px;width:100%;background:var(--glow);transform-origin:left;transform:scaleX(0);box-shadow:0 0 12px var(--glow)}
@media(max-width:700px){.show{height:480vh}}

/* PLAN */
.plan{padding-block:clamp(100px,14vw,220px)}
.plan-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(30px,7vw,130px);align-items:start}
.plan-side{position:sticky;top:18vh}
.tabs{position:relative;display:inline-flex;margin-top:38px;padding:4px;border-radius:99px;box-shadow:inset 0 0 0 1px var(--line)}
.tabs button{position:relative;z-index:1;padding:11px 24px;font:400 12px var(--mono);letter-spacing:.14em;text-transform:uppercase;border-radius:99px;transition:color .4s;color:var(--dim)}
.tabs button[aria-selected=true]{color:#1b1612}
.tab-ind{position:absolute;top:4px;bottom:4px;left:4px;width:var(--tw,100px);transform:translateX(var(--tx,0));border-radius:99px;background:var(--glow);transition:transform .6s var(--ease),width .6s var(--ease);box-shadow:0 0 30px rgba(255,207,138,.4)}
.steps{list-style:none;position:relative;padding-left:clamp(34px,5vw,80px)}
.steps::before{content:"";position:absolute;left:8px;top:12px;bottom:12px;width:1px;background:var(--line)}
.steps::after{content:"";position:absolute;left:8px;top:12px;width:1px;height:calc((100% - 24px)*var(--fill,0));background:linear-gradient(var(--glow),#ffb04a);box-shadow:0 0 14px 1px var(--glow)}
.step{position:relative;display:grid;grid-template-columns:auto 1fr;gap:clamp(16px,2vw,30px);padding-block:clamp(34px,6vw,80px);opacity:.28;transition:opacity .8s}
.step+.step{border-top:1px solid var(--line)}
.step::before{content:"";position:absolute;left:calc(-1*clamp(34px,5vw,80px) + 3px);top:calc(clamp(34px,6vw,80px) + 10px);width:11px;height:11px;border-radius:50%;background:var(--bg);box-shadow:0 0 0 1px var(--line);transition:background .6s,box-shadow .6s}
.step.on{opacity:1}
.step.on::before{background:var(--glow);box-shadow:0 0 0 4px rgba(255,207,138,.18),0 0 24px 4px rgba(255,190,110,.7)}
.step-n{color:var(--brass);padding-top:12px;width:2.2em}
.step h3{font:400 clamp(30px,3.6vw,56px)/1 var(--serif);letter-spacing:-.02em;margin-bottom:12px}
.step p{color:var(--dim);max-width:42ch;transition:opacity .35s,transform .5s var(--ease)}
.step p.swap{opacity:0;transform:translateY(8px)}
@media(max-width:900px){.plan-grid{grid-template-columns:1fr}.plan-side{position:static}}

/* VISIT */
.visit{padding-block:clamp(40px,6vw,100px) clamp(100px,14vw,200px)}
.visit-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(30px,6vw,120px);align-items:start}
.status{display:inline-flex;align-items:center;gap:12px;padding:10px 18px 10px 14px;border-radius:99px;box-shadow:inset 0 0 0 1px var(--line);font:400 12px var(--mono);letter-spacing:.1em;text-transform:uppercase}
.dot{width:9px;height:9px;border-radius:50%;background:#6b6258}
.status.open .dot{background:#ffcf8a;box-shadow:0 0 12px 3px rgba(255,200,120,.8);animation:breathe 2.4s ease-in-out infinite}
.addr{margin:30px 0;font:400 clamp(22px,2.2vw,32px)/1.25 var(--serif);font-style:normal}
.addr strong{font-weight:400;color:var(--dim);font-size:.65em;font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase}
.contact{display:flex;flex-direction:column}
.big-link{display:flex;flex-direction:column;gap:4px;padding:20px 0;border-top:1px solid var(--line);font:400 clamp(22px,2.6vw,38px)/1.1 var(--serif);transition:padding .6s var(--ease),color .4s;position:relative}
.big-link:last-child{border-bottom:1px solid var(--line)}
.big-link .mono{font-size:10px;color:var(--brass)}
.big-link:hover{padding-left:18px;color:var(--brass)}
.hours{padding:clamp(24px,3vw,44px);border-radius:6px;background:var(--bg2);box-shadow:inset 0 0 0 1px var(--line);transition:background .8s}
.hours h3{color:var(--brass);margin-bottom:18px}
.hours table{width:100%;border-collapse:collapse;font-size:15px}
.hours tr{border-bottom:1px solid var(--line)}
.hours th,.hours td{padding:13px 0;text-align:left;font-weight:300}
.hours td{text-align:right;font-variant-numeric:tabular-nums}
.hours td.closed{color:var(--dim)}
.hours tr.today th,.hours tr.today td{color:var(--brass);font-weight:500}
.hours tr.today th::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--glow);box-shadow:0 0 10px var(--glow);margin-right:10px;vertical-align:middle}
.note{margin:20px 0 26px;color:var(--dim);font-size:10px;line-height:1.8}
@media(max-width:900px){.visit-grid{grid-template-columns:1fr}}

/* FOOT */
.foot{background:#080605;padding-top:clamp(60px,8vw,120px);overflow:hidden;--fx:50%;--fy:50%}
.foot-big{position:relative;font:400 clamp(70px,20.5vw,360px)/.82 var(--serif);letter-spacing:-.05em;text-align:center;white-space:nowrap;margin-bottom:-.04em;user-select:none}
.foot-dim{display:block;color:rgba(239,231,218,.07)}
.foot-lit{position:absolute;inset:0;color:#ffe3b3;text-shadow:0 0 70px rgba(255,170,80,.5);-webkit-mask-image:radial-gradient(circle 30vw at var(--fx) var(--fy),#000,transparent);mask-image:radial-gradient(circle 30vw at var(--fx) var(--fy),#000,transparent)}
.foot-row{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-block:26px;border-top:1px solid var(--line);color:#6f675c;position:relative;background:#080605}
.foot-row a{transition:color .3s}.foot-row a:hover{color:var(--glow)}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .grain{display:none}
}
