:root{--accent:#0d9488;--accent-light:#14b8a6;--accent-faint:#0d94881a;--accent-dark:#0f766e;--interactive:#0d9488;--interactive-hover:#0f766e;--node-fill:#0d9488;--node-stroke:#0f766e;--node-inactive:var(--dimmed);--edge-stroke:var(--ink-light);--edge-inactive:var(--rule);--path-active:#0d9488;--path-complete:#0d9488;--degree-even:#0d9488;--degree-odd:#d97706;--degree-odd-bg:#d977061a;--state-correct:var(--success);--state-wrong:#dc2626;--state-wrong-bg:#dc262614;--state-missed:var(--dimmed);--state-selected:#0d9488;--state-hover:#0d948826;--bridge-protected:#dc2626;--component-a:#0d9488;--component-b:#d97706;--tree-edge:#0d9488;--removed-edge:var(--rule);--gate-bg:var(--bg-subtle);--gate-border:var(--rule);--gate-correct:var(--success);--gate-incorrect:#d97706}blockquote.formula{border-left-color:var(--accent)}.graph-node{cursor:pointer;transition:opacity .2s ease-out}.graph-node:hover{filter:brightness(1.1)}.graph-node.inactive{fill:var(--node-inactive);stroke:var(--node-inactive)}.graph-node.even{fill:var(--degree-even);stroke:var(--accent-dark)}.graph-node.odd{fill:var(--degree-odd);stroke:#b45309}.graph-node.selected{stroke:var(--ink);stroke-width:2.5px}.graph-node.ghost{opacity:.2;stroke-dasharray:3 2}.graph-node.cut-vertex{fill:var(--degree-odd)}.graph-edge{stroke:var(--edge-stroke);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;transition:stroke .2s ease-out,stroke-width .2s ease-out,opacity .2s ease-out}.graph-edge.active{stroke:var(--path-active);stroke-width:3px}.graph-edge.removed{stroke:var(--removed-edge);stroke-width:1px;stroke-dasharray:4 3}.graph-edge.protected-flash{stroke:var(--bridge-protected);stroke-width:3px}.graph-edge.tree{stroke:var(--tree-edge);stroke-width:2.5px}.graph-edge.bridge{stroke:var(--tree-edge);stroke-width:3px}.graph-edge.clickable{cursor:pointer}.graph-edge.clickable:hover{stroke-width:4px;filter:brightness(1.2)}.edge-hit-area{stroke:#0000;stroke-width:16px;fill:none;cursor:pointer;pointer-events:stroke}.degree-label{font-variant-numeric:tabular-nums;fill:var(--bg);text-anchor:middle;dominant-baseline:central;pointer-events:none;font-family:Source Code Pro,Menlo,monospace;font-size:11px}.degree-label-outer{font-variant-numeric:tabular-nums;fill:var(--ink);text-anchor:middle;pointer-events:none;font-family:Source Code Pro,Menlo,monospace;font-size:11px}.graph-status{color:var(--ink-light);padding:var(--space-sm) var(--space-md);background:var(--bg-subtle);margin-bottom:var(--space-sm);border-radius:4px;font-family:"Source Sans 3",system-ui,sans-serif;font-size:.875rem;font-weight:500}.konigsberg-map{max-width:720px;margin:0 auto}.konigsberg-map svg{width:100%;height:auto;display:block}.konigsberg-message{text-align:center;min-height:1.5rem;color:var(--ink-light);margin-top:var(--space-sm);font-family:"Source Sans 3",system-ui,sans-serif;font-size:.9375rem}.konigsberg-controls{align-items:center;gap:var(--space-sm);margin-top:var(--space-sm);flex-direction:column;display:flex}.konigsberg-prompt{color:var(--ink-light);font-family:"Source Sans 3",system-ui,sans-serif;font-size:.875rem;transition:opacity .3s ease-out}.konigsberg-prompt.faded{opacity:0}.abstraction-reveal{max-width:960px;margin:0 auto}.abstraction-panels{background:var(--rule);border:1px solid var(--rule);border-radius:4px;gap:1px;display:flex;overflow:hidden}.abstraction-panel{background:var(--bg);min-width:200px;padding:var(--space-sm);flex:1}.abstraction-panel svg{width:100%;height:auto;display:block}.panel-label{text-align:center;margin-bottom:var(--space-xs)}.abstraction-controls{margin-top:var(--space-md);justify-content:center;display:flex}.abstraction-caption{text-align:center;margin-top:var(--space-md);transition:opacity .3s ease-out}.kgraph-builder{max-width:960px;margin:0 auto}.kgraph-panels{background:var(--rule);border:1px solid var(--rule);border-radius:4px;gap:1px;display:flex;overflow:hidden}.kgraph-map{background:var(--bg);min-width:200px;padding:var(--space-sm);flex:2}.kgraph-map svg{width:100%;height:auto;display:block}.kgraph-canvas{background:var(--bg);min-width:260px;padding:var(--space-sm);flex:3;position:relative}.kgraph-canvas svg{width:100%;height:auto;display:block}.kgraph-counter{bottom:var(--space-sm);right:var(--space-sm);color:var(--ink-light);font-family:Source Code Pro,Menlo,monospace;font-size:.8125rem;position:absolute}.kgraph-controls{margin-top:var(--space-md);justify-content:center;display:flex}.path-finder{max-width:700px;margin:0 auto}.path-finder svg{width:100%;height:auto;display:block}.path-finder-controls{gap:var(--space-sm);margin-top:var(--space-md);justify-content:center;display:flex}.handshaking-discovery{gap:var(--space-lg);flex-direction:column;display:flex}.handshaking-graph{align-items:center;gap:var(--space-md);display:flex}.handshaking-graph svg{flex-shrink:0;width:250px;height:180px}.handshaking-info{gap:var(--space-sm);flex-direction:column;display:flex}.handshaking-info .ui-label{font-family:Source Code Pro,Menlo,monospace;font-size:.8125rem}.degree-sum-input{align-items:center;gap:var(--space-sm);display:flex}.degree-sum-input input{text-align:center;border:1px solid var(--rule);width:5ch;padding:var(--space-xs) var(--space-sm);background:var(--bg);min-height:44px;color:var(--ink);border-radius:4px;font-family:Source Code Pro,Menlo,monospace;font-size:1rem}.degree-sum-input input:focus-visible{outline:2px solid var(--interactive);outline-offset:2px}.degree-sum-result{color:var(--ink-light);min-height:1.5rem;font-family:Source Code Pro,Menlo,monospace;font-size:.875rem}.degree-sum-result .correct{color:var(--state-correct)}.degree-sum-result .accent{color:var(--accent)}.handshaking-relationship{text-align:center;padding:var(--space-md);background:var(--bg-subtle);border-radius:4px}.relationship-input{text-align:center;border:1px solid var(--rule);width:8ch;padding:var(--space-xs) var(--space-sm);background:var(--bg);min-height:44px;color:var(--ink);border-radius:4px;font-family:Source Code Pro,Menlo,monospace;font-size:1rem}.relationship-input:focus-visible{outline:2px solid var(--interactive);outline-offset:2px}.drawing-canvas-wrapper{max-width:800px;margin:0 auto}.drawing-canvas{border:1px solid var(--rule);background:var(--bg);cursor:crosshair;border-radius:4px;min-height:400px;position:relative}.drawing-canvas svg{width:100%;height:100%;display:block}.parity-counter{padding:var(--space-xs) var(--space-md);background:var(--bg-subtle);margin-bottom:var(--space-sm);border-radius:4px;font-family:"Source Sans 3",system-ui,sans-serif;font-size:.875rem;font-weight:600;display:inline-block}.parity-counter #parityCount{color:var(--degree-odd);font-family:Source Code Pro,Menlo,monospace}.odd-degree-controls{gap:var(--space-sm);margin-top:var(--space-md);justify-content:center;display:flex}.odd-degree-hint{color:var(--ink-light);text-align:center;margin-top:var(--space-md);font-family:"Source Sans 3",system-ui,sans-serif;font-size:.875rem;font-style:italic;transition:opacity .3s ease-out}.odd-degree-explanation{text-align:center;padding:var(--space-md);margin-top:var(--space-md);background:var(--bg-subtle);border-left:3px solid var(--accent);border-radius:4px;transition:opacity .3s ease-out}.euler-builder{max-width:600px;margin:0 auto}.euler-builder svg{width:100%;height:auto;display:block}.euler-status{text-align:center}.status-word{font-weight:600}.status-word.impossible{color:var(--state-wrong)}.status-word.possible{color:var(--state-correct)}.euler-toolbar{gap:var(--space-md);margin-top:var(--space-md);flex-wrap:wrap;justify-content:center;align-items:center;display:flex}.tree-pruner{max-width:700px;margin:0 auto}.tree-pruner svg{width:100%;height:auto;display:block}.tree-counter{text-align:center;font-variant-numeric:tabular-nums;font-family:Source Code Pro,Menlo,monospace;font-size:1rem}.tree-pruner-message{text-align:center;color:var(--accent);margin-top:var(--space-md);font-family:"Source Sans 3",system-ui,sans-serif;font-size:.9375rem;font-weight:500;transition:opacity .3s ease-out}.fragility-explorer{max-width:700px;margin:0 auto}.fragility-explorer svg{width:100%;height:auto;display:block}.fragility-toolbar{gap:var(--space-md);margin-bottom:var(--space-sm);flex-wrap:wrap;justify-content:center;align-items:center;display:flex}.fragility-counter{text-align:center;color:var(--ink-light);margin-top:var(--space-sm);font-family:"Source Sans 3",system-ui,sans-serif;font-size:.875rem;font-weight:500}.small-world{max-width:960px;margin:0 auto}.small-world-layout{gap:var(--space-md);align-items:flex-start;display:flex}.small-world-canvas-wrap{border:1px solid var(--rule);background:var(--bg);border-radius:4px;flex:1;position:relative;overflow:hidden}.small-world-canvas-wrap canvas{width:100%;height:auto;display:block}.small-world-overlay{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}.small-world-log{background:var(--bg-subtle);width:200px;padding:var(--space-sm);border-radius:4px;flex-shrink:0;max-height:400px;overflow-y:auto}.small-world-log .ui-label{margin-bottom:var(--space-xs);border-bottom:1px solid var(--rule);padding-bottom:var(--space-xs)}#smallWorldLogEntries{color:var(--ink-light);font-family:Source Code Pro,Menlo,monospace;font-size:.75rem;line-height:1.6}.small-world-controls{gap:var(--space-sm);margin-top:var(--space-md);flex-wrap:wrap;justify-content:center;display:flex}.small-world-stats{text-align:center;color:var(--ink-light);margin-top:var(--space-sm);min-height:1.5rem;font-family:Source Code Pro,Menlo,monospace;font-size:.875rem}@media (width<=1099px){.small-world-log{width:160px}}@media (width<=768px){.abstraction-panels,.kgraph-panels{flex-direction:column}.kgraph-map{max-height:200px}.handshaking-graph{text-align:center;flex-direction:column}.handshaking-graph svg{width:100%;max-width:300px}.drawing-canvas{min-height:300px}.euler-toolbar,.fragility-toolbar{flex-direction:column;align-items:stretch}.small-world-layout{flex-direction:column}.small-world-log{width:100%;max-height:200px}.small-world-controls{flex-direction:column;align-items:stretch}}@media (prefers-reduced-motion:reduce){.konigsberg-map *,.abstraction-reveal *,.kgraph-builder *,.path-finder *,.handshaking-discovery *,.drawing-canvas-wrapper *,.euler-builder *,.tree-pruner *,.fragility-explorer *,.small-world *{transition-duration:0s!important;animation-duration:0s!important}}
