:root{--bg:#0b1320;--ink:#f2f5f9;--muted:#a9b6c6;--glow:#ffc462;--glow-2:#ff9f5a;--glass:#0e16249e;--glass-strong:#0e1624e6;--line:#ffffff1f;--shadow:0 10px 34px #00000061;--radius:16px;--safe-t:env(safe-area-inset-top,0px);--safe-r:env(safe-area-inset-right,0px);--safe-b:env(safe-area-inset-bottom,0px);--safe-l:env(safe-area-inset-left,0px);--ease:cubic-bezier(.22, .8, .26, 1)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--bg);height:100%;color:var(--ink);overscroll-behavior:none;-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;margin:0;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,SF Pro Display,system-ui,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;overflow:hidden}canvas#scene{width:100%;height:100vh;touch-action:none;outline:none;height:100lvh;display:block;position:fixed;top:0;left:0}[hidden]{display:none!important}button{font:inherit;color:var(--ink);cursor:pointer}.glass,.hud,.tracker,.act,.ride,.iconbtn,.pill,.convo,.update,.card{background:var(--glass);border:1px solid var(--line);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px)saturate(140%);backdrop-filter:blur(18px)saturate(140%)}.iconbtn{top:calc(var(--safe-t) + 12px);left:calc(var(--safe-l) + 14px);z-index:8;width:46px;height:46px;transition:transform .15s var(--ease), background .15s;border-radius:50%;justify-content:center;align-items:center;padding:0;display:flex;position:fixed}.iconbtn:active{background:#ffc46240;transform:scale(.92)}.splash{z-index:60;transition:opacity .8s var(--ease);background:radial-gradient(120% 90% at 50% 40%,#1b2c45,#0b1320 70%);flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.splash.gone{opacity:0;pointer-events:none}.splash .mark{letter-spacing:.32em;text-transform:uppercase;padding-left:.32em;font-size:34px;font-weight:300}.splash .sub{color:var(--muted);letter-spacing:.18em;text-transform:uppercase;font-size:13px}.splash .bar{background:#ffffff1f;border-radius:2px;width:140px;height:2px;margin-top:12px;overflow:hidden}.splash .bar i{background:var(--glow);width:40%;height:100%;animation:slide 1.2s var(--ease) infinite;display:block}@keyframes slide{0%{transform:translate(-100%)}to{transform:translate(350%)}}.banner{left:0;right:0;top:calc(var(--safe-t) + 22%);text-align:center;pointer-events:none;z-index:4;text-shadow:0 2px 18px #000000a6;transition:opacity 1.2s var(--ease), transform 1.2s var(--ease);padding:0 16px;position:fixed}.banner.faded{opacity:0;transform:translateY(-6px)}.banner h1{letter-spacing:.3em;text-transform:uppercase;margin:6px 0 0;padding-left:.3em;font-size:40px;font-weight:300}.banner p{color:#e7ecf2;letter-spacing:.22em;text-transform:uppercase;margin:0;font-size:13px}.hud{top:calc(var(--safe-t) + 70px);left:calc(var(--safe-l) + 14px);max-width:min(330px, calc(100vw - var(--safe-l) - var(--safe-r) - 28px));z-index:7;font-variant-numeric:tabular-nums;border-radius:14px;padding:10px 12px;position:fixed}.hud-main{align-items:baseline;gap:6px;display:flex}.fps{color:var(--glow);font-size:26px;font-weight:700}.unit{color:var(--muted);font-size:13px}.ms{color:var(--muted);margin-left:auto;font-size:13px}.hud-details{gap:4px;margin-top:8px;font-size:13px;display:grid}.hud-details>div{justify-content:space-between;gap:14px;display:flex}.hud-details span{color:var(--muted)}.hud-actions{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.hud button,.update button{-webkit-appearance:none;appearance:none;border:1px solid var(--line);background:#ffffff14;border-radius:10px;min-height:38px;padding:8px 11px;font-size:13px}.hud button:active,.update button:active{background:#ffc46240}.stick{z-index:3;pointer-events:none;background:radial-gradient(circle,#ffffff14,#0e162438);border:1.5px solid #ffffff52;border-radius:50%;width:112px;height:112px;margin:-56px 0 0 -56px;position:fixed}.knob{background:radial-gradient(circle at 35% 30%,#ffe2a8,#ffb04a);border-radius:50%;width:46px;height:46px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 3px 12px #0006}.ride,.act{z-index:6;letter-spacing:.02em;min-height:54px;transition:transform .15s var(--ease), background .15s, opacity .2s;animation:pop .25s var(--ease);border-color:#ffc462b3;border-radius:999px;padding:14px 26px;font-size:16px;font-weight:600;position:fixed}.ride{right:calc(var(--safe-r) + 26px);bottom:calc(var(--safe-b) + 112px)}.act{right:calc(var(--safe-r) + 26px);bottom:calc(var(--safe-b) + 178px);max-width:70vw}.ride:active,.act:active{background:#ffc4624d;transform:scale(.96)}.ride:disabled{opacity:.5}@keyframes pop{0%{opacity:0;transform:translateY(8px)scale(.96)}to{opacity:1;transform:none}}.ride-cluster{right:calc(var(--safe-r) + 26px);bottom:calc(var(--safe-b) + 48px);z-index:6;position:fixed}.pill{border-radius:999px;min-height:40px;padding:9px 16px;font-size:13px}body.lefty .ride,body.lefty .act,body.lefty .ride-cluster{right:auto;left:calc(var(--safe-l) + 26px)}.tracker{top:calc(var(--safe-t) + 12px);right:calc(var(--safe-r) + 14px);text-align:left;z-index:5;max-width:min(340px,52vw);transition:transform .15s var(--ease);border-radius:14px;padding:9px 13px;font-size:13px;line-height:1.35;position:fixed}.tracker:active{transform:scale(.98)}.tracker .line{align-items:baseline;gap:6px;padding:2px 0;display:flex}.tracker .line b{color:var(--glow);font-weight:700}.tracker .done{color:var(--muted)}.tracker .dist{color:var(--glow);white-space:nowrap;font-variant-numeric:tabular-nums;margin-left:auto;padding-left:8px}.tracker .fuse{color:#ffab7a;font-weight:700}.tracker .warn{color:#ff9b8a}.overlay{z-index:20;padding:calc(var(--safe-t) + 12px) calc(var(--safe-r) + 12px) calc(var(--safe-b) + 12px) calc(var(--safe-l) + 12px);animation:fade .25s var(--ease);background:#05090f99;justify-content:center;align-items:center;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}@keyframes fade{0%{opacity:0}to{opacity:1}}.card{background:var(--glass-strong);width:min(580px,100%);max-height:100%;animation:rise .35s var(--ease);border-radius:22px;flex-direction:column;gap:12px;padding:18px 22px;display:flex}@keyframes rise{0%{opacity:0;transform:translateY(14px)scale(.985)}to{opacity:1;transform:none}}.card h2{letter-spacing:.14em;text-transform:uppercase;margin:0;font-size:28px;font-weight:300}.card h3{color:var(--glow);letter-spacing:.14em;text-transform:uppercase;margin:0 0 4px;font-size:12px;font-weight:600}.card p,.card li{margin:0;font-size:15px;line-height:1.5}.kicker{letter-spacing:.22em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:600}.mood{color:var(--muted);font-size:14px;font-style:italic}.scroll{-webkit-overflow-scrolling:touch;gap:14px;min-height:0;padding-right:4px;display:grid;overflow:auto}.card ul{gap:7px;margin:0;padding:0;list-style:none;display:grid}.card li.done{color:var(--muted)}.card li.done .tick{color:#7bd88f}.card .where{color:var(--muted);font-size:13px}.card .muted{color:var(--muted)}.card button{-webkit-appearance:none;appearance:none;border:1px solid var(--line);min-height:48px;transition:transform .12s var(--ease), background .15s;background:#ffffff12;border-radius:14px;padding:12px 16px;font-size:16px}.card button:active{background:#ffc46238;transform:scale(.98)}.card button.primary{background:linear-gradient(#ffc46247,#ffa04629);border-color:#ffc462bf;font-weight:600}.card button.quiet{color:var(--muted);min-height:40px;font-size:14px}.card .row{gap:10px;display:flex}.card .row button{flex:1}.menu{align-items:stretch;width:min(380px,100%)}.menu-list{gap:9px;display:grid}.tabs{border-bottom:1px solid var(--line);gap:4px;display:flex}.card .tabs button{min-height:40px;color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;border-radius:0;padding:8px 12px;font-size:14px}.card .tabs button.on{color:var(--ink);border-bottom-color:var(--glow)}.tick{margin-right:6px}.briefing{width:min(720px,100%)}.briefing .page{min-height:120px;animation:fade .3s var(--ease)}.briefing .page h3{margin-bottom:8px;font-size:13px}.briefing .page p{font-size:18px;line-height:1.55}.dots{justify-content:center;gap:6px;display:flex}.dots i{background:#ffffff38;border-radius:50%;width:7px;height:7px}.dots i.on{background:var(--glow);border-radius:4px;width:20px}.person{border-top:1px solid var(--line);padding-top:9px}.kv{font-size:14px}.kv span{color:var(--muted);min-width:110px;display:inline-block}.kv.warn{color:#ff9b8a}.transcript{color:var(--muted);gap:2px;margin-top:6px;font-size:13px;display:grid}.tr b{color:var(--ink);font-weight:600}.chip{color:var(--glow);letter-spacing:.04em;text-transform:none;border:1px solid #ffc46273;border-radius:999px;padding:2px 9px;font-size:11px;font-weight:600}.bonuses{color:var(--muted);gap:5px;font-size:15px;display:grid}.bonuses .got{color:var(--glow)}.settings{width:min(440px,100%)}.set-grid{gap:4px;display:grid;overflow:auto}.slider,.switch{border-bottom:1px solid var(--line);gap:8px;padding:10px 2px;font-size:15px;display:grid}.slider span,.switch span{color:var(--ink)}.slider input{width:100%;accent-color:var(--glow);height:28px}.switch{grid-template-columns:1fr auto;align-items:center;position:relative}.switch input{opacity:0;width:100%;height:100%;margin:0;position:absolute;top:0;left:0}.switch i{width:50px;height:30px;transition:background .2s var(--ease);background:#ffffff2e;border-radius:999px;position:relative}.switch i:after{content:"";width:24px;height:24px;transition:transform .2s var(--ease);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 2px 6px #0006}.switch input:checked+i{background:var(--glow-2)}.switch input:checked+i:after{transform:translate(20px)}.convo{left:50%;bottom:calc(var(--safe-b) + 10px);z-index:15;width:min(720px,100vw - 20px);max-height:calc(100% - var(--safe-t) - var(--safe-b) - 20px);-webkit-overflow-scrolling:touch;background:var(--glass-strong);animation:slideup .35s var(--ease);border-radius:22px;gap:10px;padding:14px 18px;display:grid;position:fixed;overflow:auto;transform:translate(-50%)}@keyframes slideup{0%{opacity:0;transform:translate(-50%,24px)}to{opacity:1;transform:translate(-50%)}}.convo .head{align-items:center;gap:14px;display:flex}.convo .portrait{background:#243247;border:2px solid #ffffff4d;border-radius:50%;flex:none;width:74px;height:74px;position:relative;overflow:hidden;box-shadow:0 6px 18px #0006}.convo .portrait svg{width:100%;height:100%;display:block}.convo .hname{letter-spacing:.01em;font-size:18px;font-weight:700}.convo .hrole{color:var(--muted);margin-bottom:3px;font-size:13px}.convo .meters{color:var(--muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;gap:22px;margin-left:auto;font-size:13px;display:flex}.convo .meter{align-items:center;gap:7px;display:flex}.convo .pipset{gap:4px;display:inline-flex}.convo .pip{border:1.5px solid #ffc462b3;border-radius:50%;width:11px;height:11px}.convo .pip.on{background:var(--glow);box-shadow:0 0 8px #ffc462b3}.convo .pip.bump{animation:bump .5s var(--ease)}@keyframes bump{40%{transform:scale(1.6)}}.convo .meter b{color:var(--ink);font-weight:600}.convo .bubble{border:1px solid var(--line);background:#ffffff12;border-radius:4px 16px 16px;min-height:52px;padding:11px 14px}.convo .line{margin:0;font-size:16.5px;line-height:1.5}.convo .extra{color:var(--muted);animation:fade .4s var(--ease);border-left:3px solid #ffc46299;margin:0;padding-left:10px;font-size:14px;line-height:1.45}.convo .levelup{color:var(--glow);animation:fade .4s var(--ease);font-size:13px}.convo .result{letter-spacing:.1em;text-transform:uppercase;vertical-align:2px;border:1px solid;border-radius:6px;margin-right:8px;padding:2px 7px;font-size:10.5px;font-weight:700;display:inline-block}.convo .r-strong{color:#7bd88f}.convo .r-fair{color:#9ac7ff}.convo .r-flat{color:#c9c9c9}.convo .r-backfire{color:#ff9b8a}.convo .cards{grid-template-columns:repeat(2,1fr);gap:9px;display:grid}.convo .card-btn{-webkit-appearance:none;appearance:none;text-align:left;border:1px solid var(--line);min-height:62px;transition:transform .12s var(--ease), background .15s, border-color .15s;animation:pop .3s var(--ease) backwards;background:#ffffff12;border-radius:14px;grid-template-columns:30px 1fr;align-items:center;gap:1px 10px;padding:10px 12px;display:grid}.convo .card-btn:nth-child(2){animation-delay:40ms}.convo .card-btn:nth-child(3){animation-delay:80ms}.convo .card-btn:nth-child(4){animation-delay:.12s}.convo .card-btn svg{width:28px;height:28px;color:var(--glow);grid-row:span 3}.convo .card-btn b{font-size:15px}.convo .card-btn span{color:var(--muted);font-size:12px}.convo .card-btn em{color:var(--glow);font-size:11px;font-style:normal}.convo .card-btn:active{background:#ffc46238;border-color:#ffc462b3;transform:scale(.97)}.convo .card-btn.off{opacity:.4}.convo .actions{gap:9px;display:flex}.convo .actions button{-webkit-appearance:none;appearance:none;border:1px solid var(--line);background:#ffffff0d;border-radius:14px;flex:1;min-height:44px;font-size:15px}.convo .actions button.primary{background:linear-gradient(#ffc46247,#ffa04629);border-color:#ffc462bf;font-size:16px;font-weight:600}.convo .actions button:active{background:#ffc46238}@media (max-height:460px){.convo{gap:7px;padding:10px 14px}.convo .portrait{width:56px;height:56px}.convo .card-btn{min-height:52px;padding:6px 10px}.convo .bubble{min-height:0;padding:8px 12px}.convo .line{font-size:15px}.card{gap:9px;padding:14px 18px}.card h2{font-size:22px}.banner h1{font-size:30px}.banner{top:calc(var(--safe-t) + 16%)}.act{bottom:calc(var(--safe-b) + 150px)}.ride{bottom:calc(var(--safe-b) + 90px)}.ride-cluster{bottom:calc(var(--safe-b) + 34px)}}.update{left:50%;bottom:calc(var(--safe-b) + 24px);z-index:30;border-color:#ffc46280;border-radius:14px;align-items:center;gap:10px;padding:8px 8px 8px 14px;font-size:14px;display:flex;position:fixed;transform:translate(-50%)}
