:root{color-scheme:light;--burgundy:#913852;--cream:#f1eee0;--ink:#201d18;--green:#628d24;--red:#bb3d23;--font:'Arial Black','Trebuchet MS',Arial,sans-serif;--chars:none;--furniture:none}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{font-family:var(--font);font-size:16px;background:#83a12e;color:var(--ink);-webkit-tap-highlight-color:transparent}button,select,input{font:inherit}button{cursor:pointer;touch-action:manipulation;color:inherit}button:disabled{cursor:not-allowed;filter:grayscale(.7);opacity:.5}button:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #22e7ff;outline-offset:3px}h1,h2,h3,p{margin:0}[hidden]{display:none!important}.game{width:100%;height:100dvh;position:relative;overflow:hidden;isolation:isolate;background:#88a237}.awning{height:76px;position:absolute;z-index:50;top:0;left:14%;right:0;display:flex;align-items:flex-start;gap:18px;padding:7px 23px 0 17px;font-family:var(--font);color:white;filter:drop-shadow(0 2px 1px #33211580);background:repeating-linear-gradient(90deg,#853049 0px,#853049 74px,#9e5266 75px,#a26978 78px,#9e5266 82px,#9e5266 155px,#a56b7b 156px,#853049 160px);border-radius:0 0 30px 22px;border-bottom:3px solid #d1bfc1;text-shadow:1px 2px #653141}.awning::after{content:'';position:absolute;top:54px;left:0;right:0;height:21px;background:repeating-radial-gradient(ellipse at top,#0000 0 30px,#0000 31px);pointer-events:none}.zc-button{position:absolute;right:calc(100% + 34px);top:14px;width:62px;height:52px;border:4px solid #fff;border-radius:50%;background:linear-gradient(#a8cb83,#396b36);outline:2px solid #324b2d;box-shadow:0 2px 0 #254525;font-family:var(--font);font-size:30px;font-style:italic;letter-spacing:-4px;color:#fff;line-height:1;text-shadow:2px 2px #376b38}.cafe-title{white-space:nowrap;min-width:177px;font-size:21px;line-height:1.1}.cafe-title strong{font-size:34px;margin-left:5px}.stars{display:block;color:#edae24;font-size:22px;letter-spacing:-1px;line-height:1.05;text-shadow:-1px -1px #593d36,1px 1px #593d36}.experience{flex:1;min-width:75px;padding-top:9px;max-width:430px;text-align:right}.xp-meter{height:15px;border:3px solid #fff;box-shadow:inset 0 1px 3px #713f5360;border-radius:16px;background:#f1e3e3;overflow:hidden}.xp-meter span{display:block;height:100%;background:linear-gradient(#a5e9ff,#2799cf);width:0;transition:width .35s}#xp-label{font-size:13px;display:block;margin-top:3px}.hud-stat{display:flex;align-items:center;gap:7px;border:0;background:none;color:#fff;text-shadow:1px 2px #77364a;padding:0;white-space:nowrap;min-width:100px}.hud-stat strong{font-family:var(--font);font-size:25px}.money b{font-family:var(--font);font-size:43px;color:#8da559;-webkit-text-stroke:1px #c5d3a4;line-height:1.2}.toxin span{font-family:Arial,sans-serif;font-size:44px;color:#a1da58;-webkit-text-stroke:1px #f2f6d6;line-height:1.2}.toxin{min-width:72px}.world-viewport{position:absolute;inset:0;overflow:hidden;touch-action:none;cursor:grab}.world-viewport:active{cursor:grabbing}.world{position:absolute;left:50%;top:50%;width:1200px;aspect-ratio:3/2;transform:translate(-50%,-50%);transform-origin:center;user-select:none;will-change:transform}#room-image{display:block;width:100%;height:100%;pointer-events:none}#furniture-layer,#people-layer,#effects-layer,#placement-grid{position:absolute;inset:0;pointer-events:none}#furniture-layer,#people-layer{display:contents}.furn-art,.char-art{display:block;aspect-ratio:1;flex-shrink:0;background-repeat:no-repeat}.char-art{background-image:var(--chars);background-size:400% 200%}.furn-art{background-image:var(--furniture);background-size:400% 400%}.char-0{background-position:0 0}.char-1{background-position:33.333333% 0}.char-2{background-position:66.666667% 0}.char-3{background-position:100% 0}.char-4{background-position:0 100%}.char-5{background-position:33.333333% 100%}.char-6{background-position:66.666667% 100%}.char-7{background-position:100% 100%}.furn-0{background-position:0 0}.furn-1{background-position:33.333333% 0}.furn-2{background-position:66.666667% 0}.furn-3{background-position:100% 0}.furn-4{background-position:0 33.333333%}.furn-5{background-position:33.333333% 33.333333%}.furn-6{background-position:66.666667% 33.333333%}.furn-7{background-position:100% 33.333333%}.furn-8{background-position:0 66.666667%}.furn-9{background-position:33.333333% 66.666667%}.furn-10{background-position:66.666667% 66.666667%}.furn-11{background-position:100% 66.666667%}.furn-12{background-position:0 100%}.furn-13{background-position:33.333333% 100%}.furn-14{background-position:66.666667% 100%}.furn-15{background-position:100% 100%}.entity{position:absolute;display:block;transform:translate(-50%,-91%);border:0;padding:0;background:none;pointer-events:auto;cursor:pointer;touch-action:none;isolation:isolate}.entity>.furn-art,.entity>.char-art{width:100%;height:100%}.entity.selected::after{content:'';position:absolute;left:10%;right:10%;height:18%;bottom:0;border:3px solid #a7f053;border-radius:50%;background:#93d73638;z-index:-1}.entity.selected>.char-art,.entity.selected>.furn-art{filter:drop-shadow(0 0 3px #a7f053)}.entity.person{transition:left .12s linear,top .12s linear}.entity.person.moving>.char-art{animation:shuffle .32s steps(2,end) infinite alternate;transform-origin:50% 96%}.entity.person.feral{filter:drop-shadow(0 0 7px #db140c)}.entity.person.resting{filter:none}.entity.person.dead{opacity:.3;filter:grayscale(1)}.entity.in-decorate{cursor:move}.entity .number-tag{position:absolute;bottom:50%;left:50%;transform:translate(-50%,15px);color:white;font-family:var(--font);font-size:16px;line-height:1;text-shadow:-1px -1px #000,1px -1px #000,-1px 1px #000,1px 1px #000;pointer-events:none}.counter-food{position:absolute;left:22%;top:6%;width:56%!important}.table-food{position:absolute;left:22%;top:12%;width:51%!important}.mini-bubble{position:absolute;left:57%;bottom:87%;background:#f4f0df;border:2px solid #33291d;border-radius:13px 13px 13px 2px;min-width:33px;min-height:29px;padding:4px;font-family:var(--font);font-size:16px;box-shadow:0 2px 2px #2e231650;pointer-events:none;white-space:nowrap}.mini-bubble .furn-art{width:33px}.mini-bubble.hungry{font-size:13px}.mini-bubble.ready{background:#a4d45c;animation:bob 1s infinite;z-index:20}.mini-bubble.burnt{background:#e9a690}.mini-bubble.timer{font-size:12px;min-height:24px;border-radius:8px;padding:4px 7px;bottom:78%;left:38%}.mini-bubble.sleep{color:#346c88;background:#e7f1ef;font-size:13px;min-width:30px}.energy-float{position:absolute;left:9%;right:9%;top:0;height:5px;background:#4e342e;border:1px solid #f3eade;overflow:hidden;pointer-events:none}.energy-float i{height:100%;display:block;background:#78af31}.target-ring{position:absolute;inset:12%;border:3px dashed #c2261c;border-radius:50%;pointer-events:none}.side-tools{position:absolute;top:94px;left:24px;z-index:30;display:flex;flex-direction:column;gap:22px;align-items:center}.crew-shortcut{position:relative;display:flex;align-items:center;flex-direction:column;background:none;border:0;color:#fff;font-family:var(--font);width:68px;padding:0;text-shadow:1px 2px #171c0d,-1px -1px #171c0d}.crew-shortcut .char-art{width:58px;height:56px;background-size:400% 200%;filter:drop-shadow(1px 1px white) drop-shadow(-1px -1px white)}.crew-shortcut strong{font-size:19px;margin-top:-6px;white-space:nowrap}.tool-label{display:block;font-family:var(--font);font-size:12px;margin-top:3px;text-shadow:1px 1px #222}.round-tool{position:relative;border:3px solid #f5f3e2;background:linear-gradient(#8da648,#476726);outline:2px solid #314322;box-shadow:0 3px 0 #304722;border-radius:13px 9px 14px 8px;min-width:49px;height:45px;color:#fff;font-family:var(--font);font-size:29px;text-shadow:1px 2px #344b20;display:grid;place-items:center}.round-tool .tool-label{position:absolute;top:44px;white-space:nowrap;color:white}.round-tool i{position:absolute;right:-10px;top:-10px;border:2px solid white;background:#bd291b;border-radius:50%;width:22px;height:22px;font-size:14px;font-style:normal;display:grid;place-items:center}.right-tools{position:absolute;right:21px;top:105px;z-index:30;display:flex;flex-direction:column;align-items:center;gap:15px}.door-sign{font-family:var(--font);font-size:15px;transform:rotate(5deg);padding:7px 11px;border:3px solid #ead9b8;background:#3d6d27;color:#fff;outline:2px solid #394625;box-shadow:0 3px 2px #4c4e2460}.door-sign.closed{background:#983e29;outline-color:#55261f}.round-tool.compact{min-width:34px;width:36px;height:34px;font-size:19px;border-width:2px;border-radius:9px}.bottom-tools{position:absolute;bottom:22px;left:26px;right:26px;z-index:35;display:flex;align-items:flex-end;gap:18px;pointer-events:none}.bottom-tools>*{pointer-events:auto}.menu-button{font-family:var(--font);font-size:27px;letter-spacing:-1px;color:#fff;text-shadow:2px 2px #376018;background:linear-gradient(#80a742,#476c22);border:4px solid #d7d4b1;outline:3px solid #463d27;border-radius:13px 8px 12px 7px;padding:12px 22px;box-shadow:0 4px 0 #3d331e}.bottom-tool{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;width:78px;min-height:64px;padding:4px 5px;background:linear-gradient(#9faa62d9,#4a6b29eb);border:3px solid #f4e7b9;outline:2px solid #4a492c;box-shadow:0 4px 0 #423b28;border-radius:14px 9px 13px 7px;color:#fff;text-shadow:1px 2px #364425}.bottom-tool>span{font-family:Arial,sans-serif;font-weight:700;font-size:31px;line-height:1}.bottom-tool b{font-family:var(--font);font-size:11px;margin-top:4px}.camera-buttons{display:flex;gap:5px;margin-left:auto}.camera-buttons button{background:#f2ead4d9;color:#4d5330;border:2px solid #766d49;width:34px;height:33px;border-radius:9px;font-size:24px;line-height:1}.tutorial-banner{position:absolute;left:50%;bottom:114px;transform:translateX(-50%);max-width:calc(100% - 190px);padding:11px 42px 11px 17px;border:3px solid #6c543b;border-radius:10px;background:#f5ebcbeF;box-shadow:0 4px 0 #3c301d66;z-index:25;font-size:15px;line-height:1.5;font-weight:700;text-align:center}.tutorial-banner button{position:absolute;top:5px;right:8px;border:0;background:none;font-size:25px;color:#896845}.selection-panel{position:absolute;left:20px;right:20px;bottom:14px;z-index:45;min-height:128px;background:#242623;border:6px solid #6b563f;border-radius:15px;box-shadow:inset 0 0 0 2px #9a8260,0 5px 5px #33241870;padding:15px 24px;color:#fff;display:flex;align-items:center;gap:22px;font-family:var(--font)}.selection-art{width:84px;flex-shrink:0}.selection-info{flex:1;min-width:100px}.selection-info h2{font-size:22px;line-height:1.2;text-transform:uppercase}.selection-info p{font-family:var(--font);font-size:14px;color:#d4d6be;margin-top:7px;line-height:1.5}.selection-info .timer{font-size:22px;color:#9eb748;font-family:var(--font);font-weight:700}.selection-actions{display:flex;gap:16px;align-items:center}.command-button{display:flex;flex-direction:column;gap:3px;justify-content:center;align-items:center;min-width:88px;min-height:77px;border:3px solid #8eaa55;border-radius:6px;background:linear-gradient(140deg,#6e9633,#34491b);color:#fff;text-shadow:1px 2px #273416;font-family:var(--font);font-size:14px;padding:7px 12px;box-shadow:2px 3px 0 #0e120c}.command-button span{font-family:Arial,sans-serif;font-size:28px;line-height:1.2}.command-button.danger{background:linear-gradient(130deg,#7f773f,#423d24);border-color:#8d8351}.selection-close{position:absolute;right:-10px;top:-16px}.close-square{position:absolute;right:-5px;top:-10px;background:linear-gradient(140deg,#ef4b27,#b6230e);border:3px solid #7d2517;box-shadow:inset 0 0 0 2px #ff8962,2px 3px #382116;border-radius:3px;color:white;text-shadow:1px 2px #ad2b16;font-family:var(--font);font-size:30px;width:45px;height:46px;padding:0;z-index:9}.green-button,.red-button,.neutral-button{font-family:var(--font);font-size:15px;font-weight:bold;padding:11px 17px;border:3px solid #3c511f;border-radius:6px;box-shadow:inset 0 0 0 1px #b6c984,0 3px 0 #302817;background:linear-gradient(#84a842,#4b731e);color:white;text-shadow:1px 1px #426025}.red-button{background:linear-gradient(#cb5740,#a32e1c);border-color:#742d1e;box-shadow:inset 0 0 0 1px #e38e6d,0 3px 0 #49271b;text-shadow:1px 1px #7e281a}.neutral-button{background:linear-gradient(#b5a67f,#857452);border-color:#59472e;box-shadow:inset 0 0 0 1px #d3c59f,0 3px 0 #3e3421;text-shadow:1px 1px #6d5b3d}.green-button:hover,.command-button:hover{filter:brightness(1.1)}.decorate-panel{position:absolute;left:20px;right:20px;bottom:20px;z-index:45;background:#eeedd0;border:4px solid #81704b;border-radius:11px;box-shadow:0 4px 0 #4b3d23;padding:14px 18px;display:flex;align-items:center;justify-content:space-between;gap:16px}.decorate-panel strong{font-family:var(--font);color:#813447;font-size:20px}.decorate-panel p{font-size:14px;line-height:1.5;margin-top:5px}.decorate-actions{display:flex;gap:10px}#placement-grid{z-index:1400;pointer-events:auto}.grid-cell{position:absolute;transform:translate(-50%,-50%);border:1px solid #f1ffe266;background:#c1db9625;clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);cursor:crosshair}.grid-cell.blocked{background:#c33a1c50}.decorating .entity{pointer-events:none}.placement-ghost{position:absolute;opacity:.6;transform:translate(-50%,-91%);pointer-events:none;z-index:2000}.save-label{position:absolute;right:16px;bottom:3px;z-index:20;font-size:10px;color:#e9f1d7;text-shadow:1px 1px #42512a;pointer-events:none}.paused-screen{position:absolute;inset:0;display:grid;place-items:center;background:#25241ba8;backdrop-filter:blur(4px);z-index:70}.blackboard{background:#22251f;border:7px solid #796042;box-shadow:inset 0 0 0 2px #b0976c,0 15px 50px #1b211766;border-radius:14px;padding:35px;color:white;text-align:center}.blackboard h1{font-family:var(--font);font-size:30px}.blackboard p{margin:15px 0 25px;color:#dddfc7}.toasts{position:fixed;top:95px;left:50%;transform:translateX(-50%);z-index:150;display:flex;flex-direction:column;align-items:center;gap:9px;max-width:min(500px,calc(100% - 130px));pointer-events:none}.toast{background:#fff0cbeF;border:3px solid #8e7450;box-shadow:0 4px 0 #42392355;border-radius:10px;font-size:15px;line-height:1.45;padding:10px 18px;text-align:center;animation:toast-in .2s ease-out}.toast.error{border-color:#b04b34;background:#ffddce}.toast.success,.toast.ready{border-color:#648335}.toast.victory,.toast.level{border-color:#937229;background:#f5e297;font-family:var(--font)}.float-text{position:absolute;transform:translate(-50%,-100%);font-family:var(--font);font-size:23px;color:#deed64;-webkit-text-stroke:.5px #39431f;text-shadow:2px 2px #20281b;animation:float-up 1.8s ease-out forwards;z-index:1600}.float-text.damage{color:#ee5644;font-size:21px}
dialog{border:7px solid #715a3d;border-radius:18px;background:#e4dcc1;box-shadow:inset 0 0 0 2px #aa926d,0 20px 90px #201b13bb;padding:23px;overflow:visible;width:780px;max-width:calc(100% - 40px);max-height:calc(100dvh - 50px);color:#2c251e}dialog::backdrop{background:#302c1a99;backdrop-filter:blur(2px)}#modal-content{max-height:calc(100dvh - 110px);overflow:auto;scrollbar-width:thin;scrollbar-color:#928461 #e3dbc2}dialog h2{font-family:var(--font);font-size:26px;color:var(--burgundy);text-shadow:1px 1px #c7b9ac;line-height:1.2;text-transform:uppercase;margin:0 0 17px}dialog h3{font-family:var(--font);font-size:18px}dialog p{font-size:16px;line-height:1.55}.modal-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}.modal-actions>*{flex:1}.small-note{font-size:13px!important;color:#6b604b;line-height:1.5;margin-top:14px}.menu-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;padding:6px}.menu-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:15px 10px;min-height:116px;background:#f4eacb;border:3px solid #887553;border-radius:11px;box-shadow:0 3px #b8a380;color:#553e28}.menu-tile .furn-art,.menu-tile .char-art{width:64px}.menu-tile>b{font-family:var(--font);font-size:15px}.menu-symbol{font-family:Arial,sans-serif;font-size:40px;line-height:1.4;color:#637e35}.menu-footer{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#817156;margin-top:18px}.book-modal{background:#322a20;padding:16px;width:880px;border-width:10px} .book-modal #modal-content{overflow:visible}.book-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:0 6px 12px;color:#e7dcc0;font-size:13px}.book-toolbar select{font-size:13px;max-width:220px;background:#ede6d2;border:2px solid #857254;border-radius:4px;padding:6px;color:#554733}.book-pages{display:grid;grid-template-columns:1fr 1fr;gap:28px;position:relative}.book-pages::before{content:'';position:absolute;left:calc(50% - 8px);top:15px;bottom:20px;width:16px;background:radial-gradient(ellipse at center,#ddd 0 35%,#6e6d69 37% 51%,transparent 53%) center / 16px 75px repeat-y;z-index:5}.recipe-page{position:relative;background:linear-gradient(100deg,#e3e0d6,#f4f1e8 8%,#ede9df 90%,#d3cbbc);border:2px solid #b6ad9a;padding:18px 20px 17px;min-height:440px;box-shadow:0 3px 0 #aa9e88,0 6px 0 #777362;clip-path:polygon(0 0,32% 0,32% 2%,34% 0,100% 0,100% 54%,97% 56%,100% 58%,100% 100%,63% 100%,62% 96%,60% 100%,0 100%,0 27%,2% 25%,0 23%)}.recipe-page h3{font-family:var(--font);font-size:25px;line-height:1.15;min-height:58px;letter-spacing:-.5px;color:#923c54;text-transform:uppercase;text-shadow:1px 1px #4c527170}.recipe-art-row{display:flex;align-items:center;gap:5px;margin:6px 0 13px}.recipe-art-row>.furn-art{width:68%;filter:drop-shadow(0 3px 0 #20201c30)}.recipe-level{text-align:center;flex:1;color:#903b4d;font-family:var(--font)}.recipe-price{font-size:32px;color:#10100e;margin-bottom:13px;white-space:nowrap}.recipe-level>span{font-size:15px;display:block}.recipe-level strong{border:3px solid #b39999;width:43px;height:43px;display:grid;place-items:center;border-radius:50%;margin:4px auto;font-size:26px}.recipe-stats{display:grid;grid-template-columns:1fr auto;gap:5px 9px;font-family:var(--font);font-size:15px;line-height:1.5;margin:12px 0 15px}.recipe-stats dt{color:#151610}.recipe-stats dd{margin:0;color:#8c3348;text-align:right}.recipe-page>.green-button,.recipe-page>.neutral-button{width:100%;font-size:14px;padding:8px}.recipe-page.locked>.recipe-art-row>.furn-art{filter:grayscale(.7);opacity:.5}.variant-control{display:block;width:100%;font-size:12px;border:1px solid #aa967a;background:#ece3ce;color:#6d3d44;padding:5px;margin-bottom:8px}.book-navigation{display:flex;justify-content:space-between;align-items:center;color:#e4d5b4;font-family:var(--font);font-size:14px;margin:17px 5px 0}.book-navigation button{border:2px solid #b7a579;background:#697b3b;color:white;padding:8px 17px;border-radius:5px;font-family:var(--font);font-size:14px}.tabs{display:flex;gap:7px;overflow:auto;margin:0 0 18px;padding-bottom:3px}.tabs button{background:#b9ac86;color:#5c4d34;border:2px solid #8e7c57;padding:8px 13px;white-space:nowrap;font-size:14px;font-weight:bold;border-radius:7px}.tabs button.active{background:#789244;color:#fff;border-color:#405422}.shop-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.shop-card{background:#f2e9d1;border:2px solid #a38e63;border-radius:8px;padding:12px;display:flex;flex-direction:column;align-items:center;text-align:center}.shop-card>.furn-art{width:92px}.shop-card h3{font-size:15px;margin-top:6px}.shop-card p{font-size:13px;line-height:1.45;flex:1;margin:7px 0 10px}.shop-card .green-button{font-size:13px;padding:7px 13px;width:100%}.shop-card .item-limit{font-size:12px;color:#8b7655;margin-bottom:8px}.crew-list{display:grid;grid-template-columns:1fr 1fr;gap:13px}.staff-card{border:2px solid #a18c64;border-radius:8px;background:#f2e9d2;padding:13px}.staff-card-top{display:flex;align-items:center;gap:10px}.staff-card-top>.char-art{width:72px}.staff-card h3{font-size:17px;color:#724237}.staff-card p{font-size:13px;line-height:1.4;margin-top:4px}.staff-energy{height:10px;background:#a49b82;border:2px solid #695d43;border-radius:4px;overflow:hidden;margin-top:9px}.staff-energy i{display:block;height:100%;background:#83ad38}.staff-numbers{display:flex;justify-content:space-between;gap:8px;font-size:12px;margin:6px 0 9px;color:#766348}.staff-card .modal-actions{gap:6px;margin-top:8px}.staff-card button{padding:7px;font-size:12px}.settings-grid{display:grid;gap:16px}.setting{display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid #c0b18d;padding-bottom:15px}.setting label{font-weight:bold;font-size:16px}.setting p{font-size:13px;color:#77664e;margin-top:4px}.setting select,.setting input{padding:8px;border:2px solid #a49169;border-radius:5px;background:#fcf7e9;color:#55422c;font-size:14px;max-width:200px}.setting input[type=checkbox]{width:22px;height:22px;accent-color:#638529}.quest-list{display:grid;gap:12px}.quest-item{padding:13px;background:#f7efd9;border:2px solid #a39068;border-radius:8px}.quest-item h3{font-size:17px}.quest-item p{font-size:14px;margin-top:6px}.quest-item .reward{color:#6e862c;font-family:var(--font);font-size:14px;margin-top:8px}.quest-progress{height:8px;border-radius:5px;border:1px solid #7c765a;background:#cbc2a1;overflow:hidden;margin:10px 0}.quest-progress i{display:block;height:100%;background:#83a845}.quest-item.complete{opacity:.65}.quest-item .green-button{font-size:13px;padding:7px 12px}.help-list{padding-left:22px;font-size:16px;line-height:1.6}.help-list li{padding-left:4px;margin-bottom:12px}.help-list b{color:#853a4a}.credits{border-top:1px solid #baaa86;margin-top:20px;padding-top:13px;font-size:12px;color:#76634c}.credits a{color:#68464d}.credits summary{cursor:pointer}.credits p{font-size:12px;margin:8px 0}.fridge-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.fridge-card{display:flex;align-items:center;gap:12px;padding:13px;background:#f5ebd4;border:2px solid #a18a5d;border-radius:9px}.fridge-card>.furn-art{width:69px}.fridge-card h3{font-size:16px}.fridge-card p{font-size:13px;margin-top:4px}.fridge-card button{font-size:12px;margin-top:10px;padding:7px}.guest-details{display:flex;gap:18px;align-items:center}.guest-details>.char-art{width:130px}.guest-details h3{font-size:22px;color:#803448}.guest-details p{font-size:15px;margin-top:8px}.guest-stats{display:flex;gap:12px;margin-top:12px;flex-wrap:wrap;font-size:14px}.empty-state{padding:25px;text-align:center;font-size:16px;color:#756244}.empty-state>.furn-art{width:100px;margin:auto auto 15px}.neighborhood{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:35px 25px;padding:22px 15px;background:linear-gradient(90deg,transparent 29%,#aaa99a 29% 34%,transparent 34% 65%,#aaa99a 65% 70%,transparent 70%),linear-gradient(transparent 42%,#b3b1a4 42% 54%,transparent 54%),#97ad64;border:3px solid #75864e;border-radius:10px}.map-cafe{background:#e3d8b6;border:3px solid #735536;box-shadow:0 4px #657843;border-radius:8px;min-height:140px;position:relative;padding:8px;text-align:center}.map-cafe .furn-art{width:65px;margin:auto}.map-cafe b{font-family:var(--font);font-size:14px;line-height:1.25;display:block;color:#753e31}.map-cafe small{font-size:12px;display:block;color:#5d6141;margin-top:5px}.map-cafe.locked{filter:grayscale(.55);opacity:.7}.raid-heading{display:flex;justify-content:space-between;align-items:center;gap:15px}.raid-heading .furn-art{width:100px}.raid-info{display:flex;gap:15px;margin:13px 0 18px;font-size:15px;color:#6b5637;flex-wrap:wrap}.raid-crew{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:15px 0}.raid-pick{display:flex;flex-direction:column;align-items:center;text-align:center;background:#f7edd6;border:2px solid #b49d71;border-radius:8px;padding:8px;cursor:pointer}.raid-pick .char-art{width:70px}.raid-pick input{width:18px;height:18px;accent-color:#739434}.raid-pick b{font-size:13px;margin:4px 0}.raid-pick small{font-size:12px;color:#806b4c}.raid-pick:has(input:checked){background:#dfe9b3;border-color:#627c32}.victory-title{font-size:37px!important;text-align:center;color:#51751c!important}.wallet-value{font-family:var(--font);font-size:48px;color:#699129;margin:15px 0}.asset-warning{position:absolute;inset:90px 20px auto;z-index:100;background:#ffe7b2;border:3px solid #b76b33;border-radius:8px;padding:20px;text-align:center}
@keyframes shuffle{from{rotate:-1.5deg;translate:0 0}to{rotate:1.5deg;translate:0 -2px}}@keyframes bob{0%,100%{translate:0 0}50%{translate:0 -5px}}@keyframes float-up{0%{opacity:0;translate:0 0}10%{opacity:1}100%{opacity:0;translate:0 -65px}}@keyframes toast-in{from{opacity:0;translate:0 -10px}to{opacity:1;translate:0 0}}
@media(min-width:1500px){.awning{left:18%;height:85px;padding-top:8px;gap:32px}.cafe-title{font-size:26px;min-width:230px}.cafe-title strong{font-size:40px}.hud-stat strong{font-size:29px}.experience{padding-top:13px}.xp-meter{height:17px}.stars{font-size:25px}.bottom-tools{gap:24px}.bottom-tool{width:92px;min-height:73px}.bottom-tool b{font-size:13px}.selection-panel{left:32px;right:32px;bottom:25px;padding:20px 30px;min-height:155px}.selection-art{width:110px}.selection-info h2{font-size:27px}.selection-info p{font-size:16px}}
@media(max-width:900px){.awning{left:10%;height:66px;gap:10px;padding:7px 12px 0 13px}.zc-button{right:calc(100% + 10px);top:12px;width:45px;height:42px;font-size:25px;border-width:3px}.cafe-title{font-size:17px;min-width:145px}.cafe-title strong{font-size:29px}.stars{font-size:19px}.hud-stat{min-width:75px;gap:4px}.hud-stat strong{font-size:20px}.money b{font-size:37px}.toxin span{font-size:38px}.toxin{min-width:52px}.experience{padding-top:7px}.xp-meter{height:13px}#xp-label{font-size:11px}.side-tools{left:16px;top:85px;gap:19px}.right-tools{top:85px;right:16px}.bottom-tools{left:20px;right:20px;gap:13px}.menu-button{font-size:23px;padding:12px 14px}.bottom-tool{width:70px;min-height:58px}.bottom-tool b{font-size:10px}.bottom-tool>span{font-size:27px}.camera-buttons{gap:3px}.camera-buttons button{width:28px;height:30px;font-size:21px}.selection-panel{gap:13px;padding:12px 17px;min-height:120px}.selection-info h2{font-size:19px}.selection-art{width:70px}.selection-actions{gap:9px}.command-button{min-width:71px;min-height:69px;font-size:12px;padding:6px 8px}.command-button span{font-size:24px}.tutorial-banner{font-size:14px;bottom:106px}.book-modal{width:780px;padding:12px}.recipe-page{padding:15px;min-height:400px}.recipe-page h3{font-size:21px;min-height:48px}.recipe-price{font-size:28px}.recipe-stats{font-size:13px}.recipe-page>.green-button{font-size:13px}.book-pages{gap:23px}.shop-grid{gap:9px}.staff-card h3{font-size:15px}}
@media(max-height:550px) and (min-width:601px){.awning{height:60px;left:14%;gap:14px}.side-tools,.right-tools{top:78px}.side-tools{gap:15px}.crew-shortcut .char-art{width:43px;height:43px}.crew-shortcut strong{font-size:15px}.round-tool{height:34px;min-width:38px;font-size:22px}.round-tool .tool-label{top:34px}.bottom-tools{bottom:13px;gap:13px}.bottom-tool{min-height:49px;width:67px}.bottom-tool>span{font-size:22px}.menu-button{font-size:20px;padding:10px 13px}.tutorial-banner{bottom:86px;font-size:12px;padding:7px 31px 7px 13px}.selection-panel{min-height:98px;padding:10px 17px;bottom:9px}.selection-art{width:60px}.selection-info h2{font-size:17px}.command-button{min-height:62px}.recipe-page{min-height:0;padding:10px 16px}.recipe-page h3{font-size:18px;min-height:24px}.recipe-art-row{height:80px;margin:2px 0 5px}.recipe-art-row>.furn-art{width:90px;height:90px;margin:auto}.recipe-price{font-size:22px;margin:0}.recipe-level strong{width:28px;height:28px;font-size:19px}.recipe-level>span{font-size:11px}.recipe-stats{font-size:11px;gap:2px;margin:5px 0 8px}.recipe-page>.green-button{font-size:11px;padding:5px}.book-toolbar{padding-bottom:5px;font-size:11px}.book-toolbar select{padding:3px;font-size:11px}.book-navigation{margin-top:11px;font-size:11px}.book-navigation button{font-size:11px;padding:5px 13px}.book-modal{max-width:680px;padding:10px;border-width:6px}.book-modal #modal-content{max-height:calc(100dvh - 62px);overflow:auto}.variant-control{font-size:10px;padding:2px;margin-bottom:4px}dialog{max-height:calc(100dvh - 30px)}#modal-content{max-height:calc(100dvh - 84px)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.float-text{display:none}}

/* Keep controls clear of the iPhone notch and Home indicator in every orientation. */
html,body{overscroll-behavior:none}.game{width:calc(100% - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px));height:calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));margin:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px)}.offline-status{padding:12px;background:#d6e8b9;border:2px solid #6d8a3b;border-radius:7px;font-weight:bold;margin-bottom:16px}.install-instructions{padding-left:24px;font-size:16px;line-height:1.6}.install-instructions li{margin:8px 0}.save-transfer{border-top:2px solid #b0a794;padding-top:18px;margin-top:20px}.save-transfer h3{margin-bottom:10px}.save-transfer p{line-height:1.5}.save-transfer .modal-actions{flex-wrap:wrap}.save-transfer button{min-height:44px}

/* Revival build: original sprites and a horizontal game surface. */
@font-face{font-family:LoveOfThunder;src:url('./assets/revival/love-of-thunder.ttf') format('truetype');font-style:normal;font-weight:400;font-display:block}
:root{--font:LoveOfThunder,'Arial Black',sans-serif}
body{background:#171b14}.game{background:#859b65;--unit:clamp(.72px,min(.104vw,.185dvh),1.45px)}
.world{aspect-ratio:1200/760;top:53%}#room-canvas{display:block;width:100%;height:100%;pointer-events:none}
.furn-art,.char-art{background:none!important;aspect-ratio:auto;object-fit:contain}.char-art{aspect-ratio:256/272}.source-sprite{height:auto;max-width:100%}.ui-art{object-fit:contain}
.entity{transform:translate(-50%,-84%)}.entity>.furn-art{height:auto}.entity.person{transform:translate(-50%,-93%)}.entity.person>.char-art{height:auto;animation:none!important}
.entity.furniture>.furn-art{object-fit:contain}.entity.person.moving>.char-art{animation:none!important}.entity.dead{opacity:.55}
.entity .counter-food,.entity .table-food{height:auto!important;aspect-ratio:auto;max-height:55%;object-fit:contain}.entity .mini-bubble .furn-art{height:auto;max-height:40px;object-fit:contain}
.grid-cell{transform:translate(-50%,-50%);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);background:#dcffc34d;border:1px solid #ffffc680}
.awning{left:12%;right:0;top:0;height:calc(var(--unit)*79);border:0;border-radius:0;background:var(--original-awning) center top/100% 100% no-repeat;gap:calc(var(--unit)*18);padding:calc(var(--unit)*5) calc(var(--unit)*26) 0 calc(var(--unit)*20);align-items:flex-start;filter:drop-shadow(0 2px 1px #24171a55)}
.awning::after{display:none}.zc-button{border:0;background:none;box-shadow:none;outline:none;border-radius:0;width:calc(var(--unit)*61);height:calc(var(--unit)*54);right:calc(100% + var(--unit)*23);top:calc(var(--unit)*10);padding:0;min-width:44px;min-height:44px}.zc-button canvas{width:100%;height:100%}
.cafe-title{font-size:calc(var(--unit)*21);min-width:calc(var(--unit)*185);padding-top:calc(var(--unit)*4)}.cafe-title strong{font-size:calc(var(--unit)*35);margin-left:calc(var(--unit)*9)}#cafe-name{display:inline-block;max-width:calc(var(--unit)*186);overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.stars{font-size:calc(var(--unit)*22);margin-top:2px}
.experience{padding-top:calc(var(--unit)*15);min-width:60px;max-width:300px}.xp-meter{height:calc(var(--unit)*14);min-height:8px;border-width:2px;background:#c3c9b9}.xp-meter span{background:#72a134}#xp-label{font-size:calc(var(--unit)*12);margin-top:3px}
.hud-stat{min-width:calc(var(--unit)*110);min-height:44px;gap:calc(var(--unit)*4);padding-top:0}.hud-stat strong{font-size:calc(var(--unit)*27)}.hud-stat>.ui-art{width:calc(var(--unit)*41);height:calc(var(--unit)*50);max-width:none}.toxin{min-width:calc(var(--unit)*70)}.toxin>.ui-art{width:calc(var(--unit)*30);height:calc(var(--unit)*51)}
.side-tools{left:calc(var(--unit)*22);top:calc(var(--unit)*95);gap:calc(var(--unit)*28)}.crew-shortcut{width:calc(var(--unit)*62);min-width:44px}.crew-shortcut>.ui-art{width:calc(var(--unit)*59);height:calc(var(--unit)*58)}.crew-shortcut strong{font-size:calc(var(--unit)*18);margin-top:0}.tool-label{font-size:max(10px,calc(var(--unit)*11))}.side-tools .round-tool{background:none;border:0;outline:none;box-shadow:none;width:calc(var(--unit)*57);height:calc(var(--unit)*57);min-width:44px;min-height:44px}.side-tools .round-tool>.ui-art{width:100%;height:100%}.side-tools .round-tool .tool-label{top:100%}
.right-tools{right:calc(var(--unit)*20);top:calc(var(--unit)*98);gap:calc(var(--unit)*15)}.right-tools button{min-width:40px;min-height:38px}.door-sign{font-size:calc(var(--unit)*14);padding:calc(var(--unit)*7) calc(var(--unit)*10)}
.bottom-tools{left:calc(var(--unit)*25);right:calc(var(--unit)*25);bottom:calc(var(--unit)*17);gap:calc(var(--unit)*21);align-items:flex-end}.bottom-tool{padding:0;border:0;background:none;box-shadow:none;outline:none;min-height:calc(var(--unit)*61);width:calc(var(--unit)*76);min-width:50px;border-radius:0;display:flex;flex-direction:column;align-items:center}.bottom-tool>.ui-art{width:calc(var(--unit)*56);height:calc(var(--unit)*47)}.bottom-tool b{font-size:max(10px,calc(var(--unit)*12));text-shadow:1px 1px #252415,-1px -1px #252415;color:#fff;margin-top:calc(var(--unit)*3)}.menu-button{font-size:calc(var(--unit)*26);padding:calc(var(--unit)*9) calc(var(--unit)*21);min-height:44px;border-width:3px}.camera-buttons{gap:5px;margin-left:auto}.camera-buttons button{min-width:36px;min-height:36px}
.tutorial-banner{bottom:calc(var(--unit)*102);max-width:min(610px,70%);font-size:max(12px,calc(var(--unit)*15));padding:calc(var(--unit)*10) 30px calc(var(--unit)*10) calc(var(--unit)*16)}.save-label{bottom:2px;right:12px;font-size:9px;opacity:.7}.toasts{top:calc(90 * min(1.4px,.185dvh));max-width:60%}
.selection-panel{bottom:calc(var(--unit)*15);left:calc(var(--unit)*22);right:calc(var(--unit)*22);padding:calc(var(--unit)*12) calc(var(--unit)*22);gap:calc(var(--unit)*15);min-height:calc(var(--unit)*119);flex-wrap:nowrap;border-width:5px}.selection-art{width:calc(var(--unit)*83);max-height:calc(var(--unit)*95);object-fit:contain}.selection-info{min-width:0;flex:1}.selection-info h2{font-size:calc(var(--unit)*22);line-height:1.2}.selection-info p{font-size:max(12px,calc(var(--unit)*14))}.selection-actions{gap:calc(var(--unit)*12);flex-shrink:0}.command-button{background:none;border:0;box-shadow:none;min-width:calc(var(--unit)*80);min-height:52px;padding:0;font-size:max(10px,calc(var(--unit)*12));color:#2f3823}.command-button>.ui-art{width:calc(var(--unit)*67);height:calc(var(--unit)*58)}.command-button>b{font:inherit}.command-button.danger{background:none;color:#993f27}
.decorate-panel{left:calc(var(--unit)*22);right:calc(var(--unit)*22);bottom:calc(var(--unit)*16);min-height:65px;padding:10px 16px}.decorate-panel strong{font-size:calc(var(--unit)*20)}.decorate-panel p{font-size:12px}.decorate-actions button{min-height:44px;padding:8px 15px}
dialog{width:min(930px,calc(100vw - 70px - env(safe-area-inset-left) - env(safe-area-inset-right)));max-width:calc(100vw - 48px - env(safe-area-inset-left) - env(safe-area-inset-right));max-height:calc(100dvh - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom));margin:auto;border-width:7px;padding:17px 20px;border-radius:11px}dialog h2{font-family:var(--font);font-size:24px;margin-bottom:14px}dialog h3{font-family:var(--font)}#modal-content{max-height:calc(100dvh - 82px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overflow:auto;overscroll-behavior:contain;padding-right:3px}.close-square{right:-6px;top:-7px;min-width:40px;min-height:40px;z-index:10}.menu-grid{grid-template-columns:repeat(5,1fr);gap:12px}.menu-tile{min-height:104px;padding:10px 8px}.menu-tile>.furn-art,.menu-tile>.char-art{height:58px;width:70px}.menu-tile b{font-size:12px}.menu-footer{font-size:11px;margin-top:12px}
.book-modal{width:min(865px,calc(100vw - 65px));padding:12px 15px}.book-pages{gap:24px}.book-toolbar{padding-bottom:8px}.recipe-page{min-height:0;padding:13px 17px}.recipe-page h3{font-size:22px;min-height:49px;margin:0}.recipe-art-row{height:115px;margin:2px 0 8px}.recipe-art-row>.furn-art{width:63%;height:115px;object-fit:contain}.recipe-price{font-size:28px;margin-bottom:7px}.recipe-level strong{width:36px;height:36px;font-size:22px}.recipe-level>span{font-size:12px}.recipe-stats{font-size:13px;gap:3px 8px;margin:8px 0 10px}.recipe-page>.green-button,.recipe-page>.neutral-button{min-height:34px}.book-navigation{margin-top:10px}.book-navigation button{min-height:34px;padding:5px 15px}.recipe-page.locked .furn-art{opacity:.5}
.tabs{gap:5px;margin-bottom:10px}.tabs button{font-family:var(--font);font-size:12px;padding:8px 11px;min-height:36px}.store-balance{float:right;font-size:19px;color:#5d7f32}.shop-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.shop-card{padding:8px;border-radius:5px;min-width:0}.shop-card>.furn-art{height:76px;width:104px;object-fit:contain}.shop-card h3{font-size:14px;line-height:1.25}.shop-card p{font-size:11px;line-height:1.3;margin:4px 0}.shop-card .item-limit{font-size:10px;display:block;margin-bottom:5px}.shop-card-copy{flex:1}.shop-card .green-button{min-height:32px;padding:6px 4px;font-size:11px}.catalog-navigation{color:#725237}.catalog-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;font-size:12px;margin-bottom:9px}.catalog-toolbar select{font-size:13px;background:#f3edda;border:1px solid #a59368;padding:5px}.recruit-list{grid-template-columns:repeat(3,1fr);gap:9px}.recruit-list .staff-card{padding:8px;display:flex;flex-direction:column;min-width:0}.recruit-list .staff-card-top{gap:3px}.recruit-list .char-art{width:60px;height:70px}.recruit-list h3{font-size:14px;line-height:1.2}.recruit-list p{font-size:11px}.recruit-list .character-description{font-size:11px;line-height:1.35;flex:1;margin:4px 0 8px;max-height:45px;overflow:auto}.recruit-list .green-button{width:100%;min-height:31px}.staff-card-top>.char-art{height:78px;object-fit:contain}.guest-details>.char-art{height:190px;object-fit:contain}.fridge-card>.furn-art{height:80px;object-fit:contain}
.neighborhood{grid-template-columns:repeat(3,1fr);gap:15px;padding:15px}.map-cafe{min-height:145px}.map-cafe .furn-art{height:88px;width:130px;object-fit:contain}.raid-crew{grid-template-columns:repeat(5,1fr)}.raid-pick .char-art{height:80px;object-fit:contain}
.rotate-device{position:fixed;inset:0;z-index:99999;background:radial-gradient(ellipse at center,#384936,#182117);color:#f0e5c5;display:none;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:32px}.rotate-device h1{font-family:var(--font);font-size:27px;margin-top:34px}.rotate-device p{font-size:16px;line-height:1.5;margin-top:12px;max-width:260px}.rotate-device .rotate-note{font-size:13px;color:#b2bea0}.rotate-phone{width:123px;height:64px;border:5px solid #b5d073;border-radius:14px;position:relative}.rotate-phone::after{content:'';position:absolute;width:3px;height:17px;background:#b5d073;right:6px;top:19px;border-radius:3px}.rotate-phone span{font-family:Arial;font-size:52px;position:absolute;left:36px;top:-3px;color:#e9edd5}
@media(orientation:portrait){.rotate-device{display:flex}.game,dialog,.toasts{visibility:hidden!important;pointer-events:none!important}}
@media(orientation:landscape) and (max-height:500px){dialog{padding:10px 14px;border-width:5px;max-height:calc(100dvh - 24px)}#modal-content{max-height:calc(100dvh - 54px)}dialog h2{font-size:20px;margin-bottom:8px}.book-modal{padding:8px 12px;width:min(760px,calc(100vw - 65px))}.book-modal #modal-content{max-height:calc(100dvh - 46px)}.book-toolbar{font-size:11px;padding-bottom:5px}.book-toolbar select{font-size:11px;padding:3px;max-width:180px}.book-pages{gap:23px}.recipe-page{padding:8px 15px}.recipe-page h3{font-size:17px;min-height:39px}.recipe-art-row{height:75px;margin:0 0 3px}.recipe-art-row>.furn-art{height:75px;width:64%}.recipe-price{font-size:23px;margin:0}.recipe-level strong{width:27px;height:27px;font-size:18px;margin:3px auto}.recipe-level>span{font-size:10px}.recipe-stats{font-size:10px;gap:1px 8px;line-height:1.5;margin:5px 0}.recipe-page>.green-button,.recipe-page>.neutral-button{font-size:11px;padding:5px;min-height:28px}.variant-control{font-size:10px;padding:2px}.book-navigation{font-size:11px;margin-top:7px}.book-navigation button{font-size:11px;min-height:29px;padding:4px 13px}.shop-card{padding:6px}.shop-card>.furn-art{height:48px;width:85px}.shop-card h3{font-size:12px}.shop-card p{font-size:10px;margin:3px 0}.shop-card .item-limit{font-size:9px;margin-bottom:4px}.shop-card .green-button{font-size:10px;min-height:27px;padding:4px 3px}.tabs{gap:4px;margin-bottom:6px}.tabs button{font-size:10px;min-height:28px;padding:5px 9px}.shop-grid{gap:6px}.store-balance{font-size:15px}.catalog-toolbar{margin-bottom:5px}.recruit-list .char-art{width:45px;height:55px}.recruit-list h3{font-size:12px}.recruit-list p{font-size:10px}.recruit-list .character-description{display:none}.recruit-list .green-button{font-size:10px;min-height:27px;padding:4px}.menu-tile{min-height:89px;padding:6px}.menu-tile>.furn-art,.menu-tile>.char-art{height:48px;width:65px}.menu-tile b{font-size:10px}.menu-grid{gap:8px}.menu-footer{margin-top:8px;font-size:10px}.crew-list{gap:8px}.staff-card{padding:9px}.staff-card-top>.char-art{width:52px;height:60px}.staff-card h3{font-size:15px}.staff-card p{font-size:11px}.staff-card .modal-actions{margin-top:6px}.staff-card button{font-size:10px;min-height:28px;padding:5px}.help-list{font-size:13px}.guest-details>.char-art{height:130px}.guest-details p{font-size:13px}.neighborhood{padding:8px;gap:10px}.map-cafe{min-height:100px}.map-cafe .furn-art{height:57px;width:100px}.map-cafe b{font-size:11px}.map-cafe small{font-size:10px}.selection-info h2{font-size:17px}.selection-info p{font-size:11px}.command-button>.ui-art{height:36px}.command-button{min-width:62px}.tutorial-banner{bottom:74px;font-size:11px}.right-tools{gap:10px}.right-tools button{min-width:34px;min-height:32px}}
@media(orientation:landscape) and (max-height:340px){.recipe-page h3{min-height:23px;font-size:15px}.recipe-art-row,.recipe-art-row>.furn-art{height:48px}.recipe-stats{font-size:9px}.book-toolbar{padding-bottom:3px}.shop-card>.furn-art{height:32px}.side-tools{gap:15px}.right-tools{gap:6px}.tutorial-banner{display:none}.recruit-list .char-art{height:40px}.menu-tile{min-height:70px}.menu-tile>.furn-art,.menu-tile>.char-art{height:34px}}

.entity.wall-decor{transform:translate(-50%,-155%)}

/* Touch gestures belong to the game, including iOS long presses. */
.game,.game *,dialog,dialog *,#rotate-device{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-user-drag:none}
input,textarea,[contenteditable=true]{-webkit-user-select:text!important;user-select:text!important;-webkit-touch-callout:default}
.entity canvas,.entity .mini-bubble,.entity .energy-float,.entity .number-tag{pointer-events:none}
.entity.person{transition:none}
.entity-overlays{position:absolute;inset:0;display:block;pointer-events:none}
.entity .mini-bubble>.ui-art{width:27px;height:24px;object-fit:contain}
.entity.drop-target>.furn-art{filter:drop-shadow(0 0 4px #c8ff6e) brightness(1.14)}
.drag-source{opacity:.35}.touch-ghost{position:fixed;z-index:100000;pointer-events:none;transform:translate(-50%,-84%);filter:drop-shadow(0 0 3px #b7f768);opacity:.88}
.touch-ghost canvas{display:block;width:100%;height:auto;pointer-events:none}.touch-ghost.invalid{filter:drop-shadow(0 0 4px #ed6757)}
.drop-label{position:absolute;left:50%;top:-6px;transform:translate(-50%,-100%);font:12px var(--font);color:#eff7db;background:#314723;border:2px solid #c9e4a5;border-radius:7px;padding:6px 9px;max-width:230px;width:max-content;text-align:center;white-space:normal;line-height:1.3}.invalid .drop-label{background:#7f302c;border-color:#ffb3a4}
.shop-card canvas{touch-action:none;cursor:grab}.shop-card canvas:active{cursor:grabbing}
.toast.task{border-color:#678d46}.toast.unhappy{border-color:#b85433}
.chair-warning{background:#f1cb65;color:#75452b;font-size:18px;min-width:24px;min-height:24px;padding:2px 5px;bottom:87%;left:42%}
@media(orientation:portrait){.touch-ghost{display:none}}

.grid-cell.snap-target{background:#bce866a6;border-color:#ecffc9}.grid-cell.snap-target.snap-invalid{background:#ff444488;border-color:#ffd0c8}

/* Build 9 — interface geometry and source textures matched to the tutorial footage. */
.game{--hud:clamp(.7px,min(.12vw,.245dvh),1.55px)}
.awning{left:calc(var(--hud)*58);right:0;height:calc(var(--hud)*65);padding:calc(var(--hud)*4) calc(var(--hud)*93) 0 calc(var(--hud)*7);gap:calc(var(--hud)*24);align-items:flex-start;filter:none;background-size:100% 100%}
.zc-button{left:auto;right:calc(var(--hud)*5);top:calc(var(--hud)*2);width:calc(var(--hud)*56);height:calc(var(--hud)*51);min-width:44px;min-height:44px}
.cafe-title{position:relative;min-width:calc(var(--hud)*177);padding:0;line-height:1.1;font-size:clamp(13px,calc(var(--hud)*18),27px)}
.cafe-title>div{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}#cafe-name{max-width:calc(var(--hud)*140);line-height:1.2}.cafe-title strong{font-size:clamp(19px,calc(var(--hud)*30),42px);margin:0;line-height:1.1}.stars{display:flex;gap:0;margin:2px 0 0;line-height:1}.stars .ui-art{width:calc(var(--hud)*17);height:calc(var(--hud)*17);max-width:none}
.experience{padding-top:calc(var(--hud)*8);max-width:calc(var(--hud)*215);min-width:70px;flex:1}.xp-meter{height:calc(var(--hud)*13);min-height:10px;border:2px solid #fff;background:#fff;border-radius:12px;box-shadow:0 1px 2px #6a303f}.xp-meter span{background:linear-gradient(#70d6f6,#2298be);box-shadow:inset 0 1px 1px white}#xp-label{font-size:clamp(10px,calc(var(--hud)*11),16px);margin:3px 0 0;line-height:1}
.hud-stat{min-height:38px;min-width:calc(var(--hud)*90);gap:0;padding:0}.hud-stat strong{font-size:clamp(16px,calc(var(--hud)*24),32px)}.hud-stat>.ui-art{width:calc(var(--hud)*28);height:calc(var(--hud)*35)}.toxin{min-width:calc(var(--hud)*58)}.toxin>.ui-art{width:calc(var(--hud)*35);height:calc(var(--hud)*39)}
.side-tools,.right-tools{gap:calc(var(--hud)*9);z-index:51;align-items:center}.side-tools{top:calc(var(--hud)*2);left:calc(var(--hud)*3)}.right-tools{top:calc(var(--hud)*70);right:calc(var(--hud)*5)}
.edge-tool{position:relative;display:flex;align-items:center;justify-content:center;width:calc(var(--hud)*47);height:calc(var(--hud)*49);min-width:44px;min-height:44px;border:0;padding:0;background:none;outline:none;box-shadow:none;touch-action:manipulation}.edge-tool>.ui-art,.edge-tool>span,.edge-tool>span>.ui-art{display:block;width:100%;height:100%;max-width:none;object-fit:contain}.edge-tool i{position:absolute;right:-1px;top:0;width:18px;height:22px;color:#ee2711;font:22px var(--font);font-style:normal;-webkit-text-stroke:1px #651507;text-shadow:1px 1px white}.crew-shortcut{flex-direction:column;margin-top:2px}.crew-shortcut>span{height:80%}.crew-shortcut strong{position:absolute;bottom:-4px;font:clamp(12px,calc(var(--hud)*17),24px) var(--font);color:white;text-shadow:1px 1px #202c12,-1px -1px #202c12;margin:0}
.bottom-tools{display:none;left:auto;right:12px;bottom:12px}.camera-open .bottom-tools:not([hidden]){display:flex}.camera-buttons{padding:5px;background:#232823aa;border-radius:8px}.camera-buttons button{min-width:44px;min-height:40px}.save-label{display:none}
.entity.selected::after{left:6%;right:6%;bottom:1%;height:20%;border:0;border-radius:0;background:var(--selected-ellipse) center/100% 100% no-repeat;opacity:.86}.entity.selected>.char-art,.entity.selected>.furn-art{filter:none}.guide-arrow{position:absolute;bottom:98%;left:39%;width:30%;height:40%;pointer-events:none;z-index:30;animation:guide-bob .9s ease-in-out infinite alternate}.guide-arrow .ui-art{height:100%;width:100%;object-fit:contain}.counter-choice{background:#f1ead4!important;min-height:30px;padding:3px}.mini-bubble.ready{background:#f3edd3;color:#54852a;animation:none}.mini-bubble{border-radius:2px;box-shadow:none}.mini-bubble.timer{border-radius:3px}.mini-bubble.hungry{color:#55521e;background:#fffbe9}
@keyframes guide-bob{to{transform:translateY(-7px)}}
.selection-panel{left:0;right:0;bottom:0;height:clamp(78px,18dvh,136px);min-height:0;border:0;border-radius:0;box-shadow:none;background:#242323 var(--selection-board) center/100% 100% no-repeat;padding:12px 28px 9px 20px;gap:20px;z-index:60;font-family:var(--font)}
.selection-art{width:clamp(62px,10dvh,105px);max-height:calc(100% - 10px)}.person-selection>.selection-art{display:none}.selection-info{min-width:0;align-self:center}.selection-info h2{font-size:clamp(14px,2.8dvh,22px);line-height:1.1;color:#fff}.selection-info p,.selection-info .timer{font:clamp(12px,2.35dvh,19px) var(--font);color:#a8bf54;margin-top:7px;line-height:1.2}.person-selection .selection-info{display:grid;grid-template-columns:minmax(95px,160px) 1fr;column-gap:16px;row-gap:5px}.person-selection .selection-info h2{grid-column:1/-1}.person-selection .selection-info p{margin:0}.classic-energy{position:relative;width:100%;height:12px;border:2px solid #f8f6eb;border-radius:10px;background:#64211c;box-shadow:0 1px 2px #0b0908;overflow:hidden;align-self:center}.classic-energy i{display:block;height:100%;background:linear-gradient(#ff9a92,#ee3934 42%,#b80d1a 76%,#f3433b);border-radius:8px}.selection-actions{gap:14px;height:100%;align-items:center}.command-button{color:#fff;font-family:var(--font);min-width:50px;width:clamp(44px,7dvh,73px);min-height:44px;height:100%;max-height:90px;gap:0;padding:0}.command-button>.ui-art{width:100%;height:100%;object-fit:contain}.command-button.danger{color:white}.source-command>b{display:none}.close-square{border:0;outline:none;box-shadow:none;background:var(--close-icon) center/100% 100% no-repeat;border-radius:0;color:transparent;font-size:0;width:48px;height:46px;min-width:44px;min-height:44px;right:3px;top:3px}.selection-close{right:5px;top:-37px}
.green-button,.red-button,.neutral-button{border:0;border-radius:0;box-shadow:none;background:var(--green-button) center/100% 100% no-repeat;text-shadow:none;font-family:var(--font);color:#fff;padding:10px 19px;min-height:38px}.red-button{background-image:var(--red-button)}.neutral-button{background-image:var(--name-label);color:#365217}.green-button:hover,.neutral-button:hover{filter:brightness(1.1)}
.tutorial-banner{left:0;right:0;bottom:0;transform:none;width:100%;max-width:none;min-height:clamp(90px,23dvh,166px);padding:20px 95px 18px clamp(155px,24dvh,248px);border:0;border-radius:0;box-shadow:none;background:#222 var(--selection-board) center/100% 100% no-repeat;color:#b6d265;text-align:left;font:clamp(13px,2.9dvh,22px)/1.4 var(--font);z-index:55;display:flex;align-items:center}#tutorial-portrait{position:absolute;left:0;bottom:0;width:clamp(147px,28dvh,295px);height:clamp(220px,48dvh,450px);pointer-events:none}#tutorial-portrait canvas{height:100%;width:100%;max-width:none;object-fit:contain;object-position:left bottom}.tutorial-banner>button{position:absolute;right:18px;bottom:18px;top:auto;min-width:60px;min-height:40px;font:18px var(--font);color:white;padding:8px 12px;background:var(--green-button) center/100% 100% no-repeat}
.decorate-panel{left:0;right:0;bottom:0;min-height:clamp(78px,18dvh,136px);background:#222 var(--selection-board) center/100% 100%;border:0;border-radius:0;color:white;box-shadow:none;padding:14px 22px}.decorate-panel strong{font-size:clamp(15px,2.8dvh,22px);color:white}.decorate-panel p{color:#b9cc6a}.decorate-actions button{min-height:40px}
dialog{background:#242323 var(--chalkboard) center/100% 100% no-repeat;border:0;border-radius:0;box-shadow:none;color:#fff;padding:28px 35px;width:min(970px,calc(100vw - 30px));max-width:calc(100vw - 20px);max-height:calc(100dvh - 20px);overflow:visible}dialog::backdrop{background:#0007}dialog h2{color:white}dialog p{line-height:1.4}#modal-content{max-height:calc(100dvh - 83px);padding-right:0}dialog .small-note{color:#bfcca7}.menu-tile{background:none;border:0;box-shadow:none;color:white}.menu-tile:hover{background:#b6ce7833}.menu-grid{grid-template-columns:repeat(5,1fr)}.menu-utilities{display:flex;gap:10px;justify-content:center;margin-top:14px}.menu-footer{color:#c5c4a0}.settings-grid .setting{border-color:#7d8264}.settings-grid label{color:#c1d37c}.wallet-value{color:#b3d16b}.crew-list .staff-card,.recruit-list .staff-card{background:#ffffff0d;border-color:#a59c6e;color:white}.staff-card p,.staff-numbers{color:#c1caad}.staff-energy{background:#571c18;border:2px solid white;border-radius:10px;height:12px}.staff-energy i{background:linear-gradient(#ff9186,#d91720)}
.video-modal{width:min(1080px,calc(100vw - 20px));height:min(730px,calc(100dvh - 16px));max-width:calc(100vw - 20px);max-height:calc(100dvh - 16px);padding:0;background:none}.video-modal #modal-content{height:100%;max-height:100%;overflow:auto;padding:0}.video-modal>.close-square{z-index:80;right:1px;top:0}
.video-cookbook{height:100%;min-height:285px;padding:0 18px 16px 29px;background:#eee4c9 var(--book-paper) center/100% 100% no-repeat;display:flex;flex-direction:column;color:#141412;font-family:var(--font)}
.cookbook-shelf{height:15%;min-height:44px;max-height:90px;display:flex;align-items:flex-start;gap:clamp(4px,1vw,13px);background:var(--book-shelf) center top/100% 100% no-repeat;margin:0 -18px 0 -29px;padding:0 54px 4px 18px;flex-shrink:0}.book-stack{height:100%;width:12%;object-fit:contain;flex-shrink:0}.cookbook-shelf button{background:none;border:0;padding:2px 0 0;height:100%;width:7.5%;min-width:30px;flex-shrink:1}.cookbook-shelf button canvas{width:100%;height:100%;object-fit:contain}.cookbook-shelf button[aria-pressed=true]{filter:drop-shadow(0 0 3px #96f51c)}
.cookbook-caption{display:grid;grid-template-columns:12% 1fr 25%;gap:10px;align-items:center;min-height:28px;height:8%;max-height:46px;flex-shrink:0}.cookbook-caption>span{font-size:12px;color:#5e3430;text-align:center}.cookbook-caption h2{font:clamp(13px,2.7dvh,22px) var(--font);margin:0;text-transform:uppercase;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:white;background:var(--selection-board) center/100% 100% no-repeat;padding:7px 4px}.cookbook-caption select{font:12px var(--font);background:#f6edd8;color:#583038;border:1px solid #ac997b;max-width:100%;min-height:26px}
.recipe-strip{display:flex;position:relative;gap:6px;height:23%;max-height:128px;min-height:58px;align-items:center;flex-shrink:0;padding:4px 29px;margin-bottom:8px}.recipe-thumb{position:relative;flex:1;height:100%;min-width:0;border:0;background:var(--portrait-frame) center/100% 100% no-repeat;padding:7px;aspect-ratio:1}.recipe-thumb .furn-art{width:100%;height:100%;object-fit:contain}.recipe-thumb b{position:absolute;bottom:9%;left:0;right:0;text-align:center;font:clamp(20px,4dvh,36px) var(--font);color:white;text-shadow:2px 2px #000}.recipe-thumb.active{outline:3px solid #aad448;outline-offset:-3px}.page-arrow{position:absolute;width:27px;height:44px;min-width:27px;border:0;padding:2px;background:none;top:50%;transform:translateY(-50%)}.page-arrow .ui-art{height:100%;width:100%;max-width:none;object-fit:contain}.page-arrow.previous{left:0}.page-arrow.next{right:0}
.recipe-detail{flex:1;display:grid;grid-template-columns:27% 20% 1fr;grid-template-rows:1fr auto;column-gap:3%;padding:10px 20px 0 10px;min-height:135px;border:1px solid #8d6c3b;border-radius:4px;background:#ffffff20;box-shadow:inset 0 0 7px #ae895e40}.dish-preview{grid-row:1;display:flex;flex-direction:column;align-items:center;min-height:0}.dish-preview>.furn-art{height:calc(100% - 35px);max-height:180px;min-height:45px;width:100%;background:var(--portrait-frame) center/contain no-repeat!important;object-fit:contain;padding:7px}.dish-preview>.green-button{min-height:30px;font-size:clamp(12px,2.4dvh,18px);width:95%;padding:5px;position:relative;margin-top:-4px}.dish-cost{display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.3}.dish-cost strong{font-size:clamp(22px,5.4dvh,42px);white-space:nowrap}.dish-cost span{font-size:clamp(12px,2.7dvh,20px)}.dish-cost>b{font-size:clamp(21px,4.7dvh,36px)}.dish-facts{align-self:center;min-width:0}.dish-facts h3{color:#873355;text-align:center;font-size:clamp(15px,3.2dvh,25px);margin-bottom:10px;text-transform:uppercase;line-height:1.1}.dish-facts dl{display:grid;grid-template-columns:1fr auto;column-gap:8px;margin:0;font-size:clamp(12px,2.8dvh,21px);line-height:1.45}.dish-facts dd{margin:0}.dish-variants{grid-column:1/-1;display:flex;justify-content:center;gap:clamp(5px,1vw,16px);height:clamp(34px,8dvh,62px);align-items:center}.dish-variants button{background:none;border:0;width:clamp(29px,7.5dvh,55px);height:100%;padding:2px}.dish-variants .ui-art{width:100%;height:100%;object-fit:contain}.dish-variants button[aria-pressed=true]{filter:drop-shadow(0 0 3px #789836)}.dish-variants button:disabled{opacity:.32;filter:grayscale(1)}
.video-store{height:100%;min-height:285px;background:#e6dbc2 var(--book-paper) center/100% 100% no-repeat;font-family:var(--font);color:#171610;display:flex;flex-direction:column;padding:0 18px 8px 26px}.store-tabs{display:flex;align-items:center;gap:5px;height:14%;min-height:45px;max-height:82px;padding-right:45px;flex-shrink:0}.store-tabs button{flex:1;background:var(--red-tab) center/100% 100% no-repeat;color:white;border:0;font-size:clamp(11px,2.35dvh,19px);padding:7px 3px;white-space:nowrap;min-height:30px}.store-tabs button.active{background-image:var(--green-button)}.store-spread{flex:1;display:grid;grid-template-columns:60% 37%;gap:3%;padding:13px 22px 0 12px;min-height:0}.store-detail{display:grid;grid-template-columns:49% 47%;grid-template-rows:35px 1fr;gap:6px 4%;min-height:0}.store-detail h2{grid-column:1/-1;text-transform:uppercase;font-size:clamp(16px,3.2dvh,26px);color:#171610;margin:0;line-height:1.15;align-self:center}.store-preview.shop-card{grid-column:1;display:flex;align-items:center;flex-direction:column;min-height:0;background:none;border:0;box-shadow:none;border-radius:0;padding:0}.store-preview.shop-card>.furn-art{height:calc(100% - 80px);width:100%;max-height:270px;min-height:65px;padding:15px;background:var(--portrait-frame) center/100% 100% no-repeat!important;object-fit:contain}.store-preview.shop-card p{font-size:clamp(12px,2.6dvh,20px);margin:8px 0;color:#151911}.store-preview.shop-card strong{color:#638843}.store-preview.shop-card .green-button{min-height:34px;max-width:90%;font-size:clamp(12px,2.6dvh,20px);padding:7px 10px;width:100%}.store-description{display:flex;flex-direction:column;gap:12px;font-size:clamp(12px,2.4dvh,18px);padding-top:8px;overflow:auto}.store-description p{text-transform:uppercase;font-size:inherit}.store-description span{font-size:12px;color:#5b5b41}.store-description>b{margin-top:auto;padding-bottom:10px;font-size:20px}.store-catalog{background:var(--portrait-frame) center/100% 100% no-repeat;min-height:0;padding:12px 16px 6px;display:flex;flex-direction:column}.furniture-thumbnails{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:repeat(3,minmax(0,1fr));gap:5px;flex:1;min-height:0}.furniture-thumbnails button{background:none;border:0;padding:6px;min-width:0;min-height:0}.furniture-thumbnails button.active{background:#a0cf441f;outline:2px solid #a8bf55;outline-offset:-2px}.furniture-thumbnails .furn-art{width:100%;height:100%;object-fit:contain}.store-pagination{display:flex;justify-content:center;align-items:center;color:white;gap:10px;font-size:12px;height:33px;flex-shrink:0}.store-pagination button{background:none;border:0;height:32px;width:35px;padding:0}.store-pagination .ui-art{height:100%;width:100%;object-fit:contain}.store-footer{display:flex;align-items:center;justify-content:space-between;height:45px;flex-shrink:0;padding:0 8px}.store-footer>span{display:flex;align-items:center;gap:3px;font:18px var(--font);color:#293323}.store-footer .ui-art{width:22px;height:30px;object-fit:contain}.back-button{background:none;border:0;padding:0;width:66px;height:44px}.back-button .ui-art{width:100%;height:100%;object-fit:contain}
.character-modal{background:var(--chalkboard) center/100% 100% no-repeat}.person-info-view{display:grid;grid-template-columns:53% 37%;gap:10%;height:100%;padding:30px 55px 30px 45px;font-family:var(--font);color:white}.person-info-copy{display:flex;flex-direction:column;min-height:0;overflow:auto;padding-right:2px}.person-info-copy h2{background:var(--name-label) center/100% 100%;padding:15px 8px;color:#3e5925;text-align:center;font-size:clamp(20px,4dvh,32px);margin:0 0 14px}.person-info-copy h3{text-align:center;font-size:clamp(16px,3.4dvh,27px);text-transform:uppercase;margin:0 0 8px}.person-info-copy .classic-energy{height:20px;min-height:15px;max-width:85%;margin:auto}.energy-total{align-self:flex-end;margin-right:8%;font-size:clamp(13px,2.7dvh,21px)}.person-info-copy p{font-size:clamp(12px,2.7dvh,22px);text-transform:uppercase;line-height:1.3;margin:15px 0}.person-info-copy dl{display:grid;grid-template-columns:1fr auto;font-size:clamp(13px,2.8dvh,22px);margin:12px 0;line-height:1.35}.person-info-copy dd{margin:0;color:#a6bd57}.pinned-character{align-self:center;position:relative;background:var(--pinned-paper) center/100% 100% no-repeat;height:88%;width:100%;padding:24px 12px 12px}.pinned-character .char-art{height:100%;width:100%;object-fit:contain}.paper-pin{position:absolute;left:43%;top:-12px;width:28px;height:42px}
.fridge-modal{background:#b5c1c4 var(--fridge-interior) center/100% 100% no-repeat}.video-fridge{height:100%;min-height:280px;position:relative;display:flex;align-items:center;flex-direction:column;padding:30px 50px 25px;font-family:var(--font);color:#17211e}.video-fridge h2{font-size:clamp(20px,4dvh,32px);text-transform:uppercase;color:#171e1a;margin:0;text-align:center}.fridge-dish{position:absolute;top:22%;left:23%;width:54%;height:49%;display:flex;flex-direction:column;align-items:center;justify-content:flex-end}.fridge-dish .furn-art{height:75%;width:80%;object-fit:contain}.fridge-dish strong{color:white;text-shadow:1px 1px #333;font-size:18px}.fridge-serve{position:absolute;bottom:14%;font-size:clamp(16px,3dvh,24px);min-width:110px}.fridge-position{position:absolute;bottom:4%;font-size:14px}.video-fridge .page-arrow{width:44px;left:5%}.video-fridge .page-arrow.next{left:auto;right:5%}.empty-fridge{margin-top:20%;text-align:center;font-size:clamp(16px,3dvh,24px);color:#343f3c}
.goals-modal{background:#1b201b var(--todo-paper) center/100% 100% no-repeat}.video-goals{height:100%;min-height:285px;padding:clamp(38px,7dvh,65px) 10% 28px;font-family:var(--font);color:#29291c;display:flex;flex-direction:column}.video-goals h2{font-size:clamp(20px,4.2dvh,34px);text-align:center;color:#383221;margin-bottom:10px}.paper-tasks{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:16px 9%;flex:1;min-height:0;overflow:auto}.paper-tasks article{display:flex;gap:7px;border-bottom:1px solid #90825c66;padding:3px 0 8px}.task-checkbox{width:20px;height:22px;flex-shrink:0}.task-checkbox .ui-art{width:100%;height:100%;object-fit:contain}.paper-tasks article>div{min-width:0}.paper-tasks h3{font-size:clamp(13px,2.8dvh,22px);line-height:1.15}.paper-tasks p{font-size:clamp(12px,2.35dvh,17px);line-height:1.2;margin:7px 0}.paper-tasks article span:not(.task-checkbox){display:block;font-size:12px;color:#4c512e}.paper-tasks .green-button{font-size:13px;min-height:30px;margin-top:6px;padding:6px 12px}.goals-pages{display:flex;align-items:center;justify-content:center;gap:20px;margin-top:8px;font-size:13px}.goals-pages button{min-width:36px;min-height:28px;background:none;border:0;font-family:var(--font);color:#733728}
@media(orientation:landscape) and (max-height:500px){.selection-panel{padding:8px 16px;gap:10px}.selection-actions{gap:7px}.person-selection .selection-info{grid-template-columns:110px 1fr;gap:5px 9px}.command-button{width:48px;min-width:44px}.selection-info p{font-size:12px}.selection-close{width:44px;height:44px;top:-34px}.tutorial-banner{padding-top:14px;padding-bottom:12px;font-size:13px}.side-tools,.right-tools{gap:3px}.edge-tool{height:44px}.cookbook-caption h2{padding:5px 2px}.video-cookbook{padding-bottom:8px}.recipe-strip{margin-bottom:5px;gap:4px}.recipe-detail{padding:7px 12px 0 7px;min-height:130px}.dish-facts h3{margin-bottom:5px}.dish-facts dl{font-size:13px;line-height:1.35}.dish-preview>.green-button{font-size:12px;min-height:28px}.dish-variants{height:35px}.dish-variants button{width:32px}.store-spread{padding-top:7px}.store-detail{grid-template-rows:26px 1fr}.store-detail h2{font-size:16px}.store-preview.shop-card>.furn-art{height:calc(100% - 65px);padding:9px}.store-preview.shop-card p{margin:5px 0;font-size:13px}.store-preview.shop-card .green-button{min-height:29px;font-size:12px}.store-footer{height:36px}.store-description{gap:7px;padding-top:0}.store-description p{font-size:12px}.store-description>b{font-size:16px}.person-info-view{padding:18px 47px 20px 32px}.person-info-copy h2{padding:10px 8px;font-size:20px;margin-bottom:7px}.person-info-copy h3{font-size:16px}.person-info-copy p{font-size:13px;margin:9px 0}.person-info-copy dl{font-size:13px;margin:5px 0}.person-info-copy .classic-energy{height:15px}.pinned-character{padding:15px 8px 8px}.paper-pin{width:23px;height:32px}.menu-grid{gap:6px}.menu-tile{min-height:65px}.menu-tile>.furn-art,.menu-tile>.char-art{height:42px}.menu-utilities{margin-top:6px}.menu-utilities button{font-size:12px;min-height:32px;padding:6px 13px}.menu-footer{margin-top:6px}.paper-tasks{gap:8px 8%}.video-goals{padding-top:38px;padding-bottom:16px}.paper-tasks h3{font-size:14px}.paper-tasks p{font-size:12px;margin:4px 0}}
@media(orientation:landscape) and (max-height:340px){.side-tools,.right-tools{gap:0}.edge-tool{min-height:39px;height:39px}.right-tools{top:50px}.tutorial-banner{min-height:83px;display:flex}.selection-actions{gap:3px}.selection-info p{font-size:11px}.cookbook-shelf{min-height:40px}.recipe-strip{min-height:52px}.store-tabs{min-height:40px}.store-tabs button{font-size:10px}}
dialog a{color:#d2e788}.video-modal a{color:#5b7029}.credits{color:#bec7a8}.menu-tile>.ui-art{height:58px;width:70px;object-fit:contain}.person-selection .selection-info p{max-height:3.6em;overflow:auto}.video-store .store-preview.shop-card>.furn-art{flex-shrink:1}.video-store .store-detail h2{color:#191c15}.video-modal .page-arrow:disabled{opacity:.25}

/* The source face is already heavy. Prevent browser-generated bold and fallback menu fonts. */
:root{font-synthesis:none}
#modal,#modal :is(h1,h2,h3,h4,p,dl,dt,dd,span,b,strong,label,button,select,option,input,small,summary,li){font-family:var(--font);font-weight:400;letter-spacing:0;font-synthesis:none}
#modal h2,#modal h3{text-shadow:none}
.selection-panel,.selection-panel :is(h2,p,b,strong),.tutorial-banner{font-family:var(--font);font-weight:400;letter-spacing:0}
#modal .menu-stats{display:grid;grid-template-columns:minmax(0,1fr) max-content;column-gap:1em;row-gap:.12em;margin:0;line-height:1.25;font-weight:400;font-variant-numeric:tabular-nums}
#modal .menu-stats dt{min-width:0;text-align:left}
#modal .menu-stats dd{margin:0;text-align:right;white-space:nowrap}
#modal .store-description{gap:12px;padding-top:5px}
#modal .store-description p{line-height:1.3;font-size:clamp(12px,2.6dvh,19px);color:#171711}
#modal .store-stats{font-size:clamp(12px,2.5dvh,18px);margin-top:auto;margin-bottom:8px}
#modal .person-info-copy .menu-stats{font-size:clamp(13px,2.8dvh,22px);margin:10px 0}
#modal .staff-card{min-width:0;display:flex;flex-direction:column;gap:6px}
#modal .staff-card-top{align-items:flex-start}
#modal .staff-card-top>div{flex:1;min-width:0}
#modal .staff-card h3{color:#c8da98;font-size:clamp(15px,2.9dvh,21px);line-height:1.2;margin:0 0 6px;overflow-wrap:break-word}
#modal .staff-card .staff-stats{font-size:clamp(12px,2.45dvh,17px);color:white}
#modal .staff-card .character-description{display:block;max-height:none;overflow:visible;line-height:1.3;font-size:clamp(12px,2.45dvh,17px);text-transform:uppercase;margin:5px 0;flex:1}
#modal .staff-card .modal-actions,#modal .recruit-list .staff-card>.green-button{margin-top:auto}
#modal .staff-numbers{flex-wrap:wrap;line-height:1.25}
.book-library{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px 12px}
.book-library-item{display:flex;flex-direction:column;align-items:center;gap:7px;background:none;border:0;padding:6px;color:white;min-width:0}
.book-library-item>.furn-art{width:70px;height:90px;object-fit:contain}
.book-library-item>span{font-size:14px;line-height:1.2;text-transform:uppercase}
.book-library-item>small{font-size:11px;color:#c0cf9b}
.book-library-item[aria-pressed=true]{background:#a9c65c22;outline:2px solid #a9c65c}
.book-filters{margin:20px 0 0;justify-content:center;align-items:center}

/* Match the 16:9 cookbook reference. The paper already contains its detail and image frames. */
.book-modal.video-modal{width:min(100vw,calc(100dvh * 16 / 9));height:min(100dvh,calc(100vw * 9 / 16));max-width:100vw;max-height:100dvh;aspect-ratio:16/9;padding:0;background:none}
.book-modal::backdrop{background:#28251df5}
.book-modal #modal-content{width:100%;height:100%;max-height:100%;padding:0;overflow:hidden}
.book-modal>.close-square{width:8%;height:14.5%;min-width:44px;min-height:44px;right:.6%;top:0;font-size:0;z-index:90}
.video-cookbook{container-type:size;container-name:cookbook;width:100%;height:100%;min-height:0;position:relative;display:block;padding:0;margin:0;background-size:102% 100%;background-position:center;color:#090a08}
.cookbook-shelf{position:absolute;top:0;left:0;right:0;display:block;height:20.5%;min-height:0;max-height:none;margin:0;padding:0;background-size:100% 152%;background-position:center top}
.cookbook-shelf .book-stack-button{position:absolute;left:0;top:0;width:14.7%;height:88%;padding:0;margin:0;min-width:0}
.book-stack-button>.book-stack{width:100%;height:100%;object-fit:fill}
.shelf-books{position:absolute;left:15.8%;top:0;right:17%;height:81%;display:flex;gap:4.8%;align-items:flex-start}
.cookbook-shelf .shelf-books button{width:11.4%;height:100%;min-width:0;flex:none;padding:0;position:relative}
.shelf-books button>.furn-art{width:100%;height:100%;object-fit:fill}
.shelf-books button>.shelf-selection{position:absolute;inset:0;pointer-events:none}
.cookbook-shelf button[aria-pressed=true]{filter:none}
.book-shelf-end{position:absolute;right:.8%;top:1%;height:88%;width:14.5%;object-fit:fill;pointer-events:none}
.cookbook-caption{position:absolute;top:19.3%;left:0;width:100%;height:9.5%;min-height:0;max-height:none;display:block}
.cookbook-caption h2{position:absolute;left:26.5%;top:0;width:47.3%;height:100%;display:flex;align-items:center;justify-content:center;font-size:var(--book-caption-size,min(2.35cqw,4.1778cqh))!important;line-height:1.15;padding:0 2.5%;margin:0!important;background:var(--book-shelf) center bottom/212.4% 307.5% no-repeat;color:white;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cookbook-caption .recipe-count{position:absolute;left:17%;top:36%;font-size:min(1.55cqw,2.7556cqh);color:#7c2c20;line-height:1}
.cookbook-caption .cookbook-rank{position:absolute;left:75.8%;top:36%;width:22.7%;font-size:var(--rank-size,min(1.25cqw,2.2222cqh));line-height:1;white-space:nowrap;color:#782820}
.recipe-strip{position:absolute;left:8%;right:6.25%;top:31%;height:18.8%;min-height:0;max-height:none;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.2cqw;align-items:stretch;padding:0;margin:0}
.recipe-thumb{height:100%;width:100%;padding:0;aspect-ratio:auto;min-width:0;background-size:100% 100%}
.recipe-thumb>.recipe-miniature{width:100%;height:100%;padding:9%;object-fit:contain}
.recipe-thumb.locked>.recipe-miniature{filter:brightness(0);opacity:.95;padding:12%}
.recipe-thumb>.recipe-lock{position:absolute;left:23%;top:8%;width:54%;height:81%;padding:0;object-fit:contain}
.recipe-thumb b{bottom:7%;font-size:min(3.45cqw,6.1333cqh);line-height:1;text-shadow:none}
.recipe-thumb.active{outline:none}
.recipe-thumb:focus-visible{outline:3px solid #88b545;outline-offset:-3px}
.recipe-strip>.page-arrow{width:4.8%;height:79%;min-width:0;padding:0}
.recipe-strip>.page-arrow.previous{left:-5.6%}
.recipe-strip>.page-arrow.next{right:-6%}
.recipe-detail{position:absolute;left:7.1%;top:50.6%;width:88.4%;height:45.6%;display:block;padding:0;min-height:0;border:0;border-radius:0;background:none;box-shadow:none}
.dish-preview{position:absolute;left:2.5%;top:6%;width:19.8%;height:66%;display:block;min-height:0}
.dish-preview>.furn-art{width:100%;height:89%;min-height:0;max-height:none;padding:8%;background:none!important;object-fit:contain}
.dish-preview>.green-button{position:absolute;left:2%;bottom:0;width:89%;height:18%;min-height:0;margin:0;padding:0;font-size:min(2.05cqw,3.6444cqh);line-height:1;background-image:var(--chooser-button)}
.dish-cost{position:absolute;left:29.8%;top:13%;width:18%;height:47%;display:flex;flex-direction:column;justify-content:center;gap:.25cqw;line-height:1}
.dish-cost strong{display:flex;justify-content:center;align-items:baseline;font-size:clamp(min(1.9cqw,3.3778cqh),calc(min(21cqw,37.3333cqh) / var(--price-characters)),min(3.65cqw,6.4889cqh));line-height:1.1;color:#050603}
.dish-cost .price-symbol{font-size:1.4em;line-height:1}
.dish-cost>span{font-size:min(1.9cqw,3.3778cqh);line-height:1.1}
.dish-cost>b{font-size:min(3.5cqw,6.2222cqh);line-height:1}
.dish-facts{position:absolute;left:56.5%;top:2%;width:32%;height:63%;align-self:auto;min-width:0}
.dish-facts h3{position:absolute;top:0;left:-7%;width:114%;height:28%;display:flex;align-items:center;justify-content:center;font-size:clamp(min(1.7cqw,3.0222cqh),calc(min(65cqw,115.5556cqh) / var(--title-characters)),min(2.6cqw,4.6222cqh));line-height:1.03;color:#913652;text-align:center;text-transform:uppercase;margin:0;padding:0;overflow-wrap:normal}
#modal .dish-facts .recipe-stats{position:absolute;left:0;top:32%;width:100%;font-size:min(2.35cqw,4.1778cqh);line-height:1.12;row-gap:.2cqw;column-gap:.8cqw;margin:0;color:#080907}
.dish-facts .recipe-stats dt{white-space:nowrap}
.dish-variants{position:absolute;left:6%;top:75%;width:80%;height:25%;display:flex;align-items:center;justify-content:space-between;gap:0;margin:0;min-height:0}
.dish-variants button{width:9.3%;height:100%;min-height:0;padding:0;border:0}
.dish-variants .ui-art{width:100%;height:100%;object-fit:contain}
.dish-variants button[aria-pressed=true]{filter:none}
.dish-variants button:disabled{opacity:1;filter:none}
.video-cookbook>.empty-state{position:absolute;left:37%;right:8%;top:62%;font-size:min(2.4cqw,4.2667cqh);text-align:center}
@media(orientation:landscape) and (max-height:500px){
 #modal .staff-card .character-description{display:block;font-size:12px}
 #modal .staff-card .staff-stats{font-size:12px}
 #modal .staff-card h3{font-size:15px}
 .book-library{gap:8px}
 .book-library-item>.furn-art{height:58px;width:47px}
 .book-library-item>span{font-size:12px}
 .book-filters{margin-top:12px}
}

/* Opening chef chooser: source menu paper, portrait chalkboard and awning. */
.chef-modal.video-modal{background:#ab9679 var(--menu-wall) center/cover no-repeat}
.chef-modal>.close-square{display:none}
.video-chefs{height:100%;min-height:280px;position:relative;padding:16dvh max(10vw,env(safe-area-inset-right)) 8dvh max(10vw,env(safe-area-inset-left));font-family:var(--font);display:flex;flex-direction:column}
.video-chefs>.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.chef-awning{position:absolute;inset:0 0 auto;height:11dvh;background:var(--chooser-awning) center top/100% 100% no-repeat;pointer-events:none}
.chef-spread{display:grid;grid-template-columns:49% 42%;gap:9%;height:100%;min-height:0;max-width:1050px;width:100%;margin:auto}
.chef-paper{background:var(--chef-paper) center/100% 100% no-repeat;position:relative;min-height:0;padding:4% 5% 6%}
.chef-paper>.paper-pin{width:clamp(16px,3.5dvh,32px);height:clamp(25px,5.5dvh,46px);top:-3%;left:47%}
.chef-heads{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));gap:4%;height:100%}
.chef-head{background:none;border:0;padding:4%;min-width:0;min-height:0;touch-action:manipulation}
.chef-head>.furn-art{width:100%;height:100%;object-fit:contain;max-width:none}
.chef-head[aria-pressed=true]>.furn-art{filter:drop-shadow(0 0 4px #75a02f)}
.chef-head:focus-visible{outline:3px solid #638538;outline-offset:-2px}
.chef-details{background:var(--chef-board) center/100% 100% no-repeat;padding:8% 8% 7%;display:grid;grid-template-rows:60% 1fr auto;gap:5%;min-height:0}
.chef-preview-row{display:grid;grid-template-columns:48% 52%;align-items:center;min-height:0}
.chef-preview-row dl{display:grid;grid-template-columns:auto auto;column-gap:4px;line-height:1.35;font-size:clamp(10px,1.85dvh,15px);margin:0;white-space:nowrap}
.chef-preview-row dd{margin:0}
.chef-preview{height:100%;min-width:0;align-self:end}
.chef-preview>.char-art{width:100%;height:100%;object-fit:contain;object-position:center bottom;max-width:none}
.chef-description{text-align:center;text-transform:uppercase;font-size:clamp(11px,2dvh,17px);line-height:1.25!important;margin:0;align-self:center}
.chef-confirm.green-button{background-image:var(--chooser-button);font-size:clamp(12px,2.55dvh,21px);padding:5px 4px;min-height:34px;white-space:nowrap}
.chef-reminder{position:absolute;bottom:1.5%;left:max(12px,env(safe-area-inset-left));margin:0;max-width:75%;font-size:clamp(11px,2.4dvh,20px);color:#853127;text-shadow:0 1px #c9baa1}
.chef-back{position:absolute;bottom:1.4%;right:max(14px,env(safe-area-inset-right));height:clamp(36px,8dvh,62px);width:clamp(54px,12dvh,89px)}
.chef-back>.furn-art{width:100%;height:100%;object-fit:contain}
.fridge-actions{position:absolute;bottom:16%;display:flex;justify-content:center;gap:clamp(20px,6vw,80px);width:75%}
.fridge-actions>.green-button{min-width:110px;font-size:clamp(16px,3dvh,24px)}
.fridge-hint{position:absolute;bottom:6.8%;left:14%;right:14%;text-align:center;font-size:clamp(11px,2.2dvh,17px);line-height:1.2!important;margin:0;color:#23362e}
.video-fridge .fridge-position{bottom:2.5%}
.unlock-confirmation{text-align:center}
.unlock-food{display:flex;align-items:center;justify-content:center;gap:20px;margin:10px auto;max-width:600px}
.unlock-food>.furn-art{width:clamp(75px,20dvh,140px);height:clamp(65px,17dvh,125px);object-fit:contain}
.unlock-food h3{text-transform:uppercase;font-size:clamp(17px,3.4dvh,27px);color:#b7d570}
.unlock-confirmation>p{max-width:560px;margin:10px auto}
@media(orientation:landscape) and (max-height:500px){
 .video-chefs{padding-top:15dvh;padding-left:max(9vw,env(safe-area-inset-left));padding-right:max(9vw,env(safe-area-inset-right))}
 .chef-spread{grid-template-columns:49% 44%;gap:7%}
 .chef-details{padding:8% 7% 7%;gap:4%}
 .chef-preview-row dl{font-size:10px;line-height:1.35;column-gap:3px}
 .chef-description{font-size:11px}
 .chef-confirm.green-button{font-size:13px;min-height:32px}
 .chef-reminder{font-size:11px}
 .fridge-actions>.green-button{min-height:34px;padding:6px 12px;font-size:15px;min-width:100px}
 .fridge-hint{font-size:12px}
 .menu-utilities{gap:6px;flex-wrap:wrap}
 .menu-utilities button{padding-left:10px;padding-right:10px}
}
.neighborhood{background:none;border:0;box-shadow:none}.map-cafe{background:none;border:0;box-shadow:none;color:white}.map-cafe .furn-art{height:120px;width:180px}.map-cafe:hover{background:#afd64422}.map-cafe small{color:#c4d18f}.victory-modal{background:var(--chalkboard) center/100% 100% no-repeat}.video-victory{height:100%;padding:28px 40px 25px;font-family:var(--font);display:flex;flex-direction:column;min-height:285px}.video-victory>h2{text-align:center;font-size:clamp(20px,4.5dvh,34px);margin:0 0 8px;text-decoration:underline}.video-victory>h3{text-align:center;color:#b9d462;font-size:clamp(17px,3.7dvh,29px);margin:0 0 20px}.loot-display{display:grid;grid-template-columns:40% 1fr;gap:5%;flex:1;min-height:0}.pinned-loot{position:relative;background:var(--pinned-paper) center/100% 100%;padding:15px}.pinned-loot>.furn-art{height:100%;width:100%;object-fit:contain}.pinned-loot>.paper-pin{width:29px;height:45px;top:-15px}.loot-copy{display:flex;flex-direction:column;text-align:center}.loot-copy>h3{text-transform:uppercase;font-size:clamp(19px,4dvh,30px);margin-top:10px}.loot-rewards{display:flex;justify-content:space-around;gap:30px;margin-top:auto;font-size:clamp(20px,4.2dvh,32px)}.loot-rewards span{display:flex;align-items:center}.loot-rewards .ui-art{width:34px;height:44px}.loot-copy .modal-actions{justify-content:space-around;gap:18px;margin-top:20px}.loot-copy .green-button{font-size:clamp(16px,3dvh,25px);min-width:80px}@media(max-height:500px){.map-cafe .furn-art{height:65px;width:115px}.video-victory{padding:18px 25px 16px}.video-victory>h3{margin-bottom:14px}.loot-copy .modal-actions{margin-top:12px;gap:10px}.loot-copy .green-button{padding:8px 10px}}

/* Unreleased reference refinements. Geometry follows the 1280 × 720 video. */
#grass-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.cafe-door{position:absolute;z-index:1;padding:0;border:0;background:none;clip-path:polygon(0 0,100% 18.84%,100% 100%,0 81.16%);touch-action:none}
.cafe-door:focus-visible{background:#ffffff33;outline:2px solid #c2e557;outline-offset:-2px}
.entity.stove .stove-pot{position:absolute;width:48%;height:auto;left:26%;top:3%;pointer-events:none;object-fit:contain}
/* Video 00:12 / 02:44: fixed positions on the awning, including the rating
   centered under the café name rather than shifted by the level or XP text. */
.awning{left:max(9.21875%,env(safe-area-inset-left));right:env(safe-area-inset-right);height:13.75dvh;display:block;padding:0;container-type:size}
.cafe-title{position:absolute;left:1.45%;top:11%;width:24%;height:66%;min-width:0;padding:0;font-size:min(2.24cqw,3.9822cqh)}
.cafe-title>div{display:contents}
#cafe-name{position:absolute;left:0;top:0;width:80%;max-width:none;font-size:clamp(min(1.25cqw,2.2222cqh),calc(min(26cqw,46.2222cqh) / var(--name-characters,9)),min(2.24cqw,3.9822cqh));line-height:1.2;white-space:nowrap}
.cafe-title strong{position:absolute;right:0;top:0;margin:0;font-size:min(3.72cqw,6.6133cqh);line-height:1.1}
.stars{position:absolute;left:15%;top:51%;width:60%;height:53%;display:flex;justify-content:center;gap:0;margin:0}
.stars .ui-art{width:20%;height:100%;max-width:none;object-fit:contain}
.experience{position:absolute;left:31%;top:17%;width:21.6%;height:48%;padding:0;min-width:0;max-width:none}
.xp-meter{height:48%;border:2px solid #fff;border-radius:2cqw}
#xp-label{font-size:min(1.5cqw,2.6667cqh);line-height:1.05;margin-top:1%;white-space:nowrap}
.hud-stat{position:absolute;top:3%;height:62%;min-height:0;min-width:0;gap:0;padding:0}
.money{left:55.8%;width:16%}
.toxin{left:71.8%;width:12%}
.hud-stat strong{font-size:min(2.67cqw,4.7467cqh);min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hud-stat>.ui-art{width:3.1cqw;height:100%;max-width:none;object-fit:contain}
.toxin>.ui-art{width:4.3cqw}
.zc-button{left:auto;right:.3%;top:2%;width:8.9%;height:93%;min-width:0;min-height:0;padding:0}
.awning,.awning :is(strong,b,span),.float-text{font-family:var(--font);font-weight:400;font-synthesis:none;letter-spacing:0}
.float-text.xp-reward,.modal-xp-reward{display:block;width:0;height:0;transform:none;animation:none;text-shadow:none;-webkit-text-stroke:0;pointer-events:none}
.xp-reward>.reward-symbol,.modal-xp-reward>.reward-symbol{position:absolute;right:0;top:0;width:1em;height:.625em;transform:translateY(-50%);opacity:var(--status-alpha)}
.xp-reward>.status-number,.modal-xp-reward>.status-number{position:absolute;left:1em;top:0;transform:translateY(-50%)}
.float-text.damage{color:#f85c42}
.modal-xp-reward{position:absolute;z-index:100;right:15%;top:17%;font-size:clamp(19px,3.5dvh,30px)}
@keyframes xp-rise{0%{opacity:0;transform:translateY(12px) scale(.85)}15%,65%{opacity:1;transform:translateY(0) scale(1)}100%{opacity:0;transform:translateY(-35px) scale(1)}}
.video-modal{width:min(100vw,calc(100dvh * 16 / 9));height:min(100dvh,calc(100vw * 9 / 16));max-width:100vw;max-height:100dvh;aspect-ratio:16/9;margin:auto;padding:0}
.video-modal #modal-content{height:100%;max-height:100%;padding:0}
.video-modal>.close-square{width:8%;height:14.5%;right:.6%;top:0}

/* The chooser uses inline stat values; the information page aligns them right. */
.video-chefs{container-type:size;padding:0;min-height:0;height:100%;display:block}
.chef-awning{height:10.5%}
.chef-spread{position:absolute;left:9.2%;top:17.3%;width:79.4%;height:76%;max-width:none;display:grid;grid-template-columns:50.4% 41.8%;gap:7.8%;margin:0}
.chef-paper{padding:4% 5% 6%}
.chef-paper>.paper-pin{width:6.2%;height:8.7%;top:-3.5%;left:47%}
.chef-details{position:relative;display:block;padding:0}
.chef-preview-row{position:absolute;inset:0;display:block}
#modal .chef-preview-row .menu-stats{position:absolute;left:8.5%;top:22%;width:48%;display:block;font-size:min(1.65cqw,2.9333cqh);line-height:1.15;white-space:nowrap}
#modal .chef-preview-row .menu-stats :is(dt,dd){display:inline;text-align:left}
#modal .chef-preview-row .menu-stats dd{margin-left:.2em}
#modal .chef-preview-row .menu-stats dd::after{content:'';display:block}
.chef-preview{position:absolute;left:48%;top:9%;width:48%;height:45%}
.chef-description{position:absolute;left:9%;right:9%;top:61.8%;height:13.5%;display:flex;align-items:center;justify-content:center;font-size:min(1.65cqw,2.9333cqh);line-height:1.2!important;margin:0}
.chef-confirm.green-button{position:absolute;left:18%;top:84%;width:65%;height:8.8%;min-height:0;padding:0;font-size:min(2.45cqw,4.3556cqh)}
.chef-reminder{bottom:1.6%;left:.5%;font-size:min(2.25cqw,4.0000cqh);max-width:80%;line-height:1;text-shadow:none}
.chef-back{bottom:1.6%;right:1.2%;width:8.3%;height:10%;min-height:0}

/* 04:28: named banner, occupation, energy, description, stats, pinned portrait. */
.person-info-view{container-type:size;position:relative;display:block;width:100%;height:100%;padding:0;overflow:hidden}
.person-info-copy{position:absolute;left:10.6%;top:4.2%;width:43%;height:84%;display:block;overflow:visible;padding:0}
.person-info-copy h2{position:absolute;left:0;top:0;width:89%;height:18%;display:flex;align-items:center;justify-content:center;padding:0 3%;margin:0;color:#416320;font-size:clamp(min(1.7cqw,3.0222cqh),calc(min(35cqw,62.2222cqh) / var(--name-characters)),min(3.4cqw,6.0444cqh));line-height:1;text-transform:none}
.person-info-copy h3{position:absolute;left:0;top:20.8%;width:89%;height:8%;display:flex;align-items:center;justify-content:center;margin:0;font-size:clamp(min(1.7cqw,3.0222cqh),calc(min(51cqw,90.6667cqh) / var(--type-characters)),min(3.2cqw,5.6889cqh));line-height:1.1}
.person-info-copy .classic-energy{position:absolute;left:9%;top:29.4%;width:70%;max-width:none;height:6.7%;min-height:0;margin:0;border-width:.35cqw;border-radius:4cqw}
.person-info-copy .energy-total{position:absolute;right:21%;top:37%;margin:0;font-size:min(2.45cqw,4.3556cqh);line-height:1}
#modal .person-info-copy>p{position:absolute;left:0;top:43.8%;width:100%;height:24%;margin:0;font-size:clamp(min(1.4cqw,2.4889cqh),calc(min(340cqw,604.4444cqh) / var(--description-characters)),min(2.45cqw,4.3556cqh));line-height:1.15;text-transform:uppercase;overflow:auto}
#modal .person-info-copy .menu-stats{position:absolute;left:0;top:69%;width:100%;font-size:min(2.45cqw,4.3556cqh);line-height:1.15;row-gap:.2cqw;margin:0}
.person-info-copy>.green-button{position:absolute;left:0;bottom:0;font-size:min(1.7cqw,3.0222cqh);min-height:0;padding:.65cqw 1.5cqw}
.pinned-character{position:absolute;left:60.4%;top:21%;width:28.4%;height:70.5%;padding:0}
.pinned-character>.char-art{position:absolute;left:2%;top:21%;width:96%;height:78%;object-fit:contain;object-position:center bottom}
.pinned-character>.paper-pin{left:40%;top:0;width:23%;height:17%}
/* Pending after Build 11: footage 04:16 payment and departing-customer feedback. */
.float-text.sale-reward{display:flex;align-items:center;gap:.15em;white-space:nowrap;font-size:clamp(16px,3.5dvh,28px);color:#fff;-webkit-text-stroke:0;text-shadow:none;pointer-events:none}
.float-text.sale-reward>.ui-art{width:1em;height:1.4em;object-fit:contain}
.entity .mini-bubble.source-status{left:58%;bottom:85%;width:48%;height:auto;aspect-ratio:161/138;min-width:0;min-height:0;border:0;padding:0;background:none;box-shadow:none}
.entity .mini-bubble.source-status>.status-frame{position:absolute;inset:0;width:100%;height:100%;max-height:none;object-fit:contain}
.entity .mini-bubble.source-status>.status-symbol{position:absolute;left:29%;top:11%;width:44%;height:58%;max-height:none;object-fit:contain}

/* Counter quantities remain above adjacent counters and scale with the café. */
.world{container-type:inline-size}
.counter-quantity{position:absolute;transform:translate(-50%,-50%);z-index:1300;color:white;font-family:var(--font);font-weight:400;line-height:1;text-shadow:-1px -1px #25231c,1px 1px #25231c;white-space:nowrap;pointer-events:none}
.decorating .counter-quantity{opacity:.35}

/* Video 01:18: store title above the portrait, description beside it, XP
   below the description, and six items on the right-hand blackboard. */
#modal.shop-modal>.close-square{display:none}
#modal .video-store{container-type:size;position:relative;display:block;width:100%;height:100%;min-height:0;padding:0;background:#242522 var(--book-paper) center bottom/100% 110% no-repeat;color:#080906}
#modal .store-hud{position:absolute;inset:0;pointer-events:none;color:#fff}
#modal .store-awning{position:absolute;left:9.4%;top:0;width:90.6%;height:14%;max-width:none}
#modal .store-cafe-name{position:absolute;left:10.7%;top:1.7%;width:17.5%;overflow:hidden;white-space:nowrap;font-size:min(2cqw,3.5556cqh);text-transform:uppercase}
#modal .store-rating{position:absolute;left:14.3%;top:6%;width:12.4%;height:4.3%;display:flex}
#modal .store-rating>.ui-art{width:20%;height:100%;object-fit:contain}
#modal .store-level{position:absolute;left:30%;top:2%;font-size:min(3.2cqw,5.6889cqh)}
#modal .store-xp-track{position:absolute;left:37.5%;top:2.5%;width:19.5%;height:3%;border:.3cqw solid white;border-radius:3cqw;background:#f4f1ee;overflow:hidden}
#modal .store-xp-track>i{display:block;height:100%;background:linear-gradient(#b4ecff,#26abd1)}
#modal .store-xp-total{position:absolute;right:43%;top:6.3%;font-size:min(1.3cqw,2.3111cqh);line-height:1}
#modal :is(.store-cash,.store-toxin){position:absolute;top:1.3%;height:7.3%;display:flex;align-items:center;font-size:min(2.4cqw,4.2667cqh);gap:0}
#modal .store-cash{left:60.5%}#modal .store-toxin{left:75%}
#modal :is(.store-cash,.store-toxin)>.ui-art{width:3cqw;height:100%;object-fit:contain}
#modal .store-toxin>.ui-art{width:4.4cqw}
#modal .store-zc{position:absolute;left:91.6%;top:.8%;width:8.2%;height:12.7%;pointer-events:auto;background:none;border:0;padding:0}
#modal .store-zc>.ui-art{width:100%;height:100%;object-fit:contain}
#modal .store-tabs{position:absolute;left:.5%;top:14.6%;width:79%;height:7.2%;min-height:0;max-height:none;gap:.7%;padding:0}
#modal .store-tabs button{height:100%;min-height:0;padding:0 .5cqw;font-size:min(1.65cqw,2.9333cqh);flex:1;line-height:1}
#modal .store-spread,#modal .store-detail,#modal .store-preview.shop-card,#modal .store-description,#modal .store-footer{position:static;display:block;height:auto;min-height:0;margin:0;padding:0;overflow:visible}
#modal .store-detail h2{position:absolute;left:9.4%;top:28%;width:24.4%;height:6.2%;display:flex;align-items:center;justify-content:center;margin:0;line-height:1.05;text-align:center;font-size:clamp(min(1.3cqw,2.3111cqh),calc(min(42cqw,74.6667cqh) / var(--item-characters)),min(2.45cqw,4.3556cqh))}
#modal .store-preview.shop-card>.furn-art{position:absolute;left:9.4%;top:36.1%;width:24.4%;height:41%;min-height:0;max-height:none;padding:2.2cqw;object-fit:contain}
#modal .store-preview.shop-card>p{position:absolute;left:9.4%;top:79.4%;width:24.4%;height:6%;margin:0;display:flex;align-items:center;justify-content:center;gap:.25em;font-size:min(1.7cqw,3.0222cqh);color:#090a07}
#modal .store-preview.shop-card>p>strong{display:flex;align-items:center;height:100%;font-size:min(2.4cqw,4.2667cqh);color:#090a07}
#modal .store-preview.shop-card>p .ui-art{width:2.8cqw;height:100%;object-fit:contain}
#modal .store-preview.shop-card>.green-button{position:absolute;left:14.2%;top:86%;width:14%;height:10.5%;min-height:0;max-width:none;padding:0;font-size:min(2.1cqw,3.7333cqh);line-height:1}
#modal .store-description>p{position:absolute;left:35.8%;top:33.6%;width:24%;max-height:41%;overflow:auto;font-size:min(1.55cqw,2.7556cqh);line-height:1.2;padding:0;margin:0;color:#090a07}
#modal .store-description>.store-xp{position:absolute;left:35.8%;top:82.8%;width:24%;height:6%;margin:0;padding:0;text-align:center;font-size:min(2.2cqw,3.9111cqh);line-height:1;color:#090a07}
#modal .store-description>small{position:absolute;left:35.8%;top:89%;width:24%;text-align:center;font-size:min(1.3cqw,2.3111cqh)}
#modal .store-catalog{position:absolute;left:60.8%;top:25.1%;width:29.8%;height:67.5%;padding:4% 2.2% 2%;min-height:0;display:flex;background-size:100% 100%}
#modal .furniture-thumbnails{gap:4% 2%;width:100%;height:100%}
#modal .furniture-thumbnails button{padding:.7cqw}
#modal .furniture-thumbnails button.active{outline:none;background:none}
#modal .furniture-thumbnails button:focus-visible{outline:2px solid #a8bf55}
#modal .store-pagination{position:static;height:0;min-height:0}
#modal .store-pagination>span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
#modal .store-pagination>button{position:absolute;left:39%;width:25%;height:10%;min-height:0;margin:0;padding:0}
#modal .store-pagination>button:first-child{top:0}
#modal .store-pagination>button:last-child{bottom:0}
#modal .store-pagination>button:disabled{visibility:hidden}
#modal .store-footer>.back-button{position:absolute;left:90.7%;top:86.8%;width:8%;height:11%;min-height:0}
#modal .store-footer>.back-button>.furn-art{width:100%;height:100%;object-fit:contain}

/* Video 04:10: the yellow four-row task sheet and separate café review. */
#modal.goals-modal{background:#20221f var(--chalkboard) center/100% 100% no-repeat}
#modal .video-goals{container-type:size;position:relative;display:block;width:100%;height:100%;min-height:0;padding:0;overflow:hidden}
#modal .video-goals>h2{position:absolute;left:28.3%;top:5%;height:9.1%;display:flex;align-items:center;gap:.35em;padding:0 0 .5%;margin:0;border-bottom:.23cqw solid white;font-size:min(3.55cqw,6.3111cqh);line-height:1;color:white}
#modal .video-goals>h2>.ui-art{width:5cqw;height:100%;object-fit:contain}
#modal .todo-sheet{position:absolute;left:13.8%;top:20.8%;width:35.1%;height:67%;}
#modal .todo-background{position:absolute;inset:0;width:100%;height:100%;max-width:none}
#modal :is(.todo-pin-left,.todo-pin-right){position:absolute;top:-5.4%;width:15%;height:18%;object-fit:contain}
#modal .todo-pin-left{left:4.6%}#modal .todo-pin-right{right:2%}
#modal .paper-tasks{position:absolute;left:5%;top:18%;width:89%;height:77%;display:grid;grid-template-columns:1fr;grid-template-rows:repeat(4,minmax(0,1fr));gap:0;overflow:visible}
#modal .paper-tasks article{display:flex;flex-direction:column;justify-content:center;gap:6%;padding:0;border:0;min-height:0}
#modal .paper-tasks h3{text-transform:uppercase;text-align:center;font-size:clamp(min(1.2cqw,2.1333cqh),calc(min(70cqw,124.4444cqh) / var(--task-characters)),min(1.8cqw,3.2000cqh));line-height:1.12;color:#070904;margin:0}
#modal .task-progress-row{display:flex;align-items:center;gap:6%;height:26%;min-height:0;padding:0 2.5%}
#modal .task-progress{width:68%;height:100%;background:#040600;border-radius:4cqw;overflow:hidden}
#modal .task-progress>i{display:block;height:100%;background:#a741ed;border-radius:inherit}
#modal .paper-tasks .task-progress-row>span{width:26%;color:#080905;text-align:center;font-size:min(1.7cqw,3.0222cqh);line-height:1}
#modal .goals-completion{position:absolute;left:13.8%;top:90.2%;width:35.1%;font-size:min(3.45cqw,6.1333cqh);text-align:center;color:white;line-height:1}
#modal .cafe-review{position:absolute;left:58.8%;top:22.6%;width:28.7%;height:49.6%}
#modal .review-background{position:absolute;inset:0;width:100%;height:100%;max-width:none}
#modal .review-pin{position:absolute;left:40%;top:-14%;width:19%;height:23%;object-fit:contain}
#modal .cafe-review>h3{position:absolute;left:7%;top:11%;width:86%;text-align:center;font-size:min(3.3cqw,5.8667cqh);line-height:1.1;color:#090a07;text-transform:uppercase}
#modal .review-stars{position:absolute;left:11.5%;top:25%;width:77%;height:16%;display:flex}
#modal .review-stars>.ui-art{width:20%;height:100%;object-fit:contain}
#modal .goal-reward{position:absolute;left:61%;top:82%;width:21.5%;height:15%;text-align:center;color:#fff}
#modal .goal-reward>span{display:block;font-size:min(1.7cqw,3.0222cqh);line-height:1.2;margin-bottom:3%}
#modal .goal-reward>.green-button{width:100%;height:70%;padding:.4cqw;font-size:min(2.3cqw,4.0889cqh);line-height:1.05;min-height:0}
#modal .goals-pages{position:absolute;left:4%;top:88%;width:6.8%;margin:0;gap:3%;display:grid;grid-template-columns:1fr 1fr}
#modal .goals-pages>span{grid-column:1/-1;grid-row:2;color:#ddd8c4;font-size:min(1.1cqw,1.9556cqh);text-align:center}
#modal .goals-pages>button{min-width:0;min-height:0;width:100%;height:5.5cqw;padding:0}
#modal .goals-pages>button>.ui-art{width:100%;height:100%;object-fit:contain}

/* IMG_3368–3373: coordinates use the 1260 × 710 game area, excluding the
   recording's side bars. One landscape stage drives the world and every menu. */
/* The world fills the visible screen; controls share the reference frame.
   Safe-area padding is applied here once, never again inside a menu. */
:root{--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--viewport-left:0px;--viewport-top:0px;--viewport-width:100vw;--viewport-height:100dvh;--visible-height:100dvh;--visible-top:0px;--safe-width:calc(var(--viewport-width) - var(--safe-left) - var(--safe-right));--play-width:min(var(--safe-width),calc(var(--viewport-height) * 16 / 9));--play-height:calc(var(--play-width) * 9 / 16);--stage-left:calc(var(--safe-left) + (var(--safe-width) - var(--play-width)) / 2);--stage-top:calc((var(--viewport-height) - var(--play-height)) / 2);--play-left:calc(var(--viewport-left) + var(--stage-left));--play-top:calc(var(--viewport-top) + var(--stage-top));--ui-scale:1}
html,body{width:100%;height:100%;margin:0;overflow:hidden;-webkit-text-size-adjust:none;text-size-adjust:none}
body{display:block;padding:0;background:#000}
.game{position:fixed;left:var(--play-left);top:var(--play-top);width:var(--play-width);height:var(--play-height);margin:0;container-type:size;--hud:calc(var(--play-width) / 820)}
.ui-stage{position:absolute;left:0;top:0;width:100%;height:100%;container-type:size;pointer-events:none;z-index:50}
.ui-stage>:is(.selection-panel,.decorate-panel,.tutorial-banner,.paused-screen,.send-zombies){pointer-events:auto}
#modal.video-modal{width:var(--play-width);height:var(--play-height);max-width:none;max-height:none;aspect-ratio:16/9;inset:auto;left:var(--play-left);top:var(--play-top);margin:0;padding:0;container-type:size}
#modal.video-modal::backdrop{background:#000}
#modal.video-modal>.close-square{width:8.25%;height:13.7%;min-width:0;min-height:0;right:.5%;top:0}

/* Shared café/store status strip; cqw always refers to the full game area. */
:is(#game,#modal) .cafe-hud{position:absolute;left:0;right:0;top:0;width:100%;height:13.9%;padding:0;border:0;border-radius:0;display:block;container-type:normal;filter:none;text-shadow:none;background:var(--original-awning) right top/90.78125% 100% no-repeat;color:#fff;z-index:50;pointer-events:none}
.cafe-hud::after{display:none}
:is(#game,#modal) .cafe-hud :is(.hud-name,.hud-level,.hud-stars,.hud-xp-track,.hud-xp-total,.hud-stat,.hud-menu){position:absolute;margin:0;padding:0;min-width:0;min-height:0;max-width:none;max-height:none;line-height:1.2;font-family:var(--font);font-weight:400;font-synthesis:none;letter-spacing:0;text-shadow:none}
:is(#game,#modal) .cafe-hud .hud-name{left:10.05%;top:6.7%;width:19%;white-space:nowrap;overflow:hidden;font-size:clamp(min(1.1cqw,1.9556cqh),calc(min(24cqw,42.6667cqh) / var(--name-characters,9)),min(2cqw,3.5556cqh));text-transform:uppercase}
:is(#game,#modal) .cafe-hud .hud-level{left:29.8%;top:8%;font-size:min(3.25cqw,5.7778cqh)}
:is(#game,#modal) .cafe-hud .hud-stars{left:14%;top:42%;width:12.8%;height:30%;display:flex;gap:0}
:is(#game,#modal) .native-star{position:relative;display:block;flex:0 0 20%;width:20%;height:100%;overflow:hidden}
:is(#game,#modal) .native-star>.ui-art{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:none;object-fit:contain}
:is(#game,#modal) .cafe-hud .hud-xp-track{left:37.3%;top:17%;width:19.8%;height:22.3%}
:is(#game,#modal) .cafe-hud .hud-xp-total{left:37.3%;top:42%;width:19.8%;font-size:min(1.1cqw,1.9556cqh);text-align:right;white-space:nowrap}
:is(#game,#modal) .cafe-hud .hud-stat{top:6%;height:55%;display:flex;align-items:center;justify-content:flex-start;gap:0;background:none;border:0;pointer-events:auto}
:is(#game,#modal) .cafe-hud .hud-cash{left:60.2%;width:14%}
:is(#game,#modal) .cafe-hud .hud-toxin{left:74.6%;top:2.5%;width:11%;height:60%}
:is(#game,#modal) .cafe-hud .hud-stat strong{font-size:min(2.3cqw,4.0889cqh);line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
:is(#game,#modal) .cafe-hud .hud-stat>.ui-art{width:2.8cqw;height:100%;max-width:none;object-fit:contain}
:is(#game,#modal) .cafe-hud .hud-toxin>.ui-art{width:4.4cqw}
:is(#game,#modal) .cafe-hud .hud-menu{left:91.6%;right:auto;top:0;width:8.2%;height:96%;border:0;outline:0;box-shadow:none;background:none;pointer-events:auto}
:is(#game,#modal) .cafe-hud .hud-menu>.ui-art{width:100%;height:100%;max-width:none;object-fit:contain}
#game .side-tools{left:0;top:0;width:8.8%;height:100%;gap:1%;pointer-events:none}
#game .side-tools>.edge-tool{flex:0 0 13.9%;width:94%;height:13.9%;min-width:0;min-height:0;pointer-events:auto}
#game .side-tools>[data-action="book"]{order:-1;flex-basis:13.9%;width:94%;height:13.9%}
#game.has-selection .side-tools>:not([data-action="book"]),#game.has-selection .right-tools{display:none}

/* A food tray is 26.2% high; a selected person uses the shallow 18.45% tray. */
#selection-panel{inset:auto 0 0;height:26.2%;min-height:0;padding:0;gap:0;display:block;background:#242323 var(--selection-board) center top/100% auto no-repeat;border:0;border-radius:0;box-shadow:none}
#selection-panel>.selection-art{position:absolute;left:2.2%;top:3.5%;width:14.8%;height:94%;max-height:none;object-fit:contain;object-position:center bottom}
#selection-panel .selection-info{position:absolute;left:20.5%;top:43%;width:48%;min-width:0;display:block;align-self:auto}
#selection-panel .selection-info h2{font-size:clamp(min(1.2cqw,2.1333cqh),calc(min(42cqw,74.6667cqh) / var(--selection-characters,12)),min(2.09cqw,3.7156cqh));line-height:1.2;color:#fff;text-transform:uppercase}
#selection-panel .selection-info :is(p,.timer){margin:.35cqw 0 0;font-size:min(2.03cqw,3.6089cqh);line-height:1.15;color:#7d913e;max-height:none;overflow:visible}
#selection-panel .selection-info p:empty{display:none}
#selection-panel .selection-actions{position:absolute;right:10.2%;top:29.5%;height:57%;display:flex;align-items:center;gap:2cqw}
#selection-panel .command-button{position:relative;flex-shrink:0;width:8.7cqw;height:100%;min-width:0;min-height:0;max-height:none;padding:0;gap:0;font-size:min(1.5cqw,2.6667cqh)}
#selection-panel .source-command{background:none;border:0;box-shadow:none;outline:0}
#selection-panel .command-button>.ui-art{width:100%;height:100%;object-fit:contain}
#selection-panel .command-price{position:absolute;left:0;top:1%;width:2.8cqw;height:53%;pointer-events:none}
#selection-panel .command-price>.ui-art{width:100%;height:100%;object-fit:contain}
#selection-panel .command-price>b{position:absolute;right:-.3cqw;bottom:-.25cqw;font:min(2cqw,3.5556cqh)/1 var(--font);color:#151714;-webkit-text-stroke:.16cqw white;paint-order:stroke fill;text-shadow:0 .1cqw #101410}
#selection-panel>.selection-close{width:8.25%;height:7.7cqw;min-width:0;min-height:0;right:.5%;top:-4.65cqw}
#selection-panel.person-selection{height:18.45%}
#selection-panel.person-selection>.selection-art{display:none}
#selection-panel.person-selection .selection-info{inset:0;width:auto;display:block}
#selection-panel.person-selection h2{position:absolute;left:1.8%;top:29%;max-width:65%;font-size:min(2cqw,3.5556cqh)}
#selection-panel .selection-name{display:block;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left;text-transform:inherit}
#selection-panel.person-selection .classic-energy{position:absolute;left:1.8%;top:73.3%;width:20.9%;height:16.6%;align-self:auto}
#selection-panel.person-selection .selection-info>p{position:absolute;left:25%;top:70%;width:40%;max-height:28%;overflow:auto;margin:0;font-size:min(1.5cqw,2.6667cqh);line-height:1.15}
#selection-panel.person-selection .selection-actions{top:29%;height:64%;gap:1.1cqw}
#selection-panel.person-selection .command-button{width:6.3cqw}
#selection-panel.human-selection .selection-actions{display:none}
#selection-panel.human-selection .selection-info>p{width:66%}
.source-status.ready-status{opacity:.65}
.entity .mini-bubble.source-status.ready-status>.status-symbol{left:23%;top:14%;width:48%;height:43%}

/* Original dialog:5, with the scene and food tray left at full brightness. */
#modal.confirm-modal{width:calc(var(--play-width) * .428);height:calc(var(--play-height) * .367);max-width:none;max-height:none;inset:auto;left:calc(var(--play-left) + var(--play-width) * .286);top:calc(var(--play-top) + var(--play-height) * .3165);margin:0;padding:0;background:var(--confirmation-board) center/100% 100% no-repeat;overflow:visible}
#modal.confirm-modal::backdrop{background:transparent}
#modal.confirm-modal>.close-square{display:none}
#modal.confirm-modal #modal-content{width:100%;height:100%;max-height:none;padding:0;overflow:visible}
#modal .toxin-confirm{position:relative;container-type:size;width:100%;height:100%}
#modal .toxin-confirm>h2{position:absolute;top:31%;left:4%;width:92%;padding:0;margin:0;text-align:center;color:#fff;font-size:4.72cqw;line-height:1.2;white-space:nowrap}
#modal .toxin-confirm>button{position:absolute;top:60.5%;width:45%;height:33%;padding:0;min-height:0;font-size:4.74cqw;line-height:1;text-align:center}
#modal .toxin-confirm>.green-button{left:4.2%}
#modal .toxin-confirm>.red-button{right:4.2%}

/* The store has its own blank paper and angular preview frames. */
#modal .video-store{background:#242323 var(--selection-board) center top/100% auto no-repeat}
#modal .video-store::before{content:'';position:absolute;left:0;right:0;top:22%;bottom:0;background:var(--store-paper) center/100% 100% no-repeat;pointer-events:none}
#modal .store-tabs{left:.5%;top:14.6%;width:79%;height:7.2%;gap:1%;padding:0;z-index:51}
#modal .store-tabs button{flex:0 0 auto;min-width:0;font-size:min(1.65cqw,2.9333cqh);padding:0 .35cqw;line-height:1}
#modal .store-tabs .source-tab{background:none;border:0;padding:0;box-shadow:none}
#modal .store-tabs .source-tab>.ui-art{display:block;width:100%;height:100%;max-width:none;object-fit:fill;pointer-events:none}
#modal .store-tabs .storage-tab{background:var(--red-tab) center/100% 100% no-repeat}
#modal .store-tabs .storage-tab.active{background-image:var(--green-tab)}
#modal .store-tabs button:nth-child(1){width:13.1%}
#modal .store-tabs button:nth-child(2){width:11.1%}
#modal .store-tabs button:nth-child(3){width:11.1%}
#modal .store-tabs button:nth-child(4){width:13.2%}
#modal .store-tabs button:nth-child(5){width:18.4%}
#modal .store-tabs button:nth-child(6){width:11.2%}
#modal .store-tabs button:nth-child(7){width:15.9%}
#modal .store-detail h2{left:9.4%;top:27.7%;width:24.4%;height:6%;align-items:flex-start;font-size:var(--item-title-size,min(2.31cqw,4.1067cqh));line-height:1.2}
#modal .store-preview.shop-card>.furn-art{left:9.4%;top:36.1%;width:24.4%;height:41%;padding:4.4cqw 3.2cqw 1.7cqw;background:var(--store-item-frame) center/100% 100% no-repeat!important;object-position:center bottom}
#modal .store-preview.shop-card>p{left:14.9%;top:79.4%;width:27%;height:6%;justify-content:flex-start;gap:.15em;font-size:min(1.75cqw,3.1111cqh);white-space:nowrap}
#modal .store-preview.shop-card>p>strong{font-size:min(2.25cqw,4.0000cqh)}
#modal .store-preview.shop-card>.green-button{left:14.2%;top:86%;width:14%;height:10.5%;font-size:min(2.1cqw,3.7333cqh);display:grid;place-items:center}
#modal .store-description>p{left:35.8%;top:33.3%;width:24%;font-size:min(1.46cqw,2.5956cqh);line-height:1.2}
#modal .store-catalog{left:60.8%;top:25.1%;width:29.8%;height:67.5%;padding:0;display:block;background:var(--store-catalog-board) center/100% 100% no-repeat}
#modal .furniture-thumbnails{position:absolute;inset:1% 9% 2%;width:auto;height:auto;gap:0 12%;grid-template-rows:repeat(3,minmax(0,1fr))}
#modal .furniture-thumbnails button{padding:.5cqw}
#modal .store-pagination>button{left:37.5%;width:25%;height:11%;z-index:2}
#modal .store-pagination>button:first-child{top:4.2%}
#modal .store-pagination>button:last-child{bottom:0}
#modal .store-pagination>button:disabled{visibility:hidden}

/* To-Do paper, headings, progress bars and review button. Progress is live. */
#modal .video-goals>h2{left:28.1%;top:5%;height:9.1%;font-size:min(3.36cqw,5.9733cqh);gap:.3em;padding:0 0 .5%;border-bottom-width:.2cqw}
#modal .todo-sheet{left:13.8%;top:21.4%;width:35.1%;height:66%}
#modal :is(.todo-pin-left,.todo-pin-right){top:-6%;width:15%;height:18%}
#modal .paper-tasks{left:7.5%;top:17.4%;width:88%;height:85.2%;grid-template-rows:repeat(4,minmax(0,1fr));gap:0}
#modal .paper-tasks article{position:relative;display:block;padding:0}
#modal .paper-tasks h3{position:absolute;left:0;top:0;width:100%;line-height:1.1;font-size:clamp(min(1.2cqw,2.1333cqh),calc(min(70cqw,124.4444cqh) / var(--task-characters)),min(1.72cqw,3.0578cqh))}
#modal .task-progress-row{position:absolute;left:1%;top:31%;width:98%;height:24%;padding:0;gap:11%}
#modal .task-progress{width:62%;height:100%;border-radius:3cqw}
#modal .paper-tasks .task-progress-row>span{width:26%;font-size:min(1.6cqw,2.8444cqh)}
#modal .cafe-review{left:58.8%;top:22.6%;width:28.7%;height:49.6%}
#modal .cafe-review>h3{left:4.2%;font-size:clamp(min(1.5cqw,2.6667cqh),calc(min(34cqw,60.4444cqh) / var(--cafe-characters,9)),min(3.114cqw,5.5360cqh))}
#modal .review-stars{left:13.3%}
#modal .goals-completion{left:13.8%;top:89.8%;width:35.1%;font-size:min(3.45cqw,6.1333cqh)}
#modal .goal-reward{left:60.9%;top:85.2%;width:19.2%;height:12%}
#modal .goal-reward>.green-button{position:relative;width:100%;height:100%;padding:0 1.4cqw 0 .6cqw;font-size:min(2.2cqw,3.9111cqh);line-height:1.1;min-height:0}
#modal .bribe-price{position:absolute;right:-1.2cqw;bottom:.55cqw;width:3.6cqw;height:78%;pointer-events:none}
#modal .bribe-price>.ui-art{width:100%;height:100%;object-fit:contain}
#modal .bribe-price>b{position:absolute;left:.7cqw;top:21%;font-size:min(2.65cqw,4.7111cqh);line-height:1;color:#111;-webkit-text-stroke:.2cqw #fff;paint-order:stroke fill;text-shadow:0 .15cqw .1cqw #000}

#modal .store-empty{position:absolute;left:9.4%;top:31%;width:47%;color:#171610}
#modal .store-empty h2{color:inherit;font-size:min(2.31cqw,4.1067cqh);text-transform:uppercase}
#modal .store-empty p{margin-top:1cqw;font-size:min(1.65cqw,2.9333cqh);line-height:1.3}

/* September screenshot set: full landscape map, raids, launch and lessons. */
#modal.map-modal,#modal.title-modal{background:#111;border:0;padding:0;overflow:hidden}
#modal:is(.map-modal,.title-modal,.victory-modal)>.close-square{display:none}
.neighborhood-view,.title-view{position:relative;container-type:size;width:100%;height:100%;overflow:hidden;color:#fff;font-family:var(--font)}
.neighborhood-viewport{position:absolute;inset:0;overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;cursor:grab;overscroll-behavior:none}
.neighborhood-viewport:active{cursor:grabbing}
.neighborhood-world{position:absolute;left:50%;top:50%;width:3240px;height:2838px;background:#a4a4a4 var(--map-roads) 0 0/810px 946px repeat;transform-origin:0 0;transform:scale(var(--map-scale,1)) translate(var(--map-x),var(--map-y));will-change:transform}
.neighborhood-lot{position:absolute;width:360px;height:420px;padding:0;margin:0;border:0;background:none;transform:translate(-160px,-235px);color:#fff;text-shadow:1.5px 1.8px 1px #444;cursor:pointer}
.neighborhood-lot .lot-building{position:absolute;object-fit:contain;pointer-events:none}
.lot-name,.lot-level{position:absolute;left:295px;top:330px;width:310px;font-size:var(--lot-name-size,28.2px);line-height:1;white-space:nowrap;text-transform:uppercase;text-align:center;transform:translate(-50%,-50%) rotate(-30.28deg);pointer-events:none}
.lot-level{left:375px;top:408px;font-size:27px;width:220px}
.neighborhood-lot.random .lot-building{filter:brightness(0)}
.neighborhood-lot.locked .lot-building{filter:brightness(.58)}
.lot-lock{position:absolute;width:54px;height:72px;left:133px;top:120px}
.lot-lock canvas{width:100%;height:100%;object-fit:contain}.lot-lock b{position:absolute;left:0;right:0;bottom:10%;font-size:31px;text-shadow:2px 2px #000}
.lot-fee{position:absolute;left:20px;top:200px;width:84px;height:96px}.lot-fee canvas{width:100%;height:100%;object-fit:contain}
.lot-recovering{position:absolute;left:75px;top:102px;font-size:18px;color:#e6dfbf}
.map-pan{position:absolute;top:45%;width:3.1%;height:8%;border:0;background:none;padding:0;z-index:2}.map-pan.previous{left:.6%}.map-pan.next{right:.6%}.map-pan canvas{width:100%;height:100%;object-fit:contain}
.map-back{position:absolute;right:1%;bottom:1.2%;width:8.4%;height:10.5%;padding:0;border:0;background:none}.map-back canvas{width:100%;height:100%;object-fit:contain}
.map-leaderboard.green-button{position:absolute;left:2.5%;bottom:5%;width:16.5%;height:7%;min-height:0;padding:0;font-size:min(1.8cqw,3.2000cqh);background-image:var(--chooser-button)}
.friend-building{height:22cqw;max-height:40dvh;text-align:center}.friend-building canvas{width:100%;height:100%;object-fit:contain}
.game.raiding .hud-xp-track,.game.raiding .hud-xp-total,.game.raiding .hud-cash,.game.raiding .hud-menu,.game.raiding .right-tools,.game.raiding .side-tools>.edge-tool:not(.crew-shortcut):not(#raid-retreat){display:none!important}
.game.raiding .side-tools{display:block;top:0;left:0;width:8.8%;height:100%;pointer-events:none}
.game.raiding #raid-retreat{position:absolute;top:1%;left:0;width:100%;height:13%;pointer-events:auto}
.game.raiding .crew-shortcut{position:absolute;top:15%;left:0;width:100%;height:14%;pointer-events:auto;display:block!important}
.game.raiding .crew-shortcut>span{display:block;width:100%;height:100%}.game.raiding .crew-shortcut canvas{width:100%;height:100%;object-fit:contain}
.game.raiding .crew-shortcut>strong{position:absolute;bottom:-5%;left:0;width:100%;font-size:min(2.4cqw,4.2667cqh);color:#fff;text-shadow:.15cqw .18cqw #333}
.raid-health{position:absolute;left:27%;top:6%;width:50%;height:3%;background:#d7d7d7b8;pointer-events:none}.raid-health i{display:block;height:100%}
.entity.bones{pointer-events:none;transform:translate(-50%,-70%)}.entity.bones canvas{width:65%;height:auto;display:block;margin:auto}
.entity.censored{pointer-events:none;transform:translate(-50%,-95%);z-index:950!important}.entity.censored canvas{display:block;width:145%;max-width:none;height:auto;margin-left:-22.5%}
.raid-food-count{position:absolute;left:42%;top:32%;font-size:min(.95cqw,1.6889cqh);color:#fff;-webkit-text-stroke:.12cqw #000;paint-order:stroke fill}
.send-zombies.green-button{position:absolute;right:1.2%;bottom:1.6%;width:19%;height:12%;font-size:min(1.15cqw,2.0444cqh);line-height:1.2;min-height:0;padding:0;z-index:40}
#selection-panel.raid-selection .selection-info>p{font-size:min(2cqw,3.5556cqh);left:24.5%;top:67%;width:42%;overflow:hidden}
#selection-panel.raid-selection .selection-actions{right:2.9%;gap:1.7cqw}
#selection-panel.raid-selection .command-button{width:7.2cqw}
#lesson-host,#modal-lesson-host{position:absolute;inset:0;pointer-events:none;z-index:1500}
.first-lesson{position:absolute;inset:0;pointer-events:auto;isolation:isolate;container-type:size;font-family:var(--font)}
.lesson-shade{position:absolute;inset:0;background:#0007;box-shadow:0 0 0 200vmax #0007}
.lesson-footer{position:absolute;left:0;right:0;bottom:0;height:26.2%;background:var(--selection-board) center top/100% 100% no-repeat}
.lesson-chef{position:absolute;left:-.8%;bottom:0;width:29%;height:79%;object-fit:contain;object-position:left bottom;z-index:2;pointer-events:none}
.first-lesson>p{position:absolute;left:25.2%;top:76.8%;bottom:3%;width:61%;margin:0;display:flex;align-items:center;color:#a8bf45;font:min(var(--lesson-font,2.04cqw),var(--lesson-font-cap,3.6267cqh))/1.42 var(--font);font-synthesis:none;text-transform:uppercase;text-shadow:none;overflow:visible;z-index:3}
.first-lesson .lesson-ok{position:absolute;right:3.5%;bottom:2.3%;width:8.4%;height:10.8%;padding:0;min-height:0;border:0;border-radius:0;background:none;box-shadow:none;z-index:4}
.first-lesson .lesson-ok>.ui-art{display:block;width:100%;height:100%;max-width:none;object-fit:fill;pointer-events:none}
.lesson-map::after,.lesson-loot-unlock::after{content:'';position:absolute;background:var(--tutorial-arrow) center/contain no-repeat;pointer-events:none;left:49%;top:39%;width:6%;height:12%}
.lesson-loot-unlock::after{left:37%;top:51%}
.title-background{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}
.title-logo{position:absolute;left:49.8%;top:2.5%;width:44%;height:65%;object-fit:fill}
.title-awning{position:absolute;left:0;top:0;width:100%;height:10.8%;object-fit:fill}
.title-play{position:absolute;left:68.6%;top:71.8%;width:16.2%;height:14%;padding:0;border:0;background:none}.title-play canvas{width:100%;height:100%;object-fit:fill}
.title-links{position:absolute;left:34.4%;bottom:0;width:64%;height:11%;display:grid;grid-template-columns:17% 35% 24% 24%;align-items:center;gap:0}
.title-links button{border:0;background:none;min-width:0;width:100%;height:75%;padding:1.7cqw 1cqw}.title-links canvas{width:100%;height:100%;object-fit:contain}

/* Keep the store paper and every menu coordinate on the 16:9 game stage. */
#modal.shop-modal{padding:0;border:0;border-radius:0}
#modal .video-store{width:100%;height:100%;min-height:0;overflow:hidden}
#modal .store-spread{position:absolute;inset:0;display:block;width:100%;height:100%;padding:0;pointer-events:none}
#modal .store-detail,#modal .store-catalog{pointer-events:auto}
#modal .store-tabs{width:79.6%}
#modal .store-detail{position:absolute;inset:0;display:block;pointer-events:none}
#modal .store-detail button,#modal .store-detail [data-drag-type]{pointer-events:auto}
#modal .store-description{position:static;display:block;padding:0;overflow:visible}
#modal .store-description>p{margin:0;max-height:35%;overflow:auto;font-family:var(--font);pointer-events:auto}
#modal .store-preview.shop-card>.char-art{position:absolute;left:9.4%;top:36.1%;width:24.4%;height:41%;padding:2cqw 3.2cqw 0;background:var(--store-item-frame) center/100% 100% no-repeat;object-fit:contain;object-position:center bottom}
#modal .store-staff-description .store-staff-stats{position:absolute;left:35.8%;top:33.3%;width:24%;display:block;font:min(1.46cqw,2.5956cqh)/1.32 var(--font);margin:0;color:#080906}
#modal .store-staff-stats :is(dt,dd){display:inline;margin:0}
#modal .store-staff-stats dd{margin-left:.2em}#modal .store-staff-stats dd::after{content:'';display:block}
#modal .store-staff-description>p{top:54.2%;max-height:26%;font-size:min(1.46cqw,2.5956cqh);line-height:1.32}
#modal .store-preview.level-locked>.green-button{visibility:hidden}
#modal .furniture-thumbnails{inset:6.5% 9% 3%}
#modal .featured-store .furniture-thumbnails button:has(>.char-art){border:.24cqw solid #d9c678;border-radius:.8cqw}
#modal .furniture-thumbnails button{position:relative;overflow:hidden}
#modal .furniture-thumbnails button>.char-art{width:100%;height:100%;object-fit:contain}
#modal .furniture-thumbnails .store-locked>:is(.furn-art,.char-art){filter:brightness(.35)}
#modal .store-lock{position:absolute;left:32%;top:30%;width:37%;height:40%;pointer-events:none}
#modal .store-lock canvas{width:100%;height:100%;object-fit:contain}
#modal .store-lock b{position:absolute;left:0;right:0;bottom:5%;font-size:min(2.7cqw,4.8000cqh);color:#fff;-webkit-text-stroke:.2cqw #000;paint-order:stroke fill}
.recipe-new{position:absolute;right:10%;top:10%;width:17%;height:48%;object-fit:contain;pointer-events:none}
.dish-preview>.furn-art{padding:4%;height:89%}
.dish-cost{left:29.6%;top:12%;width:17.2%;height:47%}
.dish-preview>.green-button{left:5%;width:85.5%;height:19.6%}
.dish-preview>.green-button.source-cook{background:none;border:0;box-shadow:none}
.dish-preview>.source-cook>.ui-art{display:block;width:100%;height:100%;max-width:none;object-fit:fill;pointer-events:none}
.dish-facts{left:56.9%;top:0;width:29.8%;height:65%}
.dish-facts h3{left:13.5%;width:100%;height:25%;font-size:var(--recipe-title-size,min(2.55cqw,4.5333cqh));color:#963455}
#modal .dish-facts .recipe-stats{top:32%;font-size:min(2.14cqw,3.8044cqh);line-height:1.2;row-gap:.15cqw;grid-template-columns:minmax(0,1fr) auto;column-gap:1.3cqw}
.dish-variants{left:6.1%;top:75%;width:79.5%;height:23%}
#modal .task-progress{position:relative;container-type:inline-size;background:var(--task-meter-track) center/100% 100% no-repeat;border:0;border-radius:0;overflow:hidden}
#modal .task-progress>i{position:relative;height:100%;max-width:100%;background:none;border:0;border-radius:0;box-shadow:none;overflow:hidden}
#modal .task-progress>i::before{content:"";position:absolute;left:0;top:0;width:100cqw;height:100%;background:var(--task-meter-blue) center/100% 100% no-repeat}
#modal .task-progress-row{overflow:visible}
.task-finish{position:relative;width:26%;height:150%;padding:0;border:0;background:none;min-height:0;margin-top:-5%}
.task-finish>canvas{width:100%;height:100%;object-fit:contain}
.task-toxin{position:absolute;top:100%;right:0;width:70%;height:60%;display:flex;align-items:center;justify-content:center;color:#486712;font-size:min(1.3cqw,2.3111cqh);white-space:nowrap}
.task-toxin canvas{width:40%;height:100%;object-fit:contain}
#modal .paper-tasks .task-check{position:relative;height:170%;width:20%;border:0;background:none}
.task-check>.task-checkbox{position:absolute;left:10%;top:20%;width:44%;height:78%;object-fit:contain}
.task-check>.task-tick{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}

.video-victory{position:relative;container-type:size;display:block;padding:0;width:100%;height:100%;min-height:0;overflow:hidden}
#modal .video-victory>h2{position:absolute;left:31.5%;top:4.7%;width:37%;margin:0;padding:0 0 .3cqw;border-bottom:.2cqw solid #eee;text-decoration:none;font-size:min(3.45cqw,6.1333cqh);line-height:1.3;white-space:nowrap}
#modal .video-victory>h3:not(.loot-name){position:absolute;left:27.5%;top:13.2%;width:47%;margin:0;font-size:min(3.45cqw,6.1333cqh);line-height:1.15;color:#a5bb42}
.video-victory .pinned-loot{position:absolute;left:2.3%;top:22.3%;width:36.4%;height:71%;padding:0;background:none}
.video-victory .loot-paper{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}
.video-victory .pinned-loot>.paper-pin{position:absolute;left:49%;top:-4%;width:17%;height:19%;z-index:2;object-fit:contain}
.video-victory .pinned-loot>.loot-food{position:absolute;left:20%;top:39%;width:56%;height:41%;object-fit:contain}
#modal .video-victory>.loot-name{position:absolute;left:52%;top:25%;width:35%;text-align:center;color:#fff;font-size:min(3.2cqw,5.6889cqh);line-height:1.2;margin:0;text-transform:uppercase}
.loot-cash,.loot-toxin{position:absolute;top:72.3%;height:8%;display:flex;align-items:center;font-size:min(3.6cqw,6.4000cqh);line-height:1;color:#fff}
.loot-cash{left:39.8%}.loot-toxin{left:70%}.loot-cash canvas,.loot-toxin canvas{width:3cqw;height:100%;object-fit:contain}
.victory-ok.green-button{position:absolute;left:40.5%;bottom:0;width:19%;height:12%;padding:0;min-height:0;font-size:min(3.5cqw,6.2222cqh)}
.share-victory{position:absolute;right:2.1%;bottom:4.5%;width:19.5%;height:11%;padding:0;min-height:0;line-height:1;background:#0468a8;border:.3cqw solid #78add5;border-radius:.3cqw;font:min(2.6cqw,4.6222cqh)/1 var(--font);color:#fff}
#modal .video-fridge{container-type:size;padding:0;min-height:0;position:relative}
#modal .video-fridge>h2{position:absolute;left:21%;top:12.8%;width:44%;font-size:min(3.2cqw,5.6889cqh);line-height:1.2;text-align:left;margin:0;color:#060606}
.video-fridge .fridge-dish{left:21%;top:39%;width:27%;height:25%;display:block}
.video-fridge .fridge-dish canvas{width:80%;height:100%;object-fit:contain}.video-fridge .fridge-dish strong{position:absolute;left:0;top:-16%;bottom:auto;width:80%;font-size:min(1.5cqw,2.6667cqh);text-align:center}
.video-fridge .fridge-actions{left:17%;top:63.3%;bottom:auto;width:30%;height:10.2%;display:flex;gap:7%}
.video-fridge .fridge-actions>button{position:relative;min-width:0;width:47%;height:100%;min-height:0;padding:0;font-size:min(2.2cqw,3.9111cqh);line-height:1}
.video-fridge [data-action="fridge-serve"]{order:0}.video-fridge [data-action="fridge-unlock-prompt"]{order:1}
.video-fridge .fridge-hint{left:18%;right:18%;bottom:12%;font-size:min(1.5cqw,2.6667cqh)}.video-fridge .fridge-position{font-size:min(1.4cqw,2.4889cqh)}

/* Shortcuts stay clear of the paper and the selected zombie's controls. */
#game:not(.has-selection):not(.raiding) .side-tools>[data-action="book"]{order:0}
#game:not(.has-selection):not(.raiding) .side-tools>[data-action="shop"]{flex-basis:13.9%;width:94%;height:13.9%}
#game .right-tools{right:0;top:14.9%;width:8.8%;height:85.1%;gap:1.175%}
#game .right-tools>.edge-tool{flex:0 0 16.333%;width:94%;height:16.333%;min-height:0;min-width:0}
#game:is([data-cafe-level="1"],[data-cafe-level="2"]) .right-tools>[data-action="chef-menu"]{display:none}
#game .side-tools #shop-new{position:absolute;left:12%;top:18%;width:34%;height:48%;pointer-events:none}
#game:not(.raiding) .crew-shortcut strong{bottom:-3%;font-size:min(2.1cqw,3.7333cqh)}
#game.raiding.has-selection .side-tools>#raid-retreat{display:block!important}
.float-text.raid-xp-reward{color:#7dcc2b;font:min(2.15cqw,3.8222cqh)/1 var(--font);text-shadow:none;-webkit-text-stroke:0;white-space:nowrap}

/* The fridge occupies the middle panel; the café rails remain beside it. */
#modal.fridge-modal{border:0;border-radius:0;background:transparent}
#modal.fridge-modal::backdrop{background:transparent}
#modal.fridge-modal>.close-square{right:8.1%}
#modal .video-fridge::before{content:'';position:absolute;inset:0 8.1%;background:#b5c1c4 var(--fridge-interior) center/100% 100% no-repeat;pointer-events:none}
.fridge-shortcuts{position:absolute;top:0;width:8.1%;height:100%;display:flex;flex-direction:column;gap:1%;align-items:center;pointer-events:none}
.fridge-shortcuts.left{left:0}.fridge-shortcuts.right{right:0}
.fridge-shortcuts>button{width:94%;height:13.9%;flex:0 0 13.9%;padding:0;border:0;background:none;pointer-events:auto}
.fridge-shortcuts>button canvas{width:100%;height:100%;object-fit:contain}
.video-fridge .page-arrow.previous{left:9%}.video-fridge .page-arrow.next{right:9%}
.video-fridge .empty-fridge{position:absolute;left:18%;top:22%;width:64%;margin:0;font-size:min(2cqw,3.5556cqh)}

/* Opening lessons use the native arrows and reserved placement tiles. */
.placement-purchase,.placement-close{display:none}
.decorate-panel.purchase-mode{height:26%;min-height:0;padding:0 1.5cqw 1cqw;align-items:flex-end;font-family:var(--font);font-synthesis:none}
.purchase-mode .placement-copy{position:absolute;left:1.5%;bottom:5%;width:66%}
.purchase-mode .placement-copy>strong,.purchase-mode .decorate-actions{display:none}
.purchase-mode #decorate-tip{margin:0;font-size:min(2.1cqw,3.7333cqh);line-height:1.1;color:white}
.purchase-mode .placement-purchase{display:flex;position:absolute;right:3%;bottom:1%;width:19%;height:75%;flex-direction:column;align-items:stretch;text-align:right;gap:0;font-size:min(2.1cqw,3.7333cqh);line-height:1.1}
.placement-purchase>strong{font-size:inherit;font-weight:400;min-height:20%}
#placement-total canvas{display:inline-block;width:1.5cqw;height:2cqw;vertical-align:middle}
.placement-purchase>.green-button{width:100%;height:58%;margin-top:auto;padding:0;font-size:min(1.7cqw,3.0222cqh);line-height:1}
.purchase-mode .placement-close{display:block;right:.6%;top:-32%;width:8%;height:51%;background:var(--close-icon) center/contain no-repeat;border:0;box-shadow:none;color:transparent;text-shadow:none;font-size:0}
.entity.purchase-preview{z-index:1450!important;pointer-events:none}
.purchase-preview>canvas{opacity:1}
.purchase-preview.invalid>canvas{filter:sepia(1) saturate(3) hue-rotate(320deg)}
.preview-rotate{position:absolute;right:-12%;top:0;width:32%;aspect-ratio:1;border:0;padding:0;background:none;pointer-events:auto}
.preview-rotate canvas{width:100%;height:100%;object-fit:contain}
.world.furniture-dragging .purchase-preview{visibility:hidden}
.grid-cell.opening-suggestion{background:#6cff54a6!important;box-shadow:inset 0 0 0 .15cqw #a7ff7a}
#game.purchasing .entity.person{opacity:.18;pointer-events:none}
#game.purchasing .grid-cell{background:transparent;border:0;box-shadow:none}
#game.purchasing .grid-cell.blocked{background:#44222288}
#game.purchasing .grid-cell.placement-target,#game.purchasing .grid-cell.snap-target{background:#44ff4488!important}
#game.purchasing .grid-cell.placement-invalid,#game.purchasing .grid-cell.snap-invalid{background:#ff444488!important}
#game.purchasing .world.furniture-dragging .grid-cell.placement-target:not(.snap-target){background:transparent!important}
.stove-ready-alert{position:absolute;left:33%;top:-14%;width:24%;height:36%;pointer-events:none}
.cafe-door.opening-door::after{content:'';position:absolute;left:20%;top:-29%;width:60%;height:58%;background:var(--tutorial-arrow) center/contain no-repeat;pointer-events:none}
#game:is([data-opening-stage="first-recipe"],[data-opening-stage="first-cook"],[data-opening-stage="collect"],[data-opening-stage="meal"],[data-opening-stage="first-infection"]) .side-tools>:not([data-action="book"]),
#game:is([data-opening-stage="first-recipe"],[data-opening-stage="first-cook"],[data-opening-stage="collect"],[data-opening-stage="meal"],[data-opening-stage="first-infection"]) .right-tools{display:none}
#game[data-guidance="shop"] .side-tools>[data-action="shop"]::after,
#game[data-guidance="map"] .side-tools>[data-action="map"]::after,
#game[data-guidance="goals"] .side-tools>[data-action="goals"]::after{content:'';position:absolute;left:25%;top:-26%;width:50%;height:74%;background:var(--tutorial-arrow) center/contain no-repeat;pointer-events:none}
#game[data-guidance="infect"] .command-button[data-action="infect"]::after{content:'';position:absolute;left:15%;bottom:82%;width:70%;height:78%;background:var(--tutorial-arrow) center/contain no-repeat;pointer-events:none}
#game[data-guidance="finish"] .command-button[data-action="finish"]::after{content:'';position:absolute;left:15%;bottom:82%;width:70%;height:78%;background:var(--tutorial-arrow) center/contain no-repeat;pointer-events:none}
#modal[data-guidance="recipe"].book-modal .dish-preview::after{content:'';position:absolute;left:36%;bottom:18%;width:28%;height:37%;background:var(--tutorial-arrow) center/contain no-repeat;pointer-events:none}

/* Full, uncropped opening references: store, then map when introduced,
   cookbook and staff. The right rail introduces storage before the fridge. */
#game:not(.raiding)[data-opening-hud] .side-tools>.edge-tool{order:0;flex-basis:13.9%;width:94%;height:13.9%}
#game:not(.raiding)[data-opening-hud="book"] .side-tools>[data-action="book"]{display:block}
#game:not(.raiding):is([data-opening-hud="staff"],[data-opening-hud="map"]) .side-tools>[data-action="goals"],
#game:not(.raiding)[data-opening-hud="staff"] .side-tools>[data-action="map"]{display:none}
#game.teaching:not(.raiding):is([data-opening-hud="staff"],[data-opening-hud="map"]) .side-tools>:is([data-action="shop"],[data-action="book"],[data-action="crew"]),
#game.teaching:not(.raiding)[data-opening-hud="map"] .side-tools>[data-action="map"]{display:block}
#game:not(.raiding):is([data-opening-hud="staff"],[data-opening-hud="map"]) .right-tools{right:0;top:14.9%;width:8.8%;height:70%;gap:1.4%}
#game.teaching:not(.raiding):is([data-opening-hud="staff"],[data-opening-hud="map"]) .right-tools{display:flex}
#game:not(.raiding):is([data-opening-hud="staff"],[data-opening-hud="map"]) .right-tools>:not([data-action="storage"]){display:none}
#game:not(.raiding):is([data-opening-hud="staff"],[data-opening-hud="map"]) .right-tools>[data-action="storage"]{flex-basis:19.85%;width:94%;height:19.85%;min-height:0;min-width:0}

/* Original meter artwork, clipped at the live value without squeezing its
   rounded left end or adding a second CSS border over the painted border. */
:is(#game,#modal) :is(.hud-xp-track,.classic-energy){container-type:inline-size;background:var(--meter-track) center/100% 100% no-repeat;border:0;border-radius:0;box-shadow:none;overflow:hidden}
:is(#game,#modal) :is(.hud-xp-track,.classic-energy)>:is(i,span){position:relative;display:block;height:100%;max-width:100%;padding:0;border:0;border-radius:0;background:none;box-shadow:none;overflow:hidden;transition:width .35s}
:is(#game,#modal) :is(.hud-xp-track,.classic-energy)>:is(i,span)::before{content:"";position:absolute;left:0;top:0;width:100cqw;height:100%;background:var(--meter-blue) center/100% 100% no-repeat}
:is(#game,#modal) .classic-energy>i::before{background-image:var(--meter-red)}

/* Recipe and plate remain one native sprite on the furniture surface. */
.entity .scene-dish{left:var(--dish-left);top:var(--dish-top);width:var(--dish-width)!important;height:auto!important;max-height:none;aspect-ratio:var(--dish-ratio);transform:translateX(-50%);object-fit:contain;pointer-events:none}

/* Keep the entire plate above COOK; the reference uses black stat values. */
.dish-preview>.furn-art{height:80.4%;padding:4% 7% 0}
#modal .dish-facts .recipe-stats{font-size:var(--recipe-stats-size,min(2.14cqw,3.8044cqh))}
#modal .dish-facts .recipe-stats :is(dt,dd){color:#080907}

/* Both rails and close buttons stay inside the already inset reference frame. */
#game .side-tools{left:0;width:8.8%}
#game .right-tools{right:0;width:8.8%;pointer-events:none}
#game .right-tools>.edge-tool{pointer-events:auto}
:is(#game,#modal) .cafe-hud .hud-menu{left:91.6%;right:auto;width:8.2%}
#modal.video-modal>.close-square{right:.5%;width:8.25%}
#modal.fridge-modal>.close-square{right:8.1%}
#selection-panel .selection-close,.placement-close{right:.5%}
.first-lesson .lesson-ok{right:3.5%;bottom:2.3%}
.map-back{right:1%;bottom:1.2%}

/* Original vial proportions, including inline costs and the wallet. */
.original-art.inline-toxin{display:inline-block;position:static;width:auto;height:1.55em;aspect-ratio:32/49;vertical-align:middle;object-fit:contain;margin:0 .12em;flex:none}
.wallet-value .inline-toxin{height:1.25em}
#selection-description .inline-toxin{height:1.4em}
#modal .cafe-review .review-refresh{position:absolute;left:7%;right:7%;top:78%;margin:0;text-align:center;font:min(1.4cqw,2.48cqh)/1.2 var(--font);color:#30302a}
.lot-recovering{left:333px;top:369px;width:260px;text-align:center;transform:translate(-50%,-50%) rotate(-30.28deg);pointer-events:none;font:17px/1.2 var(--font);color:#fff;text-shadow:1px 2px #333;white-space:nowrap}

/* Map, scenery, menus and controls share the same original-game rectangle. */
#modal.map-modal{left:var(--play-left);top:var(--play-top);width:var(--play-width);height:var(--play-height);aspect-ratio:16/9}
.map-controls,#modal.map-modal #modal-lesson-host{position:absolute;left:0;top:0;width:100%;height:100%;right:auto;bottom:auto;container-type:size;pointer-events:none}
.map-controls>button{pointer-events:auto}

/* Unreferenced utility panels use the same font and stay scrollable, including
   while the keyboard is open. The original artwork menus retain their grid. */
#modal:not(.video-modal):not(.confirm-modal){--dialog-unit:min(1px,calc(var(--play-width) / 1000));container-type:inline-size;inset:auto;left:calc(var(--play-left) + var(--play-width) / 2);top:calc(var(--visible-top) + (var(--visible-height) - var(--safe-bottom)) / 2);transform:translate(-50%,-50%);width:min(970px,calc(var(--play-width) * .97));max-width:none;max-height:calc(var(--visible-height) - var(--safe-top) - var(--safe-bottom) - 12px);padding:calc(28 * var(--dialog-unit)) calc(35 * var(--dialog-unit));overflow:auto;font-size:calc(18 * var(--dialog-unit))}
#modal:not(.video-modal):not(.confirm-modal) #modal-content{max-height:none;overflow:visible;padding:0}
#modal:not(.video-modal):not(.confirm-modal) h2{font-size:calc(28 * var(--dialog-unit));margin-bottom:calc(14 * var(--dialog-unit))}
#modal:not(.video-modal):not(.confirm-modal) :is(p,label,select,.menu-utilities button,.modal-actions button){font-size:calc(18 * var(--dialog-unit))}
#modal:not(.video-modal):not(.confirm-modal) .close-square{width:calc(72 * var(--dialog-unit));height:calc(72 * var(--dialog-unit));min-width:0;min-height:0;top:0;right:0}
#modal:not(.video-modal):not(.confirm-modal) .menu-grid{gap:calc(12 * var(--dialog-unit))}
#modal:not(.video-modal):not(.confirm-modal) .menu-tile{min-height:calc(98 * var(--dialog-unit));padding:calc(6 * var(--dialog-unit));font-size:calc(18 * var(--dialog-unit))}
#modal:not(.video-modal):not(.confirm-modal) .menu-tile>:is(.furn-art,.char-art){height:calc(58 * var(--dialog-unit));width:auto;max-width:100%}
#modal:not(.video-modal):not(.confirm-modal) .menu-tile b{font-size:inherit}
#modal:not(.video-modal):not(.confirm-modal) :is(.menu-utilities,.modal-actions){gap:calc(10 * var(--dialog-unit));margin-top:calc(12 * var(--dialog-unit));flex-wrap:wrap}
#modal:not(.video-modal):not(.confirm-modal) :is(.menu-utilities button,.modal-actions button){min-height:calc(40 * var(--dialog-unit));padding:calc(8 * var(--dialog-unit)) calc(14 * var(--dialog-unit))}
#modal .settings-grid input:not([type=checkbox]){font-size:16px;min-width:0;max-width:100%}
#modal:not(.video-modal):not(.confirm-modal) .menu-footer{font-size:calc(13 * var(--dialog-unit));margin-top:calc(10 * var(--dialog-unit))}

/* Recurring guidance and furniture tools use reference units too; a compact
   phone must not inherit the old minimum-pixel heights above. */
#game .tutorial-banner{height:26.2%;min-height:0;padding:0;display:block;font:min(2.04cqw,3.6267cqh)/1.42 var(--font)}
#tutorial-text{position:absolute;left:25.2%;top:11.45%;width:61%;height:77.1%;display:flex;align-items:center;overflow:auto}
#game #tutorial-portrait{left:-.8%;bottom:0;width:29%;height:301.5%}
#game .tutorial-banner>button{inset:auto 3.5% 8.78% auto;width:8.4%;height:41.22%;min-width:0;min-height:0;padding:0;font:min(2.2cqw,3.9111cqh)/1 var(--font)}
#game .purchase-mode :is(.placement-close,.placement-purchase>.green-button){min-width:0;min-height:0}
#game .decorate-panel:not(.purchase-mode){height:18.45%;min-height:0;padding:1cqw 1.8cqw;gap:1.3cqw}
#game .decorate-panel:not(.purchase-mode) .placement-copy{flex:1;min-width:0}
#game .decorate-panel:not(.purchase-mode) :is(strong,p){font:min(1.8cqw,3.2cqh)/1.2 var(--font)}
#game .decorate-panel:not(.purchase-mode) p{margin:.5cqw 0 0}
#game .decorate-panel:not(.purchase-mode) .decorate-actions{gap:.8cqw;flex-shrink:0}
#game .decorate-panel:not(.purchase-mode) .decorate-actions button{min-height:0;height:4.7cqw;padding:.6cqw 1cqw;font-size:1.6cqw}

/* Optional utilities do not resize the reference artwork or cover its rails. */
#game .bottom-tools{right:1%;bottom:1.5%}
#game .camera-buttons{gap:.4cqw;padding:.4cqw;border-radius:.65cqw}
#game .camera-buttons button{width:max(36px,4cqw);height:max(36px,4cqw);min-width:0;min-height:0;padding:0;font-size:max(20px,2cqw);border-width:.16cqw;border-radius:.6cqw}
#game .paused-screen .blackboard{max-width:85%;max-height:85%;overflow:auto;padding:3cqw;border-width:.58cqw;border-radius:1.17cqw;font-size:1.6cqw}
#game .paused-screen h1{font-size:2.5cqw}
#game .paused-screen p{margin:1.25cqw 0 2.08cqw}
#game .paused-screen button{min-height:0;padding:.85cqw 1.6cqw;font-size:1.7cqw}
#toasts{left:calc(var(--play-left) + var(--play-width) / 2);top:calc(var(--play-top) + var(--play-height) * .15);width:calc(var(--play-width) * .6);max-width:none;gap:calc(var(--play-width) * .0075)}
#toasts .toast{max-width:100%;font-size:clamp(12px,calc(var(--play-width) * .0125),18px);border-width:calc(var(--play-width) * .0025);border-radius:calc(var(--play-width) * .0083);padding:calc(var(--play-width) * .0083) calc(var(--play-width) * .015)}

/* Build 17: screenshot furniture gestures, unlock rewards and staff cards. */
#game.infected-selected .side-tools>:not([data-action="book"]),#game.infected-selected .right-tools{display:flex}
#game.infected-selected .side-tools>[data-action="shop"]{flex-basis:13.9%;width:94%;height:13.9%}
#game.infected-selected .side-tools>[data-action="book"]{order:0}
#game.infected-selected .person-selection .selection-actions{gap:1.7cqw}
#game.infected-selected .command-button{width:8cqw}
#game.infected-selected .command-button b{font-size:min(1.65cqw,2.9333cqh)}
.edit-close{position:absolute;right:1.2%;bottom:2%;width:7.3%;height:13%;z-index:46}
.furniture-controls{position:absolute;display:flex;gap:.6cqw;z-index:1800;transform:translate(-25%,-30%);pointer-events:auto}
.furniture-controls button{border:0;background:var(--green-button) center/100% 100% no-repeat;color:white;font:3cqw/1 var(--font);width:4cqw;height:4cqw;min-width:30px;min-height:30px;padding:.2cqw;filter:drop-shadow(0 .1cqw .1cqw #21290c);touch-action:none}
.furniture-controls .furniture-rotate{margin-top:3.8cqw;font-family:Arial,sans-serif;font-weight:900;font-size:2.9cqw}
.world.furniture-dragging .furniture-controls{visibility:hidden}
#game.editing-owned .furniture-dragging .entity.furniture{opacity:.4}
#game.editing-owned .furniture-dragging .entity.person{opacity:.18;pointer-events:none}
#game.editing-owned .entity.furniture.edit-selected{opacity:1}
#game.editing-owned .entity.drag-source{opacity:0}
#game.editing-owned .grid-cell{background:transparent;border-color:#62744844}
#game.editing-owned .grid-cell.blocked{background:#44332518}
#game.editing-owned .grid-cell.placement-target,#game.editing-owned .grid-cell.snap-target:not(.snap-invalid){background:#26ef35a6!important;box-shadow:inset 0 0 0 .15cqw #79ff70}
#game.editing-owned .grid-cell.snap-invalid{background:#e63b39a6!important}
.touch-ghost{opacity:1;filter:drop-shadow(0 .15cqw .15cqw #17251966)}
.touch-ghost:not(.invalid) .drop-label{display:none}
.furniture-controls[hidden],.edit-close[hidden]{display:none}
#game.editing-owned .decorate-panel{display:none}
.recipe-reward{position:relative;width:100%;height:100%;container-type:size;font-family:var(--font);color:#fff}
#modal .recipe-reward>h2{position:absolute;left:28%;top:4.7%;width:44%;padding:0 0 .35cqw;margin:0;border-bottom:.2cqw solid #fff;text-align:center;font-size:min(2.6cqw,4.6222cqh);line-height:1.15}
#modal .recipe-reward>h3{position:absolute;left:25%;top:11.5%;width:65%;color:#acc945;font-size:min(3.45cqw,6.1333cqh);line-height:1.2;margin:0;text-align:left}
.reward-check{position:absolute;top:3%;left:2%;font:4.5cqw/1 Arial,sans-serif;font-weight:900;color:#8eba35;text-shadow:.2cqw .2cqw #335417}
.reward-paper{position:absolute;left:2.3%;top:22.3%;width:36.4%;height:71%;color:#111;text-align:center}
.reward-paper-art{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}
.reward-paper>.paper-pin{left:49%;top:-4%;width:17%;height:19%;object-fit:contain}
#modal .reward-paper>h4{position:absolute;left:8%;top:15%;width:84%;font-size:min(2.35cqw,4.1778cqh);line-height:1.15;margin:0}
.reward-food{position:absolute;left:10%;top:35%;width:80%;height:50%;object-fit:contain}
.reward-paper>strong{position:absolute;left:4%;bottom:4%;width:92%;font-size:min(2.25cqw,4cqh);line-height:1.05;text-transform:uppercase}
.reward-level{position:absolute;left:54%;top:25%;width:27%;text-align:center;font-size:min(3.7cqw,6.5778cqh)}
#modal .recipe-reward>p{position:absolute;left:42%;top:44%;width:53%;font-size:min(3.25cqw,5.7778cqh);line-height:1.3;text-align:left;color:#acc945;margin:0}
.reward-ok{position:absolute;left:40.5%;bottom:0;width:19%;height:11.7%;min-height:0;padding:0;font-size:min(3.7cqw,6.5778cqh)}
.recipe-reward-modal>.close-square{display:none}
.infected-info .person-info-copy{height:94%}
.infected-info .person-info-copy h2{width:89%;height:15%}
.infected-info h2>button{display:flex;align-items:center;justify-content:space-between;width:100%;height:100%;padding:0 8%;border:0;background:none;color:inherit;font:inherit;text-align:left}
.infected-info h2>button>span{font-family:Arial,sans-serif;font-size:2.8cqw;margin-left:1cqw}
.infected-info .person-info-copy h3{top:18%;height:7%}
.infected-info .person-info-copy .classic-energy{top:26%;height:6%}
.infected-info .person-info-copy .energy-total{top:33%}
#modal .infected-info .person-info-copy>p{top:39%;height:23%}
#modal .infected-info .person-info-copy .menu-stats{top:65%;font-size:min(2.35cqw,4.1778cqh);line-height:1.22}
#modal .infected-info .employment-stats{position:absolute;left:0;top:87%;width:100%;display:grid;grid-template-columns:auto 1fr;gap:.4cqw 1cqw;margin:0;font-size:min(2.1cqw,3.7333cqh);line-height:1.15}
.infected-info .employment-stats dd{text-align:right;color:#a9c34a;margin:0}
.infected-info .pinned-character{left:60.4%;top:21%;width:28.4%;height:70.5%}
.infected-info .pinned-character>.char-art{left:3%;top:28%;width:48%;height:48%;object-fit:contain;object-position:center bottom}
.infected-info .staff-level{position:absolute;left:53%;top:28%;width:39%;color:#0b0b0b;text-align:center;font-size:min(2.4cqw,4.2667cqh);line-height:1}
.infected-info .staff-level b{font-size:min(3.5cqw,6.2222cqh)}
.infected-info .staff-next{position:absolute;left:48%;top:51%;width:50%;color:#0b0b0b;text-align:center;font-size:min(1.8cqw,3.2cqh);line-height:1.05}
.staff-xp{position:absolute;left:9%;top:74%;width:84%;color:#111;text-align:right;font-size:min(2.3cqw,4.0889cqh);line-height:1.2}
.staff-xp>div{width:100%;height:1.7cqw;background:#fff;border:.2cqw solid #fff;border-radius:2cqw;overflow:hidden}
.staff-xp i{display:block;height:100%;background:var(--meter-blue) left/100% 100%;min-width:0}
.fire-zombie{position:absolute;left:18%;bottom:-8%;width:67%;height:16%;min-height:0;padding:0;font-size:min(2.3cqw,4.0889cqh)}
.staff-previous,.staff-next-person{position:absolute;top:43%;width:4.2%;height:13%;border:0;background:none;padding:0}
.staff-previous{left:1%}.staff-next-person{right:1%}
.staff-confirm-layer{position:absolute;inset:0;z-index:20;display:grid;place-items:center;background:#0002}
#modal .staff-confirm-layer>.toxin-confirm{position:relative;width:43%;height:37%;background:var(--confirmation-board) center/100% 100% no-repeat;padding:3% 2% 1.5%;display:flex;flex-direction:column;justify-content:space-between}
#modal .staff-confirm-layer .toxin-confirm>h2{top:23%;font-size:4.72cqw;line-height:1.1;white-space:normal;text-decoration:none}
#modal .staff-confirm-layer .toxin-confirm>button{font-size:4.74cqw}
#staff-name-input{display:block;max-width:90%;width:30ch;margin:2cqw auto;font:2.8cqw var(--font);padding:1cqw}

/* A furniture interaction owns the floor until release; no lingering pointers. */
#game.decorating .guide-arrow,#game.decorating .stove-ready-alert{display:none}

/* Build 19: complete recipe illustrations and one reference frame per screen.
   Images, their captions and buttons have separate, non-overlapping boxes. */
#modal.recipe-reward-modal{background:#242323 var(--chalkboard) center/100% 100% no-repeat}
#modal.video-modal #modal-content{width:100%;height:100%;min-height:0;max-height:none;overflow:visible;position:relative}
#modal .recipe-reward{overflow:visible}
#modal .reward-check{left:2%;top:4%;width:5.5%;height:7%;object-fit:contain;text-shadow:none}
#modal .recipe-reward>h3{left:27.1%;width:69%;font-size:3.35cqw}
#modal .reward-paper>.reward-food{position:absolute;left:12.5%;top:37.5%;width:75%;height:49.5%;padding:0;overflow:visible;display:flex;align-items:center;justify-content:center}
#modal .reward-food>.recipe-illustration{position:static;display:block;flex:0 1 auto;width:100%;height:100%;min-width:0;min-height:0;max-width:100%;max-height:100%;padding:0;margin:0;aspect-ratio:auto;object-fit:contain;object-position:center;transform:none;clip-path:none}
#modal .reward-paper>strong{left:6%;bottom:4%;width:88%;height:8%;display:flex;align-items:center;justify-content:center;font-size:var(--reward-name-size,2.25cqw);line-height:1.05;overflow-wrap:normal}
#modal .recipe-reward>p{left:41.3%;top:44%;width:55%;font-size:3.35cqw;line-height:1.3}
#modal .reward-ok{font-size:3.7cqw;line-height:1}
.recipe-illustration{display:block;object-fit:contain;object-position:center;max-width:100%;user-select:none;-webkit-user-drag:none}
.video-fridge .fridge-dish>.recipe-illustration{width:80%;height:100%;object-fit:contain}

/* Keep long names, occupations, biographies and employment dates on paper. */
#modal .person-info-copy h2{font-size:var(--person-name-size,3.4cqw)}
#modal .person-info-copy h3{font-size:var(--person-type-size,3.2cqw)}
#modal .person-info-copy>p{font-size:var(--biography-size,2.35cqw);line-height:1.2;overflow:visible}
#modal .infected-info .person-info-copy>p{font-size:var(--biography-size,2.35cqw)}
#modal .infected-info .employment-stats{grid-template-columns:max-content minmax(0,1fr);font-size:var(--employment-size,2.1cqw);gap:.35cqw .8cqw;line-height:1.15}
#modal .infected-info .employment-stats :is(dt,dd){white-space:nowrap}
#modal .infected-info h2>button{min-width:0;gap:.5cqw}
#modal .infected-info h2>button>span{flex-shrink:0;margin:0}
#modal .staff-confirm-layer>.toxin-confirm{padding:0}
#modal .toxin-confirm>h2,#modal .staff-confirm-layer .toxin-confirm>h2{top:23%;height:32%;display:flex;align-items:center;justify-content:center;font-size:var(--confirm-title-size,4.72cqw);line-height:1.1;white-space:normal}

/* The selected infected's four commands sit along the reference's right edge. */
#game.infected-selected #selection-panel.person-selection .selection-actions{right:3.2%;gap:1.7cqw}
#game.infected-selected #selection-panel.person-selection .command-button{width:8cqw}
#game.infected-selected #selection-panel.person-selection .selection-info>p{left:24.5%;width:32%;font-size:var(--selection-description-size,2.03cqw);line-height:1.15}

/* All inline vial images use the same selector as the actual source canvas. */
.furn-art.inline-toxin{display:inline-block;position:static;width:auto;height:1.55em;max-width:none;aspect-ratio:32/49;vertical-align:middle;object-fit:contain;margin:0 .12em;flex:none}
.wallet-value>.inline-toxin{height:1.25em}
#selection-description>.inline-toxin{height:1.4em}

/* Utility panels scroll their content while the close control remains visible. */
#modal:not(.video-modal):not(.confirm-modal){overflow:visible;max-height:calc(var(--visible-height) - var(--safe-top) - var(--safe-bottom) - 12px)}
#modal:not(.video-modal):not(.confirm-modal) #modal-content{max-height:calc(var(--visible-height) - var(--safe-top) - var(--safe-bottom) - 12px - 56 * var(--dialog-unit));overflow:auto;overscroll-behavior:contain;padding-right:calc(6 * var(--dialog-unit))}
#modal:not(.video-modal):not(.confirm-modal) h2{padding-right:calc(48 * var(--dialog-unit));line-height:1.2;overflow-wrap:anywhere}
#modal:not(.video-modal):not(.confirm-modal) :is(input,select){font-size:16px;min-width:0;max-width:100%}
#modal:not(.video-modal):not(.confirm-modal) :is(.crew-list,.recruit-list,.book-library){grid-template-columns:repeat(2,minmax(0,1fr))}
#modal:not(.video-modal):not(.confirm-modal) :is(.staff-card,.book-library-item,.setting){min-width:0}
#modal:not(.video-modal):not(.confirm-modal) .staff-card .modal-actions{flex-wrap:wrap}
#modal:not(.video-modal):not(.confirm-modal) .staff-card .modal-actions>button{flex:1 1 30%;min-width:0}
#modal:not(.video-modal):not(.confirm-modal) .staff-numbers{flex-wrap:wrap;gap:.4em}
#selection-panel .selection-info{width:var(--selection-copy-width,48%)}
#selection-panel .selection-info h2,#selection-panel.person-selection h2{font-size:var(--selection-title-size,2cqw)}
#selection-panel .selection-info :is(p,.timer){font-size:var(--selection-description-size,2.03cqw);line-height:1.15}
#selection-panel.person-selection .selection-info{width:auto}
#selection-panel.person-selection .selection-info>p{width:32%;font-size:var(--selection-description-size,2.03cqw);max-height:none;overflow:visible}
#selection-panel.human-selection .selection-info>p{width:66%}
#modal .video-fridge>h2{width:58%;font-size:var(--fridge-title-size,3.2cqw)}
#modal .video-victory>.loot-name{font-size:var(--loot-title-size,3.2cqw)}
.furniture-controls button{position:relative;background:none;display:grid;place-items:center}
.furniture-controls button>.ui-art{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none}
.furniture-controls .furniture-sell>span{position:relative;z-index:1;font:2.8cqw/1 var(--font);color:#fff;pointer-events:none}
#modal .infected-info h2>button>.rename-keyboard{flex-shrink:0;width:3.8cqw;height:3.2cqw;object-fit:contain}
#modal .video-victory>h2{font-size:3.1cqw;text-align:center}
#modal .video-victory>h3:not(.loot-name){left:26.5%;font-size:3.1cqw;text-align:center}
.title-links button{padding:1.15cqw .6cqw}

#modal .recipe-reward>h2{font-size:2.15cqw}
#modal .cafe-review>h3{font-size:var(--review-name-size,3.114cqw)}

/* Build 20: center copy inside its own reserved area on every screen. */
:is(#game,#modal) :is(#ui-stage,#modal-content,#modal-lesson-host) *,#toasts *{text-align:center}
#modal:not(.video-modal):not(.confirm-modal) #modal-content>h2{padding-left:calc(48 * var(--dialog-unit));padding-right:calc(48 * var(--dialog-unit))}
#modal .infected-info h2>button{justify-content:center;position:relative}
#modal .infected-info h2>button>.rename-keyboard{position:absolute;right:0}
#modal .person-info-copy .energy-total{left:0;right:auto;width:79%}
#selection-panel.person-selection h2{width:20.9%;max-width:20.9%}
#selection-panel .selection-name{width:100%}
#modal .video-fridge>h2{left:21%;width:58%}
#modal .store-preview.shop-card>p{left:9.4%;width:24.4%;justify-content:center}
#modal .video-goals>h2{left:25%;width:50%;justify-content:center}
#modal .chef-preview-row .menu-stats{display:grid;grid-template-columns:minmax(0,1fr) max-content}
#modal .chef-preview-row .menu-stats dd{margin:0}
#modal .chef-preview-row .menu-stats dd::after{display:none}
#game .cafe-hud .hud-stat,#modal .cafe-hud .hud-stat{justify-content:center}
#modal .recipe-reward>h3{left:20%;width:72%}
#modal .first-lesson>p,#lesson-host .first-lesson>p,#tutorial-text{justify-content:center}
.status-number{background:none}
#runtime-status{width:min(680px,calc(var(--play-width) * .85));max-height:85dvh;padding:clamp(16px,3cqw,34px);background:#242323 var(--chalkboard) center/100% 100% no-repeat;border:5px solid #80613b;color:white;text-align:center;overflow:auto}
#runtime-status *{text-align:center}
#runtime-status::backdrop{background:#000b}
#runtime-status h2{font-size:clamp(18px,2.5cqw,30px);line-height:1.2;margin:0 0 12px}
#runtime-status p{font-size:16px;line-height:1.4;margin:0}
#runtime-status progress{display:block;width:80%;height:18px;margin:22px auto 0;accent-color:#9cbc39}
#runtime-status .green-button{display:block;margin:22px auto 0;min-width:150px;min-height:44px;font-size:18px}

/* Living customer selection: cost belongs on INFECT, occupation beside energy. */
#selection-panel.guest-selection .selection-actions{right:3.2%;gap:1.7cqw}
#selection-panel.guest-selection .command-button{width:6.8cqw;position:relative}
#selection-panel .infection-price{position:absolute;left:10%;top:34%;width:80%;height:34%;display:flex;align-items:center;justify-content:center;gap:.15cqw;pointer-events:none}
#selection-panel .infection-price>b{font:min(2cqw,3.5556cqh)/1 var(--font);color:#10120a;-webkit-text-stroke:.08cqw #d4dda3;paint-order:stroke fill}
#selection-panel .infection-price>.ui-art{width:2cqw;height:2cqw;object-fit:contain}

/* Keep every opening-chef prompt inside its own paper/button region. */
#modal .chef-description{font-size:var(--chef-description-size,1.58cqw);line-height:1.2!important;min-width:0;max-height:13.5%;overflow-wrap:normal}
#modal .chef-confirm.green-button{font-size:var(--chef-confirm-size,2.1cqw);line-height:1;display:flex;align-items:center;justify-content:center;max-width:65%;text-shadow:none}
#modal .chef-reminder{width:86%;height:2.1cqw;max-width:86%;font-size:1.8cqw;line-height:1.1}

/* The box is a drop target only during an active furniture drag. */
#storage-box.storage-drop-ready{filter:drop-shadow(0 0 6px #9bed42) drop-shadow(0 0 3px #fff)}
#storage-box.storage-drop-invalid{filter:drop-shadow(0 0 6px #ed493c)}
/* Reuse the original tutorial arrow, anchored to the actual storage control. */
#game[data-guidance="storage"] #storage-box::after{content:'';position:absolute;left:25%;top:-52%;width:50%;height:74%;background:var(--tutorial-arrow) center/contain no-repeat;pointer-events:none}


.save-only-modal .save-transfer{border-top:0;padding-top:0;margin-top:0}

/* Build 29: earned rewards use the existing chalkboard and menu typeface. */
#modal.earnings-modal #modal-content{display:flex;flex-direction:column;overflow:auto}
#modal.earnings-modal .toxin-earnings{display:flex;flex-direction:column;gap:12px;min-height:0;font-family:var(--font);text-align:center}
#modal.earnings-modal .toxin-earnings h2{margin:0 28px 0 0;text-align:center}
#modal.earnings-modal .earning-tabs,#modal.earnings-modal .earning-footer{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap}
#modal.earnings-modal .earning-tabs button{flex:1;min-width:0;min-height:40px;padding:7px;font-size:14px;line-height:1.2;white-space:normal}
#modal.earnings-modal .earning-content{overflow:auto;min-height:0}
#modal.earnings-modal .earning-content>p{font-size:14px;line-height:1.4;margin:10px 0}
#modal.earnings-modal .earning-list{display:grid;gap:10px}
#modal.earnings-modal .earning-row{display:flex;align-items:center;justify-content:center;gap:12px;padding:12px;border:1px solid #8da44a;border-radius:5px;background:#15181270}
#modal.earnings-modal .earning-copy{flex:1;min-width:0}
#modal.earnings-modal .earning-copy h3{font-size:16px;line-height:1.2;margin:0 0 7px;text-align:center;overflow-wrap:anywhere}
#modal.earnings-modal .earning-copy p{font-size:14px;line-height:1.3;margin:5px 0}
#modal.earnings-modal .earning-copy progress{width:100%;max-width:250px;height:12px;accent-color:#a7c83e}
#modal.earnings-modal .earning-action{display:flex;flex-direction:column;align-items:center;gap:4px;flex:0 0 125px;font-size:14px}
#modal.earnings-modal .earning-action .green-button{font-size:14px;min-height:42px;padding:8px;display:flex;align-items:center;justify-content:center;gap:4px;flex-wrap:wrap}
#modal.earnings-modal .earning-amount{display:flex;align-items:center;justify-content:center;gap:6px;font-size:20px}
#modal.earnings-modal .earning-food{width:64px;height:64px;object-fit:contain;flex-shrink:0}
#modal.earnings-modal .earning-footer button{font-size:14px;min-height:40px;padding:7px 12px}
#modal.earnings-modal .earning-footer>span{font-size:14px}
@media(max-height:500px){#modal.earnings-modal .toxin-earnings{gap:8px}#modal.earnings-modal .earning-row{padding:8px}#modal.earnings-modal .earning-food{width:48px;height:48px}}

#modal.earnings-modal:not(.video-modal):not(.confirm-modal) .toxin-earnings>h2{margin:0;padding:0 calc(48 * var(--dialog-unit))}
#modal .video-victory>h3:not(.loot-name){font-size:var(--victory-subtitle-size,3.1cqw)}

/* Individual finishes: pending highlights never replace the room artwork. */
.surface-style{display:none}
.surface-cell{position:absolute;transform:none;padding:0;border:0;background:#d5ffb92b;box-shadow:inset 0 0 0 1px #d7ffbe;touch-action:none}
.surface-cell.surface-selected{background:#45f74db3;box-shadow:inset 0 0 0 2px #b5ffab}
.surface-cell:disabled{filter:none;opacity:1;pointer-events:none}
.surface-cell:focus-visible{background:#9efd74c9}
#game .surface-mode.purchase-mode{height:22%;padding:0;text-align:center}
#game .surface-mode .placement-copy{left:2%;bottom:10%;width:63%;display:flex;flex-direction:column;align-items:center;gap:.8cqw}
#game .surface-mode #decorate-tip{font-size:min(1.5cqw,2.6667cqh);line-height:1.15;text-align:center}
#game .surface-mode .surface-style{display:block;min-height:0;height:3.8cqw;padding:.4cqw 1.8cqw;font-size:1.55cqw}
#game .surface-mode .placement-purchase{right:2%;bottom:8%;height:79%;width:28%;text-align:center;font-size:1.7cqw}
#game .surface-mode .placement-purchase>.green-button{font-size:1.9cqw}
#game .surface-mode #placement-total{display:flex;align-items:center;justify-content:center;gap:.25cqw;white-space:nowrap}
#game .surface-mode #placement-total canvas{width:1.8cqw;height:1.8cqw;object-fit:contain}

/* Original Zombiepedia book, eight portrait cards and three permanent tabs. */
#modal.zombiepedia-modal{background:none;border:0;box-shadow:none}
#modal.zombiepedia-modal #modal-content{width:100%;height:100%;padding:0;overflow:hidden}
.zombiepedia{position:relative;width:100%;height:100%;container-type:size;background:var(--zukan-book) center/100% 100% no-repeat;color:#111}
#modal .zombiepedia>h2{position:absolute;left:9%;top:6.1%;width:76%;height:5.5%;margin:0;padding:0;text-align:left;line-height:1;font-size:2.65cqw;color:#111;white-space:nowrap}
.zukan-cards{position:absolute;left:6.9%;top:13.4%;width:82%;height:84.9%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));column-gap:10.2%;row-gap:4.4%}
.zukan-card{position:relative;display:block;width:100%;height:100%;min-width:0;min-height:0;margin:0;padding:0;border:0;border-radius:0;background:var(--zukan-card) center/100% 100% no-repeat;box-shadow:none;color:#fff;overflow:visible}
.zukan-card:hover,.zukan-card:active{transform:none;filter:none}
.zukan-portrait{position:absolute;left:7%;top:7%;width:86%;height:73%;display:flex;align-items:end;justify-content:center;overflow:hidden}
.zukan-portrait>.char-art{width:100%;height:100%;object-fit:contain;object-position:center bottom;filter:none}
.zukan-card.undiscovered .zukan-portrait>.char-art{filter:grayscale(1)}
.zukan-card.locked .zukan-portrait>.char-art{filter:brightness(0)}
.zukan-card>strong{position:absolute;left:4%;bottom:6%;width:92%;height:14%;display:flex;align-items:center;justify-content:center;font-size:var(--card-name-size);line-height:1.12;color:#fff;text-align:center;text-transform:uppercase;overflow:hidden}
.zukan-unlock{position:absolute;left:6%;top:31%;width:88%;font-size:1.45cqw;line-height:1.15;text-align:center;color:white}
.zukan-owned{position:absolute;left:-7%;bottom:8%;width:32%;height:20%;object-fit:contain;z-index:2}
.zukan-new{position:absolute;right:0;top:3%;width:19%;height:15%;object-fit:contain}
.zukan-tabs{position:absolute;left:89.2578125%;top:4.9479167%;width:7.421875%;height:90.234375%}
/* The 1024 × 768 book already includes the inactive labels. Place the native
   76/73/74-pixel tab sprites over them, including their overlapping tails. */
.zukan-tabs>button{position:absolute;left:0;display:block;background:none;border:0;padding:0;margin:0;min-width:0;min-height:0;border-radius:0}
.zukan-tabs>[data-tab="featured"]{top:0;width:100%;height:39.1053391%}
.zukan-tabs>[data-tab="themed"]{top:33.7662338%;width:96.0526316%;height:36.940837%}
.zukan-tabs>[data-tab="all"]{top:65.0793651%;width:97.3684211%;height:34.9206349%}
.zukan-tabs>button[aria-pressed="true"]{z-index:1}
.zukan-tabs>button:hover,.zukan-tabs>button:active{transform:none}
.zukan-tabs .sprite-art{display:block;width:100%;height:100%;object-fit:fill}
.zukan-prev,.zukan-next{position:absolute;top:43.2%;width:2.6%;height:12%;padding:0;border:0;background:none;min-width:0;min-height:0;z-index:2}
.zukan-prev{left:2.1%}.zukan-next{left:88.9%}
.zukan-prev>canvas,.zukan-next>canvas{width:100%;height:100%;object-fit:contain}
.zukan-prev:disabled,.zukan-next:disabled{visibility:hidden}
#modal.zombiepedia-modal>.close-square{right:9.3%;top:0;width:5.3%;height:9.5%;z-index:5}
.zukan-detail-layer{position:absolute;inset:0;z-index:3}
.zukan-dismiss{position:absolute;inset:0;width:100%;height:100%;padding:0;margin:0;border:0;background:none}
.zukan-detail{position:absolute;left:20.8%;top:15.2%;width:58.4%;height:69.6%;background:var(--zukan-detail) center/100% 100% no-repeat;overflow:hidden;color:#111}
.zukan-detail-portrait{position:absolute;left:3%;top:15%;width:36%;height:71%;display:flex;align-items:end}
.zukan-detail-portrait>.char-art{width:100%;height:100%;object-fit:contain;object-position:center bottom}
.zukan-cost{position:absolute;left:4%;bottom:6%;width:32%;height:9%;padding:0;min-height:0;border:0;background:none;color:#111;font-size:2.6cqw;line-height:1;display:flex;align-items:center;justify-content:center;gap:.25cqw}
.zukan-cost:disabled{opacity:1;filter:none}.zukan-cost .inline-toxin{width:2.2cqw;height:3.3cqw}
.zukan-detail-copy{position:absolute;left:44%;top:8%;width:51%;height:68%}
#modal .zukan-detail-copy h3{margin:0;width:100%;font-size:var(--zukan-name-size);line-height:1.1;text-align:left;color:#111}
#modal .zukan-detail-copy .menu-stats{margin:1.2cqw 0 0;display:grid;grid-template-columns:auto 1fr;gap:.13cqw .7cqw;font-size:1.95cqw;line-height:1.05;color:#111}
#modal .zukan-detail-copy .menu-stats dd{color:#111;text-align:left}
#modal .zukan-detail-copy>p{position:absolute;left:0;top:56%;height:40%;width:100%;margin:0;display:flex;align-items:center;justify-content:center;text-align:center;text-transform:uppercase;font-size:var(--zukan-biography-size);line-height:1.15;overflow:hidden;color:#111}
.zukan-requirements{position:absolute;left:44%;bottom:7%;width:48%;display:grid;grid-template-columns:1fr 9%;gap:.2cqw .5cqw;font-size:1.85cqw;line-height:1.2;text-align:left;margin:0}
.zukan-requirements dd{margin:0}.zukan-requirements canvas{width:100%;height:100%;object-fit:contain}
.zombiepedia-modal .staff-confirm-layer,.chef-modal .staff-confirm-layer{z-index:20}

/* Full original avatar catalog; the introductory nine remain unchanged. */
.avatar-catalog .chef-heads{width:100%;height:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));gap:3% 5%;padding:0}
.avatar-catalog .chef-head{position:relative;display:flex;align-items:start;justify-content:center;height:100%;min-height:0;padding:0;overflow:visible}
.avatar-catalog .chef-head>canvas{width:80%;height:72%;object-fit:contain;object-position:center bottom}
.avatar-price{position:absolute;left:0;bottom:0;width:100%;height:20%;display:flex;align-items:center;justify-content:center;font-size:1.9cqw;gap:.2cqw;color:#101010}
.avatar-price .inline-toxin{width:1.5cqw;height:2.1cqw}
.avatar-lock{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}
.avatar-lock>canvas{height:44%;width:40%;object-fit:contain}
.avatar-lock>b{width:100%;margin-top:2%;font-size:1.17cqw;line-height:1.05;color:#000;text-align:center;text-shadow:0 1px #fff}
.avatar-locked>canvas{opacity:.28}
.chef-page{position:absolute;top:48%;width:3.1%;height:11%;background:none;border:0;padding:0;min-height:0}
.chef-page-prev{left:4.5%}.chef-page-next{left:50.5%}
.chef-page>canvas{width:100%;height:100%;object-fit:contain}.chef-page:disabled{visibility:hidden}
.chef-wallet{position:absolute;right:6%;top:1.7%;height:8%;display:flex;align-items:center;justify-content:center;gap:.5cqw;color:#fff;font-size:2.6cqw;white-space:nowrap}
.chef-wallet>canvas{width:2.4cqw;height:3.8cqw;object-fit:contain}
#modal .avatar-catalog .chef-preview-row .menu-stats{top:20%;left:8.5%;width:50%;font-size:1.47cqw;line-height:1.15}
#modal .avatar-requirement{position:absolute;left:6%;bottom:.8%;width:88%;margin:0;font-size:1.3cqw;line-height:1.05;text-align:center;color:#fff}
.chef-confirm:disabled{opacity:.5}
.chef-info .staff-level{top:25%}
.chef-info .pinned-character>.char-art{top:24%;height:48%}
.chef-info .fire-zombie{font-size:2cqw;white-space:nowrap}
#selection-panel.human-selection .selection-actions{display:flex}
.reanimation-selection #selection-description{white-space:pre-line;line-height:1.15}
.person.defeated .energy-float{display:none}

#modal .chef-multiplier{position:absolute;left:8.5%;top:51%;width:84%;margin:0;font-size:1.5cqw;line-height:1.2;text-align:left;white-space:nowrap}
#selection-panel.reanimation-selection .selection-info>p{top:47%;height:48%;max-height:48%;white-space:pre-line;overflow:hidden}

#modal .zukan-detail-copy .menu-stats dt,#modal .zukan-detail-copy .menu-stats dd,.zukan-requirements dt{text-align:left}
/* The reference book uses left-aligned headings and stat labels. */
#modal #modal-content .zombiepedia>h2,#modal #modal-content .zukan-detail-copy h3,#modal #modal-content .zukan-detail-copy .menu-stats dt,#modal #modal-content .zukan-detail-copy .menu-stats dd,#modal #modal-content .zukan-requirements dt,#modal #modal-content .chef-multiplier{text-align:left}
#modal #modal-content .avatar-catalog .chef-preview-row .menu-stats{text-align:left}

/* Original cookbook covers share the reference's six-book shelf. */
.cookbook-shelf .shelf-page{position:absolute;top:27%;width:2.5%;height:44%;padding:0;min-width:0;min-height:0;z-index:2}
.cookbook-shelf .shelf-previous{left:12.5%}.cookbook-shelf .shelf-next{right:17%}
.cookbook-shelf .shelf-page[hidden]{display:none}
.cookbook-shelf .shelf-page>.ui-art{width:100%;height:100%;object-fit:contain}
.shelf-books button>.furn-art{object-fit:contain}
.dish-variation-name{position:absolute;left:0;top:-8%;width:100%;font-size:1.7cqw;line-height:1;text-align:center;text-transform:uppercase;white-space:nowrap}
.recipe-favorite{position:absolute;left:26.5%;top:61%;width:18%;height:12%;padding:0;border:0;background:none;min-height:0}
.recipe-favorite>.ui-art{width:100%;height:100%;object-fit:fill}
.recipe-favorite:disabled{visibility:hidden}

/* zcImages.png supplies the meatlocker room, glass, hooks and controls. */
#modal.meatlocker-modal>.close-square{display:none}
.meatlocker-view{position:relative;container-type:size;isolation:isolate;width:100%;height:100%;overflow:hidden;background:#345360;color:#fff;font-family:var(--font)}
.locker-accessible-title{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.locker-wall{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;z-index:-3}
.locker-awning{position:absolute;left:0;top:0;width:100%;height:15.5%;object-fit:fill;z-index:-2}
.locker-scenery{position:absolute;left:8%;top:0;width:84%;height:109%;object-fit:fill;z-index:-1}
.locker-hooks{position:absolute;left:12.7%;top:25.5%;width:76.5%;height:36.8%}
.locker-slot{position:absolute;left:calc(var(--hook-index)*20%);top:0;width:20%;height:100%;border:0;background:none;padding:0;min-width:0;min-height:0;isolation:isolate}
.locker-slot:hover,.locker-slot:active{transform:none;filter:none}.locker-slot:disabled{opacity:1;filter:none}
.locker-hook{position:absolute;left:41%;top:0;width:18%;height:49%;object-fit:contain;object-position:center top}
.locker-zombie{position:absolute;left:0;bottom:1%;width:100%;height:77%;object-fit:contain;object-position:center bottom}
.locker-spotlight{position:absolute;left:0;top:-24%;width:100%;height:130%;object-fit:fill;z-index:-1}
.locker-glass{position:absolute;left:9.3%;top:15.7%;width:81.4%;height:46.3%;object-fit:fill;pointer-events:none;z-index:2}
.locker-count{position:absolute;left:83.5%;top:62.5%;width:7%;height:4.5%;display:flex;align-items:center;justify-content:center;font-size:2.65cqw;line-height:1;z-index:3}
.locker-toxin{position:absolute;left:83.7%;top:.8%;width:7%;height:8%;display:flex;align-items:center;justify-content:center;gap:.1cqw;font-size:2.5cqw;line-height:1}
.locker-toxin>.ui-art{width:44%;height:100%;object-fit:contain}
.locker-info{position:absolute;left:12.5%;top:69%;width:34%;height:29%}
.locker-info-board{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}
.locker-info-copy{position:absolute;left:7%;top:7%;width:86%;height:86%;display:flex;flex-direction:column;align-items:center;justify-content:space-between;text-align:center}
#modal .locker-info-copy h3{font-size:var(--locker-name-size);line-height:1;margin:0;text-align:center;width:100%}
#modal .locker-info-copy p{font-size:1.55cqw;line-height:1.1;margin:0;color:#b9ce63;text-align:center;width:100%}
.locker-info-copy>.classic-energy{position:relative;width:80%;height:8%;min-height:0;margin:0}
.locker-info-copy>span{font-size:1.35cqw;line-height:1.1}
.locker-commands{display:flex;gap:3%;width:100%;height:23%}
.locker-commands>.green-button{width:35%;height:100%;min-height:0;padding:0;font-size:1.5cqw;line-height:1.1}
.locker-commands>.green-button+button{width:62%}
.locker-page{position:absolute;top:43%;width:2.5%;height:10%;border:0;background:none;padding:0;min-height:0;min-width:0;z-index:4}
.locker-previous{left:5.2%}.locker-next{right:5.2%}
.locker-page>canvas{width:100%;height:100%;object-fit:contain}
.locker-page[hidden]{display:none}
.locker-expand{position:absolute;isolation:isolate;left:58%;top:91.5%;width:22%;height:7%;border:0;background:none;padding:0;min-height:0;min-width:0;display:flex;align-items:center;justify-content:center;font-size:1.9cqw;line-height:1;white-space:nowrap}
.locker-expand>.furn-art{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;z-index:-1}
.locker-expand>span{position:relative}.locker-expansion-price{width:18%;height:145%;display:flex;align-items:center;justify-content:center}
.locker-expansion-price>.ui-art{width:69%;height:100%;object-fit:contain}.locker-expansion-price>b{font-size:2.1cqw}
.locker-back{position:absolute;right:1.5%;bottom:1%;width:8%;height:11.5%;border:0;background:none;padding:0;min-height:0;min-width:0}
.locker-back>canvas{width:100%;height:100%;object-fit:contain}
.furniture-controls>.furniture-rotate:only-child{margin-top:0}

#modal .cafe-review .review-bonus{position:absolute;left:7%;right:7%;top:66%;margin:0;text-align:center;font:min(1.4cqw,2.48cqh)/1.2 var(--font);color:#663483}

/* Original furniture artwork also identifies its raid power. */
.raid-powers{position:absolute;right:9%;top:22%;display:flex;gap:1cqw;z-index:18}.raid-powers[hidden]{display:none}.raid-power{position:relative;width:7cqw;min-height:10cqw;background:#303020d9;border:.2cqw solid #a5b864;border-radius:.5cqw;color:#fff;font:1.25cqw LoveOfThunder,sans-serif;display:flex;align-items:center;flex-direction:column;justify-content:center;gap:.2cqw}.raid-power canvas{width:4cqw;height:6cqw;object-fit:contain}.raid-power strong{font-size:1.7cqw}.raid-power:disabled{opacity:.55}.power-glowing,.tombstone-charged>.source-sprite{filter:drop-shadow(0 0 .45cqw #bbf678)}.tombstone-view{text-align:center}.tombstone-preview{display:block;width:12cqw;height:15cqw;object-fit:contain;margin:1cqw auto}.tombstone-view p{max-width:65cqw;margin:1cqw auto}.tombstone-view .modal-actions{justify-content:center}

.special-stove-prop{position:absolute;max-width:none;object-fit:contain;pointer-events:none}

/* Short landscape screens retain separate price/XP rows and reachable controls. */
#game .purchase-mode:not(.surface-mode) .placement-purchase{height:auto;top:8%;bottom:8%;display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:.3cqw;text-align:center;width:23%}
#game .purchase-mode:not(.surface-mode) .placement-purchase>.green-button{height:100%;min-height:0;margin:0}
#game .purchase-mode #placement-total{line-height:1.25;min-height:0}
#game .purchase-mode #placement-xp{line-height:1.15;min-height:0}
#modal.earnings-modal .toxin-earnings{height:100%;min-height:0}
#modal.earnings-modal .earning-content{flex:1;overflow-y:auto;padding-bottom:12px}
#modal.earnings-modal .earning-footer{flex-shrink:0}
#modal .close-square,#game .placement-close,#game .edit-close{touch-action:manipulation;isolation:isolate}
#modal .close-square::after{content:"";position:absolute;inset:-5px}
