:root{color-scheme:dark;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#0b0c0f;color:#f2f3f5}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{min-height:100vh;background:radial-gradient(circle at top,rgba(255,190,80,.08),transparent 30%),linear-gradient(180deg,#0e1015,#090a0c)}button,a,input{font:inherit}button{cursor:pointer;border:none}.app-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px}.elevator-frame{container-type:inline-size;position:relative;width:min(100%,480px);min-height:min(920px,100vh - 32px);border-radius:28px;overflow:hidden;background:linear-gradient(0deg,#000000b3,#0003),url(/background.png) center center;background-size:100% auto;background-repeat:repeat-y;background-position:top center;border:1px solid rgba(255,255,255,.08);box-shadow:0 30px 80px #00000073,inset 0 1px #ffffff14;display:grid;grid-template-rows:auto 1fr auto}.display-panel{justify-self:center;padding:18px 18px 12px;display:flex;flex-direction:column;align-items:center;gap:12px}.brand{font-size:12px;text-transform:uppercase;letter-spacing:.14em;color:#ffffff8c;margin-bottom:10px}.top-display-panel{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;box-sizing:border-box;background-color:transparent;background-image:url(/wall.jpg);background-position:center center;background-size:90% auto;background-repeat:no-repeat;padding:18px;padding:clamp(10px,3.8cqi,18px) clamp(12px,4.2cqi,20px)}.display{width:min(100%,360px);width:min(100%,min(360px,78cqi));border-radius:16px;border-radius:clamp(12px,3.4cqi,16px);padding:18px 20px;padding:clamp(10px,3.6cqi,18px) clamp(12px,4.2cqi,20px);min-height:56px;min-height:clamp(44px,11.5cqi,56px);font-size:.8rem;font-size:clamp(.68rem,2.1cqi + .42rem,.88rem);display:flex;align-items:center;justify-content:center;text-align:center;background:linear-gradient(180deg,#331b0e,#1c1009);border:1px solid rgba(255,190,100,.22);color:#ffca85;font-weight:700;letter-spacing:.08em;text-transform:uppercase;box-shadow:inset 0 0 24px #ff9a3c1a}.floor-indicator{--gap: clamp(3px, 1.2cqi, 6px);--indicator-size: min(44px, calc((100% - 5 * var(--gap)) / 6));display:flex;justify-content:center;justify-self:center;flex-wrap:nowrap;align-items:center;gap:var(--gap);margin-top:12px;margin-top:clamp(8px,2.5cqi,12px);margin-bottom:6px;margin-inline:auto;width:min(100%,360px);width:min(100%,min(360px,78cqi));padding:10px 12px;padding:clamp(8px,2.4cqi,10px) clamp(10px,2.8cqi,12px);border-radius:18px;border-radius:clamp(14px,3.8cqi,18px);background-color:#1c1814;background-image:url(/plate.jpg);background-position:center center;background-size:100% auto;background-repeat:no-repeat;border:1px solid rgba(255,255,255,.08);box-shadow:inset 0 1px #ffffff0f,0 10px 20px #0000002e}.display-blink,.panel-display-blink{animation:softBlink 1.8s ease-in-out infinite}@keyframes softBlink{0%,to{opacity:1;box-shadow:inset 0 0 24px #ff9a3c1a,0 0 #ffbe6400}50%{opacity:.72;box-shadow:inset 0 0 24px #ff9a3c2e,0 0 18px #ffbe642e}}.elevator-header{background:linear-gradient(180deg,#0000,#000c)}.elevator-panel{width:min(100%,340px);aspect-ratio:9 / 16;background:url(/panel.png) no-repeat center center;background-size:100% 100%;border-radius:24px;padding:24px 20px;box-shadow:inset 0 2px 6px #ffffff0d,0 20px 40px #0006;display:flex;flex-direction:column;justify-content:space-between;gap:20px;margin-inline:auto;position:relative}.panel-display{justify-self:center;background:linear-gradient(180deg,#3a1f0f,#1c0f07);border:1px solid rgba(255,180,90,.3);color:#fc8;padding:12px;text-align:center;border-radius:0;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.panel-display-choice{position:absolute;left:50.2%;top:9.6%;transform:translate(-50%);width:52%;height:30px;border-radius:6px;display:flex;align-items:center;justify-content:center;text-align:center;font-size:75%;color:#fc8;text-transform:uppercase;letter-spacing:.08em}.panel-buttons{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.elevator-btn{position:absolute;width:18%;aspect-ratio:1;border-radius:50%;background:linear-gradient(45deg,rgba(255,255,255,.8),transparent 18%),linear-gradient(180deg,#f9dc98,#d39d3d 45%,#8f6e31 75%,#60431d);border:2px solid rgba(58,41,4,.9);color:#2a1200;font-size:18px;font-weight:800;text-shadow:0 1px 1px rgba(0,0,0,.25);box-shadow:inset 0 6px 12px #ffffff3d,inset 0 -6px 12px #0000002e,0 10px 22px #00000059;transition:transform .15s ease,box-shadow .15s ease,background .15s ease;display:flex;align-items:center;justify-content:center;text-decoration:none;pointer-events:auto;transform:translate(-50%,-50%);transform-origin:center center}.btn-floor-1{top:23%;left:32.5%}.btn-floor-2{top:23%;left:68%}.btn-floor-3{top:45.5%;left:32.5%}.btn-floor-4{top:45.5%;left:68%}.btn-floor-5{top:69%;left:32.5%}.btn-floor-6{top:69%;left:68%}.elevator-btn.is-pressed,.elevator-btn:active{transform:translate(-50%,-50%) scale(.88);background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.95),transparent 12%),linear-gradient(180deg,#ffd98d,#dca646,#a27438 70%,#5c3e22);box-shadow:inset 0 3px 8px #ffffff26,inset 0 -4px 8px #00000038,0 8px 18px #00000059;color:#2c1300}.elevator-btn-music{font-size:18px;text-transform:lowercase;background:linear-gradient(180deg,#3a2a1a,#1c140c);color:#fc8;border:1px solid rgba(255,190,100,.3);padding:0 18px}.music-btn.is-pressed,.music-btn:active{background:linear-gradient(180deg,#fc8,#c48a3a);color:#1a1208}.code-elevator-btn{position:absolute;left:49.9%;bottom:12.8%;transform:translate(-50%);width:52%;height:48px;border-radius:8px;pointer-events:auto;display:flex;align-items:center;justify-content:center;text-align:center;font-weight:800;font-size:90%;letter-spacing:.1em;text-transform:uppercase;color:#2a1200;text-shadow:0 1px 0 rgba(255,230,190,.35);background:linear-gradient(180deg,rgba(255,255,255,.22) 0%,transparent 42%),linear-gradient(180deg,#ffe8a8,#e8b85a 38%,#c4923f 62%,#8a6328);border:2px solid rgba(58,41,4,.85);box-shadow:inset 0 5px 10px #ffffff59,inset 0 -6px 14px #4a300c59,0 0 0 1px #ffc87859,0 0 26px #ffbe6452,0 12px 24px #00000061;transition:transform .15s ease,box-shadow .15s ease,background .15s ease,border-color .15s ease,color .15s ease}.code-elevator-btn:hover{border-color:#2a1c00eb;box-shadow:inset 0 5px 10px #fff6,inset 0 -6px 14px #4a300c52,0 0 0 1px #ffd28c80,0 0 34px #ffc86e6b,0 14px 28px #0006}.code-elevator-btn:active,.code-elevator-btn.is-pressed{transform:translate(-50%) scale(.97);transform-origin:center center;color:#241005;background:linear-gradient(180deg,rgba(255,255,255,.12) 0%,transparent 38%),linear-gradient(180deg,#ffd98d,#dca646,#a27438 70%,#5c3e22);box-shadow:inset 0 3px 8px #fff3,inset 0 -5px 12px #00000047,0 0 0 1px #ffbe6447,0 0 18px #ffb45a38,0 8px 18px #0000005c}.wide-button.is-pressed{transform:scale(.97);transform-origin:center center;box-shadow:0 0 18px #ffbe6433}@keyframes dispatcherCallGlow{0%,to{filter:drop-shadow(0 0 4px rgba(255,190,100,.14));border-color:#ffbe6447}50%{filter:drop-shadow(0 0 10px rgba(255,200,120,.28)) drop-shadow(0 0 22px rgba(255,160,80,.12));border-color:#ffcd8c73}}.elevator-btn-disp{font-size:18px;text-transform:lowercase;background:linear-gradient(180deg,#3a2a1a,#1c140c);color:#fc8;border:1px solid rgba(255,190,100,.3);padding:0 18px;position:absolute;left:50.2%;top:9.6%;transform:translate(-50%);width:52%;height:30px;border-radius:6px;transition:all .15s ease;pointer-events:auto;animation:dispatcherCallGlow 2.6s ease-in-out infinite;display:flex;align-items:center;justify-content:center;text-align:center;font-size:75%;text-transform:uppercase;letter-spacing:.08em}.elevator-btn-disp.is-pressed,.elevator-btn-disp:active{transform:translate(-50%) scale(.97);transform-origin:center center;animation:none;filter:drop-shadow(0 0 8px rgba(255,190,100,.22))}.elevator-stage{position:relative;overflow:hidden;padding:18px}.elevator-stage.error-halo:before{content:"";position:absolute;top:-10px;left:0;right:0;height:40px;background:linear-gradient(to bottom,rgba(255,100,100,.4),rgba(255,50,50,.2),transparent);pointer-events:none;z-index:10;animation:redHaloPulse 1.2s ease-in-out}@keyframes redHaloPulse{0%{opacity:0;transform:scaleY(.5)}50%{opacity:1;transform:scaleY(1)}to{opacity:0;transform:scaleY(.5)}}.elevator-stage.success-halo:before{content:"";position:absolute;top:-10px;left:0;right:0;height:40px;background:linear-gradient(to bottom,rgba(105,255,100,.4),rgba(105,255,100,.2),transparent);pointer-events:none;z-index:10;animation:greenHaloPulse 1.2s ease-in-out}@keyframes greenHaloPulse{0%{opacity:0;transform:scaleY(.5)}50%{opacity:1;transform:scaleY(1)}to{opacity:0;transform:scaleY(.5)}}.screen-content{position:relative;z-index:1;height:100%}.screen-block{min-height:100%}.center-block{display:flex;flex-direction:column;justify-content:center;gap:20px}.lead{margin:0;text-align:center;line-height:1.5;color:#ffffffe6}.stack{display:flex;flex-direction:column}.gap-md{gap:12px}.wide-button{display:inline-flex;align-items:center;justify-content:center;width:100%;min-height:56px;padding:14px 18px;border-radius:999px;background:linear-gradient(180deg,#f2c98b,#c5974f);color:#1a1510;font-weight:800;text-decoration:none;text-align:center;box-shadow:0 10px 30px #c5974f40;transition:all .15s ease}.wide-button.secondary{background:linear-gradient(180deg,#2a2f38,#1b1f27);color:#f2f3f5;border:1px solid rgba(255,255,255,.08);box-shadow:none}.home-screen{display:flex;flex-direction:column;justify-content:center;gap:20px}.home-hint,.hint{font-size:13px;line-height:1.5;color:#ffffff80;text-align:center;margin:0}.floor-card{display:flex;flex-direction:column;gap:18px}.floor-image{width:100%;aspect-ratio:4 / 5;object-fit:cover;border-radius:22px;border:1px solid rgba(255,255,255,.08);background:#1a1d22;opacity:0;transform:scale(1.06);filter:blur(6px);animation:imageReveal .7s ease forwards}.floor-copy{display:flex;flex-direction:column;gap:14px}.floor-copy h1{margin:0;font-size:28px;line-height:1.1}.floor-copy p{margin:0;line-height:1.6;color:#ffffffd9}.floor-badge{align-self:flex-start;padding:8px 12px;border-radius:999px;font-size:12px;text-transform:uppercase;letter-spacing:.08em;background:#ffc67a24;border:1px solid rgba(255,198,122,.16);color:#ffd08e}.floor-actions{display:flex;flex-direction:column;gap:12px;margin-top:4px}.code-screen{align-items:stretch}.code-input-wrap{display:flex;flex-direction:column;gap:10px;color:#ffffffc2}.code-input{width:100%;min-height:56px;padding:14px 16px;border-radius:18px;border:1px solid rgba(255,255,255,.08);background:#ffffff0a;color:#fff;outline:none}.result-box{display:flex;flex-direction:column;gap:12px;padding:16px;border-radius:18px;line-height:1.5}.result-box.success{background:#6aaa6d1f;border:1px solid rgba(106,170,109,.22)}.result-box.error{background:#c45a5a1f;border:1px solid rgba(196,90,90,.22)}.footer-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 18px 18px;font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:#ffffff6b}.doors{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:1000;pointer-events:none}.door{position:absolute;top:0;bottom:0;width:50%;overflow:hidden;transition:transform .7s ease-out}.door img{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}.door.left{left:0;border-right:0px solid rgba(255,255,255,.08)}.door.right{right:0;border-left:0px solid rgba(255,255,255,.08)}.door.right img{object-position:left center}.door.left img{object-position:right center}.doors.open .door.left{transform:translate(-100%)}.doors.open .door.right{transform:translate(100%)}.doors.closed .door.left,.doors.closed .door.right{transform:translate(0)}.floor-indicator-item{box-sizing:border-box;width:var(--indicator-size, 42px);height:var(--indicator-size, 42px);min-width:var(--indicator-size, 42px);min-height:var(--indicator-size, 42px);aspect-ratio:1;padding:0;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:radial-gradient(circle at 50% 20%,#ffffff29,#fff0 35%),linear-gradient(180deg,#a0a0a0,#fffbc2);border:1px solid rgba(255,255,255,.05);color:#1a1208;font-size:14px;font-size:max(12px,min(14px,calc(var(--indicator-size, 42px) * .34)));font-weight:800;letter-spacing:.06em;box-shadow:inset 0 2px 6px #ffffff0f,inset 0 -2px 4px #0006,0 4px 10px #00000059;transition:all .2s ease;flex-shrink:0}.floor-indicator-item.active{background:radial-gradient(circle at 50% 40%,#ffffff59,#fff0 35%),linear-gradient(180deg,#fc8,#c48a3a);color:#1a1208;border-color:#ffbe6480;box-shadow:0 0 18px #ffbe6459,inset 0 1px 4px #ffffff2e}@media (max-width: 420px){.elevator-frame{width:100%;min-height:calc(100vh - 20px);border-radius:22px}.floor-copy h1{font-size:24px}.panel-buttons{gap:12px}.music-btn{font-size:16px}}.light-beam{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;opacity:0;animation:beamRise .85s ease-out forwards}.light-beam:before{content:"";position:absolute;left:50%;bottom:-18%;transform:translate(-50%);width:160%;height:140%;border-radius:50% 50% 0 0;filter:blur(14px);opacity:.95}.light-beam.beam-floor-1:before{background:radial-gradient(ellipse at bottom,#ff9933c7,#ffaa5a61 28%,#ff822829 52%,#ff782800 72%)}.light-beam.beam-floor-2:before{background:radial-gradient(ellipse at bottom,#ffffffd1,#ffffff6b 28%,#ffffff26 52%,#fff0 72%)}.light-beam.beam-floor-3:before{background:radial-gradient(ellipse at bottom,#ff5252cc,#ff5a5a66 28%,#ff505029 52%,#ff505000 72%)}.light-beam.beam-floor-4:before{background:radial-gradient(ellipse at bottom,#58a0ffd1,#58a0ff66 28%,#58a0ff29 52%,#58a0ff00 72%)}.light-beam.beam-floor-5:before{background:radial-gradient(ellipse at bottom,#b46effd1,#b46eff66 28%,#b46eff29 52%,#b46eff00 72%)}@keyframes beamRise{0%{opacity:0;transform:translateY(18%) scaleY(.72)}20%{opacity:1}to{opacity:0;transform:translateY(-8%) scaleY(1.08)}}.shell-floating-actions{position:fixed;top:14px;right:14px;z-index:1200;display:flex;flex-direction:row-reverse;align-items:center;gap:8px}.mute-button{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#12141a9e;color:#ffffffe0;border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 8px 22px #00000047;transition:transform .15s ease,background .15s ease,box-shadow .15s ease,opacity .15s ease;opacity:.82}a.mute-button{text-decoration:none}.mute-button:hover{opacity:1;background:#181b23c7;box-shadow:0 10px 24px #00000052,0 0 10px #ffbe641f}.mute-button:active,.mute-button.is-pressed{transform:scale(.92)}.mute-button svg,.mute-button img,.mute-button span{width:18px;height:18px;display:block;pointer-events:none}@media (max-width: 420px){.shell-floating-actions{top:12px;right:12px}.mute-button{width:36px;height:36px}}@keyframes imageReveal{0%{opacity:0;transform:scale(1.06);filter:blur(6px)}60%{opacity:1;filter:blur(2px)}to{opacity:1;transform:scale(1);filter:blur(0)}}.screen-transition{animation:retroTransition .8s ease-in-out}@keyframes retroTransition{0%{opacity:1;filter:brightness(1) contrast(1) hue-rotate(0deg)}20%{opacity:.9;filter:brightness(1.4) contrast(1.05) hue-rotate(7deg)}40%{opacity:.7;filter:brightness(.7) contrast(1.1) hue-rotate(-13deg)}60%{opacity:.8;filter:brightness(1.1) contrast(.95) hue-rotate(3deg)}80%{opacity:.95;filter:brightness(.99) contrast(1.02) hue-rotate(-5deg)}to{opacity:1;filter:brightness(1) contrast(1) hue-rotate(0deg)}}.floor-style-1{animation:sunReveal .8s ease forwards}.floor-style-2{animation:fengshuiReveal .7s ease forwards}.floor-style-3{animation:valpoReveal .6s ease forwards}.floor-style-4{animation:quarantineReveal .9s ease forwards}.floor-style-5{animation:necroReveal .7s ease forwards}@keyframes sunReveal{0%{opacity:0;transform:scale(1.08);filter:blur(6px) brightness(1.2)}60%{opacity:1;transform:scale(1.02);filter:blur(2px) brightness(1.08);box-shadow:0 0 40px #ffaa503d}to{opacity:1;transform:scale(1);filter:blur(0) brightness(1)}}@keyframes fengshuiReveal{0%{opacity:0;transform:scale(1.02);filter:blur(10px) brightness(1.25)}to{opacity:1;transform:scale(1);filter:blur(0) brightness(1)}}@keyframes valpoReveal{0%{opacity:0;transform:translateY(30px) scale(1.05);filter:blur(6px)}45%{opacity:1;transform:translateY(-6px) scale(1.02);filter:blur(2px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}@keyframes quarantineReveal{0%{opacity:0;transform:scale(1.04);filter:blur(12px) hue-rotate(180deg)}60%{opacity:1;transform:scale(1.02);filter:blur(4px) hue-rotate(180deg)}to{opacity:1;transform:scale(1);filter:blur(0) hue-rotate(0deg)}}@keyframes necroReveal{0%{opacity:0;transform:scale(1.06);filter:contrast(1.35) hue-rotate(260deg)}20%{transform:translate(-6px) scale(1.04)}40%{transform:translate(6px) scale(1.03)}60%{transform:translate(-3px) scale(1.01)}to{opacity:1;transform:scale(1);filter:contrast(1) hue-rotate(0deg)}}.code-hint{display:block;margin-top:6px;font-size:12px;line-height:1.4;color:#ffdcaab8;text-align:center}.code-hint-blink{animation:codeHintBlink 2.2s ease-in-out infinite}@keyframes codeHintBlink{0%,to{opacity:.55;text-shadow:0 0 0 rgba(255,210,140,0)}50%{opacity:1;text-shadow:0 0 10px rgba(255,210,140,.22)}}.dispatcher-badge{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;font-family:inherit;text-align:center;background:linear-gradient(180deg,#3a2a1a,#1c140c);color:#fc8;border:1px solid rgba(255,190,100,.3);border-radius:6px;display:flex;align-items:center;justify-content:center;box-shadow:none;transition:all .15s ease;animation:dispatcherCallGlow 2.6s ease-in-out infinite}.dispatcher-badge:hover{border-color:#ffbe646b;box-shadow:0 0 12px #ffbe641f}.dispatcher-badge:active{transform:scale(.97);transform-origin:center center;animation:none;filter:drop-shadow(0 0 8px rgba(255,190,100,.22))}@media (prefers-reduced-motion: reduce){.elevator-btn-disp,.dispatcher-badge{animation:none}.elevator-btn-disp.is-pressed,.elevator-btn-disp:active,.dispatcher-badge:active{filter:none}}.dispatcher-dialog{position:absolute;right:0;top:10px;width:min(86%,340px);z-index:30;display:flex;flex-direction:column;gap:12px;padding:14px;border-left:1px solid rgba(255,255,255,.08);border-radius:18px 0 0 18px;background:linear-gradient(180deg,#181a22f5,#0f1116f5);box-shadow:-18px 0 40px #00000059,inset 0 1px #ffffff0d;animation:dispatcherSlideIn .28s ease-out}.dispatcher-portrait{width:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:14px;border:1px solid rgba(255,255,255,.08);background:#111319;flex-shrink:0}.dispatcher-panel{display:flex;flex-direction:column;gap:12px}.dispatcher-name{font-size:12px;line-height:1;text-transform:uppercase;letter-spacing:.12em;color:#ffffff7a}.dispatcher-text{padding:14px;border-radius:14px;background:#ffffff08;border:1px solid rgba(255,255,255,.06);color:#ffffffeb;font-size:14px;line-height:1.55;white-space:pre-line;overflow-y:auto}.dispatcher-next{align-self:flex-end;padding:8px 14px;border-radius:999px;background:linear-gradient(180deg,#fc8,#c48a3a);color:#1a1208;font-weight:700;border:none;cursor:pointer;transition:transform .15s ease,filter .15s ease,box-shadow .15s ease}.dispatcher-next:hover{filter:brightness(1.03);box-shadow:0 12px 28px #c5974f47,0 0 10px #ffd08e1f}.dispatcher-next:active{transform:scale(.98)}@keyframes dispatcherSlideIn{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}@media (max-width: 420px){.dispatcher-dialog{top:6px;width:calc(100% - 14px);padding:12px;border-radius:16px 0 0 16px}.dispatcher-text{font-size:13px;line-height:1.5;margin-bottom:12px}.dispatcher-next{min-height:44px}}.dispatcher-text-typing{overflow:hidden;animation:dispatcherTextFade .18s ease-out}.dispatcher-text-typing{min-height:120px}.dispatcher-caret{display:inline-block;width:.45em;height:1em;margin-left:2px;vertical-align:-.12em;background:#ffffffbf;animation:dispatcherCaretBlink .8s step-end infinite}@keyframes dispatcherTextFade{0%{opacity:.35;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes dispatcherCaretBlink{0%,50%{opacity:1}50.01%,to{opacity:0}}
