@charset "UTF-8";
:root{--safe-top:max(env(safe-area-inset-top,0px),var(--toy-safe-top,0px));--safe-right:max(env(safe-area-inset-right,0px),var(--toy-safe-right,0px));--safe-bottom:max(env(safe-area-inset-bottom,0px),var(--toy-safe-bottom,0px));--safe-left:max(env(safe-area-inset-left,0px),var(--toy-safe-left,0px));color-scheme:dark;--ink:#ecedda;--muted:#a9bebd;--gold:#e9c681;--line:#a68e5266;--panel:#102c39;--teal:#72bfa8;font-family:"Microsoft YaHei","PingFang SC",system-ui,sans-serif;background:#081b2c;color:var(--ink)}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}button,input,select{font:inherit}button{color:inherit;cursor:pointer;border:1px solid var(--line);border-radius:8px;background:#163746;min-height:44px;padding:10px 18px;touch-action:manipulation;transition:background .15s,box-shadow .15s}button:hover{background:#244b57}button:active{transform:translateY(1px)}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #fae0a0;outline-offset:3px}button:disabled{opacity:.45;cursor:default}button.selected{background:#bb9851;color:#0e2932;border-color:#f8daa0;box-shadow:inset 0 0 0 2px #e4c280}button.locked[data-hammers="999"]:after{content:'(投币解锁)';display:block;font-size:10px}button.locked[data-guide="sheep"]:after{content:'(关注解锁)';font-size:10px}[hidden]{display:none!important}h1,h2,h3,p{margin:0}h2{font-size:26px;letter-spacing:3px}small{font-size:12px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.game-shell,.screen{position:absolute;inset:0;width:100%;height:100%;overflow:hidden}.title-screen{background:#0c2135 url('assets/art/title.webp') center/cover no-repeat}.main-menu{position:absolute;left:9%;top:49%;width:28%;display:grid;gap:13px}.main-menu>button,.menu-small{min-height:54px}.main-menu button{background:linear-gradient(100deg,#102d3de8,#163f49eb);border-color:#d8b87980;box-shadow:0 5px 20px #03131b55;font-size:clamp(15px,2cqw,24px);letter-spacing:5px;text-shadow:0 2px 4px #000}.main-menu .menu-primary{background:linear-gradient(105deg,#b48b42,#e3c17a);border-color:#ffe8ae;color:#142837;text-shadow:none;font-weight:bold}.menu-small{display:flex;gap:10px}.menu-small button{flex:1;font-size:clamp(13px,1.3cqw,17px);letter-spacing:2px;padding-inline:8px}.version-mark{position:absolute;bottom:15px;right:22px;color:#c8dbd0a6;font-size:11px;letter-spacing:3px}
.play-screen{background:#102b35}.play-screen canvas,.plot-targets{position:absolute;inset:0;width:100%;height:100%}.plot-targets{pointer-events:none}.plot-targets button{position:absolute;padding:0;border:0;border-radius:40%;background:transparent;pointer-events:auto;min-height:0;-webkit-tap-highlight-color:transparent}.plot-targets button:focus-visible{outline:3px solid #f7d481;outline-offset:-8px}.plot-targets button:active{background:#f6d28325;transform:none}.game-hud{position:absolute;inset:max(12px,var(--safe-top)) max(18px,var(--safe-right)) auto max(18px,var(--safe-left));display:flex;align-items:flex-start;justify-content:space-between;pointer-events:none;gap:12px}.game-hud button{pointer-events:auto}.hud-left{display:flex;gap:6px}.hud-button{background:#102b3bdc;backdrop-filter:blur(8px);padding:8px 13px;font-size:13px}.timer-block{position:absolute;left:50%;transform:translateX(-50%);text-align:center;padding:8px 45px 11px;border:1px solid var(--line);border-top:0;background:linear-gradient(#0b213af2,#173b41e6);border-radius:0 0 22px 22px;margin-top:-13px;box-shadow:0 5px 20px #0004}.timer-block small{display:block;color:#c8d3c7;font-size:11px;letter-spacing:2px}.timer-block strong{font-size:clamp(25px,4.4cqh,44px);font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:3px;color:#ffe2a2}.timer-block.urgent strong{color:#ff9f82}.hammer-button{display:flex;align-items:center;gap:6px;background:linear-gradient(140deg,#405858f5,#172f43f5);padding:4px 16px 4px 5px;box-shadow:0 3px 20px #0005;border-color:#d4b16a}.hammer-button img{width:58px;height:58px;object-fit:contain;transform:rotate(-20deg)}.hammer-button span{font-size:13px;line-height:1.4}.hammer-button b{display:block;color:#ffe0a0;font-size:19px}.field-status{position:absolute;top:17%;left:4%;right:4%;display:flex;justify-content:space-between;font-size:12px;color:#edf1cc;text-shadow:0 2px 5px #001b27;pointer-events:none}.field-status span{padding:5px 12px;border-radius:20px;background:#0c263795}.field-status span:empty{display:none}.field-status .boost{color:#9affd5}
.harvest-shelf{position:absolute;bottom:max(9px,var(--safe-bottom));left:max(18px,var(--safe-left));right:max(18px,var(--safe-right));height:16%;min-height:64px;display:flex;align-items:center;background:linear-gradient(90deg,#092835eb,#12333adb);border:1px solid #c5ad745e;border-radius:13px;box-shadow:0 -5px 30px #00192344;padding:7px 13px;gap:12px}.shelf-heading{flex:0 0 auto;display:grid;gap:7px}.shelf-heading b{font-size:14px;font-weight:500;letter-spacing:1px}.shelf-heading strong{color:var(--gold);font-size:20px;padding-left:5px}.shelf-heading small{font-size:10px;color:var(--muted)}.harvest-list{display:flex;gap:5px;overflow-x:auto;overflow-y:hidden;flex:1;height:100%;align-items:center;scrollbar-width:thin;scrollbar-color:#8d865855 transparent}.empty-basket{font-size:12px;color:#c5cbb4;margin-left:18px}.harvest-item{flex:0 0 58px;display:grid;justify-items:center;align-content:center;height:100%;border-bottom:2px solid #7a8b77}.harvest-item img{height:42px;width:50px;object-fit:contain;filter:drop-shadow(0 2px 3px #0008)}.harvest-item small{font-size:9px;white-space:nowrap;color:#b2c8ba}.harvest-item.ripe{border-color:#e6c47a}.harvest-item.ripe small{color:#ecd49a}
.dialogue-box{position:absolute;left:9%;right:9%;bottom:max(9px,var(--safe-bottom));min-height:22%;background:linear-gradient(110deg,#102b3ffa,#173941fa);border:1px solid #d9bc80;border-radius:15px;box-shadow:0 12px 35px #0009,inset 0 0 0 4px #123848;display:flex;gap:12px;z-index:4;padding:13px 19px}.dialogue-portrait{width:95px;display:flex;align-items:center;flex:none;position:relative}.dialogue-portrait img{width:110px;height:110px;object-fit:contain;filter:drop-shadow(0 5px 5px #0006)}.dialogue-content{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center}.dialogue-heading{display:flex;align-items:center;gap:12px;font-size:12px}.dialogue-heading b{color:#f6d98f;font-size:17px;letter-spacing:3px}.dialogue-heading span{color:#9cc9bb}.dialogue-heading small{margin-left:auto;color:#b6c8c2;font-size:10px}.dialogue-content p{font-size:clamp(13px,1.75cqw,21px);line-height:1.5;min-height:1.5em;padding:5px 0 8px}.dialogue-options{display:flex;gap:10px}.dialogue-options button{min-height:38px;padding:6px 20px;font-size:13px;background:#234d57;border-color:#8bb8a5}.dialogue-options button:first-child{border-color:#e6c27b;color:#ffe2a0}.dialogue-track{height:2px;background:#041d2b;margin-top:6px}.dialogue-track i{display:block;height:100%;background:#d8bc78;width:100%}.paused-overlay{position:absolute;inset:0;z-index:8;background:#031925bf;backdrop-filter:blur(6px);display:grid;place-items:center}.pause-card{text-align:center;display:grid;gap:15px;min-width:260px}.pause-card p{color:#adcbc0}.eyebrow{color:var(--gold);font-size:10px;letter-spacing:3px}.primary-button{background:linear-gradient(120deg,#bd9655,#e1be77);border-color:#f2d79f;color:#112f38;font-weight:700;letter-spacing:2px}.primary-button:hover{background:#efd296}.text-button{background:transparent;border-color:transparent;color:#cdd8c7;font-size:13px}.secondary-button{background:#244b51}.button-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
dialog{color:var(--ink);width:min(730px,90cqw);max-height:90cqh;border:1px solid #b79a60;border-radius:18px;background:linear-gradient(125deg,#112b40,#153b40);padding:24px 28px;box-shadow:0 25px 100px #000a;overflow:auto;scrollbar-width:thin;scrollbar-color:#c6ad7166 transparent}dialog::backdrop{background:#031724c9;backdrop-filter:blur(6px)}.dialog-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px;gap:15px}.dialog-heading h2{font-size:24px;margin-top:4px}.close-button{width:44px;padding:0;font-size:28px;background:transparent}.muted,.field-note{color:var(--muted);font-size:12px;line-height:1.6}.setup-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:25px}fieldset{border:0;padding:0;margin:0 0 19px;min-width:0}legend{font-size:14px;margin-bottom:12px;color:#eadab1}legend small{font-size:11px;color:#a3bdb4;margin-left:7px}.segmented{display:flex;gap:6px}.segmented button{flex:1;white-space:nowrap;padding-inline:7px;font-size:13px}.guide-options{display:flex;gap:9px}.guide-card{flex:1;display:grid;justify-items:center;padding:4px 7px 10px;min-width:0}.guide-card img{height:88px;width:100%;object-fit:contain}.guide-card span{display:grid;gap:5px}.guide-card b{font-size:16px}.guide-card small{font-size:10px;white-space:nowrap}.setup-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding-top:17px}.setup-bottom p{font-size:11px;color:var(--muted)}.setup-bottom button{min-width:165px}.volume-row{display:grid;grid-template-columns:1fr auto;gap:9px;margin:16px 0;font-size:14px}.volume-row input{grid-column:1/-1;width:100%;height:24px;accent-color:#dfbe78}.volume-row output{color:var(--gold)}.name-label{display:flex;align-items:center;gap:15px;margin:16px 0 8px;font-size:13px}input[type=text],input:not([type]),select{background:#0c2535;border:1px solid #7d967455;border-radius:6px;padding:9px 12px;color:var(--ink);min-height:42px}.rules-list{padding-left:24px;font-size:13px;line-height:1.8;color:#b5cfbf;display:grid;gap:12px}.rules-list b{color:#e9d7aa}.rank-filters{display:flex;gap:12px;margin:14px 0}.rank-filters label{flex:1;display:grid;gap:5px;font-size:12px;color:#b4c8bb}.rank-list{height:180px;overflow:auto;margin:12px 0;scrollbar-width:thin}.rank-row{display:grid;grid-template-columns:40px 1fr auto;gap:10px;padding:12px;border-bottom:1px solid #ffffff15;align-items:center}.rank-row>span,.rank-row strong{color:var(--gold)}.rank-row small{display:block;color:#9fbcb3;padding-top:4px;font-size:10px}.rank-empty{padding:30px 0;font-size:13px;color:#b1c9bf}
#result-screen{background:linear-gradient(#052235ba,#052235df),url('assets/art/field.webp') center/cover;overflow:auto;display:grid;place-items:center;padding:18px}.result-card{max-width:800px;width:100%;text-align:center;padding:15px}.result-card h1{font-size:30px;letter-spacing:5px;margin:6px 0}.score-total{display:grid;gap:4px;margin:12px 0}.score-total span{font-size:11px;color:#b0c6b5}.score-total strong{font-size:48px;line-height:1;color:#ffe0a0;font-variant-numeric:tabular-nums}.settlement-stage{display:flex;align-items:center;justify-content:center;gap:18px;min-height:92px}.settlement-stage img{width:74px;height:80px;object-fit:contain}.settlement-stage>div{text-align:left}.settlement-stage b{font-size:17px;color:#e7dab4}.settlement-stage p{font-size:11px;color:#b1c7bd;margin-top:6px}.settlement-stage>strong{color:#f8d178;font-size:32px}.pop #settlement-crop{animation:crop-pop .35s ease-out}.pop #settlement-points{animation:score-pop .4s ease-out}.result-stats{display:flex;justify-content:center;gap:42px;margin:13px 0}.result-stats span{font-size:11px;color:#b4c5b1}.result-stats b{font-size:20px;display:block;color:#e9d5a0;margin-top:5px}.result-breakdown{display:flex;justify-content:center;gap:14px;margin:15px 0}.result-breakdown>div{display:flex;gap:4px;align-items:center}.result-breakdown img{width:32px;height:35px;object-fit:contain}.result-breakdown span{font-size:10px}.result-breakdown b{font-size:11px;display:block;color:#dabf80;margin-top:5px}.result-actions{justify-content:center;margin-top:15px}.result-actions button{font-size:13px}.toast{position:fixed;left:50%;top:15px;transform:translateX(-50%);max-width:80cqw;padding:12px 22px;background:#0a263cf5;border:1px solid #d4bc7d;border-radius:10px;box-shadow:0 6px 35px #0009;font-size:13px;z-index:100;pointer-events:none}.rotate-overlay{display:none;position:fixed;inset:0;z-index:200;background:radial-gradient(ellipse at top,#244a50,#091b2d 70%);align-content:center;justify-items:center;text-align:center;gap:24px;padding:25px}.rotate-symbol{font-size:64px;color:#e2c580}.rotate-overlay h2{font-size:23px}.rotate-overlay p{color:#b0cabb;line-height:1.9;font-size:14px}
@keyframes crop-pop{from{transform:translateY(15px) scale(.65);opacity:0}to{transform:none;opacity:1}}@keyframes score-pop{from{transform:translateY(12px);opacity:0}to{transform:none;opacity:1}}

@container(max-height:520px){.main-menu{gap:8px;top:48%;width:29%}.main-menu>button,.menu-small{min-height:44px}.main-menu button{padding-block:7px}.game-hud{top:8px;left:max(12px,var(--safe-left));right:max(12px,var(--safe-right))}.hammer-button{padding:1px 10px 1px 2px}.hammer-button img{height:43px;width:43px}.hammer-button span{font-size:11px}.hammer-button b{font-size:17px}.timer-block{padding:7px 26px 6px;margin-top:-8px}.timer-block strong{font-size:27px}.timer-block small{font-size:9px}.hud-button{font-size:11px;padding:6px 9px}.field-status{top:17%;font-size:10px}.dialogue-box{left:7%;right:7%;padding:8px 13px;gap:6px;min-height:24%;border-radius:11px}.dialogue-portrait{width:67px}.dialogue-portrait img{width:74px;height:80px}.dialogue-heading b{font-size:14px}.dialogue-heading span{font-size:10px}.dialogue-content p{font-size:13px;padding:3px 0 5px}.dialogue-options{gap:8px}.dialogue-options button{min-height:36px;padding:5px 14px;font-size:12px}.dialogue-track{margin-top:4px}.harvest-shelf{height:17%;min-height:60px;padding:4px 9px;gap:8px;bottom:max(6px,var(--safe-bottom))}.shelf-heading{gap:3px}.shelf-heading b{font-size:12px}.shelf-heading strong{font-size:17px}.shelf-heading small{font-size:9px}.harvest-item{flex-basis:44px}.harvest-item img{width:38px;height:32px}.harvest-item small{font-size:8px}dialog{padding:15px 22px;max-height:94cqh}.dialog-heading{margin-bottom:11px}.dialog-heading h2{font-size:22px}.setup-grid{gap:20px}fieldset{margin-bottom:12px}legend{margin-bottom:8px;font-size:12px}.guide-card img{height:74px}.setup-bottom{padding-top:11px}.setup-bottom button{min-height:44px}.volume-row{margin:10px 0;gap:4px}.name-label{margin-top:10px}.result-card{padding:4px;max-width:750px}.result-card h1{font-size:23px;margin:3px 0}.score-total{margin:7px 0}.score-total strong{font-size:38px}.settlement-stage{min-height:59px;gap:12px}.settlement-stage img{height:55px;width:55px}.result-stats{margin:7px 0}.result-breakdown{margin:8px 0}.result-actions{margin-top:9px}.result-card>.eyebrow{display:none}.result-card #share-button{min-height:32px;padding:5px}.result-breakdown img{height:26px;width:28px}.result-stats b{font-size:17px;margin-top:2px}.pause-card{gap:12px}.pause-card h2{font-size:25px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

@container(max-height:520px){.dialogue-box{min-height:78px;bottom:max(6px,var(--safe-bottom));padding:8px 13px}.dialogue-content{display:grid;grid-template-columns:1fr;align-content:center;gap:2px}.dialogue-box.has-choices .dialogue-content{grid-template-columns:minmax(0,1fr) auto;column-gap:12px}.dialogue-heading{grid-column:1;grid-row:1;gap:8px}.dialogue-content p{grid-column:1;grid-row:2;font-size:12px;padding:0;min-height:0}.dialogue-options{grid-column:2;grid-row:1 / 3;align-self:center;gap:7px}.dialogue-options button{min-height:44px;padding:6px 10px;font-size:11px}.dialogue-track{grid-column:1 / -1}.dialogue-heading small{font-size:9px}.dialogue-portrait{width:55px}.dialogue-portrait img{width:62px;height:64px}.dialogue-heading span{display:none}}

.combo-pop{position:absolute;left:4%;top:34%;padding:10px 18px;border:1px solid #f3d381;border-radius:12px;background:#152f3de8;color:#ffe3a0;font-weight:800;font-size:25px;letter-spacing:3px;box-shadow:0 6px 22px #0008;animation:combo-in .45s ease-out;pointer-events:none}.combo-pop small{display:block;color:#c6ded0;font-size:11px;letter-spacing:1px}@keyframes combo-in{from{transform:translateX(-30px) scale(.7);opacity:0}to{transform:none;opacity:1}}


.result-breakdown{flex-wrap:wrap}.adjustment-summary{flex-basis:100%;font-size:12px;color:#efd290}.combo-pop{left:2%;font-size:clamp(17px,2.3cqw,29px);padding:8px 12px;letter-spacing:1px}@container(max-height:520px){.combo-pop small{font-size:9px}.combo-pop{padding:6px 9px}}

body[data-screen="game"] .toast{top:19%;padding:7px 18px;font-weight:bold;border-color:#eed08b}@container(max-height:520px){body[data-screen="game"] .toast{font-size:11px;padding:5px 12px}}

/* 页面自行保持横屏坐标系，无需浏览器支持 orientation.lock。 */
.viewport-root{position:fixed;left:50%;top:50%;width:var(--game-width,100vw);height:var(--game-height,100vh);transform:translate(-50%,-50%) rotate(var(--game-angle,0deg));transform-origin:center;container-type:size;overflow:hidden;background:#081b2c}
.game-shell,.screen{height:100%}.version-mark{letter-spacing:0}.field-status{min-height:0}
dialog{position:absolute;z-index:30;left:50%;top:50%;margin:0;transform:translate(-50%,-50%);width:min(730px,92%);max-height:94%;}
.modal-shade{position:absolute;inset:0;z-index:20;background:#031724c9;backdrop-filter:blur(6px)}
.viewport-root:has(dialog[open]) .modal-shade{display:block!important}
.toast{position:absolute;max-width:80%}.main-menu button{letter-spacing:1px}h2{letter-spacing:1px}

@container(max-height:520px){
 .setup-dialog .dialog-heading{margin-bottom:8px}.setup-dialog .close-button{height:36px;min-height:36px}
 .setup-dialog fieldset{margin-bottom:9px}.setup-dialog legend{margin-bottom:6px}
 .setup-dialog #unlock-panel{display:flex;gap:10px;align-items:center;margin-bottom:8px}
 .setup-dialog #unlock-description{flex:1;font-size:10px}.setup-dialog #unlock-panel button{min-height:34px;font-size:11px;padding:5px 10px}
 .setup-dialog .setup-bottom{padding-top:8px}.setup-dialog .guide-card img{height:65px}
}
/* 矮横屏把结算结果分为两列，分数、明细与操作按钮同时可见。 */
@container(max-height:520px){
 #result-screen{padding:10px 18px}
 .result-card:has(#result-details:not([hidden])){display:grid;grid-template-columns:.9fr 1.1fr;column-gap:24px;align-items:center}
 .result-card h1,.result-card>#result-category,.result-card>.score-total,.result-card>.settlement-stage,.result-card>#settlement-progress,.result-card>#skip-settlement{grid-column:1}
 .result-card #result-details{grid-column:2;grid-row:1 / span 6;align-self:center}
 .result-card .result-stats{gap:26px;margin:5px 0 8px}
 .result-card .result-breakdown{gap:9px 12px;margin:9px 0}
 .result-card .result-actions{gap:7px;margin-top:8px}
 .result-card .result-actions button{padding:8px 12px;min-height:40px}
 .result-card #share-button{min-height:30px}
 #settings-dialog .dialog-heading{margin-bottom:4px}
 #settings-dialog .close-button{height:36px;min-height:36px}
 #settings-dialog .volume-row{margin:5px 0;font-size:13px}
 #settings-dialog .volume-row input{height:20px}
 #settings-dialog #test-voice-button{min-height:36px;padding:6px 12px}
 #settings-dialog .name-label{margin:8px 0 4px}
}
