@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@500;600;700&display=swap";
:root{color:#1d2a2a;font-synthesis:none;text-rendering:optimizelegibility;--ink:#182827;--muted:#6c7774;--line:#d8d8d0;--paper:#fbfaf6;--accent:#e85d3f;--teal:#1d6f68;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:#f3f1eb;font-family:DM Sans,system-ui,sans-serif}:root[data-theme=dark]{color:#e8efec;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ink:#e8efec;--muted:#9aa9a5;--line:#34413f;--paper:#192321;--teal:#70c1b8}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:#f3f1eb;min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline-offset:3px;outline:3px solid #1d6f684d}.app-shell{min-height:100vh;padding-bottom:56px}.topbar{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);z-index:20;background:#fffffff0;height:68px;position:sticky;top:0}.topbar-inner{grid-template-columns:minmax(180px,1fr) auto minmax(180px,1fr);align-items:center;width:100%;max-width:1440px;height:100%;margin:0 auto;padding:0 clamp(20px,4vw,64px);display:grid}.brand{color:var(--ink);align-items:center;gap:10px;font-family:Manrope,sans-serif;font-size:15px;text-decoration:none;display:flex}.curvo-logo{object-fit:contain;flex:none;width:32px;height:32px}.header-brand{justify-self:start}.header-brand .curvo-logo{width:38px;height:38px}.brand-lockup{flex-direction:column;line-height:1.1;display:flex}.brand-lockup b{font-size:13px;font-weight:600}.brand-lockup small{color:#8a9490;letter-spacing:.08em;text-transform:uppercase;margin-top:3px;font:600 7px DM Sans,sans-serif}.header-brand .brand-lockup b{font-size:16px}.header-path{color:#89918e;justify-self:center;align-items:center;gap:9px;font-size:11px;display:flex}.header-path a{color:#6f7b77;align-items:center;gap:6px;text-decoration:none;transition:color .2s;display:flex}.header-path a:hover{color:var(--teal)}.header-path a svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:13px;height:13px}.header-path i{color:#bbc0bd;font-style:normal}.header-path strong{color:#4b5754;text-overflow:ellipsis;white-space:nowrap;max-width:220px;font-weight:600;overflow:hidden}.profile-menu{justify-self:end;position:relative}.profile-trigger{cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:999px;align-items:center;gap:8px;min-height:44px;padding:4px 9px 4px 5px;transition:background .2s,border-color .2s;display:flex}.profile-trigger:hover,.profile-trigger[aria-expanded=true]{border-color:var(--line);background:#fbfaf6a6}.profile-avatar{background:var(--ink);width:34px;height:34px;color:var(--paper);border-radius:50%;flex:none;place-items:center;font:600 11px Manrope,sans-serif;display:grid}.profile-avatar img{border-radius:inherit;object-fit:cover;width:100%;height:100%}.profile-avatar.large{width:40px;height:40px;font-size:13px}.profile-trigger-copy{flex-direction:column;min-width:58px;display:flex}.profile-trigger-copy strong{color:var(--ink);font-size:10px;font-weight:600}.profile-trigger-copy small{color:#8a9490;text-transform:uppercase;letter-spacing:.07em;margin-top:1px;font-size:7px}.profile-trigger>svg{fill:none;stroke:#77827e;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:14px;height:14px;transition:transform .2s}.profile-trigger[aria-expanded=true]>svg{transform:rotate(180deg)}.profile-popover{border:1px solid var(--line);background:var(--paper);border-radius:16px;width:286px;padding:10px;position:absolute;top:calc(100% + 10px);right:0;box-shadow:0 24px 70px #1925232e}.profile-summary{border-bottom:1px solid var(--line);align-items:center;gap:11px;padding:8px 8px 14px;display:flex}.profile-summary>div{flex-direction:column;display:flex}.profile-summary strong{font:600 12px Manrope,sans-serif}.profile-summary span:not(.profile-avatar){color:#89928e;margin-top:2px;font-size:9px}.profile-setting{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;min-height:58px;padding:9px 8px;display:flex}.profile-setting label,.setting-label{align-items:center;gap:9px;min-width:0;display:flex}.profile-setting label>svg,.setting-label>svg{fill:none;width:17px;height:17px;stroke:var(--teal);stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;flex:none}.profile-setting label>span,.setting-label>span{flex-direction:column;display:flex}.profile-setting strong{font-size:10px;font-weight:600}.profile-setting small{color:#89928e;margin-top:2px;font-size:8px}.profile-setting select{border:1px solid var(--line);appearance:none;width:104px;height:32px;color:var(--ink);cursor:pointer;background-color:#f3f2ec;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='m3 4.5 3 3 3-3' stroke='%236c7774' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");background-position:right 8px center;background-repeat:no-repeat;border-radius:8px;padding:0 28px 0 9px;font-size:9px;font-weight:600}.theme-toggle{cursor:pointer;background:#d8dcd7;border:0;border-radius:999px;flex:none;width:38px;height:22px;padding:3px;transition:background .2s}.theme-toggle span{background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .2s;display:block;box-shadow:0 1px 4px #141e1c33}.theme-toggle.active{background:var(--teal)}.theme-toggle.active span{transform:translate(16px)}.profile-note{color:#8a9490;margin:10px 8px 4px;font-size:8px;line-height:1.45}.profile-sign-in{background:var(--ink);width:100%;height:38px;color:var(--paper);cursor:pointer;border:0;border-radius:9px;justify-content:space-between;align-items:center;margin-top:8px;padding:0 10px;font-size:10px;font-weight:600;display:flex}.profile-sign-in span{font-size:15px}.profile-sign-out{color:#9b4e3b;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:8px;width:100%;height:34px;margin-top:8px;font-size:9px;font-weight:700}.profile-sign-out:hover{background:#f5e8e3}.auth-backdrop{z-index:200;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#0c171594;place-items:center;padding:24px;animation:.18s ease-out backdrop-in;display:grid;position:fixed;inset:0}.auth-dialog{border:1px solid var(--line);background:var(--paper);border-radius:20px;width:min(430px,100%);max-height:calc(100vh - 48px);padding:30px;position:relative;overflow-y:auto;box-shadow:0 30px 100px #0c161442}.auth-close{border:1px solid var(--line);color:#7d8884;cursor:pointer;background:0 0;border-radius:50%;place-items:center;width:34px;height:34px;font-size:20px;display:grid;position:absolute;top:16px;right:16px}.auth-brand{align-items:center;gap:9px;margin-bottom:28px;display:flex}.auth-brand strong{font:600 13px Manrope,sans-serif}.auth-dialog h2{font-size:28px}.auth-copy{color:#7b8682;margin:9px 0 22px;font-size:11px;line-height:1.55}.auth-config-warning{color:#79571d;background:#fbf1da;border:1px solid #e2bd75;border-radius:9px;margin:0 0 14px;padding:10px 11px;font-size:9px;line-height:1.45}.google-auth-button{color:#263331;cursor:pointer;background:#fff;border:1px solid #d7dad3;border-radius:10px;justify-content:center;align-items:center;gap:10px;width:100%;height:44px;font-size:11px;font-weight:600;display:flex}.google-auth-button svg{width:18px;height:18px}.google-auth-button:disabled,.auth-submit:disabled{cursor:not-allowed;opacity:.48}.auth-divider{color:#9aa29f;text-transform:uppercase;letter-spacing:.07em;align-items:center;height:42px;font-size:8px;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--line);flex:1;height:1px}.auth-divider span{padding:0 12px}.auth-form{flex-direction:column;gap:12px;display:flex}.auth-form label{color:#6f7a76;letter-spacing:.06em;text-transform:uppercase;flex-direction:column;gap:6px;font-size:8px;font-weight:700;display:flex}.auth-form input{width:100%;height:42px;color:var(--ink);text-transform:none;letter-spacing:normal;background:#f7f6f1;border:1px solid #d8dad3;border-radius:9px;outline:0;padding:0 12px;font-size:11px}.auth-form input:focus{border-color:#6f9e98;box-shadow:0 0 0 3px #1d6f6817}.auth-submit{background:var(--ink);height:44px;color:var(--paper);cursor:pointer;border:0;border-radius:10px;margin-top:3px;font-size:11px;font-weight:700}.auth-feedback{border-radius:8px;padding:9px 10px;font-size:9px;line-height:1.45}.auth-feedback.error{color:#984733;background:#f5e5df}.auth-feedback.success{color:#35744c;background:#e4f0e8}.auth-footer{color:#89928e;justify-content:space-between;align-items:center;gap:12px;min-height:32px;margin-top:18px;font-size:9px;display:flex}.auth-footer button{color:var(--teal);cursor:pointer;font-size:inherit;background:0 0;border:0;padding:0;font-weight:700}.selector-shell{max-width:1440px;margin:0 auto;padding:22px clamp(20px,4vw,64px) 0}.selector-shell:has(.detail-header-grid){padding-bottom:22px}.detail-header-grid{grid-template-columns:370px minmax(0,1fr);align-items:stretch;gap:18px;display:grid}.component-picker-card{background:#fbfaf6c7;border:1px solid #deddd6;border-radius:14px;min-height:92px;padding:10px;box-shadow:0 8px 26px #28333109}.component-picker-card .browse-components-button{justify-content:center;width:100%;height:100%;min-height:70px}.motor-selector{background:#fbfaf6b8;border:1px solid #deddd6;border-radius:13px;gap:6px;min-width:max-content;padding:5px;display:inline-flex}.motor-selector>button{color:#78827e;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:9px;align-items:center;gap:10px;min-width:210px;min-height:48px;padding:7px 12px;transition:background .2s,box-shadow .2s,color .2s;display:flex}.motor-selector>button.active{background:var(--paper);color:var(--ink);box-shadow:0 3px 12px #212d2a1a}.motor-selector>button>span:last-child{flex-direction:column;gap:2px;display:flex}.motor-selector strong{font:600 11px Manrope,sans-serif}.motor-selector small{color:#929a96;font-size:8px}.motor-selector-icon{background:#e9ece7;border-radius:8px;flex:0 0 30px;justify-content:center;align-items:center;width:30px;height:30px;display:flex}.induction-icon{gap:2px}.induction-icon i{background:#e5553d;border-radius:99px;width:5px;height:17px;transform:rotate(24deg)}.induction-icon i:nth-child(2){background:#f2a93b}.induction-icon i:nth-child(3){background:#3974c6}.dc-icon{background:#ece8e0;gap:3px}.dc-icon i{color:#fff;background:#d45443;border-radius:4px;place-items:center;width:12px;height:18px;font:700 11px Manrope,sans-serif;display:grid}.dc-icon i:last-child{background:#386eb5}.bldc-icon{background:#e6ece7;gap:2px}.bldc-icon i{background:#e5553d;border-radius:99px;width:6px;height:19px;transform:rotate(28deg)}.bldc-icon i:nth-child(2){background:#f2a93b;transform:rotate(0)}.bldc-icon i:nth-child(3){background:#3974c6;transform:rotate(-28deg)}.mosfet-icon{background:#e9e5ef;gap:3px}.mosfet-icon i{background:#74658d;border-radius:2px;width:3px;height:18px}.mosfet-icon i:nth-child(2){background:0 0;border:0;border-left:2px solid #477ea9;border-right:2px solid #477ea9;width:10px;height:13px}.mosfet-icon i:nth-child(3){background:#d09b3f}.transformer-icon{background:#ece7df;border:3px solid #68716e;gap:3px}.transformer-icon i{border:2px solid #d9823f;border-radius:99px;width:5px;height:18px}.transformer-icon i:last-child{border-color:#3f82bd}.hero{justify-content:space-between;align-items:flex-end;gap:32px;max-width:1440px;margin:0 auto;padding:28px clamp(20px,4vw,64px) 30px;display:flex}.eyebrow{color:var(--teal);text-transform:uppercase;letter-spacing:.12em;align-items:center;gap:8px;margin:0 0 7px;font-size:10px;font-weight:700;display:flex}.phase-mini{gap:2px;display:flex}.phase-mini i{background:#e5553d;border-radius:50%;width:5px;height:5px}.phase-mini i:nth-child(2){background:#f2a93b}.phase-mini i:nth-child(3){background:#3974c6}h1,h2{color:var(--ink);letter-spacing:-.035em;margin:0;font-family:Manrope,sans-serif}h1{font-size:clamp(38px,5vw,64px);font-weight:600;line-height:1}h2{font-size:22px;font-weight:600}.hero-copy{color:var(--muted);max-width:550px;margin:14px 0 0;font-size:15px;line-height:1.6}.component-hero-intro{align-items:center;gap:18px;min-width:0;display:flex}.component-detail-hero h1{font-size:clamp(32px,4vw,50px)}.component-detail-hero .hero-copy{margin-top:10px}.detail-symbol{background-color:#fbfaf6b8;background-image:linear-gradient(#5b6c670e 1px,#0000 1px),linear-gradient(90deg,#5b6c670e 1px,#0000 1px);background-size:12px 12px;border:1px solid #d8dad3;border-radius:14px;flex:none;place-items:center;width:96px;height:88px;display:grid}.detail-symbol .electrical-symbol{width:82px;height:70px}.hero-metrics{border-left:1px solid var(--line);display:flex}.hero-metrics>div{border-right:1px solid var(--line);min-width:130px;padding:6px 22px}.hero-metrics span{text-transform:uppercase;letter-spacing:.08em;color:#7e8985;margin-bottom:5px;font-size:10px;display:block}.hero-metrics strong{font-variant-numeric:tabular-nums;white-space:nowrap;font-family:Manrope,sans-serif;font-size:20px;font-weight:600}.hero-metrics small{color:#7c8783;font-size:11px;font-weight:600}.workspace{grid-template-columns:370px minmax(0,1fr);align-items:start;gap:18px;max-width:1440px;margin:0 auto;padding:0 clamp(20px,4vw,64px);display:grid}.control-column{flex-direction:column;gap:18px;min-width:0;display:flex}.control-column>*{width:100%}.visual-column{flex-direction:column;gap:18px;width:100%;min-width:0;max-width:100%;display:flex}.parameter-panel,.scene-panel{background:var(--paper);border:1px solid #deddd6;border-radius:18px;box-shadow:0 14px 50px #2833310e}.parameter-panel{flex-direction:column;gap:12px;min-height:610px;padding:12px;display:flex}.panel-kicker{color:#a54a33;text-transform:uppercase;letter-spacing:.08em;background:#f1e8de;border-radius:7px;align-self:flex-start;align-items:center;gap:5px;padding:6px 9px;font-size:10px;font-weight:700;display:flex}.panel-heading-row{justify-content:space-between;align-items:center;margin-top:24px;display:flex}.status-dot{background:#aab2ae;border:3px solid #cfd3ce;border-radius:50%;width:12px;height:12px;transition:all .25s}.status-dot.is-running{background:#47a569;border-color:#cde6d5;box-shadow:0 0 0 4px #edf7f0}.parameter-section{margin:0}.section-heading{justify-content:space-between;align-items:center;display:flex}.section-heading>div{align-items:center;gap:9px;display:flex}.section-heading h3{letter-spacing:-.01em;margin:0;font:600 14px Manrope,sans-serif}.section-index{width:23px;height:23px;color:var(--teal);background:#e6ece7;border-radius:6px;place-items:center;font-size:9px;font-weight:700;display:grid}.editable-badge{color:#77827e;letter-spacing:.06em;text-transform:uppercase;border:1px solid #d8dcd5;border-radius:999px;padding:4px 7px;font-size:8px;font-weight:700}.section-copy{color:#929a96;margin:7px 0 15px 32px;font-size:10px}.nameplate-section,.operating-section{background:#f4f3ed;border:1px solid #e3e1d8;border-radius:12px;padding:18px 12px 15px}.template-selector{margin-bottom:10px;display:block}.template-selector>span:first-child{color:#818a86;text-transform:uppercase;letter-spacing:.065em;margin-bottom:5px;font-size:8px;font-weight:700;display:block}.template-selector select{appearance:none;background-color:var(--paper);width:100%;height:38px;color:var(--ink);cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='m3 4.5 3 3 3-3' stroke='%236c7774' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;border:1px solid #d8dad3;border-radius:8px;padding:0 40px 0 10px;font:600 11px Manrope,sans-serif}.template-detail{color:#8b9490;justify-content:space-between;align-items:center;gap:8px;min-height:20px;padding:6px 2px 0;font-size:8px;display:flex}.template-detail strong{color:#52615d;font-weight:600}.template-detail i{color:var(--teal);flex:none;font-style:normal;font-weight:700}.nameplate-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.nameplate-field{background:var(--paper);border:1px solid #dedfd8;border-radius:8px;min-width:0;padding:9px 10px 8px;transition:border-color .2s,box-shadow .2s}.nameplate-field:focus-within{border-color:#6f9e98;box-shadow:0 0 0 3px #1d6f6814}.nameplate-field>span:first-child{color:#818a86;text-transform:uppercase;letter-spacing:.055em;margin-bottom:5px;font-size:8px;font-weight:600;display:block}.nameplate-input-wrap{align-items:baseline;gap:4px;min-width:0;display:flex}.nameplate-input-wrap input{width:100%;min-width:0;color:var(--ink);font-variant-numeric:tabular-nums;background:0 0;border:0;outline:0;padding:0;font:600 14px Manrope,sans-serif}.nameplate-input-wrap input::-webkit-inner-spin-button{opacity:.45}.nameplate-input-wrap i{color:#89928e;flex:none;font-size:8px;font-style:normal;font-weight:600}.validation-note{color:#9d4634;background:#f6e5df;border-radius:7px;margin:10px 0 0;padding:8px 9px;font-size:9px;line-height:1.4}.operating-warning{color:#76551e;background:#fbf2de;border:1px solid #e6c788;border-radius:9px;align-items:flex-start;gap:9px;margin:-3px 0 2px;padding:10px;display:flex}.operating-warning-icon{color:#fff;background:#d89a2d;border-radius:50%;flex:none;place-items:center;width:19px;height:19px;font:700 11px Manrope,sans-serif;display:grid}.operating-warning>div{min-width:0}.operating-warning strong{color:#6d4a12;font:700 9px Manrope,sans-serif;display:block}.operating-warning ul{margin:4px 0 0;padding-left:13px}.operating-warning li{padding-left:1px;font-size:8px;line-height:1.45}.operating-warning li+li{margin-top:2px}.operating-section{margin-top:0}.control-stack{flex-direction:column;gap:20px;margin-top:18px;display:flex}.control-group{display:block}.control-heading{justify-content:space-between;align-items:center;font-size:12px;font-weight:600;display:flex}.control-heading output{color:var(--teal);font-variant-numeric:tabular-nums;font-family:Manrope,sans-serif;font-size:13px}.range-control{--range-progress:50%;appearance:none;background:linear-gradient(to right, var(--teal) var(--range-progress), #dfe1dc var(--range-progress));cursor:pointer;border-radius:99px;width:100%;height:4px;margin:14px 0 8px}.range-control::-webkit-slider-thumb{appearance:none;background:var(--paper);border:2px solid var(--teal);border-radius:50%;width:16px;height:16px;box-shadow:0 2px 5px #00000026}.range-control::-moz-range-thumb{background:var(--paper);border:2px solid var(--teal);border-radius:50%;width:13px;height:13px}.range-limits{color:#a5ada9;justify-content:space-between;font-size:9px;display:flex}.segmented-field{border:0;margin:0;padding:0}.segmented-field legend{margin-bottom:9px;font-size:12px;font-weight:600}.segmented-control,.phase-control{background:#efefea;border-radius:9px;gap:5px;padding:4px;display:grid}.segmented-control{grid-template-columns:repeat(4,1fr)}.segmented-control button,.phase-control button{cursor:pointer;color:#7a8581;background:0 0;border:0;border-radius:6px;height:34px;font-size:12px;font-weight:600;transition:all .2s}.segmented-control button.active,.phase-control button.active{background:var(--paper);color:var(--ink);box-shadow:0 2px 8px #1c282614}.phase-control{grid-template-columns:1fr 1fr}.polarity-control{background:#e8e8e2;border-radius:9px;grid-template-columns:1fr 1fr;gap:5px;padding:4px;display:grid}.polarity-control button{color:#77817d;cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;gap:7px;height:36px;font-size:10px;font-weight:600;display:flex}.polarity-control button.active{background:var(--paper);color:var(--ink);box-shadow:0 2px 8px #1c282614}.polarity-symbol{color:#fff;background:#d45443;border-radius:5px;place-items:center;width:17px;height:17px;font:700 12px Manrope,sans-serif;display:grid}.polarity-symbol.negative{background:#386eb5}.phase-control button{justify-content:center;align-items:center;gap:7px;display:flex}.phase-dots{gap:2px;display:flex}.phase-dots i{background:#e5553d;border-radius:50%;width:5px;height:5px}.phase-dots i:nth-child(2){background:#f2a93b}.phase-dots i:nth-child(3){background:#3974c6}.run-button{background:var(--ink);color:#fff;cursor:pointer;border:0;border-radius:10px;justify-content:center;align-items:center;gap:9px;min-height:48px;margin-top:24px;font-weight:600;transition:transform .2s,background .2s;display:flex}.run-button:hover{transform:translateY(-1px)}.run-button.stop{background:#944534}.safety-note{color:#9aa19e;text-align:center;margin:0 0 3px;font-size:9px}.scene-panel{flex-direction:column;width:100%;min-width:0;padding:0;display:flex;overflow:hidden}.scene-status{z-index:4;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:none;background:#fbfaf6c7;border:1px solid #cdcfc8c7;border-radius:999px;align-items:center;gap:8px;padding:7px 10px;display:flex;position:absolute;top:16px;right:18px}.scene-status>span{text-transform:uppercase;letter-spacing:.08em;color:#8a9490;align-items:center;gap:7px;font-size:10px;font-weight:700;display:flex}.scene-status>span i{background:#aab1ae;border-radius:50%;width:6px;height:6px}.scene-status>span.live{color:#398253}.scene-status>span.live i{background:#4fa86c;box-shadow:0 0 0 4px #4fa86c1f}.scene-status>span.warning{color:#ad523c}.scene-status>span.warning i{background:#e56547;box-shadow:0 0 0 4px #e565471f}.canvas-wrap{background:#e8e5dc;flex:0 0 500px;height:500px;min-height:0;margin:0;transition:background-color .2s;position:relative}.canvas-wrap canvas{touch-action:none;width:100%!important;height:100%!important}.scene-loading{color:#7c8783;letter-spacing:.04em;justify-content:center;align-items:center;gap:9px;font-size:11px;display:flex;position:absolute;inset:0}.scene-loading span{border:2px solid #c9ceca;border-top-color:var(--teal);border-radius:50%;width:14px;height:14px;animation:.8s linear infinite scene-spin}@keyframes scene-spin{to{transform:rotate(360deg)}}.direction-badge{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#5d6965;pointer-events:none;background:#fbfaf6d1;border:1px solid #c8c9c2bf;border-radius:999px;align-items:center;gap:6px;padding:7px 10px;font-size:10px;font-weight:600;display:flex;position:absolute;bottom:50px;right:24px}.direction-badge>span{flex-direction:column;gap:1px;display:flex}.direction-badge small{color:#8b9490;font-size:7px;font-weight:500}.canvas-help{white-space:nowrap;color:#89918e;pointer-events:none;align-items:center;gap:7px;font-size:9px;display:flex;position:absolute;bottom:5px;left:50%;transform:translate(-50%)}.mouse-glyph{color:#64716d;font-size:12px}.scene-footer{border-top:1px solid #e5e4dd;flex:0 0 38px;justify-content:space-between;align-items:center;height:38px;padding:0 14px;display:flex}.phase-legend{color:#717c78;gap:13px;font-size:9px;display:flex}.phase-legend span{align-items:center;gap:5px;display:flex}.phase-legend i{background:#e5553d;border-radius:2px;width:6px;height:6px}.phase-legend i.v{background:#f2a93b}.phase-legend i.w{background:#3974c6}.phase-legend i.north{background:#d45443}.phase-legend i.south{background:#386eb5}.phase-legend i.brush{background:#303433}.phase-legend.diode-legend i.p-region{background:#d96052}.phase-legend.diode-legend i.n-region{background:#3f79be}.phase-legend.diode-legend i.depletion{background:#b892d4}.phase-legend.diode-legend i.cathode{background:#202625}.mosfet-legend i.source{background:#4c83c5}.mosfet-legend i.drain{background:#e06b50}.mosfet-legend i.gate{background:#d9a64f}.mosfet-legend i.channel{background:#39a7d8;box-shadow:0 0 0 2px #39a7d829}.transformer-legend i.primary{background:#d9823f}.transformer-legend i.secondary{background:#3f82bd}.transformer-legend i.core{background:#5c6865}.transformer-legend i.flux{background:#5fcfc5;box-shadow:0 0 0 2px #5fcfc529}.scene-actions{align-items:center;gap:12px;display:flex}.field-toggle{color:#75807c;cursor:pointer;background:0 0;border:1px solid #d8dad3;border-radius:999px;align-items:center;gap:5px;height:26px;padding:0 9px;font-size:9px;font-weight:600;display:flex}.field-toggle.active{color:var(--teal);background:#e8f1ee;border-color:#8ab5af}.field-glyph{font-size:15px;line-height:1}.reset-view{cursor:pointer;color:#68736f;background:0 0;border:0;align-items:center;gap:4px;font-size:9px;font-weight:600;display:flex}.experiment-panel{background:var(--paper);border:1px solid #deddd6;border-radius:18px;width:100%;min-width:0;padding:24px;box-shadow:0 14px 50px #2833310b}.experiment-header{justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.experiment-copy{color:#89928e;margin:7px 0 0;font-size:11px}.experiment-controls{align-items:flex-end;gap:8px;display:flex}.duration-control{flex-direction:column;gap:5px;display:flex}.duration-control>span:first-child{color:#77827e;letter-spacing:.07em;text-transform:uppercase;font-size:8px;font-weight:700}.duration-input-wrap{background:#f7f6f1;border:1px solid #d8dad3;border-radius:8px;align-items:center;width:76px;height:36px;padding:0 9px;display:flex}.duration-input-wrap:focus-within{border-color:#6f9e98;box-shadow:0 0 0 3px #1d6f6814}.duration-input-wrap input{width:100%;min-width:0;color:var(--ink);background:0 0;border:0;outline:0;padding:0;font:600 13px Manrope,sans-serif}.duration-input-wrap input:disabled{color:#969d99}.duration-input-wrap i{color:#8a938f;font-size:9px;font-style:normal}.duration-menu-wrap select{appearance:none;width:100%;min-width:0;height:100%;color:var(--ink);cursor:pointer;background:0 0;border:0;outline:0;padding:0 18px 0 0;font:600 12px Manrope,sans-serif}.duration-menu-wrap select:disabled{color:#969d99;cursor:not-allowed}.duration-menu-wrap i{pointer-events:none;font-size:12px;position:absolute;top:50%;right:9px;transform:translateY(-56%)}.duration-menu-wrap{position:relative}.experiment-run{background:var(--ink);color:#fff;cursor:pointer;border:0;border-radius:8px;justify-content:center;align-items:center;gap:7px;min-width:145px;height:36px;padding:0 14px;font-size:11px;font-weight:600;display:flex}.experiment-run:hover{filter:brightness(1.08)}.experiment-run.stop{background:#944534}.experiment-status-row{background:#f7f6f2;border:1px solid #e1e2dc;border-radius:9px;justify-content:space-between;align-items:center;gap:16px;margin-top:20px;padding:11px 13px;display:flex}.experiment-status{color:#818a86;text-transform:uppercase;letter-spacing:.07em;align-items:center;gap:7px;font-size:9px;font-weight:700;display:flex}.experiment-status i{background:#aab1ae;border-radius:50%;width:7px;height:7px}.experiment-status.live{color:#398253}.experiment-status.live i{background:#4fa86c;animation:1.4s ease-in-out infinite live-pulse;box-shadow:0 0 0 4px #4fa86c1f}.experiment-status.warning{color:#a56b20}.experiment-status.warning i{background:#d49432;box-shadow:0 0 0 4px #d494321f}.experiment-status.complete{color:var(--teal)}.experiment-status.complete i{background:var(--teal)}@keyframes live-pulse{50%{opacity:.45}}.experiment-readouts{color:#818a86;align-items:center;gap:17px;font-size:9px;display:flex}.experiment-readouts span{align-items:center;gap:5px;display:flex}.experiment-readouts strong{color:#33413e;font-variant-numeric:tabular-nums;font:600 10px Manrope,sans-serif}.experiment-readouts i{background:var(--teal);border-radius:99px;width:13px;height:3px}.experiment-readouts i.current-swatch{background:0 0;border-top:2px dashed #e46b45;height:0}.chart-wrap{width:100%;min-width:0;max-width:100%;margin-top:12px;overflow:auto hidden}.chart-wrap svg{cursor:crosshair;touch-action:pan-x;width:100%;min-width:600px;height:auto;display:block}.chart-grid{stroke:#dcded8;stroke-width:1px;vector-effect:non-scaling-stroke}.chart-grid.vertical{stroke-dasharray:2 6;opacity:.65}.chart-power-placeholder{fill:#9aa39f;letter-spacing:.01em;font:600 10px Manrope,sans-serif}.powered-curve{stroke-dasharray:1200;stroke-dashoffset:1200px;animation:.7s ease-out forwards draw-powered-curve}@keyframes draw-powered-curve{to{stroke-dashoffset:0}}.chart-axis-label{fill:#8b9490;font:9px DM Sans,sans-serif}.chart-axis-label.current-axis{fill:#c16a50}.rpm-line,.current-line{fill:none;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}.rpm-line{stroke:#28766f;stroke-width:2.5px}.current-line{stroke:#e46b45;stroke-width:2px;stroke-dasharray:5 4}.chart-cursor{stroke:#344542;stroke-width:1px;stroke-dasharray:3 4;opacity:.38;vector-effect:non-scaling-stroke}.chart-hover{pointer-events:none}.chart-hover-line{stroke:#344542;stroke-width:1px;opacity:.62;vector-effect:non-scaling-stroke}.chart-hover-point{stroke:var(--paper);stroke-width:2px;vector-effect:non-scaling-stroke}.chart-hover-point.rpm-point,.chart-tooltip .rpm-dot{fill:#28766f}.chart-hover-point.current-point,.chart-tooltip .current-dot{fill:#e46b45}.chart-tooltip rect{fill:#fbfaf6f7;stroke:#d6d9d2;stroke-width:1px;vector-effect:non-scaling-stroke;filter:drop-shadow(0 5px 10px #222d2a1f)}.chart-tooltip text{fill:#69736f;font:9px DM Sans,sans-serif}.chart-tooltip .chart-tooltip-time{fill:#8a928f;letter-spacing:.04em;text-transform:uppercase;font-size:8px;font-weight:700}.chart-tooltip .chart-tooltip-value{fill:#24332f;font-variant-numeric:tabular-nums;font:600 9px Manrope,sans-serif}.chart-empty{fill:#9ca39f;font:11px DM Sans,sans-serif}.mosfet-characteristics .experiment-header{align-items:flex-start}.mosfet-operating-readout{text-align:right;background:#f6f5f0;border:1px solid #dfe1db;border-radius:9px;min-width:290px;padding:10px 12px}.mosfet-operating-readout span{color:#828c88;letter-spacing:.07em;text-transform:uppercase;margin-bottom:4px;font-size:8px;font-weight:700;display:block}.mosfet-operating-readout strong{color:var(--teal);font-variant-numeric:tabular-nums;font:600 10px Manrope,sans-serif}.mosfet-chart-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:20px;display:grid}.mosfet-chart-card{background:#f8f7f3;border:1px solid #e0e1da;border-radius:11px;min-width:0;margin:0;padding:14px 12px 8px}.mosfet-chart-card>div{flex-direction:column;gap:3px;padding:0 7px 8px;display:flex}.mosfet-chart-card>div strong{font:600 12px Manrope,sans-serif}.mosfet-chart-card>div span{color:#8b9490;font-size:9px}.mosfet-chart-card svg{width:100%;height:auto;display:block}.diode-chart-card svg{cursor:crosshair;touch-action:pan-y}.diode-curve{fill:none;stroke:#177d75;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round}.diode-region-summary{background:#f6f6f1;border:1px solid #d8ddd8;border-radius:10px;justify-content:space-between;align-items:center;gap:10px;margin-top:14px;padding:11px 12px;display:flex}.diode-region-summary span{color:#828c88;letter-spacing:.07em;text-transform:uppercase;font:700 8px Manrope,sans-serif}.diode-region-summary strong{color:#596460;text-align:right;font:700 10px Manrope,sans-serif}.diode-region-summary.forward{background:#ecf7f2;border-color:#9bc9b9}.diode-region-summary.forward strong{color:#147368}.diode-region-summary.breakdown{background:#fff0ea;border-color:#e5a68e}.diode-region-summary.breakdown strong{color:#b44932}.mosfet-axis-title{fill:#68736f;font:600 9px DM Sans,sans-serif}.mosfet-curve,.mosfet-transfer-curve{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.mosfet-curve{stroke:#8ea5a1;stroke-width:1.35px;opacity:.72}.mosfet-curve.curve-1{stroke:#789b96}.mosfet-curve.curve-2{stroke:#5d8e87}.mosfet-curve.curve-3{stroke:#3f8078}.mosfet-curve.curve-4{stroke:#267269}.mosfet-curve.curve-5{stroke:#155f57;stroke-width:1.8px}.mosfet-transfer-curve{stroke:var(--teal);stroke-width:2.3px}.mosfet-threshold-line{stroke:#d59b3c;stroke-width:1.2px;stroke-dasharray:4 4;opacity:.85;vector-effect:non-scaling-stroke}.mosfet-point-halo{fill:#e85d3f33}.mosfet-point{fill:var(--accent);stroke:#fff;stroke-width:1.5px;vector-effect:non-scaling-stroke}.transformer-chart-legend{color:#76817d;align-items:center;min-height:18px;font-size:8px;flex-direction:row!important;gap:13px!important;padding:0 7px!important}.transformer-chart-legend span{align-items:center;gap:5px;display:flex}.transformer-chart-legend i{background:#d9823f;border-radius:99px;width:13px;height:2px}.transformer-chart-legend i.secondary-wave{background:#3f82bd}.transformer-chart-legend i.flux-wave{background:#27978e}.transformer-chart-legend i.saturated-wave{background:#e05e43}.resistor-legend i.resistive-element{background:#70401f}.resistor-legend i.resistor-body{background:#d9c39b}.resistor-legend i.terminal{background:#aeb8ba}.resistor-color-code{background:#f7f6f1;border:1px solid #dfe0da;border-radius:10px;margin-top:12px;padding:12px}.resistor-color-code-heading{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.resistor-color-code-heading strong{color:#34413e;font:700 9px Manrope,sans-serif}.resistor-color-code-heading span{color:#8a9390;text-align:right;font-size:7px}.resistor-code-visual{justify-content:center;align-items:center;height:48px;display:flex}.resistor-code-lead{background:linear-gradient(#d9dedf,#8f999b);width:32px;height:3px}.resistor-code-body{background:linear-gradient(#ead9b8,#ceb58d);border:1px solid #bea985;border-radius:18px 18px 16px 16px;align-items:stretch;gap:10px;width:132px;height:34px;padding-inline:22px 16px;display:flex;overflow:hidden;box-shadow:inset 0 3px 5px #ffffff6b,0 3px 8px #302b211a}.resistor-code-body i{width:7px;height:100%;box-shadow:inset 1px 0 #ffffff2e,inset -1px 0 #00000021}.resistor-code-body i:last-child{margin-left:7px}.resistor-code-values{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;display:grid}.resistor-code-values span{color:#65706c;white-space:nowrap;background:#fbfaf6;border:1px solid #e0e1db;border-radius:6px;justify-content:center;align-items:center;gap:4px;min-width:0;padding:5px 4px;font:600 7px Manrope,sans-serif;display:flex}.resistor-code-values i{border:1px solid #1f2a272e;border-radius:50%;flex:none;width:8px;height:8px}.resistor-chart-wrap{width:100%;min-width:0;margin-top:18px;overflow:auto hidden}.resistor-chart-wrap svg{cursor:crosshair;touch-action:pan-x;width:100%;min-width:620px;height:auto;display:block}.resistor-curve,.resistor-tolerance-line{fill:none;stroke-linecap:round;vector-effect:non-scaling-stroke}.resistor-curve{stroke:var(--teal);stroke-width:2.5px}.resistor-tolerance-line{stroke:#91aaa5;stroke-width:1.1px;stroke-dasharray:4 5;opacity:.58}.transformer-wave{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.2px;vector-effect:non-scaling-stroke}.transformer-wave.primary{stroke:#d9823f}.transformer-wave.secondary{stroke:#3f82bd;stroke-dasharray:5 4}.transformer-wave.flux{stroke:#27978e}.transformer-wave.flux.saturated{stroke:#e05e43}.transformer-limit-line{stroke:#d59b3c;stroke-width:1px;stroke-dasharray:4 5;opacity:.5;vector-effect:non-scaling-stroke}.scene-live-metrics{background:var(--paper);border:1px solid #deddd6;border-radius:14px;grid-template-columns:repeat(4,minmax(0,1fr));width:100%;display:grid;overflow:hidden;box-shadow:0 10px 35px #2833310a}.scene-live-metrics>div{border-right:1px solid var(--line);min-width:0;padding:14px 18px}.scene-live-metrics>div:last-child{border-right:0}.scene-live-metrics span{margin-bottom:4px;font-size:8px}.scene-live-metrics strong{text-overflow:ellipsis;font-size:17px;display:block;overflow:hidden}.scene-live-metrics small{font-size:9px}.sr-only{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.modal-open{overflow:hidden}.library-count-chip{color:#64716d;letter-spacing:.05em;text-transform:uppercase;background:#fbfaf6a6;border:1px solid #d8dbd3;border-radius:999px;padding:7px 11px;font-size:9px;font-weight:700}.component-switcher{background:#fbfaf6c7;border:1px solid #deddd6;border-radius:14px;justify-content:space-between;align-items:center;gap:14px;min-height:58px;padding:7px 8px 7px 11px;display:flex;box-shadow:0 8px 26px #28333109}.current-component{align-items:center;gap:10px;min-width:0;display:flex}.current-component>span:last-child{flex-direction:column;gap:2px;min-width:0;display:flex}.current-component small{color:#89928e;letter-spacing:.08em;text-transform:uppercase;font-size:8px;font-weight:700}.current-component strong{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font:600 12px Manrope,sans-serif;overflow:hidden}.browse-components-button{background:var(--ink);color:#fff;cursor:pointer;border:0;border-radius:9px;align-items:center;gap:9px;min-height:40px;padding:0 13px;font-size:10px;font-weight:600;display:flex}.browse-components-button b{color:#a8b1ae;margin-left:3px;font-size:13px}.browse-grid-icon{grid-template-columns:1fr 1fr;gap:2px;width:14px;display:grid}.browse-grid-icon i{border:1px solid #afbab7;border-radius:2px;width:6px;height:6px}.selector-shell:has(.detail-component-switcher){padding-bottom:22px}.detail-component-switcher{grid-template-columns:auto auto minmax(0,1fr);justify-content:stretch;gap:14px;min-height:92px;padding:10px 15px 10px 10px;display:grid}.detail-component-switcher .browse-components-button{align-self:stretch;min-width:154px;min-height:64px}.compact-detail-symbol{color:#344643;background-color:#f3f3ed;background-image:linear-gradient(#5b6c670e 1px,#0000 1px),linear-gradient(90deg,#5b6c670e 1px,#0000 1px);background-size:10px 10px;border:1px solid #d8dad3;border-radius:11px;flex:none;place-items:center;width:76px;height:64px;display:grid}.compact-detail-symbol .electrical-symbol{width:67px;height:56px}.compact-component-copy{flex-direction:column;justify-content:center;min-width:0;display:flex}.compact-component-copy>p{color:var(--teal);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;align-items:center;gap:5px;margin:0 0 3px;font-size:7px;font-weight:700;display:flex;overflow:hidden}.compact-component-copy>p span{color:#89928e}.compact-component-copy>p i{color:#b4bab7;font-style:normal}.compact-component-copy h1{text-overflow:ellipsis;white-space:nowrap;font-size:clamp(23px,2.5vw,34px);line-height:1.08;overflow:hidden}.compact-component-copy>span{color:#7b8682;text-overflow:ellipsis;white-space:nowrap;margin-top:4px;font-size:9px;line-height:1.35;overflow:hidden}.detail-component-header{grid-template-columns:auto minmax(170px,1fr) auto;justify-content:stretch;gap:14px;min-height:92px;padding:10px 12px;display:grid}.header-power-control{border-left:1px solid var(--line);grid-template-columns:minmax(105px,1fr) 78px 116px;align-self:stretch;align-items:center;gap:8px;min-width:386px;padding-left:14px;display:grid}.header-power-status{flex-direction:column;gap:6px;min-width:0;display:flex}.header-power-status .experiment-status{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.header-power-status>strong{color:var(--ink);font-variant-numeric:tabular-nums;font:600 10px Manrope,sans-serif}.header-duration-control{align-items:center;display:flex}.header-duration-control .duration-input-wrap{width:72px;height:34px}.header-duration-control .duration-menu-wrap{width:78px}.header-power-button{min-width:116px;height:34px}.component-browser-backdrop{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#131f1e61;justify-content:flex-start;animation:.2s ease-out backdrop-in;display:flex;position:fixed;inset:0}.component-browser{background:#f5f3ed;flex-direction:column;width:min(520px,100%);height:100%;animation:.28s ease-out drawer-in;display:flex;overflow:hidden;box-shadow:18px 0 60px #111c1b2e}.component-browser>header{border-bottom:1px solid var(--line);background:#fbfaf6b3;justify-content:space-between;gap:20px;padding:30px 30px 24px;display:flex}.component-browser>header .eyebrow{margin-bottom:7px}.component-browser>header h2{font-size:25px}.component-browser>header span{color:#7c8783;margin-top:8px;font-size:11px;display:block}.browser-close{background:var(--paper);cursor:pointer;color:#68736f;border:1px solid #d7d8d1;border-radius:50%;flex:none;width:36px;height:36px;font-size:22px;line-height:1}.component-browser-content{flex:1;padding:24px 30px;overflow-y:auto}.browser-category+.browser-category{margin-top:26px}.browser-category-heading{align-items:center;gap:9px;margin-bottom:10px;display:flex}.browser-category-heading strong{font:600 12px Manrope,sans-serif}.browser-category-heading>span:last-child{flex-direction:column;gap:3px;min-width:0;display:flex}.browser-category-heading small{color:#8a938f;font-size:9px}.browser-category-symbol{background:var(--paper);width:34px;height:34px;color:var(--teal);border:1px solid #d8dad3;border-radius:8px;flex:none;place-items:center;display:grid}.browser-category-symbol .category-symbol-svg{width:28px;height:28px}.browser-options{gap:7px;display:grid}.browser-options button{background:var(--paper);cursor:pointer;text-align:left;border:1px solid #dedfd8;border-radius:11px;align-items:center;gap:12px;width:100%;min-height:62px;padding:11px 13px 11px 16px;transition:border-color .18s,transform .18s,box-shadow .18s;display:flex}.browser-options button:hover{border-color:#9fb8b3;transform:translateY(-1px);box-shadow:0 7px 20px #222f2c0f}.browser-options button.active{background:#edf3f0;border-color:#78a49e}.browser-options button>span:first-child{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.browser-options strong{color:var(--ink);font:600 11px Manrope,sans-serif}.browser-options small{color:#8a938f;font-size:8px}.option-state{color:#75817d;background:#eeeee8;border-radius:50%;place-items:center;width:24px;height:24px;font-style:normal;display:grid}.browser-options button.active .option-state{background:var(--teal);color:#fff}.component-browser>footer{border-top:1px solid var(--line);background:var(--paper);padding:15px 30px}.component-browser>footer button{color:var(--teal);cursor:pointer;background:0 0;border:0;font-size:10px;font-weight:700}@keyframes backdrop-in{0%{opacity:0}}@keyframes drawer-in{0%{opacity:.65;transform:translate(-40px)}}.library-hero{grid-template-columns:minmax(0,.92fr) minmax(420px,1.08fr);align-items:center;gap:48px;max-width:1440px;min-height:510px;margin:0 auto;padding:72px clamp(20px,6vw,92px) 64px;display:grid}.library-hero-copy{z-index:2;position:relative}.library-hero-copy h1{max-width:650px;font-size:clamp(48px,6vw,82px);line-height:.98}.library-hero-copy>p:not(.eyebrow){max-width:590px;color:var(--muted);margin:20px 0 0;font-size:16px;line-height:1.7}.library-pulse{border:1px solid #9eb7b2;border-radius:50%;place-items:center;width:18px;height:18px;display:grid}.library-pulse i{background:var(--accent);border-radius:50%;width:6px;height:6px;box-shadow:0 0 0 4px #e85d3f1f}.library-primary-action{background:var(--ink);color:#fff;border-radius:10px;align-items:center;gap:18px;width:max-content;margin-top:28px;padding:13px 16px;font-size:11px;font-weight:600;text-decoration:none;display:flex}.library-primary-action span{color:#aab5b1}.library-hero-visual{background:radial-gradient(circle at 50% 43%,#fbfaf6f5 0 27%,#e6e8e0ad 28% 52%,#0000 53%),linear-gradient(145deg,#fbfaf6a6,#e1e2d98c);border:1px solid #cecfc7b8;border-radius:42% 58% 52% 48%/55% 42% 58% 45%;place-items:center;min-height:370px;display:grid;position:relative;overflow:hidden}.library-hero-visual>.component-visual{z-index:3;transform:scale(1.5)}.orbit{border:1px solid #1d6f683d;border-radius:50%;width:330px;height:130px;position:absolute;transform:rotate(19deg)}.orbit-two{border-color:#e85d3f2e;transform:rotate(89deg)}.hero-signal{z-index:4;background:var(--accent);border-radius:50%;width:9px;height:9px;position:absolute;box-shadow:0 0 0 5px #e85d3f1f}.signal-a{top:61px;right:21%}.signal-b{background:#f0a73b;bottom:67px;left:19%;box-shadow:0 0 0 5px #f0a73b1f}.signal-c{background:#3974c6;top:42%;left:12%;box-shadow:0 0 0 5px #3974c61f}.hero-chart{z-index:5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fbfaf6d6;border:1px solid #d1d2cbe6;border-radius:11px;width:190px;height:76px;position:absolute;bottom:22px;right:24px;overflow:hidden}.hero-chart i{background:#e4e5df;height:1px;position:absolute;inset-inline:10px}.hero-chart i:first-child{top:15px}.hero-chart i:nth-child(2){top:30px}.hero-chart i:nth-child(3){top:45px}.hero-chart i:nth-child(4){top:60px}.hero-chart svg{width:180px;height:64px;position:absolute;inset:6px 5px}.hero-chart path{fill:none;stroke:var(--teal);stroke-width:2px}.library-content{border-top:1px solid var(--line);max-width:1440px;margin:0 auto;padding:60px clamp(20px,4vw,64px)}.library-toolbar{justify-content:space-between;align-items:flex-end;gap:32px;display:flex}.library-toolbar h2{font-size:32px}.library-toolbar>div>p:last-child{color:#7f8985;margin:8px 0 0;font-size:12px}.library-search{background:var(--paper);color:#7b8682;border:1px solid #d7d8d1;border-radius:11px;align-items:center;gap:9px;width:min(390px,100%);height:46px;padding:0 11px 0 14px;display:flex}.library-search:focus-within{border-color:#7ea49f;box-shadow:0 0 0 4px #1d6f6812}.library-search input{min-width:0;color:var(--ink);background:0 0;border:0;outline:0;flex:1;font-size:11px}.library-search input::placeholder{color:#9aa19e}.library-search button{cursor:pointer;color:#697570;background:#ecece6;border:0;border-radius:50%;width:25px;height:25px;font-size:16px}.category-tabs{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:28px;display:grid}.category-tabs a{color:#65716d;background:#fbfaf694;border:1px solid #dcddd6;border-radius:11px;align-items:center;gap:10px;min-height:62px;padding:9px 12px;text-decoration:none;display:flex}.category-tabs a.active{color:var(--ink);background:#edf3f0;border-color:#84aaa4;box-shadow:0 5px 18px #2134310d}.category-tabs a>span:last-child{flex:1;justify-content:space-between;gap:7px;min-width:0;display:flex}.category-tabs strong{text-overflow:ellipsis;white-space:nowrap;font:600 10px Manrope,sans-serif;overflow:hidden}.category-tabs small{color:#8a9490;font-size:9px}.category-tab-icon{width:32px;height:32px;color:var(--teal);letter-spacing:1px;background:#e9ebe5;border-radius:8px;flex:none;justify-content:center;align-items:center;gap:3px;font-size:10px;display:flex}.category-tab-icon i{background:#e85d3f;border-radius:99px;width:5px;height:18px;transform:rotate(24deg)}.category-tab-icon i:last-child{background:#3974c6;transform:rotate(-24deg)}.category-tab-icon.semiconductors i{background:#74658d;border-radius:2px;width:8px;height:17px;transform:none}.category-tab-icon.semiconductors i:last-child{background:#d09b3f;width:3px}.category-tab-icon.magnetics{border:3px solid #68716e}.category-tab-icon.magnetics i{background:0 0;border:2px solid #d9823f;width:5px;height:17px;transform:none}.category-tab-icon.magnetics i:last-child{background:0 0;border-color:#3f82bd}.component-card-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:18px;display:grid}.component-card{background:var(--paper);border:1px solid #deddd6;border-radius:17px;min-width:0;transition:transform .2s,box-shadow .2s,border-color .2s;position:relative;overflow:hidden;box-shadow:0 12px 40px #28333109}.component-card:hover{border-color:#b6c7c2;transform:translateY(-3px);box-shadow:0 18px 44px #28333114}.component-card-hit{z-index:4;cursor:pointer;background:0 0;border:0;width:100%;position:absolute;inset:0}.component-card-visual{background:radial-gradient(circle,#f8f7f2 0 38%,#ecece5 39% 70%,#e6e6de 71%);border-bottom:1px solid #e2e1da;place-items:center;height:198px;display:grid}.component-card-visual .component-visual{transform:scale(1.12)}.component-card-body{flex-direction:column;min-height:190px;padding:20px;display:flex}.component-category-label{color:var(--teal);letter-spacing:.09em;text-transform:uppercase;font-size:8px;font-weight:700}.component-card h3{color:var(--ink);letter-spacing:-.025em;margin:7px 0 0;font:600 18px Manrope,sans-serif}.component-card p{color:#7a8581;margin:9px 0 18px;font-size:10px;line-height:1.55}.component-card-link{color:var(--ink);margin-top:auto;font-size:10px;font-weight:700}.component-card-link b{color:var(--teal);margin-left:5px;font-size:14px}.library-empty{color:#7c8783;border:1px dashed #cfd1c9;border-radius:17px;align-content:center;place-items:center;gap:9px;min-height:260px;margin-top:18px;display:grid}.library-empty>span{color:#9ca49f;font-size:32px}.library-empty p{margin:0;font-size:12px}.library-empty button{color:var(--teal);cursor:pointer;background:0 0;border:0;font-size:10px;font-weight:700}.library-shell{padding-bottom:0}.library-hero.compact-library-hero{min-height:0;padding:42px clamp(20px,4vw,64px) 38px;display:block}.compact-library-hero .library-hero-copy{max-width:850px}.compact-library-hero .library-hero-copy h1{max-width:none;font-size:clamp(36px,4.2vw,56px);line-height:1.02}.compact-library-hero .library-hero-copy>p:not(.eyebrow){max-width:760px;margin-top:13px;font-size:13px;line-height:1.6}.library-content{grid-template-columns:236px minmax(0,1fr);align-items:start;gap:32px;padding:34px clamp(20px,4vw,64px) 70px;display:grid}.category-sidebar{background:#fbfaf6b3;border:1px solid #dcddd6;border-radius:15px;min-width:0;padding:18px 12px 12px;position:sticky;top:102px;box-shadow:0 10px 35px #28333109}.sidebar-heading{padding:2px 8px 13px}.sidebar-heading .eyebrow{margin-bottom:4px}.sidebar-heading>span{color:#8b9490;font-size:9px}.category-sidebar nav{gap:5px;display:grid}.category-sidebar nav a{color:#65716d;border:1px solid #0000;border-radius:9px;align-items:center;gap:9px;min-height:48px;padding:7px 8px;text-decoration:none;transition:background .18s,border-color .18s,color .18s;display:flex}.category-sidebar nav a:hover{color:var(--ink);background:#f0f1eb}.category-sidebar nav a.active{color:var(--ink);background:#eaf2ef;border-color:#93b4af}.category-sidebar nav a>span:nth-child(2){flex:1;justify-content:space-between;align-items:center;gap:7px;min-width:0;display:flex}.category-sidebar nav strong{text-overflow:ellipsis;white-space:nowrap;font:600 9px Manrope,sans-serif;overflow:hidden}.category-sidebar nav small{color:#7a8581;background:#ecece6;border-radius:50%;place-items:center;width:20px;height:20px;font-size:8px;display:grid}.category-sidebar nav a.active small{background:var(--teal);color:#fff}.category-symbol{width:29px;height:29px;color:var(--teal);background:#e9ebe5;border-radius:7px;flex:none;place-items:center;display:grid}.category-symbol-svg{width:26px;height:26px;color:inherit;overflow:visible}.category-symbol-svg text{fill:currentColor;font:600 8px Manrope,sans-serif}.category-symbol-svg circle{fill:var(--paper);stroke:currentColor;stroke-width:1.5px}.category-symbol-svg .category-symbol-accent{color:var(--accent)}.category-symbol-svg .category-symbol-accent-fill{fill:var(--accent);stroke:var(--accent)}.sidebar-standard-note{border-top:1px solid #e0e1da;align-items:flex-start;gap:8px;margin-top:15px;padding:12px 9px 8px;display:flex}.sidebar-standard-note>span{color:var(--teal);letter-spacing:.06em;border:1px solid #8aaaa5;border-radius:4px;flex:none;padding:3px 4px;font:700 7px Manrope,sans-serif}.sidebar-standard-note p{color:#89928e;margin:0;font-size:7px;line-height:1.45}.sidebar-standard-note strong{color:#5d6965;font-size:8px;display:block}.library-results{min-width:0}.library-results .library-toolbar{align-items:flex-end;min-height:60px}.library-results .library-toolbar h2{font-size:27px}.library-results .component-card-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:20px}.component-card-visual{background-color:#f2f2ec;background-image:linear-gradient(#5b6c6711 1px,#0000 1px),linear-gradient(90deg,#5b6c6711 1px,#0000 1px);background-size:16px 16px;height:150px;position:relative}.component-card-visual:after{content:"IEC 60617 · DIAGRAM";color:#9aa19e;letter-spacing:.09em;font:600 6px Manrope,sans-serif;position:absolute;bottom:8px;right:10px}.electrical-symbol{color:#344643;width:min(78%,190px);height:112px;overflow:visible}.electrical-symbol .symbol-accent{color:var(--teal)}.symbol-main-label{fill:currentColor;font:500 28px Manrope,sans-serif}.symbol-qualifier{fill:#6f7c78;font:600 11px Manrope,sans-serif}.symbol-polarity{fill:var(--teal);font:600 15px Manrope,sans-serif}.symbol-terminal-label{fill:#66736f;font:600 8px Manrope,sans-serif}.symbol-terminal{fill:var(--paper);stroke:currentColor;stroke-width:2px}.component-card-body{min-height:170px;padding:17px 18px}.component-card h3{font-size:16px}.component-card p{font-size:9px}.library-footer{border-top:1px solid var(--line);background:#fbfaf68c;justify-content:space-between;align-items:center;gap:28px;min-height:92px;padding:22px clamp(20px,4vw,64px);display:flex}.footer-brand{flex:none;font-size:12px}.footer-brand .curvo-logo{width:27px;height:27px}.library-footer p{color:#7b8682;text-align:center;max-width:500px;margin:0;font-size:9px}.library-footer>span{color:#89928e;letter-spacing:.04em;font-size:8px;font-weight:600}:root[data-theme=dark] body{background:#101816}:root[data-theme=dark] .topbar{background:#101816e6}:root[data-theme=dark] .profile-trigger:hover,:root[data-theme=dark] .profile-trigger[aria-expanded=true]{background:#1f2c29cc}:root[data-theme=dark] .header-path a,:root[data-theme=dark] .header-path strong{color:#aab8b4}:root[data-theme=dark] .header-path i{color:#55615e}:root[data-theme=dark] .profile-setting select{background-color:#222e2b}:root[data-theme=dark] .component-switcher,:root[data-theme=dark] .component-picker-card,:root[data-theme=dark] .detail-symbol,:root[data-theme=dark] .parameter-panel,:root[data-theme=dark] .scene-panel,:root[data-theme=dark] .experiment-panel,:root[data-theme=dark] .mosfet-characteristics,:root[data-theme=dark] .transformer-characteristics,:root[data-theme=dark] .component-card,:root[data-theme=dark] .category-sidebar,:root[data-theme=dark] .library-search,:root[data-theme=dark] .library-footer{background-color:var(--paper);border-color:#34413f}:root[data-theme=dark] .nameplate-section,:root[data-theme=dark] .operating-section,:root[data-theme=dark] .nameplate-field,:root[data-theme=dark] .template-selector select,:root[data-theme=dark] .metric-card,:root[data-theme=dark] .chart-card,:root[data-theme=dark] .experiment-readouts>div,:root[data-theme=dark] .category-sidebar nav a{background-color:#202b28;border-color:#35433f}:root[data-theme=dark] .canvas-wrap{background-color:#15201e}:root[data-theme=dark] .scene-footer{background:#192321;border-color:#34413f}:root[data-theme=dark] .component-card-visual{background-color:#222d2a;background-image:linear-gradient(#97b5ae12 1px,#0000 1px),linear-gradient(90deg,#97b5ae12 1px,#0000 1px);border-color:#34413f}:root[data-theme=dark] .category-sidebar nav a.active{background:#243936;border-color:#5d9891}:root[data-theme=dark] .browse-components-button{color:#dce9e5;background:#223a36;border:1px solid #3f5b56}:root[data-theme=dark] .operating-warning{color:#e7c77f;background:#382d18;border-color:#8b6728}:root[data-theme=dark] .library-shell{background:#101816}:root[data-theme=dark] .compact-detail-symbol,:root[data-theme=dark] .detail-symbol{color:#b8cbc6;background-color:#202d2a;background-image:linear-gradient(#97b5ae13 1px,#0000 1px),linear-gradient(90deg,#97b5ae13 1px,#0000 1px);border-color:#3a4946}:root[data-theme=dark] .scene-status,:root[data-theme=dark] .direction-badge{color:#b4c1bd;background:#16221fdb;border-color:#5b716cd1}:root[data-theme=dark] .scene-status>span,:root[data-theme=dark] .direction-badge small{color:#92a29e}:root[data-theme=dark] .field-toggle{color:#9caaa6;border-color:#3b4b47}:root[data-theme=dark] .field-toggle.active{color:#76c9bf;background:#203b37;border-color:#4b817a}:root[data-theme=dark] .reset-view{color:#9caaa6}:root[data-theme=dark] .section-index{color:#79c7be;background:#263b37}:root[data-theme=dark] .editable-badge{color:#a1afab;border-color:#53615e}:root[data-theme=dark] .range-control{background:linear-gradient(to right,var(--teal) var(--range-progress),#465450 var(--range-progress))}:root[data-theme=dark] .segmented-control,:root[data-theme=dark] .phase-control,:root[data-theme=dark] .polarity-control{background:#111b19}:root[data-theme=dark] .segmented-control button.active,:root[data-theme=dark] .phase-control button.active,:root[data-theme=dark] .polarity-control button.active{color:#dbe7e3;background:#2a3936}:root[data-theme=dark] .duration-input-wrap,:root[data-theme=dark] .experiment-status-row,:root[data-theme=dark] .mosfet-operating-readout,:root[data-theme=dark] .mosfet-chart-card{background:#202b28;border-color:#35433f}:root[data-theme=dark] .chart-power-placeholder{fill:#84938f}:root[data-theme=dark] .diode-curve{stroke:#77c9be}:root[data-theme=dark] .diode-region-summary{background:#202b28;border-color:#3a4945}:root[data-theme=dark] .diode-region-summary strong{color:#bdcbc7}:root[data-theme=dark] .diode-region-summary.forward{background:#17332d;border-color:#32665a}:root[data-theme=dark] .diode-region-summary.forward strong{color:#79cdbd}:root[data-theme=dark] .diode-region-summary.breakdown{background:#39231f;border-color:#75483d}:root[data-theme=dark] .diode-region-summary.breakdown strong{color:#ee9b84}:root[data-theme=dark] .experiment-run{color:#f1fbf8;background:#286f68;border:1px solid #438e86;box-shadow:0 6px 18px #0c231f47}:root[data-theme=dark] .experiment-run:hover{background:#318078}:root[data-theme=dark] .experiment-run.stop{background:#874232;border-color:#a65a49}:root[data-theme=dark] .chart-hover-line{stroke:#b9c8c3}:root[data-theme=dark] .chart-hover-point{stroke:#17221f}:root[data-theme=dark] .chart-tooltip rect{fill:#1b2724fa;stroke:#42514d;filter:drop-shadow(0 6px 12px #00000047)}:root[data-theme=dark] .chart-tooltip text{fill:#aeb9b5}:root[data-theme=dark] .chart-tooltip .chart-tooltip-time{fill:#87938f}:root[data-theme=dark] .chart-tooltip .chart-tooltip-value{fill:#edf5f2}:root[data-theme=dark] .resistor-tolerance-line{stroke:#66847e}:root[data-theme=dark] .resistor-color-code{background:#202b28;border-color:#35433f}:root[data-theme=dark] .resistor-color-code-heading strong{color:#dce7e3}:root[data-theme=dark] .resistor-code-values span{color:#aeb9b5;background:#18221f;border-color:#394743}:root[data-theme=dark] .component-browser{background:#121d1a}:root[data-theme=dark] .component-browser>header{background:#192321eb}:root[data-theme=dark] .browser-options button.active{background:#213936;border-color:#5c9a92}:root[data-theme=dark] .option-state{background:#2a3835}:root[data-theme=dark] .profile-avatar{color:#dce9e5;background:#29433e}:root[data-theme=dark] .profile-sign-in,:root[data-theme=dark] .auth-submit{color:#f1fbf8;background:#2b746d}:root[data-theme=dark] .profile-sign-out:hover{background:#35241f}:root[data-theme=dark] .auth-dialog{background:#182421}:root[data-theme=dark] .google-auth-button{color:#1d2927;background:#f1f3f0;border-color:#40504c}:root[data-theme=dark] .auth-form input{background:#101a18;border-color:#3a4945}:root[data-theme=dark] .auth-config-warning{color:#dec483;background:#332a18;border-color:#765d2e}:root[data-theme=dark] .auth-feedback.error{color:#e9a392;background:#37231f}:root[data-theme=dark] .auth-feedback.success{color:#90cfaa;background:#1d3428}:root[data-theme=dark] .compact-detail-symbol .electrical-symbol,:root[data-theme=dark] .detail-symbol .electrical-symbol{color:#b8cac5}:root[data-theme=dark] .compact-detail-symbol .symbol-terminal,:root[data-theme=dark] .detail-symbol .symbol-terminal{fill:#202d2a}:root[data-theme=dark] .compact-detail-symbol .symbol-terminal-label,:root[data-theme=dark] .detail-symbol .symbol-terminal-label{fill:#91a5a0}@media (max-width:960px){.library-hero.compact-library-hero{grid-template-columns:1fr}.library-content{grid-template-columns:205px minmax(0,1fr);gap:20px}.library-results .component-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.library-hero{grid-template-columns:1fr 390px;gap:20px}.library-hero-visual{min-height:320px}.component-card-grid,.category-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.hero{flex-direction:column;align-items:flex-start}.hero-metrics{border-left:0;width:100%}.hero-metrics>div{flex:1;padding-left:0}.workspace,.detail-header-grid{grid-template-columns:330px minmax(0,1fr)}.detail-component-header{grid-template-columns:58px minmax(0,1fr)}.detail-component-header .compact-detail-symbol{width:58px;height:58px}.detail-component-header .header-power-control{border-top:1px solid var(--line);border-left:0;grid-column:1/-1;min-width:0;padding:10px 0 0}.scene-panel{min-height:560px}.experiment-header{flex-direction:column}.mosfet-operating-readout{text-align:left;width:100%}.experiment-controls{flex-wrap:wrap;width:100%}.detail-component-switcher .browse-components-button{min-width:142px}.scene-live-metrics{width:100%}.scene-live-metrics>div{padding:13px 14px}}@media (max-width:740px){.topbar{height:60px}.topbar-inner{grid-template-columns:1fr auto}.header-path,.profile-trigger-copy{display:none}.profile-trigger{padding-right:6px}.hero{padding-top:30px}.component-hero-intro{align-items:flex-start;gap:12px}.component-detail-hero h1{font-size:32px}.detail-symbol{border-radius:11px;width:72px;height:68px}.detail-symbol .electrical-symbol{width:62px;height:54px}.selector-shell{padding-top:14px}.detail-header-grid{flex-direction:column;gap:10px;display:flex}.component-picker-card{min-height:58px;padding:7px}.component-picker-card .browse-components-button{min-height:44px}.detail-component-header{grid-template-columns:58px minmax(0,1fr);min-height:0}.detail-component-header .header-power-control{grid-template-columns:minmax(105px,1fr) 78px 110px}.motor-selector{min-width:max-content}.motor-selector>button{min-width:175px}.hero-metrics{overflow-x:auto}.hero-metrics>div{min-width:112px}.workspace{flex-direction:column-reverse;display:flex}.workspace>*{width:100%;max-width:100%}.control-column{width:100%}.scene-panel{min-height:0;padding:0}.canvas-wrap{flex-basis:390px;height:390px;margin:0}.parameter-panel{min-height:610px}.experiment-panel{padding:20px 18px}.experiment-controls{align-items:flex-end}.experiment-run{flex:1}.experiment-status-row{flex-direction:column;align-items:flex-start}.experiment-readouts{justify-content:space-between;gap:6px;width:100%}.mosfet-chart-grid{grid-template-columns:1fr}.library-count-chip{display:none}.library-hero{grid-template-columns:1fr;min-height:0;padding-top:48px}.library-hero-copy h1{font-size:clamp(45px,14vw,68px)}.library-hero-copy>p:not(.eyebrow){font-size:14px}.library-hero-visual{min-height:300px}.library-hero-visual>.component-visual{transform:scale(1.25)}.library-content{padding-top:42px}.library-toolbar{flex-direction:column;align-items:stretch;gap:20px}.library-search{width:100%}.category-tabs{margin-inline:-20px;padding:0 20px 5px;display:flex;overflow-x:auto}.category-tabs a{min-width:190px}.component-card-grid{grid-template-columns:1fr}.component-card-visual{height:180px}.component-switcher{padding-left:9px}.browse-components-button{padding:0 11px}.browse-components-button .browse-grid-icon{display:none}.selector-shell:has(.detail-component-switcher){padding-bottom:14px}.selector-shell:has(.detail-header-grid){padding-bottom:14px}.detail-component-switcher{grid-template-columns:44px 58px minmax(0,1fr);gap:8px;min-height:78px;padding:8px}.detail-component-switcher .browse-components-button{justify-content:center;width:44px;min-width:0;min-height:58px;padding:0;font-size:0}.detail-component-switcher .browse-grid-icon{display:grid}.detail-component-switcher .browse-components-button b{display:none}.compact-detail-symbol{border-radius:9px;width:58px;height:58px}.compact-detail-symbol .electrical-symbol{width:51px;height:47px}.compact-component-copy h1{font-size:21px}.compact-component-copy>span{font-size:8px}.scene-live-metrics{grid-template-columns:repeat(2,minmax(0,1fr));overflow:hidden}.scene-live-metrics>div{border-bottom:1px solid var(--line);min-width:0;padding:12px 13px}.scene-live-metrics>div:nth-child(2){border-right:0}.scene-live-metrics>div:nth-last-child(-n+2){border-bottom:0}.scene-live-metrics strong{font-size:16px}.component-browser{width:100%}.component-browser>header{padding:22px 20px 18px}.component-browser-content{padding:20px}.component-browser>footer{padding:14px 20px}.library-hero.compact-library-hero{padding-top:34px;padding-bottom:30px}.compact-library-hero .library-hero-copy h1{font-size:38px}.compact-library-hero .library-hero-copy>p:not(.eyebrow){font-size:12px}.library-content{padding-top:22px;display:block}.category-sidebar{box-shadow:none;background:0 0;border:0;border-radius:0;padding:0;position:static}.sidebar-heading{padding-inline:0}.category-sidebar nav{margin-inline:-20px;padding:0 20px 8px;display:flex;overflow-x:auto}.category-sidebar nav a{background:#fbfaf699;border-color:#dcddd6;min-width:175px}.sidebar-standard-note{display:none}.library-results{margin-top:24px}.library-results .library-toolbar{gap:18px}.library-results .component-card-grid{grid-template-columns:1fr}.library-footer{flex-direction:column;align-items:flex-start;gap:10px}.library-footer p{text-align:left}}@media (max-width:420px){.topbar-inner{padding-inline:16px}.brand-lockup b{font-size:11px}.profile-popover{width:auto;position:fixed;top:68px;left:12px;right:12px}.auth-backdrop{padding:12px}.auth-dialog{border-radius:16px;max-height:calc(100vh - 24px);padding:24px 20px}.auth-footer{flex-direction:column;align-items:flex-start}.detail-component-header .header-power-control{grid-template-columns:78px minmax(110px,1fr)}.header-power-status{grid-column:1/-1}.header-power-button{min-width:0}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition-duration:.01ms!important}}
