@font-face{font-family:Noto Serif SC;font-style:normal;font-weight:200;font-display:swap;src:url(./noto-serif-sc-200-Cmd4UoZn.woff2)format("woff2")}@font-face{font-family:Noto Serif SC;font-style:normal;font-weight:300;font-display:swap;src:url(./noto-serif-sc-300-wPrn85OX.woff2)format("woff2")}@font-face{font-family:Noto Serif SC;font-style:normal;font-weight:400;font-display:swap;src:url(./noto-serif-sc-400-C96VAJ6E.woff2)format("woff2")}@font-face{font-family:Spectral;font-style:normal;font-weight:300;font-display:swap;src:url(./spectral-300-Csl9mA3s.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Spectral;font-style:normal;font-weight:400;font-display:swap;src:url(./spectral-400-CTVgUekv.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Spectral;font-style:normal;font-weight:600;font-display:swap;src:url(./spectral-600-DE3OxvnQ.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Spectral;font-style:italic;font-weight:300;font-display:swap;src:url(./spectral-300i-naRpDz_b.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Spectral;font-style:italic;font-weight:400;font-display:swap;src:url(./spectral-400i-CDO25mTW.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Spectral;font-style:normal;font-weight:300;font-display:swap;src:url(./spectral-300-ext-B2IMUBX5.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Spectral;font-style:normal;font-weight:400;font-display:swap;src:url(./spectral-400-ext-XDLFwhqg.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Spectral;font-style:normal;font-weight:600;font-display:swap;src:url(./spectral-600-ext-DKlDBbgb.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Spectral;font-style:italic;font-weight:300;font-display:swap;src:url(./spectral-300i-ext-CAoQwQlN.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Spectral;font-style:italic;font-weight:400;font-display:swap;src:url(./spectral-400i-ext-BgTM1Mst.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--paper:#eee9da;--paper-deep:#e9e5d3;--paper-card:#faf6ea;--input:#fdfaf1;--ink:#33302a;--ink-display:#2f2c26;--ink-soft:#6b6455;--story:#5f5949;--muted:#7d7462;--faint:#8d8570;--line:#ddd5c2;--line-strong:#d6cdb6;--band-edge:#d3caaf;--seal:#9e2b25;--on-seal:#f6efdd;--gold:#77571f;--label:#3f5f4e;--gold-line:#c3b795;--banner-accent:var(--seal);--panel:#faf6ecd9;--panel-solid:#faf6ecb3;--tile:#faf6ea99;--tile-done:#faf6ea;--chip:#faf6eae6;--bubble:#faf6eaf0;--strip:#eee9daeb;--example:#eee9dacc;--backdrop-dim:#33302a52;--shadow:0 12px 34px #26241f24;--shadow-modal:0 18px 50px #26241f4d;--shadow-bubble:0 4px 16px #26241f14;--river:#787c6852;--band-label:#7d7666;--station-idle:#7c766a;--mizige-axis:#9e2b254d;--mizige-diag:#9e2b252e;--writer-stroke:#2f2c26;--writer-outline:#ddd5c2;--writer-draw:#9e2b25;--grain:url(data:image/svg+xml,%3Csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%27220%27%20height=%27220%27%3E%3Cfilter%20id=%27t1%27%3E%3CfeTurbulence%20type=%27fractalNoise%27%20baseFrequency=%270.8%27%20numOctaves=%274%27%20stitchTiles=%27stitch%27/%3E%3C/filter%3E%3Crect%20width=%27220%27%20height=%27220%27%20filter=%27url%28%23t1%29%27%20opacity=%270.32%27/%3E%3C/svg%3E);--grain-size:220px 220px;--strip-image:url(./biyou-light-strip-DjpzYBia.jpg);--strip-position:center 78%;--phone-image:url(./biyou-light-phone-CwKIMmEe.jpg);--band-fade-top:linear-gradient(180deg, #eee9dad1, #eee9da00);--band-fade-bottom:linear-gradient(180deg, #eae6d800, #ece7d9eb 46%, #eee9dafa);--gutter:20px;--hanzi-font:"Noto Serif SC", "Kaiti SC", "STKaiti", KaiTi, "Songti SC", SimSun, serif;--ui-font:"Spectral", Georgia, "Iowan Old Style", serif}:root[data-theme=night]{--paper:#131c28;--paper-deep:#101927;--paper-card:#1a2431;--input:#121a25;--ink:#e7ebe7;--ink-display:#f0f3ef;--ink-soft:#a8b5b6;--story:#a8b5b6;--muted:#8b989c;--faint:#6f7d81;--line:#c8d3cf24;--line-strong:#c8d3cf33;--band-edge:#c8d3cf24;--seal:#c05a4e;--on-seal:#1a1210;--gold:#c9a86a;--label:#a9c7b6;--gold-line:#c9a86a80;--banner-accent:var(--gold);--panel:#e7ebe70d;--panel-solid:#131c28e0;--tile:#131c289e;--tile-done:#131c28b8;--chip:#1a2431e6;--bubble:#1a2431eb;--strip:#131c28f0;--example:#e7ebe70f;--backdrop-dim:#060a1073;--shadow:0 14px 40px #0a101866;--shadow-modal:0 18px 50px #04080e99;--shadow-bubble:0 4px 16px #04080e4d;--river:#c8d3cf29;--band-label:#7e8c93;--station-idle:#9fadb0;--mizige-axis:#c05a4e59;--mizige-diag:#c05a4e33;--writer-stroke:#f0f3ef;--writer-outline:#4b555d;--writer-draw:#c05a4e;--grain:url(data:image/svg+xml,%3Csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%27240%27%20height=%27240%27%3E%3Cfilter%20id=%27t2%27%3E%3CfeTurbulence%20type=%27fractalNoise%27%20baseFrequency=%270.7%27%20numOctaves=%275%27%20stitchTiles=%27stitch%27/%3E%3C/filter%3E%3Crect%20width=%27240%27%20height=%27240%27%20filter=%27url%28%23t2%29%27%20opacity=%270.4%27/%3E%3C/svg%3E);--grain-size:240px 240px;--strip-image:url(./biyou-dark-strip-D_5RQ-FU.jpg);--strip-position:87% 50%;--phone-image:url(./biyou-dark-phone-BxPqRIiD.jpg);--band-fade-top:linear-gradient(180deg, #131c28d9, #131c2800);--band-fade-bottom:linear-gradient(180deg, #131c2800, #131c28e6 46%, #131c28fa)}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;font-size:17px}body{color:var(--ink);font-family:var(--ui-font);background-color:var(--paper);min-height:100vh;margin:0;font-weight:400;line-height:1.6}body:before{content:"";z-index:-1;background-color:var(--paper);background-image:var(--grain);background-size:var(--grain-size);background-repeat:repeat;position:fixed;inset:0}:root[data-scene=landscape] body:before{background-image:var(--grain), var(--phone-image);background-size:var(--grain-size), cover;background-position:0 0,top;background-repeat:repeat,no-repeat}.app{max-width:700px;padding:0 var(--gutter) calc(24px + env(safe-area-inset-bottom));margin:0 auto}button{color:inherit;cursor:pointer;font-family:inherit}input{font-family:inherit}.app-header{justify-content:space-between;align-items:center;padding:22px 0 0;display:flex}.brand{text-align:left;background:0 0;border:none;align-items:center;gap:10px;padding:0;display:flex}.brand-seal{background:var(--seal);width:38px;height:38px;color:var(--on-seal);font-family:var(--hanzi-font);place-items:center;font-size:15px;line-height:1.05;display:grid}.brand-text{flex-direction:column;display:flex}.brand-name{letter-spacing:.02em;font-size:18.5px;font-weight:400}.brand-sub{color:var(--muted);font-size:13px}.ghost-btn{letter-spacing:.18em;text-transform:uppercase;color:var(--muted);background:0 0;border:none;padding:4px 0;font-size:12px;transition:color .15s}.ghost-btn:hover:enabled{color:var(--ink)}.ghost-btn:disabled{opacity:.35;cursor:default}.header-actions{align-items:center;gap:18px;display:flex}.theme-pill{background:var(--seal);border:1px solid var(--seal);width:30px;height:30px;font-family:var(--hanzi-font);color:var(--on-seal);place-items:center;padding:0;font-size:17px;line-height:1;transition:background .18s,color .18s;display:grid}.theme-pill:hover,.theme-pill:active{color:var(--seal);background:0 0}.theme-pill:focus-visible{outline:2px solid color-mix(in srgb, var(--gold) 50%, transparent);outline-offset:2px}.app-footer{text-align:center;color:var(--muted);letter-spacing:.2em;text-transform:uppercase;padding:40px 0 12px;font-size:13px}:root[data-scene=landscape] .app-footer{color:var(--ink-soft)}:root[data-theme=night][data-scene=landscape] .app-footer{text-shadow:0 1px 8px #131c28cc}.gallery{max-width:560px;margin:0 auto}.gallery-intro{color:var(--ink-soft);text-wrap:pretty;margin:18px 0 0;font-size:16px;line-height:1.6}.due-banner{text-align:left;background:0 0;border:none;align-items:baseline;gap:14px;width:100%;margin:6px 0 0;padding:16px 0 0;display:flex}.due-banner:hover .due-go{text-underline-offset:4px;text-decoration:underline}.due-hanzi{font-family:var(--hanzi-font);letter-spacing:.06em;color:var(--banner-accent);flex-shrink:0;font-size:19.5px}.due-text{flex-direction:column;flex:1;font-size:15px;display:flex}.due-text small{color:var(--muted);font-size:13.5px}.due-go{color:var(--banner-accent);flex-shrink:0;font-size:15px}.band{height:300px;margin:22px calc(-1 * var(--gutter)) 0;border-top:1px solid var(--band-edge);border-bottom:1px solid var(--band-edge);background-color:var(--paper-deep);position:relative}.band-scroll{cursor:grab;scrollbar-width:none;position:absolute;inset:0;overflow:auto hidden}.band-scroll::-webkit-scrollbar{display:none}.band-track{background-color:var(--paper-deep);background-image:var(--strip-image);background-size:cover;background-position:var(--strip-position);width:1560px;min-width:100%;height:100%;position:relative}.band-fade{pointer-events:none;position:absolute;left:0;right:0}.band-fade.top{background:var(--band-fade-top);height:64px;top:0}.band-fade.bottom{background:var(--band-fade-bottom);height:88px;bottom:0}.band-river{background:var(--river);pointer-events:none;height:1px;position:absolute;bottom:34px;left:0;right:0}.band-rail{align-items:flex-end;padding:0 20px;display:flex;position:absolute;bottom:6px;left:0;right:0}.station{background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:6px;min-width:92px;padding:0;display:flex}.station-title{font-family:var(--hanzi-font);letter-spacing:.08em;color:var(--station-idle);white-space:nowrap;font-size:18.5px}.station.visited .station-title{color:var(--ink)}.station-dot{border:1.5px solid var(--faint);background:var(--paper);border-radius:50%;width:10px;height:10px}.station.visited .station-dot{background:var(--seal);border:none}.band-mark{z-index:2;flex-direction:column;align-items:center;gap:8px;width:30px;display:flex;position:absolute;top:-1px;right:24px}.band-slip{writing-mode:vertical-rl;background:var(--seal);width:30px;color:var(--on-seal);font-family:var(--hanzi-font);letter-spacing:.16em;border:none;padding:14px 0 16px;font-size:16px;box-shadow:0 5px 14px #26241f4d}.band-sliplab{text-align:center;letter-spacing:.12em;text-transform:uppercase;width:112px;color:var(--band-label);pointer-events:none;margin:0 -41px;font-size:11px;font-weight:600}.band-labels{pointer-events:none;flex-direction:column;gap:3px;display:flex;position:absolute;top:16px;left:20px}.band-label{letter-spacing:.2em;text-transform:uppercase;color:var(--band-label);font-size:13px;font-weight:600}.band-label.gold{color:var(--label)}.band-label.faint{color:var(--faint)}.band-hero{display:none}.series-section{margin-top:56px}.series-section:first-of-type{margin-top:22px}.gallery-section{margin-top:26px}.series-head{justify-content:space-between;align-items:baseline;gap:10px;padding-top:22px;display:flex}.series-title{font-family:var(--hanzi-font);letter-spacing:.1em;color:var(--banner-accent);margin:0;font-size:32px;font-weight:300;line-height:1.25}.series-title rt{letter-spacing:.05em;font-size:.34em}.series-nav{z-index:10;scrollbar-width:none;background-color:var(--paper);background-image:var(--grain);background-size:var(--grain-size);gap:24px;margin:24px 0 0;padding:12px 2px;display:flex;position:sticky;top:0;overflow-x:auto}.series-nav::-webkit-scrollbar{display:none}.series-nav-item{font-family:var(--hanzi-font);letter-spacing:.08em;color:var(--ink-soft);white-space:nowrap;background:0 0;border:none;padding:2px 0;font-size:17px;transition:color .15s}.series-nav-item:hover,.series-nav-item.current{color:var(--banner-accent)}.series-section,#series-singles{scroll-margin-top:58px}.expand-row{text-align:right;letter-spacing:.14em;text-transform:uppercase;width:100%;color:var(--label);background:0 0;border:none;padding:12px 0 4px;font-size:13.5px;font-weight:600;transition:color .15s;display:block}.expand-row:hover{color:var(--banner-accent)}.expand-row rt{text-transform:none}.series-sub{color:var(--muted);margin:2px 0 0;font-size:13.5px}.series-count{letter-spacing:.14em;text-transform:uppercase;color:var(--label);white-space:nowrap;flex-shrink:0;font-size:14.5px;font-weight:600}.divider{align-items:center;gap:10px;padding-top:26px;display:flex}.divider-label{letter-spacing:.2em;text-transform:uppercase;color:var(--label);font-size:13.5px;font-weight:600}.divider-rule{background:var(--line);flex:1;height:1px}.row-list{flex-direction:column;margin-top:14px;display:flex}.episode-row{text-align:left;border:none;border-top:1px solid var(--line);width:100%;font-size:inherit;background:0 0;align-items:baseline;gap:14px;padding:16px 0;display:flex}.episode-row .row-hanzi{transition:color .15s}.row-list{border-bottom:1px solid var(--line)}.episode-row:hover .row-hanzi{color:var(--banner-accent)}.episode-row:hover .row-num{font-weight:600}.row-num{font-family:var(--hanzi-font);color:var(--banner-accent);flex-shrink:0;min-width:24px;font-size:16px}.row-body{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.row-top{align-items:baseline;gap:10px;display:flex}.row-hanzi{font-family:var(--hanzi-font);letter-spacing:.08em;color:var(--ink-display);font-size:26px;font-weight:300}.row-top:after{content:"";flex:1}.row-count{color:var(--muted);white-space:nowrap;order:1;font-size:14px}.row-done{font-family:var(--hanzi-font);color:var(--seal);border:1px solid var(--seal);white-space:nowrap;order:1;padding:3px 4px 4px;font-size:13px;line-height:1;transform:rotate(-4deg)}.station.done .station-dot{background:var(--seal);border:none;border-radius:0;transform:rotate(-4deg)}.row-title{font-size:16px}.row-tagline{color:var(--ink-soft);font-size:14px;line-height:1.5}.annotated ruby{ruby-position:over;ruby-align:center}.annotated.whole{white-space:nowrap}.annotated rt{font-family:var(--ui-font);letter-spacing:0;text-transform:none;color:var(--muted);text-align:center;-webkit-user-select:none;user-select:none;font-size:.55em;font-style:normal;font-weight:400;line-height:1.15}:is(:is(p,h3,li,span):has(>.annotated),:is(p,h3,li):has(.annotated)){line-height:2.15}.annotated.speakable{font:inherit;letter-spacing:inherit;color:inherit;text-align:inherit;-webkit-user-select:text;user-select:text;cursor:pointer;border:none;border-bottom:1px dotted var(--gold-line);background:0 0;margin:0;padding:0;transition:color .15s,border-color .15s;display:inline-block}.annotated.speakable:hover{color:var(--banner-accent);border-bottom-color:var(--banner-accent)}.title-speak{font:inherit;letter-spacing:inherit;color:inherit;cursor:pointer;background:0 0;border:none;margin:0;padding:0;transition:color .15s}.title-speak:hover{color:var(--banner-accent)}:is(.row-hanzi:has(.annotated),.station-title:has(.annotated),.divider-label:has(.annotated)){line-height:1.45}.row-hanzi rt{font-size:.42em}.station-title rt{font-size:.5em}.divider-label rt{font-size:.64em}.lesson{max-width:660px;margin:0 auto}.lesson-nav{justify-content:space-between;align-items:center;margin:20px 0 0;display:flex}.lesson-nav .ghost-btn{letter-spacing:0;text-transform:none;color:var(--ink-soft);font-size:14px}.card-level{text-transform:uppercase;letter-spacing:.16em;color:var(--label);flex-shrink:0;font-size:13px;font-weight:600}.lesson-head{text-align:left;flex-direction:column;justify-content:flex-end;gap:5px;min-height:190px;margin-top:18px;display:flex}.lesson-title{font-family:var(--hanzi-font);letter-spacing:.12em;color:var(--ink-display);margin:0;font-size:47px;font-weight:300}.lesson-subtitle{color:var(--ink);margin:0;font-size:17px}.lesson-attribution{letter-spacing:.06em;color:var(--gold);margin:0;font-size:13.5px}.lesson-plate{margin:26px 0 24px}.lesson-plate img{aspect-ratio:3/2;object-fit:cover;border:1px solid var(--gold-line);width:100%;display:block}:root[data-theme=night] .lesson-plate img{filter:brightness(.86)saturate(.94)}.lesson-story{margin-top:20px}.lesson-story p{color:var(--story);text-wrap:pretty;margin:0 0 14px;font-size:17px;line-height:1.7}.lesson-next{border-top:1px solid var(--line);gap:24px;margin-top:40px;padding-top:16px;display:flex}.next-episode{text-align:right;background:0 0;border:none;flex-direction:column;align-items:flex-end;gap:5px;margin-left:auto;padding:4px 0;display:flex}.next-episode.prev{text-align:left;align-items:flex-start;margin-left:0;margin-right:auto}.next-label{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-size:12px;font-weight:600}.next-label rt{text-transform:none}.next-title{color:var(--ink);font-size:18px;transition:color .15s}.next-episode:hover .next-title{color:var(--banner-accent)}.poem{margin:22px 0 0;padding:0}.poem-line{border-top:1px solid var(--line);align-items:flex-start;gap:12px;padding:14px 0;display:flex}.poem-line:last-child{border-bottom:1px solid var(--line)}.poem-text{flex-direction:column;gap:2px;display:flex}.poem-hanzi{font-family:var(--hanzi-font);letter-spacing:.14em;color:var(--ink-display);font-size:25px}.poem-pinyin{color:var(--gold);letter-spacing:.04em;font-size:13.5px}.poem-english{color:var(--ink-soft);font-size:14.5px}.poem.unaided .poem-pinyin,.poem.unaided .poem-english{display:none}.passage{margin-top:30px}.passage-text{border-left:2px solid var(--gold);background:color-mix(in srgb, var(--gold) 5%, transparent);font-family:var(--hanzi-font);letter-spacing:.1em;color:var(--ink-display);margin:14px 0 0;padding:16px 18px;font-size:19px;line-height:2.5}.passage-english{color:var(--ink-soft);margin:12px 0 0;font-size:14.5px;line-height:1.65}.passage-source{color:var(--ink-faint,var(--ink-soft));margin:8px 0 0;font-size:13px}.poem.unaided .poem-hanzi{font-size:2rem}.speak-btn{border:1px solid var(--gold-line);width:26px;height:26px;color:var(--gold);white-space:nowrap;background:0 0;flex-shrink:0;place-items:center;margin-top:4px;padding:0;font-size:12px;display:grid}.speak-btn:hover{border-color:var(--gold)}.unlock-banner{background:var(--panel);border:1px solid var(--line-strong);border-left:3px solid var(--seal);align-items:center;gap:14px;margin:26px 0 -8px;padding:12px 15px;display:flex}.unlock-seal{background:var(--seal);width:34px;height:34px;color:var(--on-seal);font-family:var(--hanzi-font);flex-shrink:0;place-items:center;font-size:20.5px;display:grid}.unlock-banner p{flex:1;margin:0;font-size:14px}.unlock-banner .btn{flex-shrink:0;padding:6px 14px;font-size:14px}.section-title{font-family:var(--hanzi-font);letter-spacing:.06em;color:var(--ink-display);margin:26px 0 0;font-size:18.5px;font-weight:400}.section-hint{color:var(--muted);margin:5px 0 0;font-size:14px;line-height:1.55}.section-hint .hint-hanzi{color:var(--ink);letter-spacing:.05em;font-family:Noto Serif SC,serif;font-size:16px}.study-welcome{margin:.5rem 0 1.5rem}.char-grid{grid-template-columns:repeat(4,1fr);gap:10px;margin-top:16px;display:grid}.char-tile{background:var(--tile);border:1px solid var(--line-strong);flex-direction:column;align-items:center;gap:4px;padding:10px 0 8px;transition:border-color .15s;display:flex;position:relative}:root[data-theme=night] .char-tile{border-color:#c8d3cf29}.char-tile:hover{border-color:var(--gold)}.char-tile.done{background:var(--tile-done);border-color:var(--seal)}.char-tile-hanzi{font-family:var(--hanzi-font);color:var(--story);font-size:32px;line-height:1.2}.char-tile.done .char-tile-hanzi{color:var(--ink-display)}.char-tile-pinyin{color:var(--muted);font-size:12px}.char-tile.done .char-tile-pinyin{color:var(--gold)}.char-tile-check{color:var(--seal);font-size:11px;position:absolute;top:4px;right:5px}.char-tile.returning{background:0 0;border-style:dashed}.char-tile-source{text-overflow:ellipsis;white-space:nowrap;max-width:100%;color:var(--muted);padding:0 4px;font-size:11px;font-style:italic;overflow:hidden}.btn,.btn-primary{padding:9px 22px;font-size:15px;transition:filter .12s}.btn{border:1px solid var(--gold-line);color:var(--ink);background:0 0}:root[data-theme=night] .btn{border-color:#c8d3cf4d}.btn.active{background:var(--seal);border-color:var(--seal);color:var(--on-seal)}.btn-primary{background:var(--seal);border:1px solid var(--seal);color:var(--on-seal)}.btn-primary:hover:enabled,.btn:hover{filter:brightness(.92)}:root[data-theme=night] .btn-primary:hover:enabled,:root[data-theme=night] .btn:hover{filter:brightness(1.08)}.btn-primary:disabled{opacity:.45;cursor:default}.modal-backdrop{background:var(--backdrop-dim);z-index:20;place-items:center;padding:26px 16px;display:grid;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--paper-card);border:1px solid var(--line-strong);width:min(460px,100%);max-height:calc(100dvh - 40px);box-shadow:var(--shadow-modal);padding:20px 22px 22px;overflow-y:auto}:root[data-theme=night] .modal{border-color:#c8d3cf33}.sheet-top{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.sheet-top h2{margin:0;font-size:1.1rem;font-weight:400}.sheet-top .ghost-btn{letter-spacing:0;text-transform:none;font-size:14px}.sheet-pager{gap:10px;display:flex}.sheet-pager .ghost-btn{border:1px solid var(--line-strong);place-items:center;width:44px;height:44px;padding:0;font-size:19px;display:grid}.sheet-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.sheet-pinyin{color:var(--ink);margin-right:10px;font-size:24px}.sheet-meaning{color:var(--muted);font-size:16px;font-style:italic}.sheet-head .speak-btn{width:28px;height:28px;margin-top:0}.writer-box{aspect-ratio:1;background-color:var(--input);background-image:linear-gradient(to bottom, transparent calc(50% - .5px), var(--mizige-axis) calc(50% - .5px), var(--mizige-axis) calc(50% + .5px), transparent calc(50% + .5px)), linear-gradient(to right, transparent calc(50% - .5px), var(--mizige-axis) calc(50% - .5px), var(--mizige-axis) calc(50% + .5px), transparent calc(50% + .5px)), linear-gradient(45deg, transparent calc(50% - .5px), var(--mizige-diag) 50%, transparent calc(50% + .5px)), linear-gradient(-45deg, transparent calc(50% - .5px), var(--mizige-diag) 50%, transparent calc(50% + .5px));border:1.5px solid var(--seal);touch-action:none;place-items:center;width:100%;max-width:280px;margin:0 auto 6px;display:grid}.review-canvas{max-width:300px}.writer-box.celebrate{box-shadow:0 0 0 3px color-mix(in srgb, var(--seal) 18%, transparent)}.sheet-hint{text-align:center;min-height:1.4em;color:var(--muted);margin:4px 0 10px;font-size:14.5px;font-style:italic}.sheet-actions{justify-content:center;gap:10px;margin-bottom:14px;display:flex}.sheet-steps{justify-content:center;gap:6px;margin:-6px 0 14px;padding:0;list-style:none;display:flex}.sheet-steps .step{border:1px solid var(--line);width:22px;height:22px;color:var(--muted);font-family:var(--hanzi-font);text-align:center;border-radius:50%;font-size:12px;line-height:20px}.sheet-steps .step.now{border-color:var(--seal);color:var(--seal)}.sheet-steps .step.done{background:var(--seal);border-color:var(--seal);color:#fff}.sheet-etymology{border-top:1px solid var(--line);margin-bottom:12px;padding-top:14px}.sheet-etymology h3{font-family:var(--ui-font);text-transform:uppercase;letter-spacing:.18em;color:var(--label);margin:0 0 5px;font-size:13px;font-weight:600}.sheet-etymology p{color:var(--story);margin:0;font-size:14.5px;line-height:1.6}.sheet-example{text-align:left;background:var(--example);border:1px solid var(--line);align-items:baseline;gap:12px;width:100%;padding:11px 14px;display:flex}.sheet-example:hover{border-color:var(--gold)}.example-word{font-family:var(--hanzi-font);color:var(--ink);font-size:21.5px}.example-detail{color:var(--ink-soft);font-size:14px}.sheet-count{color:var(--muted);margin:12px 0 0;font-size:13.5px;font-style:italic}.review{max-width:560px;margin:0 auto}.review-dots{gap:5px;display:flex}.dot{background:var(--line-strong);border-radius:50%;width:7px;height:7px}.dot.past{background:var(--gold)}.dot.now{background:var(--seal)}.review-head{text-align:center;margin:18px 0 14px}.review-title{font-family:var(--hanzi-font);letter-spacing:.12em;color:var(--ink-display);margin:0;font-size:34px;font-weight:300}.review-head .section-hint{font-style:italic}.review-context{text-align:center;background:var(--panel);border:1px solid var(--line-strong);margin-bottom:12px;padding:16px 14px}:root[data-theme=night] .review-context{border-color:#c8d3cf29}.review-context.muted{border-style:dashed}.review-line{font-family:var(--hanzi-font);letter-spacing:.1em;color:var(--ink-display);margin:0 0 4px;font-size:1.8rem}.review-blank{border-bottom:2px dashed var(--seal);min-width:1.15em;margin:0 .06em;display:inline-block}.review-blank.filled{color:var(--seal);border-bottom-color:#0000}.review-english{color:var(--ink-soft);margin:0;font-size:14.5px;font-style:italic}.review-source{color:var(--muted);margin:6px 0 0;font-size:13.5px}.review-target{text-align:center;color:var(--gold);margin:0 0 10px}.review-feedback{text-align:center;margin-top:12px}.review-outcome{margin:0 0 2px;font-size:1.05rem}.review-return{color:var(--muted);margin:0 0 12px;font-size:14.5px;font-style:italic}.review-actions{justify-content:center;align-items:center;gap:12px;display:flex}.review-done{text-align:center;max-width:420px;margin:70px auto}.review-done-hanzi{font-family:var(--hanzi-font);letter-spacing:.14em;color:var(--ink-display);margin:0 0 8px;font-size:2.4rem;font-weight:300}.review-done-text{color:var(--ink-soft);margin:0 0 22px;font-style:italic}.listen-prompt{justify-content:center;margin-bottom:12px;display:flex}.listen-btn{border:1px solid var(--gold-line);color:var(--gold);background:0 0;padding:10px 22px;font-size:16px;transition:background .15s}.listen-btn:hover{background:var(--panel)}.tone-choices{grid-template-columns:repeat(5,1fr);gap:6px;margin-bottom:12px;display:grid}.tone-btn{background:var(--tile);border:1px solid var(--line-strong);flex-direction:column;align-items:center;gap:2px;padding:12px 4px;transition:border-color .15s;display:flex}:root[data-theme=night] .tone-btn{border-color:#c8d3cf29}.tone-btn:hover:enabled{border-color:var(--gold)}.tone-btn:disabled{cursor:default}.tone-btn.right{border-color:var(--gold);background:color-mix(in srgb, var(--gold) 12%, var(--paper-card))}.tone-btn.wrong{border-color:var(--seal);background:color-mix(in srgb, var(--seal) 10%, var(--paper-card))}.tone-num{font-family:var(--hanzi-font);color:var(--ink);font-size:1.4rem;line-height:1}.tone-name{color:var(--ink-soft);text-align:center;font-size:.66rem}.progress-view{max-width:560px;margin:0 auto}.progress-head{text-align:center;margin:18px 0 30px}.progress-bar{background:color-mix(in srgb, var(--ink) 8%, var(--paper-deep));height:6px;margin-top:10px;overflow:hidden}.progress-bar span{background:var(--accent,var(--gold));height:100%;transition:width .4s;display:block}.progress-bar.arc{margin:6px 0 4px}.search-input{width:100%;color:var(--ink);background:var(--input);border:1px solid var(--line-strong);margin-top:16px;padding:11px 14px;font-family:inherit;font-size:16px}:root[data-theme=night] .search-input{border-color:#c8d3cf33}.search-input:focus{outline:2px solid color-mix(in srgb, var(--gold) 50%, transparent)}.search-input::placeholder{color:var(--faint)}.search-results{flex-direction:column;margin-top:12px;display:flex}.search-hit{text-align:left;border:none;border-top:1px solid var(--line);background:0 0;align-items:center;gap:12px;padding:10px 4px;display:flex}.search-hit .hit-char{transition:color .15s}.search-hit:last-child{border-bottom:1px solid var(--line)}.search-hit:hover .hit-char{color:var(--banner-accent)}.hit-char{font-family:var(--hanzi-font);color:var(--ink-display);flex-shrink:0;font-size:1.9rem;line-height:1}.hit-body{flex-direction:column;flex:1;min-width:0;display:flex}.hit-top{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.hit-pinyin{color:var(--gold);font-size:.9rem}.hit-meaning{font-size:.9rem}.hit-source{color:var(--muted);font-size:.75rem;font-style:italic}.hit-check{color:var(--seal);flex-shrink:0}.arc-list{flex-direction:column;gap:16px;margin-top:16px;display:flex}.arc-row{flex-direction:column;display:flex}.arc-head{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.arc-title{font-family:var(--hanzi-font);letter-spacing:.06em;font-size:1.2rem}.arc-count{letter-spacing:.14em;text-transform:uppercase;color:var(--label);font-size:13px;font-weight:600}.arc-chars{color:var(--muted);font-size:.75rem;font-style:italic}.field{flex-direction:column;gap:6px;margin-bottom:16px;font-size:.9rem;display:flex}.field input{border:1px solid var(--line-strong);background:var(--input);color:var(--ink);padding:10px 12px;font-size:.95rem}:root[data-theme=night] .field input{border-color:#c8d3cf33}.field input:focus{outline:2px solid color-mix(in srgb, var(--gold) 50%, transparent)}.field-note{color:var(--muted)}.saved-note{min-height:1.2em;color:var(--gold)}.voice-row{align-items:center;gap:8px;display:flex}.voice-row select{min-width:0;color:var(--ink);background:var(--input);border:1px solid var(--line-strong);flex:1;padding:10px 12px;font-family:inherit;font-size:.95rem}:root[data-theme=night] .voice-row select{border-color:#c8d3cf33}.voice-row .speak-btn{flex-shrink:0;width:auto;height:28px;margin-top:0;padding:0 10px}.restore-ok{color:var(--gold)}.restore-bad{color:var(--seal)}.level-options{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.level-option{border:1px solid var(--line-strong);text-align:left;background:0 0;flex-direction:column;gap:2px;padding:10px 12px;display:flex}:root[data-theme=night] .level-option{border-color:#c8d3cf33}.level-option strong{font-weight:600}.level-option small{color:var(--muted);font-size:.72rem}.level-option.active{border-color:var(--seal);background:color-mix(in srgb, var(--seal) 6%, transparent)}@media (width<=560px){.app{padding-left:20px;padding-right:20px}.header-actions{gap:12px}.brand-sub{display:none}.lesson-title{font-size:clamp(34px,10vw,44px)}.tone-name{display:none}.tone-btn{padding:14px 4px}.level-options{grid-template-columns:1fr}.station{min-width:84px}}@media (width>=900px){:root{--gutter:32px}.app{max-width:1160px}.band{border-left:1px solid var(--band-edge);border-right:1px solid var(--band-edge);margin-left:0;margin-right:0}.band-mark{right:64px}.gallery{max-width:none}.gallery-intro{max-width:640px}.due-text{flex-direction:row;align-items:baseline;gap:12px}.due-text small{font-style:italic}.band{height:340px}.station{min-width:108px}.row-list{columns:2;column-gap:56px;display:block}.episode-row{break-inside:avoid}.series-sub{max-width:70ch}.row-hanzi{font-size:29px}.row-title{font-size:17px}.row-tagline{font-size:15.5px}.row-count{font-size:14.5px}.review,.progress-view{max-width:640px}}@media (width>=1024px){.gallery-intro{display:none}.band{height:430px;margin-top:18px}.band-track{background-color:var(--paper-deep);background-image:var(--strip-image);background-position:0;background-repeat:repeat-x;background-size:auto 100%;width:3200px;min-width:0}:root[data-theme=night] .band-track{background-position:-1330px;background-repeat:repeat-x;width:2600px}.band-fade.top{height:80px}.band-fade.bottom{height:100px}.band-river{bottom:40px}.band-rail{padding:0;bottom:10px;left:40px;right:40px}.station{gap:7px}.station-title{font-size:19.5px}.band-labels{display:none}.band-hero{pointer-events:none;flex-direction:column;gap:10px;max-width:480px;display:flex;position:absolute;top:46px;left:40px}.band-hero-intro{color:var(--story);text-wrap:pretty;margin:0;font-size:24px;font-style:italic;line-height:1.55}:root[data-theme=night] .band-hero-intro{color:#c8d3cf}.band-hero-meta{flex-wrap:wrap;align-items:baseline;gap:4px 14px;display:flex}.band-hero-meta .band-label{white-space:nowrap}:root[data-theme=night]{--grain:url(data:image/svg+xml,%3Csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%27240%27%20height=%27240%27%3E%3Cfilter%20id=%27d2%27%3E%3CfeTurbulence%20type=%27fractalNoise%27%20baseFrequency=%270.7%27%20numOctaves=%275%27%20stitchTiles=%27stitch%27/%3E%3C/filter%3E%3Crect%20width=%27240%27%20height=%27240%27%20filter=%27url%28%23d2%29%27%20opacity=%270.12%27/%3E%3C/svg%3E)}}@media (width>=1000px){.lesson{grid-template-columns:minmax(0,1fr) 356px;align-items:start;column-gap:48px;max-width:none;display:grid}.lesson-nav,.lesson-head,.lesson-next{grid-column:1/-1}.lesson-head{min-height:220px}.lesson-plate{grid-column:1;margin:4px 0 10px}.lesson-title{font-size:60px}.lesson-main{grid-column:1;min-width:0}.lesson-side{grid-area:3/2/span 2;position:sticky;top:24px}.lesson-side .section-title:first-child{margin-top:0}.lesson-side .char-grid{grid-template-columns:repeat(3,1fr)}}.gate{min-height:100dvh;padding:var(--gutter);background-color:var(--paper);background-image:var(--grain);background-size:var(--grain-size);place-items:center;display:grid}.gate-card{background:var(--paper-card);border:1px solid var(--line-strong);width:min(320px,100%);box-shadow:var(--shadow);text-align:center;flex-direction:column;align-items:center;gap:12px;padding:36px 28px 24px;display:flex}.gate-mark{font-family:var(--hanzi-font);color:var(--ink-display);font-size:44px;font-weight:300}.gate-note{color:var(--muted);margin:0;font-size:.9rem;font-style:italic}.gate-input{border:1px solid var(--line-strong);background:var(--input);text-align:center;width:100%;color:var(--ink);padding:10px 12px;font-family:inherit;font-size:.95rem}:root[data-theme=night] .gate-input{border-color:#c8d3cf33}.gate-input:focus{outline:2px solid color-mix(in srgb, var(--gold) 50%, transparent)}.gate-wrong{min-height:1.2em;color:var(--seal);margin:0;font-size:.85rem}.link-btn{text-align:left;color:var(--banner-accent);background:0 0;border:none;padding:0;font-family:inherit;font-size:14px;display:inline}.link-btn:hover{text-underline-offset:4px;text-decoration:underline}.sheet-link,.passage-more{margin-top:10px;display:block}.rooms{grid-template-columns:repeat(3,1fr);gap:10px;margin-top:8px;display:grid}.room{text-align:left;background:var(--tile);border:1px solid var(--line-strong);flex-direction:column;align-items:flex-start;gap:2px;padding:12px 14px;transition:border-color .15s;display:flex}:root[data-theme=night] .room{border-color:#c8d3cf29}.room:hover{border-color:var(--gold)}.room-hanzi{font-family:var(--hanzi-font);letter-spacing:.08em;color:var(--banner-accent);font-size:21px}.room-title{color:var(--ink-display);font-size:14px}.room-sub{color:var(--muted);font-size:12.5px;line-height:1.45}@media (width<=560px){.rooms{grid-template-columns:1fr}}.lines-invite{text-align:left;width:100%;color:var(--muted);background:0 0;border:none;margin:0;padding:10px 0 0;font-size:14.5px;display:block}.lines-invite:hover{color:var(--ink-soft);text-underline-offset:4px;text-decoration:underline}.lines-invite .annotated{color:var(--banner-accent)}.reader,.web{max-width:560px;margin:0 auto}.web-head{text-align:center;margin:18px 0 20px}.shelf{flex-direction:column;gap:12px;display:flex}.shelf-book{text-align:left;background:var(--tile);border:1px solid var(--line-strong);border-left:3px solid var(--accent,var(--gold));flex-direction:column;align-items:stretch;gap:2px;padding:14px 16px;transition:border-color .15s;display:flex}.shelf-book:hover{border-color:var(--accent,var(--gold))}.shelf-title{font-family:var(--hanzi-font);letter-spacing:.08em;color:var(--ink-display);font-size:21px}.shelf-sub{color:var(--muted);font-size:13.5px}.shelf-note{color:var(--muted);font-size:12.5px;font-style:italic}.reader-head{text-align:center;margin:18px 0 8px}.reader-head .section-hint{max-width:46ch;margin-left:auto;margin-right:auto}.reader-passage{border-top:1px solid var(--line);margin-top:26px;padding-top:14px}.reader-passage-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.reader-source{color:var(--muted);flex-shrink:0;font-size:12.5px}.reader-text{font-family:var(--hanzi-font);letter-spacing:.06em;color:var(--ink-display);text-align:justify;margin:10px 0 0;font-size:1.35rem;line-height:2.05}.reader-char{font:inherit;letter-spacing:inherit;color:inherit;background:0 0;border:none;margin:0;padding:0;display:inline}.reader-char.waiting{border-bottom:1px dashed color-mix(in srgb, var(--gold-line) 55%, transparent)}.reader-char.beyond{color:var(--faint)}.reader-char:hover{color:var(--banner-accent)}.reader-passage-foot{align-items:center;gap:10px;margin-top:8px;display:flex}.reader-english{color:var(--ink-soft);margin:8px 0 0;font-size:14.5px;font-style:italic;line-height:1.65}.reader-colophon{text-align:center;color:var(--muted);margin:34px 0 8px;font-size:13.5px}.charpop{bottom:calc(14px + env(safe-area-inset-bottom));width:min(560px, calc(100vw - 2 * var(--gutter)));background:var(--bubble);border:1px solid var(--line-strong);box-shadow:var(--shadow-modal);z-index:40;align-items:center;gap:14px;padding:12px 14px;display:flex;position:fixed;left:50%;transform:translate(-50%)}.charpop-char{font-family:var(--hanzi-font);color:var(--ink-display);background:0 0;border:none;flex-shrink:0;padding:0;font-size:44px;line-height:1.15}.charpop-body{flex:1;min-width:0}.charpop-gloss{color:var(--ink);margin:0;font-size:14.5px}.charpop-gloss em{color:var(--gold)}.charpop-links{gap:16px;margin:2px 0 0;display:flex}.charpop-note{color:var(--muted);margin:2px 0 0;font-size:13px;font-style:italic}.web-wall{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:10px;display:grid}.web-door{background:var(--tile);border:1px solid var(--line-strong);flex-direction:column;align-items:center;gap:2px;padding:12px 6px 10px;transition:border-color .15s;display:flex}:root[data-theme=night] .web-door{border-color:#c8d3cf29}.web-door:hover{border-color:var(--gold)}.web-door-char{font-family:var(--hanzi-font);color:var(--ink-display);font-size:34px;line-height:1.2}.web-door-label{color:var(--muted);flex-direction:column;align-items:center;max-width:100%;font-size:12px;line-height:1.4;display:flex}.web-door-label em{color:var(--gold);font-style:normal}.web-door-label span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.web-door-count{color:var(--faint);font-size:11px}.web-node-head{align-items:center;gap:18px;margin-top:18px;display:flex}.web-node-char{border:1px solid var(--line-strong);font-family:var(--hanzi-font);color:var(--ink-display);background:0 0;background-color:var(--tile);flex-shrink:0;padding:6px 14px;font-size:64px;line-height:1.25}.web-node-info{min-width:0}.web-node-gloss{color:var(--ink);margin:0;font-size:16px}.web-node-gloss em{color:var(--gold);font-style:normal}.web-node-note{color:var(--muted);margin:4px 0 0;font-size:13.5px;line-height:1.5}.web-node-info .link-btn{margin-top:4px}.web-etymology{color:var(--story);margin:14px 0 0;font-size:14.5px;line-height:1.65}.web-part-title{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.web-part{font-family:var(--hanzi-font);color:var(--banner-accent);background:0 0;border:none;padding:0;font-size:26px}.web-part:hover{text-underline-offset:6px;text-decoration:underline}.web-part-gloss{font-family:var(--ui-font);letter-spacing:0;color:var(--muted);font-size:13.5px}.web-part-gloss em{color:var(--gold);font-style:normal}.web-role{font-family:var(--ui-font);letter-spacing:0;color:var(--label);border:1px solid var(--line-strong);padding:1px 8px;font-size:12.5px}.line-slots,.line-pool{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.line-slots{margin:18px 0 0}.line-pool{margin:20px 0 0}.line-slot,.line-tile{width:52px;height:52px;font-family:var(--hanzi-font);color:var(--ink-display);background:0 0;justify-content:center;align-items:center;font-size:27px;display:flex}.line-slot{border:1px dashed var(--gold-line)}.line-slot.filled{border:1px solid var(--line-strong);background:var(--tile)}.line-slot.filled.right{border-color:var(--seal);color:var(--seal)}.line-slot.filled.wrong{border-color:var(--seal);animation:.4s slot-shake}@keyframes slot-shake{0%,to{transform:translate(0)}25%{transform:translate(-3px)}75%{transform:translate(3px)}}.line-tile{border:1px solid var(--line-strong);background:var(--tile);transition:border-color .15s,opacity .15s}.line-tile:hover:enabled{border-color:var(--gold)}.line-tile.used{opacity:.25;cursor:default}.line-solved{flex-direction:column;gap:2px;margin:0 0 10px;display:flex}.line-hanzi{font-family:var(--hanzi-font);letter-spacing:.1em;color:var(--ink-display);font-size:1.6rem}.line-pinyin{color:var(--gold);font-size:14px}.lines .review-feedback{text-align:center;margin-top:18px}.print-sheet{max-width:620px;margin:0 auto}.sheet-header{border-bottom:1px solid var(--line-strong);justify-content:space-between;align-items:baseline;gap:14px;margin:20px 0 6px;padding-bottom:10px;display:flex}.sheet-title{font-family:var(--hanzi-font);letter-spacing:.08em;color:var(--ink-display);margin:0;font-size:27px;font-weight:400}.sheet-subtitle{color:var(--muted);margin:2px 0 0;font-size:13px}.sheet-brand{font-family:var(--hanzi-font);color:var(--seal);border:1px solid var(--seal);writing-mode:vertical-rl;padding:3px 6px;font-size:17px}.sheet-row{break-inside:avoid;margin-top:14px}.sheet-row-label{color:var(--muted);align-items:baseline;gap:8px;margin:0 0 5px;font-size:13px;display:flex}.sheet-row-label em{color:var(--gold)}.sheet-row-char{font-family:var(--hanzi-font);color:var(--ink-display);font-size:17px}.sheet-cells{grid-template-columns:repeat(8,1fr);display:grid}.sheet-cell{aspect-ratio:1;border:1px solid var(--line-strong);margin-left:-1px;position:relative}.sheet-cell:first-child{margin-left:0}.sheet-cell:before,.sheet-cell:after{content:"";pointer-events:none;position:absolute}.sheet-cell:before{border-top:1px dashed var(--mizige-axis);top:50%;left:0;right:0}.sheet-cell:after{border-left:1px dashed var(--mizige-axis);top:0;bottom:0;left:50%}.sheet-glyph{width:86%;height:86%;position:absolute;inset:7%}.sheet-cell.model .sheet-glyph path{fill:var(--ink-display)}.sheet-cell.trace .sheet-glyph path{fill:color-mix(in srgb, var(--ink) 22%, transparent)}.sheet-foot{text-align:center;color:var(--muted);margin:26px 0 0;font-size:12.5px}@media print{.app-header,.app-footer,.print-hide{display:none!important}body,body:before{background:#fff!important}.app{max-width:none;padding:0}.print-sheet{color:#000;max-width:none}.sheet-header{border-bottom-color:#000}.sheet-title,.sheet-row-char{color:#000}.sheet-subtitle,.sheet-row-label,.sheet-foot,.sheet-row-label em{color:#444}.sheet-brand{color:#9e2b25;border-color:#9e2b25}.sheet-cell{-webkit-print-color-adjust:exact;print-color-adjust:exact;border-color:#777}.sheet-cell:before{border-top-color:#c9c2b2}.sheet-cell:after{border-left-color:#c9c2b2}.sheet-cell.model .sheet-glyph path{fill:#111}.sheet-cell.trace .sheet-glyph path{fill:#c5c0b4}}.find-view{max-width:560px;margin:0 auto}.hit-char.hit-piece{font-family:var(--hanzi-font);letter-spacing:.04em;color:var(--ink-display);flex-shrink:0;max-width:5.5em;font-size:19px}
