:root{--bg:#f2efe3;--bg2:#ede9d8;--surface:#faf8ef;--card:#fffdf6;--ink:#1b2e25;--dim:#1b2e25b8;--muted:#1b2e2585;--faint:#1b2e254d;--jade:#5e8f74;--jade-deep:#4e7a62;--jade-soft:#5e8f741f;--jade-border:#5e8f7459;--gold:#c4923a;--gold-soft:#c4923a21;--seal:#b34f3e;--seal-soft:#b34f3e1a;--border:#1b2e2521;--divider:#1b2e2514;--disp:"Fraunces",serif;--ui:"DM Sans",sans-serif;--zh:"Noto Serif SC",serif}*{box-sizing:border-box;margin:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:var(--ui);-webkit-font-smoothing:antialiased;overflow-x:hidden}a{color:var(--jade-deep);text-decoration:none}a:hover{color:var(--gold)}.zh{font-family:var(--zh)}.wrap{max-width:1080px;margin:0 auto;padding:0 28px}nav{z-index:50;backdrop-filter:blur(14px);border-bottom:1px solid var(--divider);background:#f2efe3d9;position:sticky;top:0}.nav-in{justify-content:space-between;align-items:center;gap:16px;height:66px;display:flex}.logo{font-family:var(--disp);color:var(--ink);align-items:center;gap:9px;font-size:21px;font-weight:700;display:flex}.logo:hover{color:var(--ink)}.nav-links{align-items:center;gap:26px;display:flex}.nav-links>a{color:var(--dim);font-size:14px;font-weight:600}.nav-links>a:hover,.nav-links>a.here{color:var(--ink)}.lang{border:1px solid var(--border);background:var(--surface);border-radius:10px;display:inline-flex;overflow:hidden}.lang button{color:var(--muted);font-family:var(--ui);cursor:pointer;background:0 0;border:none;padding:7px 11px;font-size:12px;font-weight:700}.lang button.on{background:var(--jade);color:#fff}.btn{font-family:var(--ui);cursor:pointer;border:none;border-radius:14px;align-items:center;gap:8px;padding:13px 26px;font-size:15px;font-weight:700;text-decoration:none;transition:transform .15s,box-shadow .15s;display:inline-flex}.btn-jade{background:var(--jade);color:#fff}.btn-jade:hover{color:#fff;transform:translateY(-1px);box-shadow:0 10px 26px #5e8f7459}.btn-ghost{color:var(--jade-deep);border:1.5px solid var(--jade-border);background:0 0}.btn-ghost:hover{background:var(--jade-soft);color:var(--jade-deep)}.btn-gold{background:var(--gold);color:#fff}.btn-gold:hover{color:#fff;transform:translateY(-1px);box-shadow:0 10px 26px #c4923a59}.btn-sm{border-radius:11px;padding:9px 18px;font-size:13px}h1{font-family:var(--disp);letter-spacing:-1.5px;text-wrap:pretty;font-size:clamp(38px,5vw,58px);font-weight:600;line-height:1.06}h2{font-family:var(--disp);letter-spacing:-1px;text-wrap:pretty;font-size:clamp(28px,3.4vw,40px);font-weight:600;line-height:1.12}h3{font-family:var(--disp);letter-spacing:-.3px;font-size:19px;font-weight:600}.eyebrow{letter-spacing:2.4px;text-transform:uppercase;color:var(--gold);margin-bottom:14px;font-size:12px;font-weight:700}.lead{color:var(--dim);font-size:17px;line-height:1.7}section{padding:78px 0;position:relative}.sec-head{max-width:620px;margin-bottom:46px}.sec-head p{color:var(--dim);margin-top:14px;font-size:16px;line-height:1.65}.card{background:var(--card);border:1px solid var(--border);border-radius:20px;padding:26px}.grid2{grid-template-columns:1fr 1fr;gap:16px;display:grid}.grid3{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.chip{background:var(--surface);border:1px solid var(--border);color:var(--dim);border-radius:20px;align-items:center;gap:6px;padding:6px 13px;font-size:12px;font-weight:700;display:inline-flex}.chip.jade{background:var(--jade-soft);border-color:var(--jade-border);color:var(--jade-deep)}.tag{letter-spacing:1.6px;text-transform:uppercase;border-radius:8px;padding:4px 10px;font-size:10px;font-weight:800;display:inline-block}.phone{background:#22352b;border-radius:44px;width:290px;padding:9px;box-shadow:0 40px 90px #1b2e2559,0 0 0 1px #1b2e2526}.phone img{border-radius:36px;width:100%;display:block}.hero{padding:80px 0 64px;position:relative;overflow:hidden}.hero-grid{grid-template-columns:1.15fr .85fr;align-items:center;gap:44px;display:grid}.glow{pointer-events:none;filter:blur(70px);border-radius:50%;position:absolute}footer{color:#f2efe3d9;background:#22352b;margin-top:40px;padding:56px 0 32px}footer a{color:#f2efe3b3}footer a:hover{color:#fff}.foot-grid{border-bottom:1px solid #f2efe326;grid-template-columns:1.3fr 1fr 1.2fr;gap:40px;padding-bottom:36px;display:grid}.foot-grid h4{font-family:var(--disp);color:#fff;margin-bottom:14px;font-size:15px}.foot-grid ul{flex-direction:column;gap:9px;padding:0;font-size:14px;list-style:none;display:flex}.foot-note{color:#f2efe380;flex-wrap:wrap;justify-content:space-between;gap:10px;padding-top:22px;font-size:12.5px;display:flex}.modal-veil{backdrop-filter:blur(4px);z-index:100;background:#1b2e2580;justify-content:center;align-items:center;padding:20px;display:none;position:fixed;inset:0}.modal-veil.open{display:flex}.modal{background:var(--card);text-align:center;border-radius:24px;width:100%;max-width:420px;padding:34px;position:relative;box-shadow:0 30px 80px #0000004d}.modal .x{background:var(--surface);width:32px;height:32px;color:var(--muted);cursor:pointer;border:none;border-radius:50%;font-size:15px;position:absolute;top:14px;right:14px}.modal h3{margin:14px 0 6px;font-size:23px}.modal p{color:var(--dim);font-size:14px;line-height:1.6}.os-row{gap:12px;margin-top:22px;display:flex}.os-btn{border:1.5px solid var(--border);background:var(--surface);cursor:pointer;font-family:var(--ui);color:var(--ink);border-radius:16px;flex-direction:column;flex:1;align-items:center;gap:6px;padding:18px 12px;font-size:15px;font-weight:700;transition:border-color .15s,background .15s;display:flex}.os-btn:hover{border-color:var(--jade);background:var(--jade-soft)}.os-btn .big{font-size:26px}.os-btn small{color:var(--muted);font-size:11px;font-weight:600}.modal .consent{color:var(--muted);margin-top:12px;font-size:11.5px;line-height:1.5}.modal .consent a{color:var(--jade-deep);text-decoration:underline}.modal input{border:1px solid var(--border);background:var(--surface);width:100%;font-family:var(--ui);color:var(--ink);border-radius:13px;outline:none;margin-top:18px;padding:14px 16px;font-size:15px}.modal input:focus{border-color:var(--jade)}.modal .note{color:var(--muted);background:var(--gold-soft);border:1px dashed #c4923a66;border-radius:11px;margin-top:14px;padding:10px 12px;font-size:12px;line-height:1.5}.art{max-width:680px;margin:0 auto}.art-h .meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:14px;font-size:13px;display:flex}.art h1{font-size:clamp(30px,4vw,44px)}.art h2{margin:44px 0 14px;font-size:26px}.art p{color:var(--dim);margin:16px 0;font-size:16.5px;line-height:1.8}.art strong{color:var(--ink)}.art ul,.art ol{color:var(--dim);flex-direction:column;gap:8px;margin:16px 0;padding-left:24px;font-size:16.5px;line-height:1.8;display:flex}.art table{border-collapse:collapse;background:var(--card);border:1px solid var(--border);border-radius:14px;width:100%;margin:22px 0;font-size:14.5px;overflow:hidden}.art th{background:var(--jade-soft);color:var(--jade-deep);text-align:left;letter-spacing:.5px;text-transform:uppercase;padding:11px 14px;font-size:12.5px;font-weight:700}.art td{border-top:1px solid var(--divider);color:var(--dim);padding:11px 14px}.art td .zh{color:var(--ink);font-size:17px}blockquote{border-left:3px solid var(--gold);background:var(--gold-soft);color:var(--dim);border-radius:0 14px 14px 0;margin:22px 0;padding:14px 20px;font-size:15.5px;line-height:1.7}.vs-table{border-collapse:collapse;background:var(--card);border:1px solid var(--border);border-radius:20px;width:100%;font-size:14.5px;overflow:hidden}.vs-table th{text-align:left;font-family:var(--disp);border-bottom:2px solid var(--border);padding:16px 18px;font-size:16px}.vs-table th.myra{background:var(--jade-soft);color:var(--jade-deep)}.vs-table td{border-top:1px solid var(--divider);color:var(--dim);vertical-align:top;padding:15px 18px;line-height:1.55}.vs-table td:first-child{color:var(--ink);width:150px;font-weight:700}.vs-table td.myra{background:#5e8f740d}@media (width<=860px){.hero-grid,.grid2,.grid3,.foot-grid{grid-template-columns:1fr}.nav-links>a{display:none}.phone{margin:0 auto}}.mock{color:#1b2e25;background:#f2efe3;border:1px solid #1b2e2540;border-radius:22px;width:264px;max-width:100%;padding:16px 13px;font-size:10.5px;line-height:1.4;box-shadow:0 2px 10px #00000024}.mock *{box-sizing:border-box}.m-chip{letter-spacing:.08em;text-transform:uppercase;color:#5e8f74;background:#5e8f7424;border-radius:4px;margin-bottom:6px;padding:2px 6px;font-size:7.5px;font-weight:700;display:inline-block}.m-title{margin-bottom:2px;font-size:14px;font-weight:700}.m-counter{text-transform:uppercase;letter-spacing:.08em;color:#1b2e2580;margin-bottom:6px;font-size:8px}.m-juice{align-items:center;gap:3px;margin-bottom:9px;display:flex}.m-juice i{background:#1b2e251f;border-radius:3px;flex:1;height:5px}.m-juice i.g{background:#5e8f74}.m-juice i.r{background:#b34f3e}.m-juice i.cur{background:#5e8f748c}.m-streak{color:#b34f3e;white-space:nowrap;background:#b34f3e14;border:1px solid #b34f3e80;border-radius:999px;padding:1px 6px;font-size:8px;font-weight:700}.m-card{background:#fffef9eb;border:1px solid #1b2e251f;border-radius:12px;margin-bottom:8px;padding:9px 10px}.m-card.soft{background:#426e5a14}.m-card.green{background:#5e8f741f;border-color:#5e8f74}.m-card.red{background:#b34f3e14;border-color:#b34f3e80}.m-card.gold{background:#c4923a1a;border-color:#c4923a80}.m-label{text-transform:uppercase;letter-spacing:.08em;color:#1b2e2580;margin-bottom:4px;font-size:7.5px}.m-play{align-items:center;gap:8px;display:flex}.m-play .pb{color:#f5efe4;background:#5e8f74;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:13px;display:flex}.m-play .pl{font-size:10px;font-weight:600}.m-play .ps{color:#1b2e2580;font-size:8px}.m-wave{align-items:flex-end;gap:2px;height:14px;margin-top:6px;display:flex}.m-wave i{background:#5e8f7499;border-radius:2px;width:3px}.m-hanzi{text-align:center;font-size:30px;font-weight:800;line-height:1.2}.m-hanzi.small{font-size:22px}.m-pinyin{color:#5e8f74;text-align:center;font-size:12px;font-weight:700}.m-gloss{color:#1b2e2599;text-align:center;font-size:9.5px}.m-pill{color:#5e8f74;background:#5e8f7424;border-radius:999px;padding:3px 8px;font-size:8.5px;font-weight:600;display:inline-block}.m-opt{background:#fffef9eb;border:1px solid #1b2e251f;border-radius:10px;align-items:center;gap:7px;margin-bottom:5px;padding:7px 9px;font-size:11px;font-weight:600;display:flex}.m-opt .ab{border:1px solid #1b2e2540;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;font-size:8px;font-weight:700;display:flex}.m-opt.ok{background:#5e8f741f;border:1.5px solid #5e8f74}.m-opt.ok .ab{color:#f5efe4;background:#5e8f74;border-color:#5e8f74}.m-opt.bad{background:#b34f3e14;border:1.5px solid #b34f3e}.m-opt.bad .ab{color:#f5efe4;background:#b34f3e;border-color:#b34f3e}.m-opt .sub{color:#1b2e2580;font-size:8px;font-style:italic;font-weight:400}.m-btn{text-align:center;color:#f5efe4;background:#5e8f74;border-radius:12px;width:100%;margin-top:4px;padding:8px 0;font-size:11px;font-weight:700;display:block}.m-btn.ghost{color:#1b2e25;background:0 0;border:1px solid #1b2e2540}.m-mic{text-align:center;padding:6px 0 2px}.m-mic .mc{color:#f5efe4;background:#5e8f74;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;font-size:20px;display:inline-flex}.m-mic .mc.rec{background:#b34f3e}.m-mic .cap{color:#1b2e2580;margin-top:4px;font-size:8.5px}.m-mic .cap.rec{color:#b34f3e;font-weight:600}.m-score{text-align:center}.m-score .big{font-size:26px;font-weight:800}.m-score .big small{color:#1b2e2566;font-size:12px;font-weight:600}.m-score .cap{text-transform:uppercase;letter-spacing:.06em;color:#1b2e2580;font-size:8px}.m-tilebank{flex-wrap:wrap;gap:5px;margin-bottom:8px;display:flex}.m-tile{text-align:center;background:#426e5a14;border:1px solid #1b2e251f;border-radius:9px;padding:5px 9px;font-size:12px;font-weight:700}.m-tile .tp{color:#1b2e2573;font-size:7px;font-style:italic;font-weight:400;display:block}.m-tile.placed{background:#fffef9eb}.m-tile.ok{background:#5e8f741f;border:1.5px solid #5e8f74}.m-tile.bad{background:#b34f3e14;border:1.5px solid #b34f3e}.m-drop{border:1.5px dashed #1b2e254d;border-radius:12px;flex-wrap:wrap;align-items:center;gap:5px;min-height:34px;margin-bottom:8px;padding:8px;display:flex}.m-drop .hint{color:#1b2e2566;font-size:8.5px;font-style:italic}.m-wordline{font-size:13px;font-weight:700;line-height:2}.m-wordline .wg{color:#5e8f74;border-bottom:2px solid #0000}.m-wordline .wy{color:#8c6a1f;border-bottom:2px dotted #8c6a1f}.m-wordline .wr{color:#b34f3e;border-bottom:2px solid #b34f3e}.m-wordline .ruby{text-align:center;margin-right:2px;display:inline-block}.m-wordline .ruby small{color:#1b2e2580;font-size:7px;font-weight:400;line-height:1;display:block}.m-bubble{border-radius:11px;max-width:84%;margin-bottom:6px;padding:6px 9px;font-size:11px}.m-bubble .bl{text-transform:uppercase;letter-spacing:.06em;color:#1b2e2573;margin-bottom:2px;font-size:7px}.m-bubble.ai{background:#fffef9eb;border:1px solid #1b2e251f;border-top-left-radius:3px}.m-bubble.me{background:#5e8f7424;border-bottom-right-radius:3px;margin-left:auto}.m-bubble.react{color:#b34f3e;text-align:center;background:#b34f3e14;border:1px solid #b34f3e66;border-radius:999px;margin:0 auto 6px;font-size:9px}.m-input{color:#1b2e2566;background:#fffef9eb;border:1px solid #1b2e252e;border-radius:10px;margin-bottom:6px;padding:7px 9px;font-size:10px;font-style:italic}.m-diff{letter-spacing:2px;font-family:ui-monospace,Menlo,monospace;font-size:15px}.m-diff .ok{color:#5e8f74}.m-diff .bad{color:#b34f3e;background:#b34f3e1f;border-radius:3px}.m-diff .faint{color:#1b2e2540}.m-timer{margin-bottom:8px}.m-timer .track{background:#1b2e251a;border-radius:4px;height:8px;overflow:hidden}.m-timer .fill{background:#e09f3e;border-radius:4px;width:58%;height:100%}.m-timer .row{justify-content:space-between;margin-top:3px;font-size:8.5px;display:flex}.m-timer .row b{color:#b34f3e}.m-stars{text-align:center;letter-spacing:4px;margin:4px 0;font-size:22px}.m-stars .on{color:#c9a227}.m-stars .off{color:#1b2e252e}.m-statrow{gap:5px;display:flex}.m-statrow .st{text-align:center;background:#fffef9eb;border:1px solid #1b2e251f;border-radius:9px;flex:1;padding:6px 2px}.m-statrow .st b{font-size:12px;display:block}.m-statrow .st span{text-transform:uppercase;letter-spacing:.05em;color:#1b2e2580;font-size:6.5px}.m-cols{gap:6px;display:flex}.m-cols>div{flex:1}.m-grid4{grid-template-columns:repeat(4,1fr);gap:5px;margin-bottom:8px;display:grid}.m-memcard{aspect-ratio:.82;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;font-size:13px;font-weight:800;display:flex}.m-memcard.down{color:#f5efe4a6;background:#5e8f74}.m-memcard.up{background:#fffef9eb;border:1.5px solid #5e8f74}.m-memcard.matched{background:#5e8f7424;border:1.5px solid #5e8f74}.m-memcard small{color:#1b2e2580;font-size:6px;font-weight:400}.m-memcard.vn{text-align:center;padding:2px;font-size:8px;font-weight:600}.m-slotrow{justify-content:center;gap:6px;margin-bottom:8px;display:flex}.m-slot{border:1.5px dashed #1b2e254d;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;width:56px;height:46px;display:flex}.m-slot b{font-size:16px}.m-slot span{text-transform:uppercase;color:#1b2e2573;font-size:6px}.m-slot.ok{background:#5e8f741f;border:1.5px solid #5e8f74}.m-slot.bad{background:#b34f3e14;border:1.5px solid #b34f3e}.m-contour{vertical-align:middle;border:1px solid #1b2e2526;border-radius:4px;width:34px;height:20px;display:inline-block;position:relative}.m-contour i{background:#5e8f74;border-radius:2px;height:2.5px;position:absolute;top:50%;left:5px;right:5px}.m-contour.t1 i{transform:translateY(-6px)}.m-contour.t2 i{transform:rotate(-24deg)}.m-contour.t4 i{transform:rotate(26deg)}.m-beatbar{gap:3px;margin-bottom:8px;display:flex}.m-beatbar i{background:#1b2e251f;border-radius:3px;flex:1;height:5px}.m-beatbar i.done{background:#5e8f74}.m-beatbar i.cur{background:linear-gradient(90deg,#c4923a 55%,#1b2e251f 55%);flex:2.4}.m-imgph{color:#1b2e2573;background:#426e5a1f;border:1px solid #1b2e251f;border-radius:12px;justify-content:center;align-items:center;height:74px;margin-bottom:8px;font-size:9px;display:flex}.m-comic{grid-template-columns:repeat(3,1fr);gap:3px;margin-bottom:8px;display:grid}.m-comic i{aspect-ratio:1;background:#426e5a1f;border:1px solid #1b2e251f;border-radius:5px;justify-content:center;align-items:center;font-size:10px;display:flex}.m-note{color:#1b2e2580;margin-bottom:6px;font-size:8.5px;font-style:italic}.m-ok-line{color:#5e8f74;margin-bottom:4px;font-size:10px;font-weight:700}.m-bad-line{color:#b34f3e;margin-bottom:4px;font-size:10px;font-weight:700}.m-swipecard{background:#fffdf7;border:1px solid #1b2e2526;border-radius:14px;margin-bottom:10px;padding:12px 10px;position:relative;transform:rotate(3deg);box-shadow:0 3px 8px #00000014}.m-swipecard .corner{color:#5e8f74;border:1.5px solid #5e8f74;border-radius:5px;padding:1px 5px;font-size:9px;font-weight:800;position:absolute;top:6px;left:8px;transform:rotate(-8deg)}.m-2btn{gap:6px;display:flex}.m-2btn span{text-align:center;border-radius:10px;flex:1;padding:6px 0;font-size:10px;font-weight:800}.m-2btn .no{color:#b34f3e;border:1.5px solid #b34f3e}.m-2btn .yes{color:#5e8f74;border:1.5px solid #5e8f74}.bp-pace{gap:3px;margin:6px 0 0;display:flex}.bp-pace span{border-radius:3px;flex:1;height:6px}.pi-l{background:var(--jade)}.pi-m{background:var(--gold)}.pi-d{background:var(--seal)}.bp-meta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.bp-lbl{letter-spacing:1.2px;text-transform:uppercase;color:var(--muted);font-size:10px;font-weight:700}.bp-slots{flex-direction:column;margin:12px 0 0;padding:0;list-style:none;display:flex}.bp-slot{border-top:1px solid var(--divider);align-items:center;gap:8px;padding:5px 0;font-size:12.5px;display:flex}.bp-slot a{color:var(--ink);font-weight:600}.bp-slot a:hover{color:var(--jade-deep)}.bp-num{color:var(--faint);text-align:right;flex-shrink:0;width:11px;font-size:10px}.bp-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.bp-sk{color:#fff;border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;margin-left:auto;font-size:10px;font-weight:700;display:inline-flex}.sk-L{background:#4e7fa0}.sk-S{background:var(--seal)}.sk-R{background:var(--jade)}.sk-W{background:var(--gold)}.lang[data-astro-cid-wpvy4v7s] a[data-astro-cid-wpvy4v7s]{color:var(--muted);font-family:var(--ui);cursor:pointer;background:0 0;border:none;padding:7px 11px;font-size:12px;font-weight:700;text-decoration:none;display:inline-block}.lang[data-astro-cid-wpvy4v7s] a[data-astro-cid-wpvy4v7s].on{background:var(--jade);color:#fff}
