:root{color:#183247;background:#eef3f5;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #122a3c;--muted: #687e8f;--line: #d7e1e7;--paper: #f8fafb;--panel: #ffffff;--blue: #1d6f92;--blue-dark: #155571;--teal: #13a6a0;--success: #18836e;--danger: #c45240;--mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace}*{box-sizing:border-box}html,body,#root{width:100%;min-width:320px;min-height:100%;margin:0}body{min-height:100vh;background:#eef3f5}button,input,textarea{font:inherit}button{color:inherit}button:focus-visible{outline:3px solid rgba(29,111,146,.22);outline-offset:2px}.brand{display:flex;align-items:center;gap:11px;-webkit-user-select:none;user-select:none}.brand__mark{display:block;width:38px;height:38px;flex:0 0 38px;filter:drop-shadow(0 4px 8px rgba(3,22,33,.2))}.brand__mark img{display:block;width:100%;height:100%}.brand__copy{display:flex;flex-direction:column;font-family:var(--mono);font-size:12px;line-height:1.08;letter-spacing:.13em}.brand__copy strong{color:#f7fcff;font-weight:800}.brand__copy span{color:#8ed1da;font-weight:600}.primary-button,.secondary-button,.toolbar-button,.icon-button{display:inline-flex;align-items:center;justify-content:center;border:0;cursor:pointer;transition:transform .16s ease,background .16s ease,border-color .16s ease,opacity .16s ease}.primary-button{min-height:42px;gap:9px;padding:0 18px;color:#fff;border:1px solid #1a7593;border-radius:7px;background:#1d6f92;box-shadow:0 7px 18px #144e682b;font-size:13px;font-weight:720}.primary-button:hover:not(:disabled){transform:translateY(-1px);background:#155b7b}.primary-button:disabled{cursor:default;opacity:.64}.primary-button--large{min-height:50px;padding:0 22px;font-size:14px}.secondary-button{min-height:39px;gap:8px;padding:0 15px;color:#365267;border:1px solid #cad7df;border-radius:7px;background:#fff;font-size:12px;font-weight:700}.secondary-button:hover{border-color:#9ab0bf;background:#f7fafb}.section-kicker{display:inline-flex;align-items:center;gap:8px;color:#347991;font-family:var(--mono);font-size:11px;font-weight:750;letter-spacing:.15em}.section-kicker>span{width:24px;height:1px;background:currentColor}.section-kicker--small{font-size:9px}.section-kicker--small>span{width:16px}.section-kicker--center{justify-content:center;color:#258d88;font-size:9px}.level-select{min-height:100vh;overflow:hidden;color:var(--ink);background:linear-gradient(90deg,rgba(109,140,158,.055) 1px,transparent 1px),linear-gradient(rgba(109,140,158,.055) 1px,transparent 1px),#f5f8f9;background-size:32px 32px}.landing-header{display:flex;height:72px;align-items:center;justify-content:space-between;padding:0 clamp(40px,6vw,92px);color:#fff;background:#102b3e;box-shadow:inset 0 -1px #bbe5ed26}.landing-header__meta{display:flex;align-items:center;gap:10px}.admin-toggle{display:inline-flex;min-height:38px;align-items:center;gap:8px;margin-left:auto;margin-right:14px;padding:5px 7px 5px 11px;color:#c9dde4;border:1px solid rgba(173,216,226,.28);border-radius:6px;background:#ffffff0f;cursor:pointer;transition:border-color .16s ease,background .16s ease,color .16s ease}.admin-toggle:hover{color:#fff;border-color:#add8e294;background:#ffffff1a}.admin-toggle:focus-visible{outline:3px solid rgba(240,201,107,.45);outline-offset:2px}.admin-toggle__label,.admin-toggle__state{font-family:var(--mono);font-size:10px;font-weight:800;letter-spacing:.06em}.admin-toggle__state{min-width:19px;color:#f0c96b;text-align:center}.admin-toggle__switch{position:relative;width:34px;height:20px;border:1px solid rgba(185,214,223,.35);border-radius:20px;background:#233f51}.admin-toggle__switch i{position:absolute;top:3px;left:3px;width:12px;height:12px;border-radius:50%;background:#9fb6bf;transition:transform .17s ease,background .17s ease}.admin-toggle.is-on{color:#fff4cf;border-color:#f0c96b9e;background:#f0c96b1f}.admin-toggle.is-on .admin-toggle__switch{border-color:#dcb756;background:#80682e}.admin-toggle.is-on .admin-toggle__switch i{transform:translate(14px);background:#ffe19a}.admin-mode-banner{display:flex;min-height:40px;align-items:center;justify-content:center;gap:7px;padding:8px 24px;color:#604c17;border-bottom:1px solid #e7cf8a;background:#fff6d9;font-size:12px}.landing-header__meta span{display:inline-flex;min-height:31px;align-items:center;gap:7px;padding:0 11px;color:#b9d6df;border:1px solid rgba(173,216,226,.18);border-radius:5px;background:#ffffff0a;font-family:var(--mono);font-size:10px;letter-spacing:.04em}.landing-header__meta span:last-child{color:#f0c96b}.hero{display:grid;max-width:1280px;min-height:470px;grid-template-columns:minmax(420px,.95fr) minmax(550px,1.05fr);align-items:center;gap:70px;margin:0 auto;padding:70px 54px 58px}.hero__copy h1{margin:15px 0 18px;color:#153349;font-family:var(--mono);font-size:clamp(38px,4vw,57px);font-weight:780;line-height:1.05;letter-spacing:-.055em}.hero__copy h1 em{color:#27829a;font-style:normal;font-weight:540}.hero__copy>p{max-width:545px;margin:0 0 28px;color:#5e7586;font-size:16px;line-height:1.7}.hero-diagram{position:relative;min-height:254px;padding:54px 34px 35px;border:1px solid #ccdae1;border-radius:4px;background:linear-gradient(90deg,rgba(82,125,149,.06) 1px,transparent 1px),linear-gradient(rgba(82,125,149,.06) 1px,transparent 1px),#ffffffd1;background-size:18px 18px;box-shadow:0 20px 42px #284b5f17}.hero-diagram:before,.hero-diagram:after{position:absolute;width:14px;height:14px;border-color:#4f8da3;content:""}.hero-diagram:before{top:8px;left:8px;border-top:2px solid;border-left:2px solid}.hero-diagram:after{right:8px;bottom:8px;border-right:2px solid;border-bottom:2px solid}.hero-diagram__label{position:absolute;top:16px;left:20px;color:#7b909d;font-family:var(--mono);font-size:9px;font-weight:700;letter-spacing:.14em}.hero-diagram__route{display:flex;min-height:104px;align-items:center;justify-content:center}.hero-device-wrap{display:flex;flex:1 1 auto;align-items:center}.hero-device{display:flex;width:88px;height:78px;flex:0 0 88px;flex-direction:column;align-items:center;justify-content:center;gap:7px;border:1px solid currentColor;border-radius:5px;background:#fff;box-shadow:0 5px 14px #25475c14}.hero-device span{font-family:var(--mono);font-size:9px;font-weight:750;text-transform:uppercase}.hero-device--host{color:#2b6cb0}.hero-device--switch{color:#0e7490}.hero-device--gateway{color:#7c3aed}.hero-device--server{color:#c2410c}.hero-cable{position:relative;width:100%;min-width:30px;height:1px;background:#6d899a}.hero-cable:before,.hero-cable:after{position:absolute;top:-3px;width:7px;height:7px;border-radius:50%;background:#6d899a;content:""}.hero-cable:before{left:-1px}.hero-cable:after{right:-1px}.hero-cable i{position:absolute;top:-5px;left:0;width:11px;height:11px;border:2px solid white;border-radius:50%;background:#19a9a2;box-shadow:0 0 0 3px #19a9a22b;animation:hero-packet 3s ease-in-out infinite}@keyframes hero-packet{0%,8%{left:0;opacity:0}18%,78%{opacity:1}92%,to{left:calc(100% - 11px);opacity:0}}.hero-diagram__note{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:28px;padding-top:17px;color:#587484;border-top:1px dashed #c9d7dd;font-family:var(--mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase}.hero-diagram__note svg{color:#17a39d}.levels-section{padding:56px clamp(40px,6vw,92px) 72px;border-top:1px solid #d9e3e7;background:#edf3f5d6}.levels-section__heading{display:flex;max-width:1280px;align-items:flex-end;justify-content:space-between;margin:0 auto 28px}.levels-section__heading h2{margin:10px 0 0;color:#18364a;font-family:var(--mono);font-size:25px;letter-spacing:-.035em}.levels-section__heading>p{margin:0 0 2px;color:#788c98;font-size:13px}.level-grid{display:grid;max-width:1280px;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin:0 auto}.level-card{position:relative;display:flex;min-height:292px;flex-direction:column;padding:18px;overflow:hidden;text-align:left;border:1px solid #d2dfe5;border-radius:5px;background:#ffffffe6;box-shadow:0 4px 11px #2043580a;cursor:pointer;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.level-card:after{position:absolute;right:-18px;bottom:-18px;width:72px;height:72px;border:1px solid rgba(80,126,147,.13);border-radius:50%;content:""}.level-card:hover:not(:disabled){z-index:2;transform:translateY(-4px);border-color:#68a0b3;box-shadow:0 13px 28px #1f4d631c}.level-card.is-complete{border-color:#92c6bd}.level-card.is-admin-open{border-color:#d9bb68;background:linear-gradient(145deg,#fffdf7,#fff 58%)}.level-card.is-locked{color:#8b9aa3;background:#f2f6f7bf;cursor:not-allowed;filter:saturate(.3)}.level-card__topline,.level-card__footer{display:flex;align-items:center;justify-content:space-between}.level-card__number{color:#315c73;font-family:var(--mono);font-size:11px;font-weight:800}.level-card__state{display:inline-flex;align-items:center;gap:4px;color:#82939d;font-family:var(--mono);font-size:8px;font-weight:700;letter-spacing:.08em}.level-card__state--done{color:#258674}.level-card__state--open{color:#267e9a}.level-card__state--admin{color:#9a7010}.level-card__icon{display:grid;width:48px;height:48px;place-items:center;margin-top:22px;color:#237793;border:1px solid #c7dce4;border-radius:6px;background:#eff7f9}.level-card h3{margin:15px 0 7px;color:#18394e;font-family:var(--mono);font-size:14px;line-height:1.25}.level-card>p{margin:0;color:#718590;font-size:11px;line-height:1.5}.level-card__footer{margin-top:auto;padding-top:14px;border-top:1px solid #e5ecef}.level-card__footer>span:first-child{max-width:110px;overflow:hidden;color:#708694;font-family:var(--mono);font-size:8px;text-overflow:ellipsis;white-space:nowrap}.level-card__stars{display:flex;color:#e5af3e}.landing-footer{display:flex;min-height:64px;align-items:center;justify-content:space-between;padding:0 clamp(40px,6vw,92px);color:#75909e;border-top:1px solid #d5e0e5;background:#f8fafb;font-family:var(--mono);font-size:9px;letter-spacing:.04em}.game-shell{width:100vw;height:100vh;overflow:hidden;background:#eaf0f3}.game-header{display:flex;height:66px;align-items:center;gap:15px;padding:0 20px;color:#fff;background:#102b3e;box-shadow:inset 0 -1px #bbe5ed21,0 2px 10px #16304026}.game-header__back{width:34px;height:34px;color:#c2d9e1;border:1px solid rgba(180,216,225,.2);border-radius:5px;background:#ffffff0a}.game-header__back:hover{background:#ffffff1a}.game-header__divider{width:1px;height:30px;margin-left:8px;background:#b7d8e12e}.game-header__level{display:flex;flex-direction:column;gap:3px}.game-header__level span{color:#65b5c5;font-family:var(--mono);font-size:8px;font-weight:700;letter-spacing:.14em}.game-header__level strong{color:#f4f9fb;font-family:var(--mono);font-size:12px;letter-spacing:-.01em}.game-header__progress{display:flex;align-items:center;gap:5px;margin-left:auto}.game-header__progress>span{width:28px;height:3px;border-radius:2px;background:#bedee52e}.game-header__progress>span.is-filled{background:#4db7bd}.game-header__progress small{margin-left:8px;color:#9fbcc6;font-family:var(--mono);font-size:9px}.game-layout{display:grid;height:calc(100vh - 66px);grid-template-columns:300px minmax(0,1fr)}.builder-sidebar{z-index:5;display:flex;min-height:0;flex-direction:column;overflow-y:auto;border-right:1px solid #cbd9e0;background:#f8fafb;box-shadow:5px 0 20px #1f41540b}.mission-block,.goals-block,.palette-block{padding:23px 22px;border-bottom:1px solid #dbe5e9}.mission-block h1{margin:11px 0 8px;color:#17364a;font-family:var(--mono);font-size:18px;line-height:1.2;letter-spacing:-.035em}.mission-block>p{margin:0;color:#637986;font-size:12px;line-height:1.55}.goals-block{padding-top:18px;padding-bottom:17px;background:#f2f7f8}.goals-block h2,.palette-block h2{display:flex;align-items:center;gap:7px;margin:0 0 12px;color:#536f7e;font-family:var(--mono);font-size:9px;letter-spacing:.1em}.goal-row{display:flex;align-items:center;gap:9px;margin-top:8px}.goal-row>span{display:grid;width:20px;height:20px;flex:0 0 20px;place-items:center;color:#2a7c92;border:1px solid #a9cad4;border-radius:50%;font-family:var(--mono);font-size:8px;font-weight:800}.goal-row>div{display:flex;min-width:0;flex-direction:column;gap:2px}.goal-row strong{overflow:hidden;color:#29485b;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.goal-row small{color:#78909d;font-family:var(--mono);font-size:8px}.palette-block{padding-top:19px}.palette-block__heading{display:flex;align-items:center;justify-content:space-between}.palette-block__heading>span{margin-top:-12px;color:#8b9da7;font-family:var(--mono);font-size:8px}.device-palette{display:flex;flex-direction:column;gap:8px}.palette-device{display:flex;width:100%;min-height:54px;align-items:center;padding:7px 9px 7px 5px;color:#365365;text-align:left;border:1px solid #d6e1e6;border-radius:5px;background:#fff;box-shadow:0 2px 5px #22475b06;cursor:grab;transition:border-color .15s ease,transform .15s ease,box-shadow .15s ease}.palette-device:hover:not(:disabled){transform:translate(2px);border-color:var(--device-color);box-shadow:0 5px 12px #21475c14}.palette-device:active{cursor:grabbing}.palette-device:disabled{cursor:default;opacity:.55}.palette-device__grip{display:grid;width:18px;place-items:center;color:#a3b2ba}.palette-device__icon{display:grid;width:36px;height:36px;flex:0 0 36px;place-items:center;color:var(--device-color);border-radius:4px;background:var(--device-soft)}.palette-device__copy{display:flex;flex-direction:column;gap:2px;margin-left:10px}.palette-device__copy strong{color:#29485b;font-size:11px}.palette-device__copy small{color:#80929c;font-size:9px}.palette-device__add{display:grid;width:20px;height:20px;place-items:center;margin-left:auto;color:var(--device-color);border:1px solid #d6e1e6;border-radius:4px;font-family:var(--mono);font-size:14px}.sidebar-tip{display:flex;align-items:flex-start;gap:9px;margin:auto 16px 16px;padding:12px;color:#5d7785;border:1px dashed #b8cdd6;border-radius:5px;background:#edf5f6}.sidebar-tip svg{flex:0 0 auto;color:#3d8da1}.sidebar-tip p{margin:0;font-size:9px;line-height:1.45}.sidebar-tip strong{display:block;margin-bottom:2px;color:#365a6c;font-family:var(--mono)}.canvas-panel{display:grid;min-width:0;min-height:0;grid-template-rows:42px minmax(0,1fr)}.canvas-toolbar{z-index:3;display:flex;align-items:center;justify-content:space-between;padding:0 15px 0 18px;color:#728895;border-bottom:1px solid #d4e0e5;background:#f8fafb}.canvas-toolbar__hint,.canvas-toolbar__actions{display:flex;align-items:center;gap:9px}.canvas-toolbar__hint span{font-size:9px}.canvas-toolbar__hint kbd{padding:1px 4px;color:#58717f;border:1px solid #c5d3da;border-bottom-width:2px;border-radius:3px;background:#fff;font-family:var(--mono);font-size:8px}.toolbar-button{min-height:28px;gap:6px;padding:0 9px;color:#536e7d;border:1px solid #d1dde3;border-radius:4px;background:#fff;font-size:9px}.toolbar-button:hover:not(:disabled){border-color:#9fb4bf;background:#f4f8f9}.toolbar-button:disabled{opacity:.5;cursor:default}.selection-count{color:#2c7c93;font-family:var(--mono);font-size:8px}.flow-wrap{position:relative;min-width:0;min-height:0;overflow:hidden;background:#edf3f5}.flow-wrap.is-simulating .react-flow__pane{cursor:progress}.react-flow__background{opacity:.68}.react-flow__controls{overflow:hidden;border:1px solid #c9d8df;border-radius:5px;box-shadow:0 4px 12px #23455914}.react-flow__controls-button{width:27px;height:27px;color:#557384;border-bottom-color:#dde6ea;background:#fff}.react-flow__minimap{width:132px!important;height:82px!important;overflow:hidden;border:1px solid #c8d7de;border-radius:4px;background:#f8fafb;box-shadow:0 4px 14px #23455912}.react-flow__edge-path{stroke-linecap:round;transition:stroke .18s ease,stroke-width .18s ease}.react-flow__edge.selected .react-flow__edge-path{stroke:#2387a1!important;stroke-width:3px!important}.react-flow__connection-path{stroke:#1a94a0;stroke-width:2.5;stroke-dasharray:6 4}.network-node{position:relative;display:flex;width:168px;min-height:72px;align-items:center;padding:12px 14px;color:#284758;border:1.5px solid #9eb6c2;border-radius:6px;background:#fffffff7;box-shadow:0 6px 16px #1f43571a;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.network-node:before{position:absolute;top:0;bottom:0;left:0;width:4px;border-radius:5px 0 0 5px;background:var(--device-color);content:""}.network-node.is-selected{border-color:var(--device-color);box-shadow:0 0 0 3px color-mix(in srgb,var(--device-color) 16%,transparent),0 8px 20px #1f435721}.network-node.is-active{z-index:50;transform:translateY(-2px);border-color:#11a49f;box-shadow:0 0 0 5px #11a49f21,0 10px 24px #1a656e33}.network-node__icon{display:grid;width:40px;height:40px;flex:0 0 40px;place-items:center;color:var(--device-color);border-radius:5px;background:var(--device-soft)}.network-node__copy{display:flex;min-width:0;flex-direction:column;gap:4px;margin-left:11px}.network-node__copy span{color:var(--device-color);font-family:var(--mono);font-size:8px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.network-node__copy strong{overflow:hidden;color:#274657;font-size:11px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.network-node__lock{position:absolute;top:5px;right:6px;display:grid;width:17px;height:17px;place-items:center;color:#7f949f;border-radius:50%;background:#edf3f5}.node-handle{width:10px;height:10px;border:2px solid white;background:#668295;box-shadow:0 0 0 1px #668295;transition:width .13s ease,height .13s ease,background .13s ease}.node-handle:hover{width:14px;height:14px;background:#11a49f;box-shadow:0 0 0 1px #11a49f,0 0 0 5px #11a49f24}.node-handle--left{left:-5px}.node-handle--right{right:-5px}.node-handle--top{top:-5px}.node-handle--bottom{bottom:-5px}.node-explainer{position:absolute;z-index:90;top:calc(100% + 18px);left:50%;width:275px;padding:13px 14px;transform:translate(-50%);color:#effcfd;border:1px solid #2d6974;border-radius:5px;background:#133b4a;box-shadow:0 12px 30px #0e313f40;animation:explainer-in .2s ease-out both}.node-explainer:before{position:absolute;top:-6px;left:calc(50% - 6px);width:11px;height:11px;transform:rotate(45deg);border-top:1px solid #2d6974;border-left:1px solid #2d6974;background:#133b4a;content:""}@keyframes explainer-in{0%{transform:translate(-50%,-5px);opacity:0}to{transform:translate(-50%);opacity:1}}.node-explainer__eyebrow{display:flex;align-items:center;gap:6px;color:#75d9d3;font-family:var(--mono);font-size:7px;font-weight:800;letter-spacing:.12em}.node-explainer__pulse{width:6px;height:6px;border-radius:50%;background:#4ce0d8;box-shadow:0 0 0 3px #4ce0d821}.node-explainer p{margin:7px 0 0;color:#d4e7ea;font-size:10px;line-height:1.5}.packet-marker{pointer-events:none}.packet-marker__halo{fill:#1ab7af3d;stroke:#ffffffb3;stroke-width:1}.packet-marker__core{fill:#15c5bd;stroke:#fff;stroke-width:2;filter:drop-shadow(0 2px 3px rgba(10,73,78,.45))}.canvas-notice{position:absolute;z-index:20;top:16px;left:50%;display:flex;align-items:center;gap:7px;padding:9px 12px;transform:translate(-50%);color:#79503a;border:1px solid #e4c6a8;border-radius:5px;background:#fff8ed;box-shadow:0 8px 20px #4634241f;font-size:10px}.canvas-view-controls{position:absolute;z-index:24;top:14px;right:14px;display:flex;align-items:center;gap:7px;padding:5px;border:1px solid #c7d7de;border-radius:7px;background:#fffffff0;box-shadow:0 7px 20px #1c3d501f;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.canvas-view-controls button{display:inline-flex;min-height:34px;align-items:center;gap:7px;padding:0 10px;color:#3c6576;border:1px solid transparent;border-radius:5px;background:transparent;cursor:pointer;font-size:10px;font-weight:750}.canvas-view-controls button:hover:not(:disabled){color:#176f87;border-color:#c4dce3;background:#edf7f9}.canvas-view-controls button:disabled{cursor:default;opacity:.45}.simulation-dock{position:absolute;z-index:30;right:50%;bottom:19px;display:grid;width:min(700px,calc(100% - 330px));min-width:590px;min-height:76px;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 14px;transform:translate(50%);border:1px solid #c6d6dd;border-radius:7px;background:#fffffff5;box-shadow:0 12px 33px #1b3e522e;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.simulation-dock--error{border-color:#dfb4aa;background:#fffaf8f7}.simulation-dock--running{border-color:#82bebf}.simulation-dock__status{display:grid;width:42px;height:42px;place-items:center;color:#26889b;border:1px solid #bfdae1;border-radius:50%;background:#edf7f8}.simulation-dock__status--error{color:#bd5948;border-color:#e5c4bc;background:#fff0ec}.simulation-dock__copy{display:flex;min-width:0;flex-direction:column;gap:2px}.simulation-dock__copy>span{color:#388399;font-family:var(--mono);font-size:7px;font-weight:800;letter-spacing:.12em}.simulation-dock--error .simulation-dock__copy>span{color:#bb5d4d}.simulation-dock__copy strong{overflow:hidden;color:#28495b;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.simulation-dock__copy p{overflow:hidden;margin:1px 0 0;color:#738894;font-size:9px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.simulation-dock--error .simulation-dock__copy p{white-space:normal}.radar-pulse{width:9px;height:9px;border-radius:50%;background:#16aaa4;box-shadow:0 0 #16aaa461;animation:radar 1.3s ease-out infinite}@keyframes radar{0%{box-shadow:0 0 #16aaa473}to{box-shadow:0 0 0 13px #16aaa400}}.result-overlay{position:absolute;z-index:100;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#112a3a85;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:overlay-in .22s ease-out both}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}.success-modal{position:relative;width:min(490px,calc(100% - 80px));padding:31px 34px 28px;text-align:center;border:1px solid #bad1d4;border-radius:8px;background:#fbfdfd;box-shadow:0 24px 65px #0923314d;animation:modal-in .26s ease-out both}@keyframes modal-in{0%{transform:translateY(10px) scale(.98);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.success-modal__close{position:absolute;top:12px;right:12px;display:grid;width:29px;height:29px;place-items:center;color:#6e8490;border:1px solid #d7e2e6;border-radius:5px;background:#fff;cursor:pointer}.success-modal__icon{display:grid;width:64px;height:64px;place-items:center;margin:0 auto 17px;color:#fff;border:5px solid #dff3ef;border-radius:50%;background:#21917e;box-shadow:0 7px 18px #1f857133}.success-modal h2{margin:10px 0 7px;color:#17384a;font-family:var(--mono);font-size:23px;letter-spacing:-.04em}.success-modal>p{max-width:360px;margin:0 auto;color:#6a808c;font-size:11px;line-height:1.5}.success-modal__stars{display:flex;justify-content:center;gap:5px;margin:17px 0;color:#e6ad34}.learning-summary{display:flex;align-items:flex-start;gap:11px;padding:14px;text-align:left;border:1px solid #cde0e3;border-radius:5px;background:#eff7f7}.learning-summary>svg{flex:0 0 auto;color:#298c8d}.learning-summary div{display:flex;flex-direction:column;gap:4px}.learning-summary span{color:#2e8285;font-family:var(--mono);font-size:7px;font-weight:800;letter-spacing:.11em}.learning-summary p{margin:0;color:#526f7b;font-size:10px;line-height:1.45}.success-modal__actions{display:flex;justify-content:center;gap:9px;margin-top:20px}@media(max-width:1220px){.hero{grid-template-columns:.85fr 1.15fr;gap:34px;padding-inline:40px}.hero-device{width:76px;flex-basis:76px}.levels-section{padding-inline:40px}.level-card{padding:15px}.game-layout{grid-template-columns:276px minmax(0,1fr)}.mission-block,.goals-block,.palette-block{padding-inline:18px}.simulation-dock{width:min(680px,calc(100% - 150px))}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.hero__actions{display:flex;align-items:center;gap:18px}.hero__actions>span{display:inline-flex;align-items:center;gap:7px;color:#637b89;font-size:12px;font-weight:650}.curriculum-summary{display:grid;max-width:1160px;grid-template-columns:repeat(4,1fr);margin:0 auto 28px;overflow:hidden;border:1px solid #d0dfe5;border-radius:6px;background:#ffffffe0;box-shadow:0 10px 26px #23485c12}.curriculum-summary>div{display:flex;min-height:84px;flex-direction:column;align-items:center;justify-content:center;gap:4px;border-right:1px solid #dde7eb}.curriculum-summary>div:last-child{border-right:0}.curriculum-summary strong{color:#1f7189;font-family:var(--mono);font-size:25px}.curriculum-summary span{color:#667e8b;font-size:11px}.level-track{max-width:1280px;margin:0 auto 40px}.level-track:last-child{margin-bottom:0}.level-track__heading{display:flex;align-items:center;gap:11px;margin-bottom:14px}.level-track__heading span{color:#2a8298;font-family:var(--mono);font-size:10px;font-weight:800}.level-track__heading h3{margin:0;color:#526e7d;font-family:var(--mono);font-size:11px;letter-spacing:.11em}.level-track__heading i{height:1px;flex:1;background:#d3e0e5}.level-grid{grid-template-columns:repeat(auto-fit,minmax(255px,1fr));gap:16px}.level-card{min-height:330px;padding:20px}.level-card__difficulty{width:max-content;margin-top:13px;padding:3px 7px;color:#587785;border:1px solid #d4e1e6;border-radius:99px;background:#f3f7f8;font-family:var(--mono);font-size:8px;font-weight:750;letter-spacing:.06em;text-transform:uppercase}.level-card h3{margin-top:10px;font-size:16px;line-height:1.3}.level-card>p{color:#607784;font-size:12px;line-height:1.58}.level-card__footer{align-items:flex-end;gap:10px}.level-card__footer>span:first-child{max-width:none;overflow:visible;color:#5d7886;font-size:9px;line-height:1.4;text-overflow:clip;white-space:normal}.game-header{height:72px;padding-inline:22px}.game-header__level span{font-size:9px}.game-header__level strong{font-size:14px}.game-header__learn-button{display:inline-flex;min-height:34px;align-items:center;gap:7px;margin-left:auto;padding:0 11px;color:#c5dce3;border:1px solid rgba(180,216,225,.22);border-radius:5px;background:#ffffff0d;cursor:pointer;font-size:11px;font-weight:650}.game-header__learn-button:hover{background:#ffffff1c}.game-header__progress{margin-left:10px}.game-header__progress>span{width:13px;height:4px}.game-header__progress small{font-size:10px}.game-layout{height:calc(100vh - 72px);grid-template-columns:365px minmax(0,1fr)}.mission-block,.goals-block,.palette-block{padding-right:24px;padding-left:24px}.mission-block{padding-block:24px 21px}.mission-block h1{margin-top:13px;font-size:21px;line-height:1.25}.mission-block>p{color:#526b79;font-size:13px;line-height:1.62}.mission-block__difficulty{display:inline-flex;margin-top:13px;padding:4px 8px;color:#527585;border:1px solid #cfdee4;border-radius:99px;background:#f0f6f7;font-family:var(--mono);font-size:8px;font-weight:750;letter-spacing:.04em}.goals-block{padding-block:19px}.goals-block h2,.palette-block h2{font-size:10px}.goal-row{align-items:flex-start;gap:11px;margin-top:12px}.goal-row>span{width:24px;height:24px;flex-basis:24px;font-size:9px}.goal-row strong{overflow:visible;color:#24465a;font-size:12px;line-height:1.35;text-overflow:clip;white-space:normal}.goal-row small{margin-top:2px;color:#657f8d;font-size:9px;line-height:1.45}.learning-actions{display:grid;grid-template-columns:1fr;gap:8px;padding:16px 18px;border-bottom:1px solid #dbe5e9;background:#fff}.learning-actions>button{display:grid;min-height:57px;grid-template-columns:24px minmax(0,1fr) 16px;align-items:center;gap:9px;padding:8px 11px;color:#2b7289;text-align:left;border:1px solid #cbdde3;border-radius:6px;background:#f2f8f9;cursor:pointer;transition:border-color .15s ease,transform .15s ease,background .15s ease}.learning-actions>button:nth-child(2){color:#796020;border-color:#e4d6ae;background:#fff9e9}.learning-actions>button:hover{transform:translate(2px);border-color:currentColor}.learning-actions span{display:flex;min-width:0;flex-direction:column;gap:3px}.learning-actions strong{color:#294b5d;font-size:12px}.learning-actions small{color:#6f8793;font-size:9px;line-height:1.35}.palette-block{padding-block:20px}.palette-block__heading{display:flex;align-items:flex-start;gap:10px;margin-bottom:13px}.palette-block__heading>div{display:flex;flex-direction:column;gap:3px}.palette-block__heading h2{margin-bottom:0}.palette-block__heading>div>span{color:#748a96;font-size:9px}.palette-block__heading>button{display:inline-flex;min-height:30px;align-items:center;gap:5px;margin-left:auto;padding:0 8px;color:#347d91;border:1px solid #c7dbe2;border-radius:5px;background:#fff;cursor:pointer;font-size:9px;font-weight:700}.device-palette{gap:10px}.palette-device{min-height:86px;align-items:flex-start;padding:10px 10px 10px 5px}.palette-device__grip{align-self:center}.palette-device__icon{width:42px;height:42px;flex-basis:42px;margin-top:7px}.palette-device__copy{gap:2px;margin-left:11px}.palette-device__copy>small{color:var(--device-color);font-family:var(--mono);font-size:7px;font-weight:800;letter-spacing:.07em}.palette-device__copy strong{color:#203f52;font-size:13px}.palette-device__copy p{margin:2px 0 0;color:#617986;font-size:10px;line-height:1.38}.palette-device__add{align-self:center;flex:0 0 22px}.sidebar-tip{margin:0 18px 18px;padding:13px}.sidebar-tip p{font-size:10px;line-height:1.5}.sidebar-tip strong{font-size:10px}.canvas-panel{grid-template-rows:48px minmax(0,1fr)}.canvas-toolbar{padding-inline:18px}.canvas-toolbar__hint span{color:#667e8b;font-size:10px}.canvas-toolbar__hint strong{color:#355a6c}.toolbar-button{min-height:31px;padding-inline:10px;font-size:10px}.network-node{width:200px;min-height:84px;padding:14px 16px}.network-node__icon{width:44px;height:44px;flex-basis:44px}.network-node__copy span{font-size:9px}.network-node__copy strong{overflow:visible;font-size:12px;line-height:1.25;text-overflow:clip;white-space:normal}.network-node__lock,.network-node__delete{position:absolute;top:6px;right:7px;display:grid;width:22px;height:22px;place-items:center;color:#728995;border:1px solid #d6e1e5;border-radius:5px;background:#f4f7f8}.network-node__delete{color:#a2483d;background:#fff;cursor:pointer;opacity:.72}.network-node:hover .network-node__delete,.network-node__delete:focus-visible{opacity:1;border-color:#d7a49d;background:#fff0ed}.network-node__delete:disabled{cursor:default;opacity:.25}.edge-delete-button{position:absolute;z-index:12;display:grid;width:27px;height:27px;place-items:center;color:#a3453b;border:1px solid #cbd9df;border-radius:50%;background:#fffffff2;box-shadow:0 3px 9px #1c3d5021;cursor:pointer;opacity:.72;transition:opacity .14s ease,transform .14s ease,border-color .14s ease;pointer-events:all}.edge-delete-button:hover,.edge-delete-button:focus-visible{opacity:1;border-color:#c57b70;background:#fff1ee}.edge-delete-button:disabled{cursor:default;opacity:.15}.node-explainer{width:310px;padding:15px 16px}.node-explainer__eyebrow{font-size:8px}.node-explainer p{color:#e3f0f2;font-size:12px;line-height:1.55}.simulation-dock{width:min(860px,calc(100% - 110px));min-width:650px;min-height:88px;grid-template-columns:48px minmax(0,1fr) auto;gap:14px;padding:13px 16px}.simulation-dock__copy>span{font-size:8px}.simulation-dock__copy strong{font-size:14px;white-space:normal}.simulation-dock__copy p{color:#657d89;font-size:10px;line-height:1.45;white-space:normal}.simulation-dock__actions{display:flex;align-items:center;gap:8px}.success-modal{width:min(545px,calc(100% - 80px));padding:32px 38px 29px}.success-modal h2{font-size:25px}.success-modal>p{max-width:430px;font-size:12px}.learning-summary p{font-size:11px;line-height:1.55}.success-modal__theory{display:inline-flex;align-items:center;gap:7px;margin-top:13px;padding:6px 0;color:#287b8e;border:0;background:transparent;cursor:pointer;font-size:11px;font-weight:700}.learning-overlay{position:fixed;z-index:400;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:30px;background:#0d2534ab;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);animation:overlay-in .18s ease-out both}.learning-modal{display:grid;width:min(680px,calc(100vw - 60px));max-height:calc(100vh - 60px);grid-template-rows:auto minmax(0,1fr);overflow:hidden;border:1px solid #bdcfd7;border-radius:9px;background:#f9fbfb;box-shadow:0 28px 85px #061d2b66;animation:modal-in .22s ease-out both}.learning-modal--wide{width:min(1040px,calc(100vw - 60px))}.learning-modal__header{display:flex;min-height:84px;align-items:center;justify-content:space-between;gap:20px;padding:18px 24px;color:#fff;border-bottom:1px solid rgba(183,221,228,.2);background:#123448}.learning-modal__header>div{display:flex;flex-direction:column;gap:5px}.learning-modal__header span{color:#75c3ce;font-family:var(--mono);font-size:9px;font-weight:800;letter-spacing:.12em}.learning-modal__header h2{margin:0;color:#f8fcfd;font-family:var(--mono);font-size:20px;letter-spacing:-.035em}.learning-modal__header>button{display:grid;width:34px;height:34px;flex:0 0 auto;place-items:center;color:#c6dce3;border:1px solid rgba(190,222,229,.28);border-radius:6px;background:#ffffff0f;cursor:pointer}.learning-modal__body{min-height:0;padding:24px;overflow-y:auto}.modal-intro{margin:0 0 20px;color:#526d7a;font-size:13px;line-height:1.65}.theory-lead,.diagram-definition{display:flex;align-items:flex-start;gap:14px;padding:18px;color:#246f82;border:1px solid #c8dfe4;border-radius:7px;background:#edf7f8}.theory-lead svg,.diagram-definition svg{flex:0 0 auto;margin-top:2px}.theory-lead>div{display:flex;flex-direction:column;gap:5px}.theory-lead span{font-family:var(--mono);font-size:8px;font-weight:800;letter-spacing:.12em}.theory-lead p,.diagram-definition p{margin:0;color:#365b6b;font-size:13px;line-height:1.65}.theory-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px}.theory-card{padding:18px;border:1px solid #d6e2e6;border-radius:7px;background:#fff}.theory-card--example{border-color:#d8d9ad;background:#fffdf1}.theory-card--diagram{border-color:#c9d9eb;background:#f4f8fc}.theory-card__tag{display:inline-flex;align-items:center;gap:7px;color:#39788a;font-family:var(--mono);font-size:9px;font-weight:800;letter-spacing:.08em}.theory-card>p{margin:12px 0 0;color:#506a78;font-size:12px;line-height:1.65}.why-device-list{display:flex;flex-direction:column;gap:11px;margin-top:12px}.why-device-list>div{padding-left:11px;border-left:3px solid #64a8b7}.why-device-list strong{color:#274c5e;font-size:12px}.why-device-list p{margin:3px 0 0;color:#5b7380;font-size:11px;line-height:1.5}.takeaways{margin-top:14px;padding:17px 18px;border:1px solid #cce0d9;border-radius:7px;background:#f0f8f5}.takeaways h3,.tutorial-section h3,.editor-tutorial h3{margin:0 0 11px;color:#284c5d;font-family:var(--mono);font-size:12px}.takeaways>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px}.takeaways p{display:flex;align-items:flex-start;gap:7px;margin:0;color:#456675;font-size:11px;line-height:1.45}.takeaways svg{flex:0 0 auto;color:#26816c}.device-guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.device-guide-card{overflow:hidden;border:1px solid #d3e0e5;border-top:4px solid var(--device-color);border-radius:7px;background:#fff}.device-guide-card__heading{display:flex;align-items:center;gap:11px;padding:15px 16px 10px}.device-guide-card__heading>span{display:grid;width:43px;height:43px;place-items:center;color:var(--device-color);border-radius:6px;background:var(--device-soft)}.device-guide-card__heading small{color:var(--device-color);font-family:var(--mono);font-size:7px;font-weight:800;letter-spacing:.08em}.device-guide-card__heading h3{margin:3px 0 0;color:#244558;font-size:15px}.device-guide-card__lead{margin:0;padding:0 16px 13px;color:#526d79;font-size:12px;line-height:1.5}.device-guide-card dl{margin:0;border-top:1px solid #e0e8eb}.device-guide-card dl>div{padding:10px 16px;border-bottom:1px solid #edf1f3}.device-guide-card dl>div:last-child{border-bottom:0}.device-guide-card dt{color:#627c88;font-family:var(--mono);font-size:9px;font-weight:800;text-transform:uppercase}.device-guide-card dd{margin:4px 0 0;color:#496573;font-size:11px;line-height:1.52}.diagram-definition{margin-bottom:18px}.tutorial-visual{display:grid;grid-template-columns:1fr 42px 1fr 42px 1fr;align-items:center;gap:8px;margin-bottom:22px}.tutorial-zone{position:relative;min-height:105px;padding:15px;border:1px dashed #71a8b5;border-radius:7px;background:#f0f8f9}.tutorial-zone span{display:block;color:#438396;font-family:var(--mono);font-size:7px;font-weight:800;letter-spacing:.1em}.tutorial-zone b{display:grid;min-height:46px;place-items:center;margin-top:10px;color:#28556a;border:1px solid #c0d8df;border-radius:5px;background:#fff;font-family:var(--mono);font-size:10px}.tutorial-zone--edge{border-color:#d4a3a0;background:#fff4f2}.tutorial-zone--edge span{color:#a74f48}.tutorial-zone--app{border-color:#9fb1d6;background:#f4f5fc}.tutorial-zone--app span{color:#5f6fad}.tutorial-link{display:grid;place-items:center;color:#648493}.tutorial-section{margin-top:6px}.tutorial-rule-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.tutorial-rule-grid article{display:flex;align-items:flex-start;gap:10px;padding:12px;border:1px solid #d9e3e7;border-radius:6px;background:#fff}.tutorial-rule-grid article>span{display:grid;width:24px;height:24px;flex:0 0 24px;place-items:center;color:#fff;border-radius:50%;background:#397f92;font-family:var(--mono);font-size:9px;font-weight:800}.tutorial-rule-grid strong{color:#294d5f;font-size:11px}.tutorial-rule-grid p{margin:4px 0 0;color:#637b87;font-size:11px;line-height:1.48}.editor-tutorial{margin-top:20px}.editor-tutorial>div{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.editor-tutorial article{display:flex;flex-direction:column;gap:6px;padding:13px;color:#377d90;border:1px solid #d3e1e6;border-radius:6px;background:#f7fafb}.editor-tutorial strong{color:#2e5264;font-size:10px}.editor-tutorial p{margin:0;color:#667d89;font-size:9px;line-height:1.42}.hint-list{display:flex;flex-direction:column;gap:10px}.hint-list article{display:flex;align-items:flex-start;gap:11px;padding:14px;border:1px solid #e1d4a6;border-radius:6px;background:#fffbea;animation:hint-in .18s ease-out both}.hint-list article>span{display:grid;width:33px;height:33px;flex:0 0 33px;place-items:center;color:#9a701c;border-radius:50%;background:#fff2bf}.hint-list small{color:#967022;font-family:var(--mono);font-size:8px;font-weight:800;letter-spacing:.09em}.hint-list p{margin:4px 0 0;color:#5f5538;font-size:12px;line-height:1.55}.help-next-button{width:100%;margin-top:10px}.solution-reveal{display:flex;align-items:center;gap:18px;margin-top:20px;padding:17px;border:1px solid #c9dce2;border-radius:7px;background:#eff7f8}.solution-reveal>div{min-width:0;flex:1}.solution-reveal span{display:flex;align-items:center;gap:7px;color:#337b8d;font-family:var(--mono);font-size:8px;font-weight:800;letter-spacing:.09em}.solution-reveal p{margin:7px 0 3px;color:#385c6c;font-size:12px;line-height:1.5}.solution-reveal small{color:#7c909a;font-size:9px}.solution-reveal .primary-button{flex:0 0 auto}@keyframes hint-in{0%{transform:translateY(-4px);opacity:0}to{transform:translateY(0);opacity:1}}@media(max-width:1280px){.game-layout{grid-template-columns:340px minmax(0,1fr)}.mission-block,.goals-block,.palette-block{padding-inline:20px}.palette-device{min-height:82px}.simulation-dock{width:calc(100% - 70px)}.game-header__level span{max-width:285px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}.game-header__mobile-sidebar,.mobile-sidebar-heading,.mobile-sidebar-backdrop{display:none}@media(max-width:1100px){.landing-header{padding-inline:32px}.hero{min-height:auto;grid-template-columns:minmax(0,1fr) minmax(430px,1fr);gap:34px;padding:54px 36px 46px}.hero__copy h1{font-size:clamp(36px,4.8vw,50px)}.levels-section{padding-inline:32px}.level-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.game-layout{grid-template-columns:290px minmax(0,1fr)}.mission-block,.goals-block,.palette-block{padding-inline:18px}.learning-actions{padding-inline:12px}.game-header__progress>span{display:none}.game-header__progress small{margin-left:0}.game-header__learn-button{margin-left:auto}.simulation-dock{width:calc(100% - 40px);min-width:0}}@media(max-width:860px){.landing-header{height:auto;min-height:68px;flex-wrap:wrap;gap:10px;padding-block:12px}.landing-header .brand{margin-right:auto}.admin-toggle{order:3;width:100%;justify-content:center;margin:0}.landing-header__meta{margin-left:auto}.hero{grid-template-columns:1fr;gap:42px;padding:48px 28px}.hero__copy{max-width:650px}.hero__copy>p{max-width:650px}.hero-diagram{width:100%;max-width:650px;margin:0 auto}.curriculum-summary{grid-template-columns:repeat(2,1fr);margin-inline:28px}.curriculum-summary>div:nth-child(2){border-right:0}.curriculum-summary>div:nth-child(-n+2){border-bottom:1px solid #dde7eb}.levels-section__heading{align-items:flex-start;flex-direction:column;gap:10px}.level-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.landing-footer{padding-inline:28px}.game-header{gap:10px;padding-inline:14px}.game-header .brand__copy,.game-header__divider{display:none}.game-header__level{min-width:0}.game-header__level strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.game-header__learn-button{padding-inline:9px}.game-header__learn-button span{display:none}.game-layout{grid-template-columns:260px minmax(0,1fr)}.canvas-toolbar__hint span{max-width:235px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toolbar-button{padding-inline:8px}.simulation-dock__status{display:none}.simulation-dock{grid-template-columns:minmax(0,1fr) auto}.theory-grid,.device-guide-grid{grid-template-columns:1fr}.editor-tutorial>div{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px),(max-height:500px)and (max-width:900px){body{overflow-x:hidden}.landing-header{padding-inline:16px}.brand__mark{width:34px;height:34px;flex-basis:34px}.landing-header__meta span:first-child{display:none}.admin-mode-banner{align-items:flex-start;padding:9px 16px;text-align:left}.hero{gap:34px;padding:38px 18px 34px}.hero__copy h1{margin-top:12px;font-size:clamp(34px,10.5vw,46px)}.hero__copy>p{font-size:15px;line-height:1.62}.hero__actions{align-items:stretch;flex-direction:column;gap:12px}.hero__actions .primary-button{width:100%}.hero__actions>span{justify-content:center}.hero-diagram{min-height:220px;padding:50px 14px 28px}.hero-device{width:62px;height:66px;flex-basis:62px}.hero-device span{font-size:7px}.hero-cable{min-width:12px}.hero-diagram__note{font-size:8px;text-align:center}.curriculum-summary{margin:0 18px 22px}.curriculum-summary>div{min-height:74px}.curriculum-summary strong{font-size:22px}.curriculum-summary span{padding-inline:8px;font-size:10px;text-align:center}.levels-section{padding:40px 16px 52px}.levels-section__heading h2{font-size:22px}.level-track{margin-bottom:32px}.level-grid{grid-template-columns:1fr}.level-card{min-height:285px}.landing-footer{align-items:flex-start;flex-direction:column;gap:7px;padding:18px}.game-shell{height:100dvh;min-height:0}.game-header{height:58px;gap:8px;padding:0 10px}.game-header__back{width:38px;height:38px;flex:0 0 38px}.game-header .brand{display:none}.game-header__level{flex:1}.game-header__level span{max-width:none;font-size:7px}.game-header__level strong{font-size:12px}.game-header__learn-button{display:none}.game-header__progress{margin-left:0}.game-header__progress small{font-size:9px}.game-header__mobile-sidebar{display:inline-flex;min-height:38px;flex:0 0 auto;align-items:center;gap:6px;padding:0 10px;color:#e4f4f7;border:1px solid rgba(180,216,225,.3);border-radius:6px;background:#ffffff14;font-size:10px;font-weight:750}.game-layout{height:calc(100dvh - 58px);grid-template-columns:1fr}.builder-sidebar{position:fixed;z-index:210;top:58px;bottom:0;left:0;width:min(92vw,390px);max-width:100%;visibility:hidden;transform:translate(-104%);border-right:1px solid #b9ccd5;box-shadow:18px 0 45px #0c27373d;transition:transform .22s ease,visibility .22s}.builder-sidebar.is-mobile-open{visibility:visible;transform:translate(0)}.mobile-sidebar-heading{position:sticky;z-index:4;top:0;display:flex;min-height:52px;flex:0 0 auto;align-items:center;justify-content:space-between;padding:0 14px 0 18px;color:#ecf8fa;background:#17394d;box-shadow:0 2px 10px #14304024}.mobile-sidebar-heading strong{font-family:var(--mono);font-size:11px;letter-spacing:.04em}.mobile-sidebar-heading button{display:grid;width:38px;height:38px;place-items:center;color:#fff;border:1px solid rgba(255,255,255,.2);border-radius:6px;background:#ffffff14}.mobile-sidebar-backdrop{position:fixed;z-index:200;top:58px;right:0;bottom:0;left:0;display:block;visibility:hidden;padding:0;opacity:0;border:0;background:#091f2c85;transition:opacity .22s ease,visibility .22s}.mobile-sidebar-backdrop.is-visible{visibility:visible;opacity:1}.mission-block,.goals-block,.palette-block{padding-inline:18px}.mission-block h1{font-size:20px}.palette-device{min-height:78px}.palette-device__grip{display:none}.palette-device__add{width:36px;height:36px;flex-basis:36px;font-size:20px}.sidebar-tip{margin-bottom:max(18px,env(safe-area-inset-bottom))}.canvas-panel{grid-template-rows:46px minmax(0,1fr)}.canvas-toolbar{gap:8px;padding-inline:10px}.canvas-toolbar__hint span{display:none}.canvas-toolbar__hint:after{color:#466878;content:"Mozgatás érintéssel · kábel a pontokból";font-size:10px}.canvas-toolbar__actions{gap:6px}.selection-count{display:none}.toolbar-button{min-width:38px;min-height:36px;padding:0 8px}.toolbar-button svg{flex:0 0 auto}.toolbar-button{font-size:0}.react-flow__minimap{display:none}.react-flow__controls{bottom:152px!important}.react-flow__controls-button{width:36px;height:36px}.canvas-view-controls{top:10px;right:10px;flex-direction:column;align-items:stretch}.canvas-view-controls button{min-width:44px;min-height:42px;justify-content:center;padding-inline:9px}.canvas-view-controls button span{display:none}.network-node{width:180px;min-height:78px}.node-handle{width:16px;height:16px;border-width:3px}.node-handle--left{left:-8px}.node-handle--right{right:-8px}.node-handle--top{top:-8px}.node-handle--bottom{bottom:-8px}.network-node__delete{width:34px;height:34px;opacity:1}.edge-delete-button{width:38px;height:38px;opacity:.95}.node-explainer{width:min(280px,calc(100vw - 36px))}.canvas-notice{top:10px;width:calc(100% - 24px);justify-content:center;text-align:center}.simulation-dock{right:12px;bottom:max(12px,env(safe-area-inset-bottom));left:12px;display:flex;width:auto;min-height:0;flex-direction:column;align-items:stretch;gap:9px;padding:12px;transform:none}.simulation-dock__status{display:none}.simulation-dock__copy strong{font-size:13px}.simulation-dock__copy p{display:none}.simulation-dock--error .simulation-dock__copy p{display:block;font-size:10px}.simulation-dock__actions{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr)}.simulation-dock__actions button{min-height:44px;padding-inline:10px;font-size:11px}.result-overlay{position:fixed;padding:14px}.success-modal{width:100%;max-height:calc(100dvh - 28px);padding:28px 18px 20px;overflow-y:auto}.success-modal h2{font-size:21px}.success-modal__actions{align-items:stretch;flex-direction:column-reverse}.success-modal__actions button{width:100%;min-height:44px}.learning-overlay{align-items:stretch;padding:0}.learning-modal,.learning-modal--wide{width:100vw;max-height:100dvh;border:0;border-radius:0}.learning-modal__header{min-height:68px;padding:12px 16px}.learning-modal__header h2{font-size:17px}.learning-modal__header>button{width:42px;height:42px}.learning-modal__body{padding:18px 14px max(22px,env(safe-area-inset-bottom))}.theory-grid,.device-guide-grid,.takeaways>div,.tutorial-rule-grid{grid-template-columns:1fr}.tutorial-visual{grid-template-columns:1fr}.tutorial-link{transform:rotate(90deg)}.editor-tutorial>div{grid-template-columns:1fr}.solution-reveal{align-items:stretch;flex-direction:column}.solution-reveal .primary-button{width:100%}}@media(max-width:430px){.game-header__mobile-sidebar span{display:none}.game-header__mobile-sidebar{width:40px;justify-content:center;padding:0}.game-header__level strong{max-width:165px}.hero-device{width:56px;height:62px;flex-basis:56px}.hero-device svg{width:19px}.hero-cable{min-width:7px}.hero-diagram{padding-inline:9px}.simulation-dock__actions{grid-template-columns:1fr 1.35fr}}@media(hover:none)and (pointer:coarse){button{-webkit-tap-highlight-color:transparent}.palette-device:hover:not(:disabled),.learning-actions>button:hover,.level-card:hover:not(:disabled){transform:none}.network-node__delete,.edge-delete-button{opacity:1}.react-flow__pane{touch-action:none}}:root{--design-header: #102b3e;--design-header-soft: #173f53;--design-accent: #24869a;--design-accent-strong: #176b84;--design-accent-soft: #69d4d0;--design-highlight: #f2c75c;--design-page: #f5f8f9;--design-surface: #ffffff;--design-surface-muted: #edf3f5;--design-ink: #17364a;--design-muted: #617986;--design-line: #d2dfe5;--design-radius: 6px;--design-card-radius: 7px;--design-shadow: 0 10px 26px rgba(35, 72, 92, .08)}:root[data-design=soft-lab]{--design-header: #243b53;--design-header-soft: #31546b;--design-accent: #3f8f9b;--design-accent-strong: #2f7480;--design-accent-soft: #74c7c3;--design-highlight: #ee8a6f;--design-page: #f7f5f1;--design-surface: #fffefa;--design-surface-muted: #eef5f3;--design-ink: #243b53;--design-muted: #627580;--design-line: #d9ded9;--design-radius: 12px;--design-card-radius: 15px;--design-shadow: 0 14px 32px rgba(44, 70, 78, .1)}:root[data-design=signal]{--design-header: #17212b;--design-header-soft: #303a43;--design-accent: #c65e28;--design-accent-strong: #9f451d;--design-accent-soft: #eaa14a;--design-highlight: #f2c75c;--design-page: #f6f2e8;--design-surface: #fffdf8;--design-surface-muted: #f0ece2;--design-ink: #28343d;--design-muted: #716b61;--design-line: #ded5c5;--design-radius: 7px;--design-card-radius: 9px;--design-shadow: 0 11px 26px rgba(50, 40, 27, .1)}:root[data-design=spectrum]{--design-header: #272345;--design-header-soft: #403966;--design-accent: #6958c8;--design-accent-strong: #5142a3;--design-accent-soft: #3fb5b1;--design-highlight: #f0b95a;--design-page: #f6f4fb;--design-surface: #ffffff;--design-surface-muted: #eeedf7;--design-ink: #332f52;--design-muted: #6f6a85;--design-line: #dad6e8;--design-radius: 9px;--design-card-radius: 11px;--design-shadow: 0 12px 28px rgba(54, 45, 105, .11)}:root[data-design=mint]{--design-header: #123c3a;--design-header-soft: #23544f;--design-accent: #217f72;--design-accent-strong: #17665c;--design-accent-soft: #72c7b5;--design-highlight: #e2b84b;--design-page: #f1f8f5;--design-surface: #fbfffd;--design-surface-muted: #e9f4ef;--design-ink: #173f3b;--design-muted: #5d7770;--design-line: #cfe0d9;--design-radius: 8px;--design-card-radius: 10px;--design-shadow: 0 11px 27px rgba(32, 82, 70, .1)}:root[data-design=contrast]{--design-header: #111827;--design-header-soft: #293241;--design-accent: #096b8a;--design-accent-strong: #064f68;--design-accent-soft: #31a7a0;--design-highlight: #ffc857;--design-page: #ffffff;--design-surface: #ffffff;--design-surface-muted: #f2f5f6;--design-ink: #111827;--design-muted: #43525d;--design-line: #83939c;--design-radius: 2px;--design-card-radius: 3px;--design-shadow: none}body{color:var(--design-ink);background:var(--design-page)}.level-select,.brand-studio{color:var(--design-ink);background:linear-gradient(90deg,color-mix(in srgb,var(--design-accent) 7%,transparent) 1px,transparent 1px),linear-gradient(color-mix(in srgb,var(--design-accent) 7%,transparent) 1px,transparent 1px),var(--design-page);background-size:32px 32px}.landing-header,.game-header,.learning-modal__header,.mobile-sidebar-heading,.brand-studio__header{background:var(--design-header)}.brand__copy span{color:var(--design-accent-soft)}.landing-header__meta span:last-child,.admin-toggle__state{color:var(--design-highlight)}.primary-button,.brand-live__copy button{border-color:var(--design-accent-strong);background:var(--design-accent)}.primary-button:hover:not(:disabled),.brand-live__copy button:hover{background:var(--design-accent-strong)}.section-kicker,.level-track__heading>span,.level-card__state--open,.curriculum-summary strong,.hero__copy h1 em,.hero-diagram__note svg,.game-header__level span{color:var(--design-accent)}.hero__copy h1,.levels-section__heading h2,.level-card h3,.mission-block h1,.goal-row strong{color:var(--design-ink)}.hero__copy>p,.level-card>p,.levels-section__heading>p,.mission-block>p,.palette-device__copy p{color:var(--design-muted)}.hero-diagram,.curriculum-summary,.level-card,.palette-device,.learning-modal,.success-modal{border-color:var(--design-line);border-radius:var(--design-card-radius);background-color:var(--design-surface);box-shadow:var(--design-shadow)}.levels-section,.goals-block,.flow-wrap{background-color:var(--design-surface-muted)}.builder-sidebar,.canvas-toolbar,.landing-footer{background:var(--design-surface)}.primary-button,.secondary-button,.toolbar-button,.admin-toggle,.admin-design-button,.learning-actions>button,.palette-block__heading>button,.canvas-view-controls,.canvas-view-controls button{border-radius:var(--design-radius)}:root[data-design=contrast] .level-card,:root[data-design=contrast] .hero-diagram,:root[data-design=contrast] .curriculum-summary,:root[data-design=contrast] .palette-device{border-width:2px}.admin-design-button{display:inline-flex;min-height:38px;align-items:center;gap:7px;margin-right:14px;padding:0 12px;color:#fff5d6;border:1px solid color-mix(in srgb,var(--design-highlight) 58%,transparent);background:color-mix(in srgb,var(--design-highlight) 13%,transparent);cursor:pointer;font-family:var(--mono);font-size:9px;font-weight:800;letter-spacing:.06em}.admin-design-button:hover{border-color:var(--design-highlight);background:color-mix(in srgb,var(--design-highlight) 21%,transparent)}.brand-studio{min-height:100vh}.brand-studio__header{position:sticky;z-index:50;top:0;display:flex;min-height:72px;align-items:center;gap:16px;padding:0 clamp(24px,5vw,72px);color:#fff;box-shadow:0 5px 18px #0d222f2e}.brand-studio__header>button{display:grid;width:40px;height:40px;flex:0 0 auto;place-items:center;color:#d8eaee;border:1px solid rgba(201,229,235,.25);border-radius:var(--design-radius);background:#ffffff0f;cursor:pointer}.brand-studio__identity{display:flex;align-items:center;gap:12px}.brand-studio__identity img{width:42px;height:42px}.brand-studio__identity>div{display:flex;flex-direction:column;gap:3px}.brand-studio__identity small{color:var(--design-accent-soft);font-family:var(--mono);font-size:8px;font-weight:800;letter-spacing:.12em}.brand-studio__identity strong{color:#fff;font-size:13px}.brand-studio__current{display:flex;align-items:center;gap:9px;margin-left:auto;padding:8px 11px;color:#c5d9df;border:1px solid rgba(199,227,233,.18);border-radius:var(--design-radius);background:#ffffff0a;font-family:var(--mono);font-size:9px}.brand-studio__current i{width:4px;height:4px;border-radius:50%;background:var(--design-highlight)}.brand-studio__intro{max-width:1180px;margin:0 auto;padding:66px 36px 34px}.brand-studio__intro>span,.brand-studio__section-heading span{display:inline-flex;align-items:center;gap:8px;color:var(--design-accent);font-family:var(--mono);font-size:10px;font-weight:800;letter-spacing:.12em}.brand-studio__intro h1{margin:15px 0 18px;color:var(--design-ink);font-family:var(--mono);font-size:clamp(34px,5vw,58px);line-height:1.05;letter-spacing:-.055em}.brand-studio__intro h1 em{color:var(--design-accent);font-style:normal;font-weight:520}.brand-studio__intro p{max-width:720px;margin:0;color:var(--design-muted);font-size:15px;line-height:1.7}.brand-studio__live{max-width:1180px;margin:0 auto 58px;overflow:hidden;border:1px solid var(--design-line);border-radius:calc(var(--design-card-radius) + 2px);background:var(--design-surface);box-shadow:var(--design-shadow)}.brand-live__header{display:flex;min-height:62px;align-items:center;justify-content:space-between;padding:10px 20px;color:#fff;background:var(--design-header)}.brand-live__header>div{display:flex;align-items:center;gap:10px}.brand-live__header img{width:40px;height:40px}.brand-live__header strong{display:flex;flex-direction:column;font-family:var(--mono);font-size:10px;letter-spacing:.1em}.brand-live__header strong span{color:var(--design-accent-soft)}.brand-live__header small{color:#d1e1e6;font-family:var(--mono);font-size:9px}.brand-live__body{display:grid;min-height:300px;grid-template-columns:.8fr 1.2fr;align-items:center;gap:50px;padding:38px 46px;background:linear-gradient(90deg,color-mix(in srgb,var(--design-accent) 8%,transparent) 1px,transparent 1px),linear-gradient(color-mix(in srgb,var(--design-accent) 8%,transparent) 1px,transparent 1px),var(--design-surface);background-size:24px 24px}.brand-live__copy>span{color:var(--design-accent);font-family:var(--mono);font-size:8px;font-weight:800;letter-spacing:.12em}.brand-live__copy h2{margin:10px 0 20px;color:var(--design-ink);font-family:var(--mono);font-size:35px;line-height:1.05}.brand-live__copy h2 em{color:var(--design-accent);font-style:normal;font-weight:500}.brand-live__copy button{min-height:42px;padding:0 17px;color:#fff;border:1px solid var(--design-accent-strong);border-radius:var(--design-radius);cursor:pointer;font-size:11px;font-weight:750}.brand-live__topology{display:flex;align-items:center}.brand-live__topology b{display:grid;width:112px;height:76px;place-items:center;color:var(--design-accent);border:1px solid var(--design-accent);border-radius:var(--design-card-radius);background:var(--design-surface);font-family:var(--mono);font-size:9px;box-shadow:var(--design-shadow)}.brand-live__topology i{position:relative;height:2px;flex:1;background:var(--design-muted)}.brand-live__topology i:after{position:absolute;top:-4px;left:45%;width:10px;height:10px;border:2px solid var(--design-surface);border-radius:50%;background:var(--design-highlight);content:""}.brand-studio__section{max-width:1240px;margin:0 auto;padding:0 30px 70px}.brand-studio__section--themes{padding-top:56px;border-top:1px solid var(--design-line)}.brand-studio__section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:24px}.brand-studio__section-heading h2{margin:9px 0 0;color:var(--design-ink);font-family:var(--mono);font-size:25px}.brand-studio__section-heading p{max-width:470px;margin:0;color:var(--design-muted);font-size:12px;line-height:1.55}.brand-logo-grid,.brand-theme-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.brand-logo-option,.brand-theme-option{position:relative;display:flex;min-width:0;flex-direction:column;align-items:flex-start;padding:18px;color:var(--design-ink);text-align:left;border:1px solid var(--design-line);border-radius:var(--design-card-radius);background:var(--design-surface);box-shadow:0 4px 12px #1e3e4e0a;cursor:pointer;transition:transform .17s ease,border-color .17s ease,box-shadow .17s ease}.brand-logo-option:hover,.brand-theme-option:hover{transform:translateY(-3px);border-color:var(--design-accent);box-shadow:var(--design-shadow)}.brand-logo-option.is-selected,.brand-theme-option.is-selected{border:2px solid var(--design-accent);padding:17px;box-shadow:0 0 0 4px color-mix(in srgb,var(--design-accent) 12%,transparent)}.brand-logo-option__art{display:grid;width:100%;min-height:158px;place-items:center;margin-bottom:15px;border-radius:var(--design-radius);background:var(--design-surface-muted)}.brand-logo-option__art img{width:92px;height:92px;filter:drop-shadow(0 9px 14px rgba(20,47,61,.16))}.brand-option__number{color:var(--design-accent);font-family:var(--mono);font-size:8px;font-weight:800}.brand-logo-option>strong,.brand-theme-option>strong{margin-top:5px;color:var(--design-ink);font-size:16px}.brand-logo-option>small,.brand-theme-option>small{margin-top:4px;color:var(--design-accent);font-family:var(--mono);font-size:8px;font-weight:750;letter-spacing:.05em;text-transform:uppercase}.brand-logo-option>p,.brand-theme-option>p{margin:11px 0 0;color:var(--design-muted);font-size:11px;line-height:1.58}.brand-logo-option>em{margin-top:auto;padding-top:15px;color:var(--design-ink);font-size:9px;font-style:normal;font-weight:700}.brand-option__selected{position:absolute;top:13px;right:13px;display:inline-flex;align-items:center;gap:5px;padding:5px 7px;color:#fff;border-radius:99px;background:var(--design-accent);font-family:var(--mono);font-size:7px;font-weight:800;letter-spacing:.05em}.theme-preview{position:relative;width:100%;height:125px;margin-bottom:13px;overflow:hidden;border:1px solid var(--design-line);border-radius:var(--design-radius);background:var(--design-page)}.theme-preview>i{position:absolute;inset:0 0 auto;height:28px}.theme-preview>b{position:absolute;top:45px;left:17px;width:58%;height:57px;border:2px solid;border-radius:var(--design-radius);box-shadow:0 5px 11px #1c303c1c}.theme-preview>b span{position:absolute;top:11px;left:11px;width:29px;height:29px;border-radius:calc(var(--design-radius) / 1.5)}.theme-preview>em{position:absolute;right:17px;bottom:22px;width:35px;height:35px;border:4px solid white;border-radius:50%;box-shadow:0 3px 8px #1e323e24}.theme-swatches{display:flex;gap:5px;margin-bottom:3px}.theme-swatches i{width:18px;height:7px;border:1px solid rgba(20,44,58,.12);border-radius:99px}.brand-studio__footer{display:flex;min-height:96px;align-items:center;gap:13px;padding:20px clamp(30px,6vw,90px);color:#fff;background:var(--design-header)}.brand-studio__footer>div{display:flex;flex:1;flex-direction:column;gap:4px}.brand-studio__footer>div strong{font-size:12px}.brand-studio__footer>div span{color:#adc6ce;font-size:10px}.brand-studio__footer>button:not(.primary-button){min-height:42px;padding:0 14px;color:#d3e3e7;border:1px solid rgba(194,222,229,.25);border-radius:var(--design-radius);background:#ffffff0f;cursor:pointer;font-size:10px;font-weight:700}.brand-studio__footer>button:not(.primary-button){display:inline-flex;align-items:center;gap:7px}.brand-studio__footer>button:disabled{cursor:default;opacity:.42}@media(max-width:1000px){.brand-logo-grid,.brand-theme-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.brand-live__body{grid-template-columns:1fr;gap:30px}.brand-live__topology{max-width:650px}}@media(max-width:860px){.admin-toggle{width:auto;flex:1;margin:0}.admin-design-button{order:3;flex:1;justify-content:center;margin:0}.brand-studio__current{display:none}.brand-studio__section-heading{align-items:flex-start;flex-direction:column;gap:10px}.brand-studio__footer{align-items:stretch;flex-direction:column}.brand-studio__footer>div{margin-bottom:7px}}@media(max-width:650px){.brand-studio__header{min-height:64px;padding-inline:12px}.brand-studio__identity img{width:38px;height:38px}.brand-studio__identity small{font-size:7px}.brand-studio__identity strong{max-width:205px;overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.brand-studio__intro{padding:42px 18px 28px}.brand-studio__intro h1{font-size:35px}.brand-studio__live{margin:0 14px 45px}.brand-live__body{min-height:0;padding:28px 18px}.brand-live__copy h2{font-size:30px}.brand-live__topology b{width:82px;height:62px;font-size:7px}.brand-studio__section{padding:0 14px 52px}.brand-studio__section--themes{padding-top:44px}.brand-logo-grid,.brand-theme-grid{grid-template-columns:1fr}.brand-logo-option__art{min-height:135px}.brand-studio__footer{padding:20px 14px max(20px,env(safe-area-inset-bottom))}.brand-studio__footer>button{width:100%;justify-content:center}}.reality-note{display:grid;grid-template-columns:auto minmax(0,1fr);gap:5px 14px;margin:-4px 0 18px;padding:14px 16px;border:1px solid color-mix(in srgb,var(--design-highlight) 45%,var(--design-line));border-radius:var(--design-radius);background:color-mix(in srgb,var(--design-highlight) 8%,var(--design-surface))}.reality-note span{grid-column:1 / -1;color:var(--design-accent);font-family:var(--mono);font-size:8px;font-weight:800;letter-spacing:.09em}.reality-note strong{color:var(--design-ink);font-size:12px}.reality-note p{margin:0;color:var(--design-muted);font-size:11px;line-height:1.55}.brand-name-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.brand-name-option{position:relative;display:flex;min-height:152px;flex-direction:column;align-items:flex-start;padding:18px;color:var(--design-ink);text-align:left;border:1px solid var(--design-line);border-radius:var(--design-card-radius);background:var(--design-surface);cursor:pointer}.brand-name-option:hover,.brand-name-option.is-selected{border-color:var(--design-accent);box-shadow:var(--design-shadow)}.brand-name-option.is-selected{outline:3px solid color-mix(in srgb,var(--design-accent) 12%,transparent)}.brand-name-option>span{color:var(--design-accent);font-family:var(--mono);font-size:9px;font-weight:800;letter-spacing:.1em}.brand-name-option>strong{margin-top:3px;font-family:var(--mono);font-size:18px}.brand-name-option>small{margin-top:18px;color:var(--design-muted);font-size:10px;line-height:1.5}.brand-name-option>i{display:inline-flex;align-items:center;gap:4px;margin-top:auto;padding-top:12px;color:var(--design-accent);font-family:var(--mono);font-size:7px;font-style:normal;font-weight:800}.library-progress-card__rank{display:block;margin:-3px 0 12px;color:var(--design-highlight);font-family:var(--mono);font-size:9px;letter-spacing:.07em}@media(max-width:1120px){.brand-name-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:650px){.brand-name-grid{grid-template-columns:1fr}.brand-name-option{min-height:125px}.reality-note{grid-template-columns:1fr}}.site-shell{min-height:100vh;overflow:clip;color:var(--design-ink);background:linear-gradient(90deg,color-mix(in srgb,var(--design-accent) 7%,transparent) 1px,transparent 1px),linear-gradient(color-mix(in srgb,var(--design-accent) 7%,transparent) 1px,transparent 1px),var(--design-page);background-size:32px 32px}.site-content{min-height:calc(100vh - 148px)}.site-header{position:sticky;z-index:120;top:0;display:grid;min-height:72px;grid-template-columns:minmax(190px,auto) minmax(0,1fr) auto;align-items:center;gap:24px;padding:0 clamp(22px,4vw,64px);color:#fff;background:var(--design-header);box-shadow:0 5px 18px #0d222f2e,inset 0 -1px #bbe5ed24}.site-header__brand{padding:0;color:inherit;border:0;background:transparent;cursor:pointer}.site-header__brand .brand{pointer-events:none}.site-nav{display:flex;min-width:0;align-items:center;justify-content:center;gap:4px}.site-nav button{position:relative;display:inline-flex;min-height:40px;align-items:center;gap:7px;padding:0 12px;color:#bcd1d9;border:1px solid transparent;border-radius:var(--design-radius);background:transparent;cursor:pointer;font-size:11px;font-weight:720;transition:color .15s ease,border-color .15s ease,background .15s ease}.site-nav button:hover{color:#fff;background:#ffffff12}.site-nav button.is-active{color:#fff;border-color:#97d8e038;background:#ffffff1a}.site-nav button.is-active:after{position:absolute;right:11px;bottom:-1px;left:11px;height:2px;background:var(--design-accent-soft);content:""}.site-nav button i{position:absolute;top:7px;right:6px;width:6px;height:6px;border:1px solid var(--design-header);border-radius:50%;background:var(--design-highlight)}.site-progress{display:flex;min-height:38px;align-items:center;gap:4px;padding:4px;color:#c8dce3;border:1px solid rgba(173,216,226,.2);border-radius:var(--design-radius);background:#ffffff0d;cursor:pointer}.site-progress span{display:inline-flex;min-height:28px;align-items:center;gap:5px;padding:0 7px;font-family:var(--mono);font-size:8px}.site-progress span:last-child{color:var(--design-highlight);border-left:1px solid rgba(255,255,255,.12)}.site-footer{display:grid;min-height:104px;grid-template-columns:minmax(240px,1.3fr) minmax(320px,1fr) auto;align-items:center;gap:26px;padding:20px clamp(22px,5vw,76px);color:#b6ced6;background:var(--design-header)}.site-footer>div{display:flex;flex-direction:column;gap:5px}.site-footer strong{color:#fff;font-family:var(--mono);font-size:12px}.site-footer span,.site-footer small{font-size:10px;line-height:1.5}.site-footer nav{display:flex;justify-content:center;gap:4px}.site-footer nav button{min-height:36px;padding:0 9px;color:#c7dae1;border:0;border-radius:var(--design-radius);background:transparent;cursor:pointer;font-size:10px}.site-footer nav button:hover{color:#fff;background:#ffffff14}.site-footer small{max-width:210px;color:#8eadb8;text-align:right}.site-hero{padding-top:76px;padding-bottom:66px}.hero__button-row{display:flex;flex-wrap:wrap;gap:10px}.secondary-button--large{min-height:50px;padding-inline:18px}.hero__promise{display:inline-flex;align-items:center;gap:8px;margin-top:16px;color:var(--design-muted);font-size:11px}.page-section{max-width:1280px;margin:0 auto;padding:72px clamp(24px,4.5vw,62px)}.page-section--tinted{max-width:none;padding-inline:max(clamp(24px,4.5vw,62px),calc((100vw - 1280px)/2 + 62px));border-block:1px solid var(--design-line);background:color-mix(in srgb,var(--design-surface-muted) 88%,transparent)}.page-section__heading{display:flex;align-items:flex-end;justify-content:space-between;gap:42px;margin-bottom:30px}.page-section__heading h2{margin:11px 0 0;color:var(--design-ink);font-family:var(--mono);font-size:clamp(24px,3vw,34px);line-height:1.15;letter-spacing:-.045em}.page-section__heading>p{max-width:520px;margin:0 0 3px;color:var(--design-muted);font-size:13px;line-height:1.65}.method-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.method-grid article,.diagram-type-grid article,.editor-step-grid article,.about-principles article{position:relative;min-width:0;padding:24px;border:1px solid var(--design-line);border-radius:var(--design-card-radius);background:var(--design-surface);box-shadow:var(--design-shadow)}.method-grid article>span,.editor-step-grid article>span,.about-principles article>span{position:absolute;top:17px;right:18px;color:color-mix(in srgb,var(--design-accent) 55%,var(--design-muted));font-family:var(--mono);font-size:9px;font-weight:800}.method-grid svg,.editor-step-grid svg{color:var(--design-accent)}.method-grid h3,.editor-step-grid h3{margin:18px 0 8px;color:var(--design-ink);font-family:var(--mono);font-size:15px}.method-grid p,.editor-step-grid p{margin:0;color:var(--design-muted);font-size:11px;line-height:1.6}.learning-route{display:grid;grid-template-columns:minmax(0,.9fr) minmax(430px,1.1fr);align-items:center;gap:70px;margin-bottom:72px;border:1px solid var(--design-line);border-radius:var(--design-card-radius);background:var(--design-surface);box-shadow:var(--design-shadow)}.learning-route__copy h2{margin:13px 0 15px;color:var(--design-ink);font-family:var(--mono);font-size:clamp(26px,3vw,38px);line-height:1.13;letter-spacing:-.05em}.learning-route__copy p{margin:0 0 23px;color:var(--design-muted);font-size:13px;line-height:1.7}.learning-route__tracks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.learning-route__tracks>div{display:grid;min-height:68px;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:14px;padding:9px 16px;border:1px solid var(--design-line);border-radius:var(--design-radius);background:var(--design-surface-muted)}.learning-route__tracks span{color:var(--design-accent);font-family:var(--mono);font-size:11px;font-weight:800}.learning-route__tracks strong{color:var(--design-ink);font-family:var(--mono);font-size:12px}.learning-route__tracks small{color:var(--design-muted);font-size:9px}.page-hero{display:grid;max-width:1280px;min-height:360px;grid-template-columns:minmax(0,1.25fr) minmax(310px,.75fr);align-items:center;gap:64px;margin:0 auto;padding:64px clamp(24px,4.5vw,62px)}.page-hero h1{margin:15px 0 18px;color:var(--design-ink);font-family:var(--mono);font-size:clamp(36px,5vw,56px);line-height:1.05;letter-spacing:-.055em}.page-hero h1 em{color:var(--design-accent);font-style:normal;font-weight:520}.page-hero>div:first-child>p{max-width:720px;margin:0;color:var(--design-muted);font-size:15px;line-height:1.72}.library-progress-card,.tutorial-ready-card,.settings-status-card,.about-mark{display:flex;min-height:190px;flex-direction:column;justify-content:center;padding:28px;color:#fff;border:1px solid color-mix(in srgb,var(--design-accent-soft) 22%,transparent);border-radius:var(--design-card-radius);background:var(--design-header);box-shadow:0 18px 36px #19364629}.library-progress-card>span{display:flex;align-items:center;gap:8px;color:var(--design-accent-soft);font-family:var(--mono);font-size:8px;font-weight:800;letter-spacing:.1em}.library-progress-card>strong{margin:16px 0 10px;font-family:var(--mono);font-size:38px}.library-progress-card>strong small{color:#b9cfd7;font-family:var(--sans);font-size:11px;font-weight:500}.library-progress-card>div{height:5px;overflow:hidden;border-radius:10px;background:#ffffff26}.library-progress-card>div i{display:block;height:100%;min-width:3px;border-radius:inherit;background:var(--design-highlight)}.library-progress-card>button{display:flex;align-items:center;gap:6px;margin-top:18px;padding:0;color:#fff;border:0;background:transparent;cursor:pointer;font-size:10px;font-weight:700}.task-library{padding-top:44px}.task-library__toolbar{display:flex;max-width:1280px;align-items:flex-end;justify-content:space-between;gap:28px;margin:0 auto 38px}.task-library__toolbar p{margin:8px 0 0;color:var(--design-muted);font-size:11px}.track-filters{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}.track-filters button{min-height:36px;padding:0 12px;color:var(--design-muted);border:1px solid var(--design-line);border-radius:99px;background:var(--design-surface);cursor:pointer;font-size:9px;font-weight:700}.track-filters button:hover{color:var(--design-ink);border-color:var(--design-accent)}.track-filters button.is-active{color:#fff;border-color:var(--design-accent);background:var(--design-accent)}.level-track__heading h2{margin:0;color:var(--design-muted);font-family:var(--mono);font-size:11px;letter-spacing:.1em}.level-card__tools{display:flex;flex-direction:column;gap:4px;margin:16px 0 13px;padding:10px;border:1px solid var(--design-line);border-radius:var(--design-radius);background:var(--design-surface-muted)}.level-card__tools span{color:var(--design-accent);font-family:var(--mono);font-size:7px;font-weight:800;letter-spacing:.09em}.level-card__tools strong{overflow:hidden;color:var(--design-ink);font-size:9px;line-height:1.45;text-overflow:ellipsis}.task-library .level-card{min-height:380px}.tutorial-ready-card{min-height:170px;flex-direction:row;align-items:flex-start;gap:18px}.tutorial-ready-card>svg{flex:0 0 auto;color:var(--design-highlight)}.tutorial-ready-card strong{font-family:var(--mono);font-size:15px}.tutorial-ready-card p{margin:9px 0 0;color:#bfd1d8;font-size:11px;line-height:1.65}.diagram-type-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:22px}.diagram-type-grid article{min-height:205px}.diagram-type-grid article.is-primary{color:#fff;border-color:var(--design-header);background:var(--design-header)}.diagram-type-grid svg{color:var(--design-accent)}.diagram-type-grid .is-primary svg{color:var(--design-highlight)}.diagram-type-grid article>span{display:block;margin-top:22px;color:var(--design-accent);font-family:var(--mono);font-size:7px;font-weight:800;letter-spacing:.08em}.diagram-type-grid .is-primary>span{color:var(--design-accent-soft)}.diagram-type-grid h3{margin:7px 0 9px;color:inherit;font-family:var(--mono);font-size:16px}.diagram-type-grid p{margin:0;color:var(--design-muted);font-size:11px;line-height:1.6}.diagram-type-grid .is-primary p{color:#c6d7de}.tutorial-page .tutorial-visual{margin-top:24px}.editor-step-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.editor-shortcuts{display:grid;grid-template-columns:1.15fr repeat(4,minmax(0,1fr));align-items:stretch;margin-top:18px;overflow:hidden;border:1px solid var(--design-line);border-radius:var(--design-card-radius);background:var(--design-surface)}.editor-shortcuts>*{display:flex;min-height:64px;align-items:center;padding:12px 15px;border-right:1px solid var(--design-line);font-size:9px;line-height:1.45}.editor-shortcuts>*:last-child{border-right:0}.editor-shortcuts strong{gap:8px;color:var(--design-ink);font-family:var(--mono)}.editor-shortcuts strong svg{color:var(--design-accent)}.editor-shortcuts span{flex-direction:column;align-items:flex-start;justify-content:center;color:var(--design-muted)}.editor-shortcuts b{color:var(--design-ink)}.diagram-rules .tutorial-rule-grid{margin-top:0}.device-guide-grid--page{grid-template-columns:repeat(3,minmax(0,1fr))}.device-guide-grid--page .device-guide-card{box-shadow:var(--design-shadow)}.tutorial-cta{display:flex;max-width:980px;align-items:center;gap:17px;margin:30px auto 0;padding:20px 22px;color:#fff;border-radius:var(--design-card-radius);background:var(--design-header)}.tutorial-cta>svg{flex:0 0 auto;color:var(--design-highlight)}.tutorial-cta>div{flex:1}.tutorial-cta strong{font-family:var(--mono);font-size:13px}.tutorial-cta p{margin:4px 0 0;color:#bdd1d9;font-size:10px}.about-mark{min-height:180px;align-items:center;text-align:center}.about-mark svg{margin-bottom:16px;color:var(--design-highlight)}.about-mark strong{font-family:var(--mono);font-size:16px;letter-spacing:.06em}.about-mark span{margin-top:6px;color:var(--design-accent-soft);font-family:var(--mono);font-size:9px}.about-principles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.about-principles article{min-height:230px}.about-principles h2{margin:36px 0 12px;color:var(--design-ink);font-family:var(--mono);font-size:17px;line-height:1.35}.about-principles p{margin:0;color:var(--design-muted);font-size:12px;line-height:1.7}.about-story{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:60px;margin-top:72px;padding-top:64px;border-top:1px solid var(--design-line)}.about-story h2{margin:13px 0 18px;color:var(--design-ink);font-family:var(--mono);font-size:30px;letter-spacing:-.04em}.about-story>div>p{color:var(--design-muted);font-size:13px;line-height:1.8}.about-story aside{align-self:start;padding:26px;color:#fff;border-radius:var(--design-card-radius);background:var(--design-header);box-shadow:var(--design-shadow)}.about-story aside>svg{color:var(--design-highlight)}.about-story aside strong{display:block;margin-top:18px;font-family:var(--mono);font-size:14px}.about-story aside p{color:#bed2da;font-size:11px;line-height:1.65}.about-story aside button{display:flex;align-items:center;gap:7px;margin-top:18px;padding:0;color:#fff;border:0;background:transparent;cursor:pointer;font-size:10px;font-weight:700}.settings-status-card{min-height:160px;flex-direction:row;align-items:center;gap:18px}.settings-status-card>svg{flex:0 0 auto;color:var(--design-highlight)}.settings-status-card>div{display:flex;flex-direction:column;gap:5px}.settings-status-card span{color:var(--design-accent-soft);font-family:var(--mono);font-size:8px;font-weight:800;letter-spacing:.09em}.settings-status-card strong{font-family:var(--mono);font-size:15px}.settings-status-card small{color:#bfd2d9;font-size:10px}.settings-page{padding-bottom:34px}.settings-admin-card{display:grid;grid-template-columns:56px minmax(0,1fr) auto;align-items:center;gap:20px;padding:24px;border:1px solid var(--design-line);border-radius:var(--design-card-radius);background:var(--design-surface);box-shadow:var(--design-shadow)}.settings-admin-card.is-on{border-color:color-mix(in srgb,var(--design-highlight) 75%,var(--design-line));background:color-mix(in srgb,var(--design-highlight) 7%,var(--design-surface))}.settings-admin-card__icon{display:grid;width:54px;height:54px;place-items:center;color:var(--design-accent);border-radius:var(--design-radius);background:var(--design-surface-muted)}.settings-admin-card>div:nth-child(2)>span{color:var(--design-accent);font-family:var(--mono);font-size:8px;font-weight:800;letter-spacing:.1em}.settings-admin-card h2{margin:5px 0 7px;color:var(--design-ink);font-family:var(--mono);font-size:19px}.settings-admin-card p{max-width:730px;margin:0;color:var(--design-muted);font-size:11px;line-height:1.6}.settings-admin-card .admin-toggle{margin:0;color:var(--design-ink);border-color:var(--design-line);background:var(--design-surface-muted)}.settings-admin-card .admin-toggle.is-on{color:#624e18;border-color:#d9bb68;background:#fff5d5}.settings-note{display:flex;align-items:flex-start;gap:10px;margin-top:12px;padding:13px 16px;color:var(--design-muted);border:1px solid var(--design-line);border-radius:var(--design-radius);background:var(--design-surface-muted)}.settings-note svg{flex:0 0 auto;color:var(--design-accent)}.settings-note p{margin:0;font-size:10px;line-height:1.55}.settings-brand-panel{padding-top:10px;border-top:1px solid var(--design-line);background:color-mix(in srgb,var(--design-page) 88%,transparent)}.brand-studio__content{color:var(--design-ink)}.brand-studio__intro h2{margin:15px 0 18px;color:var(--design-ink);font-family:var(--mono);font-size:clamp(34px,5vw,58px);line-height:1.05;letter-spacing:-.055em}.brand-studio__intro h2 em{color:var(--design-accent);font-style:normal;font-weight:520}.brand-studio__footer--embedded{max-width:1180px;min-height:88px;margin:0 auto 70px;border-radius:var(--design-card-radius)}.brand-studio__standalone-back{display:flex;justify-content:center;padding:0 20px 40px}.react-flow__edge-path{stroke-linejoin:round}.network-node{border-width:1.7px}.network-node__copy span{letter-spacing:.1em}.network-node__copy strong{color:var(--design-ink)}@media(max-width:1120px){.site-header{grid-template-columns:auto minmax(0,1fr) auto;gap:12px;padding-inline:22px}.site-nav button{padding-inline:9px}.site-progress span:first-child{display:none}.method-grid,.editor-step-grid,.device-guide-grid--page,.editor-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr))}.editor-shortcuts>*{border-bottom:1px solid var(--design-line)}.editor-shortcuts>*:nth-child(2n){border-right:0}.editor-shortcuts>*:last-child{grid-column:1 / -1;border-bottom:0}}@media(max-width:860px){.site-header{grid-template-columns:1fr auto;gap:8px;padding:10px 16px 8px}.site-header__brand{grid-row:1;grid-column:1;justify-self:start}.site-progress{grid-row:1;grid-column:2;justify-self:end}.site-nav{grid-row:2;grid-column:1 / -1;justify-content:flex-start;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none}.site-nav::-webkit-scrollbar{display:none}.site-nav button{flex:0 0 auto}.site-footer{grid-template-columns:1fr;gap:15px}.site-footer nav{justify-content:flex-start;flex-wrap:wrap}.site-footer small{max-width:none;text-align:left}.site-hero,.page-hero,.learning-route{grid-template-columns:1fr;gap:38px}.page-section__heading,.task-library__toolbar{align-items:flex-start;flex-direction:column;gap:13px}.track-filters{justify-content:flex-start}.diagram-type-grid,.about-principles{grid-template-columns:1fr}.about-story{grid-template-columns:1fr;gap:32px}.settings-admin-card{grid-template-columns:56px minmax(0,1fr)}.settings-admin-card .admin-toggle{grid-column:1 / -1;width:100%;justify-content:center}.brand-studio__footer--embedded{margin-inline:20px}}@media(max-width:650px){.site-header{padding-inline:12px}.site-header__brand .brand__copy{display:flex}.site-header__brand .brand__copy strong,.site-header__brand .brand__copy span{font-size:8px}.site-nav{margin-inline:-12px;padding-inline:12px}.site-nav button{min-height:38px;padding-inline:9px;font-size:9px}.site-nav button svg{width:13px}.site-progress span{padding-inline:5px}.site-hero{padding:42px 18px 38px}.page-hero{min-height:0;padding:42px 18px}.page-hero h1{font-size:clamp(32px,10vw,43px)}.page-hero>div:first-child>p{font-size:14px}.page-section,.page-section--tinted{padding:48px 16px}.page-section__heading{margin-bottom:23px}.method-grid,.editor-step-grid,.device-guide-grid--page{grid-template-columns:1fr}.learning-route{margin:0 16px 48px;padding:32px 20px}.learning-route__tracks{grid-template-columns:1fr}.learning-route__tracks>div{grid-template-columns:34px minmax(0,1fr)}.learning-route__tracks small{grid-column:2}.library-progress-card,.tutorial-ready-card,.settings-status-card,.about-mark{min-height:0;padding:22px}.task-library{padding-inline:14px}.track-filters{flex-wrap:nowrap;width:calc(100vw - 28px);padding-bottom:4px;overflow-x:auto}.track-filters button{flex:0 0 auto}.task-library .level-card{min-height:360px}.editor-shortcuts{grid-template-columns:1fr}.editor-shortcuts>*{border-right:0}.editor-shortcuts>*:last-child{grid-column:auto}.tutorial-cta{align-items:flex-start;flex-wrap:wrap}.tutorial-cta button{width:100%;justify-content:center}.about-story{margin-top:48px;padding-top:42px}.settings-admin-card{grid-template-columns:46px minmax(0,1fr);padding:18px}.settings-admin-card__icon{width:46px;height:46px}.settings-brand-panel .brand-studio__intro{padding-top:44px}.brand-studio__intro h2{font-size:34px}.brand-studio__footer--embedded{margin:0 14px 48px}.site-footer{padding:24px 18px}}@media(max-width:410px){.site-header__brand .brand__copy{display:none}.site-nav{width:calc(100% + 24px);justify-content:space-between}.site-nav button{min-width:0;flex:1 1 0;justify-content:center;gap:3px;padding-inline:3px;font-size:7.5px;white-space:nowrap}.site-nav button svg{width:11px}.site-progress span:first-child{display:none}.hero__button-row>button{width:100%;justify-content:center}}.page-hero--quick{min-height:280px;padding-block:42px}.tutorial-ready-card--quick{min-height:130px}.quick-tutorial{display:grid;gap:26px;padding-top:34px;padding-bottom:50px}.quick-tutorial .diagram-definition,.quick-tutorial .tutorial-visual{margin:0}.quick-tutorial__section{padding-top:25px;border-top:1px solid var(--design-line)}.quick-tutorial__heading{display:flex;align-items:center;gap:14px;margin-bottom:15px}.quick-tutorial__heading>span{display:grid;width:38px;height:38px;flex:0 0 38px;place-items:center;color:#fff;border-radius:50%;background:var(--design-accent);font-family:var(--mono);font-size:10px;font-weight:800}.quick-tutorial__heading h2{margin:0;color:var(--design-ink);font-family:var(--mono);font-size:20px}.quick-tutorial__heading p{margin:4px 0 0;color:var(--design-muted);font-size:10px}.editor-step-grid--quick article{padding:18px}.editor-step-grid--quick h3{margin-top:12px}.quick-tutorial__controls{display:flex;align-items:center;gap:7px;margin:12px 0 0;padding:10px 13px;color:var(--design-muted);border:1px solid var(--design-line);border-radius:var(--design-radius);background:var(--design-surface-muted);font-size:10px;line-height:1.5}.quick-tutorial__controls svg{flex:0 0 auto;color:var(--design-accent)}.quick-tutorial__controls strong,.quick-tutorial__controls b{color:var(--design-ink)}.tutorial-rule-grid--quick{grid-template-columns:repeat(4,minmax(0,1fr))}.tutorial-rule-grid--quick article{padding:11px}.tutorial-cta--quick{max-width:none;margin-top:0}.editor-tutorial--quick,.tutorial-section--quick{margin-top:16px}.learning-modal .tutorial-rule-grid--quick{grid-template-columns:repeat(2,minmax(0,1fr))}.mission-focus{display:flex;align-items:flex-start;gap:9px;margin-top:14px;padding:11px 12px;border:1px solid color-mix(in srgb,var(--design-accent) 24%,var(--design-line));border-radius:var(--design-radius);background:color-mix(in srgb,var(--design-accent) 7%,var(--design-surface))}.mission-reality{display:inline-flex;margin-top:8px;padding:5px 8px;color:var(--design-accent);border:1px solid color-mix(in srgb,var(--design-accent) 28%,var(--design-line));border-radius:999px;background:var(--design-surface);font-family:var(--mono);font-size:7px;font-weight:800;letter-spacing:.06em}.mission-focus>svg{flex:0 0 auto;margin-top:1px;color:var(--design-accent)}.mission-focus strong{display:block;color:var(--design-accent);font-family:var(--mono);font-size:7px;letter-spacing:.08em}.mission-focus p{margin:4px 0 0;color:var(--design-ink);font-size:10px;line-height:1.48}@media(max-width:860px){.tutorial-rule-grid--quick{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.page-hero--quick{padding-block:34px}.quick-tutorial{gap:22px;padding-top:28px;padding-bottom:38px}.quick-tutorial .tutorial-visual{gap:7px}.quick-tutorial__controls{align-items:flex-start}.tutorial-rule-grid--quick,.learning-modal .tutorial-rule-grid--quick{grid-template-columns:1fr}}
