:root{--bg:#0a090c;--panel:#141118;--panel2:#1b1720;--line:#2e2536;--violet:#9b5cff;--blood:#c43c3c;--ash:#c9b48a;
  --text:#e6e0e8;--dim:#8d8496;--serif:"Hahmlet","Noto Serif KR",serif;--en:"Cinzel",serif}
*{box-sizing:border-box}
body{margin:0;color:var(--text);background:var(--bg);font:15.5px/1.75 "Pretendard Variable",Pretendard,system-ui,-apple-system,"Apple SD Gothic Neo","Malgun Gothic",sans-serif;letter-spacing:-.01em}
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(ellipse 80% 50% at 50% -10%,rgba(155,92,255,.18),transparent 70%),
             radial-gradient(ellipse 60% 40% at 100% 100%,rgba(196,60,60,.10),transparent 70%),var(--bg)}
a{color:inherit;text-decoration:none}
header{position:sticky;top:0;z-index:5;display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;padding:10px 16px;
  background:rgba(10,9,12,.88);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.logo{font-family:var(--serif);font-weight:800;font-size:16px;letter-spacing:-.02em}
nav{display:flex;gap:2px;overflow-x:auto;order:3;width:100%;scrollbar-width:none}
nav a{padding:5px 11px;border-radius:4px;color:var(--dim);white-space:nowrap;font-size:14px}
nav a:hover{color:var(--text)}nav a.on{color:#fff;box-shadow:inset 0 -2px var(--violet)}
.util{margin-left:auto;display:flex;align-items:center;gap:10px;font-size:12px;color:var(--dim)}
.play{background:var(--blood);color:#fff;padding:6px 14px;border-radius:4px;font-weight:700;font-size:13px;letter-spacing:.05em;
  box-shadow:0 0 0 1px rgba(255,255,255,.08) inset,0 4px 20px rgba(196,60,60,.35)}
.play:hover{filter:brightness(1.15)}
.play.big{display:inline-block;margin-top:22px;padding:13px 34px;font-size:16px}
main{max-width:980px;margin:0 auto;padding:20px 16px 56px}
h1,h2,h3{font-family:var(--serif);letter-spacing:-.02em}
/* hero */
.hero{text-align:center;padding:56px 0 40px;position:relative}
.moon{width:120px;height:120px;margin:0 auto 22px;border-radius:50%;
  background:radial-gradient(circle at 38% 35%,#1a1420,#000 70%);
  box-shadow:0 0 0 1px rgba(155,92,255,.4),0 0 40px 6px rgba(155,92,255,.35),0 0 120px 30px rgba(120,40,200,.18);
  animation:pulse 6s ease-in-out infinite}
.moon.sm{width:28px;height:28px;margin-bottom:10px;animation:none}
@keyframes pulse{50%{box-shadow:0 0 0 1px rgba(196,60,60,.5),0 0 50px 10px rgba(196,60,60,.3),0 0 140px 40px rgba(155,92,255,.2)}}
.hero .en{font-size:11px;letter-spacing:.35em;color:var(--violet)}
.hero h1{font-size:clamp(28px,7vw,48px);margin:8px 0 10px;line-height:1.2;text-shadow:0 2px 30px rgba(0,0,0,.8)}
.hero p{color:var(--dim);margin:0 auto;max-width:520px}
.dday{display:table;margin:18px auto 0;padding:6px 14px;border:1px solid var(--line);border-radius:999px;font-size:13px;color:var(--dim);background:var(--panel)}
.dday b{color:var(--ash)}.dday b.now{color:var(--blood)}
.intro p{font-family:var(--serif);font-size:16.5px;line-height:2}
/* page head */
.phead{padding:28px 0 18px;border-bottom:1px solid var(--line);margin-bottom:22px}
.phead span{font-size:10px;letter-spacing:.35em;color:var(--violet)}
.phead h1{font-size:34px;margin:4px 0 2px}.phead p{margin:0;color:var(--dim)}
/* cards */
.card{display:block;background:linear-gradient(180deg,var(--panel2),var(--panel));border:1px solid var(--line);border-radius:6px;padding:18px 20px;margin-bottom:14px;position:relative}
.card h2{font-size:20px;margin:0 0 8px;color:var(--ash)}
.card h3{font-size:17px;margin:0 0 4px}
.card p{margin:0}
.card.link:hover{border-color:var(--violet);transform:translateY(-2px);transition:.15s}
.grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.grid .card{margin:0}
.group{margin-bottom:34px}
.group>h2{font-size:22px;margin:0 0 4px;padding-left:12px;border-left:3px solid var(--blood)}
.gdesc{color:var(--dim);margin:0 0 14px;padding-left:15px}
.tags{display:flex;flex-wrap:wrap;gap:5px;margin:4px 0 8px}
.tags span{font-size:11.5px;padding:1px 8px;border-radius:3px;background:#0d0b10;border:1px solid var(--line);color:var(--dim)}
.item p{color:#cfc8d4;font-size:14.5px}
/* images */
.pic{position:relative;border-radius:4px;overflow:hidden;margin:-4px -6px 12px;background:linear-gradient(160deg,#241c2c,#0c0a0e)}
.pic img{display:block;width:100%;height:100%;object-fit:cover}
.pic span{display:none}
.pic.none{display:grid;place-items:center}.pic.none span{display:block;font-family:var(--serif);font-size:44px;color:var(--violet);opacity:.6}
.pic.wide{aspect-ratio:16/10}
.char .pic{aspect-ratio:1/1;margin:0}
/* characters */
.chars{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}
.char{padding:0;overflow:hidden}
.char .cb{padding:12px 14px 14px}
.char h3 small{font-family:system-ui;font-size:12px;color:var(--dim);font-weight:400}
.char h3 em{float:right;font-style:normal;font-family:system-ui;font-size:10.5px;padding:1px 6px;border-radius:3px;background:var(--blood);color:#fff}
.char .sub{font-size:12px;color:var(--violet);margin-bottom:6px}.char .sub b{color:var(--ash)}
.char p{font-size:13.5px;color:#cfc8d4}
.char q{display:block;margin-top:8px;font-size:12.5px;color:var(--dim);font-style:italic}
.char.danger{border-color:#4a2228}
footer{text-align:center;color:var(--dim);font-size:13px;padding:36px 0;border-top:1px solid var(--line);font-family:var(--serif)}
footer small{font-family:system-ui;font-size:11px;letter-spacing:.1em}
#gate{position:fixed;inset:0;z-index:99;background:rgba(5,4,7,.97);display:grid;place-items:center;padding:16px}
#gate .card{max-width:360px;text-align:center}
#gate b{display:inline-grid;place-items:center;width:56px;height:56px;border-radius:50%;border:3px solid var(--blood);color:var(--blood);font-size:22px;margin-bottom:8px}
#gate button{display:block;width:100%;margin-top:10px;padding:12px;border:0;border-radius:4px;font:inherit;font-weight:700;background:var(--blood);color:#fff;cursor:pointer}
#gate .ghost{background:transparent;color:var(--dim);border:1px solid var(--line)}
@media(min-width:760px){nav{order:0;width:auto}}
/* fonts */
.hero .en,.phead span{font-family:var(--en);font-weight:700;letter-spacing:.28em}
footer small{font-family:var(--en);letter-spacing:.15em}
.hero h1{font-weight:800}.phead h1,.group>h2{font-weight:800}
.card h2,.card h3{font-weight:600}
.intro p{font-weight:400}
.char h3 small,.char h3 em{font-family:"Pretendard Variable",Pretendard,system-ui}
/* ===== v2: cinematic hero ===== */
.p-home{padding-top:0}
.hero{position:relative;margin:0 calc(50% - 50vw) 28px;width:100vw;min-height:88vh;display:grid;place-items:center;padding:60px 20px 40px;overflow:hidden;border-bottom:1px solid var(--line)}
.hbg{position:absolute;inset:-4%;background:#120d18 center/cover no-repeat;filter:saturate(.75) brightness(.55);animation:drift 30s ease-in-out infinite alternate}
.hero::after{content:"";position:absolute;inset:0;background:
  radial-gradient(ellipse 70% 60% at 50% 40%,transparent,rgba(10,9,12,.65) 70%),
  linear-gradient(180deg,rgba(10,9,12,.35),rgba(10,9,12,.15) 40%,var(--bg))}
@keyframes drift{to{transform:scale(1.06) translateY(-1.5%)}}
.hin{position:relative;z-index:2;text-align:center;max-width:760px}
.hero h1{font-size:clamp(34px,9vw,72px);line-height:1.12;margin:10px 0 16px;letter-spacing:-.03em;
  background:linear-gradient(180deg,#fff 30%,#b9a9c9);-webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 4px 24px rgba(0,0,0,.9))}
.hero p{color:#cfc6d6;font-size:15px}
.hero .moon{width:84px;height:84px;margin-bottom:14px}
/* ash particles */
.ash{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:.55;
  background-image:radial-gradient(1.5px 1.5px at 10% 20%,#bbb,transparent),radial-gradient(1px 1px at 30% 70%,#999,transparent),
  radial-gradient(2px 2px at 55% 35%,#c9a,transparent),radial-gradient(1px 1px at 75% 15%,#aaa,transparent),
  radial-gradient(1.5px 1.5px at 85% 60%,#c55,transparent),radial-gradient(1px 1px at 45% 90%,#bbb,transparent);
  background-size:320px 320px;animation:fall 22s linear infinite}
@keyframes fall{to{background-position:60px 640px,-40px 640px,30px 640px,-20px 640px,50px 640px,0 640px}}
.ctas{display:flex;gap:10px;justify-content:center;align-items:center;flex-wrap:wrap;margin-top:24px}
.ctas .play.big{margin:0}
.ghostbtn{padding:12px 20px;border:1px solid rgba(255,255,255,.18);border-radius:4px;font-size:14px;color:#ddd;background:rgba(0,0,0,.3);backdrop-filter:blur(4px)}
.ghostbtn:hover{border-color:var(--violet);color:#fff}
.stats{display:flex;justify-content:center;gap:clamp(18px,5vw,44px);margin-top:34px;flex-wrap:wrap}
.stats div{display:flex;align-items:baseline;gap:6px}
.stats b{font-family:var(--en);font-size:24px;color:var(--ash);font-weight:500}
.stats b.now{color:var(--blood)}
.stats span{font-size:12px;color:var(--dim)}
/* numbered heads */
.sec h2 i,.group>h2 i{font-style:normal;font-family:var(--en);font-size:12px;color:var(--violet);border:1px solid var(--line);
  border-radius:3px;padding:1px 6px;margin-right:10px;vertical-align:middle;letter-spacing:.05em}
.group>h2{border-left:0;padding-left:0}
.gdesc{padding-left:0}
.sec{border-left:2px solid var(--blood)}
/* chips */
.chips{position:sticky;top:96px;z-index:4;display:flex;gap:6px;overflow-x:auto;padding:8px 0 12px;margin-bottom:10px;
  background:linear-gradient(var(--bg) 75%,transparent);scrollbar-width:none}
.chips button{flex:none;font:inherit;font-size:13px;padding:5px 13px;border-radius:999px;border:1px solid var(--line);background:var(--panel);color:var(--dim);cursor:pointer}
.chips button.on{background:var(--text);color:var(--bg);border-color:var(--text);font-weight:700}
@media(min-width:760px){.chips{top:52px}}
/* board (망세갤) */
.board{border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--panel)}
.bhead{display:flex;align-items:center;gap:8px;padding:12px 16px;background:#1d1626;border-bottom:2px solid var(--violet)}
.bhead b{font-size:17px}.bhead span{font-size:12px;color:var(--dim)}
.bhead em{margin-left:auto;font-style:normal;font-size:12px;padding:2px 8px;border-radius:3px;background:var(--violet);color:#fff}
.post{padding:16px;border-bottom:1px solid var(--line)}.post:last-child{border:0}
.post:hover{background:#18141e}
.pmeta{display:flex;gap:8px;align-items:baseline}
.pmeta h3{margin:0;font-family:inherit;font-size:15.5px;font-weight:700}
.ptag{flex:none;font-size:11px;padding:1px 7px;border-radius:3px;background:#2a2333;color:var(--dim)}
.t-공지{background:var(--blood);color:#fff}.t-경고{background:#5a2a14;color:#ffb27a}.t-정보{background:#1f2a40;color:#8fb4ff}
.pinfo{font-size:12px;color:var(--dim);margin:4px 0 8px}.pinfo b{color:var(--blood)}
.post p{margin:0;font-size:14.5px;color:#d6cfdb}
