@font-face{font-family:Story;src:url('fonts/story-v2.woff2') format('woff2');font-weight:200 900;font-display:swap}@font-face{font-family:Hand;src:url('fonts/hand.woff2') format('woff2');font-display:swap}
:root{--bg:#0b0d19;--panel:#141725;--paper:#e4dfd5;--muted:#9798a8;--line:#ffffff20;--blue:#979bdf;--wine:#9b666a;--font-size:18px;color-scheme:dark}*{box-sizing:border-box}html{background:var(--bg);scroll-behavior:smooth}body{margin:0;color:var(--paper);font-family:Story,'Songti SC','Noto Serif CJK SC',serif;-webkit-font-smoothing:antialiased}button,input,select{font:inherit}button{cursor:pointer;color:inherit;border:0;background:none;-webkit-tap-highlight-color:transparent}button:disabled{opacity:.35;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #aca8f0;outline-offset:5px}input,select{color:var(--paper);background:#ffffff07;border:1px solid var(--line);border-radius:4px;padding:14px;width:100%}a{color:inherit}.ui,.eyebrow,label,.meta,nav,.tag{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','PingFang SC',sans-serif}.grain{position:fixed;inset:0;pointer-events:none;z-index:99;opacity:.045;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='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' opacity='.6' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}.icon{width:20px;height:20px;display:inline-block;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round}.quiet{color:var(--muted);font-size:13px}.eyebrow{text-transform:uppercase;letter-spacing:3px;font-size:10px;color:#acacc3}.rule{display:block;height:1px;width:48px;background:#b6b0d2;margin:25px 0}.site-header{position:absolute;top:0;left:0;right:0;height:105px;padding:0 5.5%;display:flex;align-items:center;justify-content:space-between;z-index:5}.brand{display:flex;gap:13px;align-items:center;letter-spacing:3px;font-size:13px}.brand .icon{height:25px}.header-actions{display:flex;gap:25px;align-items:center}.header-actions button{font-size:12px;color:#cccbd8;display:flex;gap:9px;align-items:center;min-height:44px}.cover{position:relative;min-height:100svh;background:radial-gradient(ellipse at 25% 40%,#232369 0%,#17174e 36%,#0b0c22 88%);overflow:hidden;display:flex;align-items:center}.cover:after{content:'';position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 180px #02041070}.cover-art{position:absolute;right:-4%;top:15%;width:68%;height:75%;object-fit:cover;object-position:55% center;filter:grayscale(1) contrast(.95);mix-blend-mode:screen;opacity:.7;mask-image:linear-gradient(90deg,transparent,#000 25%,#000 80%,transparent)}.cover-haze{position:absolute;width:420px;height:420px;right:13%;top:10%;background:#6966aa1c;filter:blur(85px);border-radius:50%;animation:breathe 12s ease-in-out infinite alternate}.cover-content{z-index:2;position:relative;margin:110px 0 110px 12%;width:550px}.issue{display:flex;gap:15px;align-items:center;letter-spacing:3px;font:10px/1.8 -apple-system,sans-serif;color:#b3b0cf}.issue:before{content:'';width:24px;height:1px;background:#aaa5c2}.korean{font-family:Hand,Story,serif;font-weight:400;font-size:43px;letter-spacing:2px;margin:44px 0 5px;color:#e5dfed;transform:rotate(-4deg);transform-origin:left}.cover h1{font-size:clamp(48px,6.4vw,88px);font-weight:400;letter-spacing:9px;line-height:1.3;margin:12px 0 23px;white-space:nowrap}.cover-subtitle{font-family:Georgia,serif;font-size:11px;letter-spacing:5px;color:#aca8c5;text-transform:uppercase}.cover-lede{font-size:15px;line-height:2.15;color:#c0bccf;margin:37px 0 34px;letter-spacing:2px}.cover-lede em{display:block;font-style:normal;color:#dfd9e8}.enter{border:1px solid #d9d4ed69;min-height:55px;min-width:224px;display:flex;align-items:center;justify-content:space-between;padding:0 22px;font-size:14px;letter-spacing:4px;background:#ffffff04;transition:.3s}.enter:hover{background:#ffffff10;border-color:#d9d4ed}.cover-buttons{display:flex;flex-direction:column;align-items:flex-start;gap:15px}.text-button{font-size:12px;letter-spacing:2px;color:#b7b2cc;padding:8px 0}.cover-footer{position:absolute;bottom:32px;left:5.5%;right:5.5%;display:flex;justify-content:space-between;align-items:flex-end;gap:16px;z-index:2}.cover-footer .meta{font-size:9px;line-height:2;letter-spacing:2px;color:#9c97b9}.volume{position:absolute;right:5.5%;bottom:100px;writing-mode:vertical-rl;font:9px/1.5 Georgia,serif;letter-spacing:4px;color:#8e89a9}.small-star{color:#b8a8cb;font-size:22px;margin-right:12px}.fade-in{animation:arrive .65s ease both}@keyframes arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes breathe{to{opacity:.3;transform:translateX(-45px)}}
.game{max-width:1440px;margin:auto;min-height:100svh;padding:0 5% 110px}.game-header{height:88px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);gap:20px}.game-title{font-size:14px;letter-spacing:4px}.game-header .chapter{font-size:11px;letter-spacing:2px;color:#a0a0b7}.game-body{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:7%;padding-top:48px;align-items:start}.visual-panel{position:sticky;top:30px}.scene-frame{position:relative;overflow:hidden;background:#10121b;min-height:210px}.scene-image{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;filter:saturate(.6) brightness(.8)}.scene-image.portrait{object-position:center 28%;aspect-ratio:4/4.5}.scene-caption{margin-top:15px;display:flex;justify-content:space-between;font:10px/1.8 -apple-system,sans-serif;letter-spacing:2px;color:#8e91a4}.scene-title{margin:14px 0 8px;font-size:29px;font-weight:400;letter-spacing:4px}.chapter-line{display:flex;gap:14px;align-items:center}.chapter-line:after{content:'';height:1px;background:var(--line);flex:1}.prose{font-size:var(--font-size);line-height:1.95;letter-spacing:.45px;overflow-wrap:anywhere}.prose p{margin:23px 0}.prose .dialogue{color:#f0e8dc}.prose .notice{font-family:-apple-system,sans-serif;font-size:12px;line-height:1.8;color:#9599b5;letter-spacing:1px;margin-top:22px}.choices{display:flex;flex-direction:column;gap:12px;margin:32px 0 18px}.choice{display:flex;gap:15px;align-items:baseline;text-align:left;border:1px solid #ffffff20;padding:17px 18px;background:linear-gradient(90deg,#ffffff04,transparent);font-size:15px;line-height:1.8;transition:.25s}.choice:hover{background:#757ac41a;border-color:#888bc28c}.choice .choice-num{font:9px -apple-system,sans-serif;color:#81859f;letter-spacing:1px}.choice .arrow{margin-left:auto;color:#8d8da7;flex-shrink:0}.choice.primary{border-color:#9893cc77}.next{min-height:50px;display:flex;gap:20px;align-items:center;padding:12px 0;font-size:14px;letter-spacing:2px;color:#c4c0da}.reading-tools{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding:20px 0;color:#84899e;font:10px -apple-system,sans-serif;letter-spacing:1px;margin-top:24px}.bottom-nav{position:fixed;bottom:0;left:0;right:0;background:#0b0e1aef;backdrop-filter:blur(20px);border-top:1px solid var(--line);z-index:20;display:flex;justify-content:center;padding:8px 15px calc(8px + env(safe-area-inset-bottom))}.nav-inner{max-width:560px;width:100%;display:flex;justify-content:space-around}.nav-button{display:flex;flex-direction:column;align-items:center;gap:7px;color:#9096aa;font-size:10px;letter-spacing:2px;min-width:60px;min-height:49px;padding:5px}.nav-button.active{color:#e7dfd0}.nav-button .dot{position:absolute;margin-left:20px;background:#b18b8f;width:4px;height:4px;border-radius:50%}.room-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 20px}.room-tab{padding:10px 15px;font-size:12px;border:1px solid var(--line);color:#9c9db0}.room-tab.active{color:#e4dfd5;border-color:#a6a2c3;background:#ffffff0a}.hotspot{position:absolute;border:1px solid #e8dfc5ad;border-radius:50%;background:#131825a6;backdrop-filter:blur(5px);width:42px;height:42px;display:grid;place-items:center;transform:translate(-50%,-50%);box-shadow:0 0 0 6px #ffffff09}.hotspot.collected{color:#989cba;border-color:#989cba}.hotspot:not(.collected):after{content:'';position:absolute;inset:-6px;border:1px solid #fff4;border-radius:50%;animation:pulse 3s infinite}@keyframes pulse{to{transform:scale(1.35);opacity:0}}.investigation-list{display:grid;gap:8px;margin:20px 0}.investigation-item{padding:14px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;text-align:left;font-size:15px;gap:12px}.investigation-item small{font:10px -apple-system,sans-serif;color:#9398b1;letter-spacing:1px}.progress-track{height:2px;background:#ffffff13;width:100%;margin:15px 0}.progress-fill{height:2px;background:#aea4cf;transition:width .5s}.wide{max-width:850px;margin:40px auto}.wide h2{font-weight:400;letter-spacing:4px;font-size:30px}.page-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.clue-card{text-align:left;border:1px solid var(--line);padding:0;overflow:hidden;background:#ffffff02}.clue-card img{width:100%;height:135px;object-fit:cover;filter:saturate(.5);display:block}.clue-card .clue-blank{height:90px;display:grid;place-items:center;background:#ffffff03;color:#7c819e}.clue-card .clue-name{padding:14px;font-size:13px;line-height:1.6}.clue-card small{display:block;color:#878da4;font:9px/1.8 -apple-system,sans-serif;letter-spacing:1px;margin-top:7px}.empty{padding:50px 20px;text-align:center;color:#8d94aa;font-size:14px;line-height:2}.filter-row{display:flex;gap:15px;margin:20px 0}.filter-row button{font-size:12px;color:#999eb1;padding:7px 0;border-bottom:1px solid transparent}.filter-row button.active{color:#e4dfd5;border-color:#e4dfd5}.searchbar{display:flex;border:1px solid var(--line);padding:4px 6px;gap:5px;background:#ffffff03;margin:24px 0}.searchbar input{border:none;background:none;min-width:0;font-family:-apple-system,sans-serif;font-size:14px}.searchbar button{padding:8px 15px;color:#bab6d3}.result{padding:20px 0;border-bottom:1px solid var(--line);display:block;width:100%;text-align:left}.result strong{font-size:17px;font-weight:400;color:#cac4e7;display:block;line-height:1.7}.result p{font-size:13px;color:#9196aa;line-height:1.8;margin:10px 0 0}.result small{font:9px -apple-system,sans-serif;letter-spacing:2px;color:#7f869e}.chat-layout{display:grid;grid-template-columns:220px 1fr;border:1px solid var(--line);min-height:520px}.contacts{border-right:1px solid var(--line);background:#ffffff02}.contact{width:100%;display:flex;align-items:center;gap:12px;text-align:left;padding:18px 12px;border-bottom:1px solid var(--line)}.contact.active{background:#888bb017}.avatar{width:42px;height:42px;background:#33374c;border:1px solid #ffffff18;border-radius:50%;display:grid;place-items:center;font-size:16px;flex-shrink:0;overflow:hidden}.avatar img{width:100%;height:100%;object-fit:cover}.contact strong{font:12px/1.8 -apple-system,sans-serif;font-weight:400}.contact small{font:9px/1.8 -apple-system,sans-serif;color:#8c94a9;display:block}.chat-title{padding:17px 20px;border-bottom:1px solid var(--line);font:13px -apple-system,sans-serif;display:flex;gap:12px;align-items:center}.chat-messages{padding:24px 20px;display:flex;flex-direction:column;gap:15px;max-height:65svh;overflow:auto}.chat-date{text-align:center;color:#7f879e;font:9px -apple-system,sans-serif;letter-spacing:2px;margin-bottom:10px}.bubble{max-width:85%;padding:12px 15px;background:#262b3b;color:#dedee5;align-self:flex-start;font:14px/1.8 -apple-system,'PingFang SC',sans-serif;border-radius:2px 13px 13px 13px}.bubble.me{align-self:flex-end;background:#434462;color:#eeebf6;border-radius:13px 2px 13px 13px}.chat-replies{padding:18px;border-top:1px solid var(--line)}.chat-replies .choice{font:13px/1.7 -apple-system,sans-serif;padding:13px;margin:8px 0}.chat-back{display:none}.unread{width:5px;height:5px;background:#ba9292;border-radius:50%;margin-left:auto}.modal-scrim{position:fixed;inset:0;background:#030610b8;backdrop-filter:blur(10px);z-index:50;display:flex;align-items:center;justify-content:center;padding:25px;overflow-y:auto}.modal{position:relative;background:#111624;border:1px solid #ffffff25;width:min(100%,630px);max-height:90svh;overflow:auto;padding:36px;box-shadow:0 20px 100px #0009}.modal h2{font-weight:400;letter-spacing:3px;font-size:25px;margin-top:12px}.modal-close{position:sticky;top:0;float:right;width:38px;height:38px;display:grid;place-items:center;background:#141a29e8;z-index:2;margin:-12px -12px 0 0}.modal img{display:block;width:100%;max-height:62svh;object-fit:contain;background:#080a12;margin:20px auto}.modal .prose{font-size:17px}.modal .eyebrow{margin-top:5px}.modal .primary-button,.primary-button{min-height:50px;background:#8b86b521;border:1px solid #a7a0cd7a;padding:13px 20px;font-size:14px;letter-spacing:2px;text-align:center}.form-group{margin:26px 0}.form-group label{display:block;font-size:12px;letter-spacing:2px;margin-bottom:12px;color:#b0aec5}.avatar-options{display:flex;gap:14px}.avatar-option{width:56px;height:56px;border:1px solid var(--line);border-radius:50%;font-size:22px;background:#ffffff04}.avatar-option.selected{border-color:#d0c9e6;background:#7772b140}.settings-row{margin:25px 0;font:13px/1.8 -apple-system,sans-serif}.settings-row label{display:flex;justify-content:space-between;margin-bottom:13px;color:#aaaec1}.settings-row input[type=range]{padding:0;width:100%;accent-color:#a6a0d5}.settings-row button{border:1px solid var(--line);padding:9px 15px;font-size:12px}.toggle{display:flex;gap:10px;align-items:center}.ending{min-height:100svh;position:relative;background:#0b0d1a;padding:60px 6% 45px;display:flex;flex-direction:column;align-items:center;text-align:center}.ending-art{position:absolute;inset:0;width:100%;height:65svh;object-fit:cover;object-position:center 35%;opacity:.35;filter:grayscale(1);mask-image:linear-gradient(#000 15%,transparent)}.ending-content{z-index:1;max-width:650px;margin-top:55px}.ending h1{font-weight:400;font-size:clamp(32px,5vw,55px);letter-spacing:6px;line-height:1.5;margin:25px 0}.ending .prose{text-align:left;color:#c7c5d0;line-height:2.1}.ending .ending-line{font-size:14px;line-height:2.1;color:#b5aec6;margin:30px 0;letter-spacing:2px}.ending-stats{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:24px 0;margin:32px 0}.ending-stats strong{display:block;font-family:Georgia,serif;font-weight:400;font-size:29px;color:#d6cce6;margin-bottom:10px}.ending-stats span{font:10px -apple-system,sans-serif;color:#9692ac}.ending-actions{display:flex;flex-direction:column;gap:15px;align-items:center}.ending-actions button{width:min(100%,320px)}.ending video{width:100%;max-height:60svh;display:block;margin:25px 0;background:#000}.collection{display:grid;gap:15px;margin:25px 0}.collection-entry{border-bottom:1px solid var(--line);padding:16px 0;display:flex;align-items:center;gap:16px;text-align:left;width:100%}.collection-entry img{width:66px;height:66px;object-fit:cover;filter:grayscale(1)}.collection-entry strong{font-size:16px;font-weight:400;letter-spacing:2px}.collection-entry small{display:block;color:#8e93a8;font:10px/2 -apple-system,sans-serif;margin-top:5px}.locked{opacity:.45}.match-evidence{display:flex;flex-wrap:wrap;gap:9px;margin:20px 0}.evidence-chip{font-size:13px;line-height:1.6;border:1px solid var(--line);padding:12px 14px;text-align:left}.evidence-chip.selected{background:#a49dd421;border-color:#b4a9d9}.hint{color:#c9a4a5;font:13px/1.8 -apple-system,sans-serif;min-height:24px}.case-note{border-left:1px solid #9087b4;padding:5px 0 5px 18px;font-size:14px;color:#b3aec7;line-height:1.9;margin:24px 0}.history-entry{border-bottom:1px solid var(--line);padding:18px 0}.history-entry small{font:10px -apple-system,sans-serif;letter-spacing:2px;color:#888fa7}.history-entry p{font-size:15px;line-height:1.9}.history-entry .chosen{color:#b6afd8;font:12px/1.8 -apple-system,sans-serif}#toast{position:fixed;left:50%;bottom:100px;transform:translate(-50%,10px);background:#27293ceF;border:1px solid #a6a1c74d;color:#ece6f5;padding:14px 22px;font:12px/1.7 -apple-system,sans-serif;z-index:80;opacity:0;transition:.3s;pointer-events:none;text-align:center;max-width:90%;width:max-content}#toast.visible{opacity:1;transform:translate(-50%,0)}.full-image{cursor:zoom-in}.lightbox{width:min(98vw,1250px)}.lightbox img{max-height:78svh}.hint-label{font:10px -apple-system,sans-serif;color:#8a91a6;letter-spacing:1px}.scroll-cue{display:flex;gap:10px;align-items:center;margin-top:28px;font:10px -apple-system,sans-serif;letter-spacing:2px;color:#a09bb9}
@media(min-width:1500px){.cover-content{margin-left:16%}.cover-art{right:2%;width:62%}}
@media(max-width:900px){.game-body{gap:5%;grid-template-columns:1fr 1fr}.game{padding-left:4%;padding-right:4%}.cover-content{margin-left:9%}.cover h1{font-size:63px}.cover-art{right:-20%;width:90%;opacity:.54}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.site-header{height:80px;padding:0 7%}.brand{font-size:11px;gap:9px;letter-spacing:2px}.header-actions{gap:18px}.header-actions .hide-mobile{display:none}.header-actions button{font-size:11px}.cover{min-height:100svh;align-items:flex-start}.cover-content{width:86%;margin:clamp(155px,26svh,230px) 7% 175px}.cover-art{width:125%;right:-35%;top:9%;height:59%;opacity:.5;object-position:57% center;mask-image:linear-gradient(90deg,transparent,#000 28%,#000 78%,transparent)}.cover-haze{right:-40%;width:100%}.issue{font-size:9px;letter-spacing:2px}.korean{font-size:35px;margin-top:31px}.cover h1{font-size:clamp(40px,11vw,59px);letter-spacing:5px;margin:10px 0 18px}.cover-subtitle{font-size:8px;letter-spacing:3px}.cover-lede{font-size:13px;line-height:2.2;letter-spacing:1.5px;margin:28px 0}.enter{min-width:200px;min-height:51px;font-size:13px}.cover-footer{bottom:25px;left:7%;right:7%}.cover-footer .meta{font-size:8px;letter-spacing:1px}.cover-footer .right-note{display:none}.volume{font-size:8px;bottom:130px;right:7%;letter-spacing:3px}.scroll-cue{display:none}.game{padding:0 6% 115px}.game-header{height:73px;gap:10px}.game-title{font-size:12px;letter-spacing:2px}.game-header .chapter{font-size:9px;letter-spacing:1px}.game-body{display:block;padding-top:26px}.visual-panel{position:relative;top:auto;margin-bottom:27px}.scene-image{aspect-ratio:16/10}.scene-image.portrait{aspect-ratio:16/10;object-position:center 28%}.scene-caption{font-size:9px;margin-top:11px;letter-spacing:1px}.scene-title{font-size:25px;margin-top:13px}.prose{line-height:1.95;letter-spacing:.3px}.prose p{margin:23px 0}.choice{font-size:15px;padding:16px 14px;line-height:1.8}.eyebrow{font-size:9px;letter-spacing:2px}.wide{margin:28px auto}.wide h2{font-size:25px}.cards{gap:10px}.clue-card img{height:105px}.clue-card .clue-name{font-size:12px;padding:12px}.room-tabs{gap:5px;margin-bottom:15px}.room-tab{padding:10px 12px;font-size:11px}.modal-scrim{padding:14px}.modal{padding:27px 23px;max-height:92svh}.modal .prose{font-size:16px}.modal h2{font-size:23px}.chat-layout{grid-template-columns:1fr;min-height:60svh}.contacts{border:none}.contact{padding:19px 15px}.chat-panel{display:none}.chat-layout.open-chat .contacts{display:none}.chat-layout.open-chat .chat-panel{display:block}.chat-back{display:block}.chat-messages{padding:22px 14px;max-height:53svh}.chat-title{padding:13px 15px}.bubble{font-size:14px}.ending{padding:35px 7% 35px}.ending-content{margin-top:45px}.ending h1{letter-spacing:3px}.ending .prose{font-size:17px}.ending-stats{gap:9px}.ending-stats span{font-size:9px}.ending-stats strong{font-size:26px}.hotspot{width:40px;height:40px}.reading-tools{font-size:9px}.page-top{gap:12px}.game-header button{min-height:44px}.avatar-options{gap:10px}.avatar-option{width:50px;height:50px}.cover .text-button{font-size:11px}.full-image{touch-action:manipulation}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.cover-art{mask-image:radial-gradient(ellipse at 58% 50%,#000 25%,#0009 55%,transparent 77%)}
.player-chip{font-family:serif;font-size:11px;color:#c5bddb;display:block;margin-bottom:4px;letter-spacing:2px}.modal .ending-content h1{font-size:28px;letter-spacing:3px;line-height:1.5}
@media(max-width:640px){.cover-art{mask-image:radial-gradient(ellipse at 55% 45%,#000 23%,#0008 52%,transparent 75%)}}
/* Revised cover follows the author's poster: a flat blue field, generous space,
   an unmasked photograph, and restrained bilingual film typography. */
@font-face{font-family:FilmCN;src:url('fonts/film-cn.woff2') format('woff2');font-weight:200;font-display:swap}
@font-face{font-family:FilmKR;src:url('fonts/film-kr.woff2') format('woff2');font-weight:200;font-display:swap}
.poster-cover{display:block;background:#2d31ae;min-height:100svh;padding:0 0 140px;overflow:hidden}
.poster-cover:after{display:none}
.poster-cover .site-header{height:90px;color:#fff}
.poster-cover .brand{opacity:.8;font-size:12px;letter-spacing:2px}
.poster-cover .header-actions button{color:#f1efff}
.poster-wrap{position:relative;width:min(100%,960px);padding-top:clamp(230px,37svh,360px);margin:0 auto}
.poster-picture{width:80%;margin:0}
.poster-picture img{display:block;width:100%;height:auto;filter:none;aspect-ratio:1191/665;object-fit:cover}
.poster-titles{position:relative;text-align:right;margin:-49px 5% 0 0;z-index:2;pointer-events:none}
.poster-korean{font-family:FilmKR,'Noto Serif KR',serif;font-size:clamp(40px,7.2vw,73px);font-weight:200;letter-spacing:-1px;line-height:1.22;margin:0;color:#fff;white-space:nowrap}
.cover .poster-titles h1{font-family:FilmCN,Story,'Songti SC',serif;font-size:clamp(26px,3.8vw,38px);font-weight:200;letter-spacing:5px;line-height:1.7;margin:8px 0 0;white-space:nowrap;color:#fff}
.poster-english{font:8px/1.8 Georgia,serif;letter-spacing:3px;color:#eeedffab;margin:10px 0 0}
.poster-controls{display:flex;flex-direction:column;align-items:flex-end;gap:12px;margin:43px 5% 0 0}
.poster-cover .enter{font-size:12px;letter-spacing:3px;min-width:205px;min-height:49px;border:1px solid #ffffff70;background:transparent;color:#fff}
.poster-cover .enter:hover{background:#ffffff0c;border-color:#fff}
.poster-cover .text-button{color:#f0eeffbd;font-size:11px}
.poster-cover .cover-footer{bottom:27px;left:5.5%;right:5.5%}
.poster-cover .cover-footer .meta{color:#f0eeff95;font-size:8px;letter-spacing:2px}
/* Every viewport uses the requested image-above-text composition. */
.game{max-width:1120px;padding:0 5% 115px}
.game-body{display:flex;flex-direction:column;gap:0;max-width:960px;margin:0 auto;padding-top:32px}
.visual-panel,.game-body .visual-panel{position:static;top:auto;width:100%;margin:0}
.game-body>article{width:100%;max-width:760px;margin:30px auto 0}
.game-body:not(:has(.visual-panel))>article{margin-top:0}
.scene-frame{min-height:0}
.scene-image,.scene-image.portrait{display:block;width:100%;height:auto;aspect-ratio:auto;object-fit:contain;object-position:center;filter:none}
.story-image{max-height:620px;max-height:70svh;background:#0b0d19}
.scene-image.investigation-image{max-height:none;width:100%;height:auto;aspect-ratio:auto}
.scene-caption{margin-top:12px}
.investigation-surface{position:relative}
.no-room-image{min-height:145px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:transparent}
.hotspot{width:40px;height:40px;background:#131825ad;box-shadow:0 0 0 4px #ffffff08}
.hotspot .icon{width:17px;height:17px}
.investigation-layout>article{max-width:800px;margin-top:28px}
.upload-avatar-row{display:flex;gap:20px;align-items:center}
.avatar-upload-preview{width:74px;height:74px;border:1px solid #a5a1bd77;border-radius:50%;display:grid;place-items:center;overflow:hidden;background:#ffffff04;flex-shrink:0}
.avatar-upload-preview img,.self-avatar img{width:100%;height:100%;object-fit:cover;display:block}
.avatar-upload-preview .icon{width:27px;height:27px;color:#aaa6c1}
.upload-avatar-button{border:1px solid var(--line);padding:10px 16px;font:12px -apple-system,sans-serif;min-height:42px}
.upload-avatar-row .hint-label{line-height:1.7;font-size:10px;margin:9px 0 0}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.player-chip{display:flex;align-items:center;gap:7px;line-height:24px;margin-bottom:7px}
.self-avatar{width:24px;height:24px;border-radius:50%;overflow:hidden;display:inline-grid;place-items:center;background:#ffffff0c;color:#e0d9f2;font-size:12px}
@media(max-width:640px){
 .poster-cover{padding-bottom:125px;min-height:100svh}
 .poster-cover .site-header{height:76px;padding:0 7%}
 .poster-cover .brand{font-size:10px;letter-spacing:1px}
 .poster-wrap{padding-top:clamp(225px,38svh,340px)}
 .poster-picture{width:80%}
 .poster-titles{margin-top:-31px;margin-right:5%}
 .poster-korean{font-size:clamp(34px,10.5vw,52px);letter-spacing:-1px}
 .cover .poster-titles h1{font-size:26px;letter-spacing:3px;margin-top:6px;line-height:1.6}
 .poster-english{font-size:7px;letter-spacing:2px;margin-top:8px}
 .poster-controls{margin-top:31px;gap:10px}
 .poster-cover .enter{min-width:176px;min-height:44px;font-size:11px;padding:0 16px}
 .poster-cover .cover-footer{left:7%;right:5%;bottom:22px}
 .game{padding:0 6% 115px}
 .game-body{padding-top:23px}
 .game-body>article{margin-top:25px}
 .story-image{max-height:62svh}
 .scene-image.investigation-image{aspect-ratio:auto;max-height:none}
 .scene-caption{font-size:9px;letter-spacing:1px}
 .scene-title{font-size:25px}
 .hotspot{width:38px;height:38px}
 .no-room-image{min-height:125px}
 .upload-avatar-row{gap:14px}
 .avatar-upload-preview{width:64px;height:64px}
}
@media(max-height:700px){.poster-wrap{padding-top:190px}.poster-controls{margin-top:22px}.poster-cover{min-height:760px}}
/* Keep the poster and its entry control together on wider, shorter screens. */
@media(min-width:641px){
 .poster-cover{padding-bottom:65px}
 .poster-wrap{width:min(100%,520px);padding-top:clamp(180px,30svh,300px)}
 .poster-titles{margin-top:-36px}
 .poster-korean{font-size:clamp(43px,7.3svh,62px)}
 .cover .poster-titles h1{font-size:30px;line-height:1.5;letter-spacing:4px;margin-top:6px}
 .poster-controls{margin-top:26px;gap:9px}
 .poster-cover .cover-footer{bottom:22px}
}
