:root{color-scheme:dark;font-family:Inter,Arial,sans-serif;background:#080f1b;color:#f1f7ff}*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer;font:inherit;border:1px solid #ffffff24;color:inherit;background:#ffffff09;border-radius:8px;padding:10px 16px}button:hover{background:#ffffff1c}button:focus-visible{outline:3px solid #51edd0;outline-offset:3px}[hidden]{display:none!important}#shell{max-width:1600px;margin:auto;padding:0 32px}header{height:88px;display:flex;align-items:center;justify-content:space-between}.brand{font-weight:950;font-size:27px;letter-spacing:4px;color:white;text-decoration:none;display:flex;align-items:center;gap:24px}.brand span{font-size:12px;letter-spacing:2px;color:#8a9bac;border-left:1px solid #334052;padding-left:24px}.header-right{display:flex;align-items:center;gap:12px}.edition{font-size:12px;letter-spacing:1.3px;color:#92a2b4;margin-right:12px}#stage{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;border-radius:16px;background:#102c40;border:1px solid #32485c;box-shadow:0 24px 80px #0006}canvas{display:block;width:100%;height:100%}.overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;background:linear-gradient(90deg,#081423ec,#091b30d8 60%,#09243bc4);text-align:center;padding:25px;overflow:auto}.eyebrow{font-size:12px;letter-spacing:2.6px;color:#51e4c2;font-weight:700}h1{font-size:clamp(28px,4.1vw,62px);letter-spacing:-2px;line-height:1.04;margin:18px 0}h1 em{font-style:normal;color:#53e7c9}.intro{font-size:15px;line-height:1.6;color:#b5c7d7;margin:0 0 22px}#characters{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;width:min(650px,100%);margin-bottom:20px}.char{padding:0;position:relative;overflow:hidden;background:#152b3cd9;border:1px solid #4b5d6e;width:100%;border-radius:10px}.char.selected{border:2px solid #56e7c9;background:#20443d;box-shadow:0 0 25px #43debd1a}.portrait{height:105px;background-size:400% auto;background-repeat:no-repeat;background-position-y:43%;position:relative}.char strong{display:block;padding:10px;font-size:15px;border-top:1px solid #ffffff12}.char small{position:absolute;top:7px;right:8px;color:#54efc9}.primary{background:#52e8c7;color:#07281f;font-weight:850;font-size:14px;letter-spacing:1px;padding:16px 28px;border:none;min-width:260px;box-shadow:0 5px 0 #238573}.primary:hover{background:#85f8dc}.primary span{margin-left:32px}.menu-note{font-size:12px;color:#7f98ac;margin:18px 0 0}footer{display:flex;justify-content:space-between;gap:16px;font-size:12px;color:#8c9bb1;padding:20px 0}kbd{font:10px Arial;padding:4px 6px;border:1px solid #394559;border-radius:4px;color:#cfdae7;margin:0 4px 0 8px}#hud{position:absolute;top:22px;left:25px;right:25px;display:flex;justify-content:space-between;align-items:flex-start;pointer-events:none;text-shadow:0 2px 8px #000}#hud b{display:block;font-size:19px}#hud span{font-size:12px;color:#c7e4ed}#health{display:block!important;color:#57efc9!important;font-size:22px!important;letter-spacing:3px}#mission{font-size:12px;font-weight:700;letter-spacing:2px;background:#061725bf;border:1px solid #ffffff30;padding:10px 20px;border-radius:20px}#toast{position:absolute;top:100px;left:50%;transform:translateX(-50%);font-size:14px;background:#071b2bec;color:#fff;padding:12px 22px;border:1px solid #53e6c578;border-radius:9px;max-width:80%;text-align:center;opacity:0;transition:opacity .2s;pointer-events:none}#weaponbar{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);display:flex;gap:6px}#weaponbar button{font-size:11px;padding:9px 12px;background:#071727d9;white-space:nowrap}#weaponbar button.active{border-color:#53e9c8;color:#53e9c8}#touch{display:none;position:absolute;bottom:20px;left:18px;right:18px;justify-content:space-between;pointer-events:none}#touch button{touch-action:none;user-select:none;pointer-events:auto;background:#081c34ad;border:1px solid #ffffff55;height:56px;min-width:56px;font-size:14px;font-weight:800;border-radius:50%}.movement,.actions{display:flex;gap:10px}#end p{font-size:18px;color:#bccfdd;max-width:500px;line-height:1.5}#choose,#back{margin-top:20px}body.playing #menu{display:none}body:not(.playing) #pause{visibility:hidden}@media(pointer:coarse){body.playing #touch{display:flex}#weaponbar{bottom:87px}footer span:first-child{display:none}}@media(max-width:800px){#shell{padding:0 10px}header{height:65px}.brand{font-size:21px;gap:12px}.brand span{font-size:9px;padding-left:12px;letter-spacing:1px}.edition{display:none}.header-right{gap:5px}.header-right button{padding:8px;font-size:12px}#stage{min-height:570px;aspect-ratio:auto}h1{font-size:38px;letter-spacing:-1.5px}.eyebrow{font-size:10px;letter-spacing:1.3px}#characters{gap:6px}.portrait{height:95px;background-size:530% auto}.char strong{font-size:12px;padding:9px 2px}.intro{font-size:14px}.overlay{padding:18px}#hud{left:14px;right:14px;top:14px}#hud b{font-size:15px}#mission{font-size:9px;padding:8px 10px;letter-spacing:1px}#toast{top:80px;width:85%;max-width:85%;font-size:12px}#weaponbar button{padding:8px 6px;font-size:9px}footer{padding:14px 4px;font-size:11px}#touch{left:10px;right:10px}#touch button{height:52px;min-width:52px}.actions,.movement{gap:6px}}@media(max-height:600px) and (orientation:landscape){header{height:45px}#shell{padding:0 8px}#stage{height:calc(100dvh - 53px);min-height:0;aspect-ratio:auto}footer{display:none}.overlay{padding:12px}h1{font-size:30px;margin:8px 0}.intro{font-size:12px;margin-bottom:8px}.portrait{height:64px}#characters{max-width:440px;margin-bottom:10px}.char strong{padding:5px}.primary{padding:10px}.menu-note{margin:10px 0 0}.eyebrow{font-size:10px}#hud{top:10px}#toast{top:60px}#weaponbar{bottom:12px}#touch{bottom:12px}.brand span{font-size:10px}}
/* Mobile play surface: controls sit below the world, never on top of a landing. */
.phone-note{display:none}#touch .touch-settings{display:none}#touch button.held{background:#57e8c7;color:#09291f;transform:scale(.96);border-color:#b0ffe9}#fullscreen{font-size:20px;line-height:1;padding:9px 12px}canvas{touch-action:none}.movement{touch-action:none;user-select:none}.header-right button{min-height:40px}.overlay{z-index:5}#hud,#toast{z-index:2}#touch{z-index:3}#weaponbar{z-index:3}
@media(pointer:coarse){
 body{overscroll-behavior:none}#shell{padding:0 8px}header{height:58px}.edition,.brand span,footer{display:none}.brand{font-size:23px}.header-right{gap:5px}.header-right button{font-size:12px;padding:9px;min-height:40px}#fullscreen{font-size:21px}#stage{height:calc(100dvh - 66px);min-height:460px;aspect-ratio:auto;border-radius:12px}.phone-note{display:inline-block;margin-top:10px;color:#bad3e3;font-size:13px;line-height:1.5}
 body.playing canvas{height:calc(100% - 164px)}body.playing #touch{height:116px;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:27px 12px 8px;background:#091624;border-top:1px solid #263f51;pointer-events:auto}#touch .touch-settings{display:flex;position:absolute;top:5px;left:14px;right:14px;align-items:center;justify-content:space-between;gap:8px}#touch .touch-settings button{height:26px;min-width:0;border-radius:5px;padding:2px 8px;font-size:12px;color:#69eacb;border-color:#306253;background:#102e2a}#touch .touch-settings span{font-size:11px;color:#8ba6b9}
 #touch .movement{gap:3px;padding:4px;border:1px solid #345169;border-radius:20px;background:#122739}#touch .movement button{border:0;border-radius:15px;background:transparent;font-size:27px;min-width:62px;height:66px}#touch .actions{align-items:center;gap:9px}#touch .actions button{min-width:65px;height:65px;padding:0;border:2px solid #669087;background:#19374b;box-shadow:0 4px 0 #020b15;font-size:13px}#touch .actions [data-key="jump"]{min-width:76px;height:76px;background:#54e5c3;color:#072e27;border-color:#a2f7e3}#touch .actions #touchSwap{min-width:42px;width:42px;height:42px;font-size:10px;border-radius:10px;border-width:1px;box-shadow:none}
 #weaponbar{bottom:116px;left:0;right:0;transform:none;height:48px;display:flex;align-items:center;justify-content:center;background:#0b1b2a;border-top:1px solid #2c485a;gap:4px;padding:4px}#weaponbar button{font-size:12px;padding:8px 7px;min-height:37px;white-space:normal;line-height:1.1}#hud{top:12px;left:13px;right:13px}#hud b{font-size:17px}#hud span{font-size:12px}#health{font-size:24px!important;letter-spacing:1px}#mission{font-size:10px;padding:7px 8px;letter-spacing:.5px;max-width:120px;text-align:center}#toast{top:75px;font-size:14px;padding:10px 14px;max-width:90%;width:90%}
}
@media(pointer:coarse) and (max-width:390px){#touch{padding-left:7px!important;padding-right:7px!important}#touch .movement button{min-width:54px}#touch .actions{gap:6px}#touch .actions [data-key="jump"]{min-width:65px;height:70px}#touch .actions [data-key="fire"]{min-width:58px;height:58px}.header-right button{padding:7px}.brand{font-size:20px}#weaponbar button{font-size:10px}}
@media(pointer:coarse) and (orientation:landscape){
 header{height:42px}#stage{height:calc(100dvh - 48px);min-height:0}.header-right button{min-height:32px;padding:5px 9px}body.playing canvas{height:calc(100% - 82px)}body.playing #touch{height:82px;padding:3px 18px;align-items:center}#touch .touch-settings{left:190px;right:220px;top:47px;justify-content:center}#touch .touch-settings span{display:none}#touch .movement button{height:60px;min-width:68px}#touch .actions button{height:58px;min-width:58px}#touch .actions [data-key="jump"]{height:68px;min-width:76px}#weaponbar{bottom:38px;left:190px;right:220px;height:38px;border:0;background:transparent;padding:0}#weaponbar button{font-size:11px;min-height:32px;padding:5px 7px}#hud{top:8px}#health{font-size:20px!important}#hud b{font-size:15px}#mission{max-width:200px;font-size:11px}#toast{top:53px;width:auto;max-width:75%;font-size:12px}#menu h1{font-size:30px;margin:7px 0}#menu .intro{font-size:12px;margin-bottom:9px}#characters{max-width:440px;margin-bottom:9px}.portrait{height:62px}.char strong{padding:5px}#menu .primary{padding:10px}#menu .menu-note{margin-top:9px;font-size:11px}.phone-note{font-size:11px;margin-top:4px}#menu .eyebrow{font-size:10px}.overlay{padding:10px}#end h1,#paused h1{font-size:32px}#end p{font-size:15px;margin:8px 0 15px}
}
:fullscreen #shell{max-width:none} :fullscreen body{background:#080f1b}

@media(pointer:coarse){#weaponbar{overflow-x:auto;justify-content:safe center}#weaponbar button{flex:0 0 auto}}
#characters{grid-template-columns:repeat(6,1fr);width:min(850px,100%)}.char-move{display:block;min-height:30px;padding:0 5px 8px;font-size:11px;line-height:1.2;color:#b7cede}.char strong{padding:8px 3px 5px}.char .portrait{height:95px}#specialMove{position:absolute;z-index:3;bottom:70px;right:18px;min-height:54px;background:#493757ef;border:2px solid #ffdf87;box-shadow:0 0 16px #ffcd6530;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:7px 14px;gap:3px}#specialMove span{font-size:12px;color:#fff0c3}#specialMove b{font-size:14px;color:#ffe186}#specialMove:disabled{opacity:.7;cursor:default}
@media(pointer:coarse){#characters{grid-template-columns:repeat(3,1fr);max-width:480px;gap:7px}.char .portrait{height:80px}.char-move{font-size:10px;min-height:24px}.char strong{font-size:13px}#menu h1{font-size:32px;margin:10px 0}#menu .intro{font-size:12px;margin-bottom:12px}#menu .menu-note{margin-top:13px;font-size:11px}#specialMove{bottom:176px;right:12px;min-height:56px;max-width:170px}#specialMove span{font-size:12px}#specialMove b{font-size:14px}}
@media(pointer:coarse) and (orientation:landscape){#characters{grid-template-columns:repeat(6,1fr);max-width:760px;gap:7px}.char .portrait{height:52px}.char-move{font-size:10px;min-height:22px}.char strong{font-size:12px;padding:4px}#specialMove{bottom:94px;right:12px;min-height:48px;padding:5px 10px}#specialMove span{font-size:11px}#specialMove b{font-size:12px}}
@media(max-height:700px) and (orientation:portrait){#menu{justify-content:flex-start}#menu .phone-note{margin-top:4px}.char .portrait{height:60px}}

canvas.portrait{display:block;width:100%;background:none;touch-action:auto}

#bossScene{z-index:8;background:linear-gradient(125deg,#091421f5,#351b46f5)}#bossScene h2{margin:10px 0;font-size:28px}#consultantPortrait{width:150px;height:175px;object-fit:contain}#sceneText{font-size:21px;line-height:1.4;max-width:620px;min-height:62px;color:#ffe2f0;margin:15px 0}.scene-buttons{display:flex;align-items:center;gap:12px}#bossScene .eyebrow{color:#ffb5e1}@media(max-height:600px) and (orientation:landscape){#bossScene{display:grid;grid-template-columns:160px 1fr;align-content:center;gap:8px 20px;padding:15px 35px}#bossScene .eyebrow,#bossScene h2{grid-column:2;margin:0}#bossScene h2{font-size:22px}#consultantPortrait{grid-column:1;grid-row:1/5;width:145px;height:180px}#sceneText{grid-column:2;font-size:17px;min-height:0;margin:6px 0}.scene-buttons{grid-column:2}.scene-buttons .primary{min-width:180px}}@media(max-width:600px) and (orientation:portrait){#bossScene h2{font-size:22px}#sceneText{font-size:18px}.scene-buttons{flex-direction:column;gap:10px}#bossScene .eyebrow{font-size:10px}}
/* A scrollable finish screen keeps the form usable in phone landscape. */
#end{justify-content:flex-start;padding:24px 16px 40px}#end>h1{flex-shrink:0}#end>button{flex-shrink:0;margin-top:16px}#leaderboardPanel{width:min(860px,100%);text-align:left;border:1px solid #355465;border-radius:14px;padding:22px;background:#081b2bf5;margin:12px 0;flex-shrink:0}#end #leaderboardPanel p{max-width:none;font-size:14px;line-height:1.5;margin:12px 0}.board-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.board-heading h2,.board-heading h3{margin:0;font-size:22px}.board-heading span{font-size:14px;color:#80a5b9}.entry-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:20px 0 14px}.entry-grid label,.announce-label{font-size:16px;font-weight:bold;display:flex;flex-direction:column;gap:7px}.entry-grid small{font-weight:normal;font-size:14px;color:#67e5c4}input,select{width:100%;font:inherit;font-size:16px;background:#112c3d;color:#fff;border:1px solid #537485;border-radius:7px;padding:12px;min-height:46px}input:focus,select:focus{outline:2px solid #53e7c9;outline-offset:2px}.announce-label{max-width:420px}.entry-consent{display:flex;gap:12px;font-size:14px;line-height:1.5;margin:14px 0}.entry-consent input{width:22px;height:22px;min-height:22px;flex:0 0 22px;accent-color:#52e8c7}.privacy-note{background:#133b3b;padding:14px;border-radius:8px}.privacy-note strong{display:block;color:#91f6db}#leaderboardPanel a{color:#83f0d3}#end #runResult{color:#ffe29b;font-size:17px;font-weight:bold}.ranking-rules{font-size:14px;line-height:1.5;border-block:1px solid #355465;padding:15px 0;margin:18px 0}summary{cursor:pointer;font-weight:bold}.board-scroll{overflow:auto;width:100%}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:12px 10px;border-bottom:1px solid #294554;white-space:nowrap}th{color:#82b2c4}td:nth-child(2){white-space:normal;min-width:120px;overflow-wrap:anywhere}tbody tr:first-child{color:#ffe29b;background:#ffe29b08}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}button:disabled{opacity:.55;cursor:wait}#entrySubmit{min-width:0;width:100%;margin-top:8px}#entryStatus{color:#8cedd4!important}#end .entry-help{font-size:14px}#leaderboardPanel h3{font-size:19px}@media(max-width:600px){.entry-grid{grid-template-columns:1fr}#leaderboardPanel{padding:16px}.board-heading{align-items:flex-start;flex-wrap:wrap}#end{padding:18px 10px 32px}.board-heading h2{font-size:22px}}@media(max-height:600px) and (orientation:landscape){#end{padding-top:16px}#end #leaderboardPanel p{font-size:14px}}
#meetingRoom{z-index:12;background:#101225f5;justify-content:flex-start;padding:20px}.meeting-card{width:min(700px,100%);margin:auto;background:#23233c;border:1px solid #7470a5;border-radius:14px;padding:24px}.meeting-top{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:#b9b5e5}.meeting-top b{font-size:20px;font-variant-numeric:tabular-nums;color:#ffce86}#meetingTitle{font-size:clamp(25px,4vw,38px);margin:16px 0 8px}.meeting-duration{color:#c3bfdc;font-size:14px}.meeting-duration strong{color:#ffcb86}.meeting-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:20px 0}.meeting-tiles>div{background:#32324f;border-radius:8px;padding:18px 8px;display:flex;flex-direction:column;align-items:center;gap:12px}.meeting-tiles b{background:#645c9d;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;font-size:20px}.meeting-tiles span{font-size:12px;color:#d0cce4}#meetingQuote{font-size:20px;min-height:28px;color:#ffdd9d}.meeting-prompt{font-size:18px;line-height:1.45;font-weight:700}#meetingCountdown{font-size:16px;color:#f5aeb3}#leaveMeeting{min-height:56px;background:#d7354b;color:white;font-size:18px;font-weight:800;border:1px solid #ff9aaa;min-width:220px}#leaveMeeting:hover{background:#ef455c}.meeting-key{font-size:12px;color:#c1bed8;line-height:1.6}.in-meeting #touch,.in-meeting #specialMove,.in-meeting #weaponbar{visibility:hidden}@media(max-height:600px) and (orientation:landscape){#meetingRoom{padding:10px}.meeting-card{padding:14px 20px}.meeting-tiles{display:none}#meetingTitle{font-size:25px;margin:8px}.meeting-duration{margin:6px}#meetingQuote{margin:10px;font-size:17px}.meeting-prompt{font-size:16px;margin:8px}.meeting-key{margin:8px}#meetingCountdown{margin:8px}#leaveMeeting{min-height:48px}}
