/* Circuiti in gioco: native SVG, pointer/touch drag and drop, and keyboard controls. */
.logic-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px}.logic-heading .eyebrow{margin-bottom:8px}.logic-heading h1{margin:0!important}.logic-title-dot{color:var(--accent)}.logic-heading-tag{font-size:.8rem;font-weight:700;padding:9px 14px;border-radius:999px;background:var(--accent-soft);color:var(--accent);white-space:nowrap}.logic-scoreboard{display:flex;align-items:center;gap:32px;padding:18px 24px;background:var(--white);border:1px solid var(--line);border-radius:18px;margin-bottom:22px}.logic-scoreboard>div{display:flex;align-items:center;gap:13px}.logic-scoreboard strong{font-size:1.6rem;line-height:1.2;display:block;letter-spacing:-.04em}.logic-scoreboard small{display:block;color:var(--muted);font-size:.75rem}.logic-scoreboard em{font-size:.9rem;font-style:normal;color:var(--muted);font-weight:500}.logic-score-icon{font-size:1.6rem;display:grid;place-items:center;width:44px;height:44px;background:var(--accent-soft);color:var(--accent);border-radius:12px}.logic-score-icon svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.7}.logic-scoreboard progress{width:90px;height:6px;accent-color:var(--accent)}.logic-preview{margin-left:auto;font-size:.75rem;color:var(--accent);font-weight:650}.logic-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:26px;align-items:start}.logic-map{background:var(--white);border:1px solid var(--line);border-radius:18px;overflow:hidden;position:sticky;top:18px}.logic-map summary{font-weight:750;padding:18px;cursor:pointer;display:flex;justify-content:space-between;align-items:center}.logic-map summary span{color:var(--accent);font-size:.75rem;background:var(--accent-soft);border-radius:6px;padding:3px 7px}.logic-map nav{max-height:760px;max-height:min(76vh,900px);overflow-y:auto;padding:0 8px 12px;scrollbar-width:thin;scrollbar-color:var(--field-border) transparent}.logic-chapter{font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:18px 10px 8px}.logic-level{display:flex;align-items:center;gap:9px;text-align:left;width:100%;padding:10px;border:1px solid transparent;border-radius:11px;background:transparent;color:var(--ink);font-size:.75rem;line-height:1.4;min-height:62px;cursor:pointer}.logic-level>span:nth-child(2){flex:1}.logic-level small{display:block;color:var(--muted);font-size:.64rem;margin-top:3px}.logic-level:hover{background:var(--soft)}.logic-level.is-current{border-color:var(--accent);background:var(--accent-soft)}.logic-level-number{display:grid;place-items:center;width:29px;height:29px;flex-shrink:0;border:1px solid var(--line);background:var(--white);border-radius:9px;font:650 .68rem ui-monospace,monospace;color:var(--muted)}.logic-level.is-current .logic-level-number{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.logic-level.is-complete .logic-level-number{border-color:var(--success-text);color:var(--success-text)}.logic-level-stars{display:flex;gap:0}.logic-star{display:inline-flex;color:var(--field-border)}.logic-star svg{width:13px;height:13px;stroke:currentColor;stroke-width:1.6;fill:none}.logic-star.is-earned{color:#bf8c26}.logic-star.is-earned svg{fill:#ecc458;stroke:#bf8c26}.logic-workbench{min-width:0}.logic-level-heading{display:flex;justify-content:space-between;align-items:center;gap:20px}.logic-level-heading .eyebrow{font-size:.65rem;margin:0 0 7px}.logic-level-heading h2{font-size:clamp(1.4rem,2.4vw,2rem);line-height:1.2;letter-spacing:-.025em;margin:0}.logic-points-badge{display:block;text-align:right;font-size:1.9rem;font-weight:800;color:var(--accent);line-height:1.15}.logic-points-badge small{display:block;font-size:.65rem;letter-spacing:0;font-weight:550;color:var(--muted);white-space:nowrap}.logic-instructions{font-size:.85rem;color:var(--muted);margin:12px 0 16px;max-width:80ch}.logic-board{--signal:#67eed1;--signal-glow:#3ad8bb4d;position:relative;background:radial-gradient(ellipse at 50% 5%,#1b3545 0%,#111f2c 48%,#0c1720 100%);border:1px solid #3b5967;border-radius:22px;overflow:hidden;box-shadow:0 14px 36px #0a1c3020,inset 0 1px 0 #ffffff0d}.logic-board-caption{display:flex;justify-content:space-between;padding:16px 20px 0;color:#9ab7c7;letter-spacing:.14em;font:650 .6rem ui-monospace,monospace;gap:10px}.logic-board-caption>span{display:flex;align-items:center;gap:8px}.logic-board-caption i{width:6px;height:6px;border-radius:50%;background:var(--signal);box-shadow:0 0 9px var(--signal-glow)}.logic-circuit{display:block;width:100%;max-height:650px;aspect-ratio:640/530;overflow:visible}.logic-wire{stroke:#607f90;stroke-width:3;fill:none;stroke-linecap:round;transition:stroke .25s}.logic-wire.is-on{stroke:var(--signal);filter:drop-shadow(0 0 3px var(--signal-glow));stroke-dasharray:8 4;animation:logic-flow 2.2s linear infinite}.logic-wire.is-unknown{stroke:#536b7b;stroke-dasharray:4 7}.logic-symbol{stroke:#bdd0db;stroke-width:2.4;fill:#192e3a;stroke-linecap:round;stroke-linejoin:round}.logic-node.is-one .logic-symbol{stroke:var(--signal);fill:#183d40}.logic-node-label{fill:#a1bac8;font:650 18px ui-monospace,monospace;letter-spacing:.025em;pointer-events:none}.logic-gate-question{fill:#d0dee7;stroke:none;font:700 29px ui-monospace,monospace}.logic-hit{fill:transparent;stroke:transparent;stroke-width:2;pointer-events:all}.logic-node.is-editable,.logic-input.is-editable{cursor:pointer;outline:0}.logic-node.is-editable .logic-hit{fill:#1d364066;stroke:#608393;stroke-dasharray:4 5}.logic-node.is-editable:hover .logic-hit,.logic-node:focus-visible .logic-hit,.logic-input.is-editable:hover .logic-hit,.logic-input:focus-visible .logic-hit,.is-drop-over .logic-hit{stroke:var(--signal);fill:#204b4c77;stroke-dasharray:none;filter:drop-shadow(0 0 5px var(--signal-glow))}.logic-bit-body{fill:#142c3b;stroke:#7f9baa;stroke-width:2}.logic-input.is-one .logic-bit-body{stroke:var(--signal);fill:#174740}.logic-bit-value{fill:#e0ebf0;font:700 37px ui-monospace,monospace;pointer-events:none}.logic-input.is-one .logic-bit-value{fill:var(--signal)}.logic-input-label{font:650 20px ui-monospace,monospace;fill:#a0bac8;pointer-events:none}.logic-output rect{fill:#122531;stroke:#668492;stroke-width:2}.logic-output circle{fill:#647b89}.logic-output text{fill:#adc3d1;font:750 21px ui-monospace,monospace;letter-spacing:.04em}.logic-output.is-one rect{fill:#123b37;stroke:var(--signal);filter:drop-shadow(0 0 9px var(--signal-glow))}.logic-output.is-one circle{fill:var(--signal)}.logic-output.is-one text{fill:#91ffe3}.logic-board.is-won{border-color:#48bca7;box-shadow:0 6px 30px #2cb69b22}.logic-palette{display:flex;align-items:center;gap:18px;padding:16px 18px;border:1px solid var(--line);border-radius:15px;background:var(--white);margin-top:14px}.logic-palette>div:first-child{flex:0 0 150px}.logic-palette strong{font-size:.85rem;display:block}.logic-palette small{color:var(--muted);font-size:.7rem;display:block}.logic-tokens{display:flex;gap:9px;flex-wrap:wrap;min-width:0}.logic-token{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:75px;min-height:80px;padding:8px 12px;border:1px solid var(--field-border);border-radius:12px;background:var(--soft);color:var(--ink);cursor:grab;touch-action:none;user-select:none;font:700 .65rem ui-monospace,monospace;transition:background .15s,border-color .15s,box-shadow .15s}.logic-token svg{width:43px;height:43px}.logic-token .logic-symbol{stroke:var(--accent);fill:var(--white);stroke-width:3}.logic-token-bit{font:750 1.8rem ui-monospace,monospace;line-height:1.3;color:var(--accent)}.logic-token:hover,.logic-token.is-selected{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 2px var(--accent-soft)}.logic-token:active{cursor:grabbing}.logic-ghost{position:fixed;z-index:10000;pointer-events:none;transform:translate(-50%,-50%) rotate(-5deg);display:grid;place-items:center;min-width:72px;height:64px;padding:12px;border:2px solid #67eed1;background:#163d40;color:#a6ffea;box-shadow:0 10px 28px #021b3655,0 0 18px #67eed133;border-radius:13px;font:750 1.2rem ui-monospace,monospace}.logic-feedback{min-height:44px;padding:12px 3px;color:var(--muted);font-size:.8rem}.logic-actions{display:flex;gap:9px;flex-wrap:wrap}.logic-actions .primary-button{flex:1 1 220px}.logic-actions button{font-size:.8rem;min-height:45px}.logic-rules{font-size:.7rem;color:var(--muted);margin:12px 0 20px;line-height:1.6}.logic-hint,.logic-reset{border:1px solid var(--line);background:var(--accent-soft);padding:15px;border-radius:12px;font-size:.85rem;margin:0 0 14px}.logic-error{padding:14px;border:1px solid var(--warning-border);background:var(--warning-bg);color:var(--warning-text);border-radius:12px;margin:12px 0;font-size:.85rem}.logic-error button{margin:8px 0 0}.logic-victory{display:flex;align-items:center;flex-wrap:wrap;gap:18px;padding:20px;border:1px solid color-mix(in srgb,var(--success-text) 35%,var(--line));border-radius:16px;background:var(--success-bg);margin-bottom:16px;animation:logic-arrive .4s ease-out}.logic-victory h3{margin:0;color:var(--success-text);font-size:1.2rem}.logic-victory p{margin:3px 0;font-size:.8rem;color:var(--muted)}.logic-victory .primary-button{margin-left:auto}.logic-big-stars{display:flex;gap:3px}.logic-big-stars svg{width:29px;height:29px}.logic-reference{border-top:1px solid var(--line);padding-top:15px}.logic-reference summary{font-weight:650;cursor:pointer;min-height:40px;font-size:.85rem}.logic-reference>p{font-size:.8rem;color:var(--muted)}.logic-reference-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.logic-reference-grid article{border:1px solid var(--line);border-radius:12px;background:var(--white);padding:14px}.logic-reference-grid svg{display:block;width:46px;height:46px;margin-bottom:7px}.logic-reference-grid .logic-symbol{stroke:var(--accent);fill:var(--soft)}.logic-reference-grid p{font-size:.73rem;color:var(--muted);margin:4px 0}.logic-layout button:focus-visible,.logic-map summary:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
@keyframes logic-flow{to{stroke-dashoffset:-24}}@keyframes logic-arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(min-width:1600px){.logic-layout{grid-template-columns:290px minmax(0,1fr)}.logic-workbench{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:0 20px}.logic-level-heading,.logic-instructions,.logic-feedback,.logic-actions,.logic-rules,.logic-victory,.logic-reference,.logic-hint,.logic-reset,.logic-error{grid-column:1/-1}.logic-board{grid-column:1;grid-row:3/span 2;min-width:0}.logic-palette{grid-column:2;grid-row:3;flex-direction:column;align-items:stretch;margin:0;align-self:start}.logic-palette>div:first-child{flex:auto}.logic-tokens{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.logic-token{min-width:0}.logic-circuit{max-height:600px}}
@media(max-width:1050px){.logic-layout{grid-template-columns:230px minmax(0,1fr);gap:18px}.logic-level-stars{display:none}.logic-heading-tag{display:none}.logic-palette{flex-direction:column;align-items:stretch;gap:10px}.logic-palette>div:first-child{flex:auto}.logic-token{min-width:65px;min-height:75px;padding:7px 10px}.logic-scoreboard{gap:22px}.logic-scoreboard progress{display:none}}
@media(max-width:760px){.logic-layout{display:flex;flex-direction:column;gap:18px}.logic-map{position:static;width:100%;order:2}.logic-workbench{width:100%;order:1}.logic-map nav{max-height:400px}.logic-heading{margin-bottom:12px}.logic-scoreboard{gap:18px;justify-content:space-between;padding:14px;flex-wrap:wrap}.logic-scoreboard>div{gap:7px}.logic-scoreboard strong{font-size:1.2rem}.logic-scoreboard small{font-size:.62rem}.logic-score-icon{width:31px;height:31px;font-size:1.2rem;border-radius:8px}.logic-score-icon svg{width:18px;height:18px}.logic-preview{width:100%;margin:0}.logic-points-badge{font-size:1.5rem}.logic-board{border-radius:16px}.logic-board-caption{font-size:.5rem;letter-spacing:.08em;padding:12px 12px 0}.logic-level-heading .eyebrow{font-size:.56rem}.logic-instructions{font-size:.78rem}.logic-palette{padding:12px}.logic-token{min-width:65px}.logic-tokens{gap:7px}.logic-actions button{flex:1 1 auto}.logic-actions .primary-button{flex-basis:100%}.logic-victory .primary-button{margin-left:0;width:100%}.logic-level-stars{display:flex}.logic-circuit{max-height:none}.logic-victory{padding:16px;gap:12px}}
@media(prefers-reduced-motion:reduce){.logic-wire.is-on,.logic-victory{animation:none}.logic-token,.logic-wire{transition:none}}

.logic-port{stroke:#607f90;stroke-width:3;fill:none;stroke-linecap:round}.logic-port.is-on{stroke:var(--signal)}

.logic-fullscreen{margin-left:auto;font-size:.75rem;min-height:42px}#logic-root:fullscreen{background:var(--paper);padding:20px 30px;overflow-y:auto;width:100%;height:100%;}#logic-root:fullscreen .logic-map{display:none}#logic-root:fullscreen .logic-layout{grid-template-columns:1fr;max-width:1500px;margin:0 auto}#logic-root:fullscreen .logic-scoreboard{max-width:1500px;margin:0 auto 18px}#logic-root:fullscreen .logic-circuit{max-height:min(590px,calc(100dvh - 360px))}@media(max-width:760px){.logic-fullscreen{margin-left:0;font-size:.65rem;padding:8px}.logic-scoreboard{gap:12px}#logic-root:fullscreen{padding:12px}#logic-root:fullscreen .logic-circuit{max-height:none}}
.logic-output.is-zero rect{fill:#3a141c;stroke:#ff5d6c;filter:drop-shadow(0 0 9px #ff5d6c55)}
.logic-output.is-zero circle{fill:#ff5d6c}
.logic-output.is-zero text{fill:#ffb1b9}
.logic-output.is-hidden rect{stroke:#9aa9ff;stroke-dasharray:6 5}
.logic-output.is-hidden circle{fill:#9aa9ff}
.logic-output.is-hidden text{fill:#c9d0ff}
.logic-wire.is-hidden{stroke:#8e9bd6;stroke-dasharray:1 7}
