:root{--ink:#090807;--panel:#12100e;--panel2:#181411;--oxblood:#72141c;--red:#a52b32;--parchment:#e8ddca;--ivory:#fff8ec;--muted:#a89d8c;--brass:#a9874f;--line:rgba(169,135,79,.34)}
:root{--font-geist-sans:Pretendard,"Noto Sans KR",sans-serif;--font-geist-mono:ui-monospace,SFMono-Regular,Menlo,monospace}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--ink);color:var(--parchment);font-family:Pretendard,"Noto Sans KR",sans-serif}
button,input,select,textarea{font:inherit}
button,a{color:inherit}
button{cursor:pointer}
a{text-decoration:none}

.playground{position:relative;min-height:100dvh;background:#090807;color:#eee4d2;display:grid;grid-template-columns:minmax(340px,42%) 1fr;overflow:hidden}
.playground::before{content:"";position:absolute;inset:0;background:url("red-banquet-hero.png") center/cover no-repeat;opacity:.55;z-index:0}
.playground::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,7,6,.97) 0%,rgba(8,7,6,.82) 40%,rgba(8,7,6,.42) 64%,rgba(8,7,6,.72) 100%),linear-gradient(0deg,rgba(8,7,6,.92),transparent 58%);z-index:1}
.prototype-panel,.device-stage{position:relative;z-index:2}
.prototype-panel{min-height:100dvh;padding:58px clamp(38px,5vw,90px);display:flex;flex-direction:column;justify-content:center;background:transparent;border-right:1px solid rgba(176,143,88,.16)}
.back-home{position:absolute;top:35px;left:clamp(38px,5vw,90px);font-size:.78rem;color:#a49073}
.back-home:hover,.back-home:focus-visible{color:#dfc18e}
.case-brief,.case-timeline,.case-cast{width:min(100%,500px)}
.case-eyebrow{font:.66rem/1 var(--font-geist-mono);letter-spacing:.22em;color:#b39562;margin:0 0 13px}
.case-title{font:600 clamp(3rem,5vw,5.4rem)/1 "Hahmlet","Nanum Myeongjo",serif;letter-spacing:-.065em;margin:0;color:#fff8ec;text-shadow:0 5px 28px rgba(0,0,0,.55)}
.case-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 13px;margin-top:16px;color:#b9ad9c;font-size:.72rem}
.case-meta b{color:#b98e54;font-weight:600}
.case-meta span{position:relative;padding-left:11px}
.case-meta span::before{content:"";position:absolute;left:0;top:50%;width:3px;height:3px;border-radius:50%;background:#746858;transform:translateY(-50%)}
.case-logline{max-width:480px;margin:16px 0 0;color:#a99a86;font-size:.88rem;line-height:1.85;word-break:keep-all}
.case-section-label{margin:0 0 9px;color:#7c7061;font:500 .62rem/1 "Hahmlet","Nanum Myeongjo",serif;letter-spacing:.1em}
.case-timeline{margin-top:28px}
.case-timeline ol{position:relative;list-style:none;margin:0;padding:0}
.case-timeline ol::before{content:"";position:absolute;left:16px;top:17px;bottom:17px;width:1px;background:linear-gradient(#5a4938,#332b23);opacity:.8}
.case-timeline li{position:relative;margin:0;padding:0}
.case-timeline button{position:relative;width:100%;min-height:37px;padding:5px 4px 5px 0;border:0;background:transparent;color:#71675b;display:grid;grid-template-columns:34px 1fr;gap:12px;align-items:center;text-align:left}
.case-timeline button b{position:relative;z-index:1;width:33px;height:25px;border:1px solid #3e342a;background:#0d0b09;display:grid;place-items:center;color:#5f554a;font:.53rem var(--font-geist-mono);transition:border-color .2s ease,color .2s ease,background .2s ease}
.case-timeline button span{font-size:.76rem;letter-spacing:.01em;transition:color .2s ease,transform .2s ease}
.case-timeline button:hover span,.case-timeline button:focus-visible span{color:#c9b28e;transform:translateX(3px)}
.case-timeline button:focus-visible{outline:1px solid rgba(185,142,84,.58);outline-offset:2px}
.case-timeline button.active{color:#dfc18e}
.case-timeline button.active b{border-color:#8c3035;background:#281214;color:#b42c37;box-shadow:0 0 18px rgba(180,44,55,.18)}
.case-cast{margin-top:23px;transition:opacity .2s ease}
.case-cast.dim{opacity:.45}
.case-cast .cast-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}
.case-cast .cast-row button{min-width:0;padding:9px 4px 8px;border:1px solid rgba(94,78,61,.4);background:rgba(13,11,9,.68);color:#83786c;display:flex;flex-direction:column;align-items:center;gap:6px;backdrop-filter:blur(3px);transition:border-color .2s ease,background .2s ease,color .2s ease,transform .2s ease}
.case-cast .cast-row button:hover,.case-cast .cast-row button:focus-visible{border-color:#7f6848;color:#d7c7af;transform:translateY(-2px)}
.case-cast .cast-row button:focus-visible{outline:1px solid rgba(185,142,84,.58);outline-offset:2px}
.case-cast .cast-row button i{width:31px;height:31px;border-radius:50%;display:grid;place-items:center;color:#fff;font:700 .7rem "Hahmlet","Nanum Myeongjo",serif;font-style:normal;box-shadow:0 5px 16px rgba(0,0,0,.35)}
.case-cast .cast-row button span{min-width:0;font-size:.67rem;display:flex;flex-direction:column;align-items:center;gap:2px}
.case-cast .cast-row button small{color:#665e55;font-size:.52rem}
.case-cast .cast-row button.active{border-color:#9e7d4e;background:rgba(40,29,20,.84);color:#f0dec2}
.case-cast .cast-row button.active small{color:#a7967e}
.device-stage{height:100dvh;min-height:760px;display:grid;place-items:center;background:radial-gradient(circle at 50% 42%,rgba(37,23,17,.55),transparent 60%);overflow:hidden}
.ambient{position:absolute;border:1px solid rgba(171,130,71,.16);border-radius:50%}
.ambient-one{width:690px;height:690px}
.ambient-two{width:850px;height:850px;border-color:rgba(133,29,38,.12)}
.phone-shell{width:390px;height:min(840px,94dvh);min-height:700px;border:1px solid #765f3c;border-radius:42px;background:#0b0a09;box-shadow:0 44px 110px #000,0 0 0 7px #181410,0 0 0 8px #3e3326;overflow:hidden;position:relative;z-index:2}
.phone-top{height:28px;padding:8px 21px 0;display:flex;justify-content:space-between;align-items:center;font:600 .62rem var(--font-geist-sans);position:absolute;inset:0 0 auto;z-index:20;color:#e7dfd2}
.phone-top i{position:absolute;left:50%;top:8px;transform:translateX(-50%);width:82px;height:18px;border-radius:20px;background:#030303}
.phone-top b{font-size:.55rem;letter-spacing:1px}
.role-reveal,.game-screen{height:100%;padding-top:28px}
.role-reveal{background:radial-gradient(circle at 50% 30%,rgba(104,25,31,.28),transparent 34%),#0d0b0a;padding-inline:22px;overflow-y:auto}
.role-reveal header{height:47px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #2b251e;font-size:.68rem;color:#82786b}
.role-reveal header span{font:600 .8rem "Noto Serif KR","Nanum Myeongjo",serif;color:#d8cbb7}
.role-reveal header button{border:1px solid #665339;border-radius:50%;background:transparent;color:#bba57f;width:23px;height:23px}
.role-progress{display:flex;gap:5px;margin:22px 0 19px}
.role-progress i{height:2px;background:#332b23;flex:1}
.role-progress .done{background:#685b48}
.role-progress .active{background:#b99056}
.step-label{font:.61rem var(--font-geist-mono);letter-spacing:.14em;color:#a88856;margin:0 0 7px}
.role-reveal h2{font:600 1.55rem/1.3 "Noto Serif KR","Nanum Myeongjo",serif;letter-spacing:-.055em;margin:0;color:#f9eddb}
.reveal-guide{font-size:.71rem;color:#756d63;margin:6px 0 17px}
.identity-card{position:relative;text-align:center;padding:21px 20px 18px;background:linear-gradient(160deg,color-mix(in srgb,var(--role-color) 26%,#17120f),#12100e 55%);border:1px solid color-mix(in srgb,var(--role-color) 65%,#493c2e);overflow:hidden}
.identity-card:before,.identity-card:after{content:"";position:absolute;width:55px;height:55px;border:1px solid color-mix(in srgb,var(--role-color) 55%,transparent);transform:rotate(45deg)}
.identity-card:before{top:-34px;left:-34px}
.identity-card:after{bottom:-34px;right:-34px}
.identity-seal{width:47px;height:47px;margin:auto;display:grid;place-items:center;border:1px solid var(--role-color);border-radius:50%;color:#f9e3c1;font:700 1rem "Noto Serif KR","Nanum Myeongjo",serif;box-shadow:0 0 25px color-mix(in srgb,var(--role-color) 35%,transparent)}
.identity-card>p{font:.52rem var(--font-geist-mono);letter-spacing:.18em;color:#8f806d;margin:10px 0 4px}
.identity-card h3{font:600 1.55rem "Noto Serif KR","Nanum Myeongjo",serif;margin:0;color:#fff4e2}
.identity-card>span{font-size:.72rem;color:var(--role-color)}
.public-profile{text-align:left;border-top:1px solid rgba(255,255,255,.09);margin-top:15px;padding-top:12px}
.public-profile small,.secret-card small{font-size:.58rem;color:#897c6c}
.public-profile p{font-size:.7rem;line-height:1.65;color:#b9aea0;margin:5px 0 0}
.secret-card{min-height:120px;border:1px dashed #6a5135;background:#120f0c;margin-top:12px;position:relative;overflow:hidden;cursor:pointer;touch-action:none;user-select:none;-webkit-user-select:none;outline:0}
.secret-card:focus-visible{box-shadow:0 0 0 2px #c39a5d}
.secret-copy{height:100%;padding:14px 15px;text-align:left;filter:blur(8px);opacity:.22;transition:filter .14s ease,opacity .14s ease}
.secret-copy>small{color:#c19a62}
.secret-copy>p{font-size:.66rem;line-height:1.55;color:#cbbba7;margin:4px 0 9px}
.secret-copy>b{font-size:.62rem;color:#c29e63}
.secret-card.revealing .secret-copy{filter:none;opacity:1}
.secret-veil{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(circle,rgba(76,42,25,.3),#120f0c 72%);transition:opacity .14s ease}
.secret-card.revealing .secret-veil{opacity:0;pointer-events:none}
.secret-veil>span{width:28px;height:28px;border:1px solid #9e7745;border-radius:50%;display:grid;place-items:center;color:#d0a665;font-size:.75rem}
.secret-veil>b{font-size:.72rem;margin:6px 0 3px;color:#decbaa}
.secret-veil small{font-size:.55rem}
.secret-card.viewed{border-style:solid;border-color:#795c3a}
.secret-card.viewed .secret-veil>span{border-color:#52705c;color:#87bd96}
.hold-track{position:absolute;left:0;right:0;bottom:0;height:3px;background:#292019}
.hold-track u{display:block;height:100%;background:linear-gradient(90deg,#7f2028,#d1aa67);transition:width 24ms linear}
.timed-secret-peek{display:block;width:max-content;min-width:145px;min-height:24px;margin:5px 0 0 auto;border:0;background:none;color:#8d7d69;padding:2px 0;font-size:.49rem;text-decoration:underline;text-underline-offset:3px}
.timed-secret-peek:hover,.timed-secret-peek:focus-visible{color:#d2b27f}
.role-ready-gate{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:8px}
.role-ready-gate>span{display:grid;grid-template-columns:22px 1fr;grid-template-rows:auto auto;column-gap:7px;align-items:center;border:1px solid #352e27;background:#13110f;padding:7px;color:#6f665d}
.role-ready-gate i{grid-row:1/3;width:21px;height:21px;border-radius:50%;display:grid;place-items:center;border:1px solid #4a4036;font:600 .46rem var(--font-geist-mono);font-style:normal}
.role-ready-gate b{font-size:.5rem}
.role-ready-gate small{font-size:.4rem;color:#5e5750}
.role-ready-gate>span.done{border-color:#39513f;color:#b8c9bc}
.role-ready-gate>span.done i{background:#24452f;border-color:#467256;color:#90c39f}
.enter-case{width:100%;min-height:46px;background:#7e1922;border:1px solid #b04b52;color:#fff0dc;margin:9px 0 22px;font-size:.75rem;font-weight:700}
.enter-case:disabled{background:#29231d;border-color:#403831;color:#635b52;cursor:not-allowed}
.game-screen{display:flex;flex-direction:column;background:#0d0b0a}
.game-header{padding:13px 17px 10px;display:flex;justify-content:space-between;align-items:end}
.game-header p{font:.49rem var(--font-geist-mono);letter-spacing:.11em;color:#796c5d;margin:0 0 4px}
.game-header strong{font:600 1.1rem "Noto Serif KR","Nanum Myeongjo",serif;color:#f3e6d2}
.phase-clock{display:flex;align-items:center;gap:7px}
.phase-clock span{font:600 .9rem var(--font-geist-mono);color:#d1b27b}
.phase-clock span.urgent{color:#e0515e}
.phase-clock button{border:0;background:#1b1713;color:#9d8d78;border-radius:50%;width:28px;height:28px}
.role-strip{margin:0 13px 10px;padding:8px 9px;display:flex;align-items:center;border:1px solid #312a23;background:#15120f}
.role-strip>span{width:34px;height:34px;display:grid;place-items:center;color:white;font:700 .65rem "Noto Serif KR","Nanum Myeongjo",serif;border-radius:2px}
.role-strip p{margin:0 0 0 9px;display:flex;flex-direction:column}
.role-strip small{font-size:.5rem;color:#70675e}
.role-strip b{font-size:.69rem;color:#d8cbbb;margin-top:2px}
.role-strip button{margin-left:auto;border:1px solid #4d4131;background:transparent;color:#ac9674;padding:6px 9px;font-size:.58rem}
.screen-scroll{flex:1;min-height:0;overflow-y:auto;padding:0 13px 22px;scrollbar-width:none}
.screen-scroll::-webkit-scrollbar{display:none}
.bottom-nav{height:63px;border-top:1px solid #2a241e;background:rgba(13,11,10,.96);display:grid;grid-template-columns:repeat(5,1fr);flex-shrink:0;padding-bottom:5px}
.bottom-nav button{position:relative;border:0;background:transparent;color:#645c54;font-size:.53rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}
.bottom-nav button>span{font-size:1.02rem;line-height:1}
.bottom-nav button.active{color:#d2b27b}
.bottom-nav button i{position:absolute;top:8px;right:18px;width:14px;height:14px;border-radius:50%;background:#a12b35;color:white;font-style:normal;font-size:.48rem;display:grid;place-items:center}
.phase-card{background:radial-gradient(circle at 90% 10%,rgba(143,35,44,.25),transparent 34%),linear-gradient(145deg,#211814,#14110e);border:1px solid #4b3827;padding:15px 16px;margin-bottom:10px}
.phase-line{display:flex;justify-content:space-between;align-items:center}
.phase-line span{font-size:.57rem;color:#b18f60}
.phase-line b{font:.57rem var(--font-geist-mono);color:#857762}
.phase-card h2{font:600 1.15rem "Noto Serif KR","Nanum Myeongjo",serif;letter-spacing:-.045em;color:#f7e8d0;margin:11px 0 5px}
.phase-card p{font-size:.65rem;color:#978b7d;line-height:1.55;margin:0}
.progress-track{height:3px;background:#30271f;margin:13px 0}
.progress-track i{display:block;width:61%;height:100%;background:linear-gradient(90deg,#7f1b25,#c09759)}
.phase-card button{padding:0;border:0;background:none;color:#d4b47d;font-size:.62rem}
.phase-card button span{margin-left:5px}
.skill-card{display:grid;grid-template-columns:39px 1fr;gap:10px;padding:13px;border:1px solid color-mix(in srgb,var(--role-color) 50%,#332b23);background:color-mix(in srgb,var(--role-color) 8%,#12100e);margin-bottom:18px}
.skill-icon{width:39px;height:39px;border-radius:50%;background:var(--role-color);display:grid;place-items:center;font:700 .65rem "Noto Serif KR","Nanum Myeongjo",serif;color:white}
.skill-card small{font-size:.52rem;color:var(--role-color)}
.skill-card h3{font:600 .82rem "Noto Serif KR","Nanum Myeongjo",serif;color:#ede0cf;margin:3px 0}
.skill-card p{font-size:.59rem;line-height:1.5;color:#897f74;margin:0}
.skill-card button{grid-column:1/-1;height:34px;border:1px solid color-mix(in srgb,var(--role-color) 60%,#42372c);background:transparent;color:#cfb990;font-size:.6rem}
.skill-card.used{opacity:.55}
.mobile-section-title{display:flex;align-items:center;justify-content:space-between;margin:14px 1px 8px}
.mobile-section-title h3,.inner-title{font:600 .82rem "Noto Serif KR","Nanum Myeongjo",serif;margin:0;color:#e8dac7}
.mobile-section-title button{border:0;background:none;color:#81705a;font-size:.56rem}
.clue-row{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.mini-clue{position:relative;text-align:left;border:1px solid #2f2922;background:#14120f;color:#ddd0bf;padding:10px;display:flex;gap:8px;align-items:center;min-width:0}
.mini-clue>i{font-style:normal;width:31px;height:31px;display:grid;place-items:center;background:#251d16;color:#c3a26e}
.mini-clue span{min-width:0;display:flex;flex-direction:column}
.mini-clue small{font-size:.46rem;color:#6f655b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mini-clue b{font-size:.61rem;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mini-clue em{position:absolute;right:4px;top:4px;font:.42rem var(--font-geist-mono);color:#d84a55}
.suspect-peek{border:1px solid #2f2922}
.suspect-peek button{width:100%;border:0;border-bottom:1px solid #28231e;background:#12100e;color:#d5c8b6;display:flex;align-items:center;padding:8px 10px;text-align:left}
.suspect-peek button:last-child{border-bottom:0}
.suspect-peek i,.statement>i,.private-room>i{width:29px;height:29px;border-radius:50%;background:#332821;display:grid;place-items:center;font:700 .55rem "Noto Serif KR","Nanum Myeongjo",serif;color:#d7b982;font-style:normal}
.suspect-peek span{display:flex;flex-direction:column;font-size:.63rem;margin-left:9px}
.suspect-peek small{font-size:.49rem;color:#6d645b;margin-top:2px}
.suspect-peek b{margin-left:auto;color:#b47d6c;font:.58rem var(--font-geist-mono)}
.final-cta{width:100%;height:40px;margin-top:10px;border:1px solid #4d3e2d;background:#17120e;color:#caaa77;font-size:.62rem}
.view-title{padding:11px 2px 14px;position:relative}
.view-title p{font:.48rem var(--font-geist-mono);letter-spacing:.18em;color:#997c50;margin:0 0 5px}
.view-title h2{font:600 1.38rem "Noto Serif KR","Nanum Myeongjo",serif;letter-spacing:-.05em;margin:0;color:#f3e6d2}
.view-title>span{font-size:.58rem;color:#766d64}
.scene-map{height:154px;border:1px solid #3a3026;position:relative;overflow:hidden;background:linear-gradient(90deg,transparent 49%,rgba(170,135,80,.14) 50%,transparent 51%),linear-gradient(0deg,transparent 49%,rgba(170,135,80,.12) 50%,transparent 51%),#17130f;background-size:38px 38px}
.scene-map:after{content:"";position:absolute;inset:44px 65px 22px 40px;border:1px solid #5f4e38;transform:skew(-10deg)}
.map-copy{position:absolute;left:10px;top:9px;display:flex;flex-direction:column;z-index:2}
.map-copy small{font-size:.47rem;color:#796a58}
.map-copy b{font-size:.56rem;color:#ba9e73;margin-top:2px}
.room{position:absolute;z-index:3;border:1px solid #5b4832;background:#201913;color:#a8967c;font-size:.5rem;padding:6px}
.room i{position:absolute;right:-7px;top:-7px;background:#8a202b;color:#fff;border-radius:50%;width:14px;height:14px;font-style:normal;display:grid;place-items:center}
.room-a{left:72px;top:65px}
.room-b{right:60px;top:53px}
.room-c{right:92px;bottom:15px}
.you{position:absolute;left:45%;top:55%;z-index:4;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;color:#fff;font:700 .48rem "Noto Serif KR","Nanum Myeongjo",serif;box-shadow:0 0 0 5px rgba(255,255,255,.08)}
.clue-filters,.talk-tabs{display:flex;gap:6px;padding:12px 0 9px;overflow-x:auto}
.clue-filters button,.talk-tabs button{white-space:nowrap;border:1px solid #302922;background:transparent;color:#7a7066;padding:6px 10px;font-size:.54rem}
.clue-filters button.active,.talk-tabs button.active{background:#b39361;color:#17110c;border-color:#b39361}
.clue-list{display:flex;flex-direction:column;gap:7px}
.clue-list>button{display:grid;grid-template-columns:42px 1fr 10px;gap:10px;align-items:center;text-align:left;border:1px solid #2d2822;background:#13110f;color:#d8ccbb;padding:10px}
.clue-list>button>i{width:42px;height:42px;background:#261e17;display:grid;place-items:center;color:#c29d65;font-style:normal;font-size:1rem}
.clue-list span{min-width:0}
.clue-list small{display:block;color:#776c61;font-size:.48rem}
.clue-list b{display:block;font-size:.68rem;margin:3px 0}
.clue-list p{font-size:.53rem;color:#81776e;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.clue-list em{font-style:normal;color:#745f43}
.talk-tabs{padding-top:2px}
.talk-tabs button{flex:1}
.talk-tabs i{display:inline-grid;place-items:center;width:14px;height:14px;background:#92232d;color:white;border-radius:50%;font-style:normal}
.meeting-card{background:#1a1511;border-left:2px solid #9f7b48;padding:12px 13px;margin-bottom:9px}
.meeting-card small{font-size:.5rem;color:#8d7552}
.meeting-card p{font:600 .7rem/1.55 "Noto Serif KR","Nanum Myeongjo",serif;color:#dbcbb4;margin:5px 0 0}
.statement{position:relative;display:flex;gap:9px;border-bottom:1px solid #29241e;padding:12px 2px}
.statement>i{flex-shrink:0}
.statement>div{min-width:0}
.statement b{font-size:.64rem}
.statement b small{font-size:.5rem;color:#88775e;margin-left:4px}
.statement p{font-size:.58rem;line-height:1.55;color:#a09589;margin:5px 0}
.statement span{font-size:.45rem;color:#5f5750}
.statement>button{position:absolute;right:0;top:10px;border:1px solid #41382e;background:none;color:#8b7960;font-size:.48rem;padding:4px}
.privacy-notice{font-size:.54rem;color:#796f65;text-align:center;padding:5px}
.private-room{width:100%;display:flex;align-items:center;gap:9px;border:1px solid #2d2721;background:#13110f;color:#d8ccbc;padding:10px;text-align:left;margin-bottom:7px}
.private-room span{display:flex;flex-direction:column;min-width:0}
.private-room b{font-size:.62rem}
.private-room small{font-size:.52rem;color:#746b62;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.private-room em{margin-left:auto;width:17px;height:17px;border-radius:50%;display:grid;place-items:center;background:#8e222c;font-style:normal;font-size:.48rem}
.new-room{width:100%;height:38px;border:1px dashed #4a4034;background:transparent;color:#987f5c;font-size:.58rem}
.voice-bar{position:absolute;left:13px;right:13px;bottom:70px;height:46px;border:1px solid #382f26;background:#17130f;box-shadow:0 -12px 25px rgba(8,7,6,.8);display:flex;align-items:center;padding:5px}
.voice-bar button{border:0;background:none;color:#a99473}
.voice-bar span{font-size:.54rem;color:#73695f;margin:auto}
.voice-bar .mic{width:34px;height:34px;border-radius:50%;background:#81202a;color:#e9bdc1}
.theory-summary{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid #302922;margin-bottom:17px}
.theory-summary span{display:flex;flex-direction:column;text-align:center;padding:10px;border-right:1px solid #302922}
.theory-summary span:last-child{border:0}
.theory-summary small{font-size:.48rem;color:#6f665d}
.theory-summary b{font:600 1rem var(--font-geist-mono);color:#c6a36a;margin-top:4px}
.inner-title{font-size:.72rem;margin-bottom:7px}
.suspect-list{border:1px solid #302922}
.suspect-list>button{width:100%;border:0;border-bottom:1px solid #29231e;background:#13110f;color:#d8cbbb;display:grid;grid-template-columns:34px 1fr 34px;gap:8px;align-items:center;padding:9px;text-align:left}
.suspect-list>button:last-child{border-bottom:0}
.suspect-list>button>i{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#322821;color:#d4b47e;font:700 .53rem "Noto Serif KR","Nanum Myeongjo",serif;font-style:normal}
.suspect-list span{display:flex;flex-direction:column}
.suspect-list span b{font-size:.6rem}
.suspect-list span small{font-size:.47rem;color:#71685f;margin:2px 0 5px}
.suspect-list span em{height:2px;background:#332a24}
.suspect-list span u{display:block;height:100%;background:linear-gradient(90deg,#927344,#a43740)}
.suspect-list strong{font:.53rem var(--font-geist-mono);color:#aa7d70}
.working-theory{position:relative;background:#1c1713;border:1px solid #3e3328;margin-top:12px;padding:12px}
.working-theory small{font-size:.5rem;color:#9b7c4f}
.working-theory p{font-size:.61rem;line-height:1.6;color:#aaa095;margin:5px 0}
.working-theory mark{background:rgba(155,118,59,.22);color:#e1c18b}
.working-theory button{border:0;background:none;color:#9c815b;font-size:.49rem;padding:0}
.final-button,.submit-vote{width:100%;height:42px;margin:10px 0;border:1px solid #ac4c53;background:#791b24;color:#fff0de;font-size:.62rem}
.question-label{font-size:.61rem;color:#b3a796;margin:8px 0}
.accuse-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.accuse-grid button{position:relative;border:1px solid #332c25;background:#14110f;color:#cfc2b1;padding:11px;display:grid;grid-template-columns:31px 1fr;text-align:left}
.accuse-grid i{grid-row:1/3;width:28px;height:28px;border-radius:50%;background:#312720;display:grid;place-items:center;font:700 .5rem "Noto Serif KR","Nanum Myeongjo",serif;color:#cca86d;font-style:normal}
.accuse-grid b{font-size:.6rem}
.accuse-grid small{font-size:.47rem;color:#766c62}
.accuse-grid span{display:none;position:absolute;right:6px;top:6px}
.accuse-grid button.active{border-color:#b4434c;background:#261317}
.accuse-grid button.active span{display:block;color:#e06a73}
.evidence-select{width:100%;display:flex;align-items:center;gap:9px;text-align:left;border:1px solid #3d332a;background:#17130f;color:#d6c8b6;padding:10px}
.evidence-select>i{width:32px;height:32px;background:#292018;display:grid;place-items:center;color:#c09b64;font-style:normal}
.evidence-select span{display:flex;flex-direction:column}
.evidence-select small{font-size:.45rem;color:#756b61}
.evidence-select b{font-size:.58rem;margin-top:3px}
.evidence-select em{margin-left:auto;color:#9e815a;font-style:normal;font-size:.5rem}
.motive-select{width:100%;height:40px;border:1px solid #3d332a;background:#17130f;color:#bcb0a1;text-align:left;padding:0 11px;font-size:.58rem}
.motive-select span{float:right}
.submit-vote:disabled{background:#302824;color:#6b6158;border-color:#453a31}
.vote-complete{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px}
.vote-complete>span{width:52px;height:52px;border:1px solid #b39058;border-radius:50%;display:grid;place-items:center;color:#d7ba88;font-size:1.4rem}
.vote-complete>p:first-of-type{font:.5rem var(--font-geist-mono);letter-spacing:.16em;color:#977a4f;margin:18px 0 5px}
.vote-complete h2{font:600 1.35rem "Noto Serif KR","Nanum Myeongjo",serif;color:#f0e1cb;margin:0}
.vote-complete>p:last-of-type{font-size:.6rem;color:#746b62}
.vote-complete>div{display:flex;gap:6px;margin:20px}
.vote-complete>div i{width:24px;height:3px;background:#af8b56}
.vote-complete>div .waiting{background:#332c26}
.vote-complete button{border:1px solid #4a3e31;background:transparent;color:#a98d65;padding:9px 14px;font-size:.56rem}
.role-card-view section{border:1px solid #302922;background:#13110f;padding:12px;margin-top:8px}
.role-card-main{text-align:center;padding:20px 17px;border:1px solid color-mix(in srgb,var(--role-color) 55%,#3b3026);background:linear-gradient(145deg,color-mix(in srgb,var(--role-color) 18%,#16120f),#12100e)}
.role-card-main>span{width:44px;height:44px;border-radius:50%;background:var(--role-color);display:grid;place-items:center;margin:auto;color:#fff;font:700 .7rem "Noto Serif KR","Nanum Myeongjo",serif}
.role-card-main small{display:block;color:var(--role-color);font-size:.52rem;margin-top:9px}
.role-card-main h3{font:600 1.25rem "Noto Serif KR","Nanum Myeongjo",serif;margin:2px;color:#f4e6d2}
.role-card-main p,.role-card-view section p{font-size:.58rem;line-height:1.55;color:#968b7f}
.role-card-view section small{font-size:.51rem;color:#b28d57}
.role-card-view section p{margin:5px 0 0}
.role-card-view .role-skill{border-color:#5a4630}
.sheet-backdrop{position:absolute;inset:0;z-index:50;background:rgba(0,0,0,.7);backdrop-filter:blur(3px);display:flex;align-items:end}
.clue-sheet{width:100%;max-height:86%;overflow-y:auto;border-top:1px solid #8b6d44;background:#16120f;padding:9px 20px 25px;position:relative;border-radius:22px 22px 0 0;animation:sheet-in .22s ease}
.clue-sheet>i{display:block;width:37px;height:3px;border-radius:3px;background:#4d4237;margin:0 auto 12px}
.clue-sheet>button{position:absolute;right:18px;top:15px;border:0;background:none;color:#8c8174;font-size:1.2rem}
.clue-visual{height:105px;background:radial-gradient(circle,#38281c,#211913 60%,#15120f);display:grid;place-items:center;color:#d0a667;font-size:2.8rem;border:1px solid #3d3024}
.clue-sheet>p{font:.48rem var(--font-geist-mono);letter-spacing:.14em;color:#a28250;margin:15px 0 4px}
.clue-sheet h2{font:600 1.3rem "Noto Serif KR","Nanum Myeongjo",serif;color:#f1e1cb;margin:0}
.clue-sheet>span{font-size:.53rem;color:#746a61}
.clue-description{border-top:1px solid #302921;margin-top:14px;padding-top:12px}
.clue-description small{font-size:.5rem;color:#98794e}
.clue-description p{font-size:.62rem;line-height:1.65;color:#b5a99b;margin:5px 0}
.clue-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:13px}
.clue-actions button{border:1px solid #4c3e2e;background:#1c1712;color:#c5a571;padding:9px 5px;font-size:.53rem}
@keyframes sheet-in{from{transform:translateY(100%)}
to{transform:none}
}

@media(max-width:980px){.playground{grid-template-columns:300px 1fr}
.prototype-panel{padding:45px 26px}
.back-home{left:26px}
.case-title{font-size:2.55rem}
.case-meta{gap:6px 9px;font-size:.61rem}
.case-logline{font-size:.76rem;line-height:1.7}
.case-timeline{margin-top:20px}
.case-timeline button{gap:8px}
.case-cast .cast-row{gap:3px}
.case-cast .cast-row button{padding:7px 2px}
.case-cast .cast-row button i{width:27px;height:27px;font-size:.61rem}
.case-cast .cast-row button span{font-size:.57rem}
.phone-shell{transform:scale(.93)}
}

@media(max-width:700px){body{background:#0d0b0a}
.playground{display:block;min-height:100dvh}
.playground::before,.playground::after{display:none}
.prototype-panel{display:none}
.device-stage{height:100dvh;min-height:0;display:block;background:#0d0b0a}
.ambient{display:none}
.phone-shell{width:100%;height:100dvh;min-height:0;border:0;border-radius:0;box-shadow:none;transform:none}
.role-reveal{padding-inline:20px}
.phone-top{position:absolute}
.game-header{padding-top:13px}
}

@media(max-height:780px) and (min-width:701px){.phone-shell{transform:scale(.82)}
.prototype-panel{padding-block:30px}
.case-title{font-size:3.2rem}
.case-logline{margin-top:11px;line-height:1.65}
.case-timeline{margin-top:17px}
.case-timeline button{min-height:31px;padding-block:3px}
.case-cast{margin-top:15px}
}

@media(prefers-reduced-motion:reduce){.clue-sheet{animation:none}
}

/* Real-time room, identity, moderation and WebRTC controls. */
.visibility-options.two-options{grid-template-columns:repeat(2,1fr)}
.detail-room-guide{display:grid;grid-template-columns:30px 1fr auto;align-items:center;gap:9px;border:1px solid #453728;background:#17130f;padding:10px;margin:14px 0 2px}
.detail-room-guide>i{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#281b14;color:#d2aa69;font-style:normal}
.detail-room-guide>div{min-width:0;display:flex;flex-direction:column}
.detail-room-guide b{font-size:.53rem;color:#d8c8b2}
.detail-room-guide small{font-size:.43rem;line-height:1.45;color:#766c62;margin-top:2px}
.detail-room-guide>a{font-size:.44rem;color:#c9a56d;white-space:nowrap}
.room-settings-anchor{scroll-margin-top:14px}
.identity-chip{display:grid;grid-template-columns:30px 1fr auto;align-items:center;gap:8px;border:1px solid #413529;background:#15120f;padding:7px 8px;margin:0 0 12px}
.identity-chip>i,.persona-preview>i,.moderation-person>i,.voice-member>i,.spectator-presence>span>i{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--persona);color:#fff4df;font:700 .54rem "Hahmlet","Noto Serif KR",serif;font-style:normal}
.identity-chip>span{display:flex;flex-direction:column}
.identity-chip small{font-size:.4rem;color:#71665c}
.identity-chip b{font-size:.53rem;color:#d9c9b5}
.identity-chip>button{border:0;background:transparent;color:#8f7c65;font-size:.43rem}
.identity-chip.signed-out{display:block;width:100%;border-color:#6e5438;color:#d2ad76;font-size:.53rem}
.capacity-setting{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #2f2922;margin-top:14px;padding:10px 0}
.capacity-setting>span{display:flex;flex-direction:column}
.capacity-setting b{font-size:.57rem;color:#cec1b1}
.capacity-setting small{font-size:.43rem;color:#70675e;margin-top:2px}
.capacity-setting select{border:1px solid #4c3e30;background:#18130f;color:#ddc8a9;padding:7px 20px 7px 9px;font-size:.52rem}
.journey-primary:disabled{opacity:.56;cursor:wait}
.journey-primary.waiting{border-color:#4a4035;background:#201b17;color:#8b8176;cursor:default}

.realtime-seats>span{grid-template-columns:31px minmax(64px,auto) 1fr auto}
.realtime-seats>span>i{background:var(--persona,#31271f)}
.realtime-seats>span>button{border:0;background:transparent;color:#9d886e;padding:5px;font-size:.52rem}
.realtime-seats .empty-seat{opacity:.58}
.realtime-seats .empty-seat>i{background:#24201c;border:1px dashed #50463d;color:#7a7067}
.realtime-seats .offline{opacity:.56}
.spectator-presence{border:1px solid #302a23;background:#12100e;margin-top:9px;padding:8px}
.spectator-presence>div{display:flex;justify-content:space-between;color:#887b6f;font-size:.47rem;margin-bottom:6px}
.spectator-presence>div b{color:#b39469}
.spectator-presence>p{font-size:.43rem;color:#696159;margin:0}
.spectator-presence>span{display:grid;grid-template-columns:25px 1fr auto;align-items:center;gap:7px;border-top:1px solid #29241f;padding:6px 0}
.spectator-presence>span>i{width:23px;height:23px;font-size:.44rem}
.spectator-presence>span>b{font-size:.49rem}
.spectator-presence>span>small{font-size:.42rem;color:#756a60}
.spectator-presence>span>button{border:0;background:transparent;color:#9b8061;font-size:.42rem}

.auth-gate,.moderation-backdrop{position:absolute;inset:0;z-index:80;display:flex;align-items:flex-end;background:rgba(5,4,3,.78);backdrop-filter:blur(5px)}
.auth-gate>section,.moderation-backdrop>section{position:relative;width:100%;max-height:92%;overflow-y:auto;border-top:1px solid #725736;border-radius:22px 22px 0 0;background:radial-gradient(circle at 75% 0,rgba(123,31,40,.17),transparent 35%),#15110e;padding:24px 20px 25px;box-shadow:0 -18px 48px rgba(0,0,0,.5)}
.auth-close,.moderation-backdrop .panel-close{position:absolute;right:17px;top:15px;border:0;background:transparent;color:#918477;font-size:1.1rem}
.auth-kicker{font:.46rem var(--font-geist-mono);letter-spacing:.15em;color:#b38c52;margin:0 0 6px}
.auth-gate h2{font:600 1.15rem/1.45 "Hahmlet","Noto Serif KR",serif;color:#f0dfc7;margin:0 28px 6px 0}
.auth-copy{font-size:.52rem;line-height:1.6;color:#8b8177;margin:0 0 15px}
.auth-copy b{color:#c5a36f}
.auth-gate label{display:block;margin-top:10px}
.auth-gate label>span,.persona-colors>span{display:block;font-size:.47rem;color:#8d8175;margin-bottom:5px}
.auth-gate input{width:100%;height:42px;border:1px solid #4a3c2e;background:#0f0d0b;color:#eadbc8;padding:0 11px;outline:0;font-size:.62rem}
.auth-gate input:focus{border-color:#b08a54}
.auth-error{border-left:2px solid #a83c46;background:#281417;color:#d99a9e;padding:8px;margin:9px 0 0;font-size:.49rem;line-height:1.5}
.auth-primary,.auth-secondary{width:100%;height:42px;margin-top:12px;border:1px solid #a4464d;background:linear-gradient(135deg,#6d151d,#8c202a);color:#fff0dc;font-size:.56rem;font-weight:700}
.auth-secondary{height:34px;margin-top:6px;border-color:#40352b;background:transparent;color:#9a8975;font-weight:500}
.auth-privacy{font-size:.4rem;line-height:1.5;color:#625b54;text-align:center;margin:11px 0 0}
.dev-code{border:1px solid #665032;background:#21180f;padding:10px;text-align:center;margin:11px 0}
.dev-code small,.dev-code span{display:block;font-size:.42rem;color:#8c785d}
.dev-code b{display:block;font:700 1.2rem var(--font-geist-mono);letter-spacing:.18em;color:#e0bd82;margin:5px 0}
.persona-preview{display:flex;align-items:center;gap:9px;border:1px solid #40342a;background:#100e0c;padding:8px;margin:12px 0}
.persona-preview>i{width:35px;height:35px;font-size:.65rem}
.persona-preview>b{font:.65rem "Hahmlet","Noto Serif KR",serif;color:#e5d5bf}
.persona-colors{margin-top:10px}
.persona-colors>div{display:flex;gap:7px}
.persona-colors button{width:27px;height:27px;border:2px solid transparent;border-radius:50%;background:var(--persona);box-shadow:inset 0 0 0 2px #15110e}
.persona-colors button.active{border-color:#e1c18c}

.moderation-person{display:flex;align-items:center;gap:10px}
.moderation-person>i{width:38px;height:38px;font-size:.68rem}
.moderation-person small{font-size:.43rem;color:#8f7758}
.moderation-person h2{font:600 1rem "Hahmlet","Noto Serif KR",serif;color:#eadbc7;margin:2px 0 0}
.moderation-backdrop section>p{font-size:.5rem;line-height:1.55;color:#81766c;margin:12px 0}
.report-reasons{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.report-reasons button{border:1px solid #45372c;background:#17130f;color:#ad9b85;padding:9px 5px;font-size:.47rem}
.kick-player{width:100%;height:38px;border:1px solid #83343a;background:#2b1215;color:#d98d92;margin-top:12px;font-size:.52rem}
.kick-note{display:block;text-align:center;font-size:.4rem;color:#705f5e;margin-top:5px}
.multiplayer-toast{position:absolute;z-index:95;left:12px;right:12px;bottom:14px;display:flex;align-items:center;gap:8px;border:1px solid #765b38;background:rgba(27,20,14,.96);box-shadow:0 8px 30px rgba(0,0,0,.45);padding:10px 11px;color:#d9c5a6;font-size:.49rem;line-height:1.45}
.multiplayer-toast span{flex:1}
.multiplayer-toast button{border:0;background:transparent;color:#9f8c72;font-size:.9rem}

.talk-tabs.three{grid-template-columns:repeat(3,1fr)}
.voice-member-list{border:1px solid #312a23;margin-bottom:8px}
.voice-member{width:100%;display:grid;grid-template-columns:29px 1fr auto;align-items:center;gap:8px;border:0;border-bottom:1px solid #29241f;background:#12100e;color:#bfb2a3;text-align:left;padding:8px}
.voice-member:last-child{border-bottom:0}
.voice-member.active{background:#201820}
.voice-member>i{width:27px;height:27px}
.voice-member>span{display:flex;flex-direction:column}
.voice-member b{font-size:.51rem}
.voice-member small{font-size:.41rem;color:#70675f;margin-top:2px}
.voice-member em{font-style:normal;color:#ae8ac0;font-size:.43rem}
.voice-people>span>i{background:var(--persona,#342820)}
.multiplayer-audio-sinks{position:fixed;width:1px;height:1px;left:-10000px;top:auto;overflow:hidden;pointer-events:none}

.persistent-voice{grid-template-columns:minmax(0,1fr) 68px repeat(3,42px)}
.voice-live{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}


/* spectator mode */
.spectator-banner{display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:8px;border-top:1px solid #3e503f;border-bottom:1px solid #3e503f;background:#111a13;padding:8px 12px;color:#d9e5da}
.spectator-banner>i{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#334b38;color:#8dca98;font-style:normal}.spectator-banner>span{display:flex;flex-direction:column;min-width:0}.spectator-banner b{font-size:.5rem}.spectator-banner small{font-size:.37rem;line-height:1.35;color:#829287;margin-top:2px}.spectator-banner button{border:1px solid #495b4c;background:transparent;color:#9db1a0;padding:6px;font-size:.4rem}
.spectator-mode .screen-scroll [data-action]:not([data-action="open-clue"]):not([data-action="close-clue"]):not([data-action="toggle-return-summary"]):not([data-action="toggle-evidence-map"]):not([data-action="toggle-director"]){cursor:not-allowed}.persistent-voice.spectator-voice{grid-template-columns:minmax(0,1fr) 105px;border-color:#3c4f3f;background:#111813}.spectator-voice .voice-live{color:#8fbb98}.spectator-talk .meeting-card,.spectator-talk .statement{opacity:.82}.bottom-nav.spectator-nav-3{grid-template-columns:repeat(3,1fr)}
.spectator-player-list{border:1px solid #302a23;margin-bottom:10px}.spectator-player-list>span{display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:8px;border-bottom:1px solid #29241f;padding:8px;background:#12100e}.spectator-player-list>span:last-child{border-bottom:0}.spectator-player-list i{width:27px;height:27px;border-radius:50%;display:grid;place-items:center;background:var(--persona);color:#fff;font-style:normal;font-size:.48rem}.spectator-player-list b{font-size:.51rem}.spectator-player-list small{font-size:.42rem;color:#758178}.spectator-location-grid{display:grid;gap:7px}.spectator-location-grid section{border:1px solid #343029;background:#12100e;padding:9px}.spectator-location-grid section>div{display:grid;grid-template-columns:1fr auto;gap:2px 8px}.spectator-location-grid small{font-size:.38rem;color:#8c7555}.spectator-location-grid b{grid-column:1;font:600 .61rem "Hahmlet","Noto Serif KR",serif;color:#ddcfbc}.spectator-location-grid em{grid-column:2;grid-row:1/3;align-self:center;font-style:normal;font-size:.4rem;color:#7e9d84}.spectator-location-grid p{font-size:.43rem;line-height:1.45;color:#776f67;margin:6px 0}.spectator-location-grid section>span{display:flex;flex-wrap:wrap;gap:4px}.spectator-location-grid section>span i{border:1px solid #40372d;background:#181410;color:#9f8e77;padding:4px 6px;font-style:normal;font-size:.37rem}

/* voice rooms */
.live-voice{border:1px solid #5d4933;background:radial-gradient(circle at 82% 18%,rgba(156,42,50,.22),transparent 38%),linear-gradient(145deg,#211914,#15110e);padding:12px;margin-bottom:8px}
.live-voice.private-live{border-color:#765d8f;background:radial-gradient(circle at 80% 15%,rgba(94,69,125,.27),transparent 40%),#17131a}
.live-voice-head{display:flex;align-items:center;justify-content:space-between;font-size:.47rem;color:#8e7b61}
.live-voice-head span{display:flex;align-items:center;gap:5px}
.live-voice-head span>i{width:5px;height:5px;border-radius:50%;background:#dc4855;box-shadow:0 0 8px #dc4855}
.live-voice-head b{font-weight:500;color:#6f665e}
.live-voice h3{font:600 .82rem "Noto Serif KR","Nanum Myeongjo",serif;color:#ebdcc8;margin:7px 0 3px}
.voice-switch-note{font-size:.48rem;color:#9d83ad;margin:0 0 8px}
.voice-people{display:flex;gap:9px;margin:10px 0 12px}
.voice-people>span{display:flex;flex-direction:column;align-items:center;gap:3px;position:relative}
.voice-people>span>i{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#342820;border:1px solid #554332;color:#d6b981;font:700 .52rem "Noto Serif KR","Nanum Myeongjo",serif;font-style:normal}
.voice-people>span>small{font-size:.43rem;color:#7e7369}
.voice-people>span.speaking>i{border-color:#d0a15c;box-shadow:0 0 0 2px rgba(208,161,92,.2),0 0 15px rgba(208,161,92,.24)}
.voice-people>span.speaking:after{content:"";position:absolute;right:0;top:23px;width:7px;height:7px;background:#55aa78;border:2px solid #17130f;border-radius:50%}
.voice-people>span.ai-person>i{background:#46345a;border-color:#80649b;color:#e1caef}
.call-controls{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}
.call-controls button{border:1px solid #40362c;background:#15120f;color:#8e8174;padding:6px 2px;font-size:.46rem;display:flex;justify-content:center;align-items:center;gap:5px}
.call-controls button i{font-style:normal;color:#c2a36f}
.call-controls button.off{color:#bd777d;border-color:#68353a}
.call-controls button.hangup{color:#d58388;border-color:#623238}
.private-room.active{border-color:#8a679b;background:#211827}
.private-room>i{font-family:var(--font-geist-mono);font-size:.44rem}
.private-room>em{width:auto;min-width:33px;padding:4px 6px;border-radius:20px;background:#2b241e;color:#a88e6b}
.private-room.active>em{background:#704982;color:#f0dcf8}
.private-room.ai-room>i{background:#433354;color:#d8bce8}
.busy-status{border-top:1px solid #2b2520;border-bottom:1px solid #2b2520;margin:10px 0;padding:8px 0;display:flex;flex-direction:column;gap:7px}
.busy-status>span{display:grid;grid-template-columns:22px 52px 1fr;align-items:center}
.busy-status i{width:20px;height:20px;border-radius:50%;background:#312820;display:grid;place-items:center;color:#b89968;font:700 .42rem "Noto Serif KR","Nanum Myeongjo",serif;font-style:normal}
.busy-status b{font-size:.5rem;color:#978b7e}
.busy-status small{font-size:.45rem;color:#6f6571;text-align:right}


/* complete mobile journey */
.journey-preview{max-width:520px;display:grid;grid-template-columns:repeat(5,1fr);border:1px solid #302920;margin-bottom:25px}
.journey-preview button{border:0;border-right:1px solid #302920;background:#100e0c;color:#6f665c;min-width:0;padding:11px 4px;font-size:.62rem;display:flex;flex-direction:column;align-items:center;gap:5px}
.journey-preview button:last-child{border:0}
.journey-preview button b{font:.48rem var(--font-geist-mono);color:#534b43}
.journey-preview button.active{background:#211710;color:#dfc18e}
.journey-preview button.active b{color:#b42c37}
.role-preview.dim{opacity:.45}
.journey-screen{height:100%;padding:28px 17px 22px;background:#0d0b0a;overflow-y:auto;scrollbar-width:none}
.journey-screen::-webkit-scrollbar{display:none}
.journey-header{height:47px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #2c261f;color:#80766a;font-size:.63rem}
.journey-header>span{font:600 .78rem "Noto Serif KR","Nanum Myeongjo",serif;color:#d8cbb8}
.journey-header button,.journey-header>a{border:0;background:none;color:#83786b;padding:0}
.journey-header>b{font:600 .7rem "Noto Serif KR","Nanum Myeongjo",serif;color:#d4c5b1}
.journey-primary{width:100%;min-height:45px;border:1px solid #ad4c53;background:linear-gradient(135deg,#6d151d,#8c202a);color:#fff0dc;font-size:.65rem;font-weight:700;margin-top:12px}
.journey-primary span{margin-left:7px}
.selected-case{display:grid;grid-template-columns:68px 1fr 30px;gap:11px;align-items:center;border:1px solid #3d3227;background:#15120f;padding:8px;margin:12px 0 19px}
.case-thumb{height:60px;background:linear-gradient(135deg,rgba(97,15,22,.25),rgba(8,7,6,.25)),url('/assets/red-banquet-hero.png') center/cover}
.selected-case small,.review-case small{font-size:.48rem;color:#8e7755}
.selected-case h2,.review-case h2{font:600 .85rem "Noto Serif KR","Nanum Myeongjo",serif;color:#eee0ca;margin:3px 0}
.selected-case p,.review-case p{font-size:.49rem;color:#766c62;margin:0}
.selected-case>b{color:#d4ad6f;font:.55rem var(--font-geist-mono)}
.journey-title>p{font:.48rem var(--font-geist-mono);letter-spacing:.18em;color:#9d7e50;margin:0 0 6px}
.journey-title h1{font:600 1.45rem/1.3 "Noto Serif KR","Nanum Myeongjo",serif;letter-spacing:-.05em;color:#f2e5d1;margin:0 0 17px}
.room-name{position:relative;display:block}
.room-name>span,.setting-block>span,.review-input>span,.quick-tags>span{display:block;font-size:.53rem;color:#8c8175;margin-bottom:6px}
.room-name input{width:100%;height:41px;border:1px solid #4a3d30;background:#16120f;color:#e5d8c6;padding:0 42px 0 11px;outline:0;font-size:.65rem}
.room-name input:focus{border-color:#a78653}
.room-name small{position:absolute;right:9px;bottom:14px;font-size:.46rem;color:#655c54}
.setting-block{margin-top:15px}
.visibility-options{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}
.visibility-options button{border:1px solid #332c25;background:#13110f;color:#81766b;padding:8px 2px;display:flex;flex-direction:column;align-items:center;font-size:.57rem}
.visibility-options button>b{font-size:.85rem;color:#7d6c55;margin-bottom:3px}
.visibility-options button small{font-size:.42rem;color:#5f5750;margin-top:2px}
.visibility-options button.active{border-color:#ae8b55;background:#251c14;color:#dfc99f}
.visibility-options button.active>b{color:#d2aa69}
.switch-list{border-top:1px solid #2f2922;margin-top:14px}
.switch-list>button,.spoiler-switch{width:100%;display:flex;align-items:center;gap:9px;text-align:left;border:0;border-bottom:1px solid #2b2620;background:transparent;color:#ccc0b0;padding:10px 0}
.switch-list>button>i,.spoiler-switch>i{width:30px;height:17px;border-radius:20px;background:#37312b;position:relative;flex-shrink:0}
.switch-list>button>i u,.spoiler-switch>i u{position:absolute;left:3px;top:3px;width:11px;height:11px;border-radius:50%;background:#77706a;transition:.2s}
.switch-list>button>i.on,.spoiler-switch>i.on{background:#7b2730}
.switch-list>button>i.on u,.spoiler-switch>i.on u{left:16px;background:#edc9a1}
.switch-list span,.spoiler-switch span{display:flex;flex-direction:column}
.switch-list b,.spoiler-switch b{font-size:.58rem}
.switch-list small,.spoiler-switch small{font-size:.45rem;color:#6f665e;margin-top:3px;line-height:1.4}

.lobby-hero{text-align:center;padding:17px 10px 15px;background:radial-gradient(circle at 50% 0,rgba(124,28,36,.25),transparent 55%);border-bottom:1px solid #332a22}
.lobby-hero p{font:.46rem var(--font-geist-mono);letter-spacing:.15em;color:#94764c;margin:0}
.lobby-hero h1{font:600 1.3rem "Noto Serif KR","Nanum Myeongjo",serif;color:#f1e2cb;margin:6px 0 4px}
.lobby-hero span{font-size:.5rem;color:#796f65}
.invite-card{display:grid;grid-template-columns:1fr auto 30px;gap:6px;align-items:center;border:1px solid #4a3b2d;background:#18130f;padding:9px 8px;margin:12px 0}
.invite-card>div{min-width:0}
.invite-card small{display:block;font-size:.43rem;color:#74695e}
.invite-card b{display:block;font:.54rem var(--font-geist-mono);color:#c9ad7e;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.invite-card button{border:1px solid #5a4630;background:#251c14;color:#c4a16b;padding:7px;font-size:.48rem}
.invite-card .qr-button{padding-inline:0}
.lobby-status{display:flex;align-items:end;justify-content:space-between;margin:14px 0 7px}
.lobby-status h2{font:600 .78rem "Noto Serif KR","Nanum Myeongjo",serif;margin:0;color:#dbcebc}
.lobby-status h2 b{color:#c49d62}
.lobby-status>span{font-size:.45rem;color:#645d56}
.seat-list{border:1px solid #302a23}
.seat-list>span{display:grid;grid-template-columns:31px 54px 1fr auto;align-items:center;gap:8px;border-bottom:1px solid #29241f;padding:8px;background:#12100e}
.seat-list>span:last-child{border:0}
.seat-list>span>i{width:29px;height:29px;border-radius:50%;display:grid;place-items:center;background:#31271f;color:#d3b47e;font:700 .5rem "Noto Serif KR","Nanum Myeongjo",serif;font-style:normal}
.seat-list b{font-size:.56rem}
.seat-list small{font-size:.45rem;color:#6f665e}
.seat-list em{font-style:normal;font-size:.45rem;color:#72695f}
.seat-list .ready em{color:#61a979}
.seat-list .ai-seat{background:#17131a}
.seat-list .ai-seat>i{background:#49375a;color:#e4caef}
.seat-list .ai-seat em{color:#b48ac7}
.audio-check{border:1px solid #4a3c2e;background:#17130f;margin-top:10px;padding:9px;display:flex;align-items:center;justify-content:space-between}
.audio-check>div{display:flex;align-items:center;gap:8px}
.audio-check>div>span{font-size:1rem;color:#c5a36b}
.audio-check p{display:flex;flex-direction:column;margin:0}
.audio-check b{font-size:.55rem}
.audio-check small{font-size:.43rem;color:#6d645c;margin-top:2px}
.audio-check button{border:1px solid #5a3437;background:#271416;color:#bc777c;padding:7px;font-size:.45rem}
.audio-check button.on{border-color:#366146;background:#13251a;color:#75c290}
.lobby-notice{font-size:.46rem;line-height:1.5;color:#786b5d;background:#18130f;border-left:2px solid #8d6d43;padding:8px 9px;margin:10px 0 0}

.prologue-screen{height:100%;padding-top:28px;position:relative;background:#070605;overflow:hidden}
.prologue-art{position:absolute;inset:0;background:url('/assets/red-banquet-hero.png') 63% center/cover}
.prologue-shade{position:absolute;inset:0;background:linear-gradient(0deg,#090807 0,rgba(9,8,7,.94) 46%,rgba(9,8,7,.3) 79%),linear-gradient(90deg,rgba(0,0,0,.65),transparent)}
.prologue-screen header{position:relative;z-index:2;height:43px;margin:0 17px;border-bottom:1px solid rgba(211,181,132,.25);display:flex;justify-content:space-between;align-items:center}
.prologue-screen header span{font:.5rem var(--font-geist-mono);letter-spacing:.16em;color:#c5a36e}
.prologue-screen header b{font:.48rem var(--font-geist-mono);color:#786c5e}
.prologue-copy{position:absolute;z-index:2;left:22px;right:22px;bottom:180px}
.prologue-copy>p{font:.46rem var(--font-geist-mono);letter-spacing:.18em;color:#b38c52;margin:0}
.prologue-copy h1{font:600 2.4rem "Noto Serif KR","Nanum Myeongjo",serif;color:#fff0da;letter-spacing:-.07em;margin:6px 0 10px}
.prologue-copy>span{font-size:.61rem;line-height:1.65;color:#b3a899}
.prologue-copy blockquote{font:600 .78rem/1.65 "Noto Serif KR","Nanum Myeongjo",serif;color:#ead7ba;border-left:1px solid #ad8a55;margin:13px 0 0;padding-left:11px}
.broadcast-state{position:absolute;z-index:3;left:17px;right:17px;bottom:115px;border:1px solid #4b3d2d;background:rgba(16,13,10,.88);backdrop-filter:blur(8px);padding:8px;display:flex;align-items:center;gap:8px}
.broadcast-state>span{color:#caa96f}
.broadcast-state p{display:flex;flex-direction:column;margin:0}
.broadcast-state b{font-size:.52rem}
.broadcast-state small{font-size:.42rem;color:#71675e}
.broadcast-state>i{margin-left:auto;font:.45rem var(--font-geist-mono);font-style:normal;color:#b58f55}
.prologue-play,.prologue-next{position:absolute;z-index:3;bottom:64px;height:39px;border:1px solid #5d4933;background:#17120e;color:#c7a66d;font-size:.52rem}
.prologue-play{left:17px;width:120px}
.prologue-next{left:143px;right:17px;background:#7e1c25;border-color:#a8434b;color:#fff0dd}
.prologue-next span{margin-left:4px}

.persistent-voice{height:46px;flex-shrink:0;margin:0 9px 6px;border:1px solid #614735;background:linear-gradient(90deg,#251914,#17120f);display:grid;grid-template-columns:1fr 76px 52px 43px;align-items:center;box-shadow:0 -10px 24px rgba(0,0,0,.35)}
.voice-live{font-size:.47rem;color:#ba9c6d;padding-left:8px;display:flex;align-items:center;gap:5px}
.voice-live>i{width:5px;height:5px;border-radius:50%;background:#d54650;box-shadow:0 0 8px #d54650}
.persistent-voice>p{margin:0;display:flex;flex-direction:column}
.persistent-voice>p b{font-size:.49rem}
.persistent-voice>p small{font-size:.39rem;color:#6f665e}
.persistent-voice>button{height:100%;border:0;border-left:1px solid #3b3128;background:transparent;color:#a76a6f;font-size:.58rem;display:flex;flex-direction:column;align-items:center;justify-content:center}
.persistent-voice>button.on{color:#6fc78d}
.persistent-voice>button small{font-size:.36rem;color:#766c62;margin-top:1px}

.map-avatar{position:absolute;z-index:5;width:22px;height:22px;border-radius:50%;background:#32271f;border:1px solid #ae8a54;display:grid;place-items:center;color:#d7b77e;font:700 .42rem "Noto Serif KR","Nanum Myeongjo",serif}
.map-avatar small{position:absolute;top:23px;font:400 .38rem Pretendard,sans-serif;color:#8d8071;white-space:nowrap}
.avatar-a{left:27%;top:58%}
.avatar-b{right:25%;top:35%}
.avatar-c{right:18%;bottom:14%}
.map-avatar.ai{background:#49375a;border-color:#846499;color:#e4c9f1}

.result-screen{padding-inline:0;padding-bottom:72px;overflow:hidden}
.result-screen .journey-header{margin:0 17px}
.result-hero{text-align:center;padding:14px 24px 16px;background:radial-gradient(circle at 50% 15%,rgba(134,30,40,.25),transparent 55%)}
.result-hero>p{font:.48rem var(--font-geist-mono);letter-spacing:.15em;color:#9d7b4e;margin:0}
.result-hero>strong{font:600 3.2rem/1 var(--font-geist-mono);color:#e3c48d}
.result-hero>strong small{font-size:.8rem;color:#9f8154}
.result-hero h1{font:600 1.2rem "Noto Serif KR","Nanum Myeongjo",serif;color:#f0e3d0;margin:7px 0 4px}
.result-hero>span{font-size:.51rem;color:#81766c}
.result-hero>div{height:3px;background:#312820;margin-top:11px}
.result-hero>div i{display:block;height:100%;background:linear-gradient(90deg,#8d202b,#d1a35d)}
.result-screen.incorrect .result-hero{background:radial-gradient(circle at 50% 15%,rgba(116,28,35,.2),transparent 55%)}
.result-screen.incorrect .result-hero>strong{color:#c88f91}
.result-screen.incorrect .result-hero h1{color:#dbb9b6}
.result-screen.incorrect .result-hero>div i{background:linear-gradient(90deg,#681a22,#a95a55)}
.result-tabs{height:36px;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #302922;border-bottom:1px solid #302922;padding:0 17px}
.result-tabs button{position:relative;border:0;background:transparent;color:#6f665e;font-size:.53rem}
.result-tabs button.active{color:#dbc092}
.result-tabs button.active:after{content:"";position:absolute;left:18px;right:18px;bottom:-1px;height:2px;background:#b68f56}
.result-tabs i{display:inline-grid;place-items:center;width:13px;height:13px;border-radius:50%;background:#8e202a;color:#fff;font-style:normal;font-size:.4rem}
.result-scroll{height:calc(100% - 246px);overflow-y:auto;padding:12px 17px 22px;scrollbar-width:none}
.result-metrics{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid #322b24}
.result-metrics span{padding:9px;text-align:center;border-right:1px solid #322b24;display:flex;flex-direction:column}
.result-metrics span:last-child{border:0}
.result-metrics small{font-size:.43rem;color:#6e655d}
.result-metrics b{font:.8rem var(--font-geist-mono);color:#caa66d;margin-top:3px}
.result-title{font:600 .72rem "Noto Serif KR","Nanum Myeongjo",serif;color:#e2d5c3;margin:15px 0 7px}
.truth-list,.mission-results{border:1px solid #302922}
.truth-list>span,.mission-results>span{display:grid;grid-template-columns:25px 1fr auto;gap:7px;align-items:center;padding:9px;border-bottom:1px solid #29241f}
.truth-list>span:last-child,.mission-results>span:last-child{border:0}
.truth-list>span>i,.mission-results>span>i{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:#28231e;color:#756b61;font-style:normal;font-size:.48rem}
.truth-list .found>i,.mission-results .clear>i{background:#163220;color:#6fc28b}
.truth-list .missed{opacity:.6}
.truth-list p,.mission-results p{margin:0;display:flex;flex-direction:column}
.truth-list b,.mission-results b{font-size:.55rem}
.truth-list small,.mission-results small{font-size:.43rem;color:#6c645c;margin-top:2px}
.truth-list em,.mission-results em{font-style:normal;font:.44rem var(--font-geist-mono);color:#9d8058}
.rank-switch{display:grid;grid-template-columns:1fr 1fr;background:#17130f;padding:3px}
.rank-switch button{border:0;background:transparent;color:#6c645c;padding:6px;font-size:.5rem}
.rank-switch button.active{background:#b69059;color:#17110d}
.my-rank{text-align:center;border:1px solid #4b3b2c;background:radial-gradient(circle at 50% 0,rgba(134,30,40,.2),transparent 52%),#15110e;padding:15px;margin-top:8px}
.my-rank>small{font-size:.47rem;color:#88765d}
.my-rank>strong{display:block;font:600 2.3rem var(--font-geist-mono);color:#d8b578;margin:4px}
.my-rank>strong em{font:600 .6rem Pretendard,sans-serif;font-style:normal}
.my-rank p{font-size:.5rem;color:#948879;margin:0}
.my-rank span{display:inline-block;font-size:.45rem;color:#d2b177;border:1px solid #59462f;padding:4px 7px;margin-top:7px}
.ranking-list{margin-top:8px;border:1px solid #302922}
.ranking-list>span{display:grid;grid-template-columns:20px 27px 1fr auto;gap:7px;align-items:center;padding:8px;border-bottom:1px solid #29241f}
.ranking-list>span:last-child{border:0}
.ranking-list>span>b{font:.5rem var(--font-geist-mono);color:#6c635a}
.ranking-list>span>i{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:#30261f;color:#c8a66e;font:700 .45rem "Noto Serif KR","Nanum Myeongjo",serif;font-style:normal}
.ranking-list p{display:flex;flex-direction:column;margin:0;font-size:.52rem}
.ranking-list small{font-size:.42rem;color:#6c635b}
.ranking-list em{font-style:normal;font-size:.42rem;color:#806f58}
.ranking-list .me{background:#211812}
.ranking-list .me>b,.ranking-list .me>em{color:#d19f57}
.season-rank{display:grid;grid-template-columns:1fr 1fr auto;align-items:center;border:1px solid #3c3229;background:#17130f;margin-top:8px;padding:9px}
.season-rank p,.season-rank>span{display:flex;flex-direction:column;margin:0}
.season-rank small{font-size:.42rem;color:#6e655d}
.season-rank b{font:.56rem var(--font-geist-mono);color:#b7a48b;margin-top:3px}
.season-rank em{font-style:normal;font:.45rem var(--font-geist-mono);color:#d2a65f}
.badge-earned{text-align:center;padding:5px 0 11px}
.badge-earned span{font:.43rem var(--font-geist-mono);letter-spacing:.14em;color:#ac8148}
.badge-earned h2{font:600 .82rem "Noto Serif KR","Nanum Myeongjo",serif;color:#e6d7c1;margin:5px 0}
.badge-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.badge-grid article{min-height:126px;border:1px solid #382f27;background:#15120f;padding:10px;text-align:center;display:flex;flex-direction:column;align-items:center}
.badge-grid article>i{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle,#59472f,#2b2219);border:1px solid #a3824e;color:#dfbd7e;font:700 .8rem "Noto Serif KR","Nanum Myeongjo",serif;font-style:normal;box-shadow:0 0 16px rgba(170,126,61,.14)}
.badge-grid article>b{font-size:.55rem;margin-top:7px}
.badge-grid article>small{font-size:.42rem;line-height:1.35;color:#736a61;margin-top:3px}
.badge-grid article>em{font-style:normal;font-size:.4rem;color:#a58150;margin-top:auto}
.badge-grid article.epic{border-color:#654b75}
.badge-grid article.epic>i{background:radial-gradient(circle,#6b4f7d,#2f2536);border-color:#9a70b0;color:#ebd4f7}
.badge-grid article.locked{filter:saturate(.25);opacity:.58}
.badge-grid article>u{width:100%;height:2px;background:#332b25;margin-top:auto}
.badge-grid article>u span{display:block;height:100%;background:#b48e55}
.result-actions{position:absolute;left:0;right:0;bottom:0;height:67px;background:#0d0b0a;border-top:1px solid #302922;display:grid;grid-template-columns:1fr 1.25fr;gap:6px;padding:9px 17px 12px}
.result-actions.has-restart{grid-template-columns:.9fr 1fr 1.15fr}
.result-actions button,.profile-actions button{border:1px solid #493b2d;background:#17130f;color:#a9916d;font-size:.53rem}
.result-actions .restart-game{border-color:#745938;background:#211911;color:#d7b479}
.result-actions button:last-child,.profile-actions button:last-child{background:#7e1b24;border-color:#aa454d;color:#fff0df}
.result-pending{height:calc(100% - 62px);padding:54px 28px 80px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:radial-gradient(circle at 50% 36%,rgba(119,35,42,.2),transparent 35%)}
.result-pending>i{width:54px;height:54px;border:1px solid #70563a;border-radius:50%;display:grid;place-items:center;color:#c19a61;font-style:normal;font-size:1.2rem}
.result-pending>p{font:.46rem var(--font-geist-mono);letter-spacing:.14em;color:#9f8055;margin:15px 0 7px}
.result-pending h1{font:600 1rem/1.45 "Noto Serif KR","Nanum Myeongjo",serif;color:#e9dac5;margin:0}
.result-pending>span{max-width:270px;font-size:.52rem;line-height:1.65;color:#81766a;margin:9px 0 19px}
.result-pending>button{width:100%;height:42px;border:1px solid #a2464d;background:#7e1b24;color:#fff0df;font-size:.58rem}

.review-case{display:grid;grid-template-columns:68px 1fr;gap:10px;align-items:center;margin:15px 0}
.review-case .case-thumb{height:58px}
.rating-card{text-align:center;border:1px solid #3e3329;background:#16130f;padding:16px 10px}
.rating-card>p{font:600 .75rem "Noto Serif KR","Nanum Myeongjo",serif;color:#e5d8c6;margin:0 0 8px}
.rating-card>div{display:flex;justify-content:center;gap:5px}
.rating-card button{border:0;background:none;color:#40372f;font-size:1.45rem;padding:0}
.rating-card button.active{color:#d8ad65;text-shadow:0 0 12px rgba(216,173,101,.28)}
.rating-card>span{display:block;font-size:.48rem;color:#907a59;margin-top:6px}
.review-input{position:relative;display:block;margin-top:15px}
.review-input textarea{width:100%;height:105px;resize:none;border:1px solid #40352b;background:#15120f;color:#d8cbbb;padding:10px;outline:0;font-size:.57rem;line-height:1.6}
.review-input textarea:focus{border-color:#997947}
.review-input textarea::placeholder{color:#5f5750}
.review-input>small{position:absolute;right:8px;bottom:7px;font-size:.42rem;color:#625a53}
.quick-tags{margin-top:13px}
.quick-tags button{border:1px solid #3a3128;background:#16130f;color:#857665;padding:6px 8px;margin:0 4px 5px 0;font-size:.46rem}
.spoiler-switch{border-top:1px solid #2c2721;margin-top:6px}
.review-screen .journey-primary{margin-top:9px}

.profile-head{display:grid;grid-template-columns:51px 1fr auto;gap:10px;align-items:center;padding:14px 0}
.profile-head>i{width:49px;height:49px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#77303a,#b07864);border:1px solid #c89a76;color:#fff1df;font:700 .85rem "Noto Serif KR","Nanum Myeongjo",serif;font-style:normal}
.profile-head>div small{font:.4rem var(--font-geist-mono);letter-spacing:.1em;color:#816d52}
.profile-head h1{font:600 1.1rem "Noto Serif KR","Nanum Myeongjo",serif;color:#eee1ce;margin:2px 0}
.profile-head p{font-size:.46rem;color:#746b62;margin:0}
.profile-head>em{font-style:normal;font:.47rem var(--font-geist-mono);color:#d1a75f;border:1px solid #59452e;padding:5px}
.profile-metrics{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid #342d26}
.profile-metrics span{text-align:center;padding:9px 3px;border-right:1px solid #342d26;display:flex;flex-direction:column}
.profile-metrics span:last-child{border:0}
.profile-metrics small{font-size:.41rem;color:#6d645c}
.profile-metrics b{font:.7rem var(--font-geist-mono);color:#c9a66d;margin-top:3px}
.detective-style{border:1px solid #42352a;background:radial-gradient(circle at 100% 0,rgba(118,29,37,.2),transparent 38%),#15120f;margin-top:10px;padding:11px}
.detective-style>div:first-child>p{font:.42rem var(--font-geist-mono);letter-spacing:.12em;color:#95764c;margin:0}
.detective-style h2{font:600 .85rem "Noto Serif KR","Nanum Myeongjo",serif;color:#e8d8c0;margin:4px 0}
.detective-style>div:first-child>span{display:block;font-size:.48rem;line-height:1.5;color:#776e65}
.style-bars{margin-top:10px}
.style-bars>span{display:grid;grid-template-columns:38px 1fr 20px;gap:6px;align-items:center;margin-top:5px}
.style-bars small{font-size:.43rem;color:#786f66}
.style-bars i{height:3px;background:#312923}
.style-bars i u{display:block;height:100%;background:linear-gradient(90deg,#7f1f29,#c09a60)}
.style-bars b{font:.42rem var(--font-geist-mono);color:#9f8763}
.profile-split{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:8px}
.profile-split>section{border:1px solid #342d26;background:#14110f;padding:10px;text-align:center}
.profile-split small{font-size:.42rem;color:#70675f}
.profile-split>section>i{width:31px;height:31px;border-radius:50%;display:grid;place-items:center;margin:7px auto 3px;background:#a46859;color:#fff;font:700 .55rem "Noto Serif KR","Nanum Myeongjo",serif;font-style:normal}
.profile-split h3{font:600 .65rem "Noto Serif KR","Nanum Myeongjo",serif;margin:0;color:#dacbb6}
.profile-split p{font-size:.42rem;color:#766d64;margin:3px}
.profile-split strong{display:block;font:1.5rem var(--font-geist-mono);color:#d0aa6a;margin-top:5px}
.profile-split strong em{font-size:.5rem;font-style:normal}
.profile-detail{border:1px solid #342d26;margin-top:8px}
.profile-detail>span{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #2b2620;padding:7px 9px}
.profile-detail>span:last-child{border:0}
.profile-detail p{display:flex;align-items:center;gap:8px;margin:0}
.profile-detail small{font-size:.43rem;color:#70675f}
.profile-detail b{font:.52rem var(--font-geist-mono);color:#b9a58a}
.profile-detail em{font-style:normal;font-size:.4rem;color:#a48150}
.badge-shelf-title{display:flex;align-items:center;justify-content:space-between;margin:12px 0 7px}
.badge-shelf-title h2{font:600 .67rem "Noto Serif KR","Nanum Myeongjo",serif;margin:0}
.badge-shelf-title button{border:0;background:none;color:#836f52;font-size:.42rem}
.profile-badges{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}
.profile-badges span{display:flex;flex-direction:column;align-items:center;text-align:center}
.profile-badges i{width:38px;height:38px;border:1px solid #896b43;border-radius:50%;display:grid;place-items:center;background:#292017;color:#d6ae70;font:700 .6rem "Noto Serif KR","Nanum Myeongjo",serif;font-style:normal}
.profile-badges small{font-size:.39rem;color:#766d64;margin-top:4px}
.profile-actions{display:grid;grid-template-columns:1fr 1.2fr;gap:6px;height:40px;margin-top:12px}
.profile-actions button{font-size:.5rem}


/* interactive crime scene */
.scene-heading{display:flex;align-items:end;justify-content:space-between;padding-bottom:10px}
.scene-heading>div{min-width:0}
.scene-heading>div>span{display:block;max-width:280px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.scene-heading>b{font:600 .62rem var(--font-geist-mono);color:#c69e60;border:1px solid #4d3d2b;padding:5px 7px}
.walk-scene{height:266px;position:relative;overflow:hidden;border:1px solid #4c3b2c;background:radial-gradient(circle at 50% 50%,rgba(179,139,77,.09),transparent 24%),#100e0c;box-shadow:inset 0 0 40px rgba(0,0,0,.72)}
.walk-scene:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 18px,rgba(197,155,91,.025) 19px),repeating-linear-gradient(0deg,transparent 0 18px,rgba(197,155,91,.02) 19px);pointer-events:none}
.location-zone{position:absolute;width:44%;height:40%;border:1px solid #392e24;background:linear-gradient(145deg,rgba(64,48,35,.55),rgba(24,19,15,.82));color:#756859;text-align:left;padding:7px;z-index:1}
.location-zone>span{font:600 .55rem "Noto Serif KR","Nanum Myeongjo",serif}
.location-zone>small{position:absolute;right:6px;top:6px;font:.4rem var(--font-geist-mono);color:#5e554d}
.location-zone.current{border-color:#9f7947;color:#ddbd87;background:radial-gradient(circle at 50% 50%,rgba(155,113,55,.2),transparent 58%),linear-gradient(145deg,#2b2118,#17120e);box-shadow:inset 0 0 24px rgba(177,126,59,.08)}
.zone-banquet{left:3%;top:4%}
.zone-study{right:3%;top:4%;background-color:#181319}
.zone-greenhouse{left:3%;bottom:4%;background:linear-gradient(145deg,rgba(34,61,45,.45),rgba(17,25,20,.76))}
.zone-archive{right:3%;bottom:4%;background:linear-gradient(145deg,rgba(56,43,32,.5),rgba(23,18,15,.82))}
.corridor{position:absolute;background:#29221b;border:1px solid #3d3227;z-index:2;pointer-events:none}
.corridor.horizontal{left:5%;right:5%;top:47%;height:7%}
.corridor.vertical{top:5%;bottom:5%;left:47%;width:6%}
.player-piece{position:absolute;z-index:12;width:32px;height:32px;border-radius:50%;transform:translate(-50%,-50%);display:grid;place-items:center;color:#fff;border:2px solid #f0c98b;box-shadow:0 0 0 5px rgba(217,174,103,.15),0 6px 18px rgba(0,0,0,.65);transition:left .7s cubic-bezier(.22,.8,.2,1),top .7s cubic-bezier(.22,.8,.2,1)}
.player-piece>i{font:700 .55rem "Noto Serif KR","Nanum Myeongjo",serif;font-style:normal}
.player-piece>small{position:absolute;top:35px;font-size:.4rem;color:#f0d5ad;white-space:nowrap}
.player-piece>span{position:absolute;width:4px;height:4px;border-radius:50%;bottom:-10px;background:#d3a45f;box-shadow:-8px 4px 0 rgba(211,164,95,.45),8px -2px 0 rgba(211,164,95,.25)}
.walk-scene.moving .player-piece{animation:avatar-hop .35s ease-in-out infinite alternate}
.walk-scene.moving .player-piece>span{animation:trail-fade .7s ease infinite}
.world-character{position:absolute;z-index:9;transform:translate(-50%,-50%);width:32px;height:45px;border:0;background:transparent;color:#c8b393;padding:0}
.world-character>i{width:27px;height:27px;border-radius:50%;display:grid;place-items:center;background:#332820;border:1px solid #6f5639;font:700 .46rem "Noto Serif KR","Nanum Myeongjo",serif;font-style:normal}
.world-character>small{display:block;font-size:.37rem;margin-top:2px;color:#766a5d;white-space:nowrap}
.world-character>em{display:none;position:absolute;left:50%;top:-19px;transform:translateX(-50%);font-style:normal;font-size:.36rem;background:#9a7543;color:#17110d;padding:3px 5px;white-space:nowrap}
.world-character.nearby>i{border-color:#ce9f5a;box-shadow:0 0 0 3px rgba(206,159,90,.13),0 0 13px rgba(206,159,90,.25)}
.world-character.nearby>small{color:#d2b98d}
.world-character.nearby>em{display:block}
.world-character.ai>i{background:#49375a;border-color:#85649b;color:#e7cff1}
.world-hotspot{position:absolute;z-index:10;transform:translate(-50%,-50%);border:0;background:transparent;color:#d7b77c;padding:0}
.world-hotspot>i{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;background:#8c202b;border:2px solid #e7a8ad;font:700 .48rem var(--font-geist-mono);font-style:normal;box-shadow:0 0 0 5px rgba(157,37,48,.14),0 0 16px rgba(157,37,48,.55);animation:hotspot-pulse 1.5s ease infinite}
.world-hotspot>small{position:absolute;top:22px;left:50%;transform:translateX(-50%);font-size:.35rem;color:#c5aa7d;white-space:nowrap;background:rgba(12,10,8,.72);padding:2px 3px}
.world-hotspot.found>i{background:#1c5a36;border-color:#80c89c;box-shadow:0 0 0 4px rgba(75,159,105,.12);animation:none}
.scene-compass{position:absolute;right:7px;bottom:7px;z-index:8;width:24px;height:24px;border:1px solid #514132;border-radius:50%;display:grid;place-items:center}
.scene-compass span{font:.38rem var(--font-geist-mono);color:#9f8158;transform:translateY(-4px)}
.scene-compass i{position:absolute;width:1px;height:8px;background:#9f8158;top:8px}
.proximity-status{display:grid;grid-template-columns:26px 1fr auto;gap:8px;align-items:center;border:1px solid #4b3a2c;border-top:0;background:#17130f;padding:8px}
.proximity-status>i{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:#292017;color:#c9a46a;font-style:normal;font-size:.55rem}
.proximity-status>p{display:flex;flex-direction:column;margin:0;min-width:0}
.proximity-status b{font-size:.52rem}
.proximity-status small{font-size:.4rem;color:#776d63;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.proximity-status>span{font:.42rem var(--font-geist-mono);color:#9a815c}
.proximity-status.private{border-color:#6e4c7a;background:#1d1621}
.proximity-status.private>i{background:#4c3658;color:#e0c4ed}
.room-actions-title{display:flex;justify-content:space-between;align-items:center;margin:11px 1px 6px}
.room-actions-title h3{font:600 .67rem "Noto Serif KR","Nanum Myeongjo",serif;margin:0;color:#ddcfbc}
.room-actions-title span{font:.42rem var(--font-geist-mono);color:#876f4f}
.room-object-list{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.room-object-list>button{min-width:0;border:1px solid #322b24;background:#13110f;color:#d3c6b5;padding:8px;text-align:left;display:grid;grid-template-columns:29px 1fr auto;gap:6px;align-items:center}
.room-object-list>button>i{width:27px;height:27px;display:grid;place-items:center;background:#2a2119;color:#c4a06a;font-style:normal;font-size:.65rem}
.room-object-list>button>span{display:flex;flex-direction:column;min-width:0}
.room-object-list b{font-size:.49rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.room-object-list small{font-size:.36rem;color:#6c635b;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.room-object-list em{font-style:normal;font-size:.38rem;color:#9a7a4f}
.room-object-list>button.found{border-color:#35523f}
.room-object-list>button.found>i{background:#173120;color:#76bc8d}
.open-evidence{width:100%;height:34px;border:1px solid #45372a;background:#18130f;color:#a88d65;font-size:.48rem;margin-top:7px}
.open-evidence span{margin-left:5px}
.interaction-backdrop{position:absolute;inset:0;z-index:70;background:rgba(0,0,0,.72);backdrop-filter:blur(4px);display:flex;align-items:end}
.investigation-panel,.character-panel{width:100%;max-height:83%;overflow-y:auto;border-top:1px solid #967345;background:linear-gradient(160deg,#1c1713,#0e0c0a);padding:8px 20px 24px;border-radius:21px 21px 0 0;animation:sheet-in .22s ease;position:relative;text-align:center}
.investigation-panel>i,.character-panel>i{display:block;width:34px;height:3px;border-radius:4px;background:#54483c;margin:0 auto 13px}
.panel-close{position:absolute;right:17px;top:13px;border:0;background:none;color:#8a7e70;font-size:1.1rem}
.object-icon{width:76px;height:76px;margin:auto;display:grid;place-items:center;background:radial-gradient(circle,#493624,#211912 65%);border:1px solid #654a31;color:#dbb473;font-size:1.8rem}
.investigation-panel>p,.character-panel>p{font:.43rem var(--font-geist-mono);letter-spacing:.14em;color:#9f7d4f;margin:11px 0 4px}
.investigation-panel h2,.character-panel h2{font:600 1.2rem "Noto Serif KR","Nanum Myeongjo",serif;color:#f0dfc8;margin:0}
.investigation-panel>span{display:block;font-size:.54rem;line-height:1.55;color:#8f8477;margin:6px 0 12px}
.analyze-button{width:100%;display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:8px;text-align:left;border:1px solid #725533;background:#211912;color:#d6c2a4;padding:9px}
.analyze-button>b{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#9f6658;color:#fff;font:700 .5rem "Noto Serif KR","Nanum Myeongjo",serif}
.analyze-button>span{display:flex;flex-direction:column}
.analyze-button strong{font-size:.54rem}
.analyze-button small{font-size:.4rem;color:#766b61;margin-top:2px}
.analyze-button em{font-style:normal;font-size:.42rem;color:#be9a63}
.role-finding{text-align:left;border:1px solid #78523d;background:radial-gradient(circle at 100% 0,rgba(146,46,54,.24),transparent 40%),#211613;padding:10px}
.role-finding small{font-size:.43rem;color:#c09462}
.role-finding p{font:600 .59rem/1.6 "Noto Serif KR","Nanum Myeongjo",serif;color:#ead8bf;margin:5px 0}
.save-finding{width:100%;height:39px;margin-top:8px;border:1px solid #a6454d;background:#7f1d26;color:#fff0dd;font-size:.52rem}
.save-finding:disabled{border-color:#453a31;background:#28221d;color:#655d55}
.character-portrait{width:72px;height:72px;margin:auto;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle,#5d4534,#292019 68%);border:1px solid #9b7446;color:#e0bc82;font:700 1rem "Noto Serif KR","Nanum Myeongjo",serif;position:relative}
.character-portrait.ai{background:radial-gradient(circle,#664e78,#2e2534 68%);border-color:#926eaa;color:#ead2f5}
.voice-wave{position:absolute;left:68px;top:25px;height:22px;display:flex;align-items:center;gap:2px}
.voice-wave u{width:2px;background:#72b98a;animation:voice-wave .55s ease-in-out infinite alternate}
.voice-wave u:nth-child(1){height:7px}
.voice-wave u:nth-child(2){height:16px;animation-delay:.12s}
.voice-wave u:nth-child(3){height:11px;animation-delay:.22s}
.voice-wave u:nth-child(4){height:19px;animation-delay:.32s}
.character-panel blockquote{font:600 .62rem/1.6 "Noto Serif KR","Nanum Myeongjo",serif;color:#d6c4aa;border-top:1px solid #342c25;border-bottom:1px solid #342c25;margin:11px 0;padding:10px}
.character-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.character-actions button{border:1px solid #46382b;background:#18130f;color:#b9a077;padding:9px 4px;font-size:.47rem}
.character-actions button:nth-child(2){border-color:#664875;color:#caa9d8;background:#1d1621}
@keyframes avatar-hop{to{margin-top:-3px}
}
@keyframes trail-fade{50%{opacity:.2}
}
@keyframes hotspot-pulse{50%{box-shadow:0 0 0 9px rgba(157,37,48,.04),0 0 22px rgba(157,37,48,.7)}
}
@keyframes voice-wave{to{height:4px;opacity:.45}
}

/* 2.5D isometric investigation layer */
.scene-heading{align-items:center;gap:8px}
.scene-heading>div:first-child{flex:1;min-width:0}
.scene-heading>div:first-child>span{display:block;max-width:245px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.scene-meter{flex:0 0 64px;border:1px solid #5d472f;background:#17120e;padding:5px 6px;text-align:right;display:grid;grid-template-columns:1fr auto;align-items:end}
.scene-meter small{grid-column:1;color:#8d7656;font-size:.39rem;text-align:left}
.scene-meter b{grid-column:2;font:700 .7rem var(--font-geist-mono);color:#e0b773}
.scene-meter em{grid-column:1/-1;font-style:normal;font:.35rem var(--font-geist-mono);color:#6d6255;margin-top:2px}
.walk-scene{height:266px;border-color:#6b5135;background-image:linear-gradient(180deg,rgba(4,5,6,.05),rgba(5,5,5,.18)),url('/assets/isometric-mansion-2-5d.png');background-position:center;background-size:cover;background-repeat:no-repeat;box-shadow:inset 0 0 0 1px rgba(223,181,111,.08),inset 0 -28px 42px rgba(0,0,0,.35),0 10px 24px rgba(0,0,0,.2)}
.walk-scene:before{z-index:2;background:radial-gradient(circle at 50% 48%,transparent 52%,rgba(3,4,5,.5) 100%),linear-gradient(180deg,rgba(0,0,0,.08),transparent 40%);pointer-events:none}
.location-zone{padding:0;border:1px solid transparent;background:transparent;color:#b4a084;z-index:3;transition:background .2s ease,border-color .2s ease,filter .2s ease}
.location-zone>span{position:absolute;left:10%;top:10%;padding:3px 5px;border:1px solid rgba(181,145,91,.45);background:rgba(12,10,8,.76);backdrop-filter:blur(3px);font:600 .48rem "Noto Serif KR","Nanum Myeongjo",serif;text-shadow:0 1px 2px #000}
.location-zone>small{right:10%;top:10%;padding:3px 4px;background:rgba(12,10,8,.7);color:#89775f}
.location-zone.current{border-color:rgba(226,181,108,.4);background:radial-gradient(circle,rgba(196,145,76,.15),transparent 65%);box-shadow:inset 0 0 18px rgba(218,166,91,.08);filter:brightness(1.08)}
.location-zone.current>span{color:#f0d6ac;border-color:#c99b59;background:rgba(70,43,23,.8)}
.zone-banquet{left:4%;top:5%;width:47%;height:43%;clip-path:polygon(8% 15%,72% 0,100% 31%,80% 100%,12% 88%,0 47%)}
.zone-study{left:49%;right:auto;top:5%;width:47%;height:43%;clip-path:polygon(18% 0,88% 15%,100% 48%,88% 88%,22% 100%,0 49%)}
.zone-greenhouse{left:3%;bottom:3%;width:50%;height:54%;clip-path:polygon(1% 31%,25% 0,100% 34%,88% 90%,35% 100%,0 80%)}
.zone-archive{right:2%;bottom:3%;width:48%;height:54%;clip-path:polygon(0 32%,72% 0,100% 27%,96% 82%,54% 100%,8% 84%)}
.zone-study>span,.zone-study>small,.zone-archive>span,.zone-archive>small{top:13%}
.zone-greenhouse>span,.zone-greenhouse>small,.zone-archive>span,.zone-archive>small{top:69%}
.corridor{display:none}
.player-piece{width:30px;height:42px;border:0;border-radius:0;background:transparent!important;box-shadow:none;display:block;transition:left .72s cubic-bezier(.22,.8,.2,1),top .72s cubic-bezier(.22,.8,.2,1);filter:drop-shadow(0 5px 5px rgba(0,0,0,.72))}
.player-piece:before{content:"";position:absolute;left:8px;top:18px;width:15px;height:17px;border:1px solid #f1c98a;border-radius:7px 7px 3px 3px;background:var(--avatar-color);box-shadow:inset 0 0 0 2px rgba(0,0,0,.16)}
.player-piece:after{content:"";position:absolute;left:4px;bottom:1px;width:23px;height:7px;border-radius:50%;background:rgba(0,0,0,.55);filter:blur(2px)}
.player-piece>i{position:absolute;left:5px;top:0;z-index:2;width:21px;height:21px;border:2px solid #f2cf96;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--avatar-color) 68%,#221812);color:#fff8eb;font:700 .4rem "Noto Serif KR","Nanum Myeongjo",serif;font-style:normal;box-shadow:0 0 0 3px rgba(224,181,112,.18)}
.player-piece>small{z-index:3;top:35px;left:50%;transform:translateX(-50%);padding:1px 4px;background:rgba(86,48,25,.9);color:#ffe2b5;font-size:.36rem}
.player-piece>span{z-index:-1;bottom:-2px;left:50%;background:#d3a45f}
.world-character{width:29px;height:43px;filter:drop-shadow(0 4px 4px rgba(0,0,0,.7));opacity:.66;transition:opacity .2s ease,filter .2s ease}
.world-character:after{content:"";position:absolute;left:7px;top:17px;width:15px;height:16px;border-radius:7px 7px 3px 3px;background:#513d2e;border:1px solid #806448;z-index:-1}
.world-character>i{width:21px;height:21px;margin:auto;border:1px solid #806448;background:#3a2c22;font-size:.38rem;box-shadow:0 0 0 2px rgba(0,0,0,.24)}
.world-character>small{margin-top:12px;padding:1px 3px;background:rgba(9,8,7,.76);font-size:.34rem}
.world-character>em{top:-21px}
.world-character.nearby{opacity:1;filter:drop-shadow(0 5px 5px rgba(0,0,0,.75))}
.world-character.nearby>i{box-shadow:0 0 0 3px rgba(206,159,90,.17),0 0 16px rgba(206,159,90,.42)}
.world-character.ai:after{background:#503e5c;border-color:#87699b}
.world-hotspot{z-index:96}
.world-hotspot>i{width:17px;height:17px;background:#8c202b;border-width:1px;box-shadow:0 0 0 5px rgba(157,37,48,.17),0 0 18px rgba(255,78,90,.72)}
.world-hotspot>small{top:20px;color:#ead1aa;background:rgba(9,8,7,.82);text-shadow:0 1px 2px #000}
.scene-compass{z-index:98;border-color:#85663f;background:rgba(10,9,8,.7)}
.scene-onboarding{position:absolute;inset:17px 16px;z-index:130;border:1px solid #a37b47;background:radial-gradient(circle at 50% 0,rgba(131,46,38,.3),transparent 43%),rgba(14,11,9,.94);backdrop-filter:blur(8px);padding:18px 16px;text-align:center;box-shadow:0 15px 40px rgba(0,0,0,.55)}
.scene-onboarding>p{font:.42rem var(--font-geist-mono);letter-spacing:.14em;color:#b18a55;margin:0}
.scene-onboarding h3{font:600 1rem "Noto Serif KR","Nanum Myeongjo",serif;color:#f2dfc5;margin:7px 0 14px}
.scene-onboarding>div{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}
.scene-onboarding span{display:flex;flex-direction:column;align-items:center;gap:5px;color:#9e8f7c;font-size:.43rem}
.scene-onboarding span i{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;border:1px solid #6e5434;color:#d3a967;font:600 .46rem var(--font-geist-mono);font-style:normal}
.scene-onboarding span b{font-weight:500}
.scene-onboarding>button{width:100%;height:35px;border:1px solid #a8464e;background:#7d1d26;color:#ffead1;margin-top:17px;font-size:.54rem}
.analyze-button:disabled{border-color:#39322b;background:#1a1714;color:#655e56;cursor:not-allowed}
.analyze-button:disabled>b{background:#38322d;color:#716961}
.analyze-button:disabled em{color:#685f56}
.clue-choice-guide{font:.4rem var(--font-geist-mono)!important;letter-spacing:.08em!important;color:#7f705f!important;margin:10px 0 5px!important;text-align:left}
.finding-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.finding-actions button{min-width:0;border:1px solid #704c33;background:#1d1712;color:#d6c2a4;padding:8px 7px;display:grid;grid-template-columns:24px 1fr;gap:6px;text-align:left;align-items:center}
.finding-actions button:last-child{border-color:#5e466c;background:#1d1720;color:#cfb7d9}
.finding-actions button>b{width:23px;height:23px;border-radius:50%;display:grid;place-items:center;background:#573b26;color:#e6c28b;font-size:.43rem}
.finding-actions button:last-child>b{background:#493551;color:#ddc3e8}
.finding-actions span{display:flex;flex-direction:column;min-width:0;font-size:.47rem}
.finding-actions small{font-size:.33rem;color:#766b60;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

@media(max-width:370px){.walk-scene{height:246px}.location-zone>span{font-size:.42rem}.world-hotspot>small{font-size:.31rem}.scene-onboarding{inset:12px 10px}}

@media(prefers-reduced-motion:reduce){
  .secret-copy,.secret-veil,.hold-track u,.location-zone,.player-piece,.world-character{transition:none}
  .walk-scene.moving .player-piece,.walk-scene.moving .player-piece>span,.world-hotspot>i,.voice-wave u{animation:none}
}

.quick-room-card{border:1px solid #4a3a2a;background:linear-gradient(160deg,#1c1611,#120f0d);padding:13px;margin:0 0 15px;border-radius:6px}
.quick-room-head{display:flex;justify-content:space-between;align-items:center}
.quick-room-head>span{font-size:.48rem;color:#b39a72;display:flex;align-items:center;gap:6px}
.quick-room-head>span i{width:6px;height:6px;border-radius:50%;background:#4bbf6b;box-shadow:0 0 0 4px rgba(75,191,107,.16)}
.quick-room-head>b{font-size:.44rem;color:#e6b98d;background:rgba(140,32,42,.28);border:1px solid rgba(180,80,80,.35);padding:4px 7px;border-radius:20px}
.quick-room-card h2{font:600 .82rem "Noto Serif KR","Nanum Myeongjo",serif;margin:9px 0;color:#efe1cb}
.quick-room-facts{display:flex;gap:7px;color:#9d9284;font-size:.46rem}
.quick-room-facts span{padding-right:7px;border-right:1px solid #37302a}
.quick-room-facts span:last-child{border:0}
.quick-room-facts b{color:#d9b878}
.quick-room-tags{display:flex;gap:5px;margin-top:9px}
.quick-room-tags i{font-style:normal;font-size:.4rem;color:#c2b39c;border:1px solid #3a332b;background:#181310;padding:4px 7px;border-radius:20px}
.quick-room-card>button{width:100%;border:1px solid #a8434b;background:linear-gradient(135deg,#7d1a22,#9c2530);color:#fff1e3;margin-top:12px;padding:11px;font-size:.6rem;font-weight:700;border-radius:5px}
.quick-room-card>button span{margin-left:5px}
.create-divider{height:20px;border-top:1px solid #322b24;text-align:center;margin-top:6px}
.create-divider span{position:relative;top:-8px;background:#0b0908;padding:0 10px;color:#7c7266;font-size:.46rem}

.handoff-card{border:1px solid #3a332b;background:#15120f;margin-top:9px;padding:10px;border-radius:5px}
.handoff-card>div{display:flex;align-items:center;gap:9px}
.handoff-card>div>i{width:29px;height:29px;border-radius:50%;display:grid;place-items:center;background:#2a2119;color:#c9a86c;font-style:normal;font-size:.5rem}
.handoff-card p{margin:0;display:flex;flex-direction:column}
.handoff-card b{font-size:.54rem;color:#e2d5c3}
.handoff-card small{font-size:.43rem;line-height:1.45;color:#8a7f72;margin-top:2px}
.handoff-card>button{width:100%;border:1px solid #4a3e30;background:#1c1712;color:#c1a878;padding:8px;margin-top:8px;font-size:.48rem;border-radius:4px}
.handoff-card.active{border-color:#8a6b3f;background:#1e1811}
.handoff-card.active>div>i{background:#7a5a2f;color:#fff}

/* ===== 넷플릭스식 모바일 게임 상세(진입) ===== */
.journey-screen.game-detail{padding:0;background:#0b0908;color:#eee4d2}
.lobby-screen{background:#0d0b0a;color:#eee4d2}
.detail-hero{position:relative;height:340px;overflow:hidden}
.detail-hero-media{position:absolute;inset:0;background:url('/assets/red-banquet-hero.png') center 30%/cover;transform:scale(1.03)}
.detail-hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,9,8,.55) 0,rgba(11,9,8,0) 24%,rgba(11,9,8,.2) 50%,rgba(11,9,8,.88) 84%,#0b0908 100%),radial-gradient(120% 78% at 50% 6%,rgba(123,26,34,.34),transparent 55%)}
.detail-nav{position:absolute;top:0;left:0;right:0;z-index:3;height:52px;padding:0 14px;border:0;background:linear-gradient(180deg,rgba(0,0,0,.45),transparent)}
.detail-nav a,.detail-nav button{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:rgba(12,10,9,.5);border:1px solid rgba(233,214,180,.18);color:#f0e6d4;font-size:.9rem;backdrop-filter:blur(4px);text-decoration:none}
.detail-hero-copy{position:absolute;left:18px;right:18px;bottom:16px;z-index:2}
.detail-eyebrow{font:.5rem var(--font-geist-mono);letter-spacing:.22em;color:#d3a86a;margin:0 0 8px}
.detail-hero-copy h1{font:600 2.5rem/1 "Noto Serif KR","Nanum Myeongjo",serif;letter-spacing:-.05em;color:#fff3df;margin:0;text-shadow:0 2px 22px rgba(0,0,0,.6)}
.detail-meta{display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin-top:11px;font-size:.55rem;color:#c8bba9}
.detail-meta b{color:#e7c583;font-weight:600}
.detail-meta span{position:relative;padding-left:10px}
.detail-meta span::before{content:"";position:absolute;left:0;top:50%;width:3px;height:3px;border-radius:50%;background:#7c7166;transform:translateY(-50%)}
.detail-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:11px}
.detail-tags i{font-style:normal;font-size:.44rem;letter-spacing:.02em;color:#e6d6bd;border:1px solid rgba(233,214,180,.22);background:rgba(20,16,13,.5);padding:4px 8px;border-radius:20px;backdrop-filter:blur(3px)}
.detail-body{padding:16px 17px 26px;display:flex;flex-direction:column}
.detail-cta{width:100%;min-height:50px;border:0;border-radius:6px;background:linear-gradient(135deg,#a8232e,#7c141c);color:#fff4e6;font:700 .82rem "Noto Serif KR","Nanum Myeongjo",serif;letter-spacing:.01em;box-shadow:0 12px 30px rgba(140,26,36,.35);display:flex;align-items:center;justify-content:center;gap:9px}
.detail-cta b{font-size:.7rem}
.detail-cta:active{transform:translateY(1px)}
.detail-sub-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:9px}
.detail-sub-actions a,.detail-sub-actions button{border:1px solid #3a3128;border-radius:6px;background:#15120f;color:#c3b6a3;padding:11px;font-size:.55rem;display:flex;align-items:center;justify-content:center;gap:6px;text-decoration:none}
.detail-synopsis{font-size:.6rem;line-height:1.75;color:#b8ac9c;margin:16px 0 2px}
.detail-cast{margin-top:16px}
.detail-cast-head{display:block;font:600 .62rem "Noto Serif KR","Nanum Myeongjo",serif;color:#ddceb9;margin-bottom:9px}
.detail-cast-row{display:flex;gap:9px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
.detail-cast-row::-webkit-scrollbar{display:none}
.detail-cast-row figure{flex:0 0 auto;width:60px;margin:0;text-align:center}
.detail-cast-row i{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;margin:0 auto 6px;font:700 .82rem "Noto Serif KR","Nanum Myeongjo",serif;color:#fff;font-style:normal;box-shadow:0 6px 16px rgba(0,0,0,.4),inset 0 0 0 1px rgba(255,255,255,.12)}
.detail-cast-row b{display:block;font:600 .54rem "Noto Serif KR","Nanum Myeongjo",serif;color:#e0d3c0}
.detail-cast-row small{display:block;font-size:.44rem;color:#8a7f72;margin-top:1px}
.detail-divider{height:1px;background:linear-gradient(90deg,transparent,rgba(169,135,79,.3),transparent);margin:20px 0 16px}

.game-director{margin:0 13px 8px;border:1px solid #38453a;background:#101611;position:relative;z-index:12}.director-summary{width:100%;min-height:40px;border:0;background:transparent;color:#d9e3da;display:grid;grid-template-columns:28px 1fr auto;gap:7px;align-items:center;text-align:left;padding:6px 8px}.director-summary>i{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;background:#5d785f;color:#fff;font:700 .43rem var(--font-geist-mono);font-style:normal}.director-summary>span{display:flex;flex-direction:column}.director-summary small{font-size:.38rem;color:#7f9582}.director-summary b{font-size:.52rem;margin-top:2px}.director-summary em{font-style:normal;font-size:.39rem;color:#9eb1a0}.director-panel{border-top:1px solid #2e3b31;padding:8px}.director-steps{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.director-steps span{display:flex;flex-direction:column;align-items:center;text-align:center;color:#5e6a60}.director-steps i{width:17px;height:17px;border:1px solid #38443a;border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:.34rem}.director-steps small{font-size:.31rem;line-height:1.2;margin-top:3px}.director-steps .done{color:#7e9c83}.director-steps .done i{background:#304934;border-color:#456d4c}.director-steps .active{color:#e5c98f}.director-steps .active i{background:#a37332;border-color:#d3a35d;color:#fff}.director-panel>p{font-size:.39rem;line-height:1.45;color:#758078;margin:8px 0}.director-panel>button{width:100%;border:1px solid #637d66;background:#26382b;color:#dce9de;padding:7px;font-size:.43rem}

.persistent-voice{grid-template-columns:minmax(78px,1fr) 64px repeat(3,40px)}.persistent-voice>p{min-width:0}.persistent-voice>p b,.persistent-voice>p small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.persistent-voice>button.channel-active{background:#28382d;color:#83c794}.persistent-voice>button.channel-active small{color:#9ac2a4}

.return-summary{border:1px solid #314338;background:#111914;margin-bottom:8px}.return-summary>button{width:100%;border:0;background:transparent;color:#d6e2d8;display:grid;grid-template-columns:27px 1fr auto;gap:7px;align-items:center;text-align:left;padding:8px}.return-summary>button>i{width:25px;height:25px;border-radius:7px;display:grid;place-items:center;background:#55725a;color:#fff;font:700 .42rem var(--font-geist-mono);font-style:normal}.return-summary span{display:flex;flex-direction:column}.return-summary small{font-size:.37rem;color:#76907b}.return-summary b{font-size:.46rem;margin-top:2px}.return-summary em{font-style:normal;font-size:.38rem;color:#8ea393}.return-summary>div{border-top:1px solid #2c3b31;padding:7px 9px}.return-summary>div p{font-size:.42rem;line-height:1.45;color:#91a196;margin:3px 0}.return-summary>div p b{color:#d3b879;margin-right:4px}.return-summary>div button{border:0;background:none;color:#9fbd9f;padding:4px 0;font-size:.4rem}

.evidence-map-card{border:1px solid #342d26;background:#12100e;margin-top:8px}.evidence-map-summary{width:100%;border:0;background:transparent;color:#d6c9b7;display:flex;justify-content:space-between;align-items:center;padding:9px}.evidence-map-summary>span{display:grid;grid-template-columns:29px 1fr;grid-template-rows:auto auto;column-gap:8px;text-align:left}.evidence-map-summary>span>i{grid-row:1/3;width:27px;height:27px;border-radius:8px;display:grid;place-items:center;background:#27362d;color:#84aa8d;font-style:normal}.evidence-map-summary small{font-size:.38rem;color:#748079}.evidence-map-summary b{font-size:.53rem;margin-top:2px}.evidence-map-summary em{font-style:normal;font-size:.4rem;color:#9a876b}.evidence-map-canvas{position:relative;min-height:230px;border-top:1px solid #342d26;background:radial-gradient(circle at 50% 48%,rgba(82,112,89,.13),transparent 42%),repeating-linear-gradient(90deg,transparent 0 24px,rgba(255,255,255,.018) 25px),#0f0e0c}.map-node{position:absolute;min-width:78px;border:1px solid #4a4238;background:#181612;padding:6px 7px;display:flex;flex-direction:column;box-shadow:0 5px 15px rgba(0,0,0,.24)}.map-node small{font-size:.34rem;color:#7d746a}.map-node b{font-size:.45rem;margin-top:2px;color:#ddd0be}.map-node.time{left:10px;top:18px}.map-node.place{right:10px;top:18px}.map-node.clue{left:50%;top:82px;transform:translateX(-50%);border-color:#796142}.map-node.person{left:10px;top:140px;border-color:#4f6555}.map-node.record{right:10px;top:140px;border-color:#6c526f}.map-link{position:absolute;font-style:normal;font-size:.32rem;color:#8f816d}.map-link:before{content:"";display:inline-block;width:20px;height:1px;background:#6f624f;vertical-align:middle;margin-right:3px}.link-a{left:49px;top:75px;transform:rotate(18deg)}.link-b{right:41px;top:74px;transform:rotate(-17deg)}.link-c{left:50%;top:127px;transform:translateX(-50%)}.evidence-map-canvas>p{position:absolute;left:10px;right:10px;bottom:8px;margin:0;border-top:1px solid #29251f;padding-top:6px;font-size:.36rem;line-height:1.4;color:#6f6a62}
