@font-face{font-family:KoreanManuscript;src:url('fonts/manuscript-kr.woff2') format('woff2');font-display:swap;font-weight:400}
.modal .motion-panel{margin:24px 0 28px}.modal .motion-caption{font-size:9px}.modal-footer{display:block;margin-top:25px}.modal .motion-canvas{border-color:#a8bacb19}
.animation-only{gap:24px;padding-top:clamp(30px,8svh,90px)}.animation-only .motion-caption>span{visibility:hidden}.animation-only>.next{align-self:start;margin-left:0}
.animation-only .cage-door{animation:cage-open-v6 12s ease-in-out both}.animation-only .bird-flight{animation:bird-leave-v6 12s ease-in-out both}.animation-only .bird-wing{animation:bird-wingbeat .25s 9s ease-in-out 22 alternate}
[data-motion=bird] .cage-door{animation:cage-open-v6 12s ease-in-out both}[data-motion=bird] .bird-flight{animation:bird-leave-v6 12s ease-in-out both}[data-motion=bird] .bird-wing{animation:bird-wingbeat .25s 9s ease-in-out 22 alternate}
@keyframes cage-open-v6{0%,66%{transform:skewY(0) scaleX(1)}78%,100%{transform:skewY(-15deg) scaleX(.15)}}
@keyframes bird-leave-v6{0%,75%{transform:translate(312px,258px)}80%{transform:translate(337px,240px)}87%{transform:translate(424px,188px)}95%{transform:translate(556px,80px)}100%{transform:translate(704px,-25px)}}
.served-bowl{animation:bowl-serve 2.8s cubic-bezier(.2,.6,.25,1) both;transform-origin:320px 260px}.food-steam{animation:steam-appear 2.8s ease both}.steam-curl{opacity:.22;animation:soup-steam 3.4s ease-in-out infinite;transform-origin:320px 195px}.steam-0{animation-delay:-1.4s}.steam-2{animation-delay:-2.5s}.offered-spoon{transform-origin:0 0;animation:spoon-offer 8.5s ease-in-out both}
@keyframes bowl-serve{0%{opacity:0;transform:translate(75px,-74px) scale(.91)}12%{opacity:1}70%{transform:translate(0,2px) scale(1)}100%{opacity:1;transform:none}}
@keyframes steam-appear{0%,24%{opacity:0}70%,100%{opacity:1}}
@keyframes soup-steam{0%{opacity:0;transform:translateY(12px) scaleX(.9)}40%{opacity:.28}80%{opacity:.07}100%{opacity:0;transform:translateY(-25px) scaleX(1.08)}}
@keyframes spoon-offer{0%,20%{opacity:0;transform:translate(455px,120px) rotate(35deg)}29%{opacity:1;transform:translate(408px,164px) rotate(20deg)}42%{transform:translate(356px,230px) rotate(-12deg)}51%{transform:translate(352px,213px) rotate(-8deg)}65%{transform:translate(372px,155px) rotate(15deg) scale(1.05)}82%,100%{opacity:1;transform:translate(321px,330px) rotate(7deg) scale(1.8)}}
.recording-scene{padding:22px 24px 19px;background:linear-gradient(120deg,#a8c6d808,#141c2c33);min-height:145px}.recording-meta{display:flex;align-items:center;gap:8px;font:8px/1.6 -apple-system,sans-serif;letter-spacing:1.5px;color:#8ba3b5}.recording-meta>span:last-child{margin-left:auto}.recording-dot{width:4px;height:4px;display:block;border-radius:50%;background:#8faec0}.recording-bars{height:78px;display:flex;align-items:center;justify-content:center;gap:4px}.recording-bars i{height:var(--height);width:3px;border-radius:3px;background:#8eaec2;opacity:.75;transform-origin:center;animation:wave-pulse var(--speed) calc(var(--bar)*-.12s) ease-in-out infinite alternate}.recording-baseline{border-top:1px solid #86a7bc26;margin-top:4px}
@keyframes wave-pulse{0%{transform:scaleY(.18);opacity:.25}100%{transform:scaleY(1);opacity:.8}}
.evidence-chat{padding:14px 0 22px;display:flex;flex-direction:column;gap:24px}.evidence-message{max-width:88%;align-self:flex-start;display:flex;flex-direction:column;align-items:flex-start;gap:9px}.evidence-message>span{font:10px/1.7 -apple-system,sans-serif;color:#8f9dac;letter-spacing:1px}.evidence-message>div{padding:15px 18px;background:#79879b16;border:1px solid #9aaabd2b;line-height:1.9;font-size:16px;border-radius:1px 10px 10px 10px}.evidence-message.from-wife{align-self:flex-end;align-items:flex-end}.evidence-message.from-wife>div{background:#7c7e9b26;border-color:#a5a5bd33;border-radius:10px 1px 10px 10px}
.knot-tangle{transform-origin:320px 138px;animation:knot-contract 7s cubic-bezier(.35,0,.5,1) both}.knot-tail{transform-origin:320px 140px;animation:knot-tension 7s ease both}.knot-tail-right{animation-delay:.1s}
@keyframes knot-contract{0%,10%{transform:scale(1) rotate(-8deg)}37%{transform:scale(.75) rotate(8deg)}58%{transform:scale(.54) rotate(-4deg)}83%,100%{transform:scale(.28) rotate(0)}}
@keyframes knot-tension{0%,12%{transform:scaleX(.28);opacity:.35}65%{transform:scaleX(.8);opacity:.9}83%,100%{transform:scaleX(1);opacity:1}}
.notebook-open{transform-origin:316px 217px;animation:notebook-appear 2s ease both}.notebook-cover{transform-origin:313px 215px;animation:notebook-unfold 3s ease-in-out both}.notebook-pen{animation:notebook-record 8.7s ease-in-out both}.notebook-line{stroke-dasharray:140;stroke-dashoffset:140;animation:notebook-ink 1.2s calc(2.9s + var(--note)*1.3s) linear both}
@keyframes notebook-appear{from{opacity:0;transform:translateY(30px) rotate(3deg)}to{opacity:1;transform:none}}
@keyframes notebook-unfold{0%,20%{transform:scaleX(1);opacity:1}85%,100%{transform:scaleX(.025);opacity:.15}}
@keyframes notebook-ink{to{stroke-dashoffset:0}}
@keyframes notebook-record{0%,29%{opacity:0;transform:translate(343px,151px) rotate(-5deg)}34%{opacity:1;transform:translate(343px,151px) rotate(-5deg)}47%{transform:translate(461px,148px) rotate(-5deg)}49%{transform:translate(343px,173px) rotate(-5deg)}62%{transform:translate(461px,170px) rotate(-5deg)}64%{transform:translate(343px,195px) rotate(-5deg)}77%{transform:translate(461px,192px) rotate(-5deg)}79%{transform:translate(343px,217px) rotate(-5deg)}94%,100%{opacity:1;transform:translate(468px,225px) rotate(2deg)}}
.wood-box{transform-origin:320px 280px;animation:box-appear 2s ease both}.wood-box-lid{transform-origin:320px 198px;animation:box-open 5s cubic-bezier(.35,0,.2,1) both;transform-style:preserve-3d}.manuscript-stacks{animation:box-pages 5s ease both}.manuscript-stacks>g{transform-origin:center;animation:manuscript-reveal 6s ease both}
@keyframes box-appear{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:none}}
@keyframes box-open{0%,25%{transform:translateY(0) scaleY(1)}65%,100%{transform:scaleY(-1.05)}}
@keyframes box-pages{0%,24%{opacity:0}55%,100%{opacity:1}}
@keyframes manuscript-reveal{0%,40%{opacity:0}67%,100%{opacity:1}}
.red-thread{position:fixed;right:-36px;bottom:12px;width:min(56vw,430px);aspect-ratio:1;pointer-events:none;z-index:0;opacity:.6}.red-thread svg{width:100%;height:100%;overflow:visible}.red-thread path{fill:none;stroke:#a13b4d;stroke-linecap:round;stroke-dasharray:1200;stroke-dashoffset:1200;animation:thread-appear 7s ease both}.red-thread .thread-line{stroke-width:1}.red-thread .thread-glow{stroke-width:3;filter:url(#thread-glow);opacity:.7}.game-body:has(.red-thread)>article{position:relative;z-index:1}
@keyframes thread-appear{0%,12%{stroke-dashoffset:1200;opacity:0}40%{opacity:1}100%{stroke-dashoffset:0;opacity:.8}}
.in-cinema{background:#000}.in-cinema .grain{display:none}.in-cinema .game{padding:0;max-width:none;min-height:100svh}.in-cinema .game-header{display:none}.blackout-stage{position:relative;background:#000;min-height:100svh;display:grid;place-items:center;padding:40px 8% 120px}.blackout-stage>p{max-width:620px;margin:0;font:18px/2.2 Story,serif;letter-spacing:1px;color:#d6d3cf;animation:fall-unconscious 8s ease both}.cinema-next{position:absolute;bottom:42px;left:50%;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;gap:15px;min-height:44px;white-space:nowrap;font:12px/1.9 Story,serif;letter-spacing:2px;color:#b3b0b7}.cinema-next .icon{width:19px;height:19px}.blackout-next{animation:darkness-control 8s ease both}
@keyframes fall-unconscious{0%,62%{opacity:1;filter:blur(0)}100%{opacity:0;filter:blur(6px)}}
@keyframes darkness-control{0%,94%{opacity:0;visibility:hidden}100%{opacity:1;visibility:visible}}
.unmask-stage{width:min(100%,760px);margin:auto;padding:40px 30px 75px;background:#05060a;min-height:100svh}.unmask-stage video{display:block;width:100%;max-height:62svh;background:#000;margin:0 auto 35px}.unmask-stage .prose{font-size:18px}.unmask-stage .next{margin-top:28px}.blood-stage{position:relative;min-height:100svh;background:#05060a;overflow:hidden}.blood-underlay{max-width:760px;margin:auto;opacity:.32;padding:40px 30px 100px;filter:blur(.6px)}.blood-underlay img{display:block;width:100%;max-height:60svh;object-fit:contain;margin:0 auto 35px}.blood-splatter{position:fixed;inset:0;width:100vw;height:100svh;pointer-events:none;z-index:2}.blood-impact{transform-origin:50% 40%;animation:blood-hit .4s cubic-bezier(.12,.8,.2,1) both}.blood-trails{transform-origin:50% 25%;animation:blood-drip 3.3s ease both}.blood-next{position:fixed;z-index:3;animation:blood-control 2.8s ease both}
@keyframes blood-hit{from{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}
@keyframes blood-drip{0%{opacity:0;transform:scaleY(.02)}15%{opacity:1}100%{opacity:1;transform:scaleY(1)}}
@keyframes blood-control{0%,80%{opacity:0;visibility:hidden}100%{opacity:1;visibility:visible}}
.death-ending{background:#000;color:#c9c7c6;position:relative;min-height:100svh;display:grid;place-items:center;padding:40px 7% 120px}.death-ending>p{font:22px/2 Story,serif;letter-spacing:3px;margin:0;animation:death-line 2s ease both}.death-ending-actions{position:absolute;bottom:35px;left:6%;right:6%;display:flex;flex-wrap:wrap;gap:15px 28px;align-items:center;justify-content:center;animation:death-line 2s 1s ease both}.death-ending-actions button{display:flex;align-items:center;gap:10px;font-size:11px;letter-spacing:1px;color:#85858e;min-height:44px}
@keyframes death-line{from{opacity:0}to{opacity:1}}
@media(max-width:640px){.recording-scene{padding:19px 15px 15px;min-height:128px}.recording-bars{gap:3px;height:68px}.recording-bars i{width:2px;max-height:54px}.recording-meta{font-size:7px;letter-spacing:1px}.evidence-message>div{font-size:15px;padding:13px 15px}.unmask-stage{padding:24px 22px 65px}.unmask-stage .prose{font-size:17px;line-height:2.1}.unmask-stage video{max-height:56svh;margin-bottom:27px}.blood-underlay{padding:24px 22px 90px}.blackout-stage>p{font-size:17px}.red-thread{right:-27px;bottom:54px;width:67vw;opacity:.5}.death-ending>p{font-size:20px;letter-spacing:2px}.animation-only{padding-top:45px}}
@media(prefers-reduced-motion:reduce){[data-motion=bird] .cage-door{transform:skewY(-15deg) scaleX(.15)}[data-motion=bird] .bird-flight{transform:translate(515px,100px)}.served-bowl{opacity:1;transform:none}.food-steam{opacity:1}.steam-curl{opacity:.2}.offered-spoon{opacity:1;transform:translate(321px,330px) rotate(7deg) scale(1.8)}.knot-tangle{transform:scale(.28)}.knot-tail{transform:scaleX(1);opacity:1}.notebook-open{opacity:1}.notebook-cover{transform:scaleX(.025);opacity:.15}.notebook-line{stroke-dashoffset:0}.notebook-pen{opacity:1;transform:translate(468px,225px) rotate(2deg)}.wood-box{opacity:1}.wood-box-lid{transform:scaleY(-1.05)}.manuscript-stacks,.manuscript-stacks>g{opacity:1}.red-thread path{stroke-dashoffset:0;opacity:.8}.blackout-stage>p{opacity:.5;filter:none}.blackout-next,.blood-next{opacity:1;visibility:visible}.blood-impact,.blood-trails{opacity:1;transform:none}.death-ending>p,.death-ending-actions{opacity:1}}

.balance-beam{transform-origin:320px 122px;animation:balance-sway 6s ease-in-out infinite}.balance-pan-left{transform-origin:150px 139px;animation:balance-counter 6s ease-in-out infinite}.balance-pan-right{transform-origin:490px 139px;animation:balance-counter 6s ease-in-out infinite}
@keyframes balance-sway{0%,100%{transform:rotate(-7deg)}50%{transform:rotate(7deg)}}
@keyframes balance-counter{0%,100%{transform:rotate(7deg)}50%{transform:rotate(-7deg)}}
.window-raindrop{animation:rain-on-window var(--rain-time) var(--rain-delay) linear infinite}
@keyframes rain-on-window{0%{transform:translateY(-135px);opacity:0}12%{opacity:1}85%{opacity:.8}100%{transform:translateY(185px);opacity:0}}
.death-ending-actions .primary-button{font-size:12px;color:#b4b1bf;border-color:#7d789957;min-width:160px;padding:12px 20px;justify-content:center;background:#302d3a26}
@media(prefers-reduced-motion:reduce){.balance-beam,.balance-pan-left,.balance-pan-right{transform:none}.window-raindrop{transform:translateY(0);opacity:.7}}
