:root{--paper:#f3f0e6;--cream:#e9e6da;--ink:#253d35;--green:#23483e;--muted:#758075;--red:#a54535;--border:#cbcfc0;--serif:Georgia,'Times New Roman',serif;--mono:'Courier New',monospace;--sans:Arial,Helvetica,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:20px}body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--sans);font-size:14px}body.modal-open{overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default}button:focus-visible,a:focus-visible{outline:3px solid #b7783e;outline-offset:4px}button{touch-action:manipulation}a{color:inherit}.page-grain{pointer-events:none;position:fixed;inset:0;opacity:.13;z-index:30;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23878777' opacity='.32' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}.site-shell{max-width:1360px;margin:0 auto;padding:0 56px}.masthead{height:91px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border)}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;font:10px/1.45 var(--mono);letter-spacing:1.1px;font-weight:bold}.brand-icon{width:36px;height:43px;border:2px solid var(--green);display:flex;align-items:center;justify-content:center;font:34px/1 var(--serif);position:relative}.brand-icon:after{content:'';position:absolute;inset:3px;border:1px solid var(--green)}.header-tools{display:flex;align-items:center;gap:22px}.version-label{font:9px var(--mono);letter-spacing:1px;color:var(--muted)}.icon-button{background:none;border:1px solid var(--border);height:32px;width:35px;font-size:19px;position:relative}.sound-state{font:12px var(--mono);vertical-align:top}.text-button{background:none;border:0;font-size:12px;padding:5px 0}.text-button span{font:11px var(--mono);border:1px solid #9ba69a;border-radius:50%;padding:1px 4px;margin-left:6px}.title-row{display:flex;align-items:center;justify-content:space-between;padding:32px 0 27px}.eyebrow{font:9px var(--mono);letter-spacing:2px;margin:0 0 8px}.title-row h1{font:normal clamp(52px,6.5vw,84px)/1 var(--serif);margin:0;letter-spacing:-4.5px}.title-row h1>span:not(.title-dot){font-style:italic}.title-dot{color:var(--red)}.title-note{display:flex;gap:28px;align-items:center;padding-top:14px}.title-note p{font:14px/1.6 var(--serif);margin:0;color:#6d7669;font-style:italic}.tiny-stamp{font:9px var(--mono);letter-spacing:1px;color:var(--red);border:1px solid var(--red);padding:7px 8px;transform:rotate(-7deg);white-space:nowrap}.resource-bar{display:grid;grid-template-columns:1.5fr .8fr 1.1fr auto;background:#e8e9de;border:1px solid var(--border);margin-bottom:27px;min-height:78px}.resource{display:flex;align-items:center;gap:15px;padding:15px 24px;border-right:1px solid var(--border)}.resource-symbol{font:27px var(--serif);color:#687d6c}.resource-label{display:block;font:8px var(--mono);letter-spacing:1.6px;margin-bottom:4px;color:#6d7a6b}.resource strong{font:25px/1 var(--mono);font-weight:normal;white-space:nowrap}.resource strong small{font-size:12px;color:#788575}.time-note{margin-left:auto;font:10px/1.6 var(--mono);color:#6e7c6c;white-space:nowrap}.time-note small{display:block;font-size:9px;color:#8c9385}.resource-patience{gap:13px}.patience-track{width:80px;height:5px;background:#c9d0c0;margin-left:auto}.patience-track i{display:block;height:100%;background:#71846e;transition:width .35s,background .35s}.resource.danger strong,.resource.danger .time-note{color:var(--red)}.resource.danger .patience-track i{background:var(--red)}.journal-button{background:none;border:0;padding:12px 19px;display:flex;gap:10px;align-items:center;font-size:11px}.journal-button>span:first-child{font-size:20px}.journal-count{font:9px var(--mono);background:#d3daca;min-width:18px;height:18px;border-radius:50%;display:grid;place-content:center}.workspace{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(330px,1fr);gap:28px;align-items:start}.panel-heading{display:flex;align-items:center;justify-content:space-between;height:42px;padding:0 16px;border-bottom:1px solid var(--border);font:9px var(--mono);letter-spacing:1px}.panel-heading>span:first-child{display:flex;align-items:center;gap:9px}.green-dot{width:5px;height:5px;border-radius:50%;background:#5c7964;display:inline-block}.map-meta{font-size:8px;color:#7c8b76}.map-frame{border:1px solid #a9b7a3;background:#e8e9dc;position:relative}.map-frame:before,.map-frame:after{content:'';position:absolute;top:-7px;width:65px;height:19px;background:#dbd0ad;opacity:.5;z-index:2;transform:rotate(-4deg);border-left:1px solid #cdc3a2;border-right:1px solid #cdc3a2}.map-frame:before{left:22px}.map-frame:after{right:19px;transform:rotate(6deg)}.map-caption{display:flex;justify-content:space-between;border-top:1px solid #bec8b3;padding:11px 15px;font:8px var(--mono);color:#7b8a71}.section-heading{display:flex;align-items:center;justify-content:space-between;margin:27px 0 15px}.section-heading h2{font:normal 22px var(--serif);margin:0}.section-heading h2 span{font:10px var(--mono);vertical-align:middle;margin-left:7px;color:#838c7c}.section-heading>span{font:8px var(--mono);letter-spacing:.7px;color:#929789}.documents{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.doc-card{position:relative;background:#eeeadd;border:1px solid #c7c5b7;min-height:125px;padding:12px 11px 10px;text-align:left;transition:transform .2s,box-shadow .2s;overflow:hidden;box-shadow:1px 2px 0 #e1ded1}.doc-card:before{content:'';position:absolute;right:-1px;top:-1px;width:17px;height:17px;background:linear-gradient(45deg,#d6d3c5 49%,var(--paper) 50%);border-left:1px solid #c7c5b7;border-bottom:1px solid #c7c5b7}.doc-card:hover{transform:translateY(-3px);box-shadow:2px 5px 0 #dbd8cb}.doc-code{font:7px var(--mono);color:#828a78;display:block;margin-bottom:14px;letter-spacing:.6px}.doc-name{font:15px/1.12 var(--serif);display:block;max-width:150px;margin-bottom:20px}.doc-stamp{display:inline-block;font:bold 7px var(--mono);color:#7b8a6f;border:1px solid #9aa58a;transform:rotate(-4deg);padding:3px 4px;max-width:100%;letter-spacing:.3px}.doc-card.new{animation:paper-in .4s ease-out}.doc-card.red .doc-stamp{color:var(--red);border-color:#b97e65}.empty-document{border:1px dashed #d2d1c3;min-height:125px;display:flex;align-items:center;justify-content:center;text-align:center;font:italic 12px/1.6 var(--serif);color:#9c9f91;padding:15px}.folder-note{font:italic 11px var(--serif);color:#979b8c;margin:13px 0 0}.right-column{display:flex;flex-direction:column;gap:23px}.interaction{border:1px solid #b7c1b1;background:#f8f6ed;padding:20px 22px;box-shadow:3px 3px 0 #e1e2d6;scroll-margin-top:20px}.interaction-top{display:flex;justify-content:space-between;font:8px var(--mono);letter-spacing:1.2px;color:#72826d;margin-bottom:18px}.interaction-top>span:last-child{font-size:7px;letter-spacing:.7px;display:flex;align-items:center;gap:6px}.interaction-top i{width:4px;height:4px;background:#6b8662;border-radius:50%;display:inline-block}.person-row{display:flex;gap:14px;align-items:center}.person-row h2{font:normal 29px/1.1 var(--serif);margin:0 0 7px;letter-spacing:-.7px}.person-row p{font:8px/1.5 var(--mono);color:#899080;margin:0}.portrait{width:47px;height:54px;flex-shrink:0;position:relative;overflow:hidden;background:#d7decd;border:1px solid #acb8a2;filter:saturate(.7)}.person-head{position:absolute;width:22px;height:28px;background:#c7bda0;left:12px;top:8px;border-radius:9px 9px 8px 8px;z-index:2}.person-hair{position:absolute;left:7px;top:3px;width:32px;height:34px;background:#7d7d6b;border-radius:17px 14px 7px 8px;z-index:1}.person-glasses{position:absolute;width:22px;height:6px;border-top:2px solid #4f5c4c;left:12px;top:20px;z-index:4}.person-glasses:before,.person-glasses:after{content:'';position:absolute;top:-3px;width:8px;height:6px;border:1px solid #4f5c4c}.person-glasses:before{left:0}.person-glasses:after{right:0}.person-body{position:absolute;left:3px;top:35px;width:39px;height:30px;background:#7f8b6d;border-radius:12px 12px 0 0;z-index:3}.person-body:after{content:'';position:absolute;left:17px;top:0;width:6px;height:13px;background:#e6dfc7;clip-path:polygon(0 0,100% 0,50% 100%)}.portrait.man .person-hair{height:19px;background:#695e4d}.portrait.man .person-body{background:#5c7566}.portrait.clerk .person-hair{background:#9b775e;width:33px;height:44px}.portrait.object{display:grid;place-content:center;font:36px var(--serif);color:#6e8267}.portrait.object span{display:none}.speech{font:16px/1.5 var(--serif);margin:18px 0 14px;color:#475443}.speech:before{content:'«'}.speech:after{content:'»'}.place-note{font:9px/1.6 var(--mono);color:#89907d;border-bottom:1px dashed #ced2c3;padding:0 0 15px;margin-bottom:15px}.actions{display:flex;flex-direction:column;gap:10px}.action-item{position:relative}.action-button{width:100%;text-align:left;border:1px solid #a9b69e;background:#e9eddf;padding:12px 13px;transition:background .15s,border .15s,transform .15s}.action-button:hover:enabled{background:#d7e1ca;border-color:#7d9670;transform:translateY(-1px)}.action-title{display:flex;justify-content:space-between;gap:8px;font-size:11px;font-weight:bold;line-height:1.45}.action-title>span:last-child{font:15px/1 var(--mono);font-weight:normal}.action-costs{display:flex;gap:12px;margin-top:8px;font:9px var(--mono);color:#758569;flex-wrap:wrap}.action-costs .gain{color:#466e4b}.action-button.primary{background:var(--green);border-color:var(--green);color:#f5f0db}.action-button.primary .action-costs{color:#bccab0}.action-button.primary:hover:enabled{background:#31594a}.action-button.paid{background:#e7decb;border-color:#c4b38f}.action-button.paid:hover:enabled{background:#dbcfb6;border-color:#a78e60}.action-button:disabled{background:#efeee5;color:#939989;border-color:#d7dbce;box-shadow:none}.action-button:disabled .action-costs{color:#a2a995}.action-button.completed{opacity:.63}.action-reason{font:8px/1.5 var(--mono);color:#9b7962;margin:5px 2px 0}.action-reason.done{color:#869079}.action-note{font:9px/1.55 var(--sans);color:#89917e;margin:6px 2px 0}.action-warning{color:var(--red);font:9px/1.5 var(--mono);margin:5px 2px 0}.goal-paper{background:#eee7d4;border:1px solid #cec3a4;padding:20px 24px;position:relative;box-shadow:3px 3px 0 #e3ddca;transform:rotate(-.55deg)}.goal-top{font:7px var(--mono);letter-spacing:1px;color:#92886d;margin-bottom:14px}.paperclip{position:absolute;right:24px;top:-10px;width:10px;height:32px;border:2px solid #9b9e8c;border-radius:5px;transform:rotate(18deg)}.paperclip:after{content:'';position:absolute;inset:4px 2px -2px;border:1px solid #9b9e8c;border-radius:3px}.goal-paper h2{font:normal 25px/1.1 var(--serif);margin:0 0 11px;letter-spacing:-.6px}.goal-description{font:10px/1.55 var(--sans);color:#8b826a;margin:0 0 17px}.requirements{list-style:none;margin:0;padding:0}.requirements li{display:flex;align-items:flex-start;gap:9px;padding:8px 0;border-top:1px solid #d7cdb5;font-size:10px;line-height:1.4}.requirements li:before{content:'';width:10px;height:10px;flex-shrink:0;border:1px solid #b3ad96;margin-top:1px}.requirements li.checked:before{content:'✓';color:#46624a;border-color:#7e9572;display:flex;align-items:center;justify-content:center;font-size:10px}.requirements li.checked{color:#708163}.requirement-label{display:block}.requirement-hint{font:8px/1.4 var(--mono);display:none;color:#94896d;padding-top:4px}.requirements li:hover .requirement-hint,.requirements li:focus-within .requirement-hint{display:block}.requirement-button{background:none;border:0;padding:0;text-align:left;font:inherit;flex:1}.goal-footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #d7cdb5;margin-top:9px;padding-top:14px;font:7px var(--mono);color:#92866b;gap:10px}.inline-link{font:inherit;appearance:none;background:none;border:0;border-bottom:1px solid #bdc2b3;padding:0 0 2px;color:inherit;white-space:nowrap}.inline-link:hover{color:var(--red);border-color:var(--red)}.page-footer{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-top:35px;padding:19px 0 26px;border-top:1px solid var(--border);font:8px/1.5 var(--mono);color:#919987}.page-footer>div{display:flex;gap:25px}.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);width:min(580px,calc(100vw - 32px));background:#23483e;color:#f0eddc;box-shadow:4px 5px 0 #152e2733;z-index:40;padding:18px 22px;font:15px/1.55 var(--serif);border:1px solid #9bab91;cursor:pointer;animation:toast-in .2s ease-out}.toast-label{display:block;font:8px var(--mono);letter-spacing:1px;color:#b2c2a6;margin-bottom:6px}.modal-backdrop{position:fixed;inset:0;background:#243a30b8;z-index:50;display:flex;align-items:center;justify-content:center;padding:25px;overflow:auto}.modal-backdrop[hidden],.toast[hidden]{display:none}.modal{position:relative;width:min(600px,100%);max-height:calc(100dvh - 50px);overflow:auto;background:var(--paper);padding:38px 42px 30px;border:1px solid #b7b7a0;box-shadow:8px 9px 0 #102b2440;outline:none}.modal:before{content:'';position:absolute;inset:7px;border:1px solid #d2d0be;pointer-events:none}.modal-close{position:absolute;right:18px;top:16px;width:28px;height:28px;display:grid;place-content:center;font:24px var(--mono);background:transparent;border:0;z-index:1}.modal-eyebrow{font:8px var(--mono);letter-spacing:1.6px;color:#89907e;margin:0 0 16px}.modal h2{font:normal 43px/1.05 var(--serif);letter-spacing:-1.8px;margin:0 0 20px}.modal .lead{font:17px/1.5 var(--serif);color:#62705c}.modal p{font:13px/1.65 var(--sans);color:#727b69}.modal .lead{font:17px/1.5 var(--serif)}.modal p.small-note{font:10px/1.6 var(--mono);color:#909783}.modal-rule{border-top:1px solid #d4d5c6;margin:22px 0}.modal-primary{background:var(--green);color:#f1eedb;border:1px solid var(--green);font-size:13px;padding:15px 20px;display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%;margin-top:23px;transition:background .15s}.modal-primary:hover{background:#315e4c}.modal-secondary{background:transparent;border:1px solid #b6bca9;padding:12px 18px;font-size:11px;margin-top:12px;width:100%}.welcome-facts{display:grid;grid-template-columns:1fr 1fr 1fr;gap:15px;border-top:1px solid #d0d3c2;border-bottom:1px solid #d0d3c2;padding:16px 0;margin:22px 0}.welcome-facts b{font:22px var(--serif);display:block;margin-bottom:5px}.welcome-facts span{font:8px/1.5 var(--mono);color:#8a927e;display:block}.intro-stamp{border:2px solid var(--red);color:var(--red);font:10px var(--mono);letter-spacing:2px;display:inline-block;padding:7px 10px;transform:rotate(-7deg);margin:10px 0 20px}.rule-list{padding-left:19px;margin:18px 0;font:12px/1.65 var(--sans);color:#6e7a63}.rule-list li{padding:5px 0 5px 7px}.rule-list b{color:#3c5644}.rule-callout{border-left:2px solid #95a17e;padding:5px 0 5px 14px;margin:22px 0;background:linear-gradient(90deg,#e9eadf,transparent)}.rule-callout p{margin:5px 0}.journal-list{list-style:none;padding:0;margin:0}.journal-list li{padding:15px 0;border-top:1px solid #d2d4c5}.journal-time{font:9px var(--mono);color:#7b8c70;display:block;margin-bottom:6px}.journal-list p{font:14px/1.5 var(--serif);margin:0}.journal-cost{font:8px var(--mono);color:#999d8c;display:block;margin-top:8px}.document-large{border:1px solid #c7c0aa;padding:27px 25px 30px;background:#eee9d9;position:relative;margin-top:18px}.document-large .doc-code{font-size:9px;letter-spacing:1px}.document-large h3{font:normal 32px/1.12 var(--serif);margin:20px 0}.document-large .doc-stamp{font-size:11px;letter-spacing:1px;padding:7px 9px;margin-top:14px}.document-lines{height:30px;background:repeating-linear-gradient(transparent,transparent 9px,#d8d1bc 10px,transparent 11px);margin-top:15px}.ending-modal{text-align:center}.ending-modal .modal-eyebrow{margin-top:8px}.ending-seal{display:inline-block;font:bold 24px var(--mono);letter-spacing:4px;color:var(--red);border:3px double var(--red);padding:12px 18px;transform:rotate(-8deg);margin:16px 0 28px;box-shadow:inset 0 0 0 2px var(--paper)}.ending-modal .modal h2{font-size:38px}.ending-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;border-top:1px solid #cbd1be;border-bottom:1px solid #cbd1be;padding:18px 0;margin:24px 0}.ending-stats strong{display:block;font:25px var(--mono);margin-bottom:6px}.ending-stats span{font:8px var(--mono);color:#8b947d}.ending-name{font:italic 18px var(--serif);color:#75836a;margin-bottom:10px}.found-endings{font:9px/1.5 var(--mono);color:#7c896e;margin:17px 0 3px}.restart-buttons{display:flex;gap:10px}.restart-buttons>*{flex:1}.restart-buttons .modal-primary{justify-content:center}.hint-card{border:1px dashed #b8c1a8;padding:12px 15px;margin-top:15px}.hint-card p{font-size:11px;margin:0}.aftergame{background:#e6e9db;border:1px solid #a1b292;padding:14px;text-align:center}.aftergame strong{font:22px var(--serif);display:block;margin-bottom:7px}.aftergame button{margin-top:12px}.noscript{position:fixed;inset:0;display:grid;place-content:center;background:var(--paper);z-index:100;padding:20px}.focus-mobile-note{display:none}.toast:after{content:'×';position:absolute;right:10px;top:8px;font:12px var(--mono);color:#8fa48a}@keyframes ready-pulse{50%{box-shadow:0 0 0 4px #a5453522}}@keyframes paper-in{from{opacity:0;transform:translateY(-12px) rotate(-3deg)}to{opacity:1;transform:translateY(0)}}@keyframes toast-in{from{opacity:0;margin-bottom:-8px}to{opacity:1;margin-bottom:0}}
@media(min-width:1450px){.site-shell{padding:0 60px}.title-row{padding:35px 0}.resource-bar{margin-bottom:30px}}
@media(max-width:1150px){.site-shell{padding:0 30px}.workspace{gap:20px;grid-template-columns:minmax(0,1.3fr) minmax(310px,1fr)}.resource{padding:15px;gap:10px}.time-note{font-size:8px}.resource-bar{grid-template-columns:1.45fr .75fr 1fr auto}.patience-track{width:45px}.journal-button{padding:12px}.title-note{gap:20px}.interaction{padding:18px}.doc-card{padding:11px 9px}.doc-name{font-size:14px}.goal-paper{padding:18px 20px}.version-label{display:none}}
@media(max-width:900px){.site-shell{padding:0 24px}.workspace{grid-template-columns:minmax(0,1.1fr) minmax(290px,1fr);gap:17px}.resource-bar{grid-template-columns:1.2fr .75fr 1fr auto}.time-note{display:none}.resource{padding:14px;gap:10px}.resource strong{font-size:23px}.patience-track{width:35px}.map-caption{font-size:7px;padding:9px}.map-meta{font-size:6px}.panel-heading{font-size:8px;padding:0 12px}.person-row h2{font-size:26px}.person-row{gap:11px}.portrait{width:44px}.person-row p{font-size:7px}.interaction{padding:16px}.speech{font-size:15px}.goal-paper h2{font-size:24px}.section-heading>span{font-size:6px}.documents{grid-template-columns:repeat(2,minmax(0,1fr))}.title-note .tiny-stamp{display:none}.title-row h1{font-size:66px}.eyebrow{font-size:8px;letter-spacing:1.6px}}
@media(max-width:720px){.site-shell{padding:0 18px}.masthead{height:70px}.brand{font-size:8px;gap:9px;letter-spacing:.7px}.brand-icon{height:35px;width:29px;font-size:28px}.header-tools{gap:12px}.text-button{font-size:10px}.icon-button{height:28px;width:30px}.title-row{padding:25px 0 22px;align-items:flex-end}.title-row h1{font-size:65px}.eyebrow{font-size:7px;letter-spacing:1.1px;max-width:190px;line-height:1.5}.title-note{padding:0 0 3px}.title-note p{font-size:11px;line-height:1.5;max-width:130px}.resource-bar{grid-template-columns:1fr .83fr 1.12fr;min-height:67px;position:relative;margin-bottom:22px}.resource{padding:12px 10px;gap:8px}.resource-symbol{font-size:21px}.resource strong{font-size:22px}.resource strong small{font-size:10px}.resource-label{font-size:7px;letter-spacing:1px}.resource-patience{border-right:0}.patience-track{display:none}.journal-button{position:absolute;right:0;bottom:-42px;z-index:2;padding:10px 0;font-size:9px;gap:6px}.journal-button>span:first-child{font-size:15px}.journal-count{font-size:8px;min-width:15px;height:15px}.workspace{display:flex;flex-direction:column;gap:24px}.left-column,.right-column{width:100%}.map-frame{margin-top:24px}.panel-heading{height:39px;font-size:8px}.map-caption{font-size:7px}.folder-section{margin-top:22px}.section-heading{margin:0 0 13px}.section-heading h2{font-size:21px}.section-heading>span{font-size:7px}.documents{display:flex;overflow-x:auto;gap:10px;padding-bottom:7px;scroll-snap-type:x proximity}.doc-card{flex:0 0 135px;min-height:123px;scroll-snap-align:start;padding:12px}.doc-name{font-size:15px}.doc-code{font-size:7px}.empty-document{flex:0 0 135px}.folder-note{margin-top:5px;font-size:10px}.interaction{padding:20px}.person-row h2{font-size:31px}.person-row p{font-size:8px}.portrait{width:47px}.speech{font-size:17px}.place-note{font-size:10px}.action-title{font-size:12px}.action-costs{font-size:10px;gap:17px}.action-button{padding:14px}.action-reason{font-size:9px}.action-note{font-size:10px}.goal-paper{padding:22px 25px;transform:rotate(-.3deg)}.goal-paper h2{font-size:29px}.goal-description{font-size:11px}.requirements li{font-size:12px;padding:11px 0}.requirements li:before{width:12px;height:12px}.goal-footer{font-size:8px}.requirement-hint{font-size:9px}.page-footer{align-items:flex-start;gap:14px;flex-direction:column;font-size:8px;padding-bottom:25px}.page-footer>div{width:100%;justify-content:space-between}.modal-backdrop{padding:15px}.modal{max-height:calc(100dvh - 30px);padding:32px 27px 26px}.modal h2{font-size:38px}.modal .lead{font-size:16px}.modal p{font-size:12px}.welcome-facts b{font-size:22px}.welcome-facts span{font-size:8px}.modal-primary{padding:15px;font-size:12px}.toast{bottom:15px;font-size:15px;padding:17px 20px}.map-meta{font-size:7px}}
@media(max-width:380px){.site-shell{padding:0 13px}.title-row h1{font-size:58px}.title-note p{font-size:10px;max-width:110px}.brand{font-size:7px}.header-tools{gap:7px}.text-button span{display:none}.resource{padding:12px 8px;gap:6px}.resource-symbol{font-size:18px}.resource strong{font-size:20px}.map-caption{font-size:6px}.person-row h2{font-size:28px}.interaction{padding:17px}.modal{padding:30px 23px 25px}.modal h2{font-size:34px}.ending-seal{font-size:19px}.ending-stats strong{font-size:21px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media print{body>*{display:none!important}.modal-backdrop,.modal-backdrop>*{display:block!important;position:static!important;max-height:none!important;box-shadow:none!important;background:white!important}.modal-close,.modal-primary,.modal-secondary{display:none!important}}
/* Legible service notices; compact floor labels on phone-sized plans. */
.place-note{font-size:10px;color:#707d65}.action-note{font-size:10px;color:#738066}.action-reason{font-size:9px;color:#956c50}.action-costs{font-size:10px}.person-row p{font-size:9px;color:#798570}.resource-label{font-size:9px}.goal-description{font-size:11px;color:#80745a}.requirements li{font-size:11px}.goal-footer{font-size:8px}.doc-code{font-size:8px;color:#768067}.doc-stamp{font-size:8px}.ending-stats span,.found-endings{font-size:9px}.map-meta{color:#6e8064}.map-caption{color:#6a7c60}
@media(max-width:900px) and (min-width:721px){.person-row p{font-size:8px}.action-note{font-size:10px}}
@media(max-width:720px){.title-row{display:block}.title-row h1{white-space:nowrap}.title-note{display:none}.eyebrow{max-width:none}.resource-label{font-size:7px}.person-row p{font-size:9px}.action-costs{font-size:11px}.action-note{font-size:11px}.action-reason{font-size:10px}.requirements li{font-size:12px}.modal p.small-note{font-size:11px}.doc-code{font-size:8px}.doc-stamp{font-size:8px}}
.language-switch{display:inline-flex;align-items:center;gap:0;border:1px solid #b8c1ad;flex-shrink:0}.language-switch button{padding:7px 8px;background:transparent;border:0;min-width:30px;font:10px var(--mono);color:#74816b}.language-switch button[aria-pressed="true"]{background:var(--green);color:#f4f0df}.language-switch button:hover{background:#d4ddc6;color:var(--green)}.language-switch button[aria-pressed="true"]:hover{background:#31594a;color:#f4f0df}.modal-language{display:flex;justify-content:flex-end;margin:-12px 23px 20px 0}.modal-language .language-switch button{padding:5px 8px}.header-tools{gap:16px}:lang(en) .title-row h1{letter-spacing:-3px}:lang(en) .title-note p{max-width:235px}:lang(en) .ending-seal{letter-spacing:3px}:lang(en) .person-row h2{font-size:26px}
@media(max-width:720px){.header-tools{gap:9px}.language-switch button{padding:6px;min-width:25px;font-size:9px}:lang(en) .title-row h1{font-size:55px;letter-spacing:-3px}:lang(en) .person-row h2{font-size:27px}:lang(en) .modal h2{font-size:37px}:lang(en) .ending-seal{font-size:20px}.modal-language{margin-right:22px}}
@media(max-width:380px){.header-tools{gap:6px}.language-switch button{min-width:23px;padding:6px 4px}:lang(en) .title-row h1{font-size:49px}}
:lang(en) .speech:before{content:'“'}:lang(en) .speech:after{content:'”'}
.audio-control{display:flex;align-items:center;position:relative;flex-shrink:0}.audio-control #sound{height:34px;width:35px;padding:1px 0 6px}.audio-control #sound.playing{background:#dbe5d2;border-color:#829a72}.audio-control .sound-state{position:absolute;font-size:9px;right:4px;top:3px}.audio-settings{height:34px;width:17px;border:1px solid var(--border);border-left:0;background:transparent;font:14px var(--mono);padding:0}.audio-settings:hover{background:#e1e7d6}.audio-meter{position:absolute;bottom:3px;left:12px;display:flex;align-items:flex-end;gap:2px;height:9px}.audio-meter i{display:block;background:#54734e;width:2px;height:2px}.audio-panel{position:absolute;right:0;top:calc(100% + 10px);z-index:40;width:224px;background:#f7f3e6;border:1px solid #aab79c;box-shadow:3px 4px 0 #b5bba455;padding:17px;text-align:left}.audio-panel[hidden]{display:none}.audio-track{font:18px/1.2 var(--serif);margin:0 0 7px}.audio-status{font:9px/1.5 var(--mono);color:#78876b;margin:0 0 18px}.volume-label{display:flex;justify-content:space-between;font:10px var(--mono);color:#637a58;margin-bottom:7px}.audio-panel input{accent-color:var(--green);width:100%;margin:0;cursor:pointer;min-height:25px}.audio-panel input:focus-visible{outline:2px solid #b7783e;outline-offset:4px}
@media(max-width:720px){
  .masthead{gap:8px}
  .brand{min-width:0}
  .brand-icon,.header-tools{flex-shrink:0}
  .header-tools{gap:6px}
  .audio-control #sound{width:34px;height:44px;font-size:20px}
  .audio-settings{width:44px;height:44px;font-size:17px}
  .audio-settings[aria-expanded="true"]{background:#e1e7d6}
  .audio-meter{left:50%;transform:translateX(-50%)}
  .audio-panel{width:210px;right:-12px}
  .audio-status{font-size:10px}
}
@media(max-width:380px){.header-tools{gap:4px}.text-button{font-size:9px}.audio-panel{right:-22px}}
@media(max-width:340px){.brand{gap:5px;letter-spacing:0}.brand-icon{width:26px}}
.resource-money{position:relative}.money-content{min-width:0}.resource-money .resource-label{display:flex;align-items:center;gap:6px;white-space:nowrap}.currency-button{border:0;background:none;color:#58714e;font:8px var(--mono);padding:2px 0;border-bottom:1px dotted #9ba98f;white-space:nowrap}.currency-button:hover{color:var(--red)}.currency-panel{position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%);z-index:45;width:285px;background:#f7f3e6;border:1px solid #aab79c;box-shadow:3px 4px 0 #b5bba455;padding:19px;text-align:left}.currency-panel[hidden]{display:none}.currency-panel h2{font:normal 23px var(--serif);margin:0 0 12px}.currency-panel p{font:11px/1.6 var(--sans);color:#748266;margin:0 0 13px}.currency-panel label{display:block;font:9px var(--mono);margin:0 0 7px;color:#718160}.currency-panel select{width:100%;font:11px var(--sans);color:var(--ink);background:#eeeedd;border:1px solid #b4c0a4;padding:10px 7px}.currency-panel p.currency-note{font:10px/1.5 var(--sans);margin:13px 0 0}.resource-money.money-long strong{font-size:21px}.resource-money.money-very-long strong{font-size:17px}
@media(max-width:900px){.resource-money .resource-symbol{display:none}.resource-money.money-long strong{font-size:19px}}
@media(max-width:720px){.resource-bar{grid-template-columns:1fr 1.08fr 1.12fr}.resource-money{padding:10px 7px}.resource-money strong{font-size:20px}.resource-money.money-long strong{font-size:16px}.resource-money.money-very-long strong{font-size:13px}.resource-money .resource-label{font-size:6px;gap:5px}.currency-button{font-size:7px}.currency-panel{width:250px;left:50%;padding:17px}.currency-panel p{font-size:11px}.currency-panel select{font-size:12px}.currency-panel h2{font-size:24px}}
@media(max-width:380px){.resource-time .resource-symbol,.resource-patience .resource-symbol{display:none}.currency-panel{width:240px}.resource-money strong{font-size:18px}.resource-money.money-long strong{font-size:15px}}
.resource-money>.resource-symbol{display:none}
/* The whole money cell is a touch target; the small code stays in its corner. */
.currency-button{position:absolute;inset:0;z-index:1;display:flex;align-items:flex-start;justify-content:flex-end;padding:14px 16px 0 0;border:0;font-size:9px}.resource-money .resource-label{padding-right:42px}.currency-button:hover{background:#879c6c0a}.currency-panel{z-index:45}
@media(max-width:720px){.currency-button{font-size:8px;padding:10px 9px 0 0}.resource-money .resource-label{padding-right:36px}}

/* Each visit uses the close-up artwork for its location. */
[data-scene="info"]{--counter-art:url("assets/windows/information-closeup.webp")}
[data-scene="archive"]{--counter-art:url("assets/windows/archive-scene.webp")}
[data-scene="seven"]{--counter-art:url("assets/windows/permit-scene.webp")}
[data-scene="copy"]{--counter-art:url("assets/windows/copy-closeup.webp")}
[data-scene="cash"]{--counter-art:url("assets/windows/cash-register-closeup.webp")}
[data-scene="terminal"]{--counter-art:url("assets/windows/terminal-printer.webp")}
[data-scene="board"]{--counter-art:url("assets/windows/noticeboard-closeup.webp")}
[data-scene="rest"]{--counter-art:url("assets/windows/rest-scene.webp")}
.place-art,.counter-art{
  background:var(--counter-art) center 46%/cover;
  border:1px solid #b5b8a2;border-radius:2px;
}
.place-art{height:clamp(126px,15vw,226px);margin-bottom:15px;background-position:center 32%}
.place-art[hidden],.portrait[hidden],.place-feedback[hidden],.counter-modal [hidden]{display:none}
.sheet-tools,.place-sheet:not([open]){display:none}
.place-feedback{
  padding:11px 12px;margin:0 0 12px;border-left:3px solid #7d986d;background:#e8eddb;
  color:#3c5541;font:13px/1.45 var(--sans);
}
.place-feedback:focus,#place-title:focus,#folder:focus{outline:none}

.counter-modal{width:min(480px,100%);padding:22px 28px 26px}
.counter-modal .modal-language{margin:0 38px 12px 0}
.counter-modal .modal-close{top:10px;right:12px;width:40px;height:40px}
.counter-art{height:clamp(92px,21dvh,160px)}
.counter-modal h2{font-size:clamp(30px,6vw,41px);margin:14px 0 12px}
.counter-modal p{margin:12px 0}
.counter-modal .modal-primary{margin-top:14px;min-height:46px}
.scene-paper{
  position:relative;padding:13px 15px;border:1px solid #b7af92;background:#fbf2db;
  box-shadow:2px 3px 0 #dcd4ba;color:var(--ink);overflow:hidden;
}
.scene-paper .doc-code{margin:0 0 5px}
.scene-paper strong{display:block;font:21px/1.15 var(--serif)}
.scene-paper .doc-stamp{margin-top:9px}
.final-imprint{
  padding:5px 9px;border:2px solid currentColor;color:var(--red);
  font:bold 14px var(--mono);letter-spacing:1px;transform:rotate(-7deg);visibility:hidden;
}
.stamp-pad{
  position:relative;display:grid;justify-items:center;align-items:end;
  width:min(155px,100%);min-height:70px;margin:4px 0 5px auto;
}
.stamp-tool{
  position:absolute;left:50%;bottom:0;width:88px;height:43px;
  transform:translate(-50%,var(--stamp-lift,-24px));pointer-events:none;
}
.stamp-tool::before{
  content:"";position:absolute;left:30px;bottom:8px;width:28px;height:35px;
  border-radius:45% 45% 35% 35%;background:linear-gradient(105deg,#a86946,#d09961 43%,#754530);
  box-shadow:inset 0 2px 3px #e2ad76;
}
.stamp-tool::after{
  content:"";position:absolute;bottom:0;left:0;width:100%;height:13px;border-radius:3px;
  border:1px solid #473229;background:linear-gradient(#8a5a3e 55%,#50352d 56%);
  box-shadow:0 2px 3px #574d3755;
}
.is-stamped .final-imprint{visibility:visible}
.is-stamped:not(.stamping) .stamp-tool{visibility:hidden}
@media(max-width:720px){
  .right-column>.interaction{display:none}
  body.sheet-open{overflow:hidden}
  .place-sheet{
    position:fixed;inset:auto 0 0;margin:0 auto;padding:0;width:100%;max-width:540px;
    max-height:min(88dvh,680px);border:1px solid #b7c1b1;border-bottom:0;
    border-radius:15px 15px 0 0;background:#f8f6ed;color:var(--ink);overscroll-behavior:contain;
    box-shadow:0 -8px 30px #132b2545;
  }
  .place-sheet::backdrop{background:#243a308c}
  .place-sheet .interaction{
    display:flex;flex-direction:column;border:0;box-shadow:none;
    padding:8px 16px max(18px,env(safe-area-inset-bottom));scroll-margin:0;
  }
  .sheet-tools{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px}
  .sheet-link{
    min-height:44px;padding:0 11px;border:1px solid #c8cebd;border-radius:3px;
    background:#ebeede;color:#345443;font:11px var(--sans);
  }
  #sheet-progress{font:10px var(--mono);margin-left:5px}
  .place-sheet .interaction-top{margin-bottom:8px}
  .place-sheet .place-art{height:clamp(99px,19dvh,144px);margin-bottom:10px}
  .place-sheet .person-row h2{font-size:clamp(23px,6vw,29px);margin:0 0 4px}
  .place-sheet .person-row p{font-size:10px}
  .place-sheet .speech{font-size:15px;margin:9px 0 10px}
  .place-sheet .action-button{min-height:49px;padding:10px 12px}
  .place-sheet .place-note{order:1;border:0;border-top:1px dashed #ced2c3;margin:11px 0 0;padding:10px 0 0}
  .counter-modal{padding:16px 19px 18px}
  .counter-modal .modal-close{top:7px;right:8px;width:44px;height:44px}
  .counter-modal .modal-language{margin-right:45px}
  .counter-modal h2,:lang(en) .counter-modal h2{font-size:32px}
}

/* Both raster layers use the same 296 × 270 crop from the board illustration. */
.board-illustration{position:absolute;inset:0;container-type:inline-size;--notice-lift:0}
.board-illustration.is-open{--notice-lift:1}
.notice-underlay,.notice-page{
  position:absolute;left:68.22917%;top:14.74609%;width:19.27083%;height:26.36719%;
}
.notice-underlay{
  background:url("assets/windows/notice-underlay.webp") center/100% 100% no-repeat;
  opacity:0;pointer-events:none;
}
.notice-page{padding:0;border:0;border-radius:6px;background:none}
.notice-page:enabled::after{
  content:"↗";position:absolute;left:23%;top:68%;display:grid;place-items:center;
  width:clamp(17px,4.1cqw,24px);aspect-ratio:1;border-radius:50%;
  background:#fbebbc;color:#694824;border:1px solid #c69558;box-shadow:0 1px 3px #5c3c2f55;
  font:700 clamp(11px,2.8cqw,16px)/1 var(--sans);pointer-events:none;
}
.notice-page:focus-visible{outline:2px solid #ffedbc;outline-offset:2px}
.notice-paper{
  position:absolute;inset:0;opacity:0;pointer-events:none;
  background:url("assets/windows/posted-notice.webp") center/100% 100% no-repeat;
  transform-origin:54.73% 11.48%;
  transform:perspective(110cqw) rotateX(calc(var(--notice-lift) * 78deg)) rotateZ(calc(var(--notice-lift) * -5deg));
}
.notice-pin{
  position:absolute;left:77.86458%;top:16.40625%;width:1.82292%;height:2.73438%;
  background:var(--counter-art) 79.31034% 16.86747%/5485.71429% 3657.14286% no-repeat;
  border-radius:50%;opacity:0;pointer-events:none;
}
.notice-page:enabled:is(:hover,:focus-visible) .notice-paper{
  opacity:1;filter:drop-shadow(0 0 3px #f8d98f);
}
.board-illustration:is(.is-open,.is-lifting) :is(.notice-underlay,.notice-paper,.notice-pin){opacity:1}
.board-illustration:is(.is-open,.is-lifting) .notice-paper{
  filter:drop-shadow(0 calc(var(--notice-lift) * 4px) 2px #271c1465);
}
.board-illustration.is-lifting .notice-page::after{opacity:0}
.notice-number{
  position:absolute;left:82.4%;top:29.85%;transform:translate(-50%,-50%) rotate(-2deg);
  opacity:clamp(0,calc((var(--notice-lift) - .28) * 2.5),1);pointer-events:none;
  color:#643e26;font:700 clamp(14px,5.65cqw,32px)/1 var(--serif);letter-spacing:-.045em;
}
.notice-clause{
  margin:0;padding:12px 14px;border:1px solid #b8ae90;border-radius:8px;
  background:#faf1d7;color:var(--ink);font:15px/1.5 var(--serif);
}
.notice-clause:focus{outline:2px solid #a98859;outline-offset:-3px}
.filing-rules ul{padding:0;margin:8px 0;list-style:none}
.filing-rules li{display:grid;grid-template-columns:3em minmax(0,1fr);gap:6px;padding:5px 0;border-top:1px solid #d8c6a4}
.filing-rules li b{color:#70492d;font-family:var(--sans)}
.filing-rules p{margin:8px 0}
.interaction .speech.filing-clue{background:#f8efda;border-color:#af9064}
.terminal-output{position:absolute;inset:0;container-type:inline-size;pointer-events:none}
.terminal-ticket{
  position:absolute;left:63%;top:53.85%;translate:-50% 0;
  display:grid;justify-items:center;align-items:start;
  width:max(48px,11%);height:max(48px,18%);
  border:0;padding:0;overflow:hidden;background:none;pointer-events:auto;
}
.terminal-ticket:focus-visible{outline:none}
.terminal-paper{
  display:flex;flex-direction:column;align-items:center;gap:.75cqw;
  width:4.85cqw;height:6.7cqw;padding:1.4cqw .38cqw .5cqw;
  color:#514337;background:linear-gradient(#cdbca2,#f9efda 20%,#fff8e8 86%,#e6d2a8);
  clip-path:polygon(0 0,100% 0,100% 100%,78% 97%,63% 100%,44% 96%,28% 99%,0 98%);
  transform-origin:center top;
  transform:translateY(calc((var(--paper-feed,1) - 1) * 101% + var(--ticket-pull,0) * 80%))
    skewX(-9deg) rotate(calc(var(--ticket-pull,0) * 9deg));
  opacity:calc(1 - var(--ticket-pull,0));
}
.terminal-paper b{font:700 1.23cqw/1 var(--mono);white-space:nowrap}
.terminal-paper i{width:87%;height:max(.22cqw,1px);background:#87675280}
.terminal-paper i:last-child{width:65%}
.terminal-ticket:enabled:is(:hover,:focus-visible) .terminal-paper{
  background:#fff5cd;box-shadow:inset 0 0 0 1px #927048;
}
.terminal-print-message{
  grid-column:1/-1;display:grid;gap:5px;padding:12px 14px;
  border:1px solid #c5c9b2;border-radius:8px;background:#eff1e2;
}
.terminal-print-message p{margin:0;font-size:14px;line-height:1.4}
#terminal-print-status{font-weight:700}
#terminal-print-status:focus{outline:none}
.board-notebook{
  margin:12px 0 0;padding:11px 13px 13px 26px;color:#234d6b;
  background:linear-gradient(90deg,transparent 17px,#cc9487 18px,transparent 19px),#fcf5e2;
  border:1px solid #c7b99a;border-left:4px solid #8e8061;border-radius:2px 5px 5px 2px;
  box-shadow:2px 3px 0 #ded6bb;
}
.board-notebook:focus{outline:2px solid #819a93;outline-offset:2px}
.notebook-label{font:10px var(--mono);letter-spacing:.13em;color:#635942}
.notebook-lines{
  position:relative;margin:5px 0 0;font:italic 16px/25px var(--serif);
  background:repeating-linear-gradient(transparent 0 22px,#9daec878 22px 23px,transparent 23px 25px);
}
.notebook-trace{display:none}
.is-writing .notebook-entry{opacity:0}
.is-writing .notebook-trace{display:block;position:absolute;inset:0}
.notebook-unwritten{visibility:hidden}
.notebook-written::after{
  content:"";position:absolute;width:17px;height:4px;border-radius:1px;
  background:linear-gradient(90deg,#8a775f 0 3px,#31516a 3px 14px,#b69f72 14px);
  transform:translateY(.95em) rotate(-52deg);transform-origin:left center;
}
[data-scene="terminal"] .place-art,.counter-art[data-scene="terminal"]{background-position:center 53%}
.paper-slot{
  position:relative;padding:12px 10px 0;margin-top:16px;
  background:#485a4b;border:1px solid #34473a;border-radius:4px;text-align:center;overflow:hidden;
}
.paper-slot::before{
  content:"";position:absolute;z-index:2;top:7px;left:7%;right:7%;height:7px;
  background:#202c24;border-radius:2px;pointer-events:none;
}
.paper-pickup{
  position:relative;display:block;width:min(86%,275px);margin:0 auto 10px;padding:12px 14px;
  background:#fbf2db;color:var(--ink);text-align:left;border:1px solid #bfb395;
  border-bottom:3px dashed #cdbfa0;box-shadow:2px 3px 0 #26332970;
  transition:transform .15s,background .15s;
}
.paper-pickup:hover:enabled{background:#fff7e3}
.paper-pickup:active:enabled{transform:translateY(4px)}
.paper-pickup .doc-code{margin:0 0 5px}
.paper-pickup strong{display:block;font:21px/1.15 var(--serif)}
.paper-take{
  display:flex;align-items:center;justify-content:space-between;gap:6px;
  margin-top:9px;padding-top:7px;border-top:1px dashed #c8b998;color:#365847;font:12px var(--sans);
}
.is-dispensing .paper-pickup{
  transform:translateY(calc((var(--paper-feed,0) - 1)*100%));
  clip-path:inset(calc((1 - var(--paper-feed,0))*100%) 0 0);transition:none;
}
.is-dispensing .paper-take,.is-dispensing .coffee-pull>span:last-child{visibility:hidden}

[data-scene="rest"] .place-art,.counter-art[data-scene="rest"]{background-position:center 53%}
.coffee-dispenser{
  position:relative;margin-top:14px;padding:36px 10px 10px;text-align:center;
  background:linear-gradient(#26352d,#495c4e 84%,#6b7b67 85%,#536550);
  border:2px solid #6f806b;border-radius:4px;box-shadow:inset 0 5px 11px #18271e90;
}
.coffee-pull{
  width:min(100%,228px);padding:5px 8px 4px;color:#f7f0db;background:none;border:0;
  font:13px var(--sans);
}
.coffee-pull:focus-visible{outline:2px solid #edd2a1;outline-offset:1px}
.coffee-cup{position:relative;display:block;width:62px;height:76px;margin:0 auto 9px;transition:transform .14s}
.coffee-pull:hover:enabled .coffee-cup{transform:translateY(-2px)}
.coffee-pull:active:enabled .coffee-cup{transform:translateY(3px)}
.coffee-cup::before{
  content:"";position:absolute;inset:5px 0 0;clip-path:polygon(0 0,100% 0,83% 100%,17% 100%);
  background:linear-gradient(100deg,#c9b58f,#fff2d4 27%,#e3d1ac 80%,#af9975);
}
.coffee-cup::after{
  content:"";position:absolute;top:1px;left:0;width:100%;height:10px;
  z-index:2;background:#4c3023;border:2px solid #f5e3bd;border-radius:50%;
}
.coffee-liquid{
  position:absolute;z-index:1;inset:9px 7px 7px;
  clip-path:polygon(0 0,100% 0,82% 100%,18% 100%);
  background:#eedcba;overflow:hidden;
}
.coffee-liquid::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(#a47855 0 4px,#724732 5px,#4c3023);
  transform:scaleY(var(--coffee-fill,1));transform-origin:bottom;
}
.coffee-sleeve{
  position:absolute;z-index:1;bottom:2px;left:9px;right:9px;height:11px;
  clip-path:polygon(0 0,100% 0,94% 100%,6% 100%);
  background:repeating-linear-gradient(90deg,#935c43 0 2px,#a96e51 2px 5px);
}
.coffee-spout{
  position:absolute;z-index:3;top:8px;left:50%;transform:translateX(-50%);
  width:22px;height:9px;border-radius:0 0 4px 4px;background:linear-gradient(90deg,#343b34,#b7b3a0,#3f4940);
}
.coffee-spout i{
  position:absolute;top:8px;left:8px;width:6px;height:29px;border-radius:1px 1px 3px 3px;
  background:linear-gradient(90deg,#8f5d3e,#c38b62,#653d28);opacity:var(--coffee-flow,0);
}

/* The map frame shares the same paper and spacing as the case file. */
.map-frame{
  border-radius:14px;overflow:hidden;background:#f5f1e4;border-color:#c7c9b4;
  box-shadow:0 5px 15px #364b3120;
}
.map-frame::before,.map-frame::after{display:none}
.panel-heading{
  height:auto;min-height:47px;padding:10px 16px;gap:12px;
  color:#375246;font:700 12px/1.3 var(--sans);letter-spacing:.065em;
}
.map-meta{font:11px/1.3 var(--sans);letter-spacing:.04em;text-align:right;color:#5c7058}
.map-caption{
  gap:9px;padding:9px 14px;color:#566951;font:11px/1.4 var(--sans);
}
.map-caption>span:last-child{text-align:right}

/* Resource cards keep the full money tile interactive. */
.resource-bar{
  grid-template-columns:minmax(0,1.2fr) minmax(0,1.12fr) minmax(0,1fr) auto;
  gap:10px;background:none;border:0;margin-bottom:20px;min-height:0;
}
.resource{
  min-width:0;min-height:83px;position:relative;
  display:grid;grid-template-columns:auto minmax(0,1fr);align-content:center;align-items:center;
  gap:4px 11px;padding:12px 14px;border:1px solid #c8cabb;border-radius:11px;
  background:#faf7eb;box-shadow:0 2px 0 #d8d8c86b;
}
.resource-time{background:#f3efe0}
.resource-money{background:#f7efdb}
.resource-patience{background:#eaf0e2}
.resource-symbol,.resource-money>.resource-symbol{
  display:grid;place-items:center;grid-row:1/span 2;width:34px;height:34px;
  border-radius:10px;background:#e6e7d3;color:#496653;font:22px/1 var(--serif);
}
.resource-money>.resource-symbol{background:#ecddae;color:#795d31}
.resource-patience>.resource-symbol{background:#d9e6d3;color:#497455;font-size:18px}
.resource-label,.resource-money .resource-label{
  margin-bottom:5px;font:700 11px/1.15 var(--sans);letter-spacing:.055em;color:#526650;
}
.resource strong,.resource-money strong{
  display:block;font:700 clamp(22px,2vw,31px)/1.1 var(--sans);font-variant-numeric:tabular-nums;
}
.resource strong small{font:600 12px var(--sans);color:#62745c}
.resource-money.money-long strong{font-size:clamp(17px,1.6vw,24px)}
.resource-money.money-very-long strong{font-size:clamp(13px,1.3vw,20px)}
.currency-button{
  border-radius:10px;color:#6d5931;font:700 10px/1 var(--sans);padding:14px 11px 0 0;
}
.time-note{grid-column:2;margin:0;font:11px/1.3 var(--sans);color:#586752}
.time-note small{display:none}
.patience-track{grid-column:2;width:100%;height:6px;margin:4px 0 0;border-radius:99px;overflow:hidden;background:#ccd9c6}
.patience-track i{border-radius:inherit;background:#628a63}
.journal-button{
  gap:7px;align-self:stretch;padding:10px 14px;border-radius:10px;
  border:1px solid #c5cabb;background:#edf1e5;color:#3d5d48;font:700 13px var(--sans);
}
.journal-button>span:first-child{font-size:16px}
.journal-count{font-size:10px}

/* In the visit and the case file, titles and costs share a readable scale. */
.interaction,.goal-paper{
  border-radius:14px;box-shadow:0 4px 13px #41563a15;
}
.interaction{
  display:flex;flex-direction:column;background:#fffdf4;border-color:#c8ceba;
  padding:clamp(16px,1.8vw,24px);
}
.interaction-top{flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:11px}
.interaction-top>span,.interaction-top>span:last-child{
  display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:5px 8px;
  background:#ede9db;color:#4c5c48;font:700 10px/1.2 var(--sans);letter-spacing:.045em;
}
.interaction-top>span:last-child{background:#e5eddf;color:#41684d}
.interaction-top>span.pickup-only{background:#f6e6c9;color:#704a28}
.interaction-top i{width:6px;height:6px}
.place-art{border-radius:9px}
.interaction .person-row h2{font-size:clamp(26px,2.85vw,39px);margin-bottom:5px}
.interaction .person-row p{font:500 13px/1.4 var(--sans);color:#586a53}
.interaction .speech{
  font:18px/1.45 var(--serif);padding:10px 12px;margin:12px 0;
  background:#f0f2e7;border-left:3px solid #a7b59b;border-radius:0 7px 7px 0;color:#364b3d;
}
.interaction .place-note{
  order:1;margin:12px 0 0;padding:10px 0 0;border:0;border-top:1px dashed #ced2c3;
  font:13px/1.5 var(--sans);color:#52654f;
}
.actions{gap:12px}
.action-button{padding:12px 13px;border-radius:9px}
.action-title{font-size:15px;line-height:1.3}
.action-title>span:last-child{font-size:16px}
.action-costs{gap:5px;margin-top:8px;color:#465a45;font:600 12px/1.2 var(--sans)}
.action-costs>span{padding:3px 6px;border-radius:5px;background:#ffffff66}
.action-button.primary .action-costs{color:#f0f5e7}
.action-button.primary .action-costs>span{background:#ffffff20}
.action-button.primary .action-costs .gain{color:inherit}
.action-button:disabled{color:#586053;background:#edede4}
.action-button:disabled .action-costs{color:#606d58}
.action-button.completed{opacity:1}
.action-note,.action-reason,.action-warning{font:13px/1.45 var(--sans);margin:5px 3px 0}
.action-note,.action-reason.done{color:#52634e}
.action-reason{color:#785437}
.action-warning.hard-deadline{padding:7px 10px;border-radius:9px;background:#f6e6c9;color:#704a28;font-weight:700}
.ticket-notice{
  grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:9px 14px;
  margin:0 0 8px;padding:11px 13px;border:1px solid #d9bf8b;border-radius:11px;background:#fbf0d6;color:#5e432a;
  font:14px/1.4 var(--sans);
}
.ticket-notice>div{flex:1 1 230px}
.ticket-notice strong{font-size:15px}
.ticket-notice p{margin:3px 0 0;font:inherit}
.ticket-link,.ticket-alert,.cash-alert{
  border:1px solid #c6aa76;border-radius:9px;background:#fff8e7;color:#684425;
  padding:5px 9px;min-height:38px;font:700 13px/1.25 var(--sans);
}
.ticket-link:hover,.ticket-alert:hover,.cash-alert:hover{background:#f3dbac}
.cash-alert.call-ready{background:#e9f2d7;border-color:#95ad86;color:#294d38}
.cash-notice{border-color:#c8d2b8;background:#edf1e3;color:#3a5240}
.basis-choices{display:grid;gap:8px;margin:14px 0}
.basis-choices .action-button{min-height:46px;font-size:14px}
.filing-notes{padding:9px 11px;border:1px solid #d9c7a5;border-radius:8px;background:#fcf4de;color:#5e432a}
.filing-notes summary{cursor:pointer;font:700 13px/1.35 var(--sans)}
.filing-notes p{margin:8px 0 0;font:14px/1.45 var(--serif)}
.basis-cost{color:#784b32;font:700 13px/1.4 var(--sans)}
.basis-feedback{
  margin:12px 0;padding:10px 12px;border:1px solid #d9bf8b;border-radius:10px;
  background:#fbf0d6;color:#5e432a;font:14px/1.4 var(--sans);
}
.basis-speaker{display:block;font-weight:700}
.basis-feedback p{margin:4px 0 0}
.basis-feedback .basis-reply{font:inherit;font-style:italic}
.basis-verdict{
  margin-top:9px;padding:7px 9px;border-radius:7px;background:#e7eddc;color:#304d3c;
}
.basis-verdict ol{margin:4px 0;padding-left:20px}
.basis-verdict .ticket-link{margin-top:7px}
.basis-final>.basis-speaker{margin-top:4px}
@media(max-width:720px){.ticket-link{min-height:44px}}
.goal-paper{
  transform:none;padding:19px 21px;background:#f9f2df;border-color:#d8c9a5;
}
.goal-top{font:700 11px var(--sans);color:#7c6643}
.goal-paper h2{font-size:clamp(27px,2.6vw,37px);line-height:1.1}
.goal-description{font:14px/1.45 var(--sans);color:#675c46}
.case-progress{
  appearance:none;display:block;width:100%;height:7px;margin:13px 0;
  border:0;border-radius:99px;overflow:hidden;background:#e3dac3;color:#68876a;
}
.case-progress::-webkit-progress-bar{background:#e3dac3}
.case-progress::-webkit-progress-value{background:#68876a;border-radius:99px}
.case-progress::-moz-progress-bar{background:#68876a;border-radius:99px}
.requirements{display:grid;gap:5px}
.requirements li{
  min-height:42px;align-items:center;gap:9px;padding:0 9px;font-size:14px;
  border:1px solid #e1d8c1;border-radius:7px;background:#fffbef;
}
.requirements li.checked{background:#e7eee0;color:#3d6649;border-color:#d3dec8}
.requirements li:before{width:15px;height:15px;border-radius:4px;margin-top:0}
.requirements li.checked:before{font-size:12px}
.requirement-button{padding:8px 0;min-width:0}
.requirement-hint{color:#6a604a;font:12px/1.35 var(--sans)}
.goal-footer{font:700 11px/1.4 var(--sans);color:#705e40}
.goal-footer .inline-link{font-size:12px}
.effects-setting{
  display:flex;align-items:center;gap:8px;min-height:44px;margin-top:4px;
  color:#405b45;font:600 12px var(--sans);cursor:pointer;
}
.audio-panel .effects-setting input{width:17px;height:17px;min-height:17px;flex:none}
@media(max-width:900px){
  .resource{gap:3px 7px;padding:11px 10px}
  .resource-symbol,.resource-money>.resource-symbol{width:27px;height:27px;font-size:17px}
  .journal-button{padding:10px 9px}
}
@media(max-width:720px){
  .resource-bar{grid-template-columns:1fr 1.15fr 1fr;gap:6px;margin-bottom:11px}
  .resource{
    min-height:73px;padding:9px 7px;display:flex;flex-direction:column;align-items:stretch;
    justify-content:flex-start;gap:4px;
  }
  .resource-symbol,.resource-money>.resource-symbol{display:none}
  .resource-label,.resource-money .resource-label{font-size:10px;letter-spacing:.025em}
  .resource strong,.resource-money strong{font-size:clamp(18px,5.4vw,24px)}
  .resource strong small{font-size:10px}
  .resource-money.money-long strong{font-size:clamp(14px,4vw,20px)}
  .resource-money.money-very-long strong{font-size:clamp(11px,3.2vw,16px)}
  .resource-money .resource-label{padding-right:29px}
  .currency-button{padding:10px 6px 0 0;font-size:9px}
  .patience-track{display:block;height:5px;margin:2px 0 0}
  .journal-button{grid-column:1/-1;justify-self:end;position:static;min-height:35px;padding:5px 9px}
  .map-frame{margin-top:0}
  .panel-heading{min-height:43px;padding:8px 9px;font-size:11px}
  .map-meta{font-size:9px}
  .map-caption{padding:8px 9px;font-size:10px}
  .place-sheet .interaction{border-radius:0}
  .place-sheet .interaction .person-row h2{font-size:clamp(26px,6.5vw,33px)}
  .place-sheet .interaction .person-row p{font-size:12px}
  .place-sheet .interaction .speech{font-size:17px;margin:10px 0}
  .sheet-link{font-size:12px}
  .goal-paper{padding:16px}
}

.paper-slot[data-paper="copy"] .paper-pickup{
  width:min(94%,330px);background:#fbf7ea;border-bottom:1px solid #bfb395;
}
.paper-slot[data-paper="copy"]{background:#53625a}
.paper-pickup .doc-stamp{margin-top:8px}
.counter-modal .counter-art.register-checkout{
  position:relative;container-type:inline-size;overflow:hidden;
  width:100%;height:auto;min-height:0;max-height:none;aspect-ratio:3/2;
  background-size:100% 100%;background-position:center;
}
.register-coins{
  position:absolute;left:38.1%;bottom:16.7%;width:16.2%;
  display:flex;justify-content:space-between;align-items:flex-end;
}
.cash-coin{
  display:block;width:3.9cqw;aspect-ratio:1;flex:none;border-radius:50%;
  border:1px solid #8b5d25;background:radial-gradient(circle,#f2d17f 0 45%,#bc8c3c 49% 53%,#f0cb76 57%);
  box-shadow:0 2px 0 #a77737,0 3px 1px #69502a77;
  transform:translateY(var(--coin-offset,0)) scaleY(.55);
}
.cash-coin:nth-child(2){width:3.65cqw}
.cash-coin:nth-child(3){width:3.75cqw}
.is-dispensing .cash-coin{opacity:var(--coin-visible,0)}
.register-receipt{
  position:absolute;z-index:1;left:84%;top:53.6%;translate:-50% 0;
  display:grid;justify-items:center;align-items:start;
  width:max(48px,10%);height:max(48px,18%);padding:0;border:0;overflow:hidden;
  background:transparent;
}
.register-receipt:focus-visible{outline:none}
.register-paper{
  display:flex;flex-direction:column;align-items:center;gap:.65cqw;
  width:5.1cqw;height:8.3cqw;padding:1.2cqw .6cqw .6cqw;
  color:#674632;background:linear-gradient(162deg,#f0dba9,#fffbec 26% 88%,#efdeb6);
  clip-path:polygon(0 0,100% 0,100% 98%,90% 100%,80% 98%,70% 100%,60% 98%,50% 100%,40% 98%,30% 100%,20% 98%,10% 100%,0 98%);
  transform:translateY(calc((var(--paper-feed,1) - 1) * 101% + var(--receipt-take,0) * 80%))
    rotate(calc(var(--receipt-take,0) * -10deg));
  opacity:calc(1 - var(--receipt-take,0));
}
.register-paper b{font:700 .91cqw/1 var(--mono)}
.register-paper i{width:100%;height:max(.3cqw,1px);background:#8a684c88}
.register-paper i:last-child{width:64%;align-self:flex-start}
.register-receipt:enabled:is(:hover,:focus-visible) .register-paper{background:#fff7cf;box-shadow:inset 0 0 0 1px #94713e}
.counter-modal .receipt-instruction{margin:.4em 0 0;color:#536448;font-size:15px}
.is-dispensing .receipt-instruction{visibility:hidden}

.paper-slot[data-paper="form"]{
  padding-top:17px;border-top:5px solid #574432;
  background:linear-gradient(90deg,#5e4937 0 6%,transparent 6% 94%,#5e4937 94%),
    linear-gradient(#758475 0 13px,#86674a 13px 16px,#765639 16px);
  border-color:#574432;
}
.paper-slot[data-paper="form"] .paper-pickup{width:min(86%,300px);border-bottom:1px solid #bfb395}
.paper-slot[data-paper="form"]::before{top:9px;background:#2f2c22;box-shadow:0 3px #b08f66}
.archive-cabinet{
  position:relative;height:91px;margin-top:14px;overflow:hidden;
  background:repeating-linear-gradient(0deg,#68513b 0 22px,#634a34 23px,#81654b 25px);
  border:1px solid #5d4938;border-radius:4px 4px 0 0;
  box-shadow:inset 0 2px 0 #9a7d60;
}
.archive-cabinet::before{
  content:"";position:absolute;inset:12px 12% 19px;
  background:#342b23;border:2px solid #513d2c;border-radius:3px;
  box-shadow:inset 0 5px 8px #201b16;
}
.archive-drawer{
  position:absolute;top:20px;left:12%;right:12%;
  transform:translateY(calc((var(--drawer-open,1) - 1)*20px));
}
.drawer-papers{
  position:relative;height:27px;
  background:linear-gradient(#403226,#9e7953);
  clip-path:polygon(7% 0,93% 0,100% 100%,0 100%);
  opacity:var(--drawer-open,1);
}
.drawer-papers i{
  position:absolute;top:10px;left:17%;width:31%;height:16px;
  background:repeating-linear-gradient(#d9c39a 0 3px,#b39a70 4px,#e3cfab 5px);
  border:1px solid #b19a76;border-radius:1px;box-shadow:0 2px 3px #3e2a1a70;
  transform:translateY(calc(var(--leaf-lift,0)*-10px)) rotate(calc(-4deg + var(--leaf-lift,0)*13deg));
}
.drawer-papers i:nth-child(2){left:36%;top:7px;filter:brightness(1.08)}
.drawer-papers i:nth-child(3){left:54%;top:11px}
.drawer-front{
  height:31px;display:grid;place-items:center;
  background:linear-gradient(#967453,#735236);border:1px solid #503b29;border-radius:2px;
  box-shadow:inset 0 2px #aa8866,0 4px 5px #271c14a0;
}
.drawer-front i{
  width:35px;height:10px;border:3px solid #b5995b;border-top-width:2px;border-radius:2px 2px 6px 6px;
  background:#544030;box-shadow:0 2px #4d3724;
}
.paper-slot[data-paper="receipt"]{
  margin-top:0;background:#64513f;border-color:#5d4938;border-radius:0 0 4px 4px;
}
.paper-slot[data-paper="receipt"] .paper-pickup{border-bottom:1px solid #bfb395}

/* The floor is one scene; transparent targets cover the illustrated props. */
.floorplan{
  position:relative;isolation:isolate;overflow:hidden;aspect-ratio:3/2;
  container-type:inline-size;--standing-height:clamp(32px,10.9cqw,86px);
  background:#c1a983 url("assets/map/municipal-hall-noticeboard.webp") center/100% 100% no-repeat;
}
.map-stop{
  position:absolute;z-index:1;display:flex;justify-content:center;align-items:flex-end;
  width:29%;height:29%;top:3%;padding:0 3px 1.4%;
  border:0;border-radius:12px;background:transparent;touch-action:manipulation;
}
.map-stop[data-place="info"],.map-stop[data-place="cash"]{left:5.5%}
.map-stop[data-place="copy"]{left:33%;width:34%;height:21.5%}
.map-stop[data-place="terminal"]{left:35.5%}
.map-stop[data-place="archive"],.map-stop[data-place="seven"]{right:5.5%}
.map-stop.map-bottom-stop{top:69%;height:27%;align-items:flex-end}
.map-stop.map-side-stop{top:39%;height:23%;width:17%;min-height:44px;padding-bottom:0}
.map-stop[data-place="board"]{left:1.8%;width:25%;justify-content:flex-start}
.map-stop[data-place="rest"]{right:1.8%;justify-content:flex-end}
.stop-sign{
  display:flex;justify-content:center;align-items:center;gap:6px;min-height:30px;max-width:100%;
  padding:4px 10px 4px 5px;border:1px solid #ffedc3;border-radius:999px;
  background:#254b3e;color:#fff8e7;box-shadow:0 2px 5px #412a1e75;
  font:700 clamp(11px,2.24cqw,17px)/1.2 var(--sans);text-align:center;
  transition:transform .16s,box-shadow .16s;
}
.stop-sign>span{min-width:0;overflow-wrap:anywhere}
.stop-sign b{
  display:grid;place-items:center;min-width:21px;height:21px;padding:0 4px;border-radius:50%;
  color:#274b3d;background:#e9dab3;font:700 .85em/1 var(--sans);
}
.map-side-stop .stop-sign{padding:5px 10px}
.map-stop:hover .stop-sign,.map-stop.is-target .stop-sign{background:#39604d;transform:translateY(-3px)}
.map-stop[aria-pressed="true"] .stop-sign{
  background:#f8e7b7;color:#283e2e;border-color:#fff5d3;box-shadow:0 0 0 2px #315442,0 3px 8px #38281e65;
}
.map-stop[data-place="seven"] .stop-sign b{background:#e6c0a1;color:#733d32}
.map-stop.ready .stop-sign{box-shadow:0 0 0 3px #fbce71,0 3px 9px #38281e75}
.map-stop:focus-visible{outline:0}
.map-stop:focus-visible .stop-sign{outline:3px solid #fff6cd;outline-offset:3px}
.map-cast{position:absolute;inset:0;pointer-events:none}
.waiting-bench,.waiting-queue{
  position:absolute;left:50%;width:17.3%;aspect-ratio:656/412;
  background:url("assets/map/waiting-empty.webp") center/100% 100% no-repeat;
  transform:translateX(-50%);filter:drop-shadow(0 3px 2px #59412250);
}
.waiting-bench{bottom:59.5%}
.waiting-queue{bottom:43.8%}
/* Seat each sprite by the hips, using the same scale as its standing pose. */
.seated-guest{
  --seated-height:min(90%,calc(var(--standing-height) * .90));
  --hips:.63;
  position:absolute;top:calc(69% - var(--seated-height) * var(--hips));
  height:var(--seated-height);translate:-50% 0;
  transform-origin:center calc(var(--hips) * 100%);
}
.rear-guest{
  --hips:.65;
  aspect-ratio:196/268;
  background:url("assets/map/rear-visitors.webp") left var(--guest-row,0%)/400% 200% no-repeat;
  animation:rear-seated 7.4s ease-in-out -2.4s infinite;
}
.front-guest{
  aspect-ratio:200/304;
  background:url("assets/map/waiting-seated.webp") var(--guest-column,0%) var(--call-pose,var(--seated-pose,0%)) / 300% 300% no-repeat;
  animation:var(--seat-animation,none) var(--seat-cycle,0s) steps(1,end) var(--seat-delay,0s) infinite,
    var(--call-animation,none) var(--call-duration,2s) steps(1,end);
}
.rear-folder,.seated-reader{left:20%}
.rear-envelope,.seated-watcher{left:82%}
.rear-envelope{--guest-row:100%;animation-duration:9.2s;animation-delay:-.9s}
.seated-reader{--seat-animation:queue-turn-page;--seat-cycle:8.4s;--seat-delay:1.8s}
.seated-skeleton{left:51.5%;--guest-column:50%;--call-duration:4.2s}
.seated-watcher{--guest-column:100%;--seat-animation:queue-check-watch;--seat-cycle:10.2s;--seat-delay:-.7s}
.seat-empty-folder .rear-folder,.seat-empty-envelope .rear-envelope,
.seat-empty-reader .seated-reader,.seat-empty-watcher .seated-watcher,
.seat-empty-skeleton .seated-skeleton{
  visibility:hidden;
}
@keyframes rear-seated{0%,75%,100%{transform:none}82%,91%{transform:translateY(-.7%) rotate(.8deg)}}
.queue-guest{
  position:absolute;z-index:1;height:var(--standing-height);aspect-ratio:136/176;
  transform:translate(-50%,-97%);pointer-events:none;
}
.queue-guest[hidden],.queue-destination[hidden]{display:none}
.queue-guest::before{
  content:"";position:absolute;inset:auto 23% 1% 23%;height:11%;border-radius:50%;
  background:#4731217d;filter:blur(2px);
}
.queue-guest span{
  position:absolute;inset:0;
  background:url("assets/map/waiting-visitors-detail.webp") var(--guest-frame,33.3333%) var(--guest-row,0%) / 400% 200% no-repeat;
}
.queue-guest[data-profile="left"] span{transform:scaleX(-1)}
.queue-guest[data-seat="watcher"],.queue-guest[data-seat="envelope"]{--guest-row:100%}
.queue-guest:is([data-seat="folder"],[data-seat="envelope"]){aspect-ratio:196/268}
.queue-guest:is([data-seat="folder"],[data-seat="envelope"]) span{
  background-image:url("assets/map/rear-visitors.webp");
}
.queue-guest:is([data-seat="folder"],[data-seat="envelope"])[data-pose="rise"] span{
  --guest-frame:33.3333%;scale:1 .86;transform-origin:center 97%;
}

.queue-guest[data-seat="skeleton"]{aspect-ratio:147/176;height:calc(var(--standing-height)*1.06)}
.queue-guest[data-seat="skeleton"] span{
  background:url("assets/map/waiting-skeleton-detail.webp") var(--skeleton-frame,25%) center / 500% 100% no-repeat;
}
.queue-guest[data-seat="skeleton"][data-pose="rise"]{--skeleton-frame:0%}
.queue-guest[data-seat="skeleton"][data-pose="step-a"]{--skeleton-frame:50%}
.queue-guest[data-seat="skeleton"][data-pose="step-b"]{--skeleton-frame:75%}
.queue-guest[data-seat="skeleton"][data-pose="present"]{--skeleton-frame:100%}
.queue-reply{
  position:absolute;z-index:4;margin:0;left:50%;top:41%;transform:translate(-50%,-100%);
  max-width:min(85%,280px);padding:7px 10px;border:1px solid #9c8663;border-radius:10px;
  background:#fff4dc;color:#413728;box-shadow:0 3px 9px #35241957;
  font:700 clamp(10px,1.8cqw,15px)/1.23 var(--sans);text-align:center;pointer-events:none;
}
.queue-reply::after{
  content:"";position:absolute;left:50%;bottom:-4px;width:6px;height:6px;background:inherit;
  border:solid #9c8663;border-width:0 1px 1px 0;transform:rotate(45deg);
}
.queue-reply[data-speaker="expired"]{left:76%;top:68%;width:min(44%,275px);transform:translate(-50%,0)}
.queue-reply[data-speaker="expired"]::after{left:63.6%;top:-4px;bottom:auto;transform:rotate(225deg)}
.queue-reply[hidden]{display:none}

.queue-guest[data-pose="rise"]{--guest-frame:0%}
.queue-guest[data-pose="step-a"]{--guest-frame:66.6667%}
.queue-guest[data-pose="step-b"]{--guest-frame:100%}
.queue-guest[data-pose="passing"] span{translate:0 -1.5%}
.map-stop.is-being-called .stop-sign{
  border-color:#ffcf70;
  box-shadow:0 0 0 2px #e9a74a,0 3px 7px #4c312980;
}
.map-stop.is-busy:is(:hover,:focus-visible) .busy-label{background:#ffe7b2;color:#38281c}
.map-stop.is-busy .stop-sign{background:#634638;color:#fff5de;transform:none}
.busy-label{
  position:absolute;left:50%;bottom:calc(16% + 19px);transform:translateX(-50%);
  background:#f2d6a6;color:#593924;border:1px solid #a96d38;border-radius:999px;
  padding:2px 6px;font:700 clamp(9px,1.25cqw,12px)/1.1 var(--sans);white-space:nowrap;
}
.busy-label[hidden]{display:none}
/* The chime leads the skeleton's first turn by about a third of a second. */
.queue-display{
  position:absolute;bottom:calc(100% + 3.2cqw);left:calc(100% + 6cqw);z-index:2;
  width:max-content;display:grid;gap:3px;padding:4px 6px;border:1px solid #80654d;border-radius:6px;
  background:linear-gradient(145deg,#746049,#544335);text-align:center;white-space:nowrap;
  box-shadow:0 2px 4px #58402f80;

}
.queue-display::before{
  content:"";position:absolute;left:15%;right:15%;bottom:-52%;height:51%;z-index:-1;
  background:linear-gradient(90deg,transparent 0 8%,#72563e 8% 15%,transparent 15% 85%,#72563e 85% 92%,transparent 92%);
  filter:drop-shadow(0 2px 1px #553c2f75);
}
.queue-display-title{color:#fff0cc;font:700 clamp(6px,1cqw,10px)/1 var(--sans)}
.queue-destination{display:inline-block}
.queue-display-readout{
  display:block;min-width:9ch;padding:4px 5px;border-radius:3px;
  background:#252724;color:var(--queue-led,#efd08d);
  font:700 clamp(8px,1.45cqw,15px)/1.1 var(--mono);letter-spacing:.03em;
}
.cash-queue-readout{color:#efe4b8}
.cash-queue-readout[hidden]{display:none}
.cash-queue-readout.call-ready{color:#e4ffc4;box-shadow:inset 0 0 0 1px #9aad59}
.queue-window{color:inherit}
.queue-is-called .queue-display{animation:queue-beacon .6s linear}
.queue-is-called :is(.seated-reader,.seated-watcher){--call-animation:queue-look-display}
.queue-is-called .seated-skeleton{--call-animation:queue-listen}
.queue-paused :is(.seated-guest,.queue-display){animation-play-state:paused}
@keyframes queue-turn-page{
  0%{--seated-pose:50%}
  11%,100%{--seated-pose:0%}
}
@keyframes queue-look-display{
  0%,24%,100%{--call-pose:var(--seated-pose,0%)}
  4%{--call-pose:100%}
}
@keyframes queue-beacon{
  0%,100%{--queue-led:#efd08d}
  12%,66%{--queue-led:#fff8be;box-shadow:0 0 9px #f8cf7e75}
}
@keyframes queue-check-watch{
  0%,48%,100%{--seated-pose:0%}
  34%{--seated-pose:50%}
}
@keyframes queue-listen{
  0%,34%,100%{--call-pose:0%}
  7.5%,23%{--call-pose:50%}
  15%{--call-pose:100%}
}
.map-actor{
  position:absolute;left:var(--x);top:var(--y);width:var(--size,7.4%);
  aspect-ratio:140/144;transform:translate(-50%,-100%) scaleX(var(--look,1));
  background:url("assets/map/office-cast-detail.webp") var(--column) 0%/800% 200% no-repeat;
  filter:drop-shadow(0 1px 1px #43291970);
  animation:actor-work var(--cycle) steps(1,end) var(--delay) infinite;
}
.actor-info{--x:20.1%;--y:18.6%;--column:0%;--size:5.7%;--cycle:4.9s;--delay:-.6s}
.actor-copy{--x:40.5%;--y:27%;--column:14.285714%;--size:5.8%;--cycle:5.7s;--delay:-2.6s}
.actor-archive{--x:82.85%;--y:18.55%;--column:28.571429%;--size:5.9%;--cycle:6.4s;--delay:-.65s}
.actor-cash{--x:20.85%;--y:80.1%;--column:42.857143%;--size:6.0%;--cycle:5.1s;--delay:-2.1s}
.actor-seven{--x:80.2%;--y:79.2%;--column:57.142857%;--size:5.9%;--cycle:6.2s;--delay:-4s}
.actor-board{--x:11%;--y:55.5%;--column:71.428571%;--cycle:5.8s;--delay:-1.1s}
.actor-terminal{--x:55.6%;--y:72.9%;--column:85.714286%;--look:-1;--cycle:5.3s;--delay:-2s}
.actor-rest{--x:81.5%;--y:56.8%;--column:100%;--cycle:6.1s;--delay:-.4s}
.terminal-screen{
  position:absolute;left:47.66%;top:71.48%;width:4.9%;height:4.05%;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  overflow:hidden;color:#465832;text-shadow:0 0 .35px #465832;
  font:700 clamp(4px,.69cqw,11px)/1.04 var(--mono);letter-spacing:.015em;
}
.map-actor.actor-copy{width:auto;height:var(--standing-height);aspect-ratio:180/285}
.map-actor.actor-copy:not(.is-attending){
  background:url("assets/map/office-copy.webp") left center/300% 100% no-repeat;
  animation:desk-work var(--cycle) steps(1,end) var(--delay) infinite;
}
.map-actor.actor-copy .reply-body{
  background:url("assets/map/office-copy.webp") right center/300% 100% no-repeat;
}
.map-actor:is(.actor-board,.actor-terminal,.actor-rest){width:auto;height:var(--standing-height)}
.map-actor:is(.actor-archive,.actor-cash):not(.is-attending){
  background:url("assets/map/office-seated-detail.webp") 0% var(--desk-row,0%) / 300% 200% no-repeat;
  animation:desk-work var(--cycle) steps(1,end) var(--delay) infinite;
}
.actor-cash{--desk-row:100%}
@keyframes desk-work{0%,67%{background-position-x:0%}36%,100%{background-position-x:50%}}
.map-actor:is(.actor-archive,.actor-cash) .reply-body{
  background:url("assets/map/office-seated-detail.webp") 100% var(--desk-row,0%) / 300% 200% no-repeat;
}
.map-actor.actor-copy{--mouth-x:53%;--mouth-y:24.8%;--mouth-width:11%;--mouth-height:3.9%}
.map-actor.actor-archive{--mouth-x:62%;--mouth-y:49%}
.map-actor.actor-cash{--mouth-x:42%;--mouth-y:44%}
.desk-foreground{
  position:absolute;left:13.28125%;top:74.41406%;width:6.90104%;height:10.35156%;
  background:url("assets/map/office-register-front.webp") center/100% 100% no-repeat;
}
.archive-counter-edge{
  position:absolute;left:78.8411%;top:17.96875%;width:8.138%;height:3.22266%;
  background:url("assets/map/archive-edge.webp") center/100% 100% no-repeat;
}
@keyframes actor-work{
  0%,65%{background-position-y:0%}
  36%,100%{background-position-y:100%}
}
.map-actor.is-attending{
  background:none;
  transform:translate(-50%,-100%) scaleX(var(--reply-look,1));
  transform-origin:50% 95%;
  animation:actor-turn .24s ease-out;
}
.actor-terminal{--reply-look:-1}
.actor-seven{--reply-look:-1}
.actor-seven.checking-certificate:not(.is-attending){animation:none;background-position-y:100%}
.reply-portrait,.reply-figure,.reply-body{position:absolute;inset:0}
.map-actor:not(.is-attending) .reply-portrait{display:none}
.reply-figure{transform-origin:50% 72%}
.reply-body{
  background:url("assets/map/office-replies-detail.webp") var(--column) center/800% 100% no-repeat;
}
.reply-mouth,.reply-hand{display:none}
.is-talking .reply-figure{
  transform:translateY(calc(var(--reply-gesture,0)*var(--nod-shift,0%)))
    rotate(calc(var(--reply-gesture,0)*var(--nod-angle,0deg)));
}
.is-talking .reply-mouth{
  display:block;position:absolute;left:var(--mouth-x);top:var(--mouth-y);
  width:var(--mouth-width,9%);height:var(--mouth-height,6%);
  transform:translate(-50%,-50%) rotate(var(--mouth-angle,0deg));
}
.is-talking .reply-mouth::before{
  content:"";position:absolute;inset:-25% -18%;border-radius:50%;
  background:radial-gradient(ellipse,var(--skin) 52%,transparent 73%);
}
.is-talking .reply-mouth::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(#633125 0 57%,#bc6a52 80%,#8b4937);border-radius:45% 45% 55% 55%;
  transform:scale(calc(.8 + var(--mouth-open,0)*.28),calc(.15 + var(--mouth-open,0)*.85));
}
.actor-info{--mouth-x:52%;--mouth-y:40.5%;--mouth-width:10%;--mouth-angle:-10deg;--skin:#e6ac7c;--nod-angle:-3deg}
.actor-copy{--mouth-x:56%;--mouth-y:40%;--mouth-width:9%;--mouth-height:5%;--skin:#d69a63;--nod-angle:5deg;--nod-shift:-1%}
.actor-archive{--mouth-x:54%;--mouth-y:37.5%;--mouth-angle:-7deg;--skin:#e8ad79;--nod-angle:-5deg;--nod-shift:3%}
.actor-cash{--mouth-x:41%;--mouth-y:35.2%;--mouth-angle:-3deg;--skin:#e7aa77;--nod-angle:-5deg;--nod-shift:-1%}
.actor-seven{--mouth-x:62%;--mouth-y:42.7%;--mouth-width:8%;--mouth-angle:-19deg;--skin:#e1ae7f;--nod-angle:4deg;--nod-shift:2%}
.actor-board{--mouth-x:66%;--mouth-y:26.1%;--mouth-width:4.8%;--mouth-height:4.7%;--skin:#e6af84;--nod-angle:5deg;--nod-shift:-1%}
.actor-terminal{--mouth-x:63%;--mouth-y:27.7%;--mouth-width:4.5%;--mouth-height:4.6%;--skin:#dba87c;--nod-angle:-2deg}
.actor-rest{--mouth-x:46%;--mouth-y:28.2%;--mouth-width:7%;--mouth-height:4.4%;--skin:#e4af80;--nod-angle:4deg;--nod-shift:-1%}
.actor-info{--hand-cut:polygon(0 53%,24% 53%,27% 66%,27% 73%,16% 77%,0 77%);--hand-pivot:25% 72%;--hand-angle:10deg}
.actor-terminal{--hand-cut:polygon(77% 34%,100% 34%,100% 53%,78% 53%,72% 52%,72% 41%);--hand-pivot:74% 50%;--hand-angle:-14deg}
.is-talking:is(.actor-info,.actor-terminal) .reply-hand{
  position:absolute;inset:0;display:block;
  background:url("assets/map/office-replies-detail.webp") var(--column) center/800% 100% no-repeat;
  clip-path:var(--hand-cut);transform-origin:var(--hand-pivot);
  transform:rotate(calc(var(--reply-gesture,0)*var(--hand-angle)));
}
.is-talking.actor-info .reply-body{
  clip-path:polygon(0 0,100% 0,100% 100%,0 100%,0 77%,16% 77%,27% 73%,27% 66%,24% 53%,0 53%);
}
.is-talking.actor-terminal .reply-body{
  clip-path:polygon(0 0,100% 0,100% 34%,77% 34%,72% 41%,72% 52%,78% 53%,100% 53%,100% 100%,0 100%);
}
@keyframes actor-turn{
  from{transform:translate(-50%,-100%) scaleX(calc(var(--reply-look,1)*.79)) translateY(4%)}
  to{transform:translate(-50%,-100%) scaleX(var(--reply-look,1))}
}
.map-reply{
  --bubble-width:min(144px,45%);
  position:absolute;z-index:3;left:clamp(calc(var(--bubble-width)/2 + 4px),var(--reply-x),calc(100% - var(--bubble-width)/2 - 4px));
  top:var(--reply-y);transform:translate(-50%,calc(-100% - 5px));width:max-content;max-width:var(--bubble-width);
  margin:0;padding:6px 8px;border:1px solid #bbab86;border-radius:9px;background:#fff4d8;
  color:#3b3627;box-shadow:0 2px 5px #4329194a;font:700 clamp(10px,2.2cqw,13px)/1.2 var(--sans);
  text-align:center;pointer-events:none;animation:reply-in .16s ease-out both;
}
.map-reply::after{
  content:"";position:absolute;left:50%;bottom:-4px;width:6px;height:6px;
  background:inherit;border-right:1px solid #bbab86;border-bottom:1px solid #bbab86;transform:rotate(45deg);
}
.map-reply:is([data-speaker="info"],[data-speaker="copy"],[data-speaker="archive"]){
  --bubble-width:min(146px,43%);
  left:calc(var(--reply-x) + 5%);top:calc(var(--reply-y) + 1%);transform:none;
}
.map-reply:is([data-speaker="info"],[data-speaker="copy"],[data-speaker="archive"])::after{
  left:-4px;bottom:auto;top:9px;border:0;border-left:1px solid #bbab86;border-bottom:1px solid #bbab86;
}
.map-reply[data-speaker="archive"]{left:calc(var(--reply-x) - 5%);transform:translateX(-100%)}
.map-reply[data-speaker="archive"]::after{left:auto;right:-4px;transform:rotate(225deg)}
.place-greeting{
  display:flex;align-items:center;gap:10px;margin:10px 0;padding:6px 12px 6px 7px;
  border:1px solid #ccbb93;border-radius:10px;background:#fff4d8;color:#443c27;
  font:700 14px/1.3 var(--sans);
}
.place-greeting[hidden]{display:none}
.place-greeting .reply-portrait{
  position:relative;flex:0 0 48px;height:49px;
  transform:scaleX(var(--reply-look,1));
}
@keyframes reply-in{
  from{opacity:0;translate:0 3px}
  to{opacity:1;translate:0 0}
}
.map-visitor{
  position:absolute;z-index:2;left:50%;top:57%;height:var(--standing-height);
  aspect-ratio:3/4;transform:translate(-50%,-96%);pointer-events:none;
}
.visitor-shadow{
  position:absolute;inset:auto 23% 1%;height:12%;border-radius:50%;background:#392d2090;filter:blur(2px);
}
.visitor-sprite,.visitor-pose,.visitor-idle{position:absolute;inset:0}
.visitor-sprite{transform-origin:50% 96%}
.map-visitor.is-turning .visitor-sprite{animation:visitor-turn .19s ease-out}
.visitor-pose{
  background:url("assets/map/visitor-walk-detail.webp") var(--pose-x,0%) var(--pose-y,0%)/300% 300% no-repeat;
  filter:drop-shadow(0 1px 1px #4329198c);
}
.visitor-idle{
  opacity:0;background:url("assets/map/visitor-idle-detail.webp") 0% 0%/200% 200% no-repeat;
  filter:drop-shadow(0 1px 1px #4329198c);
}
.map-visitor:not(.is-walking,[data-listening]) .visitor-sprite{animation:waiting-shift 8.7s ease-in-out infinite}
.map-visitor[data-direction="down"]:not(.is-walking,[data-listening]) .visitor-pose{animation:waiting-front-base 10s steps(1,end) infinite}
.map-visitor[data-direction="down"]:not(.is-walking,[data-listening]) .visitor-idle{animation:waiting-front-gestures 10s steps(1,end) infinite}
.map-visitor[data-direction="up"]:not(.is-walking,[data-listening]) .visitor-pose{animation:waiting-back-base 9.8s steps(1,end) infinite}
.map-visitor[data-direction="up"]:not(.is-walking,[data-listening]) .visitor-idle{
  background-position:100% 100%;animation:waiting-back-folder 9.8s steps(1,end) infinite;
}
@keyframes visitor-turn{
  0%{transform:scaleX(.78) rotate(-3deg)}
  100%{transform:none}
}
@keyframes waiting-shift{
  0%,21%,43%,66%,100%{transform:none}
  30%{transform:translateX(-3%) rotate(-4deg)}
  54%{transform:translateX(2%) rotate(3deg)}
}
@keyframes waiting-front-base{
  0%,34%,57%,81%,100%{opacity:1}
  23%,46%,68%{opacity:0}
}
@keyframes waiting-front-gestures{
  0%,34%,57%,81%,100%{opacity:0}
  23%{opacity:1;background-position:0% 0%}
  46%{opacity:1;background-position:100% 0%}
  68%{opacity:1;background-position:0% 100%}
}
@keyframes waiting-back-base{0%,71%,100%{opacity:1}58%{opacity:0}}
@keyframes waiting-back-folder{0%,71%,100%{opacity:0}58%{opacity:1}}
.map-visitor[data-direction="up"]{--pose-y:100%}
.map-visitor:is([data-direction="left"],[data-direction="right"]){--pose-y:50%}
.map-visitor[data-direction="left"] .visitor-pose{transform:scaleX(-1)}
.map-visitor[data-pose="step-a"]{--pose-x:50%}
.map-visitor[data-pose="step-b"]{--pose-x:100%}
.map-visitor[data-pose="passing"] .visitor-pose{translate:0 -2%}
.map-visitor.is-walking .visitor-label{opacity:0}
.map-visitor[data-listening="nod"] .visitor-pose,
.greeting-visitor[data-listening="nod"] .listener-figure{
  /* Keep the torso planted and articulate only the head. */
  background-image:none;
}
.map-visitor[data-listening="nod"] .visitor-pose::before,
.map-visitor[data-listening="nod"] .visitor-pose::after,
.greeting-visitor[data-listening="nod"] .listener-figure::before,
.greeting-visitor[data-listening="nod"] .listener-figure::after{
  content:"";position:absolute;inset:0;
  background:url("assets/map/visitor-walk-detail.webp") 0% var(--pose-y,50%)/300% 300% no-repeat;
}
.map-visitor[data-direction="down"]{--pose-y:0%}
.map-visitor[data-listening="nod"] .visitor-pose::before,
.greeting-visitor[data-listening="nod"] .listener-figure::before{clip-path:inset(34% 0 0)}
.map-visitor[data-listening="nod"] .visitor-pose::after,
.greeting-visitor[data-listening="nod"] .listener-figure::after{
  clip-path:inset(0 0 63%);transform-origin:50% 34%;animation:visitor-nod .64s ease-in-out both;
}
@keyframes visitor-nod{
  0%,100%{transform:none}
  22%,65%{transform:translateY(1.9%) scaleY(.83) rotate(-5deg)}
  42%{transform:translateY(.6%) scaleY(.97)}
}
.map-visitor[data-direction="up"]{--shrug-frame:33.333333%}
.map-visitor:is([data-direction="left"],[data-direction="right"]){--shrug-frame:66.666667%}
.map-visitor[data-listening="shrug"] .visitor-pose{
  background:url("assets/map/visitor-reactions-detail.webp") var(--shrug-frame,0%) top/400% 200% no-repeat;
  animation:visitor-shrug .64s ease-in-out both;
}
@keyframes visitor-shrug{
  0%,100%{translate:0 0}
  28%,56%{translate:0 -4%}
}
.place-greeting .greeting-text{flex:1;min-width:0}
.greeting-visitor{
  position:relative;flex:0 0 31px;height:47px;
}
.listener-figure{
  position:absolute;inset:0;transform-origin:bottom center;
  background:url("assets/map/visitor-walk-detail.webp") 0% 50%/300% 300% no-repeat;
  scale:-1 1;
}
.greeting-visitor[data-listening="shrug"] .listener-figure{
  background:url("assets/map/visitor-reactions-detail.webp") 66.666667% top/400% 200% no-repeat;
  animation:visitor-shrug .64s ease-in-out both;
}
.paper-handoff{
  position:relative;isolation:isolate;overflow:hidden;margin-top:14px;
  height:clamp(110px,23dvh,152px);border:1px solid #82705a;border-radius:9px;
  background:radial-gradient(ellipse at 67% 15%,#f3e7c5 0%,#d2c0a0 62%,#b49a78);
}
.paper-handoff::before{
  content:"";position:absolute;inset:78% 0 0;background:#a9987b66;
  border-top:1px solid #7d694b20;
}
.handoff-ledger{
  position:absolute;top:57%;bottom:0;left:0;width:33%;background:linear-gradient(#b28861 0%,#a67a52 12%,#735139 16%,#6b4630);
  border-top:2px solid #bf9975;border-radius:0 6px 0 0;box-shadow:0 3px 8px #3f302c44;
}
.handoff-visitor{
  position:absolute;bottom:4%;height:93%;left:64%;aspect-ratio:120/152;transform:translateX(-50%);
  background:url("assets/map/visitor-reactions-detail.webp") var(--handoff-pose,0%) bottom/400% 200% no-repeat;
  filter:drop-shadow(0 3px 2px #604c3655);
}
.paper-handoff[data-pose="reach"]{--handoff-pose:33.333333%}
.paper-handoff[data-pose="stow"]{--handoff-pose:66.666667%}
.paper-handoff[data-pose="done"]{--handoff-pose:100%}
.handoff-sheet{
  position:absolute;left:var(--sheet-x,28%);top:var(--sheet-y,52%);
  width:clamp(16px,7%,25px);height:auto;aspect-ratio:4/5;border:1px solid #a69168;border-radius:1px;
  background:repeating-linear-gradient(#fff0c7 0 4px,#b3a788 5px,#fff0c7 6px);
  opacity:calc(1 - var(--sheet-tuck,0));
  transform:translate(-50%,-50%) rotate(var(--sheet-turn,-9deg)) scaleY(calc(1 - var(--sheet-tuck,0)*.65));
  box-shadow:1px 2px 2px #39291950;
}
.paper-handoff.is-stack .handoff-sheet{box-shadow:2px 2px #e5d1a8,3px 3px #ad9675,4px 5px #39291945}
.submission-stage{
  position:relative;isolation:isolate;overflow:hidden;
  height:clamp(148px,27dvh,214px);border:1px solid #998368;border-radius:14px;
  background:radial-gradient(ellipse at 33% 18%,#f1e7c7,#d1b78f 77%,#b2a07b);
}
.submission-stage:not([hidden]) ~ [data-scene-title]{min-height:2.1em}
.submission-stage::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,transparent 9%,#b39c7830 9.5%,transparent 10%,transparent 90%,#b39c7830 90.5%,transparent 91%);
}
.review-counter{
  position:absolute;left:0;right:24%;top:66%;bottom:0;border-radius:0 12px 0 0;
  background:linear-gradient(#be966c 0 7%,#947052 8% 18%,#6d5037 19% 24%,#8a694a 25%,#634b37);
  border-top:2px solid #ecd2a6;box-shadow:0 5px 9px #49392e45;
}
.review-clerk,.review-visitor{
  position:absolute;filter:drop-shadow(0 3px 2px #604c3650);
}
.review-clerk{
  left:29%;bottom:30%;height:69%;aspect-ratio:1;
  background:url("assets/map/permit-review-detail.webp") var(--clerk-review,0%) center/400% 100% no-repeat;
  transform-origin:50% 94%;
  transform:translateX(-50%) rotate(calc(var(--nod-dip,0)*-4deg)) scaleY(calc(1 - var(--nod-dip,0)*.055));
}
.review-visitor{
  left:calc(74% - var(--visitor-step,0%));bottom:-13%;height:108%;aspect-ratio:120/152;
  background:url("assets/map/visitor-reactions-detail.webp") var(--visitor-review,66.666667%) bottom/400% 200% no-repeat;
  transform:translateX(-50%);
}

.closing-stage{
  background:radial-gradient(ellipse at 43% 20%,#b99e77,#80644d);
}
.closing-window{
  position:absolute;inset:7% 14% 22%;overflow:hidden;
  border:clamp(5px,1.7vw,9px) solid #805e43;border-radius:9px 9px 0 0;
  background:radial-gradient(ellipse at 42% 29%,#f1dfba,#c7a77b 70%,#98785a);
  box-shadow:0 0 0 1px #4f3829,inset 0 0 0 3px #fcdfa363,0 3px 8px #51361f7d;
}
.closing-stage .review-clerk{
  left:49%;bottom:-2%;height:94%;--clerk-review:66.666667%;
  transform:translateX(calc(-50% + var(--shutter-reach,0)*5%)) rotate(calc(var(--shutter-reach,0)*-3deg));
}
.closing-stage.is-reaching .review-clerk{--clerk-review:0%}
.closing-stage .review-counter{
  right:0;top:75%;border-radius:0;
  transform:translateY(calc(var(--shutter-knock,0)*1px));
}
.window-shutter{
  position:absolute;left:0;right:0;bottom:100%;height:100%;display:grid;place-items:center;
  transform:translateY(var(--shutter-drop,0%));
  border-bottom:5px solid #594332;
  background:repeating-linear-gradient(#ad8864 0 1px,#8e6b4f 2px 12px,#72543d 13px 15px);
  box-shadow:0 3px 6px #39261d85,inset 0 0 19px #472e19a0;
}
.window-shutter b{
  display:block;max-width:90%;padding:6px 10px;color:#773e31;background:#f2dfb4;
  border:2px solid #b89162;border-radius:4px;
  box-shadow:0 2px 3px #43302760;
  font:700 clamp(10px,3.05vw,15px)/1.15 var(--sans);letter-spacing:.08em;text-align:center;
}
.window-shutter i{
  position:absolute;bottom:3%;left:57%;width:15%;height:9%;
  border:2px solid #d2ac79;border-top-width:4px;border-radius:4px;background:#634c39;
}
.patience-stage{
  background:radial-gradient(ellipse at 46% 15%,#f3e6bf,#c9ac86 79%,#b09a77);
}
.patience-floor{
  position:absolute;inset:75% 0 0;border-top:2px solid #866b4c60;
  background:linear-gradient(#8d694c30,#dbc7a224),url("assets/map/waiting-hall.webp") 16% bottom/cover;
}
.patience-floor::after{
  content:"";position:absolute;left:50%;top:41%;width:26%;height:25%;
  transform:translateX(-50%);border-radius:50%;filter:blur(5px);background:#4a352b63;
}
.patience-visitor{
  position:absolute;left:50%;bottom:8%;height:88%;aspect-ratio:120/152;
  background:url("assets/map/visitor-patience-detail.webp") var(--patience-pose,0%) center/300% 100% no-repeat;
  transform-origin:50% 96%;
  transform:translate(-50%,calc(var(--folder-lift,0)*-4%))
    rotate(calc(var(--folder-lift,0)*-4deg + var(--folder-recoil,0)*4deg))
    scaleY(calc(1 - var(--folder-recoil,0)*.045));
}
.patience-stage[data-pose="slam"]{--patience-pose:50%}
.patience-stage[data-pose="tucked"]{--patience-pose:100%}
.document-review[data-phase="pass"]{--visitor-review:33.333333%}
.document-review:is([data-phase="read"],[data-phase="nod"]){--visitor-review:100%;--clerk-review:66.666667%}
.document-review[data-phase="read"][data-page="turning"]{--clerk-review:33.333333%}
.document-review[data-phase="nod"]{--clerk-review:100%}
.review-packet{
  position:absolute;top:var(--packet-y,67%);left:var(--packet-x,75%);width:clamp(17px,6.5%,29px);
  aspect-ratio:4/5;border:1px solid #9f8a62;border-radius:2px;
  background:repeating-linear-gradient(#fff4d3 0 4px,#bcaf8e 5px,#fff4d3 6px);
  box-shadow:2px 2px #dbc49a,3px 4px #a28b68,3px 5px 4px #39291940;
  opacity:var(--packet-opacity,0);
  transform:translate(-50%,-50%) rotate(var(--packet-turn,-10deg));
}
.document-review:is([data-phase="read"],[data-phase="nod"]) .review-packet{visibility:hidden}

.permit-handoff[data-phase="ready"]{--clerk-review:100%;--visitor-review:100%}
.permit-handoff:is([data-phase="offer"],[data-phase="grab"]){--visitor-review:33.333333%}
.permit-handoff:is([data-phase="look"],[data-phase="cheer"],[data-phase="stow"]){
  --clerk-review:100%;
}
.permit-handoff:is([data-phase="look"],[data-phase="cheer"],[data-phase="stow"]) .review-visitor{
  aspect-ratio:120/152;
  background:url("assets/map/visitor-victory-detail.webp") var(--joy-frame,0%) center/300% 100% no-repeat;
  transform:translate(-50%,calc(var(--celebrate,0)*-6%)) rotate(calc(var(--celebrate,0)*-3deg));
}
.permit-handoff[data-phase="cheer"]{--joy-frame:50%}
.permit-handoff[data-phase="stow"]{--joy-frame:100%}
.permit-handoff:is([data-phase="look"],[data-phase="cheer"],[data-phase="stow"]) .review-packet{visibility:hidden}
.permit-handoff .review-packet::after{
  content:"";position:absolute;inset:53% 16% 16%;border:1px solid #9a4939;border-radius:2px;
  transform:rotate(-13deg);background:#a663441c;
}
.departure-modal{width:min(710px,100%);padding:20px 24px}
.departure-modal .modal-language{margin-bottom:10px}
.departure-modal h2{
  margin:12px 0 0;text-align:center;font-size:clamp(25px,5.8vw,37px);letter-spacing:-.025em;
}
.exit-floor{border:1px solid #998368;border-radius:14px}
.exit-floor .map-visitor.is-turning{opacity:0;transition:opacity .18s linear}
.exit-floor::after{
  content:"";position:absolute;inset:91% 45% 0;z-index:1;pointer-events:none;
  background:linear-gradient(0deg,#fff0bca6,transparent);
}
.exit-sign{
  position:absolute;z-index:1;left:50%;top:85%;transform:translateX(-50%);
  padding:3px 7px;border:1px solid #efdbad;border-radius:999px;
  background:#2b513e;color:#fff8e7;box-shadow:0 2px 5px #3f302c70;
  font:700 clamp(11px,2.25cqw,16px)/1.15 var(--sans);white-space:nowrap;
}
@media(max-width:720px){
  .departure-modal{padding:15px 12px}
}

.ending-modal:has(.loss-result){padding-block:20px 24px}
.ending-modal:has(.loss-result) h2{margin-bottom:14px;font-size:clamp(27px,6vw,39px)}
.ending-modal:has(.loss-result) .ending-stats{margin:16px 0;padding:12px 0}
@media(max-width:720px){
  .ending-modal:has(.loss-result){padding-block:14px 20px}
  .ending-modal:has(.loss-result) .hint-card{margin-top:11px}
  .ending-modal:has(.loss-result) .ending-stats{margin:11px 0;padding:8px 0}
}
.loss-result{
  position:relative;isolation:isolate;overflow:hidden;width:min(100%,310px);height:88px;margin:0 auto 13px;
  border:1px solid #a88d62;border-radius:10px;
}
.loss-result-paper{
  display:grid;place-items:center;
  background:radial-gradient(ellipse at 25% 5%,#fff7de,transparent 75%),linear-gradient(145deg,#f3e3b9,#e5d1a2);
  box-shadow:inset 0 0 0 4px #f7efdaad,inset 0 0 0 5px #ccb382;
}
.loss-mark{position:relative}
.loss-mark strong{
  display:block;padding:6px 11px;color:#a24f3e;border:3px double currentColor;
  font:700 clamp(12px,3.8vw,18px)/1.15 var(--mono);letter-spacing:.07em;transform:rotate(-7deg);
}
.loss-mark span{
  display:none;position:absolute;z-index:1;inset:0 -3px -3px;transform-origin:center bottom;
  border:1px solid #573625;border-radius:5px;box-shadow:0 3px 4px #744e316b;
  background:linear-gradient(110deg,#7c4b32,#bc8f58 48%,#805239);
}
.loss-mark span::before{
  content:"";position:absolute;left:34%;right:34%;bottom:65%;height:36px;border-radius:50% 50% 28% 29%;
  background:radial-gradient(ellipse at 25% 25%,#bd9364,#885735 63%,#583929);
}
.loss-result.is-animating .loss-mark span{
  display:block;opacity:calc(1 - var(--stamp-lift,0));transform:rotate(-7deg)
    translateY(calc(-56px + var(--result-fall,0)*56px - var(--stamp-lift,0)*55px));
}
.loss-result.is-animating:not(.has-impact) .loss-mark strong{visibility:hidden}
.loss-result-table{
  background:linear-gradient(142deg,#c7a27c54,#42281917),
    repeating-linear-gradient(176deg,#99704b 0 10px,#916643 11px,#a47651 13px 17px);
  box-shadow:inset 0 0 15px #3d261f59;
}
.result-folder,.result-folder-shadow{position:absolute;left:50%}
.result-folder-shadow{
  top:49%;width:114px;height:30%;border-radius:50%;background:#40292172;filter:blur(5px);
  transform:translateX(-45%);
}
.result-folder{
  width:104px;height:51px;top:18%;border:1px solid #967243;border-radius:4px 6px 5px 4px;
  background:linear-gradient(155deg,#e4bc77,#d6a460 53%,#c09657);
  transform:translateX(-50%) rotate(-10deg);box-shadow:2px 4px 0 #b6854e,4px 7px 5px #4b332d55;
}
.result-folder::before{
  content:"";position:absolute;top:-6px;right:8px;width:30%;height:7px;
  border:1px solid #967243;border-bottom:0;border-radius:4px 4px 0 0;background:#dbb16e;
}
.result-folder::after{
  content:"";position:absolute;inset:13% 12% auto auto;width:32%;height:25%;border:1px solid #b68b50;
  border-radius:2px;background:repeating-linear-gradient(#e9cea2 0 3px,#ccad7c 4px,#e9cea2 5px);
}
.loss-result.is-animating .result-folder{
  transform:translate(-50%,calc(-96px + var(--result-fall,0)*96px - var(--result-rebound,0)*9px))
    rotate(calc(-28deg + var(--result-fall,0)*18deg + var(--result-rebound,0)*7deg));
}
.loss-result.is-animating .result-folder-shadow{
  opacity:calc(.22 + var(--result-fall,0)*.78 - var(--result-rebound,0)*.17);
}
@media(prefers-reduced-motion:reduce){
  .loss-result .loss-mark span{display:none!important}
  .loss-result .loss-mark strong{visibility:visible!important}
  .loss-result.is-animating .result-folder{transform:translateX(-50%) rotate(-10deg)}
}
.ending-modal:has(.victory-document){padding-block:22px 24px}
.ending-header{
  display:flex;justify-content:space-between;align-items:center;gap:8px 14px;
  margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid #cbd1be;
}
.ending-header .modal-eyebrow,.ending-modal:has(.victory-document) .ending-header .modal-eyebrow{
  margin:0;min-width:0;line-height:1.35;
}
.ending-controls{display:flex;align-items:center;gap:8px;flex:none}
.ending-controls .language-switch button{min-width:34px;min-height:34px;font:700 11px var(--sans)}
.ending-controls .modal-close{
  position:static;width:36px;height:36px;border-radius:var(--control-radius);
  border:1px solid #c8cdbd;background:#f4f3e9;color:var(--ink);
}
.ending-controls .modal-close:hover{background:#e3e8d9}
.ending-modal .ending-stats strong{font:700 clamp(19px,3vw,25px)/1.15 var(--sans);font-variant-numeric:tabular-nums}
.ending-modal .ending-stats span{display:block;color:#51604c;font:700 10px/1.25 var(--sans)}
.ending-modal:has(.victory-document) .ending-stats{margin:16px 0;padding:12px 0}
.ending-modal:has(.victory-document) [data-download]{margin-top:14px}
.ending-modal:has(.victory-document) .found-endings{margin-top:10px}
@media(max-width:720px){
  .ending-controls .language-switch button{min-height:42px}
  .ending-controls .modal-close{width:44px;height:44px}
  .ending-modal:has(.victory-document){padding-block:14px 20px}
  .ending-modal:has(.victory-document) .modal-eyebrow{margin:0 0 10px}
  .ending-modal:has(.victory-document) .ending-stats{margin:12px 0;padding:10px 0}
}
.ending-modal:has(.victory-document) h2{
  margin-bottom:14px;font-size:clamp(27px,6vw,41px);letter-spacing:-.035em;
}
.victory-document{
  position:relative;max-width:370px;margin:0 auto 14px;
  text-align:left;filter:drop-shadow(0 5px 6px #5f492830);
}
.victory-sheet{
  position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;
  align-items:center;gap:10px;padding:17px;border:1px solid #af986a;border-radius:3px 3px 6px 6px;
  background:radial-gradient(ellipse at 14% 0%,#fffae8,transparent 69%),linear-gradient(145deg,#fff3d6,#eee0bd);
}
.victory-sheet::before{
  content:"";position:absolute;inset:5px;border:1px solid #b3986870;border-radius:2px;
  pointer-events:none;
}
.victory-details{min-width:0}
.victory-details .doc-code{
  display:block;margin-bottom:4px;color:#786a48;font:700 9px/1.25 var(--mono);letter-spacing:.07em;
}
.victory-details strong{
  display:block;font:normal clamp(18px,4.4vw,26px)/1.12 var(--serif);color:#314936;
}
.victory-lines{
  display:block;width:77%;height:11px;margin-top:8px;opacity:.65;
  background:linear-gradient(#a4997b 0 1px,transparent 1px 6px,#a4997b 6px 7px,transparent 7px);
}
.victory-document .ending-seal{
  margin:0;padding:5px 6px;border-width:3px;font-size:clamp(9px,2.4vw,13px);
  letter-spacing:.05em;line-height:1.15;white-space:nowrap;box-shadow:none;
}
.celebrating .victory-sheet{clip-path:inset(0 0 var(--paper-covered,78%) 0)}
.victory-fold{display:none}
.celebrating .victory-fold{
  position:absolute;display:block;inset:auto -1px var(--paper-covered,78%);height:19px;
  transform:translateY(60%);opacity:var(--fold-opacity,1);border:1px solid #ad956a;border-radius:5px;
  background:linear-gradient(#e4cea2,#fff2cc 44%,#d7bf95 79%,#ae9468);
  box-shadow:0 3px 5px #58432340;
}
.victory-confetti{
  position:absolute;z-index:2;inset:0 0 auto;height:min(280px,48dvh);
  overflow:hidden;border-radius:inherit;pointer-events:none;
}
.victory-confetti i{
  position:absolute;top:-12px;left:var(--x);width:6px;height:9px;
  border-radius:1px;background:#c08d47;opacity:0;
  --flight:1.02s;--drift:25px;--spin:237deg;
}
.victory-confetti i:nth-child(3n){background:#63816b;--flight:1.16s;--drift:-32px;--spin:-176deg}
.victory-confetti i:nth-child(4n+1){background:#ae6651;width:5px;height:7px;--flight:1.10s;--drift:-19px}
.victory-confetti i:nth-child(5n+2){background:#d0a65a;width:5px;height:5px;border-radius:50%;--drift:15px}
.victory-confetti.is-falling i{
  animation:confetti-fall var(--flight) cubic-bezier(.22,.40,.60,.98) calc(var(--piece)*11ms) both;
}
@keyframes confetti-fall{
  0%{opacity:0;transform:translate(0,0) rotate(0)}
  13%{opacity:.9}
  66%{opacity:.76}
  100%{opacity:0;transform:translate(var(--drift),min(268px,46dvh)) rotate(var(--spin)) rotateY(225deg)}
}
@media(prefers-reduced-motion:reduce){
  .celebrating .victory-sheet{clip-path:none}
  .celebrating .victory-fold,.victory-confetti{display:none}
}

.visitor-label{
  position:absolute;left:calc(100% + 1px);bottom:7%;transform:translateY(50%);
  padding:2px 5px;border-radius:999px;background:#204536;color:#fff6df;border:1px solid #fff0c2;
  font:700 clamp(8px,1.65cqw,11px)/1.1 var(--sans);white-space:nowrap;
}
.visitor-label::before{
  content:"";position:absolute;right:100%;top:50%;width:4px;height:1px;background:#fff0c2;
}
.map-visitor:is([data-at="archive"],[data-at="rest"],[data-at="seven"],[data-at="copy"],[data-at="terminal"]) .visitor-label{
  left:auto;right:calc(100% + 1px);
}
.map-visitor:is([data-at="archive"],[data-at="rest"],[data-at="seven"],[data-at="copy"],[data-at="terminal"]) .visitor-label::before{
  right:auto;left:100%;
}
.visitor-waiting{display:none}
.map-visitor[data-waiting] .visitor-label{
  bottom:3%;background:#f9dfa7;color:#4c3526;border-color:#8b613b;
}
.map-visitor[data-waiting] .visitor-label span:first-child{display:none}
.map-visitor[data-waiting] .visitor-waiting{display:inline}
#map-status{font-weight:700}
.interaction[data-in-hall]{display:none}
.patience-symbol i{
  position:relative;width:16px;height:18px;
  border-block:2px solid currentColor;border-radius:2px;
}
.patience-symbol i::before,.patience-symbol i::after{
  content:"";position:absolute;inset:0;
  clip-path:polygon(0 0,100% 0,100% 18%,61% 50%,100% 82%,100% 100%,0 100%,0 82%,39% 50%,0 18%);
  background:currentColor;
}
.patience-symbol i::after{inset:0 3px;background:#d9e6d3}

/* Shared curves for overlays, dropdown surfaces and their main buttons. */
:root{--surface-radius:16px;--control-radius:9px}
.modal,.audio-panel,.currency-panel,.toast{border-radius:var(--surface-radius)}
.modal::before{border-radius:calc(var(--surface-radius) - 5px)}
.modal-primary,.modal-secondary,.modal-close,.currency-panel select,.sheet-link{border-radius:var(--control-radius)}
.modal-close:hover{background:#e6e8da}
.audio-control>.icon-button{border-radius:var(--control-radius) 0 0 var(--control-radius)}
.audio-control>.audio-settings{border-radius:0 var(--control-radius) var(--control-radius) 0}
.speaker-icon{position:relative;display:block;margin:auto;width:18px;height:16px;color:#38604b}
.speaker-icon::before{
  content:"";position:absolute;inset:0 7px 0 0;background:currentColor;
  clip-path:polygon(0 31%,38% 31%,100% 0,100% 100%,38% 69%,0 69%);
}
.speaker-icon i{
  position:absolute;right:1px;top:3px;width:6px;height:10px;
  border:2px solid currentColor;border-left:0;border-top-color:transparent;border-bottom-color:transparent;border-radius:50%;
}
#sound.muted .speaker-icon{color:#87674f}
#sound.muted .speaker-icon i{display:none}
#sound.muted .speaker-icon::after{
  content:"";position:absolute;right:-2px;top:7px;width:9px;height:1.5px;
  background:currentColor;transform:rotate(-45deg);box-shadow:0 0 0 1px #f3f0e6;
}
.audio-panel .effects-setting{margin:0 0 10px}
.audio-panel .volume-label{margin-top:14px}
.language-switch{border-radius:7px;overflow:hidden}
.language-switch button:focus-visible{outline-offset:-2px}
.hint-card,.document-large,.scene-paper{border-radius:var(--control-radius)}
@media(max-width:720px){
  .map-stop{padding-inline:0}
  .stop-sign{gap:3px;min-height:23px;padding:3px 6px 3px 3px;font-size:clamp(9px,2.62cqw,14px)}
  .stop-sign b{min-width:16px;height:16px;padding:0 2px}
  .map-side-stop .stop-sign{padding:3px 7px}
  .place-sheet{border-radius:var(--surface-radius) var(--surface-radius) 0 0}
  .resource-patience>.patience-symbol{
    position:absolute;display:grid;top:7px;right:6px;width:15px;height:15px;border-radius:4px;
  }
  .patience-symbol i{transform:scale(.64)}
}


/* The floor plan is the main screen. Stops and the case file open in dialogs. */
.site-shell{max-width:none;padding-inline:clamp(12px,2vw,34px)}
.workspace{display:block}
.masthead{height:62px}
.title-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0 13px}
.title-row h1{font-size:clamp(39px,5vw,66px)}
.title-row .eyebrow{margin:0 0 5px}
.resource-bar{min-height:62px;margin-bottom:13px}
.map-case{
  padding:6px 10px;border:1px solid #b8c6ae;border-radius:999px;
  background:#e8edde;color:#345443;font:700 12px var(--sans);white-space:nowrap;
}
.map-case:hover{background:#d9e6d4}
.map-case span{margin-left:4px;font:700 11px var(--mono)}
#floorplan{--standing-height:clamp(30px,10.9cqw,148px)}
body.sheet-open{overflow:hidden}
.place-sheet::backdrop{background:#243a3091}
.place-sheet .interaction,.case-dialog .goal-paper{margin:0;border:0;box-shadow:none}
.sheet-tools{
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:5px;
  margin-bottom:9px;padding-bottom:5px;
}
.sheet-tools>div{display:flex;flex-wrap:wrap;gap:5px}
.sheet-link{
  min-height:33px;padding:5px 9px;border:1px solid #c4cebd;border-radius:8px;
  background:#edf1e5;color:#345443;font:700 11px var(--sans);white-space:nowrap;
}
.sheet-link:hover{background:#dee9d6}
.case-dialog .goal-paper{position:relative;background:#f9f2df}
.case-dialog .modal-close{top:7px;right:8px;min-width:36px;min-height:36px}
.case-dialog .paperclip{right:56px;top:2px;transform:rotate(21deg) scale(.80)}
.case-dialog .goal-paper h2{padding-right:22px}
.case-hint{
  margin:10px 0 0;padding:10px 12px;border-left:3px solid #a7b59b;border-radius:5px;
  background:#e9eddf;color:#364b3d;font:13px/1.5 var(--sans);
}
@media(min-width:721px){
  .place-sheet{
    width:min(590px,calc(100% - 36px));max-height:calc(100dvh - 36px);padding:0;overflow:auto;
    border:1px solid #b7c1b1;border-radius:var(--surface-radius);color:var(--ink);background:#fffdf4;
    box-shadow:0 15px 45px #132b2552;overscroll-behavior:contain;
  }
  .place-sheet .place-art{height:clamp(115px,23dvh,200px)}
  .case-dialog{width:min(470px,calc(100% - 36px))}
  .visit-bar{
    display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(14px,2.2vw,36px);
    align-items:center;margin:12px 0;
  }
  .visit-bar .title-row{padding:0}
  .visit-bar .title-row .eyebrow{display:none}
  .visit-bar .title-note{display:none}
  .visit-bar .title-row h1{white-space:nowrap;font-size:clamp(38px,4.8vw,66px)}
  .visit-bar .resource-bar{margin:0}
  .visit-bar .resource{padding:9px 12px;gap:8px}
  .visit-bar .resource strong{font-size:20px}
  .visit-bar .resource .time-note{display:none}
  .visit-bar .resource-symbol{width:30px;height:30px}
  .visit-bar .patience-track{display:none}
  .visit-bar .journal-button{padding-inline:10px}
}
@media(min-width:981px) and (max-height:900px){
  #floorplan{aspect-ratio:1.84;--standing-height:clamp(30px,9.9cqw,136px)}
}
@media(min-width:721px) and (max-width:980px){
  .visit-bar .resource-symbol{display:none}
  .visit-bar{gap:12px}
  .visit-bar .title-row h1{font-size:clamp(31px,4.4vw,48px)}
}
@media(max-width:720px){
  .masthead{height:57px}
  .title-row{padding:7px 0 9px}
  .title-row h1,:lang(en) .title-row h1{font-size:clamp(37px,9.6vw,59px)}
  .map-case{font-size:11px;padding:5px 8px}
  .place-sheet .interaction{border-radius:var(--surface-radius) var(--surface-radius) 0 0}
}

@media(max-width:720px){
  .queue-display{bottom:calc(100% - 3.6cqw);left:calc(100% + 4.9cqw);gap:2px;padding:3px 4px}
  .queue-display-readout{padding:3px 4px}
}

/* Keep the map controls, dialogs, and their animations in the fullscreen document. */
:root.fullscreen-game{background:var(--paper)}
:root.fullscreen-game .version-label{display:none}
:root.fullscreen-game .map-frame{margin-inline:auto}
.fullscreen-button{
  display:grid;place-items:center;flex:none;width:35px;height:35px;padding:0;
  border-radius:var(--control-radius);background:#efeee3;color:#345744;
}
.fullscreen-button:hover,.fullscreen-button[aria-pressed="true"]{background:#dce7d7}
.fullscreen-icon{position:relative;display:block;width:15px;height:15px}
.fullscreen-icon i{position:absolute;width:6px;height:6px;border:solid currentColor;border-width:2px 0 0 2px;border-radius:1px 0 0 0}
.fullscreen-icon i:nth-child(1){top:0;left:0}
.fullscreen-icon i:nth-child(2){top:0;right:0;rotate:90deg}
.fullscreen-icon i:nth-child(3){bottom:0;right:0;rotate:180deg}
.fullscreen-icon i:nth-child(4){bottom:0;left:0;rotate:270deg}
.fullscreen-button[aria-pressed="true"] .fullscreen-icon i{scale:-1}
.counter-visuals,.counter-controls,.ending-visuals,.ending-details{min-width:0}
.counter-controls [data-scene-title]{text-wrap:balance}
.counter-visuals>.submission-stage[hidden],.counter-visuals>.counter-art[hidden]{display:none}
.counter-visuals:has(.submission-stage:not([hidden])) + .counter-controls [data-scene-title]{min-height:2.1em}

@media(min-width:721px){
  :root.fullscreen-game .map-frame{width:min(100%,calc(max(300px,100dvh - 198px) * 1.84))}
  :root.fullscreen-game #floorplan{aspect-ratio:1.84}
  .place-sheet,.modal{--surface-radius:25px}
  .place-sheet:not(.case-dialog){
    width:min(1120px,calc(100% - 48px));border-color:#bfc9b1;
    box-shadow:0 24px 72px #16291c65;
  }
  .place-sheet .interaction{
    display:grid;grid-template-columns:minmax(0,.91fr) minmax(0,1.09fr);grid-template-rows:auto auto 1fr;
    grid-template-areas:"tools tools" "art details" "art procedures";
    column-gap:clamp(15px,2.3vw,32px);row-gap:14px;padding:clamp(16px,2.1vw,28px);
  }
  .place-sheet .sheet-tools{
    grid-area:tools;margin:0;padding:0 0 12px;border-bottom:1px solid #dedfce;
    position:sticky;top:0;z-index:3;background:inherit;
  }
  .place-sheet .sheet-link{min-height:37px;padding-inline:12px;font-size:12px}
  .place-sheet .place-art{
    grid-area:art;height:auto;min-height:280px;margin:0;border-radius:16px;border-color:#c2ad86;
    background-position:center 38%;background-size:cover;
  }
  .place-details{grid-area:details;min-width:0}
  .place-procedures{grid-area:procedures;min-width:0}
  .place-sheet .interaction-top{margin-bottom:9px}
  .place-sheet .person-row h2{font-size:clamp(28px,3.3vw,46px);line-height:1.03;letter-spacing:-.035em}
  .place-sheet .place-greeting{margin:9px 0 0;padding:5px 9px}
  .place-sheet .place-greeting .reply-portrait{flex-basis:36px;height:37px}
  .place-sheet .speech{margin:9px 0;padding:8px 11px;font-size:16px;line-height:1.34}
  .place-sheet .place-note{margin:9px 0 0;padding-top:8px;font-size:12px;line-height:1.4}
  .place-sheet .actions{gap:10px}
  .place-sheet .action-button{padding:9px 12px}
  .place-sheet .action-note,.place-sheet .action-reason,.place-sheet .action-warning{font-size:12px;line-height:1.35}
  .counter-modal{
    width:min(900px,100%);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;
    gap:12px clamp(18px,2.8vw,34px);padding:20px 27px 27px;
  }
  .counter-modal>.modal-language{grid-column:1/-1;margin-bottom:0}
  .counter-modal :is(.counter-art,.submission-stage){
    height:auto;aspect-ratio:1.28;min-height:180px;max-height:52dvh;
    border-radius:14px;background-position:center 36%;
  }
  .counter-modal .counter-controls h2{
    margin:0 0 14px;min-height:auto;font-size:clamp(27px,3.2vw,41px);line-height:1.06;
  }
  .counter-controls .paper-slot:first-of-type,.counter-controls .coffee-dispenser{margin-top:0}
  .modal[data-layout="welcome"],.modal[data-layout="rules"]{width:min(840px,100%)}
  .modal[data-layout="welcome"] .intro-stamp{margin:2px 0 14px}
  .modal[data-layout="rules"] .rule-list{display:grid;grid-template-columns:1fr 1fr;gap:0 24px;margin:12px 0}
  .modal[data-layout="rules"] .rule-callout{margin:12px 0}
  .modal[data-layout="rules"] h2,.modal[data-layout="welcome"] h2{margin-bottom:12px}
  .modal[data-layout="journal"]{width:min(820px,100%)}
  .modal[data-layout="journal"] .journal-list{display:grid;grid-template-columns:1fr 1fr;gap:0 22px}
  .ending-modal{
    display:grid;grid-template-columns:minmax(0,1.04fr) minmax(0,1fr);align-items:center;
    gap:9px clamp(19px,3vw,40px);width:min(925px,100%);text-align:left;
  }
  .ending-modal>.ending-header,.ending-modal>h2{grid-column:1/-1}
  .ending-modal>.ending-header{margin-bottom:0}
  .ending-modal .victory-document,.ending-modal .loss-result{width:100%;max-width:none}
  .ending-modal .ending-visuals .ending-name{text-align:center;margin:0}
  .ending-modal .ending-details>.lead{margin-top:0}
  .ending-modal .ending-details .ending-stats{margin:12px 0}
  .ending-modal .ending-details .modal-primary{margin-top:12px}
  .ending-modal .ending-details .found-endings{margin-block:8px}
  .ending-modal .ending-details .restart-buttons{margin-top:8px;flex-wrap:wrap}
  .ending-modal .ending-details .restart-buttons>*{margin-top:0}
  .departure-modal{width:min(710px,calc(145dvh - 145px),100%)}
}
@media(min-width:721px) and (max-height:660px){
  .modal-backdrop{padding:12px}
  .modal,.place-sheet{max-height:calc(100dvh - 24px)}
  .place-sheet .interaction{row-gap:10px}
  .place-sheet .place-art{min-height:235px}
  .place-sheet .place-greeting .reply-portrait{flex-basis:30px;height:31px}
  .place-sheet .speech{font-size:15px;margin:7px 0}
  .place-sheet .person-row h2{font-size:clamp(27px,3vw,38px)}
  .place-sheet .interaction-top{margin-bottom:6px}
  .place-sheet .action-note,.place-sheet .action-reason,.place-sheet .action-warning{margin-top:3px}
  .place-sheet .actions{gap:7px}
  .case-dialog .goal-paper{padding:15px 18px}
}
@media(max-width:720px){
  .fullscreen-button{width:36px;height:41px}
  .header-tools{gap:5px}
  .brand{min-width:0}
  .place-sheet,.place-sheet .interaction,.modal,.modal::before,.audio-panel,.currency-panel{border-radius:0}
  .place-sheet .place-details{display:contents}
  .place-sheet .interaction-top{order:-1}
  .place-sheet .sheet-tools{order:-2}
  .place-sheet .place-note{order:1}
  .place-sheet .place-art{height:clamp(125px,24dvh,185px);background-position:center 37%;border-radius:5px}
  .counter-visuals .counter-art{background-position:center 35%}
}
@media(max-width:360px){
  .fullscreen-button{width:32px}
  .header-tools{gap:3px}
  .masthead .brand{gap:5px}
  .masthead .brand-icon{flex:none}
}
@media(min-width:721px) and (max-height:660px){
  .place-sheet .interaction{padding:14px 18px}
  .place-sheet .sheet-tools{padding-bottom:7px}
  .place-sheet .sheet-link{min-height:32px}
  .place-sheet .place-greeting{margin-top:6px}
  .place-sheet .place-note{margin-top:5px;padding-top:5px}
  .place-sheet .place-procedures .actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .place-sheet .actions>:is(.notice-clause,.board-notebook,.aftergame),.place-sheet .actions>:only-child{grid-column:1/-1}
  .place-sheet .action-button{padding:7px 9px}
  .place-sheet .action-costs{margin-top:5px}
  .modal[data-layout="rules"]{padding:20px 26px 22px}
  .modal[data-layout="rules"] .modal-language{margin:0 38px 7px 0}
  .modal[data-layout="rules"] .modal-eyebrow{margin-bottom:7px}
  .modal[data-layout="rules"] h2{font-size:34px}
  .modal[data-layout="rules"] h2 br{display:none}
  .modal[data-layout="rules"] .lead{margin:9px 0}
  .modal[data-layout="rules"] .rule-list{line-height:1.45}
  .modal[data-layout="rules"] .modal-primary{margin-top:10px;padding-block:12px}
}
@media(min-width:721px){
  :root.fullscreen-game .map-frame{width:min(100%,calc(max(300px,100dvh - 230px) * 1.84))}
}

/* The visit controls read as one compact instrument panel. */
.masthead{height:60px;border-bottom-color:#dad5c4}
.header-tools{gap:6px}
.header-tools .language-switch,.audio-control,.fullscreen-button,#help{
  height:38px;border:1px solid #d8d4c2;border-radius:11px;background:#f9f6ea;color:#304c41;
}
.header-tools .language-switch{display:flex;align-items:stretch;gap:2px;padding:3px}
.header-tools .language-switch button{
  min-width:35px;padding:0 5px;border:0;border-radius:7px;
  background:transparent;color:#4c6054;font:700 11px/1 var(--sans);
}
.header-tools .language-switch button[aria-pressed="true"]{background:#29493d;color:#fff6df}
.header-tools .language-switch button:not([aria-pressed="true"]):hover{background:#e7e8d8}
.header-tools :is(.language-switch button,#sound,#audio-settings,.fullscreen-button,#help):focus-visible{
  outline:2px solid #9c6834;outline-offset:2px;
}
.audio-control{padding:3px;gap:1px}
.audio-control #sound,.audio-control>.audio-settings{
  display:grid;place-items:center;width:32px;height:30px;border:0;border-radius:7px;padding:0;background:transparent;
}
.audio-control #sound{padding-bottom:4px}
.audio-control #sound.playing{background:#dbe6d6}
.audio-control #sound:hover,.audio-control>.audio-settings:hover,.audio-control>.audio-settings[aria-expanded="true"],
.fullscreen-button:hover,.fullscreen-button[aria-pressed="true"],#help:hover{background:#e4e9d9}
.audio-control #audio-meter{bottom:3px}
.audio-control .control-chevron{
  display:block;width:6px;height:6px;border:solid currentColor;border-width:0 1.5px 1.5px 0;
  transform:translateY(-2px) rotate(45deg);
}
.audio-control>.audio-settings[aria-expanded="true"] .control-chevron{transform:translateY(2px) rotate(225deg)}
.fullscreen-button{width:41px}
#help{display:flex;align-items:center;gap:7px;padding:0 10px;font:700 12px/1 var(--sans);white-space:nowrap}
#help span{display:block;margin:0;padding:0;border:none;font:inherit}
#help .help-icon{
  display:grid;place-items:center;width:17px;height:17px;
  border:1.5px solid currentColor;border-radius:50%;font-size:11px;
}
.visit-bar .title-row{margin:0}
.visit-bar .resource-bar{
  --resource-border:#aec6ae38;
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;
  min-width:0;min-height:58px;padding:4px;gap:0;margin:0;
  border:1px solid #2a4136;border-radius:15px;background:#294439;
  box-shadow:0 2px 0 #132b25,0 5px 11px #22392d27;color:#fff2d8;
}
.visit-bar .resource{
  position:relative;display:flex;align-items:center;justify-content:flex-start;gap:10px;min-height:0;
  padding:6px 10px;background:transparent;border:0;border-inline-end:1px solid var(--resource-border);
  border-radius:0;box-shadow:none;color:inherit;
}
.visit-bar .resource>div:not(.time-note,.patience-track){min-width:0}
.visit-bar .resource-symbol,.visit-bar .resource-money>.resource-symbol{
  position:static;display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;
  border:1px solid #dcd3a63b;border-radius:9px;background:#fff3c914;color:var(--symbol,#edd7a4);
}
.visit-bar .resource-money{--symbol:#f0c988}
.visit-bar .resource-patience{--symbol:#bde1aa}
.clock-symbol i{
  position:relative;width:15px;height:15px;border:1.65px solid currentColor;border-radius:50%;
}
.clock-symbol i::before,.clock-symbol i::after{content:"";position:absolute;left:50%;top:50%;background:currentColor;border-radius:1px}
.clock-symbol i::before{width:1.5px;height:5px;transform:translate(-50%,-100%)}
.clock-symbol i::after{width:4px;height:1.5px;transform:translateY(-50%)}
.wallet-symbol i{position:relative;width:15px;height:12px;border:1.5px solid currentColor;border-radius:3px}
.wallet-symbol i::after{
  content:"";position:absolute;right:-2px;top:3px;width:6px;height:4px;border:1px solid currentColor;border-radius:2px;background:#496250;
}
.visit-bar .patience-symbol i{width:13px;height:15px;border-width:1.5px;transform:none}
.visit-bar .patience-symbol i::after{inset:0 2px;background:#405347}
.visit-bar .resource-label,.visit-bar .resource-money .resource-label{
  padding:0;margin:0 0 3px;color:#d8dfc1;font:700 10px/1.15 var(--sans);letter-spacing:.055em;white-space:nowrap;
}
.visit-bar .resource strong,.visit-bar .resource-money strong{
  color:#fff1d3;font:700 clamp(21px,2vw,28px)/1 var(--sans);font-variant-numeric:tabular-nums;
}
.visit-bar .resource strong small{color:#dbe3c8;font-size:11px}
.visit-bar .resource.danger strong,.visit-bar .resource.danger small{color:#ffd5aa}
.visit-bar .resource-money .currency-button{
  position:static;display:inline-flex;align-items:center;gap:4px;min-height:24px;
  margin:-5px 0 -4px;padding:2px 5px;border:1px solid #efd19c70;border-radius:5px;
  background:#e3c0801f;color:#ffdfaa;font:700 10px/1 var(--sans);letter-spacing:0;
}
.currency-button::after{content:"";width:4px;height:4px;border:solid currentColor;border-width:0 1px 1px 0;transform:translateY(-1px) rotate(45deg)}
.visit-bar .resource-money .currency-button:hover,.visit-bar .currency-button[aria-expanded="true"]{background:#f4d49b42}
.visit-bar .resource-money.money-long strong{font-size:clamp(16px,1.6vw,23px)}
.visit-bar .resource-money.money-very-long strong{font-size:clamp(14px,1.3vw,19px)}
.visit-bar .patience-track{
  display:block;position:absolute;bottom:6px;left:50px;right:12px;width:auto;height:2.5px;
  margin:0;background:#fff5cc2c;
}
.visit-bar .resource-patience{padding-bottom:10px}
.visit-bar .patience-track i{background:#c1dea1}
.visit-bar .resource.danger .patience-track i{background:#f3bd87}
.visit-bar .journal-button{
  position:relative;inset:auto;grid-column:auto;align-self:center;justify-self:stretch;min-height:40px;
  gap:7px;padding:5px 9px;margin:0 1px 0 5px;border:1px solid transparent;border-radius:8px;
  background:transparent;color:#fff1d8;font:700 12px/1.2 var(--sans);
}
.visit-bar .journal-button:hover{background:#fff5ce1b;border-color:#f2e2ba45}
.journal-icon{position:relative;display:block;width:14px;height:15px;border:1.4px solid #ddcda7;border-radius:2px}
.journal-icon::before{content:"";position:absolute;left:2px;top:0;bottom:0;width:1px;background:#ddcda7}
.journal-icon::after{content:"";position:absolute;left:5px;right:2px;top:4px;height:1px;background:#ddcda7;box-shadow:0 3px #ddcda7}
.visit-bar .journal-count{
  min-width:17px;height:17px;background:#f5ddaa;color:#2c473b;font:700 10px/1 var(--sans);
}
.audio-panel,.currency-panel{color:var(--ink)}
@media(min-width:721px) and (max-width:980px){
  .visit-bar .resource{gap:6px;padding-inline:7px}
  .visit-bar .resource-symbol,.visit-bar .resource-money>.resource-symbol{width:24px;height:24px;flex-basis:24px}
  .visit-bar .resource strong,.visit-bar .resource-money strong{font-size:21px}
  .visit-bar .patience-track{left:37px}
  .visit-bar .journal-label{display:none}
}
@media(max-width:720px){
  .masthead{height:55px}
  .header-tools{gap:4px}
  .header-tools .language-switch,.audio-control,.fullscreen-button,#help{height:42px}
  .header-tools .language-switch button{min-width:25px}
  .audio-control #sound,.audio-control>.audio-settings{width:37px;height:34px}
  .fullscreen-button,#help{width:42px}
  #help{padding:0;justify-content:center}
  #help .help-label{display:none}
  .visit-bar .title-row .eyebrow{display:none}
  .visit-bar .title-row{padding:9px 0 10px}
  .visit-bar .resource-bar{grid-template-columns:.9fr 1.19fr 1.02fr auto;min-height:62px;margin-bottom:11px;border-radius:12px}
  .visit-bar .resource{gap:0;padding:10px 6px}
  .visit-bar .resource-symbol,.visit-bar .resource-money>.resource-symbol{display:none}
  .visit-bar .resource-label,.visit-bar .resource-money .resource-label{font-size:9px;letter-spacing:.025em}
  .visit-bar .resource strong,.visit-bar .resource-money strong{font-size:clamp(18px,5.3vw,24px)}
  .visit-bar .resource-money .resource-label{gap:3px}
  .visit-bar .resource-money .currency-button{font-size:8px;padding-inline:3px;gap:2px;min-height:23px}
  .visit-bar .resource-patience{padding-bottom:13px}
  .visit-bar .patience-track{left:6px;right:10px;bottom:8px}
  .visit-bar .journal-button{width:40px;min-height:44px;justify-content:center;gap:3px;margin-left:1px;padding:0}
  .visit-bar .journal-label{display:none}
  .visit-bar .journal-count{min-width:13px;height:14px;font-size:9px}
}
@media(max-width:359px){
  .masthead .brand>span+span{max-width:56px;font-size:6px;letter-spacing:0}
  .header-tools{gap:3px}
  .header-tools .language-switch button{min-width:22px}
  .audio-control #sound,.audio-control>.audio-settings{width:34px}
  .fullscreen-button,#help{width:37px}
  .visit-bar .resource-label,.visit-bar .resource-money .resource-label{font-size:8px}
  .visit-bar .resource-money .currency-button{padding-inline:2px}
  .visit-bar .resource{padding-inline:4px}
}
.queue-guest.at-counter span{animation:queue-counter-shift 4.1s ease-in-out infinite}
.queue-paused .queue-guest.at-counter span{animation-play-state:paused}
@keyframes queue-counter-shift{
  0%,65%,100%{translate:0 0}
  78%,90%{translate:0 -1.8%}
}

.map-tools{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:wrap}
.map-tools .map-case[hidden],.visit-deadlines[hidden],.window-hours[hidden]{display:none}
.visit-deadlines{
  display:flex;justify-content:space-between;gap:4px 14px;flex-wrap:wrap;
  padding:7px 15px;border-bottom:1px solid #d5d3be;background:#e9eadb;color:#3e5648;
  font:700 12px/1.25 var(--sans);
}
.deadline-alert{color:#8d3e29}
.ticket-alert,.cash-alert{pointer-events:auto;flex:0 0 auto;min-height:28px;font-size:12px}
@media(max-width:720px){.ticket-alert,.cash-alert{min-height:44px}}
.window-hours{
  position:absolute;left:50%;bottom:0;transform:translate(-50%,35%);z-index:2;
  padding:3px 6px;border-radius:8px;background:#f6d8aa;color:#643f26;
  font:700 clamp(8px,1.1cqw,12px)/1.08 var(--sans);white-space:nowrap;
}
.has-window-hours .busy-label{bottom:calc(16% + 23px)}
.schedule-list{list-style:none;margin:12px 0 0;padding:0}
.schedule-list li{
  display:grid;grid-template-columns:minmax(95px,.7fr) 2fr;gap:8px;
  padding:10px 0;border-top:1px solid #c9ccb9;
  color:#435a4c;font:14px/1.38 var(--sans);
}
.schedule-list strong{color:#2c493b}
@media(max-width:720px){
  .visit-deadlines{padding:7px 9px;font-size:11px}
  .schedule-list li{grid-template-columns:1fr;gap:3px;font-size:13px}
}

/* Character size follows the floor and the same standing sprite scale. */
.floorplan,#floorplan{--standing-height:clamp(30px,9.9cqw,136px)}
.map-actor:is(.actor-info,.actor-archive,.actor-cash,.actor-seven){
  width:auto;height:calc(var(--standing-height)*.66);aspect-ratio:.98;
}
.map-actor:is(.actor-board,.actor-terminal,.actor-rest){height:calc(var(--standing-height)*1.02)}
.queue-guest[data-seat="skeleton"]{height:var(--standing-height)}
.queue-guest,.map-visitor{z-index:var(--walker-depth,2)}
.map-stop{z-index:90}
.queue-reply{z-index:95}
.map-visitor{pointer-events:none}
.map-visitor[data-at="seven"] .visitor-label{bottom:10%;right:calc(100% - 5px)}

/* Mouth and gesture coordinates follow the uncropped illustration on every screen. */
.clerk-portrait,.portrait-gesture{position:absolute;inset:0;pointer-events:none}
.portrait-gesture{
  background:var(--counter-art) 0 0/100% 100% no-repeat;opacity:0;
  mask-image:radial-gradient(ellipse var(--hand-w,14%) var(--hand-h,14%) at var(--hand-x) var(--hand-y),#000 51%,transparent 100%);
}
.clerk-portrait.is-greeting .portrait-gesture{animation:portrait-gesture .98s ease-in-out .11s}
@keyframes portrait-gesture{
  0%,100%{opacity:0;background-position:0 0}
  24%{opacity:1;background-position:var(--hand-dx,1px) -2px}
  53%{opacity:1;background-position:var(--hand-dx,1px) var(--hand-dy,3px)}
  78%{opacity:1;background-position:0 0}
}
.portrait-mouth{
  position:absolute;left:var(--mouth-left);top:var(--mouth-top);
  width:var(--mouth-width);height:var(--mouth-height);
}
.portrait-mouth::before,.portrait-mouth::after{
  content:"";position:absolute;inset:0;
  background:url("assets/windows/mouth-poses.webp") var(--mouth-column) var(--mouth-row)/400% 400% no-repeat;
}
.portrait-mouth::before{opacity:var(--mouth-open,0)}
.portrait-mouth::after{opacity:var(--mouth-round,0);background-position-y:var(--round-row)}
/* The crop positions match the original illustration, including each face's angle. */
[data-scene="info"]{--mouth-left:44.27083%;--mouth-top:31.05469%;--mouth-width:13.28125%;--mouth-height:14.84375%;--mouth-column:0%;--mouth-row:0%;--round-row:66.66667%;--hand-x:37.6%;--hand-y:54%}
[data-scene="copy"]{--mouth-left:37.5%;--mouth-top:30.66406%;--mouth-width:13.28125%;--mouth-height:14.84375%;--mouth-column:33.33333%;--mouth-row:0%;--round-row:66.66667%;--hand-x:47%;--hand-y:70%;--hand-w:21%;--hand-h:20%}
[data-scene="archive"]{--mouth-left:50.52083%;--mouth-top:31.44531%;--mouth-width:13.02083%;--mouth-height:14.84375%;--mouth-column:66.66667%;--mouth-row:0%;--round-row:66.66667%;--hand-x:57.2%;--hand-y:71%;--hand-w:21%;--hand-h:20%}
[data-scene="cash"]{--mouth-left:35.61198%;--mouth-top:29.58984%;--mouth-width:15.36458%;--mouth-height:17.1875%;--mouth-column:100%;--mouth-row:0%;--round-row:66.66667%;--hand-x:47%;--hand-y:73.7%}
[data-scene="seven"]{--mouth-left:44.53125%;--mouth-top:30.07813%;--mouth-width:12.5%;--mouth-height:14.0625%;--mouth-column:0%;--mouth-row:33.33333%;--round-row:100%;--hand-x:47%;--hand-y:63%;--hand-w:12%}
[data-scene="board"]{--mouth-left:44.33594%;--mouth-top:25.78125%;--mouth-width:7.8125%;--mouth-height:8.78906%;--mouth-column:33.33333%;--mouth-row:33.33333%;--round-row:100%;--hand-x:56.2%;--hand-y:35%;--hand-w:10%}
[data-scene="terminal"]{--mouth-left:40.75521%;--mouth-top:19.33594%;--mouth-width:11.19792%;--mouth-height:12.5%;--mouth-column:66.66667%;--mouth-row:33.33333%;--round-row:100%;--hand-x:53.5%;--hand-y:36%;--hand-w:10%}
[data-scene="rest"]{--mouth-left:28.25521%;--mouth-top:22.26563%;--mouth-width:12.5%;--mouth-height:14.0625%;--mouth-column:100%;--mouth-row:33.33333%;--round-row:100%;--hand-x:36.5%;--hand-y:47.5%;--hand-w:12%}
@media(prefers-reduced-motion:reduce){
  .clerk-portrait.is-greeting .portrait-gesture{animation:none}
}
.place-greeting{font:700 15px/1.4 var(--sans);min-height:0;padding:11px 13px}
.modal h2,.place-sheet .person-row h2,.case-dialog h2{font-family:var(--serif);letter-spacing:-.034em}
.counter-referrals{
  padding:11px 12px;border:1px solid #d4bc8a;border-radius:10px;
  background:#f9edcf;color:#553e28;
}
.counter-referrals>strong{font:700 15px/1.2 var(--sans)}
.counter-referrals>p{margin:5px 0 8px;font:13px/1.35 var(--sans)}
.counter-referrals>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}
.referral-button{
  display:flex;justify-content:space-between;align-items:center;gap:4px;
  min-height:36px;padding:5px 7px;border:1px solid #dbbf88;border-radius:6px;
  background:#fff8e6;text-align:left;font:700 11px/1.2 var(--sans);
}
.referral-button:hover{background:#f7deb0}
.visit-deadlines>strong{color:#334f41}
#fullscreen-folder{display:none}
@media(min-width:721px){
  #place-sheet.place-sheet{width:min(1220px,calc(100% - 38px))}
  .place-sheet .place-art{min-height:330px}
  .place-sheet .actions>.counter-referrals{grid-column:1/-1}
}
@media(min-width:721px) and (max-height:670px){
  .place-sheet .place-art{min-height:245px}
}
@media(max-width:720px){
  .place-sheet .place-art{height:clamp(150px,31dvh,230px)}
  .place-greeting{font-size:14px}
  .referral-button{min-height:41px}
}
.place-sheet .place-art{
  position:relative;isolation:isolate;overflow:hidden;align-self:center;
  width:100%;height:auto;min-height:0;aspect-ratio:3/2;
  background-size:100% 100%;background-position:center;
}

/* In fullscreen the floor is the background and controls float above its edges. */
:root.fullscreen-game .site-shell{padding:0}
:root.fullscreen-game body{overflow:hidden;background:#504534}
:root.fullscreen-game .map-frame{
  position:fixed;inset:0;width:auto;max-width:none;margin:0;border:0;border-radius:0;background:#574637;
}
:root.fullscreen-game #floorplan{
  position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;
}
:root.fullscreen-game .masthead{
  position:fixed;top:max(10px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));
  z-index:110;height:auto;border:0;padding:0;pointer-events:none;
}
:root.fullscreen-game .brand,:root.fullscreen-game .title-row,
:root.fullscreen-game .folder-section,:root.fullscreen-game .page-footer{display:none}
:root.fullscreen-game .header-tools{pointer-events:auto}
:root.fullscreen-game .modal-backdrop{z-index:120}
:root.fullscreen-game .header-tools>button{box-shadow:0 2px 8px #35271b55}
:root.fullscreen-game .visit-bar{
  display:block;position:fixed;left:max(12px,env(safe-area-inset-left));
  top:max(10px,env(safe-area-inset-top));z-index:109;width:min(48vw,575px);margin:0;
}
:root.fullscreen-game .resource-bar{min-height:48px;background:#243e33f2}
:root.fullscreen-game .map-frame .panel-heading{
  position:absolute;bottom:max(12px,env(safe-area-inset-bottom));left:max(12px,env(safe-area-inset-left));
  min-height:0;z-index:101;border:0;padding:0;
}
:root.fullscreen-game .panel-heading>span{display:none}
:root.fullscreen-game #fullscreen-folder{display:block}
:root.fullscreen-game .map-case{background:#f9eed7;min-height:35px;box-shadow:0 2px 9px #30271f60}
:root.fullscreen-game .map-caption{display:none}
:root.fullscreen-game .visit-deadlines{
  position:absolute;right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));
  max-width:min(42vw,430px);z-index:100;border:0;border-radius:9px;
  color:#f8ebd3;background:#293e34eb;pointer-events:none;
}
:root.fullscreen-game .visit-deadlines>strong{color:#f1d9a3}
:root.fullscreen-game .deadline-alert{color:#ffd2ab}
@media(max-width:720px){
  :root.fullscreen-game .visit-bar{
    top:calc(max(10px,env(safe-area-inset-top)) + 49px);right:12px;width:auto;
  }
  :root.fullscreen-game .visit-deadlines{
    left:12px;right:12px;bottom:calc(max(12px,env(safe-area-inset-bottom)) + 43px);max-width:none;
  }
}
@media(max-width:720px) and (orientation:portrait){
  :root.fullscreen-game .visit-deadlines{
    bottom:max(12dvh,calc(env(safe-area-inset-bottom) + 77px));
  }
  :root.fullscreen-game .visit-deadlines:has(.ticket-alert){
    right:auto;
    max-width:calc(100% - 24px);padding:0;background:transparent;
  }
  :root.fullscreen-game .visit-deadlines:has(.ticket-alert)>:not(.ticket-alert,.cash-alert){display:none}
}
.fullscreen-pan-help{display:none}
@media(orientation:portrait){
  :root.fullscreen-game #floorplan{
    right:auto;width:max(100%,calc(100dvh * 1.5));height:100%;touch-action:pan-x;
  }
  :root.fullscreen-game .map-frame{overflow-x:auto;overflow-y:hidden;scrollbar-width:none;overscroll-behavior-x:contain}
  :root.fullscreen-game .map-frame :is(.panel-heading,.visit-deadlines){position:fixed}
  :root.fullscreen-game .fullscreen-pan-help{
    display:block;position:fixed;z-index:100;right:12px;bottom:16px;pointer-events:none;
    padding:5px 7px;border-radius:7px;background:#293e34eb;color:#fff0d1;font:700 10px/1 var(--sans);
  }
}
.cinema-backdrop{padding:0;background:#312c23;backdrop-filter:none}
.cinema-backdrop .departure-modal{
  width:100vw;height:100dvh;max-width:none;max-height:none;padding:0;border:0;border-radius:0;
  overflow:hidden;background:#312c23;box-shadow:none;
}
.cinema-backdrop .departure-modal::before,.cinema-backdrop .modal-language{display:none}
.cinema-backdrop .exit-floor{width:100%;height:100%;aspect-ratio:auto;border:0;border-radius:0}
.cinema-backdrop .departure-modal h2{
  position:absolute;left:50%;bottom:max(14px,env(safe-area-inset-bottom));z-index:102;
  width:max-content;max-width:92vw;transform:translateX(-50%);margin:0;
  padding:8px 17px;border:1px solid #dcbb85;border-radius:999px;
  background:#2b493be8;color:#fff2d3;font-size:clamp(22px,3vw,38px);
}
@media(orientation:portrait){
  .cinema-backdrop .departure-modal{
    background:radial-gradient(ellipse at center,#b88854,#403429 80%);
  }
  .cinema-backdrop .exit-floor{
    position:absolute;top:50%;height:auto;aspect-ratio:3/2;transform:translateY(-50%);
  }
}
@media(min-width:721px){
  :root.fullscreen-game .resource-bar{min-height:0;height:47px;padding:2px 4px}
  :root.fullscreen-game .resource{padding-block:3px;min-height:0}
  :root.fullscreen-game .resource-label{font-size:9px;margin-bottom:2px}
  :root.fullscreen-game .resource strong{font-size:20px}
  :root.fullscreen-game .resource-patience{padding-bottom:7px}
  :root.fullscreen-game .patience-track{bottom:3px}
  :root.fullscreen-game .journal-button{min-height:34px}
}
.exit-film,.exit-foyer{position:absolute;inset:0}
.exit-foyer{
  --standing-height:clamp(95px,28dvh,310px);
  background:#b38a58 url("assets/map/exit-foyer.webp") center / cover no-repeat;
  opacity:0;visibility:hidden;overflow:hidden;
}
.exit-film.at-door .exit-foyer{opacity:1;visibility:visible;transition:opacity .38s ease-out}
.exit-foyer .map-visitor{transform:translate(-50%,-96%) scale(var(--exit-scale,1));transform-origin:50% 98%}
.exit-film.at-door .exit-floor .map-visitor{visibility:hidden}
@media(prefers-reduced-motion:no-preference){
  .exit-film.at-door .exit-foyer::after{
    content:"";position:absolute;inset:0;pointer-events:none;
    background:radial-gradient(ellipse at 50% 42%,#fff3c420 4%,transparent 67%,#3a281b48);
  }
}
