:root{color-scheme:dark;--bg:#000;--surface:#0c0c0e;--surface-2:#131316;--ink:#f1f1f1;--muted:#a2a2aa;--line:#222228;--blue:#3b7bff;--blue-soft:#7fb0ff;--red:#ff5050;--gold:#e8d9a8;--cream:#ece9d8;--art-w:min(100vw,1600px)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:84px}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.75 system-ui,-apple-system,"Segoe UI","Malgun Gothic","Apple SD Gothic Neo",sans-serif;word-break:keep-all;overflow-wrap:break-word}
h1,h2,h3,p,figure,ul,ol{margin:0}ul,ol{padding:0;list-style:none}a{color:inherit}img{display:block;max-width:100%;height:auto}
code{font:inherit;font-size:.92em;padding:1px 6px;border-radius:5px;background:#ffffff12;color:#e6e6ea;white-space:nowrap}
.wrap{width:min(1120px,calc(100% - 48px));margin:auto}
.skip{position:absolute;top:-80px;left:12px;padding:12px;background:#fff;color:#000;z-index:99}.skip:focus{top:12px}
:focus-visible{outline:3px solid var(--blue-soft);outline-offset:4px}

/* 필름 그레인 */
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:50;opacity:.07;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 28px;background:rgba(0,0,0,.82);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;text-decoration:none;letter-spacing:-.02em}.brand img{border-radius:7px}
nav{display:flex;align-items:center;gap:22px;font-size:14px;color:#c4c4cc}nav a{text-decoration:none}nav a:hover{color:#fff}
.nav-play{padding:8px 14px;border-radius:999px;background:#f1f1f1;color:#000!important;font-weight:800}
.languages{display:inline-flex;align-items:center;gap:2px;padding:3px;border:1px solid #2a2a31;border-radius:999px}
.languages a{padding:2px 9px;border-radius:999px;font-size:12px;font-weight:700;line-height:1.6;color:#a2a2aa}
.languages a[aria-current="page"]{background:#ffffff1f;color:#fff}

/* 첫 화면: 어둠 속 눈 → 제목 */
.hero{position:relative;overflow:hidden;background:#000;text-align:center}
.hero-art{position:absolute;left:50%;top:0;width:var(--art-w);aspect-ratio:16/9;transform:translate(-50%,-30%);background:url("images/hero.jpg") center/cover no-repeat;-webkit-mask-image:radial-gradient(ellipse 52% 50% at 50% 56%,#000 60%,transparent 100%);mask-image:radial-gradient(ellipse 52% 50% at 50% 56%,#000 60%,transparent 100%);animation:watch 9s steps(1) infinite}
@keyframes watch{0%,100%{opacity:1}61%{opacity:.25}62%{opacity:1}63.5%{opacity:.4}64.5%{opacity:1}}
.hero-content{position:relative;z-index:1;padding:calc(var(--art-w) * .5625 * .39 + 28px) 0 88px}
.lockup{display:inline-flex;align-items:center;gap:12px;font-weight:700;font-size:14px;color:#c9c9cf}.lockup img{border-radius:13px;box-shadow:0 10px 30px #000}
.eyebrow{font-size:13px;font-weight:800;letter-spacing:.16em;color:var(--blue-soft);margin:22px 0 12px}
h1{position:relative;display:inline-block;text-wrap:balance;font-size:clamp(40px,6.4vw,92px);line-height:1.1;letter-spacing:-.05em;font-weight:900;text-shadow:-2px 0 rgba(255,40,40,.55),2px 0 rgba(40,140,255,.55),0 8px 40px #000}
h1::before{content:attr(data-text);position:absolute;inset:0;color:#fff;clip-path:inset(46% 0 40% 0);transform:translateX(0);opacity:0;animation:glitch 9s steps(1) infinite}
@keyframes glitch{0%,100%{opacity:0}61%{opacity:1;transform:translateX(-14px)}62%{transform:translateX(9px);clip-path:inset(18% 0 66% 0)}63%{opacity:0}}
.lead{max-width:600px;margin:22px auto 0;font-size:18px;line-height:1.85;color:#d2d2d8}
.actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:30px}
.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:13px 24px;border-radius:12px;font-weight:800;text-decoration:none;transition:transform .12s ease,background .12s ease}
.button:hover{transform:translateY(-2px)}
.primary{background:#f1f1f1;color:#000;box-shadow:0 14px 40px #ffffff1f}.primary:hover{background:#fff}
.secondary{border:1px solid #ffffff40;background:#00000080;color:var(--ink)}
.fine{margin-top:14px;font-size:13px;color:#8e8e96}

.section{padding:100px 0;border-top:1px solid var(--line)}
.kicker{font-size:13px;font-weight:800;letter-spacing:.16em;color:var(--blue-soft)}
h2{margin:14px 0 18px;font-size:clamp(30px,4vw,48px);line-height:1.22;letter-spacing:-.045em}
.intro{max-width:640px;color:var(--muted)}

/* 이야기 */
.story{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:center}
.story-text>p:not(.kicker){color:#c8c8ce;margin-bottom:14px;max-width:560px}
.story-art{border-radius:20px;overflow:hidden;border:1px solid var(--line);box-shadow:0 30px 80px #000}
.story-art img{width:100%;aspect-ratio:1;object-fit:cover}

/* 윈도우 확인 창 */
.dlg{max-width:440px;margin-top:30px;background:var(--cream);color:#111;border:1px solid #0b3ec6;border-radius:8px 8px 4px 4px;box-shadow:0 24px 60px #000c;font-size:13.5px;line-height:1.55;overflow:hidden}
.dlg-title{display:flex;justify-content:space-between;align-items:center;padding:5px 6px 5px 10px;background:linear-gradient(#2a74f0,#0a4fd6 40%,#0841b8);color:#fff;font-weight:700;font-size:13px}
.dlg-x{display:grid;place-items:center;width:21px;height:21px;border:1px solid #fff;border-radius:3px;background:linear-gradient(#e86a45,#c8341a);font-size:15px;line-height:1}
.dlg-body{display:flex;gap:14px;align-items:flex-start;padding:16px 18px 10px}
.dlg-q{flex:none;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#7fb0ff,#1d5be0 70%);color:#fff;font-weight:900;font-size:18px;box-shadow:inset 0 0 0 1px #0d3aa8}
.dlg-body p{word-break:break-all}
:lang(en) .dlg-body p{word-break:normal;overflow-wrap:anywhere}
.dlg-btns{display:flex;justify-content:center;gap:10px;padding:6px 18px 16px}
.dlg-btn{position:relative;min-width:86px;padding:3px 14px;text-align:center;background:linear-gradient(#fff,#ecebe6 85%,#d6d0c5);border:1px solid #003c74;border-radius:3px;font-size:13px}
.dlg-btn.focus{box-shadow:inset 0 0 0 1px #8fb2e2,inset 0 -1px 0 1px #e9b549}
.cur{position:absolute;left:58%;top:62%;filter:drop-shadow(0 2px 3px #0008)}

/* 트레일러 */
.trailer-section{background:radial-gradient(ellipse at 50% 0%,#141420 0%,#000 70%)}
.video-frame{margin-top:30px;border-radius:18px;overflow:hidden;border:1px solid #ffffff1f;box-shadow:0 40px 90px #000;background:#000}
.video-frame video{display:block;width:100%;height:auto;aspect-ratio:16/9;background:#000}

/* 플레이 방법 */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:38px;counter-reset:s}
.steps li{position:relative;padding:24px 22px 24px;border-radius:16px;background:var(--surface);border:1px solid var(--line);counter-increment:s}
.steps li::after{content:"0" counter(s);position:absolute;top:18px;right:20px;font-size:13px;font-weight:800;color:#55555e;letter-spacing:.08em}
.key{display:inline-grid;place-items:center;min-width:44px;height:44px;padding:0 10px;border-radius:9px;background:linear-gradient(#2a2a30,#17171b);border:1px solid #3a3a42;box-shadow:0 3px 0 #000,inset 0 1px 0 #ffffff14;font-weight:900;font-size:18px}
.key-cursor{background:linear-gradient(#3a3a42,#232329)}.key-door{color:#fff;background:linear-gradient(#f1f1f1,#cfcfd4);color:#000}
.steps h3{margin:16px 0 8px;font-size:19px;letter-spacing:-.03em}.steps p{color:var(--muted);font-size:15px}
.tips{display:grid;grid-template-columns:1fr 1fr;gap:10px 28px;margin-top:26px;padding:22px 24px;border-radius:16px;border:1px dashed #33333b}
.tips p{font-size:14.5px;color:#bdbdc4}.tips b{display:inline-block;min-width:22px;margin-right:6px;color:#fff}

/* 휴지통에 남은 것들 */
.residents{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:36px}
.resident{position:relative;padding:28px 26px;border-radius:18px;background:var(--surface);border:1px solid var(--line);overflow:hidden}
.resident.magpie{background:linear-gradient(160deg,#17171c,#0b0b0d 60%);border-color:#34343c}
.ext{position:absolute;top:22px;right:22px;padding:2px 8px;border-radius:6px;font:700 12px/1.6 ui-monospace,Consolas,monospace;color:#9b9ba4;border:1px solid #33333a}
.resident h3{font-size:28px;letter-spacing:-.04em}
.resident .file{margin:4px 0 14px;font:13px/1.5 ui-monospace,Consolas,monospace;color:#7d7d86;word-break:break-all}
.resident p:last-child{color:#c2c2c9;font-size:15px}

/* 엔딩: 탐색기 자세히 보기 */
.explorer{margin-top:34px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--surface)}
.ex-head,.ex-row{display:grid;grid-template-columns:minmax(200px,1.1fr) 120px 2fr;gap:18px;align-items:center;padding:14px 22px}
.ex-head{font-size:12px;font-weight:700;color:#7d7d86;background:#0f0f12;border-bottom:1px solid var(--line);letter-spacing:.04em}
.ex-row{border-top:1px solid #1a1a1f;font-size:15px;color:#c2c2c9}.ex-row:first-of-type{border-top:0}
.ex-row:hover{background:#ffffff08}
.ex-name{display:flex;align-items:center;gap:12px;font-weight:800;color:var(--ink)}
.fi{flex:none;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;font:900 13px/1 system-ui;font-style:normal;color:#fff}
.fi.info{background:#2d6ae6}.fi.info::before{content:"i"}
.fi.err{background:#d23b2e}.fi.err::before{content:"×"}
.fi.q{background:#55555e}.fi.q::before{content:"?"}
.tag{justify-self:start;padding:2px 10px;border-radius:999px;font-size:12.5px;font-weight:800;background:#2d6ae622;color:var(--blue-soft)}
.tag.true{background:#e8d9a81f;color:var(--gold)}.tag.bad{background:#ff50501c;color:#ff8a80}.tag.hidden{background:#ffffff14;color:#d6d6dc}
.redact{letter-spacing:.06em;color:#3c3c44;text-shadow:0 0 0 #3c3c44}
.hidden-end{background:repeating-linear-gradient(135deg,#ffffff05 0 10px,transparent 10px 20px)}

/* 단서 · 번역기 */
.clues-section{background:linear-gradient(180deg,#000,#0a0a0d)}
.clues{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.clues p:not(.kicker){color:#c2c2c9;margin-bottom:14px;max-width:520px}
.subs{display:grid;gap:14px;justify-items:center;padding:36px 20px;border-radius:20px;background:radial-gradient(ellipse at 50% 40%,#1c1c22,#060607 75%);border:1px solid var(--line)}
.subs li{display:flex;align-items:center;gap:12px;padding:8px 18px 8px 10px;border-radius:8px;background:#000000c0;border:1px solid #ffffff14;font-weight:700;font-size:17px}
.subs li span{padding:1px 8px;border-radius:5px;background:#ffffff1a;font-size:12px;font-weight:700;color:#bdbdc4}
.subs li:nth-child(2){transform:translateX(18px)}.subs li:nth-child(3){transform:translateX(-12px)}

/* 게임 화면 */
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:36px}
.gallery figure{border-radius:14px;overflow:hidden;background:var(--surface);border:1px solid var(--line)}
.gallery img{width:100%;aspect-ratio:16/9;object-fit:cover}
.gallery figcaption{padding:12px 14px 14px;font-size:14px;color:var(--muted)}.gallery figcaption span{color:var(--blue-soft);font-weight:800;margin-right:8px}
.shot-note{margin-top:14px;font-size:13px;color:#73737c}

.faq{display:grid;gap:12px;max-width:840px;margin-top:30px}
.faq details{padding:16px 20px;border-radius:14px;background:var(--surface);border:1px solid var(--line)}
.faq summary{cursor:pointer;font-weight:800}.faq p{margin-top:10px;color:var(--muted);font-size:15px}

.final{text-align:center;padding:100px 0 116px;border-top:1px solid var(--line);background:radial-gradient(ellipse at 50% 0%,#1b1b24 0%,#000 64%)}
.final img{margin:0 auto 24px;border-radius:26px;box-shadow:0 20px 50px #000}
.final p{color:var(--muted)}.final .button{margin-top:24px}
.search-hint{display:inline-block;margin-top:18px;padding:6px 16px;border:1px solid #7fb0ff66;border-radius:999px;color:var(--blue-soft);font-weight:800;font-size:14px}

footer{display:flex;flex-wrap:wrap;align-items:center;gap:22px;padding-block:26px;border-top:1px solid var(--line);font-size:12px;color:#7d7d86}footer a{text-decoration:none}footer a:hover{color:#fff}footer span{margin-left:auto}

@media(max-width:980px){.steps{grid-template-columns:1fr 1fr}}
@media(max-width:860px){
 :root{--art-w:170vw}
 header{padding:10px 18px}nav a:not(.nav-play){display:none}
 .wrap{width:calc(100% - 36px)}
 .hero-content{padding-bottom:60px}
 .lead{font-size:16px}
 .story,.clues{grid-template-columns:1fr;gap:34px}
 .story-art{max-width:420px}
 .residents{grid-template-columns:1fr}
 .tips{grid-template-columns:1fr}
 .ex-head{display:none}
 .ex-row{grid-template-columns:1fr auto;gap:6px 12px;padding:16px 18px}
 .ex-row>span:last-child{grid-column:1/-1;font-size:14px}
 .gallery{grid-template-columns:1fr 1fr;gap:12px}.gallery figcaption{font-size:13px;padding:10px 12px}
 .section{padding:66px 0}.final{padding:66px 0 80px}
 footer{gap:14px}footer span{margin-left:0}
}
@media(max-width:520px){.steps{grid-template-columns:1fr}.gallery{grid-template-columns:1fr}h1{font-size:clamp(34px,10.4vw,44px)}.dlg{font-size:12.5px}.dlg-body{padding:14px 14px 8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button{transition:none}.hero-art,h1::before{animation:none}}
@media(max-width:860px){nav{gap:12px}nav .languages a{display:inline-block}}
@media(max-width:420px){.brand{font-size:0;gap:0}}.languages a,.nav-play{white-space:nowrap}
