:root{font-family:Manrope,system-ui,sans-serif;color:#e9edf4;background:#070b13;font-synthesis:none;--bg:#070b13;--panel:#0c121d;--line:#1b2737;--muted:#8492a5;--dim:#4f5c6e;--gold:#e7bc72;--blue:#74b8ee;--red:#fb748e;--violet:#bbb3df}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 48% -18%,#19283c 0,transparent 44%),radial-gradient(ellipse at 100% 65%,#111428 0,transparent 35%),var(--bg);min-height:100vh}button,select,textarea{font:inherit;color:inherit}button{cursor:pointer}.topbar{height:72px;border-bottom:1px solid #1b2532;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(20px,4vw,64px);background:#080d16d9}.brand{display:flex;gap:13px;align-items:center;text-decoration:none;color:#e7ebf2;font-size:12px;letter-spacing:1.5px;font-weight:800}.brand small{display:block;margin-top:3px;color:#627184;font:9px DM Mono,monospace;letter-spacing:1.1px}.sigil{font-size:23px;color:var(--gold);border:1px solid #796747;width:37px;height:37px;display:grid;place-items:center}.top-actions{display:flex;align-items:center;gap:17px}.save-state,.micro,.eyebrow,.board-caption,.constraint-row,.move-counter,footer,.board-foot,#node-info p{font:10px DM Mono,monospace;letter-spacing:.8px}.save-state{color:#829183}.save-state i{display:inline-block;width:6px;height:6px;background:#8cbd9e;border-radius:50%;margin-right:7px;box-shadow:0 0 10px #8cbd9e}.quiet{background:none;border:0;color:#758297;font-size:11px}.quiet:hover{color:#f0c27a}main{max-width:1440px;margin:auto;padding:32px clamp(18px,4vw,58px) 22px}.intro{margin-bottom:25px}.eyebrow{color:#8292a7;font-size:9px;letter-spacing:1.8px}.intro h1{font-size:clamp(28px,4vw,43px);line-height:1.1;letter-spacing:-1.8px;margin:9px 0 5px;font-weight:600}.intro h1 em{color:var(--gold);font-style:normal}.intro p{color:#8490a1;font-size:13px;margin:0}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:16px}.panel{border:1px solid var(--line);background:linear-gradient(145deg,#0d1420f5,#0a1019f5);box-shadow:0 12px 40px #0002}.board-panel{padding:20px 22px 14px;min-width:0}.panel-head,.section-title{display:flex;align-items:center;justify-content:space-between}.panel-head h2{font-size:20px;letter-spacing:-.4px;margin:4px 0 0}.panel-head select{background:#111b29;border:1px solid #28384b;border-radius:3px;padding:8px;color:#d4dbe5;font-size:11px}.puzzle-copy{display:flex;gap:20px;align-items:center;justify-content:space-between;padding:12px 0 8px}.puzzle-copy>p{margin:0;color:#a4adbb;font-size:12px;line-height:1.6}.objective{max-width:44%;border-left:1px solid #4a3d2a;padding-left:12px;color:#c5c9d1;font-size:10px;line-height:1.5}.objective span{display:block;color:var(--gold);font:9px DM Mono,monospace;letter-spacing:1.3px;margin-bottom:3px}.board-wrap{height:min(48vh,480px);min-height:360px;position:relative;overflow:hidden;background:radial-gradient(ellipse,#111c2c99,#0b111b 59%,#090e17);border:1px solid #192638}.board-wrap:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(#31405412 1px,transparent 1px),linear-gradient(90deg,#31405412 1px,transparent 1px);background-size:32px 32px;-webkit-mask-image:radial-gradient(ellipse,#000 15%,transparent 78%);mask-image:radial-gradient(ellipse,#000 15%,transparent 78%)}#edges,#board{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}#edges{pointer-events:none}.edge{stroke:#51627a;stroke-width:1.25;opacity:.58}.edge.bad{stroke:var(--red);stroke-width:2.2;opacity:.9;filter:drop-shadow(0 0 4px #fb748e66)}.edge.triad-bad{stroke:#e6a866;stroke-width:2;opacity:.95;stroke-dasharray:4 3}.node{position:absolute;z-index:2;transform:translate(-50%,-50%);width:58px;height:58px;border:1px solid #526276;border-radius:50%;background:#101a28;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 0 0 5px #0b121c,0 6px 18px #0006;transition:transform .18s,border-color .18s,box-shadow .18s}.node:hover,.node.selected{transform:translate(-50%,-50%) scale(1.12);border-color:#e4bf7d;box-shadow:0 0 0 5px #0b121c,0 0 24px #e4bf7d2e}.node-symbol{font-size:26px;line-height:27px}.node small{font:8px DM Mono,monospace;color:#78879a;line-height:12px}.state-0 .node-symbol,.yin{color:var(--blue)}.state-1 .node-symbol,.yang{color:var(--gold)}.state-2 .node-symbol,.void{color:var(--violet)}.node.unstable{border-color:#b94d67}.node.unstable:after{content:"";position:absolute;top:-5px;right:-5px;bottom:-5px;left:-5px;border:1px solid #fb748e55;border-radius:50%}.node.triangle-unstable{border-color:#e6a866}.node.triangle-unstable:after{border-color:#e6a86677}.boundary-mark{position:absolute;right:-3px;top:-2px;border:1px solid #d9e2ed;background:var(--boundary-fill,#241f17);color:#10151d;text-shadow:0 1px 1px #ffffffaa;font:8px DM Mono;font-style:normal;border-radius:2px;padding:2px}.board-axis{position:absolute;pointer-events:none;background:#4c5a6d22}.axis-x{height:1px;top:50%;left:8%;right:8%}.axis-y{width:1px;left:50%;top:8%;bottom:8%}.board-caption{position:absolute;bottom:11px;left:12px;color:#516174;font-size:8px;pointer-events:none}#target-layer{position:absolute;bottom:8px;right:12px;color:#e5c37f;letter-spacing:10px;font-size:15px;pointer-events:none}.board-foot{display:flex;justify-content:space-between;align-items:center;color:#718095;padding:9px 1px 11px;font-size:9px}.legend{display:flex;gap:15px;align-items:center}.text-button{border:0;background:none;color:#8192a6;font:10px DM Mono;padding:0}.text-button.active{color:var(--gold)}.actions{display:flex;gap:8px;border-top:1px solid #1c2735;padding:12px 0}.actions button{border-radius:3px;padding:9px 13px;font-size:10px;font-weight:700;letter-spacing:.2px}.actions .primary{border:1px solid #bb9456;background:linear-gradient(135deg,#c79d5b,#8a6836);color:#10151d}.actions .secondary{background:#121c29;border:1px solid #27374a;color:#bbc6d5}.actions button span{font-size:10px;margin-right:4px}.actions button small{display:block;font-size:8px;font-weight:500;opacity:.78;margin-top:3px;letter-spacing:0}.action-explainer{margin:0 0 7px;color:#8290a2;font-size:9px;line-height:1.5}.actions .icon-button{width:36px;padding:0;background:#111a27;border:1px solid #263446;color:#bbc6d5;font-size:17px}.actions button:disabled{opacity:.35;cursor:default}.constraint-row{display:flex;align-items:center;gap:12px;min-height:27px;font-size:9px}.constraint-row>strong{font-size:9px;letter-spacing:1px}.status-good,.clear{color:#8ec6a0}.status-mid{color:#d4b77a}.status-bad{color:#ed788d}.constraint-row #constraint-list{display:flex;gap:9px;color:#e28a9d}.move-counter{margin-left:auto;color:#758399;text-transform:uppercase}.move-counter b{color:#e9edf4}.side-column{display:flex;flex-direction:column;gap:14px}.node-panel{padding:16px 17px}.section-title h3{font-size:16px;margin:4px 0 0}.section-title .micro{color:#58677a;font-size:8px}.node-panel #node-info{padding-top:14px}.node-panel #node-info>strong{font:18px DM Mono,monospace;color:#e9edf4;margin-right:11px}.state-chip{font:9px DM Mono;border:1px solid #334359;padding:5px 7px;border-radius:20px}.node-panel #node-info p{font-size:9px;letter-spacing:.2px;color:#8995a6;line-height:1.7;margin:9px 0 0}.node-panel #node-info p b{color:#c7d0dd;font-weight:500}.research-panel{padding:16px 14px 14px;flex:1;min-height:300px}.research-panel .section-title{padding:0 3px 12px}.count-pill{font:10px DM Mono;color:var(--gold);border:1px solid #55462d;padding:5px 7px;border-radius:2px}.law-row{height:32px;width:100%;display:flex;align-items:center;gap:9px;border:0;border-top:1px solid #172130;background:none;text-align:left;color:#606d7f;padding:0 5px}.law-number{width:18px;color:#647184;font:10px DM Mono}.law-name{font-size:10px;flex:1}.law-mark{color:#536175}.law-row.known{color:#d5dce5}.law-row.active{background:#171a1b}.law-detail{margin-top:9px;min-height:84px;border-left:1px solid #6e5835;background:#12171d;padding:10px 11px;font-size:10px;color:#d0d5dd;line-height:1.5}.law-detail p{margin:5px 0;color:#939fae}.law-detail small{color:#657487;font-size:9px;line-height:1.5}.lower-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}.log-panel{padding:16px 18px}.log-panel ul{list-style:none;margin:12px 0 0;padding:0;max-height:125px;overflow:auto}.log-panel li{padding:7px 0;border-top:1px solid #182230;color:#a0adbd;font-size:10px;line-height:1.5}.log-panel li:before{content:"›";color:var(--gold);margin-right:9px}.log-panel li.muted{color:#667487}.notes-head{display:flex;justify-content:space-between;align-items:center;margin:12px 0 6px}footer{display:flex;justify-content:space-between;align-items:center;color:#536176;font-size:8px;margin-top:19px}footer label{display:flex;align-items:center;gap:5px}body.motion-off *{transition:none!important;animation:none!important}@media(max-width:1020px){.workspace{grid-template-columns:minmax(0,1fr) 270px}.board-wrap{height:440px}.node{width:52px;height:52px}}@media(max-width:760px){.topbar{height:60px;padding:0 15px}.top-actions{gap:8px}.save-state{display:none}.quiet,.brand{font-size:10px}.brand small{font-size:7px}main{padding:24px 12px}.intro{margin-bottom:18px}.workspace,.lower-grid{grid-template-columns:1fr}.board-panel{padding:14px 12px}.board-wrap{min-height:320px;height:54vh}.puzzle-copy{align-items:flex-start;flex-direction:column;gap:8px}.objective{max-width:100%}.side-column{display:grid;grid-template-columns:1fr}.research-panel{min-height:initial}.law-row{height:30px}.constraint-row{flex-wrap:wrap}.constraint-row #constraint-list{order:3;width:100%;padding:0 0 5px}.legend{gap:8px}.board-foot{font-size:8px}.actions button{padding:8px 9px}.actions .icon-button{width:32px}.lower-grid{gap:10px}footer{flex-wrap:wrap;gap:8px}footer span:nth-child(2){order:3;width:100%}}@media(max-width:390px){.board-wrap{min-height:285px}.node{width:46px;height:46px}.node-symbol{font-size:22px}.legend{gap:6px;font-size:8px}.actions button{font-size:9px}}#target-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;letter-spacing:normal}#target-layer .target-ghost{position:absolute;transform:translate(-50%,-50%);color:#e6c27d;opacity:.38;font-size:32px;text-shadow:0 0 12px #e6c27d66}.export-dialog{width:min(640px,calc(100vw - 24px));max-height:calc(100vh - 28px);padding:20px;border:1px solid #344357;background:#0c121d;color:#e9edf4;box-shadow:0 24px 90px #000b}.export-dialog::backdrop{background:#02050bcc;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.export-head{display:flex;justify-content:space-between;align-items:center}.export-head h2{font-size:19px;margin:5px 0 0}.export-dialog>p{color:#9ba8b9;font-size:11px;line-height:1.6}.export-dialog textarea{width:100%;height:min(48vh,390px);resize:vertical;background:#070b13;border:1px solid #263446;padding:12px;color:#cbd6e5;font:10px/1.6 DM Mono,monospace;white-space:pre;overflow:auto}.export-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:12px}.export-actions span{color:#9baa9d;font-size:10px}.export-actions button{border:1px solid #bb9456;background:linear-gradient(135deg,#c79d5b,#8a6836);color:#10151d;border-radius:3px;padding:9px 15px;font-weight:700;font-size:10px}.export-dialog .icon-button{width:34px;height:34px;border:1px solid #263446;background:#111a27;color:#bbc6d5;font-size:18px}#target-layer{z-index:3}#target-layer .target-ghost{width:25px;height:25px;display:grid;place-items:center;transform:translate(-50%,-50%);color:#ffe5a9;opacity:1;font-size:14px;letter-spacing:normal;background:#171911;border:1px solid #d3ad67;border-radius:50%;box-shadow:0 0 10px #d5ae6740;text-shadow:0 0 7px #f3cf85}#show-target[aria-pressed=true]{color:#f0c982}.objective{max-width:52%}@media(max-width:760px){.objective{max-width:100%}}.experiment-map{margin:8px 0 14px;padding:14px;border:1px solid #293648;background:linear-gradient(120deg,#121b29,#0b111b)}.experiment-map-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.experiment-map-head strong{display:block;margin-top:5px;color:#dce3ed;font-size:12px}.experiment-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:10px auto;max-width:470px}.experiment-tile{position:relative;display:grid;grid-template-columns:30px 1fr;grid-template-rows:1fr 1fr;align-items:center;min-height:55px;padding:5px 9px;background:#101a27;border:1px solid #2b3b50;color:#a8b4c4;text-align:left}.experiment-tile:hover:not(:disabled),.experiment-tile.active{border-color:#cfaa69;background:#211d16}.experiment-tile>span{grid-row:1/3;color:#8292a7;font:9px DM Mono,monospace}.experiment-tile>b{font-size:17px;color:#8997aa}.experiment-tile>small{font:7px DM Mono,monospace;letter-spacing:.6px;color:#74849a}.experiment-tile.solved{border-color:#907642;background:#1b1a16}.experiment-tile.solved>b{color:var(--gold)}.experiment-map>p{margin:5px 0 0;color:#8593a6;font-size:10px;line-height:1.5}.experiment-map[hidden]{display:none}@media(max-width:760px){.experiment-map-head{align-items:flex-start;flex-direction:column}.experiment-grid{gap:4px}.experiment-tile{min-height:50px;padding:4px}.experiment-tile>small{font-size:6px}}.resonance-link{fill:none;stroke:#fb617b;stroke-width:2.5;stroke-dasharray:2 7;stroke-linecap:round;opacity:.95;filter:drop-shadow(0 0 4px #fb526f99);pointer-events:none}.node.resonance-target{outline:2px solid #fb617b;outline-offset:6px;box-shadow:0 0 0 5px #0b121c,0 0 24px #fb526f66,0 6px 18px #0006}.node.resonance-target:hover,.node.resonance-target.selected{box-shadow:0 0 0 5px #0b121c,0 0 26px #fb526f99,0 6px 18px #0006}.resonance-readout{color:#fb8498!important}.resonance-key{display:flex;gap:6px;align-items:center;color:#fb8498}.resonance-key i{width:19px;border-top:2px dotted #fb617b}.resonance-key[hidden]{display:none}.big-experiment-choice{width:100%;display:flex;align-items:center;gap:12px;margin-top:6px;padding:11px 13px;background:#151c28;border:1px solid #55462d;color:#d5dce5;text-align:left}.big-experiment-choice>span{color:var(--gold);font-size:18px}.big-experiment-choice>b{font-size:11px;flex:1}.big-experiment-choice>small{font:8px DM Mono,monospace;color:#8995a6;letter-spacing:.7px}.big-experiment-choice.active,.big-experiment-choice:hover:not(:disabled){border-color:#cfaa69;background:#211d16}.big-experiment-choice:disabled{opacity:.65;cursor:not-allowed}.grand-sector-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;max-width:470px;margin:12px auto}.grand-sector{min-height:57px;display:grid;grid-template-columns:26px 1fr;grid-template-rows:1fr 1fr;align-items:center;padding:5px 8px;text-align:left;background:#101a27;border:1px solid #2b3b50;color:#a8b4c4}.grand-sector>span{grid-row:1/3;color:#8292a7;font:9px DM Mono,monospace}.grand-sector>b{font-size:13px}.grand-sector>small{font:7px DM Mono,monospace;color:#74849a}.grand-sector:hover,.grand-sector.active{border-color:#cfaa69;background:#211d16}.grand-sector.solved{border-color:#907642;background:#1b1a16;color:var(--gold)}.grand-small-head{display:flex;justify-content:space-between;align-items:center;max-width:470px;margin:11px auto 0;color:#dce3ed;font-size:10px}.grand-small-head span{color:#8292a7;font:8px DM Mono,monospace}.grand-final-choice{margin-top:10px;border-color:#665632;background:linear-gradient(110deg,#201d17,#111a26)}.grand-final-choice:not(:disabled){border-color:#cfaa69}.experiment-tile:disabled{cursor:default;opacity:.9}.workspace{align-items:start}.side-column{grid-column:2;grid-row:1 / span 2;position:sticky;top:12px;max-height:calc(100vh - 24px);overflow-y:auto;scrollbar-width:thin;scrollbar-color:#334359 transparent}.lower-grid{grid-column:1;grid-row:2}.research-panel{min-height:0;flex:none}.actions{align-items:center;flex-wrap:wrap}.inspected-inline{display:flex;flex:1 1 205px;min-width:205px;align-items:center;gap:12px;padding:0 12px 0 2px;border-right:1px solid #1d2a39;min-height:42px}.inspected-inline>.eyebrow{white-space:nowrap;font-size:8px}.inspected-inline #node-info{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}.inspected-inline #node-info>strong{font:16px DM Mono,monospace;color:#e9edf4}.inspected-inline .state-chip{white-space:nowrap;padding:4px 6px}.inspected-inline #node-info p{margin:0;font:9px DM Mono,monospace;letter-spacing:0;color:#8995a6;line-height:1.35}.inspected-inline #node-info p b{color:#c7d0dd;font-weight:500}.inspected-inline #node-info .resonance-readout{color:#fb8498!important}.reflection-link{fill:none;stroke:#58e8ff;stroke-width:3;stroke-dasharray:9 5;stroke-linecap:round;opacity:1;filter:drop-shadow(0 0 6px #42d8f4aa);pointer-events:none}.node.reflection-node{border-color:#58cfe3;box-shadow:0 0 0 5px #0b121c,0 0 17px #42d8f433,0 6px 18px #0006}.node.reflection-node:hover,.node.reflection-node.selected{border-color:#8af1ff;box-shadow:0 0 0 5px #0b121c,0 0 25px #42d8f477,0 6px 18px #0006}.reflection-mark{position:absolute;z-index:4;right:-8px;top:-7px;width:18px;height:18px;display:grid;place-items:center;border:1px solid #58d5e8;border-radius:50%;background:#09202a;color:#7cecff;font:10px DM Mono,monospace;font-style:normal;box-shadow:0 0 9px #35d7eb88}.resonance-count-glyph{position:absolute;bottom:-7px;left:50%;transform:translate(-50%);display:flex;gap:3px;align-items:center;justify-content:center;min-width:10px;height:10px;padding:0 4px;border:1px solid #a9475e;border-radius:8px;background:#250e18;box-shadow:0 0 9px #fb526f66}.resonance-count-glyph i{display:block;width:4px;height:4px;border-radius:50%;background:#ff7189;box-shadow:0 0 4px #ff7189}.boundary-mark{right:auto;left:50%;top:-8px;transform:translate(-50%)}.reflection-key{display:flex;gap:5px;align-items:center;color:#76deed}.reflection-key i{font:11px DM Mono,monospace;font-style:normal;color:#58dcef}.reflection-key[hidden]{display:none}@media(max-width:760px){.workspace{display:grid;grid-template-columns:1fr}.side-column{grid-column:1;grid-row:auto;position:sticky;top:8px;z-index:5;max-height:65vh}.lower-grid{grid-column:1;grid-row:auto}.inspected-inline{flex-basis:100%;border-right:0;border-bottom:1px solid #1d2a39;padding:0 0 8px;justify-content:flex-start}.actions{gap:6px}.actions .action-spacer{display:none}}.forge-traits{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:16px 0}.forge-traits label{display:flex;gap:8px;align-items:center;padding:10px;border:1px solid #263446;background:#101a27;color:#cbd5e3;font-size:11px}.forge-traits input{accent-color:#d4ac69}.forge-buttons{display:grid;grid-template-columns:1fr;gap:8px;margin-top:14px}.forge-buttons button{padding:10px 12px;border:1px solid #344357;background:#121c29;color:#d7dfeb;border-radius:3px;font-size:11px;text-align:left}.forge-buttons button.primary{border-color:#bb9456;background:linear-gradient(135deg,#c79d5b,#8a6836);color:#10151d}.forge-buttons button:disabled{opacity:.5}.experiment-tile em{grid-column:1/3;color:#8292a7;font-style:normal;font-size:8px;margin-top:2px}.generated-roles{font:8px DM Mono,monospace;color:#8292a7}.save-generated{border:1px solid #67bdc9;background:#10313a;color:#a6f2f8;padding:8px 11px;border-radius:3px;font-size:10px;font-weight:700}.save-generated:hover{background:#17434d;box-shadow:0 0 14px #39c9d533}.save-generated[hidden]{display:none}.export-dialog{overflow-y:auto}.forge-design-controls{border:1px solid #243246;background:#080e17;padding:12px;margin:12px 0}.forge-design-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:6px 0 10px;color:#99a8bb;font:10px DM Mono,monospace}.forge-design-toolbar[hidden]{display:none}.forge-design-toolbar label{display:flex;align-items:center;gap:8px}.forge-design-toolbar select{background:#101a27;border:1px solid #2b3b50;color:#d7e0ec;padding:6px 8px}.forge-mode-switch{display:flex;gap:5px}.forge-mode-switch button,.forge-design-toolbar>.quiet{background:#111a27;border:1px solid #29394d;color:#aebaca;padding:6px 8px;font-size:9px}.forge-mode-switch button.active{border-color:#c09a5a;color:#f1d59b;background:#201c16}.forge-design-board{position:relative;display:grid;grid-template-columns:repeat(var(--grid-width),minmax(0,1fr));grid-template-rows:repeat(var(--grid-height),minmax(0,1fr));gap:0;width:min(100%,500px);aspect-ratio:var(--grid-width) / var(--grid-height);margin:12px auto 4px;border:1px solid #263446;background:radial-gradient(ellipse,#111b29,#090e17);isolation:isolate}.forge-design-board svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:0;overflow:visible;pointer-events:none}.forge-cell{position:relative;z-index:0;min-width:0;min-height:0;width:100%;height:100%;padding:0;border:1px dashed #29384b66;background:#0a111a22;color:#8392a6;cursor:crosshair}.forge-cell.occupied{background:transparent}.forge-design-board[data-mode=nodes] .forge-cell:not(.occupied):hover{background:#70b7e51a;border-color:#70b7e588}.forge-design-board[data-mode=nodes] .forge-cell:not(.occupied):hover:after{content:"+";font-size:20px;opacity:.75}.forge-wire{stroke:#8493a5;stroke-width:5;opacity:.65;vector-effect:non-scaling-stroke}.forge-node{position:relative;place-self:center;display:grid;place-content:center;width:min(78%,54px);height:min(78%,54px);padding:0;border:1px solid #3a4b61;border-radius:50%;background:#111b28;color:#a9cce9;font-size:clamp(13px,calc(150px/max(var(--grid-width),var(--grid-height))),24px);cursor:pointer;z-index:1}.forge-node small{position:absolute;left:50%;top:calc(100% + 3px);transform:translate(-50%);color:#8392a6;font:7px DM Mono,monospace;white-space:nowrap}.forge-node.state-0{border-color:#5aa9e3;color:#a9d9ff;box-shadow:0 0 11px #3998dc33}.forge-node.state-1{border-color:#d5ad67;color:#f0cd8a;box-shadow:0 0 11px #e1a54833}.forge-node.state-2{border-color:#a58fc4;color:#d7c8ed;box-shadow:0 0 11px #a58fc433}.forge-node.wire-start{outline:2px solid #fc687f;outline-offset:4px}#forge-design-status{min-height:16px;margin:9px 0 0;color:#a9b7c8;font-size:10px;line-height:1.4}#board[data-grid-size="4"] .node{width:48px;height:48px}#board[data-grid-size="5"] .node{width:42px;height:42px}#board[data-grid-size="5"] .node-symbol{font-size:21px}#board[data-grid-size="6"] .node{width:36px;height:36px}#board[data-grid-size="6"] .node-symbol{font-size:17px}@media(max-width:520px){.forge-design-toolbar{align-items:flex-start;flex-direction:column}.forge-design-board{width:min(100%,390px)}#board[data-grid-size="4"] .node{width:42px;height:42px}#board[data-grid-size="5"] .node{width:35px;height:35px}#board[data-grid-size="6"] .node{width:30px;height:30px}}.forge-mode-switch{flex-wrap:wrap}.forge-reflection-wire{stroke:#58dcef;stroke-width:5;stroke-dasharray:13 9;stroke-linecap:round;opacity:.82;vector-effect:non-scaling-stroke}.forge-node.reflection-selected{border-color:#58dcef;box-shadow:0 0 14px #42d8f477}.forge-node.boundary-selected{outline:2px solid #e7bc72;outline-offset:4px}.forge-boundary-mark{position:absolute;top:-7px;left:50%;transform:translate(-50%);min-width:15px;height:15px;display:grid;place-items:center;border:1px solid #d9e2ed;border-radius:3px;background:var(--boundary-fill,#241d12);color:#10151d;text-shadow:0 1px 1px #ffffffaa;font:8px DM Mono,monospace;font-style:normal}.forge-reflection-mark{position:absolute;right:-8px;bottom:-5px;width:17px;height:17px;display:grid;place-items:center;border:1px solid #58dcef;border-radius:50%;background:#09202a;color:#7cecff;font:9px DM Mono,monospace;font-style:normal}.forge-boundary-editor{display:flex;align-items:center;gap:12px;flex-wrap:wrap;width:min(100%,500px);margin:12px auto;padding:10px;border:1px solid #59472b;background:#14140f;color:#bbc6d5;font-size:10px}.forge-boundary-editor[hidden]{display:none}.forge-boundary-editor strong{width:100%;color:#f0cd8a;font:10px DM Mono,monospace}.forge-boundary-editor label{display:flex;align-items:center;gap:5px;white-space:nowrap}.forge-boundary-editor input{accent-color:#d4ac69}.forge-boundary-editor button{margin-left:auto;font-size:9px}@media(max-width:520px){.topbar{height:auto;min-height:60px;flex-wrap:wrap;gap:6px;padding:8px 12px}.brand{flex:1 1 120px;min-width:0}.top-actions{flex:1 1 100%;justify-content:flex-start;gap:4px;flex-wrap:wrap}.top-actions .quiet{flex:0 1 auto;white-space:nowrap;padding:5px 3px}}.forge-creation-mode{display:flex;gap:8px;margin:14px 0 6px}.forge-creation-mode button{flex:1;padding:9px 12px;border:1px solid #29394d;background:#111a27;color:#aebaca;border-radius:3px;font-size:11px}.forge-creation-mode button.active{border-color:#c09a5a;background:#201c16;color:#f1d59b}.forge-design-controls[hidden]{display:none}.forge-manual-help{margin:0 0 12px;color:#8492a5;font-size:10px;line-height:1.5}@media(max-width:390px){.forge-creation-mode button{padding:8px;font-size:10px}}.node.preview-advance{border-color:#f0c27a;box-shadow:0 0 0 5px #0b121c,0 0 22px #e4bf7d88}.node.preview-pulse{background:#173044}.node.preview-resonance{outline:1px dashed #fb748e;outline-offset:7px}#hover-readout{max-width:58%;line-height:1.45;overflow-wrap:anywhere}@media(max-width:760px){#hover-readout{max-width:100%}}.state-3 .node-symbol,.light{color:#fff2a6}.forge-node.state-3{border-color:#fff2a6;color:#fff6c4;box-shadow:0 0 12px #fff2a655}.state-chip.state-3{color:#fff2a6}.solver-label{display:block;margin:14px 0 6px;color:#c7d0dd;font:9px DM Mono,monospace;letter-spacing:1px;text-transform:uppercase}.solver-dialog #solver-input{height:min(24vh,210px);min-height:130px}.solver-dialog #solver-result{height:min(26vh,220px);min-height:110px}.solver-dialog .export-actions{gap:12px}.log-panel ul{max-height:92px;margin-top:8px}.log-panel li{padding:6px 0;font-size:9px}.move-history-panel{padding:15px 16px 13px}.move-history-panel .section-title{align-items:flex-end}.move-history-panel .micro{max-width:115px;text-align:right;font-size:8px;line-height:1.4}.move-list{list-style:none;margin:10px 0 0;padding:0;max-height:230px;overflow:auto;scrollbar-width:thin;scrollbar-color:#334359 transparent}.move-entry{display:grid;grid-template-columns:25px minmax(0,1fr);gap:7px;padding:8px 0;border-top:1px solid #182230}.move-number{color:#728096;font:9px DM Mono,monospace;padding-top:2px}.move-entry strong{display:block;color:#d3dce8;font-size:10px;font-weight:600}.move-entry small{display:block;margin-top:4px;color:#8391a4;font:8px/1.5 DM Mono,monospace;overflow-wrap:anywhere}.move-entry.undone strong,.move-entry.undone small{color:#626f80}.move-list>li.muted{color:#667487;font-size:9px;list-style:none;padding:7px 0;border-top:1px solid #182230}.move-list>li.muted:before{content:none}.difficulty-rating{display:inline-block;margin-top:5px;padding:4px 6px;border:1px solid #35445a;border-radius:2px;color:#aebbd0;font:8px DM Mono,monospace;letter-spacing:.7px}.difficulty-rating[title]{cursor:help}.difficulty-breakdown{margin-top:4px;color:#93a0b1;font:8px DM Mono,monospace;max-width:260px}.difficulty-breakdown summary{cursor:pointer;color:#c6a86e;letter-spacing:.5px}.difficulty-breakdown p{margin:6px 0;line-height:1.5;font:9px system-ui,sans-serif}.difficulty-breakdown ul{list-style:none;margin:5px 0;padding:0}.difficulty-breakdown li{display:flex;justify-content:space-between;gap:14px;padding:3px 0;border-top:1px solid #202b39}.difficulty-breakdown li b{color:#e4c887}.difficulty-breakdown>small{display:block;color:#78879a;line-height:1.5}.move-entry{cursor:pointer}.move-entry:hover{background:#111b29}.move-analysis{margin-top:8px;padding:8px;border:1px solid #202b39;background:#0b121c}.effect-phase{display:grid;grid-template-columns:112px 1fr;gap:8px;padding:5px 0;border-bottom:1px solid #192331}.effect-phase:last-child{border-bottom:0}.effect-phase b{font-size:9px;color:#cbb276;font-weight:500}.effect-phase small{font-size:9px;color:#9aa7b7;line-height:1.5}.library-list{display:grid;gap:7px;max-height:55vh;overflow:auto}.library-entry{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px;border:1px solid #283647;background:#101824}.library-entry>div:first-child{min-width:0;display:grid;gap:4px}.library-entry b{overflow-wrap:anywhere;color:#dce3ed;font-size:11px}.library-entry small{color:#8190a3;font:8px DM Mono,monospace}.library-entry>div:last-child{display:flex;gap:5px;flex-shrink:0}.library-entry .quiet{padding:6px 8px;font-size:9px}.library-entry .danger{color:#df9ba4}.forge-playtest-row{display:flex;align-items:flex-start;gap:12px;margin-top:12px;padding:10px;border:1px solid #263446;background:#0c131e}.forge-playtest-row button{flex-shrink:0;padding:8px 10px;border:1px solid #344357;background:#121c29;color:#d7dfeb;border-radius:3px;font-size:10px}.forge-playtest-row span{color:#a9b7c8;font-size:10px;line-height:1.55;overflow-wrap:anywhere}@media(max-width:760px){.effect-phase{grid-template-columns:1fr;gap:3px}library-entry{align-items:flex-start;flex-direction:column}.forge-playtest-row{flex-direction:column}}#edges,#board,#target-layer{transform:scale(var(--board-zoom,1));transform-origin:50% 50%;transition:transform .16s ease}.board-zoom{position:absolute;z-index:5;top:10px;right:10px;display:flex;align-items:center;gap:3px;padding:4px;background:#080e17df;border:1px solid #28384b;border-radius:3px;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.board-zoom button{width:28px;height:27px;border:1px solid #29394c;background:#111b29;color:#d2dbea;font-size:16px;line-height:1}.board-zoom button:hover{border-color:#c6a76c;color:#f0ce8a}.board-zoom output{min-width:42px;text-align:center;color:#aebacc;font:9px DM Mono,monospace}.notes-panel{padding:14px}.notes-panel textarea{width:100%;min-height:76px;resize:vertical;margin:10px 0 7px;padding:9px;background:#080e17;border:1px solid #1f2b3b;color:#d0d7e0;font:11px/1.5 system-ui,sans-serif}.notes-panel textarea:focus{outline:none;border-color:#6d5937}.notes-panel .text-button{display:block;margin-left:auto}.stability-goal{color:#cdb67e}@media(max-width:760px){.board-zoom{top:7px;right:7px}.board-zoom button{width:26px;height:26px}.notes-panel textarea{min-height:64px}}.empty-library{max-width:720px;margin:0 auto;padding:24px}.empty-library h2{margin:8px 0;color:#e7edf5;font-size:20px}.empty-library p{color:#97a4b5;font-size:12px;line-height:1.6}.empty-library>div{display:flex;gap:8px;flex-wrap:wrap}.empty-library button{border-radius:3px;padding:10px 15px;font-size:10px;font-weight:700}.empty-library .primary{border:1px solid #bb9456;background:linear-gradient(135deg,#c79d5b,#8a6836);color:#10151d}.empty-library .secondary{background:#121c29;border:1px solid #27374a;color:#bbc6d5}.campaign-home{max-width:820px;margin:0 auto;padding:22px;border:1px solid #263446;background:linear-gradient(145deg,#0d1420f5,#0a1019f5);box-shadow:0 12px 40px #0002}.campaign-home-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.campaign-home-head h2{margin:7px 0 4px;color:#e9edf4;font-size:23px}.campaign-home-head p,.campaign-status{color:#96a4b6;font-size:11px;line-height:1.6}.campaign-home-head p{margin:0}.campaign-progress{padding-top:6px;color:var(--gold);font:9px DM Mono,monospace;letter-spacing:1px;white-space:nowrap}.campaign-board{position:relative;width:min(100%,560px);aspect-ratio:1;margin:12px auto 4px;border:1px solid #263446;background:radial-gradient(ellipse,#111b29,#090e17);isolation:isolate}.campaign-board:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(#31405412 1px,transparent 1px),linear-gradient(90deg,#31405412 1px,transparent 1px);background-size:32px 32px;-webkit-mask-image:radial-gradient(ellipse,#000 15%,transparent 78%);mask-image:radial-gradient(ellipse,#000 15%,transparent 78%)}#campaign-edges{z-index:0;overflow:visible;pointer-events:none}#campaign-edges line{stroke:#53647b;stroke-width:1.2;opacity:.68;vector-effect:non-scaling-stroke}#campaign-nodes{z-index:1}.campaign-node{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;width:clamp(54px,13%,76px);height:clamp(54px,13%,76px);border:1px solid #53647b;border-radius:50%;background:#101a28;color:var(--state-color);box-shadow:0 0 0 5px #0b121c,0 5px 15px #0008;transition:transform .2s,border-color .2s,box-shadow .2s}.campaign-node:hover{z-index:2;transform:translate(-50%,-50%) scale(1.12);border-color:var(--gold);box-shadow:0 0 20px #e7bc7244}.campaign-node>b{font-size:25px;line-height:1}.campaign-node>small{color:#8292a7;font:8px DM Mono,monospace;letter-spacing:.8px}.campaign-node.revealed{border-color:var(--state-color);box-shadow:0 0 0 5px #0b121c,0 0 16px color-mix(in srgb,var(--state-color),transparent 65%)}.campaign-status{max-width:560px;margin:4px auto 10px}.campaign-final{display:block;margin:0 auto;padding:10px 15px;border:1px solid #bb9456;background:linear-gradient(135deg,#c79d5b,#8a6836);color:#10151d;border-radius:3px;font-size:11px;font-weight:700}.board-panel{animation:lattice-zoom-in .28s ease-out}@keyframes lattice-zoom-in{0%{opacity:.4;transform:scale(.94)}to{opacity:1;transform:scale(1)}}.workspace[hidden]{display:none}@media(max-width:600px){.campaign-home{padding:15px}.campaign-home-head{flex-direction:column;gap:5px}.campaign-node{width:17%;height:auto;aspect-ratio:1}.campaign-node>b{font-size:21px}.campaign-home-head h2{font-size:19px}}.board-panel.campaign-mode>.panel-head,.board-panel.campaign-mode>.puzzle-copy,.board-panel.campaign-mode>#experiment-map,.board-panel.campaign-mode>.board-foot,.board-panel.campaign-mode>.actions,.board-panel.campaign-mode>.action-explainer,.board-panel.campaign-mode>.constraint-row{display:none!important}.board-panel.campaign-mode{align-self:start}.campaign-home{max-width:none;margin:0;padding:4px 0 8px;border:0;background:none;box-shadow:none}.campaign-home-head{align-items:center}.campaign-home-head h2{font-size:20px}.campaign-home-head p{max-width:560px}.campaign-status{margin:4px 0 0}.board-panel.campaign-mode .board-wrap{height:min(58vh,560px);min-height:400px}.board-panel.campaign-mode #edges,.board-panel.campaign-mode #board,.board-panel.campaign-mode #target-layer,.board-panel.campaign-mode .board-axis,.board-panel.campaign-mode .board-caption{display:none}.campaign-board{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;margin:0;aspect-ratio:auto;border:0;background:none;z-index:3;overflow:visible;transition:transform .18s ease-out}.campaign-board[hidden]{display:none}.campaign-board:before{display:none}#campaign-edges,#campaign-nodes{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}#campaign-nodes{pointer-events:none}.campaign-node{pointer-events:auto;width:clamp(52px,8vw,76px);height:clamp(52px,8vw,76px);padding:0}.campaign-node:focus-visible{outline:2px solid var(--gold);outline-offset:5px}.campaign-board.campaign-entering{filter:brightness(1.5);transform:scale(2.4)!important;transition:transform .18s ease-in,filter .18s ease-in}.campaign-final{margin:10px auto 0}.campaign-final[hidden],.campaign-home[hidden]{display:none}.board-panel.campaign-mode .board-zoom{z-index:5}@media(max-width:760px){.board-panel.campaign-mode .board-wrap{height:54vh;min-height:320px}.campaign-home-head{align-items:flex-start}}.board-panel.campaign-mode .campaign-board{inset:50% auto auto 50%;translate:-50% -50%;width:min(100%,53vh,560px);height:auto;aspect-ratio:1;border:1px solid #263446;background:radial-gradient(ellipse,#111b29,#090e17);overflow:hidden}.board-panel.campaign-mode .campaign-board:before{display:block}.board-panel.campaign-mode #campaign-edges,.board-panel.campaign-mode #campaign-nodes{top:0;right:0;bottom:0;left:0;width:100%;height:100%}.board-panel.campaign-mode .campaign-board.campaign-entering{transform:scale(2.4)!important}:root{color-scheme:dark;--bg:#071313;--panel:#0c1d1c;--line:#29413b;--muted:#a1b4a7;--dim:#70877c;--gold:#e7ef79;--blue:#7bcaff;--red:#ff718d;--violet:#c9aaff;--ink:#e8f0df;--mint:#9ef0ce;--rust:#f09b68;--paper:#dfe8d8;--deep:#071110;--mono:"Consolas","Lucida Console",monospace}html{background:var(--bg)}body{position:relative;isolation:isolate;overflow-x:hidden;background:radial-gradient(ellipse at 50% -20%,#23433b 0,transparent 43%),radial-gradient(ellipse at 100% 74%,#2e30251c 0,transparent 29%),var(--bg);color:var(--ink);font-family:Trebuchet MS,Arial,sans-serif}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;opacity:.22;background-image:linear-gradient(#90cbb00b 1px,transparent 1px),linear-gradient(90deg,#90cbb00b 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:linear-gradient(to bottom,#000,transparent 90%);mask-image:linear-gradient(to bottom,#000,transparent 90%)}body:after{content:"";position:fixed;z-index:-1;pointer-events:none;right:-25vw;top:12vh;width:55vw;aspect-ratio:1;border:1px solid #9ef0ce0c;border-radius:50%;box-shadow:0 0 0 34px #9ef0ce08,0 0 0 90px #9ef0ce05,0 0 0 170px #9ef0ce03}button,select,textarea{font-family:inherit}button{transition:transform .2s,border-color .2s,background .2s,color .2s,box-shadow .2s}.topbar{position:sticky;top:0;z-index:20;height:78px;padding:0 clamp(16px,4vw,64px);background:#071514e8;border-bottom:1px solid #77ad9633;box-shadow:0 12px 32px #02080766;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.brand{gap:14px;color:var(--paper);font:800 11px var(--mono);letter-spacing:2px}.sigil{width:42px;height:42px;border:1px solid #9ef0ce77;border-radius:14px 3px;background:linear-gradient(145deg,#193b34,#091916);color:var(--mint);font-size:24px;box-shadow:inset 0 0 18px #9ef0ce12,0 0 24px #9ef0ce12;transform:rotate(-4deg)}.top-actions .quiet{padding:10px 11px;border:1px solid transparent;border-radius:2px;color:#91aa9b;font:9px var(--mono);letter-spacing:.4px;text-transform:uppercase}.top-actions .quiet:hover{border-color:#9ef0ce44;background:#122b25;color:var(--mint);box-shadow:0 4px 16px #9ef0ce13}.top-actions #reset{color:#e7ef79}.top-actions #erase{color:#ad8290}.save-state{font:8px var(--mono);letter-spacing:1px;text-transform:uppercase;color:#a3c4ad}.save-state i{background:#a1eeaa;box-shadow:0 0 12px #93ffb9}main{position:relative;max-width:1660px;padding:34px clamp(16px,3.4vw,58px) 28px}.intro{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:0;margin:0 0 25px;padding:4px 0 17px 25px;border-left:2px solid var(--mint)}.intro:after{content:"FIELD NOTE 09 / OBSERVATION IN PROGRESS";position:absolute;right:0;bottom:21px;color:#8aa295;font:8px var(--mono);letter-spacing:1.5px}.intro .eyebrow{color:var(--mint);font:9px var(--mono);letter-spacing:2.4px}.intro h1{margin:8px 0 7px;font:500 clamp(38px,5.8vw,76px)/.98 Georgia,"Times New Roman",serif;letter-spacing:-2.4px;color:var(--paper)}.intro h1 em{color:var(--gold);font-style:italic;text-shadow:0 0 30px #e7ef792b}.intro p{color:#a1b6a7;font-size:12px;letter-spacing:.2px}.workspace{grid-template-columns:minmax(0,1fr) 318px;gap:20px;align-items:start}.panel{position:relative;overflow:hidden;border:1px solid #52706455;border-radius:3px;background:linear-gradient(145deg,#112421f5,#0a1716f7 76%);box-shadow:0 16px 48px #0004,inset 0 1px #ddffe10b}.panel:before{content:"";position:absolute;top:0;left:17px;width:38px;border-top:2px solid var(--mint);opacity:.65}.board-panel{padding:22px 24px 15px}.panel-head h2,.section-title h3{font-family:Georgia,Times New Roman,serif;font-weight:500;color:var(--paper)}.panel-head h2{font-size:25px;letter-spacing:-.4px}.panel-head select{border:1px solid #466457;border-radius:2px;background:#10231e;color:#dbe8d9}.puzzle-copy{align-items:flex-start;padding:13px 0 16px}.puzzle-copy>p{max-width:60%;color:#b1c4b6;font-size:12px}.objective{max-width:38%;border-left:1px solid var(--gold);padding-left:13px;color:#dde7d3}.objective>b{font:italic 15px Georgia,serif}.objective small{display:block;margin-top:6px}.difficulty-rating{border-color:#51685d;color:var(--gold)}.difficulty-breakdown summary{color:var(--mint)}.board-wrap{height:min(59vh,610px);min-height:440px;overflow:hidden;border:1px solid #486960;background:radial-gradient(ellipse at 50% 49%,#16372e 0,#0a1a18 45%,#06100f);box-shadow:inset 0 0 80px #020b0a,inset 0 0 0 8px #091a1644}.board-wrap:before{opacity:.8;background-image:linear-gradient(#93d7bb12 1px,transparent 1px),linear-gradient(90deg,#93d7bb12 1px,transparent 1px);background-size:36px 36px;-webkit-mask-image:radial-gradient(ellipse,#000 12%,transparent 78%);mask-image:radial-gradient(ellipse,#000 12%,transparent 78%)}.board-wrap:after{content:"";position:absolute;pointer-events:none;left:50%;top:50%;width:min(42vw,360px);aspect-ratio:1;transform:translate(-50%,-50%);border:1px solid #a0e6c316;border-radius:50%;box-shadow:0 0 0 24px #a0e6c308,0 0 0 70px #a0e6c305}.edge{stroke:#7aa896;stroke-width:1.4;opacity:.67}.edge.bad{stroke:var(--red);filter:drop-shadow(0 0 6px #ff597a88)}.edge.triad-bad{stroke:var(--rust);filter:drop-shadow(0 0 5px #f09b6888)}.node{width:62px;height:62px;border:1px solid #9eb7a77a;border-radius:50% 50% 46% 54%;background:radial-gradient(circle at 40% 35%,#1b3730,#091714 72%);box-shadow:0 0 0 5px #091512,0 9px 22px #0009,inset 0 0 16px #b4ffe611}.node:hover,.node.selected{border-color:var(--gold);box-shadow:0 0 0 5px #091512,0 0 28px #e7ef7955,0 0 54px #e7ef7918}.node-symbol{font-size:29px;text-shadow:0 0 14px currentColor}.node small{font:8px var(--mono);color:#a7b9ad}.node.unstable{border-color:var(--red);box-shadow:0 0 0 5px #091512,0 0 24px #ff718d55}.node.reflection-node{border-color:#63e4ea}.board-caption{z-index:1;left:18px;bottom:15px;color:#9ac2ad;font:8px var(--mono);letter-spacing:1.5px}.board-zoom{z-index:6;top:14px;right:14px;padding:4px;border:1px solid #6f938277;border-radius:3px;background:#071512d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.board-zoom button{border:1px solid transparent;border-radius:2px;color:var(--mint)}.board-zoom button:hover{border-color:#9ef0ce55;background:#18392e}.board-zoom output{min-width:42px;color:#d5e4d7;font:9px var(--mono)}.board-axis{background:#a0d8be18}.board-foot{padding:12px 2px;color:#98ad9e;font:8px var(--mono);letter-spacing:.7px}.legend{gap:13px}.actions{gap:8px;border-top:1px solid #52706444;padding:14px 0 10px}.actions button{border-radius:2px;padding:11px 15px;font:700 10px var(--mono);letter-spacing:.3px}.actions .primary,.forge-buttons button.primary,.export-actions button,.target-confirm{border:1px solid #e7ef79;background:linear-gradient(135deg,#e7ef79,#aabd54);color:#10180f;box-shadow:0 5px 18px #ddec6422}.actions .primary:hover,.forge-buttons button.primary:hover,.export-actions button:hover,.target-confirm:hover{transform:translateY(-2px);box-shadow:0 9px 24px #ddec6450}.actions .secondary,.actions .icon-button{border:1px solid #527064;background:#10231e;color:#d4e4d6}.actions .secondary:hover,.actions .icon-button:hover{border-color:var(--mint);background:#16342a;color:var(--mint)}.actions button small{font:8px var(--mono);color:inherit;opacity:.75}.action-explainer{color:#8fa99a;font-size:10px}.constraint-row{border-top:1px solid #52706422;padding-top:7px;color:#a4b9a9}.move-counter b{color:var(--gold)}.side-column{gap:12px}.side-column .panel{padding:17px 16px}.side-column .section-title{align-items:flex-start}.section-title h3{font-size:20px}.section-title .micro{color:#8ba398;font:8px var(--mono);letter-spacing:1px}.count-pill{border-color:#899957;color:var(--gold);background:#89995716}.law-row{height:35px;border-color:#29423a;color:#899f91}.law-row:hover{background:#142b24;color:var(--paper)}.law-row.known .law-number,.law-row.known .law-mark{color:var(--gold)}.law-row.active{background:#183127}.law-detail{border-color:var(--mint);background:#12251e;color:#e0eadb}.law-detail p{color:#b5c7b9}.law-detail small{color:#91a69a}.log-panel ul{max-height:170px}.log-panel li{border-color:#29423a;color:#b5c5b9}.log-panel li:before{color:var(--gold)}.move-entry{border-color:#29423a}.move-entry strong{color:#dce8dc}.move-entry small{color:#9caf9f}.move-analysis{border-color:#456253;background:#10211c}.effect-phase{border-color:#29423a}.notes-panel textarea,.notes-panel #notes{min-height:105px;border:1px solid #456253;border-radius:2px;background:#071512;color:var(--paper);padding:12px;font:11px/1.6 var(--mono)}.notes-panel #show-target{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;margin-top:10px;padding:12px;border:1px solid #94a95d;background:linear-gradient(115deg,#172719,#111d18);color:var(--gold);font:700 9px var(--mono);letter-spacing:1.3px;text-transform:uppercase;box-shadow:inset 0 0 20px #d6ef6c0b}.notes-panel #show-target:hover{border-color:var(--gold);background:#26311a;box-shadow:0 0 24px #e7ef7922}.notes-panel #show-target[hidden]{display:none}.lower-grid{gap:20px;margin-top:20px}.log-panel,.move-history-panel,.notes-panel{background:linear-gradient(145deg,#10221ff0,#0a1715f6)}.lower-grid .section-title h3{font-size:22px}footer{border-top:1px solid #29423a;padding-top:13px;color:#82998b;font:8px var(--mono);letter-spacing:.8px}footer label{color:#a1b5a7}.campaign-home{padding:20px;border:1px solid #52706455;background:linear-gradient(145deg,#10211dcf,#091613c9);box-shadow:0 14px 50px #0004}.campaign-home-head h2{font:italic 26px Georgia,serif;color:var(--paper)}.campaign-home-head p,.campaign-status{color:#a8bcae}.campaign-progress{color:var(--gold);font:9px var(--mono);letter-spacing:1.4px}.campaign-board{background:radial-gradient(ellipse,#17382d,#07110f)}.campaign-board:before{background-image:linear-gradient(#9ef0ce13 1px,transparent 1px),linear-gradient(90deg,#9ef0ce13 1px,transparent 1px)}.campaign-node{background:radial-gradient(circle at 40% 35%,#204234,#0a1713 75%);border-color:#8caa9777;box-shadow:0 0 0 5px #091512,0 8px 18px #0009}.campaign-node:hover{border-color:var(--gold);box-shadow:0 0 22px #e7ef7944}.campaign-node.revealed{border-color:var(--mint)}.export-dialog{border:1px solid #6f9482;background:linear-gradient(145deg,#10221f,#071210);color:var(--paper);box-shadow:0 28px 110px #000d}.export-dialog::backdrop{background:#020b09d9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.export-head h2{font:italic 26px Georgia,serif}.export-dialog>p{color:#a9bdb0}.export-dialog textarea{border-color:#456254;background:#071512;color:#cfe0d2}.export-actions button{border-radius:2px}.target-dialog{width:min(1020px,calc(100vw - 32px));max-height:calc(100vh - 36px);padding:0;overflow:auto;border:1px solid #a3d8bc88;border-radius:4px;background:#071210;color:var(--paper);box-shadow:0 35px 140px #000e,0 0 90px #53dfb31a}.target-dialog::backdrop{background:radial-gradient(ellipse at 50% 40%,#0a2822a8,#010807ed);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.target-dialog[open]{animation:projection-arrival .45s cubic-bezier(.2,.8,.2,1)}@keyframes projection-arrival{0%{opacity:0;transform:scale(.92) rotateX(5deg);filter:blur(8px)}to{opacity:1;transform:scale(1) rotateX(0);filter:blur(0)}}.target-dialog-inner{position:relative;padding:clamp(18px,4vw,36px);overflow:hidden;background:radial-gradient(ellipse at 50% 48%,#17342b99,transparent 55%),linear-gradient(145deg,#10211d,#071210)}.target-dialog-inner:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.12;background-image:linear-gradient(#9ef0ce24 1px,transparent 1px),linear-gradient(90deg,#9ef0ce24 1px,transparent 1px);background-size:26px 26px;-webkit-mask-image:radial-gradient(ellipse,#000,transparent 82%);mask-image:radial-gradient(ellipse,#000,transparent 82%)}.target-dialog-head,.target-dialog-foot,.target-legend{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:18px}.target-dialog-head .eyebrow{color:var(--mint);font:9px var(--mono);letter-spacing:2px}.target-dialog-head h2{margin:8px 0 2px;font:italic 38px Georgia,serif;letter-spacing:-.8px}.target-dialog-head p{margin:0;color:#9bb2a3;font:9px var(--mono);letter-spacing:.7px;text-transform:uppercase}.target-close{width:38px;height:38px;border:1px solid #527064;background:#0b1a17;color:var(--mint);font-size:25px}.target-close:hover{border-color:var(--gold);color:var(--gold);transform:rotate(90deg)}.target-display{position:relative;isolation:isolate;display:grid;place-items:center;width:min(100%,68vh,650px);aspect-ratio:1;margin:12px auto 0;overflow:hidden;border:1px solid #70978155;background:radial-gradient(circle,#112d25 0,#091714 64%,#06100e);box-shadow:inset 0 0 80px #0009,0 0 40px #9ef0ce0e}.target-grid{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.5;background-image:linear-gradient(#9ef0ce14 1px,transparent 1px),linear-gradient(90deg,#9ef0ce14 1px,transparent 1px);background-size:32px 32px;-webkit-mask-image:radial-gradient(ellipse,#000 20%,transparent 85%);mask-image:radial-gradient(ellipse,#000 20%,transparent 85%)}.target-orbit{position:absolute;left:50%;top:50%;border:1px solid #9ef0ce18;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none}.orbit-a{width:72%;height:72%;box-shadow:0 0 0 16px #9ef0ce07}.orbit-b{width:43%;height:43%;border-style:dashed}.target-board{position:absolute;top:3%;right:3%;bottom:3%;left:3%;z-index:1}.projection-wires{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible}.projection-wires line{stroke:#95cfb0;stroke-width:.55;opacity:.64;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 2px #9ef0ce66)}.projection-node{position:absolute;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;width:clamp(58px,8vw,84px);height:clamp(58px,8vw,84px);transform:translate(-50%,-50%);border:1px solid #a1c0aa88;border-radius:50% 50% 46% 54%;background:radial-gradient(circle at 40% 30%,#244239,#091714 76%);box-shadow:0 0 0 5px #071512,0 0 25px #9ef0ce17;animation:target-pulse 3s ease-in-out infinite}.projection-node:nth-of-type(3n){animation-delay:-1s}.projection-node>b{font-size:27px;line-height:1;text-shadow:0 0 13px currentColor}.projection-node>small{margin-top:3px;color:#bdd0c1;font:8px var(--mono)}.projection-node>em{position:absolute;top:calc(100% + 9px);color:#a9c0af;font:7px var(--mono);font-style:normal;letter-spacing:1px}.projection-node.state-0>b{color:var(--blue)}.projection-node.state-1>b{color:var(--gold)}.projection-node.state-2>b{color:var(--violet)}.projection-node.state-3>b{color:#fff4ac}.projection-node.unknown{opacity:.45;border-style:dashed}.projection-stamp{position:absolute;z-index:3;right:14px;top:14px;padding:8px 10px;border:1px solid #c8d87366;color:var(--gold);font:8px/1.5 var(--mono);letter-spacing:1.3px;transform:rotate(5deg);opacity:.8}.target-legend{padding:16px 0 14px;border-top:1px solid #52706444;border-bottom:1px solid #52706444}.target-legend p{max-width:275px;margin:0;color:#b3c6b7;font:italic 13px/1.5 Georgia,serif;text-align:right}.target-state-tally{display:flex;gap:7px;margin-top:9px;flex-wrap:wrap}.state-tally{display:flex;align-items:center;gap:5px;padding:6px 8px;border:1px solid #52706455;background:#0a1916;color:#b9cabc;font:8px var(--mono);letter-spacing:.4px}.state-tally i{font-style:normal;font-size:12px}.state-tally b{margin-left:4px;color:var(--paper)}.state-tally.state-0 i{color:var(--blue)}.state-tally.state-1 i{color:var(--gold)}.state-tally.state-2 i{color:var(--violet)}.state-tally.state-3 i{color:#fff4ac}.target-dialog-foot{padding-top:15px;color:#82998c;font:8px var(--mono);letter-spacing:1px}.target-confirm{padding:10px 13px;border-radius:2px;font:700 9px var(--mono);letter-spacing:.6px}.target-confirm span{margin-left:8px;font-size:14px}.target-layer{display:none}@keyframes target-pulse{0%,to{box-shadow:0 0 0 5px #071512,0 0 20px #9ef0ce15}50%{box-shadow:0 0 0 5px #071512,0 0 32px #9ef0ce35}}@media(max-width:1080px){.workspace{grid-template-columns:minmax(0,1fr) 285px}.top-actions{gap:2px}.top-actions .quiet{padding:9px 7px;font-size:8px}}@media(max-width:760px){.topbar{position:relative;height:auto;min-height:66px;align-items:center;flex-wrap:wrap;padding:10px 13px}.top-actions{flex:1 1 100%;overflow-x:auto;padding-bottom:2px}.top-actions .quiet{white-space:nowrap;font-size:8px}.intro{padding-left:15px}.intro:after{display:none}.intro h1{font-size:clamp(38px,10vw,58px)}.workspace,.lower-grid{grid-template-columns:1fr}.board-panel{padding:15px 12px}.puzzle-copy{gap:10px}.puzzle-copy>p,.objective{max-width:100%}.board-wrap{height:55vh;min-height:340px}.side-column{display:flex;position:static;max-height:none;overflow:visible}.side-column .research-panel{order:0}.side-column .notes-panel{order:1}.side-column .move-history-panel{order:2}.side-column .log-panel{order:3}.target-dialog-head h2{font-size:30px}.target-display{width:min(100%,58vh)}.target-dialog-foot{align-items:flex-start;flex-direction:column}.projection-node{width:clamp(45px,12vw,68px);height:clamp(45px,12vw,68px)}.projection-node>b{font-size:21px}.target-legend{align-items:flex-start;flex-direction:column}.target-legend p{text-align:left}}@media(max-width:420px){main{padding:22px 10px}.board-wrap{min-height:300px}.actions{gap:5px}.actions button{padding:9px 8px;font-size:8px}.inspected-inline{min-width:100%}.target-dialog-inner{padding:16px}.target-state-tally{gap:4px}.state-tally{padding:5px}.projection-node>em{font-size:6px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.tutorial-target-panel p{margin:9px 0 13px;color:#a8b9aa;font-size:10px;line-height:1.55}.tutorial-target-panel button{width:100%;padding:11px;border:1px solid #899957;background:linear-gradient(115deg,#24351f,#18281f);color:#e7ef79;font:700 9px var(--mono);letter-spacing:1px;text-transform:uppercase}.tutorial-target-panel button:hover{border-color:#e7ef79;box-shadow:0 0 20px #ddec6422}.forge-move-limit-option{display:grid;grid-template-columns:18px 1fr;align-items:center;gap:5px 9px;margin:10px 0 16px;padding:11px 13px;border:1px solid #29423a;background:#10211c;color:#dce8dc;font:700 10px var(--mono);letter-spacing:.5px}.forge-move-limit-option input{grid-row:span 2;accent-color:#ddec64;width:15px;height:15px}.forge-move-limit-option small{color:#9caf9f;font:9px/1.5 Manrope,system-ui,sans-serif;letter-spacing:0}:root{font-family:Consolas,Lucida Console,monospace;color:#d9e0e2;background:#1b1c1c;--bg:#1b1c1c;--panel:#202324;--line:#167aa0;--muted:#9caaad;--dim:#69777a;--gold:#74c05a;--mint:#5eae69;--blue:#70b9e8;--red:#b45a5c;--violet:#b2a7d2}body{background:#1b1c1c;color:#d9e0e2;min-height:100vh}main{width:min(100%,1800px);max-width:none;padding:14px 18px 12px;margin:auto}.topbar{height:54px;padding:0 18px;background:#405863;border-bottom:2px solid #087eaa}.brand{color:#f2f5f5}.sigil{color:#75c95e}.top-actions{gap:5px}.top-actions .quiet{border:1px solid #577986;background:#354a53;color:#e0e8ea}.top-actions .quiet:hover{background:#45626f;border-color:#30a5d0;color:#fff}.save-state{color:#d5e1e3}.save-state i{background:#70bd5c}.workspace{grid-template-columns:minmax(0,1fr) 270px;gap:12px;align-items:start}.board-panel{padding:12px;background:#1d1f20;border:1px solid #176887;box-shadow:0 0 0 1px #0c1113,0 12px 36px #0005}.panel{background:#202324;border:1px solid #225466;border-radius:0;box-shadow:none}.panel-head{min-height:38px;margin-bottom:6px}.panel-head h2{margin:2px 0 0;font:700 15px Consolas,Lucida Console,monospace;letter-spacing:.3px}.panel-head .eyebrow,.eyebrow{color:#7ab6c9;font:9px Consolas,monospace;letter-spacing:1.2px}.panel-head select{max-width:45%;background:#2b3336;border:1px solid #3c7182;color:#e1e8e9;padding:7px}.puzzle-copy{display:flex;align-items:center;gap:10px;margin:4px 0 8px;min-height:22px}.puzzle-copy p{margin:0;color:#aab7b9;font:10px/1.4 Consolas,monospace}.puzzle-state{color:#8fcf70;font:9px Consolas,monospace;white-space:nowrap}.board-wrap{height:min(58vh,640px);min-height:370px;aspect-ratio:auto;border:1px solid #1c5369;border-radius:0;background:#191b1c;box-shadow:inset 0 0 80px #0005}.board-wrap:before{background-image:linear-gradient(#29465016 1px,transparent 1px),linear-gradient(90deg,#29465016 1px,transparent 1px);background-size:28px 28px}.board-caption{color:#6c7b7e}.board-foot{padding:7px 3px 2px;justify-content:flex-end;color:#bac5c7}.legend{gap:11px;font-size:9px}.legend span{white-space:nowrap}.board-zoom button{border-radius:0;background:#2e4148;border-color:#46707e;color:#dbe5e7}.tutorial-target-panel{position:absolute;z-index:5;top:12px;left:12px;width:clamp(172px,22%,224px);padding:9px;background:#242a2c;border:1px solid #3989a4;box-shadow:0 8px 26px #0009}.tutorial-target-panel[hidden]{display:none}.tutorial-target-panel h3{margin:3px 0 0;color:#ecf0f0;font:700 13px Consolas,monospace}.tutorial-target-preview{position:relative;width:100%;height:146px;margin-top:8px;overflow:hidden;border:1px solid #324e57;background:#181b1c}.tutorial-target-preview .target-board{top:4%;right:4%;bottom:4%;left:4%}.tutorial-target-preview .projection-wires line{stroke:#7d9ca3;stroke-width:.7;opacity:.85;filter:none}.tutorial-target-preview .projection-node{width:clamp(20px,3vw,30px);height:clamp(20px,3vw,30px);border:1px solid #63818a;border-radius:50%;background:#27383d;box-shadow:0 0 0 2px #161a1b;animation:none}.tutorial-target-preview .projection-node>b{font-size:12px}.tutorial-target-preview .projection-node>small{margin:0;color:#e3eaeb;font:6px Consolas,monospace}.tutorial-target-preview .projection-node>em{display:none}.tutorial-target-preview .projection-stamp{display:none}.target-open-button{width:100%;margin-top:7px;padding:7px;border:1px solid #37849a;background:#263c43;color:#cce8ed;font:700 8px Consolas,monospace;text-transform:uppercase;letter-spacing:.7px}.target-open-button:hover{background:#31515b;border-color:#5fb5ce}.side-column{gap:10px}.side-column .panel{padding:11px}.research-panel{min-height:0;flex:0 1 auto}.research-panel .section-title{padding:0 2px 8px}.section-title h3{font:700 14px Consolas,monospace}.law-row{height:29px;border-color:#30393b;color:#aeb9bb}.law-row:hover{background:#2c383b;color:#fff}.law-row.active{background:#303c3f}.law-row.known .law-number,.law-row.known .law-mark{color:#7cc35e}.law-detail{max-height:31vh;overflow:auto;margin-top:7px;border-left-color:#68b957;background:#282d2e;color:#d8e1e1;padding:8px;font:10px/1.45 Consolas,monospace}.law-detail p{color:#b9c4c5}.law-detail small{color:#94a4a6}.move-history-panel{padding:11px!important}.move-history-panel .section-title{align-items:center}.move-history-panel .micro{font:8px Consolas,monospace}.move-list{max-height:clamp(120px,30vh,280px);margin-top:6px}.move-entry{border-color:#333c3e;padding:7px 0}.move-entry strong{color:#e1e7e8;font:10px Consolas,monospace}.move-entry small{color:#a3b0b2;font:8px/1.4 Consolas,monospace}.move-analysis{border-color:#39575e;background:#252b2d}.effect-phase{border-color:#354548}.move-list>li.muted{color:#89989a}.actions{gap:8px;align-items:center;margin-top:7px;padding:9px 8px;border:1px solid #155f7a;background:#25292a}.actions button{min-width:122px;padding:9px 12px;border-radius:0;font:700 10px Consolas,monospace}.actions .primary{border:1px solid #44984b;background:#31823b;color:#f0f5f0;box-shadow:none}.actions .primary:hover{background:#3b9848;transform:none;box-shadow:none}.actions .secondary{border:1px solid #48707e;background:#354a52;color:#e1e9ea}.actions .secondary:hover{background:#42606a;border-color:#4ba5c6}.actions .icon-button{min-width:38px;width:38px;height:36px;border:1px solid #47707b;background:#30444a;color:#dce6e7}.actions .icon-button:hover{background:#3b565e;border-color:#34a0c4}.actions button:disabled{opacity:.35}.move-counter{margin:0 4px;color:#c1ccce;font:9px Consolas,monospace;white-space:nowrap}.move-counter b{color:#83cb66}.action-spacer{flex:1}footer{justify-content:flex-end;margin-top:8px;color:#819195;font:8px Consolas,monospace}.side-column .move-history-panel{order:2}.side-column .research-panel{order:1}.intro,.log-panel,.notes-panel,.action-explainer,.constraint-row{display:none!important}.experiment-map{border-color:#1d687e;background:#222829}.experiment-map-head{color:#e3eaeb}.experiment-map p{color:#aebabc}.primary,.secondary,.quiet,.icon-button{border-radius:0}.export-dialog,.target-dialog{border-radius:0;border-color:#28758d;background:#1c2021;color:#e0e7e8}.export-dialog::backdrop,.target-dialog::backdrop{background:#080b0ce8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.target-dialog-inner{background:radial-gradient(ellipse at 50% 48%,#203b3299,transparent 55%),linear-gradient(145deg,#202627,#151819)}.target-display{border-radius:0;background:#181b1c;border-color:#366273}.target-confirm{border-radius:0;background:linear-gradient(135deg,#398944,#286b36);border-color:#4d9b55;color:#fff;box-shadow:none}@media(max-width:900px){.workspace{grid-template-columns:minmax(0,1fr) 235px}.board-wrap{height:54vh;min-height:340px}.actions button{min-width:100px;padding:8px}.side-column{gap:8px}}@media(max-width:700px){main{padding:9px}.workspace{grid-template-columns:1fr}.board-wrap{height:55vh;min-height:310px}.side-column{display:grid;grid-template-columns:1fr 1fr}.side-column .research-panel,.side-column .move-history-panel{grid-column:1/-1}.topbar{height:auto;min-height:50px;flex-wrap:wrap;padding:7px 10px}.top-actions{flex:1 1 100%;overflow:auto}.actions{flex-wrap:wrap}.action-spacer{display:none}.move-counter{margin-left:auto}.tutorial-target-panel{width:clamp(150px,36%,205px)}.tutorial-target-preview{height:122px}.puzzle-copy{align-items:flex-start;flex-direction:column;gap:3px}}.state-0 .node-symbol,.yin,.projection-node.state-0>b,.state-tally.state-0 i{color:#fff}.state-1 .node-symbol,.projection-node.state-1>b,.state-tally.state-1 i{color:#090b0e;-webkit-text-stroke:.55px #f5f7f8;text-shadow:0 0 2px #f5f7f8}.yang{color:#c1ccce}.yang:first-letter{color:#090b0e;-webkit-text-stroke:.55px #f5f7f8;text-shadow:0 0 2px #f5f7f8}.forge-node.state-1{color:#090b0e;text-shadow:0 0 2px #f5f7f8}.state-tally.state-1{background:#e5e9ec;color:#090b0e;border-color:#fff}.state-tally.state-1 b{color:#090b0e}.boundary-mark{border-color:#d9e2ed;color:#fff;text-shadow:-.5px -.5px #000,.5px .5px #000}
