/* Original character archive; isolated from diary and commission components. */
.oc-intro{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:32px 0}
.oc-intro h2{font:600 clamp(22px,2.5vw,32px)/1.4 'Noto Serif SC',serif;margin:9px 0}
.oc-intro p{color:var(--text-dim);margin:0;font-size:14px}
.oc-count{font:500 44px/1 'Outfit',sans-serif;color:#a79bbf;white-space:nowrap}
.oc-count small{display:block;font:12px/2 'Noto Serif SC',serif;letter-spacing:.12em;margin-top:8px}
.oc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;padding-bottom:56px}
.oc-card{padding:0;min-width:0;overflow:hidden;text-align:left;font:inherit;color:var(--text);background:var(--panel);border:1px solid var(--border);border-radius:4px;transition:transform .2s,border-color .2s}
.oc-card:hover{transform:translateY(-5px);border-color:#b8adf0}
.oc-art{display:block;position:relative;overflow:hidden;aspect-ratio:1/1;background:#e9e6ef;border-bottom:1px solid var(--border)}
.oc-art img{position:absolute;max-width:none;height:auto;display:block}
.oc-sora .oc-art img{width:185%;left:-42%;top:0}
.oc-elio .oc-art{background:#dce7e1}
.oc-elio .oc-art img{width:153%;left:-24%;top:-10%}
.oc-yusen .oc-art{background:#f5efe6}
.oc-yusen .oc-art img{width:112%;left:-6%;top:-7%}
.oc-card-body{display:block;padding:23px}
.oc-kicker{display:block;font-size:11px;letter-spacing:.14em;color:var(--text-dim)}
.oc-card strong{display:block;font-size:27px;margin:9px 0}
.oc-summary{display:block;color:var(--text-dim);font-size:13px;line-height:1.9;min-height:3.8em}
.oc-card-link{display:flex;justify-content:space-between;margin-top:22px;padding-top:15px;border-top:1px solid var(--border);font-size:12px;letter-spacing:.05em}
#characterDialog{width:min(940px,calc(100vw - 40px));max-width:none;max-height:calc(100dvh - 40px);padding:0;border:1px solid #596078;border-radius:6px;background:#20283a;color:#f0eff6;overflow:auto;overscroll-behavior:contain}
#characterDialog::backdrop{background:rgba(10,14,25,.8);backdrop-filter:blur(5px)}
#characterDialog{margin:auto}
#characterDialog{margin:auto}
.oc-dialog-top{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:#20283a;border-bottom:1px solid #41495e;color:#beb4da;font:11px/1.4 'Outfit',sans-serif;letter-spacing:.16em}
.oc-close{width:44px;height:44px;border:1px solid #596078;background:transparent;color:#fff;border-radius:50%;font-size:20px}
.oc-profile{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}
.oc-profile-art{margin:0;padding:28px 20px;background:#ece9f0;display:flex;align-items:flex-start;justify-content:center}
.oc-profile-art img{display:block;max-width:100%;width:auto;height:auto;max-height:640px;object-fit:contain}
.oc-profile-text{padding:30px;min-width:0}
.oc-profile-text h2{font-size:30px;line-height:1.4;margin:0 0 8px;color:#fff}
.oc-profile-text h3{font-size:14px;margin:26px 0 10px;color:#d3c4f6;letter-spacing:.1em}
.oc-profile-text p{font-size:14px;line-height:1.95;color:#d1d5e0;margin:10px 0}
.oc-profile-text .oc-lead{color:#c1b4dc}
.oc-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;margin:24px 0;padding:20px 0;border-block:1px solid #41495e}
.oc-facts div{min-width:0}.oc-facts dt{font-size:11px;color:#aeb7cb;margin-bottom:5px}.oc-facts dd{font-size:14px;margin:0;overflow-wrap:anywhere}
.oc-tags{display:flex;flex-wrap:wrap;gap:8px}.oc-tags span{font-size:12px;border:1px solid #63607c;padding:4px 10px;border-radius:3px;color:#ddd2f5}
.oc-relations{padding:0;list-style:none;font-size:14px;color:#d1d5e0;line-height:2}
body:has(#characterDialog[open]){overflow:hidden}
@media(max-width:1000px){.oc-grid{gap:14px}.oc-card-body{padding:17px}.oc-summary{min-height:5.7em}}
@media(max-width:760px){.oc-intro{margin:24px 0;gap:12px}.oc-count{display:none}.oc-grid{grid-template-columns:1fr;gap:24px}.oc-art{aspect-ratio:1.15}.oc-summary{min-height:0}.oc-card-body{padding:22px}#characterDialog{width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}.oc-profile{grid-template-columns:1fr}.oc-profile-art{padding:20px}.oc-profile-art img{max-height:280px}.oc-profile-text{padding:24px}.oc-profile-text h2{font-size:25px}}
@media(prefers-reduced-motion:reduce){.oc-card{transition:none}.oc-card:hover{transform:none}}
