:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--paper:#efeae3;--paper-deep:#e4ddd3;--card:#fffcf8;--ink:#1c1917;--ink-soft:#44403c;--muted:#5f5953;--line:#e6dfd6;--line-strong:#d4cdc3;--seal:#9a3b32;--seal-soft:#f8eeeb;--focus:#9a3b32;--ok:#1f6b45;--ok-bg:#e7f3ec;--wait:#f3efe8;--shadow:0 1px 2px #1c19170a, 0 10px 28px #1c19170d;--sans:"PingFang SC", "Hiragino Sans GB", "Noto Sans SC", "Noto Sans CJK SC", "Source Han Sans SC", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif;--serif:"Songti SC", "Noto Serif SC", "Noto Serif CJK SC", "Source Han Serif SC", "STSong", "PMingLiU", "SimSun", "WenQuanYi Micro Hei", serif;--radius:16px}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background:radial-gradient(900px 420px at 100% -120px, #9a3b3212, transparent 58%), radial-gradient(720px 360px at -12% -40px, #1c19170d, transparent 52%), var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-size:16px;line-height:1.55}button,input,select{font:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button,.steps,.list{-webkit-user-select:none;user-select:none}::placeholder{color:#a8a29e}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}[hidden]{display:none!important}.shell{width:min(100%,42rem);min-width:0;min-height:100dvh;padding:calc(.9rem + env(safe-area-inset-top)) calc(1rem + env(safe-area-inset-right)) calc(1.4rem + env(safe-area-inset-bottom)) calc(1rem + env(safe-area-inset-left));flex-direction:column;margin:0 auto;display:flex}.stage{flex:1;min-width:0;max-width:100%}.slot,.panel{min-width:0;max-width:100%}.stage{margin-top:1.15rem}.shell[data-page=module] .stage{margin-top:.85rem}.eyebrow{color:var(--muted);letter-spacing:.14em;align-items:center;gap:.6rem;margin:0;font-size:.78rem;font-weight:650;display:flex}.seal{background:var(--ink);color:#f7f4ef;letter-spacing:0;border-radius:8px;place-items:center;width:2rem;height:2rem;font-size:.92rem;font-weight:700;line-height:1;display:inline-grid}.mast h1{letter-spacing:0;margin:.95rem 0 0;font-size:clamp(1.85rem,7vw,2.15rem);font-weight:700;line-height:1.2}.lede{color:var(--ink-soft);margin:.45rem 0 0;font-size:.98rem;line-height:1.65}.topbar{justify-content:space-between;align-items:center;gap:.75rem;min-height:2.75rem;display:flex}.topbar-mark{color:var(--muted);letter-spacing:.12em;font-size:.78rem;font-weight:650}.guide{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow);margin:0 0 .35rem;padding:.95rem 1rem .45rem}.guide h2,.hello h2{letter-spacing:0;color:var(--ink);margin:0;font-size:.95rem;font-weight:700}.guide ol{counter-reset:practice;margin:.35rem 0 0;padding:0;list-style:none}.guide li{color:var(--ink-soft);grid-template-columns:1.7rem 1fr;align-items:start;gap:.7rem;margin:0;padding:.7rem 0 .75rem;font-size:.95rem;line-height:1.55;display:grid;position:relative}.guide li:before{content:counter(practice);counter-increment:practice;background:var(--ink);color:#f7f4ef;border-radius:999px;place-items:center;width:1.7rem;height:1.7rem;font-size:.75rem;font-weight:700;line-height:1;display:grid}.guide li:not(:last-child):after{content:"";background:var(--line-strong);width:1px;position:absolute;top:2.45rem;bottom:0;left:.8rem}.kicker{letter-spacing:.12em;color:var(--muted);margin:1.2rem 0 .6rem;font-size:.78rem;font-weight:700}.list{flex-direction:column;gap:.65rem;margin:0;padding:0;list-style:none;display:flex}.list button{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);width:100%;min-height:4.7rem;box-shadow:var(--shadow);text-align:left;align-items:center;gap:.8rem;padding:.85rem .9rem;transition:transform .12s,background .12s;display:flex}.list button:hover{border-color:#cfc6bb}.list button:active{background:#faf7f2;transform:scale(.985)}.idx{background:var(--wait);width:2.35rem;height:2.35rem;color:var(--ink);letter-spacing:0;border-radius:999px;flex:none;place-items:center;font-size:.78rem;font-weight:700;display:grid}.text{flex:1;min-width:0}.name{letter-spacing:0;font-size:1.05rem;font-weight:700;line-height:1.35;display:block}.blurb{color:var(--muted);margin-top:.15rem;font-size:.84rem;font-weight:400;line-height:1.45;display:block}.enter{color:var(--muted);letter-spacing:.04em;flex:none;align-items:center;gap:.2rem;font-size:.78rem;font-weight:650;display:inline-flex}.enter:after{content:"";border-top:1.6px solid;border-right:1.6px solid;width:.42rem;height:.42rem;transform:rotate(45deg)}.back{border:1px solid var(--line);background:var(--card);min-height:2.5rem;color:var(--ink);letter-spacing:0;border-radius:999px;align-items:center;gap:.2rem;margin:0;padding:.2rem .75rem .2rem .55rem;font-size:.92rem;font-weight:650;display:inline-flex;box-shadow:0 1px 2px #1c19170a}.back:before{content:"";border-bottom:1.6px solid;border-left:1.6px solid;width:.42rem;height:.42rem;margin-right:.1rem;transform:rotate(45deg)}.back:active{background:#f6f1ea}.module-title{letter-spacing:0;margin:0;font-size:clamp(1.45rem,5.4vw,1.75rem);font-weight:700;line-height:1.25}.steps{gap:0;margin:1rem 0 0;padding:.15rem .1rem 0;list-style:none;display:flex}.steps li{min-height:0;color:var(--muted);text-align:center;background:0 0;flex:1;padding:0 .1rem .15rem;font-size:.78rem;font-weight:600;line-height:1.3;position:relative}.steps li:before{content:"";z-index:0;background:var(--line-strong);border-radius:99px;height:2px;position:absolute;top:.8rem;left:calc(50% + .95rem);right:calc(.95rem - 50%)}.steps li:last-child:before{display:none}.steps-index{z-index:1;border:1.5px solid var(--line-strong);background:var(--card);width:1.7rem;height:1.7rem;color:var(--muted);letter-spacing:0;border-radius:999px;place-items:center;margin:0 auto .35rem;font-size:.75rem;font-weight:700;line-height:1;display:grid;position:relative}.steps li[data-state=current]{color:var(--ink);font-weight:700}.steps li[data-state=current] .steps-index{border-color:var(--ink);background:var(--ink);color:#f7f4ef}.steps li[data-state=done]{color:var(--ok)}.steps li[data-state=done] .steps-index{border-color:var(--ok);background:var(--ok);color:#f4fff8}.steps li[data-state=done]:before{background:#8fbfa4}.panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow);margin-top:.85rem;padding:1.05rem 1rem 1.1rem}.panel h2{color:var(--ink);letter-spacing:0;align-items:center;gap:.5rem;margin:0;font-size:1.05rem;font-weight:700;display:flex}.panel h2:before{content:"";background:var(--seal);border-radius:99px;flex:none;width:3px;height:.95em}.hint,.quiet{color:var(--muted);margin:.45rem 0 0;font-size:.9rem;line-height:1.6}.quiet:empty{display:none}.quiet:not(:empty){background:var(--wait);border-radius:10px;padding:.55rem .7rem}.err{color:var(--seal);margin:.65rem 0 0;font-size:.9rem;line-height:1.5}.err:empty{display:none}.err:not(:empty){background:var(--seal-soft);border-radius:10px;padding:.6rem .75rem}.field{min-width:0;color:var(--ink-soft);letter-spacing:0;flex-direction:column;gap:.35rem;margin-top:.8rem;font-size:.8rem;font-weight:650;display:flex}.field input,.field select,.choice{letter-spacing:0;font-weight:400}.field input,.field select{border:1px solid var(--line-strong);width:100%;min-height:3rem;color:var(--ink);background:#fff;border-radius:12px;padding:.45rem .75rem;font-size:1rem;font-weight:400}.field select{appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1.4 L6 6.2 L11 1.4' fill='none' stroke='%2378716c' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/></svg>");background-position:right .8rem center;background-repeat:no-repeat;padding-right:2.1rem}.field input:focus-visible,.field select:focus-visible{border-color:var(--ink);outline:none;box-shadow:0 0 0 3px #1c19171f}input[type=number]{appearance:textfield}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.grid-2,.grid-3{gap:.15rem .6rem;display:grid}.grid-2{grid-template-columns:1fr 1fr}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-2 .field,.grid-3 .field,.grid-time .field{margin-top:.65rem}.grid-time{border:1px solid var(--line);background:#faf7f2;border-radius:14px;grid-template-columns:repeat(2,minmax(0,1fr));gap:.15rem .6rem;margin-top:.8rem;padding:.2rem .75rem .8rem;display:grid}.grid-time .field:first-child{margin-top:.7rem}@media (width<=719px){.grid-time .field:first-child{grid-column:1/-1}}.choice{border:0;flex-wrap:wrap;gap:.45rem;min-inline-size:0;margin:.9rem 0 0;padding:0;display:flex}.choice-legend{width:100%;color:var(--ink-soft);letter-spacing:0;flex:1 0 100%;margin:0;padding:0;font-size:.8rem;font-weight:650}.choice label{border:1px solid var(--line-strong);min-height:2.75rem;color:var(--ink);letter-spacing:0;background:#fff;border-radius:12px;flex:7.5rem;justify-content:center;align-items:center;padding:.35rem .7rem;font-size:.98rem;font-weight:600;display:flex;position:relative}.choice input{opacity:0;margin:0;position:absolute;inset:0}.choice label:has(input:checked){border-color:var(--ink);background:var(--ink);color:#f7f4ef}.choice label:focus-within{outline:2px solid var(--focus);outline-offset:2px}.check{border:1px solid var(--line);min-height:3rem;color:var(--ink);letter-spacing:0;background:#faf7f2;border-radius:12px;align-items:center;gap:.55rem;margin-top:.8rem;padding:.55rem .75rem;font-size:.95rem;display:flex}.check input{width:1.15rem;height:1.15rem;accent-color:var(--ink);flex:none;margin:0}.actions{flex-wrap:wrap;gap:.55rem;margin-top:1rem;display:flex}.btn{border:1px solid var(--line-strong);min-height:3rem;color:var(--ink);letter-spacing:0;background:#fff;border-radius:12px;flex:9rem;padding:.5rem .9rem;font-size:.98rem;font-weight:650}.btn:active:not(:disabled){transform:translateY(1px)}.btn-primary{border-color:var(--ink);background:var(--ink);color:#f7f4ef}.btn-primary:active:not(:disabled){background:#312c28}.btn-ghost{color:var(--ink-soft);box-shadow:none;background:0 0;border-color:#0000;flex-basis:100%}.btn:disabled{opacity:.42;cursor:not-allowed}.classic{font-family:var(--serif);letter-spacing:.02em;font-size:1.05rem;line-height:1.9}.excerpt-stack{flex-direction:column;gap:.85rem;display:flex}.excerpt{padding-top:.15rem}.excerpt+.excerpt{border-top:1px solid var(--line);padding-top:1rem}.excerpt-role,.excerpt-note,.excerpt-miss{color:var(--muted);letter-spacing:.04em;margin:0;font-size:.8rem;line-height:1.55}.excerpt-note{background:var(--wait);border-radius:10px;padding:.55rem .7rem}.excerpt-name{letter-spacing:.02em;color:var(--ink);margin:.15rem 0 0;font-size:1.35rem;font-weight:700}.excerpt-block{margin-top:.85rem}.excerpt-block h4{color:var(--seal);letter-spacing:.12em;margin:0;font-size:.75rem;font-weight:700}.excerpt-block p,.excerpt-special{margin:.3rem 0 0}.excerpt-lines{margin:.25rem 0 0;padding:0;list-style:none}.excerpt-lines li{border-top:1px solid var(--line);padding:.7rem 0}.excerpt-special{border-top:1px solid var(--line);padding-top:.7rem}.foot{border-top:1px solid var(--line);color:var(--ink-soft);margin-top:1.75rem;padding-top:.95rem;font-size:.86rem;line-height:1.65}.foot p{margin:0}.foot p+p{color:var(--muted);margin-top:.35rem;font-size:.78rem}.empty,.miss{border:1px dashed var(--line-strong);color:var(--muted);background:#fffcf8b3;border-radius:12px;margin:.4rem 0 0;padding:.9rem 1rem}a{text-underline-offset:.18em}@media (width>=720px){.shell{padding-top:calc(1.8rem + env(safe-area-inset-top))}.grid-time{grid-template-columns:1.2fr repeat(4,minmax(0,1fr))}.actions .btn{flex-grow:0}.btn-ghost{flex-basis:auto}}@media (width<=360px){.shell{padding-right:calc(.75rem + env(safe-area-inset-right));padding-left:calc(.75rem + env(safe-area-inset-left))}.panel,.guide,.jw-card{padding-left:.8rem;padding-right:.8rem}}.hello-list{margin:.7rem 0 0;padding:0;list-style:none}.hello-list li{border-top:1px solid var(--line);margin:0;padding:.6rem 0 .6rem .95rem;line-height:1.55;position:relative}.hello-list li:before{content:"";background:var(--ink);opacity:.45;border-radius:99px;width:.38rem;height:.38rem;position:absolute;top:.95rem;left:0}.hello-foot{overflow-wrap:anywhere;border:1px solid var(--line);color:var(--muted);background:#fffcf8b3;border-radius:12px;margin:.9rem 0 0;padding:.85rem .9rem;font-size:.84rem;line-height:1.7}.ly{color:var(--ink);min-width:0;max-width:100%}.ly-recap,.ly-meta{margin:.75rem 0 0;font-size:.98rem;line-height:1.6}.ly-recap{background:var(--wait);border-radius:12px;padding:.7rem .8rem}.ly-nowrap{white-space:nowrap}.ly-chips{flex-wrap:wrap;gap:.4rem;margin-top:.8rem;display:flex}.ly-chip{border:1px solid var(--line);min-height:1.75rem;color:var(--ink);background:#fff;border-radius:999px;align-items:center;padding:.12rem .55rem;font-size:.78rem;line-height:1.4;display:inline-flex}.ly-chip-label{color:var(--muted);letter-spacing:.06em;background:0 0;border-color:#0000;padding-left:0;font-weight:650}.ly-result{min-width:0;max-width:100%}.ly-scroll{overscroll-behavior-x:contain;border:1px solid var(--line);background:#fff;border-radius:12px;width:0;min-width:100%;overflow-x:auto}.ly-board{border-collapse:collapse;width:max-content;min-width:100%;font-size:14px;line-height:1.45}.ly-board th,.ly-board td{border-bottom:1px solid var(--line);text-align:center;white-space:nowrap;padding:.48rem .35rem;font-weight:500}.ly-boards{flex-direction:column;gap:.75rem;margin-top:.85rem;display:flex}.ly-board .gname{text-align:left;letter-spacing:.02em;white-space:normal;background:#fff;padding:.75rem .75rem .4rem;font-size:1.02rem;font-weight:700}.gua-link{color:var(--seal);text-underline-offset:.18em;font-weight:700}.ly-board .tag{color:var(--muted);font-weight:500}.ly-board .cols th{color:var(--muted);letter-spacing:.04em;background:#faf7f2;font-size:.72rem;font-weight:650}.ly-board .bar{letter-spacing:0;font-family:var(--serif)}.ly-board tr:has(.move){background:#f7f1e8}.ly-board .move,.ly-board .kong{color:var(--seal);font-weight:700}.ly-board .kong{margin-left:.15rem;font-size:.85em}.ly-attr{overflow-wrap:anywhere;border:1px solid var(--line);color:var(--muted);background:#fffcf8b8;border-radius:12px;margin:1rem 0 0;padding:.85rem .9rem;font-size:.82rem;line-height:1.7}.ly-attr a{color:var(--seal)}@media (width>=720px){.ly-yao{grid-template-columns:repeat(3,minmax(0,1fr))}.ly-board{font-size:15px}}@media (width>=900px){.ly-boards:has(.ly-scroll+.ly-scroll){grid-template-columns:minmax(0,1.45fr) minmax(0,.9fr);align-items:start;display:grid}}.mh{min-width:0;max-width:100%;color:var(--ink)}.mh-recap,.mh-head{letter-spacing:.02em;margin:.75rem 0 0;font-size:1.02rem;line-height:1.6}.mh-recap{background:var(--wait);border-radius:12px;padding:.75rem .8rem}.mh-head{font-size:1.22rem;font-weight:700}.mh-sub{color:var(--ink-soft);margin:.35rem 0 0;font-size:.95rem}.mh-charts{gap:.65rem;margin-top:.95rem;display:grid}.mh-card{border:1px solid var(--line);background:#fff;border-radius:14px;padding:.8rem .85rem .9rem;box-shadow:0 1px 2px #1c191708}.mh-card h3{letter-spacing:.12em;color:var(--seal);margin:0;font-size:.75rem;font-weight:700}.mh-card .name{letter-spacing:.02em;margin:.25rem 0 .5rem;font-size:1.08rem;font-weight:700}.mh-jump{color:var(--seal);text-underline-offset:.18em;font-weight:700}.mh-lines{flex-direction:column;gap:.12rem;display:flex}.mh-line{border-radius:8px;grid-template-columns:1.6rem 1fr 1.6rem;align-items:center;gap:.35rem;padding:.02rem .25rem;font-size:1.02rem;line-height:1.7;display:grid}.mh-line .bar{font-family:var(--serif);letter-spacing:.14em;text-align:center}.mh-line.move{color:var(--seal);background:#f7f1e8;font-weight:700}.mh-steps{background:var(--wait);color:var(--ink-soft);border-radius:12px;margin:.95rem 0 0;padding:.7rem .8rem .8rem 1.7rem;font-size:.9rem}.mh-steps li{margin-top:.28rem}.mh-steps li:first-child{margin-top:0}.mh-attr{overflow-wrap:anywhere;border:1px solid var(--line);color:var(--muted);background:#fffcf8b8;border-radius:12px;margin:1rem 0 0;padding:.85rem .9rem;font-size:.82rem;line-height:1.7}.mh-attr a{color:var(--seal)}.mh-solar{border:1px dashed var(--line-strong);background:#faf7f2;border-radius:14px;margin-top:.85rem;padding:.15rem .75rem .8rem}.mh-solar .btn{width:100%;margin-top:.75rem}@media (width>=800px){.mh-charts{grid-template-columns:repeat(3,minmax(0,1fr))}}.jw{min-width:0;max-width:100%;color:var(--ink)}.jw-form h2{margin-bottom:.15rem}.jw-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow);margin-top:.85rem;padding:1.1rem 1rem 1.15rem}.jw-kicker,.jw-sub,.jw-note2,.jw-miss{color:var(--muted);margin:.4rem 0 0;font-size:.86rem;line-height:1.6}.jw-kicker{letter-spacing:.08em;font-size:.75rem;font-weight:700}.jw-name{letter-spacing:.03em;margin:.2rem 0 0;font-size:1.7rem;font-weight:700;line-height:1.25}.jw-block{margin-top:.95rem}.jw-block h3,.jw-card>h3.jw-kicker{color:var(--seal);letter-spacing:.12em;margin:1rem 0 0;font-size:.75rem;font-weight:700}.jw-block p{margin:.35rem 0 0}.jw-lines{margin:.3rem 0 0;padding:0;list-style:none}.jw-lines li,.jw-special{border-top:1px solid var(--line);padding:.72rem 0}.jw-special{margin:.35rem 0 0}.jw-hits{flex-direction:column;gap:.5rem;margin-top:.85rem;display:flex}.jw-hit{width:100%;margin:0}.jw-attr{overflow-wrap:anywhere;border:1px solid var(--line);color:var(--muted);background:#fffcf8b8;border-radius:12px;margin:1rem 0 0;padding:.85rem .9rem;font-size:.8rem;line-height:1.7}.jw-attr a{color:var(--seal)}
