:root{--paper:#FAF8F1;--paper-raise:#FFFFFF;--panel:#F1EFE4;--panel-2:#ECE9DC;--ink:#1B1E16;--ink-soft:#55594C;--muted:#847F6F;--line:#E4E0D2;--line-strong:#CEC8B4;--green:#1A4D3C;--green-deep:#123829;--green-soft:#E5EDE4;--green-tint:#EEF2E9;--gold:#9C7C2C;--gold-soft:#F1E8CD;--ok:#1A4D3C;--warn:#9A3412;--serif:Georgia,"Times New Roman","Songti SC","Noto Serif SC","SimSun",serif;--sans:-apple-system,"SF Pro Text","PingFang SC","Noto Sans SC","Microsoft YaHei",system-ui,sans-serif;--mono:"SF Mono","JetBrains Mono",Menlo,Consolas,monospace;--measure:70ch}*{box-sizing:border-box}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}html,body{margin:0}body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16.5px;line-height:1.8;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-feature-settings:"kern"}::selection{background:var(--green-soft);color:var(--green-deep)}:focus-visible{outline:2px solid var(--green);outline-offset:2px;border-radius:3px}.page,.home{color:var(--ink)}.page p,.home p{margin:0 0 18px}.page p:last-child,.home p:last-child{margin-bottom:0}h2{font-family:var(--serif);font-weight:700;letter-spacing:-.005em;font-size:clamp(21px,3vw,26px);line-height:1.28;margin:44px 0 4px;text-wrap:balance;color:var(--ink)}h2 .h2-en{font-family:var(--mono);font-size:12px;font-weight:600;color:var(--green);letter-spacing:.06em;text-transform:uppercase;display:block;margin-bottom:6px}h3{font-family:var(--serif);font-weight:700;font-size:18.5px;line-height:1.4;margin:30px 0 6px;color:var(--ink);letter-spacing:-.003em}.page strong,.home strong{font-weight:640}.kw{color:var(--green-deep);font-weight:640;background:linear-gradient(transparent 62%,var(--green-soft) 62%);padding:0 1px}.page a,.home a{color:var(--green);text-decoration:none;border-bottom:1px solid #bcd0bf;transition:border-color .12s}.page a:hover,.home a:hover{border-bottom-color:var(--green)}code{font-family:var(--mono);font-size:.86em;background:var(--panel-2);border:1px solid var(--line);border-radius:4px;padding:1px 5px;color:var(--green-deep)}ul.tight,ol.tight{margin:8px 0 20px;padding-left:22px}ul.tight li,ol.tight li{margin:6px 0;color:var(--ink)}ul.tight li b,ol.tight li b{font-weight:640}ul.check{list-style:none;margin:8px 0 20px;padding:0}ul.check li{position:relative;padding-left:28px;margin:9px 0}ul.check li:before{content:"✓";position:absolute;left:2px;top:0;color:var(--green);font-weight:700;font-family:var(--mono)}.table-x{overflow-x:auto;margin:14px 0;border:1px solid var(--line-strong);border-radius:6px;background:var(--paper-raise)}table.ledger{border-collapse:collapse;width:100%;font-size:14.5px;min-width:440px}table.ledger th,table.ledger td{text-align:left;padding:11px 15px;border-bottom:1px solid var(--line);vertical-align:top}table.ledger thead th{background:var(--panel);font-family:var(--mono);font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft);font-weight:600;white-space:nowrap}table.ledger tbody tr:last-child td{border-bottom:0}table.ledger td.num,table.ledger th.num{font-family:var(--mono);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}table.ledger td.ex{font-family:var(--mono);font-size:12px;color:var(--muted);white-space:nowrap}.score{font-family:var(--mono);font-weight:600;font-variant-numeric:tabular-nums}.score.hi{color:var(--green)}tr.total td{background:var(--green-soft);font-weight:640}tr.total .score{color:var(--green-deep)}.note{background:var(--green-tint);border:1px solid #D7E1D3;border-left:3px solid var(--green);border-radius:0 6px 6px 0;padding:16px 20px;margin:24px 0;font-size:15px;line-height:1.7}.note .note-tag{display:block;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--green);margin-bottom:6px}.note b{color:var(--green-deep);font-weight:660}.note.gold{background:var(--gold-soft);border-color:#e4d4a0;border-left-color:var(--gold)}.note.gold .note-tag{color:var(--gold)}.note.gold b{color:#7a5f1e}.cardgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:16px 0}.cardgrid.three{grid-template-columns:1fr 1fr 1fr}@media (max-width:640px){.cardgrid,.cardgrid.three{grid-template-columns:1fr}}.card{background:var(--paper-raise);border:1px solid var(--line);border-radius:7px;padding:18px 20px}.card h4{margin:0 0 6px;font-family:var(--serif);font-size:15.5px;font-weight:700}.card p{margin:0;font-size:14px;color:var(--ink-soft);line-height:1.6}.card .card-k{font-family:var(--mono);font-size:11px;color:var(--green);letter-spacing:.06em;text-transform:uppercase;font-weight:600;display:block;margin-bottom:5px}.ruler-shell{margin:22px 0}.ruler-cap{font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--muted);text-transform:uppercase;margin-bottom:10px}.ruler{display:grid;grid-template-columns:repeat(10,1fr);border:1px solid var(--line-strong);border-radius:5px;overflow:hidden;background:var(--paper-raise)}.ruler .tick{position:relative;padding:13px 4px 11px;text-align:center;border-right:1px solid var(--line);font-family:var(--mono)}.ruler .tick:last-child{border-right:0}.ruler .tick .n{font-size:18px;font-weight:600;color:var(--ink)}.ruler .tick .lab{display:block;font-size:9px;line-height:1.3;color:var(--muted);margin-top:5px;height:22px}.ruler .tick.zone{background:var(--green-soft)}.ruler .tick.target .n{color:var(--green)}.ruler .target-mark{position:absolute;top:2px;right:2px;bottom:2px;left:2px;border:2.5px solid var(--green);border-radius:50%;transform:rotate(-4deg) scale(1.04);pointer-events:none}.ruler-note{font-family:var(--mono);font-size:11px;color:var(--muted);margin-top:11px;display:flex;flex-wrap:wrap;gap:5px 18px}.ruler-note b{color:var(--green)}@media (max-width:560px){.ruler{grid-template-columns:repeat(10,minmax(44px,1fr));overflow-x:auto}}.spec{margin:16px 0}.spec-row{display:grid;grid-template-columns:92px 1fr;gap:4px 16px;padding:12px 0;border-top:1px solid var(--line);align-items:start}.spec-row:first-child{border-top:0}.spec-k{font-family:var(--mono);font-size:11px;letter-spacing:.03em;color:var(--green);text-transform:uppercase;padding-top:3px;font-weight:600}.spec-v{font-size:15px;color:var(--ink);line-height:1.65}.spec-v.trap{color:var(--ink-soft)}.spec-v.trap b{color:var(--warn);font-weight:640}@media (max-width:560px){.spec-row{grid-template-columns:1fr;gap:3px}}.chain{border:1.5px dashed var(--green);border-radius:8px;background:var(--green-tint);padding:20px 22px;margin:26px 0}.chain .ct{font-family:var(--serif);font-weight:700;font-size:16px;margin:0 0 8px;color:var(--green-deep)}.chain p{margin:0;font-size:14.5px;color:var(--ink);line-height:1.65}.chain .flow{font-family:var(--mono);font-size:13px;color:var(--green-deep);margin-top:12px;background:var(--paper-raise);border:1px solid #D7E1D3;border-radius:5px;padding:9px 12px}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:16px 0}@media (max-width:640px){.steps{grid-template-columns:1fr}}.step{background:var(--paper-raise);border:1px solid var(--line);border-radius:7px;padding:18px}.step .step-n{font-family:var(--mono);font-size:11px;color:var(--green);font-weight:700;letter-spacing:.08em}.step h4{margin:6px 0;font-family:var(--serif);font-size:16px;font-weight:700}.step p{margin:0;font-size:13.5px;color:var(--ink-soft);line-height:1.6}kbd{font-family:var(--mono);font-size:11px;background:var(--paper-raise);border:1px solid var(--line-strong);border-bottom-width:2px;border-radius:4px;padding:1px 6px;color:var(--ink-soft)}.page-loading{padding:80px 32px;text-align:center;color:var(--muted);font-family:var(--mono);font-size:14px}.shell{height:100vh;display:flex;flex-direction:column;overflow:hidden;background:var(--paper)}.topbar{flex:none;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 22px;height:56px;border-bottom:1px solid var(--line-strong);background:#faf8f1e6;-webkit-backdrop-filter:saturate(1.3) blur(8px);backdrop-filter:saturate(1.3) blur(8px)}.topbar-left{display:flex;align-items:center;gap:14px}.nav-toggle{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--line-strong);background:var(--paper-raise);border-radius:5px;cursor:pointer;color:var(--ink);font-size:14px;line-height:1}.nav-toggle:hover{border-color:var(--green);color:var(--green)}.wordmark{font-family:var(--serif);font-weight:700;font-size:17px;letter-spacing:-.01em;color:var(--ink);text-decoration:none;white-space:nowrap}.wordmark .arrow{color:var(--green);font-weight:400;margin:0 2px}.topnav{display:flex;align-items:center;gap:16px}.topnav a{font-size:13.5px;color:var(--ink-soft);text-decoration:none;white-space:nowrap}.topnav a:hover,.topnav a.active{color:var(--green)}.star-link{font-family:var(--mono);font-size:12.5px}@media (max-width:560px){.topbar{padding:0 13px;gap:8px;height:54px}.topbar-left{gap:9px}.nav-toggle{width:32px;height:32px}.wordmark{font-size:15px}.topnav{gap:11px}.topnav a:not(.star-link):not(.nav-planner){display:none}.star-link{font-size:12px}}.body{display:flex;flex:1 1 auto;min-height:0}.content{flex:1 1 auto;min-width:0;overflow-y:auto;scroll-behavior:smooth}.sidebar{width:290px;flex-shrink:0;height:100%;overflow-y:auto;overscroll-behavior:contain;border-right:1px solid var(--line);background:var(--panel);padding:20px 14px 56px}.side-home{display:block;font-family:var(--serif);font-size:14px;font-weight:700;color:var(--ink);text-decoration:none;padding:8px 12px;border-radius:5px;margin-bottom:10px}.side-home:hover,.side-home.is-active{color:var(--green);background:var(--green-soft)}.side-part{margin-top:18px}.side-part-name{font-family:var(--mono);font-size:10.5px;letter-spacing:.05em;color:var(--muted);font-weight:600;padding:0 12px 7px}.side-part ul{list-style:none;margin:0;padding:0}.side-link{display:flex;align-items:baseline;gap:10px;padding:7px 12px;border-radius:5px;text-decoration:none;color:var(--ink)}a.side-link:hover{background:var(--green-tint)}.side-link.is-active{background:var(--green-soft);font-weight:660;color:var(--green-deep)}.side-link.is-planned{color:#b3ae9c;cursor:default}.side-num{font-family:var(--mono);font-size:11px;color:var(--muted);flex:none;min-width:16px;font-variant-numeric:tabular-nums}.side-link.is-active .side-num,.side-link.is-done .side-num{color:var(--green)}.side-title{font-size:13.5px;line-height:1.4}.side-star{color:var(--gold);font-size:11px}.nav-scrim{display:none}@media (max-width:900px){.sidebar{position:fixed;top:56px;left:0;bottom:0;z-index:30;box-shadow:2px 0 24px #0000001f}.nav-scrim{display:block;position:fixed;top:56px;right:0;bottom:0;left:0;z-index:25;background:#14161047}}.page{max-width:var(--measure);margin:0 auto;padding:44px 32px 20px}.masthead{margin-bottom:20px}.crumb{font-family:var(--mono);font-size:12px;color:var(--muted);margin-bottom:20px}.crumb a{color:var(--green);text-decoration:none;border-bottom:1px solid #bcd0bf}.kicker{font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:.06em;color:var(--green);text-transform:uppercase;margin-bottom:10px}.masthead h1{font-family:var(--serif);font-weight:700;font-size:clamp(28px,4.6vw,40px);line-height:1.14;letter-spacing:-.015em;margin:0;color:var(--ink);text-wrap:balance}.masthead h1 .zh-sub{display:block;font-family:var(--sans);font-weight:400;font-size:16px;line-height:1.5;color:var(--ink-soft);margin-top:14px;letter-spacing:0}.page .lede{font-size:18.5px;line-height:1.7;color:var(--ink-soft);margin:22px 0 6px;padding-top:20px;border-top:1px solid var(--line)}.page .lede b{color:var(--ink);font-weight:600}.bridge{margin:34px 0 8px;background:var(--green-deep);color:#eaf1e7;border-radius:8px;padding:20px 24px}.bridge-tag{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:#9dc3a6;margin-bottom:8px}.bridge-body{font-size:15px;line-height:1.7}.bridge-body b{color:#fff;font-weight:660}.pager{display:flex;justify-content:space-between;gap:16px;margin:44px 0 10px;border-top:1px solid var(--line);padding-top:22px}.pager-link{display:flex;flex-direction:column;gap:4px;text-decoration:none;max-width:47%;padding:12px 16px;border-radius:7px;background:var(--paper-raise);box-shadow:0 0 0 1px var(--line-strong),0 1px 2px #1416100d}.pager-link:hover{box-shadow:0 0 0 1px var(--green),0 1px 2px #1416100f;background:var(--green-tint)}.pager-link.next{align-items:flex-end;text-align:right;margin-left:auto}.pager-dir{font-family:var(--mono);font-size:11.5px;color:var(--green);letter-spacing:.03em}.pager-title{font-size:14px;color:var(--ink);line-height:1.35}.page-foot{font-family:var(--mono);font-size:12px;color:var(--muted);text-align:center;margin:8px 0 0}.site-footer{max-width:var(--measure);margin:40px auto 0;padding:26px 32px 60px;border-top:1px solid var(--line);display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;font-family:var(--mono);font-size:12px;color:var(--muted)}.site-footer a{color:var(--green);text-decoration:none}.search-trigger{display:flex;align-items:center;gap:8px;background:var(--paper-raise);border:1px solid var(--line-strong);border-radius:6px;padding:5px 10px;cursor:pointer;color:var(--ink-soft);font-size:13px}.search-trigger:hover{border-color:var(--green);color:var(--green)}.search-trigger-icon{font-size:14px}.search-kbd{font-family:var(--mono);font-size:10.5px;background:var(--panel);border:1px solid var(--line-strong);border-radius:3px;padding:0 4px;color:var(--muted)}@media (max-width:560px){.search-trigger-text,.search-kbd{display:none}.search-trigger{padding:6px 9px}}.search-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#14161052;display:flex;align-items:flex-start;justify-content:center;padding:12vh 16px 16px}.search-box{width:min(600px,100%);background:var(--paper);border:1px solid var(--line-strong);border-radius:10px;box-shadow:0 24px 60px #00000038;overflow:hidden}.search-input{width:100%;border:0;border-bottom:1px solid var(--line);padding:16px 18px;font-size:16px;font-family:var(--sans);background:transparent;color:var(--ink);outline:none}.search-results{list-style:none;margin:0;padding:6px;max-height:52vh;overflow-y:auto}.search-empty{padding:18px;color:var(--muted);font-size:14px;text-align:center}.search-item{display:flex;align-items:baseline;gap:12px;width:100%;text-align:left;background:transparent;border:0;border-radius:6px;padding:10px 12px;cursor:pointer;color:var(--ink)}.search-item.is-active{background:var(--green-soft)}.search-num{font-family:var(--mono);font-size:11px;color:var(--muted);flex:none;min-width:18px}.search-main{display:flex;flex-direction:column;gap:2px;flex:1 1 auto;min-width:0}.search-title{font-size:14.5px;font-weight:600}.search-star{color:var(--gold)}.search-hook{font-size:12.5px;color:var(--ink-soft);line-height:1.4}.search-bridge{font-family:var(--mono);font-size:11px;color:var(--green);flex:none;white-space:nowrap}.search-foot{display:flex;gap:16px;padding:10px 16px;border-top:1px solid var(--line);font-size:11.5px;color:var(--muted)}.search-foot kbd{margin-right:2px}.home{max-width:880px;margin:0 auto;padding:52px 32px 20px}.hero{margin-bottom:8px}.hero-eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--green);margin:0 0 22px;display:flex;align-items:center;gap:10px}.hero-eyebrow:before{content:"";width:26px;height:2px;background:var(--green);display:inline-block}.hero-h1{font-family:var(--serif);font-weight:700;letter-spacing:-.018em;line-height:1.14;font-size:clamp(30px,5.4vw,50px);margin:0;color:var(--ink);text-wrap:balance}.hero-h1 .hl{color:var(--green);position:relative;white-space:nowrap}.hero-h1 .hl:after{content:"";position:absolute;left:0;right:0;bottom:2px;height:3px;background:var(--green-soft);border-radius:2px}.hero-lede{font-size:19px;line-height:1.72;color:var(--ink-soft);margin:24px 0 0;max-width:62ch}.hero-lede b{color:var(--ink);font-weight:600}.hero-meta{font-family:var(--mono);font-size:12px;color:var(--muted);margin-top:26px;display:flex;flex-wrap:wrap;gap:6px 20px}.start-cta{display:inline-flex;align-items:center;gap:8px;margin-top:26px;background:var(--green);color:#fff;font-size:15px;font-weight:600;padding:11px 22px;border-radius:7px;text-decoration:none;font-family:var(--serif)}.start-cta:hover{background:var(--green-deep)}.start-cta .arrow{font-family:var(--mono)}.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}.hero-cta .start-cta{margin-top:0}.start-cta.ghost{background:transparent;box-shadow:0 0 0 1px var(--green)}.start-cta.ghost:hover{background:var(--green-tint);box-shadow:0 0 0 1px var(--green-deep)}.two-ideas{margin:44px 0}.home-outline{margin-top:48px;border-top:1px solid var(--line);padding-top:8px}.outline-title{font-family:var(--serif)}.ol-part{margin:30px 0}.ol-part-head{margin-bottom:10px}.ol-part-name{font-family:var(--serif);font-weight:700;font-size:16px;color:var(--green-deep)}.ol-part-blurb{font-size:13.5px;color:var(--muted);margin-top:2px}.ol-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}.ol-item{display:flex;align-items:baseline;gap:14px;padding:12px 8px;text-decoration:none;color:var(--ink);border-bottom:1px solid var(--line)}a.ol-item:hover{background:var(--green-tint)}.ol-item.is-planned{color:#b3ae9c;cursor:default}.ol-num{font-family:var(--mono);font-size:12px;color:var(--muted);flex:none;min-width:20px;font-variant-numeric:tabular-nums;padding-top:2px}.ol-item.is-planned .ol-num{color:#c4bfad}a.ol-item:hover .ol-num{color:var(--green)}.ol-main{display:flex;flex-direction:column;gap:2px;flex:1 1 auto;min-width:0}.ol-title{font-family:var(--serif);font-size:15.5px;font-weight:700}.ol-star{color:var(--gold);font-size:12px}.ol-hook{font-size:13px;color:var(--ink-soft);line-height:1.4}.ol-item.is-planned .ol-hook{color:#bdb8a6}.ol-bridge{font-family:var(--mono);font-size:11px;color:var(--green);flex:none;white-space:nowrap;align-self:center}.ol-item.is-planned .ol-bridge{color:#c4bfad}.outline-foot{font-size:12.5px;color:var(--muted);margin-top:24px;font-family:var(--mono);line-height:1.7}@media (max-width:600px){.home{padding:36px 22px 20px}.page{padding:30px 20px 20px}.ol-item{gap:10px;padding:12px 4px}.ol-bridge{display:none}}.home a.start-cta,.home a.start-cta:hover{color:#fff;border-bottom:0}.home a.start-cta.ghost{color:var(--green);border-bottom:0}.home a.start-cta.ghost:hover{color:var(--green-deep);border-bottom:0}.home a.ol-item{color:var(--ink);border-bottom:1px solid var(--line)}.home a.ol-item:hover{color:var(--ink)}.home a.ol-item:hover .ol-num{color:var(--green)}.page a.pager-link{color:inherit;border-bottom:0}.page a.pager-link:hover{border-bottom:0}
