:root{color-scheme:dark;--bg: #101516;--ink: #fff7ea;--muted: #c8c4b9;--panel: rgba(14, 20, 21, .88);--panel-strong: rgba(9, 14, 15, .96);--line: rgba(255, 247, 234, .2);--gold: #f2b84b;--red: #d83a2e;--green: #72bf83;--blue: #2e7cb7;--mint: #8fded3;--shadow: rgba(0, 0, 0, .48);font-family:Avenir Next Condensed,Arial Narrow,Trebuchet MS,sans-serif}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden;background:var(--bg);color:var(--ink);touch-action:manipulation;overscroll-behavior:none;-webkit-tap-highlight-color:transparent}button{font:inherit}#game-shell{position:fixed;inset:0;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);place-items:center;min-width:0;min-height:0;overflow:hidden;background:#090d0e;touch-action:manipulation}#game-canvas{position:relative;width:100%;height:100%;min-width:0;min-height:0;overflow:hidden}#game-canvas canvas{display:block}#game-canvas canvas:focus{outline:none}#dom-ui{position:fixed;inset:0;z-index:5;pointer-events:none;color:var(--ink);text-shadow:0 2px 2px rgba(0,0,0,.54)}.loading-screen{position:absolute;inset:0;display:grid;width:min(360px,calc(100vw - 40px));height:max-content;margin:auto;gap:9px;place-items:center;padding:24px;pointer-events:auto;border:1px solid var(--line);border-radius:7px;background:#080d0eeb;box-shadow:0 20px 50px var(--shadow)}.loading-screen>strong{font-family:Georgia,Iowan Old Style,serif;font-size:25px}.loading-screen small{color:var(--muted)}.loading-track{width:100%;height:8px;overflow:hidden;background:#ffffff24}.loading-track span{display:block;width:100%;height:100%;background:var(--gold);transform:scaleX(0);transform-origin:left}.selection-ui{position:absolute;inset:0;display:flex;min-width:0;min-height:0;padding:24px clamp(18px,4vw,48px);overflow:auto;flex-direction:column;background:#070c0da8;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);pointer-events:auto}.selection-heading{position:relative;width:min(1100px,100%);margin:0 auto 16px;text-align:center}.selection-heading--with-back{padding-inline:54px}.selection-step{display:block;margin-bottom:4px;color:var(--muted);font-size:11px;font-weight:900;text-transform:uppercase}.selection-heading h1{margin:3px 0 0;font-family:Georgia,Iowan Old Style,serif;font-size:clamp(28px,4vw,42px);line-height:1}.selection-back{position:absolute;left:0;top:50%;display:grid;width:42px;height:42px;place-items:center;color:var(--ink);border:1px solid var(--line);border-radius:50%;background:#101617e6;font-size:22px;cursor:pointer;transform:translateY(-50%)}.selection-back:hover,.selection-back:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.selection-character-grid,.selection-world-grid,.selection-opponent-grid{display:grid;width:min(1100px,100%);min-width:0;margin:auto;gap:12px}.selection-character-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.selection-character-grid .character-card{display:flex;height:min(350px,calc(100vh - 145px));min-height:250px;flex-direction:column}.selection-character-grid .character-card__media{width:100%;height:auto;min-height:0;flex:1 1 auto}.selection-character-grid .character-pose{object-fit:contain;object-position:50% 50%}.selection-character-grid .character-card__copy{min-height:76px;padding:12px 14px;flex:0 0 auto;justify-content:center}.selection-character-grid .character-card__copy strong{font-size:clamp(20px,2.2vw,28px)}.selection-character-grid .character-card__copy small{font-size:12px}.selection-world-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-content:center}.world-choice{display:grid;grid-template-columns:58px minmax(0,1fr);gap:13px;align-items:center;min-width:0;min-height:132px;padding:16px;color:var(--ink);text-align:left;border:1px solid var(--line);border-top:4px solid var(--world-color);border-radius:6px;background:#0c1213f0;cursor:pointer}.world-choice:hover,.world-choice:focus-visible{outline:none;border-color:var(--world-color);transform:translateY(-2px)}.world-choice .world-button__icon{width:54px;height:54px}.world-choice--extra{text-decoration:none;background:linear-gradient(135deg,#403212f0,#0c1213f0)}.world-choice--extra .world-icon{width:54px;height:54px;object-fit:contain;filter:drop-shadow(0 4px 8px rgba(0,0,0,.45))}.world-choice__copy strong,.world-choice__copy small,.world-choice__copy b{display:block}.world-choice__copy strong{font-family:Georgia,Iowan Old Style,serif;font-size:22px}.world-choice__copy small{margin-top:5px;color:var(--muted);font-size:11px;line-height:1.25}.world-choice__copy b{margin-top:8px;color:var(--world-color);font-size:11px}.selection-opponent-grid{grid-template-columns:repeat(3,minmax(0,1fr));max-width:840px}.opponent-card{position:relative;display:flex;height:min(370px,calc(100vh - 150px));min-height:270px;padding:0;overflow:hidden;color:var(--ink);text-align:left;border:1px solid var(--line);border-bottom:5px solid var(--character-accent);border-radius:6px;background:#12191a;cursor:pointer}.opponent-card img{width:100%;height:100%;object-fit:contain;object-position:50% 45%}.opponent-card>span{position:absolute;inset:auto 0 0;padding:30px 14px 13px;background:linear-gradient(transparent,#060a0bfa)}.opponent-card strong,.opponent-card small{display:block}.opponent-card strong{font-family:Georgia,Iowan Old Style,serif;font-size:27px}.opponent-card small{margin-top:4px;color:var(--muted)}.opponent-card:hover,.opponent-card:focus-visible{outline:2px solid var(--character-accent);outline-offset:2px;transform:translateY(-2px)}.hub-ui{position:absolute;inset:0;min-height:540px;overflow:hidden}.hub-heading{position:absolute;top:22px;left:24px;width:min(390px,40vw);padding-left:14px;border-left:5px solid var(--gold)}.hub-kicker,.panel-kicker,.loadout__eyebrow{display:block;color:var(--gold);font-size:11px;font-weight:900;letter-spacing:0;text-transform:uppercase}.hub-heading>strong{display:block;margin-top:2px;font-family:Georgia,Iowan Old Style,serif;font-size:34px;line-height:1}.hub-heading p{margin:7px 0 0;color:#e8ddca;font-size:14px;font-style:italic;line-height:1.25}.section-label{display:flex;gap:8px;align-items:center;margin-bottom:7px;color:#e9e4da;font-size:12px;font-weight:900;text-transform:uppercase}.section-label span{display:grid;width:20px;height:20px;place-items:center;border:1px solid rgba(255,255,255,.3);border-radius:50%;color:var(--gold)}.roster{position:absolute;top:122px;left:24px;width:min(414px,43vw);pointer-events:auto}.character-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.character-card{position:relative;display:grid;grid-template-columns:76px minmax(0,1fr);min-width:0;height:108px;padding:0;overflow:hidden;color:var(--ink);text-align:left;border:1px solid rgba(255,255,255,.16);border-radius:6px;background:#0c1213d1;box-shadow:0 10px 26px #00000042;cursor:pointer;transition:border-color .16s ease,transform .16s ease,background .16s ease}.character-card:hover,.character-card:focus-visible{outline:none;border-color:var(--character-accent);transform:translateY(-2px)}.character-card.is-selected{border-color:var(--character-accent);background:color-mix(in srgb,var(--character-accent) 19%,rgba(11,17,18,.94));box-shadow:inset 4px 0 0 var(--character-accent),0 12px 30px #0000005c}.character-card__media{position:relative;height:108px;overflow:hidden;background:#171d1e}.character-pose{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 18%;opacity:0;transform:scale(.985);filter:saturate(.84) contrast(1.05);transition:opacity .24s ease,transform .42s ease}.character-pose.is-visible{opacity:1;transform:scale(1)}.character-card.is-selected .character-pose{filter:saturate(1.04) contrast(1.03)}.character-card__copy{display:flex;min-width:0;padding:15px 10px;flex-direction:column;justify-content:flex-end}.character-card__copy strong{overflow-wrap:anywhere;font-family:Georgia,Iowan Old Style,serif;font-size:18px;line-height:1}.character-card__copy small{display:block;margin-top:6px;color:var(--muted);font-size:11px;line-height:1.15}.world-picker{position:absolute;bottom:16px;left:24px;width:min(650px,calc(100vw - 312px));pointer-events:auto}.world-list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.world-button{display:grid;grid-template-columns:28px minmax(0,1fr);gap:7px;align-items:center;min-width:0;min-height:64px;padding:8px;color:var(--ink);text-align:left;border:1px solid rgba(255,255,255,.15);border-radius:5px;background:#090f10db;cursor:pointer}.world-button:hover,.world-button:focus-visible,.world-button.is-selected{outline:none;border-color:var(--world-color);background:color-mix(in srgb,var(--world-color) 24%,rgba(9,15,16,.95))}.world-button__icon{display:grid;width:28px;height:28px;place-items:center;border:0;border-radius:0}.world-icon{display:block;width:100%;height:100%;object-fit:contain}.world-button strong,.world-button small{display:block}.world-button strong{font-size:12px;line-height:1}.world-button small{display:-webkit-box;margin-top:4px;overflow:hidden;color:var(--muted);font-size:9px;line-height:1.1;-webkit-box-orient:vertical;-webkit-line-clamp:2}.loadout{position:absolute;right:20px;bottom:16px;width:264px;padding:15px;pointer-events:auto;border:1px solid color-mix(in srgb,var(--character-accent) 65%,white 10%);border-radius:7px;background:#080d0eeb;box-shadow:0 18px 44px var(--shadow)}.loadout>strong{display:block;margin-top:4px;color:var(--character-accent);font-family:Georgia,Iowan Old Style,serif;font-size:21px;line-height:1}.loadout p{margin:7px 0;color:#f0eadf;font-size:12px;line-height:1.25}.loadout>span:last-of-type{display:block;color:var(--muted);font-size:10px;line-height:1.25}.play-button{width:100%;min-height:42px;margin-top:11px;padding:8px 12px;color:#0d1213;font-weight:950;border:0;border-radius:5px;background:var(--character-accent);cursor:pointer}.play-button:hover,.play-button:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.hub-hint{position:absolute;top:24px;left:50%;padding:7px 10px;color:#ffffffad;font-size:10px;background:#070b0c94;transform:translate(-50%)}.ui-top,.ui-bottom,.ui-center{position:absolute;display:flex;gap:12px;align-items:flex-start}.ui-top{inset:18px 18px auto;justify-content:space-between}.ui-bottom{inset:auto 18px 88px;align-items:flex-end;justify-content:space-between}.ui-center{inset:0;align-items:center;justify-content:center}.hud-panel,.result-panel,.pause-panel,.ability-caption{border:1px solid var(--line);border-radius:7px;background:var(--panel);box-shadow:0 16px 40px var(--shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.hud-panel{width:410px;padding:11px 13px;border-top:3px solid var(--character-accent, var(--gold))}.hud-title{display:flex;justify-content:space-between;gap:12px;font-size:13px;font-weight:900}.hud-title span:last-child{color:var(--gold)}.mission-strip{display:grid;min-width:0;margin-top:8px;padding:8px 9px;grid-template-columns:52px minmax(0,1fr);gap:2px 8px;border-left:3px solid var(--character-accent, var(--gold));background:#0000003d}.mission-label{grid-row:1 / span 3;color:var(--gold);font-size:9px;font-weight:950;text-transform:uppercase}.mission-strip strong,.mission-strip .next-step,.mission-strip .input-feedback{min-width:0;line-height:1.2}.mission-strip strong{color:var(--ink);font-size:11px}.mission-strip .next-step{color:#f2d17d;font-size:10px;font-weight:850}.mission-strip .input-feedback{color:var(--muted);font-size:9px;font-style:normal}.meter-grid{display:grid;gap:6px;margin-top:8px}.meter-row{display:grid;grid-template-columns:124px 1fr 58px;gap:8px;align-items:center;color:var(--muted);font-size:11px}.meter-row strong{color:var(--ink);text-align:right}.meter-label{display:flex;min-width:0;gap:5px;align-items:center;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.meter-label .ui-icon{flex:0 0 auto}.meter-track{height:8px;overflow:hidden;background:#ffffff24}.meter-fill{display:block;width:100%;height:100%;background:var(--gold);transform-origin:left}.meter-fill--ability{background:var(--character-accent, var(--mint))}.hint,.message-chip{padding:9px 11px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--muted);font-size:11px}.message-chip{max-width:390px;color:var(--ink);font-size:13px;font-style:italic;font-weight:800}.action-row{display:flex;flex-wrap:wrap;gap:7px;justify-content:flex-end;pointer-events:auto}.action-button{display:inline-flex;min-height:36px;padding:7px 11px;color:var(--ink);border:1px solid rgba(255,255,255,.22);border-radius:5px;background:#0a1011db;gap:6px;align-items:center;justify-content:center;cursor:pointer}.action-button:hover,.action-button:focus-visible{outline:none;border-color:var(--gold)}.action-button.is-primary{color:#121617;border-color:transparent;background:var(--gold);text-shadow:none;font-weight:900}.action-button.is-pressed,.action-button[aria-pressed=true],.touch-button.is-pressed,.touch-button[aria-pressed=true]{border-color:#fff4c7;box-shadow:0 0 0 2px #f2b84b94,inset 0 0 0 2px #00000047;filter:brightness(1.22) saturate(1.08);transform:translateY(1px) scale(.97)}.action-button:disabled{opacity:.42;cursor:not-allowed}.touch-controls{position:fixed;left:50%;bottom:10px;z-index:8;display:flex;width:min(calc(100% - 24px),940px);gap:6px;align-items:stretch;justify-content:center;padding:7px;border:1px solid rgba(255,247,234,.24);border-radius:7px;background:#070c0de0;box-shadow:0 12px 32px #0000007a;transform:translate(-50%);pointer-events:auto}.touch-controls--bmx{display:grid;width:min(calc(100% - 24px),760px);grid-template-columns:repeat(6,minmax(0,1fr))}.touch-controls--prototype{display:grid;width:min(calc(100% - 24px),820px);grid-template-columns:repeat(6,minmax(0,1fr))}.touch-controls--prototype:not(:has([data-touch-move])){width:min(calc(100% - 24px),560px);grid-template-columns:repeat(3,minmax(0,1fr))}.touch-button{display:inline-flex;min-width:66px;min-height:48px;padding:8px 10px;color:var(--ink);border:1px solid rgba(255,255,255,.3);border-radius:6px;background:#0a1011f0;font-size:13px;font-weight:800;gap:5px;align-items:center;justify-content:center;touch-action:none;-webkit-user-select:none;user-select:none;cursor:pointer}.touch-button.is-primary{color:#121617;border-color:transparent;background:var(--gold);text-shadow:none}.touch-button.is-turbo{border-color:#52d5d0;color:#d9fffd;background:#0c4848f0}.touch-button:hover,.touch-button:focus-visible{outline:none;border-color:var(--gold)}.touch-button.is-recommended{border-color:#fff2b6;box-shadow:0 0 0 2px #f2b84bd1,0 0 18px #f2b84b61;filter:brightness(1.12)}.touch-button:disabled{position:relative;opacity:.68;filter:saturate(.55);cursor:not-allowed}.touch-button:disabled:after{position:absolute;top:2px;right:3px;content:attr(data-disabled-label);color:#ffe6a8;font-size:7px;font-weight:900;line-height:1;text-transform:uppercase}.touch-button:active{transform:translateY(1px) scale(.97);filter:brightness(1.18)}.touch-button>b{display:grid;min-width:18px;height:18px;padding-inline:3px;place-items:center;border:1px solid currentColor;border-radius:3px;font-size:9px;line-height:1}.touch-button>span{min-width:0;overflow-wrap:anywhere;line-height:1.05}.touch-button--word{flex-direction:column;gap:2px;font-size:8px}.ui-icon{display:block;width:21px;height:21px;flex:0 0 21px;object-fit:contain}.touch-icon{display:block;width:28px;height:28px;object-fit:contain;pointer-events:none}.result-world-icon{display:block;width:50px;height:50px;margin:4px auto -4px;object-fit:contain}.touch-direction-stack{display:grid;gap:5px}.touch-direction-stack .touch-button{min-width:50px;min-height:44px}.result-panel,.pause-panel{width:min(410px,92vw);padding:20px;pointer-events:auto;text-align:center;background:var(--panel-strong)}.result-character{height:158px;margin:4px 0 2px;overflow:hidden}.result-character img{width:100%;height:100%;object-fit:contain;object-position:50% 50%}.result-panel h2,.pause-panel h2{margin:4px 0 8px;font-family:Georgia,Iowan Old Style,serif;font-size:29px}.result-panel p,.pause-panel p{margin:0 0 14px;color:var(--muted);line-height:1.4}.stat-line{display:flex;justify-content:space-between;gap:16px;margin:6px 0;padding:7px 0;border-bottom:1px solid rgba(255,255,255,.12);color:var(--muted)}.stat-line strong{color:var(--ink)}.ability-caption{position:absolute;right:18px;top:104px;width:258px;padding:12px}.ability-caption>.ui-icon{float:left;width:44px;height:44px;margin:0 9px 5px 0}.ability-caption span,.ability-caption strong,.ability-caption small{display:block}.ability-caption span{color:var(--gold);font-size:11px;font-weight:900;text-transform:uppercase}.ability-caption strong{margin-top:4px;font-size:12px}.ability-caption small{margin-top:5px;color:var(--muted);font-size:10px;line-height:1.3}@media(max-width:900px){.selection-character-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.selection-character-grid .character-card{height:250px;min-height:250px}.selection-world-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px),(orientation:portrait),(pointer:coarse){#dom-ui{overflow:auto}.selection-ui{position:fixed;padding:16px 12px 24px}.selection-heading{margin-bottom:12px}.selection-heading h1{font-size:28px}.selection-character-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0 auto}.selection-character-grid .character-card{height:248px;min-height:248px}.selection-character-grid .character-card__copy{min-height:68px;padding:9px}.selection-character-grid .character-card__copy strong{font-size:20px}.selection-character-grid .character-card__copy small{font-size:10px}.selection-world-grid{grid-template-columns:1fr;margin:0 auto}.world-choice{min-height:100px;padding:12px}.selection-opponent-grid{grid-template-columns:1fr;margin:0 auto}.opponent-card{height:280px;min-height:280px}.hub-ui{position:relative;min-height:100%;padding:14px;overflow:auto}.hub-heading,.roster,.world-picker,.loadout,.hub-hint{position:static;width:100%;transform:none}.hub-heading{padding-left:11px}.hub-heading>strong{font-size:30px}.hub-hint{display:none}.roster{margin-top:18px}.character-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory}.character-card{min-width:210px;scroll-snap-align:start}.selection-character-grid .character-card{min-width:0}.world-picker{margin-top:16px}.world-list{display:flex;overflow-x:auto}.world-button{min-width:142px}.loadout{margin-top:14px;margin-bottom:18px}.ui-top{flex-direction:column;inset:10px 10px auto}.ui-bottom{inset:auto 10px calc(130px + env(safe-area-inset-bottom));flex-direction:column;align-items:stretch}.hud-panel{width:min(100%,390px)}.mission-strip{padding:6px 7px;grid-template-columns:44px minmax(0,1fr)}.mission-strip strong{font-size:10px}.mission-strip .next-step{font-size:9px}.meter-row{grid-template-columns:112px minmax(58px,1fr) 46px;gap:6px}.meter-label .ui-icon{width:18px;height:18px;flex-basis:18px}.action-row{justify-content:flex-start}.hint{display:none}.message-chip{max-width:calc(100vw - 20px)}.ability-caption{display:none}.touch-controls{position:fixed;left:50%;bottom:max(8px,env(safe-area-inset-bottom));z-index:8;display:flex;width:min(calc(100% - 12px),430px);gap:4px;align-items:center;justify-content:center;transform:translate(-50%);pointer-events:auto}.touch-controls--bmx{display:grid;width:min(calc(100% - 12px),360px);grid-template-columns:repeat(3,minmax(44px,1fr))}.touch-controls--bmx .touch-button{min-width:44px;min-height:48px;padding:5px 4px;font-size:9px}.touch-controls--prototype{display:grid;grid-template-columns:repeat(4,minmax(44px,1fr))}.touch-controls--prototype .touch-button{min-width:44px;min-height:48px;padding:5px;font-size:8px}.touch-controls--prototype [data-touch-move=up]{grid-column:2;grid-row:1}.touch-controls--prototype [data-touch-move=left]{grid-column:1;grid-row:2}.touch-controls--prototype [data-touch-move=down]{grid-column:2;grid-row:2}.touch-controls--prototype [data-touch-move=right]{grid-column:3;grid-row:2}.touch-controls--prototype [data-touch-action=primary]{grid-column:3 / 5;grid-row:1}.touch-controls--prototype [data-touch-action=ability]{grid-column:4;grid-row:2}.touch-controls--prototype [data-touch-action=secondary]{grid-column:2 / 4}.touch-controls--prototype:not(:has([data-touch-move])){grid-template-columns:repeat(3,minmax(44px,1fr))}.touch-controls--prototype:not(:has([data-touch-move])) [data-touch-action]{grid-column:auto;grid-row:auto}}@media(max-width:350px){.touch-controls--bmx,.touch-controls--prototype{width:calc(100% - 8px)}.touch-button>span{font-size:8px}}@media(orientation:portrait)and (pointer:coarse){#game-shell{place-items:start center}#game-canvas{position:absolute;top:calc(env(safe-area-inset-top,0px) + 108px);left:0;width:100%;height:auto;aspect-ratio:16 / 9}.ui-top{inset:calc(env(safe-area-inset-top,0px) + 6px) 8px auto;gap:5px}.hud-panel{width:100%;padding:6px 9px 7px}.hud-title{font-size:11px}.mission-strip{display:block;margin-top:4px;padding:3px 7px}.mission-strip strong,.mission-label,.mission-strip .input-feedback{display:none}.mission-strip .next-step{font-size:10px}.meter-grid{grid-template-columns:1fr 1fr;gap:3px 10px;margin-top:5px}.meter-row{grid-template-columns:74px minmax(30px,1fr) 34px;gap:5px;font-size:9px}.meter-row strong{font-size:9px}.meter-label .ui-icon{display:none}.meter-track{height:5px}.ui-top .action-row{position:fixed;left:8px;right:8px;top:calc(env(safe-area-inset-top,0px) + 116px + 56.25vw);justify-content:center}.action-row .action-button{min-height:30px;padding:4px 9px;font-size:10px}.ability-caption{display:none}.ui-bottom{inset:auto 10px;top:calc(env(safe-area-inset-top,0px) + 156px + 56.25vw);flex-direction:column;align-items:stretch}.touch-controls--bmx .touch-button,.touch-controls--prototype .touch-button{min-height:58px;font-size:10px}}.touch-controls{transition:opacity .24s ease}@media(pointer:fine){body.kb-mode .touch-controls{opacity:.35}body.kb-mode .touch-controls:has(.is-recommended){opacity:.72}body.kb-mode .touch-controls:hover,body.kb-mode .touch-controls:focus-within{opacity:1}}.pwa-nudge{position:fixed;z-index:40;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 14px);width:min(360px,calc(100vw - 24px));padding:14px 16px;border:1px solid var(--gold);border-radius:10px;background:#080d0ef7;box-shadow:0 18px 50px var(--shadow);transform:translate(-50%);pointer-events:auto}.pwa-nudge strong{display:block;font-family:Georgia,Iowan Old Style,serif;font-size:18px}.pwa-nudge p{margin:6px 0 10px;color:var(--muted);font-size:12px;line-height:1.4}.pwa-nudge__actions{display:flex;gap:8px;justify-content:flex-end}.pwa-nudge__actions button{min-height:36px;padding:6px 14px;color:var(--ink);border:1px solid var(--line);border-radius:6px;background:transparent;font-weight:800;cursor:pointer}.pwa-nudge__actions button.is-primary{color:#121617;border-color:transparent;background:var(--gold)}body:not([data-game-mode^=lobby-]) .pwa-nudge{display:none!important}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.opponent-card.is-selected{outline:3px solid var(--character-accent);outline-offset:2px;transform:translateY(-3px)}.opponent-card>span{display:flex;flex-direction:column}.opponent-card .opponent-card__special{display:block;margin-top:6px;color:var(--character-accent);font-size:12px;font-weight:900}.opponent-card q{display:block;margin-top:3px;color:#e8ddca;font-size:12px;font-style:italic;line-height:1.2}.opponent-card .opponent-card__cta{margin-top:6px;color:var(--ink);font-size:11px;font-weight:900;letter-spacing:.04em;text-transform:uppercase}@media(orientation:portrait){.selection-ui--opponent .selection-opponent-grid{grid-template-columns:1fr;gap:8px}.selection-ui--opponent .opponent-card{display:grid;height:min(168px,calc((100dvh - 236px) / 3));min-height:0;grid-template-columns:40% minmax(0,1fr)}.selection-ui--opponent .opponent-card img{min-height:0;object-fit:cover;object-position:50% 16%}.selection-ui--opponent .opponent-card>span{position:static;min-height:0;padding:8px 12px;overflow:hidden;justify-content:center;background:linear-gradient(90deg,#060a0b80,#060a0bf5 18%)}.selection-ui--opponent .opponent-card strong{font-size:22px;line-height:1.05}.selection-ui--opponent .opponent-card small{font-size:11px;line-height:1.2}.selection-ui--opponent .opponent-card .opponent-card__special{margin-top:4px;font-size:11px}.selection-ui--opponent .opponent-card q{font-size:11px}.selection-ui--opponent .opponent-card .opponent-card__cta{margin-top:4px;font-size:10px}}@media(orientation:landscape)and (max-height:540px){.selection-ui--opponent .selection-opponent-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.selection-ui--opponent .opponent-card{height:calc(100dvh - 120px);min-height:0}.selection-ui--opponent .opponent-card>span{padding:22px 10px 9px}.selection-ui--opponent .opponent-card strong{font-size:21px}.selection-ui--opponent .opponent-card small,.selection-ui--opponent .opponent-card q,.selection-ui--opponent .opponent-card .opponent-card__special{font-size:11px}}.fight-ui{position:absolute;inset:0}.fight-hud{position:absolute;top:calc(env(safe-area-inset-top,0px) + 6px);left:50%;z-index:2;display:grid;width:min(880px,calc(100vw - 24px));grid-template-columns:minmax(0,1fr) 76px minmax(0,1fr);gap:8px;align-items:stretch;transform:translate(-50%)}.fight-status{position:relative;display:grid;min-width:0;grid-template-rows:18px 12px 5px;row-gap:3px;padding:5px 10px;border-top:3px solid var(--fighter-accent);background:#080e0fe6;box-shadow:0 6px 18px #00000057}.fight-name{display:flex;min-width:0;gap:6px;align-items:center}.fight-name strong{min-width:0;overflow:hidden;font-family:Georgia,Iowan Old Style,"Noto Serif",serif;font-size:18px;line-height:18px;white-space:nowrap;text-overflow:ellipsis}.fight-side{flex:0 0 auto;color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.fight-winner-tag{position:absolute;top:-9px;right:8px;z-index:1;padding:0 5px;border-radius:4px;color:#121617;background:var(--fighter-accent);font-size:10px;font-weight:900;line-height:12px;text-transform:uppercase;text-shadow:none;white-space:nowrap}.fight-status--opponent .fight-winner-tag{right:auto;left:8px}.fight-meter{position:relative;display:block;overflow:hidden;background:#1b0f10;border:1px solid #6b6f70;box-shadow:inset 0 1px 3px #0009}.fight-meter>span{position:absolute;inset:0;transform-origin:left}.fight-status--opponent .fight-meter>span{transform-origin:right}.fight-meter__trail{background:#fff3e0}.fight-meter--health .fight-meter__fill{background:var(--posture-color, #58c472)}.fight-meter--health:after{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(90deg,transparent 0 calc(25% - 1px),rgba(0,0,0,.5) calc(25% - 1px) 25%)}.fight-status[data-posture=ok]{--posture-color: #58c472}.fight-status[data-posture=warn]{--posture-color: #e6c14a}.fight-status[data-posture=danger]{--posture-color: #e5484d}.fight-status[data-posture=danger] .fight-meter--health{animation:fight-posture-danger .9s ease-in-out infinite}@keyframes fight-posture-danger{0%,to{box-shadow:inset 0 1px 3px #0009,0 0 0 1px #e5484d59}50%{box-shadow:inset 0 1px 3px #0009,0 0 0 2px #e5484df2,0 0 14px #e5484d8c}}.fight-meter--focus{overflow:visible;background:#16222b}.fight-meter--focus .fight-meter__fill{background:#4a9be8}.fight-meter__cost{position:absolute;top:-2px;bottom:-2px;left:var(--special-cost);width:2px;background:#fff7ea}.fight-status--opponent .fight-meter__cost{left:auto;right:var(--special-cost)}.fight-focus-value{flex:0 0 auto;margin-left:auto;color:#8cc4ff;font-size:11px;font-weight:900;font-variant-numeric:tabular-nums;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}.fight-status--opponent .fight-focus-value{margin-left:0;margin-right:auto}.fight-status[data-focus=ready] .fight-meter--focus .fight-meter__fill{background:linear-gradient(90deg,#4a9be8,#9fd4ff);box-shadow:0 0 8px #78beffcc}.fight-status[data-focus=low] .fight-meter--focus .fight-meter__fill{background:#e5484d;animation:fight-focus-low .6s ease-in-out infinite}.fight-status[data-focus=low] .fight-focus-value{color:#ff8a80}@keyframes fight-focus-low{50%{opacity:.55}}.fight-status.is-hit{animation:fight-hit .22s ease-out}.fight-status.is-hit .fight-meter__fill{animation:fight-fill-flash .16s linear}.fight-status.is-blocked{animation:fight-block .2s ease-out}@keyframes fight-hit{0%{transform:translate(3px);background-color:#601616f2}35%{transform:translate(-2px)}70%{transform:translate(1px)}to{transform:none;background-color:#080e0fe6}}@keyframes fight-fill-flash{0%,55%{filter:brightness(2.1) saturate(.5)}to{filter:none}}@keyframes fight-block{0%{box-shadow:inset 0 0 0 2px #8fded3}to{box-shadow:inset 0 0 0 0 transparent}}.fight-status.is-winner{box-shadow:0 0 0 2px var(--fighter-accent),0 0 18px color-mix(in srgb,var(--fighter-accent) 60%,transparent)}.fight-status.is-loser{filter:grayscale(.7) brightness(.8);transition:filter .3s}.fight-clock{position:relative;display:grid;min-width:0;place-items:center;align-content:center;background:#080e0fe6;border-top:3px solid var(--gold)}.fight-clock span{color:var(--gold);font-size:10px;font-weight:900;line-height:1.1;text-transform:uppercase}.fight-clock strong{font-family:Avenir Next Condensed,Arial Narrow,Trebuchet MS,sans-serif;font-size:28px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums lining-nums}.fight-clock.is-urgent{border-color:#ff6b5e}.fight-clock.is-urgent strong{color:#ff6b5e;animation:fight-clock-tick 1s ease-out infinite}@keyframes fight-clock-tick{0%{transform:scale(1.1)}25%,to{transform:scale(1)}}.fight-lead{position:absolute;left:4px;right:4px;bottom:3px;height:3px;background:#ffffff2e}.fight-lead:after{content:"";position:absolute;top:0;bottom:0;width:50%}.fight-lead[data-lead=player]:after{left:0;background:var(--player-accent)}.fight-lead[data-lead=opponent]:after{right:0;background:var(--opponent-accent)}.fight-clock.is-urgent .fight-lead:after{animation:fight-lead-pulse .7s ease-in-out infinite}@keyframes fight-lead-pulse{50%{opacity:.35}}.fight-coach{position:absolute;z-index:2;display:grid;align-content:center;gap:2px;padding:4px 12px;background:#070c0dd1;border-left:3px solid var(--gold);border-radius:8px;overflow:hidden}.fight-coach p{min-width:0;margin:0;overflow:hidden;font-weight:800;line-height:1.2;white-space:nowrap;text-overflow:ellipsis}.fight-coach__event[data-tone=good]{color:#f2b84b}.fight-coach__event[data-tone=bad]{color:#ff6b5e}.fight-coach__event[data-tone=warn]{color:#8fded3}.fight-coach__event[data-tone=neutral]{color:#fff7ea}.fight-coach__next{color:#e9e3d8}.fight-coach__step{margin-right:6px;padding:0 5px;border-radius:4px;color:#121617;background:var(--gold);text-shadow:none}.cmd__icon{fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;overflow:visible;pointer-events:none}.cmd__icon--flip{transform:scaleX(-1)}.fight-pause{position:absolute;z-index:3;display:inline-flex;min-width:44px;height:44px;min-height:44px;gap:8px;align-items:center;justify-content:center;padding:0 12px;border-radius:10px;font-size:13px;font-weight:800;pointer-events:auto}.fight-pause .cmd__icon{width:20px;height:20px;flex:0 0 auto}.cmd__key{display:none}.touch-controls--fight{border-radius:14px}.touch-controls--fight .cmd{--icon-cut: rgb(10, 16, 17);position:relative;display:grid;width:var(--cmd-w, var(--cmd));height:var(--cmd-h, var(--cmd));min-width:0;min-height:0;grid-template-rows:minmax(0,1fr) auto;justify-items:center;align-items:center;gap:3px;padding:6px 1px;color:var(--ink);line-height:1;background:#0a1011f0;border:1px solid rgba(255,247,234,.28);border-radius:12px;box-shadow:0 2px #00000073;filter:none;opacity:1;text-shadow:none;transition:transform 60ms ease-out}.touch-controls--fight .cmd:after{content:none}.touch-controls--fight .cmd__icon{width:var(--cmd-icon, 26px);height:var(--cmd-icon, 26px);align-self:end}.touch-controls--fight .cmd__foot{display:inline-flex;max-width:100%;min-width:0;height:15px;gap:3px;align-items:center}.touch-controls--fight .cmd__label{min-width:0;overflow:hidden;font-family:Avenir Next Condensed,Roboto Condensed,sans-serif-condensed,Arial Narrow,sans-serif;font-size:clamp(10px,2.9vw,12px);font-weight:800;letter-spacing:0;white-space:nowrap;text-overflow:ellipsis}.touch-controls--fight .cmd:hover{border-color:#fff7ea47}@media(hover:hover)and (pointer:fine){.touch-controls--fight .cmd:hover{border-color:#fff7ea99}}.touch-controls--fight .cmd:focus-visible{outline:2px solid var(--mint);outline-offset:2px}.touch-controls--fight .cmd.is-recommended{--icon-cut: #f2b84b;color:#121617;background:var(--gold);border-color:#fff2b6;animation:cmd-recommend 1.2s ease-in-out infinite}.touch-controls--fight .cmd.is-pressed,.touch-controls--fight .cmd:active{--icon-cut: rgb(59, 62, 62);background:#fff7ea33;border-color:var(--ink);box-shadow:none;filter:none;transform:translateY(1px) scale(.96)}.touch-controls--fight .cmd.is-recommended.is-pressed{background:#ffd27a;color:#121617}@keyframes cmd-recommend{0%,to{box-shadow:0 0 0 2px #f2b84b73,0 0 10px #f2b84b59}50%{box-shadow:0 0 0 4px #f2b84b38,0 0 22px #f2b84b8c}}@media(prefers-reduced-motion:reduce){.touch-controls--fight .cmd.is-recommended{animation:none;box-shadow:0 0 0 2px #f2b84b99}}@media(hover:hover)and (pointer:fine)and (min-width:700px){.touch-controls--fight .cmd__key,.fight-pause .cmd__key{display:inline-grid;min-width:15px;height:15px;padding:0 3px;place-items:center;border:1px solid rgba(255,247,234,.3);border-radius:4px;background:#fff7ea0f;color:var(--muted);font-family:inherit;font-size:9px;font-weight:800;line-height:1}.touch-controls--fight .cmd.is-recommended .cmd__key{color:#121617;border-color:#12161773;background:#12161714}}.touch-controls--fight .cmd.is-warning{border-color:#ff6b5e}.touch-controls--fight .cmd.is-warning .cmd__icon{color:#ff6b5e}.touch-controls--fight .cmd__charge{position:absolute;top:4px;left:10px;right:10px;height:3px;overflow:hidden;border-radius:2px;background:#fff7ea29}.touch-controls--fight .cmd__charge>i{display:block;height:100%;background:var(--fighter-accent, var(--gold));transform-origin:left;transform:scaleX(var(--charge, 1));transition:transform .12s linear}.cmd--special.is-charging .cmd__icon{opacity:.5}.cmd--special.is-charging .cmd__label{opacity:.9}.cmd--special.is-ready .cmd__icon{color:var(--fighter-accent, var(--gold))}.cmd--special.is-recommended.is-ready .cmd__icon{color:#121617}.cmd--special.just-ready{animation:cmd-ready .42s ease-out}@keyframes cmd-ready{0%{box-shadow:0 0 0 0 var(--fighter-accent, var(--gold))}to{box-shadow:0 0 0 10px transparent}}.touch-controls--fight .cmd.is-denied{animation:cmd-denied .22s}@keyframes cmd-denied{25%{transform:translate(-3px)}75%{transform:translate(3px)}}.touch-controls--fight .cmd.is-swapping .cmd__icon{animation:cmd-swap .16s ease-out}@keyframes cmd-swap{0%{transform:rotateY(90deg)}to{transform:none}}@media(prefers-reduced-motion:reduce){.touch-controls--fight .cmd.is-swapping .cmd__icon{animation:none}}.touch-controls--fight .fight-touch-group{display:grid;gap:6px}body.kb-mode .touch-controls--fight,body.kb-mode .touch-controls--fight:has(.is-recommended){opacity:1}.fight-pause-layer{position:absolute;inset:var(--hud-bottom, 64px) 0 0 0;z-index:20;display:grid;place-items:center;padding:8px;background:#05090a9e}.fight-ui.is-paused .touch-controls--fight,.fight-ui.is-paused .fight-coach,.fight-ui.is-paused .fight-pause{visibility:hidden}.pause-panel--fight{width:min(520px,calc(100vw - 16px));max-height:calc(100% - 8px);overflow:auto;text-align:center}.pause-panel--fight p{margin-bottom:10px}.pause-panel--fight .pause-keys{color:var(--ink);font-size:13px;font-weight:700;line-height:1.5}.pause-panel--fight .pause-keys span{white-space:nowrap}.action-row--pause{display:grid;grid-template-columns:1fr;gap:8px;justify-content:stretch}.action-row--pause .action-button{min-height:48px;font-size:15px}@media(hover:hover)and (pointer:fine){.action-row--pause{display:flex;flex-wrap:wrap;justify-content:center}.action-row--pause .action-button{min-height:44px}}.pause-legend{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:8px 0 12px}.pause-legend span{display:grid;justify-items:center;gap:2px;font-size:11px;font-weight:800}.pause-legend .cmd__icon{width:22px;height:22px}@media(orientation:landscape)and (max-height:520px){.pause-legend{display:none}.action-row--pause{grid-template-columns:repeat(2,1fr)}.pause-panel--fight{padding:14px 16px}.pause-panel--fight h2{font-size:24px}}.result-panel--fight{width:min(460px,92vw);max-height:calc(100dvh - 16px);overflow:auto;border-top:4px solid var(--character-accent)}.ui-center:has(.result-panel--fight){align-items:safe center;background:#05090a8c}.result-panel--fight h2{margin:2px 0 6px;font-size:27px}.result-panel--fight p{margin-bottom:8px;color:var(--ink)}.result-panel--fight .result-tip{display:block;margin:0 0 8px;color:#8fded3;font-size:13px;font-weight:700;line-height:1.3}.result-panel--fight .stat-line{margin:4px 0;padding:5px 0}.fight-scorecard{width:100%;margin-bottom:12px;border-collapse:collapse;font-variant-numeric:tabular-nums}.fight-scorecard th,.fight-scorecard td{padding:6px 4px;border-bottom:1px solid rgba(255,255,255,.12);text-align:right}.fight-scorecard tbody th{color:var(--muted);font-weight:700;text-align:left}.fight-scorecard thead small{display:block;color:var(--muted);font-size:10px}.result-panel--fight .action-row{justify-content:center}@media(hover:hover)and (pointer:fine){.result-panel--fight .action-button{min-height:44px;padding-inline:18px;font-size:15px}}@media(orientation:portrait){.result-panel--fight{position:fixed;top:calc(var(--arena-bottom, 50vh) + 8px);bottom:max(8px,env(safe-area-inset-bottom,0px));left:8px;right:8px;display:flex;width:auto;max-height:none;flex-direction:column;padding:14px 16px 0}.result-panel--fight h2{font-size:24px}.result-panel--fight .fight-scorecard th,.result-panel--fight .fight-scorecard td{padding:4px}.result-panel--fight .action-row{position:sticky;bottom:0;display:grid;grid-template-columns:1fr;gap:8px;margin:auto -16px 0;padding:10px 16px 14px;background:#090e0f;box-shadow:0 -10px 12px -4px #090e0f}.result-panel--fight .action-button{min-height:48px;font-size:15px}.result-panel--fight .action-button:not(.is-primary){background:#0d1415}.ui-center:has(.result-panel--fight){background:none}}@media(orientation:portrait)and (max-height:700px){.result-panel--fight{padding-top:8px}.result-panel--fight h2{margin:0 0 4px;font-size:22px}.result-panel--fight p{margin-bottom:4px}.result-panel--fight .result-tip{margin-bottom:4px;font-size:12px}.result-panel--fight .stat-line{margin:2px 0;padding:3px 0}.result-panel--fight .fight-scorecard{margin-bottom:2px}.result-panel--fight .fight-scorecard th,.result-panel--fight .fight-scorecard td{padding:2px 4px}.result-panel--fight .fight-scorecard thead small{display:inline;margin-left:4px}.result-panel--fight .action-row{grid-template-columns:1fr 1fr;padding:8px 16px 10px}.result-panel--fight .action-row [data-action=rematch]{grid-column:1 / -1}}@media(orientation:landscape)and (max-height:540px){.result-panel--fight{display:grid;width:min(640px,92vw);grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:18px;align-content:start;padding:14px 16px;text-align:left}.result-panel--fight>.panel-kicker,.result-panel--fight>h2,.result-panel--fight>p,.result-panel--fight>.result-tip{grid-column:1}.result-panel--fight>.stat-line{grid-column:2;grid-row:1;margin-top:0}.result-panel--fight>.fight-scorecard{grid-column:2;grid-row:2 / span 3;align-self:start;margin-bottom:8px}.result-panel--fight>.action-row{grid-column:1 / -1;display:flex;gap:8px}.result-panel--fight h2{font-size:24px}.result-panel--fight .fight-scorecard th,.result-panel--fight .fight-scorecard td{padding:4px}.result-panel--fight .action-button{flex:1 1 0;min-height:44px}}@media(orientation:portrait){body[data-game-mode^=fight-] #game-shell{place-items:start center}body[data-game-mode^=fight-] #game-canvas{position:absolute;top:calc(env(safe-area-inset-top,0px) + 66px);left:0;width:100%;height:auto;aspect-ratio:16 / 9}.fight-hud{left:max(6px,env(safe-area-inset-left,0px));right:max(6px,env(safe-area-inset-right,0px));width:auto;grid-template-columns:minmax(0,1fr) 58px minmax(0,1fr);gap:4px;transform:none}.fight-status{grid-template-rows:16px 12px 5px;padding:5px 7px 6px}.fight-name strong{font-size:14px;line-height:16px}.fight-side{display:none}.fight-focus-value{font-size:10px;line-height:16px}.fight-meter--health{height:12px}.fight-meter--focus{height:5px}.fight-clock{padding:2px 0}.fight-clock span{font-size:10px}.fight-clock strong{font-size:22px}.fight-coach{top:calc(var(--arena-bottom, 50vh) + 8px);left:max(8px,env(safe-area-inset-left,0px));right:calc(max(8px,env(safe-area-inset-right,0px)) + 52px);height:52px}.fight-coach__event{font-size:14px}.fight-coach__next{font-size:12px}.fight-pause{top:calc(var(--arena-bottom, 50vh) + 12px);right:max(8px,env(safe-area-inset-right,0px));width:44px;padding:0}.fight-pause__label,.fight-pause .cmd__key{display:none}.touch-controls--fight{--cmd: clamp(48px, calc((100vw - 70px)/5) , 64px);--cmd-icon: clamp(22px, calc(var(--cmd) * .44), 28px);bottom:max(8px,env(safe-area-inset-bottom,0px));left:50%;display:flex;width:calc(100% - 16px);max-width:420px;gap:0;align-items:flex-end;justify-content:space-between;padding:8px;transform:translate(-50%)}.fight-touch-group--move{grid-template-columns:repeat(3,var(--cmd));grid-template-areas:". up ." "left down right"}.fight-touch-group--move [data-cmd=jump]{grid-area:up}.fight-touch-group--move [data-cmd=left]{grid-area:left}.fight-touch-group--move [data-cmd=guard]{grid-area:down}.fight-touch-group--move [data-cmd=right]{grid-area:right}.fight-touch-group--tech{grid-template-columns:repeat(2,var(--cmd))}}@media(orientation:portrait)and (max-height:700px){.touch-controls--fight{--cmd: clamp(48px, calc((100vw - 70px)/5) , 54px)}}@media(orientation:portrait)and (max-width:360px){.fight-focus-word{display:none}}@media(orientation:landscape)and (pointer:coarse)and (max-height:520px){body[data-game-mode^=fight-]{--cmd: clamp(44px, min(13.5vh, 7vw), 56px);--side-col: calc(2 * var(--cmd) + 6px + 12px);--side-l: calc(max(12px, env(safe-area-inset-left, 0px)) + var(--side-col) + 8px);--side-r: calc(max(12px, env(safe-area-inset-right, 0px)) + var(--side-col) + 8px)}body[data-game-mode^=fight-] #game-canvas{position:absolute;top:calc(max(3px,env(safe-area-inset-top,0px)) + 48px);bottom:calc(max(6px,env(safe-area-inset-bottom,0px)) + 26px);left:var(--side-l);right:var(--side-r);width:auto;height:auto}.fight-hud{top:max(3px,env(safe-area-inset-top,0px));left:max(8px,calc(env(safe-area-inset-left,0px) + 4px));right:calc(max(8px,calc(env(safe-area-inset-right,0px) + 4px)) + 52px);width:auto;grid-template-columns:minmax(0,1fr) 56px minmax(0,1fr);gap:6px;transform:none}.fight-status{grid-template-rows:13px 9px 4px;row-gap:2px;padding:3px 8px 4px;border-top-width:2px}.fight-name strong{font-size:12px;line-height:13px}.fight-side,.fight-clock>span{display:none}.fight-focus-value{font-size:10px;line-height:13px}.fight-status .fight-winner-tag{top:-5px;right:auto;left:50%;line-height:11px;transform:translate(-50%)}.fight-meter--health{height:9px}.fight-meter--focus{height:4px}.fight-clock{padding:0 2px;border-top-width:2px}.fight-clock strong{font-size:20px}.fight-pause{top:max(3px,env(safe-area-inset-top,0px));right:max(8px,env(safe-area-inset-right,0px));width:44px;padding:0}.fight-pause__label,.fight-pause .cmd__key{display:none}.fight-coach{bottom:max(6px,env(safe-area-inset-bottom,0px));left:var(--side-l);right:var(--side-r);height:22px;padding:0 10px}.fight-coach__event,.fight-coach__next{font-size:11px}.fight-coach__event{display:none}.fight-coach.is-event .fight-coach__event,.fight-coach:has(.fight-coach__next[hidden]) .fight-coach__event{display:block}.fight-coach.is-event .fight-coach__next{display:none}.touch-controls--fight{right:0;bottom:max(8px,env(safe-area-inset-bottom,0px));left:0;display:flex;width:auto;max-width:none;align-items:flex-end;justify-content:space-between;padding:0 max(12px,env(safe-area-inset-right,0px)) 0 max(12px,env(safe-area-inset-left,0px));border:0;background:none;box-shadow:none;transform:none;pointer-events:none}.touch-controls--fight .fight-touch-group{grid-template-columns:repeat(2,var(--cmd));padding:6px;border-radius:14px;background:#070c0db8;pointer-events:auto}.touch-controls--fight .cmd{padding:5px 0}.fight-touch-group--move{grid-template-areas:"up up" "left right" "down down"}.fight-touch-group--move [data-cmd=jump]{grid-area:up;width:auto}.fight-touch-group--move [data-cmd=left]{grid-area:left}.fight-touch-group--move [data-cmd=right]{grid-area:right}.fight-touch-group--move [data-cmd=guard]{grid-area:down;width:auto}.touch-controls--fight .cmd__label{font-size:10px}}@media(orientation:landscape)and (pointer:fine),(orientation:landscape)and (min-height:521px){body[data-game-mode^=fight-]{--dock-h: 74px;--coach-h: 44px;--pause-w: 124px}body[data-game-mode^=fight-] #game-canvas{position:absolute;top:var(--fight-top-reserve, 0px);right:0;bottom:calc(10px + var(--dock-h) + 6px + var(--coach-h) + 8px);left:0;width:auto;height:auto}.fight-hud{width:min(880px,calc(100vw - 2 * (var(--pause-w) + 24px)))}.fight-pause{top:calc(env(safe-area-inset-top,0px) + 6px);right:max(12px,env(safe-area-inset-right,0px))}.fight-coach{bottom:calc(10px + var(--dock-h) + 6px);left:50%;width:min(640px,calc(100vw - 24px));height:var(--coach-h);transform:translate(-50%)}.fight-coach__event{font-size:15px}.fight-coach__next{font-size:13px}.touch-controls--fight{bottom:10px;display:flex;width:max-content;max-width:calc(100vw - 24px);gap:0;padding:6px}.touch-controls--fight .fight-touch-group{display:flex}.touch-controls--fight .fight-touch-group--tech{margin-left:12px;padding-left:12px;border-left:1px solid rgba(255,247,234,.18)}.touch-controls--fight .cmd{--cmd-icon: 26px;--cmd-w: 80px;--cmd-h: 60px;padding:6px 2px}}@media(orientation:landscape)and (pointer:coarse)and (min-height:521px){body[data-game-mode^=fight-]{--dock-h: 78px}.touch-controls--fight .cmd{--cmd-w: 72px;--cmd-h: 64px}}@media(orientation:landscape)and (max-width:1180px){body[data-game-mode^=fight-]{--pause-w: 44px}.fight-pause{width:44px;padding:0}.fight-pause__label,.fight-pause .cmd__key{display:none}}body[data-fight-phase=intro] .touch-controls.touch-controls--fight,body[data-fight-phase=resume] .touch-controls.touch-controls--fight,body[data-fight-phase=finished] .touch-controls.touch-controls--fight,.fight-ui[data-fight-state=finished] .touch-controls.touch-controls--fight{opacity:.45;pointer-events:none}body[data-fight-phase=intro] .touch-controls--fight .fight-touch-group,body[data-fight-phase=resume] .touch-controls--fight .fight-touch-group,body[data-fight-phase=finished] .touch-controls--fight .fight-touch-group,.fight-ui[data-fight-state=finished] .touch-controls--fight .fight-touch-group{pointer-events:none}body[data-fight-phase=finished] .fight-pause,.fight-ui[data-fight-state=finished] .fight-pause{opacity:.45;pointer-events:none}@media(prefers-reduced-motion:reduce){.fight-status.is-hit,.fight-status.is-blocked{animation:none;outline:2px solid #fff3e0;outline-offset:-2px}.fight-status[data-posture=danger] .fight-meter--health,.fight-status[data-focus=low] .fight-meter--focus .fight-meter__fill,.fight-clock.is-urgent strong{animation:none}}.dinei-strip{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--line);font-size:13px}.dinei-strip strong{font-size:22px;color:var(--gold);font-variant-numeric:tabular-nums}.dinei-strip span{color:var(--mint);text-align:right}.dinei-strip[data-danger=seen] span,.dinei-strip .is-urgent{color:#ff8074}.dinei-strip[data-danger=warning] span{color:var(--gold)}.workshop-ui{--wk-paper: #f3ecd6;--wk-ink: #152824;--wk-panel: #142923;--wk-gold: #edbd58;--wk-green: #8dd3a4;position:absolute;inset:0;display:grid;grid-template-columns:minmax(230px,.72fr) minmax(460px,1.45fr);grid-template-rows:auto minmax(0,1fr) auto;gap:20px 36px;padding:22px clamp(20px,4vw,64px);max-width:1600px;margin:auto;text-shadow:none;font:15px/1.4 Arial,sans-serif;color:var(--wk-paper);pointer-events:none}.workshop-ui button{font:inherit;cursor:pointer;touch-action:manipulation;border-radius:6px;transition:background .12s,transform .1s}.workshop-ui button:active{transform:translateY(2px)}.workshop-ui button:disabled{opacity:.55;cursor:default}.workshop-ui button:focus-visible{outline:3px solid #fff5b0;outline-offset:4px}.wk-header{grid-column:1/-1;display:flex;align-items:center;gap:24px;padding-bottom:16px;border-bottom:1px solid #e9ecd340;pointer-events:auto}.wk-brand span,.wk-eyebrow{display:block;font:700 10px/1.4 Arial,sans-serif;letter-spacing:1.7px}.wk-brand span{color:var(--wk-gold)}.wk-brand strong{display:block;font:700 clamp(19px,2vw,28px)/1.2 Georgia,serif;margin-top:5px}.wk-counters{display:flex;align-items:center;gap:clamp(12px,2.7vw,40px);margin-left:auto;white-space:nowrap;font-size:12px}.wk-counters b{font:700 25px/1.2 monospace;color:var(--wk-gold)}.wk-menu{display:flex;gap:6px}.wk-small{color:var(--wk-paper);background:#142923ef;border:1px solid #9aa59270;padding:11px 13px}.wk-ticket{align-self:start;width:100%;max-width:390px;padding:22px;color:var(--wk-ink);background:var(--wk-paper);border-top:6px solid var(--wk-gold);box-shadow:0 6px 24px #0004;transform:rotate(-1deg);pointer-events:auto}.wk-ticket .wk-eyebrow{display:flex;justify-content:space-between;border-bottom:1px dashed #20362b70;padding-bottom:12px}.wk-ticket h2{font:700 30px/1.1 Georgia,serif;margin:16px 0 3px}.wk-ticket>small{text-transform:uppercase;letter-spacing:1px;font-size:10px}.wk-ticket p{font:italic 17px/1.45 Georgia,serif;margin:18px 0}.wk-patience-label{display:flex;justify-content:space-between;font-size:11px}.wk-patience{height:6px;background:#293c3228;margin-top:7px;overflow:hidden}.wk-patience i{display:block;height:100%;background:#367659;transform-origin:left}.wk-ticket.is-urgent .wk-patience i{background:#b64328}.wk-ticket-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:5px 12px;margin-top:16px;font-size:10px}.wk-bench{align-self:stretch;min-height:0;display:flex;flex-direction:column;align-items:stretch;padding:clamp(18px,2.5vw,32px);background:linear-gradient(135deg,#213c32fa,#10241efa);border:1px solid #93a18b65;box-shadow:0 14px 48px #0006;border-radius:10px;pointer-events:auto}.wk-steps{display:flex;justify-content:space-between;gap:5px;font-size:10px;letter-spacing:.5px;border-bottom:1px solid #85978150;padding-bottom:14px;color:#a5b4a3}.wk-steps .is-current{color:var(--wk-gold);font-weight:700}.wk-steps .is-done{color:var(--wk-green)}.wk-bench h1{font:700 clamp(23px,2.7vw,37px)/1.15 Georgia,serif;margin:20px 0 9px}#wk-instruction{margin:0 0 10px;font-size:13px;color:#d0d9c9;max-width:490px}#wk-play{flex:1;min-height:0;display:flex;flex-direction:column;justify-content:center;gap:12px}.wk-wheel{width:100%;height:100%;overflow:visible}.wk-tire,.wk-ready-wheel{position:relative;width:min(100%,300px);aspect-ratio:1;align-self:center;min-height:0;max-height:min(32vh,300px)}.wk-ready-wheel{width:min(100%,220px);max-height:25vh}.wk-ready-wheel>span{position:absolute;top:40%;left:50%;transform:translate(-50%) rotate(-10deg);padding:8px 18px;font:900 22px Arial;letter-spacing:3px;background:var(--wk-gold);color:var(--wk-ink);box-shadow:4px 5px #06150d70}.wk-rotor{position:absolute;inset:0;--spin: 0deg;transform:rotate(var(--spin))}.wk-arm{position:absolute;inset:0;transform:rotate(var(--a));pointer-events:none}.wk-spot{position:absolute;left:50%;top:1%;width:44px;height:44px;display:grid;place-items:center;border:2px solid #bec5af;background:#182921e6;color:#eee9d6;border-radius:50%!important;pointer-events:auto;transform:translate(-50%) rotate(calc(-1 * (var(--a) + var(--spin))))}.workshop-ui .wk-spot:active{transform:translate(-50%) rotate(calc(-1 * (var(--a) + var(--spin)))) scale(.92)}.wk-spot:hover{border-color:var(--wk-gold)}.wk-tire-shadow{position:absolute;left:16%;right:16%;bottom:-3%;height:7%;border-radius:50%;background:#000;opacity:.32;filter:blur(3px)}.wk-spot i{position:absolute;left:50%;bottom:55%;width:20px;height:20px;margin-left:-10px;border-radius:50%;background:radial-gradient(circle at 34% 30%,#fff 0 16%,#d6f7ffcc 24%,#8fdcee55 68%);border:2px solid #e6fbff;box-shadow:0 0 10px #bff3ffaa;opacity:0;pointer-events:none}.wk-rotor.is-bubbling .wk-spot i{animation:wk-bubble .85s ease-out infinite}.wk-spot i:nth-of-type(2){width:28px;height:28px;margin-left:0;animation-delay:-.25s!important}.wk-spot i:nth-of-type(3){width:15px;height:15px;margin-left:-22px;animation-delay:-.5s!important}.wk-spot i:nth-of-type(4){width:13px;height:13px;margin-left:8px;animation-delay:-.68s!important}@keyframes wk-bubble{0%{transform:translateY(6px) scale(.4);opacity:0}18%{opacity:1}to{transform:translateY(-78px) scale(1.2);opacity:0}}.wk-main{min-height:50px;padding:12px 18px;display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #ffe4a7;background:var(--wk-gold);color:#17291e;font-weight:800!important;box-shadow:0 4px #896c2f}.wk-main:hover{background:#ffd680}.wk-main small{font-size:10px;font-weight:600}.wk-help{font-size:11px;text-align:center;color:#c8d6c3}.wk-tire--small{width:155px;max-height:18vh}.wk-patch-mark{position:absolute;right:4%;top:40%;background:#b6d5a3;border:2px dashed #294135;padding:3px 11px;color:#203b2b;transform:rotate(15deg)}.wk-timing{position:relative;height:44px;border:1px solid #96a18e;border-radius:5px;background:repeating-linear-gradient(90deg,#071911 0 9%,#263c30 9% 10%)}.wk-target{position:absolute;height:100%;background:#619f6a}.wk-perfect{position:absolute;inset:0 auto 0 43%;width:14%;background:#b0d697;border-inline:1px solid #ebf3dc}#wk-needle{position:absolute;top:-7px;bottom:-7px;width:5px;background:#fff6d9;box-shadow:0 0 0 2px #1c2f25;transform:translate(-50%)}.wk-range-labels{display:flex;justify-content:space-between;font-size:10px;color:#d2dcc9}.wk-range-labels b{color:#a6d9ae}.wk-gauge{position:relative;align-self:center;width:min(230px,100%);aspect-ratio:1;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:8px;border:9px solid #c3c7b6;background:#efe9d8;color:#24392b;border-radius:50%;box-shadow:0 0 0 4px #050e09,inset 0 0 12px #0003}.wk-gauge strong{display:flex;align-items:baseline;gap:7px}.wk-gauge strong b{font:700 48px monospace}.wk-gauge strong small{font:700 13px monospace}.wk-gauge>span:last-child{font-size:12px}.wk-gauge.is-correct{border-color:#9be2ae;background:#d7f3d4}.wk-pressure{position:relative;height:27px;border-radius:5px;background:#071910;border:1px solid #9eaa96;overflow:hidden}.wk-pressure>i{display:block;background:var(--wk-gold);height:100%;transition:background .12s}.wk-pressure>div{position:absolute;top:0;bottom:0;border:2px solid #8ff0a8;background:#4fcf7a55;box-shadow:0 0 12px #6fe79466}.wk-pressure.is-correct>i{background:#63d487}.wk-dial{position:absolute;inset:-14px;width:calc(100% + 28px);height:calc(100% + 28px);overflow:visible;pointer-events:none}.wk-dial path{fill:none;stroke-linecap:round}.wk-dial-track{stroke:#0b1a14;stroke-width:7}.wk-dial-ok{stroke:#4fd07b;stroke-width:8}.wk-dial-over{stroke:#e4735a;stroke-width:8;opacity:.85}#wk-dial-needle path{fill:#edbd58;stroke:#0b1a14;stroke-width:2;stroke-linejoin:round}.wk-bench{position:relative;overflow:hidden}.wk-bench.wk-shake{animation:wk-shake .4s ease-out}@keyframes wk-shake{20%,60%{transform:translate(-7px)}40%,80%{transform:translate(6px)}}.wk-pop{position:absolute;left:50%;top:42%;z-index:3;padding:8px 18px;font:900 clamp(22px,3vw,34px)/1 Arial,sans-serif;letter-spacing:1px;color:#17291e;background:var(--wk-gold);border-radius:8px;box-shadow:0 6px #896c2f,0 16px 30px #0006;pointer-events:none;animation:wk-pop 1.15s cubic-bezier(.2,.9,.3,1.2) forwards}.wk-pop--bad{background:#e4735a;color:#fff6ee;box-shadow:0 6px #8f3a28,0 16px 30px #0006}.wk-pop--deliver{background:#8fe0a6;box-shadow:0 6px #3b7a50,0 16px 30px #0006}.wk-pop--ability{background:#b9d9ff;box-shadow:0 6px #4a6f9c,0 16px 30px #0006}@keyframes wk-pop{0%{transform:translate(-50%,10px) scale(.6) rotate(-6deg);opacity:0}18%{transform:translate(-50%) scale(1.08) rotate(-3deg);opacity:1}70%{transform:translate(-50%,-18px) scale(1) rotate(-3deg);opacity:1}to{transform:translate(-50%,-40px) scale(.96) rotate(-3deg);opacity:0}}.wk-stars{display:flex;justify-content:center;gap:6px;margin-top:8px;font-size:34px;line-height:1}.wk-stars i{font-style:normal;color:#c9c1a6}.wk-stars i.is-on{color:#e2a92c;text-shadow:0 2px 0 #8c6412;animation:wk-star .45s var(--d) cubic-bezier(.2,.9,.3,1.4) both}@keyframes wk-star{0%{transform:scale(0) rotate(-40deg)}}.wk-receipt.is-delivered{animation:wk-receipt .5s cubic-bezier(.2,.9,.3,1.2)}@keyframes wk-receipt{0%{transform:translateY(18px) rotate(-2deg);opacity:0}}.wk-pump{-webkit-user-select:none;user-select:none;touch-action:none!important}.wk-pump.is-pumping{background:#b9e8a8;transform:translateY(3px);box-shadow:none}.wk-conversation{display:flex;align-items:start;gap:17px;margin:8px 0}.wk-customer-initial{flex-shrink:0;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:var(--wk-paper);color:var(--wk-ink);font:700 24px Georgia}.wk-conversation blockquote{margin:0;font:italic 21px/1.4 Georgia,serif}.wk-replies{display:grid;gap:10px}.wk-replies button{display:flex;gap:14px;text-align:left;color:var(--wk-paper);background:#344b3f;padding:16px;border:1px solid #b5c3aa65;line-height:1.4}.wk-replies button:hover{background:#496350}.wk-replies b{color:var(--wk-gold)}.wk-footer{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:20px;background:#10241ef5;padding:14px 18px;border-left:4px solid var(--wk-gold);pointer-events:auto}.wk-footer .wk-eyebrow{color:var(--wk-gold);font-size:9px}.wk-footer p{margin:5px 0 0;font-size:13px;max-width:800px}.wk-footer[data-feedback=bad]{border-left-color:#eb8d66}.wk-boost{flex-shrink:0;display:grid;gap:3px;background:#2d4437;border:1px solid #819078;color:var(--wk-paper);padding:10px 16px;text-align:left}.wk-boost span{font-weight:700;font-size:13px}.wk-boost small{color:#d8ddbd;font-size:10px}.wk-receipt{padding:20px;background:var(--wk-paper);color:var(--wk-ink);text-align:center;border-block:3px dashed #7b8b72}.wk-receipt>span{font:700 10px Arial;letter-spacing:1px}.wk-receipt>strong{display:block;margin:12px 0;font:700 35px Georgia}.wk-receipt p{font-size:14px;line-height:1.5}.wk-result-stats{display:flex;justify-content:space-around;gap:10px;font-size:11px;padding:15px 0;border-block:1px solid #48623c45}.wk-result-stats b{display:block;font:700 23px monospace}.wk-result-actions{display:flex;gap:12px}.wk-result-actions .wk-main{flex:1}.workshop-ui .is-urgent{color:#ffb089}@media(max-width:760px){.workshop-ui{grid-template-columns:1fr;grid-template-rows:auto auto minmax(0,1fr) auto;padding:10px;gap:9px;font-size:13px;background:#0d231dcc}.wk-header{gap:8px;padding-bottom:8px;flex-wrap:wrap}.wk-brand{flex:1}.wk-brand span{font-size:8px}.wk-brand strong{font-size:19px}.wk-menu{order:1}.wk-small{min-height:44px;padding:8px 12px;font-size:11px!important}.wk-counters{order:2;width:100%;margin:3px 0 0;justify-content:space-between;font-size:11px}.wk-counters b{font-size:21px}.wk-ticket{max-width:none;transform:none;padding:9px 13px;border-top-width:3px;display:grid;grid-template-columns:1fr auto;gap:2px 12px}.wk-ticket .wk-eyebrow,.wk-ticket>small,.wk-ticket>p,.wk-ticket-foot{display:none}.wk-ticket h2{font-size:19px;margin:0}.wk-patience-label{align-self:center;gap:8px;font-size:10px}.wk-patience{grid-column:1/-1;height:4px;margin-top:3px}.wk-bench{padding:12px 15px}.wk-steps{padding-bottom:8px;font-size:9px}.wk-bench h1{font-size:23px;margin:12px 0 6px}#wk-instruction{font-size:12px;margin-bottom:6px}#wk-play{gap:9px}.wk-tire{width:min(100%,230px);max-height:30vh}.wk-spot{width:44px;height:44px}.wk-pop{font-size:22px}.wk-stars{font-size:28px}.wk-ready-wheel{width:160px;max-height:20vh}.wk-tire--small{width:110px;max-height:14vh}.wk-main{min-height:46px;padding:10px 12px;font-size:13px!important}.wk-main small{font-size:8px}.wk-gauge{width:160px;border-width:7px;gap:3px}.wk-gauge strong b{font-size:34px}.wk-gauge .wk-eyebrow{font-size:8px}.wk-conversation blockquote{font-size:17px}.wk-conversation{gap:10px}.wk-customer-initial{width:34px;height:34px;font-size:19px}.wk-replies button{padding:11px;font-size:12px}.wk-range-labels{font-size:8px}.wk-help{font-size:10px}.wk-footer{padding:10px;gap:10px}.wk-footer .wk-eyebrow{display:none}.wk-footer p{margin:0;font-size:11px}.wk-boost{padding:8px;max-width:115px}.wk-boost span{font-size:11px}.wk-boost small{font-size:9px}.wk-receipt{padding:14px}.wk-receipt>strong{font-size:29px}.wk-receipt p{font-size:12px}.wk-result-actions{gap:7px}}@media(max-height:650px)and (min-width:761px){.workshop-ui{padding-block:10px;gap:10px 25px}.wk-bench{padding:14px 20px}.wk-bench h1{margin-top:10px;font-size:27px}.wk-tire{max-height:26vh}.wk-tire--small{max-height:12vh}.wk-gauge{width:150px}.wk-gauge strong b{font-size:30px}.wk-footer{padding:9px 14px}.wk-ticket{padding:17px}}@media(max-height:650px)and (max-width:760px){.workshop-ui{overflow-y:auto;grid-template-rows:auto auto minmax(330px,1fr) auto;pointer-events:auto}.wk-tire{max-height:160px}.wk-tire--small{max-height:90px}}@media(prefers-reduced-motion:reduce){.workshop-ui *,.workshop-ui *:before{animation:none!important;transition:none!important}.wk-rotor.is-bubbling .wk-spot i{transform:translateY(-14px);opacity:.95}.wk-pop{opacity:1;transform:translate(-50%,-10px)}}
