@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-vietnamese-wght-normal.CnvboYUG.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-latin-ext-wght-normal.Ca2vKHc0.woff2)format("woff2-variations");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:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-latin-wght-normal.ukD16Tqj.woff2)format("woff2-variations");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}:root{--paper:#f7f7f4;--card:#fff;--ink:#23252e;--ink-soft:#6b6e7a;--dusk:#3f4785;--dusk-strong:#333a6e;--dusk-soft:#e8eaf5;--amber:#a9741a;--amber-bright:#c98a1b;--amber-soft:#f6ecd7;--cinnabar:#bf3a2b;--cinnabar-soft:#f9e8e4;--jade:#2c7a5b;--jade-soft:#e2f1ea;--rule:#dddcd3;--shadow:0 1px 3px #23252e12;--serif:"Songti SC", "Noto Serif SC", "Source Han Serif SC", "STSong", serif;--sans:"PingFang SC", "Noto Sans SC", "Helvetica Neue", sans-serif;--num:"Fraunces Variable", "Georgia", serif}:root[data-theme=dark]{--paper:#15161d;--card:#1d1f29;--ink:#e6e4da;--ink-soft:#9a9caa;--dusk:#9aa2e8;--dusk-strong:#b3baf2;--dusk-soft:#262a45;--amber:#d9a63e;--amber-bright:#e5b34a;--amber-soft:#362c14;--cinnabar:#e0604b;--cinnabar-soft:#43201a;--jade:#5cbd90;--jade-soft:#1c352a;--rule:#2d2f3a;--shadow:0 1px 3px #0006}@media (prefers-color-scheme:dark){:root:not([data-theme]){--paper:#15161d;--card:#1d1f29;--ink:#e6e4da;--ink-soft:#9a9caa;--dusk:#9aa2e8;--dusk-strong:#b3baf2;--dusk-soft:#262a45;--amber:#d9a63e;--amber-bright:#e5b34a;--amber-soft:#362c14;--cinnabar:#e0604b;--cinnabar-soft:#43201a;--jade:#5cbd90;--jade-soft:#1c352a;--rule:#2d2f3a;--shadow:0 1px 3px #0006}}*{box-sizing:border-box}html{scroll-behavior:smooth;font-size:17px}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}body{background:var(--paper);color:var(--ink);font-family:var(--serif);margin:0;line-height:1.9}:focus-visible{outline:2px solid var(--dusk);outline-offset:2px;border-radius:2px}a{color:var(--dusk);text-underline-offset:4px;text-decoration-thickness:1px}a:hover{color:var(--dusk-strong)}.shell{max-width:44rem;margin:0 auto;padding:0 1.5rem 6rem}.site-header{font-family:var(--sans);border-bottom:1px solid var(--rule);justify-content:space-between;align-items:center;gap:1rem;margin-bottom:2.5rem;padding:1.3rem 0 1.1rem;display:flex}.wordmark{color:var(--ink);align-items:center;gap:.6rem;text-decoration:none;display:flex}.wordmark .seal-mark{background:var(--cinnabar);color:#fdf6f0;width:1.7rem;height:1.7rem;font-family:var(--serif);border-radius:4px;place-items:center;font-size:.95rem;font-weight:900;line-height:1;display:grid}.wordmark .name{font-family:var(--serif);letter-spacing:.06em;font-size:1.05rem;font-weight:900}.wordmark .tagline{color:var(--ink-soft);letter-spacing:.05em;font-size:.72rem}.header-nav{align-items:center;gap:.9rem;font-size:.82rem;display:flex}.header-nav a{color:var(--ink-soft);text-decoration:none}.header-nav a:hover{color:var(--dusk)}.header-nav a[aria-current=page]{color:var(--dusk);font-weight:600}.theme-toggle{font-family:var(--sans);color:var(--ink-soft);border:1px solid var(--rule);cursor:pointer;background:0 0;border-radius:999px;width:1.9rem;height:1.9rem;font-size:.8rem;line-height:1}.theme-toggle:hover{border-color:var(--ink-soft)}.site-footer{border-top:1px solid var(--rule);font-family:var(--sans);color:var(--ink-soft);margin-top:5rem;padding-top:1.2rem;font-size:.78rem}h1,h2,h3{font-family:var(--serif);color:var(--ink);font-weight:900;line-height:1.4}h1{letter-spacing:.01em;margin:0 0 .4rem;font-size:1.85rem}h2{border-top:1px solid var(--rule);margin:3rem 0 .8rem;padding-top:1.4rem;font-size:1.3rem}h3{margin:1.8rem 0 .5rem;font-size:1.05rem}p{margin:.9rem 0}strong{color:var(--ink);font-weight:900}ul,ol{padding-left:1.6rem}li{margin:.35rem 0}hr{border:none;border-top:1px solid var(--rule);margin:2.5rem 0}.term{color:var(--cinnabar);font-weight:700}.cite{font-family:var(--sans);color:var(--ink-soft);font-size:.76rem}a.cite{color:var(--ink-soft)}.lesson-meta{font-family:var(--sans);color:var(--ink-soft);letter-spacing:.03em;margin-bottom:2.5rem;font-size:.8rem}.kicker{font-family:var(--sans);letter-spacing:.14em;color:var(--dusk);margin-bottom:.6rem;font-size:.75rem;font-weight:600}.kicker .no{font-family:var(--num);font-size:.95rem;font-weight:600}.box{border:1px solid var(--rule);background:var(--card);box-shadow:var(--shadow);border-radius:10px;margin:1.6rem 0;padding:1.1rem 1.4rem}.box-title{font-family:var(--sans);letter-spacing:.1em;color:var(--dusk);margin-bottom:.5rem;font-size:.78rem;font-weight:700}.box.win{background:var(--amber-soft);border-color:var(--amber)}.box.win .box-title{color:var(--amber)}.box>:last-child{margin-bottom:0}.box>:first-child+*{margin-top:0}.word-grid{grid-template-columns:repeat(auto-fit,minmax(7.5rem,1fr));gap:.6rem;margin:1.4rem 0;display:grid}.word-card{font-family:var(--sans);text-align:center;background:var(--card);border:1px solid var(--rule);box-shadow:var(--shadow);border-radius:10px;padding:1rem .4rem .85rem;font-size:1.05rem;font-weight:600;position:relative}.word-card .num{font-family:var(--num);color:var(--ink-soft);margin-bottom:.15rem;font-size:.72rem;font-weight:500;display:block}.word-card .pic{opacity:.55;font-size:.8rem;position:absolute;bottom:.3rem;right:.4rem}.storyboard{border:1px solid var(--rule);background:var(--card);box-shadow:var(--shadow);border-radius:12px;margin:1.8rem 0;overflow:hidden}.storyboard-title{font-family:var(--sans);letter-spacing:.14em;color:var(--paper);background:var(--dusk);padding:.45rem 1.2rem;font-size:.75rem;font-weight:700}.storyboard ol{counter-reset:frame;margin:0;padding:.4rem 0;list-style:none}.storyboard ol li{counter-increment:frame;margin:0;padding:.55rem 1.2rem .55rem 3.7rem}.storyboard ol li+li{border-top:1px dashed var(--rule)}.storyboard ol li:before{content:counter(frame, decimal-leading-zero);width:2.5rem;font-family:var(--num);color:var(--amber);margin-left:-2.5rem;font-size:.78rem;font-weight:600;display:inline-block}.storyboard strong{color:var(--dusk-strong)}recall-test,quiz-block{display:block}.recall-test,.quiz{font-family:var(--sans);margin:1.5rem 0}.recall-inputs{grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.6rem;margin:1rem 0;display:grid}.recall-inputs input{font-family:var(--sans);border:1.5px solid var(--rule);background:var(--card);color:var(--ink);border-radius:8px;width:100%;padding:.55rem .7rem;font-size:1rem}.recall-inputs input:focus{border-color:var(--dusk);outline:none}.recall-inputs input.ok{border-color:var(--jade);background:var(--jade-soft)}.recall-inputs input.err{border-color:var(--cinnabar);background:var(--cinnabar-soft)}button.check{font-family:var(--sans);color:var(--paper);background:var(--dusk);cursor:pointer;border:none;border-radius:8px;padding:.6rem 1.6rem;font-size:.92rem;font-weight:600}button.check:hover{background:var(--dusk-strong)}.result{border-radius:8px;margin-top:.8rem;padding:.7rem 1rem;font-size:.92rem;display:none}.result.show{display:block}.result.good{background:var(--jade-soft);color:var(--jade)}.result.bad{background:var(--cinnabar-soft);color:var(--cinnabar)}.quiz-q{margin:1.4rem 0}.quiz-q .q-text{margin-bottom:.5rem;font-weight:600}.quiz-q label{border:1.5px solid var(--rule);cursor:pointer;background:var(--card);border-radius:8px;margin:.35rem 0;padding:.5rem .9rem;display:block}.quiz-q label:hover{border-color:var(--dusk)}.quiz-q label.ok{border-color:var(--jade);background:var(--jade-soft)}.quiz-q label.err{border-color:var(--cinnabar);background:var(--cinnabar-soft)}.quiz-q input[type=radio]{margin-right:.5rem}.seal{border:2.5px solid var(--cinnabar);width:2.6rem;height:2.6rem;color:var(--cinnabar);font-family:var(--serif);user-select:none;border-radius:6px;place-items:center;font-size:1.25rem;font-weight:900;line-height:1;display:inline-grid;transform:rotate(-6deg)}.complete-block{font-family:var(--sans);border:1px dashed var(--rule);border-radius:12px;align-items:center;gap:1.1rem;margin:3rem 0 0;padding:1.4rem;display:flex}.complete-block .hint{color:var(--ink-soft);margin:0;font-size:.85rem}button.stamp-btn{font-family:var(--sans);color:var(--cinnabar);border:2px solid var(--cinnabar);cursor:pointer;background:0 0;border-radius:8px;padding:.55rem 1.4rem;font-size:.95rem;font-weight:600}button.stamp-btn:hover{background:var(--cinnabar-soft)}.complete-block .seal{display:none}.complete-block.done .seal{display:inline-grid}.complete-block.done .stamp-btn{display:none}@keyframes stamp-down{0%{opacity:0;transform:rotate(-14deg)scale(2.2)}60%{opacity:1;transform:rotate(-5deg)scale(.94)}to{opacity:1;transform:rotate(-6deg)scale(1)}}.complete-block.just-stamped .seal{animation:.45s cubic-bezier(.2,.8,.3,1.1) both stamp-down}.route{margin:2.8rem 0}.route-title{font-family:var(--sans);letter-spacing:.16em;color:var(--ink-soft);margin-bottom:1.4rem;font-size:.78rem;font-weight:700}.route-list{margin:0;padding:0;list-style:none;position:relative}.route-list:before{content:"";border-left:2px dashed var(--rule);position:absolute;top:.8rem;bottom:.8rem;left:1.45rem}.route-stop{gap:1.3rem;margin:0;padding:0 0 2rem;display:flex;position:relative}.route-stop:last-child{padding-bottom:0}.route-stop .locus{z-index:1;background:var(--card);border:1.5px solid var(--rule);height:3rem;box-shadow:var(--shadow);border-radius:50%;flex:0 0 3rem;place-items:center;font-size:1.35rem;display:grid;position:relative}.route-stop.done .locus{border-color:var(--amber);background:var(--amber-soft)}.route-card{background:var(--card);border:1px solid var(--rule);box-shadow:var(--shadow);border-radius:12px;flex:1;padding:1rem 1.2rem;position:relative}.route-card a.stretch{color:inherit;text-decoration:none}.route-card a.stretch:after{content:"";border-radius:12px;position:absolute;inset:0}.route-card:hover{border-color:var(--dusk)}.route-card .no{font-family:var(--num);color:var(--dusk);letter-spacing:.08em;font-size:.8rem;font-weight:600}.route-card h2{border:none;margin:.15rem 0 .3rem;padding:0;font-size:1.12rem}.route-card .desc{color:var(--ink-soft);margin:0;font-size:.88rem;line-height:1.7}.route-card .meta{font-family:var(--sans);color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:.9rem;margin-top:.6rem;font-size:.76rem;display:flex}.route-card .score{color:var(--amber);font-weight:600}.route-card .card-seal{background:var(--paper);display:none;position:absolute;top:-.7rem;right:.9rem}.route-stop.done .card-seal{display:inline-grid}.route-stop.teaser .locus{opacity:.75;border-style:dashed}.route-stop.teaser .route-card{box-shadow:none;background:0 0;border-style:dashed}.route-stop.teaser .route-card:hover{border-color:var(--rule)}.hero{margin:.5rem 0 0}.hero h1{font-size:2.1rem;line-height:1.35}.hero .sub{color:var(--ink-soft);max-width:34rem;font-size:.95rem}.stats-strip{font-family:var(--sans);color:var(--ink-soft);gap:1.8rem;margin:1.6rem 0 0;font-size:.82rem;display:flex}.stats-strip .stat b{font-family:var(--num);color:var(--amber);margin-right:.25rem;font-size:1.25rem;font-weight:600}.ref-links{grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:.8rem;margin-top:2.6rem;display:grid}.ref-links a{font-family:var(--sans);color:var(--ink);background:var(--card);border:1px solid var(--rule);box-shadow:var(--shadow);border-radius:12px;padding:.9rem 1.1rem;text-decoration:none}.ref-links a:hover{border-color:var(--dusk)}.ref-links .t{font-size:.92rem;font-weight:700;display:block}.ref-links .d{color:var(--ink-soft);font-size:.78rem}.lesson-nav{border-top:1px solid var(--rule);font-family:var(--sans);color:var(--ink-soft);margin-top:2.2rem;padding-top:1.2rem;font-size:.85rem}.lesson-nav .row{flex-wrap:wrap;justify-content:space-between;gap:1rem;display:flex}.entry-list h3{margin-top:2.2rem}.entry-list h3 .cite{margin-left:.4rem;font-weight:400}@media print{body{background:#fff}.site-header,.site-footer,.theme-toggle,.complete-block,.recall-test button,.quiz button{display:none}a{color:var(--ink);text-decoration:none}}
