:root{
  --ink:#10131d; --night:#090c16; --night-2:#111625; --paper:#f4f0e7; --paper-2:#e9e2d5;
  --muted:#77766f; --amethyst:#8a68df; --amethyst-2:#b699ff; --crimson:#bd3248; --gold:#d0ab63;
  --line:rgba(15,18,28,.15); --white:#fff; --shadow:0 24px 70px rgba(7,9,17,.24);
}
*{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;background:var(--night);color:var(--ink);font-family:"Noto Sans KR",system-ui,sans-serif;line-height:1.75;overflow-x:hidden} img{display:block;max-width:100%} a{color:inherit;text-decoration:none} button,input{font:inherit}.shell{width:min(1180px,calc(100% - 40px));margin-inline:auto}.page-noise{position:fixed;inset:0;pointer-events:none;z-index:99;opacity:.03;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.75'/%3E%3C/svg%3E")}
.site-header{position:fixed;top:0;left:0;right:0;z-index:50;height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 max(28px,calc((100vw - 1180px)/2));color:#fff;border-bottom:1px solid rgba(255,255,255,.12);background:linear-gradient(180deg,rgba(7,9,16,.82),rgba(7,9,16,.35));backdrop-filter:blur(16px);transition:.25s}.site-header.scrolled{height:64px;background:rgba(7,9,16,.92)}.brand{display:flex;align-items:center;gap:12px}.brand img{width:38px;height:38px}.brand span{display:flex;flex-direction:column;line-height:1.1}.brand b{font-family:"Noto Serif KR",serif;letter-spacing:.12em;font-size:14px}.brand small{margin-top:5px;font-size:9px;letter-spacing:.18em;color:rgba(255,255,255,.58)}.nav-links{display:flex;align-items:center;gap:26px;font-size:13px;font-weight:600;color:rgba(255,255,255,.75)}.nav-links a{position:relative}.nav-links a:after{content:"";position:absolute;left:0;right:100%;bottom:-8px;height:1px;background:var(--amethyst-2);transition:.2s}.nav-links a:hover{color:#fff}.nav-links a:hover:after{right:0}.nav-toggle{display:none;background:none;border:0;color:#fff;font-size:24px}
.hero{position:relative;min-height:100svh;display:grid;align-items:end;overflow:hidden;background:#090b12}.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 48%;filter:saturate(.98) contrast(1.04)}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,7,13,.92) 0%,rgba(5,7,13,.66) 37%,rgba(5,7,13,.15) 68%,rgba(5,7,13,.25) 100%),linear-gradient(0deg,rgba(5,7,13,.9) 0%,transparent 42%)}.hero-inner{position:relative;z-index:2;padding:160px 0 100px;color:#fff}.eyebrow{margin:0 0 14px;font-size:11px;font-weight:800;letter-spacing:.2em;color:#c7b8ff}.eyebrow.dark{color:#6e57ab}.hero h1,.section h2,.prologue h2{font-family:"Noto Serif KR",serif}.hero h1{margin:0;max-width:760px;font-size:clamp(48px,7vw,92px);line-height:1.08;letter-spacing:-.055em;font-weight:900;text-shadow:0 8px 40px rgba(0,0,0,.35)}.hero h1 span{background:linear-gradient(100deg,#fff 0%,#e9deff 52%,#d6b56c 100%);-webkit-background-clip:text;background-clip:text;color:transparent}.hero-copy{max-width:640px;margin:28px 0 0;font-size:16px;color:rgba(255,255,255,.75)}.hero-actions{display:flex;gap:12px;margin-top:34px}.btn{display:inline-flex;align-items:center;justify-content:center;padding:13px 20px;border:1px solid rgba(255,255,255,.25);font-size:13px;font-weight:800;letter-spacing:.02em}.btn.primary{color:#0c0e16;background:#f4efe6;border-color:#f4efe6}.btn.ghost{color:#fff;background:rgba(255,255,255,.05)}.btn:hover{transform:translateY(-1px)}.hero-stamps{display:flex;flex-wrap:wrap;gap:8px;margin-top:32px}.hero-stamps span{padding:6px 10px;border:1px solid rgba(255,255,255,.18);background:rgba(12,14,24,.34);font-size:10px;letter-spacing:.12em;color:rgba(255,255,255,.68)}.scroll-cue{position:absolute;right:40px;bottom:34px;z-index:3;color:rgba(255,255,255,.4);font-size:9px;letter-spacing:.18em;display:flex;align-items:center;gap:12px;transform:rotate(90deg);transform-origin:right bottom}.scroll-cue span{display:block;width:52px;height:1px;background:rgba(255,255,255,.35)}
.section{position:relative;padding:120px 0}.paper-section{background:var(--paper);background-image:linear-gradient(rgba(60,48,36,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(60,48,36,.025) 1px,transparent 1px);background-size:34px 34px}.dark-section{background:radial-gradient(circle at 75% 5%,rgba(122,89,211,.14),transparent 30%),var(--night);color:#fff}.section-head{display:grid;grid-template-columns:72px 1fr;align-items:end;gap:24px;margin-bottom:42px}.section-head.light{color:#fff}.section-number{font-family:"Noto Serif KR",serif;font-size:52px;line-height:1;color:rgba(22,25,36,.2);border-bottom:1px solid rgba(22,25,36,.18);padding-bottom:8px}.section-head.light .section-number{color:rgba(255,255,255,.16);border-color:rgba(255,255,255,.15)}.section-head h2{margin:0;font-size:clamp(34px,5vw,58px);line-height:1.1;letter-spacing:-.045em}.section-head .eyebrow{margin-bottom:9px}.lead-quote{max-width:900px;margin:0 0 48px;padding:26px 30px;border-left:3px solid var(--amethyst);background:rgba(255,255,255,.5);font-family:"Noto Serif KR",serif;font-size:clamp(21px,2.4vw,30px);font-weight:600;color:#3d3746}.dossier-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.dossier-card{min-height:280px;padding:32px 26px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:rgba(255,255,255,.24)}.dossier-card span{font-size:9px;letter-spacing:.18em;font-weight:900;color:#7d726b}.dossier-card h3{margin:54px 0 12px;font-family:"Noto Serif KR",serif;font-size:23px}.dossier-card p{margin:0;color:#5e5d5a;font-size:14px}.dossier-card.accent{background:#171525;color:#fff}.dossier-card.accent span{color:#ba9fff}.dossier-card.accent p{color:rgba(255,255,255,.68)}
.section-intro{max-width:760px;margin:-10px 0 40px;color:rgba(255,255,255,.62)}.discipline-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.discipline-card{position:relative;min-height:470px;overflow:hidden;border:1px solid rgba(255,255,255,.1)}.discipline-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.2,1)}.discipline-card:hover img{transform:scale(1.035)}.discipline-overlay{position:absolute;inset:0;background:linear-gradient(0deg,rgba(5,7,12,.94),rgba(5,7,12,.12) 75%)}.discipline-card.magic:after,.discipline-card.sword:after{content:"";position:absolute;inset:auto 0 0;height:3px}.discipline-card.magic:after{background:var(--amethyst)}.discipline-card.sword:after{background:var(--crimson)}.discipline-copy{position:absolute;left:30px;right:30px;bottom:28px}.discipline-copy span{font-size:10px;letter-spacing:.18em;color:rgba(255,255,255,.55)}.discipline-copy h3{margin:5px 0 8px;font-family:"Noto Serif KR",serif;font-size:34px}.discipline-copy p{max-width:420px;margin:0 0 12px;color:rgba(255,255,255,.66);font-size:14px}.discipline-copy b{font-size:11px;color:#fff}.rank-strip{display:grid;grid-template-columns:repeat(8,1fr);margin-top:18px;border:1px solid rgba(255,255,255,.11)}.rank-strip span{padding:16px 10px;text-align:center;border-right:1px solid rgba(255,255,255,.08);color:rgba(255,255,255,.48);font-size:10px}.rank-strip span:last-child{border-right:0}.rank-strip b{display:block;margin-bottom:4px;color:#fff;font-family:"Noto Serif KR",serif;font-size:19px}
.academy-showcase{display:grid;grid-template-columns:1.2fr .8fr;gap:54px;align-items:center}.academy-image{margin:0;position:relative;box-shadow:var(--shadow)}.academy-image img{aspect-ratio:16/9;object-fit:cover}.academy-image figcaption{position:absolute;left:16px;bottom:16px;padding:8px 12px;background:rgba(7,9,16,.78);color:#fff;font-size:10px;letter-spacing:.08em}.dropcap{font-family:"Noto Serif KR",serif;font-size:21px;line-height:1.9;color:#34333a}.dropcap:first-letter{float:left;margin:3px 8px 0 0;font-size:54px;line-height:.85;color:#765cb5}.mini-grid{display:grid;grid-template-columns:1fr 1fr;margin-top:30px;border-top:1px solid var(--line);border-left:1px solid var(--line)}.mini-grid div{padding:18px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.mini-grid span{font-size:9px;color:#8b79b9}.mini-grid b{display:block;margin:5px 0 3px}.mini-grid p{margin:0;font-size:11px;color:#777}.timeline{display:grid;grid-template-columns:240px 1fr;gap:40px;margin-top:70px;padding-top:34px;border-top:1px solid var(--line)}.timeline-head span{font-size:9px;letter-spacing:.2em;color:#8067be}.timeline-head h3{margin:6px 0;font-family:"Noto Serif KR",serif;font-size:28px}.timeline-track{display:grid;grid-template-columns:repeat(4,1fr)}.timeline-track article{padding:0 18px 0 22px;border-left:1px solid var(--line)}.timeline-track time{font-family:"Noto Serif KR",serif;color:#7d60c2;font-weight:900}.timeline-track b{display:block;margin:8px 0 5px}.timeline-track p{margin:0;font-size:12px;color:#73716d}
.prologue{position:relative;min-height:790px;padding:120px 0;color:#fff;overflow:hidden}.prologue>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.prologue-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,9,16,.94),rgba(8,9,16,.74) 52%,rgba(8,9,16,.18)),linear-gradient(0deg,rgba(8,9,16,.75),transparent 55%)}.prologue-inner{position:relative;z-index:2}.transcript{max-width:750px;padding:34px 38px;background:rgba(10,12,20,.68);border:1px solid rgba(255,255,255,.15);backdrop-filter:blur(10px);box-shadow:0 22px 60px rgba(0,0,0,.3)}.transcript p{margin:0 0 19px;color:rgba(255,255,255,.72)}.transcript em{color:#fff}.dialogue{display:grid;grid-template-columns:90px 1fr;gap:16px;padding:13px 0;border-top:1px solid rgba(255,255,255,.11)}.dialogue b{font-size:12px;color:#cdbdff}.dialogue span{font-family:"Noto Serif KR",serif;color:#fff}.dialogue.featured b{color:#a8e9bb}.terminal{margin-top:20px!important;padding-top:18px;border-top:1px solid rgba(255,255,255,.12);font-family:"Noto Serif KR",serif;color:#fff!important}
.cover-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.cover-card{position:relative;overflow:hidden;background:#131521;box-shadow:0 14px 40px rgba(14,13,20,.14)}.cover-card img{width:100%;aspect-ratio:2/3;object-fit:cover;transition:transform .65s}.cover-card:hover img{transform:scale(1.025)}.cover-card:after{content:"";position:absolute;inset:45% 0 0;background:linear-gradient(0deg,rgba(7,8,14,.96),transparent)}.cover-card>div{position:absolute;z-index:2;left:18px;right:18px;bottom:18px;color:#fff}.cover-card span{font-size:12px;font-weight:800}.cover-card p{margin:5px 0 0;font-family:"Noto Serif KR",serif;font-size:17px;line-height:1.45;color:rgba(255,255,255,.8)}
.character-tools{display:flex;justify-content:space-between;gap:16px;margin-bottom:28px}.search-box{display:flex;align-items:center;gap:8px;width:min(370px,100%);padding:0 13px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.04)}.search-box span{color:rgba(255,255,255,.45)}.search-box input{width:100%;padding:12px 0;border:0;outline:0;background:none;color:#fff}.search-box input::placeholder{color:rgba(255,255,255,.34)}.filter-group{display:flex;flex-wrap:wrap;gap:7px}.filter{padding:9px 13px;border:1px solid rgba(255,255,255,.12);background:transparent;color:rgba(255,255,255,.55);cursor:pointer;font-size:11px}.filter.active,.filter:hover{background:#f2eee6;color:#10121a;border-color:#f2eee6}.character-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.character-card{position:relative;min-height:270px;overflow:hidden;border:1px solid rgba(255,255,255,.09);background:#121623;cursor:pointer}.character-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 35%;transition:transform .5s,filter .5s}.character-card:after{content:"";position:absolute;inset:35% 0 0;background:linear-gradient(0deg,rgba(7,8,14,.98),rgba(7,8,14,.08))}.character-card:hover img{transform:scale(1.04);filter:saturate(1.08)}.character-card-copy{position:absolute;z-index:2;left:16px;right:16px;bottom:14px}.character-card-copy small{font-size:9px;letter-spacing:.13em;color:#b5a0ef}.character-card-copy h3{margin:3px 0 2px;font-family:"Noto Serif KR",serif;font-size:20px}.character-card-copy p{margin:0;color:rgba(255,255,255,.52);font-size:11px}.character-card.hidden{display:none}.empty-state{grid-column:1/-1;padding:50px;text-align:center;border:1px solid rgba(255,255,255,.1);color:rgba(255,255,255,.5)}
.site-footer{padding:45px 0;background:#05070d;color:#fff;border-top:1px solid rgba(255,255,255,.08)}.footer-inner{display:grid;grid-template-columns:1fr 1fr auto;gap:30px;align-items:center}.footer-brand{display:flex;align-items:center;gap:13px}.footer-brand img{width:42px}.footer-brand div{display:flex;flex-direction:column}.footer-brand b{font-family:"Noto Serif KR",serif;letter-spacing:.12em}.footer-brand span{font-size:9px;color:rgba(255,255,255,.38);letter-spacing:.1em}.site-footer p{margin:0;color:rgba(255,255,255,.45);font-family:"Noto Serif KR",serif;text-align:center}.site-footer a{font-size:11px;color:#c4b1ff}
.character-modal{width:min(960px,calc(100% - 30px));max-height:min(780px,calc(100svh - 30px));padding:0;border:1px solid rgba(255,255,255,.15);background:#0c101b;color:#fff;box-shadow:0 30px 100px rgba(0,0,0,.55);overflow:hidden}.character-modal::backdrop{background:rgba(4,5,9,.8);backdrop-filter:blur(8px)}.character-modal[open]{display:grid;grid-template-columns:1.05fr .95fr}.modal-media{min-height:590px;background:#131625}.modal-media img{width:100%;height:100%;object-fit:cover}.modal-copy{padding:54px 44px;overflow:auto}.modal-copy h2{margin:3px 0 5px;font-family:"Noto Serif KR",serif;font-size:38px;line-height:1.25}.modal-role{margin:0 0 20px;color:rgba(255,255,255,.48);font-size:12px}.modal-tags{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:25px}.modal-tags span{padding:5px 8px;border:1px solid rgba(255,255,255,.13);color:#cbbaff;font-size:9px}.modal-copy>p:not(.eyebrow):not(.modal-role){color:rgba(255,255,255,.68);font-size:14px}.modal-record{margin-top:28px;padding-top:20px;border-top:1px solid rgba(255,255,255,.1);font-size:11px;color:rgba(255,255,255,.45)}.modal-record b{color:#fff}.modal-close{position:absolute;right:12px;top:10px;z-index:5;width:38px;height:38px;border:1px solid rgba(255,255,255,.12);background:rgba(6,8,14,.65);color:#fff;font-size:26px;cursor:pointer}
@media(max-width:980px){.nav-links{display:none;position:absolute;top:64px;left:20px;right:20px;flex-direction:column;align-items:stretch;padding:15px;background:#0c101b;border:1px solid rgba(255,255,255,.12)}.nav-links.open{display:flex}.nav-toggle{display:block}.dossier-grid{grid-template-columns:1fr 1fr}.rank-strip{grid-template-columns:repeat(4,1fr)}.academy-showcase{grid-template-columns:1fr}.timeline{grid-template-columns:1fr}.timeline-track{grid-template-columns:1fr 1fr;row-gap:25px}.cover-grid,.character-grid{grid-template-columns:1fr 1fr}.footer-inner{grid-template-columns:1fr;text-align:left}.site-footer p{text-align:left}.character-modal[open]{grid-template-columns:1fr 1fr}.modal-copy{padding:38px 28px}}
@media(max-width:650px){.shell{width:min(100% - 28px,1180px)}.site-header{height:64px;padding:0 14px}.brand small{display:none}.hero{min-height:800px}.hero-bg{object-position:62% center}.hero-shade{background:linear-gradient(0deg,rgba(5,7,13,.97),rgba(5,7,13,.25) 72%),linear-gradient(90deg,rgba(5,7,13,.65),rgba(5,7,13,.08))}.hero-inner{padding:130px 0 70px;align-self:end}.hero h1{font-size:45px}.hero-copy{font-size:14px}.hero-actions{flex-direction:column;align-items:stretch}.scroll-cue{display:none}.section,.prologue{padding:82px 0}.section-head{grid-template-columns:46px 1fr;gap:14px}.section-number{font-size:34px}.section-head h2{font-size:34px}.dossier-grid,.discipline-grid,.cover-grid,.character-grid{grid-template-columns:1fr}.dossier-card{min-height:220px}.dossier-card h3{margin-top:34px}.discipline-card{min-height:430px}.rank-strip{grid-template-columns:1fr 1fr}.academy-showcase{gap:28px}.mini-grid{grid-template-columns:1fr}.timeline-track{grid-template-columns:1fr}.timeline-track article{padding:12px 0 12px 18px}.transcript{padding:25px 20px}.dialogue{grid-template-columns:70px 1fr}.character-tools{flex-direction:column}.filter-group{gap:5px}.character-card{min-height:330px}.character-modal{overflow:auto}.character-modal[open]{display:block}.modal-media{height:320px;min-height:0}.modal-copy{padding:28px 20px 35px}.modal-copy h2{font-size:30px}.site-footer{padding-bottom:70px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
