body{background:var(--sheet-bg)}.menu-bar{z-index:2;border-bottom:1px solid var(--holo-dim);backdrop-filter:blur(6px);background:#060a12d9;flex-wrap:wrap;align-items:center;gap:1rem 2rem;padding:.8rem clamp(1rem,4vw,3rem);display:flex;position:sticky;top:0}.back-link{min-height:44px;font-family:var(--hud);letter-spacing:.12em;text-transform:uppercase;color:var(--dim);transition:color var(--t-micro);align-items:center;gap:.5rem;font-size:.85rem;font-weight:600;text-decoration:none;display:inline-flex}.back-link kbd,.menu-bar kbd{font-family:var(--hud);color:var(--holo);border:1px solid var(--holo-dim);border-radius:3px;padding:.1em .4em;font-size:.7rem}.back-link:hover,.back-link:focus-visible{color:var(--gold-bright)}.menu-tabs{gap:.25rem;margin-left:auto;margin-right:auto;display:flex}.menu-tabs a{min-height:44px;font-family:var(--hud);letter-spacing:.14em;text-transform:uppercase;color:var(--text);white-space:nowrap;transition:color var(--t-micro), border-color var(--t-micro);border-bottom:2px solid #0000;align-items:center;padding:.4rem 1rem;font-size:1rem;font-weight:600;text-decoration:none;display:inline-flex}.menu-tabs a:hover,.menu-tabs a:focus-visible{color:var(--gold-bright);border-bottom-color:var(--gold-bright)}.back-link:focus-visible,.menu-tabs a:focus-visible,.download-btn:focus-visible{outline:1px solid var(--holo);outline-offset:3px}.download-btn{min-height:44px;font-family:var(--hud);letter-spacing:.12em;text-transform:uppercase;color:var(--btn-primary-ink);background:var(--gold);clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);transition:background var(--t-micro);flex-direction:column;justify-content:center;align-items:flex-start;padding:.4rem 1.1rem;font-size:.95rem;font-weight:700;line-height:1.1;text-decoration:none;display:inline-flex}.download-btn:hover,.download-btn:focus-visible{background:var(--gold-bright)}.download-note{letter-spacing:.08em;opacity:.8;font-size:.65rem;font-weight:600}.record{flex-direction:column;gap:1.5rem;max-width:1080px;margin:0 auto;padding:2rem clamp(1rem,4vw,1.5rem) 4rem;display:flex;position:relative}.panel{border:1px solid var(--holo-dim);clip-path:polygon(14px 0,100% 0,100% calc(100% - 14px),calc(100% - 14px) 100%,0 100%,0 14px);background:linear-gradient(#0e1a2e8c,#060a128c);padding:1.5rem clamp(1rem,3vw,2rem) 1.75rem;scroll-margin-top:5rem}.section-head{font-family:var(--display);letter-spacing:.2em;text-transform:uppercase;color:var(--gold-bright);align-items:center;gap:1rem;margin-bottom:1rem;font-size:1.15rem;font-weight:700;display:flex}.section-head:after{content:"";background:linear-gradient(90deg, var(--gold), transparent);flex:1;height:1px}.section-note{font-family:var(--serif);color:var(--dim);margin:-.4rem 0 1.2rem;font-size:1rem}.character{grid-template-columns:auto 1fr;align-items:start;gap:1.25rem 2rem;scroll-margin-top:5rem;display:grid}.portrait-frame{border:1px solid var(--holo-dim);background:#060a1299;width:150px;padding:6px;position:relative}.head-portrait{width:100%;height:auto;display:block}.corner{border:2px solid var(--gold);width:14px;height:14px;position:absolute}.corner.tl{border-bottom:0;border-right:0;top:-1px;left:-1px}.corner.tr{border-bottom:0;border-left:0;top:-1px;right:-1px}.corner.bl{border-top:0;border-right:0;bottom:-1px;left:-1px}.corner.br{border-top:0;border-left:0;bottom:-1px;right:-1px}.level-badge{width:54px;height:54px;font-family:var(--display);color:var(--btn-primary-ink);isolation:isolate;flex-direction:column;justify-content:center;align-items:center;font-size:1.35rem;font-weight:700;line-height:1;display:flex;position:absolute;bottom:-14px;right:-12px}.level-badge:before{content:"";background:var(--gold-bright);z-index:-1;position:absolute;inset:8px;rotate:45deg;box-shadow:0 0 14px #ffc46b73}.level-badge .level-word{font-family:var(--hud);letter-spacing:.1em;text-transform:uppercase;margin-bottom:1px;font-size:.5rem}.identity h1{font-family:var(--display);letter-spacing:.05em;font-size:clamp(1.9rem,4vw,2.8rem);font-weight:700;line-height:1.1}.class-line{font-family:var(--hud);letter-spacing:.2em;text-transform:uppercase;color:var(--holo);margin-top:.35rem;font-size:1.05rem;font-weight:600}.epithet{font-family:var(--serif);color:var(--dim);margin-top:.3rem;font-size:1.1rem;font-style:italic}.id-fields{grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:.7rem 1.5rem;margin-top:1.2rem;display:grid}.id-fields dt{font-family:var(--hud);letter-spacing:.16em;text-transform:uppercase;color:var(--holo);font-size:.72rem;font-weight:600}.id-fields dd{font-family:var(--serif);color:var(--text);font-size:1.05rem}.xp{margin-top:1.2rem}.xp-track{border:1px solid var(--holo-dim);background:#060a12cc;height:6px;overflow:hidden}.xp-fill{width:var(--xp);background:linear-gradient(90deg, var(--gold), var(--gold-bright));height:100%}.xp-label{font-family:var(--hud);letter-spacing:.12em;text-transform:uppercase;color:var(--dim);margin-top:.4rem;font-size:.78rem;font-weight:600}.attributes{border-top:1px solid var(--holo-dim);grid-column:1/-1;grid-template-columns:1fr 1fr;gap:.2rem 3rem;margin:.25rem 0 0;padding:1rem 0 0;list-style:none;display:grid}.attribute{border-bottom:1px solid #6fb3e82e;grid-template-columns:8.5rem 1fr 3.2rem;align-items:center;column-gap:1rem;padding:.55rem 0;display:grid}.attribute:nth-last-child(-n+2){border-bottom:0}.attr-name{font-family:var(--hud);letter-spacing:.14em;text-transform:uppercase;font-size:.95rem;font-weight:700}.attr-bar,.pips{grid-auto-columns:1fr;grid-auto-flow:column;gap:3px;display:grid}.attr-bar{height:14px}.attr-bar i,.pips i{clip-path:polygon(4px 0,100% 0,calc(100% - 4px) 100%,0 100%);background:#6fb3e824;display:block;box-shadow:inset 0 0 0 1px #6fb3e847}.attr-bar i.on{background:linear-gradient(180deg, var(--gold-bright), var(--gold));box-shadow:0 0 8px #ffc46b59}.attr-score{text-align:right;font-family:var(--hud);color:var(--holo);font-variant-numeric:tabular-nums;font-size:.95rem;font-weight:600}.attr-score b{color:var(--text);font-weight:700}.schools{grid-template-columns:repeat(3,1fr);gap:1rem 2.5rem;display:grid}.school-name{font-family:var(--hud);letter-spacing:.14em;text-transform:uppercase;color:var(--gold-bright);border-bottom:1px solid #d9a94e80;margin:0 0 .3rem;padding-bottom:.3rem;font-size:.85rem;font-weight:700}.school-list{margin:0;padding:0;list-style:none}.node{grid-template-columns:1fr 66px 5.6rem;align-items:center;gap:.8rem;padding:.3rem 0;display:grid}.node-label{font-family:var(--serif);font-size:1.02rem;font-weight:600}.pips{height:10px}.pips i{clip-path:polygon(3px 0,100% 0,calc(100% - 3px) 100%,0 100%)}.pips i.on{background:var(--gold);box-shadow:none}.node.rank-3 .pips i.on:last-child{background:var(--gold-bright)}.node.rank-4 .pips i.on{background:#f6efe0;box-shadow:0 0 8px #f6efe08c}.node-rank{font-family:var(--hud);letter-spacing:.12em;text-transform:uppercase;color:var(--dim);text-align:right;font-size:.75rem;font-weight:600}.node.rank-4 .node-rank{color:var(--text)}.quest-group{font-family:var(--hud);letter-spacing:.22em;text-transform:uppercase;color:var(--holo);margin:1.25rem 0 .5rem;font-size:.85rem;font-weight:700}.quest{border-left:1px solid var(--holo-dim);padding:.9rem 0 .9rem 1.6rem;position:relative}.quest:before{content:"";background:var(--navy);border:1px solid var(--holo);width:10px;height:10px;position:absolute;top:1.35rem;left:-6px;rotate:45deg}.quest.active{border-left-color:var(--gold)}.quest.active:before{background:var(--gold-bright);border-color:var(--gold-bright);box-shadow:0 0 10px #ffc46b99}.quest h4{font-family:var(--display);letter-spacing:.03em;font-size:1.15rem;font-weight:700}.q-meta{font-family:var(--hud);letter-spacing:.12em;text-transform:uppercase;color:var(--gold);flex-wrap:wrap;gap:.4rem 1.5rem;margin:.25rem 0 .5rem;font-size:.82rem;font-weight:600;display:flex}.quest p:not(.q-meta){font-family:var(--serif);color:var(--dim);max-width:60ch;font-size:1.08rem;line-height:1.55}.objectives{flex-direction:column;gap:.3rem;margin:.6rem 0 0;padding:0;list-style:none;display:flex}.objectives li{font-family:var(--serif);color:var(--text);padding-left:1.5rem;font-size:1.02rem;position:relative}.objectives li:before{content:"";border:1px solid var(--holo);width:11px;height:11px;position:absolute;top:.35em;left:0}.objectives li.done:before{background:var(--gold-bright);border-color:var(--gold-bright);clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%)}.objectives li.open{color:var(--holo)}.codex-list{grid-template-columns:repeat(auto-fit,minmax(20rem,1fr));gap:.6rem 2rem;margin:0;padding:0;list-style:none;display:grid}.codex-list li{align-items:baseline;gap:1rem;display:flex}.codex-year{font-family:var(--hud);letter-spacing:.1em;color:var(--gold);font-variant-numeric:tabular-nums;flex:none;font-size:.9rem;font-weight:700}.codex-body{font-family:var(--serif);color:var(--dim);font-size:1.05rem;line-height:1.5}.codex-body strong{color:var(--text);font-weight:600;display:block}.sheet-foot{flex-wrap:wrap;justify-content:center;gap:2rem;margin-top:1rem;display:flex}.contact-link{font-family:var(--hud);letter-spacing:.14em;text-transform:uppercase;color:var(--holo);border-bottom:1px solid var(--holo-dim);transition:color var(--t-micro), border-color var(--t-micro);padding-bottom:2px;font-size:.9rem;font-weight:600;text-decoration:none}.contact-link:hover,.contact-link:focus-visible{color:var(--gold-bright);border-color:var(--gold-bright)}.contact-link:focus-visible{outline:1px solid var(--holo);outline-offset:3px}@media (width<=760px){.schools{grid-template-columns:repeat(2,1fr)}.menu-tabs{order:3;width:100%;margin-left:0;overflow-x:auto}.menu-tabs a{padding:.4rem .7rem;font-size:.9rem}.download-btn{margin-left:auto}}@media (width<=520px){.character,.attributes{grid-template-columns:1fr}.attribute:nth-last-child(2){border-bottom:1px solid #6fb3e82e}.schools{grid-template-columns:1fr}}.sheet-portrait{--portrait:min(440px, calc((100vw - 1080px) / 2 - 1.5rem), calc(100vh - 8rem));width:var(--portrait);pointer-events:none;text-align:center;display:none;position:absolute;top:50%;right:calc(100% + 1rem);transform:translateY(-50%)}@media (width>=1650px){.sheet-portrait{display:block}}.sheet-portrait img{view-transition-name:character-portrait;filter:grayscale()contrast(1.05)brightness(.8);width:100%;display:block}@keyframes sheet-rise-fade{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes portrait-slide-in{0%{transform:translateY(-50%)translate(-40%)}to{transform:translateY(-50%)translate(0)}}@keyframes xp-fill-grow{0%{width:0}to{width:var(--xp)}}.character{animation:.18s ease-out both sheet-rise-fade}.abilities{animation:.18s ease-out 70ms both sheet-rise-fade}.quests,.codex{animation:.18s ease-out .14s both sheet-rise-fade}.sheet-portrait{animation:.24s ease-out .2s both portrait-slide-in}.xp-fill{animation:.22s ease-out .26s both xp-fill-grow}@media (prefers-reduced-motion:reduce){.character,.abilities,.quests,.codex{opacity:1;animation:none;transform:none}.sheet-portrait{animation:none;transform:translateY(-50%)}.xp-fill{width:var(--xp);animation:none}.back-link,.menu-tabs a,.download-btn,.contact-link{transition:none}}@media (prefers-reduced-motion:no-preference){@view-transition{navigation:auto}}::view-transition-group(character-portrait){animation-duration:.4s}.arrived-by-morph .sheet-portrait{animation:none}
