.characters-shell{--char-ink:#150a24;--char-purple:#6d2c8b;--char-pink:#d653c8;--char-cyan:#67d9de;--char-paper:#f7f3f8;background:var(--char-paper);color:#332a3b}.characters-wrap{width:min(1180px,100% - 32px);margin-inline:auto}.characters-hero{color:#e0d4e6;background:radial-gradient(circle at 78% 28%,#d653c842,#0000 28%),radial-gradient(circle at 8% 82%,#67d9de26,#0000 25%),linear-gradient(135deg,#150a24,#351342 58%,#171634);padding:22px 0 78px;position:relative;overflow:hidden}.characters-hero:after{content:"";background:linear-gradient(165deg,transparent 48%,var(--char-paper) 50%);height:36px;position:absolute;inset:auto 0 0}.characters-crumb{align-items:center;gap:8px;margin-bottom:44px;font-size:.75rem;display:flex}.characters-crumb a{color:#ded0e4}.characters-hero-grid{grid-template-columns:minmax(0,1.15fr) minmax(390px,.85fr);align-items:center;gap:55px;display:grid}.characters-kicker{font:700 .68rem var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:#9c42ad;margin:0 0 8px}.characters-hero .characters-kicker,.dimension-section .characters-kicker{color:#e987df}.characters-hero h1{color:#fff;max-width:720px;margin:0 0 18px;font-size:clamp(2.7rem,5.7vw,5rem);line-height:.95}.characters-lead{color:#e2d6e7;max-width:710px;font-size:clamp(1rem,1.6vw,1.17rem)}.spoiler-note{border-left:2px solid var(--char-cyan);color:#bdafc4;max-width:690px;padding-left:13px;font-size:.77rem}.hero-stats{gap:28px;margin-top:25px;display:flex}.hero-stats strong{color:#77dfe2;font:700 1.55rem var(--font-mono);display:block}.hero-stats span{color:#bcaec3;font-size:.66rem;display:block}.hero-cast{min-height:390px;position:relative}.hero-portrait{aspect-ratio:1;background:radial-gradient(circle at 50% 70%,#67d9de33,#0000 45%),#291638;border:1px solid #ffffff2e;border-radius:20px;width:190px;position:absolute;overflow:hidden;box-shadow:0 18px 40px #0000004d}.hero-portrait img{object-fit:contain;width:100%;height:100%}.hero-portrait span{color:#fff;background:#12091ccc;border-radius:5px;padding:4px 8px;font-size:.66rem;font-weight:700;position:absolute;bottom:9px;left:10px}.hero-portrait.p1{top:0;left:0;transform:rotate(-4deg)}.hero-portrait.p2{top:18px;right:0;transform:rotate(4deg)}.hero-portrait.p3{bottom:0;left:45px;transform:rotate(2deg)}.hero-portrait.p4{bottom:-6px;right:38px;transform:rotate(-3deg)}.category-nav{z-index:8;backdrop-filter:blur(12px);background:#f7f3f8f5;border-bottom:1px solid #d8cedd;position:sticky;top:0}.category-nav>div{scrollbar-width:none;gap:7px;padding-block:10px;display:flex;overflow-x:auto}.category-nav a{color:#43364b;white-space:nowrap;background:#fff;border:1px solid #d7cbdc;border-radius:999px;align-items:center;gap:7px;min-height:44px;padding:8px 12px;font-size:.72rem;text-decoration:none;display:flex}.category-nav span{color:#8e4b9c;font:700 .62rem var(--font-mono)}.characters-section{padding:66px 0;scroll-margin-top:70px}.section-head{justify-content:space-between;align-items:end;gap:25px;margin-bottom:25px;display:flex}.section-head>div{max-width:660px}.section-head h2,.relationship-grid h2,.source-grid h2{margin:0;font-size:clamp(1.8rem,3.6vw,3rem);line-height:1.02}.section-head>p{color:#65586b;max-width:520px;margin:0}.section-head.centered{text-align:center;justify-content:center}.featured-section,.key-section{background:#fff}.featured-grid{grid-template-columns:repeat(12,1fr);gap:13px;display:grid}.featured-card{background:#f9f6fa;border:1px solid #ded3e2;border-radius:14px;grid-column:span 5;grid-template-columns:150px 1fr;min-height:220px;display:grid;overflow:hidden}.featured-card.wide{grid-column:span 7}.featured-art{background:radial-gradient(circle at 50% 65%,#66d9de40,#0000 45%),linear-gradient(145deg,#482059,#241331);align-items:end;display:flex}.featured-art img{aspect-ratio:1;object-fit:contain;width:100%}.featured-card>div:last-child{padding:22px}.featured-card span,.role-badge,.record-meta span{font:700 .62rem var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:#8b4a99}.featured-card h3{margin:8px 0 6px;font-size:1.45rem}.featured-card p{color:#655a6b;font-size:.77rem}.featured-card a{font-size:.7rem;font-weight:700}.protagonist-section{background:#ece4ef}.protagonist-grid{grid-template-columns:1fr 1fr;gap:15px;display:grid}.protagonist-card{background:#fff;border:1px solid #d8cadd;border-radius:16px;grid-template-columns:210px 1fr;display:grid;overflow:hidden}.protagonist-card>img{object-fit:contain;background:radial-gradient(circle at 50% 70%,#d653c840,transparent 45%),var(--char-ink);width:100%;height:100%}.protagonist-card>div{padding:24px}.protagonist-card>div>span{font:700 .65rem var(--font-mono);color:#8c469c;text-transform:uppercase}.protagonist-card h3{margin:8px 0;font-size:1.7rem}.protagonist-card p,.rival-profile p,.gym-card p,.dimension-card p,.record-card p{color:#63576a;font-size:.78rem}.record-links{flex-wrap:wrap;gap:6px;margin:14px 0;display:flex}.record-links a{border:1px solid #d9cede;border-radius:7px;align-items:center;min-height:40px;padding:6px 9px;font-size:.67rem;font-weight:700;text-decoration:none;display:inline-flex}.characters-section details{border-top:1px solid #ded4e2;margin-top:12px}.characters-section summary{cursor:pointer;color:#682980;justify-content:space-between;align-items:center;gap:10px;min-height:46px;font-size:.75rem;font-weight:700;display:flex}.characters-section summary small{color:#766679;font-weight:400}.characters-section details p{margin:0;padding:0 0 10px}.rival-section{background:#fff}.rival-profile{background:#f8f4f9;border:1px solid #d9cede;border-radius:18px;grid-template-columns:270px 1fr;max-width:900px;display:grid;overflow:hidden}.rival-art{background:radial-gradient(circle at 50% 65%,#d653c840,transparent 40%),var(--char-ink)}.rival-art img{object-fit:contain;width:100%;height:100%}.rival-profile>div:last-child{padding:30px}.rival-profile h3{margin:8px 0;font-size:2rem}.gym-section{color:#d8cadd;background:radial-gradient(circle at 80% 10%,#67d9de1a,#0000 25%),#21122e}.section-head.light h2,.section-head.dark h2{color:#fff}.section-head.light>p,.section-head.dark>p{color:#c0b1c7}.gym-grid{grid-template-columns:1fr 1fr;gap:13px;padding:0;list-style:none;display:grid}.gym-card{color:#332a3b;background:#fff;border:1px solid #ffffff21;border-radius:14px;grid-template-columns:145px 1fr;min-height:255px;display:grid;position:relative;overflow:hidden}.gym-number{color:#9d58aa;font:700 .72rem var(--font-mono);position:absolute;top:9px;right:13px}.gym-portrait{background:radial-gradient(circle at 50% 68%,#67d9de40,#0000 43%),linear-gradient(150deg,#4d235f,#291637);place-items:center;display:grid}.gym-portrait img{object-fit:contain;width:100%;height:100%}.gym-portrait>span,.record-portrait>span,.dimension-art>span{color:#fff;width:76px;height:76px;font:700 1.6rem var(--font-mono);border:1px solid #ffffff42;border-radius:50%;place-items:center;display:grid}.gym-body{padding:22px}.badge-row{flex-wrap:wrap;gap:6px;padding-right:28px;display:flex}.badge-row span{color:#6f2f84;text-transform:uppercase;background:#eee3f0;border-radius:999px;padding:4px 8px;font-size:.59rem;font-weight:700}.badge-row span:last-child{color:#266c70;background:#e1f4f4}.gym-card h3{margin:11px 0 7px;font-size:1.4rem}.dimension-section{color:#d9cbe0;background:radial-gradient(circle at 12% 20%,#d653c830,#0000 20%),radial-gradient(circle at 90% 75%,#67d9de1f,#0000 22%),#13091f}.dimension-grid{grid-template-columns:repeat(3,1fr);gap:13px;display:grid}.dimension-card{background:#ffffff0b;border:1px solid #ffffff24;border-radius:14px;overflow:hidden}.dimension-art{background:repeating-radial-gradient(circle,#0000 0 42px,#67d9de12 43px 44px);place-items:center;min-height:190px;display:grid;position:relative}.dimension-art img{object-fit:contain;width:72%;height:190px}.dimension-art img.secondary{width:56%;position:absolute;bottom:0;right:0}.dimension-card>div:last-child{padding:20px}.dimension-card>div>span{font:700 .62rem var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:#de75d4}.dimension-card h3{color:#fff;margin:8px 0;font-size:1.45rem}.dimension-card p{color:#c1b2c8}.dark-links a{color:#78dfe2;border-color:#ffffff2e}.dimension-card summary{color:#e487dc;border-color:#ffffff24}.dimension-card summary small{color:#ae9db7}.record-grid{grid-template-columns:1fr 1fr;gap:13px;display:grid}.record-card{background:#faf8fb;border:1px solid #ddd2e1;border-radius:13px;grid-template-columns:130px 1fr;min-height:260px;display:grid;overflow:hidden}.record-portrait{background:radial-gradient(circle at 50% 68%,#d653c83b,#0000 45%),linear-gradient(150deg,#402051,#251431);place-items:center;display:grid}.record-portrait img{object-fit:contain;width:100%;height:100%}.record-body{padding:20px}.record-meta{flex-wrap:wrap;justify-content:space-between;gap:6px;display:flex}.record-meta small{color:#756878}.record-card h3{margin:8px 0;font-size:1.35rem}.relationship-section{background:#e8dfeb}.relationship-grid,.source-grid{grid-template-columns:1fr 1fr;align-items:center;gap:55px;display:grid}.relationship-list{gap:8px;display:grid}.relationship-list a{color:#31263a;background:#fff;border:1px solid #d3c4d9;border-radius:9px;justify-content:space-between;gap:20px;padding:14px 16px;text-decoration:none;display:flex}.relationship-list span{color:#7c6c82;text-align:right;font-size:.71rem}.source-section{background:#fff}.source-grid>div:first-child>a{align-items:center;min-height:44px;font-size:.76rem;font-weight:700;display:inline-flex}.classification-card{background:var(--char-ink);color:#d8cadf;border-radius:14px;padding:27px}.classification-card strong{color:#fff;font-size:1.25rem}.classification-card p{color:#c3b4ca;margin:8px 0}.classification-card a{color:#76dfe2}.related-section{background:var(--char-ink);color:#d9cce0}.related-section h2{color:#fff}.related-grid{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.related-grid a{color:#fff;border:1px solid #ffffff26;border-radius:11px;flex-direction:column;justify-content:end;min-height:140px;padding:17px;text-decoration:none;display:flex}.related-grid span{color:#73dade;font-size:.68rem}.featured-card:focus-visible,.category-nav a:focus-visible,.record-links a:focus-visible,.related-grid a:focus-visible{outline:3px solid var(--char-cyan);outline-offset:3px}@media (width<=950px){.characters-hero-grid{grid-template-columns:1fr 330px}.hero-cast{min-height:330px}.hero-portrait{width:160px}.featured-card,.featured-card.wide{grid-column:span 6}.protagonist-card{grid-template-columns:160px 1fr}.gym-card{grid-template-columns:120px 1fr}.dimension-grid{grid-template-columns:1fr 1fr}.record-grid{grid-template-columns:1fr}.related-grid{grid-template-columns:1fr 1fr}}@media (width<=720px){.characters-section{padding:52px 0}.characters-hero-grid{grid-template-columns:1fr}.hero-cast{width:100%;max-width:420px}.section-head{flex-direction:column;align-items:start}.featured-card,.featured-card.wide{grid-column:1/-1}.protagonist-grid,.gym-grid,.relationship-grid,.source-grid{grid-template-columns:1fr}.rival-profile{grid-template-columns:190px 1fr}.category-nav{top:0}}@media (width<=500px){.characters-wrap{width:min(100% - 24px,1180px)}.characters-hero{padding-bottom:60px}.characters-crumb{margin-bottom:30px}.characters-hero h1{font-size:2.65rem}.hero-stats{gap:16px}.hero-cast{min-height:300px}.hero-portrait{width:145px}.featured-card,.protagonist-card,.rival-profile,.gym-card,.record-card{grid-template-columns:1fr}.featured-art,.protagonist-card>img,.rival-art,.gym-portrait,.record-portrait{min-height:180px}.featured-art img,.protagonist-card>img,.rival-art img,.gym-portrait img,.record-portrait img{object-fit:contain;height:190px}.dimension-grid{grid-template-columns:1fr}.relationship-list a{flex-direction:column;gap:2px}.relationship-list span{text-align:left}.related-grid{grid-template-columns:1fr}.related-grid a{min-height:105px}}@media (prefers-reduced-motion:reduce){.hero-portrait{transform:none!important}}
