/* Font viewer-specific styles — Version 7 */
.page-main{padding:30px clamp(18px,4vw,48px) 55px}
h1{font-size:24px;font-weight:500;margin:0 0 22px}
.showcase{display:grid;grid-template-columns:220px minmax(0,1fr);gap:20px;align-items:start}
.sidebar{border:1px solid #ddd;border-radius:6px;padding:14px;background:#fafafa;position:sticky;top:12px;max-height:calc(100vh - 24px);display:flex;flex-direction:column;min-height:0}
.sidebar h2{font-size:16px;font-weight:600;margin:0 0 12px}
.font-list{display:flex;flex-direction:column;gap:5px;overflow-y:auto;overscroll-behavior:contain;min-height:0;scrollbar-gutter:stable}
.font-choice{border:1px solid transparent;border-radius:4px;background:transparent;text-align:left;padding:12px 10px;font-size:24px;cursor:pointer;color:#222;overflow-wrap:anywhere}
.font-choice:hover{background:#ececec}
.font-choice[aria-pressed="true"]{background:#e8f2ff;border-color:#3297f5}
.font-choice:focus-visible,.weight-choice:focus-visible,.reset:focus-visible{outline:2px solid #1688e9;outline-offset:2px}
.preview-card{border:1px solid #ddd;border-radius:6px;padding:20px;min-width:0}
.font-label{text-align:center;color:#777;font-size:13px;letter-spacing:1.4px;margin:3px 0 10px}
.preview-row{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:10px}
.preview-spacer{width:44px;height:44px;visibility:hidden}
.editable{min-width:0;min-height:70px;text-align:center;font-size:44px;line-height:1.4;white-space:pre-wrap;overflow-wrap:anywhere;outline:none;padding:5px;border-bottom:1px solid transparent}
.editable:hover,.editable:focus{border-bottom-color:#3297f5}
.reset{align-self:center;border:0;background:none;color:#888;font-size:28px;cursor:pointer;padding:8px}
.reset:hover{color:#333}
.hint{text-align:center;color:#999;font-size:12px;margin:4px 0 15px}
.weight-row{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;margin:0 0 20px}
.weight-label{font-size:13px;color:#666}
.weight-choice{border:1px solid #ccc;border-radius:4px;background:#fff;padding:7px 14px;cursor:pointer}
.weight-choice[aria-pressed="true"]{background:#e8f2ff;border-color:#3297f5}
.weight-row[hidden]{display:none!important}
.character-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:2px;background:#ddd;border:2px solid #ddd}
.character{background:white;aspect-ratio:1.65;display:flex;align-items:center;justify-content:center;position:relative;font-size:clamp(19px,3.5vw,43px);cursor:zoom-in;transition:transform .15s ease;min-width:0}
.character:hover,.character.selected{transform:scale(1.7);z-index:10;box-shadow:0 3px 12px #0004}
.character-text{display:block;line-height:1;transition:transform .15s ease;white-space:nowrap}
.character:hover .character-text,.character.selected .character-text{transform:scale(1.3)}
.character.selected{outline:3px solid #2196f3;outline-offset:-3px}
.character.selected:hover{cursor:zoom-out}
.character:focus-visible{outline:3px solid #2196f3;outline-offset:-3px}
.disclaimer{font-size:12px;color:#777;line-height:1.5;margin:18px 2px 0}
@media(max-width:700px){.sidebar{position:static;max-height:250px}.font-list{overflow-y:auto;flex-direction:column;flex-wrap:nowrap}.showcase{grid-template-columns:1fr;gap:14px}.sidebar{padding:10px}.font-list{flex-direction:column;flex-wrap:nowrap}.font-choice{font-size:20px;padding:8px 12px}.preview-card{padding:12px}.editable{font-size:clamp(26px,6vw,44px)}.character{font-size:clamp(16px,5vw,32px)}}
@media(prefers-reduced-motion:reduce){.character,.character-text{transition:none}}
