html,body{background:#d7ebe4!important}#GameDiv{max-width:720px;margin:auto;box-shadow:0 0 80px #498b7c33}#toy-loader{position:fixed;inset:0;z-index:10000;background:#e9f4ea;display:grid;place-items:center;font-family:'Microsoft YaHei',sans-serif;color:#173448;transition:opacity .4s;pointer-events:none}#toy-loader .poster{width:min(100vw,calc(100dvh * .667));height:100dvh;position:relative;background:#b9c7c9 none center/contain no-repeat}#toy-loader .heading{position:absolute;top:5%;left:0;right:0;text-align:center}#toy-loader small{letter-spacing:4px;font-weight:800;font-size:11px;color:#609e99}#toy-loader h1{font-size:clamp(40px,10vw,68px);font-weight:900;letter-spacing:2px;line-height:1.15;margin:14px 0 8px;text-shadow:0 4px #fff6}#toy-loader p{font-size:14px;letter-spacing:4px;margin:0}#toy-loader .loading{position:absolute;bottom:7%;left:15%;right:15%;text-align:center;font-size:13px}.toy-track{height:9px;border-radius:9px;background:#417f721c;margin-top:15px;overflow:hidden}.toy-track i{display:block;background:#36b9ab;width:35%;height:100%;border-radius:9px;animation:toy-loading 1.2s ease-in-out infinite alternate}@keyframes toy-loading{to{transform:translateX(185%)}}#toy-loader.done{opacity:0}#toy-loader button{pointer-events:auto;border:0;border-radius:12px;background:#ffc963;color:#173448;padding:12px 24px;margin-top:15px;font-weight:800}@media(prefers-reduced-motion:reduce){.toy-track i{animation:none;width:75%}}


html,body{background:#17242b!important}#GameDiv{box-shadow:0 0 80px #050d16aa}#toy-loader{background:#17242b;color:#f1deab}#toy-loader .poster{background-color:#17242b}#toy-loader small{color:#e6bd65}#toy-loader h1{text-shadow:0 3px #0007}.toy-track{background:#ffffff20}.toy-track i{background:#eea64b}
/* Soft sunlight across the game surface; does not intercept controls. */
.harbor-sunlight{position:fixed;pointer-events:none;z-index:8;overflow:hidden;background:conic-gradient(from 155deg at 8% -12%,transparent 0deg,rgba(255,246,209,.12) 5deg,transparent 12deg,transparent 22deg,rgba(255,250,222,.085) 28deg,transparent 37deg);mix-blend-mode:screen}


#toy-loader{pointer-events:auto;overflow:hidden;background:#071b32;transition:opacity .6s ease}
#toy-loader .poster{width:min(100vw,calc(100dvh * .667));height:100dvh;overflow:hidden;background:#0c4674;isolation:isolate}
.poster-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:poster-drift 9s ease-in-out infinite alternate}
.poster-shade{position:absolute;inset:0;background:linear-gradient(180deg,#05244a77,transparent 32%,transparent 64%,#041b39ed)}
.poster-rays{position:absolute;inset:-20%;background:linear-gradient(115deg,transparent 42%,#fff5c72b 48%,transparent 53%);mix-blend-mode:screen;animation:poster-rays 7s ease-in-out infinite;pointer-events:none}
.poster-glints{position:absolute;inset:58% 0 12%;background:radial-gradient(ellipse at 18% 40%,#d6fffa88 0,transparent 2%),radial-gradient(ellipse at 78% 68%,#fffbd788 0,transparent 1.8%);animation:poster-glints 3s ease-in-out infinite alternate;mix-blend-mode:screen}
#toy-loader .heading{top:8%;z-index:2}
#toy-loader small{color:#c8e7f1;letter-spacing:5px;font-size:11px}
#toy-loader h1{font-size:clamp(42px,10vw,72px);font-style:italic;letter-spacing:5px;color:#fff3ce;margin:15px 0 10px;text-shadow:0 3px 0 #225180,0 7px 0 #092f53,0 12px 28px #00152b88}
#toy-loader .heading p{font-size:14px;color:#e2f5ff;letter-spacing:7px}
#toy-loader .loading{bottom:6%;left:12%;right:12%;color:#e5f3f4;z-index:2}
.load-caption{display:flex;justify-content:center;align-items:center;gap:7px;font-size:14px;letter-spacing:2px}
.load-dots{animation:load-dots 1.3s ease-in-out infinite}
#toy-loader .toy-track{height:5px;margin-top:17px;background:#bce8ff26;border:1px solid #d4f3ff33;border-radius:10px;overflow:hidden}
#toy-loader .toy-track i{width:36%;background:linear-gradient(90deg,#47a8bf,#99ede5,#ffe7a0);box-shadow:0 0 14px #b5f7ee;animation:load-travel 1.7s ease-in-out infinite}
#toy-loader .load-tip{margin-top:17px;font-size:11px;letter-spacing:1px;color:#9ebacf}
#toy-loader.ready .toy-track i{animation:none;width:100%;transform:none;transition:width .25s}
#toy-loader.ready .load-dots{display:none}
#toy-loader.done{pointer-events:none}
@keyframes poster-drift{from{transform:scale(1.025) translateY(.4%)}to{transform:scale(1.07) translateY(-.4%)}}
@keyframes poster-rays{0%,100%{transform:translateX(-12%);opacity:.25}50%{transform:translateX(12%);opacity:.8}}
@keyframes poster-glints{from{opacity:.12;transform:translateY(3px)}to{opacity:.65;transform:translateY(-3px)}}
@keyframes load-travel{0%{transform:translateX(-110%)}100%{transform:translateX(385%)}}
@keyframes load-dots{50%{opacity:.3}}
@media(prefers-reduced-motion:reduce){#toy-loader *{animation:none!important}#toy-loader .toy-track i{width:55%;transform:none}}

#naval-result{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:24px;background:rgba(3,15,24,.72);backdrop-filter:blur(7px);font-family:Arial,"Microsoft YaHei",sans-serif;color:#edf5f6;box-sizing:border-box}
.result-sheet{width:min(440px,100%);overflow:hidden;border:1px solid #ffffff24;border-radius:24px;background:#102937;box-shadow:0 26px 90px #0009;animation:result-enter .38s cubic-bezier(.2,.8,.2,1) both}
.result-image{height:190px;position:relative;overflow:hidden}.result-image img{width:100%;height:100%;object-fit:cover;object-position:center 27%;display:block}.result-image-shade{position:absolute;inset:0;background:linear-gradient(180deg,#06192322,#10293708 40%,#102937)}
.result-tag{position:absolute;top:20px;left:24px;font-size:11px;letter-spacing:2px;background:#081e32a8;padding:8px 12px;border:1px solid #ffffff28;border-radius:20px;color:#edf5f6}
.result-content{position:relative;text-align:center;padding:0 32px 26px}.result-emblem{width:66px;height:66px;margin:-34px auto 18px;border:1px solid #edc78199;border-radius:50%;background:linear-gradient(135deg,#314958,#132d3b);display:grid;place-items:center;box-shadow:0 5px 20px #0004;color:#f3ce8a}.result-emblem svg{width:40px;fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.result-eyebrow{font-size:11px;letter-spacing:4px;color:#9fb9c6;margin:0 0 10px}.result-content h1{font-size:38px;letter-spacing:3px;line-height:1.2;margin:0 0 15px;color:#f5d799;font-weight:800}.result-description{font-size:14px;line-height:1.8;margin:0;color:#b7cbd4}.result-rule{height:1px;margin:25px 0;background:linear-gradient(90deg,transparent,#7896a355,transparent)}
.result-replay{display:flex;align-items:center;justify-content:space-between;width:100%;padding:18px 22px;border:1px solid #fff4;border-radius:12px;color:#16303c;background:linear-gradient(120deg,#f7dfa8,#d9b570);font-size:18px;font-weight:700;cursor:pointer;box-shadow:0 4px 0 #907245}.result-replay:hover{filter:brightness(1.08)}.result-replay:active{transform:translateY(2px);box-shadow:0 2px 0 #907245}.result-tip{font-size:11px;color:#829fac;margin:20px 0 0;line-height:1.7}
.result-lose .result-content h1{color:#f3c1b2}.result-lose .result-emblem{border-color:#db998a99;color:#f3b6a4}.result-lose .result-replay{background:linear-gradient(120deg,#9ce0df,#62b9c4);box-shadow:0 4px 0 #387c87}
@keyframes result-enter{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}
@media(max-height:650px){#naval-result{padding:12px}.result-image{height:130px}.result-content{padding:0 24px 18px}.result-rule{margin:15px 0}.result-content h1{font-size:30px}.result-emblem{margin-bottom:10px}.result-tip{margin-top:14px}}
@media(prefers-reduced-motion:reduce){.result-sheet{animation:none}}

/* Title is part of the cartoon KV artwork. */ #toy-loader .heading{display:none}

/* Native scene title screen: real game scene replaces the AI poster. */
#toy-loader{background:#123f52;transition:background .6s,opacity .4s}
#toy-loader.ready{background:#10334b22}
#toy-loader .poster{background:none;width:min(100vw,720px)}
#toy-loader .poster-shade{background:linear-gradient(180deg,#10334b80,transparent 45%,#10334b99)}
#toy-loader .heading{display:block;top:12%}
#toy-loader h1{font-style:normal;font-size:clamp(42px,9vw,64px);letter-spacing:7px;text-shadow:0 3px 0 #173b50;margin:12px 0;color:#fff9e9}
#toy-loader .heading small{display:none}
#toy-loader .heading p{letter-spacing:5px}
#toy-loader .loading{bottom:9%}


/* Pure game UI: no scene illustration. */
#naval-result{background:#061526a8;backdrop-filter:blur(4px);padding:20px}
#naval-result .result-sheet{position:relative;width:min(390px,100%);overflow:visible;border:2px solid #a9dce966;border-radius:28px;background:linear-gradient(150deg,#24546c,#112c46 70%);box-shadow:inset 0 2px #ffffff30,0 14px 0 #081e30,0 24px 60px #0007;padding-top:30px}
.result-medal{width:124px;height:124px;margin:-86px auto 10px;filter:drop-shadow(0 6px 0 #071c35);color:#ffdb76}.result-medal svg{width:100%;height:100%;overflow:visible}.medal-wreath{fill:none;stroke:currentColor;stroke-width:7;stroke-linecap:round}.medal-shield{fill:#f9c34d;stroke:#fff0a6;stroke-width:4}.result-medal circle{fill:none;stroke:#76501d;stroke-width:5}.medal-anchor{fill:none;stroke:#76501d;stroke-width:5;stroke-linecap:round}
#naval-result .result-content{padding:0 30px 32px}.result-stars{color:#ffde80;font-size:26px;letter-spacing:8px;margin:10px 0 15px}#naval-result .result-content h1{color:#ffedac;font-size:42px;font-weight:900;letter-spacing:4px;text-shadow:0 4px #79502c;margin-bottom:14px}#naval-result .result-description{color:#bcd8e6;margin:0 0 30px;font-size:14px}
#naval-result .result-replay{justify-content:center;gap:20px;background:linear-gradient(#ffe89a,#ffc84b);border:2px solid #fff2b9;border-radius:15px;color:#67421a;box-shadow:0 5px #a96b27;padding:15px;font-size:20px;font-weight:900}
#naval-result.result-lose .result-medal{color:#a9c5db}#naval-result.result-lose .medal-shield{fill:#8faabe;stroke:#e0eef7}#naval-result.result-lose .medal-anchor,#naval-result.result-lose .result-medal circle{stroke:#334c67}#naval-result.result-lose .result-content h1{color:#e3eef9;text-shadow:0 4px #172e48}#naval-result.result-lose .result-stars{color:#8ca9be}#naval-result.result-lose .result-replay{background:linear-gradient(#a5edff,#59c4ef);border-color:#d5f8ff;color:#174867;box-shadow:0 5px #286f96}
#naval-result .result-replay:active{transform:translateY(3px);box-shadow:0 2px #286f96}#naval-result .result-replay:focus-visible{outline:3px solid white;outline-offset:5px}
#toy-loader,#toy-loader.ready{background:#081e35}#toy-loader .poster{width:min(100vw,calc(100dvh * .5696));background:#081e35}#toy-loader .poster-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}#toy-loader .poster-shade{background:linear-gradient(180deg,transparent 65%,#061a36cc)}

/* Progress never travels or resets; only its width increases. */
#toy-loader .toy-track i,#toy-loader.ready .toy-track i{animation:none!important;transform:none!important;width:0;transition:width .3s ease-out}

/* Goose-project style: one transparent UI sprite over gameplay. */
#naval-result{background:#06142688;backdrop-filter:none;padding:16px}
#naval-result .result-banner{display:block;width:min(620px,95vw);padding:0;border:0;background:none;cursor:pointer;animation:result-enter .35s ease-out both;filter:drop-shadow(0 8px 10px #0005)}
#naval-result .result-banner img{display:block;width:100%;height:auto;pointer-events:none}
#naval-result .result-banner:focus-visible{outline:2px solid #fff9;outline-offset:10px;border-radius:40%}
#naval-result .result-banner:active{transform:scale(.97)}
#naval-result .result-banner:focus-visible{outline:none;filter:drop-shadow(0 0 5px #fff8)}

/* Fixed 720:1280 playfield; horizontal resize adds letterboxing. */
html,body{width:100%!important;height:100%!important;margin:0!important;padding:0!important;overflow:hidden!important;background:#071c2b!important}
body{display:grid!important;place-items:center!important}
#GameDiv{position:relative!important;flex:none!important;width:min(100vw,56.25dvh)!important;height:min(100dvh,177.7777778vw)!important;max-width:none!important;margin:0!important;padding:0!important;overflow:hidden!important}
#Cocos3dGameContainer,#GameCanvas{width:100%!important;height:100%!important;margin:0!important;padding:0!important;display:block!important}
#toy-loader .poster{width:min(100vw,56.25dvh)!important;height:min(100dvh,177.7777778vw)!important}
#naval-result .result-banner{width:min(620px,90vw,50.625dvh)}

