:root{--bg:#0e0a07;--panel:#140e0af0;--line:#4a3524;--text:#f0e3cc;--muted:#a8957a;--accent:#e8b93a;--pos:#8fd06a;--neg:#ff6b5b;--order:#c9564a;--faith:#d8a33a}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);font:600 14px/1.25 var(--ui-font);margin:0;overflow:hidden}#app{position:fixed;inset:0}#ui{pointer-events:none;position:fixed;inset:0}#ui>*{pointer-events:auto}button{font:inherit;color:var(--text);border:1px solid var(--line);cursor:pointer;background:#2a1d13;border-radius:4px;padding:4px 8px}button:hover{background:#3a2819;border-color:#6b4c32}button.on{background:var(--accent);color:#1a1008;border-color:var(--accent)}button.off{opacity:.4;cursor:not-allowed}button.primary{border-color:var(--accent);background:#6b4a1e}button.primary:hover{background:#87602a}button.danger{color:#ffb3a8;border-color:#7a2c24}button.glow{box-shadow:0 0 0 1px var(--accent), 0 0 10px #e8b93a59}small{font-size:12px}.muted{color:var(--muted);font-weight:500}.pos{color:var(--pos)}.neg{color:var(--neg)}.warn{color:var(--accent)}em{font-style:normal}#top{background:var(--panel);border-bottom:1px solid var(--line);align-items:center;gap:18px;height:52px;padding:0 14px;display:flex;position:absolute;top:0;left:0;right:0}.brand{font:28px var(--ui-font);letter-spacing:3px;color:var(--accent);text-shadow:0 0 12px #e8b93a66}.resbar{flex:1;gap:14px;display:flex}.res{grid-template-columns:10px auto;align-items:center;column-gap:6px;min-width:78px;display:grid}.res i{border-radius:2px;grid-row:span 2;width:10px;height:10px}.res b{color:var(--muted);text-transform:uppercase;letter-spacing:1px;font-size:11px}.res span{font-size:16px}.res span small{color:var(--muted)}.res em{grid-column:2;height:12px;font-size:11px}.clock{white-space:nowrap;font-size:16px}.speeds{gap:4px;display:flex}.speeds button{min-width:38px}aside{flex-direction:column;gap:8px;width:264px;display:flex;position:absolute;top:60px;bottom:120px;overflow-y:auto}#left{left:8px}#right{width:304px;right:8px}.card,.meter{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:10px}.card header,.meter header{justify-content:space-between;align-items:baseline;margin-bottom:6px;display:flex}.card header b,.meter header b{font:18px var(--ui-font);letter-spacing:1.5px}.card p{margin:6px 0}.bar{background:#000;border:1px solid #2a1d13;border-radius:3px;height:10px;overflow:hidden}.bar i{height:100%;transition:width .3s;display:block}.bar.small{flex:1;height:7px}.meter ul,.castes,.status,.log ul{margin:6px 0 0;padding:0;list-style:none}.meter li{color:var(--muted);justify-content:space-between;font-size:13px;display:flex}.meter.danger{border-color:var(--neg);box-shadow:0 0 12px #ff4b3a40}.seg{grid-template-columns:repeat(4,1fr);gap:3px;margin-bottom:6px;display:grid}.seg button{padding:4px 2px;font-size:12px}.kv{align-items:center;gap:8px;margin:4px 0;display:flex}.kv>span{width:52px;color:var(--muted)}.castes li{grid-template-rows:auto auto;grid-template-columns:10px 1fr auto auto;align-items:center;column-gap:6px;margin-bottom:6px;display:grid}.castes li i{border-radius:50%;width:10px;height:10px}.castes li b{font-size:16px}.castes li small{color:var(--muted);grid-area:2/2/auto/span 2}.castes .mix{grid-row:span 2}.mix{align-items:center;gap:3px;display:inline-flex}.mix button{min-width:22px;padding:0 6px}h4{color:var(--muted);text-transform:uppercase;letter-spacing:1px;margin:10px 0 6px;font-size:13px}.status li{margin:3px 0}.actions{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.tip{font-size:12px}.log{flex:1;min-height:140px}.log li{color:var(--muted);margin-bottom:4px;font-size:13px}.log li small{color:#6f5f4a}.log li.bad{color:#ff9a8c}.log li.good{color:#b6e39a}.cost{color:var(--c);white-space:nowrap}#bottom{background:var(--panel);border-top:1px solid var(--line);align-items:stretch;gap:10px;height:112px;padding:8px;display:flex;position:absolute;bottom:0;left:0;right:0}.tools{flex-direction:column;gap:6px;width:250px;display:flex}.dig{border:1px solid var(--line);border-radius:4px;flex-wrap:wrap;align-items:center;gap:5px;padding:4px;display:flex}.dig.on{border-color:var(--accent)}.rooms{flex:1;grid-template-columns:repeat(6,1fr);gap:4px;display:grid;overflow-y:auto}.room{text-align:left;grid-template-columns:8px 1fr;column-gap:6px;padding:3px 6px;font-size:13px;display:grid}.room i{border-radius:2px;grid-row:span 3}.room small{color:var(--muted);text-transform:uppercase;font-size:10px}.room span{font-size:11px}.books{grid-template-columns:1fr 1fr;gap:6px;width:250px;display:grid}.books button:first-child{grid-column:span 2}.books button{flex:1;font-size:16px}.books small{color:var(--muted);font-size:11px;display:block}#modal{background:#05030299;justify-content:center;align-items:center;display:none;position:absolute;inset:0}#modal.open{display:flex}.dialog{border:1px solid var(--accent);background:#17100b;border-radius:8px;max-width:560px;max-height:88vh;padding:22px 26px;overflow-y:auto;box-shadow:0 10px 50px #000000b3}.dialog.wide{width:94vw;max-width:1040px}.dialog h1{font:64px var(--ui-font);letter-spacing:6px;color:var(--accent);text-shadow:0 0 20px #e8b93a66;margin:0}.dialog h2{font:32px var(--ui-font);letter-spacing:2px;color:var(--accent);margin:0 0 8px}.dialog h3{font:22px var(--ui-font);letter-spacing:1.5px;margin:0 0 8px}.dialog p{font-size:16px;font-weight:500}.dialog .lead{color:var(--accent);font-size:20px}.dialog.intro li{margin:6px 0;font-size:15px;font-weight:500}.dialog.win{border-color:var(--pos)}.dialog.lose{border-color:var(--neg)}.dialog.lose h2{color:var(--neg)}.choices{flex-direction:column;gap:8px;display:flex}.choices button{text-align:left;padding:10px 12px;font-size:15px}.stats{color:var(--muted);gap:14px;padding:0;list-style:none;display:flex}.lawgrid{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.lawcol{border:1px solid var(--line);border-radius:6px;flex-direction:column;gap:8px;padding:10px;display:flex}.lawcol.order{border-color:var(--order)}.lawcol.order h3{color:var(--order)}.lawcol.faith{border-color:var(--faith)}.lawcol.faith h3{color:var(--faith)}.lawcol.closed{opacity:.35}.techgrid{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.law{border:1px solid var(--line);background:#1f150e;border-radius:6px;flex-direction:column;gap:4px;padding:8px 10px;display:flex}.law p{color:var(--muted);margin:0;font-size:13px}.law.signed{border-color:var(--pos)}.law.locked{opacity:.7}.law button{align-self:flex-start;margin-top:4px}#toast{border:1px solid var(--neg);opacity:0;pointer-events:none;background:#3a1410;border-radius:6px;padding:8px 14px;transition:opacity .2s;position:absolute;top:70px;left:50%;transform:translate(-50%)}#toast.show{opacity:1}#tutorial{z-index:5;background:#10202a;border:2px solid #5fd3ff;border-radius:8px;width:340px;padding:12px 14px;display:none;position:absolute;top:60px;right:320px;box-shadow:0 8px 30px #0009}#tutorial.open{display:block}#tutorial header{color:#5fd3ff;justify-content:space-between;align-items:center;display:flex}#tutorial h3{font:26px var(--ui-font);letter-spacing:1.5px;color:#bfefff;margin:4px 0}#tutorial p{margin:6px 0;font-size:15px;font-weight:500}#tutorial .goal{color:#5fd3ff;font-weight:700}#tutorial .goal.done{color:var(--pos)}#tutorial .dots{gap:3px;margin-top:10px;display:flex}#tutorial .dots i{background:#24404d;border-radius:2px;flex:1;height:4px}#tutorial .dots i.past{background:#5fd3ff}#tutorial .dots i.now{background:#bfefff}button.link{color:#8aa9b5;background:0 0;border:none;padding:0;font-size:12px;text-decoration:underline}.tut-focus{outline-offset:2px;z-index:4;animation:1s ease-in-out infinite tutpulse;position:relative;outline:3px solid #5fd3ff!important}@keyframes tutpulse{50%{outline-color:#5fd3ff40}}button.suggest{color:#bfefff;border-color:#5fd3ff}.clock .idle{color:var(--accent)}#alert{border:2px solid var(--neg);z-index:6;background:#3a120e;border-radius:6px;max-width:720px;padding:8px 12px;font-size:15px;display:none;position:absolute;top:58px;left:50%;transform:translate(-50%);box-shadow:0 0 18px #ff4b3a59}#alert.open{animation:1.2s ease-in-out infinite alertpulse;display:block}#alert button{margin-left:8px}@keyframes alertpulse{50%{box-shadow:0 0 4px #ff4b3a26}}.scenarios{padding:0;list-style:none}.scenarios li{margin:8px 0}.dialog a{color:var(--accent)}.dialog code{color:#bfefff;font-size:12px}.endstats .tiles{grid-template-columns:repeat(4,1fr);gap:8px;margin:10px 0 14px;display:grid}.endstats .tiles div{border:1px solid var(--line);background:#1f150e;border-radius:6px;flex-direction:column;padding:8px;display:flex}.endstats .tiles b{font:26px var(--ui-font);color:var(--accent)}.endstats .tiles small{color:var(--muted)}.endstats .chart{border:1px solid var(--line);background:#140e09;border-radius:6px;width:100%;height:auto}.endstats .chart text{fill:#8a7a62;font-size:11px;font-family:var(--ui-font)}.endstats .legend{color:var(--muted);gap:16px;margin:6px 0 10px;font-size:13px;display:flex}.endstats .legend span:before{content:"";background:var(--c);vertical-align:middle;width:14px;height:3px;margin-right:6px;display:inline-block}.endstats .cols{grid-template-columns:1.4fr 1fr;gap:18px;display:grid}.endstats .deaths{margin:0;padding:0;list-style:none}.endstats .deaths li{grid-template-columns:130px 1fr 36px;align-items:center;gap:8px;margin:4px 0;display:grid}.endstats .deaths i{background:var(--neg);border-radius:2px;height:8px}:root{--frame:#4a3524;--px-frame:0 -3px 0 0 var(--frame), 0 3px 0 0 var(--frame), -3px 0 0 0 var(--frame), 3px 0 0 0 var(--frame);--px-bevel:inset 3px 3px 0 0 #ffe1aa12, inset -3px -3px 0 0 #00000059}html,body,#ui,#ui *{cursor:var(--cursor)}#ui button:not(.off),#ui [data-a]:not(.off),#ui a,canvas{cursor:var(--cursor-grab)}#ui{-webkit-user-select:none;user-select:none}#ui input,#ui textarea{-webkit-user-select:text;user-select:text}body{-webkit-font-smoothing:none;font-smooth:never;font-weight:500}.card,.meter,.dialog,#tutorial,#alert,.law,.lawcol,.endstats .tiles div,.dig{image-rendering:pixelated;background-size:128px 128px;margin:3px;background-image:var(--tex)!important;box-shadow:var(--px-frame), var(--px-bevel)!important;border:none!important;border-radius:0!important}.card,.meter{background-color:#1a120c}.dialog{--frame:var(--accent);background-color:#17100b;margin:0}.dialog.lose{--frame:var(--neg)}.dialog.win{--frame:var(--pos)}.meter.danger{--frame:var(--neg)}#tutorial{--frame:#5fd3ff}#alert{--frame:var(--neg);animation:none}#alert.open{animation:.9s steps(2,end) infinite pxpulse}@keyframes pxpulse{50%{--frame:#7a2c24;background-color:#2a0e0b}}.law.signed{--frame:var(--pos)}.lawcol.order{--frame:var(--order)}.lawcol.faith{--frame:var(--faith)}#top,#bottom{background-image:var(--tex);image-rendering:pixelated;box-shadow:0 3px 0 0 #0c0805, 0 6px 0 0 var(--frame);background-size:128px 128px;border:none}#bottom{box-shadow:0 -3px 0 0 #0c0805, 0 -6px 0 0 var(--frame)}.brand,.dialog h1,.dialog h2,.dialog h3,#tutorial h3,.card header b,.meter header b,.endstats .tiles b{font-family:var(--ui-font);letter-spacing:1px;text-shadow:2px 2px #0c0805;font-weight:700}.brand{font-size:26px}.dialog h1{letter-spacing:4px;text-shadow:4px 4px #0c0805,-2px -2px #7a4a10;font-size:56px}.card header b,.meter header b{font-size:17px}#ui button,.sg-btn{font-family:var(--ui-font);color:var(--text);background-color:#3a2819;margin:3px;font-weight:600;transition:none;border:none!important;border-radius:0!important;box-shadow:0 -2px #0c0805,0 2px #0c0805,-2px 0 #0c0805,2px 0 #0c0805,inset 2px 2px #ffdca038,inset -2px -3px #00000073!important}#ui button:hover:not(.off){background-color:#4d3521}#ui button:active:not(.off){transform:translateY(2px);box-shadow:0 -2px #0c0805,0 2px #0c0805,-2px 0 #0c0805,2px 0 #0c0805,inset 2px 3px #00000073,inset -2px -2px #ffdca01a!important}#ui button.on{color:#1a1008;background-color:#d8a33a}#ui button.primary{color:#fff1d0;background-color:#8a5a1c}#ui button.primary:hover:not(.off){background-color:#a06a22}#ui button.danger{color:#ffc2b8;background-color:#4a1c16}#ui button.off{filter:grayscale(.7)brightness(.7);opacity:.6}#ui button.glow{animation:1.2s steps(2,end) infinite pxglow}@keyframes pxglow{50%{background-color:#5a3d1c}}#ui button.link{background:0 0;box-shadow:none!important}#ui .room{margin:2px}#ui .mix button{margin:2px 1px;padding:0 5px}.bar{image-rendering:pixelated;background:#0c0805;border:none;border-radius:0;box-shadow:0 0 0 2px #2a1d13}.bar i{background-image:linear-gradient(#ffffff40 0 2px,#0000 2px calc(100% - 2px),#0000004d calc(100% - 2px));transition:width .3s steps(6,end)}aside,.dialog,.rooms{scrollbar-width:thin;scrollbar-color:#6b4c32 #120b06}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#120b06}::-webkit-scrollbar-thumb{background:#6b4c32;box-shadow:inset 2px 2px #ffdca033,inset -2px -2px #0006}#tip{z-index:20000;max-width:280px;font:500 14px/1.25 var(--ui-font);color:var(--text);box-shadow:0 -2px 0 0 var(--accent), 0 2px 0 0 var(--accent), -2px 0 0 0 var(--accent), 2px 0 0 0 var(--accent), 4px 4px 0 2px #00000080;pointer-events:none;opacity:0;background:#120b06;padding:6px 9px;position:fixed;top:0;left:0}#tip.show{opacity:1}#toast{box-shadow:0 -2px 0 0 var(--neg), 0 2px 0 0 var(--neg), -2px 0 0 0 var(--neg), 2px 0 0 0 var(--neg);font-family:var(--ui-font);border:none;border-radius:0}.tools{width:270px}.dig{white-space:nowrap;flex-wrap:nowrap;gap:2px;padding:4px 6px;font-size:13px}.dig button{padding:2px 6px}.dig small.muted{display:none}#top,aside,#bottom,.dialog,#tutorial,#alert,#tip,#toast{zoom:var(--ui-zoom,1)}.settings .actions button{min-width:64px}#top,#bottom{width:calc(100vw / var(--ui-zoom,1));right:auto}#top{gap:12px;overflow:hidden}#top .resbar{flex:0 auto;gap:8px;min-width:0}#top .res{min-width:64px}#top .clock{text-overflow:ellipsis;flex:auto;min-width:0;overflow:hidden}#top>button,#top .resbar,#top .speeds,#top>button,#top .brand{flex:none}#top .clock{white-space:nowrap;text-overflow:ellipsis;flex:1 1 0;min-width:0;overflow:hidden}@media (width<=1500px){#top .clock .hunt{display:none}#top .res{min-width:56px}}.sg-overlay,.sg-open-btn{--sg-bg:#17100b;--sg-border:#4a3524;--sg-accent:#e8b93a;--sg-text:#f0e3cc;--sg-muted:#a8957a;--sg-error:#ff6b5b;--sg-ok:#8fd18b;font-family:var(--ui-font)}.sg-overlay{z-index:10000;pointer-events:auto;box-sizing:border-box;background:#080503b8;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.sg-dialog{box-sizing:border-box;background:var(--sg-bg);width:100%;max-width:480px;max-height:calc(100vh - 32px);color:var(--sg-text);border:1px solid var(--sg-border);border-top:3px solid var(--sg-accent);border-radius:6px;padding:20px 22px 18px;font-size:15px;font-weight:600;line-height:1.3;overflow-y:auto;box-shadow:0 12px 40px #0009}.sg-title{letter-spacing:.04em;text-transform:uppercase;color:var(--sg-accent);margin:0 0 6px;font-size:22px;font-weight:700}.sg-intro{color:var(--sg-muted);margin:0 0 14px;font-weight:500}.sg-form{flex-direction:column;gap:4px;display:flex}.sg-label{letter-spacing:.06em;text-transform:uppercase;color:var(--sg-muted);margin-top:8px;font-size:13px;font-weight:700}.sg-select,.sg-input,.sg-textarea{box-sizing:border-box;width:100%;color:var(--sg-text);border:1px solid var(--sg-border);font:inherit;background:#0f0a07;border-radius:4px;outline:none;padding:8px 10px;font-weight:600}.sg-textarea{resize:vertical;min-height:110px}.sg-select:focus,.sg-input:focus,.sg-textarea:focus{border-color:var(--sg-accent);box-shadow:0 0 0 1px var(--sg-accent)}.sg-select:disabled,.sg-input:disabled,.sg-textarea:disabled{opacity:.6}.sg-input::placeholder,.sg-textarea::placeholder{color:var(--sg-muted);opacity:.7}.sg-counter{color:var(--sg-muted);align-self:flex-end;font-size:12px}.sg-counter-low{color:var(--sg-error)}.sg-hp{width:1px;height:1px;position:absolute;top:auto;left:-10000px;overflow:hidden}.sg-status{min-height:1.3em;color:var(--sg-muted);margin-top:10px}.sg-status-error{color:var(--sg-error)}.sg-status-ok{color:var(--sg-ok)}.sg-status-info{color:var(--sg-muted)}.sg-status a{color:var(--sg-accent);font-weight:700}.sg-actions{justify-content:flex-end;gap:10px;margin-top:12px;display:flex}.sg-btn{font:inherit;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;border-radius:4px;padding:8px 18px;font-weight:700}.sg-btn:disabled{opacity:.55;cursor:default}.sg-btn-primary{background:var(--sg-accent);color:#17100b;border:1px solid var(--sg-accent)}.sg-btn-primary:not(:disabled):hover{filter:brightness(1.1)}.sg-btn-secondary{color:var(--sg-text);border:1px solid var(--sg-border);background:0 0}.sg-btn-secondary:not(:disabled):hover{border-color:var(--sg-muted)}.sg-sending .sg-textarea,.sg-sending .sg-input,.sg-sending .sg-select{opacity:.7}.sg-open-btn{pointer-events:auto;background:var(--sg-bg);color:var(--sg-text);border:1px solid var(--sg-border);letter-spacing:.05em;cursor:pointer;border-radius:4px;padding:5px 12px;font-size:13px;font-weight:700}.sg-open-btn:hover{border-color:var(--sg-accent);color:var(--sg-accent)}.sg-open-btn-floating{z-index:9000;position:fixed;bottom:12px;right:12px}
