:root{color-scheme:dark;font-family:Georgia,serif}*{box-sizing:border-box}body{margin:0;background:#111218;color:#eee}body.embedded{background:transparent}#classPage{--accent:#ff7b9c;--accent-soft:#ffafcc;--stroke:rgba(255,255,255,.1);--text:rgba(255,255,255,.92);--muted:rgba(255,255,255,.74);--panel:rgba(15,17,21,.96);--shadow:0 18px 60px rgba(0,0,0,.55);padding-top:24px}img{display:block;max-width:100%}[hidden]{display:none!important}button{font:inherit;cursor:pointer}#message{padding:30px;font:16px system-ui;text-align:center}.draft-note{color:#ffd1dc;background:#302330;margin:0}.error{color:#ffbbbf}.overview{width:min(1500px,94vw);margin:auto;padding-bottom:70px}.aco-hero{position:relative;min-height:620px;overflow:visible;border:1px solid var(--stroke);border-radius:24px;background-image:linear-gradient(90deg,rgba(5,6,9,.93) 0%,rgba(5,6,9,.78) 43%,rgba(5,6,9,.34) 70%,rgba(5,6,9,.20) 100%),linear-gradient(180deg,rgba(0,0,0,.04),rgba(0,0,0,.80)),var(--class-background-image,none);background-size:cover;background-position:center;box-shadow:var(--shadow)}.aco-layout{min-height:620px;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr);gap:30px;align-items:end;padding:55px 60px 0}.aco-information{position:relative;z-index:3;align-self:center;min-width:0;max-width:760px;padding-bottom:55px}.aco-class-icon{width:185px;height:185px;margin:0 0 4px -20px}.aco-class-icon img{width:100%;height:100%;object-fit:contain}.aco-title-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.aco-title{margin:0;color:#fff;font-size:clamp(42px,5vw,66px);line-height:1;letter-spacing:-.025em;text-shadow:0 0 20px #ffffff24}.role-icons{display:flex;align-items:center;gap:7px;margin-left:4px}.role-icon{width:48px;height:48px;object-fit:contain}.aco-description{max-width:660px;margin:15px 0 0;color:var(--muted);font-size:17px;line-height:1.65;white-space:pre-line}.aco-pills{display:flex;flex-wrap:wrap;gap:9px;margin-top:17px}.aco-pill{display:inline-flex;align-items:center;gap:7px;padding:8px 13px;border:1px solid #ffffff21;border-radius:999px;background:#0009;color:#ffffffd1;font:12px system-ui;white-space:nowrap}.aco-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 13px #ff7b9cbf}.aco-features{margin-top:28px}.aco-feature-heading{display:flex;align-items:center;gap:12px;margin-bottom:14px}.aco-feature-heading span{color:#ffffffc2;font:800 12px system-ui;letter-spacing:.16em;text-transform:uppercase}.aco-feature-heading:after{content:"";width:200px;max-width:42%;height:1px;background:linear-gradient(90deg,#ff7b9c8c,transparent)}.aco-feature-list{display:flex;flex-wrap:wrap;align-items:flex-start;gap:20px}.aco-feature{position:relative;width:125px;cursor:inherit}.aco-feature-icon{width:112px;height:112px;margin:0 auto;overflow:hidden;border:1px solid #ffffff26;border-radius:18px;background:#000;box-shadow:0 10px 30px #0008,0 0 22px #ff7b9c1f;transition:border-color .16s,box-shadow .16s}.aco-feature-icon img{width:100%;height:100%;object-fit:cover}.aco-feature-name{display:block;margin-top:9px;color:#fffffff5;font:900 14px/1.25 system-ui;text-align:center;text-shadow:0 2px 5px #000b}.aco-tooltip{position:absolute;z-index:50;left:50%;bottom:calc(100% + 14px);width:290px;padding:14px 15px;border:1px solid #ffafcc4d;border-radius:14px;background:rgba(15,17,21,.98);box-shadow:0 18px 50px #000a;color:#ffffffde;font:14px/1.55 system-ui;text-align:left;pointer-events:none;opacity:0;visibility:hidden;transform:translate(-50%,7px);transition:opacity .15s,visibility .15s,transform .15s}.aco-tooltip-title{display:block;margin-bottom:5px;color:var(--accent);font-size:16px}.aco-feature.is-open .aco-tooltip,.aco-feature:focus-visible .aco-tooltip{opacity:1;visibility:visible;transform:translate(-50%,0)}@media(hover:hover){.aco-feature:hover .aco-tooltip{opacity:1;visibility:visible;transform:translate(-50%,0)}.aco-feature:hover .aco-feature-icon{border-color:#ffafcca6;box-shadow:0 10px 30px #0008,0 0 25px #ff7b9c52}}.aco-character{position:relative;z-index:2;align-self:center;justify-self:center;width:min(100%,520px);background:none}.aco-character img{width:100%;height:auto;object-fit:contain;object-position:center}
.specializations{width:min(1180px,92vw);margin:auto;padding:50px 0}.as-heading{display:flex;align-items:center;gap:16px;margin-bottom:24px}.as-heading h2{margin:0;font-size:clamp(32px,3.4vw,44px);line-height:1;color:var(--accent)}.as-heading-line{flex:1;height:1px;background:linear-gradient(90deg,#ffffff33,transparent)}.as-grid{display:grid;grid-template-columns:repeat(var(--spec-columns,2),minmax(0,1fr));gap:22px;align-items:start}.as-spec{min-width:0;overflow:hidden;border:1px solid var(--stroke);border-radius:22px;background:#0003;box-shadow:var(--shadow);backdrop-filter:blur(10px)}.as-hero{position:relative;aspect-ratio:1/1;overflow:hidden;background:#0005;border-bottom:1px solid var(--stroke)}.as-hero>img{width:100%;height:100%;object-fit:cover;object-position:center}.as-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 38%,rgba(8,9,12,.94) 100%);pointer-events:none}.as-identity{position:absolute;z-index:1;left:22px;right:22px;bottom:18px;display:flex;align-items:flex-end;justify-content:space-between;gap:18px}.as-title{margin:0;color:#fff;font-size:clamp(29px,3vw,39px);line-height:1;letter-spacing:.02em;text-shadow:0 3px 18px #000c}.as-identity .role-icon{width:40px;height:40px;padding:4px;border:1px solid #ffffff2e;border-radius:10px;background:#08090cb8;box-shadow:0 6px 18px #0006}.as-body{padding:20px}.as-description{margin:0 0 18px;color:var(--muted);font-size:16px;line-height:1.7;white-space:pre-line}.as-divider{height:1px;margin:0 0 20px;background:linear-gradient(90deg,#ff7b9c80,#ffffff14,transparent)}.as-group+.as-group{margin-top:22px}.as-group-title{display:flex;align-items:center;gap:9px;margin:0 0 12px;padding:8px 11px;border:1px solid #ffffff14;border-radius:10px;background:linear-gradient(90deg,#ff7b9c21,#ff7b9c06);color:#fffffff5;font:800 14px/1.25 system-ui;letter-spacing:.08em;text-transform:uppercase}.as-group-title:before{content:"";width:4px;height:18px;flex:0 0 4px;border-radius:99px;background:var(--accent);box-shadow:0 0 10px #ff7b9c6b}.as-items{display:flex;flex-direction:column;gap:10px}.as-item{display:grid;grid-template-columns:96px minmax(0,1fr);gap:15px;align-items:start}.as-icon{width:96px;height:96px;overflow:hidden;border:1px solid #ffffff21;border-radius:15px;background:#0004;box-shadow:0 0 18px #ff7b9c1a}.as-icon img{width:100%;height:100%;object-fit:cover}.as-copy{min-width:0;min-height:96px;padding:12px 14px;border:1px solid #ffafcc38;border-radius:14px;background:var(--panel);box-shadow:0 10px 30px #0005}.as-name{margin:0 0 5px;color:var(--accent-soft);font-size:18px;font-weight:900;line-height:1.2}.as-copy p{margin:0;color:var(--text);font:14px/1.55 system-ui;white-space:pre-line}.as-bonus{display:block;margin-top:7px;color:#ff4d5a;font-weight:700}.as-more{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .38s,opacity .24s}.as-more-inner{min-height:0;overflow:hidden}.as-more-inner>.as-group:first-child{margin-top:22px}.as-spec.is-expanded .as-more{grid-template-rows:1fr;opacity:1}.as-expand{width:100%;margin-top:22px;padding:12px 16px;display:flex;align-items:center;justify-content:center;gap:10px;border:1px solid #ffafcc4d;border-radius:13px;background:#ff7b9c17;color:#fffffff0;font:900 13px system-ui;letter-spacing:.08em;text-transform:uppercase}.as-expand:hover,.as-expand:focus-visible{background:#ff7b9c29;border-color:#ffafcc8c;box-shadow:0 0 20px #ff7b9c24;outline:2px solid var(--accent-soft);outline-offset:2px}.as-expand:after{content:"";width:8px;height:8px;border-right:2px solid var(--accent-soft);border-bottom:2px solid var(--accent-soft);transform:translateY(-2px) rotate(45deg)}.is-expanded .as-expand:after{transform:translateY(2px) rotate(225deg)}
@media(max-width:920px){.as-grid{grid-template-columns:1fr}.as-spec{max-width:680px;margin:0 auto;width:100%}}
@media(max-width:900px){.overview{padding-bottom:45px}.aco-hero{min-height:0}.aco-layout{min-height:0;grid-template-columns:1fr;gap:15px;padding:40px 40px 20px}.aco-information{max-width:none;padding-bottom:20px}.aco-character{width:min(100%,480px)}}
@media(max-width:520px){.aco-layout{padding:28px 20px 20px}.aco-class-icon{width:145px;height:145px;margin-left:-12px}.aco-title{font-size:42px}.role-icon{width:40px;height:40px}.aco-description{font-size:15px}.aco-feature-list{gap:12px}.aco-feature{width:105px}.aco-feature-icon{width:94px;height:94px;border-radius:15px}.aco-feature-name{font-size:13px}.aco-tooltip{position:fixed;z-index:99999;left:50%;bottom:20px;width:min(330px,calc(100vw - 30px));transform:translate(-50%,10px)}.specializations{padding:36px 0;width:min(94vw,680px)}.as-body{padding:16px}.as-identity{left:16px;right:16px;bottom:14px}.as-title{font-size:28px}.as-identity .role-icon{width:34px;height:34px}.as-item{grid-template-columns:76px minmax(0,1fr);gap:10px}.as-icon{width:76px;height:76px;border-radius:13px}.as-copy{min-height:76px;padding:11px 12px}.as-name{font-size:17px}.as-copy p{font-size:13.5px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important}}

/* Keep centered class layouts steady as expandable content changes height. */
html{overflow-y:scroll}
@supports(scrollbar-gutter:stable){html{overflow-y:auto;scrollbar-gutter:stable}}

/* Decorative light only: no hit targets, no effect on document dimensions. */
#classPage{position:relative;isolation:isolate}
#classPage>.overview,#classPage>.specializations{position:relative;z-index:1}
.class-fireflies{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.class-fireflies span{position:absolute;display:block;width:var(--size);height:var(--size);border-radius:50%;background:#fff7;box-shadow:0 0 4px 2px var(--glow-color),0 0 18px 6px var(--glow-color);opacity:0;animation:class-firefly-drift var(--duration) ease-in-out var(--delay) infinite;pointer-events:none}
@keyframes class-firefly-drift{0%,100%{transform:translate(0,0) scale(.65);opacity:0}23%{opacity:.55}48%{transform:translate(var(--dx),var(--dy)) scale(1);opacity:.8}72%{opacity:.25}88%{transform:translate(var(--dx2),var(--dy2)) scale(.75);opacity:0}}
@media(prefers-reduced-motion:reduce){.class-fireflies span{animation:none;opacity:.18}}

/* Equipment bubbles and bounded, uncropped image previews. */
.equipment-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;max-width:660px;margin-top:18px}.equipment-group{min-width:0;margin:0}.equipment-group:only-child{grid-column:1/-1}.equipment-label{margin:0;font:600 14px/1.4 system-ui;color:var(--muted)}.equipment-group .aco-pills{margin-top:8px}.equipment-pill{font-size:14px;min-height:44px;white-space:normal;text-align:left;overflow-wrap:anywhere;max-width:100%}.equipment-pill:is(button):hover,.equipment-pill[aria-expanded=true]{border-color:var(--accent-soft);background:#30212e}.equipment-pill:focus-visible,.equipment-close:focus-visible{outline:2px solid var(--accent-soft);outline-offset:3px}
#classPage>.equipment-preview{position:fixed;z-index:10000;width:min(320px,calc(100vw - 16px));max-height:calc(100dvh - 16px);overflow:auto;padding:16px;border:1px solid var(--accent-soft);border-radius:16px;background:#101218;box-shadow:0 14px 45px #000b;color:var(--text);font:14px/1.5 system-ui}.equipment-preview>strong{display:block;padding-right:38px;margin-bottom:12px;overflow-wrap:anywhere;font-size:16px;color:var(--accent-soft)}.equipment-preview>img{width:100%;height:260px;height:min(260px,calc(100dvh - 110px));object-fit:contain;border-radius:8px;background:#090a0e}.equipment-close{position:absolute;right:6px;top:5px;width:44px;height:44px;border:0;border-radius:8px;background:transparent;color:#fff;font:26px system-ui}
@media(max-width:520px){.equipment-groups{grid-template-columns:1fr;gap:14px}.equipment-group:only-child{grid-column:auto}}
