/* Portal presentation: shared family colors retain text and numeric meaning. */
:root{--bg:#10151c;--surface:#18212c;--line:#303e4e;--muted:#a7b7c7;--text:#edf3f8;--accent:#8ec9ff;--warm:#f0c574;--sense:#7cdbca;--energy:#f0c574;--optical:#a9bdff;--logic:#d5b0ff;--motion:#ffa8b0;--bridge:#7fcef1}
html{scroll-behavior:smooth;scroll-padding-top:25px}body{background:radial-gradient(ellipse at 75% 0%,#243d5540,transparent 40%),var(--bg)}header{background:#111b25d9;padding-top:20px;padding-bottom:20px;border-bottom-color:#334659}nav a{transition:color .15s}nav a:hover{color:#fff}.release{color:#8ec9ff}.intro{gap:55px;padding:35px 0 40px;align-items:center}.intro>div:first-child{max-width:710px}.intro h1{font-size:clamp(38px,4.5vw,65px);line-height:1.1;letter-spacing:-2px;font-weight:550}.intro h1 em{font-style:normal;color:#a9ccf5}.intro>div:first-child>p{font-size:15px;line-height:1.85;max-width:630px}.hero-actions{display:flex;align-items:center;gap:24px;margin-top:27px;font-size:12px}.action-link{display:inline-block;padding:13px 19px;background:#b9d7f2;color:#142535;border-radius:7px;font-weight:600}.action-link:hover{background:#d5e9fb}.intro-status{text-align:left;padding:28px;background:linear-gradient(140deg,#263545,#192330);border:1px solid #455c72;border-radius:14px;max-width:365px;min-width:290px;box-shadow:0 15px 40px #0002}.intro-status .status{border:0;background:#8ed5bb14;color:#a2e6c7;padding:6px 8px;border-radius:3px;font-size:9px}.intro-status h2{margin:22px 0 8px;font-size:22px}.intro-status p{font-size:12px;line-height:1.8}.intro-status dl{display:flex;gap:38px;margin:24px 0 20px;padding-top:20px;border-top:1px solid #415262}.intro-status dt{font-size:26px;font-weight:500;color:#cee5ff}.intro-status dd{margin:4px 0 0;font-size:10px;color:#acbdcc}.intro-status>small{font-size:10px;color:#a7b7c7}.journey{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:24px 0;margin-bottom:35px}.journey>div{padding:0 25px;border-right:1px solid var(--line)}.journey>div:first-child{padding-left:0}.journey>div:last-child{border:0}.journey b{font-size:12px;letter-spacing:.5px}.journey p{font-size:12px;color:var(--muted);margin-bottom:0;line-height:1.75}.sense{color:var(--sense)}.energy{color:var(--energy)}.optical{color:var(--optical)}.logic{color:var(--logic)}.motion{color:var(--motion)}.bridge{color:var(--bridge)}.experiment-bar{display:flex;gap:14px;align-items:stretch;margin-bottom:48px}.experiment-bar>div{flex:1.1;padding:8px 25px 0 0}.experiment-bar h2{font-size:20px;margin:8px 0}.experiment-bar button{flex:1;text-align:left;padding:20px 16px;background:#1c2835;border:1px solid #40556b;border-radius:9px;color:#d6e6f7;font-size:13px;transition:transform .15s,border-color .15s}.experiment-bar button:hover{transform:translateY(-3px);border-color:#88bdeb;background:#273b4e}.experiment-bar button small{display:block;color:var(--muted);font-size:10px;margin-top:9px}.experiment-bar button:first-of-type{border-top:2px solid var(--energy)}.experiment-bar button:nth-of-type(2){border-top:2px solid var(--sense)}.experiment-bar button:nth-of-type(3){border-top:2px solid var(--optical)}.lab-heading{display:flex;justify-content:space-between;align-items:center}.lab-heading h2{font-size:25px;margin:8px 0}.workspace-label{color:#8da5b9;font-size:10px;letter-spacing:1.5px}.live-explanation{display:flex;align-items:center;gap:18px;padding:18px 22px;margin:18px 0 24px;background:#233347;border:1px solid #3f5875;border-radius:9px}.live-explanation>span{font-size:30px;color:#a9ceff}.live-explanation h3{margin:0 0 6px;font-size:15px}.live-explanation p{font-size:12px;color:#bdcddd;line-height:1.7;margin:0}.live-explanation[data-tone=success]{border-color:#3e7166;background:#1b302e}.live-explanation[data-tone=success]>span{color:var(--sense)}.live-explanation[data-tone=warning]{background:#372924;border-color:#875e4a}.live-explanation[data-tone=warning]>span{color:#f4b788}.workbench{background:#141d26;border:1px solid var(--line);border-radius:12px;overflow:hidden;grid-template-columns:215px minmax(430px,1fr) 250px}.controls{padding:24px 18px}.controls h2{color:#c6dcf3}.controls>label{line-height:1.5}.controls input[type=range]{accent-color:#9bc4f2}.controls .hint{font-size:11px}.center{padding:20px}.array-stage{background:radial-gradient(ellipse at 50% 0,#33496060,transparent 65%),#111a23;box-shadow:inset 0 0 40px #0003,0 12px 22px #0002;border-color:#496075;padding:22px}.family-sense{--family:var(--sense)}.family-energy{--family:var(--energy)}.family-optical{--family:var(--optical)}.family-logic{--family:var(--logic)}.family-motion{--family:var(--motion)}.family-bridge{--family:var(--bridge)}.cell{border-color:#586e82;border-top:3px solid var(--family);background:linear-gradient(145deg,#314253 0%,#35495b 30%,#1c2a36 31%,#101923 75%,#2e4052 100%);min-height:130px;padding:12px 10px}.cell b{color:var(--family);font-size:10px}.cell small{color:#b7c7d7}.cell strong{font-size:20px;color:#f1f7ff;font-weight:500}.cell.selected{outline-color:var(--family);box-shadow:0 0 20px #b8d4f025}.cell .cell-state{color:#cedbe7;bottom:10px;left:10px;right:10px;white-space:normal;line-height:1.3;font-size:9px;max-height:25px}.family-legend{display:flex;flex-wrap:wrap;gap:10px 17px;margin:17px 0 0;font-size:10px}.energy-strip>div:nth-child(1) strong{color:var(--energy)}.energy-strip>div:nth-child(3) strong{color:var(--sense)}.energy-strip>div:nth-child(5) strong{color:var(--motion)}.energy-strip>div:last-child strong{color:var(--optical)}.inspect{padding:24px 18px;background:#19232e}.inspect h2{color:#dbeaff}.inspect[data-family=sense] h2{color:var(--sense)}.inspect[data-family=optical] h2{color:var(--optical)}.inspect[data-family=energy] h2{color:var(--energy)}.inspect[data-family=logic] h2{color:var(--logic)}.inspect[data-family=motion] h2{color:var(--motion)}.module-description{font-size:12px;color:#d2dce7;line-height:1.85;margin:20px 0 12px}#module-purpose{font-size:11px;line-height:1.75;color:#adcae4;border-left:2px solid #698eae;padding-left:12px;margin-bottom:20px}.health-row{font-size:11px;line-height:1.5}.health-row span:last-child{color:#d9e9f7;font-variant-numeric:tabular-nums}.tabs button{padding:13px 10px}.tabs button[aria-selected=true]{color:#badafa;border-bottom-color:#8ec9ff}.technical-trace{padding:14px 18px;background:#101a24;border:1px solid #364a5d;border-radius:7px}.technical-trace summary{margin:0;font-size:12px}.technical-trace ol{margin-top:23px}.files{margin-top:32px}footer a{margin-left:18px;color:#b3cbe0}.hint{color:#a7b7c7}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline-color:#b8dcff}.check-result b{color:#dfc58d}@media(min-width:1450px){.workbench{grid-template-columns:230px minmax(500px,1fr) 285px}.cell{min-height:150px}.cell strong{font-size:25px}.cell b{font-size:12px}}@media(max-width:1100px){.workbench{grid-template-columns:190px minmax(400px,1fr)}.intro{gap:30px}.intro-status{min-width:265px}.inspect{border-left:0}.experiment-bar{flex-wrap:wrap}.experiment-bar>div{flex-basis:100%}.workspace-label{display:none}}@media(max-width:700px){.intro{padding-top:12px}.intro-status{max-width:none;margin-top:28px}.intro h1{font-size:42px}.hero-actions{gap:16px;font-size:11px}.journey{grid-template-columns:1fr 1fr;gap:20px}.journey>div{padding:0!important;border:0}.experiment-bar{gap:10px;margin-bottom:28px}.experiment-bar button{flex-basis:100%;padding:15px}.experiment-bar button small{margin-top:5px}.workbench{display:flex;overflow:visible}.center{padding:14px 10px}.cell{min-height:105px;padding:8px 5px}.cell b{font-size:8px}.cell strong{font-size:13px;margin-top:11px}.cell small{font-size:7px}.cell .cell-state{font-size:7px;left:5px;bottom:5px;right:4px}.array-stage{padding:12px 8px}.array-caption{font-size:7px}.family-legend{font-size:9px;gap:8px}.controls{padding:22px 16px}.inspect{padding:22px 16px}.live-explanation{padding:14px}.intro-status dl{gap:45px}.stage-footer{font-size:8px}.transport #clock{font-size:10px}.files button{flex:1;white-space:nowrap}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.experiment-bar button:hover{transform:none}}
