/* Owner refinement, 23 September: Kaiti, per-symbol ruby and one-column reading. */
@font-face{font-family:Kaiti;src:url('assets/kaiti.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
:root{--cell:192px;--pinyin:28px;--tone1:#000000;--tone2:#0F9ED5;--tone3:#00B050;--tone4:#C00000;--tone5:#A0A0A0;--ruby-cell:72px;--ruby-font:72px;--ruby-latin:16px;--ruby-arabic:22px;--ruby-gap:13px}
.hero-hanzi{font-weight:400}.hero-arabic{font-size:24px;line-height:1.6;unicode-bidi:isolate}.word-cell{gap:14px}.word-audio{padding-bottom:12px}.word-area{padding-bottom:35px}.written-syllable,.written-vowel{line-height:1.25}.syllable-accent{font-size:inherit}
.ruby-line{display:flex;flex-direction:row;flex-wrap:wrap;align-items:flex-start;direction:ltr;gap:25px 16px;max-width:100%;text-align:left}
.ruby-word{display:inline-flex;flex-direction:row;align-items:flex-start;direction:ltr;max-width:100%;flex-wrap:wrap;unicode-bidi:isolate}
.ruby-unit{display:inline-flex;flex-direction:column;align-items:center;width:var(--ruby-cell);flex:0 0 var(--ruby-cell);margin:0;vertical-align:top;direction:ltr}
.ruby-hanzi{display:block;width:100%;height:var(--ruby-font);font:400 var(--ruby-font)/1 Kaiti,Yuanti,sans-serif;text-align:center}
.ruby-reading{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:6px;position:static;margin:0;padding-top:var(--ruby-gap);width:100%;text-align:center;ruby-position:under;white-space:nowrap}
.ruby-latin{display:block;font:400 var(--ruby-latin)/1.25 Century,sans-serif;color:var(--navy);direction:ltr;unicode-bidi:isolate}
.ruby-arabic{display:block;font:400 var(--ruby-arabic)/1.55 Phonetic,serif;color:var(--navy);direction:rtl;unicode-bidi:isolate;white-space:nowrap}
.ruby-punctuation{display:block;font:400 calc(var(--ruby-font)*.7)/1.42 Kaiti,Yuanti,sans-serif;width:calc(var(--ruby-cell)*.35);text-align:left;flex:none}
.example-layout{display:flex;flex-direction:column;align-items:stretch;direction:ltr;gap:22px}.example-speech{display:block;width:100%;margin:0;padding:12px 0 8px;text-align:left}.example-translation{align-self:stretch;text-align:right;font-size:20px;margin:0 0 5px}.sense-card{padding:25px 28px 20px}.sense-card h2{margin-bottom:20px}.sense-action{margin-top:18px}.full-example{padding:28px}.sense-context{margin-bottom:17px}.examples-group{margin-bottom:30px}
.compact-ruby{--ruby-cell:58px;--ruby-font:42px;--ruby-latin:12px;--ruby-arabic:18px;--ruby-gap:9px;justify-content:center;gap:0}.compact-ruby .ruby-unit{width:var(--ruby-cell);flex-basis:var(--ruby-cell)}.compact-ruby .ruby-word{flex-wrap:nowrap}.compact-ruby .ruby-hanzi{height:var(--ruby-font)}.compact-ruby .ruby-reading{gap:3px}
.word-list{grid-template-columns:repeat(5,minmax(0,1fr))}.word-list button{padding:19px 5px;display:flex;justify-content:center;align-items:center;min-height:104px}.word-shelf{margin-top:38px}
.related-list{display:flex;flex-direction:column;gap:0}.related-item{display:flex;flex:initial;flex-direction:row;justify-content:space-between;align-items:center;gap:24px;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:18px 0;min-width:0;width:100%;background:none}.related-item:last-child{border-bottom:0}.related-item .ruby-line{flex-shrink:0}.related-meaning{font-size:16px;text-align:right;line-height:2}.related-section{padding-top:24px}.related-section .section-title{margin-bottom:4px}
.related-list{gap:12px}.related-item,.related-item:last-child{justify-content:flex-start;direction:ltr;border:1px solid var(--line);border-radius:9px;padding:18px 22px;gap:28px}.related-item .ruby-line{order:-1}.related-meaning{max-width:calc(100% - 140px)}
.character-info{display:flex;flex-direction:column;gap:30px}.fact-list{display:flex;flex-direction:column;gap:0}.fact-list>div{justify-content:space-between;padding:19px 0}.fact-list dt{font-size:14px}.fact-list dd{font-size:19px}.fact-list .zh{font-size:40px}.character-components{justify-content:flex-start;background:none;min-height:85px;font-size:54px;border-radius:0}.character-links{margin-top:26px}.small-character-list{display:flex;flex-direction:column;gap:0}.small-character{border:0;border-bottom:1px solid var(--line);border-radius:0;padding:17px 0;gap:20px}.small-character .zh{font-size:44px}.small-character .latin{font-size:16px;line-height:1.25}.character-selector button{font-size:43px;min-width:78px;min-height:76px}.character-selector{gap:16px;margin-bottom:30px}
.writer-wrap{width:100%;max-width:580px;margin-inline:auto}.writer-canvas{width:100%;max-width:480px;height:auto;aspect-ratio:1;border-radius:14px;flex:none}.writer-controls{margin-top:25px;gap:12px}.writer-controls .button{min-height:46px}.writer-status{font-size:14px;margin-top:20px}
.setting-row:not(.toggle-row){flex-direction:column;align-items:stretch;gap:20px}.setting-row:not(.toggle-row) .segments{width:100%;max-width:560px}.settings{max-width:760px;margin-inline:auto}.palette-settings{padding:25px 0 8px}.palette-inputs{display:flex;gap:20px;justify-content:flex-end}.palette-inputs label{display:flex;align-items:center;gap:7px;flex-direction:column;font:14px Century}.palette-inputs input{width:44px;height:38px;border:1px solid var(--line);padding:4px;background:white;border-radius:8px;cursor:pointer}.palette-settings .text-button{margin-top:9px;font-size:13px}
@media(max-width:900px){.word-list{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:760px){:root{--cell:144px;--pinyin:23px;--ruby-cell:64px;--ruby-font:64px;--ruby-latin:14px;--ruby-arabic:20px;--ruby-gap:12px}.hero-arabic{font-size:23px}.example-translation{font-size:18px}.sense-card{padding:23px 20px 18px}.full-example{padding:22px 20px}.word-list{grid-template-columns:repeat(3,minmax(0,1fr))}.compact-ruby{--ruby-cell:52px;--ruby-font:39px;--ruby-latin:11.5px;--ruby-arabic:17px;--ruby-gap:9px}.related-item .compact-ruby{--ruby-cell:57px;--ruby-font:43px;--ruby-latin:12px;--ruby-arabic:18px}.related-meaning{font-size:14px}.word-list button{padding:17px 2px}.example-speech{padding-top:10px}.ruby-line{column-gap:12px;row-gap:24px}.compact-ruby{gap:0}.writer-canvas{max-width:480px}.palette-inputs{justify-content:space-between;gap:10px}}
@media(max-width:440px){:root{--cell:132px;--pinyin:22px}.hero-arabic{font-size:22px}.word-cell{gap:11px}.word-area{padding-block:20px 28px}.word-audio{padding-inline:0}.sense-card{padding:20px 16px 17px}.sense-card h2{margin-bottom:18px}.example-translation{font-size:17px}.sense-action{margin-top:15px}.full-example{padding:20px 16px}.related-item{flex-basis:auto;gap:14px}.related-item .compact-ruby{--ruby-cell:53px;--ruby-font:42px;--ruby-latin:12px}.word-list{grid-template-columns:repeat(2,minmax(0,1fr))}.word-list .compact-ruby{--ruby-cell:58px;--ruby-font:43px;--ruby-latin:12px}.word-list button{min-height:112px}.character-selector button{min-width:72px;min-height:70px}.fact-list dt{font-size:13px}.fact-list dd{font-size:16px}.fact-list .zh{font-size:37px}.setting-row h2,.setting-row label{font-size:17px}.writer-controls .button{padding-inline:14px}.writer-status{font-size:13px}}

/* Saved writing form, blue settings, and a compact symbol reference. */
:root{--control-blue:#376d9c}
.settings .segments button[aria-pressed=true],.settings .switch:checked{background:var(--control-blue);color:#fff}
.settings button:focus-visible,.settings input:focus-visible{outline-color:var(--control-blue)}
#tab-settings[aria-selected=true]{color:var(--control-blue);border-bottom-color:var(--control-blue)}
.search-result .zh{font-family:Kaiti,Yuanti,sans-serif}
.character-summary{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);direction:ltr;align-items:center;gap:48px;max-width:920px;margin:0 auto 32px}
.character-portrait{font:400 clamp(160px,25vw,300px)/1 Kaiti,Yuanti,sans-serif;text-align:center;min-width:0;user-select:text}
.character-summary .fact-list{min-width:0}.character-summary .fact-list>div{padding:15px 0;gap:18px}.character-summary .fact-list dt{flex-shrink:0}.character-summary .fact-list dd{text-align:left;line-height:1.85}.character-summary .fact-list .standalone-reading{font:21px/1.25 Century,sans-serif}.character-summary .fact-list .zh{line-height:1.2}.character-summary .fact-list>div:last-child{border-bottom:0}
.character-sections{display:flex;flex-direction:column;gap:12px}
.character-section{border:1px solid var(--line);border-radius:10px;overflow:clip}
.character-section summary{display:flex;justify-content:space-between;align-items:center;gap:20px;list-style:none;cursor:pointer;padding:19px 24px;min-height:66px;font-size:16px;font-weight:500;touch-action:manipulation}
.character-section summary::-webkit-details-marker{display:none}.character-section summary:hover{background:#f8fafb}.character-section summary:focus-visible{outline:2px solid var(--control-blue);outline-offset:-4px;border-radius:9px}
.character-section summary svg{width:20px;height:20px;fill:none;stroke:var(--muted);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;transition:transform .18s ease;flex:none}.character-section[open] summary svg{transform:rotate(180deg)}
.character-section-body{padding:0 24px 22px}.character-section .character-components{flex-wrap:wrap;gap:18px}.character-section .small-character{direction:ltr;justify-content:flex-start;gap:26px}.character-section .small-character .ar{direction:rtl;text-align:right;font-size:14px;flex:1}.character-section .small-character:last-child{border-bottom:0}.character-section .note{margin:0;padding-top:5px}
@media(max-width:760px){.character-summary{gap:22px}.character-portrait{font-size:clamp(140px,28vw,220px)}.character-summary .fact-list>div{padding:14px 0;gap:12px}.character-summary .fact-list dd{font-size:16px}.character-summary .fact-list .zh{font-size:36px}.character-summary .fact-list .standalone-reading{font-size:18px}.character-section summary{padding:18px 20px}.character-section-body{padding:0 20px 20px}}
@media(max-width:440px){.character-summary{grid-template-columns:minmax(0,.85fr) minmax(0,1.2fr);gap:14px;margin-bottom:24px}.character-portrait{font-size:clamp(106px,33vw,145px)}.character-summary .fact-list dt{font-size:11px}.character-summary .fact-list dd{font-size:14px}.character-summary .fact-list>div{padding:12px 0;gap:8px}.character-summary .fact-list .zh{font-size:32px}.character-summary .fact-list .standalone-reading{font-size:16px}.character-section summary{font-size:15px;padding:17px 18px;min-height:62px}.character-section-body{padding:0 18px 18px}}
@media(prefers-reduced-motion:reduce){.character-section summary svg{transition:none}}

/* Reading metadata first; a single cycling speed button beside playback. */
.entry-details{justify-content:center;gap:14px 44px;margin:4px 0 28px;font-size:16px;text-align:center;min-height:48px}
.entry-details p{justify-content:center;gap:14px}.entry-details .zh{font-size:36px}.entry-details .value{font-size:17px}
.writer-controls{align-items:center;gap:12px}.writer-playback,.writer-secondary{display:flex;align-items:center;justify-content:center;gap:10px;direction:rtl;flex:none}
.writer-controls .button{height:48px;min-height:48px;white-space:nowrap}.writer-controls .speed-toggle{width:48px;min-width:48px;flex:0 0 48px;display:grid;place-items:center;padding:0;background:#f3f7fa;border-color:#d3dee8;border-radius:9px}.speed-toggle img{display:block;width:30px;height:30px;object-fit:contain}.writer-controls .speed-toggle:hover{background:#e7eff5;border-color:#93afc6}.speed-toggle:focus-visible{outline-color:var(--control-blue)}
@media(max-width:440px){.entry-details{font-size:14px;gap:10px 24px;margin:0 0 23px}.entry-details p{gap:10px}.entry-details .zh{font-size:32px}.entry-details .value{font-size:15px}.writer-controls{flex-direction:column;gap:10px}.writer-playback,.writer-secondary{gap:10px}}

/* Full HSK catalog. */
.same-form{font:inherit;color:var(--navy);font-size:17px}.character-summary .same-form{font:16px Kufi,sans-serif}
.word-audio{max-width:100%;flex-wrap:wrap;row-gap:25px}.word-audio.long-word{--cell:144px;--pinyin:23px}.word-audio.long-word .hero-arabic{font-size:21px}.pronunciation-lines{min-height:1em}
.character-selector{flex-wrap:wrap}.origin-note{font-size:16px;line-height:2.1;margin:0 0 12px}.origin-sources{font-size:12px;line-height:2;margin:10px 0 0;color:var(--control-blue)}
.measure-section{border-top:1px solid var(--line);padding:25px 0}.measure-list{display:flex;flex-wrap:wrap;gap:12px;direction:ltr}.measure-item{display:flex;align-items:center;justify-content:center;min-width:86px;padding:18px 15px;border:1px solid var(--line);border-radius:9px;background:#fff}.measure-item:hover{background:#f7fafc}
.catalog-filter{display:flex;align-items:center;gap:14px;margin-bottom:20px;font-size:14px}.catalog-filter select{border:1px solid var(--line);border-radius:9px;background:white;color:var(--navy);min-height:44px;padding:7px 13px;min-width:170px}.catalog-pages{display:flex;justify-content:center;align-items:center;gap:20px;margin-top:24px}.catalog-pages span{font:14px Century,sans-serif;color:var(--muted)}.word-shelf{scroll-margin-top:80px}.word-list button.long-entry{grid-column:span 2}.word-list .ruby-word{flex-wrap:wrap;justify-content:center}.word-list .ruby-line{max-width:100%}.writing-unavailable{padding:45px 24px;text-align:center;line-height:2;border:1px solid var(--line);border-radius:12px;color:var(--muted)}
@media(max-width:760px){.word-audio.long-word{--cell:min(132px,calc((100vw - 64px)/var(--hero-columns)));--pinyin:clamp(12px,3.7vw,22px)}.word-audio.long-word .hero-arabic{font-size:18px}.word-audio.long-word .word-cell{gap:10px}.word-audio.long-word .hero-hanzi{font-size:var(--cell)}.origin-note{font-size:14px}.measure-list{justify-content:flex-start}.same-form{font-size:15px}}
@font-face{font-family:HanziFallback;src:url('assets/yuanti-components.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap;unicode-range:U+2E80,U+2E8A,U+2E8D,U+2EBC}
@font-face{font-family:HanziFallback;src:url('assets/hanzi-components.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap;unicode-range:U+9FB6,U+9FB9,U+9FBA}
.hero-hanzi,.ruby-hanzi,.ruby-punctuation,.character-portrait,.character-components,.character-selector button,.fact-list .zh,.entry-details .zh,.search-result .zh{font-family:Kaiti,HanziFallback,Yuanti,sans-serif}

.traditional-variants{display:flex;justify-content:center;flex-wrap:wrap;gap:8px 28px;margin:-8px 0 24px}.traditional-variants p{display:flex;align-items:center;gap:12px;margin:0;font-size:14px;line-height:1.9}.traditional-variants .zh{font:32px/1.2 Kaiti,HanziFallback,Yuanti,sans-serif}
