:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#eef4f6;background:#071126;color-scheme:dark;--gold:#f5d17d;--cyan:#5ee1df;--line:#ffffff19}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input,select{font:inherit}button{cursor:pointer;color:inherit;border:1px solid var(--line);background:#142534b8;transition:background .18s,transform .18s}button:hover{background:#253c4b}button:active{transform:translateY(1px)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--cyan);outline-offset:4px}button:disabled{opacity:.5;cursor:wait}button[hidden],[hidden]{display:none!important}#scene{position:fixed;inset:0;width:100%;height:100%;touch-action:none}#veil{position:fixed;inset:0;pointer-events:none;background:linear-gradient(90deg,#071126fa 0%,#071126e0 20%,#0711263a 47%,transparent 70%),linear-gradient(0deg,#071126b3,transparent 22%)}#header{position:absolute;top:0;left:0;right:0;height:105px;display:flex;align-items:center;padding:20px 4%;gap:50px;z-index:2}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;color:#e9d5a0}.brand img{width:50px;height:50px;border-radius:12px}.brand span{font-family:Georgia,serif;font-size:25px;letter-spacing:6px}.brand small{display:block;font:8px system-ui;letter-spacing:3px;color:#83939f;margin-top:6px}nav{display:flex;gap:12px}nav button{border:0;background:transparent;letter-spacing:2px;font-size:10px;padding:12px}.connection{margin-left:auto;font-size:9px;letter-spacing:1.6px;color:#9daea9;border:1px solid #80b1ac35;padding:10px 14px;border-radius:30px}#home{position:absolute;left:6%;top:21%;width:360px}.eyebrow{font-size:9px;letter-spacing:2.6px;color:var(--gold);display:flex;align-items:center;gap:10px}.eyebrow span{width:18px;height:1px;background:var(--gold)}h1{font-family:Georgia,serif;font-weight:400;font-size:clamp(50px,5.1vw,76px);line-height:1.08;letter-spacing:-2px;margin:22px 0;color:#f3f0e6}h1 em{font-weight:400;font-style:normal;color:var(--gold)}.intro{font-size:13px;line-height:1.8;color:#a1afbc;margin:18px 0 25px}.race-selection{display:flex;gap:10px;margin-bottom:18px}.race{flex:1;display:flex;align-items:center;gap:9px;padding:13px 10px;text-align:left;background:#091725b0}.race.selected{border-color:#61d8d894;background:#21434b55}.race span:not(.race-icon){font-size:10px;letter-spacing:1px}.race small{display:block;color:#93a7b7;font-size:9px;letter-spacing:0;margin-top:5px}.race i{font-style:normal;font-size:10px;color:var(--cyan);visibility:hidden}.race.selected i{visibility:visible}.race-icon{font-size:27px}.cyan{color:var(--cyan)}.ember{color:#f89a69}.primary{display:flex;justify-content:space-between;align-items:center;width:100%;border:1px solid #ffe1a2;background:linear-gradient(105deg,#ecd197,#b89047);color:#17202a;padding:19px 20px;font-weight:800;font-size:11px;letter-spacing:2px;box-shadow:0 6px 35px #ddbe6420}.primary:hover{background:#f5dca2}.primary span{font-size:22px;line-height:10px}.duo{display:flex;gap:10px;margin-top:10px}.duo button{flex:1;padding:14px 6px;background:#0a1924c0;font-size:9px;letter-spacing:1.3px}.join{border:0;background:none;width:100%;font-size:10px;color:#8f9fac;padding:17px 0}.join b{font-weight:500;color:#bcd4d9}.home-notes{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:18px;font-size:7px;letter-spacing:1.5px;color:#748795}#arena-label{position:absolute;right:7%;bottom:18%;text-align:right;pointer-events:none}#arena-label .eyebrow{justify-content:flex-end;color:#77cdd0}#arena-label h2{font:34px/1.1 Georgia,serif;letter-spacing:1px;margin:12px 0}#arena-label p{color:#93a8b3;font-size:10px}#footer{position:absolute;bottom:24px;left:4%;right:4%;display:flex;justify-content:space-between;color:#687d8d;letter-spacing:2px;font-size:8px}#hud{position:fixed;inset:0;pointer-events:none}#hud button{pointer-events:auto}#hud .player-status{position:absolute;top:max(18px,env(safe-area-inset-top));left:max(22px,env(safe-area-inset-left));display:flex;gap:10px;background:#07111ddb;border:1px solid #6fcfc333;padding:12px;width:265px}.player-status img{width:42px;height:42px;border-radius:8px}.player-status>div{flex:1}.player-status b{font-size:12px;letter-spacing:2px}.player-status span{display:block;font-size:8px;letter-spacing:2px;color:#84aab3;margin:3px 0 7px}.meter{height:6px;background:#1b2a36;margin-top:4px;overflow:hidden}.meter i{display:block;height:100%;transition:width .1s}.health i{background:linear-gradient(90deg,#278c82,#65e5c9)}.energy{height:3px}.energy i{background:#dab771}.player-status small{font-size:8px;color:#c2d1d8}.match-status{position:absolute;top:18px;left:50%;transform:translateX(-50%);text-align:center;background:#07111dbd;padding:10px 28px;border:1px solid var(--line)}.match-status span,.match-status small{display:block;font-size:8px;letter-spacing:1.7px;color:#93a7b7}.match-status strong{font:32px Georgia;line-height:1.4;color:#efe3c9}.match-status small{font-size:7px}#scores{position:absolute;top:20px;right:85px;background:#07111dd6;padding:12px;font-size:10px;min-width:150px}#scores p{margin:5px 0;color:#93b5c0}#scores b{float:right;color:var(--gold);margin-left:25px}#pause{position:absolute;right:22px;top:22px;padding:10px 13px;font-weight:900}.ability-bar{position:absolute;bottom:max(28px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);display:flex;gap:8px}.ability-bar button{position:relative;width:78px;height:82px;background:#0c1c2be8;border:1px solid #bda1667c;overflow:hidden}.ability-bar span{font-size:23px;color:var(--gold);display:block}.ability-bar b{display:block;font-size:9px;margin:5px}.ability-bar small{font-size:7px;color:#8197a7}.ability-bar i{position:absolute;inset:0;display:none;place-items:center;background:#071126c9;font:22px Georgia;color:white}.ability-bar i.active{display:grid}#hazard{position:absolute;top:135px;left:50%;transform:translateX(-50%);background:#442116d9;border:1px solid #da925b;color:#ffc07e;padding:12px 18px;font-size:10px;letter-spacing:1px;white-space:nowrap}#diagnostics{position:absolute;bottom:8px;left:16px;font-size:9px;color:#9ebcb8}#joystick,#aimpad{display:none;pointer-events:auto;position:absolute;bottom:35px;border:1px solid #ffffff35;background:#0a1e3744;border-radius:50%;width:120px;height:120px;touch-action:none}#joystick{left:max(30px,env(safe-area-inset-left))}#aimpad{right:210px;width:82px;height:82px;bottom:55px}#joystick div,#aimpad div{position:absolute;inset:35px;background:#b9deda40;border:1px solid #b9deda55;border-radius:50%;pointer-events:none}#aimpad div{inset:26px}#aimpad span{position:absolute;bottom:-19px;font-size:7px;letter-spacing:1px;text-align:center;width:100%;color:#a0b8c7}dialog{background:#091827f5;color:#e6edf0;border:1px solid #b6985666;box-shadow:0 30px 120px #0009;max-height:85dvh;width:min(540px,92vw);padding:36px;border-radius:3px}dialog::backdrop{background:#040c17bd;backdrop-filter:blur(7px)}.close{position:absolute;right:10px;top:8px;border:0;background:none;font-size:26px;color:#8aa2ae}dialog h2{font:30px Georgia;color:var(--gold);margin:0 0 20px}dialog p,dialog li{font-size:12px;line-height:1.8;color:#9fb1bd}dialog .primary{margin-top:18px}dialog label{display:block;font-size:10px;letter-spacing:1px;color:#b8c9d0;margin-top:18px}dialog input,dialog select{display:block;background:#07121e;color:#ebf4f3;border:1px solid #ffffff25;padding:12px;width:100%;margin-top:8px;font-size:12px}dialog .row{display:flex;gap:10px;margin-top:15px}dialog .row button{flex:1;padding:12px}.pill{display:inline-block;padding:7px 10px;color:#61d8d8;border:1px solid #61d8d833;font-size:9px;letter-spacing:1px}.hero-info{padding:15px;background:#132839;margin-bottom:10px}.hero-info h3{margin:0;color:#c9e2df}.hero-info p{margin:6px 0}.key{padding:3px 7px;border:1px solid #ffffff29;color:#d6ddde}.result-score{font:54px Georgia;color:var(--gold)}#toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#122638f2;padding:15px 22px;border:1px solid #79d3ce55;z-index:20;max-width:90%;font-size:12px;opacity:0;transition:opacity .2s;pointer-events:none}#toast.visible{opacity:1}#boot{position:fixed;inset:0;background:#071126;z-index:25;display:grid;place-content:center;text-align:center;gap:20px}#boot img{width:80px;margin:auto;border-radius:20px}#boot p{font-size:10px;letter-spacing:3px;color:var(--gold)}#seo-content{position:absolute;top:100dvh;padding:30px;background:#071126;width:100%;color:#a6b6c1}.playing #home,.playing #header,.playing #footer,.playing #arena-label,.playing #veil,.playing #seo-content{display:none}.touch #joystick,.touch #aimpad{display:block}.touch .ability-bar{left:auto;right:max(15px,env(safe-area-inset-right));transform:none;display:grid;grid-template-columns:repeat(3,56px);gap:6px;bottom:24px}.touch .ability-bar button{width:56px;height:60px}.touch .ability-bar small{display:none}.touch .ability-bar b{font-size:7px}.touch .ability-bar span{font-size:20px}
@media(max-height:760px) and (min-width:850px){#home{top:18%;width:335px}h1{font-size:57px;margin:15px 0}.intro{margin:12px 0 18px}.race{padding:10px}.primary{padding:16px}.home-notes{padding-top:10px}#arena-label{bottom:14%}}
@media(max-width:850px){#header{height:76px;padding:12px 5%;gap:15px}.brand img{width:36px;height:36px}.brand span{font-size:19px;letter-spacing:4px}.brand small{font-size:6px;letter-spacing:2px}nav{margin-left:auto;gap:0}nav button{font-size:8px;letter-spacing:1px;padding:8px}.connection{display:none}#home{left:6%;top:19%;width:310px}h1{font-size:52px}.intro{font-size:12px}#arena-label{display:none}#footer{font-size:6px;letter-spacing:1px}#footer span:last-child{display:none}#veil{background:linear-gradient(90deg,#071126e8,#07112672 65%,#07112644)}#hud .player-status{width:190px;padding:8px;top:10px;left:12px}.player-status img{width:30px;height:30px}.player-status b{font-size:10px}.match-status{padding:6px 12px;top:10px}.match-status strong{font-size:22px}.match-status small{display:none}#scores{right:62px;top:10px;font-size:8px;min-width:100px;padding:7px}#pause{right:12px;top:10px;padding:8px}#hazard{top:90px;font-size:8px;padding:9px}}
@media(max-width:550px) and (orientation:portrait){body:not(.playing){overflow:auto}#home{position:relative;top:auto;padding-top:105px;left:7%;width:86%;padding-bottom:65px}h1{font-size:64px;margin:20px 0}.intro{max-width:250px}#footer{position:relative;bottom:0;margin:0 0 20px}#scene{height:100dvh}#veil{background:linear-gradient(0deg,#071126fc 8%,#071126e8 47%,#071126a0 70%,#07112670)}#seo-content{position:relative;top:auto}nav button:first-child{display:none}#hud .player-status{width:170px}.match-status{left:auto;right:54px;transform:none}#scores{top:92px;right:12px}#joystick{width:105px;height:105px;left:18px}#joystick div{inset:30px}#aimpad{right:185px;bottom:150px;width:65px;height:65px}#aimpad div{inset:20px}.ability-bar{bottom:30px!important}.match-status span{font-size:6px}#hazard{top:140px;font-size:7px;max-width:92%;white-space:normal;text-align:center}}
@media(max-height:500px) and (orientation:landscape){#home{top:90px;width:280px}h1{font-size:36px;margin:10px 0}.intro{display:none}.race-selection{margin:12px 0}.race{padding:8px}.primary{padding:12px;font-size:9px}.duo button{padding:10px}.join{padding:11px 0;font-size:8px}.home-notes,#footer{display:none}.eyebrow{font-size:7px}.ability-bar{bottom:15px!important}#joystick{width:100px;height:100px;bottom:22px}#joystick div{inset:30px}#aimpad{bottom:37px}.player-status span{margin:2px 0}#hazard{top:82px}}
.race-more{border-style:dashed}.race-more .race-icon{color:var(--gold)}.heroes-panel{width:min(940px,96vw);max-height:94dvh;padding:28px}.roster-layout{display:grid;grid-template-columns:1.15fr 1fr;gap:28px}.hero-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}.roster-choice{display:flex;align-items:center;gap:9px;padding:10px;text-align:left;background:#102331}.roster-choice>span{color:var(--hero-color);font-size:25px;width:27px;text-align:center}.roster-choice b{font-size:11px}.roster-choice small{display:block;font-size:8px;color:#8fa6b7;margin-top:4px;font-weight:400}.roster-choice.chosen{border-color:var(--hero-color);background:#29435480}.hero-detail h3{font:23px Georgia;margin:22px 0 12px}.hero-stats{display:flex;gap:20px;justify-content:space-between;padding:12px 0;border-block:1px solid #ffffff19}.hero-stats span{font-size:7px;letter-spacing:1px;color:#8ba3b4}.hero-stats b{display:block;font-size:15px;color:#d8e5e6;letter-spacing:0;margin-bottom:5px}.hero-skills p{font-size:10px;line-height:1.7;margin:11px 0}.hero-skills b{color:#dce6e8}.hero-detail .primary{font-size:9px;padding:16px}.portrait{background:radial-gradient(ellipse at 50% 43%,#25465370,transparent 68%);display:flex;flex-direction:column}.portrait canvas{width:100%;height:415px;display:block}.portrait-caption{display:block;text-align:center;letter-spacing:2px;color:#789daa;font-size:8px;padding:12px}.portrait>p{font-size:9px}.portrait label{margin-top:10px}.hero-detail label{font-size:9px}.heroes-panel::backdrop{background:#030a15df;backdrop-filter:none}.heroes-panel h2{margin-bottom:20px}
@media(max-width:680px){.heroes-panel{padding:24px 16px;max-height:92dvh}.roster-layout{grid-template-columns:1fr;gap:12px}.hero-grid{grid-template-columns:repeat(2,1fr)}.roster-choice{padding:9px}.portrait{grid-row:1}.portrait canvas{height:280px}.portrait>p{margin:8px 0}.portrait label{display:flex;align-items:center;gap:15px;font-size:9px}.portrait select{margin:0;flex:1;width:70%;padding:9px}.hero-detail h3{margin-top:18px}.hero-stats{gap:10px}}
@media(max-height:540px) and (orientation:landscape){.heroes-panel{width:95vw;max-height:92dvh}.roster-layout{grid-template-columns:1.2fr 1fr;gap:16px}.portrait{grid-row:auto}.portrait canvas{height:290px}.hero-grid{grid-template-columns:repeat(2,1fr)}.roster-choice{padding:7px}.portrait label{display:block}.portrait select{width:100%}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

.arena-choice{width:100%;display:flex;align-items:center;gap:12px;margin:-5px 0 12px;padding:10px 13px;text-align:left;background:#102331d9}.arena-choice>span{font-size:25px}.arena-choice b{font-size:11px;flex:1}.arena-choice small{display:block;font-size:8px;font-weight:400;color:#93a7b7;margin-top:4px}.arena-choice i{font-style:normal;color:var(--gold)}.arena-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.arena-card{text-align:left;padding:16px;background:#102331}.arena-card>span{float:right;font-size:27px;color:var(--arena-color)}.arena-card>b{font:17px Georgia;display:block;color:var(--arena-color);margin-bottom:10px}.arena-card>small{font-size:10px;line-height:1.7;display:block;color:#aac0cd}.arena-card.chosen{border-color:var(--arena-color);background:#29435480}.ability-bar button{width:72px}#hazard{max-width:85vw;white-space:normal;text-align:center}.match-status span{max-width:230px;line-height:1.5}
@media(max-width:550px){.arena-grid{grid-template-columns:1fr}.arena-card{padding:12px}.ability-bar{gap:4px}.ability-bar button{width:49px;height:68px}.ability-bar b{font-size:7px}.ability-bar small{font-size:6px}.ability-bar span{font-size:20px}}
@media(max-height:650px) and (min-width:551px){#home{top:105px}h1{font-size:43px;margin:14px 0}.intro{margin:12px 0}.arena-choice{padding:6px 10px}.race-selection{margin-bottom:12px}.home-notes{display:none}}

#network-status{position:absolute;top:185px;left:50%;transform:translateX(-50%);max-width:90vw;padding:10px 15px;border:1px solid #65ccd478;background:#0b2435e8;color:#bbe6e9;font-size:10px;text-align:center;letter-spacing:.3px}.network-locked .ability-bar{opacity:.45;pointer-events:none}.network-locked .ability-bar button{pointer-events:none}#resume-room{color:var(--cyan);padding:10px 0 3px;font-size:9px}@media(max-width:850px){#network-status{top:125px;font-size:9px}}@media(max-width:550px) and (orientation:portrait){#network-status{top:180px}}

.account-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:20px 0}.account-stats div{background:#102b3b;padding:16px;text-align:center;border:1px solid #75d9d72a}.account-stats b{display:block;font:28px Georgia;color:var(--gold)}.account-stats small{font-size:8px;letter-spacing:1px;display:block;margin-top:8px;color:#97acb7}.xp-track{height:5px;background:#1c3949;border-radius:4px;overflow:hidden}.xp-track i{display:block;height:100%;background:var(--cyan)}#rename-form{align-items:end}#rename-form label{flex:1;margin:10px 0}#rename-form button{margin-bottom:10px;padding:14px}.equipment-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.equipment-card{background:#102331;padding:14px;border:1px solid #ffffff16;text-align:center}.equipment-card.equipped{border-color:var(--cyan)}.equipment-card b{display:block;font-size:12px;margin:12px 0 7px}.equipment-card small{display:block;font-size:9px;color:#8fa9b7;margin-bottom:14px}.equipment-card button{width:100%;font-size:9px;padding:12px}.seal-preview{--seal-color:#7be1de;width:65px;height:65px;margin:2px auto;color:var(--seal-color);border:2px solid var(--seal-color);border-radius:50%;font-size:31px;display:grid;place-items:center;box-shadow:0 0 20px color-mix(in srgb,var(--seal-color) 22%,transparent),inset 0 0 18px color-mix(in srgb,var(--seal-color) 13%,transparent)}.account-note{font-size:10px!important}.account-table{border-collapse:collapse;width:100%;font-size:12px;margin:16px 0}.account-table th,.account-table td{text-align:left;padding:12px 8px;border-bottom:1px solid #ffffff17}.account-table th{color:#8aaaba;font-size:10px}.table-scroll{overflow:auto}.match-history article{padding:12px 0;border-bottom:1px solid #ffffff17}.match-history small{display:block;font-size:10px;color:#8fa9b7;margin:6px 0}.match-history p{font-size:11px!important}.match-modes{display:grid;gap:12px;margin:20px 0}.match-modes button{text-align:left;padding:20px;background:#102c3c}.match-modes b{display:block;color:var(--gold);font:21px Georgia}.match-modes small{display:block;color:#98b3c2;margin-top:9px;font-size:11px}@media(max-width:550px){#header nav{gap:2px}#header nav button{padding:8px 7px;font-size:8px}#rename-form{display:block}#rename-form button{width:100%}.account-stats b{font-size:22px}.equipment-card{padding:12px 9px}.equipment-grid{gap:8px}}

/* Phase 7: viewport and safe-area layout, without scaling the DOM with WebGL. */
:root{--safe-top:max(12px,env(safe-area-inset-top));--safe-bottom:max(12px,env(safe-area-inset-bottom));--safe-left:max(12px,env(safe-area-inset-left));--safe-right:max(12px,env(safe-area-inset-right));--action-size:clamp(44px,7vw,58px);--control-gap:6px;--pad-size:clamp(84px,13vw,118px)}
body:not(.playing){overflow:auto;min-height:100dvh}body.playing{overflow:hidden;overscroll-behavior:none}button{min-height:44px;touch-action:manipulation}button:disabled{cursor:default}#header{padding-top:var(--safe-top);padding-left:max(4%,env(safe-area-inset-left));padding-right:max(4%,env(safe-area-inset-right));gap:clamp(8px,3vw,45px)}#home{position:relative;left:6%;top:auto;width:min(360px,88%);padding-top:clamp(115px,18dvh,180px);padding-bottom:20px}#home h1{margin:18px 0}#footer{position:relative;left:6%;right:auto;width:88%;bottom:auto;margin:8px 0 24px;gap:15px;line-height:1.7}#seo-content{position:relative;top:auto;padding:36px 6%;font-size:13px;line-height:1.8}#arena-label{position:fixed}#pwa-home{padding:10px 0;font-size:10px;color:#9bcdd1}#offline-badge{margin:4px 0 12px}.home-notes{margin-top:6px}dialog{max-height:calc(100dvh - var(--safe-top) - var(--safe-bottom));padding-top:48px;scrollbar-gutter:stable;overscroll-behavior:contain}.close{width:44px;height:44px;top:4px;right:4px}dialog input,dialog select{font-size:16px;min-height:44px}dialog .row{flex-wrap:wrap}dialog .row button{flex:1 1 115px}.check-label{display:flex;align-items:center;gap:10px;line-height:1.6;letter-spacing:0}.check-label input{width:20px;min-height:20px;margin:0;flex:none}.touch #joystick,.touch #aimpad{width:var(--pad-size);height:var(--pad-size);bottom:var(--safe-bottom);touch-action:none}.touch #joystick{left:var(--safe-left)}.touch #joystick div,.touch #aimpad div{inset:30%}.touch .ability-bar{left:auto;right:var(--safe-right);transform:none;grid-template-columns:repeat(3,var(--action-size));gap:var(--control-gap);bottom:var(--safe-bottom)!important}.touch .ability-bar button{width:var(--action-size);height:var(--action-size);min-height:44px}.touch #aimpad{right:calc(var(--safe-right) + 3*var(--action-size) + 2*var(--control-gap) + 16px)}.touch #aimpad span{bottom:-12px;font-size:6px;letter-spacing:.5px}.ability-bar button{touch-action:none;user-select:none;-webkit-user-select:none}#diagnostics{left:var(--safe-left);bottom:3px;max-width:95%;font-size:8px;text-shadow:0 1px 3px #000}.touch #diagnostics{left:50%;transform:translateX(-50%);white-space:nowrap}.network-locked #joystick,.network-locked #aimpad{pointer-events:none;opacity:.45}body.gamepad-active:not(.force-touch) #joystick,body.gamepad-active:not(.force-touch) #aimpad{display:none}body.gamepad-active:not(.force-touch) .ability-bar{display:flex;left:50%;right:auto;transform:translateX(-50%)}#pause{width:44px;height:44px;right:var(--safe-right);top:var(--safe-top);padding:0}.player-status,.match-status,#scores{max-width:calc(100vw - var(--safe-left) - var(--safe-right))}#toast{bottom:calc(var(--safe-bottom) + 6px);font-size:12px;text-align:center;line-height:1.6}#boot{padding:24px}.playing #seo-content{display:none}
@media(max-width:550px) and (orientation:portrait){#home{left:7%;width:86%;padding-top:100px;padding-bottom:16px}#home h1{font-size:clamp(46px,14vw,66px)}#header .brand img{width:32px;height:32px}.brand span{font-size:18px}.brand small{letter-spacing:1px}#footer{display:flex;left:7%;width:86%;margin-bottom:18px}.touch #aimpad{right:var(--safe-right);bottom:calc(var(--safe-bottom) + 2*var(--action-size) + var(--control-gap) + 26px)}#hud .player-status{left:var(--safe-left);top:var(--safe-top);width:clamp(145px,45vw,180px);padding:7px}.player-status img{width:24px;height:24px}.player-status b{font-size:9px;letter-spacing:1px}.player-status small{font-size:7px}.match-status{top:var(--safe-top);right:calc(var(--safe-right) + 52px);left:auto;width:82px;padding:5px;transform:none}.match-status strong{font-size:23px}.match-status span{font-size:6px;max-width:80px;letter-spacing:.3px}#scores{top:calc(var(--safe-top) + 86px);right:var(--safe-right);min-width:110px;padding:6px}#hazard{top:calc(var(--safe-top) + 85px);left:var(--safe-left);max-width:calc(100vw - 150px);transform:none;font-size:8px;padding:8px}#network-status{top:calc(var(--safe-top) + 150px);font-size:9px}.ability-bar button{width:44px;height:66px}.ability-bar{gap:4px;bottom:var(--safe-bottom)!important}dialog{width:94vw;padding-inline:18px}.equipment-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-stats{flex-wrap:wrap}}
@media(max-width:420px){nav button[data-panel="help"]{display:none}#header nav button{padding:8px;letter-spacing:.5px}.brand small{font-size:5px}.brand span{letter-spacing:3px}#header{gap:4px}}
@media(max-height:500px) and (orientation:landscape){#header{height:70px}#home{top:auto;padding-top:85px;left:5%;width:300px}#home h1{font-size:38px}.race-selection{margin-bottom:8px}.arena-choice{margin-bottom:8px}#footer{display:none}#home .duo button{padding:10px}.touch #aimpad{bottom:var(--safe-bottom)}#hud .player-status{left:var(--safe-left);top:var(--safe-top);padding:6px}.match-status{top:var(--safe-top)}#scores{top:var(--safe-top);right:calc(var(--safe-right) + 52px)}#hazard{top:calc(var(--safe-top) + 76px)}#network-status{top:calc(var(--safe-top) + 105px)}dialog{padding:44px 24px 20px}.portrait canvas{height:230px}#toast{max-width:65%;padding:9px 14px}}
@media(min-width:1600px){#home{width:460px;padding-top:18dvh}#home h1{font-size:84px}.intro{font-size:17px}.race{padding:18px}.race span:not(.race-icon){font-size:14px}.race small{font-size:12px}.primary{font-size:14px;padding:22px}.duo button{font-size:12px}.arena-choice b{font-size:14px}.arena-choice small{font-size:11px}#header nav button{font-size:14px;min-height:56px}#pwa-home,.join{font-size:13px}dialog{width:650px}dialog p,dialog li{font-size:15px}dialog h2{font-size:36px}.ability-bar button{width:90px;height:100px}.ability-bar b{font-size:12px}.ability-bar small{font-size:10px}#footer{font-size:11px}.touch .ability-bar button{width:var(--action-size);height:var(--action-size)}}

/* Phase 8: restrained feedback and motion preferences. */
.player-status.damage{box-shadow:0 0 0 2px #f09a78,0 0 22px #e7755140}.pill{letter-spacing:.13em}#audio-state{font-size:12px;align-self:center;color:#a9ccd2}.reduce-motion *, .reduce-motion *::before,.reduce-motion *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
