:root{color-scheme:dark;--bg:#080b16;--ink:#f4f6ff;--muted:#9da8ca;--line:#8493d640;--cyan:#75e7ff;--violet:#9d8cff;--amber:#ffc56e;--rose:#ff7896}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(ellipse at 80% 20%,#202b62 0,#0f1632 35%,var(--bg) 75%);color:var(--ink);font:15px/1.5 Inter,ui-sans-serif,system-ui,sans-serif}body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.3;background-image:linear-gradient(#fff0 95%,#ffffff06 100%);background-size:100% 4px}.app{width:min(1180px,calc(100% - 48px));margin:auto;padding:34px 0 22px;min-height:100vh;display:flex;flex-direction:column}header,footer{display:flex;align-items:center;justify-content:space-between;gap:18px}.brand{display:flex;align-items:center;gap:12px;letter-spacing:.08em}.brand b{display:block;font-size:17px}.brand small{display:block;color:var(--muted);font-size:10px;letter-spacing:.12em;text-transform:uppercase}.mark{width:34px;height:34px;border:1px solid #75e7ff99;border-radius:11px;display:grid;place-items:center;color:var(--cyan);font-weight:800;box-shadow:0 0 22px #75e7ff33}.health{color:#b9ffd7;text-decoration:none;font-size:12px;border:1px solid #73ffb433;padding:7px 11px;border-radius:999px;background:#73ffb40c}.hero{flex:1;display:grid;grid-template-columns:.85fr 1.15fr;gap:42px;align-items:center;padding:6vh 0}.eyebrow{font-size:11px;color:var(--cyan);letter-spacing:.22em;font-weight:700}.copy h1{font-size:clamp(52px,7vw,94px);line-height:.9;letter-spacing:-.075em;margin:17px 0 24px}.copy h1 em{font-style:normal;color:var(--cyan)}.lede{color:var(--muted);font-size:clamp(17px,2vw,21px);max-width:450px}.actions{display:flex;gap:10px;flex-wrap:wrap;margin:30px 0 15px}button{font:inherit;cursor:pointer;border-radius:12px;padding:12px 16px;min-height:46px}.primary{border:1px solid var(--cyan);color:#06111b;background:var(--cyan);font-weight:700;box-shadow:0 0 28px #75e7ff3b}.secondary{border:1px solid var(--line);color:var(--ink);background:#ffffff08}.hint{font-size:12px;color:#7783a7;max-width:420px}.stage{position:relative;min-height:570px;border:1px solid var(--line);border-radius:30px;background:radial-gradient(circle at 50% 42%,#24347780 0,#12193680 45%,#080b1680 78%);overflow:hidden;box-shadow:inset 0 1px #ffffff12,0 24px 80px #0005}.stage:after{content:"";position:absolute;inset:8%;border:1px solid #75e7ff15;border-radius:50%;transform:scaleY(.24);top:61%;pointer-events:none}.stage canvas{position:absolute;inset:0;width:100%;height:100%}.state-card{position:absolute;left:24px;right:24px;bottom:22px;padding:15px 17px;border:1px solid #8493d640;border-radius:16px;background:#0d1328d9;backdrop-filter:blur(12px)}.state-top{display:flex;align-items:center;gap:8px;color:var(--cyan);font-size:11px;letter-spacing:.16em;font-weight:700}.state-top #state-dot{width:8px;height:8px;background:var(--cyan);border-radius:50%;box-shadow:0 0 12px currentColor}.badge{margin-left:auto;border:1px solid #9d8cff55;color:#bdb4ff;padding:3px 7px;border-radius:5px;font-size:9px}.state-card strong{display:block;margin-top:8px;font-size:17px}.state-card p{margin:3px 0 12px;color:var(--muted);font-size:13px}.proof{display:flex;justify-content:space-between;color:#7884a8;font-size:10px;letter-spacing:.08em;text-transform:uppercase;border-top:1px solid #8493d41c;padding-top:10px}footer{color:#6e7a9d;font-size:11px;border-top:1px solid #8493d41c;padding-top:16px}footer a{color:var(--cyan)}@media(max-width:800px){.app{width:min(100% - 28px,600px);padding-top:20px}.hero{grid-template-columns:1fr;gap:25px;padding:6vh 0}.copy h1{font-size:62px}.stage{min-height:500px}.hero .stage{order:-1}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* Full-screen embodiment mode */
.app{position:relative;z-index:1;pointer-events:none}.app header,.app footer,.copy,.state-card{pointer-events:auto;position:relative;z-index:3}.hero{display:block;position:relative;padding:0;flex:1}.copy{padding-top:13vh;max-width:510px}.stage{position:fixed;inset:0;z-index:0;min-height:100vh;width:100vw;border:0;border-radius:0;background:radial-gradient(circle at 50% 45%,#24347780 0,#12193670 45%,#080b16 80%);box-shadow:none}.stage:after{top:62%;left:20%;right:20%}.state-card{left:auto;right:34px;bottom:28px;width:min(330px,calc(100% - 48px))}.stage canvas{z-index:1}@media(max-width:800px){.copy{padding-top:8vh;max-width:100%}.stage{min-height:100vh}.state-card{right:14px;bottom:14px;left:14px;width:auto}.hero{padding:0}.copy h1{font-size:58px}}


.zoom{position:absolute;right:28px;top:28px;z-index:4;display:flex;align-items:center;gap:6px}.zoom button{min-width:38px;height:38px;padding:0;border:1px solid #8493d650;border-radius:9px;background:#0d1328cc;color:#f4f6ff;font-size:19px;cursor:pointer}.zoom button:hover,.zoom button:focus-visible{border-color:#75e7ff;color:#75e7ff}.zoom span{min-width:48px;text-align:center;color:#aab3d3;font-size:11px}.zoom .inspect{width:auto;padding:0 11px;font-size:11px;margin-left:7px}.internals{position:absolute;left:28px;top:28px;z-index:4;width:min(290px,calc(100% - 56px));padding:15px 16px;border:1px solid #9d8cff66;border-radius:14px;background:#0d1328e8;backdrop-filter:blur(12px);color:#bdb4ff;font-size:11px;box-shadow:0 12px 40px #0005}.internals b{display:block;color:#f4f6ff;font-size:13px;margin-bottom:8px}.internals span{display:block;color:#aab3d3;margin-top:5px}@media(max-width:800px){.zoom{right:14px;top:14px}.zoom .inspect{font-size:10px}.internals{left:14px;top:66px}}

.node-label{position:absolute;left:50%;top:48%;z-index:5;transform:translate(-50%,-50%);padding:8px 12px;border:1px solid #75e7ff88;border-radius:9px;background:#081121dd;color:#dffaff;font-size:11px;letter-spacing:.08em;pointer-events:none;box-shadow:0 0 24px #75e7ff33}
/* Immersive organism mode: the scene owns the viewport. */
.copy,.app>header,.app>footer{display:none!important}.stage{background:radial-gradient(circle at 50% 45%,#182a52 0,#080b16 68%)}.state-card{left:24px;right:auto;bottom:24px;width:min(300px,calc(100% - 48px));opacity:.88}.zoom{top:24px;right:24px}.node-label{top:50%}

.stage,.stage canvas,.zoom{pointer-events:auto!important}.stage canvas{cursor:grab}.stage canvas:active{cursor:grabbing}
