:root{color-scheme:dark;--bg:#050c1b;--ink:#f1f4fa;--muted:#b0bdd1;--line:#344155;--accent:#a8d9ff;--panel:#0b182c;--glow:#3f8bda}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:"Avenir Next",Avenir,Arial,Helvetica,sans-serif;transition:background .3s,color .3s}body.light-theme{color-scheme:light;--bg:#f3f6fa;--ink:#102137;--muted:#455a73;--line:#a9b7c8;--accent:#135a91;--panel:#e5edf7;--glow:#90c4f7}::selection{background:var(--accent);color:var(--bg)}a{color:inherit;text-underline-offset:5px}button{font:inherit;color:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,article:focus-visible{outline:2px solid var(--accent);outline-offset:6px}button:disabled{cursor:default}.shell{max-width:1440px;margin:auto;padding:0 6.3%}header{height:120px;display:flex;align-items:center;justify-content:space-between;gap:18px}.wordmark{font-size:25px;letter-spacing:-.045em;text-decoration:none;display:flex;align-items:center;gap:12px;font-weight:600}.wordmark svg{width:27px;height:27px;fill:var(--ink)}.quiet{border:1px solid var(--line);background:transparent;padding:10px 14px;border-radius:30px;font-size:12px;min-height:40px;white-space:nowrap}.quiet:hover{background:var(--panel);border-color:var(--accent)}.hero{display:grid;grid-template-columns:1fr 1.17fr;align-items:center;min-height:540px;gap:0;padding:25px 0 45px}.intro{position:relative;z-index:1}h1{font-size:clamp(56px,6.9vw,100px);line-height:.99;letter-spacing:-.04em;font-weight:500;margin:0 0 28px}.period{color:var(--accent)}.intro p{font-size:clamp(17px,1.6vw,23px);line-height:1.5;letter-spacing:-.02em;margin:0;max-width:440px;color:var(--muted)}.universe{min-width:0}.stage{position:relative;width:100%;aspect-ratio:1.2;isolation:isolate}#star{width:100%;height:100%;position:absolute;inset:0;z-index:1}.light{position:absolute;inset:15%;background:radial-gradient(ellipse,color-mix(in srgb,var(--glow) 18%,transparent),transparent 65%);pointer-events:none}.orbit{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:var(--accent);stroke-width:.65;opacity:.52;pointer-events:none}.project-node{position:absolute;left:72%;top:65%;border:0;background:none;width:44px;height:44px;transform:translate(-50%,-50%);z-index:3;padding:0;display:grid;place-items:center;border-radius:50%}.satellite{width:12px;height:12px;background:#c9ecff;box-shadow:0 0 15px #6bbdff;border:2px solid #75b9e8;border-radius:3px;transform:rotate(45deg)}.node-label{position:absolute;top:40px;left:50%;transform:translateX(-50%);font-size:11px;white-space:nowrap;text-align:center;line-height:1.6;background:var(--bg);padding:4px 7px;border-radius:4px}.node-label span{display:block;color:var(--muted);font-size:10px}.project-node:hover .satellite,.project-node:focus-visible .satellite{background:white;box-shadow:0 0 25px #6bbdff}.scene-caption{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:10px 12px 0;color:var(--muted);font-size:11px}.scene-caption .quiet{font-size:10px;min-height:36px;padding:8px 12px}.products{padding:24px 0 34px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}h2{font-weight:400;font-size:14px;color:var(--muted);margin:0 0 18px}article{display:flex;align-items:center;justify-content:space-between;gap:24px;border-radius:6px;transition:background .3s,box-shadow .3s}article.selected{background:var(--panel);box-shadow:0 0 0 15px var(--panel)}h3{font-weight:400;font-size:clamp(28px,3vw,42px);letter-spacing:-.035em;margin:0 0 9px}article p{font-size:18px;margin:0;color:var(--muted)}.status{display:flex;align-items:center;gap:10px;font-size:14px;white-space:nowrap}.status span{width:5px;height:5px;border-radius:50%;background:var(--accent)}footer{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:32px 0 35px}footer a{font-size:16px;display:flex;align-items:center;gap:12px;overflow-wrap:anywhere}footer svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.4;flex-shrink:0}small{font-size:11px;color:var(--muted)}.skip{position:fixed;top:-100px;left:15px;background:var(--ink);color:var(--bg);padding:14px;z-index:10}.skip:focus{top:15px}.fallback{display:none;position:absolute;inset:20%;width:60%;height:60%;fill:var(--accent)}.no-webgl .fallback{display:block}
@media(prefers-color-scheme:light){body:not(.dark-theme){color-scheme:light;--bg:#f3f6fa;--ink:#102137;--muted:#455a73;--line:#a9b7c8;--accent:#135a91;--panel:#e5edf7;--glow:#90c4f7}}
@media(min-width:1600px){.shell{padding:0 90px}}
@media(max-width:800px){.shell{padding:0 7%}header{height:94px}.wordmark{font-size:22px}.hero{grid-template-columns:1fr;gap:8px;padding:30px 0}.intro{max-width:600px}h1{font-size:clamp(60px,12vw,88px)}.intro p{font-size:20px;max-width:440px}.universe{width:100%;max-width:550px;justify-self:center}.stage{margin-top:-15px}.scene-caption{margin-top:0}.products{padding:23px 0 30px}footer{align-items:flex-start;flex-direction:column;gap:23px}h3{font-size:34px}}
@media(max-width:440px){.shell{padding:0 6%}header{height:86px}.wordmark{font-size:20px;gap:9px}.wordmark svg{width:21px;height:21px}header .quiet{font-size:10px;padding:8px 10px;min-height:36px}.hero{padding-top:21px;padding-bottom:27px}h1{font-size:66px;margin-bottom:22px}.intro p{font-size:17px;line-height:1.55}.desktop-break{display:none}.stage{margin-top:0;aspect-ratio:1.05}.scene-caption{margin:5px 0 0;font-size:9px;gap:5px}.scene-caption .quiet{font-size:9px}.node-label{font-size:9px;padding:3px}.node-label span{font-size:9px}article{align-items:flex-start;flex-direction:column;gap:22px}h3{font-size:30px}article p{font-size:16px}.status{font-size:12px}footer a{font-size:15px}.products{padding-bottom:26px}}
@media(max-width:350px){h1{font-size:57px}.wordmark{font-size:17px}.intro p{font-size:16px}h3{font-size:27px}.scene-caption>span{max-width:115px;line-height:1.5}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}

/* The product mark is transparent; its details appear only on interaction. */
.project-logo{display:block;width:44px;height:44px;object-fit:contain;transition:transform .2s}
.project-node{width:52px;height:52px;border-radius:8px}
.project-node:hover .project-logo,.project-node:focus-visible .project-logo{transform:scale(1.08)}
.node-label{visibility:hidden;opacity:0;pointer-events:none;top:48px;min-width:160px;padding:12px 15px;text-align:left;border:1px solid var(--line);border-radius:10px;background:var(--bg);font-size:12px;line-height:1.5;white-space:nowrap;transition:opacity .15s;z-index:4}
.node-label strong{font-weight:600}.node-label .tagline{font-size:12px;color:var(--ink);margin:6px 0}.node-label>span:last-child{font-size:11px;color:var(--muted)}
.project-node:not([data-dismissed]):hover .node-label,.project-node:not([data-dismissed]):focus .node-label,.project-node[data-open] .node-label{visibility:visible;opacity:1;pointer-events:auto}
article.selected{background:transparent;box-shadow:none}
@media(max-width:440px){.project-logo{width:40px;height:40px}.node-label{font-size:12px}.node-label span{font-size:11px}}

.project-node[data-tooltip-side="above"] .node-label{top:auto;bottom:48px}

.theme-picker{position:relative;z-index:5}.icon-button{display:grid;place-items:center;width:44px;height:44px;padding:10px}.icon-button svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.5}.icon-button svg path{fill:currentColor;stroke:none}.theme-options{position:absolute;right:0;top:52px;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:6px;min-width:130px}.theme-options[hidden]{display:none}.theme-options button{display:block;width:100%;text-align:left;border:0;background:none;padding:11px 14px;border-radius:5px;font-size:13px}.theme-options button[aria-pressed="true"],.theme-options button:hover{background:var(--panel);color:var(--accent)}
.product-identity{display:flex;align-items:center;gap:23px;min-width:0}.product-card-logo{width:72px;height:72px;object-fit:contain;flex-shrink:0}
.project-node .satellite,.project-node:hover .satellite,.project-node:focus-visible .satellite{background:var(--accent);border:1px solid var(--ink);box-shadow:none;width:12px;height:12px;border-radius:2px}
.project-node[data-status="live"] .satellite{box-shadow:0 0 12px 4px var(--accent),0 0 28px 8px color-mix(in srgb,var(--accent) 45%,transparent)}
#star{cursor:grab;touch-action:pan-y}#star:active{cursor:grabbing}#star:focus-visible{outline:2px solid var(--accent);outline-offset:-12px;border-radius:12px}.scene-caption>span{margin-right:auto}.scene-caption{gap:8px}
@media(max-width:440px){.product-identity{gap:14px}.product-card-logo{width:48px;height:48px}.product-identity h3{font-size:25px}.product-identity p{font-size:15px}.scene-caption .quiet{padding:8px}.scene-caption>span{font-size:9px}.scene-caption{gap:5px}}
@media(max-width:350px){.product-card-logo{width:40px;height:40px}.product-identity{gap:10px}.product-identity h3{font-size:22px}.scene-caption>span{max-width:95px}}

.header-controls{display:flex;align-items:center;gap:10px}.header-controls #sound svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}.sound-on{display:none}#sound[aria-pressed="true"] .sound-on{display:block}#sound[aria-pressed="true"] .sound-off{display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
@media(max-width:440px){.header-controls{gap:7px}.header-controls .icon-button{width:40px;height:40px}.header-controls svg{width:19px;height:19px}}
.header-controls #sound svg path{fill:none;stroke:currentColor}
