:root{color-scheme:dark;--night:#071b2a;--deep:#0b2635;--panel:#103241;--panel2:#123747;--border:#2a5662;--ink:#f0f8f7;--muted:#b4ccd1;--aqua:#8ae9d6;--gold:#f9ca83;--coral:#f5a795;--shadow:0 20px 50px #02111d60}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;min-width:300px;padding-bottom:calc(92px + env(safe-area-inset-bottom));background:radial-gradient(ellipse at 4% 0,#1c4b5c80,transparent 500px),linear-gradient(150deg,#081e2b,#071a27 44%,#061624);color:var(--ink);font:16px/1.55 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button{font:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.44}button:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:3px}button{-webkit-tap-highlight-color:transparent}h1,h2,h3{font-family:Georgia,"Times New Roman",serif;line-height:1.16;font-weight:500}h1{font-size:clamp(2.65rem,7vw,5rem);letter-spacing:-.055em;margin:.55rem 0 1.1rem}h2{font-size:clamp(1.7rem,3.5vw,2.2rem);letter-spacing:-.026em;margin:4px 0 15px}h3{font-size:1.38rem;margin:3px 0 10px}p{margin:0 0 14px;color:#d0e0e3}p:last-child{margin-bottom:0}small{font-size:.75rem}.eyebrow{color:var(--aqua);font-size:.72rem;text-transform:uppercase;letter-spacing:.16em;font-weight:780}.goldlabel{color:var(--gold);font-size:.82rem;font-weight:750}.soft-label,.muted-label,.smallprint{color:var(--muted);font-size:.78rem}.gain{color:#a8f4d6!important}.loss{color:var(--coral)!important}.tag{font-size:.75rem;font-weight:700;color:#d7f0eb;padding:4px 10px;border-radius:24px;border:1px solid #5e929762;background:#23566630;white-space:nowrap}
.mast{position:relative;overflow:hidden;border-bottom:1px solid #6cabae39;background:radial-gradient(circle at 78% 35%,#ceab7550,transparent 20%),linear-gradient(157deg,#143849 10%,#133f4d 42%,#0b2637 78%);box-shadow:0 16px 35px #00121a42}.mast:after{position:absolute;content:"";pointer-events:none;inset:0;background:radial-gradient(ellipse 85% 54% at 20% 105%,#4cbbaa33,transparent 70%),repeating-radial-gradient(ellipse at 15% 115%,transparent 0,transparent 38px,#7cdddf1a 40px,#7ddedf18 42px);opacity:.8}.mast-inner{max-width:1180px;margin:auto;padding:16px 24px;position:relative;z-index:2;display:flex;justify-content:space-between;align-items:center;gap:10px;border-bottom:1px solid #d4fffb14}.brandline{display:flex;gap:11px;align-items:center;min-width:0}.brandline img{width:43px;height:43px;border-radius:11px;box-shadow:0 8px 18px #0004}.brandline div{display:flex;flex-direction:column;line-height:1.2}.brandline strong{letter-spacing:.12em;font-size:.86rem}.brandline span{color:#acd9dc;font-size:.59rem;letter-spacing:.18em;margin-top:5px}.install-button{color:var(--night);background:var(--gold);border:0;border-radius:20px;padding:10px 14px;font-size:.82rem;font-weight:800}.install-button[hidden]{display:none}.mast-content{max-width:1180px;margin:0 auto;padding:35px 24px 60px;position:relative;z-index:2}.mast-content h1 em{font-style:normal;color:var(--gold)}.mast-content p{max-width:500px;font-size:1.02rem;color:#d2e5e2}.mast-wave{position:absolute;bottom:-38px;right:-65px;width:58%;height:125px;border:25px solid #9befdc17;border-left:0;border-top:0;border-radius:50%;transform:rotate(-16deg);z-index:1}.mast-wave:before,.mast-wave:after{position:absolute;content:"";inset:28px 12px -30px -20px;border:12px solid #9befdc12;border-left:0;border-top:0;border-radius:50%}.mast-wave:after{inset:-35px -15px 32px -35px;border-width:15px}
.app-container{max-width:1180px;margin:auto;padding:24px 24px 18px}.datebar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:15px;color:#d9efed;font-size:.84rem}.datebar b{font-weight:700;color:var(--gold)}.weatherpill{border:1px solid #6fabb167;border-radius:20px;padding:3px 10px;color:#afddd6;font-size:.7rem}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin-bottom:22px}.metric{border:1px solid #4b85915b;background:linear-gradient(132deg,#163b49,#0e2d3e);padding:16px 17px;border-radius:13px;box-shadow:0 11px 30px #03111c38;min-width:0}.metric>span{display:block;color:#b8d5d8;text-transform:uppercase;letter-spacing:.13em;font-size:.67rem;font-weight:700}.metric>strong{display:block;font-size:clamp(1.2rem,2.4vw,1.78rem);line-height:1.2;white-space:nowrap;letter-spacing:-.02em;margin-top:7px}.metric strong small{color:#9ec5cd;font-size:.85rem;font-weight:500}.event-alert{padding:22px;margin:0 0 25px;border:1px solid #d4ab718e;background:linear-gradient(132deg,#4b493a,#204e50 65%,#154350);border-radius:14px;box-shadow:var(--shadow)}.event-alert .eyebrow{color:#ffdfa7}.event-alert h2{margin-top:8px}.event-alert p{max-width:780px}.cols{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(270px,1fr);gap:20px}.maincol,.sidecol{min-width:0}.maincol .panel,.sidecol .panel{margin-top:19px}.panel{border:1px solid #4a79816e;background:linear-gradient(153deg,#113442,#0b2838);padding:23px;border-radius:15px;box-shadow:0 11px 32px #01111c36}.panel.compact{padding:19px}.panel .eyebrow{display:block;margin-bottom:9px}.panel p{font-size:.91rem}.section-line{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}.section-line h2{margin:2px 0 4px}.btn{display:inline-flex;justify-content:center;align-items:center;gap:6px;min-height:44px;padding:11px 16px;border:1px solid transparent;border-radius:10px;font-weight:760;text-align:center;font-size:.88rem;text-decoration:none;line-height:1.25}.btn.primary{background:linear-gradient(135deg,#9bead5,#67c9ba);color:#082d34;box-shadow:0 8px 24px #3ad7b71b}.btn.gold{background:#f5c784;color:#222d32}.btn.subtle{color:#deeeee;border-color:#53818b;background:#20455354}.btn.danger{background:transparent;color:#ffc0b3;border-color:#aa6662}.split-buttons{display:flex;flex-wrap:wrap;gap:9px}.split-buttons .btn{flex:1}.action-line{margin-top:18px}.action-line>.btn.primary{font-size:1rem}.control-block{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 0;border-bottom:1px solid #45717b4c}.control-block>div:first-child{display:flex;flex-direction:column}.control-block strong{font-size:1.12rem}.control-block small{color:#9fbfc7}.inline-buttons{display:flex;gap:7px}.inline-buttons button{min-width:45px;min-height:44px;border-radius:10px;border:1px solid #58949992;background:#224d5b;color:#fff;font-size:1.65rem;line-height:1}.inline-buttons button:active{background:#356779}.meter-wrap{margin:22px 0 14px}.meter-title{display:flex;justify-content:space-between;font-size:.82rem;margin-bottom:7px;color:#e3eeed}.meter{height:9px;background:#254d57;border-radius:15px;overflow:hidden}.meter i,.goal-progress i{display:block;height:100%;border-radius:15px;background:linear-gradient(90deg,#53c5b4,#a5eacf);transition:width .25s}.forecast{display:flex;flex-direction:column;gap:3px;border-left:3px solid var(--aqua);background:#16485558;padding:12px 15px;border-radius:0 9px 9px 0;margin-top:15px}.forecast span{color:#d2e7e4;font-size:.82rem}.forecast strong{font-size:1.17rem}.forecast small{color:#bdd5d8}.inline-note{margin-top:10px;color:#a2e2d5;font-size:.78rem}
.harbor-scene{overflow:hidden;border-radius:15px;border:1px solid #527e8599;box-shadow:var(--shadow);position:relative}.horizon{position:relative;display:flex;justify-content:space-between;background:linear-gradient(90deg,#1b6871,#245d71 80%);padding:12px 17px;color:#cbf3ec;font-size:.7rem;letter-spacing:.12em;font-weight:760;border-bottom:1px solid #8de5dc3e}.horizon>span:last-child{color:#e1ede5;font-size:.67rem}.water{min-height:230px;position:relative;padding:27px 15px 30px;background:radial-gradient(ellipse at 17% 22%,#51b9b852,transparent 65%),repeating-linear-gradient(171deg,transparent 0,transparent 26px,#75cdd013 28px,#75cdd013 30px),linear-gradient(135deg,#17546a,#0d4159 60%,#0c304d)}.waterline{position:absolute;width:115%;height:45px;border-top:2px solid #9be6dc20;transform:rotate(-12deg);left:-2%}.waterline.a{top:31%}.waterline.b{top:69%}.piers{position:relative;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:11px;padding:4px 3px;z-index:1}.piers:before{content:"";position:absolute;inset:0 49.4%;background:#bf9167;opacity:.7;z-index:-1;box-shadow:0 2px 5px #001b24a8}.berth{border-radius:9px;min-width:0;min-height:67px;padding:6px 2px;background:#14647a91;border:1px solid #a0eee067;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:#e8fbf4;transition:transform .13s,background .13s;touch-action:manipulation}.berth:active{transform:scale(.95)}.berth.taken{background:#206d7999}.berth.free{border-style:dashed;background:#11475b88;color:#b0d3d6}.berth .boat{font-size:clamp(1.2rem,3.2vw,1.65rem);line-height:1.25;filter:drop-shadow(0 3px 3px #072c3480)}.berth.free .boat{font-size:1.15rem;color:#7cbbc0;font-weight:400}.berth small{color:#d7f5f0;font-size:.64rem}.quay{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;color:#18383e;background:repeating-linear-gradient(90deg,#c2a27b 0,#c2a27b 26px,#ae8f6f 27px,#ae8f6f 29px);padding:10px 15px;font-size:.79rem;font-weight:780;text-shadow:0 1px #ffffff55}
.goal-box{background:linear-gradient(154deg,#254d4f,#143c48);border:1px solid #73a99d77;padding:22px;border-radius:15px;box-shadow:var(--shadow)}.goal-box h3{font-size:1.63rem;margin:14px 0 8px}.goal-box p{font-size:.9rem;color:#d9ebe7}.goal-head{display:flex;justify-content:space-between;align-items:center;gap:6px}.goal-head>span:last-child{white-space:nowrap;font-size:.72rem;color:#d5d8c3}.goal-progress{height:6px;border-radius:10px;background:#194450;margin-top:16px;overflow:hidden}.simple-row{display:flex;align-items:baseline;gap:10px;justify-content:space-between;border-bottom:1px solid #4c72794d;padding:9px 0;font-size:.84rem}.simple-row:last-child{border-bottom:0}.simple-row>span{color:#bdd0d5}.simple-row b{white-space:nowrap;font-weight:710}.sidecol>.panel h2{font-size:1.42rem}
.tabintro{margin:3px 0 24px}.tabintro h2{font-size:clamp(2rem,4vw,2.8rem);margin-top:9px}.tabintro p{max-width:650px;color:#bed6d9}.build-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.upgrade-card{display:grid;grid-template-columns:55px 1fr;grid-template-areas:'icon content' 'icon button';gap:10px 14px;align-items:start;border-radius:15px;background:linear-gradient(140deg,#123947,#102c3c);border:1px solid #40778182;padding:17px;min-width:0}.upgrade-card.locked{opacity:.73}.upgrade-icon{grid-area:icon;background:#1e5660;border:1px solid #508e91a8;border-radius:12px;width:54px;height:54px;display:grid;place-items:center;font-size:1.8rem}.upgrade-body{grid-area:content;min-width:0}.upgrade-heading{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.upgrade-heading h3{font-size:1.25rem;margin:0}.upgrade-body p{font-size:.82rem;margin:7px 0 11px;line-height:1.4}.upgrade-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px}.upgrade-card .btn{grid-area:button;justify-self:start;min-width:104px;padding:8px 13px;min-height:39px}.upgrade-card .goldlabel{white-space:nowrap}
.ledger-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:17px}.ledger-stats .metric strong{font-size:1.23rem}.chart{display:flex;align-items:stretch;gap:4px;height:190px;margin-top:19px;border-bottom:1px solid #588387;padding:5px 0 0;overflow:hidden}.bar-slot{display:flex;align-items:end;justify-content:center;flex:1;min-width:2px}.bar{width:100%;max-width:16px;border-radius:4px 4px 0 0;display:block}.bar.up{background:linear-gradient(0deg,#48bba5,#8fead2)}.bar.down{background:linear-gradient(0deg,#ce7b72,#f2b6a5)}.legend{display:flex;gap:16px;font-size:.8rem;color:#d0e1e1;margin-top:12px}.legend i{display:inline-block;width:12px;height:12px;border-radius:2px;margin-right:5px}.legend-green{background:#72d8bf}.legend-coral{background:#e79a8c}
.milestone-list{display:flex;flex-direction:column;gap:7px}.milestone{display:flex;gap:12px;align-items:flex-start;background:#0d2b3a;padding:10px 12px;border:1px solid #3c69736a;border-radius:9px}.milestone>span{height:27px;width:27px;min-width:27px;border:1px solid #457c81;border-radius:50%;display:grid;place-items:center;font-size:.77rem;color:#add2d5}.milestone.done>span{background:#2c7163;color:#d5fff4;border-color:#60b59d}.milestone strong{font-size:.86rem}.milestone small{display:block;color:#b6c8cd;margin-top:2px}.journal{margin:0;padding-left:23px}.journal li{border-bottom:1px solid #4c77804a;padding:9px 0;font-size:.84rem;color:#d2e4e5}.journal li:last-child{border:0}.dangerzone{margin-top:20px;padding-top:18px;border-top:1px solid #49687580}
.howto{margin-top:36px;color:#bcd1d4}.howto details{border-top:1px solid #497c806d;padding-top:15px}.howto summary{cursor:pointer;font-size:.86rem;display:flex;justify-content:space-between;gap:15px;color:#dfebea;padding-bottom:5px}.howto details p{font-size:.82rem;max-width:820px;margin-top:13px}.howto summary span{font-size:1.2rem;color:var(--aqua)}.dock-nav{position:fixed;bottom:0;left:0;right:0;z-index:10;height:calc(74px + env(safe-area-inset-bottom));padding:7px max(13px,env(safe-area-inset-left)) calc(7px + env(safe-area-inset-bottom)) max(13px,env(safe-area-inset-right));display:flex;align-items:stretch;justify-content:center;gap:min(4vw,27px);background:#082334f7;border-top:1px solid #547c8569;box-shadow:0 -10px 35px #0005;backdrop-filter:blur(20px)}.dock-nav button{border:0;border-radius:11px;background:transparent;color:#afc7cc;min-width:64px;width:120px;max-width:23vw;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:5px;gap:2px;touch-action:manipulation}.dock-nav button>span{font-size:1.34rem;line-height:1.2}.dock-nav button small{font-weight:730;font-size:.72rem}.dock-nav button.active{background:#24586a;color:#a0f2de;box-shadow:inset 0 0 0 1px #518b9188}#toast{position:fixed;bottom:calc(84px + env(safe-area-inset-bottom));left:50%;z-index:12;transform:translate(-50%,60px);opacity:0;transition:.2s;max-width:min(460px,90vw);min-width:220px;padding:12px 16px;border:1px solid #9ccdc6;background:#dff9f0;color:#12372e;font-size:.86rem;font-weight:700;text-align:center;border-radius:11px;box-shadow:0 10px 30px #0009;pointer-events:none}#toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:920px){.cols{grid-template-columns:1fr}.sidecol{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}.sidecol .goal-box{grid-column:span 2}.sidecol .panel{margin:0}.build-grid{grid-template-columns:1fr}.upgrade-card{grid-template-columns:55px 1fr 92px;grid-template-areas:'icon content button';align-items:center}.upgrade-card .btn{justify-self:stretch;min-width:0}}
@media(max-width:600px){.mast-inner{padding:13px 16px}.mast-content{padding:34px 18px 42px}.mast-content p{font-size:.94rem;max-width:85%}.app-container{padding:17px 12px 12px}.datebar{padding:0 3px}.datebar .weatherpill{font-size:.66rem}.stats{gap:7px;margin-bottom:16px}.metric{padding:12px 9px}.metric>span{font-size:.57rem;letter-spacing:.09em}.metric>strong{font-size:clamp(.98rem,4vw,1.22rem)}.metric strong small{font-size:.68rem}.horizon{padding:9px 10px}.water{min-height:230px;padding:16px 9px 19px}.piers{gap:6px}.berth{min-height:59px;border-radius:7px;padding:5px 1px}.berth .boat{font-size:1.2rem}.berth small{font-size:.55rem}.quay{font-size:.7rem;padding:8px 10px}.panel,.goal-box{padding:16px}.sidecol{display:flex;flex-direction:column;gap:12px}.sidecol>*,.sidecol .goal-box{grid-column:auto;width:100%}.upgrade-card{grid-template-columns:43px 1fr;grid-template-areas:'icon content' 'icon button';gap:8px 11px;padding:13px}.upgrade-icon{width:43px;height:43px;font-size:1.5rem}.upgrade-card .btn{justify-self:start;min-width:95px}.upgrade-heading h3{font-size:1.16rem}.upgrade-body p{font-size:.79rem}.upgrade-footer{align-items:flex-start;flex-direction:column}.ledger-stats{grid-template-columns:1fr}.ledger-stats .metric strong{font-size:1.36rem}.tabintro{padding:0 4px}.event-alert{padding:17px}.event-alert .btn{flex:1 1 160px}.action-line .btn{flex:1 1 145px}.mast-wave{opacity:.5}.dock-nav{gap:2px}.brandline strong{font-size:.75rem}.brandline span{font-size:.51rem}.brandline img{width:38px;height:38px}}
@media(max-width:370px){.brandline strong{font-size:.67rem}.mast-content p{max-width:100%}.stats .metric{padding:10px 6px}.metric>strong{font-size:.94rem}.dock-nav button{min-width:60px}.quay{font-size:.61rem}.piers{gap:4px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
/* Øhavet: illustrated harbor, collecting and short-session play. */
.mast{min-height:0;padding:0;background:#122f38}.mast-inner{padding:18px 0}.mast .brandline span{letter-spacing:.14em;font-size:9px}.app-container{max-width:1240px}.cols{grid-template-columns:minmax(0,1fr) 270px}.village{display:block;width:100%;background:linear-gradient(#9cd5d5,#f1e7c5)}.harbor-scene{overflow:hidden;border-radius:22px}.harbor-scene .water{background:linear-gradient(140deg,#55bbc1,#257c92);min-height:210px;padding:22px}.harbor-scene .piers{gap:8px}.berth{background:rgba(255,255,255,.12);border-color:#e2cda780;min-height:78px;position:relative}.berth svg{width:70px;max-width:100%;height:64px;animation:bob 5s ease-in-out infinite}.berth:nth-child(2n) svg{animation-delay:-2s}.berth small{color:#fff}.empty-slip{font-size:24px;color:#d9eeee}.scene-1 .village{background:linear-gradient(#d99ba2,#f5c999)}.scene-1 .water{background:linear-gradient(135deg,#a478a5,#556eaa)}.scene-2 .village{background:linear-gradient(#34546f,#8da5ba)}.scene-2 .water{background:linear-gradient(135deg,#315c7a,#183e60)}.horizon{background:#1b454d;padding:13px 20px}.guest-grid,.route-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.guest-card{padding:16px;border:1px solid #375966;border-radius:16px;background:#163641;display:flex;flex-direction:column}.guest-card>svg{height:92px;align-self:center}.guest-card h3{font-size:16px;margin:6px 0}.guest-card p{font-size:13px;line-height:1.6;flex:1}.guest-card small{margin-bottom:12px;color:#b4d8c4}.guest-card .btn{font-size:12px;padding:12px 8px;min-height:44px}.route-grid article{background:#163641;border-radius:12px;padding:15px}.route-grid h3{font-size:15px}.route-grid p{font-size:12px}.collection-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.collection-item{padding:14px;text-align:center;border-radius:12px;background:#173844;display:flex;flex-direction:column}.collection-item svg{height:90px}.collection-item small{font-size:11px;margin-top:7px}.undiscovered{filter:grayscale(1);opacity:.5}.chapter{border-left:4px solid #edc977}.life-panel{margin-top:20px}@keyframes bob{50%{transform:translateY(-3px) rotate(2deg)}}@media(max-width:900px){.cols{grid-template-columns:1fr}.guest-grid{grid-template-columns:1fr}.guest-card{display:grid;grid-template-columns:78px 1fr;gap:2px 14px}.guest-card>svg{grid-row:1/5;width:78px;height:78px}.guest-card .btn{grid-column:1/-1}.guest-card p{margin:4px 0}.route-grid{grid-template-columns:1fr}.collection-grid{grid-template-columns:repeat(2,1fr)}.harbor-scene .water{padding:14px}.berth{min-height:65px}.berth svg{height:48px}.brandline strong{font-size:16px}}@media(prefers-reduced-motion:reduce){.berth svg{animation:none}}
.quick-day{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0}.quick-day span{font-size:13px;color:#b6ccd2}
.sea-life{position:relative;height:56px;border-bottom:1px solid #ffffff25;margin-bottom:14px;overflow:hidden}.passing-boat{position:absolute;width:65px;top:-12px;animation:cross-sea 24s linear infinite}.passing-boat svg{width:65px;height:65px}.gull{position:absolute;color:#fff;font-size:32px;animation:gull-flight 16s linear infinite}.gull-one{top:0;left:20%}.gull-two{top:16px;left:65%;animation-delay:-8s}.voyage-marker{color:#fff6cf;font-size:12px;position:absolute;right:20px;top:20px}.construction-art{font-size:38px;padding:14px;background:repeating-linear-gradient(130deg,#f5c85b20 0 12px,transparent 12px 24px);border-radius:12px}.construction-art span{display:inline-block;transform-origin:bottom right;animation:hammer 1s ease-in-out infinite}.arrival-show{position:fixed;z-index:90;inset:0;pointer-events:none;display:none;background:linear-gradient(transparent,#318fa777,transparent);align-items:center;justify-content:center;flex-direction:column}.arrival-show.sailing-in{display:flex}.arrival-show>span{background:#143641;padding:12px 24px;border-radius:30px;color:#fff6d8;font-weight:bold}.arrival-boat{width:150px;animation:arrival 2.6s ease-in-out both}.arrival-boat svg{width:150px;filter:drop-shadow(0 8px 10px #08263488)}@keyframes cross-sea{from{left:-75px}to{left:110%}}@keyframes gull-flight{from{transform:translateX(-130px)}to{transform:translateX(430px)}}@keyframes hammer{50%{transform:rotate(-30deg)}}@keyframes arrival{0%{transform:translate(-60vw,40px) rotate(-12deg)}45%,70%{transform:translate(0,0)}100%{transform:translate(60vw,-25px)}}@media(prefers-reduced-motion:reduce){.passing-boat,.gull,.construction-art span,.arrival-boat{animation:none}.arrival-show{background:transparent}.arrival-boat{display:none}}
.cargo-gauge{position:relative;height:65px;background:#102b37;border-radius:14px;margin:18px 0;overflow:hidden}.cargo-target{position:absolute;left:35%;width:30%;height:100%;background:#53ad8977;border-left:2px solid #99e4bb;border-right:2px solid #99e4bb}.cargo-needle{position:absolute;top:12px;font-size:30px;transform:translateX(-50%);animation:cargo-slide 1.8s linear infinite}@keyframes cargo-slide{0%,100%{left:0}50%{left:100%}}@media(prefers-reduced-motion:reduce){.cargo-needle{animation:none!important;left:50%}}
.production-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:20px}.production-main,.production-layout aside{display:flex;flex-direction:column;gap:20px;min-width:0}.factory-top{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:6px 0 18px}.factory-top h1{font-size:30px;margin:6px 0}.factory-wallet{text-align:right;display:flex;flex-direction:column;gap:5px}.factory-wallet strong{font-size:24px;color:#f4cf86}.factory-wallet span{font-size:12px;color:#bad8d6}.stock-strip{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-bottom:22px}.stock-strip>div{display:grid;grid-template-columns:auto 1fr;gap:3px 9px;padding:12px;background:#183e47;border:1px solid #37606a;border-radius:12px}.stock-strip span{grid-row:span 2;font-size:25px}.stock-strip small{font-size:10px;color:#b7d4d1}.stock-strip b{font-size:18px}.production-grid,.orders-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.station,.order-card{background:#193d46;border:1px solid #3c626b;border-radius:16px;padding:16px;min-width:0}.station h3,.order-card h3{font-size:16px;margin:9px 0}.station-icon{font-size:32px}.recipe{padding:12px 0;border-top:1px solid #ffffff18;display:flex;flex-direction:column;gap:8px}.recipe strong{font-size:12px}.recipe small,.order-card small{font-size:11px;line-height:1.5;color:#b7d3cc}.production-grid .btn,.orders-grid .btn{font-size:12px;padding:10px;min-height:44px;width:100%}.order-card{display:flex;flex-direction:column;gap:9px}.order-card p{flex:1;font-size:12px;margin:0;line-height:1.6}.soft-label{font-size:10px;color:#eac98c}.order-needs{display:flex;flex-direction:column;gap:4px;font-size:12px}.stock-enough{color:#a3e5b7}.stock-missing{color:#e7c5a3}.route-choice{display:flex;flex-wrap:wrap;gap:8px;margin:15px 0}.route-choice .btn{font-size:12px}.restoration{border-color:#ad9059;background:linear-gradient(145deg,#244950,#173640)}.restoration h2{font-size:23px}.restoration-progress{display:flex;flex-direction:column;gap:10px;margin-top:22px;font-size:11px;color:#94aaa9}.restoration-progress .done{color:#a2e6b7}.restore-needs{padding:12px;background:#102e38;border-radius:10px;font-size:13px}.smallprint{font-size:11px;color:#b4cecc}.sailing-card{display:flex;gap:22px;align-items:center;padding:15px;background:#125264;border-radius:15px;overflow:hidden}.sailing-card>svg{width:110px;flex-shrink:0;animation:bob 3s ease-in-out infinite}.sailing-card h3{margin:0}.work-animation{height:30px;display:flex;align-items:center;gap:9px;margin:12px 0}.work-animation i{width:12px;height:12px;background:#8de4cb;border-radius:50%;animation:work-pulse 1.2s infinite}.work-animation i:nth-child(2){animation-delay:.2s}.work-animation i:nth-child(3){animation-delay:.4s}@keyframes work-pulse{50%{transform:translateY(-9px);opacity:.4}}.production-main .village{max-height:170px}.production-main .water{max-height:220px;overflow:auto;min-height:160px;padding:10px}.production-main .berth{min-height:52px}.production-main .berth svg{height:40px}.production-main .sea-life{height:35px;margin-bottom:5px}.legacy-management{margin-top:20px}.legacy-management summary{cursor:pointer;font-weight:bold;padding:6px}.production-guide{padding:12px 16px;background:#2d555b;border-left:4px solid #f4cf86;border-radius:10px;font-size:13px;line-height:1.6}.factory-top .eyebrow{font-size:10px}@media(max-width:1000px){.production-layout{grid-template-columns:1fr}.production-layout aside{display:grid;grid-template-columns:1fr 1fr}.factory-top h1{font-size:26px}}@media(max-width:600px){.factory-top{align-items:flex-start;gap:8px}.factory-top h1{font-size:21px}.factory-wallet strong{font-size:18px}.factory-wallet span{font-size:10px;max-width:130px}.stock-strip{grid-template-columns:repeat(3,1fr);gap:6px}.stock-strip>div{padding:9px}.stock-strip span{font-size:20px}.production-grid,.orders-grid{grid-template-columns:1fr}.production-layout aside{display:flex}.production-main .village{max-height:130px}.production-main .water{max-height:150px;min-height:130px}.production-main .berth svg{height:32px}.production-main .berth{min-height:42px}.order-card{gap:7px}.station{padding:15px}.sailing-card{gap:8px;padding:12px}.sailing-card>svg{width:65px}.sailing-card .btn{font-size:11px}.route-choice .btn{flex:1}.production-layout,.production-main{gap:14px}.factory-top{margin-top:0}.stock-strip{margin-bottom:14px}}
