:root{--bg-secondary: #141225;--border: rgba(237, 233, 245, .14);--text-secondary: #a9a3c2;--accent: #e8590c}#gameHeader .gh-auth,#gameHeader .gh-btn-badge,#gameHeader .gh-avatar-initial{color:#1b1830}.tl-root{--tl-bg: #1b1830;--tl-bg2: #141225;--tl-panel: #29263c;--tl-panel2: #332f4a;--tl-line: rgba(237, 233, 245, .14);--tl-text: #ede9f5;--tl-dim: #a9a3c2;--tl-accent: #e8590c;--tl-accent-ink: #1b1830;--tl-accent-text: #ff8a4d;--tl-thread: #ffd9a8;--tl-thread-hot: #fff3e0;--tl-fill: #5c2c24;--tl-wall: #ffffff;--tl-gate: #4cc9f0;--tl-amber: #ffb300;--tl-red: #ff4d4d;--tl-ok: #5bd6a0;--tl-disp: "Bricolage Grotesque", "Arial Black", "Helvetica Neue", system-ui, sans-serif;--tl-body: "Atkinson Hyperlegible", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;position:relative;overflow:hidden;height:calc(100dvh - var(--wa-header-h, 56px));background:var(--tl-bg);color:var(--tl-text);container-type:size;container-name:root;display:flex;flex-direction:column;font-family:var(--tl-body);font-size:14px;line-height:1.4;touch-action:none}.tl-root *,.tl-root *:before,.tl-root *:after{box-sizing:border-box}:where(.tl-root) a{color:var(--tl-accent-text);text-decoration:none}:where(.tl-root) button{font:inherit;color:inherit;cursor:pointer;border:0;background:none;padding:0;margin:0;-webkit-tap-highlight-color:transparent}.tl-root button:focus-visible,.tl-root a:focus-visible,.tl-root .board:focus-visible{outline:2px solid var(--tl-gate);outline-offset:2px}.tl-screen[hidden],.scrim[hidden],.coach[hidden],.toast[hidden],.pill[hidden]{display:none!important}.disp{font-family:var(--tl-disp);font-weight:800;letter-spacing:-.02em}.dim{color:var(--tl-dim)}.tl-fine{font-size:13px}.tl-note{font-size:12px;line-height:1.4}.center{align-items:center;text-align:center}.center-text{text-align:center}.tl-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.btn{display:flex;align-items:center;justify-content:center;gap:10px;min-height:56px;padding:0 24px;border-radius:14px;background:var(--tl-accent);color:var(--tl-accent-ink);font-family:var(--tl-disp);font-weight:800;font-size:18px;letter-spacing:.01em;box-shadow:0 0 0 1px #1b183066,0 4px 20px #e8590c66;width:100%;transition:transform .12s ease,filter .12s ease}.btn:active{transform:scale(.98);filter:brightness(1.05)}.btn svg,.btn-ghost svg,.iconbtn svg{flex:0 0 auto}.btn.btn-sm{min-height:48px;font-size:16px}.btn-ghost{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 18px;border-radius:12px;border:1px solid var(--tl-line);background:transparent;color:var(--tl-text);font-weight:700;font-size:15px;width:100%;transition:background .12s ease}.btn-ghost:hover{background:#ede9f50f}.btn-ghost.btn-sm{min-height:44px}.btn-row{display:flex;gap:10px;width:100%}.btn-row>*{flex:1 1 auto;min-width:0;white-space:nowrap}.iconbtn{display:flex;align-items:center;justify-content:center;width:44px;height:44px;flex:0 0 auto;border-radius:12px;border:1px solid var(--tl-line);background:var(--tl-panel);color:var(--tl-text)}.iconbtn:disabled{opacity:.4;cursor:default}.card{display:flex;flex-direction:column;gap:10px;padding:16px;border-radius:16px;background:var(--tl-panel);border:1px solid var(--tl-line);min-width:0}.label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--tl-dim)}.pill{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border-radius:13px;background:var(--tl-panel2);color:var(--tl-text);font-size:12.5px;font-weight:700;white-space:nowrap}.pill-btn{position:relative;border:0;font-family:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}.pill-btn:after{content:"";position:absolute;inset:-9px 0}.pill-btn:hover{filter:brightness(1.15)}.pill-btn:focus-visible{outline:2px solid var(--tl-thread);outline-offset:2px}.pill-q{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border-radius:50%;border:1.5px solid currentColor;font-size:10px;font-style:normal;line-height:1;opacity:.75}.pill.gold{background:#ffd9a829;color:var(--tl-thread)}.pill.cyan{background:#4cc9f029;color:var(--tl-gate)}.pill.ok{background:#5bd6a029;color:var(--tl-ok)}.pill.warn{background:#ffb30029;color:var(--tl-amber)}.stat{display:flex;flex-direction:column;gap:2px;min-width:0}.stat .v{font-family:var(--tl-disp);font-weight:800;font-size:22px;line-height:1.1;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.stat .v.urgent{color:var(--tl-red);transform-origin:left center}.stat .v.bump{animation:tl-tick .32s ease-out}@keyframes tl-tick{0%{transform:scale(1.22)}to{transform:scale(1)}}.stat .k{font-size:11.5px;color:var(--tl-dim)}.stat.right{align-items:flex-end;text-align:right}.stat-row{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:6px}.stat-row .stat{align-items:center;text-align:center}.row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px}.row.row-tight{min-height:0}.col-tight{display:flex;flex-direction:column;gap:2px}.switch{width:44px;height:44px;padding:9px 0;background:transparent;position:relative;flex:0 0 auto}.switch:before{content:"";position:absolute;top:9px;left:0;width:44px;height:26px;border-radius:13px;background:var(--tl-panel2);transition:background .15s ease}.switch.on:before{background:var(--tl-accent)}.switch:after{content:"";position:absolute;top:12px;left:3px;width:20px;height:20px;border-radius:10px;background:var(--tl-text);transition:left .15s ease,background .15s ease}.switch.on:after{left:21px;background:var(--tl-accent-ink)}.meter{display:flex;flex-direction:column;gap:6px;min-width:0}.meter-bar{display:flex;gap:4px;height:10px}.meter-seg{flex:1 1 0;border-radius:5px;background:var(--tl-thread);transition:background .2s ease}.meter-seg.used{background:var(--tl-panel2)}.meter-label{font-size:12.5px;font-weight:700;color:var(--tl-thread);white-space:nowrap;transition:color .2s ease}.meter.warm .meter-seg:not(.used){background:var(--tl-amber)}.meter.warm .meter-label{color:var(--tl-amber)}.meter.zero .meter-label{color:var(--tl-red)}.meter.flash .meter-seg,.meter.flash .meter-label{animation:tl-meter-flash .3s ease-out 1}@keyframes tl-meter-flash{0%{background:var(--tl-red);color:var(--tl-red)}}.play{flex:1 1 auto;min-height:0;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:12px 8px 8px}.hud{width:100%;max-width:560px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) minmax(0,1fr);align-items:center;gap:12px}.hud>*{min-width:0}.board{width:min(100cqw - 16px,560px,100cqh - 150px);aspect-ratio:1 / 1;max-width:100%;flex:0 0 auto;position:relative;border-radius:14px;outline:none}.board svg{display:block;width:100%;height:100%;touch-action:none;user-select:none;-webkit-user-select:none}.under{width:100%;max-width:560px;display:flex;align-items:center;justify-content:space-between;gap:10px}.badges{display:flex;gap:6px;flex-wrap:wrap;min-width:0}.side,.side-msg{display:none}.float-msg{position:absolute;inset:0;pointer-events:none}.float-msg>*{pointer-events:auto}.toast{position:absolute;left:50%;transform:translate(-50%);bottom:20px;max-width:min(92cqw,420px);padding:10px 14px;border-radius:12px;background:var(--tl-panel2);border:1px solid var(--tl-line);font-size:13.5px;line-height:1.4;box-shadow:0 8px 24px #0006;animation:tl-rise .2s ease-out}.coach{position:absolute;top:8px;left:50%;transform:translate(-50%);padding:8px 12px;border-radius:10px;background:var(--tl-thread);color:var(--tl-accent-ink);font-size:13px;font-weight:700;line-height:1.35;box-shadow:0 6px 18px #00000059;max-width:240px;animation:tl-rise .2s ease-out}@keyframes tl-rise{0%{opacity:0;translate:0 6px}to{opacity:1;translate:0 0}}@media(max-height:480px)and (orientation:landscape){.play{flex-direction:row;justify-content:center;align-items:stretch;gap:16px;padding:8px 12px}.hud,.under{display:none}.board{width:auto;height:100%;aspect-ratio:1 / 1}.side{display:flex;flex-direction:column;gap:12px;width:300px;flex:0 0 auto;padding:4px 0;min-height:0}.side .stat .v{font-size:20px}.side .stat.right{align-items:flex-start;text-align:left}.side-stats{display:flex;gap:24px}.side-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.side-msg{display:block;margin-top:auto}.side-msg .toast,.side-msg .coach{position:static;transform:none;max-width:100%}.float-msg{display:none}}@media(min-width:700px)and (min-height:756px){.play{gap:16px;padding:24px 16px}.board{width:min(100cqw - 32px,600px,100cqh - 200px)}.hud,.under{max-width:600px}}.col{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:12px;width:100%;max-width:560px;margin:0 auto;padding:16px}.tl-date-row{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.tl-date{font-size:26px;line-height:1.1}.tl-run-title{font-size:22px;line-height:1.1}.tl-best{font-size:13.5px}.tl-best strong{color:var(--tl-text);font-weight:700}.tl-best-row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.tl-linkbtn{font-size:13px;font-weight:700;color:var(--tl-accent-text);min-height:44px;margin:-12px 0;padding:0 4px;text-decoration:underline;text-underline-offset:3px}.tl-linkbtn[hidden]{display:none}.tl-hero{font-size:44px;line-height:1;color:var(--tl-thread);font-variant-numeric:tabular-nums}.tl-dialog-title{font-size:24px;line-height:1.1}.ladder{display:flex;gap:6px}.rung{flex:1;text-align:center;padding:10px 0;border-radius:10px;background:var(--tl-panel2);color:var(--tl-dim);font-weight:700;font-size:13px}.rung.hit{background:#ffd9a829;color:var(--tl-thread)}.lb{display:flex;flex-direction:column;gap:6px}.lb-row{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:40px;padding:0 10px;border-radius:10px;background:#ede9f50a;font-size:14px}.lb-row.me{background:#ffd9a81f;border:1px solid rgba(255,217,168,.3)}.lb-row .rk{font-family:var(--tl-disp);font-weight:800;color:var(--tl-dim)}.lb-row .nm{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lb-row .sc{font-variant-numeric:tabular-nums;font-weight:700;white-space:nowrap}.share{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;line-height:1.5;padding:12px 14px;border-radius:12px;background:var(--tl-bg2);border:1px dashed var(--tl-line);white-space:pre-wrap;overflow-wrap:anywhere;animation:tl-slide .3s ease-out}@keyframes tl-slide{0%{opacity:0;translate:0 16px}to{opacity:1;translate:0 0}}@media(max-height:480px)and (orientation:landscape){.col{max-width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:min-content;align-content:start;gap:10px;padding:8px 16px}.col .card{padding:12px;gap:8px}.col .btn{min-height:48px;font-size:16px;padding:0 14px}.col .btn-ghost{padding:0 12px}.col .lb-row{min-height:36px}.col .tl-hero{font-size:36px}.col .stat .v{font-size:20px}.col .tl-date{font-size:22px}.col .lb-row:nth-child(n+4){display:none}}.scrim{position:absolute;inset:0;z-index:20;background:#141225b8;display:flex;align-items:center;justify-content:center;padding:16px}.panelbox{width:100%;max-width:360px;display:flex;flex-direction:column;gap:10px;padding:20px;border-radius:20px;background:var(--tl-panel);border:1px solid var(--tl-line);box-shadow:0 20px 60px #00000080;max-height:100%;overflow:hidden}.tl-help-title{display:flex;align-items:center;gap:10px}.tl-help-title svg{width:24px;height:24px;flex:none;color:var(--tl-thread)}.tl-help-body{display:flex;flex-direction:column;gap:12px;font-size:14px;line-height:1.4;color:var(--tl-dim)}.tl-help-body p{margin:0;text-align:center}.tl-help-figs{display:grid;grid-template-columns:1fr 1fr;gap:12px}.tl-help-fig{margin:0;display:flex;flex-direction:column;gap:8px;padding:10px;border-radius:14px;background:var(--tl-bg2);border:1px solid var(--tl-line)}.tl-help-fig svg{width:100%;height:auto;aspect-ratio:1;display:block}.tl-help-fig figcaption{font-size:13px;font-weight:700;line-height:1.25;text-align:center;color:var(--tl-text)}.tl-help-fig.ok figcaption{color:var(--tl-ok)}.tl-help-fig.bad figcaption{color:var(--tl-red)}.tl-help-fig.ok figcaption:before,.tl-help-fig.bad figcaption:before{display:inline-block;margin-right:5px}.tl-help-fig.ok figcaption:before{content:"\2713"}.tl-help-fig.bad figcaption:before{content:"\2715"}.tl-ach-box{max-width:420px}.tl-ach-list{display:flex;flex-direction:column;gap:6px;overflow-y:auto;min-height:0;max-height:60vh}.tl-ach-row{display:grid;grid-template-columns:28px minmax(0,1fr);gap:10px;align-items:center;padding:8px 10px;border-radius:10px;background:#ede9f50a;opacity:.55}.tl-ach-row.on{opacity:1;background:#ffd9a81f}.tl-ach-row .ic{color:var(--tl-dim);display:flex;align-items:center;justify-content:center}.tl-ach-row.on .ic{color:var(--tl-thread)}.tl-ach-row .t{font-weight:700;font-size:14px}.tl-ach-row .d{font-size:12px;color:var(--tl-dim)}@media(max-height:480px)and (orientation:landscape){.panelbox{max-width:560px;display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;padding:14px 20px}.panelbox .span2{grid-column:1 / -1}.panelbox .btn{min-height:48px;font-size:16px}.tl-ach-list{max-height:200px}.tl-help-box{grid-template-columns:3fr 2fr;align-items:center}.tl-help-box .tl-help-body{display:contents}.tl-help-box .tl-help-figs{grid-column:1;grid-row:1 / span 3}.tl-help-box .tl-help-title{grid-column:2;grid-row:1;align-self:end}.tl-help-box .tl-help-body p{grid-column:2;grid-row:2;text-align:left}.tl-help-box .tl-help-close{grid-column:2;grid-row:3;align-self:start}}.tl-root.tl-paused .board{filter:blur(14px);pointer-events:none}.board svg .cell{fill:var(--tl-panel);stroke:transparent;stroke-width:0;transition:fill 90ms ease-out,stroke .15s ease-out}.board svg .cell.on{fill:var(--tl-fill)}.board svg .cell.flash{stroke:var(--tl-red);stroke-width:6}.board svg .cell.knot{fill:var(--tl-panel2)}.board svg .cell.knot.on{fill:var(--tl-fill)}.board svg .lane{opacity:.38;transition:opacity .15s ease-out}.board svg .lane.want{opacity:.95;animation:tl-lane .6s linear infinite}@keyframes tl-lane{to{stroke-dashoffset:-24}}.board svg .disc.pulse{animation:tl-pulse 1.1s ease-in-out infinite;transform-origin:center;transform-box:fill-box}@keyframes tl-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.14)}}.board svg .thread,.board svg .casing{transition:stroke-width .2s ease,stroke .2s ease}.board svg .thread.tremor{animation:tl-tremor .12s linear infinite}.board svg .thread-ghost{animation:tl-tremor-ghost .12s linear infinite}@keyframes tl-tremor{0%{transform:translate(0)}50%{transform:translate(1.5px,-1px)}to{transform:translate(0)}}@keyframes tl-tremor-ghost{0%{transform:translate(-2px,1.5px)}50%{transform:translate(0)}to{transform:translate(-2px,1.5px)}}.board svg .fray{animation:tl-fray .35s ease-in forwards}.board svg .fray .fibre-a{animation:tl-fibre-a .35s ease-out forwards}.board svg .fray .fibre-b{animation:tl-fibre-b .35s ease-out forwards}@keyframes tl-fray{0%{opacity:1}60%{opacity:1}to{opacity:0}}@keyframes tl-fibre-a{0%{transform:translate(9px,-7px)}to{transform:translate(18px,-16px)}}@keyframes tl-fibre-b{0%{transform:translate(-8px,8px)}to{transform:translate(-17px,17px)}}.board svg .gate-ok{animation:tl-gate .2s ease-out 1;transform-origin:center;transform-box:fill-box}@keyframes tl-gate{0%{transform:scale(.85);opacity:.4}to{transform:scale(1);opacity:1}}.board.win svg .cell.on{animation:tl-win-cell .5s ease-out 1}.board.win svg .plate{animation:tl-win-plate .7s ease-out 1}@keyframes tl-win-cell{0%{fill:var(--tl-fill)}40%{fill:var(--tl-thread)}to{fill:var(--tl-fill)}}@keyframes tl-win-plate{0%{filter:drop-shadow(0 0 0 rgba(255,217,168,0))}40%{filter:drop-shadow(0 0 18px rgba(255,217,168,.6))}to{filter:drop-shadow(0 0 0 rgba(255,217,168,0))}}.tl-root.tl-rm .board svg .cell,.tl-root.tl-rm .board svg .thread,.tl-root.tl-rm .board svg .casing,.tl-root.tl-rm .meter-seg,.tl-root.tl-rm .meter-label,.tl-root.tl-rm .switch:before,.tl-root.tl-rm .switch:after,.tl-root.tl-rm .btn{transition:none!important}.tl-root.tl-rm .board svg .thread.tremor,.tl-root.tl-rm .board svg .thread-ghost,.tl-root.tl-rm .board svg .fray,.tl-root.tl-rm .board svg .fray *,.tl-root.tl-rm .board svg .gate-ok,.tl-root.tl-rm .board svg .disc.pulse,.tl-root.tl-rm .board svg .lane.want,.tl-root.tl-rm .stat .v.bump,.tl-root.tl-rm .board.win svg .cell.on,.tl-root.tl-rm .board.win svg .plate,.tl-root.tl-rm .toast,.tl-root.tl-rm .coach,.tl-root.tl-rm .share{animation:none!important}.tl-root.tl-rm .board svg .thread-ghost{display:none}@media(prefers-reduced-motion:reduce){.tl-root:not(.tl-motion-full) .board svg .thread.tremor,.tl-root:not(.tl-motion-full) .board svg .thread-ghost,.tl-root:not(.tl-motion-full) .board svg .fray,.tl-root:not(.tl-motion-full) .board svg .fray *,.tl-root:not(.tl-motion-full) .board svg .gate-ok,.tl-root:not(.tl-motion-full) .board svg .disc.pulse,.tl-root:not(.tl-motion-full) .board svg .lane.want,.tl-root:not(.tl-motion-full) .stat .v.bump,.tl-root:not(.tl-motion-full) .board.win svg .cell.on,.tl-root:not(.tl-motion-full) .board.win svg .plate,.tl-root:not(.tl-motion-full) .toast,.tl-root:not(.tl-motion-full) .coach,.tl-root:not(.tl-motion-full) .share{animation:none!important}}
