@charset "UTF-8";
:root{color-scheme:dark;--ink:#edf7ec;--muted:#b8d2ce;--sea:#0d4955;--glass:rgba(12,48,55,.77);--line:rgba(203,235,226,.23);--mint:#b9e5d0;--gold:#f6d989;--radius:19px;font-family:Arial,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;font-synthesis:none}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#174d57}body{overscroll-behavior:none;color:var(--ink)}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default}button,svg{touch-action:manipulation}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:3px solid var(--gold);outline-offset:4px}button:disabled{opacity:.43}button svg, .ship-hud svg,.workshop-wallet svg{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;width:21px;height:21px;flex-shrink:0}button{border:0}svg{display:block}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;clip-path:inset(50%);overflow:hidden;white-space:nowrap;border:0}[hidden]{display:none!important}#game,#ocean{position:fixed;inset:0;width:100vw;height:100dvh}#ocean{display:block;outline:none;touch-action:none;background:linear-gradient(150deg,#6ab0a8,#407e91);cursor:crosshair}.glass{border:1px solid var(--line);background:var(--glass);box-shadow:0 5px 24px #092b3323;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.navigation,.tools,.ship-hud{position:fixed;z-index:3;display:flex;align-items:center}.navigation{top:max(20px,env(safe-area-inset-top));left:max(20px,env(safe-area-inset-left));min-height:52px;border-radius:var(--radius);padding:0 19px 0 12px;gap:17px}.home-link{display:flex;align-items:center;gap:7px;color:var(--ink);text-decoration:none;font-size:10px;letter-spacing:1.6px;font-weight:700;white-space:nowrap}.home-link svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7}.home-link:hover{color:var(--gold)}.nav-divider{width:1px;height:18px;background:var(--line)}h1{font-family:Georgia,"Yu Mincho",serif;font-size:18px;font-weight:400;letter-spacing:.25px;margin:0}.tools{right:max(20px,env(safe-area-inset-right));top:max(20px,env(safe-area-inset-top));padding:4px;border-radius:var(--radius);gap:1px}.icon-button{width:42px;height:42px;display:grid;place-items:center;border-radius:13px;background:transparent;color:var(--ink);transition:background .18s,color .18s,transform .18s}.icon-button:hover{background:#d9efdf1c;color:var(--gold)}.icon-button:active{transform:scale(.92)}.zone-readout{position:fixed;z-index:2;top:89px;left:max(32px,calc(env(safe-area-inset-left) + 12px));display:flex;align-items:center;gap:8px;color:#f2fff0;font-size:11px;letter-spacing:.8px;font-weight:600;text-shadow:0 1px 7px #093a48}.zone-dot{width:5px;height:5px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 4px #f8d68422}.ship-hud{left:50%;bottom:max(20px,env(safe-area-inset-bottom));transform:translateX(-50%);border-radius:18px;gap:17px;padding:13px 19px;min-height:51px;white-space:nowrap;font-variant-numeric:tabular-nums}.health-status,.resource,.dash-status{display:flex;align-items:center;gap:8px;font-size:13px}.health-status{gap:9px}.health-status svg{width:18px;color:#cde9d5}.health-track{width:95px;height:5px;border-radius:5px;background:#021b244a;overflow:hidden}.health-track>span{display:block;height:100%;width:100%;border-radius:inherit;background:#b9e5b2;transition:width .25s,background .25s}.health-track.is-low>span{background:#ffa99a}#health-text{min-width:22px;font-size:11px;color:var(--muted)}.hud-divider{width:1px;height:20px;background:var(--line)}.resource svg{width:19px;color:var(--gold)}.fragments-status svg{color:#b7eaf1}.count-total{font-size:11px;color:var(--muted)}.dash-status{font-size:11px;gap:6px}.dash-status svg{width:16px;color:var(--mint)}.dash-track{width:29px;height:4px;border-radius:4px;background:#021b244a;overflow:hidden}.dash-track>span{display:block;width:100%;height:100%;background:var(--mint);border-radius:4px}.dash-status.is-cooling{color:#82aaa9}.dash-status.is-cooling svg{color:#82aaa9}.interaction-hint{position:fixed;z-index:4;left:50%;bottom:86px;transform:translateX(-50%);display:flex;gap:10px;align-items:center;border-radius:13px;padding:8px 9px 8px 12px;font-size:12px;white-space:nowrap}.interaction-hint kbd{border:1px solid #acc7be66;background:#edf7ec12}.interaction-hint button{background:var(--mint);color:#173a3c;font-weight:700;padding:8px 13px;border-radius:8px}.touch-controls{display:none}.toast{position:fixed;z-index:8;left:50%;bottom:95px;transform:translateX(-50%);max-width:min(440px,calc(100vw - 32px));padding:13px 20px;border:1px solid #dff8dd3f;border-radius:13px;background:#113942e8;box-shadow:0 10px 30px #092b332e;text-align:center;color:#edf7ec;font-size:13px;animation:toast-in .2s ease-out;pointer-events:none}.game-dialog{padding:0;border:1px solid #cbebe64f;border-radius:25px;color:var(--ink);background:linear-gradient(135deg,rgba(18,58,63,.97),rgba(14,44,54,.97));box-shadow:0 26px 80px #07282c66;backdrop-filter:blur(20px);max-width:calc(100vw - 36px);width:450px;max-height:calc(100dvh - 48px);overflow:hidden}.game-dialog::backdrop{background:#103d492d;backdrop-filter:blur(2px)}.game-dialog.is-start{width:440px}.game-dialog.is-start::backdrop{background:#123a4712;backdrop-filter:none}.game-dialog.is-map{width:780px}.game-dialog.is-log{width:600px}.dialog-heading{height:53px;display:flex;justify-content:space-between;align-items:center;padding:8px 12px 0 25px}.dialog-eyebrow{font-size:10px;font-weight:700;letter-spacing:2.3px;text-transform:uppercase;color:var(--mint)}.dialog-heading .icon-button{width:33px;height:33px}.dialog-heading .icon-button svg{width:18px;height:18px}.dialog-content{padding:0 30px 28px;max-height:calc(100dvh - 106px);overflow:auto;scrollbar-width:thin;scrollbar-color:#72a89b65 transparent;overscroll-behavior:contain}.panel h2{font:400 32px/1.2 Georgia,"Yu Mincho",serif;letter-spacing:-.45px;margin:7px 0 13px}.panel-intro{color:var(--muted);font-size:13px;line-height:1.75;margin:0 0 23px}.start-heading{display:flex;align-items:center;gap:16px;padding-top:8px}.start-heading h2{font-size:29px;margin:0;letter-spacing:-.7px}.start-compass{width:56px;height:56px;flex-shrink:0;fill:none;stroke:#b5dbcf;stroke-width:1;opacity:.85}.is-start .panel-intro{margin-top:16px;margin-bottom:20px}.control-summary{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:8px;background:#e1f9e805;border:1px solid #c3e7d916;border-radius:14px;padding:16px 10px;margin-bottom:19px}.control-summary>div{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:11px;font-size:11px;color:var(--muted)}kbd{font-family:inherit;font-size:10px;border:1px solid #a4ccc247;border-bottom-width:2px;border-radius:5px;padding:5px 7px;display:inline-block;line-height:1.1;min-width:25px;text-align:center;background:#d6eed20b;color:var(--ink);white-space:nowrap}.key-cluster{display:flex;gap:3px}.touch-intro{display:none}.primary-button,.secondary-button{width:100%;min-height:47px;border-radius:13px;padding:13px 18px;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:12px;transition:background .18s,transform .18s}.primary-button{background:#c3e6ce;color:#153a3b;border:1px solid #eaf6de3a}.primary-button:not(:disabled):hover{background:#d8efd5}.primary-button:not(:disabled):active{transform:scale(.985)}.primary-button svg{width:16px;height:16px;fill:currentColor;stroke-width:0}.secondary-button{background:transparent;color:var(--muted);border:1px solid var(--line);margin-top:11px}.secondary-button:hover{background:#ffffff09}.start-footnote{font-size:10px;line-height:1.55;text-align:center;color:#9bbdb6;margin:14px 0 0}.loading-state{font-size:10px;color:var(--muted);display:grid;gap:8px;margin:0 0 17px}.loading-track{height:3px;border-radius:4px;background:#021b244a;overflow:hidden}.loading-track span{height:100%;width:4%;display:block;background:var(--gold);transition:width .2s}.controls-list{margin:0 0 23px}.controls-list>div{display:flex;justify-content:space-between;gap:14px;align-items:center;min-height:42px;border-bottom:1px solid #c5e7de14;padding:9px 0}.controls-list dt{font-size:12px;color:var(--muted)}.controls-list dd{font-size:10px;margin:0;display:flex;gap:4px;align-items:center;text-align:right}.controls-list dd>span{font-size:10px;color:var(--muted)}.touch-help{display:none}.chart-frame{position:relative;background:#143c40;border-radius:15px;border:1px solid #cae3bd2b;overflow:hidden}.chart-frame canvas{display:block;width:100%;height:auto;aspect-ratio:4/3;background:linear-gradient(#194d55,#215759)}.chart-compass{position:absolute;top:15px;right:17px;display:flex;flex-direction:column;gap:5px;align-items:center;font-size:10px;color:#d4debb;font-family:Georgia,serif;pointer-events:none}.chart-compass span{font-size:25px}.chart-legend{display:flex;gap:19px;flex-wrap:wrap;justify-content:center;margin:16px 0 23px;font-size:10px;color:var(--muted)}.chart-legend>span{display:flex;gap:6px;align-items:center}.chart-legend i{display:block;width:8px;height:8px;background:#d3f2dc}.chart-legend .legend-ship{clip-path:polygon(50% 0,100% 100%,50% 75%,0 100%)}.chart-legend .legend-fragment{background:#f8df8f;transform:rotate(45deg);width:6px;height:6px}.chart-legend .legend-shop{background:transparent;border:1.5px solid #ffd8b7;border-radius:50%}.notebook-panel h2{font-size:30px}.notebook-entry{display:flex;gap:19px;border-top:1px solid #cae3bd29;padding:22px 0 5px}.entry-number{font-size:11px;color:var(--gold);font-family:Georgia,serif;padding-top:3px}.notebook-entry h3{font-size:14px;font-weight:600;margin:0 0 10px}.notebook-entry p{font-size:12px;line-height:1.85;color:var(--muted);margin:0 0 14px}.notebook-placeholder{border-top-style:dashed}.notebook-placeholder p{font-size:11px;color:#9cbdb5}.notebook-panel .primary-button{margin-top:15px}.workshop-wallet{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--gold);margin-top:-8px;margin-bottom:17px}.workshop-wallet svg{width:19px}.upgrade-list{display:flex;flex-direction:column;gap:8px;margin:0 0 22px}.upgrade{display:flex;align-items:center;gap:12px;border:1px solid #d0ebd726;background:#e7f3e305;border-radius:13px;min-height:60px;text-align:left;padding:12px 14px;transition:background .15s,border-color .15s}.upgrade:not(:disabled):hover{background:#d2eadb14;border-color:#d1efce5e}.upgrade-symbol{width:27px;font-size:27px;line-height:1;color:#c8e6d3;text-align:center;font-family:Georgia,serif}.upgrade>span:nth-child(2){display:flex;flex-direction:column;gap:4px;flex:1}.upgrade strong{font-size:12px;font-weight:600}.upgrade small{font-size:10px;color:var(--muted);line-height:1.35}.upgrade-price{font-size:12px;color:var(--gold);font-variant-numeric:tabular-nums}.upgrade-price::after{content:" ●";font-size:8px}.compact-panel{text-align:center;padding:10px 0 2px}.compact-panel h2{margin-top:8px}.compact-panel .panel-intro{margin:0 0 24px}.outcome-icon{fill:none;stroke:#c3e1ce;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;width:60px;height:60px;margin:0 auto 20px}.win-icon{stroke:var(--gold)}.outcome-summary{display:flex;justify-content:space-between;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:16px 0;font-size:12px;color:var(--muted);margin:0 0 25px}.outcome-summary strong{color:var(--gold);font-weight:600}.no-script{position:fixed;z-index:10;inset:0;display:grid;place-items:center;padding:30px;background:#174d57;text-align:center}.modal-open .touch-controls{pointer-events:none;opacity:.13}.modal-open .ship-hud,.modal-open .navigation,.modal-open .tools,.modal-open .zone-readout{opacity:.65}.modal-open .interaction-hint{display:none}
@keyframes toast-in{from{opacity:0;translate:0 8px}to{opacity:1;translate:0 0}}
@media(max-width:800px){.navigation{left:max(14px,env(safe-area-inset-left));top:max(14px,env(safe-area-inset-top));gap:12px;padding-right:14px;min-height:46px}.home-link{font-size:9px;letter-spacing:1.2px}.tools{right:max(14px,env(safe-area-inset-right));top:max(14px,env(safe-area-inset-top));padding:3px;border-radius:16px}.icon-button{width:37px;height:37px;border-radius:11px}.icon-button svg{width:19px;height:19px}h1{font-size:16px}.zone-readout{top:76px;left:25px}.ship-hud{gap:12px;padding:11px 15px}.health-track{width:70px}.game-dialog.is-map{width:640px}}
@media(pointer:coarse), (max-width:600px){.touch-controls{display:block;position:fixed;z-index:4;inset:auto 0 0;height:165px;pointer-events:none;transition:opacity .2s}.joystick{position:absolute;left:max(29px,calc(env(safe-area-inset-left) + 17px));bottom:max(31px,calc(env(safe-area-inset-bottom) + 15px));width:112px;height:112px;touch-action:none;pointer-events:auto}.joystick-ring{position:absolute;inset:0;border-radius:50%;border:1px solid #e5f5df52;background:#184f583b;box-shadow:inset 0 0 0 19px #204d581a;backdrop-filter:blur(4px)}.joystick-knob{position:absolute;width:44px;height:44px;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:50%;background:#d2eddd6b;border:1px solid #e5f5df78;box-shadow:0 3px 15px #16485920;will-change:transform}.joystick-label{position:absolute;bottom:-19px;left:0;right:0;text-align:center;font-size:9px;letter-spacing:.5px;color:#f3fae9a8;text-shadow:0 1px 4px #164859;pointer-events:none}.touch-actions{position:absolute;right:max(28px,calc(env(safe-area-inset-right) + 17px));bottom:max(36px,calc(env(safe-area-inset-bottom) + 17px));width:126px;height:110px;pointer-events:none}.touch-button{position:absolute;display:grid;place-items:center;pointer-events:auto;border:1px solid #e5f5df69;border-radius:50%;background:#17475080;backdrop-filter:blur(7px);touch-action:none;user-select:none;-webkit-user-select:none}.touch-button svg{width:27px;height:27px}.touch-button:active,.touch-button.is-pressed,.touch-button.is-held{background:#c8ecd977;color:#0e3b45}.touch-fire{right:0;bottom:0;width:72px;height:72px}.touch-dash{left:0;top:0;width:51px;height:51px}.touch-dash svg{width:22px;height:22px}.control-summary{display:none}.touch-intro{display:block;color:var(--muted);font-size:12px;line-height:1.8;border:1px solid var(--line);background:#d2efd505;border-radius:13px;padding:16px;margin:0 0 21px}.touch-help{display:block;color:var(--muted);font-size:12px;line-height:1.8;margin:0 0 22px}.ship-hud{bottom:max(23px,env(safe-area-inset-bottom));gap:11px}.health-track{width:52px}.dash-status{display:none}.dash-divider{display:none}.ship-hud .hud-divider{margin-left:-2px;margin-right:-2px}.interaction-hint{bottom:87px}.interaction-hint kbd{display:none}}
@media(max-width:600px){.navigation{min-height:43px;gap:0;padding:0 10px}.home-link{gap:3px}.home-link span{font-size:8px;letter-spacing:.7px}.home-link svg{width:14px}.nav-divider{display:none}h1{display:none}.tools{gap:0;padding:3px}.tools .icon-button{width:35px;height:35px}.fullscreen-tool{display:none}.zone-readout{top:71px;font-size:10px}.ship-hud{padding:11px 12px;gap:10px}.health-track{width:51px}.health-status svg{width:15px}.health-status{gap:6px}#health-text{display:none}.resource{gap:5px;font-size:12px}.resource svg{width:16px}.dash-status{display:none}.dash-divider{display:none}.game-dialog{max-width:calc(100vw - 24px);max-height:calc(100dvh - 26px);border-radius:21px}.dialog-content{padding:0 24px 24px;max-height:calc(100dvh - 80px)}.dialog-heading{padding-left:24px;height:49px}.panel h2{font-size:28px}.panel-intro{font-size:12px}.start-heading h2{font-size:27px}.start-compass{width:48px;height:48px}.chart-legend{gap:13px;font-size:9px}.notebook-entry{gap:14px}.notebook-panel h2{font-size:26px}.toast{bottom:91px;font-size:12px}.upgrade{min-height:58px;padding:11px}.upgrade-symbol{width:24px;font-size:24px}}
@media(max-height:540px){.navigation,.tools{top:max(11px,env(safe-area-inset-top))}.zone-readout{top:66px}.ship-hud{bottom:max(11px,env(safe-area-inset-bottom));padding:10px 14px}.game-dialog{max-height:calc(100dvh - 20px)}.dialog-content{max-height:calc(100dvh - 72px);padding-bottom:20px}.game-dialog.is-start{width:500px}.start-heading{padding-top:0}.start-heading h2{font-size:26px}.start-compass{width:41px;height:41px}.is-start .panel-intro{margin-top:8px;margin-bottom:13px}.control-summary{padding:11px;margin-bottom:12px}.control-summary>div{gap:7px}.touch-intro{padding:11px;font-size:11px;margin-bottom:14px}.start-footnote{margin-top:9px}.loading-state{margin-bottom:12px}.touch-controls{height:128px}.joystick{width:90px;height:90px;bottom:max(24px,calc(env(safe-area-inset-bottom) + 12px))}.joystick-knob{left:50%;top:50%;width:40px;height:40px}.touch-actions{bottom:max(22px,calc(env(safe-area-inset-bottom) + 12px));height:96px}.touch-fire{width:65px;height:65px}.touch-dash{width:46px;height:46px}.interaction-hint{bottom:68px}.toast{bottom:70px}.chart-frame canvas{max-height:calc(100dvh - 220px);object-fit:contain}.chart-panel .panel-intro{margin-bottom:13px}.chart-legend{margin:11px 0 15px}}
@media(max-width:600px) and (orientation:portrait){.ship-hud{top:max(75px,calc(env(safe-area-inset-top) + 58px));bottom:auto;left:max(14px,env(safe-area-inset-left));transform:none;min-height:44px;border-radius:14px}.zone-readout{top:max(133px,calc(env(safe-area-inset-top) + 115px));left:max(25px,calc(env(safe-area-inset-left) + 11px))}.interaction-hint{bottom:max(165px,calc(env(safe-area-inset-bottom) + 145px))}.toast{bottom:max(172px,calc(env(safe-area-inset-bottom) + 152px))}}
.touch-dash.is-cooling{opacity:.45}.modal-open .joystick,.modal-open .touch-button{pointer-events:none}
.game-dialog.is-map{width:560px}.chart-frame canvas{height:clamp(190px,51dvh,410px);aspect-ratio:auto}.chart-panel h2{font-size:28px;margin:0 0 10px}.chart-panel .panel-intro{margin-bottom:13px}.chart-legend{margin:12px 0 0}.chart-panel>.primary-button{display:none}
@media(pointer:coarse),(max-width:600px){.controls-list{display:none}.touch-help{display:block;font-size:14px;line-height:1.8}.notebook-entry p{font-size:13px}}
@media(max-height:540px){.is-map .dialog-heading,.is-start .dialog-heading{height:40px}.is-map .dialog-content,.is-start .dialog-content{max-height:calc(100dvh - 65px);padding-bottom:16px}.chart-panel .panel-intro{display:none}.chart-panel h2{font-size:24px}.chart-frame canvas{height:max(120px,calc(100dvh - 165px));max-height:none}.chart-legend{margin:12px 0 0}.is-start .start-compass{display:none}.is-start .start-heading h2{font-size:24px}.is-start .panel-intro{font-size:11px;line-height:1.5;margin:8px 0}.is-start .touch-intro{font-size:11px;line-height:1.6;margin:8px 0 12px;padding:10px}.is-start .start-footnote{display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Avoid rectangular backdrop-filter artifacts when Chromium samples a live GPU canvas. */
.has-toon-ocean .glass,.has-toon-ocean .game-dialog,.has-toon-ocean .touch-button,.has-toon-ocean .joystick-ring,.has-toon-ocean .game-dialog::backdrop{backdrop-filter:none;-webkit-backdrop-filter:none}
