:root{--ink:#2b2533;--paper:#fffaf0;--paper-2:#f4ead3;--line:#2b25338c;--accent:#2a6b4a;--bad:#9b2c22;color:var(--ink);font-family:ui-rounded,SF Pro Rounded,Nunito,system-ui,sans-serif}*{box-sizing:border-box}html,body{background:#fdf3d8;height:100%;margin:0}button,input{font:inherit}button{background:var(--paper);color:var(--ink);border:2px solid var(--line);cursor:pointer;box-shadow:0 2px 0 var(--line);border-radius:10px;padding:.35rem .7rem}button:hover{background:#fff}button:active{box-shadow:0 1px 0 var(--line);transform:translateY(1px)}button:disabled{opacity:.6;cursor:default}button.secondary{background:var(--paper-2)}:focus-visible{outline-offset:2px;outline:3px solid #1f5fbf}input{border:2px solid var(--line);color:var(--ink);background:#fff;border-radius:8px;padding:.3rem .5rem}label{align-items:center;gap:.5rem;display:inline-flex}a{color:var(--accent)}kbd{background:var(--paper-2);border:1px solid var(--line);border-radius:4px;padding:0 .3em;font-size:.9em}.small{opacity:.9;font-size:.82rem}.bad{color:var(--bad)}.row{flex-wrap:wrap;align-items:center;gap:.6rem;margin:.6rem 0;display:flex}.landing{background:radial-gradient(circle at 30% 20%,#d9f2c9,#fdf3d8 60%);place-items:center;min-height:100%;padding:1rem;display:grid}.card{background:var(--paper);border:2px solid var(--line);box-shadow:0 4px 0 var(--line);border-radius:16px;max-width:40rem;padding:1.2rem 1.4rem}.card h1{letter-spacing:.02em;margin:0 0 .4rem;font-size:2.6rem}.hero .lede{font-size:1.05rem;line-height:1.5}.loading{text-align:center;padding:2rem}.game{position:fixed;inset:0;overflow:hidden}.world{touch-action:none;width:100%;height:100%;display:block;position:absolute;inset:0}.panel{border:2px solid var(--line);box-shadow:0 3px 0 var(--line);background:#fffaf0eb;border-radius:12px;padding:.5rem .7rem;font-size:.88rem;position:absolute}.panel h2{margin:0 0 .3rem;font-size:.9rem}.panel p{margin:.2rem 0}.panel ul,.panel ol{margin:0;padding:0;list-style:none}.col-left{flex-direction:column;gap:.45rem;width:min(19rem,44vw);max-height:calc(100vh - 17rem);display:flex;position:absolute;top:.6rem;left:.6rem;overflow:auto}.col-left .panel{position:static}.top-right{max-width:min(17rem,44vw);top:.6rem;right:.6rem}.memo li{opacity:.55;padding:.1rem 0}.memo li.next{opacity:1;font-weight:700}.memo li.done{opacity:.7;text-decoration:line-through}.stage{font-size:1rem}.stage-n{opacity:.8;font-size:.75rem}.stocks li{grid-template-columns:6.5rem 1fr 4.5rem;align-items:center;gap:.4rem;display:grid}.stocks .bar{background:#0000001f;border-radius:99px;height:.55rem;overflow:hidden}.stocks .bar span{height:100%;display:block}.stocks .num{text-align:right;font-variant-numeric:tabular-nums}.swatch{border:1px solid var(--line);vertical-align:-1px;border-radius:50%;width:.7rem;height:.7rem;margin-right:.35rem;display:inline-block}.roster li.away{opacity:.6}.code{letter-spacing:.08em;font-family:ui-monospace,monospace;font-size:1.05rem}.dot{background:#999;border-radius:50%;width:.6rem;height:.6rem;display:inline-block}.dot.live{background:#3a9b5c}.dot.reconnecting,.dot.connecting{background:#d9a441}.dot.error{background:var(--bad)}.bottom{flex-wrap:wrap;justify-content:center;align-items:stretch;gap:.3rem;width:max-content;max-width:calc(100vw - 33rem);padding:.35rem;display:flex;bottom:.6rem;left:50%;transform:translate(-50%)}.bottom .build{text-align:left;grid-template-columns:auto 1fr;column-gap:.35rem;padding:.2rem .45rem;display:grid}.bottom .build .key{opacity:.7;grid-row:span 2;font-weight:700}.bottom .build .bname{font-size:.8rem;font-weight:700}.bottom .build .cost{opacity:.85;font-size:.66rem}.bottom button{font-size:.78rem}.bottom .build.short{background:var(--paper-2)}.bottom .on{border-color:var(--ink);background:#ffe9a8}.bottom .tool{font-size:.8rem}.bottom .sep{background:var(--line);width:2px;margin:0 .2rem}.log{width:15rem;font-size:.76rem;bottom:.6rem;left:.6rem}.inspect{width:min(17rem,90vw);bottom:.6rem;right:.6rem}.corner-buttons{flex-direction:column;align-items:flex-end;gap:.35rem;display:flex;position:absolute;top:50%;right:.6rem;transform:translateY(-50%)}.emotes{gap:.2rem;display:flex}.emotes button{padding:.2rem .35rem}.settings{gap:.3rem;display:grid;top:calc(50% + 2.5rem);right:9.5rem}.overlay{pointer-events:none;position:absolute;inset:0}.overlay>*{pointer-events:auto}.overlay.center{background:#14101840;place-items:center;display:grid}.overlay.bottom-card{place-items:end center;padding-bottom:6rem;display:grid}.help ul{padding-left:1.1rem;line-height:1.6}.transition table{border-collapse:collapse;margin:.4rem 0}.transition th,.transition td{text-align:right;border-bottom:1px solid #0000001a;padding:.15rem .6rem}.transition th[scope=row]{text-align:left}.ending .card.dark{color:#e8e6f0;background:#0a0a10eb;border-color:#555;max-height:90vh;overflow:auto}.ending .search{opacity:.7;font-family:ui-monospace,monospace;animation:2s steps(2,end) infinite blink}.archive li{margin:.2rem 0}@keyframes blink{50%{opacity:.2}}@media (prefers-reduced-motion:reduce){.ending .search{animation:none}}.toasts{pointer-events:none;gap:.3rem;display:grid;position:absolute;top:.6rem;left:50%;transform:translate(-50%)}.toasts p{background:var(--paper);border:2px solid var(--line);border-radius:10px;margin:0;padding:.3rem .7rem;font-size:.85rem}.toasts p.bad{border-color:var(--bad);color:var(--bad)}@media (max-width:900px){.col-left .left,.col-left .memo,.log{display:none}.bottom{max-width:calc(100vw - 1.2rem)}.corner-buttons{top:auto;bottom:12rem;transform:none}}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.card .title{margin:0;font-size:2rem;font-weight:700}.loading h1{font-size:1.2rem;font-weight:500}.bottleneck{border-top:1px solid #0000001f;margin-top:.3rem;padding-top:.25rem}.ending .card.dawn{background:#fff8e8f2;max-height:90vh;overflow:auto}.landing{flex-direction:column;gap:1rem;display:flex}.atlas{grid-template-columns:repeat(auto-fit,minmax(10.5rem,1fr));gap:.5rem;margin:.4rem 0;padding:0;list-style:none;display:grid}.atlas li{border:2px solid var(--line);border-radius:12px;padding:.35rem}.atlas li.current{outline:3px solid #1f5fbf}.atlas li.spent{filter:grayscale(.85)}.atlas-card{background:#fffaf0e6;border-radius:8px;height:100%;padding:.4rem .55rem}.atlas-card h3{margin:.1rem 0;font-size:1rem}.atlas-card p{margin:.2rem 0}.atlas-wrap{max-width:64rem;max-height:90vh;overflow:auto}.vitals{position:static}.vitals p{align-items:center;gap:.4rem;margin:.15rem 0;display:flex}.vlabel{width:3.3rem;font-size:.8rem}.vbar{background:#0000001f;border-radius:99px;flex:1;height:.55rem;display:inline-block;overflow:hidden}.vbar span{height:100%;display:block}.pack{width:min(56rem,94vw);max-width:56rem;max-height:90vh;overflow:auto}.pack-head{justify-content:space-between;align-items:center;gap:1rem;display:flex}.pack-head h2{margin:0}.pack-cols{grid-template-columns:1fr 1.3fr;gap:1rem;display:grid}@media (max-width:700px){.pack-cols{grid-template-columns:1fr}}.pack h3{margin:.6rem 0 .3rem;font-size:.95rem}.items,.recipes{gap:.3rem;margin:0;padding:0;list-style:none;display:grid}.items li,.recipes li{border-bottom:1px solid #00000014;justify-content:space-between;align-items:center;gap:.5rem;padding-bottom:.25rem;display:flex}.recipes li p{margin:.1rem 0}.recipes li.cant{opacity:.8}.recipes .why{color:var(--bad)}.row.tight{gap:.25rem;margin:.2rem 0}.row.tight button{padding:.15rem .45rem;font-size:.78rem}.nearby{width:min(19rem,90vw);max-height:45vh;bottom:5.5rem;right:.6rem;overflow:auto}.nearby h2{font-size:.9rem}.town .events{opacity:.85;margin:.3rem 0 0;padding:0;list-style:none}.town .on,.inspect .on{border-color:var(--ink);background:#ffe9a8}.chat{width:15rem;position:absolute;bottom:6.5rem;left:.6rem}.chat input{width:100%;font-size:.8rem}.world-labels{pointer-events:none;position:absolute;inset:0;overflow:hidden}.world-labels .wl{color:#fffdf3;white-space:nowrap;background:#1e1822ad;border-radius:7px;padding:1px 7px;font:600 12px/1.25 ui-rounded,SF Pro Rounded,Nunito,system-ui,sans-serif}.wl-name{border-left:4px solid var(--who,#fff)}.wl-place{border:1.5px solid var(--line);color:var(--ink)!important;background:#fffaf0eb!important}.wl-ghost{font-style:italic;color:#dcdcebcc!important;background:0 0!important}.wl-building[data-kind=idle]{border:1.5px solid var(--bad);color:var(--bad)!important;background:#fffaf0f2!important}.wl-building[data-kind=site]{color:var(--ink)!important;background:#ffe08af2!important}.wl-emote{border:2px solid var(--line);background:#fffdf3!important;border-radius:14px!important;padding:0 6px!important;font-size:22px!important}.wl-pop{color:#fffbe0!important}.wl-survey{font-variant-numeric:tabular-nums;color:var(--ink)!important;background:#fffbe0eb!important}.crosshair{pointer-events:none;width:22px;height:22px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.crosshair:before,.crosshair:after{content:"";background:#fffdf3;border-radius:1px;position:absolute;box-shadow:0 0 0 1.5px #1e1822bf}.crosshair:before{width:2px;height:18px;top:2px;left:10px}.crosshair:after{width:18px;height:2px;top:10px;left:2px}.crosshair.build:before,.crosshair.build:after{background:#bfffc8}.crosshair.demolish:before,.crosshair.demolish:after{background:#ff8a7a}.aim-hint{pointer-events:none;color:#fffdf3;white-space:nowrap;background:#1e1822b8;border-radius:8px;padding:.15rem .6rem;font-size:.85rem;font-weight:600;position:absolute;top:0;left:0}.aim-hint[data-bad="1"]{color:#ffd1cc}.aim-hint[hidden]{display:none}.lock-hint{pointer-events:none;color:#fffdf3;background:#1e18228c;border-radius:8px;margin:0;padding:.15rem .6rem;font-size:.8rem;position:absolute;top:calc(50% + 4.2rem);left:50%;transform:translate(-50%)}.world-flash{opacity:0;pointer-events:none;background:#fff;position:absolute;inset:0}.settings select{font:inherit;border:2px solid var(--line);color:var(--ink);background:#fff;border-radius:8px}.settings label{justify-content:space-between}@media (max-width:900px){.lock-hint{display:none}}.settings{max-height:calc(100vh - 2rem);top:auto;bottom:1rem;overflow:auto}.world-labels{z-index:1}.aim-hint,.crosshair,.lock-hint{z-index:2}.panel,.col-left,.corner-buttons,.overlay,.toasts{z-index:3}.crosshair,.aim-hint{z-index:4}@media (max-width:900px){.corner-buttons{top:13rem;bottom:auto}.corner-buttons .emotes{flex-wrap:wrap;justify-content:flex-end;max-width:7.5rem}}.log p.said{font-weight:600}.log .mute{box-shadow:none;margin-left:.3rem;padding:0 .3rem;font-size:.66rem}.col-left .town{position:static}
