:root{color-scheme:dark;--paper:#eee2bd;--gold:#d3aa56;--green:#263729;--red:#b33d2d;--ink:#171914;--cream:#f4e8c5;--line:#77633b;--mood:#a9c65a;--danger:#cf5540;--wonder:#8e76c2}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#050705;color:var(--cream);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Sans","Yu Gothic UI","Yu Gothic",sans-serif;touch-action:none;user-select:none}.app{position:relative;width:min(100%,500px);height:100dvh;min-height:620px;margin:auto;display:grid;grid-template-rows:58px minmax(0,1fr) 88px;background:radial-gradient(circle at 50% -15%,#394a3b 0,#172018 38%,#090c09 75%);overflow:hidden;box-shadow:0 0 90px #000}.app:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.2;background-image:repeating-linear-gradient(0deg,transparent 0 3px,rgba(255,255,255,.018) 4px),radial-gradient(circle at 20% 20%,rgba(255,220,150,.12),transparent 28%)}
.topbar{position:relative;z-index:20;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:max(8px,env(safe-area-inset-top)) 13px 4px}.back{color:#aaa88f;text-decoration:none;font:800 9px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.1em}.title{text-align:center;line-height:1}.title small{display:block;font:700 6px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.28em;color:#9a8e68;margin-bottom:3px}.title strong{font-family:Georgia,"Yu Mincho",serif;font-size:14px;letter-spacing:.04em;color:#efe2ba}.sound{justify-self:end;width:31px;height:31px;border:1px solid #655535;border-radius:50%;background:#191d18;color:#c4a65b;font-weight:900}
.game{position:relative;min-height:0;margin:0 8px 3px;display:grid;grid-template-columns:64px 1fr;border:1px solid #464d43;border-radius:15px 15px 8px 8px;overflow:hidden;background:linear-gradient(90deg,#0c100d,#1c251e 18%,#101510 100%);box-shadow:inset 0 0 55px #000,0 20px 55px rgba(0,0,0,.55)}.left-rail{position:relative;z-index:18;padding:89px 7px 0;border-right:1px solid rgba(215,180,91,.12);background:linear-gradient(90deg,#0d120e,#161e17)}.meter{margin-bottom:11px;padding:7px 5px 6px;border:1px solid #655536;border-radius:7px;background:linear-gradient(#24281f,#111510);box-shadow:inset 0 1px rgba(255,255,255,.06)}.meter span{display:block;font-size:7px;font-weight:900;color:#d4c59a}.meter b{display:block;font:800 14px/1.15 Georgia,serif;margin:3px 0 5px}.meter i{display:block;height:4px;border-radius:8px;background:#070908;border:1px solid #454739;overflow:hidden}.meter em{display:block;height:100%;width:0;transition:width .35s}.meter.mood b{color:var(--mood)}.meter.mood em{background:var(--mood)}.meter.danger b{color:var(--danger)}.meter.danger em{background:var(--danger)}.meter.wonder b{color:var(--wonder)}.meter.wonder em{background:var(--wonder)}
.elevator{position:relative;min-width:0;overflow:hidden;background:linear-gradient(90deg,#182119,#2a3329 15%,#151c16 50%,#2b342a 85%,#151b16)}.elevator:after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:repeating-linear-gradient(90deg,rgba(255,255,255,.015) 0 1px,transparent 1px 15px),linear-gradient(180deg,rgba(255,255,255,.045),transparent 24%,rgba(0,0,0,.25) 87%)}.floor-display{position:absolute;z-index:20;top:9px;left:50%;transform:translateX(-50%);width:116px;height:57px;border:2px solid #90753d;border-radius:12px;background:radial-gradient(circle,#1b251b,#080b08 76%);box-shadow:0 0 0 2px #312915,inset 0 0 18px #000,0 5px 18px #000;display:flex;align-items:baseline;justify-content:center;padding-top:6px}.floor-display strong{font:700 31px/.9 Georgia,serif;color:#f4d879;text-shadow:0 0 12px rgba(255,220,103,.42)}.floor-display span{font:700 12px/1 Georgia,serif;color:#9d8b5c;margin-left:2px}.floor-display small{position:absolute;bottom:4px;font:800 7px/1 ui-monospace,SFMono-Regular,Menlo,monospace;color:#6f815c;letter-spacing:.12em}.end-count{position:absolute;z-index:20;right:9px;top:22px;color:#ba6e55;font:800 7px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.08em}
.door-frame{position:absolute;z-index:5;left:18px;right:18px;top:78px;bottom:150px;border:6px solid #595c4b;border-radius:5px 5px 0 0;background:#050706;box-shadow:0 0 0 2px #282b22,0 8px 23px rgba(0,0,0,.65);overflow:hidden}.hall{position:absolute;inset:0;background:linear-gradient(180deg,#9d9780,#6c695c 55%,#3c3c35 56%,#1c1e1b 100%);transition:background .35s}.hall:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.1) 1px,transparent 1px) 0 0/38px 100%,linear-gradient(180deg,transparent 55%,rgba(0,0,0,.15) 56%)}.hall-sign{position:absolute;z-index:2;left:8px;top:8px;padding:4px 6px;border:1px solid rgba(40,38,30,.35);background:rgba(231,218,181,.44);color:#4c4738;font:900 8px/1 Georgia,serif}.candidate{position:absolute;z-index:4;left:50%;bottom:12px;width:92%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;transition:.25s}.candidate.entering{animation:candidateIn .35s cubic-bezier(.2,.8,.2,1)}.candidate-art{width:min(82%,235px);height:min(43vh,250px);display:grid;place-items:end center;filter:drop-shadow(0 14px 10px rgba(0,0,0,.28))}.candidate-art svg{width:100%;height:100%;overflow:visible}.candidate-card{position:relative;width:min(96%,290px);margin-top:-4px;padding:7px 10px 8px;text-align:center;border:2px solid #826c40;border-radius:9px;background:linear-gradient(#f0e4c2,#d6c59d);box-shadow:0 0 0 2px #292215,0 7px 18px rgba(0,0,0,.35);color:#29261d}.candidate-card strong{display:block;font-family:Georgia,"Yu Mincho",serif;font-size:12px}.candidate-card span{display:block;margin-top:2px;font-size:7px;font-weight:700;color:#6e644e}.door{position:absolute;z-index:7;top:0;bottom:0;width:51%;background:linear-gradient(90deg,#576058,#303731 10%,#59625a 47%,#343a35 88%,#697168);box-shadow:inset 0 0 26px rgba(0,0,0,.45);transition:transform .4s cubic-bezier(.65,.05,.3,1)}.door:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(255,255,255,.02) 0 1px,transparent 1px 13px)}.door.left{left:0;transform:translateX(-99%)}.door.right{right:0;transform:translateX(99%)}.door-frame.closed .door.left,.door-frame.closing .door.left{transform:translateX(0)}.door-frame.closed .door.right,.door-frame.closing .door.right{transform:translateX(0)}.door-light{position:absolute;z-index:8;left:37%;right:37%;top:0;height:9px;background:#f3d986;box-shadow:0 4px 22px rgba(255,230,144,.4)}
.cabin{position:absolute;z-index:9;left:0;right:0;bottom:0;height:158px;pointer-events:none;background:linear-gradient(180deg,transparent 0 10%,rgba(10,13,10,.2) 24%,rgba(8,10,8,.82) 100%)}.capacity{position:absolute;right:8px;top:8px;z-index:5;width:48px;padding:6px 3px;border:1px solid #765f35;background:#16160f;text-align:center;color:#b69d63;box-shadow:0 3px 8px #000}.capacity span{display:block;font-size:6px}.capacity strong{display:block;margin-top:2px;font:700 12px/1 Georgia,serif}.capacity b{font-size:18px;color:#ead49a}.passengers{position:absolute;z-index:4;left:3px;right:3px;bottom:22px;min-height:115px;display:flex;flex-wrap:wrap-reverse;align-content:flex-end;align-items:flex-end;justify-content:center;gap:0}.passenger{position:relative;width:58px;height:73px;margin:-5px -3px 0;display:grid;place-items:end center;animation:passengerIn .34s cubic-bezier(.18,.9,.24,1.2)}.passenger svg{width:100%;height:100%;filter:drop-shadow(0 7px 6px rgba(0,0,0,.45))}.passenger .status{position:absolute;left:50%;top:0;transform:translateX(-50%);z-index:4;white-space:nowrap;padding:2px 4px;border-radius:999px;background:#171a15;border:1px solid #777052;color:#eadfb9;font:800 5px/1 ui-monospace,SFMono-Regular,Menlo,monospace}.passengers.crowded .passenger{width:50px;height:65px;margin-left:-4px;margin-right:-4px}.floor-shadow{position:absolute;left:-10%;right:-10%;bottom:-35px;height:95px;background:radial-gradient(ellipse at 50% 0,#30352c,#10120f 65%);transform:perspective(150px) rotateX(55deg);transform-origin:bottom;border-top:1px solid rgba(255,255,255,.08)}
.event-toast{position:absolute;z-index:35;left:50%;bottom:138px;width:min(86%,310px);transform:translateX(-50%) translateY(8px);padding:9px 11px;border-radius:8px;border:1px solid #8a7443;background:rgba(15,21,15,.95);color:#efe4bf;text-align:center;font-size:9px;font-weight:800;line-height:1.5;opacity:0;pointer-events:none;transition:.18s;box-shadow:0 8px 22px rgba(0,0,0,.5)}.event-toast.show{opacity:1;transform:translateX(-50%)}.event-toast strong{color:#f1c95e}.swipe{position:absolute;z-index:40;top:45%;padding:7px 9px;border-radius:999px;font-size:9px;font-weight:900;opacity:0;transform:scale(.9);transition:.12s}.swipe.left{left:7px;background:rgba(106,44,37,.92)}.swipe.right{right:7px;background:rgba(48,102,57,.94)}.swipe.on{opacity:1;transform:scale(1)}
.controls{position:relative;z-index:30;display:grid;grid-template-columns:1fr 54px 1fr;align-items:center;gap:8px;padding:8px 12px calc(9px + env(safe-area-inset-bottom));background:#070907}.choice{height:56px;border-radius:10px;border:2px solid #51482f;background:linear-gradient(#22241f,#10120f);color:#e8ddba;display:flex;align-items:center;justify-content:center;gap:8px;font-family:Georgia,"Yu Mincho",serif;box-shadow:inset 0 1px rgba(255,255,255,.06),0 5px 12px #000;transition:transform .08s}.choice:active{transform:scale(.96)}.choice span{font-size:21px}.choice strong{font-size:14px}.choice.reject{border-color:#564b39}.choice.accept{border-color:#8b4a33;background:linear-gradient(#a64432,#6e251d);color:#fff0c9}.guide{text-align:center;color:#696d61}.guide b{display:block;font:800 7px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.13em}.guide small{display:block;font-size:10px;margin-top:4px}.controls.locked{opacity:.4;pointer-events:none}
.intro,.ending{position:absolute;z-index:100;inset:0;display:grid;place-items:center;padding:23px;background:radial-gradient(circle at 50% 23%,rgba(54,71,56,.95),rgba(4,5,4,.99) 72%);backdrop-filter:blur(6px)}.intro-card,.ending-card{width:min(100%,370px);text-align:center}.intro-emblem{margin:auto;width:78px;height:78px;border-radius:50%;display:grid;place-items:center;border:2px solid #9c7d3c;box-shadow:0 0 0 4px #1d1a0e,inset 0 0 20px #000;background:#152016;color:#f2d67c;font:700 28px/1 Georgia,serif}.kicker{font:800 8px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.18em;color:#b9a46e}.intro h1{margin:14px 0 13px;font-family:Georgia,"Yu Mincho",serif;font-size:clamp(43px,13vw,65px);line-height:.9;letter-spacing:-.06em}.intro h1 em{font-style:normal;color:#c85437}.intro-card>p:not(.kicker){margin:0;color:#c7c7b9;font-size:11px;line-height:1.75}.intro-card>p b{color:#f0d28a}.intro-pair{margin:18px auto 16px;width:min(100%,290px);height:56px;border:1px solid #554c31;border-radius:10px;background:#121812;display:flex;align-items:center;justify-content:center;gap:8px;color:#d8cda9;font-size:10px;font-weight:900}.intro-pair span{padding:6px 9px;border:1px solid #706443;border-radius:999px}.intro-pair i{font-style:normal;color:#767766}.intro-pair b{color:#9eba63}.intro button,.ending button{width:100%;height:54px;border:0;border-radius:11px;background:#d6bc6f;color:#17180f;font-size:12px;font-weight:950;box-shadow:0 8px 22px rgba(0,0,0,.35)}.ending[hidden]{display:none}.ending-icon{width:110px;height:110px;margin:13px auto 4px}.ending-icon svg{width:100%;height:100%}.ending h2{margin:6px 0 10px;font-family:Georgia,"Yu Mincho",serif;font-size:31px;letter-spacing:-.04em}.ending-card>p{margin:0 auto 14px;max-width:320px;min-height:58px;color:#c7c9bd;font-size:10px;line-height:1.7}.ending-cast{display:flex;justify-content:center;align-items:flex-end;min-height:62px;margin-bottom:8px}.ending-cast span{display:inline-block;width:46px;height:56px;margin:0 -4px}.ending-cast svg{width:100%;height:100%}.ending-stats{display:flex;justify-content:center;gap:7px;margin-bottom:15px;color:#878d80;font:800 7px/1 ui-monospace,SFMono-Regular,Menlo,monospace}.ending a{display:inline-block;margin-top:13px;color:#7e8479;text-decoration:none;font-size:9px}.new-ending{color:#f1d06b!important}
@keyframes candidateIn{from{opacity:.1;transform:translateX(-50%) translateY(16px) scale(.97)}to{opacity:1;transform:translateX(-50%) translateY(0) scale(1)}}@keyframes passengerIn{from{opacity:0;transform:translateY(-24px) scale(1.15)}to{opacity:1;transform:none}}
@media(max-height:690px){.app{min-height:0;grid-template-rows:50px minmax(0,1fr) 76px}.game{grid-template-columns:57px 1fr}.left-rail{padding-top:75px}.meter{margin-bottom:7px;padding:5px 4px}.meter b{font-size:11px}.door-frame{top:68px;bottom:132px}.candidate-art{height:min(38vh,205px)}.candidate-card{padding:5px 8px}.cabin{height:140px}.event-toast{bottom:119px}.choice{height:49px}.intro-emblem{width:62px;height:62px}.intro h1{font-size:43px}.intro-pair{height:48px;margin:12px auto}.ending-icon{width:82px;height:82px}.ending h2{font-size:26px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
