:root{--bg:#f1ede2;--card:#f8f5ec;--ink:#1c1a16;--mut:#6f695b;--line:#d6cfbd;--ac:#c8341b;--code-bg:#1c1a16;--code-fg:#ece6d6;--code-in:#e6dfcc;--serif:"Noto Serif TC",Georgia,serif;--sans:"Noto Sans TC",system-ui,sans-serif;--mono:"JetBrains Mono",ui-monospace,Menlo,monospace}@media (prefers-color-scheme:dark){:root{--bg:#141310;--card:#1b1915;--ink:#ece6d6;--mut:#9a9381;--line:#35312a;--ac:#ff7a5c;--code-bg:#0d0c0a;--code-fg:#ece6d6;--code-in:#2a2720}}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);font:16px/1.75 var(--sans);-webkit-text-size-adjust:100%;margin:0}.page{max-width:680px;padding:calc(env(safe-area-inset-top) + 28px) calc(env(safe-area-inset-right) + 20px) calc(env(safe-area-inset-bottom) + 100px) calc(env(safe-area-inset-left) + 20px);margin:0 auto}h1{font:700 2.1rem/1.2 var(--serif);letter-spacing:.02em;margin:.15em 0 .3em}h2{font:700 1.25rem/1.3 var(--serif);margin:0}h3{font:700 .95rem var(--sans);align-items:center;gap:8px;margin:0 0 .5em;display:flex}h3:before{content:"";background:var(--ac);width:8px;height:8px;display:inline-block}code{font-family:var(--mono);background:var(--code-in);word-break:break-all;border-radius:2px;padding:1px 6px;font-size:.86em}.code,.mono{font-family:var(--mono);font-size:.84rem}pre.code{background:var(--code-bg);color:var(--code-fg);white-space:pre-wrap;word-break:break-all;border-radius:2px;margin:10px 0;padding:14px;line-height:1.6;overflow-x:auto}.kicker{font:500 .72rem var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--mut)}.kicker em{font-style:normal}.muted{color:var(--mut)}.small{font-size:.82rem}.accent{color:var(--ac)}.lede{color:var(--mut);max-width:34em;margin:0 0 18px}.hero{padding-bottom:6px}.prog{background:var(--line);height:3px;margin:14px 0 8px}.prog i{background:var(--ac);height:100%;display:block}.box{border:1px solid var(--line);background:var(--card);border-radius:2px;margin:14px 0;padding:16px}.box ul{margin:.3em 0;padding-left:1.2em}.box li{margin:.45em 0}.box p{margin:.4em 0}.task{border-left:3px solid var(--ac)}.start{text-align:left;background:var(--ink);width:100%;color:var(--bg);font:inherit;cursor:pointer;border:0;border-radius:2px;gap:3px;margin:18px 0 10px;padding:18px;display:grid}.start strong{font:700 1.3rem var(--serif)}.start .kicker{color:var(--ac)}.link{border:0;border-bottom:1px solid var(--line);text-align:left;width:100%;color:var(--ink);font:500 .85rem var(--mono);cursor:pointer;background:0 0;padding:12px 0}.link.danger{color:var(--ac);border:0;width:auto;margin-top:34px}.mapitem{border-left:3px solid;margin:10px 0;padding:6px 0 6px 12px;font-size:.9rem;display:grid}.chap{border-top:2px solid var(--ink);gap:2px;margin:38px 0 6px;padding-top:12px;display:grid}.row-lv{text-align:left;border:0;border-bottom:1px solid var(--line);width:100%;color:var(--ink);font:inherit;cursor:pointer;background:0 0;align-items:center;gap:16px;padding:14px 0;display:flex}.row-lv .num{font:500 1.5rem var(--mono);color:var(--mut);width:2.2ch}.row-lv .grow{flex:1;gap:1px;display:grid}.row-lv strong{font:700 1.05rem var(--serif)}.row-lv .tag{color:var(--mut);font-size:.85rem;line-height:1.5}.row-lv .state{font:500 .78rem var(--mono);color:var(--mut)}.row-lv.done .num,.row-lv.done .state{color:var(--ac)}.row-lv:active{background:var(--card)}.btn{background:var(--ink);color:var(--bg);border:1px solid var(--ink);font:500 .9rem var(--sans);cursor:pointer;border-radius:2px;margin:8px 8px 0 0;padding:9px 16px}.btn.ghost{color:var(--ink);border-color:var(--ink);background:0 0}.btn.sm{margin:0;padding:3px 10px}.btn:disabled{opacity:.35}.row{flex-wrap:wrap;display:flex}.field{background:var(--bg);width:100%;color:var(--ink);border:1px solid var(--ink);font:inherit;border-radius:2px;margin:8px 0;padding:10px;font-size:16px}.field.mono{font-family:var(--mono);font-size:15px}.field:focus{outline:2px solid var(--ac);outline-offset:1px}.tabs{border-bottom:1px solid var(--line);margin:18px 0;display:flex}.tabs button{white-space:nowrap;color:var(--mut);font:500 .9rem var(--sans);cursor:pointer;background:0 0;border:0;border-bottom:3px solid #0000;flex:1;margin-bottom:-1px;padding:10px 4px}.tabs .on{color:var(--ink);border-bottom-color:var(--ac)}.back{color:var(--mut);font:500 .8rem var(--mono);text-decoration:none}.ok{color:#2f7a3d;font-weight:500}.err{color:var(--ac);margin:6px 0}@media (prefers-color-scheme:dark){.ok{color:#7fd08a}}.nav{background:var(--bg);border-top:1px solid var(--ink);padding-bottom:env(safe-area-inset-bottom);z-index:5;display:flex;position:fixed;bottom:0;left:0;right:0}.nav a{text-align:center;color:var(--mut);font:500 .78rem var(--mono);letter-spacing:.06em;border-top:3px solid #0000;flex:1;margin-top:-1px;padding:13px 0;text-decoration:none}.nav a.on{color:var(--ink);border-top-color:var(--ac)}.toast{left:20px;right:20px;bottom:calc(env(safe-area-inset-bottom) + 70px);background:var(--ink);color:var(--bg);z-index:9;border-radius:2px;align-items:center;gap:8px;padding:10px 14px;display:flex;position:fixed}.toast span{flex:1}.toast .btn{background:var(--bg);color:var(--ink);border-color:var(--bg)}.toast .btn.ghost{color:var(--bg);background:0 0}table{border-collapse:collapse;width:100%;font-family:var(--mono);font-size:.8rem}td,th{border:1px solid var(--line);text-align:left;padding:5px 8px}.scroll{max-height:260px;overflow:auto}.mem{flex-wrap:wrap;gap:3px;margin:8px 0;display:flex}.mem b{width:30px;height:30px;font:600 .75rem var(--mono);background:var(--line);color:var(--ink);border-radius:2px;place-items:center;display:grid}.mem .buf{color:#111;background:#b9c8dc}.mem .adm{color:#111;background:#e3a29a}.mem .ret{color:#111;background:#c9b7dd}.mem .hot{outline:2px solid var(--ink)}iframe.sand{border:1px solid var(--ink);background:#fff;border-radius:2px;width:100%;height:150px}.dialog{color:#222;word-break:break-all;background:#fff;border:1px solid #999;border-radius:2px;margin:8px 0;padding:12px}hr{border:0;border-top:1px solid var(--line)}
