:root{--bg:#181b22e6;--bg-solid:#1b1f27;--bg-2:#282d38eb;--line:#ffdcaa24;--text:#efe6d6;--muted:#b5ab9a;--warm:#ffc879;--copper:#b86938;--ochre:#d2a34a;--moss:#59634a;--plum:#62445d;--good:#9ccf7a;--warn:#f0a35a;--danger:#d9614c;--radius:10px;--font:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--serif:Georgia, "Iowan Old Style", "Times New Roman", serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{height:100%;height:100dvh;color:var(--text);font:14px/1.35 var(--font);background:#303947;margin:0;overflow:hidden}#app{position:fixed;inset:0}#app canvas{touch-action:none;-webkit-user-select:none;user-select:none;cursor:crosshair;width:100%;height:100%;display:block}.look-hint{border:1px solid var(--line);background:var(--bg);max-width:45vw;color:var(--text);text-align:center;font:12px var(--font);cursor:pointer;border-radius:7px;padding:7px 12px;position:fixed;bottom:14px;left:50%;transform:translate(-50%)}#ui{pointer-events:none;position:fixed;inset:0}#ui>*{pointer-events:auto}#ui>.reticle,#ui>.ring,#ui>.prompt,#ui>.xp-popup,#ui>.banner,#ui>.toasts,#ui>.panel-host{pointer-events:none}.hidden{display:none!important}kbd{min-width:1.6em;font:600 11px/1.5 var(--font);text-align:center;color:var(--warm);background:#00000059;border:1px solid #ffffff4d;border-bottom-width:2px;border-radius:4px;padding:0 .35em;display:inline-block}h1,h2,h3{font-family:var(--serif);margin:0;font-weight:600}h2{color:var(--warm);font-size:18px}h3{color:#f6d9a8;margin:8px 0 4px;font-size:15px}.tiny{color:var(--muted);font-size:12px}.warn{color:var(--warn)}.ok{color:var(--good)}.row{align-items:center;gap:8px;display:flex}.row.wrap{flex-wrap:wrap}.row.end{justify-content:flex-end}.grow{flex:1;min-width:0}.btn{pointer-events:auto;cursor:pointer;color:var(--text);font:600 13px var(--font);background:#3c404cf2;border:1px solid #ffc87947;border-radius:7px;padding:6px 11px}.btn:hover:not(:disabled){background:#545866f2;border-color:#ffc8798c}.btn:focus-visible,.tab:focus-visible,.cell:focus-visible,.recipe-row:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--warm);outline-offset:1px}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{color:#fff6e6;background:linear-gradient(#b86938,#95512a);border-color:#e3925a}.btn.primary:hover:not(:disabled){background:linear-gradient(#c9773f,#a55a2f)}.btn.danger{background:#6e2f28;border-color:#c4574a}.btn.small{padding:3px 8px;font-size:12px}.btn.big{padding:9px 18px;font-size:15px}.btn.icon-btn{padding:3px 9px}.btn.link,.link{color:var(--warm);cursor:pointer;font:inherit;background:0 0;border:none;padding:0;text-decoration:underline}input[type=number],input[type=search],select{color:var(--text);font:13px var(--font);background:#12151b;border:1px solid #fff3;border-radius:6px;padding:5px 7px}input[type=range]{accent-color:var(--copper);width:150px}input[type=checkbox],input[type=radio]{accent-color:var(--copper)}.qty{align-items:center;gap:3px;display:inline-flex}.qty-input{text-align:right;width:64px}.search{width:100%;margin-bottom:6px}.search.small{width:140px;margin:0}.bar{background:#00000073;border:1px solid #ffffff14;border-radius:4px;height:7px;overflow:hidden}.bar-fill{background:linear-gradient(90deg,#d2a34a,#ffc879);height:100%}.bar.bag .bar-fill{background:linear-gradient(90deg,#59634a,#8fa064)}.bar.over .bar-fill{background:var(--warn)}.bar.skill .bar-fill{background:var(--skill,#d2a34a)}.hud{pointer-events:none;align-items:flex-start;gap:10px;display:flex;position:fixed;top:10px;left:10px;right:10px}.hud>*{pointer-events:auto}.hud-card{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);flex-direction:column;gap:5px;width:270px;padding:8px 10px;display:flex}.lvl{font:700 15px var(--serif);color:var(--warm);white-space:nowrap;background:#b8693840;border:1px solid #ffc87966;border-radius:6px;padding:1px 7px}.lvl.small{padding:0 6px;font-size:13px}.stats{justify-content:space-between;font-size:13px}.money{white-space:nowrap;font-variant-numeric:tabular-nums;gap:6px;font-weight:600;display:inline-flex}.coin-gold{color:#ffd98a}.coin-silver{color:#d6dce5}.coin-copper{color:#d7976b}.money.big{font-size:15px}.food-chip{background:#59634a73;border-radius:6px;align-items:center;gap:4px;padding:3px 6px;font-size:12px;display:flex}.chip-btn{pointer-events:auto;cursor:pointer;font:600 12px var(--font);color:#fff1d6;background:#62445dcc;border:1px solid #ffc87959;border-radius:6px;padding:3px 6px}.hud-keys{flex-wrap:wrap;justify-content:flex-end;gap:4px;max-width:520px;margin-left:auto;display:flex}.key-hint{cursor:pointer;color:var(--muted);border:1px solid var(--line);font:12px var(--font);background:#181b22b3;border-radius:6px;padding:3px 7px}.key-hint:hover{color:var(--text)}.hud-badges{flex-direction:column;align-items:flex-end;gap:4px;display:flex;position:fixed;top:54px;right:10px}.badge{font:700 11px var(--font);letter-spacing:.04em;border:1px solid var(--line);background:#181b22d9;border-radius:5px;padding:3px 7px}.badge.accel{color:#9fe8ff;border-color:#4f8fa8}.badge.debug{color:#ffb08a;border-color:#b8603a}.save-status{color:var(--muted);opacity:0;pointer-events:none;font-size:12px;transition:opacity .4s;position:fixed;bottom:10px;left:12px}.save-status.show{opacity:1}.reticle{background:#fff0dc8c;border-radius:50%;width:4px;height:4px;margin:-2px;position:fixed;top:50%;left:50%;box-shadow:0 0 3px #000}.prompt{background:var(--bg);border-radius:var(--radius);text-align:center;border:1px solid #ffc87959;min-width:180px;max-width:min(440px,90vw);padding:7px 14px;position:fixed;bottom:13%;left:50%;transform:translate(-50%)}.prompt-title{font:600 15px var(--serif);color:#f6d9a8}.prompt-verb{margin-top:2px;font-weight:700}.prompt-line{color:var(--muted);font-size:12px}.prompt-line.locked{color:var(--warn);font-weight:600}.ring{width:64px;height:64px;margin:-32px 0 0 -32px;position:fixed;top:0;left:0}.ring svg{width:64px;height:64px;transform:rotate(-90deg)}.ring-bg{fill:#14161c8c;stroke:#ffffff2e;stroke-width:5px}.ring-arc{fill:none;stroke:var(--warm);stroke-width:5px;stroke-linecap:round;transition:stroke-dasharray .12s}.ring-tick{stroke:#0000008c;stroke-width:1.5px}.ring-label{font:700 12px var(--font);color:#fff;text-shadow:0 1px 2px #000;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.xp-popup{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:4px;width:min(320px,80vw);padding:6px 10px;display:flex;position:fixed;bottom:calc(13% + 84px);left:50%;transform:translate(-50%)}.xp-popup .row{justify-content:space-between}.xp-gain{color:var(--good);font-weight:700}.toasts{flex-direction:column;align-items:flex-end;gap:5px;width:min(330px,40vw);display:flex;position:fixed;top:120px;right:10px}.toast{background:var(--bg);border:1px solid var(--line);border-left:3px solid var(--warm);border-radius:8px;align-items:center;gap:4px;padding:6px 10px;font-size:13px;transition:opacity .6s;display:flex}.toast.warn{border-left-color:var(--warn)}.toast.good{border-left-color:var(--good)}.toast.gain{border-left-color:var(--moss)}.toast.fade{opacity:0}.luck{color:#ffd36a;font-weight:700}.banner{text-align:center;background:linear-gradient(#3c2830f2,#241e26f2);border:1px solid #ffc8798c;border-radius:12px;max-width:90vw;padding:10px 22px;position:fixed;top:70px;left:50%;transform:translate(-50%);box-shadow:0 6px 30px #00000080}.banner-title{font:700 19px var(--serif);color:var(--warm)}.banner-line{font-size:13px}.speech{color:#2a2018;max-width:min(520px,90vw);font:15px/1.4 var(--serif);background:#f0e4cef2;border-radius:12px;padding:8px 14px;position:fixed;bottom:calc(13% + 150px);left:50%;transform:translate(-50%);box-shadow:0 4px 16px #0006}.speech-name{font:700 12px var(--font);color:var(--plum);text-transform:uppercase;letter-spacing:.05em}.pending{border:1px solid var(--warn);background:#50321ef2;border-radius:8px;max-width:46vw;padding:6px 10px;font-size:13px;position:fixed;top:10px;left:50%;transform:translate(-50%)}.journal{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);width:min(330px,34vw);max-height:52vh;padding:6px 10px 8px;position:fixed;bottom:10px;right:10px;overflow:auto}.journal.behind{display:none}.j-section+.j-section{border-top:1px solid var(--line);margin-top:6px;padding-top:4px}.checklist{margin:4px 0 0;padding-left:0;font-size:13px;list-style:none}.checklist li{color:var(--muted);gap:6px;padding:2px 0;display:flex}.checklist li.done{color:#8f9a7e;text-decoration:line-through}.checklist li.next{color:var(--text)}.checklist .check{color:var(--good);flex:none;width:1em}.hint{color:#d8c7a6;text-decoration:none}.project ul{margin:3px 0;padding-left:16px;font-size:12px}.project li{margin:1px 0}.project li.ok{color:var(--good)}.project li.short{color:#f2c38c}.project summary{cursor:pointer;color:var(--warm);font-size:12px}.panel-host{pointer-events:none;justify-content:center;align-items:center;padding:56px 12px 12px;display:flex;position:fixed;inset:0}.panel{pointer-events:auto;background:#181b22f5;border:1px solid #ffc8794d;border-radius:12px;flex-direction:column;width:min(620px,96vw);max-height:calc(100vh - 70px);display:flex;box-shadow:0 10px 40px #0000008c}.panel.wide{width:min(940px,96vw)}.panel.map-panel{width:min(900px,96vw)}.panel-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.panel-body{min-height:0;padding:10px 12px 12px;overflow:auto}.flavor{font:italic 13px var(--serif);color:#d8c7a6;margin:0 0 8px}.cols{gap:12px;min-height:0;display:flex}.cols>.col{min-width:0}.col.main{flex:1.5}.col.side,.col.detail-col{flex:1}.col.list{flex:.9;max-width:330px}.cols.two>.col{flex:1}.notice{background:#62445d59;border:1px solid #ffc87940;border-radius:8px;margin:6px 0;padding:6px 8px;font-size:13px}.notice.warn{background:#6e3c1e66}.msg{background:#ffffff0f;border-radius:6px;margin:6px 0;padding:6px 8px;font-size:13px}.msg.good{background:#6e965038}.msg.warn{color:#ffd2a6;background:#c86e3238}.empty-note{color:var(--muted);padding:10px;font-style:italic}.tabs{flex-wrap:wrap;align-items:center;gap:3px;margin:8px 0 6px;display:flex}.tab{cursor:pointer;border:1px solid var(--line);color:var(--muted);font:600 12px var(--font);background:0 0;border-radius:6px;padding:4px 10px}.tab.active{color:var(--text);background:#b8693859;border-color:#ffc87980}.icon{background:radial-gradient(circle at 35% 30%, color-mix(in srgb, var(--c) 85%, white), var(--c));color:#14100ccc;border-radius:6px;flex:none;justify-content:center;align-items:center;font-weight:700;display:inline-flex;box-shadow:inset 0 -2px #00000040}.icon.empty{width:30px;height:30px;color:var(--muted);background:#ffffff0f}.swatch{background:var(--c);border-radius:50%;flex:none;width:12px;height:12px;display:inline-block}.equip-row{gap:6px;display:flex}.slot{cursor:pointer;color:var(--text);font:12px var(--font);background:#ffffff0a;border:1px dashed #fff3;border-radius:8px;flex-direction:column;flex:1;align-items:center;gap:2px;padding:5px;display:flex}.slot.filled{border-style:solid;border-color:#ffc87966}.slot-label{color:var(--muted);font-weight:700}.weight-row{flex-direction:column;gap:3px;margin:6px 0;font-size:12px;display:flex}.grid{grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:5px;max-height:44vh;padding:2px;display:grid;overflow:auto}.cell{cursor:pointer;color:var(--text);font:12px var(--font);background:#ffffff0d;border:1px solid #ffffff1a;border-radius:8px;flex-direction:column;align-items:center;gap:2px;padding:5px 4px;display:flex;position:relative}.cell.sel{border-color:var(--warm);background:#ffc8791a}.cell-qty{font-size:12px;font-weight:700;position:absolute;top:3px;right:5px}.cell-qty.eq{color:var(--good)}.fav{color:#ffd36a;position:absolute;top:2px;left:5px}.cell-name{text-align:center;line-height:1.15}.cell-w{color:var(--muted);font-size:11px}.detail{flex-direction:column;gap:6px;display:flex}.detail p{margin:0;font-size:13px}.kv{border-bottom:1px dotted #ffffff14;justify-content:space-between;gap:10px;padding:2px 0;font-size:13px;display:flex}.kv span:first-child{color:var(--muted)}.uses summary{cursor:pointer;color:var(--warm);font-size:13px}.uses ul{margin:4px 0;padding-left:18px;font-size:13px}.inbox{background:#62445d40;border-radius:8px;max-height:26vh;margin:6px 0;padding:4px 8px;overflow:auto}.item-row{padding:3px 0}table.compare,table.ingredients{border-collapse:collapse;width:100%;font-size:13px}.compare th,.compare td,.ingredients th,.ingredients td{text-align:left;vertical-align:middle;border-bottom:1px solid #ffffff14;padding:4px 5px}.compare th{color:var(--muted);font-weight:600}.compare td.best{color:var(--good);font-weight:700}.compare td.best:after{content:" ▲";font-size:10px}.ingredients tr.short td{color:#ffbf8a}.ingredients td:first-child{align-items:center;gap:4px;display:flex}.tag{color:#f6d9a8;background:#d2a34a40;border-radius:4px;margin-left:4px;padding:0 5px;font-size:10px}.compare-box{background:#ffffff0a;border-radius:8px;padding:5px 8px}.summary{flex-direction:column;display:flex}.produce{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px;padding:8px 0;display:flex}.dest{align-items:center;gap:6px;font-size:13px;display:flex}.radio{cursor:pointer;align-items:center;gap:2px;display:inline-flex}.recipe-list{flex-direction:column;gap:2px;max-height:54vh;display:flex;overflow:auto}.group-label{font:700 11px var(--font);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:6px 0 2px}.recipe-row{cursor:pointer;text-align:left;color:var(--text);font:13px var(--font);background:0 0;border:1px solid #0000;border-radius:7px;align-items:center;gap:7px;padding:4px 6px;display:flex}.recipe-row:hover{background:#ffffff0d}.recipe-row.sel{background:#ffc87914;border-color:#ffc87980}.recipe-row.locked{color:var(--muted)}.shop-list{flex-direction:column;gap:4px;max-height:52vh;margin-top:6px;display:flex;overflow:auto}.shop-row{background:#ffffff0a;border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;padding:5px 6px;display:flex}.shop-row.compact{padding:3px 5px}.shop-row .total{text-align:right;color:#ffd98a;min-width:64px;font-weight:600}.shop-row.tool .compare{margin-top:3px}.bulk{flex-wrap:wrap;margin-top:6px}.skills-grid{grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:8px;max-height:calc(100vh - 150px);display:grid;overflow:auto}.attr-box,.skill-card{background:#ffffff0a;border:1px solid #ffffff14;border-radius:9px;flex-direction:column;gap:4px;padding:7px 9px;display:flex}.attr-box{grid-column:1/-1}.attr{padding:3px 0}.skill-dot{background:var(--c);border-radius:50%;width:10px;height:10px}.next{color:#e8d3a8;font-size:12px}.next.future,.future{color:#9fb3c8;font-style:italic}.prof-wrap{justify-content:center;display:flex}.prof-circle{width:76px;height:76px;transform:rotate(-90deg)}.prof-circle .ring-bg{fill:none}.cp{fill:#333;stroke:#ffc879;stroke-width:1.5px}.cp.done{fill:#ffc879}.map-canvas{aspect-ratio:1;border:1px solid var(--line);background:#3d4636;border-radius:8px;width:100%;max-width:640px}.map-col{flex:2}.pause-panel{width:min(860px,96vw)}.setting{align-items:center;gap:8px;margin:4px 0;font-size:13px;display:flex}.setting>span:first-child{min-width:170px}.setting.check>span{min-width:0}.controls{grid-template-columns:auto 1fr;gap:3px 10px;margin:0;font-size:13px;display:grid}.controls dd{color:var(--muted);margin:0}.log{background:#00000040;border-radius:6px;max-height:140px;padding:4px 6px;overflow:auto}.dialog-overlay{z-index:50;background:#0a0c108c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog{background:var(--bg-solid);border:1px solid #ffc87966;border-radius:12px;width:min(440px,92vw);padding:14px 16px;box-shadow:0 10px 40px #0009}.dialog p{font-size:14px}#overlay{z-index:40;background:radial-gradient(at 50% 40%,#62445d8c,#14161cf5),#1b1f27;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.title-card{text-align:center;background:#181b22d9;border:1px solid #ffc87959;border-radius:16px;flex-direction:column;align-items:center;gap:10px;width:min(520px,100%);padding:26px 22px;display:flex;box-shadow:0 10px 50px #0009}.title-card h1{color:var(--warm);letter-spacing:.02em;text-shadow:0 2px 10px #b8693880;font-size:clamp(28px,5vw,40px)}.subtitle{font:italic 15px var(--serif);color:#d8c7a6;margin:0 0 6px}@media (max-width:1000px),(max-height:640px){.hud-card{width:230px;padding:6px 8px}.hud-keys{max-width:360px}.key-hint{padding:2px 5px;font-size:11px}.toasts{top:96px}.journal{width:min(280px,34vw);max-height:42vh;font-size:12px}.panel{max-height:calc(100vh - 60px)}.panel-host{padding-top:48px}.grid{max-height:36vh}.recipe-list,.shop-list{max-height:44vh}.prompt{bottom:9%}.xp-popup{bottom:calc(9% + 78px)}}@media (max-width:760px){.cols{flex-direction:column}.col.list{max-width:none}}@media (prefers-reduced-motion:reduce){.ring-arc,.toast,.save-status{transition:none}}html.touch,html.touch body{overscroll-behavior:none;-webkit-text-size-adjust:100%;position:fixed;inset:0}html.touch body{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}html.touch input,html.touch select,html.touch textarea{-webkit-user-select:text;user-select:text;font-size:16px}html.touch .btn,html.touch .tab,html.touch .cell,html.touch .recipe-row,html.touch .slot,html.touch button{touch-action:manipulation}html.touch .look-hint,html.touch .hud-keys,html.touch .reticle{display:none!important}html.touch #app canvas{cursor:default}.touch-controls{pointer-events:none;z-index:5;position:fixed;inset:0}#ui>.touch-controls{pointer-events:none}.touch-controls>button,.touch-controls>nav{pointer-events:auto}.stick-base,.stick-knob{pointer-events:none;border-radius:50%;position:fixed;top:0;left:0}.stick-base{background:#181b2259;border:2px solid #ffc87959;width:112px;height:112px}.stick-knob{background:radial-gradient(circle at 40% 35%,#ffd9a0,#b86938);border:2px solid #fff0dcb3;width:52px;height:52px;box-shadow:0 2px 10px #00000080}.stick-hint{left:calc(22px + env(safe-area-inset-left));bottom:calc(28px + env(safe-area-inset-bottom));color:#ffe6c88c;width:112px;height:112px;font:600 12px var(--font);pointer-events:none;border:2px dashed #ffc87947;border-radius:50%;justify-content:center;align-items:center;display:flex;position:fixed}.touch-action{right:calc(18px + env(safe-area-inset-right));bottom:calc(30px + env(safe-area-inset-bottom));color:#fff6e6;width:96px;height:96px;font:700 13px var(--font);background:radial-gradient(circle at 40% 30%,#d08046,#8a4a26);border:2px solid #e3925a;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:1px;display:flex;position:fixed;box-shadow:0 4px 16px #00000080}.touch-action .action-icon{font-size:24px;line-height:1}.touch-action .action-label{text-overflow:ellipsis;white-space:nowrap;max-width:84px;overflow:hidden}.touch-action.idle{opacity:.55;filter:saturate(.4)}.touch-action.locked{background:radial-gradient(circle at 40% 30%,#6a5a50,#3d3430);border-color:#a07a5a}.touch-action:active{transform:scale(.94)}.touch-run{right:calc(122px + env(safe-area-inset-right));bottom:calc(34px + env(safe-area-inset-bottom));width:58px;height:58px;color:var(--text);font:600 10px var(--font);background:#181b22bf;border:2px solid #ffc87966;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed}.touch-run.on{border-color:var(--good);background:#59634af2}.touch-menu{top:calc(8px + env(safe-area-inset-top));right:calc(8px + env(safe-area-inset-right));grid-template-columns:repeat(3,46px);gap:5px;display:grid;position:fixed}.touch-menu-btn{border:1px solid var(--line);width:46px;height:46px;color:var(--text);background:#181b22d1;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;padding:0;font-size:18px;line-height:1.05;display:flex}.touch-menu-btn small{font:600 9px var(--font);color:var(--muted)}.touch-menu-btn:active{background:#545866f2}html.touch .hud{top:calc(8px + env(safe-area-inset-top));left:calc(8px + env(safe-area-inset-left));right:auto}html.touch .hud-card{width:min(230px,100vw - 180px);padding:6px 8px;font-size:12px}html.touch .hud-badges{top:calc(112px + env(safe-area-inset-top));right:calc(8px + env(safe-area-inset-right))}html.touch .save-status{bottom:auto;top:calc(4px + env(safe-area-inset-top));left:50%;transform:translate(-50%)}html.touch #ui>.prompt{pointer-events:auto;bottom:calc(150px + env(safe-area-inset-bottom));max-width:72vw;padding:6px 12px}html.touch .prompt kbd{display:none}html.touch .xp-popup{bottom:calc(235px + env(safe-area-inset-bottom));width:min(300px,76vw)}html.touch .toasts{top:auto;bottom:calc(300px + env(safe-area-inset-bottom));left:calc(8px + env(safe-area-inset-left));flex-direction:column-reverse;align-items:flex-start;width:min(260px,66vw);right:auto}html.touch .toast{padding:5px 8px;font-size:12px}html.touch .banner{top:calc(118px + env(safe-area-inset-top));padding:8px 16px}html.touch .banner-title{font-size:17px}html.touch .speech{font-size:14px;top:34%;bottom:auto}html.touch .pending{top:auto;bottom:calc(205px + env(safe-area-inset-bottom));max-width:92vw}html.touch .journal{top:calc(112px + env(safe-area-inset-top));bottom:auto;right:calc(8px + env(safe-area-inset-right));width:min(300px,46vw);max-height:30vh;font-size:12px}html.touch .panel-host{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}html.touch .panel,html.touch .panel.wide,html.touch .panel.map-panel,html.touch .pause-panel{background:var(--bg-solid);border:none;border-radius:0;width:100%;height:100%;max-height:none}html.touch .panel-head{min-height:52px;padding:6px 10px}html.touch .panel-head .icon-btn{min-width:44px;min-height:44px;font-size:18px}html.touch .panel-body{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding-bottom:calc(16px + env(safe-area-inset-bottom));flex:1}html.touch .btn{min-height:40px;padding:8px 12px;font-size:14px}html.touch .btn.small{min-height:36px;padding:6px 10px;font-size:13px}html.touch .tab{min-height:36px;padding:6px 12px;font-size:13px}html.touch .qty .btn.small{min-width:40px}html.touch .qty-input{width:70px}html.touch .grid,html.touch .recipe-list,html.touch .shop-list,html.touch .skills-grid{max-height:none}html.touch .recipe-row{min-height:44px}html.touch .setting{flex-wrap:wrap}html.touch .setting>span:first-child{flex:100%;min-width:0}html.touch input[type=range]{width:70%;height:28px}html.touch .title-card{padding:22px 16px}html.touch .dialog .btn{min-width:96px}@media (orientation:portrait){html.touch .cols{flex-direction:column}html.touch .col.list{max-width:none}html.touch .recipe-list{max-height:34vh}html.touch .grid{grid-template-columns:repeat(auto-fill,minmax(84px,1fr))}html.touch .skills-grid{grid-template-columns:1fr}html.touch .journal{left:calc(8px + env(safe-area-inset-left));right:calc(8px + env(safe-area-inset-right));width:auto;max-height:24vh}html.touch .compare{font-size:12px}html.touch .shop-row .total{min-width:0}}@media (orientation:landscape) and (max-height:500px){html.touch .hud-card{width:210px}html.touch .journal{max-height:40vh}html.touch #ui>.prompt{bottom:calc(18px + env(safe-area-inset-bottom))}html.touch .xp-popup{bottom:calc(96px + env(safe-area-inset-bottom))}html.touch .toasts{bottom:calc(140px + env(safe-area-inset-bottom))}html.touch .touch-action{width:82px;height:82px}html.touch .touch-run{right:calc(108px + env(safe-area-inset-right))}}
