.buildlesson{position:absolute;inset:0;overflow-y:auto;padding:60px 14px 18px}.buildlesson .brief{background:var(--color-surface);border:1px solid var(--color-border);border-left:2px solid var(--color-accent);border-radius:12px;padding:12px 14px;margin-bottom:12px}.buildlesson .brief .bl{font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-text);margin-bottom:5px}.buildlesson .brief p{margin:0;font-size:13.5px;color:var(--color-ink);line-height:1.4}.buildlesson .buildq{font-size:13px;font-weight:700;margin:0 2px 10px;color:var(--color-muted)}.buildlesson .buildgrid{display:grid;grid-template-columns:1fr;gap:14px;align-items:start}@media(min-width:900px){.buildlesson{padding:60px 20px 22px}.buildlesson .buildgrid{grid-template-columns:minmax(0,1fr) clamp(280px,26vw,320px)}}.buildlesson .buildcanvas{position:relative;width:100%;min-height:clamp(420px,60vh,560px);border:1px solid var(--color-border);border-radius:12px;background:var(--color-ground);overflow:hidden;box-shadow:var(--shadow-pop)}.buildlesson .buildcanvas .buildcanvas-cv{position:absolute;inset:0;width:100%;height:100%;display:block}.buildlesson .buildcanvas .archfilm{position:absolute;inset:0}.buildlesson .buildcanvas .archfilm scenecast-hero{position:absolute;inset:0;display:block;width:100%;height:100%}.buildlesson .buildcanvas .buildcap{position:absolute;top:10px;left:12px;z-index:2;margin:0;font-family:var(--font-mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-text);pointer-events:none}.buildlesson .buildrail{display:flex;flex-direction:column}.buildlesson .palette{display:grid;grid-template-columns:1fr;gap:6px}.buildlesson .comp{display:grid;grid-template-columns:1fr auto;grid-template-areas:"name price" "fb fb";align-items:center;gap:1px 8px;text-align:left;padding:8px 11px;border-radius:10px;background:var(--color-raise);border:1px solid var(--color-border);cursor:pointer;transition:border-color .14s,background .14s;position:relative;color:var(--color-ink);font:inherit}.buildlesson .comp:hover{border-color:var(--color-muted)}.buildlesson .comp.sel{border-color:var(--color-accent);background:var(--color-accent-soft)}.buildlesson .comp .cn{grid-area:name;display:flex;align-items:center;gap:7px;font-size:12.5px;font-weight:700;color:var(--color-ink);min-width:0}.buildlesson .comp .cn{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.buildlesson .comp .ck{font-size:15px;flex:none}.buildlesson .comp .price{grid-area:price;font-family:var(--font-mono);font-size:10px;color:var(--color-faint);white-space:nowrap}.buildlesson .comp .tick{position:absolute;top:7px;right:8px;font-size:11px;color:var(--accent-text);opacity:0}.buildlesson .comp.sel .tick{display:none}.buildlesson .comp.ok{border-color:var(--color-ok)}.buildlesson .comp.soon{border-color:var(--color-warn)}.buildlesson .comp.miss{border-color:var(--color-bad)}.buildlesson .comp .fb{grid-area:fb;font-size:10.5px;line-height:1.3;margin-top:3px;display:none}.buildlesson .comp.show-fb .fb{display:block}.buildlesson .comp.ok .fb{color:var(--color-ok)}.buildlesson .comp.soon .fb{color:var(--color-warn)}.buildlesson .comp.miss .fb{color:var(--color-bad)}.buildlesson .buildbtn{width:100%;margin-top:12px;padding:12px;border-radius:12px;background:var(--color-accent);color:var(--color-accent-ink);font:inherit;font-weight:800;border:0;cursor:pointer}.buildlesson .buildbtn.secondary{background:transparent;color:var(--color-ink);border:1px solid var(--color-border)}.buildlesson .verdict{margin-top:12px;padding:12px 14px;border-radius:12px;font-size:13px;line-height:1.4}.buildlesson .verdict.win{background:var(--ok-soft);border:1px solid color-mix(in srgb,var(--color-ok) 40%,transparent);color:var(--color-ok)}.buildlesson .verdict.retry{background:var(--warn-soft);border:1px solid color-mix(in srgb,var(--color-warn) 40%,transparent);color:var(--color-warn)}.buildlesson .verdict b{color:var(--color-ink)}.buildlesson .builtdiag{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:10px;font-family:var(--font-mono);font-size:11px}.buildlesson .builtdiag .bn{background:var(--color-ground);border:1px solid var(--color-ok);border-radius:7px;padding:4px 9px;color:var(--color-ok)}.buildlesson .builtdiag .ar{color:var(--color-faint)}@media(max-width:640px){.buildlesson .palette{grid-template-columns:1fr 1fr}.buildlesson .comp .cn{font-size:12px}.buildlesson .buildcanvas{min-height:clamp(300px,52vh,440px)}}.decisionlesson{position:absolute;inset:0;overflow-y:auto;padding:60px 14px 22px;max-width:1120px;margin:0 auto}.decisionlesson .scenario{background:var(--color-surface);border:1px solid var(--color-border);border-left:2px solid var(--color-accent);border-radius:12px;padding:14px 16px;margin-bottom:14px}.decisionlesson .scenario .bl{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-text);margin-bottom:6px}.decisionlesson .scenario p{margin:0;font-size:17px;font-weight:700;line-height:1.35;color:var(--color-ink)}.decisionlesson .decisiongrid{display:grid;grid-template-columns:1fr;gap:14px;align-items:start}@media(min-width:900px){.decisionlesson{padding:60px 20px 22px}.decisionlesson .decisiongrid{grid-template-columns:minmax(0,1fr) clamp(280px,26vw,320px);grid-template-areas:"canvas rail" "verdict verdict"}.decisionlesson .decisioncanvas{grid-area:canvas}.decisionlesson .decisionrail{grid-area:rail}.decisionlesson #decision-verdict{grid-area:verdict}.decisionlesson .decisionrail .options{grid-template-columns:1fr}}.decisionlesson .decisioncanvas{position:relative;width:100%;min-height:clamp(400px,58vh,560px);border:1px solid var(--color-border);border-radius:12px;background:var(--color-ground);overflow:hidden;box-shadow:var(--shadow-pop)}.decisionlesson .decisioncanvas .stagewrap{position:absolute;inset:0}.decisionlesson .decisioncanvas scenecast-hero{position:absolute;inset:0;display:block;width:100%;height:100%}.decisionlesson .decisionq{font-size:13px;font-weight:700;margin:0 2px 10px;color:var(--color-ink)}.decisionlesson .decisionq .hint{font-weight:500;color:var(--color-muted)}.decisionlesson .options{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}.decisionlesson .decopt{text-align:left;padding:12px 13px;border-radius:11px;background:var(--color-raise);border:1px solid var(--color-border);cursor:pointer;transition:border-color .14s,background .14s;color:var(--color-ink);font:inherit}.decisionlesson .decopt:hover{border-color:var(--color-accent)}.decisionlesson .decopt.picked{border-color:var(--color-accent);background:var(--color-accent-soft)}.decisionlesson .decopt .ol{font-size:13.5px;font-weight:700}@media(max-width:640px){.decisionlesson .decisioncanvas{min-height:clamp(300px,52vh,440px)}}.decisionlesson .decisionverdict{margin-top:16px}.decisionlesson .dtable{display:flex;flex-direction:column;gap:6px}.decisionlesson .drow{display:grid;grid-template-columns:1fr auto;grid-template-areas:"name cost" "bars cost";align-items:center;gap:2px 12px;padding:10px 12px;border-radius:10px;background:var(--color-surface);border:1px solid var(--color-border)}.decisionlesson .drow .rn{grid-area:name;font-size:13.5px;font-weight:700;color:var(--color-ink);display:flex;align-items:center;gap:8px;flex-wrap:wrap}.decisionlesson .drow .rb{grid-area:bars;font-family:var(--font-mono);font-size:11px;color:var(--color-muted)}.decisionlesson .drow .rb b{color:var(--color-ink);font-weight:700}.decisionlesson .drow .rb i{font-style:normal;color:var(--accent-text)}.decisionlesson .drow .rc{grid-area:cost;font-family:var(--font-mono);font-size:12px;color:var(--color-muted);white-space:nowrap;text-align:right}.decisionlesson .drow.best{border-color:var(--color-ok)}.decisionlesson .drow.picked{border-color:var(--color-accent);background:var(--color-accent-soft)}.decisionlesson .drow .tag{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;padding:2px 7px;border-radius:999px;border:1px solid var(--color-ok);color:var(--color-ok)}.decisionlesson .drow .tag.you{border-color:var(--color-accent);color:var(--accent-text)}.decisionlesson .dteach{margin:14px 2px 4px;font-size:14px;line-height:1.45;color:var(--color-ink);background:var(--warn-soft);border:1px solid color-mix(in srgb,var(--color-warn) 35%,transparent);border-radius:12px;padding:12px 14px}.decisionlesson .dteach b{color:var(--color-ink)}.decisionlesson .dactions{display:flex;gap:10px;margin-top:12px}.decisionlesson .buildbtn{flex:1;padding:12px;border-radius:12px;background:var(--color-accent);color:var(--color-accent-ink);font:inherit;font-weight:800;border:0;cursor:pointer}.decisionlesson .buildbtn.secondary{background:transparent;color:var(--color-ink);border:1px solid var(--color-border)}.construirlesson{position:absolute;inset:0;overflow-y:auto;padding:60px 14px 22px;max-width:1120px;margin:0 auto}.construirlesson .scenario{background:var(--color-surface);border:1px solid var(--color-border);border-left:2px solid var(--color-accent);border-radius:12px;padding:14px 16px;margin-bottom:14px}.construirlesson .scenario .bl{font-family:var(--font-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-text);margin-bottom:6px}.construirlesson .scenario p{margin:0;font-size:16px;font-weight:700;line-height:1.35;color:var(--color-ink)}.construirlesson .construirgrid{display:grid;grid-template-columns:1fr;gap:14px;align-items:start}@media(min-width:900px){.construirlesson{padding:60px 20px 22px}.construirlesson .construirgrid{grid-template-columns:minmax(0,1fr) clamp(288px,27vw,340px);grid-template-areas:"canvas rail" "verdict verdict"}.construirlesson .construircanvas{grid-area:canvas}.construirlesson .construirrail{grid-area:rail}.construirlesson #construct-verdict{grid-area:verdict}.construirlesson .construirrail .conwrap{grid-template-columns:1fr}}.construirlesson .construircanvas{position:relative;width:100%;min-height:clamp(400px,58vh,560px);border:1px solid var(--color-border);border-radius:12px;background:var(--color-ground);overflow:hidden;box-shadow:var(--shadow-pop)}.construirlesson .construircanvas .stagewrap{position:absolute;inset:0}.construirlesson .construircanvas scenecast-hero{position:absolute;inset:0;display:block;width:100%;height:100%}.construirlesson .construirq{font-size:12.5px;font-weight:500;margin:0 2px 12px;color:var(--color-muted)}@media(max-width:640px){.construirlesson .construircanvas{min-height:clamp(300px,52vh,440px)}}.construirlesson .conwrap{display:grid;grid-template-columns:1fr 1.2fr;gap:12px;align-items:start}@media(max-width:560px){.construirlesson .conwrap{grid-template-columns:1fr}}.construirlesson .bl2{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--color-muted);margin-bottom:7px}.construirlesson .conpalette{display:flex;flex-direction:column;gap:8px}.construirlesson .conitem{display:flex;align-items:center;gap:9px;text-align:left;padding:9px 11px;border-radius:10px;background:var(--color-raise);border:1px solid var(--color-border);cursor:grab;transition:border-color .14s,background .14s;color:var(--color-ink);font:inherit}.construirlesson .conitem:hover{border-color:var(--color-muted)}.construirlesson .conitem.sel{border-color:var(--color-accent);background:var(--color-accent-soft)}.construirlesson .conitem .ck{font-size:17px}.construirlesson .conitem .cn{font-size:13px;font-weight:700}.construirlesson .conempty{margin:0;font-size:12.5px;color:var(--color-ok);font-weight:600}.construirlesson .conzones{display:flex;flex-direction:column;gap:8px}.construirlesson .conzone{display:flex;flex-direction:column;gap:6px;text-align:left;padding:10px 12px;border-radius:11px;background:var(--color-surface);border:1px dashed var(--color-border);cursor:pointer;transition:border-color .14s,background .14s;color:var(--color-ink);font:inherit;min-height:58px}.construirlesson .conzone:hover{border-color:var(--color-accent)}.construirlesson .conzone .zl{font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--color-muted)}.construirlesson .conzone .zslot{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.construirlesson .conzone .zhint{font-size:11.5px;color:var(--color-faint)}.construirlesson .conchip{display:inline-flex;align-items:center;gap:6px;padding:4px 9px;border-radius:8px;background:var(--color-ground);border:1px solid var(--color-ok);color:var(--color-ok);font-size:12px;font-weight:700}.construirlesson .conchip .ck{font-size:14px}.construirlesson .confeedback{min-height:16px;margin:10px 2px 0;font-size:12.5px;color:var(--color-warn);font-weight:600}.construirlesson .confeedback:empty{display:none}.construirlesson .converdict{margin-top:12px;padding:13px 15px;border-radius:12px;font-size:13px;line-height:1.45}.construirlesson .converdict.win{background:var(--ok-soft);border:1px solid color-mix(in srgb,var(--color-ok) 40%,transparent);color:var(--color-ok)}.construirlesson .converdict.retry{background:var(--warn-soft);border:1px solid color-mix(in srgb,var(--color-warn) 40%,transparent);color:var(--color-warn)}.construirlesson .converdict.pending{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-muted)}.construirlesson .converdict .ctitle{margin:0 0 6px;font-size:14.5px;font-weight:800;color:var(--color-ink)}.construirlesson .converdict .cbody{margin:0 0 8px;color:var(--color-muted)}.construirlesson .converdict .creqs{margin:4px 0 8px;padding-left:18px}.construirlesson .converdict .creqs li{margin:2px 0}.construirlesson .converdict .cbound{margin:6px 0 8px;font-weight:700;color:var(--color-ink)}.construirlesson .converdict .cstanding{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0 10px}.construirlesson .converdict .cchip{font-family:var(--font-mono);font-size:11px;padding:4px 9px;border-radius:999px;border:1px solid var(--color-border);background:var(--color-ground);color:var(--color-muted)}.construirlesson .converdict .cchip b{color:var(--color-ink)}.construirlesson .converdict .buildbtn{width:100%;margin-top:4px;padding:12px;border-radius:12px;background:var(--color-accent);color:var(--color-accent-ink);font:inherit;font-weight:800;border:0;cursor:pointer}.sfx-chip{display:inline-flex;align-items:center;justify-content:center;width:30px;height:26px;padding:0;border-radius:999px;color:var(--color-muted);background:#ffffff0f;border:1px solid var(--color-border);cursor:pointer;transition:color .14s,border-color .14s,background .14s}.sfx-chip:hover{color:var(--color-ink);border-color:var(--color-muted);background:#ffffff1a}.sfx-chip .sfx-ico{font-size:13px;line-height:1}.sfx-chip[aria-pressed=true]{color:var(--color-faint)}.mascot{position:absolute;left:14px;bottom:14px;z-index:25;width:88px;display:flex;flex-direction:column;align-items:flex-start;gap:8px;pointer-events:none}.mascot.hidden{display:none}.mascot-figure{position:relative;width:88px;height:88px;filter:drop-shadow(0 6px 14px rgba(0,0,0,.35))}.mascot-img,.mascot-svg{position:absolute;inset:0;width:100%;height:100%;display:block}.mascot[data-art=png] .mascot-svg,.mascot[data-art=svg] .mascot-img{display:none}.mascot-bubble{order:-1;max-width:230px;margin-left:6px;padding:8px 11px;border-radius:13px 13px 13px 4px;background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-ink);font-size:12.5px;font-weight:600;line-height:1.35;box-shadow:var(--shadow-pop);opacity:0;transform:translateY(6px) scale(.96);transition:opacity .2s ease,transform .2s ease}.mascot-bubble:empty,.mascot-bubble:not(.show){opacity:0;pointer-events:none}.mascot-bubble.show{opacity:1;transform:translateY(0) scale(1)}.mascot-svg .mv-head{fill:var(--accent);stroke:var(--color-ink);stroke-width:2.4}.mascot-svg .mv-face{fill:var(--color-ground);stroke:var(--color-ink);stroke-width:1.6}.mascot-svg .mv-ant{stroke:var(--color-ink);stroke-width:2}.mascot-svg .mv-antb{fill:var(--accent);stroke:var(--color-ink);stroke-width:1.4}.mascot-svg .mv-eye{fill:var(--color-ink)}.mascot-svg .mv-mouth{fill:none;stroke:var(--color-ink);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.mascot-svg .mv-open{fill:var(--color-ink)}.mascot-svg .mv-idle,.mascot-svg .mv-cheer,.mascot-svg .mv-faint{display:none}.mascot[data-state=idle] .mascot-svg .mv-idle,.mascot[data-state=cheer] .mascot-svg .mv-cheer,.mascot[data-state=faint] .mascot-svg .mv-faint{display:block}@media(prefers-reduced-motion:no-preference){.mascot[data-state=idle] .mascot-figure{animation:mascot-bob 3s ease-in-out infinite}.mascot[data-state=cheer] .mascot-figure{animation:mascot-cheer .65s ease}.mascot[data-state=faint] .mascot-figure{animation:mascot-faint .75s ease}}@keyframes mascot-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes mascot-cheer{0%{transform:translateY(0) scale(1)}30%{transform:translateY(-15px) scale(1.06)}55%{transform:translateY(0) scale(1)}74%{transform:translateY(-7px)}to{transform:translateY(0)}}@keyframes mascot-faint{0%{transform:rotate(0)}22%{transform:rotate(-10deg)}55%{transform:rotate(9deg) translateY(4px)}80%{transform:rotate(-4deg)}to{transform:rotate(0)}}@media(max-width:640px){.mascot{width:64px;left:8px;bottom:8px}.mascot-figure{width:64px;height:64px}.mascot-bubble{max-width:168px;font-size:11.5px}}.reset-chip{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;padding:5px 10px;border-radius:999px;font:inherit;font-size:11px;font-weight:700;color:var(--color-muted);background:#ffffff0f;border:1px solid var(--color-border);cursor:pointer;transition:color .14s,border-color .14s,background .14s}.reset-chip:hover{color:var(--color-ink);border-color:var(--color-muted);background:#ffffff1a}.reset-chip span{font-size:13px;line-height:1}.reset-dialog{position:absolute;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;padding:20px;background:#03070cb8;backdrop-filter:blur(4px)}.reset-dialog.hidden{display:none}.reset-card{width:100%;max-width:380px;border-radius:16px;border:1px solid var(--color-border);background:var(--color-ground);padding:22px 22px 18px;box-shadow:0 20px 60px -20px #000c}.reset-q{margin:0 0 18px;font-size:15.5px;font-weight:700;line-height:1.4;color:var(--color-ink);text-align:center;text-wrap:balance}.reset-actions{display:flex;gap:10px}.reset-cancel,.reset-confirm{flex:1;padding:11px 12px;border-radius:12px;font:inherit;font-size:13.5px;font-weight:800;cursor:pointer;border:1px solid var(--color-border)}.reset-cancel{background:transparent;color:var(--color-ink)}.reset-cancel:hover{border-color:var(--color-muted)}.reset-confirm{background:var(--color-bad);color:#fff;border-color:transparent}.reset-confirm:hover{filter:brightness(1.08)}.campaign{position:fixed;inset:0;background:var(--bg);color:var(--color-ink);overflow:hidden}.campaign .cmp-top{position:absolute;top:0;left:0;right:0;z-index:30;display:flex;align-items:center;gap:12px;padding:12px 16px;background:linear-gradient(var(--color-ground),transparent)}.campaign .cmp-x{color:var(--color-muted);font-size:18px;line-height:1;text-decoration:none}.campaign .cmp-x:hover{color:var(--color-ink)}.campaign .cmp-bar{flex:1;height:6px;border-radius:999px;background:#ffffff1f;overflow:hidden}.campaign .cmp-bar i{display:block;height:100%;width:0%;background:var(--color-accent);border-radius:999px;transition:width .5s cubic-bezier(.4,0,.2,1)}.campaign .cmp-count{font-family:var(--font-mono);font-size:11px;color:var(--color-muted);white-space:nowrap}.campaign .cmp-stage{position:absolute;inset:0;overflow:hidden}.campaign .levelmap{position:absolute;inset:0;overflow-y:auto;padding:60px 16px 32px}.campaign .lm-title{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--color-muted);text-align:center;margin-bottom:18px}.campaign .lm-done{max-width:300px;margin:0 auto 16px;text-align:center;font-size:13px;color:var(--color-ok)}.campaign .lvl{display:flex;gap:12px;align-items:center;padding:11px 12px;margin:0 auto 10px;max-width:300px;border-radius:14px;border:1px solid var(--color-border);background:var(--color-raise);position:relative}.campaign .lvl:after{content:"";position:absolute;left:33px;top:100%;width:2px;height:10px;background:var(--color-border)}.campaign .lvl:last-child:after{display:none}.campaign .lvl .badge{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;flex:none;border:2px solid var(--color-border);color:var(--color-muted);background:var(--color-ground)}.campaign .lvl .lt{font-weight:700;font-size:13.5px;color:var(--color-ink)}.campaign .lvl .ls{font-family:var(--font-mono);font-size:10.5px;color:var(--color-faint)}.campaign .lvl.done{border-color:#34d39966}.campaign .lvl.done .badge{border-color:var(--color-ok);color:var(--color-ok)}.campaign .lvl.current{border-color:var(--color-accent);box-shadow:0 0 0 3px #2ee6c826;cursor:pointer}.campaign .lvl.current .badge{border-color:var(--color-accent);color:var(--color-accent-ink);background:var(--color-accent)}.campaign .lvl.current:hover{transform:translateY(-1px)}.campaign .lvl.locked{opacity:.5}.campaign .lvl .tag{margin-left:auto;font-family:var(--font-mono);font-size:10px;color:var(--accent-text)}.campaign .incident{position:absolute;inset:0;display:flex;flex-direction:column;padding:56px 14px 16px;overflow-y:auto}.campaign .oncall{display:flex;gap:10px;align-items:flex-start;background:#fb5a6a1a;border:1px solid rgba(251,90,106,.4);border-radius:12px;padding:10px 12px;margin-bottom:10px}.campaign .oncall .av{width:26px;height:26px;border-radius:50%;background:var(--color-bad);color:var(--color-accent-ink);font-size:14px;display:flex;align-items:center;justify-content:center;flex:none;font-weight:800}.campaign .oncall .who{font-family:var(--font-mono);font-size:10px;color:var(--color-bad);display:block;margin-bottom:2px;text-transform:uppercase;letter-spacing:.08em}.campaign .oncall .msg{font-size:12.5px;color:var(--color-bad);line-height:1.35}.campaign .scenario{font-size:12px;color:var(--color-muted);margin:0 2px 12px;line-height:1.4}.campaign .inc-top{display:flex;align-items:center;gap:8px;margin-bottom:10px}.campaign .clock{font-family:var(--font-mono);font-size:20px;font-weight:800;color:var(--color-warn);font-variant-numeric:tabular-nums}.campaign .clock.crit{color:var(--color-bad)}.campaign .bill{margin-left:auto;font-family:var(--font-mono);font-size:12px;color:var(--color-muted)}.campaign .bill b{color:var(--color-ink)}.campaign .imeters{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.campaign .im{font-family:var(--font-mono);font-size:11px;background:#080d18b3;border:1px solid var(--color-border);border-radius:8px;padding:5px 9px;color:var(--color-muted)}.campaign .im b{color:var(--color-ink)}.campaign .im.bad b{color:var(--color-bad)}.campaign .im.ok b{color:var(--color-ok)}.campaign .cmp-chip{display:inline-flex;align-items:center;gap:6px;margin:0 0 14px;padding:6px 12px;border-radius:999px;background:var(--color-raise);border:1px solid var(--color-border);font-size:12px;font-weight:600;color:var(--color-ink);text-decoration:none;width:fit-content}.campaign .cmp-chip:hover{border-color:var(--color-accent);color:var(--accent-text)}.campaign .cmp-chip .k{font-family:var(--font-mono);font-size:10px;color:var(--color-faint);text-transform:uppercase;letter-spacing:.08em}.campaign .ichoice{margin-top:auto;padding-top:8px}.campaign .ichoice .q{font-size:13.5px;font-weight:700;margin:0 2px 10px}.campaign .iopt{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:12px 13px;margin-top:8px;border-radius:10px;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);color:var(--color-ink);font-size:13px;font-weight:600;cursor:pointer;transition:background .14s,border-color .14s}.campaign .iopt:hover{border-color:var(--color-accent)}.campaign .iopt .cost{margin-left:auto;font-family:var(--font-mono);font-size:11px;color:var(--color-faint);white-space:nowrap}.campaign .iopt.ok{background:var(--color-accent);color:var(--color-accent-ink);border-color:var(--color-accent)}.campaign .iopt.ok .cost{color:var(--color-accent-ink)}.campaign .iopt.bad{background:#fb5a6a29;border-color:var(--color-bad)}.campaign .iopt[disabled]{cursor:default}.campaign .iconseq{font-size:12px;margin:12px 2px 0;padding:10px 12px;border-radius:10px;background:#080d1899;border:1px solid var(--border-soft)}.campaign .iconseq.bad{color:var(--color-bad);border-color:color-mix(in srgb,var(--danger) 40%,transparent)}.campaign .iconseq.ok{color:var(--color-ok);border-color:color-mix(in srgb,var(--ok) 40%,transparent)}.campaign .arch-wrap{margin:2px 0 14px;border:1px solid var(--color-border);border-radius:12px;background:#080d188c;padding:8px 8px 6px}.campaign .arch-head{display:flex;align-items:center;gap:8px;margin:2px 4px 4px}.campaign .arch-title{font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--color-muted)}.campaign .arch-count{margin-left:auto;font-family:var(--font-mono);font-size:10px;color:var(--color-faint)}.campaign .arch-scroll{max-height:46vh;overflow:auto}.campaign .arch-svg{width:100%;max-width:320px;height:auto;display:block;margin:0 auto}.campaign .arch-edge{fill:none;stroke:#2ee6c852;stroke-width:1.4}.campaign .arch-node rect{fill:var(--color-surface);stroke:var(--color-border);stroke-width:1.6}.campaign .arch-node text{fill:var(--color-ink);font-family:var(--font-sans, system-ui);font-weight:700}.campaign .arch-node .sub{fill:var(--color-faint);font-family:var(--font-mono);font-weight:600}.campaign .arch-cdn rect{stroke:var(--info);fill:var(--color-surface)}.campaign .arch-cdn text{fill:var(--info)}.campaign .arch-loadbalancer rect{stroke:var(--color-accent)}.campaign .arch-loadbalancer text{fill:var(--accent-text)}.campaign .arch-cache rect{stroke:var(--color-accent);fill:var(--color-surface)}.campaign .arch-cache text{fill:var(--accent-text)}.campaign .arch-replica rect{stroke:var(--color-ok);fill:var(--color-surface)}.campaign .arch-replica text{fill:var(--color-ok)}.campaign .arch-database rect{stroke:var(--line-strong);fill:var(--color-surface)}.campaign .arch-shard rect{stroke:var(--color-warn);fill:var(--color-surface)}.campaign .arch-shard text{fill:var(--color-warn)}.campaign .arch-node{transform-box:fill-box;transform-origin:center}.campaign .arch-new rect{stroke:var(--color-accent)}.campaign .arch-grow{animation:arch-grow-in .5s cubic-bezier(.2,.8,.2,1) both,arch-glow 1.25s ease-in-out .05s 2}@keyframes arch-grow-in{0%{opacity:0;transform:scale(.55)}to{opacity:1;transform:scale(1)}}@keyframes arch-glow{0%,to{filter:drop-shadow(0 0 0 rgba(46,230,200,0))}50%{filter:drop-shadow(0 0 7px rgba(46,230,200,.85))}}@media(prefers-reduced-motion:reduce){.campaign .arch-grow{animation:none}}.campaign .arch-recap{max-width:300px;margin:0 auto 16px;display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.campaign .arch-pill{font-family:var(--font-mono);font-size:10px;color:var(--color-muted);background:var(--color-raise);border:1px solid var(--color-border);border-radius:999px;padding:3px 9px}.campaign .arch-pill.lb,.campaign .arch-pill.cache,.campaign .arch-pill.loadbalancer{border-color:#2ee6c880;color:var(--accent-text)}.campaign .score{position:absolute;inset:0;z-index:12;background:var(--color-ground);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:28px 22px;opacity:0;pointer-events:none;transition:opacity .4s}.campaign .score.show{opacity:1;pointer-events:auto}.campaign .score .stars{font-size:30px;letter-spacing:6px;margin-bottom:6px}.campaign .score h3{margin:0 0 14px;font-size:20px}.campaign .score .srow{display:flex;justify-content:space-between;gap:16px;width:100%;max-width:260px;font-family:var(--font-mono);font-size:12.5px;padding:6px 0;border-bottom:1px solid var(--border-soft)}.campaign .score .srow span:first-child{color:var(--color-muted)}.campaign .score .srow b.ok{color:var(--color-ok)}.campaign .score .srow b.warn{color:var(--color-warn)}.campaign .score-next{margin-top:22px;border-radius:var(--r-md);padding:13px 22px;font-weight:800;font-size:15px;cursor:pointer;border:1px solid transparent;background:var(--color-accent);color:var(--color-accent-ink)}.campaign .score-next:hover{filter:brightness(1.08)}
