@charset "UTF-8";
:root{color-scheme:dark;--bg:#101d22;--panel:#17292d;--line:#30474a;--ink:#edf0df;--muted:#9aadaa;--mint:#c7e6af;--water:#a9e5da;--gold:#efc67d;--dry:#607c80;--hot:#efad84}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 50% 42%,#213c3b30,transparent 60%),var(--bg);color:var(--ink);font:15px/1.65 "Segoe UI","Microsoft YaHei",sans-serif}button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;background:transparent;color:var(--ink);border:1px solid var(--line);border-radius:7px;padding:10px 16px;min-height:44px}button:hover{background:#ffffff0b;border-color:var(--muted)}button:disabled{opacity:.4;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--gold);outline-offset:4px}a{color:inherit;text-decoration:none}.mast{max-width:1500px;margin:auto;padding:24px 4%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{font-size:12px;letter-spacing:2px;display:flex;align-items:center;gap:10px}.brand-mark{font-size:30px;line-height:1;color:var(--mint)}.quiet{font-size:13px;border:none;padding-right:0}.quiet span{margin-left:12px}.muted{color:var(--muted)}main{max-width:1500px;padding:0 4%;margin:auto}.intro{display:flex;justify-content:space-between;align-items:end;padding:44px 0 38px}.eyebrow{letter-spacing:2.6px;font-size:10px;color:var(--mint);margin:0 0 12px;font-weight:600}h1{font-family:Georgia,"Microsoft YaHei",serif;font-size:clamp(36px,4vw,54px);font-weight:500;letter-spacing:5px;line-height:1.2;margin:0 0 15px}.title-dot{color:var(--mint)}.subtitle{color:var(--muted);margin:0;font-size:15px}.intro-note{text-align:right;font-size:13px;line-height:2}.intro-note span{color:var(--muted);font-size:12px}.layout{display:grid;grid-template-columns:220px minmax(340px,1fr) 235px;gap:36px;align-items:start}.chapter-panel,.guide-panel{padding-top:20px}h2{font-size:18px;font-weight:500;margin:0 0 12px}.chapter-panel>.muted{font-size:12px;margin-bottom:25px}#levels{display:grid;gap:5px}.level{display:flex;align-items:center;gap:13px;text-align:left;border-color:transparent;border-radius:6px;padding:11px 13px;width:100%;font-size:13px}.level .num{color:var(--muted);font-family:Georgia,serif;font-size:15px}.level .tick{margin-left:auto;color:var(--mint)}.level.active{background:#c7e6af13;border-color:#b8db9d44}.level.active .num{color:var(--mint)}.aside-foot{border-top:1px solid var(--line);margin-top:28px;padding-top:25px;color:var(--muted);font-size:11px}.small-star{font-size:28px;color:var(--mint)}.play-panel{background:linear-gradient(140deg,#1b3032,#15262b);border:1px solid #3a5050;border-radius:12px;padding:25px 30px 24px;box-shadow:0 20px 80px #0002}.play-heading{display:flex;justify-content:space-between;align-items:center;gap:10px}.play-heading h2{font-size:24px;letter-spacing:2px;margin:0}.play-heading .eyebrow{margin-bottom:5px;font-size:9px}.counts{display:flex;gap:24px}.counts span{text-align:center;font-size:10px;color:var(--muted)}.counts strong{display:block;color:var(--ink);font-family:Georgia,serif;font-size:23px;font-weight:400;line-height:1.4}.poem{color:var(--muted);font-size:12px;margin:12px 0 24px}.garden-frame{position:relative;padding:16px;background:radial-gradient(ellipse at center,#40675a33,transparent 70%),#102024;border:1px solid #45605a55;border-radius:9px;max-width:450px;margin:auto}.frame-corner{position:absolute;width:22px;height:22px;border-color:var(--mint);opacity:.45}.tl{top:-1px;left:-1px;border-top:1px solid;border-left:1px solid;border-radius:8px 0 0}.br{bottom:-1px;right:-1px;border-right:1px solid;border-bottom:1px solid;border-radius:0 0 8px}.board{display:grid;grid-template-columns:repeat(var(--size),1fr);gap:5px}.tile{padding:0;aspect-ratio:1;min-height:0;border:1px solid #38504e;background:#25383a;border-radius:8px;position:relative;display:flex;align-items:center;justify-content:center;touch-action:manipulation}.tile:hover{background:#314847;border-color:#8baf9c}.tile svg{width:100%;height:100%;display:block;pointer-events:none}.tile.fixed{cursor:default;background:#2a3e38;border-color:#79977780}.tile.empty{background:#13262a;border-color:#233c39}.tile.hinted{outline:3px solid var(--gold);outline-offset:1px}.tile.lit{background:#314a41;border-color:#8dab7166}.tile:disabled{opacity:1}.tile .channel{stroke:var(--dry);fill:none;stroke-linecap:round;stroke-linejoin:round}.tile.lit .channel{stroke:var(--water)}.tile .ripple{fill:none;stroke:var(--gold);opacity:.7}.tile .petal{fill:var(--dry)}.tile.lit .petal{fill:var(--gold)}.tile .leak-dot{fill:var(--hot)}.motion .tile.lit .channel{stroke-dasharray:3 1;animation:flow 2s linear infinite}.legend{display:flex;justify-content:center;gap:23px;font-size:10px;color:var(--muted);margin:14px 0 6px}.key{font-style:normal;font-size:15px;margin-right:3px}.spring{color:var(--water)}.flower{color:var(--gold)}.leak{color:var(--hot)}.flow-status{text-align:center;font-size:12px;min-height:20px;color:var(--mint);margin:8px 0 17px}.toolbar{display:flex;justify-content:center;gap:8px}.toolbar button{font-size:12px;padding:8px 14px}.guide-panel ol{list-style:none;counter-reset:guide;padding:0;margin:30px 0 0}.guide-panel li{counter-increment:guide;position:relative;padding-left:28px;margin-bottom:26px;font-size:13px}.guide-panel li:before{content:counter(guide,decimal-leading-zero);font-family:Georgia,serif;color:var(--mint);position:absolute;left:0;top:0;font-size:12px}.guide-panel b{font-weight:500}.guide-panel li p{color:var(--muted);font-size:12px;line-height:1.9;margin:7px 0 0}.guide-tip{padding:15px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;gap:12px}.guide-tip span{color:var(--gold);font-size:23px}.guide-tip p,.keyboard-note{font-size:11px;color:var(--muted);line-height:1.9;margin:0}.keyboard-note{margin-top:20px}footer{display:flex;justify-content:space-between;gap:15px;color:var(--muted);font-size:10px;border-top:1px solid var(--line);padding:25px 0;margin-top:38px}.win{text-align:center;background:#b9d6a10c;border:1px solid #9dbb7b55;border-radius:8px;margin-top:23px;padding:20px}.win h3{font-size:23px;letter-spacing:2px;margin:6px 0}.win p{font-size:12px;color:var(--muted)}.win .eyebrow{color:var(--mint)}.win-actions{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.win button{font-size:12px}.primary{background:var(--mint);color:#1c302a;border-color:var(--mint)}.primary:hover{background:#e0f3c8;color:#1c302a}.warning{border:1px solid var(--hot);color:var(--hot);padding:15px;margin-bottom:20px;font-size:13px}.warning button{margin:8px 8px 0 0;font-size:12px}.warning span{display:block}dialog{background:#192e31;color:var(--ink);border:1px solid var(--line);border-radius:14px;width:min(520px,calc(100% - 30px));padding:28px;max-height:90dvh;overflow:auto;box-shadow:0 30px 120px #0008}dialog::backdrop{background:#081416ce}dialog p{font-size:13px;color:var(--muted)}.dialog-head{display:flex;align-items:start;justify-content:space-between}.dialog-head button{border:none;padding:0;width:40px}.setting{display:flex;justify-content:space-between;align-items:center;padding:17px 0;border-top:1px solid var(--line)}.setting small{display:block;color:var(--muted);font-size:11px}.setting input{width:22px;height:22px;accent-color:var(--mint)}hr{border:none;border-top:1px solid var(--line);margin:10px 0 20px}.backup-actions{display:flex;gap:10px;flex-wrap:wrap}.backup-actions button{font-size:13px}.privacy{font-size:11px!important;margin:22px 0}.danger{color:var(--hot);border-color:transparent;font-size:12px;padding-left:0}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#dce6cf;color:#20352d;padding:12px 22px;border-radius:8px;max-width:90%;font-size:13px;z-index:5;box-shadow:0 10px 40px #0004}#toast:empty{display:none}[hidden]{display:none!important}.contrast{--dry:#a8bcbf;--muted:#cfdbd6;--line:#718882;--water:#fff;--gold:#ffe28d}.contrast .tile{border-color:#8fa29a}.contrast .tile.lit{background:#46633e}.contrast .tile.lit .channel{stroke-width:7}.contrast .tile:not(.lit) .channel{stroke-dasharray:2 5}@keyframes flow{to{stroke-dashoffset:-16}}@media(prefers-reduced-motion:reduce){.motion .tile.lit .channel{animation:none}}@media(min-width:1400px){.layout{grid-template-columns:240px minmax(400px,1fr) 260px;gap:45px}.garden-frame{max-width:460px}}
@media(max-width:1100px){.layout{grid-template-columns:180px minmax(320px,1fr);gap:22px}.guide-panel{grid-column:1/-1;padding:10px 0}.guide-panel ol{display:flex;gap:25px;margin-top:20px}.guide-panel li{flex:1;margin-bottom:15px}.guide-tip{padding:12px}.keyboard-note{margin:12px}.play-panel{padding:22px}.intro{padding-top:35px}}
@media(max-width:650px){.mast{padding:17px 5%}.brand{font-size:9px;letter-spacing:1px;gap:7px}.brand-mark{font-size:25px}.quiet{font-size:11px}main{padding:0 5%}.intro{padding:26px 0 25px}.intro .eyebrow{font-size:8px;letter-spacing:2px}.intro-note{display:none}h1{font-size:36px;letter-spacing:3px}.subtitle{font-size:12px}.layout{display:flex;flex-direction:column;gap:18px}.chapter-panel{padding:0;width:100%}.chapter-panel>.eyebrow,.chapter-panel>h2,.aside-foot{display:none}.chapter-panel>.muted{margin:0 0 10px;font-size:11px}#levels{grid-template-columns:repeat(8,1fr);gap:4px}.level{padding:4px;justify-content:center;min-height:40px;gap:0;border-color:var(--line);position:relative}.level .level-name{display:none}.level .num{font-size:14px}.level .tick{position:absolute;right:3px;top:0;font-size:9px}.play-panel{width:100%;padding:18px 13px}.play-heading{padding:0 5px}.play-heading h2{font-size:22px}.counts{gap:14px}.counts strong{font-size:20px}.poem{font-size:11px;padding:0 5px;margin:12px 0 16px}.garden-frame{padding:11px}.board{gap:4px}.tile{border-radius:6px}.toolbar button{padding:8px 10px;font-size:11px}.legend{gap:16px}.flow-status{font-size:11px}.guide-panel{width:100%;padding:14px 4px}.guide-panel h2{font-size:19px}.guide-panel ol{display:block}.guide-panel li{margin-bottom:18px}.guide-panel li p{font-size:12px}.keyboard-note{display:none}footer{flex-direction:column;gap:5px;margin-top:10px;padding:20px 0}.win{padding:17px 10px}.win h3{font-size:21px}dialog{padding:22px}.setting{font-size:14px}}
