@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@300;400;500;600;700;800;900&display=swap');
:root{--bg:#0a0a0c;--panel:#111114;--panel-2:#151417;--line:#2d292d;--text:#f0eded;--muted:#a3a0a2;--red:#b83140;--red2:#e04a58;--font:'Noto Sans KR',system-ui,-apple-system,'Segoe UI',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);line-height:1.55;overflow-x:hidden}a{color:inherit;text-decoration:none}button,input{font:inherit}button{cursor:pointer}::selection{background:#b83140;color:#fff}.wrap{width:min(1220px,calc(100% - 80px));margin-inline:auto}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;left:16px;top:-100px;background:#fff;color:#000;padding:12px 18px;z-index:200}.skip-link:focus{top:12px}.site-noise{position:fixed;inset:0;pointer-events:none;z-index:80;opacity:.09;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.84' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E")}
.site-header{height:84px;position:absolute;z-index:100;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:0 max(40px,calc((100vw - 1220px)/2));border-bottom:1px solid #ffffff20;background:linear-gradient(to bottom,#09090baf,#09090b08)}.wordmark{display:flex;align-items:center;gap:14px}.wordmark-symbol{color:var(--red2);font-size:29px;line-height:1}.wordmark-text{font-size:25px;font-family:Impact,'Arial Narrow',sans-serif;font-stretch:condensed;font-weight:800;letter-spacing:.10em;line-height:1}.wordmark-sub{font-family:var(--font);display:block;color:#a9a2a6;font-size:10px;letter-spacing:.35em;font-weight:400;margin-top:6px}.primary-nav{display:flex;gap:38px;align-items:center}.primary-nav>a{font-size:11px;font-weight:700;letter-spacing:.18em;color:#c4bfc2;transition:color .2s}.primary-nav>a:hover{color:#fff}.primary-nav .nav-accent{border:1px solid #9b3841;padding:13px 17px;color:#faf5f5}.primary-nav .nav-accent span{color:var(--red2);margin-left:10px}.menu-toggle{display:none}
.hero{min-height:790px;min-height:min(940px,100svh);height:810px;position:relative;background:#0c0b0e;isolation:isolate;overflow:hidden}.hero-background{position:absolute;inset:0;pointer-events:none;z-index:-1;background:radial-gradient(ellipse 47% 50% at 77% 45%,#64212b40,transparent 77%),radial-gradient(ellipse 50% 40% at 85% 100%,#5d1b2440,transparent 72%),linear-gradient(115deg,#0b0b0e 16%,#141014 56%,#08080a 100%)}.hero-background:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#09090c 6%,#09090b98 44%,transparent 95%);z-index:2}.hero-grid{position:absolute;inset:0;opacity:.12;background-size:85px 85px;background-image:linear-gradient(90deg,#d6a7b31b 1px,transparent 1px),linear-gradient(#d6a7b31b 1px,transparent 1px);mask-image:linear-gradient(180deg,transparent,black 70%)}.city{position:absolute;width:100%;bottom:0;height:55%;opacity:.6;background-size:100% 100%}.city-back{background:linear-gradient(to top,#09090b 1%,transparent 66%),repeating-linear-gradient(90deg,transparent 0 52px,#2c1a22 53px 96px,transparent 97px 145px,#1b1720 146px 204px,transparent 205px 244px);clip-path:polygon(0 85%,5% 85%,5% 74%,12% 74%,12% 57%,17% 57%,17% 72%,26% 72%,26% 45%,32% 45%,32% 70%,42% 70%,42% 35%,47% 35%,47% 61%,52% 61%,52% 22%,59% 22%,59% 55%,65% 55%,65% 17%,71% 17%,71% 43%,79% 43%,79% 9%,85% 9%,85% 38%,92% 38%,92% 18%,100% 18%,100% 100%,0 100%)}.city-front{height:34%;opacity:.45;background:linear-gradient(to top,#050507 2%,#0f0e14 100%);clip-path:polygon(0 30%,8% 30%,8% 50%,17% 50%,17% 14%,23% 14%,23% 39%,28% 39%,28% 6%,32% 6%,32% 51%,40% 51%,40% 30%,48% 30%,48% 61%,56% 61%,56% 12%,65% 12%,65% 46%,70% 46%,70% 5%,77% 5%,77% 34%,83% 34%,83% 22%,90% 22%,90% 40%,100% 40%,100% 100%,0 100%)}.hero-redline{position:absolute;height:1px;width:100%;bottom:20%;background:linear-gradient(90deg,transparent,#c53c5177,transparent);box-shadow:0 0 40px #d1445877}.hero-content{height:100%;display:grid;grid-template-columns:1.1fr .9fr;position:relative;align-items:center;padding-top:80px}.hero-copy{z-index:2}.eyebrow{color:#c8b7bd;letter-spacing:.23em;font-size:11px;font-weight:600;display:flex;align-items:center;gap:12px}.eyebrow-line{width:26px;height:1px;background:var(--red2)}.dot{height:4px;width:4px;border-radius:50%;background:var(--red2);margin-left:4px}.hero-kicker{margin:41px 0 0;font-weight:500;font-size:15px;letter-spacing:.17em;color:#a9a1a5}.hero-title{font:clamp(116px,12.6vw,202px)/.94 Impact,'Arial Narrow',sans-serif;letter-spacing:-.035em;margin:8px 0 13px;white-space:nowrap;font-stretch:condensed;font-weight:900;color:#f2f0f0;text-shadow:0 9px 44px #0009}.title-v{color:#dcd5d6}.title-period{color:var(--red);margin-left:2px}.hero-title-rule{border-top:1px solid #7e313d;display:flex;align-items:center;justify-content:space-between;padding-top:13px;max-width:540px}.hero-title-rule span:first-child{font-size:23px;font-weight:700;letter-spacing:.2em}.hero-title-rule span:last-child{font-size:10px;color:#83777a;letter-spacing:.13em}.hero-description{margin:33px 0 35px;color:#aaa3a7;font-weight:400;font-size:15px;line-height:2.15}.hero-description strong{color:#f0ebed;font-weight:600}.hero-buttons{display:flex;gap:12px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:37px;padding:18px 23px;min-width:180px;font-weight:700;letter-spacing:.04em;font-size:13px;transition:transform .2s,background .2s,border-color .2s}.button:hover:not(.button-disabled){transform:translateY(-3px)}.button-primary{background:var(--red);color:#fff}.button-primary:hover{background:#d04252}.button-ghost{border:1px solid #716368;background:#15111566}.button-ghost:hover{border-color:#b6a9af}.hero-art{position:relative;width:100%;height:min(520px,55vw);margin-top:15px;opacity:.93;display:flex;align-items:center;justify-content:center}.eye-orbit{position:absolute;border:1px solid #ab425044;border-radius:50%;aspect-ratio:1;pointer-events:none}.orbit-one{width:92%;transform:rotate(-23deg) scaleY(.76)}.orbit-two{width:74%;transform:rotate(26deg) scaleX(.86)}.eye-mark{width:82%;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;filter:drop-shadow(0 0 46px #b7354938);background:radial-gradient(circle,#210b13a8 13%,transparent 68%)}.eye-mark:before{content:"";position:absolute;inset:9%;border:1px dashed #a8465744;border-radius:50%;animation:rotate 80s linear infinite}.eye-outer{width:85%;height:47%;border:2px solid #d64b5a;transform:rotate(-5deg);border-radius:90% 15% 90% 15% / 100% 15% 100% 15%;box-shadow:inset 0 0 45px #d1435044,0 0 45px #d1435044;display:grid;place-items:center;overflow:hidden;background:radial-gradient(ellipse,#9e2b3925,#10080ef0)}.eye-iris{height:125%;aspect-ratio:1;border-radius:50%;border:10px solid #73222e;background:repeating-conic-gradient(from 15deg,#331016 0 9deg,#7f2e3d 10deg 12deg,#451921 15deg 20deg);display:grid;place-items:center;box-shadow:0 0 22px #ff485c66;animation:eyePulse 5s ease-in-out infinite}.eye-pupil{width:52%;height:52%;border-radius:50%;background:#050406;border:5px solid #bd4151;box-shadow:0 0 35px #de415b99,inset 0 0 20px #000}.hero-art-top,.hero-art-bottom{position:absolute;left:4%;right:4%;display:flex;justify-content:space-between;font:10px var(--font);font-weight:700;letter-spacing:.23em;color:#75636a}.hero-art-top{top:7%}.hero-art-top span{color:#c74b5b}.hero-art-bottom{bottom:9%}.hero-art-cross{position:absolute;color:#ac3c49;font-size:26px;font-weight:100}.cross-a{top:20%;left:0}.cross-b{bottom:18%;right:5%}.hero-footer{position:absolute;bottom:38px;left:0;right:0;display:flex;justify-content:space-between;font-size:10px;letter-spacing:.22em;color:#807579}.hero-footer b{font-size:15px;margin-left:13px;color:var(--red2)}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes eyePulse{50%{box-shadow:0 0 54px #ff485ca8}}.ticker{background:#a82e3a;height:45px;overflow:hidden;display:flex;align-items:center}.ticker-track{display:flex;gap:34px;white-space:nowrap;min-width:max-content;animation:ticker 38s linear infinite;font-size:12px;letter-spacing:.22em;color:#e8d7da;font-weight:800}.ticker-track span{color:#f8b4bb}@keyframes ticker{to{transform:translateX(-50%)}}
.section{padding-block:142px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:50px}.section-index{font-size:11px;letter-spacing:.21em;font-weight:700;color:var(--red2);margin:0 0 29px}.section-index span{color:#7a565d}.section-heading h2,.play-panel h2{font-size:clamp(39px,5.3vw,74px);line-height:1.24;letter-spacing:-.055em;margin:0;font-weight:800}.section-heading h2 em,.play-panel h2 em{font-style:normal;color:#c44a57}.section-lead{margin:0 0 5px;max-width:345px;color:#aca4a8;line-height:2.05;font-size:14px}.world-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.world-card{position:relative;min-height:460px;padding:29px;border:1px solid #332d31;background:linear-gradient(155deg,#19151a,#0d0d10 60%);overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;transition:transform .25s,border-color .25s}.world-card:hover{border-color:#96404b;transform:translateY(-5px)}.world-card:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 30%,#b43a5117,transparent 58%);pointer-events:none}.world-card-eater{background:linear-gradient(152deg,#291319,#100c10 60%)}.world-card-border{background:linear-gradient(150deg,#171a1e,#0e0e10 60%)}.card-index,.world-card-foot{font-size:11px;letter-spacing:.17em;color:#867d82;position:relative;z-index:1}.world-card-symbol{position:absolute;top:66px;left:0;right:0;text-align:center;font:clamp(130px,15vw,220px)/1 Impact,'Arial Narrow',sans-serif;color:#42303955;letter-spacing:-.08em}.world-card-eater .world-card-symbol{color:#9d293229}.world-card-border .world-card-symbol{color:#62687326}.world-card-symbol span{font-size:28px;position:absolute;top:15%;right:26%;color:#b3464f88}.world-card h3{font-size:27px;margin:0 0 15px}.world-card h3 small{font:11px var(--font);font-weight:600;color:#8f7880;letter-spacing:.14em;margin-left:10px}.world-card p{font-size:13px;color:#a69ba0;line-height:1.95;margin:0 0 25px}.world-card-foot{border-top:1px solid #46383e;padding-top:15px;display:flex;justify-content:space-between}.world-card-foot span{color:#b94a54}
.routes-section{background:#111013;border-top:1px solid #241e23;border-bottom:1px solid #241e23}.routes-list{border-top:1px solid #4a3c42}.route{display:flex;align-items:center;gap:34px;padding:35px 14px;border-bottom:1px solid #3b3237;transition:background .2s}.route:hover{background:#1b151b}.route-num{font-size:12px;letter-spacing:.1em;color:#a14853;width:70px}.route-icon{font-size:43px;color:#a64652;width:58px;line-height:1}.route>div{flex:1}.route h3{margin:0 0 6px;font-size:24px}.route p{color:#a49ba0;font-size:13px;margin:0}.route-en{font-size:11px;color:#76676c;letter-spacing:.22em}
.characters-section{padding-bottom:115px}.characters-heading{margin-bottom:42px}.characters-summary{display:flex;align-items:center;gap:20px}.summary-number{font:120px/.9 Impact,'Arial Narrow',sans-serif;color:var(--red);letter-spacing:-.08em}.characters-summary>span:last-child{font-size:12px;color:#9d9298;letter-spacing:.08em}.archive-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:1px solid #47353e;padding-bottom:20px;margin-bottom:25px}.filter-group{display:flex;flex-wrap:wrap;gap:8px}.filter{background:transparent;border:1px solid #3a3338;color:#a49aa0;border-radius:0;padding:10px 13px;font-size:12px}.filter span{color:#806971;font-size:10px;margin-left:6px}.filter.is-active{background:#a72e3c;border-color:#a72e3c;color:#fff}.filter.is-active span{color:#e7c1c6}.search-box{border:1px solid #3a3338;background:#151317;display:flex;align-items:center;min-width:245px;padding-left:13px}.search-icon{font-size:22px;color:#a47e85}.search-box input{min-width:0;width:100%;background:transparent;border:0;outline:0;color:#eee;padding:10px;font-size:12px}.search-box:focus-within{border-color:#a94351}.search-box input::placeholder{color:#756a70}.characters-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.character-card{position:relative;background:#161317;border:1px solid #332930;min-height:320px;text-align:left;padding:0;display:flex;flex-direction:column;color:inherit;overflow:hidden;transition:transform .25s,border-color .25s}.character-card:hover,.character-card:focus-visible{transform:translateY(-5px);border-color:#a33e4b;outline:none}.character-portrait{height:210px;width:100%;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;background:radial-gradient(ellipse at 50% 40%,#7b343a33,transparent 55%),linear-gradient(155deg,#262027,#0e0e13)}.character-card[data-type="human"] .character-portrait{background:radial-gradient(ellipse at 50% 40%,#6d708035,transparent 57%),linear-gradient(155deg,#1c1f25,#0d0e12)}.character-card[data-type="exception"] .character-portrait{background:radial-gradient(ellipse at 50% 40%,#748b9236,transparent 58%),linear-gradient(155deg,#212427,#0e1013)}.character-portrait:before{content:"";position:absolute;inset:15px;border:1px solid #bfa5aa22}.character-portrait:after{content:"";position:absolute;width:110%;height:1px;background:#9c596261;top:48%;transform:rotate(-28deg)}.character-portrait .portrait-number{font:140px/.9 Impact,'Arial Narrow',sans-serif;color:#ded2d51a;letter-spacing:-.06em}.character-portrait .portrait-sigil{font:10px var(--font);position:absolute;bottom:15px;left:16px;letter-spacing:.14em;color:#847279}.portrait-top{position:absolute;top:15px;left:16px;font:10px var(--font);letter-spacing:.16em;color:#b69da4}.portrait-type{position:absolute;top:15px;right:15px;font:10px var(--font);color:#c86c77;letter-spacing:.14em}.character-info{padding:16px 17px 18px;display:flex;flex-direction:column;gap:4px;flex:1}.character-info h3{margin:0;font-size:18px;line-height:1.4}.character-info p{margin:0;color:#897e84;font-size:11px;letter-spacing:.04em}.character-info .character-footer{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:14px;color:#a69a9f;font-size:10px;letter-spacing:.04em}.character-footer span:last-child{font-size:19px;color:#b24855}.archive-caption{margin:25px 0 0;text-align:center;font-size:12px;color:#7d7378}.archive-empty{grid-column:1/-1;text-align:center;border:1px solid var(--line);padding:70px 20px;color:#aaa}
.quote-section{padding:110px 0;background:radial-gradient(ellipse at 50% 50%,#3c111a90,transparent 67%),#110c11;border-top:1px solid #30222b;border-bottom:1px solid #30222b;text-align:center}.quote-content>span{font-size:75px;line-height:.6;color:#ad3947}.quote-content p{font-size:clamp(28px,4vw,50px);font-weight:800;line-height:1.75;letter-spacing:-.05em;margin:8px 0 24px}.quote-content p em{font-style:normal;color:#cf5261}.quote-content small{font-size:11px;letter-spacing:.2em;color:#927b84}.play-panel{min-height:450px;border:1px solid #553640;background:linear-gradient(115deg,#25151b,#100d13 63%);padding:60px 7%;position:relative;overflow:hidden}.play-panel>div:first-child{position:relative;z-index:2}.play-panel h2{margin:23px 0}.play-panel p{font-size:14px;line-height:2.05;color:#a99ca2;margin-bottom:28px}.status{font-size:10px;letter-spacing:.21em;color:#af939a}.status-light{display:inline-block;width:6px;height:6px;background:#c84a56;border-radius:50%;margin-right:8px;box-shadow:0 0 15px #c84a5699}.button-disabled{background:#292328;border:1px solid #504249;color:#8d8187;cursor:not-allowed;min-width:265px}.play-graphic{position:absolute;right:5%;top:1%;font:340px/.95 Impact,'Arial Narrow',sans-serif;letter-spacing:-.21em;color:#db596112;transform:rotate(-13deg);pointer-events:none}.play-graphic span{color:#f9ced112}.footer{background:#09090a;border-top:1px solid #302b2d}.footer-inner{padding:43px 0;display:flex;justify-content:space-between;align-items:center;gap:28px}.footer-logo{font:45px/.9 Impact,'Arial Narrow',sans-serif;letter-spacing:.01em}.footer-inner p{font-size:10px;color:#81747a;letter-spacing:.1em;margin:10px 0 0}.footer-inner>a{font-size:10px;letter-spacing:.18em;color:#c04f5c}
.modal[hidden]{display:none}.modal{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:20px}.modal-backdrop{position:absolute;inset:0;background:#000b;backdrop-filter:blur(10px)}.modal-panel{position:relative;width:min(520px,100%);max-height:90vh;overflow:auto;border:1px solid #85414e;background:linear-gradient(125deg,#21151b,#0d0c0e);box-shadow:0 20px 90px #000e;padding:46px;outline:0}.modal-close{position:absolute;top:16px;right:18px;background:transparent;color:#e3cbd0;border:0;font-size:32px}.modal-letter{font:150px/.7 Impact,'Arial Narrow',sans-serif;position:absolute;right:25px;top:80px;color:#a5333926;pointer-events:none}.modal-panel h2{position:relative;font-size:34px;margin:60px 0 0}.modal-en{position:relative;color:#a5999f;margin:0 0 40px;letter-spacing:.08em}.modal-data{display:grid;grid-template-columns:110px 1fr;gap:16px;padding:24px 0;border-top:1px solid #4a3039;border-bottom:1px solid #4a3039}.modal-data span{font-size:10px;color:#b75a64;letter-spacing:.12em}.modal-data strong{font-size:14px}.modal-notice{color:#9b8b93;font-size:12px;line-height:1.8;margin:25px 0 0}
@media(max-width:1100px){.hero-title{font-size:clamp(100px,13vw,155px)}.hero-art{transform:scale(1.1)}.characters-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.section{padding-block:105px}}@media(max-width:760px){.wrap{width:min(100% - 40px,620px)}.site-header{height:70px;padding-inline:20px}.wordmark-text{font-size:23px}.menu-toggle{display:flex;position:relative;z-index:111;flex-direction:column;gap:5px;background:transparent;border:0;padding:12px}.menu-toggle span{display:block;width:24px;height:2px;background:#f3e9ec;transition:transform .2s}.menu-toggle[aria-expanded="true"] span:first-child{transform:translateY(7px) rotate(45deg)}.menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}.menu-toggle[aria-expanded="true"] span:last-child{transform:translateY(-7px) rotate(-45deg)}.primary-nav{display:none;position:absolute;top:70px;left:0;right:0;padding:25px 25px 30px;background:#111014;border-bottom:1px solid #49333b;flex-direction:column;gap:25px;align-items:stretch}.primary-nav.is-open{display:flex}.primary-nav>a{font-size:13px}.primary-nav .nav-accent{padding:14px}.hero{height:auto;min-height:770px}.hero-content{grid-template-columns:1fr;display:block;padding-top:157px}.hero-art{position:absolute;width:76%;height:340px;right:-17%;top:86px;opacity:.5;z-index:-1}.hero-copy{position:relative}.hero-kicker{margin-top:74px;font-size:13px}.hero-title{font-size:clamp(93px,19vw,142px)}.hero-title-rule{max-width:420px}.hero-title-rule span:first-child{font-size:18px}.hero-title-rule span:last-child{font-size:9px}.hero-description{margin-top:27px;font-size:13px}.hero-footer{bottom:27px}.hero-footer>span:last-child{display:none}.section{padding-block:85px}.section-heading{display:block;margin-bottom:31px}.section-heading h2{font-size:clamp(34px,8vw,55px)}.section-lead{max-width:100%;margin-top:23px}.world-cards{grid-template-columns:1fr}.world-card{min-height:320px}.world-card-symbol{font-size:190px;top:20px}.routes-list{margin-top:35px}.route{gap:15px;padding:25px 2px}.route-num{width:27px}.route-icon{font-size:27px;width:38px}.route h3{font-size:19px}.route p{font-size:11px;line-height:1.8}.route-en{display:none}.characters-heading{display:flex;align-items:end}.summary-number{font-size:85px}.characters-summary>span:last-child{font-size:9px}.archive-toolbar{align-items:stretch;flex-direction:column}.filter{padding:9px 12px}.search-box{min-width:100%}.characters-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.character-card{min-height:285px}.character-portrait{height:180px}.character-portrait .portrait-number{font-size:112px}.character-info{padding:12px}.character-info h3{font-size:15px}.character-info p{font-size:10px}.play-panel{padding:44px 27px;min-height:430px}.play-graphic{right:-80px;top:10%;font-size:220px}.footer-inner{flex-wrap:wrap}.footer-inner>p{order:3;flex:1 0 100%}}@media(max-width:385px){.hero-title{font-size:91px}.hero-buttons .button{min-width:0;width:100%}.hero{min-height:870px}.characters-heading{align-items:center}.summary-number{font-size:65px}.characters-summary{gap:7px}.character-portrait{height:145px}.character-card{min-height:250px}.filter span{display:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
