html,body{margin:0;min-height:100%;background:#080706;color:#eee}.player-game{min-height:calc(100vh - 66px);background:radial-gradient(circle at 50% 0,#25170b 0,#0b0907 46%,#050505 100%);padding:34px 18px 70px;box-sizing:border-box}.player-stage{width:min(1040px,100%);margin:auto}.chip-wallet{position:fixed;z-index:20;right:22px;top:78px;display:flex;align-items:center;gap:7px;padding:9px 13px;border:1px solid #6c5737;border-radius:999px;background:#0b0907e8;box-shadow:0 8px 28px #0009;font:12px/1 Arial,sans-serif}.chip-wallet b{margin-right:5px;color:#eee}.chip{width:19px;height:19px;border-radius:50%;box-shadow:inset 0 0 0 3px #ffffff35,0 1px 5px #000}.chip.blue{background:#2773c9}.chip.yellow{background:#e3b82c}.chip.red{background:#b93333}.day-label{margin:0 0 10px;color:#b9965b;font:11px/1.4 monospace;letter-spacing:.16em}.scene-card,.room-image{overflow:hidden;border:1px solid #4a3925;background:#111;box-shadow:0 24px 70px #000b}.scene-card img,.room-image img{display:block;width:100%;height:auto}.story-panel{width:min(760px,calc(100% - 28px));margin:-55px auto 0;position:relative;padding:30px 34px;border:1px solid #5a452a;background:linear-gradient(180deg,#17110deF,#090806f7);box-shadow:0 20px 60px #000b;box-sizing:border-box}.story-panel h1{margin:0 0 22px;color:#d9b36b;font:500 24px Georgia,serif;letter-spacing:.22em}.story-text{min-height:118px;color:#d8d2c8;line-height:1.95;font-size:15px}.story-text p{margin:0 0 8px;opacity:0;transform:translateY(5px);animation:lineIn .5s forwards}.story-text p:nth-child(2){animation-delay:.45s}.story-text p:nth-child(3){animation-delay:.9s}.story-text p:nth-child(4){animation-delay:1.35s}.story-text p:nth-child(5){animation-delay:1.8s}@keyframes lineIn{to{opacity:1;transform:none}}.player-actions{display:flex;justify-content:flex-end;margin-top:22px}.player-actions button,.room-notice button{border:1px solid #9c7640;background:#21170d;color:#e8c887;padding:12px 20px;cursor:pointer;font:inherit;letter-spacing:.05em}.player-actions button:hover,.room-notice button:hover{background:#342313}.room-hub{margin-top:8px}.hub-copy{padding:20px 2px}.hub-copy span{color:#a9854f;font:11px monospace;letter-spacing:.15em}.hub-copy h2{margin:8px 0 5px;font-size:26px}.hub-copy p{margin:0;color:#8f887e}.room-buttons{display:grid;grid-template-columns:repeat(5,1fr);gap:9px;margin-top:14px}.room-buttons button{min-height:104px;border:1px solid #493922;background:#100d09;color:#ddd;padding:13px 8px;cursor:pointer}.room-buttons button:hover{border-color:#b88a4d;background:#1d150c;transform:translateY(-2px)}.room-buttons small,.room-buttons b,.room-buttons span{display:block}.room-buttons small{color:#8d7550;font:10px monospace}.room-buttons b{margin:9px 0 5px;color:#d9b36b;font-size:13px}.room-buttons span{color:#777;font-size:11px}.room-buttons .unknown{opacity:.58}.day-progress{text-align:right;color:#777;font:11px monospace;letter-spacing:.1em}.day-progress b{color:#d9b36b}.room-notice{position:fixed;inset:0;z-index:30;display:grid;place-items:center;background:#000b;padding:20px}.room-notice[hidden]{display:none}.room-notice>div{width:min(430px,100%);padding:28px;border:1px solid #6e5230;background:#100d09;box-shadow:0 25px 90px #000}.room-notice span{color:#9d7a49;font:11px monospace}.room-notice h3{margin:9px 0 12px;color:#dfbd7c}.room-notice p{color:#aaa;line-height:1.75}.room-notice button{margin-top:12px}@media(max-width:700px){.player-game{padding:70px 12px 50px}.chip-wallet{top:70px;right:10px}.story-panel{width:calc(100% - 14px);margin:-20px auto 0;padding:22px 18px}.room-buttons{grid-template-columns:1fr 1fr}.room-buttons button:last-child{grid-column:1/-1}.hub-copy h2{font-size:22px}}
/* DEV 42 · mobile casino room image emphasis */
@media(max-width:700px){
  .room-image{margin-left:-12px;margin-right:-12px;border-left:0;border-right:0}
  .room-image img{width:145%;max-width:none;margin-left:-22.5%;height:auto}
}
/* DEV 43 · chip HUD labels and positioning */
.chip-wallet{right:max(22px,calc((100vw - 1040px)/2 + 18px));gap:13px;padding:10px 14px;border-radius:14px}
.chip-item{display:flex;align-items:center;gap:6px;white-space:nowrap}
.chip-wallet .chip-name{font:700 9px/1 Arial,sans-serif;letter-spacing:.08em;color:#8f887e}
.chip-wallet .chip-item b{margin:0;color:#eee;min-width:12px;text-align:center}
@media(max-width:700px){
  .chip-wallet{position:absolute;top:74px;left:12px;right:12px;justify-content:center;gap:10px;padding:9px 8px}
  .chip-wallet .chip-name{font-size:8px}
  .chip{width:17px;height:17px}
}
/* DEV 44 · manager conversation */
.player-actions{gap:9px;flex-wrap:wrap}
.player-actions button{border-radius:3px}
.room-buttons button.locked{cursor:not-allowed;opacity:.28;filter:grayscale(1)}
.room-buttons button.locked:hover{transform:none;border-color:#493922;background:#100d09}
@media(max-width:700px){.player-actions{justify-content:stretch}.player-actions button{flex:1 1 100%}.scene-card img{max-height:62vh;object-fit:cover;object-position:center top}}
/* DEV 52 · manager portrait + playable slot machine */
.scene-card:has(#sceneImage[alt="전담 매니저 최소영"]){width:min(520px,100%);margin:0 auto;background:transparent;border-color:#4a3925}
#sceneImage[alt="전담 매니저 최소영"]{width:100%;max-height:520px;object-fit:contain;object-position:center top;background:#080706}
.notice-x{position:absolute;right:10px;top:8px!important;border:0!important;background:transparent!important;color:#9b8b74!important;font-size:25px!important;padding:5px 10px!important}.room-notice>div{position:relative}.room-notice #noticeActions{display:flex;gap:8px;flex-wrap:wrap}
.slot-game{width:min(900px,100%);margin:14px auto}.slot-shell{position:relative;overflow:hidden;padding:32px 28px;border:3px solid #8b672c;border-radius:22px;background:radial-gradient(circle at 50% 0,#422208,#160d07 48%,#090706);box-shadow:inset 0 0 35px #d89b2930,0 24px 70px #000c}.slot-marquee{height:13px;margin:-12px 0 20px;border-radius:999px;background:repeating-linear-gradient(90deg,#f6d474 0 12px,#6f4217 12px 24px);animation:marqueeBlink .65s steps(2) infinite;box-shadow:0 0 16px #e9b94b}.slot-head{text-align:center}.slot-head span{font:11px monospace;letter-spacing:.2em;color:#b9965b}.slot-head h2{margin:5px 0;color:#f0c66e;letter-spacing:.18em}.slot-head b{font:11px monospace;color:#999}.slot-guide{text-align:center;color:#aaa}.slot-reels{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:25px 0}.slot-reel{min-width:0;padding:10px;border:2px solid #b98734;border-radius:10px;background:#080706;box-shadow:inset 0 0 20px #000,0 0 12px #e8a82c33}.slot-reel small{display:block;text-align:center;color:#8e744e;font:9px monospace}.slot-reel>div{display:grid;gap:6px;margin-top:8px}.slot-reel span{display:block;padding:9px 3px;text-align:center;border:1px solid #4c3921;border-radius:5px;background:#f0e6d3;color:#25170b;font-weight:700}.slot-reel.spinning>div{animation:none}.slot-choices{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.slot-choices button,.slot-result button,.slot-actions button{min-height:44px;border:1px solid #a77936;background:#21170d;color:#e8c887;padding:10px 17px;cursor:pointer}.slot-choices button:hover{background:#3b260f}.slot-result{min-height:54px;margin-top:20px;text-align:center;color:#bbb}.slot-result b{color:#f0c66e}.slot-result button{display:block;margin:13px auto 0}.slot-actions{text-align:center;margin-top:14px}.slot-actions button{color:#8d806e;border-color:#493922}.slot-choices button:disabled{opacity:.45;cursor:default}@keyframes marqueeBlink{50%{filter:brightness(1.7)}}@keyframes reelSpin{50%{transform:translateY(-8px);filter:blur(1.5px)}}@media(max-width:700px){#sceneImage[alt="전담 매니저 최소영"]{max-height:48vh;object-fit:contain}.slot-shell{padding:22px 10px}.slot-reels{gap:5px}.slot-reel{padding:6px 4px}.slot-reel span{font-size:12px;padding:8px 1px}.slot-choices button{flex:1 1 28%}}

/* DEV 53 · continuous reels, emoji betting, locked-in daily room */
.slot-reels{height:270px;overflow:hidden}
.slot-reel{height:248px;overflow:hidden;position:relative}
.slot-reel:before,.slot-reel:after{content:"";position:absolute;left:0;right:0;height:35px;z-index:2;pointer-events:none}.slot-reel:before{top:25px;background:linear-gradient(#080706,transparent)}.slot-reel:after{bottom:0;background:linear-gradient(transparent,#080706)}
.reel-window{display:grid!important;gap:6px!important;margin-top:8px!important;will-change:transform}.slot-reel span{height:42px;box-sizing:border-box;display:flex!important;align-items:center;justify-content:center;gap:7px}.slot-reel span i{font-style:normal;font-size:21px}.slot-reel span em{font-style:normal}.slot-reel.spinning .reel-window{filter:blur(.7px)}
.slot-choices{margin-top:20px}.slot-choices button{width:74px;height:72px;padding:6px!important;border-radius:9px}.slot-choices button span{display:block;font-size:28px}.slot-choices button small{display:block;margin-top:4px;color:#a99a83}.slot-choices button.selected{border-color:#ffd36a;background:#4b3214;box-shadow:0 0 15px #e9a82f88}.slot-choices button:disabled.selected{opacity:1}
.slot-bet{display:block;width:118px;height:48px;margin:16px auto 0;border:2px solid #ff655b;border-radius:7px;background:#a91e18;color:#fff;font-weight:900;letter-spacing:.14em;cursor:pointer;box-shadow:0 0 18px #c62c2266}.slot-bet:hover:not(:disabled){background:#d02a22}.slot-bet:disabled{opacity:.35;cursor:default}
.slot-result .reward{display:inline-block;margin:9px 4px 0;padding:7px 10px;border:1px solid #555;border-radius:999px;font-weight:800}.slot-result .reward.blue{border-color:#2773c9;color:#75b5ff}.slot-result .reward.yellow{border-color:#e3b82c;color:#ffe26d}.slot-result .reward.red{border-color:#b93333;color:#ff7777}
@media(max-width:700px){.slot-reels{height:235px}.slot-reel{height:215px}.slot-reel span{height:36px;font-size:11px}.slot-reel span i{font-size:17px}.slot-reel span em{display:none}.slot-choices button{width:58px;height:62px;flex:0 0 58px!important}.slot-choices button span{font-size:24px}}

/* DEV54 slot payline */
.reel-window{filter:none!important;opacity:1!important}
.slot-reel{position:relative}
.slot-reel::after{content:"";position:absolute;left:5px;right:5px;top:50%;height:25%;transform:translateY(-50%);border:3px solid #d62d2d;border-radius:8px;pointer-events:none;z-index:5}
.reel-window span,.reel-window span i{filter:none!important;opacity:1!important}

/* DEV71 · BIG WHEEL */
.wheel-game{width:min(900px,100%);margin:14px auto}.wheel-shell{padding:30px 24px;border:3px solid #8b672c;border-radius:22px;background:radial-gradient(circle at 50% 0,#422208,#160d07 48%,#090706);box-shadow:inset 0 0 35px #d89b2930,0 24px 70px #000c}.dealer-box{width:min(650px,100%);margin:22px auto;padding:16px 20px;box-sizing:border-box;border:1px solid #584326;background:#0b0907;text-align:center}.dealer-box small{color:#a9854f;font:10px monospace;letter-spacing:.18em}.dealer-box p{margin:8px 0 0;color:#ddd;line-height:1.7}.wheel-wrap{position:relative;width:min(470px,82vw);aspect-ratio:1;margin:24px auto}.wheel-pointer{position:absolute;z-index:4;left:50%;top:-20px;transform:translateX(-50%);color:#f1d176;font-size:34px;text-shadow:0 2px 7px #000}.big-wheel{position:absolute;inset:0;border:9px solid #b98a3e;border-radius:50%;background:conic-gradient(from -9deg,#a52d2d 0 18deg,#286bb3 18deg 36deg,#27824b 36deg 54deg,#c6a523 54deg 72deg,#6d3f91 72deg 90deg,#a52d2d 90deg 108deg,#286bb3 108deg 126deg,#27824b 126deg 144deg,#c6a523 144deg 162deg,#6d3f91 162deg 180deg,#a52d2d 180deg 198deg,#286bb3 198deg 216deg,#27824b 216deg 234deg,#c6a523 234deg 252deg,#6d3f91 252deg 270deg,#a52d2d 270deg 288deg,#286bb3 288deg 306deg,#27824b 306deg 324deg,#c6a523 324deg 342deg,#6d3f91 342deg 360deg);box-shadow:inset 0 0 35px #000a,0 0 28px #d9a44433;transition:transform 4.1s cubic-bezier(.12,.72,.08,1)}.big-wheel:after{content:"217";position:absolute;inset:38%;display:grid;place-items:center;border:5px solid #c99a4c;border-radius:50%;background:#100b07;color:#d7b36f;font:700 20px Georgia,serif;letter-spacing:.1em}.big-wheel span{position:absolute;z-index:2;left:50%;top:50%;width:42px;margin-left:-21px;text-align:center;color:#fff;font:700 11px monospace;text-shadow:0 1px 3px #000;transform:rotate(calc(var(--i)*18deg + 9deg)) translateY(-205px) rotate(calc(var(--i)*-18deg - 9deg));transform-origin:center}.wheel-colors{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.wheel-color{min-width:88px;padding:11px 12px;border:2px solid #ffffff40;border-radius:7px;color:#fff;font-weight:800;cursor:pointer;filter:brightness(.7)}.wheel-color.red{background:#a52d2d}.wheel-color.blue{background:#286bb3}.wheel-color.green{background:#27824b}.wheel-color.yellow{background:#b99a1f}.wheel-color.purple{background:#6d3f91}.wheel-color.selected{filter:brightness(1.35);border-color:#fff;box-shadow:0 0 15px #fff5}.wheel-color:disabled{cursor:default}.wheel-color:disabled.selected{opacity:1}.wheel-game .slot-result .reward{display:inline-block;margin:9px 4px 0;padding:7px 10px;border:1px solid #555;border-radius:999px;font-weight:800}.wheel-game .slot-result button{display:block;margin:13px auto 0}
@media(max-width:700px){.wheel-shell{padding:22px 10px}.wheel-wrap{width:min(330px,84vw)}.big-wheel span{transform:rotate(calc(var(--i)*18deg + 9deg)) translateY(-143px) rotate(calc(var(--i)*-18deg - 9deg));font-size:9px}.wheel-color{min-width:58px;padding:9px 7px;font-size:10px}}

/* DEV72 · wheel casino polish */
.dealer-box p strong{color:#f2c967;font-weight:900;text-shadow:0 0 10px #e2a73d66}
.big-wheel{box-shadow:inset 0 0 35px #000a,0 0 28px #d9a44466,0 0 60px #c78c2633}
.big-wheel:before{content:"";position:absolute;inset:-18px;border-radius:50%;border:6px dotted #ffd66b;box-shadow:0 0 12px #ffc84c,inset 0 0 12px #ffc84c;animation:wheelLights .7s steps(2) infinite;z-index:3;pointer-events:none}
.big-wheel:after{box-shadow:0 0 22px #e7b74d77,inset 0 0 12px #d8a44233}
.big-wheel span small{display:block;font:700 8px/1 monospace;color:#ffe9b3;letter-spacing:.04em;margin-bottom:3px;text-shadow:0 0 5px #000}
.wheel-pointer{filter:drop-shadow(0 0 8px #ffd05c)}
@keyframes wheelLights{50%{filter:brightness(1.75);opacity:.72}}
@media(max-width:700px){.big-wheel:before{inset:-13px;border-width:4px}.big-wheel span small{font-size:7px}}

/* DEV73 · wheel behavior/legibility */
.dealer-box p strong{color:inherit!important;text-shadow:none!important;font-weight:900}
.wheel-wrap{margin:42px auto 34px}
.wheel-time-ring{position:absolute;inset:-31px;z-index:2;border-radius:50%;pointer-events:none}
.wheel-time-ring small{position:absolute;left:50%;top:50%;width:34px;margin-left:-17px;text-align:center;color:#bfae8d;font:700 8px/1 monospace;transform:rotate(calc(var(--i)*18deg)) translateY(calc((min(470px,82vw)/-2) - 19px)) rotate(calc(var(--i)*-18deg));transform-origin:center}
@media(max-width:700px){.wheel-wrap{margin-top:40px;margin-bottom:34px}.wheel-time-ring{inset:-24px}.wheel-time-ring small{font-size:7px;transform:rotate(calc(var(--i)*18deg)) translateY(calc((min(330px,84vw)/-2) - 15px)) rotate(calc(var(--i)*-18deg))}}

/* DEV75 · BIG WHEEL hint/time typography */
.dealer-box p strong{font-size:calc(1em + 1px)}
.wheel-time-ring small{font-size:9px}
@media(max-width:700px){.wheel-time-ring small{font-size:8px}}

/* DEV76 · manager speaker label */
.story-panel h1 small{font-size:.48em;letter-spacing:.08em;color:#a9854f;font-family:inherit;font-weight:600;vertical-align:middle;margin-right:7px}

/* DEV81 · NPC portraits + dialogue reveal */
.scene-card:has(#sceneImage[alt="놀란 전담 매니저 최소영"]),.scene-card:has(#sceneImage[alt="책상에 앉아 있는 보스"]){width:min(520px,100%);margin:0 auto;background:transparent;border-color:#4a3925}
#sceneImage[alt="놀란 전담 매니저 최소영"],#sceneImage[alt="책상에 앉아 있는 보스"]{width:100%;max-height:520px;object-fit:contain;object-position:center top;background:#080706}
.story-text p{opacity:0;transform:translateY(5px);animation:lineIn .5s forwards}
@media(max-width:700px){#sceneImage[alt="놀란 전담 매니저 최소영"],#sceneImage[alt="책상에 앉아 있는 보스"]{max-height:48vh;object-fit:contain}}


/* DEV85 · ROOM 02 MEMORIES */
.memory-game{width:min(980px,100%);margin:14px auto}.memory-shell{padding:30px 26px;border:1px solid #705536;border-radius:14px;background:radial-gradient(circle at 50% 0,#2b1b0d,#0d0a07 48%,#060505);box-shadow:inset 0 0 45px #c28a2b18,0 28px 80px #000c}.memory-head{text-align:center;margin-bottom:22px}.memory-head span{color:#a9854f;font:10px monospace;letter-spacing:.2em}.memory-head h2{margin:6px 0 3px;color:#e1bd79;letter-spacing:.22em}.memory-head small{color:#706451;font:9px monospace;letter-spacing:.18em}.memory-gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:20px 0 26px}.memory-gallery figure{margin:0;opacity:0;transform:translateY(10px);animation:memoryReveal .5s forwards;animation-delay:calc(var(--i)*.16s);border:1px solid #5b452c;background:#0a0806;padding:5px;box-shadow:0 10px 24px #0008}.memory-gallery img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;object-position:center}.memory-gallery figcaption{padding:6px 3px 2px;color:#806b4d;font:8px monospace;letter-spacing:.12em}.memory-focus{width:min(760px,100%);margin:18px auto 24px;text-align:center}.memory-focus>span{display:block;margin-bottom:8px;color:#9d7a49;font:9px monospace;letter-spacing:.18em}.memory-photo-frame{padding:8px;border:1px solid #b18850;background:#080706;box-shadow:0 0 0 1px #2d2115,0 22px 65px #000,0 0 35px #bd87312c}.memory-photo-frame img{display:block;width:100%;height:min(52vh,430px);object-fit:contain;background:#050505}.memory-talk{width:min(760px,100%);margin:0 auto;padding:18px 20px;border-top:1px solid #4d3a25;background:#0a0806aa;box-sizing:border-box}.memory-talk>small{color:#c79c5b;font:700 10px monospace;letter-spacing:.16em}.memory-talk p{margin:9px 0 0;color:#d5cec3;line-height:1.75;opacity:0;transform:translateY(5px);animation:lineIn .45s forwards}.memory-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.memory-actions button{flex:1 1 180px;min-height:43px;border:1px solid #80613b;background:#1a120b;color:#dfc28b;padding:10px 14px;cursor:pointer}.memory-actions button:hover{border-color:#c69a57;background:#2a1b0e}@keyframes memoryReveal{to{opacity:1;transform:none}}@media(max-width:700px){.memory-shell{padding:22px 10px}.memory-gallery{grid-template-columns:repeat(2,1fr);gap:7px}.memory-gallery img{aspect-ratio:4/3}.memory-photo-frame{padding:5px}.memory-photo-frame img{height:auto;max-height:48vh}.memory-talk{padding:16px 10px}.memory-actions button{flex-basis:100%}}

/* DEV90 · reality hospital palette */
body.player-reality,body.player-reality .player-game{background:#d9dde0;color:#24282b}
body.player-reality .player-game{background:linear-gradient(180deg,#e7eaec 0,#cfd4d7 100%)}

body.player-reality .day-label{color:#667078}
body.player-reality .scene-card{border-color:#aab1b5;background:#d5d9db;box-shadow:0 18px 45px #59616830}
body.player-reality .story-panel{border-color:#aab1b5;background:linear-gradient(180deg,#f2f3f3f2,#dfe3e5f7);box-shadow:0 16px 40px #59616835}
body.player-reality .story-panel h1{color:#39434a;font-family:Arial,sans-serif}
body.player-reality .story-panel h1 small{color:#737d84}
body.player-reality .story-text{color:#333a3f}
body.player-reality .player-actions button{border-color:#929ca2;background:#d7dcdf;color:#273036}
body.player-reality .player-actions button:hover{background:#c7cdd1}
body.player-reality #sceneImage[alt="병실 내부"],body.player-reality #sceneImage[alt="병원 홀"]{width:100%;max-height:62vh;object-fit:contain;background:#d5d9db}
body.player-reality .scene-card:has(#sceneImage[alt="간호사 복장의 최소영"]){width:min(520px,100%);margin:0 auto;border-color:#aab1b5;background:#d5d9db}
body.player-reality #sceneImage[alt="간호사 복장의 최소영"]{width:100%;max-height:520px;object-fit:contain;object-position:center top;background:#d5d9db}

/* DEV91 · reality rooms */
body.player-reality .room-hub{color:#252b2f}
body.player-reality .hub-copy span,body.player-reality .room-buttons small{color:#68747b}
body.player-reality .hub-copy p,body.player-reality .room-buttons span{color:#667078}
body.player-reality .room-buttons button{border-color:#aeb5b9;background:#e4e7e9;color:#30383d}
body.player-reality .room-buttons button:hover{border-color:#77838a;background:#d8dde0}
body.player-reality .room-buttons b{color:#3e494f}
body.player-reality .room-buttons button.locked{background:#c8cdcf;color:#8a9297}
body.player-reality #sceneImage[alt="감정카드"],body.player-reality #sceneImage[alt="일과표 선택"],body.player-reality #sceneImage[alt="사탕 비타민 초콜릿"]{width:100%;max-height:62vh;object-fit:contain;background:#d5d9db}
.story-text p:first-child:has(+ p){ }

/* DEV97 · reality memory room */
body.player-reality .memory-shell{border-color:#aab1b5;background:linear-gradient(180deg,#f2f4f5,#dfe3e5);box-shadow:0 20px 55px #59616835}
body.player-reality .memory-head span,body.player-reality .memory-head small,body.player-reality .memory-focus>span{color:#69757c}
body.player-reality .memory-head h2{color:#303a40}
body.player-reality .memory-gallery figure{border-color:#aeb6ba;background:#eef0f1;box-shadow:0 8px 20px #59616825}
body.player-reality .memory-gallery figcaption{color:#68747b}
body.player-reality .memory-photo-frame{border-color:#9ea8ad;background:#d5dadd;box-shadow:0 0 0 1px #c3c9cc,0 18px 45px #59616830}
body.player-reality .memory-photo-frame img{background:#d5dadd}
body.player-reality .memory-talk{border-top-color:#b7bec2;background:#eef1f2}
body.player-reality .memory-talk>small{color:#59666e}
body.player-reality .memory-talk p{color:#30383d}
body.player-reality .memory-actions button{border-color:#9ca6ab;background:#d9dee1;color:#273137}
body.player-reality .memory-actions button:hover{border-color:#717d84;background:#cbd2d6}

/* DEV98 · stage directions */
.story-text .stage-direction,.memory-talk .stage-direction{font-size:calc(1em - 3px);color:#8d8a84;font-style:italic;letter-spacing:.01em}
body.player-reality .story-text .stage-direction,body.player-reality .memory-talk .stage-direction{color:#7b858b}

/* DEV101 · PLAYER ending */
body.player-ending .player-game{min-height:70vh;display:grid;place-items:center;background:#08090a}
body.player-ending .chip-wallet,body.player-ending .day-label{opacity:0}
body.player-ending .story-panel{width:100%;border:0;background:#08090a;box-shadow:none}
.player-end-title{min-height:45vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;text-align:center}
.player-end-title b{font:700 clamp(42px,10vw,92px)/1 Arial,sans-serif;letter-spacing:.24em;color:#ececec;animation:lineIn 2s forwards}
.player-end-title span{font:500 14px/1 Arial,sans-serif;letter-spacing:.6em;color:#7f8589;animation:lineIn 3s forwards}


/* DEV111 · BOSS "잡아!!" impact */
.scene-card img.boss-impact{animation:bossImpact .68s cubic-bezier(.2,.8,.25,1)}
@keyframes bossImpact{
 0%{transform:scale(1) translate3d(0,0,0)}
 15%{transform:scale(1.075) translate3d(-9px,2px,0)}
 30%{transform:scale(1.035) translate3d(8px,-3px,0)}
 45%{transform:scale(1.09) translate3d(-6px,2px,0)}
 62%{transform:scale(1.045) translate3d(5px,-1px,0)}
 80%{transform:scale(1.065) translate3d(-2px,1px,0)}
 100%{transform:scale(1) translate3d(0,0,0)}
}



/* DEV114 · ROOM 01 / 03 WIN celebration */
.casino-win-flash{animation:casinoWinGlow 1.25s ease-out!important;position:relative;z-index:41}
.casino-win-burst{position:fixed;inset:0;z-index:9999;pointer-events:none;overflow:hidden;background:radial-gradient(circle at 50% 50%,rgba(255,221,120,.16),transparent 52%);animation:winScreenFlash .7s ease-out}
.casino-win-burst i{position:absolute;left:var(--x);bottom:-36px;font-style:normal;font-size:clamp(20px,5vw,38px);color:#ffe08a;text-shadow:0 0 7px #fff,0 0 16px #ffc84f,0 0 28px #ff9f1c;opacity:0;animation:casinoSpark var(--dur) cubic-bezier(.12,.72,.2,1) var(--delay) forwards}
.casino-win-burst i:nth-child(3n){color:#fff4c4}.casino-win-burst i:nth-child(4n){color:#ffbd45}.casino-win-burst i:nth-child(5n){font-size:clamp(14px,3vw,26px)}
@keyframes winScreenFlash{0%{background:rgba(255,235,170,0)}12%{background:rgba(255,235,170,.32)}30%{background:rgba(255,235,170,.05)}46%{background:rgba(255,235,170,.2)}100%{background:rgba(255,235,170,0)}}
@keyframes casinoWinGlow{0%{filter:brightness(1)}12%{filter:brightness(2) saturate(1.6);box-shadow:0 0 55px #ffd76b}32%{filter:brightness(1.08)}50%{filter:brightness(1.7) saturate(1.4);box-shadow:0 0 38px #ffc84f}100%{filter:brightness(1)}}
@keyframes casinoSpark{0%{transform:translate3d(0,0,0) scale(.2) rotate(0);opacity:0}12%{opacity:1}72%{opacity:1}100%{transform:translate3d(var(--dx),-78vh,0) scale(1.35) rotate(420deg);opacity:0}}


/* DEV116 · PLAYER pre-game guide */
.player-intro{width:min(920px,calc(100% - 28px));margin:34px auto 70px}
.player-intro-card{position:relative;overflow:hidden;padding:clamp(28px,5vw,54px);border:1px solid #806331;border-radius:18px;background:radial-gradient(circle at 50% 0,#33200c,#120d08 48%,#080706);box-shadow:inset 0 0 45px #d59b2630,0 24px 70px #0009;color:#d7d0c5}
.player-intro-card>span{font:700 11px monospace;letter-spacing:.22em;color:#b78d4e}
.player-intro-card h1{margin:8px 0 24px;font:800 clamp(38px,8vw,72px)/1 Arial,sans-serif;letter-spacing:.16em;color:#f0c66e;text-shadow:0 0 24px #e5aa3d35}
.player-intro-card p{max-width:760px;margin:14px 0;color:#c7c0b5;line-height:1.9;word-break:keep-all}
.player-intro-card p strong{color:#f1d18d}
.player-intro-card .visual-warning{margin-top:24px;padding:18px 20px;border-left:3px solid #d6a84e;background:#ffffff08;color:#ddd5c8}
.player-intro-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:28px}
.player-intro-actions button{min-height:48px;padding:12px 18px;border:1px solid #a77936;border-radius:6px;background:#21170d;color:#e8c887;font-weight:800;cursor:pointer}
.player-intro-actions button:hover{background:#3b260f}
#startPlayerGame{background:#a77936;color:#100b06}
@media(max-width:600px){.player-intro{margin-top:18px}.player-intro-card{padding:26px 20px}.player-intro-actions button{width:100%}}


/* DEV118 · hospital doctor portrait sizing */
body.player-reality .scene-card:has(#sceneImage[alt="의사 가운을 입은 닥터"]){width:min(620px,100%);margin:0 auto;border-color:#aab1b5;background:#d5d9db}
body.player-reality #sceneImage[alt="의사 가운을 입은 닥터"]{display:block;width:100%;max-height:68vh;object-fit:cover;object-position:center 24%}
@media(max-width:700px){body.player-reality .scene-card:has(#sceneImage[alt="의사 가운을 입은 닥터"]){width:min(520px,100%)}body.player-reality #sceneImage[alt="의사 가운을 입은 닥터"]{max-height:56vh;object-position:center 20%}}


/* DEV120 · ending hall portrait + END navigation */
body.player-reality .scene-card:has(#sceneImage[alt="간호사 복장의 최소영"]),
body.player-reality .scene-card:has(#sceneImage[alt="카지노 매니저 최소영"]){width:min(520px,100%);margin:0 auto}
body.player-reality #sceneImage[alt="간호사 복장의 최소영"],
body.player-reality #sceneImage[alt="카지노 매니저 최소영"]{display:block;width:100%;max-height:64vh;object-fit:cover;object-position:center top}
.player-end-home{margin-top:22px;padding:12px 20px;border:1px solid #676d70;color:#c8ccce;text-decoration:none;font:600 13px/1 Arial,sans-serif;letter-spacing:.12em;transition:.2s}
.player-end-home:hover{border-color:#d7dbdd;color:#fff;background:#ffffff0b}
@media(max-width:700px){body.player-reality #sceneImage[alt="간호사 복장의 최소영"],body.player-reality #sceneImage[alt="카지노 매니저 최소영"]{max-height:55vh}.player-end-home{width:min(260px,80%);box-sizing:border-box}}


/* DEV122 · unify dialogue speaker typography */
.story-panel h1{font-family:inherit}
body.player-reality .story-panel h1{font-family:inherit}
.memory-talk>small,.dealer-box small{font-family:inherit}


/* DEV132 · ROOM 02 shell-game memory cards */
.memory-gallery.memory-shuffle-board{position:relative;overflow:visible}
.memory-shuffle-card{appearance:none;position:relative;min-width:0;aspect-ratio:16/11;padding:0;border:0;background:transparent;cursor:pointer;perspective:900px;transition:transform .28s cubic-bezier(.2,.75,.25,1);z-index:1}
.memory-shuffle-card:disabled{cursor:default}
.memory-card-inner{position:absolute;inset:0;display:block;transform-style:preserve-3d;transition:transform .5s ease}
.memory-shuffle-card.is-flipped .memory-card-inner{transform:rotateY(180deg)}
.memory-card-front,.memory-card-back{position:absolute;inset:0;display:grid;place-items:center;backface-visibility:hidden;border:1px solid #705536;border-radius:7px;overflow:hidden;background:#0a0806;box-shadow:0 9px 22px #0009}
.memory-card-front img{width:100%;height:100%;object-fit:cover}
.memory-card-back{transform:rotateY(180deg);background:radial-gradient(circle,#3b2813,#120d08 70%);color:#a9854f;font:700 10px/1.5 monospace;letter-spacing:.14em}
.memory-card-back b{font-size:18px;color:#d7b36f}
.memory-shuffle-card.memory-target .memory-card-front{border:3px solid #e7bd6b;box-shadow:0 0 24px #e7bd6b88}
.memory-shuffle-card:not(:disabled):hover .memory-card-back{border-color:#d4a75c;box-shadow:0 0 18px #d4a75c55}
@media(max-width:700px){.memory-gallery.memory-shuffle-board{gap:7px}.memory-shuffle-card{aspect-ratio:4/3}.memory-card-back{font-size:8px}.memory-card-back b{font-size:15px}}

