:root{color:#1f2937;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--shadow-soft:0 20px 60px #1f293724;--shadow-tile:0 8px 18px #1f29371f;background:#fff8ed;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:linear-gradient(#ffffffb8 1px,#0000 1px) 0 0/38px 38px,linear-gradient(90deg,#ffffffb8 1px,#0000 1px) 0 0/38px 38px,linear-gradient(135deg,#fff6df 0%,#edf8ff 52%,#fff8e8 100%);min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}button:focus-visible,input:focus-visible,a:focus-visible{outline-offset:3px;outline:3px solid #0ea5e98c}.app-shell{width:min(1800px,100% - 24px);margin:0 auto;padding:10px 0 28px}.app-shell:has(.level-overview){padding-top:12px}.app-shell:has(.level-overview) .hero{display:none}.app-shell:has(.level-overview) .toolbar{grid-template-columns:minmax(240px,1fr) auto auto auto;margin-bottom:14px;padding:10px 12px;position:relative;top:auto}.app-shell:has(.level-overview) .level-tabs{display:none}.app-shell:has(.level-overview) .level-overview{gap:12px}.app-shell:has(.level-overview) .level-card-main{min-height:116px;padding:14px 16px}.app-shell:has(.level-overview) .level-card-title{font-size:clamp(2.6rem,4.8vw,4.1rem)}.app-shell:has(.level-overview) .level-card-stats span{padding:8px 6px;font-size:.74rem}.app-shell:has(.level-overview) .level-word-preview{flex-wrap:nowrap;min-height:48px;padding:10px 12px;overflow:hidden}.app-shell:has(.level-overview) .preview-word{flex:none;min-width:36px;min-height:30px;padding:0 9px}.hero{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;min-height:auto;padding:6px 4px 8px;display:grid}.internal-preview-shell{width:min(1400px,100% - 24px);margin:0 auto;padding:16px 0 40px}.internal-preview-hero,.internal-preview-card,.internal-preview-toolbar{box-shadow:var(--shadow-soft);background:#ffffffe6;border:1px solid #94a3b838;border-radius:24px}.internal-preview-hero{grid-template-columns:minmax(0,1fr) 260px;gap:18px;padding:22px 24px;display:grid}.internal-preview-copy,.internal-preview-meta,.internal-preview-note{color:#475569;line-height:1.6}.internal-preview-copy code,.internal-preview-status strong{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace}.internal-preview-status{background:linear-gradient(160deg,#fff7edfa,#eff6fffa);border-radius:18px;align-content:start;gap:8px;padding:16px;display:grid}.internal-preview-status span{color:#64748b;letter-spacing:.08em;text-transform:uppercase;font-size:.78rem;font-weight:700}.internal-preview-toolbar{gap:16px;margin-top:16px;padding:18px;display:grid}.internal-preview-levels{gap:10px;display:flex;overflow-x:auto}.internal-preview-levels button{color:#0f172a;text-align:left;background:#f8fbff;border:1px solid #bfdbfeb3;border-radius:18px;flex:none;min-width:152px;padding:14px 16px}.internal-preview-levels button span,.internal-preview-levels button small{display:block}.internal-preview-levels button span{font-weight:800}.internal-preview-levels button small{color:#64748b;margin-top:6px}.internal-preview-levels button.active{background:linear-gradient(#eff6ff,#dbeafe);border-color:#0284c7bf;box-shadow:0 12px 24px #3b82f629}.internal-preview-search{gap:8px;display:grid}.internal-preview-search span{color:#475569;font-weight:700}.internal-preview-search input{background:#fff;border:1px solid #94a3b859;border-radius:14px;width:100%;min-height:48px;padding:0 14px}.internal-preview-card{margin-top:16px;padding:18px 20px}.internal-preview-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.internal-preview-summary div{background:#f8fafc;border-radius:18px;padding:14px 16px}.internal-preview-summary span{color:#64748b;letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px;font-size:.78rem;font-weight:700;display:block}.internal-preview-summary strong,.internal-preview-summary a{color:#0f172a;font-size:1rem;font-weight:800}.internal-preview-summary small{color:#64748b;margin-top:6px;font-size:.78rem;line-height:1.4;display:block}.internal-preview-summary--level1{grid-template-columns:repeat(4,minmax(0,1fr))}.internal-preview-table-wrap{padding:0;overflow-x:auto}.internal-preview-table{border-collapse:collapse;width:100%}.internal-preview-table th,.internal-preview-table td{text-align:left;vertical-align:top;border-bottom:1px solid #e2e8f0d9;padding:12px 14px}.internal-preview-table th{color:#475569;letter-spacing:.08em;text-transform:uppercase;background:#fff8ed;font-size:.82rem;font-weight:800;position:sticky;top:0}.internal-preview-word{color:#111827;font-size:1.1rem;font-weight:800}.internal-preview-word-cell{min-width:180px}.internal-preview-word-cell>*+*{margin-top:6px}.internal-preview-word-meta,.internal-preview-hint{color:#64748b;font-size:.78rem;line-height:1.5;display:block}.internal-preview-sense-badge,.internal-preview-chip{letter-spacing:.02em;border-radius:999px;align-items:center;min-height:24px;padding:0 10px;font-size:.76rem;font-weight:800;display:inline-flex}.internal-preview-sense-badge{color:#7c2d12;background:#ffedd5}.internal-preview-chip{color:#334155;background:#e2e8f0}.internal-preview-chip.is-positive{color:#166534;background:#dcfce7}.internal-preview-chip.is-warning{color:#9a3412;background:#ffedd5}.internal-preview-chip.is-neutral{color:#1d4ed8;background:#dbeafe}.internal-preview-cell-stack{gap:6px;min-width:190px;display:grid}.internal-preview-cell-stack code{width:fit-content;display:inline-block}@media (width<=960px){.internal-preview-hero{grid-template-columns:1fr}.internal-preview-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=640px){.internal-preview-shell{width:min(100%,100% - 16px);padding-top:10px}.internal-preview-hero,.internal-preview-toolbar,.internal-preview-card{border-radius:20px;padding-left:14px;padding-right:14px}.internal-preview-summary{grid-template-columns:1fr}.internal-preview-levels button{min-width:136px;padding:12px 14px}.internal-preview-table th,.internal-preview-table td{padding:10px 12px}}.eyebrow{color:#ef4444;letter-spacing:.1em;text-transform:uppercase;margin:0 0 3px;font-size:.72rem;font-weight:800}h1,h2,p{margin-top:0}h1{color:#111827;letter-spacing:0;max-width:720px;margin-bottom:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.8rem,2.8vw,3.1rem);line-height:1}.seo-shell{width:min(1160px,100% - 32px);margin:0 auto;padding:42px 0 56px}.seo-hero-panel{border-bottom:1px solid #64748b33;padding:10px 0 28px}.seo-hero-panel h1{max-width:920px;margin-bottom:16px;font-size:clamp(2.4rem,6vw,5rem)}.seo-hero-panel p{color:#475569;max-width:800px;font-size:1.05rem;font-weight:650;line-height:1.7}.seo-language-grid,.seo-level-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-top:22px;display:grid}.seo-language-card,.seo-level-card{background:#ffffffe6;border:1px solid #0f172a1a;border-radius:8px;gap:8px;min-height:116px;padding:18px;display:grid;box-shadow:0 10px 28px #1f293714}.seo-language-card span,.seo-level-card small{color:#64748b;text-transform:uppercase;font-size:.8rem;font-weight:900}.seo-language-card strong,.seo-level-card strong{color:#111827;font-family:Georgia,Times New Roman,serif;font-size:2rem;line-height:1}.seo-level-card a{gap:8px;display:grid}.seo-level-card span{color:#475569;font-size:.9rem;line-height:1.5}.seo-sample-words{flex-wrap:wrap;gap:6px;display:flex}.seo-sample-words span{color:#3b3208;background:#fff7d6;border:1px solid #fbbf247a;border-radius:7px;place-items:center;min-width:36px;min-height:32px;padding:0 8px;font-weight:950;display:inline-grid}.seo-copy-panel,.seo-table-panel{border-top:1px solid #64748b2e;margin-top:28px;padding-top:22px}.seo-copy-panel h2,.seo-table-panel h2{color:#111827;font-size:1.4rem}.seo-copy-panel p{color:#475569;max-width:780px;line-height:1.7}.seo-table-scroll{background:#ffffffeb;border:1px solid #0f172a1a;border-radius:8px;overflow-x:auto}.seo-vocab-table{border-collapse:collapse;width:100%;min-width:840px}.seo-vocab-table th,.seo-vocab-table td{text-align:left;vertical-align:top;border-bottom:1px solid #64748b29;padding:10px 12px}.seo-vocab-table th{color:#475569;text-transform:uppercase;background:#f8fafc;font-size:.78rem;font-weight:900}.seo-vocab-table td{color:#1f2937;font-size:.9rem;line-height:1.5}.hsk-guide{border-top:1px solid #64748b33;max-width:1120px;margin:30px auto 0;padding:30px 0 8px}.hsk-guide-eyebrow{color:#dc2626;letter-spacing:.1em;text-transform:uppercase;margin-bottom:7px;font-size:.76rem;font-weight:950}.hsk-guide h2{color:#111827;max-width:840px;margin-bottom:12px;font-family:Georgia,Times New Roman,serif;font-size:clamp(2rem,4vw,3.2rem);line-height:1}.hsk-guide h3{color:#111827;margin:0 0 8px;font-size:1.08rem;line-height:1.25}.hsk-guide-intro,.hsk-guide p,.hsk-guide li{color:#475569;font-size:.98rem;font-weight:650;line-height:1.7}.hsk-guide-intro{max-width:880px;margin-bottom:0}.hsk-guide a{color:#1d4ed8;text-underline-offset:3px;font-weight:900;text-decoration:underline}.hsk-guide-table-wrap{background:#ffffffe6;border:1px solid #0f172a1a;border-radius:8px;margin-top:20px;overflow-x:auto;box-shadow:0 10px 28px #1f293712}.hsk-guide-table{border-collapse:collapse;width:100%;min-width:760px}.hsk-guide-table th,.hsk-guide-table td{text-align:left;vertical-align:top;border-bottom:1px solid #64748b29;padding:12px 14px}.hsk-guide-table th{color:#475569;text-transform:uppercase;background:#f8fafc;font-size:.76rem;font-weight:950}.hsk-guide-table td{color:#334155;font-size:.94rem;font-weight:650;line-height:1.55}.hsk-guide-sections,.hsk-guide-faq{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin-top:18px;display:grid}.hsk-guide-section,.hsk-guide-faq-item{background:#ffffffe0;border:1px solid #0f172a1a;border-radius:8px;padding:18px;box-shadow:0 10px 28px #1f293712}.hsk-guide-section p:last-child,.hsk-guide-faq-item p:last-child,.hsk-guide-section ul:last-child{margin-bottom:0}.hsk-guide-section ul{gap:7px;margin:12px 0 0;padding-left:20px;display:grid}.site-disclaimer{color:#64748b;border-top:1px solid #64748b29;max-width:1120px;margin:18px auto 0;padding-top:14px;font-size:.82rem;font-weight:650;line-height:1.5}.progress-card{width:min(520px,100%);box-shadow:none;background:0 0;border:0;border-radius:8px;flex-wrap:wrap;justify-content:flex-end;gap:6px;padding:0;display:flex}.progress-card div{text-align:left;background:#f8fafc;border:1px solid #64748b24;border-radius:7px;justify-content:center;align-items:baseline;gap:7px;min-width:0;padding:7px 10px;display:flex}.progress-number,.progress-label{display:block}.progress-number{color:#111827;font-size:1.05rem;font-weight:900;line-height:1}.progress-label{color:#64748b;text-transform:uppercase;margin-top:0;font-size:.68rem;font-weight:800}.toolbar{z-index:10;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);touch-action:pan-y;background:#ffffffeb;border:1px solid #11182714;border-radius:8px;grid-template-columns:auto minmax(220px,1fr) auto auto auto;align-items:center;gap:8px;min-width:0;margin:0 0 10px;padding:8px;display:grid;position:sticky;top:0;box-shadow:0 12px 36px #1f29371a}.mobile-toolbar-summary{display:none}.mobile-control-panel{display:contents}.search-field{background:#fff;border:1px solid #64748b2e;border-radius:8px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;min-width:0;padding:6px 10px;display:grid}.search-field span{color:#64748b;font-size:.82rem;font-weight:800}.search-field input{color:#111827;background:0 0;border:0;outline:0;width:100%;min-width:0}.level-tabs,.filter-tabs,.language-tabs,.study-mode-tabs{scrollbar-width:thin;touch-action:pan-x pan-y;background:#eef2f7;border-radius:8px;gap:4px;min-width:0;max-width:100%;padding:3px;display:flex;overflow-x:auto}.level-tabs{background:#fff7d6}.study-mode-tabs{background:#dbeafe}.language-tabs{background:#f8fafc;grid-column:1/-1;gap:6px;max-width:100%;padding:5px}.filter-tabs button,.study-mode-tabs button,.language-tabs a,.level-tabs a,.level-tabs button,.reset-button,.status-action,.audio-button,.modal-close{border:0}.filter-tabs button,.study-mode-tabs button,.language-tabs a,.level-tabs a,.level-tabs button{color:#475569;white-space:nowrap;background:0 0;border-radius:7px;min-height:34px;padding:0 12px;font-size:.88rem;font-weight:800;transition:transform .18s,background .18s,color .18s,box-shadow .18s}.level-tabs a,.level-tabs button{text-align:left;gap:2px;min-width:86px;padding:5px 12px;display:grid}.language-tabs a{border:1px solid #0000;align-items:center;gap:7px;display:inline-flex;box-shadow:inset 0 -2px #0000}.language-tabs a:hover{color:var(--language-accent,#111827);background:var(--language-tint,#fff);box-shadow:inset 0 -2px 0 color-mix(in srgb, var(--language-accent,#111827) 45%, transparent)}.language-tabs a.active{color:var(--language-accent,#111827);border-color:color-mix(in srgb, var(--language-accent,#111827) 24%, transparent);background:var(--language-tint,#fff);box-shadow:inset 0 -3px 0 var(--language-accent,#111827), 0 4px 12px #0f172a1a}.language-flag{font-size:1.1rem;line-height:1}.level-tabs a small,.level-tabs button small{color:#92400e;font-size:.68rem;font-weight:850}.filter-tabs button:hover,.study-mode-tabs button:hover,.language-tabs a:hover,.level-tabs a:hover,.level-tabs button:hover{transform:translateY(-1px)}.filter-tabs button.active,.study-mode-tabs button.active,.language-tabs a.active,.level-tabs a.active,.level-tabs button.active{color:#111827;background:#fff;box-shadow:0 4px 12px #0f172a1a}.level-tabs a.active small,.level-tabs button.active small{color:#0f766e}.toolbar-meta{color:#64748b;white-space:nowrap;justify-content:end;align-items:center;gap:10px;min-width:0;font-size:.88rem;font-weight:800;display:flex}.reset-button{color:#991b1b;background:#fee2e2;border-radius:7px;min-height:34px;padding:0 12px;font-weight:900}.map-shell{position:relative}.level-overview{grid-template-columns:repeat(3,minmax(260px,1fr));gap:14px;display:grid}.level-card{box-shadow:var(--shadow-soft);will-change:transform;background:#ffffffe6;border:1px solid #0f172a1a;border-radius:8px;align-content:start;transition:border-color .18s,box-shadow .18s,transform .18s;display:grid;position:relative;overflow:hidden;transform:translateY(0)scale(1)}.level-card.is-empty{opacity:.62}.level-card-main{width:100%;min-height:146px;color:var(--level-text,#0f172a);background:linear-gradient(135deg, #ffffff1f, #0f172a24), var(--cluster-accent);text-align:left;background-position:0 0;background-size:160% 160%,auto;border:0;padding:18px;transition:background-position .22s,filter .18s;display:grid;position:relative;overflow:hidden}.level-card-main:before{content:"";opacity:0;pointer-events:none;background:linear-gradient(115deg,#0000 0% 35%,#ffffff52 48%,#0000 62% 100%);transition:opacity .18s,transform .52s;position:absolute;inset:0;transform:translate(-75%)}.level-card-main>*{z-index:1;position:relative}.level-card-main[aria-disabled=true]{cursor:not-allowed}.level-card-kicker,.level-card-count{font-size:.78rem;font-weight:900}.level-card-title{letter-spacing:0;align-self:end;font-family:Georgia,Times New Roman,serif;font-size:clamp(2.4rem,5vw,4.7rem);font-weight:900;line-height:.94;transition:transform .18s;transform:translateY(0)}.level-card-count{align-self:end}.level-progress{background:#e2e8f0;height:8px;display:flex}.level-progress span:first-child{background:#22c55e}.level-progress span:last-child{background:#f97316}.level-card-stats{background:#e2e8f0;grid-template-columns:repeat(3,1fr);gap:1px;display:grid}.level-card-stats span{color:#475569;text-align:center;background:#f8fafc;min-width:0;padding:10px 8px;font-size:.76rem;font-weight:850;transition:background-color .18s,color .18s}.level-word-preview{flex-wrap:wrap;gap:6px;min-height:54px;padding:12px;display:flex}.preview-word{color:#3b3208;background:#fff7d6;border:1px solid #fbbf2473;border-radius:7px;min-width:42px;min-height:34px;padding:0 10px;font-weight:950;transition:background-color .16s,border-color .16s,box-shadow .16s,transform .16s;transform:translateY(0)}@media (hover:hover) and (pointer:fine){.level-card:not(.is-empty):hover,.level-card:not(.is-empty):focus-within{border-color:#0f172a2e;transform:translateY(-4px)scale(1.01);box-shadow:0 22px 56px #0f172a33}.level-card:not(.is-empty):hover .level-card-main,.level-card:not(.is-empty):focus-within .level-card-main{filter:saturate(1.08);background-position:100% 0}.level-card:not(.is-empty):hover .level-card-main:before,.level-card:not(.is-empty):focus-within .level-card-main:before{opacity:1;transform:translate(75%)}.level-card:not(.is-empty):hover .level-card-title,.level-card:not(.is-empty):focus-within .level-card-title{transform:translateY(-2px)}.level-card:not(.is-empty):hover .level-card-stats span,.level-card:not(.is-empty):focus-within .level-card-stats span{color:#334155;background:#fff}.level-card:not(.is-empty) .preview-word:hover,.level-card:not(.is-empty) .preview-word:focus-visible{border-color:#f59e0bb3;transform:translateY(-2px);box-shadow:0 8px 18px #78350f1f}}@media (prefers-reduced-motion:reduce){.level-card,.level-card-main,.level-card-main:before,.level-card-title,.level-card-stats span,.preview-word{transition:none}.level-card:not(.is-empty):hover,.level-card:not(.is-empty):focus-within,.level-card:not(.is-empty):hover .level-card-title,.level-card:not(.is-empty):focus-within .level-card-title,.level-card:not(.is-empty) .preview-word:hover,.level-card:not(.is-empty) .preview-word:focus-visible{transform:none}}.preview-word.is-know{color:#052e16;background:#dcfce7;border-color:#22c55e5c}.preview-word.is-learning{color:#9a3412;background:#ffedd5;border-color:#f9731657}.level-empty-note{color:#64748b;margin:0;padding:16px 14px;font-size:.84rem;font-weight:800}.hsk3-preview-copy{max-width:66ch}.hsk3-preview-brief{box-shadow:var(--shadow-soft);background:linear-gradient(135deg,#fffbebeb,#fffffff5);border:1px solid #0f172a14;border-radius:8px;gap:10px;margin-bottom:12px;padding:16px 18px;display:grid}.hsk3-preview-brief p{color:#334155;margin:0;font-weight:700;line-height:1.6}.hsk3-preview-brief-meta{color:#64748b;flex-wrap:wrap;gap:8px 14px;font-size:.82rem;font-weight:750;display:flex}.hsk3-preview-brief-meta span{min-width:0}.hsk3-preview-progress-card{justify-content:flex-start;width:100%;margin-bottom:12px}.hsk3-preview-progress-card div{align-content:start;gap:3px;display:grid}.hsk3-preview-progress-note{color:#64748b;font-size:.72rem;font-weight:700;line-height:1.35}.hsk3-preview-shell .level-card-main{appearance:none;cursor:pointer}.hsk3-preview-shell .hsk3-preview-detail{display:none}.hsk3-preview-static-map{cursor:default;touch-action:pan-x pan-y;overflow:auto}.hsk3-preview-modal-meta{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.hsk3-preview-modal-sentence-note{color:#92400e;margin:10px 0 0;font-weight:800}.hsk3-preview-modal-empty-sentence .sentence-meaning{margin-top:8px}.hsk3-preview-modal-footer{text-align:center;justify-items:center;gap:8px;display:grid}.hsk3-preview-modal-footer span:last-child{color:#64748b;font-size:.84rem;font-weight:700}.hsk3-preview-detail{box-shadow:var(--shadow-soft);background:#fffffff2;border:1px solid #0f172a14;border-radius:8px;gap:14px;margin-top:12px;padding:18px;display:grid}.hsk3-preview-detail-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.hsk3-preview-detail-copy{color:#475569;margin:4px 0 0;font-size:1rem;font-weight:700}.hsk3-preview-badge-row{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.hsk3-preview-detail-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.hsk3-preview-detail-grid div{background:#f8fafc;border-radius:8px;gap:4px;padding:10px 12px;display:grid}.hsk3-preview-detail-grid span{color:#64748b;text-transform:uppercase;font-size:.72rem;font-weight:800}.hsk3-preview-detail-grid strong{color:#111827;font-size:.96rem;font-weight:850}.hsk3-preview-sentence{background:#fff7d6;border-radius:8px;padding:14px 16px}.hsk3-preview-sentence.is-empty{background:#f8fafc}.hsk3-preview-sentence.is-empty p:last-child{color:#475569;margin-bottom:0;font-weight:700}.hsk3-preview-sentence-note{color:#92400e;margin:10px 0 0;font-size:.84rem;font-weight:800}.poster-scroll{--map-pan-x:0px;--map-pan-y:0px;--tile-size:74px;height:clamp(380px,100svh - 128px,840px);box-shadow:var(--shadow-soft);cursor:grab;overflow-anchor:none;overscroll-behavior:contain;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;contain:layout paint;background:linear-gradient(135deg,#ffffffb8,#fffbebd6),#fff7ed;border:1px solid #92400e47;border-radius:8px;position:relative;overflow:hidden}.poster-scroll.is-panning{cursor:grabbing}.canvas-word-map.has-canvas-hover:not(.is-panning){cursor:pointer}.word-map-canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.poster-scroll.is-panning .word-tile:hover{box-shadow:none;transform:none}.poster-board{width:max-content;padding:calc(var(--tile-size) * .324);align-items:flex-start;gap:0;display:inline-flex}.poster-board.is-split-word-grid{align-items:start;display:inline-grid}.poster-zoom-space{min-width:100%;min-height:1px;transform:translate3d(var(--map-pan-x), var(--map-pan-y), 0);vertical-align:top;will-change:transform;display:inline-block;position:relative}.tile-grid{grid-auto-flow:column;grid-template-rows:repeat(var(--level-rows,6), var(--tile-size));grid-auto-columns:var(--tile-size);place-items:stretch stretch;gap:0;display:grid}.word-tile{width:var(--tile-size);height:var(--tile-size);padding:calc(var(--tile-size) * .07);color:#3b3208;box-shadow:none;-webkit-user-drag:none;background:#f7b718;border:1px solid #fff4c4e6;border-radius:0;place-items:center;transition:transform .15s,background .15s,border-color .15s,box-shadow .15s;display:grid;position:relative;overflow:hidden}.word-tile:hover{z-index:20;background:#ffc928;border-color:#fff8c5;box-shadow:0 12px 26px #78350f3d}.word-tile.is-know{color:#052e16;background:#35cf66;border-color:#dcfce7eb}.word-tile.is-know:hover{background:#4ade80}.word-tile.is-learning{color:#fff7ed;background:#ff6b16;border-color:#ffedd5eb}.word-tile.is-learning:hover{background:#fb7c24}.tile-hanzi{max-width:100%;max-height:100%;color:inherit;font-size:calc(var(--tile-size) * var(--tile-font-scale,.38));overflow-wrap:normal;word-break:keep-all;white-space:pre;text-align:center;align-self:center;font-weight:950;line-height:.96;display:block}.status-flash{z-index:30;isolation:isolate;animation:.52s status-pop}.empty-state{text-align:center;background:#ffffffa6;border:1px dashed #64748b73;border-radius:8px;grid-column:1/-1;place-items:center;min-height:280px;padding:48px;display:grid}.empty-state h2{color:#111827;margin-bottom:8px}.empty-state p{color:#64748b;margin-bottom:0}.modal-backdrop{z-index:30;overscroll-behavior:contain;background:#0f172a94;place-items:center;padding:22px;animation:.16s both fade-in;display:grid;position:fixed;inset:0}.reset-dialog-backdrop{z-index:40}.reset-dialog{background:linear-gradient(135deg,#fef2f2eb,#fffffff5 44%),#fff;border:1px solid #fecacae6;border-radius:8px;width:min(520px,100%);padding:28px;animation:.18s both modal-in;box-shadow:0 30px 80px #0000004d}.reset-dialog .reset-dialog-kicker{color:#b91c1c;letter-spacing:.11em;text-transform:uppercase;margin-bottom:8px;font-size:.78rem;font-weight:950}.reset-dialog h2{color:#111827;margin-bottom:10px;font-size:clamp(1.9rem,4vw,2.65rem);line-height:1}.reset-dialog p{color:#475569;font-weight:760}.reset-dialog-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:18px;display:grid}.reset-dialog-summary span{color:#64748b;background:#fff;border:1px solid #94a3b82e;border-radius:8px;gap:4px;min-width:0;padding:12px;font-size:.78rem;font-weight:850;display:grid}.reset-dialog-summary strong{color:#0f172a;font-size:1.25rem;line-height:1}.reset-dialog .reset-dialog-note{color:#991b1b;margin-top:16px;margin-bottom:0}.reset-dialog-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:24px;display:flex}.reset-dialog-cancel,.reset-dialog-confirm{border-radius:7px;min-height:44px;padding:0 16px;font-weight:950}.reset-dialog-cancel{color:#334155;background:#fff;border:1px solid #94a3b847}.reset-dialog-confirm{color:#fff;background:#dc2626;border:0;box-shadow:0 10px 22px #dc262638}.reset-dialog-confirm:hover{background:#b91c1c}.word-modal{overscroll-behavior:contain;background:radial-gradient(circle at 18% 0,#0ea5e92e,#0000 170px),#fff;border-radius:8px;flex-direction:column;width:min(720px,100%);height:calc(100svh - 44px);max-height:calc(100svh - 44px);animation:.18s both modal-in;display:flex;position:relative;overflow:hidden;box-shadow:0 30px 80px #00000047}.modal-topbar{flex:none;justify-content:flex-end;margin-bottom:10px;padding:28px 28px 0;display:flex}.modal-scroll{overscroll-behavior:contain;flex:auto;min-height:0;padding:0 28px 34px;overflow-y:auto}.modal-footer{z-index:2;background:#fffffff0;border-top:1px solid #94a3b82e;flex:none;padding:18px 28px 28px;position:relative;box-shadow:0 -14px 30px #0f172a0f}.modal-close{color:#475569;background:#fff;border:1px solid #64748b2e;border-radius:8px;place-items:center;width:40px;height:40px;transition:transform .16s,border-color .16s,background .16s,box-shadow .16s;display:grid;position:relative;box-shadow:0 8px 18px #0f172a14}.modal-close:hover{background:#fff1f2;border-color:#ef444442;transform:translateY(-1px);box-shadow:0 12px 22px #0f172a1f}.modal-close-mark{width:16px;height:16px;display:block;position:relative}.modal-close-mark:before,.modal-close-mark:after{content:"";background:currentColor;border-radius:999px;width:16px;height:2px;position:absolute;top:7px;left:0}.modal-close-mark:before{transform:rotate(45deg)}.modal-close-mark:after{transform:rotate(-45deg)}.flashcard-card{--modal-hanzi-count:2;z-index:1;width:100%;min-height:260px;color:inherit;perspective:1200px;background:0 0;border:0;border-radius:8px;padding:0;display:grid;position:relative;container-type:inline-size}.flashcard-stage{position:relative}.flashcard-face{backface-visibility:hidden;min-height:260px;transform-style:preserve-3d;background:radial-gradient(circle at 16% 0,#0ea5e92e,#0000 190px),#fff;border:1px solid #94a3b833;border-radius:8px;grid-area:1/1;align-content:center;justify-items:start;padding:32px 76px 30px 32px;transition:transform .24s,opacity .18s,border-color .18s,box-shadow .18s;display:grid;box-shadow:inset 0 0 0 1px #ffffffb8}.flashcard-card:hover .flashcard-face{border-color:#2563eb47;box-shadow:inset 0 0 0 1px #fffc,0 12px 26px #0f172a14}.flashcard-front{transform:rotateY(0)}.flashcard-back{opacity:0;transform:rotateY(180deg)}.flashcard-back .modal-pinyin{color:#2563eb;margin-top:12px;font-size:clamp(1.15rem,2.2vw,1.55rem);line-height:1.15}.flashcard-back .modal-meaning{color:#0f172a;max-width:780px;margin-top:0;font-size:clamp(2.5rem,6vw,4.5rem);line-height:1.05}.flashcard-front .modal-prompt-meaning{color:#0f172a;max-width:820px;margin-top:0;font-size:clamp(2.5rem,6vw,4.5rem);line-height:1.05}.flashcard-card.is-translation-first .flashcard-back .modal-meaning{color:#334155;max-width:780px;margin-top:12px;font-size:1.1rem;line-height:1.25}.flashcard-card.is-revealed .flashcard-front{opacity:0;transform:rotateY(-180deg)}.flashcard-card.is-revealed .flashcard-back{opacity:1;transform:rotateY(0)}.modal-kicker{color:#ef4444;letter-spacing:.11em;text-transform:uppercase;margin-bottom:8px;font-size:.76rem;font-weight:900;display:block}.modal-hanzi{color:#0f172a;min-width:0;max-width:100%;font-size:min(clamp(4.5rem, 17vw, 8rem), calc(80cqw / var(--modal-hanzi-count)));letter-spacing:0;overflow-wrap:normal;white-space:nowrap;word-break:keep-all;font-weight:950;line-height:.9;display:block}.modal-pinyin{color:#2563eb;margin-top:16px;margin-bottom:0;font-size:1.35rem;font-weight:900;display:block}.modal-meaning{color:#334155;text-align:left;margin-top:8px;margin-bottom:0;font-size:1.1rem;font-weight:750;display:block}.flashcard-cue{color:#1d4ed8;background:#dbeafe;border-radius:7px;place-items:center;min-height:34px;margin-top:22px;padding:0 14px;font-size:.82rem;font-weight:900;display:inline-grid}.modal-answer{display:none}.modal-answer.is-visible{animation:.16s both answer-in;display:block}.recall-locked-content{display:grid;position:relative}.recall-locked-content>.writing-card,.recall-locked-content>.sentence-card{grid-area:1/1}.recall-locked-content.is-locked>.writing-card,.recall-locked-content.is-locked>.sentence-card{pointer-events:none;-webkit-user-select:none;user-select:none;filter:blur(11px)}.recall-lock-overlay{z-index:2;color:#1e40af;text-align:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#eff6ffc7;border:1px solid #2563eb29;border-radius:8px;place-items:center;padding:18px;font-size:.88rem;font-weight:900;display:grid;position:absolute;inset:18px 0 0}.examples{background:#f8fafc;border-radius:8px;margin-top:20px;padding:14px 16px}.examples p{color:#0f172a;margin-bottom:0;font-size:1.1rem;font-weight:800}.writing-card{background:#eff6ff;border:1px solid #2563eb2e;border-radius:8px;gap:14px;margin-top:18px;padding:16px 18px;display:grid}.writing-card-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.writing-card-controls{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.writing-kicker{color:#1e40af;letter-spacing:.08em;text-transform:uppercase;margin-bottom:0;font-size:.74rem;font-weight:900}.writing-mode-tabs{background:#dbeafe;border-radius:8px;gap:4px;padding:4px;display:flex}.writing-mode-tabs button{color:#1e40af;background:0 0;border:0;border-radius:6px;min-height:32px;padding:0 12px;font-size:.78rem;font-weight:900}.writing-mode-tabs button.active{color:#0f172a;background:#fff;box-shadow:0 4px 10px #2563eb24}.writing-replay{color:#fff;background:#2563eb;border:0;border-radius:7px;min-height:32px;padding:0 12px;font-size:.78rem;font-weight:900}.writing-hint{color:#1e40af;background:#dbeafe;border:0;border-radius:7px;min-height:36px;padding:0 14px;font-size:.82rem;font-weight:900}.writing-hint:disabled{cursor:not-allowed;opacity:.52}.writing-grid{flex-wrap:wrap;gap:12px;display:flex}.writer-character{justify-items:center;gap:8px;min-width:116px;display:grid}.writer-target{background:linear-gradient(45deg,#0000 calc(50% - .5px),#94a3b857 50%,#0000 calc(50% + .5px)),linear-gradient(-45deg,#0000 calc(50% - .5px),#94a3b857 50%,#0000 calc(50% + .5px)),linear-gradient(90deg,#0000 calc(50% - .5px),#94a3b857 50%,#0000 calc(50% + .5px)),linear-gradient(0deg,#0000 calc(50% - .5px),#94a3b857 50%,#0000 calc(50% + .5px)),#fff;border:1px solid #2563eb29;border-radius:8px;width:112px;height:112px;position:relative;overflow:hidden}.writer-character span{color:#1e293b;font-size:1rem;font-weight:900;line-height:1}.practice-panel{gap:14px;display:grid}.practice-meta{justify-content:space-between;align-items:center;gap:14px;display:flex}.practice-word,.practice-step,.practice-message{display:block}.practice-word{color:#0f172a;font-size:1.8rem;font-weight:950;line-height:1}.practice-step{color:#64748b;margin-top:5px;font-size:.8rem;font-weight:850}.practice-message{color:#1e40af;background:#dbeafe;border-radius:7px;min-height:34px;padding:8px 12px;font-size:.84rem;font-weight:900}.practice-message.is-complete{color:#14532d;background:#dcfce7}.practice-body{grid-template-columns:auto minmax(160px,1fr);align-items:start;gap:16px;display:grid}.practice-target-wrap{place-items:center;display:grid}.practice-target{touch-action:none;width:220px;height:220px}.practice-sidebar{align-content:start;gap:12px;display:grid}.practice-character-tabs{flex-wrap:wrap;gap:8px;display:flex}.practice-character-tabs button{color:#1e293b;background:#fff;border:1px solid #2563eb2e;border-radius:7px;place-items:center;width:44px;height:44px;font-size:1.35rem;font-weight:950;line-height:1;display:grid}.practice-character-tabs button.active{color:#fff;background:#2563eb}.practice-character-tabs button.complete:not(.active){color:#14532d;background:#dcfce7;border-color:#22c55e52}.practice-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.practice-stats span{color:#334155;background:#fff;border-radius:7px;min-width:0;padding:9px 10px;font-size:.78rem;font-weight:850}.writing-error{color:#991b1b;margin-bottom:0;font-size:.84rem;font-weight:800}.sentence-card{cursor:pointer;background:#f8fafc;border:1px solid #94a3b833;border-radius:8px;gap:10px;margin-top:18px;padding:16px 18px;transition:border-color .17s,box-shadow .17s,transform .17s;display:grid}.sentence-card:hover{border-color:#2563eb3d;transform:translateY(-1px);box-shadow:0 10px 22px #0f172a14}.sentence-card.is-disabled{cursor:default}.sentence-card.is-disabled:hover{box-shadow:none;border-color:#94a3b833;transform:none}.sentence-card-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.sentence-kicker{color:#64748b;letter-spacing:.08em;text-transform:uppercase;margin-bottom:0;font-size:.74rem;font-weight:900}.sentence-toggle{color:#1d4ed8;background:#dbeafe;border:0;border-radius:7px;place-items:center;min-height:32px;padding:0 12px;font-size:.78rem;font-weight:900;display:inline-grid}.sentence-hanzi{color:#0f172a;margin-bottom:0;font-size:clamp(1.65rem,3.2vw,2.6rem);font-weight:950;line-height:1.12}.sentence-detail{border-top:1px solid #94a3b838;gap:5px;padding-top:10px;animation:.16s both answer-in;display:grid}.sentence-pinyin,.sentence-meaning{margin-bottom:0;font-weight:850}.sentence-pinyin{color:#2563eb;font-size:1rem}.sentence-meaning{color:#475569;font-size:.98rem}.modal-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:0;display:flex}.modal-status-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.audio-button,.status-action{border-radius:8px;min-height:44px;padding:0 16px;font-weight:900;transition:transform .17s,box-shadow .17s,background .17s}.audio-button:hover,.status-action:hover{transform:translateY(-2px)}.audio-button{isolation:isolate;color:#fff;background:#2563eb;justify-content:center;align-items:center;gap:9px;display:inline-flex;position:relative;overflow:hidden}.audio-button:before{content:"";z-index:-1;opacity:0;background:linear-gradient(110deg,#0000 0%,#ffffff47 42%,#0000 74%);position:absolute;inset:0;transform:translate(-110%)}.audio-button.is-playing{background:#1d4ed8;animation:.96s ease-in-out infinite audio-button-pulse;box-shadow:0 12px 26px #2563eb42,0 0 0 4px #2563eb21}.audio-button.is-playing:before{opacity:1;animation:1.35s linear infinite audio-button-sweep}.audio-button>span{z-index:1;position:relative}.audio-button-visualizer{justify-content:center;align-items:center;gap:3px;width:18px;height:16px;display:inline-flex}.audio-button-visualizer span{opacity:.72;transform-origin:50%;background:currentColor;border-radius:999px;width:3px;height:10px;transition:opacity .16s,transform .16s;transform:scaleY(.48)}.audio-button.is-playing .audio-button-visualizer span{opacity:1;animation:.62s ease-in-out infinite audio-bar}.audio-button.is-playing .audio-button-visualizer span:nth-child(2){animation-delay:.12s}.audio-button.is-playing .audio-button-visualizer span:nth-child(3){animation-delay:.24s}.audio-button:disabled{cursor:not-allowed;opacity:.48}.status-action{color:#334155;background:#e2e8f0;border:1px solid #0000}.status-action.learning{color:#9a3412;background:#fff;border-color:#fdba74}.status-action.know{color:#166534;background:#fff;border-color:#86efac}.status-action.learning:hover{background:#ffedd5;box-shadow:0 10px 22px #f9731629}.status-action.know:hover{background:#dcfce7;box-shadow:0 10px 22px #16a34a29}.status-action.active.learning{color:#fff;background:#f97316;border-color:#f97316;box-shadow:0 10px 24px #f9731642}.status-action.active.know{color:#fff;background:#16a34a;border-color:#16a34a;box-shadow:0 10px 24px #16a34a3d}.status-action.muted{color:#64748b;background:#f1f5f9;border-color:#0000}.speech-note{color:#991b1b;margin:14px 0 0;font-size:.86rem;font-weight:800}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(12px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes answer-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes status-pop{0%{box-shadow:none;transform:scale(1)}45%{transform:scale(1.04);box-shadow:0 0 0 2px #ffffffeb,0 10px 20px #0f172a2e}to{box-shadow:none;transform:scale(1)}}@keyframes audio-button-pulse{0%,to{transform:translateY(0)}50%{transform:translateY(-1px)}}@keyframes audio-button-sweep{0%{transform:translate(-110%)}to{transform:translate(110%)}}@keyframes audio-bar{0%,to{transform:scaleY(.45)}50%{transform:scaleY(1.1)}}@media (prefers-reduced-motion:reduce){.audio-button.is-playing,.audio-button.is-playing:before,.audio-button.is-playing .audio-button-visualizer span{animation:none}.audio-button.is-playing .audio-button-visualizer span{transform:scaleY(1)}}@media (width<=1540px){.hero{grid-template-columns:minmax(0,1fr) auto}.progress-card{width:auto}.toolbar{grid-template-columns:minmax(0,1fr) auto auto auto}.level-tabs{grid-column:1/-1}.search-field{grid-column:1}.filter-tabs{grid-column:2}.study-mode-tabs{grid-column:3}.language-tabs{grid-column:1/-1}.level-tabs a,.level-tabs button,.filter-tabs button,.study-mode-tabs button,.language-tabs a{flex:none}.toolbar-meta{flex-wrap:nowrap;grid-column:4;justify-content:end}}@media (width<=900px){.app-shell:has(.level-overview){width:min(100% - 16px,1500px);padding-top:8px}.app-shell:has(.level-overview) .toolbar{grid-template-columns:1fr;gap:8px;margin-bottom:8px;padding:8px}.app-shell:has(.level-overview) .level-overview{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.app-shell:has(.level-overview) .level-card-main{min-height:94px;padding:10px}:is(.app-shell:has(.level-overview) .level-card-kicker,.app-shell:has(.level-overview) .level-card-count){font-size:.68rem}.app-shell:has(.level-overview) .level-card-title{font-size:clamp(2.15rem,13vw,3.25rem)}:is(.app-shell:has(.level-overview) .level-card-stats,.app-shell:has(.level-overview) .level-word-preview){display:none}.hsk3-preview-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=720px){.app-shell{width:min(100% - 12px,1500px);padding-top:6px}.app-shell:has(.level-overview){width:min(100% - 12px,1500px);padding-top:6px}.hero{display:none}.progress-card{justify-content:flex-start;width:100%}.toolbar{grid-template-columns:1fr;gap:6px;margin-bottom:6px;padding:6px;top:0}.app-shell:has(.level-overview) .toolbar{gap:6px;margin-bottom:6px;padding:6px}.mobile-toolbar-summary,.search-field,.filter-tabs,.study-mode-tabs,.language-tabs,.toolbar-meta{grid-column:1}.mobile-toolbar-summary{background:#f8fafc;border-radius:8px;justify-content:space-between;align-items:center;gap:8px;min-width:0;padding:4px 5px 4px 8px;display:flex}.mobile-toolbar-status{color:#64748b;flex:auto;align-items:center;gap:6px;min-width:0;font-size:.76rem;font-weight:850;display:flex}.mobile-toolbar-status span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.mobile-toolbar-status span:first-child{color:#111827;flex:none}.mobile-controls-toggle{color:#1d4ed8;text-overflow:ellipsis;white-space:nowrap;background:#dbeafe;border:0;border-radius:7px;flex:none;justify-content:center;align-items:center;gap:7px;max-width:42%;min-height:32px;padding:0 10px;font-size:.78rem;font-weight:900;display:inline-flex;overflow:hidden}.mobile-controls-icon{flex:none;width:17px;height:14px;display:block;position:relative}.mobile-controls-icon span{background:currentColor;border-radius:999px;height:2px;position:absolute;left:1px;right:1px}.mobile-controls-icon span:after{content:"";background:currentColor;border-radius:999px;width:5px;height:5px;position:absolute;top:50%;transform:translateY(-50%)}.mobile-controls-icon span:first-child{top:1px}.mobile-controls-icon span:first-child:after{left:2px}.mobile-controls-icon span:nth-child(2){top:6px}.mobile-controls-icon span:nth-child(2):after{right:2px}.mobile-controls-icon span:nth-child(3){top:11px}.mobile-controls-icon span:nth-child(3):after{left:6px}.mobile-control-panel{grid-column:1;gap:7px;min-width:0;display:none}.toolbar.is-mobile-open .mobile-control-panel{display:grid}.search-field{grid-template-columns:1fr;gap:5px}.level-tabs,.filter-tabs,.study-mode-tabs,.language-tabs{max-width:100%;overflow-x:auto}.level-tabs{scrollbar-width:none;padding:2px}.level-tabs::-webkit-scrollbar{display:none}.level-tabs a,.level-tabs button,.filter-tabs button,.study-mode-tabs button,.language-tabs a{flex:none}.level-tabs a,.level-tabs button{min-width:86px;min-height:40px;padding:4px 10px;font-size:.8rem}.level-tabs a small,.level-tabs button small{font-size:.58rem}.toolbar-meta{white-space:normal;flex-direction:column;align-items:stretch}.level-overview{grid-template-columns:1fr}.hsk3-preview-brief{padding:14px}.hsk3-preview-brief-meta,.hsk3-preview-detail-head,.hsk3-preview-badge-row{flex-direction:column;align-items:flex-start}.hsk3-preview-detail-grid{grid-template-columns:1fr}.level-card-main{min-height:126px}.level-card-stats{grid-template-columns:1fr}.hsk-guide{margin-top:22px;padding-top:24px}.hsk-guide h2{font-size:clamp(1.8rem,9vw,2.35rem)}.hsk-guide-sections,.hsk-guide-faq{grid-template-columns:1fr}.hsk-guide-section,.hsk-guide-faq-item{padding:16px}.poster-scroll{height:max(420px,100svh - 118px)}.poster-board{padding:calc(var(--tile-size) * .162);gap:0;display:grid}.modal-topbar{padding:22px 22px 0}.modal-scroll{padding:0 22px 28px}.modal-footer{padding:16px 22px 22px}.modal-actions,.modal-status-actions,.reset-dialog-actions{flex-direction:column;align-items:stretch}.reset-dialog-summary{grid-template-columns:1fr}.modal-status-actions,.audio-button,.status-action,.reset-dialog-cancel,.reset-dialog-confirm{width:100%}.flashcard-card,.flashcard-face{min-height:232px}.flashcard-face{padding:26px 56px 24px 22px}.writing-card-header,.practice-meta,.practice-body{grid-template-columns:1fr;align-items:stretch}.writing-card-header,.practice-meta{flex-direction:column}.writing-card-controls{justify-content:stretch}.writing-mode-tabs,.writing-replay,.writing-hint{width:100%}.writing-mode-tabs button{flex:1}.practice-target{width:min(220px,100%);height:min(220px,100vw - 80px)}}@media (width<=380px){.mobile-controls-toggle{width:36px;max-width:none;padding:0}.mobile-controls-label{display:none}}
