:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--navy:#080d15;--deep:#0d1621;--slate:#172331;--steel:#35495a;--text:#e5edf4;--muted:#9eafbd;--amber:#f4b35e;--cyan:#79cfd9;--warning:#de7373;--line:#79cfd93d;--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);background:var(--navy);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px}*{box-sizing:border-box}html,body,#app{min-height:100%;margin:0}body{background:radial-gradient(circle at 70% 0,#183449 0,transparent 36rem),var(--navy);min-width:320px;line-height:1.45}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}.visually-hidden{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.skip-link{z-index:1000;background:var(--amber);color:#09111a;border-radius:.25rem;padding:.7rem 1rem;position:fixed;top:-5rem;left:1rem}.skip-link:focus{top:1rem}.app-shell{min-height:100dvh;padding:calc(var(--safe-top) + 4.5rem) calc(var(--safe-right) + 1.2rem) calc(var(--safe-bottom) + 5.6rem) calc(var(--safe-left) + 5.8rem)}.app-shell.compact{padding:0}.topbar{z-index:80;height:4.5rem;padding:var(--safe-top) calc(var(--safe-right) + 1.2rem) 0 calc(var(--safe-left) + 1.3rem);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(#080d15fa,#080d15db);justify-content:space-between;align-items:center;display:flex;position:fixed;inset:0 0 auto}.brand{background:0 0;border:0;padding:.4rem}.brand img{object-fit:contain;object-position:left center;width:min(31rem,51vw);height:2.4rem;display:block}.signal{color:var(--muted);text-transform:uppercase;letter-spacing:.12em;align-items:center;gap:.45rem;font-size:.76rem;display:flex}.signal span{background:var(--warning);border-radius:50%;width:.55rem;height:.55rem;box-shadow:0 0 0 .2rem #de73731f}.signal.online span{background:var(--cyan);box-shadow:0 0 .75rem #79cfd9b3}.rail-nav{z-index:70;width:4.8rem;padding:1rem .45rem calc(var(--safe-bottom) + .6rem);border-right:1px solid var(--line);background:#080d15ed;flex-direction:column;gap:.35rem;display:flex;position:fixed;top:4.5rem;bottom:0;left:0}.nav-item{min-height:3.8rem;color:var(--muted);background:0 0;border:1px solid #0000;border-radius:.55rem;place-items:center;gap:.18rem;font-size:.66rem;display:grid}.nav-item:hover,.nav-item:focus-visible,.nav-item.active{color:var(--text);border-color:var(--line);background:#79cfd914}.nav-item.active{color:var(--amber)}.ui-icon{width:1.5rem;height:1.5rem;image-rendering:pixelated;background-image:url(/assets/sprites/ui.png);background-repeat:no-repeat;background-size:12rem;display:inline-block}.icon-home{background-position:0 0}.icon-library{background-position:-10.5rem 0}.icon-daily{background-position:-3rem 0}.icon-boards{background-position:-1.5rem -1.5rem}.icon-profile{background-position:0 -1.5rem}.icon-settings{background-position:-3rem -1.5rem}.icon-empty{background-position:-7.5rem -4.5rem}main{max-width:90rem;margin:0 auto}.notice,.error-banner{border:1px solid var(--line);background:#152737;border-radius:.4rem;justify-content:space-between;align-items:center;gap:1rem;margin:.8rem 0;padding:.7rem 1rem;display:flex}.error-banner{background:#321f27;border-color:#de73738c}.notice button,.error-banner button{background:0 0;border:0;font-size:1.4rem}.hero{border:1px solid var(--line);background:#0b151f url(/assets/biomes/moss/background-far.png) 50%/cover no-repeat;border-radius:.8rem;align-items:end;min-height:calc(100dvh - 11rem);display:grid;position:relative;overflow:hidden;box-shadow:0 1.5rem 4rem #00000061}.hero:after{content:"";background:linear-gradient(90deg,#060b12eb 0,#060b127a 48%,#060b1214),linear-gradient(#0000 45%,#060b12e6);position:absolute;inset:0}.hero-copy{z-index:2;max-width:43rem;padding:clamp(1.3rem,5vw,4.5rem);position:relative}.eyebrow{text-transform:uppercase;letter-spacing:.2em;color:var(--cyan);font-size:.76rem;font-weight:700}.hero h1{letter-spacing:-.055em;max-width:10ch;margin:.6rem 0 1.2rem;font-size:clamp(2.8rem,7vw,7.5rem);line-height:.83}.hero h1 span{color:var(--amber);display:block}.hero p{color:#cbd8e0;max-width:37rem;font-size:clamp(1rem,2vw,1.3rem)}.actions{flex-wrap:wrap;gap:.7rem;margin-top:1.5rem;display:flex}.primary,.secondary,.danger,.quiet{letter-spacing:.02em;border:1px solid #0000;border-radius:.28rem;min-height:3rem;padding:.72rem 1.15rem;font-weight:750}.primary{background:var(--amber);color:#111820;box-shadow:0 0 1.8rem #f4b35e2e}.primary:hover{background:#ffc875}.secondary{color:var(--text);background:#11222fe0;border-color:#79cfd985}.secondary:hover{background:#1c3546}.danger{border-color:var(--warning);background:#58232bb8}.quiet{border-color:var(--line);color:var(--muted);background:0 0}.screen-head{justify-content:space-between;align-items:end;gap:1rem;margin:1.6rem 0;display:flex}.screen-head h1{margin:.25rem 0;font-size:clamp(2rem,4vw,3.8rem);line-height:1}.screen-head p{color:var(--muted);max-width:45rem;margin:.5rem 0 0}.mode-grid,.card-grid,.settings-grid,.stats-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr));gap:1rem;display:grid}.mode-card,.panel,.level-card,.stat{border:1px solid var(--line);background:linear-gradient(145deg,#172331f5,#0b131df5);border-radius:.6rem;position:relative;overflow:hidden}.mode-card{text-align:left;flex-direction:column;justify-content:flex-end;min-height:17rem;padding:1.4rem;display:flex}.mode-card:before{content:"";pointer-events:none;background:radial-gradient(circle at 75% 15%,#79cfd92e,#0000 38%);position:absolute;inset:0}.mode-card h2,.panel h2{margin:.35rem 0}.mode-card p,.muted{color:var(--muted)}.mode-card .tag{align-self:flex-start}.tag,.badge{border:1px solid var(--line);min-height:1.6rem;color:var(--cyan);text-transform:uppercase;letter-spacing:.08em;background:#080d15a6;border-radius:10rem;align-items:center;padding:.22rem .52rem;font-size:.72rem;display:inline-flex}.badge.practice{color:var(--amber);border-color:#f4b35e80}.panel{padding:1.25rem}.filters{flex-wrap:wrap;align-items:end;gap:.7rem;margin-bottom:1.2rem;display:flex}.field{gap:.35rem;min-width:10rem;display:grid}.field.grow{flex:1}.field label,.range-label{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:.77rem}.field input,.field select,.field textarea{border:1px solid var(--line);background:#0c1823;border-radius:.3rem;width:100%;min-height:2.9rem;padding:.65rem .72rem}.field textarea{resize:vertical;min-height:7rem}.level-card{grid-template-rows:auto 1fr;display:grid}.level-card img{aspect-ratio:7/4;object-fit:cover;background:#0c1721;width:100%}.level-card-body{gap:.6rem;padding:1rem;display:grid}.level-card h2{margin:0;font-size:1.15rem}.meta{flex-wrap:wrap;gap:.35rem;display:flex}.level-actions{gap:.5rem;margin-top:auto;display:flex}.level-actions button{flex:1}.empty-state,.loading{text-align:center;place-content:center;justify-items:center;min-height:20rem;padding:2rem;display:grid}.empty-state h2{margin:.8rem 0 .2rem}.empty-state p{color:var(--muted);max-width:32rem}.spinner{border:2px solid var(--line);border-top-color:var(--amber);border-radius:50%;width:2.4rem;height:2.4rem;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.detail-hero{background:#10202c 50%/cover;border-radius:.7rem;align-items:end;min-height:28rem;display:grid;position:relative;overflow:hidden}.detail-hero:after{content:"";background:linear-gradient(#0000,#070c13f2);position:absolute;inset:25% 0 0}.detail-copy{z-index:2;max-width:50rem;padding:clamp(1.2rem,4vw,3rem);position:relative}.detail-copy h1{margin:.3rem 0;font-size:clamp(2.4rem,6vw,5rem);line-height:.94}.table-wrap{border:1px solid var(--line);border-radius:.5rem;overflow:auto}table{border-collapse:collapse;width:100%;min-width:46rem}th,td{text-align:left;border-bottom:1px solid #79cfd921;padding:.75rem}th{color:var(--muted);text-transform:uppercase;letter-spacing:.07em;font-size:.75rem}tr:last-child td{border-bottom:0}.rank{color:var(--amber);font-weight:800}.form-stack{gap:1rem;max-width:44rem;display:grid}.split{grid-template-columns:minmax(0,2fr) minmax(17rem,1fr);gap:1rem;display:grid}.warning-box{border-left:3px solid var(--warning);background:#de737314;padding:.8rem 1rem}.game-shell{height:100dvh;padding:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left);background:#050a10;grid-template-rows:auto auto minmax(0,1fr) auto;display:grid;overflow:hidden}.hud{border-bottom:1px solid var(--line);background:#0a121b;grid-template-columns:repeat(6,minmax(0,1fr));align-items:center;gap:.35rem;min-height:3.7rem;padding:.45rem .6rem;display:grid}.hud-item{min-width:0}.hud-item small{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:.62rem;display:block}.hud-item strong{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.hud button{justify-self:end}.world-stage{touch-action:none;background:radial-gradient(circle,#173042,#060b11 68%);place-items:center;min-height:0;display:grid;position:relative;overflow:hidden}#phaser-world{justify-content:center;align-items:center;width:100%;height:100%;display:flex}#phaser-world canvas{max-width:100%;max-height:100%;display:block}.world-message{border-bottom:1px solid var(--line);text-align:center;background:#080d15f5;place-items:center;min-height:2.15rem;padding:.32rem .75rem;font-size:.82rem;line-height:1.25;display:grid}.touch-deck{padding:.55rem max(.55rem,var(--safe-right)) max(.55rem,var(--safe-bottom)) max(.55rem,var(--safe-left));border-top:1px solid var(--line);touch-action:none;-webkit-user-select:none;user-select:none;background:#080f17;grid-template-columns:1fr auto 1fr;align-items:end;gap:.7rem;display:grid}.dpad{grid-template-columns:repeat(3,var(--touch-size,3.6rem));grid-template-rows:repeat(2,var(--touch-size,3.6rem));gap:.3rem;display:grid}.touch-button{min-width:var(--touch-size,3.6rem);min-height:var(--touch-size,3.6rem);background:rgba(26,50,66,var(--touch-opacity,.78));border:1px solid #79cfd980;border-radius:.6rem;font-weight:850}.touch-button:active{background:#f4b35e80}.dpad .up{grid-column:2}.dpad .left{grid-column:1}.dpad .down{grid-column:2}.dpad .right{grid-column:3}.touch-actions{grid-template-columns:repeat(2,var(--touch-size,3.6rem));justify-self:end;gap:.5rem;display:grid}.touch-actions .dig{color:var(--amber);border-color:#f4b35e99}.touch-utilities{justify-content:center;gap:.4rem;display:flex}.left-handed .dpad{order:3}.left-handed .touch-actions{order:1;justify-self:start}.pause-layer,.result-layer{z-index:120;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#03070cd1;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.dialog{background:linear-gradient(145deg,#172331,#0b141e);border:1px solid #79cfd973;border-radius:.6rem;width:min(34rem,100%);max-height:90dvh;padding:1.5rem;overflow:auto;box-shadow:0 2rem 6rem #0000008c}.dialog h2{margin:.2rem 0;font-size:2rem}.update-toast{z-index:100;border:1px solid var(--amber);background:#2c251d;border-radius:.35rem;padding:.7rem 1rem;position:fixed;bottom:1rem;right:1rem}.settings-group{border:0;margin:0;padding:0}.settings-group legend{margin-bottom:.8rem;font-size:1.25rem;font-weight:800}.check-row,.range-row{border-bottom:1px solid #79cfd91f;justify-content:space-between;align-items:center;gap:1rem;min-height:3rem;display:flex}input[type=range]{accent-color:var(--amber);width:min(14rem,45vw)}.key-grid{grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:.5rem;display:grid}.key-button{border:1px solid var(--line);background:#0d1b27;border-radius:.3rem;justify-content:space-between;gap:.5rem;padding:.65rem;display:flex}.key-button kbd{color:var(--amber)}.large-text{font-size:19px}.high-contrast{--muted:#d5e0e6;--line:#e5edf49e;--cyan:#a5f4ff;--amber:#ffc978}.reduced-motion *{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important}.credits-list{gap:.8rem;display:grid}.achievement-list{grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:.6rem;display:grid}.achievement{border:1px solid var(--line);background:#0d1924;border-radius:.35rem;padding:.8rem}.code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.join-code{letter-spacing:.1em;color:var(--amber);word-break:break-all;font-size:1.4rem}.room-member{border-bottom:1px solid var(--line);grid-template-columns:1fr auto auto;align-items:center;gap:1rem;padding:.8rem 0;display:grid}@media (max-width:760px){.app-shell{padding:calc(var(--safe-top) + 4rem) calc(var(--safe-right) + .65rem) calc(var(--safe-bottom) + 5rem) calc(var(--safe-left) + .65rem)}.topbar{height:4rem}.brand img{width:66vw;height:2rem}.rail-nav{width:auto;height:4.65rem;padding:.3rem max(.2rem,var(--safe-right)) var(--safe-bottom) max(.2rem,var(--safe-left));border-right:0;border-top:1px solid var(--line);flex-direction:row;justify-content:space-around;top:auto;bottom:0;right:0}.nav-item{flex:1;min-height:3.5rem}.hero{background-position:59%;min-height:calc(100dvh - 10rem)}.hero-copy{padding:1.2rem}.screen-head{flex-direction:column;align-items:start}.split{grid-template-columns:1fr}.hud{grid-template-columns:repeat(4,1fr);min-height:4.5rem}.hud-item:nth-child(5){display:none}.game-shell{grid-template-rows:auto auto minmax(14rem,1fr) auto}.touch-deck{grid-template-columns:auto 1fr auto}.touch-utilities{flex-direction:column}.dpad,.touch-actions{--touch-size:3.55rem}.detail-hero{min-height:24rem}.mode-card{min-height:14rem}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important}}.brightness{filter:none}.world-stage canvas{filter:brightness(var(--brightness,1))}.runner-switch{z-index:9;background:#08131de6;min-width:3.5rem;min-height:3.5rem;padding:.45rem .7rem;position:absolute;bottom:.55rem;left:50%;transform:translate(-50%)}@media (max-width:430px){.touch-deck,.touch-deck .dpad,.touch-deck .touch-actions{--touch-size:clamp(2.8rem,12vw,3.2rem)}.touch-deck{gap:.35rem;padding-left:.35rem;padding-right:.35rem}.touch-utilities{gap:.25rem}.touch-actions{gap:.3rem}.touch-button{font-size:.82rem}}@media (max-width:760px){.hud{grid-template-columns:repeat(4,minmax(0,1fr));min-height:3.8rem;padding-right:5.25rem;position:relative}.hud button{min-height:2.75rem;padding:.45rem .65rem;position:absolute;top:50%;right:.4rem;transform:translateY(-50%)}.touch-deck{grid-template-columns:auto auto auto;justify-content:space-between}.game-shell.mode-endless .hud-item:nth-child(3){display:none}.game-shell.mode-endless .hud-item:nth-child(5){display:block}}@media (max-width:430px){.touch-deck,.touch-deck .dpad,.touch-deck .touch-actions{--touch-size:3.5rem}.touch-deck{gap:.125rem;padding-left:.125rem;padding-right:.125rem}.dpad,.touch-actions,.touch-utilities{gap:.2rem}}#phaser-world{width:auto;height:auto;min-height:0;position:absolute;inset:0;overflow:hidden}#phaser-world canvas{width:auto!important;max-width:100%!important;height:auto!important;max-height:100%!important;margin:0!important}.stats-grid .stat{gap:.2rem;padding:.8rem 1rem;display:grid}.stats-grid .stat strong{color:var(--amber);font-size:1.25rem}.stats-grid .stat span{color:var(--muted)}.game-shell.update-pending{grid-template-rows:auto auto auto minmax(0,1fr) auto}.game-shell.update-pending>.hud{grid-row:1}.game-shell.update-pending>.update-toast{text-align:center;border-radius:0;grid-row:2;justify-self:stretch;width:100%;min-height:2.75rem;position:static;transform:none}.game-shell.update-pending>.world-message{grid-row:3}.game-shell.update-pending>.world-stage{grid-row:4}.game-shell.update-pending>.touch-deck{grid-row:5}.topbar{gap:.6rem}.brand{min-width:0}.brand img{max-width:100%}.signal{flex-shrink:0;max-width:7rem}.signal>span{flex-shrink:0}.library-filters{grid-template-columns:repeat(auto-fit,minmax(min(100%,10rem),1fr));align-items:end;display:grid}.library-filters .field,.library-filters .field select{min-width:0}.library-filters .filter-actions{grid-column:1/-1}.room-member{grid-template-columns:minmax(0,1fr) auto auto}.room-member>span:first-child{overflow-wrap:anywhere;min-width:0}@media (max-width:760px){.room-member{grid-template-columns:minmax(0,1fr) auto;gap:.3rem 1rem}.room-member>span:first-child{grid-column:1/-1}}.result-layer table{table-layout:fixed;width:100%;min-width:0;font-size:.85rem}.result-layer th,.result-layer td{overflow-wrap:anywhere;padding:.5rem .25rem}.result-layer th:first-child{width:45%}.result-layer th:nth-child(2){width:30%}@media (max-width:760px){.app-shell.update-pending:not(.compact){padding-bottom:calc(var(--safe-bottom) + 11rem)}.app-shell>.update-toast{left:calc(var(--safe-left) + .65rem);right:calc(var(--safe-right) + .65rem);bottom:calc(var(--safe-bottom) + 5.15rem);max-width:calc(100vw - var(--safe-left) - var(--safe-right) - 1.3rem)}}.result-layer .update-toast{text-align:center;width:100%;margin-top:1rem;position:static}.settings-grid>.actions{grid-column:1/-1;align-self:start;align-items:flex-start}@media (max-width:760px){html{scroll-padding-top:4rem;scroll-padding-bottom:calc(var(--safe-bottom) + 4.65rem)}}.screen-enter{animation:.22s cubic-bezier(.2,.7,.2,1) screen-arrive}@keyframes screen-arrive{0%{opacity:.78;transform:translateY(5px)}to{opacity:1;transform:none}}.room-enter canvas{animation:.24s ease-out room-arrive}@keyframes room-arrive{0%{opacity:.82}to{opacity:1}}.world-message{transition:background-color .2s,border-color .2s}.world-message.room-changing{border-bottom-color:var(--amber);color:#f2d5a5;background:#202d31}.primary,.secondary,.quiet,.danger,.mode-card,.nav-item,.touch-button{transition:background-color .14s,border-color .14s,box-shadow .14s,transform .14s}.primary{box-shadow:inset 0 1px #ffe0ac,inset 0 -2px #ba7e37,0 5px 18px #0004}.secondary,.touch-button{box-shadow:inset 0 1px #bedee314,inset 0 -2px #0004}.primary:active,.secondary:active,.touch-button:active{transform:translateY(1px);box-shadow:inset 0 2px 5px #0005}.ui-icon{image-rendering:auto}.hud{z-index:2;background:linear-gradient(#14222c,#0b151d);box-shadow:0 2px 12px #0005}.hud-item strong{font-variant-numeric:tabular-nums}.world-stage{background:radial-gradient(at 50% 60%,#18302f,#070d15 72%)}.dialog{border-top-color:#92c2c5;box-shadow:inset 0 1px #d1efee12,0 2rem 6rem #0009}.level-card,.panel,.mode-card{box-shadow:inset 0 1px #b9dbdf0a,0 8px 24px #0002}@media (hover:hover) and (pointer:fine){.mode-card:hover{border-color:#9fd4d780;transform:translateY(-2px);box-shadow:0 12px 28px #0005}.level-card:hover{border-color:#91b8b963}}.no-flash .screen-enter,.no-flash .room-enter canvas{animation:none}.reduced-motion .screen-enter,.reduced-motion .room-enter canvas{animation:none!important}@media (prefers-reduced-motion:reduce){.screen-enter,.room-enter canvas{animation:none!important}}.run-ready{z-index:25;color:#ffdda4;text-align:center;pointer-events:none;background:#081118f0;border:1px solid #d9ad68;border-radius:9px;width:max-content;max-width:calc(100% - 24px);padding:10px 18px;font-size:clamp(.75rem,2.2vw,.95rem);font-weight:700;position:absolute;bottom:10px;left:50%;transform:translate(-50%);box-shadow:0 3px 18px #0008}.touch-button.pressed{color:#fff3dc;background:#775735;border-color:#ffda91;transform:translateY(1px);box-shadow:inset 0 2px 6px #0007,0 0 0 2px #f4b35e44}.dpad,.touch-button{-webkit-user-select:none;-webkit-touch-callout:none;touch-action:none}.dpad{grid-template-rows:repeat(3,var(--touch-size,3.6rem))}.dpad .up{grid-area:1/2}.dpad .left{grid-area:2/1}.dpad .right{grid-area:2/3}.dpad .down{grid-area:3/2}.run-ready[hidden]{display:none}.round-over-banner{z-index:111;top:calc(var(--safe-top) + 4.2rem);color:#fff;pointer-events:none;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#14151edb;border:1px solid #e28c70d1;border-radius:.55rem;align-items:center;gap:.75rem;width:max-content;max-width:calc(100vw - 1rem);padding:.6rem .85rem;display:flex;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 .7rem 2.4rem #0009}.round-over-banner strong{text-transform:uppercase;letter-spacing:.12em;font-size:clamp(.9rem,3vw,1.15rem);line-height:1.1;display:block}.round-over-banner small{color:#f4d3c5;font-size:clamp(.72rem,2.4vw,.87rem);display:block}.round-over-icon{color:#ffd7c5;border:1px solid #dc8270;border-radius:50%;flex:none;place-items:center;width:2.1rem;height:2.1rem;font-size:1.25rem;font-weight:800;display:grid}.round-over-count{color:#ffcf9f;white-space:nowrap;border-left:1px solid #ffffff45;flex:none;padding-left:.65rem;font-size:.8rem;font-weight:800}@media (max-width:530px){.round-over-banner{top:calc(var(--safe-top) + 3.6rem);gap:.45rem;padding:.45rem .55rem}.round-over-icon{width:1.65rem;height:1.65rem;font-size:1rem}.round-over-count{padding-left:.45rem;font-size:.72rem}}#phaser-world canvas{image-rendering:crisp-edges}.filter-disclosure{border:1px solid var(--line);border-radius:.4rem;grid-column:1/-1;padding:.2rem .8rem}.filter-disclosure summary{cursor:pointer;min-height:2.75rem;color:var(--cyan);align-content:center;font-weight:700;display:list-item}.filter-options{grid-template-columns:repeat(auto-fit,minmax(min(100%,10rem),1fr));gap:.7rem;padding:.6rem 0;display:grid}.library-filters>.field.grow{grid-column:1/-1}#library-sync{margin-bottom:1rem}#library-sync.sync-compact{box-shadow:none;background:0 0;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding:.4rem .8rem;display:flex}.sync-compact h2{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.sync-compact p{color:var(--muted);flex:12rem;margin:.25rem 0;font-size:.85rem}.sync-compact .warning-box{flex-basis:100%}.sync-compact .actions{flex-wrap:wrap;flex-shrink:0;margin:0}.sync-compact .actions button{padding:.35rem .5rem;font-size:.8rem}.screen-back{margin:0 0 1rem}.app-footer{flex-wrap:wrap;align-items:center;gap:.15rem .8rem;margin-top:1.25rem;padding-top:.4rem;display:flex}.app-footer button{min-height:44px;box-shadow:none;letter-spacing:normal;color:var(--muted);border:0;padding:.25rem .15rem;font-size:.8rem;font-weight:500}.app-footer button:hover,.app-footer button:focus-visible{color:var(--text);text-underline-offset:.2em;text-decoration:underline}@media (max-width:760px){.app-shell:not(.compact){min-height:100svh}.hero{min-height:calc(100svh - 10rem)}.app-footer{flex-wrap:nowrap;justify-content:center;gap:clamp(.4rem,2vw,.8rem);margin-top:1rem}.app-footer button{white-space:nowrap;font-size:.75rem}}:is(html:has(.game-shell),body:has(.game-shell)){overscroll-behavior:none;height:100%;scroll-padding:0;overflow:hidden}.app-shell.compact{overscroll-behavior:none;height:100svh;min-height:0;position:fixed;inset:0;overflow:hidden}.app-shell.compact>main,.app-shell.compact .game-shell{height:100%}@keyframes menu-fade{0%{opacity:.78}to{opacity:1}}@media (pointer:coarse),(max-width:760px){.screen-enter{animation-name:menu-fade}}.bindings-table table{table-layout:fixed;min-width:0}.bindings-table th,.bindings-table td{overflow-wrap:anywhere}.bindings-table th:first-child{width:50%}.settings-group{min-width:0;padding:1rem}.settings-group legend{padding:0 .4rem}.settings-save{z-index:20;border:1px solid var(--line);background:#0b1722;border-radius:.5rem;padding:.7rem;position:sticky;bottom:.5rem;box-shadow:0 -5px 20px #0005}@media (max-width:760px){.settings-save{bottom:calc(var(--safe-bottom) + 4.9rem)}.game-shell{grid-template-rows:auto auto minmax(0,1fr) auto}}.party-continuation{border-top:1px solid var(--line);flex-basis:100%;gap:.65rem;min-width:0;padding-top:1rem;display:grid}.party-continuation h3,.party-continuation p{margin:0}.party-members{gap:.4rem;margin:0;padding:0;list-style:none;display:grid}.party-members li{flex-wrap:wrap;justify-content:space-between;gap:1rem;display:flex}.party-members strong{color:var(--muted);font-size:.85rem}.party-map-choice{gap:.4rem;min-width:0;display:grid}.party-map-choice select{width:100%;min-width:0}.party-map-choice small{color:var(--muted)}.party-continuation button,.party-continuation select{min-height:44px}.result-layer .dialog:has(.party-continuation) .stats-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}.result-layer .dialog:has(.party-continuation) .stat{overflow-wrap:anywhere;min-width:0;padding:.65rem .6rem}.result-layer .dialog:has(.party-continuation) .stat strong{font-size:1.1rem}.result-layer .dialog:has(.party-continuation) .stat span{font-size:.8rem}.party-continuation .actions{margin-top:.25rem}@media (max-width:760px){.result-layer .dialog:has(.party-continuation){padding:1rem}.result-layer .dialog:has(.party-continuation) h2{font-size:1.65rem}.party-continuation{gap:.5rem}}.lobby-entry{align-items:start}.lobby-entry .form-stack{max-width:none}.lobby-entry p{margin:.25rem 0;line-height:1.45}.lobby-entry .field{min-width:0}.lobby-entry select{text-overflow:ellipsis;min-width:0;max-width:100%}#entry-map-picker{gap:.8rem;display:grid}.entry-map-preview{align-items:start;gap:.8rem;min-width:0;display:flex}.entry-map-preview:empty{display:none}.entry-map-preview img{object-fit:cover;border:1px solid var(--line);border-radius:.3rem;flex:0 0 7rem;width:7rem;height:4rem}.entry-map-preview>div{min-width:0}.entry-map-preview p{font-size:.82rem}.entry-map-preview strong{font-size:.95rem}@media (max-width:440px){.entry-map-preview{flex-direction:column}.entry-map-preview img{display:none}}.game-shell .hud{grid-template-rows:auto auto;grid-template-columns:1fr 1.3fr 1fr 1.5fr auto;gap:.25rem .6rem;padding:.35rem .6rem}.game-shell .hud>.hud-item{grid-row:1;display:block}.game-shell .hud>.hud-item:first-child{grid-column:1}.game-shell .hud>.hud-item:nth-child(2){grid-column:2}.game-shell .hud>.hud-item:nth-child(4){grid-column:3}.game-shell .hud>.hud-item:nth-child(5){grid-column:4}.game-shell .hud>button{grid-area:1/5;min-height:2.4rem;padding:.35rem .6rem;position:static;transform:none}.game-shell .hud>.held-item,.game-shell.mode-endless .hud>.held-item{border:1px solid var(--line);background:#111f29;border-radius:.35rem;grid-area:2/1/auto/-1;align-items:center;gap:.65rem;min-height:3.15rem;padding:.35rem .6rem;display:flex}.held-icon{background-image:url(/assets/sprites/objects.png);background-repeat:no-repeat;flex:0 0 32px;width:32px;height:32px;display:block}.held-item[data-equipped=false] .held-icon{border:1px dashed var(--line);background-image:none;border-radius:.3rem}.held-copy{flex:1;min-width:0}.game-shell .held-item strong{white-space:normal;text-overflow:clip;line-height:1.15;overflow:visible}.game-shell #hud-uses{color:var(--amber);white-space:nowrap;flex:none;font-size:.94rem}.held-hint{color:var(--muted);margin-left:auto;font-size:.8rem}.held-item[data-picked-up=true]{border-color:var(--amber)}.held-item[data-picked-up=true] #held-caption{color:var(--amber)}.touch-utilities [data-input][data-equipped=true]{border-color:var(--amber)}@media (max-width:900px){.held-hint{display:none}.game-shell .hud{gap:.2rem .4rem}.game-shell .hud>.held-item{gap:.45rem;padding:.3rem .4rem}.game-shell .held-copy strong,.game-shell #hud-uses{font-size:.86rem}}@media (orientation:landscape) and (max-height:500px){.game-shell .hud{gap:.15rem .5rem;padding:.15rem .5rem}.game-shell .hud>.held-item{min-height:2.6rem;padding:.15rem .4rem}.held-copy small{font-size:.55rem}.game-shell .hud>button{min-height:2rem}}@media (max-width:480px){.game-shell .hud{grid-template-columns:minmax(1.8rem,.6fr) minmax(3.9rem,1fr) minmax(3.9rem,1fr) minmax(0,.8fr) auto}}.app-shell.compact{top:var(--game-top,0px);height:min(100svh,var(--game-height,100svh));bottom:auto}.app-shell.compact>main{width:100%;max-width:none}.app-shell.compact .game-shell{grid-template-rows:auto auto minmax(0,1fr) auto;position:relative}.app-shell.compact .game-shell.update-pending{grid-template-rows:auto auto auto minmax(0,1fr) auto}#game-overlay{display:contents}.app-shell.compact:not(.touch-enabled) .touch-deck{display:none}.touch-enabled .touch-deck{border-top:1px solid var(--line);pointer-events:auto;background:#080f17;grid-template-columns:auto auto;justify-content:space-between;align-items:center;gap:.45rem;padding:.45rem .4rem;display:grid;position:static;inset:auto}.touch-enabled .touch-deck .dpad,.touch-enabled .touch-deck .touch-actions{--touch-size:inherit;--control-size:clamp(48px,var(--touch-size,56px),calc((100vw - var(--safe-left) - var(--safe-right) - 40px)/5))}.touch-enabled .touch-deck .dpad{grid-area:2/1;grid-template-columns:repeat(3,var(--control-size));grid-template-rows:repeat(3,var(--control-size));order:initial;gap:.2rem}.touch-enabled .touch-deck .touch-actions{grid-area:2/2;grid-template-columns:repeat(2,var(--control-size));order:initial;place-self:center end;align-items:stretch;gap:.3rem;height:88px}.touch-enabled .touch-deck .dpad .touch-button,.touch-enabled .touch-deck .touch-actions .touch-button{min-width:var(--control-size);min-height:var(--control-size);height:auto}.touch-enabled .touch-deck .touch-utilities{flex-direction:row;grid-area:1/1/auto/-1;justify-content:center;gap:.6rem}.touch-enabled .touch-utilities .touch-button{min-width:3.7rem;height:48px;min-height:48px;padding:.35rem;font-size:.78rem}.touch-enabled .touch-actions .dig{border-radius:.8rem;min-height:64px;font-size:.9rem}.touch-enabled .left-handed .dpad{grid-column:2}.touch-enabled .left-handed .touch-actions{grid-column:1;justify-self:start}@media (orientation:landscape) and (max-height:600px){.touch-enabled .game-shell{--landscape-control:clamp(48px,var(--touch-size,56px),56px)}.touch-enabled .touch-deck{z-index:12;inset:auto var(--safe-right) var(--safe-bottom) var(--safe-left);pointer-events:none;background:0 0;border:0;grid-template-columns:auto minmax(0,1fr) auto;padding:.4rem;position:absolute}.touch-enabled .touch-deck .dpad,.touch-enabled .touch-deck .touch-actions{--control-size:var(--landscape-control);pointer-events:auto;grid-row:1}.touch-enabled .touch-deck .dpad{grid-column:1}.touch-enabled .touch-deck .touch-actions{grid-column:3;align-self:end}.touch-enabled .touch-deck .touch-utilities{grid-area:1/2;align-self:end;gap:.3rem}.touch-enabled .touch-deck button{pointer-events:auto}.touch-enabled .touch-deck .touch-utilities .touch-button{width:48px;min-width:48px;height:48px;min-height:48px;padding:0;font-size:.7rem}.touch-enabled .world-stage{margin-left:calc(var(--landscape-control)*3 + 1rem);margin-right:calc(var(--landscape-control)*2 + 1rem);padding-bottom:56px}.touch-enabled .world-stage #phaser-world{bottom:56px}.touch-enabled .world-stage .run-ready,.touch-enabled .world-stage .runner-switch{bottom:62px}.touch-enabled .left-handed .world-stage{margin-left:calc(var(--landscape-control)*2 + 1rem);margin-right:calc(var(--landscape-control)*3 + 1rem)}.touch-enabled .left-handed .dpad{grid-column:3}.touch-enabled .left-handed .touch-actions{grid-column:1}.touch-enabled .game-shell .hud{gap:.15rem .5rem;min-height:0;padding:.2rem .5rem}.touch-enabled .game-shell .hud>button{min-height:44px}.touch-enabled .game-shell .hud>.held-item{min-height:40px}}@media (orientation:landscape) and (max-height:400px){.touch-enabled .game-shell{--landscape-control:48px}}@media (orientation:landscape) and (max-height:300px){.touch-enabled .game-shell{--landscape-control:44px}.touch-enabled .touch-deck .dpad{grid-template-rows:repeat(2,var(--control-size))}.touch-enabled .touch-deck .dpad .down{grid-row:2}}.map-records{margin-block:1rem}.map-records h2{margin-top:0}.record-filters{flex-wrap:wrap;gap:1rem;margin-block:1rem;display:flex}.record-filters .field{flex:16rem;min-width:0}.record-filters select{width:100%;min-width:0;max-width:100%}.map-record-table{table-layout:fixed;min-width:0}.map-record-table th:first-child,.map-record-table td:first-child{width:4rem}.map-record-table th:last-child,.map-record-table td:last-child{text-align:right;width:7rem}.map-record-table td{overflow-wrap:anywhere}.record-time{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:750}.record-runner small{color:var(--muted);white-space:nowrap;font-size:.75em}.record-results{min-height:4rem}.map-records .actions{margin-top:1rem}@media (max-width:480px){.map-record-table th,.map-record-table td{padding:.65rem .45rem}.map-record-table th:first-child,.map-record-table td:first-child{width:3rem}.map-record-table th:last-child,.map-record-table td:last-child{width:6rem}.map-record-table td{font-size:.85rem}}.game-shell .hud{grid-template-rows:44px;grid-template-columns:minmax(2rem,.55fr) minmax(3.8rem,1fr) minmax(3.9rem,1fr) minmax(5rem,1.4fr) auto;gap:0 6px;min-height:0;padding:2px 6px}.game-shell .hud>.hud-item:nth-child(5){display:none}.game-shell .hud>.held-item,.game-shell.mode-endless .hud>.held-item{background:0 0;border:0;grid-area:1/4;grid-template-rows:1fr 1fr;grid-template-columns:24px minmax(0,1fr);gap:0 4px;height:44px;min-height:0;padding:0;display:grid}.game-shell .hud>.held-item .held-icon{transform-origin:0;grid-area:1/1/3;align-self:center;transform:scale(.75)}.game-shell .held-copy{grid-area:1/2;align-self:end}.game-shell .held-copy small,.game-shell .held-hint{display:none}.game-shell .held-copy strong{white-space:nowrap;text-overflow:ellipsis;font-size:.72rem;line-height:1.15;overflow:hidden}.game-shell #hud-uses{grid-area:2/2;align-self:start;font-size:.65rem}.game-shell .held-item[data-equipped=false]{display:flex!important}.game-shell .held-item[data-equipped=false] .held-icon,.game-shell .held-item[data-equipped=false] #hud-uses{display:none}.game-shell .hud>button{min-height:44px;padding:.2rem .45rem}.game-shell .hud-item small{font-size:.56rem}.game-shell .hud-item strong{font-size:.9rem}.game-shell .held-copy strong{font-size:.72rem}.world-message{min-height:24px;padding:3px 8px;font-size:.72rem;line-height:1.25}.app-shell.compact .world-stage,.touch-enabled .left-handed .world-stage{min-height:0;margin:0;padding:0}.app-shell.compact #phaser-world{width:100%;height:100%;position:absolute;inset:0}.app-shell.compact #phaser-world>canvas{width:100%;max-width:none;height:100%;max-height:none}.app-shell.compact .world-stage .run-ready,.app-shell.compact .world-stage .runner-switch{bottom:8px}.game-shell .run-ready{max-width:calc(100% - 24px);min-height:0;padding:8px 12px;font-size:.8rem}.touch-enabled .touch-deck{border-top:1px solid var(--line);pointer-events:auto;background:#080f17;grid-template-rows:auto;grid-template-columns:auto 64px auto;justify-content:space-between;gap:4px;padding:4px;display:grid;position:static;inset:auto}.touch-enabled .touch-deck .dpad,.touch-enabled .touch-deck .touch-actions{--control-size:clamp(44px,var(--touch-size,56px),calc((100vw - var(--safe-left) - var(--safe-right) - 92px)/5));grid-row:1;align-self:center;gap:4px;height:auto}.touch-enabled .touch-deck .dpad{grid-column:1;grid-template-columns:repeat(3,var(--control-size));grid-template-rows:repeat(2,var(--control-size))}.touch-enabled .touch-deck .dpad .up{grid-area:1/2}.touch-enabled .touch-deck .dpad .down{grid-area:2/2}.touch-enabled .touch-deck .dpad .left{grid-area:1/1/3}.touch-enabled .touch-deck .dpad .right{grid-area:1/3/3}.touch-enabled .touch-deck .touch-actions{grid-column:3;grid-template-columns:repeat(2,var(--control-size));grid-template-rows:repeat(2,var(--control-size))}.touch-enabled .touch-deck .touch-button,.touch-enabled .touch-deck .touch-actions .dig{border-radius:.5rem;height:auto;min-height:44px;padding:2px;font-size:.8rem}.touch-enabled .touch-deck .touch-utilities{flex-direction:column;grid-area:1/2;align-self:center;align-items:center;gap:1px;min-width:0;display:flex}.touch-enabled .touch-deck .touch-utilities .touch-button{width:64px;min-width:64px;height:44px;min-height:44px;padding:2px;font-size:.65rem}.route-map{aspect-ratio:7/4;border:1px solid var(--line);width:64px;height:auto;image-rendering:pixelated;display:block}.map-hint{white-space:nowrap;min-height:12px;color:var(--cyan);font-size:9px;display:block}.game-shell[data-view=overview] .route-map{visibility:hidden}.touch-enabled .left-handed .touch-deck .dpad{grid-column:3}.touch-enabled .left-handed .touch-deck .touch-actions{grid-column:1;justify-self:start}.app-shell.compact:not(.touch-enabled) .touch-deck{border:0;border-top:1px solid var(--line);background:#080f17;border-radius:0;grid-template-rows:60px;grid-template-columns:minmax(0,1fr) minmax(240px,420px);justify-content:space-between;align-items:center;gap:16px;width:100%;max-width:none;min-height:0;padding:4px 12px;display:grid;position:static;inset:auto}.app-shell.compact:not(.touch-enabled) .touch-deck .dpad,.app-shell.compact:not(.touch-enabled) .touch-actions .touch-button:not(.context-action){display:none}.app-shell.compact:not(.touch-enabled) .touch-utilities{flex-direction:row;grid-area:1/1;justify-content:space-between;align-items:center;gap:6px;min-width:0;display:flex}.app-shell.compact:not(.touch-enabled) .touch-deck .touch-actions{order:initial;grid-area:1/2;grid-template-rows:60px;grid-template-columns:repeat(3,minmax(0,1fr));justify-self:stretch;gap:4px;min-width:0;height:60px;display:grid}.app-shell.compact:not(.touch-enabled) .touch-deck .context-action{width:100%;min-width:0;height:60px;min-height:44px;padding:3px 3px 1px;font-size:.8rem}.app-shell.compact:not(.touch-enabled) .touch-deck .action-binding{display:block}.app-shell.compact:not(.touch-enabled) .route-map{width:84px}.app-shell.compact:not(.touch-enabled) .map-hint{font-size:12px}.app-shell.compact:not(.touch-enabled) .touch-utilities button{width:56px;min-width:56px;height:44px;min-height:44px;padding:2px;font-size:.75rem}.app-shell.compact:not(.touch-enabled) .game-shell[data-view=overview] .route-map{display:none}@media (orientation:landscape) and (max-height:600px){.touch-enabled .touch-deck .dpad,.touch-enabled .touch-deck .touch-actions{--control-size:clamp(44px,var(--touch-size,52px),52px)}.touch-enabled .touch-deck{grid-template-columns:auto minmax(64px,1fr) auto}.touch-enabled .touch-deck .touch-utilities{flex-direction:row;justify-content:center;gap:8px}.touch-enabled .route-map{width:112px}.touch-enabled .map-hint{white-space:normal;max-width:64px;font-size:10px}}@media (orientation:portrait){.touch-enabled [data-portrait-preset=classic] .touch-deck .dpad{grid-template-rows:repeat(3,var(--control-size))}.touch-enabled [data-portrait-preset=classic] .touch-deck .dpad .left,.touch-enabled [data-portrait-preset=classic] .touch-deck .dpad .right{grid-row:2}.touch-enabled [data-portrait-preset=classic] .touch-deck .dpad .down{grid-row:3}}@media (orientation:landscape){.touch-enabled [data-landscape-preset=classic] .touch-deck .dpad{grid-template-rows:repeat(3,var(--control-size))}.touch-enabled [data-landscape-preset=classic] .touch-deck .dpad .left,.touch-enabled [data-landscape-preset=classic] .touch-deck .dpad .right{grid-row:2}.touch-enabled [data-landscape-preset=classic] .touch-deck .dpad .down{grid-row:3}}@media (max-width:360px){.game-shell .hud{grid-template-columns:minmax(0,.55fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1.4fr) auto;gap:0 4px;padding:2px 4px}.game-shell .hud-item strong{font-size:.78rem}.game-shell .held-copy strong{font-size:.65rem}}.app-shell.compact .game-shell,.app-shell.compact .game-shell>*{min-width:0}.stick-neutral{display:none}.touch-enabled [data-touch-preset=compact] .dpad{background:radial-gradient(ellipse at center,transparent 0 12%,rgba(62,100,108,var(--touch-opacity,.78)) 13% 14%,rgba(20,39,49,var(--touch-opacity,.78)) 15% 57%,rgba(38,62,71,var(--touch-opacity,.78)) 58% 60%,transparent 61%);border-radius:45%;position:relative}.touch-enabled [data-touch-preset=compact] .dpad .touch-button{background:0 0;border-color:#0000;border-radius:1.4rem}.touch-enabled [data-touch-preset=compact] .dpad .touch-button.pressed{border-color:var(--cyan);background:#315660}.touch-enabled [data-touch-preset=compact] .stick-neutral{border:2px solid var(--cyan);width:14px;height:14px;transform:translate(var(--stick-x,0px),var(--stick-y,0px));pointer-events:none;background:#192c34;border-radius:50%;margin:-7px;display:block;position:absolute;top:50%;left:50%}.touch-enabled [data-touch-preset] .touch-deck{padding-inline:calc(4px + var(--touch-inset,0px));padding-bottom:calc(4px + var(--touch-lift,0px))}.touch-enabled [data-touch-preset] .touch-deck .dpad,.touch-enabled [data-touch-preset] .touch-deck .touch-actions{--control-size:clamp(44px,var(--touch-size,56px),calc((100vw - var(--safe-left) - var(--safe-right) - 92px - 2*var(--touch-inset,0px))/5))}.touch-enabled [data-touch-preset=classic] .touch-deck .dpad{grid-template-rows:repeat(3,var(--control-size))}.touch-enabled [data-touch-preset=classic] .touch-deck .dpad .left,.touch-enabled [data-touch-preset=classic] .touch-deck .dpad .right{grid-row:2}.touch-enabled [data-touch-preset=classic] .touch-deck .dpad .down{grid-row:3}.touch-enabled [data-touch-preset=compact] .touch-deck .dpad,.touch-enabled [data-touch-preset=precision] .touch-deck .dpad{grid-template-rows:repeat(2,var(--control-size))}.touch-enabled [data-touch-preset=compact] .touch-deck .dpad .left,.touch-enabled [data-touch-preset=compact] .touch-deck .dpad .right,.touch-enabled [data-touch-preset=precision] .touch-deck .dpad .left,.touch-enabled [data-touch-preset=precision] .touch-deck .dpad .right{grid-row:1/3}.touch-enabled [data-touch-preset=compact] .touch-deck .dpad .down,.touch-enabled [data-touch-preset=precision] .touch-deck .dpad .down{grid-row:2}.touch-deck .dig[data-legal=true]{border-color:var(--amber);color:#ffd99b}.touch-deck .dig[data-legal=false]{color:var(--muted)}.touch-preview-panel{grid-column:1/-1;min-width:0}.touch-preview{margin-top:1rem;overflow:auto}.touch-preview-stage{--preview-width:600px;min-width:320px;max-width:600px;margin:auto}.touch-preview .touch-deck{min-height:110px;grid-template-columns:auto 64px auto!important}.touch-preview .touch-utilities{flex-direction:column!important}.touch-preview .route-map{width:64px!important}.touch-preview .map-hint{font-size:9px!important}[data-menu-input=gamepad] :focus{outline:3px solid var(--cyan);outline-offset:3px}@media (orientation:landscape) and (max-height:600px){.touch-enabled [data-touch-preset] .touch-deck .dpad,.touch-enabled [data-touch-preset] .touch-deck .touch-actions{--control-size:clamp(44px,var(--touch-size,52px),52px)}}.touch-enabled [data-touch-preset] .touch-deck{--dock-gap:clamp(0px,calc((var(--dock-width,100vw) - 2*var(--touch-inset,0px) - 312px)/12),4px);gap:var(--dock-gap);padding-inline:calc(2px + var(--touch-inset,0px));grid-template-columns:auto minmax(44px,1fr) auto}.touch-enabled [data-touch-preset] .touch-deck .dpad,.touch-enabled [data-touch-preset] .touch-deck .touch-actions{--control-size:clamp(44px,var(--touch-size,56px),calc((var(--dock-width,100vw) - 2*var(--touch-inset,0px) - 48px - 6*var(--dock-gap))/6));gap:var(--dock-gap)}.touch-enabled [data-touch-preset] .touch-deck .touch-actions{grid-template-columns:repeat(3,var(--control-size));grid-template-rows:repeat(2,var(--control-size))}.touch-enabled [data-touch-preset] .touch-utilities .touch-button{white-space:normal;width:44px;min-width:44px;max-width:100%;font-size:.7rem;line-height:1.15}.touch-enabled [data-touch-preset] .route-map{max-width:100%}.touch-enabled [data-touch-preset] .map-hint{white-space:normal;text-align:center;max-width:100%;line-height:1}.touch-enabled [data-touch-preset] [data-input=interact]{font-size:.66rem}[data-input=interact][data-available=true]{border-color:var(--cyan);color:#aeeced;background:rgba(24,57,64,var(--touch-opacity,.78))}.touch-preview .touch-deck{grid-template-columns:auto minmax(44px,1fr) auto!important}.mission-brief{border:1px solid var(--line);background:#10212c;border-radius:6px;padding:10px;font-size:.85rem}.mission-brief h3{color:var(--cyan);margin:0}.mission-brief p{margin:.4rem 0}.mission-brief ol{margin:.5rem 0;padding-left:1.2rem}.mission-brief li.complete{color:#b3d9b9;text-decoration:line-through}@media (orientation:landscape) and (max-height:600px){.touch-enabled [data-touch-preset] .touch-deck .dpad,.touch-enabled [data-touch-preset] .touch-deck .touch-actions{--control-size:clamp(44px,var(--touch-size,52px),52px)}}.game-shell .hud-item small{white-space:nowrap;text-overflow:ellipsis;max-width:100%;overflow:hidden}@media (orientation:landscape) and (max-height:600px){.app-shell.compact.touch-enabled .touch-deck{z-index:12;inset:auto var(--safe-right) var(--safe-bottom) var(--safe-left);min-height:0;padding:4px calc(2px + var(--touch-inset,0px)) calc(4px + var(--touch-lift,0px));pointer-events:none;background:0 0;border:0;grid-template-columns:auto minmax(44px,1fr) auto;align-items:end;display:grid;position:absolute}.app-shell.compact.touch-enabled .touch-deck button{pointer-events:auto}.app-shell.compact.touch-enabled .touch-deck .touch-utilities{border:1px solid var(--line);pointer-events:auto;background:#080f17db;border-radius:4px;flex-direction:row;grid-area:1/2;place-self:end center;gap:4px;padding:2px;position:static}.app-shell.compact.touch-enabled .touch-deck .route-map{width:80px;min-width:0}.app-shell.compact.touch-enabled .game-shell[data-view=follow] .touch-deck .map-hint,.app-shell.compact.touch-enabled .game-shell[data-view=overview] .touch-deck .route-map{display:none}.app-shell.compact.touch-enabled .world-stage{margin:0;padding:0}.app-shell.compact.touch-enabled .world-stage #phaser-world{inset:0 0 calc(56px + var(--touch-lift,0px));width:100%;height:auto}.app-shell.compact.touch-enabled .world-stage .run-ready{top:4px;bottom:auto}.app-shell.compact.touch-enabled .world-stage .runner-switch{bottom:62px}}.credits-list{align-content:start}.credits-list>button{justify-self:start}.object-label-layer{z-index:2;pointer-events:none;-webkit-user-select:none;user-select:none;contain:layout style;position:absolute;inset:0;overflow:hidden}.object-label-layer[hidden],.object-label-layer [hidden]{display:none!important}.object-name,.object-tooltip{color:#e6edf0;letter-spacing:0;text-transform:none;pointer-events:none;background:#081219e0;border:1px solid #a0bfc359;margin:0;line-height:1.3;position:absolute;top:0;left:0;box-shadow:0 1px 3px #0005}.object-name{white-space:nowrap;text-overflow:ellipsis;border-radius:4px;max-width:156px;padding:2px 6px;font-size:11px;font-weight:500;overflow:hidden}.object-tooltip{background:#081219f5;border-color:#a0bfc38c;border-radius:5px;width:max-content;max-width:248px;padding:6px 8px;font-size:11px}.object-tooltip strong{color:#b9e1e4;overflow-wrap:anywhere;margin-bottom:2px;font-size:12px;font-weight:650;display:block}.object-tooltip>span{overflow-wrap:anywhere;display:block}.object-labels-large .object-name,.object-labels-large .object-tooltip{font-size:13px}.object-labels-large .object-name{max-width:184px}.object-labels-large .object-tooltip strong{font-size:14px}.object-labels-contrast .object-name,.object-labels-contrast .object-tooltip{color:#fff;background:#071018;border-color:#d0e8ec}.object-labels-contrast .object-tooltip strong{color:#fff}.touch-deck .context-action{max-width:100%;color:var(--muted);border-color:var(--line);background:rgba(20,32,42,var(--touch-opacity,.78));place-content:center;justify-items:center;gap:1px;line-height:1.1;display:grid;position:relative;overflow:hidden}.touch-deck .context-action .action-verb{white-space:normal;overflow-wrap:anywhere;max-width:100%;padding-bottom:2px;line-height:1.2;display:block;overflow:hidden}.touch-deck .context-action .action-binding{text-overflow:ellipsis;white-space:nowrap;max-width:100%;height:calc(1.2em + 2px);color:inherit;padding-bottom:2px;font-size:.625rem;font-weight:650;line-height:1.2;display:none;overflow:hidden}.touch-enabled [data-touch-preset] .touch-deck .context-action{width:var(--control-size);height:var(--control-size);letter-spacing:-.015em;min-width:44px;min-height:44px;padding:9px 1px 3px;font-size:.625rem}.touch-deck .context-action:after{content:"✓";visibility:hidden;pointer-events:none;font-size:10px;font-weight:800;line-height:1;position:absolute;top:2px;right:3px}.touch-deck .context-action[data-available=true]{border-color:var(--cyan);background:rgba(23,59,66,var(--touch-opacity,.78));color:#cef4f5;box-shadow:inset 0 0 0 1px #79cfd940}.touch-deck .context-action[data-available=true]:after{visibility:visible}.touch-deck .context-action[data-input=use][data-available=true],.touch-deck .context-action[data-input=drop][data-available=true]{border-color:var(--amber);background:rgba(59,44,29,var(--touch-opacity,.78));color:#ffe0b1;box-shadow:inset 0 0 0 1px #f4b35e40}.large-text .touch-enabled [data-touch-preset] .touch-deck .context-action{font-size:clamp(.625rem,calc(var(--control-size)*.232),.69rem);letter-spacing:-.025em}.large-text .app-shell.compact:not(.touch-enabled) .touch-deck .context-action{font-size:.9rem}.large-text .touch-deck .context-action .action-binding{font-size:.6875rem}.high-contrast .touch-deck .context-action{color:#e5edf4;background:#071018;border-color:#98aebc}.high-contrast .touch-deck .context-action[data-available=true]{border-color:var(--cyan);color:var(--cyan);box-shadow:inset 0 0 0 1px var(--cyan);background:#102e36}.high-contrast .touch-deck .context-action[data-input=use][data-available=true],.high-contrast .touch-deck .context-action[data-input=drop][data-available=true]{border-color:var(--amber);color:var(--amber);box-shadow:inset 0 0 0 1px var(--amber);background:#302313}.touch-deck .touch-actions .context-action.pressed[data-input],.touch-deck .touch-actions .context-action:active[data-input]{color:#fff3dc;background:#775735;border-color:#ffda91;transform:translateY(1px);box-shadow:inset 0 2px 6px #0007,0 0 0 2px #f4b35e44}.map-preview{aspect-ratio:7/4;background:#0b131d;place-items:center;width:100%;margin:0;display:grid;position:relative;overflow:hidden}.map-preview img{aspect-ratio:7/4;object-fit:contain;width:100%;height:100%;display:block}.map-preview figcaption{text-align:center;color:var(--muted);padding:1rem;font-size:.85rem}.map-preview img[hidden],.map-preview figcaption[hidden]{display:none}.detail-hero{background:#10202c;grid-template-columns:minmax(0,1.4fr) minmax(18rem,1fr);align-items:start;min-height:0;display:grid}.detail-hero:after{display:none}.detail-hero>.map-preview{align-self:center}.detail-copy{min-width:0;padding:clamp(1.2rem,2.5vw,2.4rem)}.detail-copy h1{overflow-wrap:anywhere;font-size:clamp(2rem,3.6vw,3.7rem);line-height:1.04}.entry-map-preview .map-preview{border:1px solid var(--line);border-radius:.3rem;flex:0 0 7rem;width:7rem;height:auto}.entry-map-preview .map-preview img{border:0;border-radius:0;width:100%;height:auto}@media (max-width:900px){.detail-hero{grid-template-columns:minmax(0,1fr)}.detail-copy{padding:1.2rem}.detail-copy h1{font-size:clamp(2rem,6vw,3rem)}}@media (max-width:440px){.entry-map-preview .map-preview{flex:none;width:min(100%,14rem)}.entry-map-preview .map-preview img:not([hidden]){display:block}}.touch-utilities .runner-switch{min-width:64px;min-height:44px;padding:4px;font-size:.72rem;position:static;inset:auto;transform:none}.touch-enabled .touch-utilities .runner-switch{width:44px;min-width:44px;max-width:100%;padding:2px;font-size:.6rem;line-height:1.15}.app-shell.compact:not(.touch-enabled) .touch-utilities .runner-switch{width:auto;max-width:150px}.game-shell .hud-item .deadline{color:var(--cyan);text-transform:none;letter-spacing:0;white-space:nowrap;font-size:.67rem}.game-shell .hud-item .deadline[data-urgent=true]{color:#ffc978;font-weight:800}#result-title:focus{outline:2px solid var(--cyan);outline-offset:4px}.game-shell #hud-route[data-recovery=true]{white-space:normal;color:var(--amber);font-size:.76rem;line-height:1.1}@media (orientation:landscape) and (max-height:600px){.app-shell.compact.touch-enabled .touch-deck{border-top:1px solid var(--line);pointer-events:auto;background:#080f17;position:static;inset:auto}.app-shell.compact.touch-enabled .world-stage #phaser-world{width:100%;height:100%;inset:0}}
