@font-face{font-family:"Source Han Serif SC";src:local("Source Han Serif SC"),url(../assets/fonts/source-han-serif/SourceHanSerifCN-Regular.otf) format("opentype"),url(./assets/fonts/source-han-serif/SourceHanSerifCN-Regular.otf) format("opentype"),url(assets/fonts/source-han-serif/SourceHanSerifCN-Regular.otf) format("opentype"),url(./public/assets/fonts/source-han-serif/SourceHanSerifCN-Regular.otf) format("opentype"),url(./SourceHanSerifCN-Regular-C9WdYT25.otf) format("opentype");font-display:swap;font-style:normal;font-weight:400}@font-face{font-family:"Source Han Serif SC";src:local("Source Han Serif SC"),url(../assets/fonts/source-han-serif/SourceHanSerifCN-Bold.otf) format("opentype"),url(./assets/fonts/source-han-serif/SourceHanSerifCN-Bold.otf) format("opentype"),url(assets/fonts/source-han-serif/SourceHanSerifCN-Bold.otf) format("opentype"),url(./public/assets/fonts/source-han-serif/SourceHanSerifCN-Bold.otf) format("opentype"),url(./SourceHanSerifCN-Bold-D5BqHzl8.otf) format("opentype");font-display:swap;font-style:normal;font-weight:700}@font-face{font-family:"Source Han Serif TW";src:local("Source Han Serif TW"),url(../assets/fonts/source-han-serif/SourceHanSerifTW-Regular.otf) format("opentype"),url(./assets/fonts/source-han-serif/SourceHanSerifTW-Regular.otf) format("opentype"),url(assets/fonts/source-han-serif/SourceHanSerifTW-Regular.otf) format("opentype"),url(./public/assets/fonts/source-han-serif/SourceHanSerifTW-Regular.otf) format("opentype"),url(./SourceHanSerifTW-Regular-CKTujEeD.otf) format("opentype");font-display:swap;font-style:normal;font-weight:400}@font-face{font-family:"Source Han Serif TW";src:local("Source Han Serif TW"),url(../assets/fonts/source-han-serif/SourceHanSerifTW-Bold.otf) format("opentype"),url(./assets/fonts/source-han-serif/SourceHanSerifTW-Bold.otf) format("opentype"),url(assets/fonts/source-han-serif/SourceHanSerifTW-Bold.otf) format("opentype"),url(./public/assets/fonts/source-han-serif/SourceHanSerifTW-Bold.otf) format("opentype"),url(./SourceHanSerifTW-Bold-Ce8AWvU8.otf) format("opentype");font-display:swap;font-style:normal;font-weight:700}@font-face{font-family:"Source Han Serif HK";src:local("Source Han Serif HK"),local("Source Han Serif TC"),url(../assets/fonts/source-han-serif/SourceHanSerifTC-Regular.otf) format("opentype"),url(./assets/fonts/source-han-serif/SourceHanSerifTC-Regular.otf) format("opentype"),url(assets/fonts/source-han-serif/SourceHanSerifTC-Regular.otf) format("opentype"),url(./public/assets/fonts/source-han-serif/SourceHanSerifTC-Regular.otf) format("opentype"),url(./SourceHanSerifTC-Regular-W5f_XGg8.otf) format("opentype");font-display:swap;font-style:normal;font-weight:400}@font-face{font-family:"Source Han Serif HK";src:local("Source Han Serif HK"),local("Source Han Serif TC"),url(../assets/fonts/source-han-serif/SourceHanSerifTC-Bold.otf) format("opentype"),url(./assets/fonts/source-han-serif/SourceHanSerifTC-Bold.otf) format("opentype"),url(assets/fonts/source-han-serif/SourceHanSerifTC-Bold.otf) format("opentype"),url(./public/assets/fonts/source-han-serif/SourceHanSerifTC-Bold.otf) format("opentype"),url(./SourceHanSerifTC-Bold-Cau5FMrc.otf) format("opentype");font-display:swap;font-style:normal;font-weight:700}:root{color-scheme:light;--ink: #241b17;--muted: #786a5e;--line: #d5b69b;--paper: #fbf1df;--paper-deep: #eed8b9;--red: #b2211f;--blue: #244b65;--green: #2e6657;--shadow: rgba(44, 27, 14, .16);--serif-sc: "Source Han Serif SC", "Noto Serif SC", "Songti SC", SimSun, serif;--serif-hk: "Source Han Serif HK", "Source Han Serif TC", "Noto Serif HK", "Noto Serif TC", "Songti TC", serif;--serif-tw: "Source Han Serif TW", "Source Han Serif TC", "Noto Serif TC", "Songti TC", serif;--app-serif: var(--serif-sc);font-family:var(--app-serif)}:root:lang(zh-HK),:root:lang(zh-MO),[lang=zh-HK],[lang=zh-MO]{--app-serif: var(--serif-hk)}:root:lang(zh-TW),[lang=zh-TW]{--app-serif: var(--serif-tw)}*{box-sizing:border-box}body{margin:0;min-height:100vh;color:var(--ink);background:linear-gradient(90deg,rgba(255,255,255,.36) 1px,transparent 1px) 0 0 / 28px 28px,linear-gradient(#754f2f12,#754f2f12),#e4d5bd}button,select,textarea{font:inherit}button,select{min-height:42px;border:1px solid #9c7d5f;border-radius:6px;color:var(--ink);background:#fffaf0}button{cursor:pointer;padding:0 15px;transition:box-shadow .14s ease,background .14s ease,border-color .14s ease,color .14s ease}button:hover{box-shadow:0 0 0 3px #b2211f24,0 0 18px #b2211f33}button.primary{color:#fff8ec;border-color:#7f1715;background:var(--red)}.quick-jumps{position:fixed;right:22px;bottom:22px;z-index:20;display:grid;gap:10px;opacity:0;pointer-events:none;transform:translateY(12px);transition:opacity .14s ease,transform .14s ease}.quick-jumps.is-visible{opacity:1;pointer-events:auto;transform:translateY(0)}.jump-button.is-hidden{display:none}.jump-button{display:grid;place-items:center;width:48px;height:48px;padding:0;border:2px solid #7f1715;border-radius:50%;color:#fff8ec;background:var(--red);box-shadow:0 12px 28px var(--shadow);font-family:var(--app-serif);font-size:22px;font-weight:700;line-height:1;text-align:center}textarea{width:100%;min-height:210px;resize:vertical;border:1px solid var(--line);border-radius:6px;padding:14px;line-height:1.8;color:var(--ink);background:#fffaf0db}.app-shell{min-height:100vh;padding:28px}.workbench{width:min(1280px,100%);margin:0 auto}.masthead{position:relative;display:flex;align-items:flex-end;justify-content:space-between;gap:20px;min-height:118px;padding:20px 0 22px}.masthead>div:first-child{min-width:0}.eyebrow{margin:0 0 8px;color:var(--blue);font-size:13px;letter-spacing:0;text-transform:uppercase}h1,h2{margin:0;letter-spacing:0}h1{font-size:clamp(32px,5vw,62px);line-height:1.06;white-space:nowrap}h2{font-size:20px}.stamp{position:absolute;right:0;bottom:22px;display:grid;place-items:center;width:112px;height:112px;border:4px double var(--red);border-radius:50%;color:var(--red);font-weight:700;transform:rotate(-10deg);white-space:nowrap;z-index:2}.tool-grid{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:18px;align-items:stretch}.panel{border:1px solid rgba(98,64,39,.22);border-radius:8px;padding:18px;background:#fbf1dfe0;box-shadow:0 18px 46px var(--shadow)}.input-panel{container-type:inline-size}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}.mode-tabs{display:grid;grid-template-columns:1fr 1fr;min-width:220px;border:1px solid #9c7d5f;border-radius:6px;overflow:hidden}.tab{min-height:38px;border:0;border-radius:0;box-shadow:none}.tab:hover{box-shadow:inset 0 0 0 2px #b2211f2e,0 0 18px #244b652e}.tab.is-active{color:#fff8ec;background:var(--blue);box-shadow:inset 0 0 0 2px #fff8ec29,0 0 18px #244b6547}.field-label{display:block;margin:10px 0 6px;color:var(--muted);font-size:14px}.field-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:10px 0 6px}.field-row .field-label{display:flex;align-items:center;min-height:30px;margin:0;font-size:16px;line-height:1}.corpus-select{width:min(220px,48%);min-width:150px;min-height:30px;height:30px;font-size:14px}.controls{display:grid;grid-template-columns:minmax(0,1fr) repeat(3,42px);gap:10px;align-items:center;margin-top:12px}.controls>#strategy{width:100%;min-width:0}.han-conversion-control,.icon-toggle-control,.variant-annotation-control{display:flex;align-items:center;width:42px;height:42px}@container (max-width: 470px){.controls{grid-template-columns:repeat(3,42px) minmax(0,1fr)}.controls>#strategy{grid-column:1 / -1}}.han-conversion-button,.icon-toggle-button{display:grid;place-items:center;width:42px;height:42px;min-height:42px;padding:0;border:1px solid #9c7d5f;border-radius:6px;background:#fffaf0}.icon-toggle-button[aria-pressed=true]{border-color:#7f1715;background:#fff4df;box-shadow:inset 0 0 0 2px #b2211f1f}.han-conversion-icon,.icon-toggle-image{display:block;width:34px;height:34px;padding:5px;pointer-events:none}.toggle{display:flex;align-items:center;gap:8px;flex:0 0 auto;min-height:42px;white-space:nowrap}.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}#pasteClipboard{color:#fff8ec;background:var(--blue);border-color:#244b65b3}#pasteClipboard:hover{box-shadow:0 0 0 3px #244b6524,0 0 18px #244b6533}.summary{color:var(--muted);font-size:14px}.alert{margin-bottom:12px;border:1px solid rgba(178,33,31,.42);border-radius:6px;padding:9px 12px;color:var(--red);background:#b2211f14;font-weight:700}.alert.is-hidden{display:none}.code-output,.reverse-output{min-height:86px;max-height:260px;overflow-y:auto;overflow-x:hidden;border:1px dashed var(--line);border-radius:6px;padding:14px;background:#fffaf0ad}.code-output{display:flex;flex-wrap:wrap;gap:8px;align-content:flex-start}.code-output.is-decoded{display:block;white-space:pre-wrap;font-family:var(--app-serif);font-size:clamp(22px,3cqw,32px);line-height:2.1}.decoded-char{position:relative;display:inline-block;min-width:1em;padding-bottom:0;text-align:center}.decoded-char.has-emphasis:after{content:"";position:absolute;left:50%;bottom:.3em;width:.16em;aspect-ratio:1 / 1;border-radius:999px;background:#111;transform:translate(-50%)}.decoded-char.has-proper-name:before{content:"";position:absolute;left:.12em;right:.12em;bottom:.33em;height:.07em;background:#111}.code-chip{display:grid;grid-template-columns:auto 1fr;gap:5px;align-items:baseline;min-width:92px;border:1px solid rgba(36,75,101,.24);border-radius:6px;padding:8px 9px;background:#fffaf0}.code-chip .char{display:grid;place-items:center;width:34px;height:34px;border:1px solid rgba(178,33,31,.28);background:#fffaf0bd;font-family:var(--app-serif);font-size:28px;line-height:1}.code-chip .code{font-family:Courier New,monospace;font-weight:700}.code-chip .code.is-mainland,.note.is-mainland,.candidate.is-mainland,.paper-code.is-mainland,.paper-code-alt.is-mainland{color:var(--red)}.code-chip .code.is-taiwan,.note.is-taiwan,.candidate.is-taiwan,.paper-code.is-taiwan,.paper-code-alt.is-taiwan{color:var(--blue)}.code-chip.variant{border-color:#b2211f8c}.code-chip.missing{opacity:.6}.note{grid-column:1 / -1;font-family:KaiTi,STKaiti,cursive;font-size:13px}.reverse-output{margin-top:12px;line-height:1.9}.reverse-output.is-hidden{display:none}.reverse-row{display:flex;flex-wrap:wrap;gap:8px;padding:4px 0}.reverse-code{min-width:54px;color:var(--blue);font-family:Courier New,monospace;font-weight:700}.candidate{padding:0 6px;border-radius:4px;font-weight:700;background:#2e66571f}.telegram-paper{position:relative;container-type:inline-size;margin-top:20px;padding:18px;border:2px solid var(--red);background:linear-gradient(135deg,#ffffff57,#fff0),var(--paper);box-shadow:0 22px 52px var(--shadow)}.paper-bar,.paper-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;color:var(--red);font-weight:700}.quote-line{margin:10px 0 14px;color:var(--green);text-align:center;font-weight:700}.paper-grid{display:block;width:100%;overflow:hidden}.paper-row{display:grid;grid-template-columns:repeat(10,minmax(0,1fr)) clamp(28px,5cqw,52px);width:100%;border-top:1px solid var(--red);border-left:1px solid var(--red)}.paper-row+.paper-row{border-top:0}.paper-cell{position:relative;display:grid;grid-template-rows:clamp(24px,4.8cqw,40px) auto;min-width:0;min-height:0;border-right:1px solid var(--red);border-bottom:1px solid var(--red);padding:0;background:#fffaf075}.paper-cell .paper-char{position:relative;display:grid;place-items:center;aspect-ratio:1 / 1;width:100%;min-width:0;border-top:1px solid rgba(178,33,31,.62);font-family:var(--app-serif);font-size:clamp(22px,7.1cqw,92px);line-height:1}.paper-cell .paper-char.has-emphasis:after{content:"";position:absolute;left:50%;bottom:3%;width:clamp(4px,.7cqw,9px);aspect-ratio:1 / 1;border-radius:999px;background:#111;transform:translate(-50%)}.paper-cell .paper-char.has-proper-name:before{content:"";position:absolute;left:18%;right:18%;bottom:2%;height:clamp(2px,.35cqw,4px);background:#111}.paper-cell .paper-char.has-proper-name.proper-join-before:before{left:0}.paper-cell .paper-char.has-proper-name.proper-join-after:before{right:0}.paper-code-box{display:grid;grid-template-rows:1fr 1fr;align-items:center;width:100%;height:clamp(24px,4.8cqw,40px);min-width:0;padding:1px 3px}.paper-code-box.is-single{grid-template-rows:1fr}.paper-code-box.is-single .paper-code-alt{display:none}.paper-cell .paper-code,.paper-code-alt{display:block;min-width:0;overflow:hidden;text-align:center;text-overflow:clip;white-space:nowrap;font-family:Courier New,monospace;font-size:clamp(10px,1.8cqw,23px);font-weight:700;line-height:1}.paper-code-alt{font-size:clamp(9px,1.6cqw,21px)}.paper-count{display:flex;align-items:flex-end;justify-content:center;padding:0 4px 6px;border-right:1px solid var(--red);border-bottom:1px solid var(--red);color:var(--red);font-family:Courier New,monospace;font-size:clamp(9px,1.4cqw,13px);font-weight:700}.paper-foot{margin-top:14px;align-items:center;flex-wrap:nowrap;line-height:1.7}.paper-foot span{min-width:0}@media (max-width: 860px){.app-shell{padding:16px}.panel-head{align-items:flex-start;flex-direction:column}.masthead{min-height:100px;padding-right:0}.stamp{width:88px;height:88px;bottom:22px}.tool-grid{grid-template-columns:1fr}.mode-tabs{width:100%;min-width:0}.field-row{align-items:stretch;flex-direction:column}.corpus-select{width:100%}}
