:root{color-scheme:light;--cream:#f5e5cd;--paper:#fff8ed;--petrol:#16424c;--copper:#b87845;--rust:#a64d33;--gold:#f1b842;--ink:#412c25;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-synthesis:none;background:#eee0cd;color:var(--ink)}
*{box-sizing:border-box}body{margin:0;min-width:320px;background:radial-gradient(ellipse at 48% 10%,#fffcf5 0,#f4e8d6 55%,#d7bda0 100%);min-height:100dvh}button,input,select{font:inherit}button{cursor:pointer;border:0}button:disabled{cursor:default;opacity:.48}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #08a7ac;outline-offset:4px}button,a,input{-webkit-tap-highlight-color:transparent}button{touch-action:manipulation}button svg{width:20px;height:20px;display:block}a{color:inherit}img{max-width:100%;user-select:none;-webkit-user-drag:none}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.1}p{line-height:1.55}button:active:not(:disabled){transform:translateY(1px)}[hidden]{display:none!important}.boot{display:grid;place-items:center;align-content:center;min-height:100dvh;gap:20px}.spinner{width:36px;height:36px;border:3px solid #cead8a;border-top-color:var(--rust);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
#app{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:14px 22px}.overline{font-size:10px;font-weight:750;letter-spacing:2px;text-transform:uppercase}.page-masthead{max-width:1260px;width:100%;display:flex;align-items:center;justify-content:space-between;padding:0 8px 10px;color:#8d5b3b}.wordmark{font-size:21px;font-weight:950;letter-spacing:-1px;color:#7c341f;text-decoration:none}.uat{font-size:9px;font-weight:800;letter-spacing:1.7px;border:1px solid #b9916f;border-radius:5px;padding:4px 7px;margin-left:10px;vertical-align:middle}.shell{width:min(100%,1260px);position:relative;padding:12px;border:2px solid #ac896c;border-radius:27px;background:linear-gradient(110deg,#fff8ea 0%,#e7d1b5 28%,#fff6e6 51%,#dfc5a6 100%);box-shadow:0 2px 0 #fff9ed inset,0 0 0 3px #ecdbc6,0 0 0 4px #baa18b,0 16px 28px #70523635,0 4px 0 #9e7c5d;overflow:hidden}.shell:before,.shell:after{content:'✣';position:absolute;width:19px;height:19px;border-radius:50%;background:radial-gradient(circle at 35% 20%,#f8d292,#be7c3f 44%,#75461f 56%,#edc182 67%,#7f4b27 81%);color:#533016;text-align:center;font-size:14px;line-height:18px;box-shadow:0 0 0 2px #ead9bf;z-index:5;bottom:12px}.shell:before{left:12px}.shell:after{right:12px}.hardware-strip{height:17px;display:flex;align-items:center;padding:0 9px 9px;gap:6px}.led{width:8px;height:8px;border-radius:50%;background:radial-gradient(circle at 30% 25%,#ffb0a8,#dc332a 70%);box-shadow:0 1px 2px #775140}.led:nth-child(2){background:radial-gradient(circle at 30% 25%,#fff4b0,#e6aa18 70%)}.led:nth-child(3){background:radial-gradient(circle at 30% 25%,#9afca4,#249751 70%)}.strip-label{margin-left:auto;font-size:8px;letter-spacing:2px;color:#7a563b}.topbar{display:grid;grid-template-columns:184px minmax(0,1fr) 148px;gap:10px;align-items:stretch;margin-bottom:10px}.brand-plate{padding:4px 8px;border:1px solid #b89b7c;border-radius:15px;background:linear-gradient(#fff7e9,#ebd7bc);box-shadow:inset 0 0 0 2px #fff7e8,0 2px 3px #80634030;display:flex;align-items:center;justify-content:center}.brand-plate img{height:auto;width:166px;mix-blend-mode:multiply;display:block}.campaign-strip{display:flex;align-items:center;justify-content:space-around;gap:3px;padding:9px 12px 7px;background:linear-gradient(145deg,#245966,#10323b);border:3px solid #a1886b;border-radius:17px;box-shadow:inset 0 0 0 2px #77a2a455,inset 0 3px 8px #051c23;color:#fff6d8;position:relative}.campaign-strip:before{content:'';position:absolute;left:35px;right:35px;height:2px;top:36px;background:#c79f65}.planet-item{background:transparent;color:inherit;padding:0;min-width:42px;display:grid;place-items:center;gap:5px;position:relative;z-index:1}.planet-item span:last-child{font-size:8px;text-transform:uppercase;letter-spacing:1px;font-weight:800}.planet-ball{display:block;width:37px;height:37px;border:1px solid #e9be7b99;border-radius:50%;background-image:var(--planet);background-size:210% auto;background-position:center top;box-shadow:inset -9px -7px 9px #0008,0 2px 4px #001a22;position:relative}.planet-item.active .planet-ball{outline:2px solid #ffdc83;outline-offset:3px;box-shadow:0 0 15px #ffd36c80}.planet-item.locked .planet-ball{filter:saturate(.3);opacity:.65}.planet-lock{position:absolute;inset:0;display:grid;place-items:center;color:#fff;text-shadow:0 1px 3px #000;font-size:13px}.top-actions{border:1px solid #b99b7a;border-radius:13px;display:flex;align-items:center;justify-content:center;gap:9px;background:linear-gradient(#fdf2e1,#e8d2b5);box-shadow:inset 0 0 0 2px #fff7e8}.round{width:43px;height:43px;display:grid;place-items:center;border-radius:50%;background:radial-gradient(circle at 35% 20%,#dd9960,#ac502e 62%,#723421);color:#fff8e5;border:2px solid #fce5bc;box-shadow:0 0 0 2px #a7764d,0 3px 4px #67412670,inset 0 1px 1px #fff7c9}.round.small{width:35px;height:35px}.shell-foot{height:27px;display:flex;align-items:end;justify-content:center;font-size:9px;letter-spacing:5px;color:#89684e;position:relative}.shell-foot:after{content:'///////////';position:absolute;right:45px;font-size:14px;letter-spacing:2px;font-weight:bold;color:#70543f}.page-footer{display:flex;gap:16px;justify-content:center;align-items:center;max-width:1260px;width:100%;padding:12px 0 0;font-size:10px;color:#8c6c53}.page-footer button{color:inherit;background:transparent;padding:4px}.page-footer a{text-decoration:none}
.display{border:3px solid #9b8269;border-radius:20px;background:#080f20;box-shadow:0 0 0 2px #fff3dc,inset 0 0 0 3px #2c2b3c;overflow:hidden;position:relative;color:#fff4db}.primary,.secondary,.quiet{min-height:46px;padding:12px 24px;border-radius:12px;font-size:12px;font-weight:800;letter-spacing:.6px}.primary{background:linear-gradient(#cc8650,#a85532 53%,#8d4029);color:#fff4db;border:1px solid #f5d8a9;box-shadow:0 0 0 2px #925735,0 4px 0 #733b25,inset 0 1px 2px #fff1c180;text-shadow:0 1px 1px #592514}.primary:hover{filter:brightness(1.1)}.secondary{background:linear-gradient(#245a64,#143b44);color:#fff4dc;border:1px solid #648180;box-shadow:0 2px 0 #092e36,inset 0 1px 1px #ffffff25}.quiet{background:transparent;color:#886449;border:1px solid #bba48e}.light{color:#fff6dc;border-color:#c1b59c80}.danger{color:#9b322c}.button-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.muted{color:#b6bac6}.gold{color:#f5c775}.section-label{font-size:10px;letter-spacing:2px;color:#d8be8a;font-weight:750;text-transform:uppercase}
.home-display{min-height:560px;display:grid;grid-template-columns:1.05fr 1fr;background-image:linear-gradient(90deg,#070e1af7 0%,#0a1423b3 44%,#11182f05 75%),url('/assets/zephyr.webp');background-size:cover;background-position:center top;align-items:center;padding:38px 50px}.home-copy{position:relative;z-index:2;max-width:420px}.home-copy h1{font-size:43px;letter-spacing:-1.5px;max-width:400px;margin:16px 0 20px;color:#fff0d2;line-height:1.05}.home-copy h1 em{font-style:normal;color:#efb873}.home-copy p{color:#c7c7d0;font-size:14px;max-width:360px;margin-bottom:25px}.home-copy .button-row{gap:15px}.home-copy .secondary{font-size:11px}.home-meta{display:flex;gap:26px;margin-top:36px}.home-meta strong{display:block;font-size:23px;letter-spacing:-1px;color:#f3d19d}.home-meta span{font-size:9px;text-transform:uppercase;letter-spacing:1.5px;color:#c4b6a3}.home-art{height:100%;min-height:410px;position:relative;display:flex;align-items:end;justify-content:center}.home-cat{width:290px;position:absolute;bottom:15px;z-index:2;filter:drop-shadow(0 14px 12px #0007)}.home-ship{position:absolute;width:235px;right:-10px;top:40px;transform:rotate(-13deg);filter:drop-shadow(0 0 30px #f0ba7860)}.home-orb{position:absolute;width:65px;bottom:55px;left:10px;z-index:3;transform:rotate(-12deg)}.home-orb.second{left:auto;right:0;bottom:10px;width:48px}.home-deck{position:absolute;bottom:-38px;left:-60px;width:calc(100% + 130px);max-width:none}.pilot-stamp{position:absolute;left:0;top:40px;display:flex;gap:8px;align-items:center;font-size:9px;letter-spacing:2px;color:#e0c299}.pilot-stamp:before{content:'';width:6px;height:6px;background:#72d8ca;border-radius:50%;box-shadow:0 0 8px #67d8c4}.home-hint{margin-top:27px;font-size:10px;color:#b7b4ba;display:flex;gap:8px;align-items:center}
.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 258px;gap:12px;min-height:0}.game-screen{background-image:var(--bg);background-position:center top;background-size:cover;display:flex;justify-content:center;align-items:center;height:min(65dvh,680px);min-height:370px}.game-screen:before{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#09101b33,transparent 30%,transparent 70%,#09101b33)}.game-stage{height:100%;max-width:100%;aspect-ratio:24/25;position:relative;flex-shrink:0}.game-stage canvas{width:100%;height:100%;display:block;position:relative;z-index:2;touch-action:pan-y}.game-hud{position:absolute;left:10px;right:10px;top:10px;z-index:4;display:flex;align-items:start;justify-content:space-between;gap:5px;pointer-events:none}.hud-pill{border:1px solid #b6a0d56e;box-shadow:inset 0 1px 8px #8f73b330,0 3px 8px #0005;background:linear-gradient(135deg,#252740e8,#12172eea);border-radius:12px;padding:8px 13px;min-width:85px;color:#fff1ce}.hud-pill span{font-size:8px;font-weight:750;letter-spacing:1.1px;display:block}.hud-pill strong{font-size:20px;letter-spacing:.4px;line-height:1.25}.hud-pill.wave{text-align:center}.hud-pill.wave strong{font-size:14px;color:#f7d083}.hud-pill.descent{text-align:right}.hud-pill.descent strong{font-size:13px}.wave-dots{display:flex;justify-content:center;gap:5px;margin-top:5px}.wave-dots i{height:6px;width:6px;border-radius:50%;background:#685c64;border:1px solid #bfa581}.wave-dots i.on{background:#f4c05a;box-shadow:0 0 5px #ffca7966}.game-info{position:absolute;left:16px;top:85px;color:#ead4b4;font-size:9px;letter-spacing:2px;writing-mode:vertical-rl;z-index:2}.side-pipe{position:absolute;left:9px;top:125px;bottom:100px;width:5px;border:1px solid #946039;background:linear-gradient(90deg,#50331e,#e4bd78,#986231);border-radius:5px;box-shadow:2px 0 5px #0005}.side-pipe.right{left:auto;right:9px}.well-deck{position:absolute;width:100%;bottom:0;pointer-events:none;z-index:1;opacity:.85}.next-ammo{position:absolute;z-index:5;right:9%;bottom:4.2%;width:65px;min-height:65px;background:linear-gradient(#28263fcf,#0f1428e8);border:1px solid #d0b3969c;border-radius:12px;color:#fff0d5;padding:5px}.next-ammo span{display:block;font-size:7px;letter-spacing:1px;font-weight:800}.next-ammo img{width:34px;display:block;margin:3px auto 0}.next-ammo b{position:absolute;right:4px;bottom:4px;font-size:14px;color:#f2c886}.side-stack{display:flex;flex-direction:column;gap:10px;min-height:0}.ship-panel{background:linear-gradient(140deg,#245965,#0e303a);padding:18px 18px 13px;border:3px solid #9c8262;border-radius:17px;box-shadow:inset 0 0 0 2px #adc0b940,0 0 0 2px #fff3da;color:#f9edcf;position:relative;flex:1}.ship-panel:before,.pilot-panel:before{content:'✣';position:absolute;right:7px;top:6px;color:#d6b587;font-size:12px}.ship-panel h2{font-size:24px;text-transform:uppercase;letter-spacing:2px;text-align:center;margin:0 0 7px}.ship-portrait{height:155px;background-image:var(--bg);background-size:cover;background-position:center top;border:1px solid #729595;border-radius:12px;display:flex;align-items:center;justify-content:center;box-shadow:inset 0 0 20px #0008;overflow:hidden}.ship-portrait img{height:95%;width:95%;object-fit:contain;filter:drop-shadow(0 7px 8px #0007)}.ship-panel .people{text-align:center;font-size:9px;letter-spacing:2px;margin:12px 0 5px;text-transform:uppercase;color:#cbcec1}.ship-panel h3{text-align:center;font-size:20px;margin:0 0 12px;color:#ffdb9b;text-transform:uppercase;letter-spacing:.5px}.ship-panel p{font-size:11px;margin-bottom:12px;color:#e0e5de}.tactical{border-top:1px solid #9eb1a549;padding-top:10px;font-size:10px;line-height:1.5;color:#c6d5cf}.tactical b{display:block;color:#f2ce91;font-size:8px;letter-spacing:1.5px;margin-bottom:4px}.pilot-panel{height:139px;border:3px solid #a48a6d;border-radius:17px;background:linear-gradient(130deg,#194653,#0e2f37);color:#fff1d1;position:relative;overflow:hidden;box-shadow:0 0 0 2px #fff2d9;display:flex;align-items:center;padding:12px;gap:7px}.pilot-panel img{width:100px;height:129px;object-fit:contain;align-self:flex-end;transform:translateY(17px)}.pilot-panel .overline{font-size:8px;color:#b6c9c9}.pilot-panel strong{display:block;font-size:19px;letter-spacing:1px;margin-top:4px}.pilot-panel .stars{color:#f6c366;letter-spacing:4px;font-size:16px}.pilot-panel p{font-size:8px;letter-spacing:1.5px;margin:6px 0 0;color:#c9d7cd}.control-deck{display:flex;align-items:center;gap:17px;padding:9px 25px 1px;min-height:68px}.aim-text{font-size:8px;letter-spacing:1.2px;min-width:105px;line-height:1.6;color:#75593f}.aim-text strong{font-size:11px;display:block;color:#614631;letter-spacing:.2px}.slider-shell{height:48px;border:2px solid #bd9668;border-radius:30px;background:linear-gradient(#f9ebd3,#d5b48c);padding:5px 11px;box-shadow:inset 0 1px 2px #fff8e8,0 2px 3px #7b573c30;flex:1;max-width:530px;display:flex;align-items:center}.aim-slider{appearance:none;-webkit-appearance:none;width:100%;height:28px;background:linear-gradient(90deg,#57d5c5,#174553 52%,#0d242c);border:3px solid #8a9c91;border-radius:25px;box-shadow:inset 0 2px 5px #000c,0 0 0 2px #22454b;touch-action:none;margin:0;cursor:ew-resize}.aim-slider::-webkit-slider-thumb{appearance:none;width:42px;height:42px;border:3px solid #f6dfb9;border-radius:50%;background:radial-gradient(circle at 35% 20%,#ecb780,#b96937 55%,#804223);box-shadow:0 0 0 2px #8e5f38,0 2px 5px #0008}.aim-slider::-moz-range-thumb{width:36px;height:36px;border:3px solid #f6dfb9;border-radius:50%;background:radial-gradient(circle at 35% 20%,#ecb780,#b96937 55%,#804223);box-shadow:0 0 0 2px #8e5f38}.fire-button{min-height:42px;padding:8px 19px;font-size:11px}.game-extra{display:flex;align-items:center;gap:7px;margin-left:auto}.info-button{color:#755134;border:1px solid #b49979;background:#f7e8d1;width:39px;height:39px;border-radius:50%;font-weight:bold}
.map-display{padding:28px;background-color:#081426;background-image:linear-gradient(180deg,#061429b8,#07162740 45%,#06102566),url('/assets/nivora.webp');background-size:cover;background-position:center top;min-height:560px}.map-header{text-shadow:0 2px 8px #020917}.map-header{display:flex;align-items:start;justify-content:space-between;gap:15px;margin-bottom:28px}.map-header h1{font-size:29px;margin:7px 0 8px}.map-header p{font-size:12px;color:#bcbccb;margin:0}.difficulty-select{border:1px solid #9bb5b375;background:#173840;color:#fff0d1;border-radius:9px;padding:10px 14px;font-size:12px}.world-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.world-card{padding:16px;border:1px solid #a8c1b04a;border-radius:15px;background:linear-gradient(#243c46ab,#121e2ab3);position:relative}.world-card.locked{opacity:.58}.world-card .planet-ball{width:50px;height:50px;margin-bottom:12px}.world-card .world-no{position:absolute;right:14px;top:17px;color:#aec0c0;font-size:10px;letter-spacing:2px}.world-card h2{font-size:18px;margin:0 0 4px}.world-card p{font-size:10px;color:#c7c4c6;margin-bottom:14px}.wave-buttons{display:flex;gap:7px}.wave-buttons button{background:#244b51;color:#ffe4aa;border:1px solid #8d9b8680;min-height:42px;flex:1;border-radius:8px;font-size:11px}.wave-buttons button.finished{border-color:#d3a859}.wave-buttons button span{display:block;font-size:7px;letter-spacing:1px}.endless-card{display:flex;flex-direction:column;justify-content:center;background:linear-gradient(135deg,#67423366,#332e434d)}.endless-card h2{color:#f2d197}.endless-card button{margin-top:10px;padding:8px;font-size:10px}
dialog{border:2px solid #a88460;border-radius:23px;padding:0;width:min(550px,calc(100% - 28px));max-height:calc(100dvh - 30px);color:#3e3129;background:linear-gradient(130deg,#fff8eb,#eeddc4);box-shadow:0 0 0 4px #faebd477,0 25px 90px #0008;overflow:auto}dialog::backdrop{background:#050c1ccb;backdrop-filter:blur(5px)}.modal-inner{padding:28px}.modal-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.modal-top .overline{color:#936e4e}.close-modal{background:#e9d6ba;color:#74553d;border:1px solid #b99773;border-radius:50%;width:34px;height:34px;font-size:23px;line-height:25px}.modal-inner h2{font-size:28px;letter-spacing:-.8px;margin-bottom:13px}.modal-inner p{font-size:13px;color:#725f4e}.modal-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}.modal-actions>*{flex:1}.intro-inner{padding:0;background:#0b1625;color:#fff0d4;overflow:hidden;border-radius:21px}.intro-art{height:320px;position:relative;background-image:var(--bg);background-position:center top;background-size:cover;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:25px}.intro-ship{width:68%;height:85%;object-fit:contain;filter:drop-shadow(0 8px 15px #0008);margin-left:50px}.intro-cat{position:absolute;left:12px;bottom:-3px;width:135px;height:155px;object-fit:contain;filter:drop-shadow(0 2px 8px #0006)}.intro-art .close-modal{position:absolute;right:12px;top:12px;z-index:3}.intro-content{padding:24px 28px 28px;background:linear-gradient(#183842,#0c2830)}.intro-content .overline{color:#c1d2cb}.intro-content h2{font-size:34px;text-transform:uppercase;letter-spacing:2px;margin:6px 0 10px;color:#ffdb9a}.intro-content p{font-size:12px;color:#d9e1db}.intro-content h3{font-size:13px;color:#f7dca8;letter-spacing:.5px;margin:0 0 12px}.intro-content .primary{width:100%;margin-top:9px}.intro-footer{display:flex;justify-content:space-between;font-size:9px;color:#99b1b2;letter-spacing:1px;margin-bottom:12px}.rules-list{padding-left:22px;font-size:13px;color:#655242;line-height:1.6}.rules-list li{padding:5px 0}.powerup-rule{display:flex;align-items:center;gap:15px;border-top:1px solid #c7b295;padding-top:12px;margin-top:12px}.powerup-rule img{width:43px}.powerup-rule p{font-size:12px;margin:0}.setting{display:flex;align-items:center;justify-content:space-between;padding:13px 0;border-bottom:1px solid #bfa98b66;font-size:13px;gap:10px}.setting input[type=checkbox]{accent-color:var(--petrol);width:22px;height:22px}.setting small{display:block;font-size:10px;color:#897462;margin-top:3px}.setting select{max-width:170px;font-size:12px;padding:5px}.save-actions{display:flex;gap:8px;margin-top:17px;flex-wrap:wrap}.save-actions button{font-size:10px;padding:8px 12px;flex:1}.result-stars{font-size:40px;color:#be7d27;letter-spacing:10px;text-align:center;text-shadow:0 2px 0 #ffe9a6;margin:10px 0 22px}.result-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;text-align:center;background:#e2ceb18c;border-radius:12px;padding:16px 8px}.result-metrics strong{display:block;font-size:23px;color:#25505a}.result-metrics span{font-size:9px;letter-spacing:1px;color:#846b54}.pause-menu{display:grid;gap:12px;margin-top:24px}.pause-menu .quiet{min-height:41px}.toast{position:fixed;z-index:1000;left:50%;bottom:22px;transform:translateX(-50%) translateY(15px);background:#143b46;color:#fff2d6;padding:11px 18px;border:1px solid #9b9278;border-radius:13px;font-size:12px;box-shadow:0 8px 30px #0005;opacity:0;transition:opacity .2s,transform .2s;pointer-events:none;max-width:calc(100% - 28px);text-align:center}.toast.visible{opacity:1;transform:translateX(-50%) translateY(0)}.notice{position:fixed;top:0;left:0;right:0;z-index:1001;background:#814322;color:#fff1d9;font-size:12px;text-align:center;padding:8px}.empty-state{text-align:center;padding:40px}.close-line{margin-top:18px;font-size:11px;text-align:center}.close-line button{background:none;color:#775d48;text-decoration:underline}
@media(min-width:1024px) and (max-height:810px){#app{padding:8px 22px}.page-masthead{padding-bottom:7px}.topbar{grid-template-columns:160px minmax(0,1fr) 130px}.brand-plate img{width:145px}.campaign-strip{padding-top:6px;padding-bottom:5px}.planet-ball{width:31px;height:31px}.campaign-strip:before{top:28px}.game-screen{height:calc(100dvh - 240px);min-height:340px}.ship-portrait{height:120px}.ship-panel{padding:12px 15px}.ship-panel h2{font-size:21px}.ship-panel h3{font-size:17px;margin-bottom:8px}.ship-panel p{font-size:10px;margin-bottom:7px}.pilot-panel{height:104px}.pilot-panel img{height:107px;width:90px}.ship-panel .people{margin-top:8px}.tactical{font-size:9px;padding-top:8px}.control-deck{min-height:60px}.home-display{min-height:480px}.map-display{min-height:480px}.home-art{min-height:390px}}
@media(max-width:1023px){#app{padding:12px}.page-masthead{padding:0 4px 9px}.game-layout{grid-template-columns:minmax(0,1fr) 218px}.topbar{grid-template-columns:140px minmax(0,1fr) 104px;gap:7px}.brand-plate img{width:129px}.round{width:36px;height:36px}.top-actions{gap:7px}.campaign-strip{padding:8px}.planet-ball{width:31px;height:31px}.planet-item{min-width:35px}.planet-item span:last-child{font-size:7px;letter-spacing:.6px}.campaign-strip:before{top:31px}.ship-panel{padding:14px 12px}.ship-portrait{height:128px}.ship-panel h2{font-size:20px}.ship-panel p{font-size:10px}.home-display{padding:30px;min-height:560px}.home-copy h1{font-size:36px}.home-cat{width:220px}.home-ship{width:170px}.home-meta{gap:20px}.world-grid{grid-template-columns:repeat(4,1fr)}.world-card{padding:12px}.world-card h2{font-size:15px}}
@media(max-width:767px){body{background:#edddc5}#app{padding:env(safe-area-inset-top,0) 0 env(safe-area-inset-bottom,0);justify-content:flex-start}.page-masthead{display:none}.shell{width:100%;padding:8px;border-radius:0 0 22px 22px;border-width:0 1px 1px;box-shadow:inset 0 0 0 2px #fff3df,0 2px 3px #b49777;overflow:hidden}.hardware-strip{height:9px;padding-bottom:4px}.led{width:5px;height:5px}.strip-label{font-size:6px;letter-spacing:1px}.topbar{grid-template-columns:1fr 114px;grid-template-rows:48px 45px;gap:7px;margin-bottom:8px}.brand-plate{border:0;box-shadow:none;background:none;justify-content:start;padding:0 6px}.brand-plate img{height:52px;width:auto;max-width:172px;object-fit:contain}.top-actions{grid-column:2;grid-row:1;border:0;box-shadow:none;background:none;justify-content:end;padding-right:8px;gap:13px}.round{width:35px;height:35px}.round svg{width:17px;height:17px}.campaign-strip{grid-row:2;grid-column:1 / -1;border-width:2px;border-radius:13px;padding:3px 6px;gap:4px}.planet-item{gap:2px;min-width:34px}.planet-ball{width:24px;height:24px}.planet-item span:last-child{font-size:6px;letter-spacing:.5px}.campaign-strip:before{top:16px;left:25px;right:25px}.planet-item.active .planet-ball{outline-width:1px;outline-offset:2px}.planet-lock{font-size:9px}.game-layout{display:block}.side-stack{display:none}.game-screen{height:calc(100dvh - 248px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));min-height:235px;border-radius:17px;border-width:2px;background-size:auto 100%}.game-stage{max-width:100%;height:100%;aspect-ratio:24/25}.game-hud{left:6px;right:6px;top:7px;gap:4px}.hud-pill{min-width:72px;padding:5px 9px;border-radius:9px}.hud-pill span{font-size:7px;letter-spacing:.6px}.hud-pill strong{font-size:17px}.hud-pill.wave strong{font-size:12px}.hud-pill.descent strong{font-size:11px}.wave-dots{gap:4px;margin-top:3px}.wave-dots i{width:5px;height:5px}.game-info{display:none}.side-pipe{left:4px;width:4px;top:95px;bottom:75px}.side-pipe.right{right:4px}.next-ammo{right:7%;bottom:3%;width:53px;min-height:53px;border-radius:9px;padding:3px}.next-ammo img{width:29px}.next-ammo span{font-size:6px;letter-spacing:.7px}.control-deck{padding:9px 5px 0;gap:9px;min-height:63px}.aim-text{display:none}.slider-shell{max-width:none;height:43px;padding:5px 10px;min-width:0}.aim-slider{height:24px}.aim-slider::-webkit-slider-thumb{width:42px;height:42px}.game-extra{margin-left:0;gap:6px}.info-button{width:33px;height:33px}.fire-button{min-height:38px;padding:6px 11px;font-size:10px}.shell-foot{height:19px;font-size:7px;letter-spacing:3px}.shell:before,.shell:after{width:13px;height:13px;font-size:10px;line-height:13px;bottom:8px}.shell:before{left:9px}.shell:after{right:9px}.shell-foot:after{font-size:10px;right:26px;letter-spacing:1px}.page-footer{font-size:8px;padding:7px 5px 4px;gap:12px}.page-footer .footer-slogan{display:none}.home-display{display:flex;flex-direction:column;min-height:0;padding:28px 25px 0;background-image:linear-gradient(#060e1aa6,#060e1a50),url('/assets/zephyr.webp');background-size:auto 100%;text-align:center}.home-copy{max-width:none}.home-copy h1{font-size:36px;max-width:300px;margin:16px auto;line-height:1.05}.home-copy p{font-size:12px;max-width:300px;margin:0 auto 24px}.home-copy .button-row{justify-content:center;gap:14px}.home-copy .primary{font-size:11px}.home-meta{justify-content:center;margin-top:22px;gap:35px}.home-meta strong{font-size:21px}.home-meta span{font-size:8px}.home-art{height:225px;min-height:225px;width:100%;margin-top:8px}.home-cat{width:155px;bottom:-5px}.home-ship{width:150px;right:0;top:0}.home-orb{width:46px;left:20px;bottom:27px}.home-orb.second{width:37px;right:15px;bottom:0}.home-deck{bottom:-10px;left:-30px;width:calc(100% + 60px)}.home-hint{justify-content:center;margin-top:18px;font-size:9px}.pilot-stamp{font-size:7px;left:0;top:45px;letter-spacing:1px}.map-display{padding:21px 15px;min-height:450px}.map-header{margin-bottom:19px;display:block}.map-header h1{font-size:25px}.map-header p{font-size:11px}.difficulty-select{margin-top:13px;padding:8px 12px;font-size:11px}.world-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.world-card{padding:13px}.world-card .planet-ball{width:39px;height:39px;margin-bottom:10px}.world-card h2{font-size:17px}.world-card p{font-size:9px;margin-bottom:12px}.wave-buttons button{min-height:44px}.intro-art{height:32dvh;min-height:200px}.intro-cat{width:130px;height:140px}.intro-content{padding:20px 23px 24px}.intro-content h2{font-size:30px}.intro-content p{font-size:12px;line-height:1.5}.intro-content .primary{position:sticky;bottom:0}.modal-inner{padding:24px}.modal-inner h2{font-size:25px}.modal-actions{gap:10px}.modal-actions .primary,.modal-actions .secondary{padding:12px;font-size:11px}.setting{font-size:12px}dialog{max-height:calc(100dvh - 22px)}.page-footer .uat{font-size:7px;padding:2px 4px;margin:0}}
@media(max-width:767px) and (max-height:650px){.topbar{grid-template-rows:39px 39px;gap:5px}.brand-plate img{height:42px}.game-screen{height:calc(100dvh - 224px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px))}.campaign-strip .planet-ball{width:20px;height:20px}.planet-item span:last-child{font-size:6px}.campaign-strip:before{top:14px}.game-hud{top:5px}.hud-pill{min-width:66px;padding:4px 7px}.hud-pill strong{font-size:15px}.hud-pill.wave strong,.hud-pill.descent strong{font-size:10px}.hud-pill span{font-size:6px}.home-display{padding-top:20px}.home-copy h1{font-size:31px}.home-art{height:195px;min-height:195px}.home-cat{width:140px}.home-meta{margin-top:18px}.intro-art{min-height:175px}.intro-content{padding:16px 21px}.intro-content h2{font-size:26px}.intro-content p{font-size:11px;margin-bottom:13px}.intro-cat{height:125px;width:118px}.control-deck{min-height:58px}.page-footer{padding-top:5px}}
@media(orientation:landscape) and (max-height:550px){#app{padding:6px 10px}.page-masthead,.page-footer,.hardware-strip{display:none}.shell{padding:7px;border-radius:18px}.topbar{display:flex;height:42px;gap:10px;margin-bottom:7px}.brand-plate{width:110px}.brand-plate img{height:42px;width:100%}.campaign-strip{flex:1}.top-actions{width:100px}.planet-ball{width:22px;height:22px}.planet-item span:last-child{font-size:6px}.campaign-strip:before{top:15px}.game-layout{display:block}.side-stack{display:none}.game-screen{height:calc(100dvh - 141px);min-height:170px}.control-deck{height:48px;min-height:48px;padding-top:7px}.slider-shell{height:37px;max-width:none}.aim-text{display:none}.shell-foot{height:12px}.game-hud{max-width:95%;left:10px;right:10px}.home-display{min-height:360px}.intro-art{height:180px}.intro-content{padding:16px 24px}.game-stage{max-width:100%}.next-ammo{right:30%;bottom:4%;min-height:48px;width:49px}.well-deck{height:65px;object-fit:fill}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}body.reduced-motion *{transition:none!important;animation:none!important}

/* Keep the hardware and the tactical panel inside the available desktop height. */
@media(min-width:1024px){.shell:has(.game-layout){max-width:1120px}.game-layout{height:min(calc(100dvh - 350px),680px);min-height:395px;grid-template-columns:minmax(0,1fr) 244px}.game-screen{height:100%;min-height:0}.side-stack{height:100%;min-height:0}.ship-panel{padding:14px 14px 10px;min-height:0}.ship-panel p{font-size:10px;line-height:1.4;margin-bottom:9px}.ship-panel h2{font-size:21px}.ship-panel h3{font-size:17px;margin-bottom:9px}.ship-panel .people{margin-top:8px}.ship-portrait{height:130px}.tactical{font-size:9px;padding-top:8px}.pilot-panel{height:112px;min-height:112px}.pilot-panel img{width:85px;height:112px}}
@media(min-width:1024px) and (max-height:810px){.game-layout{height:calc(100dvh - 310px);min-height:375px}.ship-panel{padding:10px 12px}.ship-portrait{height:96px}.ship-panel h2{font-size:18px}.ship-panel h3{font-size:15px}.ship-panel p{font-size:9px;margin-bottom:6px}.ship-panel .people{font-size:8px;margin:7px 0 4px}.tactical{font-size:8px;padding-top:6px}.pilot-panel{height:90px;min-height:90px}.pilot-panel img{height:94px;width:73px}}


/* Physical playfield edges, visible whenever the surrounding scenery is wider. */
.has-gutters .game-stage::before,.has-gutters .game-stage::after{content:"";position:absolute;top:0;bottom:0;width:0;border-left:1px dashed rgba(255,235,202,.38);pointer-events:none;z-index:3}
.has-gutters .game-stage::before{left:0}.has-gutters .game-stage::after{right:0}

/* Game gestures must never start browser text selection or image/link dragging. */
body,dialog{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
a,img{-webkit-user-drag:none}
input:not([type=range]):not([type=checkbox]):not([type=file]),textarea,[contenteditable=true]{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}

/* A planet-specific defeat illustration shares the same scene as the pilot. */
.defeat-inner{border-radius:21px;overflow:hidden}
.defeat-art{position:relative;isolation:isolate;height:clamp(160px,29dvh,235px);overflow:hidden;background-image:linear-gradient(180deg,#07122522,#07122599),var(--bg);background-size:cover;background-position:center top;border-bottom:1px solid #bf9b67}
.defeat-art::after{content:"";position:absolute;inset:60% 0 0;background:linear-gradient(transparent,#071225b8);z-index:-1;pointer-events:none}
.defeat-cat{position:absolute;left:8px;bottom:-3px;width:46%;height:98%;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 5px 10px #0008);z-index:2}
.defeat-ship{position:absolute;right:8px;top:3px;width:58%;height:78%;object-fit:contain;filter:drop-shadow(0 6px 16px #000a)}
.defeat-enemy{position:absolute;right:17px;bottom:15px;max-width:52%;text-align:right;color:#fff0d1;text-shadow:0 2px 6px #000}
.defeat-enemy span{display:block;font-size:9px;letter-spacing:2px;text-transform:uppercase;color:#d6d9e1;margin-bottom:4px}
.defeat-enemy strong{display:block;font-size:19px;letter-spacing:.7px}
.defeat-content{padding:23px 27px 26px}
.defeat-content h2{font-size:26px}
.defeat-content .modal-actions{margin-top:20px}
@media(max-width:767px){.defeat-content{padding:20px}.defeat-content h2{font-size:24px}.defeat-enemy strong{font-size:17px}.defeat-enemy{right:13px;bottom:12px}}
@media(max-height:650px){.defeat-content{padding:16px 20px}.defeat-content h2{font-size:22px;margin-bottom:9px}.defeat-content p{font-size:12px;margin-bottom:10px}.defeat-content .result-metrics{margin:12px 0}.defeat-content .modal-actions{margin-top:15px}}
@media(orientation:landscape) and (max-height:550px){dialog:has(.defeat-inner){width:min(720px,calc(100% - 28px))}.defeat-inner{display:grid;grid-template-columns:42% 58%}.defeat-art{height:100%;min-height:260px;border-bottom:0;border-right:1px solid #bf9b67}.defeat-cat{left:0;bottom:0;width:56%;height:76%}.defeat-ship{right:2px;top:5px;width:64%;height:54%}.defeat-enemy{right:10px;bottom:14px;max-width:47%}.defeat-enemy strong{font-size:15px}.defeat-content{padding:17px}.defeat-content .result-metrics{padding:11px 5px}.defeat-content .modal-actions{gap:10px}.defeat-content .modal-actions button{padding:10px;font-size:10px}}

/* The frame follows the wider field: all visible starfield is playable. */
.shell:has(.game-layout){width:min(100%,calc((100dvh - 290px)*.96 + 284px));max-width:1220px}
.game-layout{height:auto;min-height:0;grid-template-columns:minmax(0,1fr) 244px;align-items:stretch}
.game-screen{width:100%;height:auto;min-height:0;aspect-ratio:24/25}
.game-stage{width:100%;height:100%;max-width:none;aspect-ratio:24/25}
.side-stack{height:100%;min-height:0}.ship-panel{flex:1;overflow:auto}
.game-info,.side-pipe{display:none}
.next-ammo{right:5%;bottom:4%}
@media(min-width:768px) and (max-width:1023px){.shell:has(.game-layout){width:100%}.game-layout{grid-template-columns:minmax(0,1fr) 218px}}
@media(max-width:767px){.shell:has(.game-layout){width:100%;max-width:none}.game-layout{display:block}.game-screen{height:auto;min-height:0}.game-stage{height:100%}.next-ammo{right:5%;bottom:3%}}
@media(orientation:landscape) and (max-height:550px){.shell:has(.game-layout){width:min(100%,calc((100dvh - 141px)*.96 + 280px))}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 244px}.game-screen{height:auto;min-height:0}.side-stack{display:flex}.ship-panel{padding:10px}.ship-panel h2{font-size:18px}.ship-portrait{height:80px}.ship-panel h3{font-size:13px;margin:6px 0}.ship-panel p,.ship-panel .tactical,.pilot-panel{display:none}.game-hud{left:4px;right:4px;top:5px;gap:3px}.hud-pill{min-width:0;padding:4px 5px;border-radius:8px}.hud-pill span{font-size:6px;letter-spacing:0}.hud-pill strong{font-size:13px}.hud-pill.wave strong,.hud-pill.descent strong{font-size:9px}.wave-dots{margin-top:2px}.next-ammo{right:4%;bottom:3%;width:45px;min-height:44px;padding:2px}.next-ammo img{width:24px}.next-ammo span{font-size:5px}}

.game-screen{aspect-ratio:auto}.game-stage{height:auto;aspect-ratio:24/25}.game-stage canvas{position:absolute;inset:0}

.home-copy .close-line{text-align:left}.home-copy .close-line button{padding-inline:0}
