*{box-sizing:border-box}body{margin:0;background:#151b20;color:#eee8d7;font:15px Arial,sans-serif}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.42}button:focus-visible,input:focus-visible{outline:3px solid #fcb960;outline-offset:3px}[hidden]{display:none!important}.topbar{max-width:1400px;margin:20px auto;display:flex;justify-content:space-between;padding:0 12px;font-size:12px;letter-spacing:2px;color:#b4b8ae}.topbar strong{color:#f3d690}#shell{margin:auto;overflow:hidden}#game{width:1400px;height:780px;display:flex;transform-origin:top left;background:#212a2b;border:2px solid #090d10}.panel{width:260px;flex-shrink:0;padding:28px 22px;position:relative;background:linear-gradient(130deg,#293333,#182126);z-index:3;border-right:4px solid #101719}.logo{font-weight:950;font-size:26px;line-height:1.05;letter-spacing:-1px;transform:rotate(-2deg)}.logo em{font-size:43px;color:#f4bf69;font-style:normal}.logo span{display:block;font-size:9px;line-height:1.5;letter-spacing:1px;margin-top:12px;color:#babcb0}.label{font-size:11px;letter-spacing:2px;color:#b7b9a8;display:block}.wallet{margin:32px 0 22px}.wallet strong{font-size:40px;display:block;margin-top:4px;color:#f6d28a}.bet-control{display:flex;border:2px solid #55615d;margin:8px 0 24px;height:42px}.bet-control button{width:38px;border:0;background:#36413e;color:#eadcc0;font-size:24px}.bet-control input{width:126px;min-width:0;background:#172023;color:#fff;border:0;text-align:center;font-weight:bold;appearance:textfield}.bet-control input::-webkit-inner-spin-button{appearance:none}.return strong{display:block;font-size:34px;margin-top:5px}.return>span:last-child{display:block;color:#adb6a8;font-size:12px;height:28px;margin-top:6px}.actions{display:grid;gap:10px;margin-top:18px}.primary,.secondary{min-height:52px;border:2px solid #111916;font-size:19px;font-weight:900;padding:12px 16px;box-shadow:3px 4px 0 #101719}.primary{background:#c4d96b;color:#172020}.secondary{background:#e8b969;color:#241e15}.primary:hover:not(:disabled),.secondary:hover:not(:disabled){filter:brightness(1.1)}#message{font-size:13px;color:#c9c8b9;line-height:1.6;min-height:64px;margin-top:24px}.round-info{display:flex;justify-content:space-between;font-size:11px;color:#9ca99d;margin-top:12px}.text-button{border:0;background:none;color:#cfcab6;text-decoration:underline;font-size:11px;padding:0}.scene{width:1140px;height:780px;overflow:hidden;position:relative;background:#78786a}#camera-track{position:absolute;inset:0;will-change:transform}#backdrop{position:absolute;inset:0}.bg-tile{position:absolute;top:0;width:1140px;height:780px;object-fit:fill;pointer-events:none}.scene-heading{position:absolute;top:20px;left:24px;right:24px;display:flex;justify-content:space-between;font-size:11px;letter-spacing:2px;color:#dedbcc;text-shadow:1px 2px #26312c;pointer-events:none}.scene-heading>span:first-child{background:#27342bd9;padding:7px 10px;transform:rotate(-2deg)}#next-label{padding:7px 0}.station{position:absolute;width:240px;height:220px;top:306px}.desk{position:absolute;width:240px;height:185px;bottom:0;object-fit:fill}.colleague{position:absolute;width:170px;height:116px;left:35px;top:-4px;overflow:hidden}.colleague img{width:170px;height:255px;object-fit:contain;object-position:top}.workstation{width:240px;height:220px;object-fit:fill}.station.noticed{filter:brightness(1.14)}.notice{position:absolute;left:105px;top:-38px;width:35px;height:40px;background:#f5c975;color:#25221c;transform:rotate(8deg);text-align:center;font-weight:900;font-size:30px;border:2px solid #27261f;z-index:4}.step-point{position:absolute;top:627px;width:240px;text-align:center}.medallion{display:block;width:112px;height:66px;object-fit:fill;margin:auto;filter:saturate(.5) brightness(.8)}.step-point b{display:inline-block;margin-top:-1px;padding:5px 13px;background:#293330;border:2px solid #a49366;color:#e9dfbe;font-size:17px;transform:rotate(-2deg);box-shadow:2px 2px #263027}.step-point.current .medallion{filter:brightness(1.25) saturate(1.3);drop-shadow:0 0 6px #ffffa0}.step-point.done:not(.current) .medallion{filter:sepia(.2) hue-rotate(30deg)}.step-point.done b{color:#d9ee96;border-color:#a4bb6a}#route-line{position:absolute;top:658px;height:6px;left:350px;background:repeating-linear-gradient(90deg,#e4d6a0b5 0 15px,transparent 15px 28px);transform:rotate(-.01deg)}#player{position:absolute;width:220px;height:298px;left:-110px;top:362px;z-index:3;will-change:transform;pointer-events:none}#player img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(4px 7px 3px #2226)}#player.walking img{animation:walk-placeholder .18s ease-in-out infinite alternate}@keyframes walk-placeholder{to{transform:translateY(-3px) rotate(.8deg)}}#pole{position:absolute;width:215px;height:455px;object-fit:fill;left:5px;top:181px;pointer-events:none}.edge-hint{position:absolute;right:22px;bottom:24px;font-size:10px;letter-spacing:2px;color:#e4dbc4;text-shadow:1px 1px #222}.poster{position:absolute;top:202px;width:100px;padding:10px 7px;background:#d0c09a;color:#363b32;border:2px solid #4c4d3e;font-size:12px;font-weight:900;line-height:1.15;text-align:center;transform:rotate(-5deg);box-shadow:2px 3px #383d3444}.poster::before{content:'';position:absolute;top:-7px;left:28px;width:39px;height:13px;background:#e5d7aa9c;transform:rotate(7deg)}#caught-scene{position:absolute;inset:0;z-index:10;background:#1b2526;animation:scene-in .25s ease-out}@keyframes scene-in{from{opacity:0;transform:scale(1.025)}to{opacity:1;transform:scale(1)}}#scene-art{position:absolute;inset:0;background:url('assets/v2/party-background.webp') center/cover}#scene-art img{width:100%;height:100%;object-fit:cover}#scene-art.sketch{background:linear-gradient(#25302b55,#18211fe6),url('assets/v2/party-background.webp') center/cover}#scene-art.sketch img{width:440px;height:650px;object-fit:contain;position:absolute;left:340px;top:5px}.scene-copy{position:absolute;inset:auto 0 0;padding:105px 45px 35px;background:linear-gradient(transparent,#142021 45%);text-align:center}.scene-copy h2{font-size:47px;letter-spacing:-2px;margin:8px 0;color:#f1d29b;transform:rotate(-1deg)}.scene-copy p{font-size:18px;margin:12px 0 22px}.scene-copy>span{font-size:11px;letter-spacing:2px;color:#c9b99c}.scene-copy button{min-width:230px}.tools{max-width:1400px;margin:18px auto;display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:0 12px;font-size:11px;color:#95a29b}.tools button{border:1px solid #58635d;background:#293530;color:#d4d6c7;padding:8px 12px}.tools button[aria-pressed=true]{background:#806835;color:#fff}.tools span:last-child{font-size:10px}dialog{background:#273330;color:#e6dfce;border:2px solid #b6ab7b;max-width:430px;padding:30px;line-height:1.6}dialog::backdrop{background:#101a20b0}@media(prefers-reduced-motion:reduce){#player.walking img,#caught-scene{animation:none}}

/* Align the player's boot soles with the floor markers; keep the action visible above the caption. */
#player{top:377px}
#scene-art img{height:642px;object-fit:cover}
.scene-copy{padding-top:48px;background:linear-gradient(transparent,#142021 26%)}
.step-point.current .medallion{filter:brightness(1.25) saturate(1.3) drop-shadow(0 0 3px #ffe79666)}
/* Build 04: preserve source aspect ratio; widen spacing with the artwork. */
.station{width:440px;height:290px;top:248px}
.workstation{position:absolute;bottom:0;left:10px;width:420px;height:auto;object-fit:contain;margin:0}
.step-point{width:440px}
.notice{left:203px;top:-26px}
#scene-art.escape img{object-position:center}
.scene-copy #scene-record{display:block;width:max-content;max-width:100%;margin:8px auto 0;padding:4px 10px;border:1px solid #b9c977;color:#d8e7a2;font-size:10px;letter-spacing:1.5px;background:#29362d}
body[data-layout="portrait"] .scene-copy #scene-record,body[data-layout="landscape"] .scene-copy #scene-record{font-size:calc(10px / var(--scene-scale));letter-spacing:1px;padding:5px 12px}

/* Background source is 2:1: preserve proportions at 780px scene height. */
.bg-tile{width:1560px;height:780px;object-fit:contain}


.bg-prop{position:absolute;object-fit:contain;object-position:center bottom;pointer-events:none}


/* Build 10: deep office panorama, native aspect ratios, softly joined edges. */
.depth-tile{position:absolute;top:0;height:780px;object-fit:contain;max-width:none;filter:brightness(.9) saturate(.92);mask-image:linear-gradient(to right,transparent,#000 48px,#000);}

.depth-join{position:absolute;top:0;width:70px;height:465px;overflow:hidden;pointer-events:none;filter:brightness(.9) saturate(.92);mask-image:linear-gradient(#000 96%,transparent)}.depth-join img{position:absolute;max-width:none;width:2340px;height:780px;left:-278px;top:0}
.depth-tile{mask-image:linear-gradient(to right,transparent,#000 24px,#000)}.depth-join{width:40px}.depth-join img{left:-320px}
.depth-shade{position:absolute;top:0;height:780px;pointer-events:none;background:linear-gradient(to bottom,rgba(12,18,24,.28) 0%,rgba(12,18,24,.28) 46%,rgba(12,18,24,.20) 60%,rgba(12,18,24,.05) 75%,transparent 88%)}
.depth-loop{mask-image:linear-gradient(to right,transparent,#000 60px,#000)}
.foreground-lamp{position:absolute;top:-40px;width:300px;height:450px;object-fit:contain;pointer-events:none;filter:none;mask-image:linear-gradient(to bottom,#000 35%,rgba(0,0,0,.3) 44%,rgba(0,0,0,.14) 75%,transparent 100%)}
/* Four rebuilt rooms and one continuous foreground carpet. */
.shared-carpet{position:absolute;top:420px;height:360px;background:url('assets/v12/01-meeting.webp') left bottom/1800px 900px repeat-x;filter:brightness(.9) saturate(.92)}
.room-segment{position:absolute;top:0;width:1560px;height:780px;overflow:hidden;mask-image:linear-gradient(to right,transparent,#000 60px,#000)}
.room-segment img{position:absolute;left:0;width:1560px;height:780px;max-width:none;object-fit:contain;filter:brightness(.9) saturate(.92);mask-image:linear-gradient(to bottom,#000 0%,#000 68%,transparent 94%)}
.shared-carpet{top:367px;height:413px;background-size:2100px 1050px}
.compact-room{mask-image:linear-gradient(to right,transparent,#000 38px,#000)}
.compact-room img{mask-image:linear-gradient(to bottom,#000 0px,#000 410px,transparent 560px)}
/* Build 14: contact shadows ground each workstation and the entertainer. */
.station{isolation:isolate}
.station::before{content:'';position:absolute;left:20px;right:20px;bottom:-11px;height:48px;background:radial-gradient(ellipse,rgba(12,15,20,.34) 0%,rgba(12,15,20,.18) 43%,transparent 73%);pointer-events:none;z-index:0}
.station::after{content:'';position:absolute;left:0;right:0;bottom:-5px;height:24px;background:radial-gradient(ellipse 21px 7px at 7% 50%,rgba(8,10,15,.5),transparent),radial-gradient(ellipse 21px 7px at 93% 50%,rgba(8,10,15,.5),transparent),radial-gradient(ellipse 66px 11px at 50% 50%,rgba(8,10,15,.36),transparent);pointer-events:none;z-index:0}
.workstation{z-index:1}
#player::before{content:'';position:absolute;left:43px;bottom:-4px;width:138px;height:30px;background:radial-gradient(ellipse,rgba(8,10,16,.5) 0%,rgba(8,10,16,.25) 40%,transparent 73%);pointer-events:none}
#player img{position:relative;z-index:1;filter:drop-shadow(2px 3px 2px #18202735)}
.depth-shade{background:linear-gradient(to bottom,rgba(12,18,24,.34) 0%,rgba(12,18,24,.34) 46%,rgba(12,18,24,.25) 60%,rgba(12,18,24,.06) 75%,transparent 88%)}
.station::before,.station::after,#player::before{display:none}#player img{filter:none}
.journal{font-size:11px;color:#bfc5a9;line-height:1.4;margin:10px 0;min-height:16px}
#milestone{position:absolute;top:76px;left:50%;transform:translateX(-50%) rotate(-1deg);padding:10px 18px;background:#27332eef;border:1px solid #b9a06a;color:#efd394;font-size:13px;font-weight:bold;letter-spacing:1px;pointer-events:none;z-index:5;white-space:nowrap;box-shadow:3px 4px 0 #1118}
#practice{position:absolute;bottom:22px;left:22px;color:#f0c679;background:#202a29df;padding:7px 10px;font-size:10px;letter-spacing:1px;pointer-events:none}

#back-office{display:block;min-width:120px;min-height:32px;margin:12px auto 0;color:#d9d6c4}

.tools select{background:#293530;color:#e1ddce;border:1px solid #58635d;padding:8px;font:inherit}

/* Local feedback for stake validation and unavailable scene art. */
.bet-error{color:#f1b599;font-size:12px;line-height:1.35;margin:-14px 0 14px;grid-column:1 / -1}
#bet[aria-invalid=true]{box-shadow:inset 0 0 0 2px #d98464}
#scene-art.unavailable{background:linear-gradient(#25302be0,#142021),url('assets/v2/party-background.webp') center/cover}
.scene-unavailable{position:absolute;top:30%;left:12%;right:12%;text-align:center;font-size:22px;color:#e6dfce}
body[data-layout=portrait] .bet-error,body[data-layout=landscape] .bet-error{margin:0}


#cancel-preview{grid-column:1 / -1;justify-self:start;min-height:36px;padding:7px 10px;border:1px solid #8e957d;border-radius:3px;color:#f2dcac}

