:root{color:#173f35;font-synthesis:none;background:#ebe5d1;font-family:Inter,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at 12% 10%,#faf7e9 0 15%,#0000 38%),#ebe5d1;margin:0}button,input{font:inherit}button{cursor:pointer}main{width:min(1180px,100% - 32px);margin:auto;padding:30px 0 45px}header{align-items:center;gap:22px;margin-bottom:25px;display:flex}.mark{color:#f8f3df;background:#173f35;border-radius:50%;place-items:center;width:82px;height:82px;font:700 18px ui-monospace;display:grid;transform:rotate(-8deg)}h1,h2,p{margin:0}h1{letter-spacing:-.06em;font:900 clamp(42px,7vw,82px)/.82 Georgia,serif}header>div>p:last-child{color:#51695f;margin-top:12px}.eyebrow{text-transform:uppercase;letter-spacing:.16em;color:#d8482e;margin-bottom:7px;font-size:11px;font-weight:800}.workspace{background:#f8f3df;border:2px solid #173f35;grid-template-columns:260px 1fr;display:grid;box-shadow:8px 8px #173f35}.controls{border-right:2px solid #173f35;padding:22px}.step{border-bottom:1px dashed #85988d;grid-template-columns:36px 1fr;gap:8px;padding:14px 0;display:grid}.step>b{color:#d8482e;font:700 14px ui-monospace}.step label{font-weight:800}.step p{color:#63766d;margin:5px 0 8px;font-size:12px}.unit{border-bottom:2px solid #173f35;display:flex}.unit input,.name{background:0 0;border:0;outline:none;width:100%;min-width:0;padding:6px 2px;font-weight:800}.unit span{white-space:nowrap;padding:6px 0;font-size:13px}.name{border-bottom:2px solid #173f35;margin-top:9px}.buttons{grid-template-columns:1fr 1fr;gap:8px;margin-top:20px;display:grid}.buttons button{color:#fff;background:#e95234;border:2px solid #173f35;padding:10px;font-weight:800}.buttons button:first-child{grid-column:1/-1}.buttons .ghost{color:#173f35;background:0 0}.buttons button:disabled{opacity:.35}.mapwrap{min-width:0}.maphead{text-transform:uppercase;border-bottom:2px solid #173f35;justify-content:space-between;padding:12px 16px;font:700 12px ui-monospace;display:flex}.mapwrap canvas{touch-action:none;cursor:crosshair;width:100%;height:auto;max-height:570px;display:block}.hint{color:#f8f3df;background:#173f35;padding:10px 16px;font-size:12px}.stats{border-top:2px solid #173f35;border-bottom:2px solid #173f35;grid-template-columns:repeat(3,1fr);margin-top:30px;display:grid}.stats>div{border-right:1px solid #819187;padding:20px 24px}.stats>div:last-child{border:0}.stats span{text-transform:uppercase;letter-spacing:.12em;font-size:12px;display:block}.stats strong{color:#e95234;font:900 clamp(38px,6vw,70px)/1 Georgia,serif;display:block}.stats small{color:#173f35;font:700 14px sans-serif}.stats em{color:#687a72;font-size:11px;font-style:normal;display:block}.archive{grid-template-columns:220px 1fr;gap:25px;margin-top:38px;display:grid}.archive h2{font:800 26px Georgia,serif}.empty{color:#63766d;padding-top:22px}.saved{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.saved article{background:#f8f3df;border:1px solid #83938b;display:flex}.load{text-align:left;background:0 0;border:0;flex:1;padding:13px}.load b,.load span{display:block}.load span{color:#63766d;margin-top:5px;font-size:11px}.delete{color:#d8482e;background:0 0;border:0;border-left:1px solid #83938b;width:42px;font-size:22px}footer{text-align:center;color:#64766e;margin-top:40px;font-size:11px}@media (width<=760px){main{width:min(100% - 20px,600px);padding-top:18px}header{align-items:flex-start}.mark{width:58px;height:58px;font-size:13px}.workspace{grid-template-columns:1fr;box-shadow:4px 4px #173f35}.controls{border-bottom:2px solid #173f35;border-right:0;grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.step{grid-template-columns:1fr;padding:5px}.step>b{display:none}.buttons{grid-column:1/-1;grid-template-columns:2fr 1fr 1fr}.buttons button:first-child{grid-column:auto}.stats{grid-template-columns:1fr}.stats>div{border-bottom:1px solid #819187;border-right:0}.stats>div:last-child{border:0}.archive,.saved{grid-template-columns:1fr}}@media (width<=450px){.controls{grid-template-columns:1fr 1fr}.step:nth-child(3){grid-column:1/-1}.buttons{flex-wrap:wrap;display:flex}.buttons button{flex:1}.stats strong{font-size:46px}.mapwrap canvas{object-fit:fill;min-height:260px}}
