:root{font-family:"Microsoft YaHei",system-ui,sans-serif;color:#34412d;background:#dfe9df;touch-action:none}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#d6dfd4;transition:background 1.4s ease}html[data-theme="night"] body{background:#202b38}
#game{position:relative;width:min(100vw,calc(100vh * 750 / 1334));height:min(100vh,calc(100vw * 1334 / 750));margin:auto;overflow:hidden;box-shadow:0 0 45px #26352d55;background:#dfe9df;transition:background 1.4s ease}
canvas{display:block;width:100%;height:100%;touch-action:none}
#cover{position:absolute;z-index:4;inset:0;display:flex;flex-direction:column;align-items:center;background:url("assets/cover-forest-v2.png") center/cover no-repeat;transition:opacity .8s ease,visibility .8s ease}#cover.hidden{display:flex;opacity:0;visibility:hidden;pointer-events:none}.cover-copy{margin-top:23%;padding:30px 55px;text-align:center;color:#35472f;background:#f5f1dfbf;border:1px solid #d6ccb0;border-radius:54% 46% 51% 49%/46% 49% 51% 54%;backdrop-filter:blur(4px)}.cover-copy h1{margin:0;font-family:KaiTi,"STKaiti",serif;font-size:58px;letter-spacing:8px}.cover-copy p{margin:8px 0 0;font-size:19px;letter-spacing:4px}.leaf-mark{display:block;color:#718849;font-size:19px}#startGame{position:absolute;bottom:17%;min-width:260px;padding:18px 38px;border:1px solid #9cac6b;border-radius:999px;color:#fff8e8;background:#7c9250e8;box-shadow:0 8px 22px #39442c55;font-size:28px;font-weight:800}#coverSettings{position:absolute;bottom:9%;border:1px solid #ffffffaa;border-radius:999px;padding:10px 24px;color:#f7f2e8;background:#45533c99;font-weight:700}
#toast{position:absolute;left:50%;top:38%;transform:translate(-50%,-50%) scale(.8);opacity:0;padding:.55em 1em;border-radius:999px;background:#172f49d9;font-size:clamp(16px,4vw,28px);font-weight:900;pointer-events:none;transition:.18s}
#toast.show{opacity:1;transform:translate(-50%,-50%) scale(1)}
#dialog{position:absolute;inset:0;display:grid;place-items:center;background:#06283d88;backdrop-filter:blur(3px)}#dialog.hidden{display:none}
.card{width:78%;padding:28px;text-align:center;color:#613219;border:6px solid #f5b63c;border-radius:28px;background:linear-gradient(#fff6bd,#ffd169);box-shadow:0 14px 0 #894c20,0 20px 40px #06283d88}.card h1{margin:0 0 8px;font-size:38px}.card p{font-size:22px;white-space:pre-line}.card button{border:0;border-radius:20px;padding:14px 30px;color:white;background:linear-gradient(#71d844,#2a9d31);box-shadow:0 6px 0 #187226;font-size:22px;font-weight:900}
#settingsButton{position:absolute;right:3.5%;top:max(14px,env(safe-area-inset-top));z-index:3;border:1px solid #ffffff80;border-radius:999px;padding:8px 13px;color:#34412d;background:#f8f3e7cc;font-weight:700}
.panel{position:absolute;z-index:5;left:10%;right:10%;top:50%;transform:translateY(-50%);padding:26px;color:#3c4437;background:#f6f1e5f2;border:1px solid #cfc4aa;border-radius:22px;box-shadow:0 24px 60px #24332d66;backdrop-filter:blur(10px)}.panel.hidden{display:none}.panel h2{margin:0 0 24px;text-align:center}.panel p{font-weight:700}.hint{font-size:13px!important;font-weight:400!important;color:#74786c}.segmented{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.segmented button,.primary{border:1px solid #c9c2ae;border-radius:12px;padding:11px;background:#ebe5d6;color:#4a5143}.segmented button.active{color:white;background:#788c55;border-color:#788c55}.primary{display:block;width:60%;margin:24px auto 0;color:#fff;background:#788c55;font-weight:800}
.setting-row{display:flex;align-items:center;justify-content:space-between;margin:16px 0;font-weight:700}.switch{position:relative;width:50px;height:28px;border:0;border-radius:999px;background:#aaa}.switch::after{content:"";position:absolute;top:4px;left:4px;width:20px;height:20px;border-radius:50%;background:#fff;transition:.2s}.switch[aria-pressed="true"]{background:#7f9852}.switch[aria-pressed="true"]::after{left:26px}
html[data-theme="night"] #settingsButton{color:#ece6d8;background:#45534ddd}html[data-theme="night"] .panel{color:#eee8da;background:#35423ff2;border-color:#66716d}html[data-theme="night"] .segmented button{color:#ded9ce;background:#4b5752;border-color:#65706b}
