*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}:root{--leading:28px;--half:14px;--edge:clamp(20px, 5vw, 72px);--measure:58ch}body.landing,body.caderno{font-family:var(--font-sans);background-color:var(--bg);color:var(--fg);text-wrap:pretty;-webkit-font-smoothing:antialiased;background-image:none;font-size:16px;line-height:1.65}a{color:inherit;text-decoration:none}a:hover{color:var(--accent-hover)}.cjk{font-family:var(--font-han)}.tone-1{color:var(--tone-1)}.tone-2{color:var(--tone-2)}.tone-3{color:var(--tone-3)}.tone-4{color:var(--tone-4)}.page{max-width:1200px;padding:0 var(--edge);margin:0 auto}.kicker{letter-spacing:.08em;text-transform:uppercase;color:var(--fg-muted);margin:0 0 var(--half);font-size:13px;display:block}.kicker.accent{color:var(--accent);font-weight:600}.mark{flex:none;width:26px;height:26px;display:inline-block;position:relative}.mark:before{content:"";background:var(--fg);clip-path:polygon(0 34%,100% 0,100% 100%,0 66%);width:26px;height:5px;position:absolute;top:11px;left:0;transform:rotate(-1.5deg)}.mark:after{content:"";background:var(--spot);clip-path:polygon(22% 0,78% 0,100% 100%,0 100%);width:6px;height:26px;position:absolute;top:0;left:10px}.btn{font-family:var(--font-sans);border-radius:var(--radius-md);cursor:pointer;color:inherit;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-size:.9375rem;font-weight:600;line-height:1.2;transition:transform .14s,background .16s,border-color .14s,color .14s;display:inline-flex}.btn-lg{padding:12px 22px;font-size:16px}.btn-sm{padding:7px 13px;font-size:13px}.btn-primary{background:var(--accent-fill);color:var(--on-accent);border-color:var(--accent-fill)}.btn-primary:hover{background:color-mix(in srgb, var(--accent-fill) 82%, black);border-color:color-mix(in srgb, var(--accent-fill) 82%, black);color:var(--on-accent);transform:translateY(-1px)}.btn-primary.done{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-secondary{border-color:var(--border-card);color:var(--fg)}.btn-secondary:hover{border-color:var(--accent-border);background:var(--accent-soft)}.btn-ghost{color:var(--accent);padding-inline:10px}.btn-ghost:hover{background:var(--accent-soft)}.nav{z-index:20;background:color-mix(in srgb, var(--bg) 92%, transparent);backdrop-filter:blur(6px);border-bottom:1px solid var(--border);box-shadow:none;padding:14px max(var(--edge), calc((100% - 1200px) / 2 + var(--edge)));transition:padding .24s,box-shadow .24s;position:sticky;top:0}.nav.scrolled{box-shadow:var(--shadow-card);padding-block:8px}.nav-inner{flex-wrap:wrap;align-items:center;gap:8px clamp(16px,2.5vw,28px);max-width:1200px;margin:0 auto;display:flex}.nav-brand{align-items:center;gap:10px;margin-right:auto;display:flex}.nav-brand .name{letter-spacing:-.02em;font-size:1.125rem;font-weight:600}.nav-brand .hz{color:var(--accent)}.nav-link{letter-spacing:.06em;white-space:nowrap;color:var(--fg-muted);border-bottom:1px solid #0000;padding-bottom:2px;font-size:.8125rem}.nav-link:hover{color:var(--fg);border-bottom-color:var(--fg)}.nav-cta{white-space:nowrap}@media (width<=768px){.nav-link{display:none}}.hero{align-items:center;gap:calc(2 * var(--leading)) clamp(32px, 5vw, 80px);padding:clamp(30px, 7vw, 98px) 0 calc(2.5 * var(--leading));flex-wrap:wrap;display:flex}.hero-copy{flex:420px;min-width:0}.hero h1{font-family:var(--font-sans);letter-spacing:-.025em;margin-left:-.035em;font-size:clamp(42px,5.4vw,76px);font-weight:600;line-height:1.06}.hero h1 span{display:block}.hero .lead{font-size:17px;line-height:var(--leading);max-width:var(--measure);margin:calc(1.5 * var(--leading)) 0 0;color:var(--fg-body)}.cta-row{gap:var(--space-3,15px);margin-top:var(--leading);flex-wrap:wrap;display:flex}.hero-meta{letter-spacing:.08em;text-transform:uppercase;color:var(--fg-muted);margin:var(--leading) 0 0;font-size:13px}.demo{gap:var(--space-2,10px);flex-direction:column;flex:320px;min-width:0;max-width:460px;display:flex}.demo-head{align-items:baseline;gap:10px;display:flex}.demo-label{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-size:13px;font-weight:600}.demo-meta{color:var(--fg-muted);margin-left:auto;font-size:13px}#brush{aspect-ratio:1;background:var(--cell);border:1px solid var(--fg);border-radius:var(--radius-md);touch-action:none;cursor:crosshair;width:100%;display:block}.demo-row{align-items:center;gap:var(--space-2,10px);flex-wrap:wrap;display:flex}.demo-hint{color:var(--fg-muted);text-align:right;margin-left:auto;font-size:13px}.rail{padding:calc(1.5 * var(--leading)) 0 calc(2.5 * var(--leading))}.rail-rule-heavy{border-top:2px solid var(--fg);border-bottom:1px solid var(--fg);height:5px}.rail-rule-light{border-top:1px solid var(--fg)}.rail-strip{justify-content:space-between;gap:var(--half) var(--leading);padding:var(--half) 0;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-muted);flex-wrap:wrap;margin:0;font-size:13px;display:flex}.rail-stats{gap:var(--half) calc(2.5 * var(--leading));padding:var(--half) 0 var(--leading);grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));display:grid}.rail-stat{color:var(--fg-body);align-items:baseline;gap:8px;font-size:15.5px;display:flex}.leader{border-bottom:1px dotted color-mix(in srgb, var(--fg) 45%, transparent);flex:1;align-self:flex-end;min-width:28px;margin-bottom:.34em}.rail-num{font-variant-numeric:tabular-nums;color:var(--fg);font-size:17px;font-weight:600}.rail-num.spot{color:var(--accent)}.cols{padding:calc(2.5 * var(--leading)) 0 calc(2 * var(--leading))}.cols-grid{gap:calc(1.5 * var(--leading)) clamp(28px, 4vw, 64px);margin-top:var(--half);grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));display:grid}.col h2{font-size:24px;font-weight:600;line-height:var(--leading);letter-spacing:-.01em}.col p{font-size:15.5px;line-height:var(--leading);margin:var(--half) 0 0;color:var(--fg-body)}.try{padding:calc(2 * var(--leading)) 0 calc(2.5 * var(--leading))}.try-title{font-size:32px;font-weight:600;line-height:calc(1.5 * var(--leading));letter-spacing:-.015em;margin-bottom:var(--leading)}.try-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr));gap:clamp(24px,3vw,44px);display:grid}.card{gap:var(--space-2,10px);padding:var(--space-3,15px);border-radius:var(--radius-md);background:var(--bg-subtle);flex-direction:column;display:flex}.elev-md{box-shadow:var(--shadow-card)}.card-kicker{letter-spacing:.1em;text-transform:uppercase;color:var(--accent);font-size:10px;font-weight:600}.flip-scene{perspective:1000px;cursor:pointer;width:100%;height:270px;color:inherit;font:inherit;background:0 0;border:none;padding:0;display:block}.flip-inner{width:100%;height:100%;transform-style:preserve-3d;transition:transform .52s cubic-bezier(.2,.8,.2,1);display:block;position:relative}.flip-inner.flipped{transform:rotateY(180deg)}.flip-face{justify-content:center;align-items:center;gap:var(--space-2,10px);-webkit-backface-visibility:hidden;backface-visibility:hidden;border-radius:var(--radius-md);background:var(--bg-elevated);box-shadow:var(--shadow-card);padding:var(--space-3,15px);flex-direction:column;display:flex;position:absolute;inset:0}.flip-back{transform:rotateY(180deg)}.flip-char{font-family:var(--font-han);font-size:110px;font-weight:900;line-height:1}.flip-hint{color:var(--fg-dim);font-size:13px}.flip-pinyin{font-size:30px;font-weight:600}.flip-meaning{font-size:22px;font-style:italic}.flip-note{color:var(--fg-muted);text-align:center;max-width:26ch;font-size:13px}.flip-tags{gap:6px;margin-top:8px;display:flex}.tag{letter-spacing:.02em;border-radius:var(--radius-sm);align-items:center;padding:3px 10px;font-size:11px;display:inline-flex}.tag-accent{background:var(--accent-soft);color:var(--accent);font-weight:600}.tag-neutral{background:color-mix(in srgb, var(--fg) 6%, transparent);color:var(--fg)}.decomp-card{justify-content:center;align-items:center;gap:var(--space-3,15px);background:var(--bg-subtle);border-radius:var(--radius-md);height:270px;padding:var(--space-3,15px);flex-direction:column;display:flex}.decomp-stage{width:150px;height:150px;position:relative}.decomp-half{font-family:var(--font-han);color:var(--fg);justify-content:center;align-items:center;font-size:132px;font-weight:900;line-height:1;transition:color .22s,transform .22s,opacity .22s;display:flex;position:absolute;inset:0}.decomp-left{clip-path:inset(0 56% 0 0)}.decomp-right{clip-path:inset(0 0 0 44%)}.decomp-left[data-on="1"]{color:var(--accent);transform:translate(-5px)}.decomp-right[data-on="1"]{color:var(--mag);transform:translate(5px)}.decomp-half[data-on="0"]{opacity:.35}.decomp-btns{gap:var(--space-2,10px);display:flex}.decomp-btn{flex-direction:column;gap:0;padding:7px 16px}.decomp-btn .cjk{font-size:22px;line-height:1.2}.decomp-btn .small{opacity:.75;font-size:11px}.decomp-note{color:var(--fg-muted);min-height:var(--leading);text-align:center;max-width:28ch;font-size:13px}.tone-card{justify-content:center;align-items:center;gap:var(--space-3,15px);background:var(--bg-subtle);border-radius:var(--radius-md);height:270px;padding:var(--space-3,15px);flex-direction:column;display:flex}.tone-head{align-items:baseline;gap:var(--space-3,15px);display:flex}.tone-char{font-family:var(--font-han);font-size:76px;font-weight:900;line-height:1}.tone-words{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.tone-pinyin{font-size:32px;font-weight:600;transition:color .2s}.tone-meaning{color:var(--fg-body);font-size:15px;font-style:italic}.tone-svg{overflow:visible}.tone-base{stroke:currentColor;stroke-opacity:.18;stroke-width:1px}#tone-contour{stroke:var(--tone-1);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round;transition:stroke .2s}.seg{border:1px solid var(--border-card);border-radius:var(--radius-md);flex-wrap:wrap;display:inline-flex;overflow:hidden}.seg-opt{cursor:pointer;font-size:13px;font-family:var(--font-sans);color:var(--fg);background:0 0;border:none;align-items:center;gap:6px;padding:7px 14px;transition:background .16s,color .16s;display:inline-flex}.seg-opt+.seg-opt{border-left:1px solid var(--border-card)}.seg-opt:hover{background:color-mix(in srgb, var(--fg) 7%, transparent)}.seg-opt.on{background:var(--accent-fill);color:#fff}.try-note{font-size:15.5px;line-height:var(--leading);margin:var(--half) 0 0;color:var(--fg-body)}.reader{align-items:flex-start;gap:var(--leading) clamp(24px, 5vw, 80px);padding:calc(2 * var(--leading)) 0 calc(2.5 * var(--leading));flex-wrap:wrap;display:flex}.reader-copy{flex:400px;min-width:0}.reader-copy h2{font-size:32px;font-weight:600;line-height:calc(1.5 * var(--leading));letter-spacing:-.015em;margin-bottom:var(--half)}.reader-copy>p{font-size:15.5px;line-height:var(--leading);color:var(--fg-body);max-width:48ch;margin-bottom:var(--leading)}.reader-text{flex-wrap:wrap;align-items:flex-end;gap:2px;display:flex}.reader-ch{font-family:var(--font-han);cursor:pointer;color:var(--fg);border-radius:var(--radius-sm);background:0 0;border:none;padding:0 2px;font-size:clamp(30px,4.4vw,44px);line-height:1.15;transition:background .16s,color .16s}.reader-ch:hover,.reader-ch:focus-visible,.reader-ch.active{background:var(--accent-soft);color:var(--accent)}.reader-trans{color:var(--fg-muted);margin:var(--half) 0 0;font-size:15.5px;font-style:italic}.ficha{background:var(--bg-elevated);padding:var(--space-4,20px);gap:var(--space-2,10px);flex:300px;min-width:0;max-width:440px;min-height:250px}.ficha-head{align-items:baseline;gap:var(--space-3,15px);display:flex}.ficha-char{font-family:var(--font-han);font-size:72px;font-weight:900;line-height:1}.ficha-words{flex-direction:column;display:flex}.ficha-pinyin{font-size:24px;font-weight:600;transition:color .2s}.ficha-meaning{font-size:17px}.ficha-note{color:var(--fg-body);flex:1;margin:0;font-size:14px}.ficha-actions{gap:var(--space-2,10px);flex-wrap:wrap;margin-top:auto;display:flex}.ritmo{align-items:center;gap:calc(1.5 * var(--leading)) clamp(24px, 5vw, 96px);padding:calc(2 * var(--leading)) 0 calc(3 * var(--leading));flex-wrap:wrap;display:flex}.ritmo-copy{flex:330px;min-width:0}.ritmo-copy h2{font-size:32px;font-weight:600;line-height:calc(1.5 * var(--leading));letter-spacing:-.015em}.ritmo-copy>p{font-size:15.5px;line-height:var(--leading);color:var(--fg-body);margin:var(--half) 0 var(--leading);max-width:44ch}.ritmo-proj{flex:400px;min-width:0}.proj-row{margin-bottom:var(--leading);flex-wrap:wrap;align-items:flex-end;gap:clamp(20px,4vw,52px);display:flex}.proj-big{font-variant-numeric:tabular-nums;font-size:64px;font-weight:600;line-height:.9;transition:color .2s}.proj-big.spot{color:var(--accent)}.proj-mid{font-variant-numeric:tabular-nums;font-size:40px;font-weight:600;line-height:.9}.proj-label{letter-spacing:.08em;text-transform:uppercase;color:var(--fg-muted);max-width:20ch;margin-top:6px;font-size:13px}.hsk-bars{gap:var(--space-2,10px);flex-direction:column;display:flex}.hsk-bar{align-items:center;gap:var(--space-3,15px);display:flex}.hsk-label{letter-spacing:.08em;text-transform:uppercase;width:64px;color:var(--fg-muted);flex:none;font-size:13px}.hsk-track{background:color-mix(in srgb, var(--fg) 12%, transparent);flex:1;height:10px;display:block;position:relative;overflow:hidden}.hsk-fill{background:var(--spot);transition:width .42s cubic-bezier(.2,.8,.2,1);position:absolute;top:0;bottom:0;left:0}.hsk-cap{text-align:right;font-variant-numeric:tabular-nums;width:52px;color:var(--fg-muted);font-size:13px}.papel{align-items:center;gap:calc(1.5 * var(--leading)) clamp(24px, 5vw, 96px);padding:0 0 calc(3 * var(--leading));flex-wrap:wrap;display:flex}.papel-copy{flex:330px;min-width:0}.papel-copy h2{font-size:32px;font-weight:600;line-height:calc(1.5 * var(--leading));letter-spacing:-.015em}.papel-copy p{font-size:15.5px;line-height:var(--leading);color:var(--fg-body);margin:var(--half) 0 0;max-width:48ch}.papel-fig{aspect-ratio:986/660;background:repeating-linear-gradient(45deg, var(--bg-subtle) 0 7px, color-mix(in srgb, var(--fg) 14%, transparent) 7px 14px);min-width:0;padding:var(--space-3,15px);flex:400px;align-items:flex-end;display:flex}.fig-tag{letter-spacing:.06em;background:var(--bg);white-space:nowrap;padding:4px 8px;font-family:ui-monospace,monospace;font-size:10px}.quote{padding:calc(1.5 * var(--leading)) 0 calc(3 * var(--leading))}.quote blockquote{font-size:clamp(24px,2.6vw,34px);font-style:italic;font-weight:400;line-height:calc(1.5 * var(--leading));letter-spacing:-.01em;text-indent:-.475em;max-width:34ch;color:var(--fg);border:none;margin:0;padding:0}.quote figcaption{color:var(--fg-muted);margin:calc(2 * var(--leading)) 0 0;text-indent:-1.045em;font-size:15.5px}.assinar{padding:calc(1.5 * var(--leading)) 0 calc(2 * var(--leading))}.assinar h3{font-size:24px;font-weight:600;line-height:var(--leading)}.assinar>p{font-size:15.5px;line-height:var(--leading);color:var(--fg-body);margin:var(--half) 0 0;max-width:var(--measure)}.capture{gap:var(--space-3,15px);max-width:520px;margin-top:var(--leading);flex-wrap:wrap;align-items:stretch;display:flex}.input{min-height:40px;font:inherit;color:var(--fg);caret-color:var(--accent);background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius-md);flex:240px;padding:6px 10px;font-size:14px;transition:border-color .16s}.input::placeholder{color:var(--fg-dim);opacity:1}.input:focus-visible{border-color:var(--accent);outline:none}.input.error{border-color:var(--mag)}.input.ok{border-color:var(--accent)}.capture .btn{white-space:nowrap;min-height:40px}.capture-note{margin:var(--space-2,10px) 0 0;min-height:var(--leading);color:var(--fg-muted);font-size:13px;transition:color .2s}.capture-note.error{color:var(--mag-text)}.footer{padding:calc(2 * var(--leading)) 0;color:var(--fg-muted);gap:var(--leading);border-top:1px solid var(--border);flex-wrap:wrap;font-size:13px;display:flex}.footer a{color:var(--fg-muted)}.footer a:hover{color:var(--accent)}.footer-sign{margin-left:auto}@media (prefers-reduced-motion:reduce){.btn,.flip-inner,.decomp-half,.hsk-fill,.tone-pinyin,.ficha-pinyin{transition:none}.flip-inner.flipped,.flip-back{transform:none}.flip-inner.flipped .flip-front{visibility:hidden}}.dicionario{padding:calc(2 * var(--leading)) 0;border-top:1px solid var(--border)}.dic-copy{max-width:38rem}.dic-copy h2{margin:.6rem 0 1rem;font-size:1.7rem;line-height:1.2}.dic-copy p{color:var(--fg-muted);line-height:1.7}.dic-chars{flex-wrap:wrap;gap:.75rem;margin:1.5rem 0;display:flex}.dic-char{background:var(--bg-elevated,var(--bg));border:1px solid var(--border);border-radius:var(--radius-md,8px);flex-direction:column;align-items:center;gap:.1rem;padding:.6rem .8rem;text-decoration:none;transition:border-color .12s,transform .12s;display:flex}.dic-char:hover{border-color:var(--accent);transform:translateY(-2px)}.dic-glyph{font-family:var(--font-serif-sc,serif);color:var(--fg);font-size:2rem;line-height:1.15}.dic-py{color:var(--accent);font-size:.78rem}
