dialog.classes-mode{width:min(1120px,95vw);padding:30px 32px 24px;max-height:92vh}dialog.classes-mode>h2{margin:6px 0 18px;font-size:29px}dialog.classes-mode .dialog-kicker{margin:0 0 8px}.race-intro{margin:0 0 22px!important;font-size:15px}.race-intro span{font-size:12px;color:#8fa7be}.race-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.race-card{position:relative;isolation:isolate;display:block;width:100%;aspect-ratio:3/4;padding:0;overflow:hidden;border:1px solid #7b6b4b;border-radius:5px;background:#07121d;text-align:left;transition:transform .2s,border-color .2s,box-shadow .2s}.race-art,.race-portrait{display:block;background:var(--portrait-image) center/contain no-repeat}.race-art{position:absolute;inset:0;z-index:-2;transition:transform .45s}.race-card-shade{position:absolute;inset:0;background:linear-gradient(0deg,#010813 0%,#010813bb 13%,transparent 43%);z-index:-1}.race-code{position:absolute;left:12px;top:12px;border:1px solid var(--race-color);color:#fff2d6;font-size:13px;letter-spacing:2px;padding:5px 8px;background:#020912c9}.race-card-text{position:absolute;bottom:15px;left:15px;right:10px}.race-card-text strong{display:block;font:21px Georgia,serif;color:#fff0cd}.race-card-text small{display:block;font-size:9px;letter-spacing:1px;color:var(--race-color);margin-top:9px}.race-card-text b{float:right;font-size:11px;margin-right:5px}.race-card:hover,.race-card:focus-visible{border-color:var(--race-color);box-shadow:0 0 16px color-mix(in srgb,var(--race-color) 25%,transparent);transform:translateY(-3px)}.race-card:hover .race-art{transform:scale(1.05)}.race-footnote{font-size:10px;color:#7f95aa!important;letter-spacing:1px;margin-bottom:0!important}.classes-mode>.dialog-back{margin-top:18px}.race-player{display:grid;grid-template-columns:minmax(250px,43%) 1fr;position:relative;border:1px solid #35516a;background:radial-gradient(ellipse at 5% 70%,color-mix(in srgb,var(--race-color) 17%,#020b16),#020b16 75%);border-radius:5px;overflow:hidden}.race-cinema{position:relative;aspect-ratio:3/4;overflow:hidden;isolation:isolate;min-width:0}.race-portrait{position:absolute;inset:0;transform-origin:50% 42%;animation:raceCamera 12s ease-in-out infinite}.race-haze{position:absolute;inset:-10%;background:radial-gradient(ellipse at 60% 77%,color-mix(in srgb,var(--race-color) 30%,transparent),transparent 55%);mix-blend-mode:screen;animation:raceAura 6s ease-in-out infinite}.race-cinema:after{content:'';position:absolute;inset:0;box-shadow:inset 0 -90px 60px -40px #020b16,inset -35px 0 35px -30px #020b16;pointer-events:none}.race-rune{position:absolute;color:var(--race-color);font:160px Georgia;left:38%;top:53%;opacity:.15;filter:drop-shadow(0 0 20px var(--race-color));animation:raceRune 12s linear infinite;mix-blend-mode:screen}.race-cinema-badge{position:absolute;top:16px;left:16px;font-size:9px;letter-spacing:2px;border:1px solid #a9b8c677;background:#020b16bb;padding:6px 9px}.race-cinema-title{position:absolute;z-index:2;bottom:25px;left:24px;right:15px;text-shadow:0 2px 5px #000}.race-cinema-title small{font-size:9px;color:var(--race-color);letter-spacing:5px}.race-cinema-title strong{display:block;font:clamp(27px,3vw,40px) Georgia,serif;color:#fff1d6;margin-top:5px}.race-biography{padding:35px 30px;align-self:center}.race-role{font-size:10px!important;letter-spacing:2px;color:var(--race-color)!important}.race-biography h3{font:27px/1.3 Georgia,serif;color:#f4d7a1;margin:18px 0 23px}.race-biography>p{font-size:14px}.race-biography dl{display:grid;grid-template-columns:1fr 1fr;gap:16px;border-top:1px solid #2b3f51;border-bottom:1px solid #2b3f51;margin:25px 0;padding:18px 0}.race-biography dt{font-size:9px;letter-spacing:2px;color:#7d99b2}.race-biography dd{font-size:13px;margin:7px 0 0;color:#d5e2ee}.race-preview-tag{display:inline-block;color:var(--race-color);font-size:9px;letter-spacing:1.5px;border:1px solid #4c6070;padding:6px 9px}.race-player-note{font-size:10px!important;color:#879eb3!important;margin:10px 0 0!important}.race-playback{grid-column:1/-1;display:flex;gap:18px;align-items:center;padding:12px 16px;background:#010710;border-top:1px solid #273f54}.race-play-toggle{min-width:95px;border:1px solid #566b7e;padding:7px 9px;font-size:11px;color:#ecd3a2}.race-progress{height:3px;flex:1;background:#1c2c3b;position:relative;overflow:hidden}.race-progress i{position:absolute;inset:0;background:var(--race-color);transform-origin:left;animation:raceTimeline 12s linear infinite}.race-loop{font-size:9px;letter-spacing:1px;color:#8c9fb4}.race-player-nav{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:18px}.race-player-nav .mini{font-size:10px;padding:12px 16px}.race-switcher{display:flex;gap:6px;flex-wrap:wrap}.race-switcher button{font-size:10px;border:1px solid #3b5266;padding:8px;min-width:34px;background:#061221}.race-switcher button[aria-pressed=true]{border-color:#e4be73;color:#e4be73;background:#201e18}.race-sparks{position:absolute;inset:0;overflow:hidden;pointer-events:none}.race-sparks i{position:absolute;bottom:-12px;left:calc(5% + var(--i)*6%);width:3px;height:3px;border-radius:50%;background:var(--race-color);box-shadow:0 0 8px 2px var(--race-color);animation:raceSpark calc(3s + var(--i)*.16s) linear infinite;animation-delay:calc(var(--i)*-.6s)}.race-player.is-paused *{animation-play-state:paused!important}
@keyframes raceCamera{0%,100%{transform:scale(1.015) translate(0,0)}50%{transform:scale(1.09) translate(-.5%,1%)}}@keyframes raceAura{0%,100%{opacity:.3;transform:translate(-2%,2%) scale(.9)}50%{opacity:.85;transform:translate(2%,-2%) scale(1.1)}}@keyframes raceRune{0%{transform:rotate(0deg) scale(.9);opacity:.08}50%{opacity:.22}100%{transform:rotate(180deg) scale(1.1);opacity:.08}}@keyframes raceSpark{0%{opacity:0;transform:translate(0,0)}15%{opacity:.8}80%{opacity:.45}100%{opacity:0;transform:translate(15px,-450px)}}@keyframes raceTimeline{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(max-width:850px){dialog.classes-mode{padding:27px 22px 22px}.race-grid{grid-template-columns:repeat(3,1fr);gap:12px}.race-card-text strong{font-size:19px}.race-biography{padding:24px 20px}.race-biography h3{font-size:23px}.race-player-nav{flex-direction:column;align-items:stretch}.race-switcher{justify-content:center}}
@media(max-width:560px){dialog.classes-mode{padding:26px 16px 20px;width:95vw}dialog.classes-mode>h2{font-size:24px;padding-right:15px;line-height:1.2}.race-grid{grid-template-columns:repeat(2,1fr);gap:12px}.race-intro{font-size:13px}.race-intro span{font-size:11px}.race-code{left:8px;top:8px;font-size:10px;padding:4px 6px}.race-card-text{left:10px;bottom:13px}.race-card-text strong{font-size:17px}.race-card-text small{font-size:8px;letter-spacing:.4px}.race-card-text b{display:none}.race-player{grid-template-columns:1fr}.race-cinema{aspect-ratio:3/4;max-height:440px}.race-biography{padding:18px 20px}.race-biography h3{font-size:23px;margin:12px 0}.race-biography>p{font-size:13px}.race-biography dl{margin:16px 0;padding:13px 0}.race-playback{padding:10px;gap:10px}.race-loop{font-size:8px}.race-play-toggle{min-width:90px;font-size:10px}.race-cinema-title strong{font-size:31px}.race-cinema-title{bottom:22px;left:20px}}
.race-art,.race-portrait{background-image:var(--portrait-image);background-repeat:no-repeat;background-color:#111;background-position:50% 35%;background-size:auto 90%}.race-card{background:#111}.race-cinema{background:#111;aspect-ratio:1/1.1}.race-portrait{background-size:contain;background-position:center 40%}.race-cinema-title{bottom:30px}.race-card-text strong{font-size:20px}.race-source{font-size:10px;color:#98b3ca;text-decoration:underline;text-underline-offset:3px}.race-cinema:after{box-shadow:inset 0 -70px 50px -30px #020b16,inset -25px 0 30px -25px #020b16}.race-footnote a{color:#b0c8df;text-decoration:underline;text-underline-offset:3px}
@media(max-width:560px){.race-card-text strong{font-size:17px}.race-cinema{aspect-ratio:1/1.05}.race-portrait{background-size:contain}.race-cinema-title strong{font-size:29px}}
@media(prefers-reduced-motion:reduce){.race-card,.race-art{transition:none}.race-card:hover{transform:none}.race-card:hover .race-art{transform:none}}
dialog.classes-mode{overflow-x:hidden}
