/* Immersive scene and two full-screen pixel-framed work surfaces. */
body.game-open{overflow:hidden;height:100dvh}body.game-open>.command,body.game-open #nav{display:none}body.game-open #workspace{display:block;margin:0;height:100dvh}body.game-open #main{padding:0;max-width:none;height:100%;width:100%;min-width:0}
.game-shell{height:100dvh;width:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:var(--game-ground);color:var(--game-ui-ink);overflow:hidden}
.game-hud{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;padding:10px 14px;background:var(--game-hud);border-bottom:3px solid var(--game-frame);z-index:200}
.game-brand{flex:1;min-width:132px}.game-brand h1{font-family:var(--font-game);font-size:11px;line-height:1.7;letter-spacing:0;white-space:nowrap;margin:0}.game-brand>span{display:block;font-size:12px;color:var(--game-ui-muted)}
.game-hud button,.game-rail button,.game-window-bar button,.dialog-top button,.office-menu-actions button{border-radius:0;background:var(--game-control);color:var(--game-ui-ink);border:0;box-shadow:inset 0 -3px var(--game-frame);font-size:14px;min-height:44px;transform:none}
.game-hud button:hover,.game-rail button:hover{background:var(--game-control-hover)}
.game-hud .hud-target{display:block;background:transparent;box-shadow:none;min-width:150px;text-align:left;padding:4px 8px;flex:1;max-width:270px}.hud-target>span{display:block;font-size:12px}.hud-target strong{font-family:var(--font-game);font-size:13px;font-weight:400;line-height:1.8}.hud-target progress{width:100%;height:7px;display:block;accent-color:var(--game-pin-green);border:0;margin-top:4px}
.game-hud .hud-signals{background:transparent;box-shadow:none;padding:4px}.hud-signals .status{font-size:12px;border-radius:0;padding:4px 6px;text-transform:capitalize}.hud-clock{display:flex;flex-direction:column;font-size:12px;color:var(--game-ui-muted);min-width:76px}.hud-clock time{font-variant-numeric:tabular-nums;color:var(--game-ui-ink);font-weight:600;font-size:16px}
/* Keep ambient lighting outside the camera transform so no room-sized edge appears. */
.game-viewport{position:relative;overflow:hidden;background:var(--game-ground);touch-action:none;cursor:grab;min-height:0}.office-world{position:absolute;width:1400px;height:844px;transform-origin:0 0;user-select:none}.world-art{position:absolute;width:1400px;height:844px;pointer-events:none;image-rendering:pixelated}.night-wash{position:absolute;inset:0;background:var(--game-night);opacity:0;pointer-events:none;z-index:90;mix-blend-mode:multiply}.night + .night-wash{opacity:.45}
.taxi-sign{position:absolute;left:658px;top:142px;width:126px;font-family:var(--font-game);font-size:9px;color:var(--game-sign-ink);letter-spacing:-.5px;transform:skewY(26.565deg);pointer-events:none;text-align:center}
.employee{position:absolute;display:flex;flex-direction:column;align-items:center;width:52px;height:84px;min-width:calc(44px / var(--camera-zoom,1));min-height:calc(44px / var(--camera-zoom,1));background:transparent;border:0;padding:0;overflow:visible;border-radius:0;color:var(--game-ink);transition:none;transform:none}.employee:hover{background:transparent;transform:none}.pixel-person{width:52px;height:84px;flex-shrink:0;image-rendering:pixelated;pointer-events:none}.person-name,.person-mood{display:none;position:absolute;top:86px;font-size:16px;line-height:1.4;background:var(--game-paper);color:var(--game-ink);padding:2px 6px;white-space:nowrap;pointer-events:none}.person-mood{top:112px;font-size:14px}.employee:hover .person-name,.employee:hover .person-mood,.employee:focus-visible .person-name,.employee:focus-visible .person-mood{display:block}.speech{display:none}.walking .pixel-person{animation:pixel-step .35s steps(2,end) infinite}@keyframes pixel-step{50%{transform:translateY(-2px)}}
.scene-object{position:absolute;z-index:8;width:76px;height:65px;min-width:calc(44px / var(--camera-zoom,1));min-height:calc(44px / var(--camera-zoom,1));background:transparent;border:0;padding:0;color:var(--game-ink);border-radius:0;transform:none}.scene-object:hover{background:var(--game-hit-hover);transform:none}.scene-object span{position:absolute;top:100%;left:50%;transform:translateX(-50%);background:var(--game-paper);color:var(--game-ink);font-size:16px;white-space:nowrap;padding:4px 7px;opacity:0;pointer-events:none}.scene-object:hover span,.scene-object:focus-visible span{opacity:1}.scene-object.wall-hit{width:110px;height:105px}.scene-object.pc-hit{width:90px;height:88px}.scene-object.secret-hit{width:58px;height:48px}
.wall-pins{position:absolute;left:1039px;top:310px;width:80px;height:62px;transform:skewY(26.565deg);pointer-events:none;z-index:5}.mini-pin{position:absolute;width:12px;height:14px;color:var(--game-paper);background:var(--game-pin-red);font-size:9px;text-align:center;font-weight:700;line-height:13px;box-shadow:1px 1px var(--game-ink)}.mini-pin.YELLOW{background:var(--game-pin-yellow)}.mini-pin.GREEN{background:var(--game-pin-green)}
.scene-caption{position:absolute;z-index:100;bottom:14px;left:16px;right:16px;pointer-events:none;color:var(--game-ui-ink)}.scene-caption strong{font-size:14px;font-weight:500;display:block;max-width:70ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scene-caption span{font-size:11px;color:var(--game-ui-muted)}
.game-rail{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:8px 14px;background:var(--game-hud);border-top:3px solid var(--game-frame);z-index:200;font-size:12px}.camera-tools{display:flex;gap:4px}.game-rail button{min-width:44px;padding:6px 12px}.camera-hint{flex:1;color:var(--game-ui-muted);min-width:140px}#office-coffee{font-variant-numeric:tabular-nums;color:var(--game-ui-muted)}
.office-reminder{position:absolute;z-index:150;left:50%;top:20%;transform:translateX(-50%);width:min(310px,calc(100% - 24px));padding:18px;background:var(--game-paper);color:var(--game-ink);box-shadow:5px 5px 0 var(--office-wood);cursor:auto}.office-reminder strong{font-family:var(--font-game);font-size:12px}.office-reminder p{margin:12px 0}.office-reminder button{border-radius:0;background:var(--game-pin-green);color:var(--game-paper);min-height:44px}
#celebration{position:absolute;z-index:140;left:50%;top:10%;transform:translateX(-50%);width:min(540px,calc(100% - 24px));background:var(--game-taxi);color:var(--game-ink);padding:20px;font-size:20px;font-weight:700;display:none;box-shadow:5px 5px 0 var(--office-wood)}#celebration.celebrate{display:block}
.rotate-prompt{position:absolute;inset:0;z-index:180;padding:28px;background:var(--game-hud);color:var(--game-ui-ink);touch-action:auto}.rotate-prompt strong{font-size:24px}.rotate-prompt p{margin:18px 0}.photo-mode .scene-caption,.photo-mode .employee .person-name,.photo-mode .employee .person-mood,.photo-mode .employee .speech,.photo-mode .scene-object span{visibility:hidden}
.game-window,.office-dialog{max-width:none;width:100%;height:100dvh;max-height:100dvh;margin:0;padding:0;background:var(--bg);color:var(--ink);border:4px solid var(--game-frame);border-radius:0;overflow:hidden}
.game-window[open],.office-dialog[open]{display:flex;flex-direction:column}.game-window::backdrop,.office-dialog::backdrop{background:var(--game-ground)}
.game-window-bar,.dialog-top{display:flex;align-items:center;gap:14px;padding:8px 12px;background:var(--game-hud);color:var(--game-ui-ink);border-bottom:3px solid var(--game-frame);flex-shrink:0;min-height:68px}.game-window-bar h2,.dialog-top h2{font-family:var(--font-game);font-size:12px;font-weight:400;line-height:1.7;flex:1;margin:0}.window-picker{display:flex;align-items:center;gap:8px;margin:0;font-size:12px}.window-picker select{margin:0;width:180px;min-height:44px;border-radius:0;background:var(--game-control);color:var(--game-ui-ink);border-color:var(--game-frame);font-size:14px}
.game-window-body{flex:1;min-height:0;position:relative;display:flex;flex-direction:column}.game-panel-main{flex:1;min-height:0;overflow:auto;padding:clamp(16px,3vw,40px);width:100%;max-width:1440px;align-self:center;overscroll-behavior:contain}.game-panel-main .view-heading h1{font-size:clamp(26px,4vw,46px);max-width:32ch}.game-panel-main .view-heading{padding:0 0 26px}.panel-loading{padding:20px}
#game-preview{position:absolute;inset:0;background:var(--bg);z-index:5}#game-preview:not([hidden]){display:flex;flex-direction:column}#game-preview header{display:flex;align-items:center;gap:16px;padding:8px 12px;background:var(--surface-2);border-bottom:1px solid var(--line)}#game-preview iframe{width:100%;flex:1;min-height:0;border:0;background:var(--surface)}
#dialog-content{flex:1;min-height:0;overflow:auto;padding:20px}.office-menu-actions{display:flex;gap:10px;flex-wrap:wrap;padding-bottom:20px;border-bottom:1px solid var(--line)}.tool-columns{display:grid;gap:40px;grid-template-columns:1fr}.tool-columns h3{margin:20px 0 10px}.tool-columns button{margin:4px 4px 4px 0}.achievement-list{padding-left:20px;line-height:2}
.board-dialog #dialog-content{display:flex;flex-direction:column;overflow:hidden}.board-tools form{display:flex;flex-wrap:wrap;gap:10px;align-items:end}.board-tools label{flex:1;min-width:180px;margin:0}.board-tools textarea{min-height:60px;height:60px}.board-tools p{margin:10px 0}.board-viewport{flex:1;min-height:100px;overflow:hidden;position:relative;background:var(--surface-2);touch-action:none}.board-world{position:absolute;width:2100px;height:1700px;transform-origin:0 0;background-image:radial-gradient(var(--line-strong) 1px,transparent 1px);background-size:20px 20px}.sticky{position:absolute;width:200px;min-height:150px;background:var(--game-taxi);color:var(--game-ink);box-shadow:4px 4px 0 var(--shadow)}.sticky button{border:0;border-radius:0;color:var(--game-ink);background:transparent;transform:none;width:100%}.sticky .sticky-handle{height:44px;background:var(--game-sticky-handle);font-size:14px;cursor:move;touch-action:none}.sticky .sticky-text{text-align:left;white-space:pre-wrap;overflow-wrap:anywhere;padding:14px;min-height:100px}
.game-shell button:focus-visible,.game-shell select:focus-visible,.game-viewport:focus-visible{outline:3px solid var(--game-focus);outline-offset:3px}
@media(min-width:760px){.tool-columns{grid-template-columns:1fr 1fr}}
@media(max-width:1050px){.hud-clock{display:none}.game-brand{flex:0 1 auto}.game-hud .hud-target{max-width:none}}
@media(max-width:600px){.game-hud{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:8px 10px}.game-brand{grid-column:1}.game-hud .hud-target{grid-column:2;min-width:0}.hud-signals{grid-column:1 / -1;grid-row:2;justify-self:start}.game-hud .hud-menu{grid-column:2;grid-row:3}.game-hud .hud-fullscreen{grid-column:1;grid-row:3}.game-rail{padding:6px 10px;gap:6px}.camera-hint{display:none}#office-coffee{flex:1}.game-rail>button{flex:1}.game-window-bar{gap:8px;flex-wrap:wrap}.game-window-bar h2{font-size:10px}.window-picker{width:100%;justify-content:space-between}.window-picker select{flex:1;max-width:260px}.game-window-bar{min-height:116px}.dialog-top h2{font-size:11px}.board-tools form{gap:6px}.board-tools label{flex-basis:100%}.board-tools textarea{height:50px;min-height:50px}.board-tools p{font-size:12px;line-height:1.3}.board-tools button{font-size:12px;padding:5px 8px}.game-panel-main{padding:16px}.scene-caption{bottom:10px;left:10px}}
@media(max-height:500px) and (orientation:landscape){.game-hud{padding:5px 10px;gap:6px}.game-brand h1{font-size:9px}.game-brand>span{font-size:10px}.hud-target strong{font-size:11px}.game-hud .hud-target{max-width:180px}.game-rail{padding:4px 10px;gap:6px}.scene-caption{bottom:4px}.scene-caption span{display:none}.scene-caption strong{font-size:12px}.game-window-bar,.dialog-top{min-height:56px;padding:4px 10px}#dialog-content{padding:10px}.board-tools p{font-size:12px;line-height:1.3}.board-tools textarea{height:44px;min-height:44px}}
@media(prefers-reduced-motion:reduce){.walking .pixel-person{animation:none}.employee,.office-world{transition:none}}
.client-dossier{padding:24px 0;border-top:1px solid var(--line)}.dossier-heading{display:flex;align-items:center;flex-wrap:wrap;gap:15px}.dossier-heading h2{font-size:24px}.dossier-heading>div{flex:1;min-width:200px}.client-number{font-variant-numeric:tabular-nums;color:var(--muted)}.client-timeline{display:flex;gap:0;overflow:auto;list-style:none;padding:20px 0;margin:0}.client-timeline li{flex:0 0 240px;border-top:3px solid var(--line-strong);padding:14px 20px 0 0;position:relative}.client-timeline li:before{content:"";position:absolute;top:-7px;width:12px;height:12px;background:var(--accent-fill);border-radius:50%}.timeline-kind{text-transform:uppercase;font-size:12px;letter-spacing:.05em;color:var(--accent-text)}.client-timeline p{margin:8px 0;overflow-wrap:anywhere}.client-timeline time{display:block;font-size:13px;color:var(--muted)}.client-timeline a{display:inline-block;min-height:44px;padding-top:10px}.file-index{margin-top:35px}.file-folder{border-top:1px solid var(--line);padding:24px 0}.file-folder h2{font-size:24px}.news-filter{display:flex;gap:10px;padding:20px 0}.news-story{padding:25px 0;border-top:1px solid var(--line)}.news-story h2{font-size:26px;max-width:48ch;margin:8px 0 12px}.news-story a{color:var(--ink);text-decoration:none}.news-story a:hover{text-decoration:underline}.news-story time{font-size:14px;color:var(--muted)}.feed-health{padding:24px;background:var(--surface-2);margin-top:25px}.feed-health h2{font-size:22px;margin-bottom:12px}

.employee-identity,.boss-ceo-identity{position:absolute;left:50%;transform:translateX(-50%);transform-origin:top center;background:var(--game-paper);color:var(--game-ink);padding:2px 4px;white-space:nowrap;text-align:center;font:10px/1.3 var(--font-game);box-shadow:2px 2px 0 var(--game-frame)}
.employee-identity strong,.employee-identity small,.boss-ceo-identity strong,.boss-ceo-identity small{display:block}
.employee-identity small,.boss-ceo-identity small{font-size:9px}
.employee-identity{top:86px;z-index:105;border:0;border-radius:0;min-width:0;min-height:0;margin:0;transition:none;cursor:pointer}
.employee-identity:hover,.employee-identity:active{transform:translateX(-50%);background:var(--game-paper);color:var(--game-ink)}
.employee-identity:focus-visible{outline:2px solid var(--game-ink);outline-offset:2px}
.person-mood{top:-28px}.employee:hover .person-name,.employee:focus-visible .person-name{display:none}
.game-panel-main button,.game-panel-main .button,.game-panel-main input,.game-panel-main select,.game-panel-main textarea{border-radius:0;min-height:44px}.game-panel-main h2,.game-panel-main h3{font-family:var(--font-game);font-size:clamp(11px,1.4vw,15px);line-height:1.8}.game-panel-main .view-heading h1{font-family:var(--font-game);font-size:clamp(16px,2.1vw,27px);line-height:1.6}.game-panel-main .panel{border:0;border-radius:0;background:var(--game-hud);box-shadow:inset 3px 0 var(--game-frame)}.game-panel-main .primary{box-shadow:inset 0 -3px var(--game-ink)}
.furniture-layer{position:absolute;inset:0;pointer-events:none}.furniture-item{position:absolute;border:0;border-radius:0;background:transparent;padding:0;pointer-events:auto;min-height:0;min-width:0;transform:none;box-shadow:none}.furniture-item:hover{background:transparent;transform:none}.furniture-item img{display:block;image-rendering:pixelated;pointer-events:none;width:100%;height:100%}.scene-object{z-index:110}.employee{z-index:120}.quest-bubble{position:absolute;z-index:125;background:var(--game-paper);color:var(--game-ink);border:2px solid var(--game-frame);border-radius:0;padding:10px;font-size:14px;min-height:44px;max-width:210px;box-shadow:3px 3px 0 var(--game-frame)}.quest-bubble:after{content:'';position:absolute;bottom:-8px;left:35px;border:4px solid transparent;border-top-color:var(--game-frame)}
.layout-tools{position:absolute;z-index:210;bottom:0;left:0;right:0;display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:12px;background:var(--game-hud);color:var(--game-ui-ink);border-top:3px solid var(--game-frame)}.layout-tools[hidden]{display:none}.layout-tools strong{flex:1}.layout-tools button{min-height:44px;border-radius:0}.layout-editing .furniture-item{outline:1px dashed var(--game-focus)}.layout-editing .furniture-item.selected{outline:4px solid var(--game-focus);filter:drop-shadow(3px 3px 0 var(--game-frame))}.layout-editing .quest-bubble,.layout-editing .office-reminder{display:none}.edit-grid{display:none;max-width:none;max-height:none;position:absolute;pointer-events:none;overflow:hidden}.edit-grid path{fill:none;stroke:var(--game-grid);stroke-width:1}.layout-editing .edit-grid{display:block;z-index:4}.layout-editing .furniture-layer{z-index:5}.layout-editing .night-wash{opacity:0}
.quest-rail{padding:8px 16px;display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:var(--game-hud);border-bottom:2px solid var(--game-frame);color:var(--game-ui-ink);font-size:12px;flex-shrink:0}.quest-rail ol{display:flex;gap:18px;flex-wrap:wrap;list-style:none;padding:0;margin:0;flex:1}.quest-rail .complete{color:var(--game-focus);font-weight:700}.quest-rail button{min-height:44px;border-radius:0}.quest-select{margin-top:24px;padding:24px 0;border-top:2px solid var(--game-frame)}.quest-select .check{min-height:44px}.job-progress{display:flex;flex-direction:column;font-size:12px;min-width:140px;margin:0}.job-progress progress{width:100%;accent-color:var(--game-focus)}.job-actions{align-items:center}.game-panel-main .check input{min-height:20px;min-width:20px}.game-rail{gap:6px}.game-rail .camera-hint{display:none}.game-rail #office-coffee{flex:1}
@media(max-width:600px){.game-rail>button{flex:0 1 auto;padding:6px 8px}.game-rail .camera-tools{flex:1}.game-rail #office-coffee{display:none}.game-rail{justify-content:space-between}.quest-rail{gap:6px;padding:6px 12px}.quest-rail ol{gap:4px 10px;font-size:11px}.quest-bubble{font-size:16px;max-width:240px}.layout-tools span{display:none}.layout-tools{gap:6px;padding:8px}.layout-tools strong{flex-basis:100%}}
@media(max-height:500px) and (orientation:landscape){.quest-rail{padding:4px 10px;gap:6px}.quest-rail ol{gap:9px}.game-rail #office-coffee{display:none}.game-rail button{padding:4px 8px}.quest-bubble{font-size:16px;max-width:240px}}

.team-workspaces{display:flex;gap:12px;flex-wrap:wrap;padding:16px 0}.team-workspaces button{border-radius:0;min-height:44px}

.office-world>.employee-identity{z-index:160;display:block}
.quest-bubble,.quest-bubble:hover,.quest-bubble:active{transform:scale(calc(1 / var(--camera-zoom,1)));transform-origin:bottom left;transition:none;font-size:14px;max-width:210px}

/* Speech stays in viewport space, so close and text keep their screen size. */
.office-bubble,.office-bubble.quest-bubble,.office-bubble.office-reminder{position:absolute;z-index:170;display:flex;align-items:start;gap:0;box-sizing:border-box;width:220px;max-width:calc(100% - 16px);max-height:128px;padding:0;left:8px;top:8px;transform:none;transition:none;background:var(--game-paper);color:var(--game-ink);border:2px solid var(--game-frame);border-radius:0;box-shadow:3px 3px 0 var(--game-frame);overflow:hidden}
.office-bubble[hidden]{display:none}.office-bubble:after{display:none}
.office-bubble .bubble-action{flex:1;min-width:0;min-height:44px;max-height:124px;overflow:auto;padding:8px;text-align:left;font-size:16px;line-height:1.35;border:0;border-radius:0;background:transparent;color:var(--game-ink);transform:none;transition:none;touch-action:manipulation}
.office-bubble .bubble-action:disabled{opacity:1;cursor:default}
.office-bubble .bubble-close{flex:0 0 44px;width:44px;height:44px;min-width:44px;min-height:44px;padding:0;border:0;border-radius:0;background:transparent;color:var(--game-ink);font-size:26px;line-height:1;transform:none;transition:none;touch-action:manipulation}
.office-bubble button:hover,.office-bubble button:active{transform:none;background:var(--game-control-hover);color:var(--game-ui-ink)}
.office-bubble button:focus-visible{outline:3px solid currentColor;outline-offset:-3px}

/* Supplied character silhouettes share a 2:3 canvas. */
.employee .pixel-person{width:56px;height:84px;object-fit:contain;animation:character-idle 3s steps(2,end) infinite;--character-direction:1}
.employee.facing-left .pixel-person{--character-direction:-1}
.employee.walking .pixel-person{animation:character-walk .35s steps(2,end) infinite}
@keyframes character-idle{0%,100%{transform:scaleX(var(--character-direction)) translateY(0)}50%{transform:scaleX(var(--character-direction)) translateY(-1px)}}
@keyframes character-walk{0%,100%{transform:scaleX(var(--character-direction)) translateY(0)}50%{transform:scaleX(var(--character-direction)) translateY(-3px)}}
@media(prefers-reduced-motion:reduce){.employee .pixel-person{animation:none;transform:none}}
.photo-mode .employee .pixel-person{animation:none}

/* Shared Money wall treatment, scoped to world objects, never whiteboard cards. */
.office-world :is(.scene-object,.furniture-item,.boss-hit,.boss-prop,.boss-ceo,.office-decor){--office-hover-outline:rgba(255,226,140,.9)}
.office-world :is(.scene-object,.furniture-item,.boss-hit,.boss-prop,.boss-ceo,.office-decor)::after{content:attr(data-label);display:none;position:absolute;left:50%;bottom:100%;transform:translate(-50%,-4px);background:var(--game-paper);color:var(--game-ink);font:12px/1.3 var(--font-game);padding:2px 6px;width:max-content;max-width:calc((100vw - 24px) / var(--camera-zoom,1));box-sizing:border-box;white-space:normal;text-align:center;z-index:175;pointer-events:none}
.office-world :is(.scene-object,.furniture-item:not(.selected),.boss-hit,.boss-prop,.boss-ceo,.office-decor):is(:hover,:focus-visible){outline:2px dashed var(--office-hover-outline);outline-offset:0;background:transparent;transform:none}
.office-world :is(.scene-object,.furniture-item,.boss-hit,.boss-prop,.boss-ceo,.office-decor):is(:hover,:focus-visible)::after{display:block}
.office-world :is(.scene-object,.furniture-item,.boss-hit,.office-decor):is(:hover,:focus-visible){z-index:175}
.office-world .scene-object span{display:none}
.office-decor{position:absolute;pointer-events:auto}
.photo-mode .office-world [data-label]::after{visibility:hidden}
