*{box-sizing:border-box}html,body{color:#fff;-webkit-user-select:none;user-select:none;background:#8fd0ff;height:100%;margin:0;font-family:system-ui,Segoe UI,sans-serif;overflow:hidden}#game{width:100%;height:100%;display:block;position:fixed;inset:0}.hidden{display:none!important}#hud{pointer-events:none;position:fixed;inset:0}.card{background:#182234c7;border:1px solid #ffffff14;border-radius:12px;padding:10px 14px;box-shadow:0 4px 14px #00000040}#left{flex-direction:column;gap:10px;width:min(290px,44vw);display:flex;position:absolute;top:16px;left:16px}.card-title{align-items:center;gap:8px;margin-bottom:6px;font-size:17px;font-weight:800;display:flex}.card-title svg{flex:none;width:20px;height:20px}.quest{align-items:baseline;gap:8px;padding:3px 0;font-size:14px;line-height:1.3;display:flex}.quest .box{border:2px solid #ffffffbf;border-radius:3px;flex:none;width:12px;height:12px;transform:translateY(1px)}.quest .text{flex:1}.quest .count{opacity:.75;font-variant-numeric:tabular-nums}.quest .reward{color:#ffd23f;font-variant-numeric:tabular-nums;flex:none;font-weight:700}.stat{font-variant-numeric:tabular-nums;justify-content:space-between;gap:18px;padding:2px 0;font-size:15px;display:flex}.stat .label{opacity:.75}.stat span:last-child{font-weight:700}.stat.warn span:last-child{color:#ffd23f}#notes{color:#ffd23f;flex-direction:column;gap:3px;font-size:13px;font-weight:600;display:flex}#notes:not(:empty){border-top:1px solid #ffffff26;margin-top:6px;padding-top:6px}#right{text-shadow:0 1px 3px #0009;flex-direction:column;align-items:flex-end;gap:10px;width:min(250px,40vw);display:flex;position:absolute;top:16px;right:16px}#goal{align-items:center;gap:8px;width:100%;display:flex}#goal svg{filter:drop-shadow(0 2px 3px #0006);flex:none;width:30px;height:38px}#goal-body{flex:1}#progress{background:#182234c7;border:1px solid #ffffff40;border-radius:6px;height:12px;position:relative;overflow:hidden}#progress-fill{background:linear-gradient(90deg,#ffd23f,#5fc8ff);width:0;height:100%}#progress-marks span{background:#ffffff8c;width:2px;height:100%;position:absolute;top:0}#goal-text{text-align:right;margin-top:3px;font-size:14px;font-weight:700}#altitude{text-align:right;text-shadow:none}#altitude .label{opacity:.8;font-size:13px}#alt-value{font-variant-numeric:tabular-nums;font-size:30px;font-weight:800;line-height:1.1}#layer-name{letter-spacing:.08em;text-transform:uppercase;color:#9fd4ff;font-size:12px}#pressure{text-shadow:0 1px 3px #0009;align-items:center;gap:8px;width:min(300px,60vw);display:flex;position:absolute;bottom:20px;left:16px}#pressure svg{filter:drop-shadow(0 2px 3px #0006);flex:none;width:26px;height:26px}#pressure-body{flex:1}#pressure-label{font-variant-numeric:tabular-nums;margin-top:4px;font-size:14px;font-weight:700}#pressure-bar{background:#182234c7;border:1px solid #ffffff40;border-radius:7px;height:14px;overflow:hidden}#pressure-fill{background:#37b6ff;width:0;height:100%}#pressure.low #pressure-fill{background:#ffd23f}#pressure.empty #pressure-label,#pressure.leak #pressure-label{color:#ff9d8a}#pressure.leak #pressure-fill{background:#e8452c;animation:.5s steps(2,end) infinite blink}@keyframes blink{50%{opacity:.45}}#crosshair{background:#fff;border-radius:50%;width:6px;height:6px;margin:-3px 0 0 -3px;position:absolute;top:50%;left:50%;box-shadow:0 0 0 1px #00000080}#hint{text-align:center;text-shadow:0 1px 4px #000000b3;font-size:17px;font-weight:700;position:absolute;top:calc(50% + 46px);left:0;right:0}#toasts{flex-direction:column;align-items:center;gap:4px;display:flex;position:absolute;bottom:18%;left:0;right:0}.toast{background:#182234cc;border-radius:999px;padding:5px 14px;font-size:15px;font-weight:600;animation:1.9s ease-out forwards toast}.toast.good{color:#ffd23f}.toast.bad{color:#ff9d8a}@keyframes toast{0%{opacity:0;transform:translateY(8px)}12%{opacity:1;transform:translateY(0)}75%{opacity:1}to{opacity:0;transform:translateY(-14px)}}#banner{text-align:center;text-shadow:0 2px 6px #0009;animation:4.5s ease-out forwards banner;position:absolute;top:24%;left:0;right:0}#banner-title{font-size:46px;font-weight:800}#banner-sub{margin-top:6px;font-size:19px}@keyframes banner{0%{opacity:0;transform:scale(.92)}10%{opacity:1;transform:scale(1)}80%{opacity:1}to{opacity:0}}.overlay{background:#0a1e3c73;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.panel{color:#2b2118;background:#fffaf0;border-radius:16px;width:min(500px,100%);max-height:94vh;padding:22px 26px;overflow-y:auto;box-shadow:0 16px 50px #00000059}.panel h1,.panel h2{margin:0 0 8px}.panel h1{font-size:38px}.panel p{margin:0 0 14px;font-size:17px}.keys{margin:0 0 20px;padding:0;font-size:15px;line-height:2;list-style:none}kbd{font:inherit;background:#fff;border:1px solid #c9b99a;border-bottom-width:2px;border-radius:5px;margin-right:3px;padding:1px 7px;font-size:13px;line-height:1.5;display:inline-block}button{cursor:pointer;color:#fff;font:inherit;background:#e8452c;border:0;border-radius:10px;padding:11px 20px;font-size:17px;font-weight:700}button:hover:not(:disabled){background:#cf3a23}button:disabled{cursor:default;color:#7d7262;background:#cfc5b4}button kbd{color:#2b2118;margin:0 0 0 6px}#play,#shop-close{width:100%}.shop-money{font-variant-numeric:tabular-nums}#shop-sold:empty{display:none}#shop-sold{color:#2f7d32;font-weight:700}#shop-items{flex-direction:column;gap:8px;margin-bottom:14px;display:flex}.shop-item{background:#fff;border:1px solid #e6dcc8;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;display:flex}.shop-item .kind{letter-spacing:.08em;text-transform:uppercase;color:#8a7c66;font-size:12px}.shop-item .name{font-size:17px;font-weight:700}.shop-item .effect{color:#5d5243;font-size:14px}.shop-item button{font-variant-numeric:tabular-nums;flex:none;min-width:118px;padding:9px 12px;font-size:15px}.icon{vertical-align:-3px;flex:none;width:18px;height:18px;display:inline-flex}.icon svg{width:100%;height:100%}.stat .label{align-items:center;gap:7px;display:inline-flex}.quest{align-items:center}.quest .quest-icon{box-sizing:border-box;background:#ffffff1a;border-radius:6px;width:22px;height:22px;padding:3px}#bag{flex-wrap:wrap;gap:5px;max-width:210px;display:flex}#bag:not(:empty){border-top:1px solid #ffffff1f;margin-top:7px;padding-top:7px}.chip{font-variant-numeric:tabular-nums;background:#ffffff1a;border-radius:8px;align-items:center;gap:3px;padding:2px 7px 2px 4px;font-size:13px;font-weight:700;display:inline-flex}.chip.golden{background:#ffd23f47;box-shadow:inset 0 0 0 1px #ffd23f}.toast{align-items:center;gap:7px;display:inline-flex}.shop-item .tile{box-sizing:border-box;background:#22304a;border-radius:12px;width:46px;height:46px;padding:8px}.shop-item .info{flex:1}.shop-item button{justify-content:center;align-items:center;gap:6px;display:inline-flex}.pips{gap:4px;margin-top:5px;display:flex}.pip{background:#e6dcc8;border-radius:3px;width:14px;height:5px}.pip.on{background:#e8452c}#course{width:100%;text-shadow:none}#course .label{opacity:.85;align-items:center;gap:6px;font-size:13px;display:flex}#course-bar{background:#ffffff24;border-radius:6px;height:12px;margin:6px 0 4px;position:relative}#course-zone{background:#58e08a;border-radius:6px;height:100%;position:absolute;top:0;transform:translate(-50%)}#course-needle{background:#fff;border-radius:2px;width:4px;height:20px;margin-left:-2px;position:absolute;top:-4px;box-shadow:0 0 0 1px #00000073}#course-text{color:#c7d0dd;font-size:13px;font-weight:700}#course.on #course-text{color:#7bf0a6}#room{letter-spacing:.04em;background:#182234c7;border:1px solid #ffffff1f;border-radius:999px;padding:5px 14px;font-size:14px;font-weight:700;position:absolute;top:16px;left:50%;transform:translate(-50%)}#lobby{border-top:1px solid #e3d6bd;margin-top:16px;padding-top:14px}.lobby-title{margin-bottom:8px;font-size:15px;font-weight:700}.lobby-row{flex-wrap:wrap;align-items:center;gap:8px;font-size:14px;display:flex}button.second{background:#2f6fb0;padding:8px 14px;font-size:15px}button.second:hover:not(:disabled){background:#265d96}#code{color:#2b2118;width:84px;font:inherit;letter-spacing:.18em;text-align:center;text-transform:uppercase;background:#fff;border:1px solid #c9b99a;border-radius:8px;padding:8px 10px;font-size:16px;font-weight:700}#lobby-status{min-height:20px;margin-top:8px;font-size:14px;font-weight:700}.lobby-note{color:#7d7262;margin-top:2px;font-size:13px}
