:root{--ink:#16110c;--ink-raised:#211912;--ink-high:#30251a;--parchment:#f1e6cc;--parchment-dim:#c4b591;--brass:#cda453;--brass-bright:#eacb82;--brass-deep:#7d5f27;--red:#9c2a1e;--red-bright:#e0614b;--indigo:#24365f;--steppe:#86b25a;--amber:#e7a93c;--surface:#211912f5;--surface-raised:var(--ink-high);--surface-sunken:#00000047;--border:#cda45399;--border-quiet:#f1e6cc29;--track:#f1e6cc24;--scrim:#00000080;--caption:12px;--small:14px;--body:17px;--heading:22px;--title:30px;--display:44px;--s-xxs:4px;--s-xs:8px;--s-s:12px;--s-m:16px;--s-l:24px;--s-xl:32px;--r-control:4px;--r-panel:10px;--edge:8px;--ui:"Source Sans 3", "Segoe UI", system-ui, sans-serif;--serif:"EB Garamond", Georgia, "Times New Roman", serif;--stud:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10'%3E%3Cpath d='M5 .8L9.2 5L5 9.2L.8 5Z' fill='%23cda453' stroke='%237d5f27'/%3E%3Cpath d='M5 3.5L6.5 5L5 6.5L3.5 5Z' fill='%2316110c'/%3E%3C/svg%3E")}*{box-sizing:border-box}[hidden]{display:none!important}html,body{background:var(--ink);height:100%;color:var(--parchment);font-family:var(--ui);font-size:var(--body);margin:0}body{-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;-webkit-font-smoothing:antialiased;overflow:hidden}#app{position:fixed;inset:0}canvas{touch-action:none;display:block}button{font:inherit;color:inherit}::selection{background:var(--brass);color:var(--ink)}.icon{fill:currentColor;flex:none;width:1em;height:1em;display:block}.icon.tone{stroke:#16110ceb;stroke-width:26px;paint-order:stroke;stroke-linejoin:round;filter:drop-shadow(0 1px 1px #0000008c)}.tone-food{fill:url(#tone-food)}.tone-wood{fill:url(#tone-wood)}.tone-stone{fill:url(#tone-stone)}.tone-gold{fill:url(#tone-gold)}.tone-population{fill:url(#tone-population)}.tone-brass{fill:url(#tone-brass)}.sprite{pointer-events:none;flex:none;justify-content:center;align-items:center;display:flex}.sprite-art{image-rendering:auto;background-repeat:no-repeat}.t-display{font-family:var(--serif);font-weight:600;font-size:var(--display);color:var(--brass)}.t-title{font-family:var(--serif);font-weight:600;font-size:var(--title);color:var(--parchment);margin:0}.t-heading{font-family:var(--serif);font-weight:600;font-size:var(--heading);color:var(--brass);margin:0}.t-body{font-size:var(--body);color:var(--parchment)}.t-label{font-size:var(--small);color:var(--parchment-dim);font-weight:600}.t-caption{font-size:var(--caption);color:var(--parchment-dim)}.t-danger{color:var(--red-bright)}.t-success{color:var(--steppe)}.spaced{text-transform:uppercase;letter-spacing:.12em}.frame{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r-panel);position:relative;box-shadow:0 10px 28px #00000080}.frame:before{content:"";border-radius:calc(var(--r-panel) - 4px);pointer-events:none;border:1px solid #cda45347;position:absolute;inset:4px}.frame:after{content:"";pointer-events:none;background:var(--stud) 0 0 / 10px no-repeat, var(--stud) 100% 0 / 10px no-repeat, var(--stud) 0 100% / 10px no-repeat, var(--stud) 100% 100% / 10px no-repeat;position:absolute;inset:-1px}.inset{background:var(--surface-sunken);border:1px solid var(--border-quiet);border-radius:var(--r-control)}.ornament{flex:none;display:block}.btn{justify-content:center;align-items:center;gap:var(--s-xs);height:44px;padding:0 var(--s-l);border-radius:var(--r-control);border:1px solid var(--border);background:var(--surface-sunken);color:var(--parchment);font-weight:600;font-size:var(--body);cursor:pointer;white-space:nowrap;transition:transform .12s,filter .12s,border-color .12s,background .12s;display:inline-flex;position:relative}.btn .icon{width:20px;height:20px}.btn:hover:not(:disabled){border-color:var(--brass-bright);background:#cda4531f}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.45;cursor:default}.btn:focus-visible,.act:focus-visible,.icon-btn:focus-visible,.seg button:focus-visible{outline:2px solid var(--brass-bright);outline-offset:2px}.btn.primary{color:var(--ink);text-shadow:0 1px #ffffff40;background:linear-gradient(#e6c377,#c39646);border-color:#f0d38f;font-weight:700;box-shadow:inset 0 1px #fff6,0 3px 10px #00000073}.btn.primary:hover:not(:disabled){filter:brightness(1.08);background:linear-gradient(#e6c377,#c39646)}.btn.danger{border-color:var(--red-bright);color:var(--parchment);background:linear-gradient(#b8392a,#8a2419)}.btn.large{height:52px;font-size:var(--body);padding:0 var(--s-xl);font-weight:700}.btn.small{height:36px;font-size:var(--small);padding:0 var(--s-m)}.btn.quiet{color:var(--parchment-dim);background:0 0;border-color:#0000}.btn.quiet:hover:not(:disabled){color:var(--parchment);background:#f1e6cc0f;border-color:#0000}.btn.block{width:100%}.icon-btn{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-control);width:44px;height:44px;color:var(--parchment);cursor:pointer;justify-content:center;align-items:center;padding:0;transition:border-color .12s,color .12s,transform .12s;display:inline-flex;position:relative;box-shadow:0 4px 12px #0006}.icon-btn .icon{width:22px;height:22px}.icon-btn:hover{border-color:var(--brass-bright);color:var(--brass-bright)}.icon-btn:active{transform:scale(.95)}.icon-btn.on{color:var(--brass-bright);border-color:var(--brass-bright)}.icon-btn .text{font-weight:700;font-size:var(--body)}.badge{background:var(--brass);min-width:20px;height:20px;color:var(--ink);font-size:var(--caption);text-align:center;pointer-events:none;font-variant-numeric:tabular-nums;border-radius:10px;padding:0 6px;font-weight:700;line-height:20px;position:absolute;top:-6px;right:-6px;box-shadow:0 1px 3px #0009}.seg{background:var(--surface-sunken);border:1px solid var(--border-quiet);border-radius:var(--r-control);gap:2px;padding:2px;display:flex}.seg button{min-width:0;height:38px;padding:0 var(--s-s);color:var(--parchment-dim);font-weight:600;font-size:var(--small);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:0;border-radius:3px;flex:1 1 0;transition:background .12s,color .12s;overflow:hidden}.seg button:hover:not(.on):not(:disabled){color:var(--parchment);background:#f1e6cc0f}.seg button.on{color:var(--ink);background:linear-gradient(#e2bf72,#c39646)}.seg button:disabled{opacity:.4;cursor:default}.seg.small button{height:30px;font-size:var(--caption)}.field{width:100%;height:46px;padding:0 var(--s-s);background:var(--surface-sunken);border:1px solid var(--border-quiet);border-radius:var(--r-control);color:var(--parchment);font:inherit;font-size:var(--body);-webkit-user-select:text;user-select:text;transition:border-color .12s}.field:focus{border-color:var(--brass);outline:none}.field::placeholder{color:#c4b59180}.settings{gap:var(--s-m);text-align:left;flex-direction:column;width:100%;display:flex}.setting{gap:8px var(--s-m);grid-template-columns:1fr auto;align-items:center;display:grid}.setting .seg{min-width:150px}.setting .level{width:100%;accent-color:var(--brass);grid-column:1/-1}.setting .level:disabled{opacity:.4}.setting .hint{font-size:var(--small);color:var(--parchment-dim);grid-column:1/-1;line-height:1.35}.setting .seg.graphics{grid-column:1/-1}.meter{background:var(--track);border-radius:3px;height:6px;overflow:hidden}.meter>i{background:var(--steppe);border-radius:3px;width:0;height:100%;transition:width .3s;display:block}.meter.low>i{background:var(--red-bright)}.meter.brass>i{background:var(--brass)}.scrim{background:var(--scrim);-webkit-backdrop-filter:blur(6px);padding:var(--s-m);z-index:20;justify-content:center;align-items:center;animation:.22s appear;display:flex;position:absolute;inset:0}.dialog{width:min(440px,100%);padding:var(--s-xl) var(--s-xl) var(--s-l);align-items:center;gap:var(--s-s);text-align:center;flex-direction:column;animation:.25s rise;display:flex}.dialog .seal{width:56px;height:56px;color:var(--brass);margin-bottom:-4px}.dialog .seal.defeat{color:var(--red-bright)}.dialog p{color:var(--parchment-dim);font-size:var(--body);white-space:pre-line;margin:0;line-height:1.4}.dialog .buttons{gap:var(--s-xs);width:100%;margin-top:var(--s-xs);flex-direction:column;display:flex}.dialog .stats{gap:4px var(--s-l);width:100%;font-size:var(--small);color:var(--parchment-dim);text-align:left;grid-template-columns:1fr auto;display:grid}.dialog .stats b{color:var(--parchment);text-align:right;font-variant-numeric:tabular-nums}@keyframes appear{0%{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(12px)}}.screen{padding:var(--s-l) var(--s-m);flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0;overflow:auto}.backdrop{z-index:-1;background-color:#2e5b2f;background-size:256px;position:fixed;inset:0}.backdrop:after{content:"";background:radial-gradient(at 50% 45%,#16110c59,#16110ce0 75%),#16110c4d;position:absolute;inset:0}.title-layout{justify-content:center;align-items:center;gap:56px;width:100%;max-width:1100px;display:flex}.title-art{filter:drop-shadow(0 18px 18px #0000008c);flex:none;align-items:flex-end;display:flex;position:relative}.title-art .sprite+.sprite{margin-left:-14px}.title-column{align-items:center;gap:var(--s-xs);flex-direction:column;width:min(420px,100%);display:flex}.logo{font-family:var(--serif);letter-spacing:.14em;color:var(--brass);text-shadow:0 2px 6px #000000bf,0 0 30px #0006;margin:0;padding-left:.14em;font-size:64px;font-weight:600;line-height:1}.tagline{font-family:var(--serif);color:var(--parchment);margin-bottom:var(--s-l);text-shadow:0 1px 4px #000;font-size:20px}.menu-buttons{gap:var(--s-xs);flex-direction:column;width:100%;display:flex}.menu-buttons .btn{width:100%}.menu-row{gap:var(--s-xs);width:100%;margin-top:var(--s-xs);display:flex}.menu-row .btn{flex:1}.credits{bottom:var(--s-s);text-align:center;padding:0 var(--s-m);position:absolute;left:0;right:0}.credits a{color:inherit}.sheet{width:min(640px,100%);padding:var(--s-l) var(--s-xl) var(--s-xl);gap:var(--s-m);flex-direction:column;animation:.25s rise;display:flex}.sheet-head{align-items:center;gap:var(--s-s);display:flex}.sheet-head .t-title{flex:1}.sheet-head+.ornament{margin:-6px auto 0}.option{flex-direction:column;gap:6px;display:flex}.option>.t-label{justify-content:space-between;gap:var(--s-s);display:flex}.option .hint{font-size:var(--small);color:var(--parchment-dim);min-height:1.35em;line-height:1.35}.row{gap:var(--s-xs);align-items:center;display:flex}.row>.grow{flex:1}.lands{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:6px;display:grid}.land{border-radius:var(--r-control);border:1px solid var(--border-quiet);height:54px;color:var(--parchment);cursor:pointer;font-weight:600;font-size:var(--small);text-shadow:0 1px 3px #000;background-position:50%;background-size:cover;align-items:flex-end;padding:6px 8px;transition:border-color .12s;display:flex;position:relative;overflow:hidden}.land:before{content:"";background:linear-gradient(#0000 30%,#000000a6);position:absolute;inset:0}.land span{position:relative}.land.on{border:2px solid var(--brass-bright);box-shadow:0 0 0 1px var(--brass-deep)}.land:hover:not(.on){border-color:var(--brass)}details.more{border-top:1px solid var(--border-quiet);padding-top:var(--s-s)}details.more summary{cursor:pointer;color:var(--parchment-dim);font-size:var(--small);align-items:center;gap:6px;font-weight:600;list-style:none;display:flex}details.more summary:before{content:"▸";transition:transform .15s}details.more[open] summary:before{transform:rotate(90deg)}details.more>.option{margin-top:var(--s-s)}.notice{gap:var(--s-s);padding:var(--s-s) var(--s-m);align-items:center;display:flex}.notice .icon{width:24px;height:24px;color:var(--brass)}.notice>div{flex:1}.room-code{justify-content:space-between;align-items:center;gap:var(--s-s);padding:var(--s-s) var(--s-m);display:flex}.room-code b{font-family:var(--serif);letter-spacing:.08em;color:var(--brass-bright);font-size:28px}.members{flex-direction:column;gap:6px;display:flex}.member{align-items:center;gap:var(--s-s);padding:var(--s-xs) var(--s-s);min-height:52px;display:flex}.member .swatch{border-radius:2px;flex:none;width:14px;height:30px;box-shadow:inset 0 0 0 1px #0006}.member .name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.member .tag{font-size:var(--caption);color:var(--ink);background:var(--brass);border-radius:3px;padding:1px 6px;font-weight:700}.member .state{font-size:var(--small);color:var(--parchment-dim);align-items:center;gap:4px;font-weight:600;display:flex}.member .state.ready{color:var(--steppe)}.member .state .icon{width:18px;height:18px}.member.me{border-color:var(--border)}.member .host{width:18px;height:18px;color:var(--brass)}.summary{flex-wrap:wrap;gap:6px;display:flex}.summary span{background:var(--surface-sunken);border:1px solid var(--border-quiet);font-size:var(--small);border-radius:12px;padding:4px 10px;font-weight:600}.loading{align-items:center;gap:var(--s-m);flex-direction:column;display:flex}.spinner{border:3px solid var(--track);border-top-color:var(--brass);border-radius:50%;width:40px;height:40px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.hud{pointer-events:none;font-variant-numeric:tabular-nums;position:absolute;inset:0}.hud .live{pointer-events:auto}.topbar{top:max(var(--edge), env(safe-area-inset-top));left:max(var(--edge), env(safe-area-inset-left));align-items:center;gap:var(--s-m);height:50px;padding:0 var(--s-m) 0 var(--s-s);display:flex;position:absolute}.res{cursor:default;align-items:center;gap:6px;display:flex;position:relative}.res>.icon{width:28px;height:28px}.res .numbers{flex-direction:column;min-width:38px;line-height:1.05;display:flex}.res .amount{font-weight:700;font-size:var(--body);color:var(--parchment)}.res .amount.short{color:var(--red-bright)}.res .workers{font-size:var(--caption);color:var(--parchment-dim);align-items:center;gap:2px;font-weight:600;display:flex}.res .workers .icon{width:10px;height:10px}.res .amount.bump{animation:.4s bump}@keyframes bump{30%{color:var(--brass-bright);transform:translateY(-1px)}}.rule{background:var(--border-quiet);flex:none;width:1px;height:28px}.clock{font-weight:600;font-size:var(--small);color:var(--parchment-dim);align-items:center;gap:6px;display:flex}.clock .icon{width:16px;height:16px;color:var(--brass)}.corner{top:max(var(--edge), env(safe-area-inset-top));right:max(var(--edge), env(safe-area-inset-right));gap:var(--s-xs);align-items:center;display:flex;position:absolute}.corner .icon-btn{width:44px;height:44px}.corner-column{top:calc(max(var(--edge), env(safe-area-inset-top)) + 58px);right:max(var(--edge), env(safe-area-inset-right));align-items:flex-end;gap:var(--s-xs);flex-direction:column;max-width:34%;display:flex;position:absolute}.netbanner{align-items:center;gap:var(--s-s);padding:var(--s-xs) var(--s-m);min-width:220px;display:flex}.netbanner .icon{width:22px;height:22px;color:var(--amber);animation:1.6s linear infinite spin}.netbanner .meter{margin-top:6px}.quick{top:calc(max(var(--edge), env(safe-area-inset-top)) + 58px);left:max(var(--edge), env(safe-area-inset-left));gap:var(--s-xs);align-items:flex-start;display:flex;position:absolute}.quick>div{gap:var(--s-xs);flex-direction:column;display:flex}.quick .slots{gap:var(--s-xxs)}.qbtn{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-control);cursor:pointer;justify-content:center;align-items:center;width:46px;height:46px;padding:0;transition:border-color .12s,transform .12s;display:flex;position:relative;box-shadow:0 4px 12px #0006}.qbtn:hover{border-color:var(--brass-bright)}.qbtn:active{transform:scale(.94)}.slot{background:var(--surface);border:1px solid var(--border-quiet);border-radius:var(--r-control);cursor:pointer;width:40px;height:40px;color:var(--parchment-dim);flex-direction:column;justify-content:center;align-items:center;padding:0;line-height:1;transition:border-color .12s;display:flex}.slot b{font-size:var(--body)}.slot small{font-size:var(--caption);color:var(--brass);font-weight:700}.slot.full{border-color:var(--border);color:var(--parchment)}.slot:hover{border-color:var(--brass-bright)}.feed{top:calc(max(var(--edge), env(safe-area-inset-top)) + 62px);flex-direction:column;align-items:center;gap:6px;width:min(460px,100% - 260px);display:flex;position:absolute;left:50%;transform:translate(-50%)}.toast{align-items:center;gap:var(--s-xs);padding:7px var(--s-m);border:1px solid var(--border);font-size:var(--small);text-align:center;background:#16110ce6;border-radius:18px;font-weight:600;animation:4.2s forwards toast;display:flex;box-shadow:0 4px 14px #00000080}.toast .icon{width:16px;height:16px;color:var(--brass)}.toast.bad{border-color:#e0614bb3}.toast.bad .icon{color:var(--red-bright)}@keyframes toast{0%{opacity:0;transform:translateY(-6px)}6%,85%{opacity:1;transform:none}to{opacity:0}}.tipbar{gap:var(--s-s);padding:var(--s-s) var(--s-m);cursor:pointer;align-items:center;max-width:460px;animation:.25s rise;display:flex}.tipbar .icon{width:22px;height:22px;color:var(--brass)}.panel{left:max(var(--edge), env(safe-area-inset-left));bottom:max(var(--edge), env(safe-area-inset-bottom));align-items:center;gap:var(--s-s);padding:var(--s-s) var(--s-m) var(--s-s) var(--s-s);max-width:calc(100% - var(--minimap,210px) - 3 * var(--edge));animation:.22s rise;display:flex;position:absolute}.info{align-items:center;gap:var(--s-s);flex:0 auto;width:290px;min-width:210px;display:flex}.portrait{background:var(--surface-sunken);border:1px solid var(--brass-deep);border-radius:var(--r-control);flex:none;justify-content:center;align-items:center;width:64px;height:64px;display:flex;position:relative}.portrait .count{font-size:var(--caption);color:var(--parchment);text-shadow:0 1px 2px #000;font-weight:700;position:absolute;bottom:2px;right:4px}.texts{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.sel-title{font-family:var(--serif);color:var(--parchment);white-space:nowrap;text-overflow:ellipsis;font-size:19px;font-weight:600;line-height:1.1;overflow:hidden}.sel-sub{font-size:var(--small);color:var(--parchment-dim);-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.25;display:-webkit-box;overflow:hidden}.chips{flex-wrap:wrap;gap:3px 10px;display:flex}.chip{font-size:var(--caption);color:var(--parchment);cursor:default;align-items:center;gap:4px;font-weight:700;display:inline-flex}.chip .icon{width:14px;height:14px;color:var(--brass)}.chip.low{color:var(--red-bright)}.texts .meter{margin-top:3px}.kinds{flex-wrap:wrap;gap:4px;max-width:290px;display:flex}.kind{cursor:pointer;justify-content:center;align-items:center;width:36px;height:36px;padding:0;display:flex;position:relative}.kind:hover{border-color:var(--brass)}.kind small{text-shadow:0 1px 2px #000;font-size:11px;font-weight:700;position:absolute;bottom:0;right:2px}.vrule{background:var(--border-quiet);flex:none;align-self:stretch;width:1px}.commands{gap:var(--s-xs);flex-direction:column;min-width:0;display:flex}.commands .seg{align-self:flex-start;min-width:280px}.grid{grid-template-columns:repeat(var(--cols,6), 72px);gap:4px;display:grid}.act{background:var(--surface-sunken);border:1px solid var(--border-quiet);border-radius:var(--r-control);cursor:pointer;width:72px;height:72px;color:var(--parchment);flex-direction:column;align-items:center;padding:4px 2px 3px;transition:border-color .12s,background .12s,transform .1s;display:flex;position:relative}.act:hover{border-color:var(--brass);background:#cda4531a}.act:active:not(.off){background:#cda4534d;transform:scale(.94)}.act .pic{flex:none;justify-content:center;align-items:center;width:38px;height:36px;display:flex}.act .pic .icon{width:28px;height:28px;color:var(--parchment)}.act .name{white-space:nowrap;text-overflow:ellipsis;max-width:100%;margin-top:1px;padding:0 2px;font-size:11.5px;font-weight:600;line-height:1.15;overflow:hidden}.act .cost{gap:4px;margin-top:auto;font-size:11px;font-weight:700;display:flex}.act .cost span{align-items:center;gap:1px;display:inline-flex}.act .cost .icon{stroke-width:34px;width:12px;height:12px}.act .cost .short{color:var(--red-bright)}.act .badge{min-width:18px;height:18px;font-size:11px;line-height:18px;top:3px;right:3px}.act .state{width:14px;height:14px;color:var(--parchment-dim);position:absolute;top:4px;left:4px}.act .state.working{color:var(--brass);animation:2.4s linear infinite spin}.act .key{color:#f1e6cc6b;font-size:10px;font-weight:700;position:absolute;top:3px;left:4px}.act:has(.state) .key{display:none}.act.off .pic,.act.off .name{opacity:.42}.act.current{border:2px solid var(--brass);background:#7d5f2773}.act.current .name,.act.current .pic .icon{color:var(--brass-bright)}.act.confirm .pic .icon{color:var(--steppe)}.act.dismiss .pic .icon{color:var(--red-bright)}.portrait .mode-icon{width:36px;height:36px;color:var(--brass-bright)}.paused{padding:var(--s-m) var(--s-xl);font-family:var(--serif);font-size:var(--title);letter-spacing:.16em;color:var(--brass-bright);position:absolute;top:40%;left:50%;transform:translate(-50%,-50%)}.mode{flex-direction:column;gap:4px;max-width:320px;display:flex}.mode .t-label{line-height:1.3}.tooltip{z-index:10;width:max-content;max-width:300px;padding:var(--s-s) var(--s-m);pointer-events:none;flex-direction:column;gap:5px;animation:.12s appear;display:flex;position:absolute}.tooltip .head{justify-content:space-between;gap:var(--s-m);align-items:baseline;display:flex}.tooltip b{font-size:var(--body)}.tooltip kbd{font:inherit;font-size:var(--caption);color:var(--brass-bright);border:1px solid var(--brass-deep);border-radius:3px;padding:0 5px;font-weight:700}.tooltip .detail{font-size:var(--small);color:var(--parchment-dim);line-height:1.35}.tooltip .cost{gap:var(--s-s);font-weight:700;font-size:var(--small);display:flex}.tooltip .cost span{align-items:center;gap:4px;display:inline-flex}.tooltip .cost .icon{width:16px;height:16px}.tooltip .cost .short{color:var(--red-bright)}.tooltip .reason{font-size:var(--small);color:var(--red-bright);font-weight:600}.tooltip .reason.working{color:var(--brass)}.minimap{right:max(var(--edge), env(safe-area-inset-right));bottom:max(var(--edge), env(safe-area-inset-bottom));border-radius:6px;padding:5px;position:absolute}.minimap canvas{cursor:pointer;image-rendering:pixelated;border-radius:2px;display:block}.minimap:after{inset:-2px}.selbox{pointer-events:none;background:#66ff661f;border:2px solid #66ff66e6;display:none;position:absolute}.keys{right:calc(var(--minimap,210px) + 2 * var(--edge) + 6px);bottom:var(--edge);font-size:var(--caption);color:#f1e6cc8c;text-shadow:0 1px 2px #000;pointer-events:none;text-align:right;max-width:260px;position:absolute}@media (max-width:1100px),(max-height:640px){:root{--edge:6px}.grid{grid-template-columns:repeat(var(--cols,6), 62px)}.act{width:62px;height:62px}.act .pic{height:30px}.act .pic .icon{width:24px;height:24px}.act .name{font-size:10.5px}.act .key{display:none}.info{width:230px}.keys{display:none}}@media (max-width:760px),(max-height:480px){.topbar{gap:var(--s-s);height:42px;padding:0 var(--s-s) 0 var(--s-xs)}.res>.icon{width:22px;height:22px}.res .numbers{min-width:30px}.res .amount{font-size:15px}.clock{display:none}.corner .icon-btn,.icon-btn{width:40px;height:40px}.quick,.corner-column{top:calc(max(var(--edge), env(safe-area-inset-top)) + 50px)}.qbtn{width:40px;height:40px}.slot{width:36px;height:36px}.panel{padding:var(--s-xs);gap:var(--s-xs)}.info{width:170px;min-width:140px}.portrait{width:48px;height:48px}.sel-title{font-size:16px}.sel-sub{font-size:var(--caption);-webkit-line-clamp:1}.kinds{display:none}.commands .seg{min-width:0}.grid{scrollbar-width:none;max-width:calc(100vw - 400px);display:flex;overflow-x:auto}.act{flex:none;width:60px;height:58px;padding:3px 1px 2px}.act .name{display:none}.act .pic{height:28px}.act .cost{flex-wrap:wrap;justify-content:center;gap:0 3px;font-size:10px;line-height:1.15}.act .cost .icon{width:10px;height:10px}.feed{width:min(360px,100% - 200px)}.logo{font-size:44px}.title-art{display:none}}@media (max-height:420px){.info .chips{display:none}}@media (max-width:560px){.res .workers{display:none}.topbar{gap:8px}.res>.icon{width:18px;height:18px}.res .amount{font-size:13px}.res .numbers{min-width:0}.panel{left:var(--edge);right:var(--edge);bottom:calc(var(--minimap,120px) + 2 * var(--edge));flex-wrap:wrap;max-width:none}.grid{max-width:calc(100vw - 40px)}.info{width:100%}.vrule{display:none}.sheet{padding:var(--s-m)}}.qbtn.plan .icon{width:26px;height:26px;color:var(--brass)}.qbtn.plan.on{border-color:var(--brass-bright);background:#7d5f278c}.planning .hud .panel,.planning .hud .slots,.planning .keys{display:none}.planner{pointer-events:none;z-index:5;--timeline:204px;--side:330px;position:absolute;inset:0}.planner .live{pointer-events:auto}.planner .icon-btn.small{width:34px;height:34px;box-shadow:none}.planner .icon-btn.small .icon{width:18px;height:18px}.planner .field.small{height:36px;font-size:var(--small)}.planner select.field{appearance:none;padding-right:var(--s-s);cursor:pointer}.planner .btn.on{border-color:var(--brass-bright);color:var(--brass-bright);background:#cda45338}.planner .grow{flex:1;min-width:0}.planner p{margin:0}.nato{flex:none;display:block;overflow:visible}.pl-side{left:calc(max(var(--edge), env(safe-area-inset-left)) + 54px);top:calc(max(var(--edge), env(safe-area-inset-top)) + 58px);bottom:calc(var(--edge) + var(--timeline) + 8px);width:var(--side);gap:var(--s-s);padding:var(--s-s);flex-direction:column;display:flex;position:absolute}.pl-timeline{left:max(var(--edge), env(safe-area-inset-left));bottom:max(var(--edge), env(safe-area-inset-bottom));right:calc(var(--minimap,210px) + 2 * var(--edge));height:var(--timeline);padding:var(--s-s) var(--s-m);position:absolute}.pl-inspector{right:max(var(--edge), env(safe-area-inset-right));top:calc(max(var(--edge), env(safe-area-inset-top)) + 58px);width:344px;max-height:calc(100% - var(--minimap,210px) - 80px);padding:var(--s-m);scrollbar-width:thin;position:absolute;overflow-y:auto}.pl-body{scrollbar-width:thin;min-height:0;margin:0 calc(-1 * var(--s-xs));padding:0 var(--s-xs);flex:1;overflow-y:auto}.pl-top{gap:var(--s-xs);flex-direction:column;display:flex}.pl-head{align-items:center;gap:var(--s-xs);display:flex}.pl-head .t-heading{font-size:21px}.pl-seal{width:28px;height:28px;color:var(--brass)}.pl-ops{flex-wrap:wrap;gap:4px;display:flex}.pl-op{border:1px solid var(--border-quiet);border-radius:var(--r-control);background:var(--surface-sunken);max-width:150px;height:30px;color:var(--parchment-dim);font-size:var(--small);cursor:pointer;align-items:center;gap:6px;padding:0 10px;font-weight:600;transition:border-color .12s,color .12s;display:inline-flex}.pl-op span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.pl-op:hover{border-color:var(--brass);color:var(--parchment)}.pl-op.on{border-color:var(--brass-bright);color:var(--parchment);background:#cda45324}.pl-op.add{justify-content:center;width:30px;padding:0}.pl-op.add .icon{width:14px;height:14px;color:var(--brass)}.dot{border:1.5px solid var(--parchment-dim);border-radius:50%;flex:none;width:8px;height:8px}.dot.running{background:var(--steppe);border-color:var(--steppe);animation:1.6s infinite glow;box-shadow:0 0 0 3px #86b25a40}.dot.holding{background:var(--brass);border-color:var(--brass)}.dot.done{background:var(--parchment-dim)}.dot.cancelled{border-color:var(--red-bright)}@keyframes glow{50%{box-shadow:0 0 0 5px #86b25a0d}}.pl-namerow{align-items:center;gap:6px;display:flex}.pl-namerow .field{min-width:0;font-family:var(--serif);flex:1;font-size:17px;font-weight:600}.pl-status{border:1px solid var(--border-quiet);text-transform:uppercase;letter-spacing:.06em;height:24px;color:var(--parchment-dim);border-radius:12px;flex:none;padding:0 8px;font-size:11px;font-weight:700;line-height:22px}.pl-status.running{color:var(--steppe);border-color:#86b25a99}.pl-status.holding{color:var(--brass-bright);border-color:var(--border)}.pl-status.cancelled{color:var(--red-bright);border-color:#e0614b99}.pl-status.changed{color:var(--amber);border-color:#e7a93c99}.pl-check{align-items:center;gap:var(--s-xs);font-size:var(--small);color:var(--parchment-dim);cursor:pointer;display:flex}.pl-check input{accent-color:var(--brass);width:16px;height:16px;margin:0}.pl-section{gap:var(--s-xs);flex-direction:column;display:flex}.pl-title{font-size:var(--caption);text-transform:uppercase;letter-spacing:.12em;color:var(--parchment-dim);align-items:center;gap:6px;padding-top:2px;font-weight:700;display:flex}.pl-title .icon{width:16px;height:16px;color:var(--brass)}.pl-title b{color:var(--brass);letter-spacing:0;margin-left:auto}.pl-list{flex-direction:column;gap:6px;display:flex}.pl-empty{font-size:var(--small);color:var(--parchment-dim);padding:var(--s-xs) 0;font-style:italic;line-height:1.35}.pl-hint{line-height:1.3}.pl-add{justify-content:flex-start}.pl-add.quiet{border-color:var(--border-quiet);color:var(--parchment)}.pl-add .icon{width:16px;height:16px;color:var(--brass)}.pl-row{align-items:center;gap:4px var(--s-s);padding:var(--s-xs) var(--s-s);border:1px solid var(--border-quiet);border-left:3px solid var(--c);border-radius:var(--r-control);background:var(--surface-sunken);cursor:pointer;grid-template-columns:auto 1fr auto;transition:border-color .12s,background .12s;display:grid}.pl-row:hover{background:#f1e6cc0a}.pl-row.on{border-color:var(--c);background:#cda45314;border-left-width:3px}.pl-rowtext{flex-direction:column;gap:3px;min-width:0;display:flex}.pl-name{font-family:var(--serif);white-space:nowrap;text-overflow:ellipsis;font-size:16px;font-weight:600;overflow:hidden}.pl-kinds{flex-wrap:wrap;gap:2px 8px;display:flex}.pl-kinds.wide{flex-direction:column;gap:4px}.pl-kind{font-size:var(--caption);color:var(--parchment);align-items:center;gap:2px;font-weight:700;display:inline-flex}.pl-kinds.wide .pl-kind{gap:var(--s-xs);font-size:var(--small);font-weight:600}.pl-count{text-align:right;font-variant-numeric:tabular-nums;line-height:1}.pl-count b{font-size:18px}.pl-count small{font-size:var(--caption);color:var(--parchment-dim)}.pl-rowedit{grid-column:1/-1;align-items:center;gap:6px;padding-top:4px;display:flex}.pl-rowedit .field{flex:1;min-width:0}.pl-rowedit select.field{flex:0 120px}.pl-actions{flex-wrap:wrap;gap:6px;display:flex}.pl-side>.pl-actions,.pl-sheet>.pl-actions{border-top:1px solid var(--border-quiet);padding-top:var(--s-s)}.pl-actions>.btn{flex:auto}.pl-actions>.btn.primary{flex-basis:100%}.pl-actions>.pl-actions{flex:100%}.pl-actions .icon{width:18px;height:18px}.btn.ready:not(:disabled){border-color:var(--amber);color:var(--amber);animation:1.2s infinite ready}@keyframes ready{50%{box-shadow:0 0 0 4px #e7a93c2e}}.pl-progress{flex:100%;align-items:center;gap:4px;padding:2px 0;display:flex}.pl-progress .step{width:22px;height:22px;font-size:var(--caption);border:1.5px solid var(--border-quiet);color:var(--parchment-dim);border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.pl-progress .step.done{background:var(--steppe);border-color:var(--steppe);color:var(--ink)}.pl-progress .step.now{background:var(--brass);border-color:var(--brass-bright);color:var(--ink);animation:1.4s infinite ready}.pl-progress .t-caption{margin-left:6px}.pl-phases{height:100%}.pl-cards{gap:var(--s-xs);scrollbar-width:thin;flex:1;align-items:stretch;min-height:0;padding-bottom:4px;display:flex;overflow:auto hidden}.pl-card{width:256px;padding:var(--s-xs);border:1px solid var(--border-quiet);background:var(--surface-sunken);scrollbar-width:none;border-radius:8px;flex-direction:column;flex:none;gap:6px;transition:border-color .2s;display:flex;overflow-y:auto}.pl-card.now{border-color:var(--brass);box-shadow:inset 0 0 0 1px #eacb8259}.pl-card.done{border-color:#86b25a8c}.pl-card.done .pl-tasks,.pl-card.later .pl-tasks{opacity:.8}.pl-card.add{width:150px;color:var(--parchment-dim);cursor:pointer;font-size:var(--small);border-style:dashed;justify-content:center;align-items:center;font-weight:600}.pl-card.add:hover{border-color:var(--brass);color:var(--parchment)}.pl-card.add .icon{width:22px;height:22px;color:var(--brass)}.pl-cardhead{align-items:center;gap:6px;display:flex}.pl-cardhead .num{background:var(--brass);width:22px;height:22px;color:var(--ink);font-size:var(--caption);border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.pl-card.done .num{background:var(--steppe)}.pl-cardname{font-family:var(--serif);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:16px;font-weight:600;overflow:hidden}.pl-cardtools{opacity:.45;gap:0;transition:opacity .12s;display:flex}.pl-card:hover .pl-cardtools,.compact .pl-cardtools{opacity:1}.mini{width:24px;height:24px;color:var(--parchment-dim);cursor:pointer;background:0 0;border:0;border-radius:3px;justify-content:center;align-items:center;padding:0;display:inline-flex}.mini:hover{color:var(--brass-bright);background:#f1e6cc0f}.mini .icon{width:14px;height:14px}.pl-trigger{border:1px solid var(--border-quiet);height:26px;color:var(--parchment);font-size:var(--caption);cursor:pointer;background:#00000040;border-radius:13px;align-self:flex-start;align-items:center;gap:6px;max-width:100%;padding:0 10px;font-weight:700;display:inline-flex}.pl-trigger span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.pl-trigger .icon{width:13px;height:13px;color:var(--brass)}.pl-trigger.signal{border-color:#e7a93c99}.pl-trigger.signal .icon{color:var(--amber)}.pl-trigger:hover{border-color:var(--brass)}.pl-triggeredit{border-radius:var(--r-control);background:#00000040;flex-direction:column;gap:6px;padding:6px;display:flex}.pl-triggers{flex-direction:column}.pl-triggers button{text-align:left;flex:none;height:30px}.planner .pl-popover{gap:var(--s-xs);width:260px;padding:var(--s-s);z-index:2;flex-direction:column;display:flex;position:absolute}.pl-popover .pl-triggeredit{background:0 0;padding:0}.pl-trigger.open{border-color:var(--brass-bright);background:#cda4532e}.pl-inline{font-size:var(--small);color:var(--parchment-dim);align-items:center;gap:6px;font-weight:600;display:flex}.pl-inline .field{flex:none;width:84px}.pl-tasks{flex-direction:column;gap:4px;display:flex}.pl-task{border:1px solid var(--border-quiet);border-left:3px solid var(--c);border-radius:var(--r-control);background:var(--ink-raised);width:100%;min-height:34px;color:var(--parchment);cursor:pointer;font-size:var(--small);text-align:left;align-items:center;gap:6px;padding:3px 6px;font-weight:600;transition:border-color .12s,background .12s;display:flex}.pl-task:hover{background:var(--ink-high)}.pl-task.on{border-color:var(--c);background:#cda4531f}.pl-task.missing{border-style:dashed dashed dashed solid}.pl-taskname{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.pl-actionicon{width:16px;height:16px;color:var(--c)}.pl-targeticon{width:14px;height:14px;color:var(--red-bright)}.pl-stage{text-transform:uppercase;letter-spacing:.04em;color:var(--parchment-dim);flex:none;font-size:10.5px;font-weight:700}.pl-stage.moving{color:var(--brass-bright)}.pl-stage.engaging,.pl-stage.lost{color:var(--red-bright)}.pl-stage.holding{color:#9db7ef}.pl-stage.done{color:var(--steppe)}.pl-stage.missing{color:var(--amber)}.pl-addtask{justify-content:flex-start;align-self:stretch;height:30px;padding:0 6px}.pl-addtask .icon{width:14px;height:14px;color:var(--brass)}.pl-menu{border-radius:var(--r-control);background:var(--ink);border:1px solid var(--border);flex-direction:column;gap:2px;padding:4px;display:flex}.pl-menu button{align-items:center;gap:var(--s-xs);height:34px;color:var(--parchment);font-size:var(--small);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:3px;padding:0 6px;font-weight:600;display:flex}.pl-menu button:hover{background:#cda45324}.pl-editor{gap:var(--s-s)}.pl-insphead{align-items:center;gap:var(--s-s);display:flex}.pl-label{font-size:var(--caption);text-transform:uppercase;letter-spacing:.1em;color:var(--parchment-dim);align-items:center;gap:6px;margin-bottom:-4px;font-weight:700;display:flex}.pl-label .icon{width:14px;height:14px;color:var(--brass)}.pl-label b{text-transform:none;letter-spacing:0;color:var(--parchment);font-size:var(--small);margin-left:auto}.pl-actionseg button{flex-direction:column;justify-content:center;align-items:center;gap:3px;height:54px;padding:0 2px;display:flex}.pl-actionseg button .icon{width:20px;height:20px}.pl-actionseg button span{white-space:normal;text-align:center;font-size:10.5px;line-height:1.1}.pl-formseg button{padding:0 4px}.pl-formseg button:first-child{flex:2.2 1 0}.pl-formseg button .icon{width:20px;height:20px;margin:0 auto}.pl-field{gap:var(--s-xs);padding:var(--s-xs) var(--s-s) var(--s-s);background:var(--surface-sunken);border:1px solid var(--border-quiet);border-radius:var(--r-control);flex-direction:column;display:flex}.pl-field .label,.pl-field .pl-label{margin-bottom:0}.pl-field .row{flex-wrap:nowrap;gap:6px}.pl-field .row .grow{flex:1}.pl-field .btn .icon{width:16px;height:16px}.pl-forecast{padding:var(--s-xs) var(--s-s);border-radius:var(--r-control);border:1px solid var(--border-quiet);flex-direction:column;gap:6px;display:flex}.pl-forecast .row{white-space:nowrap;flex-wrap:nowrap;gap:6px}.pl-forecast b{font-size:15px}.pl-forecast .icon{width:16px;height:16px;color:var(--brass)}.pl-forecast.good{border-color:#86b25a99}.pl-forecast.good b{color:var(--steppe)}.pl-forecast.even{border-color:#e7a93c99}.pl-forecast.even b{color:var(--amber)}.pl-forecast.even .meter>i{background:var(--amber)}.pl-forecast.bad{border-color:#e0614b99}.pl-forecast.bad b{color:var(--red-bright)}p.pl-forecast{font-size:var(--small);color:var(--parchment-dim);flex-direction:row;align-items:center;gap:6px}.pl-drawbar{top:calc(max(var(--edge), env(safe-area-inset-top)) + 62px);align-items:center;gap:var(--s-m);padding:var(--s-s) var(--s-m);width:max-content;max-width:min(620px, calc(100% - 2 * var(--side) - 120px));z-index:2;display:flex;position:absolute;left:50%;transform:translate(-50%)}.pl-drawbar .texts{flex-direction:column;gap:3px;min-width:0;display:flex}.pl-drawtitle{align-items:center;gap:var(--s-xs);min-width:0;display:flex}.pl-drawtitle .sel-title{flex:none;font-size:17px}.pl-drawtitle small{font-size:var(--caption);color:var(--brass-bright);flex:none;font-weight:700}.pl-chip{text-overflow:ellipsis;white-space:nowrap;border:1px solid var(--c);max-width:150px;color:var(--parchment);font-size:var(--caption);border-radius:10px;flex:none;padding:1px 8px;font-weight:700;overflow:hidden}.pl-drawbar .t-caption{-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.3;display:-webkit-box;overflow:hidden}.pl-drawbar .row{flex:none}.pl-drawbar .btn .icon{width:16px;height:16px}.pl-modal{padding:var(--s-m);z-index:3;background:#00000059;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.pl-staff{width:min(480px,100%);max-height:100%;padding:var(--s-l);gap:var(--s-s);flex-direction:column;display:flex;overflow-y:auto}.pl-maneuvers{flex-direction:column;gap:6px;display:flex}.pl-maneuver{padding:var(--s-s) var(--s-m);text-align:left;border:1px solid var(--border-quiet);border-radius:var(--r-control);background:var(--surface-sunken);color:var(--parchment);cursor:pointer;flex-direction:column;gap:2px;transition:border-color .12s,background .12s;display:flex}.pl-maneuver b{font-family:var(--serif);color:var(--brass-bright);font-size:18px;font-weight:600}.pl-maneuver span{font-size:var(--small);color:var(--parchment-dim);line-height:1.35}.pl-maneuver:hover{border-color:var(--brass);background:#cda4531a}.planner.compact{--side:0px}.pl-sheet{left:max(var(--edge), env(safe-area-inset-left));top:calc(max(var(--edge), env(safe-area-inset-top)) + 50px);bottom:max(var(--edge), env(safe-area-inset-bottom));gap:var(--s-xs);width:min(400px,58vw);padding:var(--s-s);flex-direction:column;display:flex;position:absolute}.planner.compact.aiming .pl-sheet{display:none}.pl-tabs button{height:36px}.compact .pl-cards{flex-direction:column;overflow:visible}.compact .pl-card{width:auto;overflow:visible}.compact .pl-card.add{gap:var(--s-xs);flex-direction:row;min-height:56px}.compact .pl-head .t-heading{font-size:18px}.compact .pl-op{height:34px}.compact .pl-task{min-height:42px}.compact .mini{width:34px;height:34px}.compact .pl-drawbar{max-width:calc(100% - 2 * var(--edge));top:calc(max(var(--edge), env(safe-area-inset-top)) + 50px);gap:var(--s-xs) var(--s-s);padding:var(--s-xs) var(--s-s);flex-wrap:wrap}.compact .pl-drawbar .t-label{display:none}@media (max-width:560px){.pl-sheet{left:var(--edge);right:var(--edge);width:auto;height:60vh;top:auto}.planning .minimap{display:none}.compact .pl-drawbar{left:var(--edge);right:var(--edge);width:auto;transform:none}}@media (max-height:420px){.compact .pl-top{flex-flow:wrap;align-items:center}.compact .pl-head{order:2}.compact .pl-head .pl-seal,.compact .pl-head .t-heading,.compact .pl-head .grow{display:none}.compact .pl-ops{flex:1;order:1;min-width:0}.compact .pl-namerow,.compact .pl-check{flex-basis:100%;order:3}.compact .pl-tabs button{height:32px}}@media (max-width:1280px) and (min-width:761px){.planner{--side:300px}.pl-inspector{width:312px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}@font-face{font-family:EB Garamond;src:url(../fonts/EBGaramond-SemiBold.ttf)format("truetype");font-weight:600;font-display:swap}@font-face{font-family:"Source Sans 3";src:url(../fonts/SourceSans3-Regular.ttf)format("truetype");font-weight:400;font-display:swap}@font-face{font-family:"Source Sans 3";src:url(../fonts/SourceSans3-SemiBold.ttf)format("truetype");font-weight:600;font-display:swap}@font-face{font-family:"Source Sans 3";src:url(../fonts/SourceSans3-Bold.ttf)format("truetype");font-weight:700;font-display:swap}
