.harbor-game{color:#173e43;min-height:100vh;font-family:var(--font-geist-sans),"PingFang TC","Microsoft JhengHei",sans-serif;background:#f2e7c9;padding:0 24px 34px}.harbor-game *{box-sizing:border-box}.harbor-top{border-bottom:1px solid #1b4f5525;justify-content:space-between;align-items:center;max-width:1000px;min-height:62px;margin:auto;display:flex}.harbor-top a{color:#173e43;align-items:center;gap:8px;font-size:15px;font-weight:850;text-decoration:none;display:flex}.harbor-top>span{letter-spacing:1.3px;font-size:13px;font-weight:950}.harbor-top small{opacity:.55;margin-left:8px;font-size:12px}.harbor-shell{max-width:980px;margin:auto}.harbor-heading{justify-content:space-between;align-items:center;padding:20px 0 17px;display:flex}.harbor-heading p{color:#5f735f;margin:0 0 5px;font-size:14px}.harbor-heading h1{letter-spacing:-1px;align-items:center;gap:11px;margin:0;font-size:34px;font-weight:950;line-height:1.2;display:flex}.harbor-heading h1 svg{color:#df704e}.harbor-heading>button{color:#184b51;background:#fffaf0;border:1px solid #1b4f5529;border-radius:50%;place-items:center;width:46px;height:46px;display:grid}.harbor-heading button:disabled{opacity:.3}.harbor-layout{grid-template-columns:minmax(0,480px) minmax(0,1fr);align-items:center;gap:38px;display:grid}.harbor-board{background:#fffaf0;border:1px solid #1b4f5522;border-radius:24px;position:relative;overflow:hidden;box-shadow:0 18px 38px #48622b1a}.harbor-hud{border-bottom:1px solid #1b4f551b;grid-template-columns:repeat(4,1fr);padding:12px 14px;display:grid}.harbor-hud>div:not(:first-child){border-left:1px solid #1b4f5518;padding-left:11px}.harbor-hud small{color:#68755c;font-size:12px;display:block}.harbor-hud strong{font-variant-numeric:tabular-nums;font-size:20px;font-weight:950;line-height:1.35}.harbor-hud em{font-size:11px;font-style:normal;font-weight:600}.harbor-hud .urgent{color:#cb4f40}.harbor-scene{background:linear-gradient(#b7dfd5 0 29%,#74babb 29% 100%);min-height:500px;padding:17px 17px 14px;position:relative;overflow:hidden}.harbor-water{opacity:.3;background:repeating-linear-gradient(175deg,#fff0 0 17px,#fff7 18px 20px,#fff0 21px 38px);animation:5s linear infinite harbor-water;position:absolute;inset:29% 0 0}.harbor-ports{z-index:2;grid-template-columns:repeat(3,1fr);gap:8px;display:grid;position:relative}.harbor-port{background:#fffbe8dd;border:2px solid #fff9;border-radius:15px;flex-direction:column;justify-content:center;align-items:center;gap:2px;min-height:83px;display:flex;box-shadow:0 6px 12px #17454a1c}.harbor-port svg{width:24px}.harbor-port span{font-size:13px;font-weight:900}.harbor-port b{letter-spacing:2px;font-size:11px}.harbor-port.coral{color:#b5483e}.harbor-port.teal{color:#197b75}.harbor-port.sun{color:#a66d13}.harbor-port.plum{color:#764b83}.harbor-port.sky{color:#337aaa}.harbor-port.lime{color:#4d7f32}.harbor-belt{z-index:2;aspect-ratio:1;background:#31989b55;border:20px solid #e8d7ad;border-radius:27%;width:76%;margin:18px auto 8px;position:relative;box-shadow:inset 0 0 0 4px #62503e33,0 9px #59473a30}.harbor-belt:after{content:"";border:3px dashed #6a5848aa;border-radius:24%;animation:8s linear infinite harbor-belt;position:absolute;inset:-13px}.belt-mark{z-index:3;color:#ad4d3f;background:#fff6d8;border-radius:5px;padding:3px 5px;font-size:10px;font-weight:900;position:absolute;top:59%;right:-27px;transform:rotate(90deg)}.belt-center{color:#18484d;background:#fff7e5dd;border-radius:25%;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:26%;box-shadow:0 5px 15px #18484d25}.belt-center svg{width:28px}.belt-center b{font-size:20px}.belt-center span{font-size:11px;font-weight:850}.belt-center i{color:#9b3b31;text-align:center;background:#f1d5c7;border-radius:8px;width:78%;height:16px;margin-top:5px;font-size:9px;font-style:normal;line-height:16px;position:relative;overflow:hidden}.belt-center i:before{content:"";width:var(--fill);background:#e46f5c55;position:absolute;inset:0 auto 0 0}.belt-cargo{z-index:4;color:#fff;border:3px solid #fff8df;border-radius:7px;place-items:center;width:27px;height:27px;margin:-14px;font-size:13px;font-weight:950;transition:left 80ms linear,top 80ms linear;display:grid;position:absolute;box-shadow:0 3px 6px #153d3c55}.coral{background:#e86f5a}.teal{background:#35a598}.sun{background:#efb443}.plum{background:#9567a2}.sky{background:#65aeda}.lime{background:#78a94e}.gold{outline:3px solid #ffe370;box-shadow:0 0 0 2px #9a6829,0 3px 6px #153d3c55}.harbor-piles{z-index:3;grid-template-columns:repeat(6,1fr);align-items:end;gap:6px;display:grid;position:relative}.harbor-piles button{color:#fff;cursor:pointer;background:#173e43cc;border:1px solid #fff9;border-radius:12px;flex-direction:column;justify-content:flex-end;align-items:center;min-width:0;height:76px;padding:5px;display:flex}.harbor-piles button:disabled{opacity:.42;cursor:not-allowed}.harbor-piles kbd{border:1px solid #fff5;border-radius:4px;align-self:flex-start;padding:1px 4px;font-size:9px}.harbor-piles small{margin-top:3px;font-size:9px}.crate-stack{width:32px;height:32px;position:relative}.crate-stack span{border:2px solid #fff7;border-radius:5px;place-items:center;width:27px;height:23px;font-size:10px;display:grid;position:absolute;bottom:0;left:3px}.harbor-overlay{z-index:10;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#173e43bb;place-items:center;padding:24px;display:grid;position:absolute;inset:0}.harbor-dialog{text-align:center;color:#fff;max-width:360px}.harbor-dialog>span,.harbor-overline{letter-spacing:1.4px;color:#ffd779;font-size:11px;font-weight:950}.harbor-dialog h2{margin:12px 0;font-size:31px;line-height:1.06}.harbor-dialog p{color:#e9f1dc;font-size:14px;line-height:1.65}.harbor-dialog button{color:#173e43;background:#f6c44e;border:0;border-radius:999px;align-items:center;gap:8px;padding:13px 22px;font-size:15px;font-weight:950;display:inline-flex}.harbor-dialog small{color:#dce9de;margin-top:14px;font-size:11px;display:block}.harbor-tools{border-top:1px solid #1b4f5518;align-items:center;gap:9px;padding:10px 12px;display:flex}.harbor-tools span{align-items:center;gap:5px;font-size:12px;font-weight:850;display:flex}.harbor-tools svg{width:16px}.harbor-tools .active{color:#d36544}.harbor-tools button{color:#fff;background:#1c7777;border:0;border-radius:10px;align-items:center;gap:6px;margin-left:auto;padding:9px 11px;font-size:12px;font-weight:900;display:flex}.harbor-tools button:disabled{opacity:.35}.harbor-notice{text-align:center;color:#68755c;min-height:25px;margin:0;padding:0 14px 10px;font-size:12px}.harbor-side h2{margin:9px 0 12px;font-size:28px;line-height:1.18}.harbor-side>p{color:#5b6b58;font-size:14px;line-height:1.7}.harbor-tip{border-top:1px solid #1b4f551f;gap:12px;margin-top:17px;padding-top:17px;display:flex}.harbor-tip>svg{color:#d26e4e;flex:none}.harbor-tip p{margin:0}.harbor-tip b{font-size:14px;display:block}.harbor-tip span{color:#657160;margin-top:4px;font-size:12px;line-height:1.55;display:block}.harbor-side details{color:#5f6b5c;margin-top:17px;font-size:12px}.harbor-side summary{cursor:pointer;font-weight:900}.harbor-side details p{line-height:1.6}.harbor-game .game-session{margin-top:24px}@keyframes harbor-water{to{background-position:140px 0}}@keyframes harbor-belt{to{transform:rotate(360deg)}}@media (max-width:820px){.harbor-layout{grid-template-columns:minmax(0,1fr)}.harbor-side{max-width:480px}.harbor-shell{max-width:560px}.harbor-scene{min-height:480px}}@media (max-width:520px){.harbor-game{padding:0 10px 24px}.harbor-top{min-height:52px}.harbor-heading{padding:13px 5px}.harbor-heading h1{font-size:28px}.harbor-layout{gap:22px}.harbor-scene{min-height:430px;padding:11px 9px 10px}.harbor-port{min-height:70px}.harbor-port svg{width:20px}.harbor-belt{border-width:16px;width:78%;margin-top:14px}.harbor-piles{gap:3px}.harbor-piles button{height:70px;padding:3px}.harbor-tools{flex-wrap:wrap}.harbor-tools button{margin-left:0}.harbor-hud{padding:10px 8px}.harbor-hud strong{font-size:17px}.harbor-hud>div:not(:first-child){padding-left:6px}.harbor-dialog h2{font-size:27px}}@media (max-width:365px){.harbor-top>span{font-size:11px}.harbor-heading p{font-size:12px}.harbor-scene{min-height:405px}.harbor-port span{font-size:11px}.harbor-piles{gap:2px}.harbor-piles kbd{display:none}.crate-stack{width:28px}}@media (prefers-reduced-motion:reduce){.harbor-water,.harbor-belt:after{animation:none}.belt-cargo{transition:none}}
