:root{--bg:#14161a;--ink:#efe9dc;--ink2:#b9b2a3;--ink3:#8a8476;--beige:#c9c1ad;--card:#181a1eeb;--line:#efe9dc24;--sick:#d9e6b8;--amber:#e8a24a;--red:#e0644f;--st:env(safe-area-inset-top,0px);--sb:env(safe-area-inset-bottom,0px);--sl:env(safe-area-inset-left,0px);--sr:env(safe-area-inset-right,0px)}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--ink);touch-action:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;margin:0;font-family:system-ui,Segoe UI,Roboto,sans-serif;overflow:hidden}#gl{touch-action:none;width:100%;height:100%;display:block;position:fixed;inset:0}#ui{pointer-events:none;position:fixed;inset:0}#ui>*{pointer-events:auto}button{font:inherit;color:inherit}.btn{background:var(--beige);color:#1b1b1d;cursor:pointer;letter-spacing:.01em;border:0;border-radius:12px;min-height:48px;padding:14px 20px;font-size:16px;font-weight:750}.btn:disabled{opacity:.35;cursor:default}.btn.ghost{color:var(--ink);border:1px solid var(--line);background:0 0}.btn.small{min-height:44px;padding:8px 14px;font-size:14px}.btn.amber{background:var(--amber)}.btn:focus-visible,.card:focus-visible,.slot:focus-visible{outline:2px solid var(--sick);outline-offset:2px}.screen{padding:calc(24px + var(--st)) calc(20px + var(--sr)) calc(28px + var(--sb)) calc(20px + var(--sl));background:linear-gradient(#0a0b0d00 30%,#0a0b0deb 78%);flex-direction:column;justify-content:flex-end;display:flex;position:fixed;inset:0}.screen h1{letter-spacing:-.02em;margin:0;font-size:clamp(38px,9vmin,76px);font-weight:800}.screen .sub{color:var(--ink2);margin:6px 0 20px;font-size:16px}.screen .row{flex-wrap:wrap;gap:10px;display:flex}.screen .credit{color:var(--ink3);margin-top:18px;font-size:12px}.screen.dim{background:#0a0b0dd1;justify-content:center;align-items:center}.end{width:100%;max-width:560px}.end h2{margin:0 0 14px;font-size:clamp(28px,7vmin,44px)}.end p{color:var(--ink);margin:0 0 10px;font-size:16px;line-height:1.55}.end .meta{color:var(--ink3);margin-top:14px;font-size:13px}.end .row{margin-top:18px}.panel{left:0;right:0;bottom:calc(86px + var(--sb));max-height:54vh;padding:12px calc(14px + var(--sr)) 10px calc(14px + var(--sl));touch-action:pan-y;background:linear-gradient(#0e0f1200,#0e0f12e6 22px);position:fixed;overflow-y:auto}.seat-title{letter-spacing:.08em;text-transform:uppercase;color:var(--sick);font-size:13px;font-weight:800}.seat-owner{color:var(--ink3);letter-spacing:0;text-transform:none;margin-left:6px;font-size:12px}.seat-lines{margin:6px 0 10px;font-size:14px;line-height:1.4}.seat-lines p{margin:0 0 4px}.cards{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.card{text-align:left;background:var(--card);border:1px solid var(--line);cursor:pointer;border-radius:12px;flex-direction:column;gap:4px;min-height:92px;padding:9px;display:flex}.card .k{letter-spacing:.1em;text-transform:uppercase;color:var(--ink3);font-size:10px}.card .n{font-size:13.5px;font-weight:750;line-height:1.2}.card .l{color:var(--ink2);font-size:12px;line-height:1.35}.card{scroll-margin-block:12px 110px}.card.sel{border-color:var(--sick);box-shadow:0 0 0 1px var(--sick) inset}.card.done{border-color:var(--amber)}.card.off{opacity:.35}.actions{z-index:2;background:#0e0f12;align-items:center;gap:8px;margin-top:10px;padding:8px 0 10px;display:flex;position:sticky;bottom:-10px;box-shadow:0 -16px 14px -2px #0e0f12}.actions .btn{flex:1}.hint{color:var(--ink3);margin-top:8px;font-size:12px}.loose{border-top:1px solid var(--line);margin-top:12px;padding-top:10px}.loose .lab{letter-spacing:.1em;text-transform:uppercase;color:var(--ink3);margin-bottom:6px;font-size:11px}.item{align-items:center;gap:10px;margin-bottom:6px;display:flex}.item .t{flex:1;font-size:13px;line-height:1.35}.item .t b{font-size:14px;display:block}.reads{margin:8px 0}.reads .r{background:var(--card);border:1px solid var(--line);border-radius:10px;margin-bottom:6px;padding:8px 10px;font-size:13px;line-height:1.4}.reads .r b{color:var(--sick)}.mac{color:var(--amber);font-family:ui-monospace,Consolas,monospace;font-size:12px}.tray{height:calc(86px + var(--sb));padding:8px calc(10px + var(--sr)) calc(8px + var(--sb)) calc(10px + var(--sl));border-top:1px solid var(--line);background:#1d1f23;grid-template-columns:1fr 1fr 1fr auto;align-items:stretch;gap:8px;display:grid;position:fixed;bottom:0;left:0;right:0}.slot{text-align:left;cursor:pointer;background:#111317;border:1px dashed #efe9dc38;border-radius:10px;padding:6px 8px;font-size:12px;line-height:1.25;overflow:hidden}.slot.full{border-style:solid;border-color:#e8a24a99}.slot .s-k{color:var(--ink3);letter-spacing:.08em;text-transform:uppercase;font-size:10px}.slot.locked{border-color:var(--red)}.side{flex-direction:column;justify-content:center;gap:2px;min-width:92px;display:flex}.side .btn{min-height:44px;padding:6px 10px;font-size:13px}.clock{font-variant-numeric:tabular-nums;color:var(--ink2);text-align:center;font-size:12px}.sheet-wrap{z-index:20;background:#08090b99;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{border-top:1px solid var(--line);width:min(560px,100%);padding:18px 18px calc(18px + var(--sb));touch-action:pan-y;background:#1b1d21;border-radius:16px 16px 0 0;max-height:80vh;overflow-y:auto}.sheet-title{letter-spacing:.08em;text-transform:uppercase;color:var(--sick);margin-bottom:8px;font-size:13px;font-weight:800}.sheet-body{font-size:15px;line-height:1.55}.sheet-body p{margin:0 0 10px}.sheet-actions{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.sheet-actions .btn{flex:1}.cartlog{left:50%;top:calc(98px + var(--st));color:#1d1c1a;z-index:15;background:#f2ede0;border-radius:4px;width:min(520px,100% - 28px);padding:7px 10px;font-family:ui-monospace,Consolas,monospace;font-size:12px;line-height:1.5;position:fixed;transform:translate(-50%);box-shadow:0 8px 24px #0006;pointer-events:none!important}.cl-tag{letter-spacing:.1em;text-transform:uppercase;opacity:.55;margin-bottom:2px;font-size:10px;display:block}.notice{left:50%;top:calc(64px + var(--st));z-index:16;background:#20242b;border:1px solid #d9e6b859;border-radius:12px;width:min(520px,100% - 28px);padding:10px 12px;font-size:14px;line-height:1.45;position:fixed;transform:translate(-50%)}.n-id{color:var(--sick);font-family:ui-monospace,Consolas,monospace;font-size:11px;display:block}.n-actions{gap:8px;margin-top:8px;display:flex}.n-actions .btn{flex:1}.load{left:0;right:0;bottom:calc(40% + var(--sb));text-align:center;color:var(--ink3);position:fixed}@media (aspect-ratio>=1){.panel{top:0;left:auto;right:0;bottom:calc(86px + var(--sb));width:min(440px,46vw);max-height:none;padding-top:calc(14px + var(--st));border-left:1px solid var(--line);background:#0e0f12e0}.tray{width:min(440px,46vw);left:auto}.cartlog{top:calc(62px + var(--st));width:min(460px,100% - 300px)}.panel~.cartlog{width:min(460px,100% - min(440px,46vw) - 28px);left:calc(50% - min(440px,46vw)/2)}.cartlog:has(~.panel){width:min(460px,100% - min(440px,46vw) - 28px);left:calc(50% - min(440px,46vw)/2)}.notice{left:calc(50% - min(440px,46vw)/2)}.cards{grid-template-columns:1fr}.card{min-height:0}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}#ui>.hud{pointer-events:none;position:fixed;inset:0}#ui>.hud>*{pointer-events:none}.dot{background:#efe9dcbf;border-radius:50%;width:5px;height:5px;margin:-2.5px 0 0 -2.5px;position:fixed;top:50%;left:50%;box-shadow:0 0 0 1px #00000080}.hud.scanning .dot{background:0 0;border:1.5px solid #7dff9bcc;width:26px;height:26px;margin:-13px 0 0 -13px;box-shadow:0 0 12px #46ff7a59}.objective{left:50%;top:calc(12px + var(--st));text-align:center;border:1px solid var(--line);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0e0f129e;border-radius:10px;max-width:min(560px,100% - 140px);padding:7px 12px;font-size:14px;line-height:1.3;position:fixed;transform:translate(-50%)}.objective b{color:var(--sick);font-weight:750;display:block}.objective span{color:var(--ink2);font-variant-numeric:tabular-nums;font-size:12px}.prompt{text-shadow:0 1px 3px #000;white-space:nowrap;font-size:15px;font-weight:650;position:fixed;top:calc(50% + 28px);left:50%;transform:translate(-50%)}.prompt kbd{border:1px solid var(--ink2);text-align:center;background:#00000073;border-radius:5px;min-width:22px;margin-right:8px;padding:1px 6px;font:700 12px ui-monospace,monospace;display:inline-block}.prompt.off{color:var(--ink3);font-weight:500}.hud.touch .prompt{display:none}.readout{color:#c9ffd6;opacity:0;width:min(300px,44vw);font-family:ui-monospace,Consolas,monospace;font-size:12px;line-height:1.4;transition:opacity .15s;position:fixed;top:calc(50% - 30px);left:calc(50% + 34px)}.readout.on{opacity:1;background:#051009c7;border:1px solid #7dff9b73;border-radius:8px;padding:8px 10px}.readout.alien{color:#cfe6ff;border-color:#5aaaffcc}.r-name{color:#7dff9b;margin-bottom:2px;font-weight:700}.readout.alien .r-name,.readout.alien .r-status{color:#7ab8ff}@media (width<=560px) and (orientation:portrait){.readout{width:auto;inset:auto 14px calc(50% + 26px)}}.r-status{color:var(--amber);margin-top:4px}.r-bar{background:#7dff9b2e;border-radius:2px;height:4px;margin-top:6px;overflow:hidden}.r-bar i{background:#7dff9b;height:100%;display:block}.hint-bar{left:50%;bottom:calc(100px + var(--sb));text-align:center;width:min(620px,100% - 28px);color:var(--ink2);opacity:0;background:#0e0f12b3;border-radius:10px;padding:8px 12px;font-size:13px;transition:opacity .6s;position:fixed;transform:translate(-50%)}.hint-bar.show{opacity:1}.stickring{background:#efe9dc0d;border:2px solid #efe9dc40;border-radius:50%;width:112px;height:112px;display:none;position:fixed}.stickknob{background:#efe9dc59;border-radius:50%;width:44px;height:44px;position:absolute;top:34px;left:34px}.pads{display:none}#ui>.hud.touch .pads{pointer-events:auto}.hud.touch .pads{right:calc(12px + var(--sr));bottom:calc(98px + var(--sb));pointer-events:auto;grid-template-rows:64px 72px;grid-template-columns:64px 64px;gap:10px;display:grid;position:fixed}.pad{pointer-events:auto;border:1px solid var(--line);color:var(--ink);touch-action:none;-webkit-user-select:none;user-select:none;background:#14161ab8;border-radius:50%;min-height:44px;font-size:12px;font-weight:700}.pad.use{border-radius:14px;grid-column:1/span 2;padding:4px 8px;font-size:13px;line-height:1.15}.pad.use.ready{background:var(--beige);color:#1b1b1d}.pad.scan.on{background:#46ff7a4d;border-color:#7dff9b}.pad.light.on{background:#fff1d838}.screen .how{color:var(--ink2);max-width:560px;margin:-8px 0 18px;font-size:14px;line-height:1.5}.end .hint{color:var(--ink3);font-size:13px}.hud~.tray{opacity:.92}@media (aspect-ratio>=1){.hud.touch .pads{bottom:calc(96px + var(--sb));grid-template-rows:58px 60px;grid-template-columns:58px 58px}}.hud.touch .hint-bar{bottom:auto;top:calc(178px + var(--st))}@media (aspect-ratio>=1){.hud.touch .hint-bar{top:calc(132px + var(--st));width:min(560px, calc(100% - 2 * (150px + var(--sr))))}}.lockhint{border:1px solid var(--line);background:#0e0f12bf;border-radius:10px;padding:8px 14px;font-size:14px;font-weight:650;display:none;position:fixed;top:calc(50% - 64px);left:50%;transform:translate(-50%)}.lockhint.show{display:block}:root{--dt-bg:#14161a;--dt-ink:var(--ink);--dt-dim:var(--ink2);--dt-accent:var(--sick);--dt-accent-ink:#1b1d16;--dt-alt:var(--beige);--dt-font:system-ui, "Segoe UI", Roboto, sans-serif;--dt-body:system-ui, "Segoe UI", Roboto, sans-serif;--dt-radius:10px}.screen.title-dt{background:0 0;padding:0;display:block}.screen.title-dt .dt-title .orient-setting{width:min(420px,100%)}.screen.title-dt .dt-name{letter-spacing:-.03em;font-weight:800}.screen.rot{touch-action:pan-y;justify-content:flex-start;align-items:center;overflow-y:auto}.end.wide{max-width:640px;margin:0;padding-bottom:8px}.floor-row{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}.floor-row .fl-t{flex:1;font-size:14px;line-height:1.4}.floor-row .fl-t span{color:var(--ink2);font-size:13px;display:block}.floor-row .fl-t .fl-n{color:var(--ink3);margin-top:2px;font-size:12px}.floor-row .fl-a{flex-direction:column;gap:6px;min-width:132px;display:flex}.hist{border-top:1px solid var(--line);padding:10px 0;font-size:14px}.hist ul{color:var(--ink3);grid-template-columns:1fr 1fr;column-gap:18px;margin:6px 0;padding-left:18px;font-size:13px;display:grid}.hist li.got{color:var(--ink)}@media (width<=520px){.hist ul{grid-template-columns:1fr}.floor-row{flex-direction:column;align-items:stretch}.floor-row .fl-a{flex-direction:row}.floor-row .fl-a .btn{flex:1}}.slot.off{opacity:.35;cursor:default;border-style:dotted}.dares-mount{margin:14px 0 4px}.dares-mount .dt-dares{width:100%}.vols{flex-direction:column;gap:4px;width:min(100%,520px);margin:14px 0;display:flex}.vol{min-height:44px;color:var(--ink);justify-content:space-between;align-items:center;gap:12px;font-size:15px;display:flex}.vol input[type=range]{width:min(240px,46vw);height:44px;accent-color:var(--sick);margin:0}.vol input[type=range]:focus-visible{outline:2px solid var(--sick);outline-offset:2px}.screen.dim{touch-action:pan-y;justify-content:flex-start;align-items:center;overflow-y:auto}.screen.dim>.end{margin:auto 0}@media (height<=520px){.end p.hint{display:none}.vol{min-height:44px}.vols{margin-top:8px}.end p{margin-bottom:6px}.end h2{margin-bottom:8px}}@media (height<=400px) and (aspect-ratio>=1){.screen.title-dt .vols{flex-direction:row;gap:14px;width:min(100%,560px);margin:2px 0}.screen.title-dt .vol{flex:1;gap:8px;min-height:36px;font-size:13px}.screen.title-dt .vol input[type=range]{width:min(150px,30vw);height:36px}.screen.title-dt .dt-minor .dt-item{min-height:40px}.screen.title-dt .dt-title .orient-setting{padding-top:2px;padding-bottom:2px}}.dt-title .progress{letter-spacing:.04em;color:var(--dt-ink,#efe9dc);opacity:1;margin-bottom:6px;font-weight:700;display:block}html[data-b-theme]{--sick:var(--b-accent-text);--ink:var(--b-text);--ink2:var(--b-dim);--ink3:var(--b-dim);--amber:var(--b-warn);--red:var(--b-bad)}html[data-b-theme] body{font-family:var(--b-body)}html[data-b-theme] .btn{font:700 15px/1.15 var(--b-display);letter-spacing:.08em;text-transform:uppercase;background:var(--b-accent);color:var(--b-accent-ink);border-radius:var(--b-r-m);min-height:48px;box-shadow:var(--b-shadow-1);transition:transform var(--b-fast) var(--b-ease), background var(--b-fast), border-color var(--b-fast);border:1px solid #0000;padding:12px 18px}html[data-b-theme] .btn:hover{background:color-mix(in srgb, var(--b-accent) 88%, #fff);transform:translateY(-1px)}html[data-b-theme] .btn:active{transform:translateY(1px)scale(.985)}html[data-b-theme] .btn.ghost{background:var(--b-raised);color:var(--b-text);border-color:var(--b-line)}html[data-b-theme] .btn.ghost:hover{border-color:var(--b-accent);background:color-mix(in srgb, var(--b-raised) 84%, var(--b-accent))}html[data-b-theme] .btn.amber{background:var(--b-tape);color:var(--b-tape-ink)}html[data-b-theme] .btn.small{min-height:44px;padding:8px 12px;font-size:13px}html[data-b-theme] .btn:disabled{opacity:.5;border:1px dashed var(--b-line);box-shadow:none;transform:none}html[data-b-theme] .btn:focus-visible,html[data-b-theme] .card:focus-visible,html[data-b-theme] .slot:focus-visible{box-shadow:var(--b-focus);outline:none}html[data-b-theme]{--dt-scrim:linear-gradient(90deg, color-mix(in srgb, var(--b-bg) 90%, transparent) 0, color-mix(in srgb, var(--b-bg) 66%, transparent) min(46vw, 620px), transparent min(64vw, 880px));--dt-scrim-portrait:linear-gradient(180deg, color-mix(in srgb, var(--b-bg) 80%, transparent) 0, color-mix(in srgb, var(--b-bg) 30%, transparent) 36%, color-mix(in srgb, var(--b-bg) 55%, transparent) 46%, color-mix(in srgb, var(--b-bg) 92%, transparent) 72%)}html[data-b-theme] .screen.title-dt .dt-name{letter-spacing:-.02em;font-weight:700}html[data-b-theme] .screen.title-dt .dt-sub{color:var(--b-accent-text)}html[data-b-theme] .screen .sub{color:var(--b-dim)}html[data-b-theme] .screen h1{font-family:var(--b-display);text-transform:uppercase;letter-spacing:-.02em}html[data-b-theme] .screen.dim{background:color-mix(in srgb, var(--b-bg) 86%, transparent)}html[data-b-theme] .end{background:var(--b-panel);border:1px solid var(--b-line);border-radius:var(--b-r-l);box-shadow:var(--b-shadow-2);padding:20px 22px}html[data-b-theme] .end h2{font:700 clamp(22px, 5vmin, 32px)/1.05 var(--b-display);text-transform:uppercase;letter-spacing:-.01em}html[data-b-theme] .end h2:after{content:"";background:repeating-linear-gradient(-45deg, var(--b-tape) 0 10px, var(--b-tape-ink) 10px 20px);border-radius:2px;width:88px;height:7px;margin-top:10px;display:block}html[data-b-theme] .end p{color:var(--b-text)}html[data-b-theme] .end .hint,html[data-b-theme] .end .meta{color:var(--b-dim)}html[data-b-theme] .panel{background:color-mix(in srgb, var(--b-panel) 94%, transparent)}html[data-b-theme] .seat-title{font:700 13px/1.2 var(--b-display);letter-spacing:.14em;color:var(--b-accent-text)}html[data-b-theme] .seat-owner{color:var(--b-dim);font-family:var(--b-body);font-weight:400}html[data-b-theme] .seat-lines{color:var(--b-text);overflow-wrap:anywhere;font-size:14px}html[data-b-theme] .card{background:var(--b-panel);border:2px solid var(--b-line);border-radius:var(--b-r-m);box-shadow:var(--b-shadow-1)}html[data-b-theme] .card:hover{border-color:var(--b-accent)}html[data-b-theme] .card .k{font:700 11px/1 var(--b-display);letter-spacing:.12em;color:var(--b-dim)}html[data-b-theme] .card .n{font:700 14px/1.2 var(--b-display)}html[data-b-theme] .card .l{color:var(--b-dim);font-size:12px}html[data-b-theme] .card.sel{border-color:var(--b-accent);box-shadow:var(--b-focus)}html[data-b-theme] .card.done{border-color:var(--b-tape)}html[data-b-theme] .actions{background:var(--b-bg);box-shadow:0 -16px 14px -2px var(--b-bg)}html[data-b-theme] .hint,html[data-b-theme] .loose .lab{color:var(--b-dim)}html[data-b-theme] .sheet{background:var(--b-panel);border-top-color:var(--b-line)}html[data-b-theme] .sheet-title{color:var(--b-accent-text);font-family:var(--b-display);letter-spacing:.14em}html[data-b-theme] .vol{font:600 16px/1.2 var(--b-body)}html[data-b-theme] .vol .b-slider{width:min(240px,46vw)}@media (height<=430px) and (aspect-ratio>=1){html[data-b-theme] .btn{min-height:44px;padding:6px 14px}html[data-b-theme] .end{padding:14px 18px}html[data-b-theme] .end h2:after{display:none}html[data-b-theme] .end{max-width:640px}html[data-b-theme] .end p{margin-bottom:4px;font-size:14px;line-height:1.4}html[data-b-theme] .end .vols{flex-direction:row;gap:14px;width:100%;margin:4px 0}html[data-b-theme] .end .vol{flex:1;gap:6px;min-height:40px;font-size:14px}html[data-b-theme] .end .vol .b-slider{width:min(130px,26vw)}html[data-b-theme] .end .row{gap:6px;margin-top:6px}html[data-b-theme] .end .btn{min-height:44px;padding:6px 10px;font-size:13px}}
