@import url('https://fonts.googleapis.com/css2?family=Gowun+Batang:wght@400;700&family=Noto+Sans+KR:wght@400;500;600;700;800;900&display=swap');
:root{--ink:#ece3cb;--muted:#9faaa0;--gold:#d9b876;--dark:#152427;--panel:#233436;--line:#465351;--paper:#ede0bd;--red:#c67965;--green:#88b9a1;font-family:'Noto Sans KR','Malgun Gothic',sans-serif;color:var(--ink);background:#111f22;color-scheme:dark}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;border:1px solid #56615b;background:#304243;color:var(--ink);padding:9px 15px;border-radius:4px;font-size:calc(12px * var(--font-scale));transition:background .15s,transform .15s}button:hover:not(:disabled){background:#435657;border-color:var(--gold)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.4;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--gold);outline-offset:3px}button[hidden],[hidden]{display:none!important}button.primary{background:var(--gold);color:#243333;font-weight:800;border-color:var(--gold)}button.danger{border-color:#9e665d;color:#efb4a3}button.quiet{background:none;border-color:transparent;color:#a8b2a6}button.wide{width:100%}input,select{background:#172729;border:1px solid #667267;color:var(--ink);border-radius:4px;padding:9px;min-width:0}input[type=number]{width:140px;font-variant-numeric:tabular-nums}a{color:var(--gold)}h1,h2,h3,p{margin-top:0}h1,h2,h3{letter-spacing:-.7px}p{line-height:1.8}small,.small{font-size:calc(11px * var(--font-scale));color:var(--muted)}.eyebrow{color:var(--gold);font-size:calc(10px * var(--font-scale));letter-spacing:3px;font-weight:700;text-transform:uppercase}.serif{font-family:'Gowun Batang',serif}.muted{color:var(--muted)}.gold{color:var(--gold)}.red{color:#e9a28b}.green{color:#a4d0b1}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.spread{justify-content:space-between}.stack{display:grid;gap:12px}.pill{display:inline-block;border:1px solid #677168;border-radius:30px;padding:4px 10px;font-size:calc(10px * var(--font-scale))}.topbar{height:66px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:0 30px;background:#15282a}.brand{display:flex;align-items:center;gap:10px;font-size:calc(20px * var(--font-scale));font-weight:900;letter-spacing:-1px}.brand span:first-child{color:var(--gold);font-size:calc(28px * var(--font-scale))}.brand small{font-size:calc(9px * var(--font-scale));letter-spacing:1px;font-weight:400;margin-left:8px}.version{font-size:calc(10px * var(--font-scale));color:#aab3a5}.container{max-width:1180px;margin:auto;padding:32px}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:25px}.page-heading h1{font-size:calc(31px * var(--font-scale));margin:8px 0}.page-heading p{font-size:calc(13px * var(--font-scale));color:var(--muted);margin:0}.menu{min-height:100svh;position:relative;overflow:hidden;background:radial-gradient(ellipse at 72% 42%,#48625a 0,#203c3b 34%,#122528 76%)}.menu:after,.service-scene:after{content:'';pointer-events:none;position:absolute;inset:0;opacity:.08;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.6'/%3E%3C/svg%3E")}.menu-inner{max-width:1240px;min-height:calc(100svh - 66px);margin:auto;display:grid;grid-template-columns:1fr 1.1fr;align-items:center;padding:70px 45px 100px;position:relative;z-index:1}.menu h1{font-size:clamp(64px,7.5vw,106px);letter-spacing:-7px;line-height:1.1;margin:20px 0;color:#f0e2b9;text-shadow:4px 5px 0 #162c2b}.menu .subtitle{font-size:calc(18px * var(--font-scale));color:#c4cab1;letter-spacing:1px;margin:20px 0 28px}.menu .blurb{max-width:380px;font-size:calc(13px * var(--font-scale));color:#b0bcad}.menu-buttons{display:grid;gap:10px;max-width:310px}.menu-buttons button{text-align:left;padding:14px 20px;display:flex;justify-content:space-between;font-size:calc(14px * var(--font-scale))}.menu-buttons button.primary{font-size:calc(16px * var(--font-scale))}.fan-notice{font-size:calc(10px * var(--font-scale));line-height:1.9;max-width:420px;color:#8eaa9f;margin-top:26px}.shop-art{position:relative;transform:rotate(-2deg);filter:drop-shadow(0 26px 30px #0b1d1c80)}.shop-art svg{width:100%;height:auto;display:block}.shop-art .sticker{position:absolute;bottom:3%;right:3%;border:2px solid #d4be85;padding:14px;border-radius:50%;font-size:calc(12px * var(--font-scale));color:#dec891;transform:rotate(13deg);background:#24403c}.menu-footer{position:absolute;bottom:24px;left:45px;right:45px;font-size:calc(10px * var(--font-scale));display:flex;justify-content:space-between;color:#78978d;z-index:2}.hud{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr 1fr;gap:0;background:#203638;border-bottom:1px solid #607165}.hud-item{padding:12px 20px;border-right:1px solid #465e59}.hud-item label{display:block;font-size:calc(10px * var(--font-scale));color:#a4b5a5;margin-bottom:4px}.hud-item strong{font-size:calc(19px * var(--font-scale));font-variant-numeric:tabular-nums}.hud-item small{display:block;margin-top:3px;font-size:calc(10px * var(--font-scale))}.bar{height:6px;background:#142729;border-radius:3px;overflow:hidden;margin-top:6px}.bar i{display:block;height:100%;background:var(--gold);transition:width .2s}.bar.health i{background:#bf7d68}.bar.patience{height:4px;margin:0 12px 8px}.bar.patience i{background:#88b6a1}.day-time{height:5px;background:#142326}.day-time i{display:block;height:100%;background:#dfb969}.service-scene{position:relative;min-height:330px;background:linear-gradient(0deg,#314d47 0,#314d47 30%,#365a54 31%,#2a4b49 100%);padding:22px 30px 0;overflow:hidden}.scene-back{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,transparent 8%,#1b36367a 8%,#1b36367a 9%,transparent 9%,transparent 88%,#162f3080 88%,#162f3080 89%,transparent 89%),linear-gradient(0deg,transparent 45%,#8b9b7b40 45%,#8b9b7b40 46%,transparent 46%)}.scene-back:after{content:'샌드팡팡';position:absolute;top:24px;left:35px;color:#d5bb7c33;font-size:calc(23px * var(--font-scale));font-weight:900;letter-spacing:5px}.customers{display:grid;grid-template-columns:repeat(var(--slots),minmax(0,1fr));gap:14px;max-width:1280px;margin:auto;position:relative;z-index:2}.customer{position:relative;min-width:0;border:1px solid #bdc1a759;border-bottom:0;background:linear-gradient(0deg,#263e3c80,#1b333333);border-radius:8px 8px 0 0;overflow:hidden;align-self:end}.customer.selected{border-color:#e3c389;box-shadow:0 0 0 1px #e3c389}.customer-top{height:80px;padding:11px 12px 6px}.bubble{font-size:calc(12px * var(--font-scale));line-height:1.5;background:#eee1bd;color:#33443f;padding:9px 11px;border-radius:5px;position:relative;max-height:72px;overflow:auto}.bubble:after{content:'';position:absolute;bottom:-6px;left:20px;border-top:7px solid #eee1bd;border-right:8px solid transparent}.customer-art{height:188px;position:relative;cursor:pointer;overflow:hidden}.customer-art svg{height:235px;width:100%;display:block;position:relative;top:-12px}.customer-meta{position:absolute;bottom:8px;left:8px;right:8px;display:flex;gap:5px;justify-content:center;flex-wrap:wrap}.customer-meta span{background:#142b2bda;border:1px solid #6b8070;padding:3px 7px;border-radius:3px;font-size:calc(9px * var(--font-scale))}.customer-buttons{display:flex;gap:5px;padding:6px;background:#213b37;position:relative;z-index:2}.customer-buttons button{font-size:calc(10px * var(--font-scale));padding:6px;flex:1}.customer.empty{height:286px;display:grid;place-content:center;color:#8fa293;text-align:center;background:#1c38332b;border-style:dashed}.empty-icon{font-size:calc(35px * var(--font-scale));opacity:.4;margin:0 auto 10px}.customer.art{background:#314142}.customer.fighting{border-color:#c67a61}.customer.rampage{animation:danger 1s infinite}.npc-strip{background:#492f2d;color:#e8c7a7;padding:9px 30px;font-size:calc(11px * var(--font-scale));min-height:35px;display:flex;gap:15px;align-items:center}.npc-strip b{color:#e6a17d}.counter{border-top:10px solid #b99060;background:linear-gradient(#90684a,#73553e);position:relative;padding:20px 30px 22px;box-shadow:0 -5px 18px #14262370}.counter-inner{display:grid;grid-template-columns:1fr 1.1fr 1fr;gap:20px;max-width:1280px;margin:auto}.paper{background:var(--paper);color:#35413a;padding:17px;box-shadow:3px 4px 0 #503b2e60;position:relative;transform:rotate(-1deg);border-radius:2px}.paper:before{content:'';position:absolute;top:-7px;left:calc(50% - 20px);width:40px;height:15px;background:#d4c8a499;transform:rotate(-3deg)}.paper h3{font-size:calc(15px * var(--font-scale));margin:0 0 12px;border-bottom:1px dashed #9b967c;padding-bottom:10px}.order-seq{font-size:calc(12px * var(--font-scale));line-height:1.8;min-height:46px}.paper .muted{color:#6f7e6b}.paper small{color:#6f7e6b}.buildboard{background:#d4bb8e;border:7px solid #bda073;border-radius:25px;box-shadow:0 4px 0 #5b4130;min-height:190px;padding:14px;color:#4b4d3c;position:relative;text-align:center}.board-tag{font-size:calc(10px * var(--font-scale));letter-spacing:2px;text-transform:uppercase;color:#72694d}.sandwich-stack{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;min-height:70px;margin:12px 0}.layer{width:148px;min-height:9px;border:2px solid #5e513580;border-radius:8px;position:relative;transform:translateX(var(--offset));margin-top:-2px;box-shadow:0 2px 1px #5d503328}.ingredient-0{background:#eab874;border-color:#ad773c;min-height:15px;border-radius:12px 12px 5px 5px;display:flex;gap:17px;justify-content:center;align-items:center}.ingredient-0 i{width:5px;height:2px;background:#f7ddb0;border-radius:50%;transform:rotate(-20deg)}.ingredient-1{background:#cc6651;border-color:#934f3d}.ingredient-2{background:#7d9e53;border-color:#546f3b;border-radius:3px 8px 3px 8px;min-height:10px;width:155px}.ingredient-3{background:#d19787;border-color:#b1776a;width:150px}.mini{min-height:35px;transform:scale(.6);transform-origin:bottom center;margin:0}.recipe-preview{font-size:calc(10px * var(--font-scale));min-height:29px;max-height:52px;overflow:auto;line-height:1.6}.board-bottom{display:flex;justify-content:center;gap:8px;margin-top:10px}.board-bottom button{background:#baa173;color:#39483e;border-color:#8e805c}.sauce-row{display:flex;justify-content:space-between;gap:7px;margin-top:10px}.sauce{flex:1;display:flex;flex-direction:column;align-items:center;border-color:#b2a47b;background:#30403a;padding:8px 4px;font-size:calc(10px * var(--font-scale));gap:5px}.bottle{width:22px;height:33px;background:var(--sauce);border:2px solid #2a3c37;border-radius:5px 5px 3px 3px;position:relative;display:block}.bottle:before{content:'';position:absolute;top:-8px;left:5px;width:7px;height:9px;border-radius:3px 3px 0 0;background:#d2ae53}.bottle:after{content:'';position:absolute;left:3px;right:3px;top:12px;height:11px;background:#e6dbc4b3}.ingredients{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}.ingredients button{padding:10px 5px;background:#3c4d3e;border-color:#9caa7b;font-size:calc(12px * var(--font-scale))}.ingredients kbd{color:#d3bd7e;margin-right:6px}.price-row{margin-top:13px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.price-row label{color:#e0d4b4;font-size:calc(11px * var(--font-scale))}.price-row input{width:120px;background:#eee0bb;color:#344739;border-color:#b8a273;font-weight:700;padding:8px}.sell-button{margin-top:9px;width:100%;font-size:calc(14px * var(--font-scale));padding:11px}.service-bottom{background:#192d2e;display:grid;grid-template-columns:1fr auto;gap:18px;padding:12px 30px;align-items:start}.log-list{font-size:calc(11px * var(--font-scale));color:#adc0ae;line-height:1.8;max-height:65px;overflow:auto}.log-list div:first-child{color:#e4d8b9}.tools-row{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.tools-row button{font-size:calc(10px * var(--font-scale))}.repair.active{background:#a28c5d;color:#132b2a}.contract-banner{font-size:calc(10px * var(--font-scale));padding:9px 30px;background:#213839;border-top:1px solid #3f5750;color:#b3c3ad}.tutorial-strip{background:#e2c58d;color:#34443a;padding:12px 28px;font-size:calc(12px * var(--font-scale));line-height:1.7;display:flex;justify-content:space-between;align-items:center;gap:10px}.morning-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.card{border:1px solid #4c6056;background:#233a38;border-radius:6px;padding:22px}.card h2{font-size:calc(19px * var(--font-scale))}.card p{font-size:calc(12px * var(--font-scale));color:#adbbab}.action-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.action-card{text-align:left;padding:20px;min-height:105px;background:#29433f}.action-card strong{display:block;font-size:calc(17px * var(--font-scale));margin:8px 0}.action-card small{color:#a5b7a5;line-height:1.7}.action-icon{font-size:calc(23px * var(--font-scale));color:#dec48a}.shop-list{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.shop-item{padding:17px;border:1px solid #53665a;border-radius:5px;background:#263e39;display:flex;flex-direction:column;gap:9px}.shop-item h3{font-size:calc(14px * var(--font-scale));margin:0}.shop-item p{font-size:calc(11px * var(--font-scale));color:#a9b7a3;line-height:1.7;margin:0;flex:1}.shop-item button{align-self:start}.notice{padding:13px 16px;border-left:3px solid var(--gold);background:#2b423b;font-size:calc(12px * var(--font-scale));line-height:1.8;margin-bottom:20px}.statement{background:#ede1c1;color:#344039;max-width:700px;margin:auto;padding:30px;box-shadow:6px 6px 0 #0d1b1b;transform:rotate(-.3deg)}.statement h1{font-size:calc(30px * var(--font-scale));border-bottom:2px solid #495345;padding-bottom:18px}.statement dl{margin:0}.statement dl>div{display:flex;justify-content:space-between;padding:11px 0;border-bottom:1px dashed #b7b18e;gap:15px}.statement dd{margin:0;font-variant-numeric:tabular-nums;font-weight:700}.statement dt{font-size:calc(13px * var(--font-scale))}.statement .total{border-top:2px solid #475342;font-size:calc(21px * var(--font-scale));margin-top:12px;padding-top:20px}.statement .quote{margin:23px 0 0;background:#dbd0af;padding:17px;line-height:1.9;font-family:'Gowun Batang',serif;font-size:calc(14px * var(--font-scale))}.statement small{color:#66725f}.statement button{margin-top:20px}.newspaper{background:#e6dabb;color:#35443b;padding:25px;max-width:740px;margin:auto;box-shadow:5px 5px #0b1d1d}.newspaper h1{font-family:'Gowun Batang',serif;text-align:center;border-block:3px double #46513e;padding:20px;font-size:calc(35px * var(--font-scale))}.territory{display:flex;height:25px;border-radius:3px;overflow:hidden;margin:20px 0}.territory span{font-size:calc(10px * var(--font-scale));color:#142826;display:grid;place-content:center;white-space:nowrap;overflow:hidden}.newspaper .territory-legend{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;font-size:calc(12px * var(--font-scale))}.newspaper p{font-size:calc(13px * var(--font-scale));border-bottom:1px solid #b0ac8d;padding-bottom:13px}.codex-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.codex-card{border:1px solid #4d6257;border-radius:5px;background:#263d3b;padding:15px;text-align:center}.codex-card svg{width:100%;height:150px}.codex-card h3{font-size:calc(12px * var(--font-scale));margin:6px 0}.codex-card p{font-size:calc(11px * var(--font-scale));color:#abb9a7;margin:0}.codex-card.locked{opacity:.6}.codex-filter{display:flex;gap:8px;margin-bottom:25px;flex-wrap:wrap}.ending{min-height:calc(100svh - 66px);display:grid;place-content:center;text-align:center;padding:50px 25px;background:radial-gradient(ellipse at center,#443c38,#152326 70%)}.ending h1{font-family:'Gowun Batang',serif;font-size:calc(48px * var(--font-scale));color:#dec294;margin:18px 0}.ending p{max-width:620px;color:#b9bbae;font-size:calc(14px * var(--font-scale));line-height:2}.ending .row{justify-content:center}.ending.win{background:radial-gradient(ellipse at center,#3d5748,#152b2b 70%)}dialog{background:#223b39;color:var(--ink);border:1px solid #a5956b;border-radius:7px;padding:0;width:min(580px,calc(100% - 30px));max-height:86svh;box-shadow:0 20px 90px #071513a0}dialog::backdrop{background:#091b1c9e}#dialog-content{padding:27px}dialog h2{font-size:calc(23px * var(--font-scale))}dialog p{font-size:calc(13px * var(--font-scale));color:#bec8b4;line-height:1.9}dialog .row{margin-top:20px}.inspect{display:grid;grid-template-columns:170px 1fr;gap:18px;align-items:center}.inspect svg{width:100%;height:230px}.inspect-tags{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:15px}.inspect-tags span{padding:5px 8px;background:#354e43;border:1px solid #71806b;font-size:calc(11px * var(--font-scale));border-radius:3px}.battle-scene{background:radial-gradient(ellipse at 50% 55%,#49574b,#192d2f 70%);min-height:360px;padding:20px 25px;position:relative;overflow:hidden}.battle-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.battle-top h2{font-size:calc(20px * var(--font-scale));margin:0}.battle-lanes{display:grid;grid-template-columns:repeat(var(--lanes),1fr);gap:18px;max-width:1100px;margin:auto}.battle-lane{border:1px solid #6f7160;border-radius:6px;background:#263c3980;position:relative;min-height:300px;padding:14px;overflow:hidden}.enemy-portrait{height:175px}.enemy-portrait svg{height:225px;width:100%;position:relative;top:-25px}.battle-lane header{display:flex;justify-content:space-between;font-size:calc(11px * var(--font-scale));position:relative;z-index:1}.lane-phase{font-size:calc(11px * var(--font-scale));text-align:center;color:#d8c897;margin-top:5px}.qte-area{height:65px;position:relative;display:flex;align-items:center;justify-content:center;gap:10px}.qte-key{border:2px solid #d5bb7f;border-radius:50%;height:45px;width:45px;display:grid;place-content:center;font-size:calc(24px * var(--font-scale));background:#223932;box-shadow:0 0 12px #c5a56a22}.qte-key.done{background:#75917a;color:#172b29;opacity:.45}.qte-time{height:4px;background:#243930;margin-top:6px}.qte-time i{height:100%;display:block;background:#d4ba7b}.rhythm-zone{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,transparent 59%,#c6bd7460 59%,#c6bd7460 85%,transparent 85%)}.rhythm-cursor{position:absolute;top:0;bottom:0;width:3px;background:#ede1b5}.battle-status{padding:13px 25px;background:#253c36;display:flex;justify-content:space-between;align-items:center;gap:15px}.battle-status p{margin:0;font-size:calc(12px * var(--font-scale))}.battle-help{font-size:calc(11px * var(--font-scale));color:#b8c5ac;padding:10px 25px;background:#1a2e2c;line-height:1.8}.hand-weapon{position:absolute;right:10px;bottom:-8px;transform:rotate(-12deg);font-size:calc(52px * var(--font-scale));color:#cdc0a0;opacity:.2;pointer-events:none}.keypad{display:flex;gap:5px;flex-wrap:wrap;justify-content:center;margin-top:8px}.keypad button{font-size:calc(16px * var(--font-scale));padding:8px 15px}#toasts{position:fixed;top:16px;left:50%;transform:translateX(-50%);z-index:100;pointer-events:none;display:grid;gap:8px;width:max-content;max-width:90vw}.toast{padding:12px 20px;background:#ead8af;color:#233a32;box-shadow:0 3px 12px #10282860;border-radius:5px;font-size:calc(12px * var(--font-scale));animation:toast .2s ease-out}#music-dock{position:fixed;bottom:12px;right:15px;z-index:40}#music-toggle{font-size:calc(10px * var(--font-scale));background:#172c2ce8;border-color:#62705e;padding:7px 11px}.music-head{display:flex;justify-content:space-between;align-items:center}.music-head button{font-size:calc(10px * var(--font-scale))}#music-panel{width:340px;max-width:90vw;background:#213936;border:1px solid #8f8f68;border-radius:6px;padding:15px;margin-bottom:8px;box-shadow:0 8px 25px #0a202080}#music-panel iframe{width:100%;height:180px;border:0}#music-panel p{font-size:calc(11px * var(--font-scale));margin:10px 0}.music-controls{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.music-controls label{font-size:calc(10px * var(--font-scale));display:flex;gap:8px;align-items:center}.music-controls input{padding:0;width:90px}.local-music{border-top:1px solid #536b5c;margin-top:12px;padding-top:10px}.local-music label{font-size:calc(11px * var(--font-scale))}.local-music input{width:100%;font-size:calc(10px * var(--font-scale));margin-top:8px}.local-music select{padding:4px;font-size:calc(10px * var(--font-scale))}.pause-mark{text-align:center;padding:30px}.pause-mark h2{font-size:calc(30px * var(--font-scale))}.story{text-align:center;max-width:650px;margin:60px auto}.story p{font-family:'Gowun Batang',serif;font-size:calc(18px * var(--font-scale));line-height:2.1;color:#d0d6bf}.story h1{font-size:calc(38px * var(--font-scale))}.story button{margin-top:20px}.mobile-note{display:none}.equipment-list{font-size:calc(12px * var(--font-scale));line-height:2}.inline-select{font-size:calc(11px * var(--font-scale));width:110px}.checks{font-size:calc(11px * var(--font-scale));line-height:2;color:#bec8b2}@keyframes danger{50%{border-color:#f0a087;box-shadow:0 0 15px #bc65483b}}@keyframes toast{from{opacity:0;transform:translateY(-8px)}}@media(min-width:1500px){.service-scene{min-height:390px}.customer-art{height:235px}.customer-art svg{height:285px}.customer.empty{height:333px}.counter{padding-bottom:32px}}@media(max-width:900px){.topbar{padding:0 16px}.brand small{display:none}.container{padding:22px 18px}.menu-inner{padding:50px 30px 100px;grid-template-columns:1fr 1fr}.menu h1{font-size:calc(64px * var(--font-scale))}.counter-inner{gap:12px;grid-template-columns:.9fr 1.1fr 1fr}.counter{padding:17px 15px}.service-scene{padding:15px 15px 0}.customers{gap:7px}.customer-top{padding:8px;height:85px}.bubble{font-size:calc(11px * var(--font-scale));padding:7px}.customer-buttons button{padding:5px 2px;font-size:calc(9px * var(--font-scale))}.hud-item{padding:10px 12px}.hud-item strong{font-size:calc(16px * var(--font-scale))}.service-bottom{padding:12px 15px}.codex-grid{grid-template-columns:repeat(3,1fr)}.paper{padding:13px}.ingredients button{font-size:calc(11px * var(--font-scale))}.counter .price-row input{width:100px}.key{display:none}.brand{font-size:calc(18px * var(--font-scale))}}@media(max-width:650px){.menu-inner{display:flex;flex-direction:column-reverse;align-items:stretch;padding:25px 26px 100px}.shop-art{max-width:290px;margin:0 auto 15px}.menu h1{font-size:calc(65px * var(--font-scale));letter-spacing:-5px;margin:10px 0}.menu .subtitle{font-size:calc(15px * var(--font-scale));margin:15px 0}.menu .blurb{font-size:calc(12px * var(--font-scale))}.menu-buttons{max-width:none}.menu-footer{left:25px;right:25px;bottom:55px}.menu-footer span:last-child{display:none}.fan-notice{margin-top:20px}.topbar{height:58px}.topbar button{font-size:calc(10px * var(--font-scale));padding:7px 10px}.hud{grid-template-columns:repeat(3,1fr)}.hud-item{padding:8px 10px}.hud-item:nth-child(n+4){border-top:1px solid #465e59}.hud-item strong{font-size:calc(15px * var(--font-scale))}.hud-item:last-child{grid-column:span 2}.customers{display:flex;overflow-x:auto;gap:10px;scroll-snap-type:x mandatory}.customer{flex:0 0 calc(50% - 5px);scroll-snap-align:start}.customer-art{height:154px}.customer-art svg{height:205px}.customer-top{height:90px}.customer.empty{height:260px}.counter-inner{display:flex;flex-wrap:wrap;gap:14px}.counter-inner>.paper{width:100%;order:0}.order-seq{min-height:0}.buildboard{flex:1;min-width:150px;order:1;padding:9px;border-width:5px}.prep-controls{width:46%;order:2}.ingredients button{padding:12px 3px}.sauce-row{gap:4px}.sauce{font-size:calc(8px * var(--font-scale));padding:8px 2px}.recipe-preview{font-size:calc(9px * var(--font-scale))}.price-row{gap:5px}.price-row input{width:90px!important}.service-bottom{grid-template-columns:1fr}.tools-row{padding-bottom:10px}.contract-banner{padding:10px 16px;line-height:1.8}.morning-grid{grid-template-columns:1fr}.shop-list{grid-template-columns:1fr}.codex-grid{grid-template-columns:repeat(2,1fr)}.page-heading{align-items:start}.page-heading h1{font-size:calc(25px * var(--font-scale))}.page-heading .row{gap:6px}.statement{padding:22px}.statement h1{font-size:calc(26px * var(--font-scale))}.battle-scene{padding:14px 10px;min-height:320px}.battle-lanes{gap:6px}.battle-lane{padding:9px 5px;min-height:265px}.battle-lane header{font-size:calc(9px * var(--font-scale));display:block}.enemy-portrait{height:130px}.enemy-portrait svg{height:180px}.qte-key{width:31px;height:31px;font-size:calc(17px * var(--font-scale))}.qte-area{gap:3px}.battle-status{padding:12px;flex-wrap:wrap}.inspect{grid-template-columns:120px 1fr;gap:10px}.inspect svg{height:180px}.inspect-tags span{font-size:calc(10px * var(--font-scale))}.tutorial-strip{padding:10px 15px;font-size:calc(11px * var(--font-scale))}.mobile-note{display:block;font-size:calc(10px * var(--font-scale));color:#a4b29f}.story{margin:35px auto}.story p{font-size:calc(15px * var(--font-scale))}.newspaper{padding:18px}.newspaper h1{font-size:calc(28px * var(--font-scale))}.ending h1{font-size:calc(35px * var(--font-scale))}#dialog-content{padding:22px}.hud-item label{font-size:calc(9px * var(--font-scale))}#music-dock{bottom:8px;right:8px}.npc-strip{padding:9px 15px;font-size:calc(10px * var(--font-scale))}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.art-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.art-catalog-card{border:1px solid #62705e;border-radius:5px;background:#2a3e39;overflow:hidden}.art-catalog-drawing{background:radial-gradient(ellipse at 50% 60%,#69725b,#334c40 75%);padding:12px 20px 0}.art-catalog-drawing svg{width:100%;height:auto;display:block}.art-catalog-card>div+div{padding:20px}.art-catalog-card h2{font-family:'Gowun Batang',serif;font-size:calc(20px * var(--font-scale));margin:10px 0}.art-catalog-card p{font-size:calc(11px * var(--font-scale));color:#b2bda6;margin:0}@media(max-width:650px){.art-gallery{grid-template-columns:repeat(2,1fr);gap:12px}.art-catalog-drawing{padding:5px}.art-catalog-card>div+div{padding:13px}.art-catalog-card h2{font-size:calc(16px * var(--font-scale))}.art-catalog-card p{font-size:calc(10px * var(--font-scale))}}
.art-locked{aspect-ratio:360/420;display:grid;place-content:center;font-size:calc(76px * var(--font-scale));font-family:'Gowun Batang',serif;color:#7e8d76;background:radial-gradient(ellipse,#3b5143,#233a32)}.art-catalog-card.locked{border-style:dashed;opacity:.7}
/* Cold concrete, stained brass, oxblood enamel and a working shop counter. */
:root{--font-scale:2;--ink:#e2d6bb;--muted:#b0a58e;--gold:#c69a53;--dark:#171719;--panel:#242426;--line:#665844;--paper:#d5c6a5;--red:#b85e4d;--green:#b7aa80;background:#171719;font-family:'Noto Sans KR','Malgun Gothic',sans-serif}
html[data-font=small]{--font-scale:1.5}html[data-font=large]{--font-scale:2.4}
button,input,select,.card,.shop-item,.customer,.bubble,.battle-lane,.codex-card,.art-catalog-card,dialog,.pill{border-radius:0}
button{background:#34302c;border-color:#776345;box-shadow:inset 0 0 0 2px #17171955;font-weight:700}button:hover:not(:disabled){background:#514535}button.primary{background:#9b773e;color:#fff0d1;border-color:#d6b36c}button.danger{background:#4b2422;border-color:#92574a}
.topbar{background:#171719;border-bottom:3px double #9b7746;height:auto;min-height:66px;padding:10px 24px;gap:12px}.brand small{display:none}.brand{font-size:calc(18px * var(--font-scale))}.version{color:#baa98b}
.menu{height:100svh;min-height:0;display:grid;grid-template-rows:auto 1fr auto;background:linear-gradient(100deg,#131315 10%,#252324 65%,#39332a);overflow:hidden}.menu-inner{min-height:0;height:100%;width:100%;padding:16px 36px;gap:24px;grid-template-columns:1fr 1fr}.menu-inner>div:first-child{min-height:0;display:flex;flex-direction:column;justify-content:center}.menu h1{font-size:clamp(40px,7vw,94px);letter-spacing:-4px;margin:0 0 8px;color:#d7bd87;text-shadow:4px 4px #070707}.menu .eyebrow{display:none}.menu .subtitle{margin:0 0 12px;font-size:clamp(18px,2.1vw,28px)}.menu .blurb{display:none}.menu-buttons{max-width:520px;gap:6px}.menu-buttons button{padding:8px 16px;font-size:clamp(18px,2.8vh,30px);min-height:0}.menu-buttons button.primary{font-size:clamp(18px,2.8vh,30px)}.menu-buttons button span{font-size:.7em}.menu .fan-notice{font-size:clamp(10px,1.5vh,14px);margin:12px 0 0;max-width:540px;color:#a79880;line-height:1.5}.shop-art{filter:grayscale(.65) sepia(.35) brightness(.7) drop-shadow(0 25px 25px #000);max-height:100%;transform:none}.shop-art svg{max-height:65svh}.shop-art .sticker{background:#4c2723;border-radius:0;color:#d6bd89;font-size:calc(18px * var(--text-scale,1))}.menu-footer{position:static;padding:8px 28px 20px;font-size:calc(12px * var(--text-scale,1));color:#a38d69}.menu-footer span:last-child{display:none}
.hud{background:#242325;border-bottom:3px solid #6f5737;grid-template-columns:1.1fr 1fr 1fr 1fr 1.2fr}.hud-item{border-color:#504638;padding:10px 16px}.hud-item strong{font-size:calc(17px * var(--font-scale))}.hud-item label,.hud-item small{color:#b7a88c}.bar{border-radius:0;background:#171619}.bar.patience i{background:#b8a15d}.day-time i{background:#945144}
.service-scene{min-height:310px;background:linear-gradient(#111216cc,#16151644),repeating-linear-gradient(0deg,transparent 0 59px,#08080888 60px 63px),repeating-linear-gradient(90deg,#45413b 0 139px,#242323 140px 143px);padding-top:16px;border-bottom:10px solid #161415}.scene-back{background:linear-gradient(90deg,transparent 6%,#111114 6% 7%,transparent 7% 49%,#111114 49% 50%,transparent 50% 93%,#111114 93% 94%,transparent 94%),linear-gradient(#080808 0 8px,transparent 8px);opacity:.7}.service-scene:before{content:'샌드팡팡   /   주문은 한 번에 한 분씩';position:absolute;top:16px;left:50%;transform:translateX(-50%);color:#a09076;letter-spacing:3px;font-size:calc(14px * var(--text-scale,1));opacity:.45}.customer{background:#16151566;border-color:#63543e}.customer.selected{border-color:#d9ad61;box-shadow:inset 0 0 0 2px #a9884a}.customer-top{height:auto;min-height:80px}.bubble{background:#d6c6a7;color:#272322;border:2px solid #493e30;padding:10px 14px;font-size:calc(12px * var(--font-scale));line-height:1.45}.customer-art{height:190px}.customer-art svg{height:235px;filter:saturate(.65)}.customer-buttons button{font-size:calc(10px * var(--font-scale));padding:7px}.customer-meta{font-size:calc(10px * var(--font-scale))}.customer.empty{height:300px;border:1px dashed #6d604c;background:#19171866}.customer.empty p{display:none}
.counter{border-top:4px solid #8c6d43;background:repeating-linear-gradient(0deg,#352b24 0 35px,#2d241e 36px 39px,#3b2e25 40px 75px);padding:20px 24px;box-shadow:inset 0 12px 18px #0008}.counter-inner{max-width:1700px;grid-template-columns:1.1fr 1fr 1.05fr auto;gap:20px;align-items:start}.paper{background:#d1c1a0;color:#29251e;border:1px solid #918067;box-shadow:3px 5px #181413;transform:rotate(-.7deg);padding:18px}.paper .small,.paper .muted{color:#554b3c}.paper h3{font-size:calc(14px * var(--font-scale))}.order-seq{font-size:calc(14px * var(--font-scale));line-height:1.6}.buildboard{background:#8e6d48;border:8px solid #63472c;box-shadow:inset 0 0 20px #1d150c66;border-radius:0}.board-tag{color:#34271d}.board-bottom button{font-size:calc(10px * var(--font-scale))}.ingredients{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,auto);gap:5px}.ingredients button{background:#33302b;border:2px solid #8e7856;font-size:calc(12px * var(--font-scale));padding:9px 3px;display:flex;flex-direction:column;align-items:center;gap:3px}.ingredients button:nth-child(1){grid-area:1/2}.ingredients button:nth-child(2){grid-area:3/2}.ingredients button:nth-child(3){grid-area:2/1}.ingredients button:nth-child(4){grid-area:2/3}.ingredients kbd{margin:0;font-size:1.2em}.price-row input{width:160px!important}.prep-controls .eyebrow{font-size:calc(10px * var(--font-scale));letter-spacing:1px}.sauce-row{flex-wrap:wrap}.sauce{flex:1 1 40%;font-size:calc(10px * var(--font-scale))}.contract-banner{max-width:260px;padding:14px;background:#272321;border:2px solid #786244;line-height:1.7;font-size:calc(11px * var(--font-scale))}.counter-inner:has(.contract-banner[hidden]){grid-template-columns:1.1fr 1fr 1.05fr}.service-bottom{background:#1d1b1c;padding:12px 24px}.log-list{color:#b3a48c;max-height:100px}.tools-row button{font-size:calc(10px * var(--font-scale))}#speed-controls{display:flex;gap:4px}.card,.shop-item,.codex-card,.art-catalog-card{background:#262426;border-color:#6e5a40}.card p,.shop-item p,.codex-card p{color:#c1b39b}.notice,.tutorial-strip{background:#4a3828;color:#ead4a8;border-color:#af8750}.battle-scene{background:radial-gradient(ellipse,#4b3934,#191719 80%)}.battle-lane{background:#252224;border-color:#775c48}.battle-status,.battle-help{background:#282124}.qte-key{background:#292325;border-color:#cea465}dialog{width:min(900px,calc(100% - 32px));background:#242124;border:3px double #b28d56;box-shadow:8px 12px 0 #0008}dialog p{color:#d1c0a1}dialog::backdrop{background:#080708c9}.inspect{grid-template-columns:220px 1fr}.inspect-tags span{background:#3c342a;border-color:#796345}.toast{background:#ccb68b;color:#241f1a;border-radius:0}.container{max-width:1550px}.archive{max-width:1450px}.archive-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.codex-card{text-align:left;padding:20px}.codex-card svg{height:180px}.codex-card h3{font-size:calc(15px * var(--font-scale))}.codex-card p{font-size:calc(11px * var(--font-scale));line-height:1.7;margin:8px 0}.traits{color:#a79470!important}.unknown{height:180px;display:grid;place-content:center;font-size:calc(70px * var(--text-scale,1));color:#827056}.pagination{display:flex;align-items:center;justify-content:center;gap:20px;margin:24px 0}.directive-card{min-height:180px}.art-catalog-drawing{background:radial-gradient(ellipse,#66574a,#282328)}.art-catalog-drawing svg{max-height:250px}.art-catalog-card p{color:#c1ad8c}.codex-card.locked,.art-catalog-card.locked{opacity:.65}.story{margin:30px auto}.story p{font-size:calc(14px * var(--font-scale))}
@media(max-width:1100px){.counter-inner,.counter-inner:has(.contract-banner[hidden]){grid-template-columns:1fr 1fr}.prep-controls{grid-column:1}.contract-banner{max-width:none}.hud{grid-template-columns:repeat(3,1fr)}.hud-item:last-child{grid-column:span 2}.brand{font-size:calc(24px * var(--text-scale,1))}.version{display:none}}
@media(max-width:650px){.menu-inner{display:grid;grid-template-columns:1fr;padding:12px 22px}.menu .shop-art{display:none}.menu h1{font-size:clamp(38px,9vh,68px)}.menu .fan-notice{font-size:calc(10px * var(--text-scale,1))}.menu-buttons{max-width:none}.menu-footer{padding:5px 22px 12px}.menu .topbar{min-height:52px}.topbar{padding:8px 12px}.topbar button{font-size:calc(10px * var(--font-scale))}.counter-inner,.counter-inner:has(.contract-banner[hidden]){display:grid;grid-template-columns:1fr}.counter-inner>.paper,.prep-controls{width:100%}.counter-inner>.paper{order:0}.counter-inner>div:nth-child(2){order:1}.prep-controls{order:2}.contract-banner{order:3}.customers .customer{flex-basis:85%}.archive-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.codex-card{padding:8px}.codex-card svg,.unknown{height:95px}.codex-card h3{font-size:calc(9px * var(--font-scale))}.codex-card p{font-size:calc(8px * var(--font-scale));overflow-wrap:anywhere}.archive{padding:16px 8px}.art-catalog-card h2{font-size:calc(9px * var(--font-scale))}.inspect{grid-template-columns:1fr}.inspect svg{height:160px}.hud-item strong{font-size:calc(12px * var(--font-scale))}}
@media(max-height:600px){.menu-inner{grid-template-columns:1fr;padding:8px 24px}.menu .shop-art,.menu .subtitle,.menu .fan-notice{display:none}.menu h1{font-size:calc(36px * var(--text-scale,1))}.menu-buttons{grid-template-columns:1fr 1fr;max-width:none}.menu-buttons button{font-size:calc(18px * var(--text-scale,1));padding:8px 12px}.menu-footer{padding:4px 24px 10px}}
/* One screen per scene. Long inventories use grade tabs; the archive uses 3×3 pages. */
html,body{height:100%;width:100%;overflow:hidden}#app{position:absolute;width:1680px;transform-origin:top left;min-height:900px}.menu{height:900px}.menu-inner{padding:20px 45px}.menu .shop-art svg{max-height:660px}.topbar{min-height:58px;padding:8px 22px}.topbar .brand{font-size:calc(30px * var(--text-scale,1))}.topbar button{font-size:calc(22px * var(--text-scale,1))}.container{width:100%;padding:20px 30px;max-width:none}.page-heading{margin-bottom:12px}.page-heading h1{font-size:calc(36px * var(--text-scale,1));margin:0}.page-heading p{font-size:calc(22px * var(--text-scale,1))}.morning-grid{gap:20px}.morning-grid .card{padding:18px}.action-card{min-height:90px;padding:12px}.action-card strong{margin:5px 0}.card h2{margin-bottom:12px}.hud-item{padding:8px 16px}.hud-item label{margin:0}.hud-item strong{font-size:calc(16px * var(--font-scale))}.hud-item small{font-size:calc(9px * var(--font-scale))}.service-scene{min-height:0;padding:8px 22px 0}.customers{gap:12px}.customer{cursor:pointer}.customer-top{min-height:60px;padding:5px;height:auto}.bubble{padding:7px;min-height:55px;font-size:calc(10px * var(--font-scale));line-height:1.35;max-height:none}.customer-art{height:145px;overflow:hidden}.customer-art svg{height:160px;top:0;max-width:100%;pointer-events:none}.customer-meta{font-size:calc(8px * var(--font-scale));background:#171515bb}.customer-buttons{padding:5px;gap:5px}.customer-buttons button{font-size:calc(9px * var(--font-scale));padding:5px 8px;min-height:32px}.customer.empty{height:255px;min-height:0}.counter{padding:12px 20px}.counter-inner,.counter-inner:has(.contract-banner[hidden]){grid-template-columns:1.15fr 1fr 1.05fr;gap:15px}.counter-inner:has(.contract-banner:not([hidden])){grid-template-columns:1.05fr .9fr 1fr .7fr}.paper{padding:12px}.paper h3{margin:0 0 8px}.order-seq{min-height:0;font-size:calc(11px * var(--font-scale));margin-bottom:8px}.paper .small{font-size:calc(9px * var(--font-scale))}.paper button{font-size:calc(9px * var(--font-scale));padding:6px 8px}.buildboard{padding:8px;border-width:5px;min-height:0}.board-tag{font-size:calc(14px * var(--text-scale,1))}.sandwich-stack{min-height:65px;max-height:140px;overflow:hidden}.sandwich-stack .layer{height:9px}.recipe-preview{font-size:calc(8px * var(--font-scale));min-height:0;margin:5px 0}.board-bottom button{padding:5px 8px}.sauce-row{margin-top:8px;display:grid;grid-template-columns:repeat(4,1fr)}.sauce{padding:8px 3px;font-size:calc(8px * var(--font-scale));gap:4px}.bottle{height:24px;width:17px}.ingredients{grid-template-rows:repeat(3,43px);gap:3px;max-width:310px;margin:auto}.ingredients button{font-size:calc(10px * var(--font-scale));padding:2px;flex-direction:row;justify-content:center}.ingredients kbd{font-size:1em}.price-row{margin-top:8px}.price-row input{padding:4px;width:165px!important}.sell-button{padding:8px;margin-top:6px}.prep-controls .eyebrow{margin-bottom:4px!important}.service-bottom{padding:8px 20px;gap:12px}.log-list{max-height:48px;font-size:calc(8px * var(--font-scale));line-height:1.4;overflow:hidden}.tools-row{gap:5px}.tools-row button{padding:5px 9px}.contract-banner{padding:10px;font-size:calc(9px * var(--font-scale));max-width:none}.checks{font-size:calc(9px * var(--font-scale))}.tutorial-strip{padding:8px 22px;font-size:calc(10px * var(--font-scale));line-height:1.5}.tutorial-strip button{font-size:calc(9px * var(--font-scale));white-space:nowrap}
.shop-list{grid-template-columns:repeat(3,1fr);gap:12px}.shop-item{padding:14px;gap:8px;min-height:155px}.shop-item h3{font-size:calc(12px * var(--font-scale))}.shop-item p{font-size:calc(10px * var(--font-scale));line-height:1.5}.shop-item button{font-size:calc(10px * var(--font-scale));padding:7px 12px}.gear-pages{margin-bottom:12px}.gear-pages button{font-size:calc(10px * var(--font-scale));padding:6px 14px}.equipment-list{font-size:calc(11px * var(--font-scale));line-height:1.7}
.archive .page-heading{display:inline-flex;margin-right:25px}.archive .codex-filter{display:inline-flex;margin:0 18px 12px 0}.archive-grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:minmax(185px,auto);gap:10px}.archive-grid .codex-card{padding:12px 16px;display:grid;grid-template-columns:110px 1fr;align-content:center;column-gap:12px}.archive-grid .codex-card svg,.archive-grid .unknown{grid-row:1/5;height:140px;width:110px;align-self:center}.archive-grid .codex-card h3{font-size:calc(12px * var(--font-scale));margin:0 0 5px}.archive-grid .codex-card p{font-size:calc(9px * var(--font-scale));line-height:1.45;margin:3px 0}.archive-grid .directive-card{display:flex;flex-direction:column;justify-content:center;min-height:185px}.archive-grid .art-catalog-card{display:grid;grid-template-columns:140px 1fr;align-items:center}.archive-grid .art-catalog-drawing{padding:5px}.archive-grid .art-catalog-drawing svg{height:170px;width:130px}.archive-grid .art-catalog-card h2{font-size:calc(13px * var(--font-scale));margin:0 0 8px}.archive-grid .art-catalog-card>div+div{padding:10px}.archive-grid .art-catalog-card .unknown{width:140px;height:170px}.pagination{margin:12px 0 0}.pagination button{font-size:calc(10px * var(--font-scale));padding:6px 16px}.newspaper{max-width:1050px;padding:20px 32px}.newspaper h1{margin:8px 0;padding:12px}.newspaper p{font-size:calc(11px * var(--font-scale));line-height:1.6;margin:8px 0}.territory-pie{width:230px;height:230px;border-radius:50%;margin:18px auto;border:4px solid #4d4536;box-shadow:3px 5px #afa17f}.territory-legend{gap:20px!important}.statement{max-width:900px;padding:22px 30px}.statement h1{margin:5px 0 10px;font-size:calc(36px * var(--text-scale,1));padding-bottom:12px}.statement dl>div{padding:7px 0}.statement .quote{font-size:calc(11px * var(--font-scale));line-height:1.6;margin-top:12px;padding:12px}.ending{min-height:810px;padding:30px}.story{margin:24px auto;max-width:850px}.story p{line-height:1.7}.inspect svg{height:220px}dialog{max-height:94vh}#dialog-content{padding:22px}dialog .row{margin-top:12px}dialog h2{margin-bottom:12px}.enemy-portrait svg{height:210px;top:0}.battle-help{font-size:calc(10px * var(--font-scale))}.battle-lane header{font-size:calc(11px * var(--font-scale))}
/* Customer window: order on the left, unobstructed upper body on the right. */
.customers{display:grid;grid-template-columns:repeat(var(--columns,3),minmax(0,1fr));gap:10px;overflow:visible}.customer{position:relative;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(120px,.8fr);grid-template-rows:auto 1fr 34px;min-height:235px;padding:5px;overflow:visible}.customer-label{grid-column:1;grid-row:1;justify-self:start;background:#24201dd9;color:#dcc89e;border:1px solid #78603f;padding:3px 7px;font-size:calc(9px * var(--font-scale));z-index:2;line-height:1.1}.customer-top{grid-column:1;grid-row:2;min-height:0;padding:4px 2px;height:auto;overflow:visible;align-self:center}.customer .bubble{width:100%;height:auto;max-height:none;overflow:visible;white-space:normal;overflow-wrap:anywhere;font-size:calc(10px * var(--font-scale));line-height:1.45;padding:8px;box-shadow:none}.customer-art{grid-column:2;grid-row:1/3;position:relative;height:190px;align-self:center;overflow:visible;pointer-events:none}.customer-art svg{width:100%;height:190px;max-height:none;top:0;object-fit:contain}.customer-buttons{grid-row:3;grid-column:1/3;margin:0;justify-content:center;min-height:34px}.customer-buttons button{flex:1;font-size:calc(9px * var(--font-scale));padding:4px}.customer.empty{height:auto;min-height:235px;display:grid;place-content:center}.customer-reactions{position:absolute;left:5px;right:5px;top:-8px;z-index:4;pointer-events:none;display:grid;gap:3px}.customer-reactions span{font-size:calc(9px * var(--font-scale));font-weight:800;background:#191719ed;border:1px solid currentColor;padding:4px 6px;text-align:center}.customer-reactions .good{color:#a8d8aa}.customer-reactions .bad{color:#ff8f78}.customer-reactions .permanent{position:relative;top:0}.customer-reactions .fleeting{box-shadow:0 2px 6px #0009}.service-scene{overflow:visible;padding-top:16px}.customer.art .customer-top{grid-row:1/3}.customer.art .customer-art svg{height:190px}.customer.art .bubble{font-size:calc(11px * var(--font-scale))}.action-grid{grid-template-columns:repeat(3,1fr)}.action-grid .action-card:last-child{grid-column:span 2}.action-card small{font-size:calc(9px * var(--font-scale))}.action-card strong{font-size:calc(13px * var(--font-scale))}.action-card{padding:12px}.morning-grid .card p{font-size:calc(10px * var(--font-scale))}.turn-stamp{position:absolute;inset:25% 0 auto;z-index:8;text-align:center;font-size:calc(29px * var(--font-scale));font-weight:900;letter-spacing:3px;padding:20px 0;border-block:4px double currentColor;background:#201c1cdd;transform:rotate(-5deg);color:#d4b771;pointer-events:none}.turn-stamp.attack{color:#f1866d}.turn-stamp.defend{color:#8ed1da}.stamp-pending{visibility:hidden}.stamp-row{animation:stamp-in .24s ease-out}.income-float{font-size:calc(38px * var(--text-scale,1));font-weight:900;color:#f0d186;text-shadow:2px 2px #241b12;animation:income-rise 1.7s ease-out both;text-align:center;pointer-events:none}.result-values{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:10px;border-block:1px solid #806a46}.result-values p{margin:0}.speed-group{display:grid;gap:4px}.speed-group small{font-size:calc(16px * var(--text-scale,1));color:#c5b490}.price-row button{font-size:calc(17px * var(--text-scale,1));padding:4px 6px}.damage-glass{position:absolute;inset:0;z-index:6;background:transparent!important;padding:0;border:0;box-shadow:none;pointer-events:none;width:100%;height:100%;overflow:visible}.damage-glass svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;fill:none;stroke:#d5e1d7;stroke-width:5}.damage-glass span{position:absolute;right:20px;bottom:10px;pointer-events:auto;border:2px solid #e2c58a;background:#302b27;color:#fff0d5;padding:10px 18px;font-size:calc(22px * var(--text-scale,1))}.damage-glass.active span{background:#756039}.damage-glass.active svg{stroke:#c1dda7}.territory-pie{position:relative;width:300px;height:300px}.territory-pie span{position:absolute;transform:translate(-50%,-50%);font-size:calc(20px * var(--text-scale,1));line-height:1.2;text-align:center;font-weight:900;color:#fff6de;text-shadow:1px 1px 3px #171717;background:#211e1b99;padding:4px;border-radius:2px;white-space:nowrap}.territory-pie b{display:block}.art-detail{display:grid;grid-template-columns:230px 1fr;gap:22px;align-items:center}.art-detail svg{width:230px}.art-detail p{font-size:calc(20px * var(--text-scale,1))}.art-detail blockquote{margin:0;font-family:'Gowun Batang',serif;font-size:calc(22px * var(--text-scale,1));line-height:1.8;color:#e0cbb0;border-left:3px solid #ab8651;padding-left:18px}.art-detail footer{text-align:right;margin-top:12px;color:#b19b78}.archive-grid .art-catalog-card button{font-size:calc(17px * var(--text-scale,1));padding:5px 9px}.statement .quote{margin-bottom:8px}.shop-list{grid-template-columns:repeat(3,1fr)}#music-dock{top:65px;bottom:auto;right:20px}#music-toggle{display:none}#music-panel{margin:0}.battle-lane{overflow:visible}.lane-phase{font-size:calc(15px * var(--font-scale));font-weight:800}.battle-lane:has(.turn-stamp){border-color:#e5c989}@keyframes stamp-in{from{opacity:0;transform:scale(1.15) rotate(-2deg)}to{opacity:1;transform:scale(1) rotate(0)}}@keyframes income-rise{0%{opacity:0;transform:translateY(25px) scale(.8)}15%{opacity:1;transform:translateY(0) scale(1.1)}75%{opacity:1}100%{opacity:0;transform:translateY(-65px)}}
.faction-filter{display:flex;gap:8px;margin:0 0 10px}.faction-filter button{font-size:calc(20px * var(--text-scale,1));padding:5px 12px}.faction-notes{background:#1d1b1c;border:1px solid #716044;border-left:4px solid #aa864d;padding:10px 18px;margin-bottom:12px;display:grid;grid-template-columns:1fr 1fr;gap:4px 16px}.faction-notes h3{grid-column:1/-1;font-size:calc(24px * var(--text-scale,1));margin:0 0 5px}.faction-notes h3 small{float:right;font-size:calc(20px * var(--text-scale,1))}.faction-notes p{font-size:calc(19px * var(--text-scale,1));line-height:1.45;margin:0;color:#c9b99b}.archive .page-heading{gap:20px}.archive .page-heading button{font-size:calc(19px * var(--text-scale,1));padding:6px 12px}.archive-grid .codex-card{min-height:160px}.archive:has(.faction-notes) .archive-grid{grid-auto-rows:minmax(165px,auto)}

/* v0.5: stable seats, readable patience and encounter portraits */
.bar.patience{height:24px!important;background:#252222;border:2px solid #d1b57a;position:relative;margin-top:8px}.bar.patience i{background:#a2ba65}.bar.patience.urgent i{background:#d7473d}.bar.patience span,.bar.health span{position:absolute;inset:0;text-align:center;font-size:calc(15px * var(--text-scale,1));color:#fff;text-shadow:1px 1px #000}.bar.health{position:relative;height:20px}.event-portrait{float:left;width:180px;margin:0 22px 12px 0}.event-portrait svg{width:160px;height:190px}.event-portrait details{font-size:calc(18px * var(--text-scale,1))}#dialog-content>.row{clear:both}.shop-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.shop-item{padding:16px}.shop-item h3{font-size:calc(23px * var(--text-scale,1));margin:0 0 8px}.shop-item p{font-size:calc(18px * var(--text-scale,1));min-height:42px}.news-comparison{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:30px}.news-bar{display:block;height:14px;background:linear-gradient(to right,#52545a var(--before),transparent 0);position:relative}.news-bar:after{content:'';display:block;width:var(--after);height:7px;background:#b18a50;transition:width .8s}.rep-float{animation:incomeFly 1.8s forwards;font-size:calc(26px * var(--text-scale,1));font-weight:bold}.rep-float.good{color:#a6d38c}.rep-float.bad{color:#ed7770}.customer.strike .customer-art{animation:npcStrike .7s}.customer.dodge .customer-art{animation:npcDodge .7s}.customer.defeat .customer-art{transform:rotate(22deg) translateY(20px);opacity:.45}.customer.victory .customer-art{transform:translateY(-10px)}@keyframes npcStrike{30%{transform:translateX(22px) rotate(8deg)}70%{transform:translateX(-4px)}}@keyframes npcDodge{35%{transform:translateX(-20px) rotate(-12deg)}80%{transform:translateX(4px)}}

.newspaper>p{white-space:pre-line}.event-portrait details[open]{max-height:130px;overflow:auto}

/* Feedback 05/06: bounded content and stable archive navigation. */
.customer-reactions{top:4px;max-width:calc(100% - 10px);min-width:0;overflow:hidden}.customer-reactions span{min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere;word-break:keep-all;box-sizing:border-box;animation:none}
.directive-paper{display:flex;gap:10px;background:#d1c6a7;color:#302a24;border:1px solid #8c7957;box-shadow:2px 3px #1117;margin:10px 0;padding:12px;line-height:1.5}.directive-paper p{margin:0}.directive-paper.done{opacity:.65}.directive-paper.done p{text-decoration:line-through}
.combat-result-layout{display:grid;grid-template-columns:180px minmax(0,1fr);gap:24px}.result-portrait svg{width:180px;height:210px}.result-traits{margin-top:18px;border-top:1px solid #796346;padding-top:12px}.result-traits h3{font-size:calc(20px * var(--text-scale,1));margin:0 0 6px}.result-traits p{margin:0;line-height:1.6;overflow:visible;max-height:none}.event-portrait details[open]{max-height:none;overflow:visible}
.archive{justify-content:flex-start!important;align-content:start!important;overflow-y:auto}.archive .page-heading,.archive .codex-filter,.archive .faction-filter{flex-shrink:0}.archive-grid{align-content:start}.codex-card{position:relative}.discovery-count{position:absolute;right:12px;bottom:8px;color:#b7a27e;font-size:calc(16px * var(--text-scale,1))}.special-codex-card{display:grid!important;grid-template-columns:125px minmax(0,1fr)!important;align-items:start!important;padding:16px!important;gap:16px!important}.special-codex-card>svg{width:125px!important;height:170px!important;grid-row:auto!important}.special-codex-copy{min-width:0}.special-codex-copy p{overflow-wrap:anywhere;word-break:keep-all}.special-codex-copy h3{margin-top:0}.special-codex-copy h4{font-size:calc(18px * var(--text-scale,1));margin:12px 0 4px}.special-codex-card .unknown{width:125px!important}.archive-grid:has(.special-codex-card){grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:auto!important}

.archive .page-heading{display:flex;width:100%;height:58px;margin:0 0 12px}.archive .codex-filter{display:flex;height:42px;margin:0 0 10px;align-items:center}.archive .faction-filter{height:42px;align-items:center}.archive{scrollbar-gutter:stable}.contract-banner .checks{max-height:300px;overflow-y:auto}.archive-grid .codex-card:not(.special-codex-card){padding-bottom:30px}

/* Every codex page shares one 1680 × 1200 scene; only its content scrolls. */
#app:has(.archive){height:1200px;min-height:1200px;overflow:hidden}
#app:has(.archive)>.topbar{height:80px;min-height:80px;box-sizing:border-box}
.archive{height:1120px;min-height:1120px;width:100%;max-width:none;margin:0;display:flex;flex-direction:column;overflow:hidden;scrollbar-gutter:auto;padding:20px 30px}
.archive-nav{flex:none}.archive .page-heading{height:58px;min-height:58px;align-items:center;flex:none}.archive .codex-filter,.archive .faction-filter{height:42px;min-height:42px;flex-wrap:nowrap;align-items:center;flex:none}
.archive-content{flex:1;min-height:0;overflow:auto;scrollbar-gutter:stable;padding-right:6px}
.archive .faction-notes{min-height:190px;align-content:start;flex:none}
.archive .archive-grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:185px;align-content:start}
.archive .pagination{height:52px;min-height:52px;flex:none;margin:12px 0 0}
.archive-grid .special-summary{grid-template-columns:110px minmax(0,1fr);height:185px;min-height:185px;padding:12px 16px!important;text-align:left;align-items:center;align-content:center;gap:12px;font-weight:normal}
.archive-grid .special-summary>svg,.archive-grid .special-summary>.unknown{grid-row:auto;width:110px;height:140px}.special-summary>div{min-width:0}.special-summary h3{overflow-wrap:anywhere}.special-summary:hover{border-color:#d9b876}
.special-detail-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:36px;padding:22px;background:#262426;border:1px solid #6e5a40}.special-detail-layout aside svg{width:240px;height:300px}.special-detail-layout aside p{font-size:calc(22px * var(--text-scale,1))}.special-detail-copy{min-width:0}.special-detail-copy h3{font-size:calc(26px * var(--text-scale,1));margin:22px 0 8px;color:#d9b876}.special-detail-copy h3:first-child{margin-top:0}.special-detail-copy p{font-size:calc(22px * var(--text-scale,1));line-height:1.65;overflow-wrap:anywhere;margin:0 0 12px}

/* Center ending copy and align the five remaining service controls. */
.ending>div{width:100%;max-width:1500px;margin-inline:auto;display:flex;flex-direction:column;align-items:center}
.ending h1{max-width:100%;text-align:center;word-break:keep-all;text-wrap:balance}
.ending p{width:100%;max-width:1080px;margin:16px auto;text-align:center;word-break:keep-all;text-wrap:balance}
.ending .row{width:100%;justify-content:center;margin-top:12px}
.service-bottom{grid-template-columns:minmax(0,1fr) 580px;align-items:start}
.tools-row{width:580px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:42px auto;gap:6px;align-items:stretch;padding:0}
.tools-row>.speed-group,.tools-row #speed-controls{display:contents}
.tools-row button{width:100%;height:42px;margin:0;padding:5px 8px;font-size:calc(20px * var(--text-scale,1));white-space:nowrap}
.tools-row>.speed-group>small{grid-column:2/-1;grid-row:2;text-align:center;font-size:calc(16px * var(--text-scale,1));line-height:1.3}
.appearance-toggle>summary{display:inline-block;cursor:pointer;list-style:none;border:1px solid #927647;background:#332e27;color:#e5d3ad;padding:7px 15px;font-size:calc(20px * var(--text-scale,1));line-height:1.4}
.appearance-toggle>summary::-webkit-details-marker{display:none}.appearance-toggle>summary:hover{background:#494032;border-color:#d9b876}.appearance-toggle>summary:focus-visible{outline:3px solid #d9b876;outline-offset:3px}
.appearance-toggle>p{margin-top:12px;line-height:1.6}.result-traits{border-top:0;padding-top:0;margin-top:18px}.result-traits>p{margin-top:12px}

/* v0.6.3: six fixed seats, including the guard, on one counter row. */
.customers{max-width:none;grid-template-columns:repeat(var(--columns),minmax(0,1fr));overflow:visible}
.customers[data-seats="4"] .customer,.customers[data-seats="5"] .customer,.customers[data-seats="6"] .customer{grid-template-columns:minmax(0,1fr) 100px;min-height:280px;grid-template-rows:auto 1fr auto}
.customers[data-seats="5"] .customer-art,.customers[data-seats="6"] .customer-art{height:170px}
.customer-buttons{flex-wrap:wrap;align-content:center}.customer-buttons button{padding:5px 9px}
.customer.rampage{border-color:#b65d42;background:#51281d77}
.customer.rampage .customer-art{animation:counterSmash 1s infinite;transform-origin:50% 90%}
@keyframes counterSmash{0%,60%,100%{transform:translateY(0) rotate(0)}30%{transform:translateY(-10px) rotate(-8deg)}42%{transform:translateY(9px) rotate(6deg)}48%{transform:translateX(-3px)}54%{transform:translateX(3px)}}
@media(prefers-reduced-motion:reduce){.customer.rampage .customer-art{animation:none}}

/* Held repair: restrained hammer taps and a small impact flash. */
.damage-glass span{display:flex;align-items:center;gap:12px}
.damage-glass span b{font-weight:500;pointer-events:none}
.repair-tool{display:none;position:relative;width:24px;height:29px;transform-origin:70% 90%;pointer-events:none}
.repair-tool:before{content:'';position:absolute;width:23px;height:9px;left:0;top:0;background:#d5d7ca;border:2px solid #34302b;box-shadow:inset 0 -2px #858c81}
.repair-tool:after{content:'';position:absolute;width:6px;height:23px;left:10px;top:7px;background:#bc8754;border:1px solid #3a3028}
.damage-glass.active .repair-tool{display:block;animation:repairTap .45s infinite}
.repair-sparks{display:none;position:absolute;left:29px;bottom:10px;width:4px;height:4px;background:#ffe4a4;pointer-events:none}
.damage-glass.active .repair-sparks{display:block;animation:repairSpark .45s infinite}
.damage-glass.active>svg{animation:repairCrack .45s infinite}
@keyframes repairTap{0%,15%{transform:rotate(20deg) translateY(2px)}45%,70%{transform:rotate(-35deg) translateY(-4px)}100%{transform:rotate(20deg) translateY(2px)}}
@keyframes repairSpark{0%,12%{opacity:1;box-shadow:-9px -8px #e5cb8a,8px -5px #fff1be,2px -14px #d4bb80;transform:scale(1)}30%,90%{opacity:0;transform:scale(1.6)}100%{opacity:1;transform:scale(1)}}
@keyframes repairCrack{0%,12%{stroke:#f2deb1;filter:drop-shadow(0 0 3px #d7c49b)}35%,100%{stroke:#c1dda7;filter:none}}
@media(prefers-reduced-motion:reduce){.damage-glass.active .repair-tool,.damage-glass.active .repair-sparks,.damage-glass.active>svg{animation:none}.damage-glass.active .repair-sparks{display:none}}

/* Price input above a stable, equal-width pair of adjustment buttons. */
.prep-controls .price-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:6px 8px}
.prep-controls .price-row input{width:100%!important;min-width:0}
.price-adjustments{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.price-adjustments button{width:100%;white-space:nowrap}

/* v0.7.1 service controls */
.prep-controls .price-adjustments{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.prep-controls .price-adjustments button{padding-inline:5px;font-size:calc(19px * var(--text-scale,1));white-space:nowrap}.early-close-row{display:flex;justify-content:flex-end;margin-top:8px}.early-close-row button{font-size:calc(19px * var(--text-scale,1));padding:7px 14px}
/* v0.8.0: expanded business controls and progression */
.sauce-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.sauce{min-width:0}.gear-tabs{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:10px 0 18px}.gear-tabs button{font-size:calc(24px * var(--text-scale,1))}.item-flavor{font-style:italic;color:#c9b898}.shop-item .item-effect{font-size:calc(17px * var(--text-scale,1));min-height:40px;color:#9fae9a}.shop-item{display:flex;flex-direction:column}.shop-item>button{margin-top:auto}.fortune-badge{font-size:calc(19px * var(--text-scale,1));color:#e5cf8d;padding:5px 20px;background:#312a25}.morning-grid .equipment-list{font-size:calc(20px * var(--text-scale,1));line-height:1.5}.morning-grid .equipment-list h2{font-size:calc(25px * var(--text-scale,1));margin:10px 0}.morning-grid .equipment-list hr{border:0;border-top:1px solid #685845;margin:12px 0}.death-art svg{width:260px;max-height:310px}.customer.strike .customer-art{animation:npcStrikeFast var(--npc-motion,600ms)}.customer.dodge .customer-art{animation:npcDodgeFast var(--npc-motion,600ms)}@keyframes npcStrikeFast{30%{transform:translateX(calc(22px * var(--npc-scale,1))) rotate(10deg)}70%{transform:translateX(-4px)}}@keyframes npcDodgeFast{35%{transform:translateX(calc(-20px * var(--npc-scale,1))) rotate(-13deg)}80%{transform:translateX(4px)}}#sfx-volume{width:100%;accent-color:#c49d63}#coach-select{font-size:calc(23px * var(--text-scale,1));margin:12px;padding:10px;background:#302a27;color:#e6d8bf;max-width:100%}
.death-newspaper{max-width:690px;margin:20px auto;padding:22px;background:#c6b99e;color:#302b24;border:3px double #72614e;text-align:left}.death-newspaper header{border-bottom:2px solid #302b24;padding-bottom:8px;font-size:calc(18px * var(--text-scale,1));letter-spacing:2px}.death-newspaper h2{font-size:calc(27px * var(--text-scale,1));margin:15px 0}.ending .death-newspaper p{color:#302b24;font-size:calc(18px * var(--text-scale,1));line-height:1.7;margin:0}
/* 261020 feedback 03: stable shop pages, readable combat and native game tooltips. */
.early-close-row,.early-close-row button{width:100%}.early-close-row button{display:block}
.action-grid .action-card:last-child{grid-column:auto}.morning-heal{font-size:calc(19px * var(--text-scale,1));margin:3px 0}
.fortune-badge{position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 16px;margin:8px 0;border:2px solid #ab8753;background:#302820;color:#ead29b;cursor:help;font-size:calc(20px * var(--text-scale,1));border-radius:0;overflow:visible}.fortune-tooltip{position:absolute;z-index:40;bottom:calc(100% + 9px);left:0;width:max-content;max-width:340px;padding:13px 17px;border:2px solid #b28d56;background:#211e20;box-shadow:5px 6px #0009;color:#e2d0ac;font-size:calc(20px * var(--text-scale,1));line-height:1.5;text-align:left;visibility:hidden;opacity:0;pointer-events:none}.fortune-badge:hover .fortune-tooltip,.fortune-badge:focus-visible .fortune-tooltip{visibility:visible;opacity:1}.fortune-badge:focus-visible{outline:2px solid #ead29b;outline-offset:3px}.fortune-outcome{padding-top:65px}
.shop-page{height:1020px;box-sizing:border-box;display:flex;flex-direction:column;gap:10px}.shop-page .page-heading{flex:none;min-height:62px;margin:0}.shop-page .gear-tabs{flex:none;min-height:56px;margin:0}.shop-page>.row:not(:last-child),.shop-page .coach-row{flex:none;min-height:60px;margin:0}.shop-page .shop-list{height:700px;flex:none;grid-template-rows:repeat(3,minmax(0,1fr));align-content:start}.shop-page>.row:last-child,.shop-page>button:last-child{margin-top:auto;flex:none;align-self:flex-start}.shop-page .shop-item{overflow:hidden;min-height:0}.shop-page .shop-item p{margin:5px 0;min-height:35px}.coach-row{display:flex;align-items:center;gap:18px;font-size:calc(23px * var(--text-scale,1))}.coach-row #coach-select{margin:0;min-width:330px}.coach-fee{display:flex;gap:12px;align-items:center;color:#cbb896}.coach-fee strong{color:#e7d19b}
.battle-lanes{max-width:1550px}.battle-lane{height:500px;min-height:500px;display:grid;grid-template-rows:34px 16px minmax(0,1fr) 70px 12px;gap:8px;padding:14px;overflow:hidden}.battle-lane header{grid-row:1;font-size:calc(23px * var(--text-scale,1));align-items:center}.battle-lane>.bar{grid-row:2}.enemy-portrait{grid-row:3;height:100%;overflow:hidden;position:relative}.enemy-portrait svg{height:340px;top:-3px;width:100%;max-height:none}.battle-lane .qte-area{grid-row:4;align-self:center;margin:0}.battle-lane .qte-time{grid-row:5}.battle-lane .lane-phase{position:absolute;right:14px;bottom:100px;z-index:4;margin:0;padding:6px 10px;background:#191719e8;border:1px solid #9c8056;text-align:right;font-size:calc(23px * var(--text-scale,1));line-height:1.3}.combat-feedback{position:absolute;z-index:6;left:14px;right:14px;top:175px;padding:14px 8px;font-size:calc(39px * var(--text-scale,1));line-height:1.25;font-weight:900;text-align:center;background:#151214e8;border:2px solid #9c8056;text-shadow:2px 2px #000;pointer-events:none}.combat-feedback.failure{color:#f19483;border-color:#bd6a57}.combat-feedback.success{color:#c5d6a1}.battle-status{min-height:90px}.battle-status p{font-size:calc(29px * var(--text-scale,1));line-height:1.4;flex:1}.surrender-control{display:flex;flex-direction:column;gap:6px;min-width:285px}.surrender-control small{font-size:calc(18px * var(--text-scale,1));color:#b5a78f}.battle-help{padding:8px 25px;font-size:calc(20px * var(--text-scale,1))}
/* 0.8.2: table tickets and reserved customer actions. */
.combat-feedback.success{top:auto;right:auto;bottom:100px;left:14px;padding:6px 10px;font-size:calc(23px * var(--text-scale,1));max-width:55%;text-align:left}
.service-scene{padding-top:40px}.table-label{position:absolute;top:-31px;left:0;right:0;text-align:center;font-size:calc(22px * var(--text-scale,1));font-weight:800;color:#e6cf9e;pointer-events:none}
/* Keep the 0.8.1 dialogue/patience column; reserve only portrait-side actions. */
.customers .customer,.customers[data-seats] .customer{grid-template-columns:minmax(0,1.25fr) minmax(65px,.8fr) 90px;grid-template-rows:auto 1fr 34px;min-height:235px;padding:5px}.customers[data-seats="4"] .customer,.customers[data-seats="5"] .customer,.customers[data-seats="6"] .customer{min-height:280px}
.customer-label{grid-column:1;grid-row:1}.customer-top{grid-column:1;grid-row:2;align-self:center}.customer .bubble{font-size:calc(10px * var(--font-scale));line-height:1.45;padding:8px}.customers .customer-art,.customers[data-seats] .customer-art{grid-column:2;grid-row:1/3;height:190px;align-self:center;overflow:visible}.customer-art svg{height:190px}.customers[data-seats="5"] .customer-art,.customers[data-seats="6"] .customer-art{height:170px}.customer-actions{grid-column:3;grid-row:1/3;display:flex;flex-direction:column;justify-content:center;gap:7px;min-width:0}.customer-actions button{font-size:calc(8px * var(--font-scale));padding:7px 3px;white-space:nowrap}.customer-buttons{grid-column:1/4;grid-row:3}.customers .customer.empty{display:grid;place-content:center}.customer.art .customer-top{grid-column:1;grid-row:1/3}.customer.art .customer-art{grid-column:2/4;grid-row:1/3}.customer.art .customer-art svg{height:190px}.customer-reactions{top:4px}

.order-board{min-width:0;height:320px}.order-grid{display:grid;grid-template-columns:repeat(var(--ticket-columns),minmax(0,1fr));grid-template-rows:repeat(var(--ticket-rows),minmax(0,1fr));gap:8px;height:100%}.order-ticket{min-width:0;min-height:0;overflow:hidden;display:flex;flex-direction:column;align-items:stretch;text-align:left;border:2px solid #958266;border-radius:0;background:#d9cba9;color:#302921;padding:8px;box-shadow:2px 3px #15100ca6}.order-ticket:disabled{opacity:.6}.order-ticket.selected{border-color:#ffe3a3;box-shadow:0 0 0 2px #a66b36}.order-ticket:hover:not(:disabled){background:#e9dabb;color:#302921}.order-ticket header{display:flex;justify-content:space-between;gap:4px;flex-wrap:wrap;font-size:calc(18px * var(--text-scale,1));line-height:1.3;font-weight:800;border-bottom:1px solid #948069;padding-bottom:5px}.ticket-recipe{font-size:calc(var(--recipe-size) * var(--text-scale,1));line-height:1.35;overflow-wrap:anywhere;margin-top:7px;min-height:0;overflow:auto;flex:1}.order-ticket small{font-size:calc(13px * var(--text-scale,1));line-height:1.3;max-height:38px;overflow:auto}.order-ticket.unused{visibility:hidden}
.order-ticket header{flex-wrap:nowrap;font-size:calc(16px * var(--text-scale,1));white-space:nowrap;letter-spacing:-.5px}

/* 0.8.4: fixed scene geometry; text settings never change the scene scale. */
:root{--text-scale:1}html[data-font=small]{--text-scale:.85;--font-scale:1.7}html[data-font=normal]{--text-scale:1;--font-scale:2}html[data-font=large]{--text-scale:1.15;--font-scale:2.3}
.service-scene:before{content:none}.customer.table-selected{border:3px solid #ffdc83;box-shadow:inset 0 0 0 3px #9e702f,0 0 12px #f5bb5b77;background:#44321f99}.customers .customer{height:280px;min-height:280px;grid-template-rows:34px minmax(0,1fr) 38px}.customer-top{max-height:190px;overflow:auto}.customer .bubble{min-height:0}.customer-reactions{height:58px;overflow:hidden}.customer-reactions span{max-height:58px;overflow:auto}.customer-label{max-height:34px;overflow:hidden}.customer-buttons{height:38px;overflow:hidden}
.buildboard{position:relative;height:210px;min-height:210px;display:grid;grid-template-rows:20px 92px 38px 32px;overflow:hidden}#sandwich{height:92px;min-height:0;overflow:hidden;display:flex;align-items:center;justify-content:center}.sandwich-stack{height:90px;min-height:0;max-height:90px;display:flex;flex-direction:column;justify-content:center;width:100%;overflow:hidden}.sandwich-stack .layer{flex:0 1 9px;min-height:0;max-height:9px}.recipe-preview{height:38px;overflow:auto;line-height:1.3;margin:0}.board-tag{height:20px}.board-bottom{height:32px;overflow:hidden}.board-repair{position:absolute;inset:28px 8px 72px;width:calc(100% - 16px);z-index:5;display:flex;align-items:center;justify-content:center;background:#2d251ee8;border:2px solid #e2c58a;color:#fff0d5;padding:7px;font-size:calc(20px * var(--text-scale,1))}.board-repair.active{background:#756039}.board-repair span{position:relative;display:flex;gap:10px;align-items:center}.damage-glass{pointer-events:none!important}.insurance-status{height:30px;color:#d6c182;font-size:calc(20px * var(--text-scale,1))}
.shop-page{height:1020px;min-height:0;overflow:hidden}.shop-page .shop-list{height:auto;flex:1;min-height:0;grid-template-rows:repeat(3,minmax(0,1fr));gap:10px}.shop-page>.row:last-child,.shop-page>button:last-child{height:48px;min-height:48px;margin-top:0;flex:none;align-self:stretch}.shop-page>.row:last-child{align-items:center}.shop-page .shop-item{padding:12px;gap:3px;min-height:0;overflow:auto}.shop-item h3{font-size:calc(26px * var(--text-scale,1));line-height:1.2;margin:0 0 5px}.shop-item p,.shop-item .item-effect{font-size:calc(21px * var(--text-scale,1));line-height:1.35;min-height:0!important;margin:3px 0}.shop-item button{font-size:calc(23px * var(--text-scale,1));min-height:42px;padding:6px 10px;flex-shrink:0}.repayment{display:flex;align-items:center;gap:18px;flex:none;min-height:105px;padding:12px 18px;border:2px solid #ab8753;background:#302820}.repayment>div{flex:1}.repayment h3{font-size:calc(26px * var(--text-scale,1));margin:0 0 5px}.repayment p{font-size:calc(21px * var(--text-scale,1));margin:0}.repayment input{height:48px;width:200px!important}.repayment button{height:48px;font-size:calc(23px * var(--text-scale,1))}
.archive-grid{grid-auto-rows:230px}.archive-grid .codex-card{min-height:0;overflow:auto}.archive-grid .codex-card h3{font-size:calc(26px * var(--text-scale,1))}.archive-grid .codex-card p{font-size:calc(21px * var(--text-scale,1))}.archive-grid .art-catalog-card h2{font-size:calc(26px * var(--text-scale,1))}.archive-grid .art-catalog-card button{font-size:calc(21px * var(--text-scale,1))}.archive-grid .directive-card{font-size:calc(22px * var(--text-scale,1));overflow:auto}.morning-grid{height:740px;grid-template-columns:1.15fr 1fr}.morning-grid>.card{min-height:0;overflow:auto}.action-card{height:120px;min-height:120px;overflow:hidden}.equipment-list{line-height:1.6}.topbar{height:58px;min-height:58px;flex-wrap:nowrap}.topbar button{height:40px;line-height:1}.hud{height:115px;min-height:115px}.counter{height:360px;min-height:360px}.service-bottom{height:75px}.order-board{height:320px}.tutorial-strip{height:50px;overflow:auto}
.rhythm-zone{inset:auto;top:0;bottom:0;background:#efce4677;z-index:2;border-inline:2px solid #f4d04f}.rhythm-cursor{z-index:3}.battle-lane .qte-time{height:12px}

/* Preserve repair feedback on the relocated board control. */
.repair-tool{display:none;position:relative;width:24px;height:29px;transform-origin:70% 90%;pointer-events:none}
.repair-tool:before{content:'';position:absolute;width:23px;height:9px;left:0;top:0;background:#d5d7ca;border:2px solid #34302b;box-shadow:inset 0 -2px #858c81}
.repair-tool:after{content:'';position:absolute;width:6px;height:23px;left:10px;top:7px;background:#bc8754;border:1px solid #3a3028}
.board-repair.active .repair-tool{display:block;animation:repairTap .45s infinite}
.repair-sparks{display:none;position:absolute;left:29px;bottom:10px;width:4px;height:4px;background:#ffe4a4;pointer-events:none}
.board-repair.active .repair-sparks{display:block;animation:repairSpark .45s infinite}
.board-repair.active>svg{animation:repairCrack .45s infinite}
@keyframes repairTap{0%,15%{transform:rotate(20deg) translateY(2px)}45%,70%{transform:rotate(-35deg) translateY(-4px)}100%{transform:rotate(20deg) translateY(2px)}}
@keyframes repairSpark{0%,12%{opacity:1;box-shadow:-9px -8px #e5cb8a,8px -5px #fff1be,2px -14px #d4bb80;transform:scale(1)}30%,90%{opacity:0;transform:scale(1.6)}100%{opacity:1;transform:scale(1)}}
@keyframes repairCrack{0%,12%{stroke:#f2deb1;filter:drop-shadow(0 0 3px #d7c49b)}35%,100%{stroke:#c1dda7;filter:none}}
@media(prefers-reduced-motion:reduce){.board-repair.active .repair-tool,.board-repair.active .repair-sparks,.board-repair.active>svg{animation:none}.board-repair.active .repair-sparks{display:none}}

.archive .page-heading{height:65px;min-height:65px}.archive .faction-notes{height:150px;min-height:150px;overflow:auto}.archive:has(.faction-notes) .archive-grid{grid-auto-rows:210px}.topbar>.row{height:42px}.topbar>.row>button{min-width:85px}.topbar>.row>button[data-action="music"]{width:45px;min-width:45px}.morning-grid .equipment-list{font-size:calc(20px * var(--text-scale,1))}.notice{max-height:75px;overflow:auto}
.buildboard{height:190px;min-height:190px;grid-template-rows:20px 78px 30px 30px}#sandwich{height:78px}.sandwich-stack{height:76px;max-height:76px}.recipe-preview{height:30px}.board-bottom{height:30px}.board-repair{bottom:62px}
/* 0.8.5: fill a consistent 16:9 stage and reserve space for controls and text. */
#app{width:1920px;min-height:1080px}.menu{height:1080px}#app:has(.archive){height:1080px;min-height:1080px}.archive{height:1000px;min-height:1000px}.archive .page-heading{height:58px;min-height:58px}.observation-button-row{height:58px;display:flex;align-items:center;margin-bottom:8px}.observation-lines{display:flex;flex-direction:column;gap:14px;max-height:600px;overflow:auto}.observation-lines p{margin:0;line-height:1.7;font-size:calc(23px * var(--text-scale,1))}.archive-grid .codex-representative{grid-row:1/5;height:140px;width:110px;object-fit:contain;align-self:center}.table-label{white-space:nowrap;font-size:calc(20px * var(--text-scale,1))}
.counter{height:410px;min-height:410px;padding-bottom:22px}.prep-controls{min-width:0;display:flex;flex-direction:column}.prep-controls .ingredients{width:100%;flex:none}.prep-controls .price-row{flex:none}.prep-controls .sell-button{height:50px;min-height:50px;margin-top:10px}.service-bottom{margin-top:22px;height:70px;min-height:70px;padding:8px 24px;align-items:center;border-top:2px solid #66533a;background:#201c19}.tools-row{grid-template-rows:46px;align-items:center}.tools-row button{height:46px}.log-list{max-height:48px}
.action-grid{grid-template-rows:repeat(2,154px);gap:12px}.action-grid .action-card{height:154px;min-height:154px;display:grid;grid-template-rows:32px 36px 52px;gap:4px;padding:10px 12px;overflow:hidden;align-content:start}.action-card .action-icon{font-size:calc(28px * var(--text-scale,1));line-height:32px}.action-card strong{font-size:calc(27px * var(--text-scale,1));line-height:34px;margin:0}.action-card small{font-size:calc(20px * var(--text-scale,1));line-height:1.25;display:block;overflow:auto;color:#c7c4b0}
.summary-page{height:1020px;display:flex;align-items:stretch;padding:15px 25px}.statement{width:1120px;max-width:1120px;max-height:990px;min-height:0;transform:none;display:flex;flex-direction:column;padding:20px 28px}.statement dl{min-height:0;flex:1;overflow:auto}.statement dl>div{min-height:42px;padding:6px 0;align-items:center}.statement .total{margin-top:5px;padding-top:10px}.statement .quote{flex:none;max-height:150px;overflow:auto;margin-top:10px;line-height:1.45;padding:10px}.statement>p.small{flex:none;margin:10px 0!important;font-size:calc(20px * var(--text-scale,1))}.statement>button{height:50px;min-height:50px;flex:none;margin-top:10px}.closing-voices{max-height:440px;overflow:auto;display:flex;flex-direction:column;gap:12px}.closing-voices p{margin:0;font-size:calc(23px * var(--text-scale,1))}.closing-voices b{color:#d1b173}
.event-panel{display:grid;grid-template-columns:180px minmax(0,1fr);gap:20px;min-height:270px}.event-panel .event-portrait{float:none;width:180px;margin:0}.event-panel .event-portrait p{margin:5px 0}.current-appearance{height:250px;min-height:250px;overflow:hidden;margin:0;width:100%}.current-appearance>summary{height:45px;line-height:28px;box-sizing:border-box}.current-appearance .appearance-content{height:195px;margin-top:8px;overflow:auto;scrollbar-gutter:stable;font-size:calc(20px * var(--text-scale,1))}.appearance-content p{font-size:calc(20px * var(--text-scale,1));line-height:1.5}.appearance-content .inspect-tags span{font-size:calc(18px * var(--text-scale,1))}.combat-result-layout{grid-template-columns:180px minmax(0,1fr);min-width:600px}.combat-result-layout .current-appearance{margin-top:15px}.event-panel~p{clear:both}dialog:has(.current-appearance){width:900px;max-width:94vw}
.repayment-card .repay-entry{display:flex;align-items:center;gap:8px;font-size:calc(18px * var(--text-scale,1));flex:none}.repay-entry input{width:100%!important;height:36px;min-width:0;flex:1;padding:4px 8px}.shop-item.repayment-card{overflow:auto;gap:2px}.repayment-card h3{font-size:calc(24px * var(--text-scale,1))}.shop-item.repayment-card p{font-size:calc(18px * var(--text-scale,1));margin:2px 0;line-height:1.2}.repayment-card button{height:38px;min-height:38px;font-size:calc(21px * var(--text-scale,1));padding:4px 8px}
.board-repair{background:rgb(45 37 30 / 30%)}.board-repair:hover:not(:disabled),.board-repair.active{background:rgb(117 96 57 / 30%)}.ending p{max-width:1740px;text-wrap:wrap}.ending-sentence{display:block;word-break:keep-all;overflow-wrap:normal}.ending>div{max-width:1800px}
.action-grid{grid-template-rows:repeat(2,166px)}.action-grid .action-card{height:166px;min-height:166px;grid-template-rows:32px 38px 60px}.action-card small{max-height:60px}
/* 0.8.6: common alignment rails and stable control geometry. */
.counter-inner,.service-bottom-inner{width:100%;max-width:1700px;margin-inline:auto;display:grid;grid-template-columns:1.15fr 1fr 1.05fr;gap:15px}
#app:has(#contract-banner:not([hidden])) .counter-inner,#app:has(#contract-banner:not([hidden])) .service-bottom-inner{grid-template-columns:1.05fr .9fr 1fr .7fr}
.service-bottom{display:block;padding:8px 20px}.service-bottom-inner{align-items:center}.service-bottom-inner .log-list{grid-column:1/3}.service-bottom-inner .tools-row{grid-column:3;width:100%;min-width:0;gap:5px}.service-bottom-inner .tools-row button{padding-inline:2px;font-size:calc(18px * var(--text-scale,1))}
.customers .customer,.customers[data-seats] .customer{border-width:3px}.customer.table-selected{border-width:3px}
.statement dl{overflow-x:hidden;overflow-y:auto;scrollbar-gutter:stable}.statement .stamp-row{animation:settlement-stamp .24s ease-out;transform-origin:center}.statement dl>div{position:relative;flex-shrink:0}@keyframes settlement-stamp{from{opacity:0;filter:brightness(1.5)}to{opacity:1;filter:brightness(1)}}
.shop-page .shop-cash{font-size:calc(36px * var(--text-scale,1));line-height:1.2;white-space:nowrap}.shop-page>.shop-footer,.shop-page>.row:last-child{height:48px;min-height:48px;align-self:stretch;display:flex;align-items:center}.shop-page>.shop-footer>button,.shop-page>.row:last-child>button{height:48px;flex:0 0 auto;width:auto}
.morning-grid{height:820px}.morning-grid>.morning-info{overflow:visible}.morning-info .equipment-list{line-height:1.45}.morning-info-actions{display:flex;align-items:center;gap:10px;height:44px;min-height:44px;margin-top:8px}.morning-info-actions>button{height:44px;min-height:44px;box-sizing:border-box;padding:7px 15px;font-size:calc(20px * var(--text-scale,1));line-height:26px;margin:0}.morning-info-actions .fortune-badge{margin:0;height:44px;min-height:44px;flex:none}.morning-info>hr{margin:12px 0!important}.morning-info>p{margin:8px 0;line-height:1.45}
/* 0.8.7: protection lives in the ingredient header, outside layout flow. */
.counter-inner,#app:has(#contract-banner:not([hidden])) .counter-inner,.service-bottom-inner,#app:has(#contract-banner:not([hidden])) .service-bottom-inner{grid-template-columns:1.15fr 1fr 1.05fr}
.prep-controls{position:relative}.protection-badges{position:absolute;right:0;top:0;z-index:15;display:flex;align-items:center;justify-content:flex-end;gap:7px;height:30px;max-width:65%;margin:0;padding:0}.protection-chip{position:relative;flex:none}.protection-chip>button{display:block;height:30px;min-height:30px;margin:0;padding:3px 8px;border:1px solid #b09560;border-radius:0;background:#302820;color:#ead6a6;line-height:22px;font-size:calc(16px * var(--text-scale,1));white-space:nowrap;cursor:help}.grace-chip>button{border-color:#b7836e;color:#ebc6ad;background:#382a27}.contract-tooltip{position:absolute;top:calc(100% + 8px);right:0;z-index:50;width:350px;max-height:440px;overflow:auto;padding:15px 18px;border:2px solid #b09560;background:#211e20;color:#e2d0ac;box-shadow:5px 6px #0009;font-size:calc(20px * var(--text-scale,1));font-weight:400;line-height:1.6;text-align:left;visibility:hidden;opacity:0;pointer-events:none}.protection-chip:hover>.contract-tooltip,.protection-chip:focus-within>.contract-tooltip{visibility:visible;opacity:1;pointer-events:auto}.contract-tooltip .directive-paper{margin:8px 0;padding:8px;font-size:calc(18px * var(--text-scale,1))}.contract-tooltip .directive-paper p{margin:0}.contract-tooltip .checks{font-size:inherit;line-height:1.5}
.toast{white-space:pre-line}
/* 0.8.8: the daily Index notes must be pocketed before business starts. */
.daily-prescript-notes{display:flex;flex-direction:column;gap:14px;max-height:450px;overflow:auto;padding:16px 25px 16px 42px;border:1px solid #a08a60;background:#d6c8a7;color:#302a24;font-size:calc(23px * var(--text-scale,1));line-height:1.6}.daily-prescript-notes li{padding-left:4px}.prescript-reminder{font-size:calc(20px * var(--text-scale,1));color:#c0ac8a}
/* 0.9.0: permanent status rail; equal-sized chips and downward details. */
.buff-strip{height:52px;min-height:52px;display:flex;align-items:center;gap:8px;padding:4px 24px;position:relative;z-index:35;background:#29231f;border-bottom:1px solid #5f4e37;overflow:visible}
.buff-strip .fortune-badge,.buff-strip .protection-chip>button{height:44px;min-height:44px;padding:8px 16px;margin:0;border:2px solid #ab8753;font-size:calc(20px * var(--text-scale,1));line-height:24px;box-sizing:border-box;white-space:nowrap}
.buff-strip .protection-chip{max-width:none}.buff-strip .contract-tooltip,.fortune-tooltip{top:100%;bottom:auto;left:0;right:auto;max-width:440px;width:400px;margin-top:0;z-index:60}.fortune-tooltip{width:max-content}.fortune-badge:hover .fortune-tooltip,.fortune-badge:focus-within .fortune-tooltip{pointer-events:auto;visibility:visible;opacity:1}
.buff-strip .political-chip:last-child .contract-tooltip{left:0}.counter-inner{height:100%;align-items:stretch}.counter-inner>div:nth-child(2){display:flex;flex-direction:column;min-height:0}.early-close-row{margin-top:auto;height:50px;min-height:50px}.early-close-row>button{height:50px}.prep-controls .sell-button{margin-top:auto;margin-bottom:0}.prep-controls .mobile-note{display:none}
.event-panel .event-copy{min-width:0;display:flex;flex-direction:column;gap:12px}.event-copy>p{margin:0;line-height:1.5}.event-copy .current-appearance{flex:none}.event-panel{align-items:start}.current-appearance{height:250px;min-height:250px}.event-copy .current-appearance{margin-top:8px}
.qte-time i,.rhythm-cursor{transition:none!important;will-change:width,left}.battle-status .row{min-height:70px}.surrender-control{min-width:220px}.incite-control{position:relative;display:block}.incite-control>button{width:100%}.incite-control:hover>.contract-tooltip,.incite-control:focus-within>.contract-tooltip{visibility:visible;opacity:1;pointer-events:auto}.incite-control .contract-tooltip{top:100%;bottom:auto;right:0;width:350px;z-index:65}.political-news{display:grid;gap:16px;padding:16px 0}.political-news article{padding:12px;border:1px solid #897856}.political-news p{margin:0 0 8px}.political-news .contract-tooltip{top:100%;bottom:auto;left:0;right:auto}.morning-notice-copy{white-space:normal;line-height:1.75}.newspaper{max-height:920px;overflow:auto;padding-bottom:25px}.newspaper-footer{position:sticky;bottom:0;background:#c6c3a6;padding:10px 0;z-index:10}
#app:has(.tutorial-strip) .counter{height:360px;min-height:360px}

/* 0.9.1: shared bottom edge, reserved combat strip, fixed-size disclosures. */
.counter-inner>div:nth-child(2),.counter-inner>.prep-controls{position:relative;min-height:0;padding-bottom:60px;width:100%}
.counter-inner .early-close-row,.counter-inner .sell-button{position:absolute;bottom:0;left:0;right:0;width:100%;height:50px;min-height:50px;margin:0}
.prep-controls .ingredients{margin:0 auto}
.buildboard{grid-template-rows:20px minmax(0,1fr) 30px 36px;row-gap:0}
.buildboard #sandwich{height:100%;min-height:0}.buildboard .sandwich-stack{height:100%;max-height:100%}
.buildboard .board-bottom{height:36px;min-height:36px;margin:0;align-items:center;overflow:visible}
.buildboard .board-bottom button{height:34px;padding:2px 8px;line-height:1.1}
#npc-strip{height:40px;min-height:40px;background:#201c19;overflow:hidden}
#npc-strip .npc-strip{height:40px;min-height:40px;padding:4px 24px;white-space:nowrap;overflow:hidden;font-size:20px}
#npc-strip .npc-strip b{flex:none}#npc-strip .npc-strip span{overflow:hidden;text-overflow:ellipsis}
.customer.clash .customer-art{animation:npcClash var(--npc-motion,700ms) ease-in-out}
@keyframes npcClash{0%,100%{transform:translateX(0) rotate(0)}25%{transform:translateX(9px) rotate(5deg)}35%,55%{transform:translateX(3px) rotate(-4deg)}45%,65%{transform:translateX(7px) rotate(3deg)}80%{transform:translateX(-3px)}}
.event-panel{grid-template-rows:minmax(220px,auto) 260px;row-gap:24px}
.event-panel>.current-appearance{grid-column:1/-1;margin:0}
.current-appearance{height:260px;min-height:260px;overflow:visible}
.current-appearance .appearance-content{height:auto;max-height:none;overflow:visible;scrollbar-gutter:auto;font-size:calc(20px * var(--text-scale,1))}
.current-appearance .appearance-content p{margin:8px 0;line-height:1.4}
.current-appearance .inspect-tags{margin-bottom:10px;gap:6px}
.combat-result-layout .current-appearance{grid-column:1/-1;height:260px;min-height:260px}
.newspaper{height:920px;max-height:920px;display:flex;flex-direction:column;overflow:hidden;padding:20px 32px 0}
.newspaper-scroll{min-height:0;flex:1;overflow:auto;padding-bottom:12px}
.newspaper-scroll>p{white-space:pre-line}
.newspaper-footer{position:relative;bottom:auto;flex:none;margin:0;padding:14px 0;background:#e6dabb;border-top:2px solid #897856}

.counter-inner>#order-board{grid-column:1;grid-row:1}.counter-inner>div:nth-child(2){grid-column:2;grid-row:1;order:0}.counter-inner>.prep-controls{grid-column:3;grid-row:1;order:0}

/* 0.9.2: budget the full business screen before laying out the counter. */
#app:has(#business-space){height:1080px;min-height:1080px;display:flex;flex-direction:column;padding-bottom:5px}
#app:has(#business-space)>.topbar,#app:has(#business-space)>.hud,#app:has(#business-space)>.buff-strip,#app:has(#business-space)>.day-time,#app:has(#business-space)>.tutorial-strip{flex-shrink:0}
#business-space{display:flex;flex:1;flex-direction:column;min-height:0}
#business-space>.service-scene,#business-space>#npc-strip{flex-shrink:0}
#app:has(#business-space) .counter{flex:1;height:auto;min-height:0}
#app:has(#business-space)>.service-bottom{flex:0 0 70px;height:70px;min-height:70px;margin:0}
#app:has(#business-space)>.service-bottom .tools-row{grid-template-rows:46px;grid-auto-rows:0}
.counter-inner .buildboard{flex:1;height:auto;min-height:130px}
.counter-inner .sauce-row{flex:0 0 112px;height:112px;min-height:112px;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:4px;margin-top:6px}
.counter-inner .sauce{height:54px;min-height:0;padding:4px 2px 2px;gap:2px;line-height:1;justify-content:center;white-space:nowrap;font-size:calc(16px * var(--text-scale,1))}
.counter-inner .sauce .bottle{flex:0 0 16px;height:16px;width:14px;margin-top:3px}
.counter-inner .sauce .bottle:before{top:-4px;left:3px;width:5px;height:5px}
.counter-inner .sauce .bottle:after{top:5px;height:6px;left:2px;right:2px}
.credits-notice-space{min-height:180px}.credits-notice-space>.credits-notice{font-size:calc(6.5px * var(--font-scale));line-height:1.8;margin-bottom:0}
/* Faction workshops share the existing shop palette and controls. */
.black-tabs{flex-wrap:wrap}.workshop-layout{display:grid;grid-template-columns:1fr 1.4fr 1fr;gap:24px;flex:1;min-height:0;margin:24px 0}.workshop-inventory{display:flex;flex-direction:column;gap:10px;overflow:auto}.workshop-bench{border:2px solid #806e4c;background:#18231f;text-align:center;padding:24px;align-content:center}.workshop-host{min-width:0;text-align:center;align-content:center}.workshop-host svg{width:100%;max-height:360px}.workshop-host p{padding:18px;border-top:1px solid #806e4c}.anvil{color:#a08a62;font-size:64px}.anvil span{display:block;font-size:80px;line-height:1}.weaver-layout{display:grid;grid-template-columns:1.5fr 1fr;gap:30px;height:390px;margin:20px 0}.loom-art{position:relative;background:#12231e;border:16px ridge #374839;overflow:hidden}.loom-art i{position:absolute;top:0;bottom:0;width:2px;background:#b99e4f;transform:skew(-8deg);opacity:.7}.loom-art b{position:absolute;bottom:20px;left:20px;background:#17201b;padding:12px}.weaver-choices{display:grid;grid-template-columns:1fr 1fr;gap:12px}.weaver-choices button{text-align:left;min-height:80px}
.stock-layout{display:grid;grid-template-columns:240px minmax(0,1fr) 310px;gap:24px;flex:1;min-height:0;margin-top:24px}.stock-companies{display:grid;grid-template-columns:1fr 1fr;gap:8px}.stock-layout aside svg{width:100%;height:260px}.stock-layout aside p{font-size:22px}.stock-chart{border:2px solid #6f7055;padding:18px}.stock-chart svg{width:100%;max-height:470px}.stock-order{padding:20px;background:#1c2b25;border:1px solid #6f7055}.stock-order input{width:100%;margin:15px 0}.stock-order .row{margin-top:18px}
.art-workshop{display:grid;grid-template-columns:2fr 1fr;gap:24px;flex:1;min-height:0}.commission-slots{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:24px 0}.commission-slot{border:2px solid #887a59;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:360px}.commission-slot svg{width:100%;max-height:320px}.art-silhouette{filter:brightness(0)}.gym-layout{display:grid;grid-template-columns:1fr 2fr;flex:1;gap:40px;margin:24px}.gym-layout>section{display:grid;grid-template-columns:1fr 1fr;gap:12px}.gym-stage{display:grid;grid-template-columns:1fr 1fr;gap:60px;height:600px}.gym-stage svg{width:100%;height:100%}.gym-stage section{text-align:center;align-content:center}.gym-command{display:block;font-size:100px;margin:20px auto;width:180px;height:180px}.gym-stage progress{width:90%;height:25px;accent-color:#b7a676}
.tutorial-highlight{outline:4px solid #edcc70;outline-offset:4px;box-shadow:0 0 20px #e0b25780}
.gear-stock-layout{display:grid;grid-template-columns:2fr 1fr;gap:30px;flex:1;min-height:0}.gear-stock-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,1fr)}
.guard-curtain{display:block;width:100%;height:100%;background:repeating-linear-gradient(90deg,#dddcd4 0,#f3f1e7 12%,#bcbdb5 18%,#eeede4 25%);border-top:8px solid #635f51;box-shadow:inset 0 -16px 20px #41483c55}.customer.empty:has(.guard-curtain)>span{display:block;position:absolute;inset:25px 4px 0}.shop-shake{animation:shop-quake .35s ease-out}@keyframes shop-quake{0%,100%{translate:0 0}20%{translate:calc(var(--shop-shake) * -1) calc(var(--shop-shake) * .3)}45%{translate:var(--shop-shake) calc(var(--shop-shake) * -.4)}70%{translate:calc(var(--shop-shake) * -.3) calc(var(--shop-shake) * .1)}}.cheat-specials{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
/* Workshop navigation and stock cards share the shop's fixed-height scene. */
.shop-page .black-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;min-height:56px;flex:none}
.shop-page .black-tabs button{width:auto;min-width:0;white-space:normal;padding:8px}
.shop-page>div:has(>.shop-list):not(.gear-stock-layout){flex:1;min-height:0;display:flex}
.shop-page>div:has(>.shop-list):not(.gear-stock-layout)>.shop-list{width:100%}

/* 0.10.1 feedback: matching controls, stable shop tabs and readable workshop copy. */
#sfx-volume,#bgm-volume{width:100%;accent-color:#c49d63;display:block;margin:12px 0}
.subscription-label{font-size:40%!important;display:inline!important;white-space:nowrap}
.store-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;flex:none;margin:8px 0 16px}
.store-tabs button{min-width:0;font-size:calc(20px * var(--text-scale,1));padding:10px 4px}
.stock-companies{grid-template-columns:1fr}.stock-layout{grid-template-columns:minmax(150px,.7fr) minmax(0,2fr) minmax(230px,1fr);gap:14px;margin-top:10px}
.stock-chart h2,.stock-order h2{font-size:calc(32px * var(--text-scale,1))}.stock-chart p,.stock-order p,.stock-order label{font-size:calc(22px * var(--text-scale,1));line-height:1.35}.stock-order p{margin:10px 0}.stock-order input{margin:6px 0}.stock-layout aside svg{height:200px}.stock-layout aside p{font-size:calc(22px * var(--text-scale,1))}.stock-chart svg{max-height:330px}
.workshop-host p,.workshop-bench p,.gym-layout .workshop-host>p,.commission-slot p{font-size:calc(24px * var(--text-scale,1));line-height:1.35;padding:10px}
.workshop-host svg{max-height:250px}.workshop-bench .anvil{max-height:260px;width:100%}.workshop-bench{padding:12px}.workshop-layout{margin:10px 0;gap:14px}
.weaver-layout{height:auto;flex:1;min-height:0;max-height:330px;margin:10px 0;gap:18px}.weaver-layout .workshop-host svg{max-height:180px}.weaver-choices{flex:none}.weaver-choices button{min-height:64px;font-size:calc(20px * var(--text-scale,1))}
.gym-layout>section{grid-auto-flow:column;grid-template-rows:repeat(5,minmax(0,1fr))}.gym-layout{margin:10px;gap:20px}.gym-session{height:calc(100dvh - 70px);display:flex;flex-direction:column;min-height:0}.gym-session .battle-scene{flex:1;min-height:0}.gym-session .battle-lanes{height:100%}.gym-session .battle-lane{min-height:0}.gym-session .enemy-portrait{height:160px}.gym-session .battle-help{flex:none}
.commission-slot h3{font-size:calc(28px * var(--text-scale,1))}.commission-slot{min-height:0}.commission-slot p{text-align:center}
.rhythm-zone{position:absolute;display:block;background:#efce46b8;z-index:4;top:0;bottom:0;border-inline:2px solid #ffe998}.rhythm-cursor{z-index:5}
.customer-label,.bubble,.customer-reactions,.ticket-recipe,.order-ticket small{overflow:hidden!important;min-width:0;overflow-wrap:anywhere}.customer-top{min-height:0;overflow:hidden}.customer-top .bubble{flex:1;min-height:0}.customer-top .patience{flex-shrink:0}.customer-label{white-space:normal;line-height:1.15}.order-ticket{overflow:hidden}.order-ticket small{max-height:35%;line-height:1.15}
.achievement-progress{font-size:calc(22px * var(--text-scale,1))}.codex-card.locked button{opacity:1}

/* Grow normal dialogue to multiple lines; shrink only when its available height is exhausted. */
.customer-top{display:flex;flex-direction:column;max-height:100%;}
.customer-top .bubble{flex:0 1 auto;}
.customer .bubble:after{content:none;}
.customer-reactions span{overflow:hidden;}

/* Feedback 04: upper-body portraits and a gym layout independent of viewport pixels. */
.customers .customer-art svg{overflow:hidden;}
.hand-weapon span{display:inline-block;font-size:24px;vertical-align:middle;margin-left:12px;}
.gym-session{height:920px;display:grid;grid-template-rows:90px minmax(0,1fr) 90px 120px;overflow:hidden;}
.gym-session .battle-scene{display:flex;flex-direction:column;min-height:0;padding:16px 28px;}
.gym-session .battle-top{flex:none;}
.gym-session .battle-lanes{height:auto;flex:1;min-height:0;width:100%;max-width:1100px;}
.gym-session .battle-lane{height:100%;min-height:0;grid-template-rows:34px minmax(0,1fr) 70px 16px;position:relative;}
.gym-session .enemy-portrait{grid-row:2;height:100%;min-height:0;}
.gym-session .enemy-portrait svg{height:100%;width:100%;top:0;max-height:100%;}
.gym-session .qte-area{grid-row:3;}
.gym-session .qte-time{grid-row:4;}
.gym-session .battle-status{min-height:0;flex-wrap:nowrap;}
.gym-session .gym-status{font-size:30px;}
.gym-session .battle-help{padding:8px;}
.gym-session .combat-feedback{top:90px;}

.hand-weapon{display:flex;align-items:flex-end;gap:8px;bottom:12px;right:18px;transform:none;opacity:.85}.hand-weapon svg{width:100px;height:210px}.hand-weapon span{margin:0 0 12px;}

.equipment-tooltip{position:relative;overflow:visible}.equipment-tooltip:hover .fortune-tooltip,.equipment-tooltip:focus-visible .fortune-tooltip{visibility:visible;opacity:1}.equipment-tooltip .fortune-tooltip{max-width:min(400px,70vw);white-space:normal}.music-profile{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:12px 0}.music-profile select{min-width:0;color:#e2d0ac;background:#211e20;border:1px solid #b28d56;padding:6px}

.credits-notice-space>.credits-contact{font-size:calc(9.75px * var(--font-scale));margin-top:3.6em}
.equipment-tooltip .fortune-tooltip{top:auto;bottom:100%}
.fortune-outcome .fortune-tooltip{top:auto;bottom:calc(100% + 9px)}
.music-intro{margin-bottom:20px}.music-intro span{display:block;font-size:calc(16px * var(--text-scale,1));color:#bdb198;margin-top:7px}.music-slots{display:grid;gap:0}.music-slot{display:grid;grid-template-columns:80px 110px minmax(0,1fr);align-items:center;gap:16px;padding:10px 0;border-bottom:1px solid #65523a}.music-slot a{color:#e3c98e;text-underline-offset:4px}.music-slot>div{min-width:0;display:flex;align-items:center;gap:12px;position:relative}.music-file-button{flex:none;border:1px solid #8e774e;background:#302b24;color:#e9ddc4;padding:8px 12px;cursor:pointer}.music-file-button:hover{background:#4c402d}.music-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:calc(16px * var(--text-scale,1));color:#bdb198}.music-file-input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}.music-slot>div:focus-within .music-file-button{outline:2px solid #d7b879;outline-offset:2px}@media(max-width:650px){.music-slot{grid-template-columns:60px 90px minmax(0,1fr);gap:8px}.music-slot>div{flex-wrap:wrap;gap:5px}.music-file-name{max-width:100%}}

.music-slot.music-dragover{background:#4a3b25;outline:2px dashed #d4b16e;outline-offset:-2px}.music-slot{transition:background-color .12s}



.combat-damage-float{position:fixed;z-index:110;pointer-events:none;color:#ff675c;font-size:34px;font-weight:900;line-height:1;border:0;background:none;box-shadow:none;text-shadow:0 2px 3px #190604;animation:combatDamageRise 1.1s ease-out forwards;}
@keyframes combatDamageRise{0%{opacity:1;transform:translate(-50%,0) scale(1.12)}20%{opacity:1;transform:translate(-50%,-15px) scale(1)}100%{opacity:0;transform:translate(-50%,-85px) scale(.92)}}

.enemy-portrait.has-current-weapon{display:flex;align-items:center;gap:8px;}
.enemy-portrait.has-current-weapon>svg{flex:1;min-width:0;width:calc(100% - 98px);}
.enemy-current-weapon{flex:0 0 90px;height:210px;pointer-events:auto;}
.enemy-portrait .enemy-current-weapon svg{display:block;width:100%;height:100%;top:0;}

/* Release label and achievement reward preference. */
.topbar .brand .brand-version{font-size:.5em;font-weight:400;color:var(--muted);white-space:nowrap;letter-spacing:0}
.achievement-summary{display:flex;align-items:center;flex-wrap:wrap;gap:10px 20px;margin-bottom:16px}
.achievement-summary p{margin:0}.achievement-reward{font-size:calc(18px * var(--text-scale,1));color:var(--gold)}
.achievement-reward-toggle[aria-pressed="true"]{border-color:var(--gold);color:var(--gold)}
