:root{color-scheme:dark;--paper:#eee8da;--muted:#9da9a9;--line:#d4dfdc2a;--gold:#e0bd82}*{box-sizing:border-box}body{margin:0;overflow:hidden;background:#192534;color:var(--paper);font:12px/1.6 "PingFang SC","Microsoft YaHei",sans-serif}button,input,textarea{font:inherit}button{border:0;color:inherit;background:none;cursor:pointer;-webkit-tap-highlight-color:transparent}button:focus-visible{outline:1px solid var(--gold);outline-offset:5px}button:hover{color:var(--gold)}[hidden]{display:none!important}#world{position:fixed;inset:0}#scene{width:100%;height:100%;display:block;touch-action:none}#fallback{position:absolute;inset:0;background:linear-gradient(90deg,#101b22d9,transparent 40%,#101b22b0),url('assets/post-office-preview.png?v=full-building-3') center / contain no-repeat}header{position:fixed;top:34px;left:42px;right:42px;display:flex;align-items:center;gap:20px;pointer-events:none}header>*{pointer-events:auto}.brand{display:flex;align-items:center;gap:16px;padding:0}.brand strong{font:30px/1 Georgia,serif;letter-spacing:2px}.brand>span{font:13px "Songti SC",serif;letter-spacing:5px}.demo{font:8px monospace;letter-spacing:2px;color:var(--muted);border-left:1px solid var(--line);padding-left:20px}#compat{margin-left:auto;color:var(--gold);font-size:10px}.floors{position:fixed;right:42px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:stretch;width:145px}.floors button{display:flex;gap:18px;padding:15px 4px;text-align:left;font-size:11px;border-bottom:1px solid var(--line);color:#aeb7b6;transition:color .2s}.floors button span{font:10px/1.8 monospace;color:#8b999d}.floors button[aria-pressed=true],.floors button[aria-pressed=true] span{color:var(--gold)}.floors button[aria-pressed=true]::after{content:'·';margin-left:auto}footer{position:fixed;bottom:28px;left:42px;right:42px;display:flex;justify-content:space-between;align-items:center;gap:16px;font-size:10px;color:#a3afae;pointer-events:none}footer>div{display:flex;gap:28px;pointer-events:auto}footer button{padding:10px 0;font-size:10px}#letter-count{font-family:monospace;margin-left:8px;color:var(--gold)}#hint{font-size:9px;letter-spacing:1px}#context{position:fixed;bottom:91px;left:50%;transform:translateX(-50%);display:flex;gap:8px;padding:8px;background:#101b22b8;backdrop-filter:blur(10px);border:1px solid var(--line)}#context button{white-space:nowrap;padding:8px 16px;font-size:11px;color:var(--paper)}#context button:hover{background:#e0bd8217}#loading{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#101b22e8;gap:20px;z-index:5;font-size:11px;color:#aeb7b6}.loading-mark{font:34px Georgia;letter-spacing:5px;color:var(--paper)}progress{width:140px;height:2px;accent-color:var(--gold)}#retry{border:1px solid var(--line);padding:10px 22px}dialog{color-scheme:light;background:var(--paper);color:#2c3936;border:0;width:min(560px,calc(100vw - 32px));max-height:85svh;padding:40px;box-shadow:0 30px 100px #0008;overflow:auto}dialog::backdrop{background:#081119b8;backdrop-filter:blur(5px)}#close{position:absolute;right:14px;top:6px;font:29px Georgia;color:#627069;padding:4px 10px}.kicker{font:9px monospace;letter-spacing:2px;color:#8b806b;margin:0 0 14px}h2{font:28px/1.4 "Songti SC",Georgia,serif;font-weight:400;margin:0 0 22px}.notice{font-size:11px;color:#777c70}.paper{position:relative;padding:34px 25px;background:#fbf6e8;border:1px solid #d7cdb5;min-height:180px;margin-top:25px;transform-origin:top;animation:unfold .65s cubic-bezier(.2,.7,.2,1)}.paper::before{content:'';display:block;border-bottom:1px solid #d7cdb5;margin-bottom:30px}.paper p{font-size:12px;color:#8b897c}.envelope-open{perspective:700px}@keyframes unfold{from{opacity:0;transform:rotateX(-65deg) translateY(20px)}to{opacity:1;transform:none}}form{display:grid;gap:18px}label{display:grid;gap:7px;font-size:11px;color:#606e65}input,textarea{width:100%;background:#f9f3e5;border:1px solid #c9c6b5;color:#253b30;padding:10px;border-radius:0}textarea{min-height:145px;resize:vertical}.action{background:#2b4238;color:#f5ecda;padding:12px 18px;justify-self:start;margin-top:6px}.consent{display:flex;align-items:flex-start;gap:9px;line-height:1.8}.consent input{width:auto;margin:4px 0}.inbox-item{border-top:1px solid #d0c8b6;padding:20px 0}.inbox-item h3{font-weight:400;font-size:17px}.inbox-item p{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px}.inbox-item small{color:#7a8276;font-size:10px}.delete{float:right;color:#926a58;font-size:10px}.empty{padding:30px 0;color:#8a8d80}#toast{position:fixed;bottom:80px;left:50%;transform:translateX(-50%);max-width:90%;padding:12px 20px;background:#ece5d3;color:#2b4036;opacity:0;pointer-events:none;z-index:10;text-align:center;transition:opacity .2s}#toast.visible{opacity:1}@media(max-width:700px){header{top:24px;left:22px;right:22px}.brand strong{font-size:25px}.brand{gap:12px}.brand>span{font-size:12px}.demo{padding-left:15px}.floors{right:16px;top:auto;bottom:128px;transform:none;width:115px}.floors button{font-size:10px;gap:12px;padding:11px 4px;background:#101b2250;backdrop-filter:blur(5px)}footer{left:22px;right:22px;bottom:max(15px,env(safe-area-inset-bottom));align-items:flex-end;gap:8px}footer>div{gap:18px}#hint{max-width:105px;font-size:8px;line-height:1.8}#context{bottom:81px;max-width:calc(100% - 32px);gap:0}#context button{padding:8px 12px;font-size:10px}dialog{padding:35px 25px}h2{font-size:25px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
/* Compatibility still shows the actual authored model, never the reference collage. */
#fallback{inset:70px 0 55px;background: url('assets/post-office-preview.png?v=full-building-3') center center / contain no-repeat}
#compat #retry{margin-left:12px;padding:4px 8px;font-size:9px}
@media(max-width:700px){#fallback{inset:70px -18% 75px;background-size:contain}}

/* Compact independent building, with quiet floor markers in the surrounding space. */
@media(min-width:701px){
.floors{right:12%;top:21%;bottom:24%;height:auto;transform:none;width:150px;justify-content:space-between}
.floors button{position:relative;display:block;border:0;padding:5px 0;color:#c3c5bd;font:13px/1.7 "Songti SC",serif}
.floors button span{display:block;color:#d8d1c1;font:22px/1.4 Georgia,serif;margin-bottom:2px}
.floors button::before{content:"";position:absolute;width:65px;left:-85px;top:23px;height:1px;background:#d8d1c155}
.floors button[aria-pressed=true]::after{position:absolute;left:-88px;top:12px;color:var(--gold);font-size:18px}
#hint{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);text-align:center}
footer>div{margin-left:auto}
#fallback{inset:8% 13% 7%;background-image:url('assets/post-office-preview.png?v=full-building-3')}
}
@media(min-width:701px) and (max-width:1100px){.floors{right:5%;width:120px}.floors button::before{width:35px;left:-50px}.floors button[aria-pressed=true]::after{left:-53px}}

#load-error{max-width:min(560px,85vw);padding:0 16px;overflow-wrap:anywhere;text-align:center;color:#b8a58b;font:10px/1.7 monospace}

.context-note{align-self:center;padding:6px 12px;color:#b5b3a6;font-size:10px;white-space:nowrap}#world[data-location="postal-interior"]~.floors,#world[data-location="stairs"]~.floors,#world[data-location="landing"]~.floors{opacity:.6}#context button{min-height:38px}#world[data-motion="moving"]~#context{border-color:#d0af6b55}@media(max-width:700px){#context{flex-wrap:wrap;justify-content:center;width:max-content;max-width:calc(100vw - 32px)}.context-note{font-size:9px;padding:3px 8px}}

#world[data-location="postal-interior"]~.floors,#world[data-location="stairs"]~.floors,#world[data-location="landing"]~.floors,#world[data-location="doorstep"]~.floors{visibility:hidden;pointer-events:none}

#world[data-mode="walk"]~.floors,#world[data-mode="approach"]~.floors{visibility:hidden;pointer-events:none}.paper audio{display:block;width:100%;margin:10px 0 20px}

.external-listen{display:inline-block;text-decoration:none;font-size:12px}.paper .external-listen{margin-bottom:12px}

/* Object actions are separate from the floor/route controls. */
.object-directory{position:fixed;left:26px;bottom:95px;z-index:3;max-width:min(340px,calc(100vw - 48px));font-size:10px;color:#c4c6be}.object-directory summary{cursor:pointer;padding:10px 14px;background:#14202bd9;border:1px solid var(--line);list-style-position:inside}.object-directory ul{list-style:none;margin:5px 0 0;padding:8px;background:#14202bf2;border:1px solid var(--line);max-height:36svh;overflow:auto}.object-directory button{width:100%;padding:11px 9px;text-align:left;font-size:11px;line-height:1.7}.object-directory button small{display:block;color:#91a09e;font-size:9px}.scene-panel{position:fixed;right:28px;bottom:100px;z-index:4;width:280px;background:#172530ed;border:1px solid #d2b58d55;padding:22px;color:var(--paper);box-shadow:0 12px 45px #0005;backdrop-filter:blur(10px)}.scene-panel h2{font-size:20px;margin:0 0 18px}.panel-close{position:absolute;right:9px;top:5px;font:25px Georgia;padding:0 6px}.drink-choices{display:flex;gap:8px;margin:12px 0 18px}.drink-choices button{border:1px solid var(--line);padding:10px 18px}.drink-choices [aria-pressed="true"]{color:var(--gold);border-color:var(--gold)}.scene-panel .action{background:#dfc79c;color:#24382f;padding:10px 18px}.scene-panel button:disabled{opacity:.35;cursor:default}.scene-panel progress{width:100%;height:5px;margin:16px 0}.drink-reset{font-size:10px;color:#a9b2aa;margin:15px 0 0;padding:5px 0}.info-data{display:grid;grid-template-columns:74px 1fr;gap:10px;font-size:12px;line-height:1.8}.info-data dt{color:#7e8176}.info-data dd{margin:0}.studio-history{list-style:none;padding:0;font-size:12px}.studio-history li{padding:12px 0;border-top:1px solid #d4cbb8}.studio-history small{display:block;color:#7b8377;margin-top:3px}#studio-info h3{font-size:15px;font-weight:400;margin:28px 0 14px}#studio-info .pending{color:#7b8174;font-size:12px}#studio-info{z-index:20}@media(max-width:700px){.object-directory{left:16px;bottom:92px;max-width:calc(100vw - 32px)}.scene-panel{right:16px;left:16px;bottom:98px;width:auto;padding:18px}.scene-panel h2{font-size:18px;margin-bottom:10px}.drink-choices{margin:10px 0}.drink-choices button{flex:1}.scene-panel p{margin:10px 0}}

@media(max-width:700px){.scene-panel{top:88px;bottom:auto;max-height:calc(100svh - 210px);overflow:auto}}
.object-directory ul{position:absolute;bottom:calc(100% + 5px);left:0;width:min(340px,calc(100vw - 32px));margin:0}.object-directory summary{white-space:nowrap}

.drink-name-label{display:block;font-size:11px;margin:12px 0 7px}.drink-name-row{display:flex;gap:6px}.drink-name-row input{min-width:0;width:100%;background:#0d1a24;color:var(--paper);border:1px solid var(--line);padding:9px;font:13px sans-serif}.drink-name-row button{flex-shrink:0;font-size:10px;padding:7px;border:1px solid var(--line)}.drink-help{font-size:11px;color:#bcc6bc}.drink-title{overflow-wrap:anywhere}.drink-choices{flex-wrap:wrap;gap:6px}.drink-choices button{padding:8px 12px;font-size:12px}.scene-panel [data-drink="take"]{padding:10px 12px}.scene-panel [role="switch"][aria-checked="true"]{background:#9c6649;color:#fff5df}@media(max-width:700px){#drink-panel{top:88px;bottom:auto;max-height:38svh;overflow:auto;padding:13px 16px}#drink-panel h2{margin-bottom:6px}.drink-name-label{margin-top:5px}.drink-choices{margin:8px 0}.drink-help{margin:5px 0!important}}

/* Leave the actual machine rotary control uncovered after cup placement. */
@media(max-width:700px){#drink-panel:not([data-stage="select"]){max-height:150px;padding:9px 13px}#drink-panel:not([data-stage="select"]) h2{display:none}#drink-panel:not([data-stage="select"]) .drink-title{margin:0 24px 3px 0;font-size:12px}#drink-panel:not([data-stage="select"]) .drink-help{font-size:10px;margin:2px 0!important}#drink-panel:not([data-stage="select"]) progress{margin:5px 0;height:4px}#drink-panel:not([data-stage="select"]) .action,#drink-panel:not([data-stage="select"]) [data-drink="take"]{padding:7px 12px;min-height:34px;font-size:11px}#drink-panel:not([data-stage="select"]) .drink-reset{margin-top:5px;padding:2px 0}}

#dog-actions{position:fixed;left:50%;bottom:155px;transform:translateX(-50%);z-index:7;display:flex;gap:8px;background:#15241fd9;padding:8px;border:1px solid #d9c59b66;border-radius:22px;backdrop-filter:blur(6px)}#dog-actions[hidden],#dog-head-stroke[hidden]{display:none}#dog-actions button{font-size:12px;white-space:nowrap;padding:9px 15px;color:#e8dcc4;min-height:40px;border-radius:18px}#dog-actions button:hover{background:#d3bf8d26}#dog-actions button:disabled{opacity:.45}#dog-head-stroke{position:fixed;z-index:6;width:96px;height:78px;transform:translate(-50%,-65%);border:0;border-radius:50%;background:transparent;touch-action:none;cursor:grab;padding:0}#dog-head-stroke svg{width:100%;height:100%;fill:none;stroke:#fff7dcad;stroke-width:2;filter:drop-shadow(0 2px 3px #0008);pointer-events:none}#dog-head-stroke.stroking{cursor:grabbing;background:#fff2c414}#dog-head-stroke:focus-visible{outline:2px solid #f3d89b}#dog-head-stroke:disabled{pointer-events:none;opacity:.3}@media(max-width:700px){#dog-actions{bottom:150px;gap:3px;padding:5px}#dog-actions button{padding:8px 12px;font-size:11px}#dog-head-stroke{width:86px;height:74px}}
