:root{--night:#0a0920;--ink:#05040f;--amber:#ffb64a;--amber2:#ff8e2b;--teal:#3fe0c8;--cream:#f5ecd6;--dim:rgba(245,236,214,.64);--line:rgba(245,236,214,.16);--glass:rgba(10,9,30,.66);--steel:#1d1c33}
*{box-sizing:border-box;margin:0}
html,body{height:100%}
body{background:var(--ink);color:var(--cream);font-family:Figtree,system-ui,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
img,video{display:block;max-width:100%}
:focus-visible{outline:2px solid var(--teal);outline-offset:3px}
[hidden]{display:none!important}
.mono{font-family:"DM Mono",ui-monospace,monospace;letter-spacing:.2em;text-transform:uppercase;font-size:11px}
.bulb{font-family:Doto,"DM Mono",monospace;font-weight:900;color:#ffdf9c;text-shadow:0 0 5px rgba(255,190,90,.95),0 0 20px rgba(255,142,43,.8),0 0 58px rgba(255,142,43,.5)}

/* buttons shaped like rack units */
.unit{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;height:50px;padding:0 22px;border:1px solid var(--line);border-radius:10px;background:linear-gradient(180deg,rgba(40,38,78,.72),rgba(10,9,30,.78));backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 10px 30px rgba(0,0,0,.35);font-weight:800;letter-spacing:.09em;text-transform:uppercase;font-size:13px;white-space:nowrap;transition:transform .16s,border-color .16s,box-shadow .16s}
.unit:hover{transform:translateY(-2px);border-color:rgba(255,182,74,.7);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 14px 34px rgba(0,0,0,.45),0 0 0 3px rgba(255,182,74,.1)}
.unit:active{transform:translateY(0)}
.unit .led{flex:none;width:7px;height:7px;border-radius:50%;background:var(--teal);box-shadow:0 0 8px var(--teal)}
.unit.main{background:linear-gradient(180deg,#ffd27e,#ff9a36);color:#1c1003;border-color:rgba(255,236,190,.7);box-shadow:inset 0 1px 0 rgba(255,255,255,.55),0 10px 34px rgba(255,142,43,.38)}
.unit.main:hover{box-shadow:inset 0 1px 0 rgba(255,255,255,.55),0 14px 44px rgba(255,142,43,.55)}
.unit.main .led{background:#1c1003;box-shadow:none}
.unit.off{pointer-events:none;background:linear-gradient(180deg,rgba(255,210,126,.2),rgba(255,154,54,.14));color:var(--amber);border-color:rgba(255,182,74,.35);box-shadow:none}
.unit.off .led{background:var(--amber);box-shadow:0 0 8px var(--amber);animation:blink 1.6s steps(2) infinite}
.unit svg{flex:none;width:15px;height:15px}
@keyframes blink{50%{opacity:.25}}

/* contract strip: one line at any width, the script shrinks the type to fit */
.ca{display:flex;align-items:center;gap:12px;height:54px;padding:0 8px 0 16px;border:1px solid var(--line);border-radius:12px;background:var(--glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 10px 30px rgba(0,0,0,.35)}
.ca .tag{flex:none;color:var(--teal);font-size:11px}
.ca [data-ca-val]{flex:1;min-width:0;overflow:hidden;white-space:nowrap;font-family:"DM Mono",ui-monospace,monospace;font-size:14px;letter-spacing:.02em;color:var(--cream)}
.ca [data-ca-copy]{flex:none;height:38px;padding:0 16px;border-radius:8px;background:var(--teal);color:#04201c;font-weight:800;font-size:12px;letter-spacing:.12em;text-transform:uppercase;transition:filter .15s}
.ca [data-ca-copy]:hover{filter:brightness(1.12)}
.ca.soon{display:inline-flex;padding-right:18px}
.ca.soon [data-ca-val]{flex:none;letter-spacing:.34em;color:var(--amber)}

/* sound control */
.snd{position:fixed;left:16px;bottom:16px;z-index:110;display:flex;align-items:center;gap:10px;height:42px;padding:0 14px 0 12px;border:1px solid var(--line);border-radius:999px;background:var(--glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.snd button{display:grid;place-items:center;width:24px;height:24px;border-radius:50%}
.snd svg{width:18px;height:18px}
.snd input{appearance:none;-webkit-appearance:none;width:78px;height:4px;border-radius:4px;background:linear-gradient(90deg,var(--amber) var(--v,50%),rgba(245,236,214,.2) var(--v,50%));outline-offset:6px;cursor:pointer}
.snd input::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:var(--amber);box-shadow:0 0 10px rgba(255,182,74,.8)}
.snd input::-moz-range-thumb{width:14px;height:14px;border:0;border-radius:50%;background:var(--amber)}

/* lift doors between floors */
.lift{position:fixed;inset:0;z-index:90;pointer-events:none;display:flex;visibility:hidden;transition:visibility 0s .7s}
.lift i{flex:1;background:linear-gradient(180deg,rgba(255,255,255,.05),transparent 30%,rgba(0,0,0,.35)),repeating-linear-gradient(90deg,#1c1b31 0 2px,#252440 2px 5px);transform:translateX(-101%);transition:transform .62s cubic-bezier(.7,0,.2,1);box-shadow:inset 0 0 0 10px rgba(0,0,0,.18),inset 0 0 120px rgba(0,0,0,.5)}
.lift i:first-child{border-right:2px solid rgba(255,182,74,.55)}
.lift i:last-child{transform:translateX(101%);border-left:2px solid rgba(63,224,200,.45)}
.lift.shut{pointer-events:auto;visibility:visible;transition:none}
.lift.shut i{transform:none}
.lift b{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;justify-items:center;gap:12px;padding:20px 34px 24px;border:1px solid rgba(255,182,74,.35);border-radius:12px;background:#07060f;box-shadow:0 20px 60px rgba(0,0,0,.6),inset 0 0 30px rgba(255,142,43,.12);opacity:0;transition:opacity .2s;font-weight:400;white-space:nowrap}
.lift b small{color:var(--dim)}
.lift b span{font-size:clamp(30px,6vw,56px);line-height:1}
.lift.shut b{opacity:1;transition:opacity .25s .3s}

/* floor pages */
.top{position:fixed;left:0;right:0;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;pointer-events:none}
.top>*{pointer-events:auto}
.back{height:40px;padding:0 16px;font-size:12px}
.floor{min-height:100svh;padding:92px 20px 96px;background:radial-gradient(1200px 620px at 50% -10%,#1d1a4a 0,rgba(5,4,15,0) 62%),radial-gradient(900px 500px at 100% 100%,rgba(63,224,200,.07),transparent 60%),var(--ink)}
.floor h1{font-size:clamp(44px,8vw,92px);line-height:.95;text-align:center;letter-spacing:.02em}
.floor .sub{text-align:center;color:var(--dim);margin-top:14px}
.where{color:var(--dim);display:flex;align-items:center;gap:8px}
.where::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--teal);box-shadow:0 0 8px var(--teal)}

@media (max-width:560px){
  .top{padding:12px 14px}
  .floor{padding:78px 14px 90px}
  .ca{height:auto;flex-wrap:wrap;gap:6px 10px;padding:10px 10px 10px 14px}
  .ca .tag{order:1;flex:1}
  .ca [data-ca-copy]{order:2;height:32px}
  .ca [data-ca-val]{order:3;flex:0 0 100%;font-size:12.5px;padding-bottom:2px}
  .ca.soon{flex-wrap:nowrap;padding:0 16px;height:48px}
  .ca.soon .tag{flex:none}
  .ca.soon [data-ca-val]{flex:none;padding:0}
}
@media (prefers-reduced-motion:reduce){.lift i,.lift b,.unit{transition:none}.unit.off .led{animation:none}}
