
*{box-sizing:border-box}body{margin:0;font-family:Arial,sans-serif;background:#202526;color:#ecece6}button,input{font:inherit}button{cursor:pointer}header{height:72px;border-bottom:1px solid #444;display:flex;align-items:center;justify-content:space-between;padding:0 32px}header strong{letter-spacing:5px;font-size:24px}em{color:#eeb45f;font-style:normal}button{border:1px solid #59605f;background:transparent;color:inherit;padding:10px 16px;border-radius:5px}button:focus-visible{outline:3px solid #eeb45f}main{height:calc(100dvh - 72px);display:grid;grid-template-columns:42% 58%}.machine{padding:20px 30px;display:flex;flex-direction:column;justify-content:center;background:radial-gradient(ellipse,#394041,#171c1d)}.dial{position:relative;width:min(100%,510px);aspect-ratio:1;margin:auto}#engine{width:100%;height:100%;touch-action:none;cursor:grab}#engine:active{cursor:grabbing}.navbtn{position:absolute;transform:translate(-50%,-50%);border:0;padding:7px;font-size:13px;background:#232829d9;white-space:nowrap}.navbtn.active{color:#ffc775;box-shadow:0 2px #eeb45f}.help{text-align:center;color:#b0b7b6;font-size:12px;margin:4px 0 16px}.scope{border:1px solid #59605f;border-radius:8px;padding:12px;max-width:510px;width:100%;margin:auto}.scopehead{display:flex;justify-content:space-between;font-size:12px}.legend{display:flex;gap:20px;font-size:11px;margin-top:5px}.plot{width:100%;height:88px;display:block}.right{background:#f3f1eb;color:#23292a;padding:clamp(24px,4vw,64px);display:flex;flex-direction:column;justify-content:center;overflow:auto}.eyebrow{font:12px monospace;letter-spacing:2px;color:#8c6431}h1{font-size:clamp(36px,4.4vw,70px);line-height:1.02;letter-spacing:-3px;margin:22px 0 15px}.desc{font-size:18px;color:#656b69;line-height:1.5;margin:0 0 24px}.scene{height:clamp(160px,29vh,300px);background:#deded4;border-radius:8px;position:relative;overflow:hidden;padding:25px;display:flex;align-items:center;gap:25px}.art{width:53%;height:100%}.file{flex:1;font-family:monospace;border-left:1px solid #aaa;padding-left:20px}.file h3{font:600 23px Arial;margin:12px 0}.file p{font-size:12px;line-height:1.6}.cta{background:#232a2b;color:white;padding:17px 24px;margin-top:24px;width:100%;text-align:left;display:flex;justify-content:space-between}.bottom{display:flex;justify-content:space-between;align-items:center;margin-top:20px;font:11px monospace;color:#7c827f}.dot{padding:0;width:8px;height:8px;border:0;border-radius:50%;background:#c3c4bd;margin:4px}.dot.active{background:#bb7a29}#content.changing{animation:enter .32s ease-out}@keyframes enter{from{opacity:.15;transform:translateY(16px)}to{opacity:1;transform:none}}dialog{max-width:600px;width:92%;border:0;border-radius:12px;padding:30px;background:#f3f1eb;color:#23292a}dialog::backdrop{background:#101819bb;backdrop-filter:blur(5px)}dialog button{color:#23292a;margin:6px}dialog input{padding:10px;width:100%;margin:10px 0;border:1px solid #aaa}#close{float:right}#detail{line-height:1.6}audio{display:none}@media(max-width:760px){header{padding:0 16px}header strong{font-size:17px}main{height:auto;grid-template-columns:1fr}.machine{padding:20px}.dial{max-width:380px}.right{padding:28px}h1{letter-spacing:-1px}.scene{height:240px}.scope{margin-top:14px}}@media(prefers-reduced-motion:reduce){#content.changing{animation:none}}

body{background:#191d1e;color:#e5ded3}.machine{background:radial-gradient(ellipse at 50% 40%,#34302b,#191d1e 70%)}.right{background:#191d1e;color:#eee6da;padding-top:18px;padding-bottom:18px}.desc{color:#aaa79e}.scene{background:linear-gradient(130deg,#34302a,#242827);border:1px solid #51463b;height:clamp(140px,22vh,220px)}.file{border-color:#68513c}.file h3{color:#f0d1a9}.cta{background:#b36f3f;border-color:#d99b63;color:#fff4e6;margin-top:18px}.eyebrow{color:#d69c69}.scope{border-color:#67503b;background:#151a1b}.navbtn{background:#202425}.navbtn.active{color:#ffc28a}.bottom{color:#aaa297}h1{font-size:clamp(34px,3.7vw,60px);margin:16px 0 12px}.desc{font-size:16px;margin-bottom:18px}header{background:#191d1e;border-color:#534235}.lampbar{display:flex;align-items:center;gap:22px;height:130px;margin-bottom:10px;border-bottom:1px solid #493d31;position:relative}.lamp{height:125px;width:130px;flex-shrink:0;overflow:visible}.lampinfo{flex:1}.lampinfo small{font:10px monospace;letter-spacing:2px;color:#a88c70}.lampinfo strong{display:block;font-size:14px;margin:8px 0;color:#e4d2ba}.meter{height:4px;max-width:220px;background:#3d3730}.meter i{display:block;height:100%;width:0;background:#f5b460;transition:width .08s}.lampbar button{font-size:12px;color:#f9cf9b;border-color:#825d3c}.lampbar #replace{display:none}.glass{fill:#7a6841;fill-opacity:.12;stroke:#9d8d69;stroke-width:2}.filament{stroke:#99764b;stroke-width:2;fill:none}.aura{opacity:0;fill:url(#lampGlow)}.broken .glass{opacity:.15;stroke-dasharray:5 10}.broken .filament{stroke:#555;stroke-dasharray:4 5}.spark{position:absolute;width:3px;height:7px;background:#ffc06a;left:64px;top:77px;pointer-events:none;animation:spark .55s ease-out forwards}@keyframes spark{to{transform:translate(var(--x),var(--y)) rotate(130deg);opacity:0}}.flash{animation:flash .35s ease-out}@keyframes flash{0%{box-shadow:inset 0 0 160px #ffcc7177}100%{box-shadow:none}}.lampbar p{font-size:10px;color:#8f928b;margin:5px 0}.right{--light:0;background-image:radial-gradient(ellipse at 15% 0%,rgba(232,151,60,var(--light)),transparent 62%)}@media(max-height:760px) and (min-width:761px){.dial{max-width:380px}.lampbar{height:95px}.lamp{height:90px}.right{padding-left:32px;padding-right:32px}.scene{height:150px}h1{font-size:40px}.scope .plot{height:62px}.bottom{margin-top:10px}.desc{margin-bottom:12px}}

/* Mobile: one viewport, compact controls, generator at 90% previous width. */
@media(max-width:760px){
html,body{height:100%;overflow:hidden}header{height:46px;padding:0 14px}header strong{font-size:16px;letter-spacing:3px}header button{font-size:11px;padding:8px 10px;min-height:32px}
main{height:calc(100dvh - 46px);display:grid;grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);overflow:hidden}
.machine{padding:5px 18px 6px;min-height:0;justify-content:start}.dial{width:min(calc((100vw - 40px)*.9),342px,40dvh);height:auto;flex-shrink:0;margin:0 auto;aspect-ratio:1}.navbtn{font-size:11px;padding:7px 5px;min-height:30px}.help{font-size:9px;margin:0 0 4px;line-height:12px}.scope{padding:5px 9px;border-radius:5px;margin:0 auto;max-width:420px}.scopehead{font-size:9px}.scope .plot{height:27px}.legend{font-size:8px;margin-top:0;gap:13px}
.right{padding:7px 16px 9px;overflow:hidden;min-height:0;justify-content:space-between;gap:5px}.lampbar{height:52px;min-height:52px;margin:0;gap:8px;flex-shrink:0}.lamp{width:57px;height:57px}.lampinfo small{font-size:8px;letter-spacing:1px}.lampinfo strong{font-size:11px;margin:3px 0;line-height:13px}.lampbar p{font-size:8px;margin:2px 0}.lampbar button{font-size:10px;padding:6px;max-width:90px}.spark{left:28px;top:30px}.meter{max-width:100%;height:3px}
#content{min-height:0;display:flex;flex:1;flex-direction:column;justify-content:center}.eyebrow{font-size:9px;letter-spacing:1px}h1{font-size:clamp(25px,7vw,32px);line-height:1.04;letter-spacing:-1px;margin:5px 0}.desc{font-size:11px;line-height:1.3;margin:0 0 7px}.scene{height:auto;min-height:50px;max-height:105px;flex:1;padding:8px 10px;gap:10px;border-radius:5px}.art{width:29%;height:100%;max-height:90px;min-height:40px}.file{padding-left:10px}.file small{font-size:8px}.file h3{font-size:15px;margin:3px 0}.file p{font-size:10px;line-height:1.25;margin:2px 0}.cta{min-height:38px;padding:10px 13px;font-size:12px;margin-top:7px;border-radius:4px}.bottom{margin:0;font-size:8px;min-height:16px;gap:4px}.dot{width:7px;height:7px;margin:3px}
dialog{max-height:calc(100dvh - 24px);overflow:auto;padding:20px}dialog h2{font-size:21px}dialog input{padding:8px;margin:5px 0}dialog button{min-height:36px}
}
@media(max-width:760px) and (max-height:670px){.scene{display:none}.dial{width:min(calc((100vw - 40px)*.9),342px,41dvh)}.right{gap:3px}.lampbar{height:46px;min-height:46px}.lamp{height:48px}.desc{margin-bottom:3px}.cta{margin-top:4px}h1{font-size:26px}.legend span:last-child{display:none}}
@media(max-width:760px) and (orientation:landscape){header{height:38px}main{height:calc(100dvh - 38px);grid-template-columns:42% 58%;grid-template-rows:minmax(0,1fr)}.dial{width:min(26vw,calc(100dvh - 120px))}.machine{justify-content:center}.scope .plot{height:22px}.help{display:none}.right{padding:6px 14px}.scene{display:none}.navbtn{font-size:9px}.lampbar{height:44px;min-height:44px}}

:root{--bg:#14171c;--surface:#232830;--line:#404752;--accent:#ff666d;--ink:#f0f2f5;--muted:#aeb5c0;--phase1:#368ed1;--phase2:#9a5933;--phase3:#b6c83a}
body,header,.right{background-color:var(--bg);color:var(--ink)}header{border-color:var(--line);gap:10px}header strong{margin-right:auto}em,.eyebrow,.file h3,.navbtn.active{color:var(--accent)}.machine{background:radial-gradient(ellipse at 50% 40%,var(--surface),var(--bg) 75%)}.navbtn{background:var(--bg);color:var(--muted)}.navbtn.active{box-shadow:0 2px var(--accent)}.scope,.scene{background:var(--surface);border-color:var(--line)}.scope{color:var(--ink)}.file{border-color:var(--line)}.cta{background:var(--accent);border-color:var(--accent);color:#10141a;font-weight:bold}.desc,.bottom,.help,.lampbar p{color:var(--muted)}.dot.active{background:var(--accent)}.lampbar{border-color:var(--line)}.lampinfo small{color:var(--muted)}.lampinfo strong{color:var(--ink)}#themeSelect{color:var(--ink);background:var(--surface);border:1px solid var(--line);padding:9px;border-radius:5px;max-width:180px;font-size:12px}.legend span:nth-child(1){color:var(--phase1)!important}.legend span:nth-child(2){color:var(--phase2)!important}.legend span:nth-child(3){color:var(--phase3)!important}
@media(max-width:760px){header{gap:6px;padding:0 9px}header strong{font-size:14px;letter-spacing:1px}#themeSelect{font-size:10px;max-width:136px;padding:6px 3px}header button{font-size:10px;padding:6px;min-height:30px}}

.logo-lamp{color:#9b9c98;overflow:visible}.logo-shell{opacity:.38}.logo-bolt{opacity:.4;stroke:none!important}.logo-crack{display:none}.broken .logo-shell{opacity:.18!important;filter:none!important}.broken .logo-bolt{opacity:.1!important;filter:none!important}.broken .logo-crack{display:block}.lampbar .logo-lamp{flex-shrink:0}
/* Monochrome interface; only the generator retains its material and phase colors. */
:root{color-scheme:dark;--bg:#111;--surface:#222;--line:#484848;--accent:#f5f5f5;--ink:#f5f5f5;--muted:#b3b3b3;--phase1:#368ed1;--phase2:#9a5933;--phase3:#b6c83a}
:root[data-theme="light"]{color-scheme:light}
body,header,.machine,.right{background:var(--bg);color:var(--ink)}
.right{background-image:radial-gradient(ellipse at 15% 0%,rgba(255,255,255,var(--light)),transparent 62%)}
button{border-color:var(--line)}button:focus-visible,select:focus-visible,#engine:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
.cta{color:var(--bg)}.dot{background:var(--line)}.dot.active{background:var(--ink)}
#art,.lampbar{filter:grayscale(1)}.lampbar button{color:var(--ink);border-color:var(--line)}.meter{background:var(--line)}
.plot>path{stroke:var(--line)}#cursor{stroke:var(--ink)}
.legend span::before{content:"";display:inline-block;width:15px;border-top:2px solid currentColor;margin-right:5px;vertical-align:middle}
.legend span:nth-child(2)::before{border-top-style:dashed}.legend span:nth-child(3)::before{border-top-style:dotted}.legend span:last-child::before{display:none}
dialog{background:var(--bg);color:var(--ink);border:1px solid var(--line)}dialog button{color:var(--ink)}dialog input{background:var(--surface);color:var(--ink);border-color:var(--line)}dialog::backdrop{background:#0009}
@keyframes flash{0%{box-shadow:inset 0 0 160px #ffffff77}100%{box-shadow:none}}
/* Drafted generator: theme-aware linework and restrained physical color cues. */
.drawing-body{stroke:var(--ink);stroke-width:1.5;fill:none}.housing,.rotor-plate,.hub{fill:var(--bg)}.fine-ring{fill:none;stroke:var(--muted);stroke-width:1}.fixings{stroke-width:1.2}.rotor-spoke{stroke:var(--muted);stroke-width:1;stroke-dasharray:3 4}.center-mark{stroke:var(--muted);stroke-width:1}.coil-core{fill:var(--bg);stroke:var(--ink);stroke-width:1.1}.coil-turn{fill:none;stroke:var(--ink);stroke-width:1.3}.phase-leads{stroke-width:4}.phase-leads .wire-outline{stroke:var(--muted);stroke-width:6}.terminal-strip{fill:var(--bg);stroke:var(--muted);stroke-width:1}.navbtn{font-family:monospace;letter-spacing:.1px}.navbtn.active{color:var(--ink)}

/* Navigation occupies a separate perimeter, outside the generator drawing. */
.dial #engine{position:absolute;width:84%;height:84%;left:8%;top:8%}
.dial .navbtn{z-index:2;left:auto!important;top:auto!important;max-width:28%;font-size:clamp(10px,1vw,13px);padding:9px 6px;border:1px solid transparent;transform:none;transition:scale .28s ease,color .28s ease,background .28s ease,box-shadow .28s ease;scale:1;box-shadow:none;isolation:isolate}
.dial .navbtn[data-slot="0"]{left:50%!important;top:0!important;transform:translateX(-50%)}
.dial .navbtn[data-slot="1"]{right:0;top:20%!important;transform-origin:right center}
.dial .navbtn[data-slot="2"]{right:0;bottom:20%;transform-origin:right center}
.dial .navbtn[data-slot="3"]{left:50%!important;bottom:0;transform:translateX(-50%)}
.dial .navbtn[data-slot="4"]{left:0!important;bottom:20%;transform-origin:left center}
.dial .navbtn[data-slot="5"]{left:0!important;top:20%!important;transform-origin:left center}
.dial .navbtn.active{scale:1.06;color:var(--ink);background:var(--surface);box-shadow:0 0 12px color-mix(in srgb,var(--ink) 12%,transparent);border-color:var(--line)}
.label-orbit{position:absolute;inset:-2px;width:calc(100% + 4px);height:calc(100% + 4px);overflow:visible;pointer-events:none;fill:none;stroke:var(--ink);stroke-width:1.5;opacity:0;filter:drop-shadow(0 0 3px var(--ink))}.label-orbit rect{width:calc(100% - 2px);height:calc(100% - 2px);stroke-dasharray:12 88}.energizing .label-orbit{animation:orbit-fade .8s ease-out both}.energizing .label-orbit rect{animation:orbit-travel .8s linear both}.nav-spark{position:absolute;left:0;top:0;width:4px;height:4px;margin:-2px;border-radius:50%;background:var(--ink);box-shadow:0 0 5px var(--ink),0 0 10px var(--ink);pointer-events:none;opacity:0;z-index:3}
@keyframes orbit-travel{from{stroke-dashoffset:0}to{stroke-dashoffset:-100}}@keyframes orbit-fade{0%{opacity:0}15%,75%{opacity:1}100%{opacity:0}}
@media(max-width:760px){.dial .navbtn{font-size:10px;padding:7px 4px}.dial .navbtn.active{scale:1.04}}
@media(prefers-reduced-motion:reduce){.dial .navbtn{transition:none}.label-orbit,.nav-spark{display:none}}

/* One active, orthogonally routed cable connects the two section labels. */
main{position:relative;isolation:isolate}
.scope{display:none!important}
.machine{padding-bottom:28px}
.active-cable{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:5}
.active-cable path{fill:none;stroke-linejoin:miter;stroke-linecap:square}
.cable-sheath{stroke:var(--cable-sheath,#aaa);stroke-width:5.5;opacity:.8}
.cable-core{stroke:var(--cable-color);stroke-width:3.5}
.cable-terminal{fill:var(--cable-color);stroke:var(--cable-sheath,#aaa);stroke-width:1}
.dial .navbtn{z-index:6}
#tag{position:relative;z-index:6;width:fit-content;background:var(--bg);padding:3px 7px;margin-left:-7px;display:flex;align-items:center;gap:8px}
#sectionName{font-weight:700;letter-spacing:1.5px}
#content.changing{animation:none}
@media(max-width:760px){.machine{padding-bottom:20px}.help{margin-top:2px}#tag{font-size:9px;gap:6px}.active-cable path{stroke-width:3}.active-cable .cable-sheath{stroke-width:5}}
@media(max-width:760px) and (orientation:landscape){.machine{padding-bottom:16px}}

/* Quiet retro terminal styling, without compromising small-screen readability. */
body,button,input,select,h1,.file h3{font-family:"Lucida Console","Courier New",monospace}
header strong{letter-spacing:2px}h1{font-weight:700;letter-spacing:-2px;font-size:clamp(30px,3.3vw,54px)}
button,.scene,.scope,dialog,#themeSelect{border-radius:2px}.scene{border-style:solid}.cta{box-shadow:3px 3px 0 var(--line);font-weight:700}.cta:active{box-shadow:none;transform:translate(2px,2px)}
.eyebrow{letter-spacing:1px}#sectionName::before{content:"> ";opacity:.55}
.cable-terminal{filter:drop-shadow(0 0 2px var(--cable-sheath))}
@media(max-width:760px){h1{font-size:clamp(23px,6.5vw,29px);letter-spacing:-1px}.file h3{font-size:14px}.desc{font-size:11px}.cta{font-size:11px}}

.scene .file{border-left:0;padding-left:0;width:100%}
#title{clip-path:inset(0 0 100% 0);opacity:0}
#title.cable-arrived{animation:title-unfold .42s ease-out both}
@keyframes title-unfold{from{clip-path:inset(0 0 100% 0);opacity:0}to{clip-path:inset(0);opacity:1}}
@media(prefers-reduced-motion:reduce){#title.cable-arrived{animation:none;clip-path:none;opacity:1}}

.dial #engine{width:62%;height:62%;left:19%;top:19%}
.dial .navbtn[data-slot]{left:var(--nx)!important;top:var(--ny)!important;bottom:auto!important;right:auto!important;transform:translate(-50%,-50%);transform-origin:center;max-width:24%;white-space:normal;font-size:10px;padding:5px 3px;line-height:1.15}
#dots{display:flex;flex-wrap:wrap;max-width:160px}.ohm-inputs,.ohm-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.ohm-results>div{border:1px solid var(--line);padding:12px}.ohm-results strong{display:block;margin-top:6px}.ohm-circuit{width:100%;max-height:180px;color:var(--ink)}#ohmPair{background:var(--surface);color:var(--ink);padding:8px;border:1px solid var(--line)}
@media(min-width:1100px){.dial .navbtn[data-slot]{font-size:12px}}
.selected-coil{filter:drop-shadow(0 0 3px var(--ink))}.selected-coil .coil-turn{stroke-width:2.5}
.dial .navbtn[data-slot]{border:1px solid var(--line);background:var(--bg);border-radius:4px}
@media(max-width:760px){.dial .navbtn[data-slot]{left:calc(50% + (var(--nx) - 50%)*.9)!important;top:calc(50% + (var(--ny) - 50%)*.9)!important;font-size:9px;padding:5px 3px;max-width:24%}}
#ohmPair{display:block;width:100%;margin:8px 0 16px;font:inherit;font-size:13px}.ohm-inputs label{font-size:12px}.ohm-inputs input[type=number]{font-size:22px;font-weight:bold}.ohm-inputs input[type=range]{accent-color:#38bdf8;padding:0;margin:6px 0;width:100%}
.ohm-results>div{border-radius:6px;border-top:3px solid #38bdf8;font-size:11px;background:var(--surface)}.ohm-results>div[data-value=I]{border-top-color:#34d399}.ohm-results>div[data-value=R]{border-top-color:#f59e0b}.ohm-results>div[data-value=P]{border-top-color:#a78bfa}.ohm-results strong{font-size:20px;overflow-wrap:anywhere}
.ohm-lab{background:#101820;color:#edf4ff;border:1px solid #344453;border-radius:8px;padding:12px;margin-top:16px}.ohm-lab .ohm-circuit{color:#edf4ff}.lab-caption{font-size:10px;color:#38bdf8;letter-spacing:2px}.flow-note{font-size:10px;color:#b0bdcb;line-height:1.5;margin:0}.ohm-flow{animation:flow var(--flow-time,1s) linear infinite}.invalid .ohm-flow{visibility:hidden}#ohmExplanation{font-size:13px;line-height:1.6;border-left:3px solid #38bdf8;padding-left:12px}@keyframes flow{to{stroke-dashoffset:-32}}@media(prefers-reduced-motion:reduce){.ohm-flow{animation:none}}

.ohm-modal{max-width:720px;border:1px solid #365568;box-shadow:0 0 0 4px #38bdf810,0 20px 80px #0008;max-height:calc(100dvh - 24px);overflow:auto}.ohm-hud{display:flex;justify-content:space-between;font-size:10px;color:#38bdf8;letter-spacing:1.5px;padding:12px 0;border-bottom:1px solid #365568}.ohm-hud span:last-child{color:#34d399}.ohm-modal #close{position:sticky;top:0;z-index:4;background:var(--bg)}.ohm-modal .ohm-results>div{background-image:linear-gradient(135deg,#38bdf808,transparent);box-shadow:inset 0 0 20px #38bdf804}.learn-nav{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:20px}.learn-nav button{margin:0;padding:12px 4px;font-size:11px;border-color:#365568}.learn-nav button[aria-expanded=true]{background:#133344;color:#80dcff;border-color:#38bdf8}.learn-panel{margin-top:12px;padding:16px;border:1px solid #365568;border-radius:4px;font-size:13px;line-height:1.65}.learn-panel h3{margin-top:0;font-size:17px}.formula-chip{padding:16px;border-left:3px solid #34d399;background:var(--surface);font-size:25px}.ohm-graph{width:100%;display:block}.learn-panel button{font-size:12px;display:block;width:100%;margin:8px 0;text-align:left}.ohm-lab{background-image:linear-gradient(#38bdf807 1px,transparent 1px),linear-gradient(90deg,#38bdf807 1px,transparent 1px);background-size:20px 20px}
@media(max-width:400px){.learn-nav button{font-size:9px}.ohm-modal{padding:16px}.ohm-results strong{font-size:17px}}

/* Twelve contiguous segments form one instrument dial. */
.sector-ring{position:absolute;inset:0;width:100%;height:100%;z-index:0;overflow:visible}.sector{stroke:var(--line);stroke-width:.8;cursor:pointer;transition:fill .2s,stroke .2s}.sector-0{fill:var(--surface)}.sector-1{fill:var(--bg)}.sector.selected{fill:var(--ink);stroke:var(--ink);stroke-width:2}
.dial #engine{width:74%;height:74%;left:13%;top:13%;pointer-events:none}.dial #engine #rotor{pointer-events:all;cursor:grab}.dial #engine:focus-visible{outline-offset:-30px}
.dial .navbtn[data-slot]{left:var(--nx)!important;top:var(--ny)!important;transform:translate(-50%,-50%) rotate(var(--label-angle))!important;transform-origin:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;width:24%;max-width:24%;min-height:32px;padding:0!important;background:transparent!important;border:0!important;box-shadow:none!important;border-radius:0;color:var(--muted);scale:1!important;font-size:clamp(9px,1vw,13px)!important;line-height:1.1;white-space:nowrap;transition:color .2s}
.dial .navbtn small{font-size:8px;letter-spacing:2px;opacity:.6}.dial .navbtn.active{color:var(--bg)!important;font-weight:bold}.dial .navbtn:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.dial .navbtn.active:focus-visible{outline-color:var(--bg)}
@media(max-width:760px){.dial{width:min(calc(100vw - 28px),370px,44dvh)!important}.dial .navbtn[data-slot]{font-size:10px!important;gap:3px}.dial .navbtn small{font-size:7px}}
@media(max-width:760px) and (orientation:landscape){.dial{width:min(32vw,calc(100dvh - 110px))!important}.dial .navbtn[data-slot]{font-size:8px!important}}

/* Focus follows the circular generator rather than the SVG viewport. */
#engine,#engine:focus,#engine:focus-visible{outline:none!important;border:0!important;box-shadow:none!important}
#engine:focus-visible .housing{stroke-width:3}
.ohm-modal .learn-nav{grid-template-columns:repeat(4,minmax(0,1fr))}.ohm-modal #detail.learning-open .ohm-calculator{display:none}
@media(max-width:760px){
 dialog.ohm-modal{position:fixed;inset:0;margin:auto;width:100%;max-width:100%;height:100dvh;max-height:100dvh;padding:12px 14px;border-radius:0;border:0;overflow:hidden;display:none;grid-template-rows:32px minmax(0,1fr);gap:8px}
 dialog.ohm-modal[open]{display:grid}.ohm-modal #modalTitle{font-size:20px;line-height:32px;margin:0;padding-right:100px;grid-row:1}.ohm-modal #close{position:absolute;right:10px;top:8px;margin:0;font-size:11px;min-height:32px;padding:6px 10px}
 .ohm-modal #detail{grid-row:2;min-height:0;display:flex;flex-direction:column;line-height:1.35;gap:8px}
 .ohm-calculator{flex:1;min-height:0;display:flex;flex-direction:column;justify-content:space-between;gap:5px}
 .ohm-hud{padding:3px 0;font-size:8px}.ohm-calculator>p{font-size:10px;line-height:1.3;margin:0}.ohm-calculator>label{font-size:11px}#ohmPair{font-size:12px;padding:7px;margin:4px 0 0;min-height:34px}
 .ohm-inputs{gap:10px}.ohm-inputs label{font-size:10px}.ohm-inputs input[type=number]{font-size:20px;padding:6px;margin:4px 0}.ohm-inputs input[type=range]{height:24px;margin:0}
 .ohm-results{gap:6px}.ohm-results>div{padding:7px 9px;font-size:9px}.ohm-results strong{font-size:18px;margin-top:3px}#ohmError:empty{display:none}
 .ohm-lab{margin:0;padding:7px 10px;flex:1;min-height:100px;max-height:190px;display:flex;flex-direction:column}.ohm-lab .ohm-circuit{flex:1;min-height:55px;max-height:130px;width:100%}.lab-caption{font-size:8px}.flow-note{font-size:8px;line-height:1.25}#ohmExplanation{font-size:10px;line-height:1.3;margin:0;padding-left:8px}
 .ohm-modal .learn-nav{flex-shrink:0;order:3;margin:0;gap:4px;padding-bottom:env(safe-area-inset-bottom)}.learn-nav button{min-height:38px;padding:6px 2px;font-size:10px}
 .ohm-modal .learn-panel{flex:1;min-height:0;margin:0;padding:12px;font-size:12px;line-height:1.45;overflow:auto}.learn-panel[hidden]{display:none}.learn-panel h3{font-size:16px}.learn-panel p{margin:8px 0}.formula-chip{padding:8px;font-size:22px}
}
@media(max-width:760px) and (max-height:600px){.ohm-hud{display:none}.ohm-calculator>p:first-of-type{font-size:9px}.ohm-lab{min-height:70px;max-height:110px}.ohm-results>div{padding:4px 7px}.ohm-results strong{font-size:16px}#ohmExplanation{display:none}.ohm-inputs input[type=number]{font-size:17px}.ohm-calculator{gap:3px}}
/* Nine-tool instrument dial */
.dial{width:min(100%,570px);margin:auto;flex-shrink:0}.dial #engine{width:77%;height:77%;left:11.5%;top:11.5%}.sector-ring{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.sector{stroke:var(--line);stroke-width:.9;fill:var(--surface);cursor:pointer}.sector-0{fill:var(--bg)}.sector.selected{fill:var(--ink);stroke:var(--ink)}
.dial .navbtn[data-slot]{left:var(--nx)!important;top:var(--ny)!important;transform:translate(-50%,-50%);width:22%;max-width:22%;border:0;background:none;border-radius:0;padding:3px;box-shadow:none;scale:1;color:var(--ink);font-size:clamp(10px,1.15vw,15px);line-height:1.2;min-height:38px}.dial .navbtn.active{color:var(--bg);background:none;box-shadow:none;scale:1.02}.tool-icon{display:block;font-size:clamp(18px,2.3vw,30px);line-height:1.1;margin-bottom:5px}.navbtn small{display:none}.machine{padding:24px}.scene{display:none}.right{padding:32px;gap:16px}.right #content{flex:0}.lampbar{height:95px}.lamp{height:90px;width:90px}h1{letter-spacing:-1px}.help{font-size:10px}.cta{min-height:48px}.bottom{margin-top:12px}.mount-feet{stroke-width:1.5}#engine{outline:none!important}
@media(max-width:760px){.machine{padding:6px 14px 10px}.dial{width:min(100%,43dvh,410px);margin:0 auto}.dial .navbtn[data-slot]{font-size:clamp(8px,2.5vw,11px);min-height:34px;max-width:23%;width:23%}.tool-icon{font-size:20px;margin-bottom:3px}.help{font-size:8px;margin:0}.right{padding:5px 18px 10px;gap:6px;justify-content:space-around}.right #content{flex:1;justify-content:center}.lampbar{height:46px;min-height:46px}.lamp{height:46px;width:46px}.lampinfo strong{font-size:10px}.lampinfo small{font-size:7px}.cta{min-height:42px}h1{font-size:28px}.bottom{margin:0}.desc{font-size:12px}}
/* Lamp removed: focus the front page on the selected tool. */
.right{background-image:none;justify-content:center;gap:24px}.right #content{flex:0;width:100%;max-width:650px}.right .bottom{width:100%;max-width:650px}
@media(max-width:760px){.right{justify-content:center;gap:12px;padding-top:10px}.right #content{flex:0}.right .bottom{margin-top:0}.desc{max-width:38em}}

.language-switch{display:flex;position:relative;isolation:isolate;align-items:center;padding:3px;border:1px solid #b6bab4;border-radius:22px;background:linear-gradient(#d2d3cc,#e4e4dd);box-shadow:inset 0 2px 4px #2f37362b,0 1px 0 #fff9}.language-switch:before{content:"";position:absolute;z-index:-1;inset:3px auto 3px 3px;width:calc(50% - 3px);border-radius:18px;background:linear-gradient(145deg,#fffefb,#eae9e2);box-shadow:0 2px 5px #242c332a;transition:transform .18s}.language-switch[data-value=EN]:before{transform:translateX(100%)}.language-switch button{border:0;background:none;color:#555;padding:6px 10px;min-width:42px;font:700 11px Arial,sans-serif;cursor:pointer}.language-switch button[aria-pressed=true]{color:#171a1a}@media(max-width:760px){.language-switch button{padding:5px 7px;min-width:36px;font-size:10px}}

@keyframes panel-reveal{from{opacity:0;filter:brightness(.65);transform:translateY(5px)}to{opacity:.88;filter:brightness(1);transform:translateY(0)}}@keyframes panel-impact{0%{opacity:.88;transform:scale(.992)}55%{opacity:1;transform:scale(1.012)}100%{opacity:1;transform:scale(1)}}#content.cable-arriving{animation:panel-reveal 900ms ease-out both}#content.cable-powered{animation:panel-impact 180ms ease-out both}.language-switch{height:39px;box-sizing:border-box;align-self:center}.language-switch button{height:31px;min-height:31px;box-sizing:border-box}@media(max-width:760px){.language-switch{height:32px}.language-switch button{height:24px;min-height:24px}}@media(prefers-reduced-motion:reduce){#content.cable-arriving,#content.cable-powered{animation:none;opacity:1;filter:none;transform:none}}
#case.status-pending{color:#dc2626!important}#case.status-ready{color:#338f86!important}
