.semantic-card *{box-sizing:border-box}
.semantic-card{background:#f5f7f3;color:#20352e;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:16px;line-height:1.5}
.semantic-card{margin:0}
.semantic-card button,.semantic-card input,.semantic-card select{font:inherit;color:inherit}
.semantic-card button,.semantic-card a,.semantic-card input,.semantic-card select{-webkit-tap-highlight-color:transparent}
.semantic-card button,.semantic-card a{touch-action:manipulation}
.semantic-card a{color:#276951;text-underline-offset:3px}
.semantic-card button{cursor:pointer}
.semantic-card button:focus-visible,.semantic-card a:focus-visible,.semantic-card input:focus-visible,.semantic-card select:focus-visible{outline:3px solid #159cc1;outline-offset:3px}
.semantic-card [lang=ja]{font-family:LibraryJP,'Hiragino Sans','Yu Gothic',sans-serif;font-style:normal}
.semantic-card button{border:1px solid #d4ded6;background:#fff;border-radius:12px;padding:10px 14px;min-height:44px}
.semantic-card .quiet{background:transparent;border:0;color:#56685f;font-size:.86rem}
.semantic-card .mast{height:72px;padding:12px max(18px,env(safe-area-inset-right));border-bottom:1px solid #dfe5de;display:flex;align-items:center;justify-content:space-between;background:#f5f7f3}
.semantic-card .brand{display:flex;gap:10px;align-items:center;text-decoration:none;font-weight:700;color:#254e3c}
.semantic-card .brand small{font-weight:400;font-size:.77rem;display:block;color:#78847c;line-height:1.1}
.semantic-card main{max-width:1020px;margin:auto;padding:22px 18px 60px}
.semantic-card h1,.semantic-card h2,.semantic-card h3,.semantic-card p{margin-top:0}
.semantic-card h1{font-size:1.8rem;line-height:1.2;letter-spacing:-.05em;margin-bottom:8px}
.semantic-card h2{font-size:1.1rem;letter-spacing:-.02em;margin-bottom:12px}
.semantic-card h3{font-size:.9rem}
.semantic-card p{margin-bottom:12px}
.semantic-card .muted,.semantic-card .meta{color:#748078}
.semantic-card .meta{font-size:.78rem}
.semantic-card .eyebrow{text-transform:uppercase;font-size:.66rem;letter-spacing:.14em;font-weight:700;color:#708477;margin:0 0 8px}
.semantic-card .intro{max-width:540px;color:#66796d;font-size:.93rem;margin-bottom:24px}
.semantic-card .search{width:100%;border:1px solid #d8e2d8;background:#fff;border-radius:14px;padding:15px 16px;font-size:1rem;box-shadow:0 3px 10px #203c2b03}
.semantic-card .filters{display:flex;gap:10px;margin:12px 0 18px}
.semantic-card .filters select{min-width:0;max-width:50%;flex:1;background:#fff;border:1px solid #d8e2d8;border-radius:10px;padding:11px 9px;font-size:.84rem}
.semantic-card .results-line{font-size:.78rem;display:flex;justify-content:space-between;color:#738278;margin:12px 0}
.semantic-card .grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(67px,1fr));gap:7px}
.semantic-card .tile{padding:6px 3px;min-height:88px;border-radius:12px;min-width:0;display:flex;align-items:center;flex-direction:column;justify-content:center;text-decoration:none;background:#fff;border:1px solid #dce4db;color:#254e3c;position:relative}
.semantic-card .tile .symbol{font-size:2rem;line-height:1.5}
.semantic-card .tile small{font-size:.6rem;max-width:100%;text-align:center;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:#758178;padding:0 3px}
.semantic-card .tile svg{width:33px;height:39px;display:block}
.semantic-card .tile .known{width:5px;height:5px;position:absolute;top:7px;right:7px;background:#339c87;border-radius:50%}
.semantic-card .more{display:block;margin:22px auto}
.semantic-card .back-row{display:flex;justify-content:space-between;align-items:center;margin:-8px -8px 16px}
.semantic-card .back-row button{padding:8px}
.semantic-card .pager{display:flex;align-items:center;gap:3px}
.semantic-card .pager span{font-size:.72rem;color:#738178}
.semantic-card .pager button{font-size:1.2rem}
.semantic-card .card-head{display:flex;justify-content:space-between;gap:15px;align-items:start;margin-bottom:18px}
.semantic-card .card-head h1{font-size:2.15rem;letter-spacing:-.045em;margin:0}
.semantic-card .type-pill{border:1px solid #ceddce;border-radius:99px;font-size:.68rem;padding:5px 9px;white-space:nowrap;color:#657b69;margin-top:5px}
.semantic-card .meanings{font-size:1rem;color:#4e6256;margin:5px 0 0}
.semantic-card .content-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
.semantic-card .panel{min-width:0;background:#fff;border:1px solid #dde5db;border-radius:20px;padding:20px}
.semantic-card .symbol-row{display:grid;grid-template-columns:minmax(0,1fr) 90px;align-items:center;gap:16px;max-width:460px;margin:auto}
.semantic-card .hero-svg{width:100%;max-width:230px;display:block;margin:auto;aspect-ratio:1}
.semantic-card .hero-svg path{cursor:pointer}
.semantic-card .ghost{stroke:#e4e9e1;pointer-events:none}
.semantic-card .printed{text-align:center;border-left:1px solid #e3e9e0}
.semantic-card .printed .glyph{font-size:3.4rem;line-height:1.5;display:block;color:#284e3b}
.semantic-card .printed small{font-size:.64rem;color:#859081;display:block}
.semantic-card .source-only svg{display:block;width:160px;height:160px;margin:auto}
.semantic-card .player{display:flex;align-items:center;gap:8px;margin-top:12px}
.semantic-card .player button{font-size:.8rem;padding:8px 10px;min-height:40px}
.semantic-card .player input{flex:1;min-width:0;accent-color:#347c63}
.semantic-card .counter{font-variant-numeric:tabular-nums;font-size:.7rem;white-space:nowrap;color:#778575;min-width:37px}
.semantic-card .stroke-strip{display:flex;overflow-x:auto;gap:7px;margin:14px -3px 0;scrollbar-width:thin;padding:3px}
.semantic-card .stroke-step{flex:0 0 58px;padding:3px;border-radius:9px;min-height:76px}
.semantic-card .stroke-step svg{width:50px;height:50px;display:block}
.semantic-card .stroke-step small{font-size:.6rem;color:#788577}
.semantic-card .stroke-step.current{border-color:#32856a;background:#f1f7ef}
.semantic-card .parts{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}
.semantic-card .part{display:flex;align-items:center;gap:5px;border-left:3px solid var(--part);font-size:.8rem;padding:6px 9px;min-height:40px;color:var(--part)}
.semantic-card .part svg{width:30px;height:30px;flex:none}
.semantic-card .part small{color:#829084}
.semantic-card .residual{color:#859084;font-size:.75rem;margin:12px 0 0}
.semantic-card .memory{background:#f3f0f8;border:1px solid #e5dfef;border-radius:15px;padding:16px;color:#59476c;margin-top:18px}
.semantic-card .memory p{font-size:.88rem;line-height:1.7;margin-bottom:10px;white-space:pre-line}
.semantic-card .memory p:last-child{margin-bottom:0}
.semantic-card .memory .eyebrow{color:#8f759b}
.semantic-card .memory .inline-shape{width:1.5em;height:1.5em;vertical-align:middle;display:inline-block}
.semantic-card .memory .clamped{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:5;overflow:hidden}
.semantic-card .memory .quiet{color:#775689;padding:4px 0;min-height:32px}
.semantic-card .roles{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}
.semantic-card .role{color:#816095;border:1px solid #e2d7e9;background:#faf6fc;border-radius:8px;padding:5px 8px;font-size:.74rem}
.semantic-card .reading-help{font-size:.78rem;color:#778574}
.semantic-card .reading-tabs{display:flex;gap:8px;margin-bottom:12px}
.semantic-card .reading-tabs button{flex:1;padding:9px 7px;font-size:.83rem}
.semantic-card .reading-tabs button[aria-pressed=true]{background:#254e3c;color:#fff;border-color:#254e3c}
.semantic-card .reading-group{border-top:1px solid #e6ebe3;padding-top:18px;margin-top:18px}
.semantic-card .reading-top{display:flex;justify-content:space-between;gap:10px;align-items:start}
.semantic-card .reading-sound{font-size:1.45rem;font-weight:650;color:var(--reading)}
.semantic-card .roman{font-size:.8rem;font-weight:400;color:#879085;margin-left:5px}
.semantic-card .onkun{font-size:.63rem;letter-spacing:.08em;text-transform:uppercase;border:1px solid currentColor;border-radius:5px;padding:2px 5px;color:var(--reading);display:inline-block}
.semantic-card .ending{color:#7b8478;font-size:.77rem;margin:5px 0 12px}
.semantic-card .ending [lang=ja]{color:#616c61}
.semantic-card .word{padding:13px 0;border-top:1px solid #edf0e9}
.semantic-card .word:first-child{border:0}
.semantic-card .word-top{display:flex;gap:10px;justify-content:space-between;align-items:center}
.semantic-card .word-written{font-size:1.4rem;line-height:1.8;font-weight:600;overflow-wrap:anywhere}
.semantic-card .word rt{font-size:.49em;font-weight:400}
.semantic-card .word p{font-size:.8rem;color:#60715f;margin:3px 0 0}
.semantic-card .word .word-reading{font-size:.84rem;color:#6f7e6e}
.semantic-card .frequency{font-size:.59rem;white-space:nowrap;border-radius:6px;padding:4px 6px;background:#eff2eb;color:#7b8575}
.semantic-card .frequency.very-common{background:#e6f2e7;color:#3d7954}
.semantic-card .frequency.common{background:#eff3de;color:#79833f}
.semantic-card .frequency.rare{background:#f5eee7;color:#977253}
.semantic-card .word-note{font-size:.66rem;color:#938474;display:block;margin-top:4px}
.semantic-card .empty-example{font-size:.78rem;color:#8b9387;margin-top:10px}
.semantic-card .word-more{font-size:.77rem;padding:7px 12px;min-height:36px;margin:8px 0}
.semantic-card .section-heading{display:flex;justify-content:space-between;align-items:center;gap:10px}
.semantic-card .source-status{font-size:.67rem;color:#8d886c}
.semantic-card .connections{display:flex;flex-wrap:wrap;gap:7px}
.semantic-card .connection{font-size:.8rem;padding:7px 9px}
.semantic-card .connection b{font-size:1.1rem;margin-right:6px}
.semantic-card .audit{color:#8a9083;font-size:.74rem;margin-top:14px}
.semantic-card .source-link{display:block;margin-top:18px;font-size:.74rem}
.semantic-card .footer-note{margin:24px 4px 0;color:#84907e;font-size:.72rem}
.semantic-card .app-link{display:block;text-align:center;padding:14px;background:#254e3c;border-radius:12px;color:#fff;text-decoration:none;font-size:.88rem;margin:16px 0 0}
.semantic-card .key-navigation{display:flex;gap:10px;margin-top:18px}
.semantic-card .key-navigation button{flex:1}
.semantic-card .loading{text-align:center;padding:50px 10px;color:#81917e}
dialog.semantic-card{max-width:540px;width:calc(100% - 24px);max-height:88dvh;border:1px solid #dce5d8;border-radius:22px;padding:18px;color:#20352e;background:#fcfdfa;overflow-x:hidden;box-shadow:0 15px 70px #18302640}
dialog.semantic-card::backdrop{background:#182f275e;backdrop-filter:blur(4px)}
.semantic-card .modal-top{display:flex;justify-content:space-between;align-items:center;color:#80907a;font-size:.75rem;margin-bottom:8px}
.semantic-card .close{border:0;background:none;font-size:1.5rem}
.semantic-card .modal-picture{display:flex;justify-content:center;gap:24px;align-items:center;margin:20px 0}
.semantic-card .modal-picture svg{width:120px;height:120px}
.semantic-card .modal-picture .glyph{font-size:4rem}
.semantic-card .modal-label{text-align:center;color:#909b88;font-size:.7rem}
.semantic-card .modal-meaning{color:#62705f;font-size:.9rem}
.semantic-card .modal-text{font-size:.86rem;line-height:1.7;color:#6d616f;white-space:pre-line}
.semantic-card .modal-text .inline-shape{display:inline-block;width:1.6em;height:1.6em;vertical-align:middle}
.semantic-card .source-list{padding:0;list-style:none}
.semantic-card .source-list li{padding:12px 0;border-bottom:1px solid #e1e8dc;font-size:.8rem}
.semantic-card .source-list span{display:block;color:#8b9383;font-size:.7rem;margin-top:5px}
.semantic-card .coverage{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:18px 0}
.semantic-card .coverage div{background:#f0f4ec;padding:14px;border-radius:12px;font-size:.72rem;color:#7c8b72}
.semantic-card .coverage b{display:block;color:#375b3e;font-size:1.5rem}
.semantic-card .sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.semantic-card .error{background:#f8efe7;padding:18px;border-radius:14px}
.semantic-card .tooltip-note{font-size:.75rem;color:#84907e}
.semantic-card .match-detail{font-size:.7rem;color:#8e9986;margin:12px 0}
.semantic-card .matched svg{width:150px;height:150px;display:block;margin:auto}
@media(min-width:760px){.semantic-card .content-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}
.semantic-card .readings-panel{grid-column:2;grid-row:1 / span 3}
.semantic-card .grid{grid-template-columns:repeat(auto-fill,minmax(82px,1fr))}
.semantic-card .panel{padding:24px}
.semantic-card main{padding-top:32px}
.semantic-card .card-head h1{font-size:2.6rem}
.semantic-card .symbol-row{grid-template-columns:minmax(0,1fr) 96px}
.semantic-card .hero-svg{max-width:248px}
.semantic-card .span-full{grid-column:1 / -1}}
@media(prefers-reduced-motion:reduce){.semantic-card *{scroll-behavior:auto!important}
.semantic-card svg path{animation:none!important}}
.semantic-card .inline-shape svg{width:100%;height:100%;display:block}
.semantic-card .source-only svg{max-width:100%;height:auto}
.semantic-card .modal-picture{gap:16px}
.semantic-card .modal-picture>svg{max-width:calc((100% - 16px)/2)}
.semantic-card .word-top>*{min-width:0}
.semantic-card .printed svg{max-width:100%}
.semantic-card .part>span{min-width:0;overflow-wrap:anywhere}
.semantic-card{background:transparent;color:#20352e;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;line-height:1.5;font-size:16px;padding:0;min-width:0}.semantic-card [lang=ja]{font-family:DailyJP,'Hiragino Sans','Yu Gothic',sans-serif}.semantic-card .card-head{padding:8px 2px 0}.semantic-card .card-head h1{font-family:inherit;font-size:2rem;font-weight:700}.semantic-card .meanings{font-family:inherit;font-size:1rem;line-height:1.6}.semantic-card .panel{box-shadow:none}.semantic-card .printed .glyph{width:auto;height:auto;stroke:none;fill:currentColor}.semantic-card .writing{margin:0;padding:0;border:0;display:block}.semantic-card .word{position:relative;background:none;border-radius:0;box-shadow:none;min-width:0}.semantic-card .word>p{font-family:inherit;font-size:.8rem;line-height:1.5}.semantic-card .word .speak-button{margin:5px 0 0;width:34px;height:34px;font-size:16px}.semantic-card .word-written{font-family:DailyJP,sans-serif;font-weight:600}.semantic-card .word .word-reading{display:inline;font-size:.84rem}.semantic-card .reading-help{font:inherit;font-size:.78rem;line-height:1.6;color:#748174;margin:0 0 14px}.semantic-card .reading-group{position:relative}.semantic-card .current-reading{border-left:3px solid var(--reading);padding-left:12px;background:#fafbf7;border-radius:7px}.semantic-card .current-target{font-size:.6rem;color:#6b7b68;white-space:nowrap;align-self:center}.semantic-card .reading-top{flex-wrap:wrap}.semantic-card .sc-expand{width:100%;font-size:.85rem;text-align:left;display:flex;justify-content:space-between;align-items:center;padding:14px 16px}.semantic-card .source-loading{font-size:.78rem;color:#7f897a;margin:16px 4px}.semantic-card .sc-lookalikes:empty{display:none}.semantic-card .sc-lookalikes .compare-strip{margin-top:18px}.semantic-card .memory .inline-shape svg{width:100%;height:100%}.semantic-card .memory .source-link{color:#775689}.semantic-card .counter{line-height:1}.semantic-card .word-more{border-radius:10px}.semantic-card .player input{height:30px}.semantic-card .reading-tabs{margin-bottom:4px}.semantic-card .reading-tabs button{font-size:.8rem;min-width:0}.semantic-card .frequency{white-space:normal;text-align:right;max-width:140px;flex-shrink:0;line-height:1.4}.semantic-card .word-top{align-items:center}.semantic-card .printed small{line-height:1.5}.semantic-card .sc-other-words{max-width:100%}.semantic-card.semantic-modal{padding:18px;max-width:560px;width:calc(100% - 24px);max-height:90dvh;border:1px solid #dce5d8;background:#fcfdfa;border-radius:22px;overflow:auto}.semantic-modal .sc-modal-body>.semantic-card{font-size:14px}.semantic-modal .modal-top{position:sticky;top:-18px;z-index:3;background:#fcfdfa}.semantic-modal .modal-picture>svg{max-width:calc((100% - 16px)/2)}.semantic-modal .app-link{display:block;width:100%;white-space:normal}.semantic-modal .modal-text{font-family:inherit;font-style:normal}.semantic-modal .modal-text .inline-shape svg{max-width:100%;height:100%}.semantic-card .reading-group .roman{font-family:inherit}.semantic-card .memory .clamped{max-height:none}.semantic-card .sc-strokes .stroke-step{display:flex;flex-direction:column;align-items:center}.semantic-card .sc-strokes .stroke-step small{display:block}.semantic-card .role,.semantic-card .part{line-height:1.4}.semantic-card .type-pill{font-family:inherit}.semantic-card .onkun{font-family:inherit}.semantic-card .modal-picture .modal-svg{width:120px;height:120px}.semantic-card .modal-picture .ghost path{stroke:#e4e9e1}.semantic-card button{font-family:inherit}.semantic-card .modal-text p{font:inherit}.semantic-card .content-grid{align-items:start}.semantic-card .sc-other-words h2{font-family:inherit}
@media(max-width:759px){.semantic-card .content-grid{grid-template-columns:minmax(0,1fr)}.semantic-card .readings-panel{grid-column:auto;grid-row:auto}.semantic-card .card-head h1{font-size:1.9rem}.semantic-card .panel{padding:18px}.semantic-card .symbol-row{grid-template-columns:minmax(0,1fr) 82px;gap:12px}.semantic-card .hero-svg{max-width:210px}.semantic-card .part{max-width:100%}.semantic-card .footer-note{line-height:1.6}.semantic-card .current-target{order:3}}
@media(min-width:760px){.semantic-modal .content-grid{grid-template-columns:minmax(0,1fr)}.semantic-modal .readings-panel{grid-column:auto;grid-row:auto}.semantic-card .sc-expand{grid-column:1/-1}}
.semantic-card .word{display:block;padding:13px 0;margin:0}.semantic-card .word>.speak-button{position:static;min-height:34px;min-width:34px}.semantic-card .readings-panel p{font-family:inherit}.semantic-card .word .roman{font-family:inherit}.semantic-card .card-head .eyebrow{font-family:inherit}.semantic-card .source-link{font-family:inherit}
.semantic-card .word>.word-reading,.semantic-card .word>.roman{display:inline}.semantic-card .word>.speak-button{display:inline-flex;vertical-align:middle;margin:0 0 0 8px}.semantic-card .word>.word-reading{line-height:2}.semantic-card .word>.roman{margin-left:5px}

.semantic-card .reading .speak-button{width:32px;height:32px;min-width:32px;min-height:32px;font-size:14px;vertical-align:middle;margin-left:6px}
