:root{--ink:#3a2e2a;--ink-deep:#1c1412;--muted:#6b5c56;--line:#1c14121a;--paper:#fffaf7;--card:#fffdfb;--foam:#f7f1ec;--cinnabar:#b43328;--cinnabar-deep:#7e241c;--vermilion:#e24b3a;--blush:#f3c1b8;--glow:#b4332829;--tone-1:#b43328;--tone-2:#d96a22;--tone-3:#7a3048;--tone-4:#e24b3a;--track:#efe4de;--steady:#8a7268}
*{box-sizing:border-box}html{scroll-behavior:smooth}html,body{min-height:100%;color:var(--ink-deep);background:var(--foam);font-family:var(--font-sc), var(--font-sans), system-ui, sans-serif;-webkit-font-smoothing:antialiased;margin:0;padding:0}html.locale-hant,html.locale-hant body{font-family:var(--font-tc), var(--font-sans), system-ui, sans-serif}html.locale-en,html.locale-en body,html.locale-vi,html.locale-vi body,html.locale-ms,html.locale-ms body,html.locale-id,html.locale-id body{font-family:var(--font-latin), var(--font-sans), system-ui, sans-serif}html.locale-ja,html.locale-ja body{font-family:var(--font-ja), var(--font-sans), system-ui, sans-serif}html.locale-ko,html.locale-ko body{font-family:var(--font-ko), var(--font-sans), system-ui, sans-serif}html.locale-th,html.locale-th body{font-family:var(--font-th), var(--font-latin), system-ui, sans-serif}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}::selection{background:#b4332829}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline:2px solid var(--cinnabar);outline-offset:3px}.page{background:radial-gradient(720px 420px at 100% -8%, var(--glow), transparent 58%), radial-gradient(480px 320px at -8% 18%, #d96a221a, transparent 55%), var(--foam);flex-direction:column;min-height:100vh;display:flex;overflow-x:hidden}.shell{width:min(1120px,100% - 2rem);margin:0 auto}.nav-bar{z-index:30;-webkit-backdrop-filter:blur(18px);border-bottom:1px solid var(--line);background:#f7f1ecdb;position:sticky;top:0}.nav{flex-wrap:wrap;align-items:center;gap:.75rem 1rem;min-height:4.25rem;padding:.7rem 0;display:flex}.nav-brand{order:1;align-items:center;gap:.6rem;margin-right:auto;display:inline-flex}.nav-brand strong{letter-spacing:-.01em;white-space:nowrap;font-size:.95rem;font-weight:700}.nav-brand-zh{letter-spacing:.12em;font-weight:700}.brand-mark{border-radius:22%;flex:none;display:block}.nav-links{width:100%;color:var(--muted);order:3;align-items:center;gap:.35rem 1rem;font-size:.9rem;font-weight:600;display:flex;overflow-x:auto}.nav-links a{flex:none;padding:.2rem 0}.nav-links a:hover{color:var(--ink-deep)}.nav-download{background:var(--cinnabar);border-radius:999px;color:#fff!important;padding:.38rem .8rem!important}.nav-tools{order:2;align-items:center;display:flex}.locale-switch{align-items:center;margin:0;display:inline-flex}.locale-switch select{appearance:none;border:1px solid var(--line);background:linear-gradient(45deg, transparent 50%, var(--muted) 50%) calc(100% - 14px) 50% / 5px 5px no-repeat, linear-gradient(135deg, var(--muted) 50%, transparent 50%) calc(100% - 9px) 50% / 5px 5px no-repeat, #fffdfbe0;min-height:2.1rem;color:var(--ink-deep);font:inherit;cursor:pointer;border-radius:999px;padding:.28rem 1.7rem .28rem .7rem;font-size:.78rem;font-weight:700}.locale-switch select:focus-visible{outline:2px solid var(--cinnabar);outline-offset:2px}@media (min-width:900px){.nav-links{order:2;width:auto;margin-left:auto;overflow:visible}.nav-tools{order:3}.nav-brand{margin-right:0}}.hero{align-items:center;gap:2.2rem;padding:2.2rem 0 1.5rem;display:grid}.hero-copy{max-width:38rem}.hero-eyebrow,.eyebrow{color:var(--cinnabar-deep);letter-spacing:.12em;margin:0;font-size:.78rem;font-weight:700}.hero-eyebrow{border:1px solid var(--line);letter-spacing:.04em;background:#fffdfbd1;border-radius:999px;align-items:center;gap:.45rem;margin-bottom:1rem;padding:.32rem .72rem .32rem .55rem;display:inline-flex}.hero-eyebrow:before{content:"";background:var(--cinnabar);border-radius:50%;width:.45rem;height:.45rem;box-shadow:0 0 0 4px #b4332824}.hero h1,.section h2,.download-band h2,.legal-title{letter-spacing:-.03em;margin:0;font-weight:800;line-height:1.18}.hero h1{font-size:clamp(2.2rem,5.4vw,3.7rem)}.hero h1 em{background:linear-gradient(100deg, var(--cinnabar-deep), var(--vermilion));color:#0000;-webkit-background-clip:text;background-clip:text;font-style:normal}.hero-lede,.section-lead{color:var(--muted);margin:.95rem 0 0;font-size:1.05rem;line-height:1.75}.cta-row{flex-wrap:wrap;gap:.7rem;margin-top:1.5rem;display:flex}.btn{border:0;border-radius:999px;justify-content:center;align-items:center;min-height:2.9rem;padding:0 1.15rem;font-weight:700;display:inline-flex}.btn-primary{color:#fff;background:linear-gradient(100deg, var(--cinnabar-deep), var(--cinnabar));box-shadow:0 10px 24px #7e241c38}.btn-ghost{color:var(--ink-deep);border:1px solid var(--line);background:#fffdfbdb}.trust-chips{flex-wrap:wrap;gap:.45rem;margin:1.2rem 0 0;padding:0;list-style:none;display:flex}.trust-chips li{color:var(--cinnabar-deep);background:#b4332814;border-radius:999px;padding:.32rem .7rem;font-size:.78rem;font-weight:700}.hero-panel{margin:0;position:relative}.hero-panel figcaption{text-align:center;color:var(--muted);margin:.85rem 0 0;font-size:.82rem}.wave{z-index:0;pointer-events:none;filter:blur(8px);background:radial-gradient(circle at 30% 40%,#b433282e,#0000 60%),radial-gradient(circle at 70% 60%,#d96a2229,#0000 55%);width:70%;height:42%;position:absolute;inset:auto -8% -6% auto}.duo{z-index:1;background:linear-gradient(165deg,#4a3934 0%,#241816 42%,#140e0c 100%);border-radius:34px;width:min(260px,86%);margin:0 auto;padding:.5rem .42rem .46rem;position:relative;box-shadow:0 24px 50px #3c181038,inset 0 1px #ffffff38}.duo-hinge{background:linear-gradient(#6a534c,#1c1412);border-radius:.4rem .4rem .15rem .15rem;height:.48rem;position:absolute;top:-.22rem;left:18%;right:18%}.duo-rail{background:#3a2c28;border-radius:99px;width:3px;position:absolute}.duo-rail-vol{height:2.1rem;top:4.4rem;left:-2px}.duo-rail-action{height:1.4rem;top:5rem;right:-2px}.duo-screen{background:var(--card);aspect-ratio:1398/2140;border-radius:26px;flex-direction:column;display:flex;overflow:hidden}.duo-hole{z-index:2;width:.72rem;height:.72rem;box-shadow:0 0 0 3px var(--card);background:radial-gradient(circle at 35% 35%,#6a534c,#140e0c 70%);border-radius:50%;position:absolute;top:1.15rem;right:1.15rem}.duo-status,.phone-bar{justify-content:space-between;align-items:center;padding:.7rem 1.7rem 0 .9rem;font-size:.72rem;font-weight:700;display:flex}.phone-bar{color:var(--muted);padding:.45rem .9rem 0;font-weight:600}.duo-status-icons{align-items:center;gap:.28rem;display:flex}.duo-sig,.duo-wifi,.duo-bat{background:var(--ink-deep);display:block}.duo-sig{clip-path:polygon(0 100%,28% 60%,28% 100%,52% 36%,52% 100%,78% 14%,78% 100%,100% 0,100% 100%);width:.68rem;height:.42rem}.duo-wifi{border:1.6px solid var(--ink-deep);background:0 0;border-top:0;border-radius:0 0 .55rem .55rem;width:.55rem;height:.4rem}.duo-bat{width:.95rem;height:.42rem;box-shadow:inset 0 0 0 1.4px var(--ink-deep);background:linear-gradient(var(--ink-deep), var(--ink-deep)) 1px 0 / 62% 100% no-repeat;border-radius:2px}.phone-body{padding:.15rem .9rem .4rem}.target-word{letter-spacing:.12em;margin:.15rem 0 0;font-size:2rem;font-weight:800}.pitch-line{width:100%;height:52px;margin-top:.2rem;display:block}.pitch-legend{color:var(--muted);gap:.8rem;font-size:.68rem;font-weight:700;display:flex}.pitch-legend span{align-items:center;gap:.3rem;display:inline-flex}.legend-target,.legend-you{border-top:2px solid #c9bbb4;width:.85rem;height:0}.legend-target{border-top-style:dashed}.legend-you{border-top-color:var(--cinnabar)}.score-row{grid-template-columns:68px 1fr;align-items:center;gap:.65rem;margin:.7rem 0 .55rem;display:grid}.score-ring{background:conic-gradient(var(--tone-3) calc(var(--score) * 1%), var(--track) 0);border-radius:50%;place-items:center;width:68px;height:68px;display:grid}.score-ring span{width:52px;height:52px;color:var(--tone-3);background:#fff;border-radius:50%;place-items:center;font-weight:800;display:grid}.metrics{gap:.38rem;display:grid}.metric{color:var(--muted);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.35rem;font-size:.72rem;display:grid}.metric b{color:var(--ink-deep);text-align:right}.bar{background:var(--track);border-radius:99px;height:6px;overflow:hidden}.bar>span{border-radius:inherit;background:var(--cinnabar);height:100%;display:block}.metric.is-tone .bar>span{background:var(--tone-3)}.metric.is-tone b,.metric.is-tone span:first-child{color:var(--tone-3)}.tip{color:var(--ink);background:#7a304814;border-radius:12px;margin:0;padding:.55rem .65rem;font-size:.75rem;line-height:1.5}.duo-home{background:#e4d8d2;border-radius:99px;width:5rem;height:.22rem;margin:auto auto .4rem;display:block}.mark-rule{align-items:center;gap:.8rem;margin:.4rem 0 .2rem;display:flex}.mark-rule i{background:var(--line);flex:1;height:1px}.section,.download-band{scroll-margin-top:5.5rem}.section{padding-top:4.2rem}.section-head{max-width:40rem}.section h2{margin-top:.4rem;font-size:clamp(1.7rem,3vw,2.4rem)}.tone-grid,.method-grid,.principle-grid{gap:.8rem;margin-top:1.4rem;display:grid}.tone-grid{grid-template-columns:1fr}.tone-card,.method-card,.principle-grid article,.sandhi-col{background:var(--card);border:1px solid var(--line);border-radius:20px;box-shadow:0 12px 30px #5020140a}.tone-card{border-top:3px solid;padding:1rem 1rem 1.15rem}.tone-card-top{justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.tone-name{font-size:.92rem;font-weight:800}.tone-index{letter-spacing:.08em;font-size:.78rem;font-weight:800}.tone-card .tone-contour{width:100%;height:3.5rem;margin-top:.35rem}.tone-char{letter-spacing:.08em;margin:.35rem 0 0;font-size:2rem;font-weight:800}.tone-py{margin:.1rem 0 0;font-weight:700}.method-card h3,.principle-grid h3{margin:.45rem 0 0;font-size:1rem}.tone-card p:last-child,.method-card p,.principle-grid p{color:var(--muted);margin:.4rem 0 0;font-size:.92rem;line-height:1.6}.tone-ink-1{color:var(--tone-1)}.tone-ink-2{color:var(--tone-2)}.tone-ink-3{color:var(--tone-3)}.tone-ink-4{color:var(--tone-4)}.tone-card .tone-char,.sandhi-char,.tone-row b{color:var(--ink-deep)}.tone-card .tone-py,.tone-card .tone-index{color:inherit}.sandhi-board{margin-top:1.4rem}.sandhi-grid{grid-template-columns:1fr;gap:.75rem;display:grid}.sandhi-col{padding:.9rem .85rem .75rem}.sandhi-char{text-align:center;margin:0 0 .35rem;font-size:1.8rem;font-weight:800}.tone-row{border-top:1px solid var(--line);color:var(--steady);grid-template-columns:auto 1fr;grid-template-areas:"label contour""py py";align-items:center;gap:.15rem .4rem;margin-top:.45rem;padding-top:.45rem;display:grid}.tone-row-label{letter-spacing:.06em;grid-area:label;font-size:.72rem;font-weight:700}.tone-row .tone-contour{grid-area:contour;justify-self:end;width:3.2rem;height:1.7rem}.tone-row b{grid-area:py;align-items:baseline;gap:.4rem;font-size:.95rem;display:flex}.tone-row b i{color:inherit;font-size:.75rem;font-style:normal}.tone-row.is-spoken b,.tone-row.is-spoken .tone-contour{color:inherit}.section-note{max-width:42rem;color:var(--muted);margin:.9rem 0 0;font-size:.92rem;line-height:1.7}.method-card,.principle-grid article{padding:1.15rem 1.1rem 1.25rem}.method-card span,.principle-grid span{color:var(--cinnabar);letter-spacing:.08em;font-size:.78rem;font-weight:800}.section-split{gap:1.3rem;display:grid}.drill-list{gap:.65rem;margin:0;padding:0;list-style:none;display:grid}.drill{border:1px solid var(--line);background:#fffdfb8c;border-radius:16px;justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 1rem;display:flex}.drill strong,.drill span,.drill em{display:block}.drill strong{font-size:.98rem}.drill span,.drill em{color:var(--muted);margin-top:.2rem;font-size:.86rem;font-style:normal}.drill-side{text-align:right;flex:none}.drill-side b{background:var(--track);color:var(--steady);border-radius:999px;margin-top:.35rem;padding:.18rem .5rem;font-size:.72rem;display:inline-block}.drill.is-focus{background:var(--card);border-color:#7a304847}.drill.is-focus .drill-side b{color:var(--tone-3);background:#7a30481a}.download-band{color:#fff7f3;background:radial-gradient(420px 180px at 100% 0,#ffffff29,#0000 55%),linear-gradient(155deg,#c84538,#8e241c 70%);border-radius:28px;margin:4.2rem 0 1rem;padding:2.2rem 1.3rem 2rem}.download-band .eyebrow,.download-band h2,.download-band p{color:inherit}.download-band .eyebrow{opacity:.8}.download-band h2{margin-top:.45rem;font-size:clamp(1.8rem,3vw,2.5rem)}.download-band p{max-width:38rem;margin:.8rem 0 0;line-height:1.7}.download-status{background:#fff7f329;border-radius:999px;padding:.3rem .7rem;font-size:.82rem;font-weight:700;display:inline-flex;margin-top:1.1rem!important}.download-sister{font-size:.92rem;color:#fff7f3d1!important}.footer{border-top:1px solid var(--line);margin-top:1.5rem}.footer-inner{gap:.9rem;padding:1.4rem 0 2rem;display:grid}.footer-brand{align-items:center;gap:.65rem;display:flex}.footer-brand strong,.footer-brand span{display:block}.footer-brand strong{letter-spacing:.08em;font-size:.82rem}.footer-brand span,.footer-copy,.footer-links{color:var(--muted);font-size:.86rem}.footer-links{gap:1rem;display:flex}.footer-links a:hover{color:var(--ink-deep)}.footer-copy{margin:0}.legal-shell{flex:1;padding:2.4rem 0 1rem}.docs-breadcrumb{color:var(--muted);gap:.4rem;margin:0;font-size:.86rem;display:flex}.docs-breadcrumb a{color:var(--cinnabar-deep);font-weight:700}.legal-kicker{color:var(--muted);margin:1rem 0 0;font-size:.85rem}.legal-title{font-size:clamp(2rem,4vw,3rem)}.legal-body{max-width:40rem;padding-bottom:1rem}.legal-section{margin-top:1.8rem}.legal-section h2{margin:0;font-size:1.15rem}.legal-section p{color:var(--ink);margin:.6rem 0 0;line-height:1.75}.back-to-top{z-index:20;color:#fff;background:var(--cinnabar);opacity:0;pointer-events:none;border-radius:50%;place-items:center;width:2.6rem;height:2.6rem;display:grid;position:fixed;bottom:1rem;right:1rem;transform:translateY(6px)}.back-to-top.is-on{opacity:1;pointer-events:auto;transform:none}.back-to-top svg{width:1.1rem;height:1.1rem}@media (min-width:640px){.tone-grid,.sandhi-grid{grid-template-columns:1fr 1fr}}@media (min-width:800px){.hero{grid-template-columns:1.05fr .85fr;gap:3rem;padding-top:3.2rem}.tone-grid,.sandhi-grid,.principle-grid{grid-template-columns:repeat(4,1fr)}.method-grid{grid-template-columns:repeat(3,1fr)}.drill-list{grid-template-columns:1fr 1fr}.footer-inner{grid-template-columns:1.4fr auto auto;align-items:center}.download-band{padding:2.8rem 2.4rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
