:root{color-scheme:dark;--bg: #050d18;--bg-deep: #02060d;--line: rgba(198, 228, 255, .1);--line-strong: rgba(238, 247, 255, .34);--dot: rgba(228, 238, 252, .2);--dot-active: rgba(245, 249, 255, .86);--annotation-line: rgba(212, 234, 255, .12);--annotation-surface: rgba(6, 14, 28, .26);--annotation-text: rgba(241, 247, 255, .9);--annotation-muted: rgba(196, 216, 238, .64)}*{box-sizing:border-box}html,body{min-height:100%}body{margin:0;overflow:hidden;overscroll-behavior:none;font-family:Avenir Next,Segoe UI,sans-serif;background:radial-gradient(circle at 14% 18%,rgba(100,182,255,.14),transparent 26%),radial-gradient(circle at 78% 16%,rgba(255,214,168,.08),transparent 20%),radial-gradient(circle at 64% 70%,rgba(110,135,255,.1),transparent 28%),linear-gradient(180deg,#07111f 0%,var(--bg) 38%,var(--bg-deep) 100%)}body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.12;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);background-size:10rem 10rem;-webkit-mask-image:radial-gradient(circle at center,black 42%,transparent 88%);mask-image:radial-gradient(circle at center,black 42%,transparent 88%)}.page-shell{position:relative;height:100vh;padding:.75rem;isolation:isolate;overflow:hidden}.ambient{position:absolute;border-radius:999px;filter:blur(72px);z-index:-1}.ambient-a{width:18rem;height:18rem;top:-2rem;left:-3rem;background:#6cc2ff24}.ambient-b{width:16rem;height:16rem;right:-1rem;top:4rem;background:#ffe9c612}.ambient-c{width:14rem;height:14rem;left:46%;bottom:-2rem;background:#8491ff14}.hero-layout,.stage-panel,.webgl-stage{height:100%}.stage-panel{margin:0}.webgl-stage{position:relative;border-radius:2rem;overflow:hidden;border:1px solid rgba(255,255,255,.06);background:radial-gradient(circle at 50% 46%,rgba(120,194,255,.08),transparent 20%),radial-gradient(circle at 50% 64%,rgba(126,218,255,.08),transparent 28%),linear-gradient(180deg,#070f1bcc,#030810eb);box-shadow:inset 0 1px #ffffff0d,0 40px 100px #00000059}.webgl-stage:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 28%,rgba(255,255,255,.03),transparent 22%),linear-gradient(135deg,rgba(255,255,255,.03),transparent 24%,transparent 72%,rgba(255,255,255,.01))}.webgl-stage:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at center,transparent 48%,rgba(2,7,14,.28) 100%)}#dice-canvas{display:block;width:100%;height:100%;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.webgl-stage.is-dragging #dice-canvas{cursor:grabbing}.back-variant-switch{position:absolute;top:1rem;right:1rem;display:flex;align-items:center;gap:.35rem;padding:.35rem;border-radius:999px;border:1px solid var(--line);background:#050c1747;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-.35rem);transition:opacity .18s ease,transform .18s ease,visibility .18s ease}.webgl-stage.is-expanded .back-variant-switch.is-visible{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}.back-variant-button{margin:0;padding:.42rem .72rem;border:1px solid rgba(255,255,255,.08);border-radius:999px;background:#ffffff08;color:#e8f1fcb8;cursor:pointer;font-size:.75rem;line-height:1;transition:border-color .18s ease,background .18s ease,color .18s ease,box-shadow .18s ease;-webkit-tap-highlight-color:transparent}.back-variant-button:hover,.back-variant-button:focus-visible,.back-variant-button.is-active{outline:none;border-color:var(--line-strong);background:#ffffff14;color:#fafcfff5;box-shadow:0 0 18px #b2e1ff2e}.ability-console{position:absolute;left:50%;bottom:1.25rem;transform:translate(-50%);display:flex;align-items:center;gap:.65rem;padding:.45rem .55rem;border-radius:999px;border:1px solid var(--line);background:#050c1733;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);touch-action:manipulation;opacity:0;visibility:hidden;pointer-events:none;transform:translate(-50%,.55rem);transition:opacity .22s ease,transform .22s ease,visibility .22s ease}.webgl-stage.is-revealed .ability-console{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%)}.ability-pill{position:relative;width:.78rem;height:.78rem;margin:0;padding:0;border:1px solid rgba(255,255,255,.08);border-radius:999px;background:var(--dot);opacity:.55;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:transform .18s ease,border-color .18s ease,background .18s ease,box-shadow .18s ease,opacity .18s ease}.ability-pill:hover,.ability-pill:focus-visible,.ability-pill.is-active{outline:none;transform:scale(1.12);border-color:var(--line-strong);background:var(--dot-active);box-shadow:0 0 18px #b2e1ff47;opacity:1}.annotation-shell{position:absolute;inset:0;padding:1rem;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .26s ease,visibility .26s ease}.webgl-stage.is-expanded .annotation-shell{opacity:1;visibility:visible}.projection{position:relative;width:100%;height:100%}.projection-card,.projection-chip{position:absolute;border:1px solid rgba(222,238,255,.14);background:linear-gradient(180deg,#09122294,#070e1c52);box-shadow:inset 0 1px #ffffff0f,0 20px 44px #0000002e;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);color:#f4f8ffeb}.projection-card{width:min(18rem,30vw);padding:1rem 1.05rem;border-radius:1.2rem}.projection-chip{padding:.7rem .85rem;border-radius:999px}.projection h2,.projection p,.projection ul{margin:0}.projection h2{font-size:clamp(1.1rem,2vw,1.45rem);line-height:1.04}.projection p{margin-top:.5rem;color:var(--annotation-muted);font-size:.84rem;line-height:1.56}.projection-label{color:#d6e6f885;font-size:.66rem;letter-spacing:.16em;line-height:1;text-transform:uppercase}.projection-list{margin-top:.75rem;padding-left:1rem;color:#eaf2ffc2;font-size:.76rem;line-height:1.62}.projection-front .projection-halo{position:absolute;left:50%;top:50%;width:18rem;height:18rem;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(143,232,255,.24),rgba(143,232,255,.04) 48%,transparent 74%);filter:blur(10px)}.front-star{position:absolute;top:50%;left:50%;width:1rem;height:1rem;margin:-.5rem 0 0 -.5rem;border-radius:50%;background:radial-gradient(circle,rgba(248,252,255,.96),rgba(143,232,255,.4) 58%,transparent 100%);box-shadow:0 0 2rem #8fe8ff6b}.front-star-a{animation:front-star-a-out .56s cubic-bezier(.2,.72,.18,1) forwards}.front-star-b{animation:front-star-b-out .56s cubic-bezier(.2,.72,.18,1) forwards}.front-panel{top:17%;width:min(19rem,28vw)}.front-panel-left{left:6%;transform:translate(2.2rem);animation:front-panel-left-in .62s cubic-bezier(.2,.72,.18,1) forwards}.front-panel-right{right:6%;transform:translate(-2.2rem);animation:front-panel-right-in .62s cubic-bezier(.2,.72,.18,1) forwards}.front-orbit{left:50%;bottom:14%;min-width:13rem;transform:translate(-50%,1.1rem);text-align:center;animation:front-orbit-in .68s cubic-bezier(.2,.72,.18,1) forwards}.front-orbit span,.repo-chip span,.back-chip span,.floor-chip span{display:block;color:#d6e6f88a;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase}.front-orbit strong,.repo-chip strong,.back-chip strong{display:block;margin-top:.28rem;font-size:.98rem}.projection-right .projection-card,.projection-left .projection-card,.projection-bottom .projection-card,.projection-back .projection-card,.projection-top .projection-card,.projection-chip{opacity:0;animation:projection-fade-in .52s cubic-bezier(.2,.72,.18,1) forwards}.repo-cluster-a{top:16%;left:8%}.repo-cluster-b{top:26%;right:10%}.repo-chip-a{left:13%;bottom:18%;animation-delay:80ms}.repo-chip-b{left:42%;bottom:13%;animation-delay:.14s}.repo-chip-c{right:12%;bottom:20%;animation-delay:.2s}.back-card{top:18%;right:7%;width:min(20rem,30vw)}.back-chip{left:7%;bottom:16%;animation-delay:.12s}.projection-back[data-variant=machine-memory] .back-card{box-shadow:inset 0 1px #ffffff0f,0 0 0 1px #b6c4ff24,0 20px 44px #0003}.projection-back[data-variant=debug-chamber] .back-card{box-shadow:inset 0 1px #ffffff0f,0 0 0 1px #8fe8ff24,0 20px 44px #0003}.skill-rail-a{top:14%;left:8%}.skill-rail-b{bottom:18%;right:9%;animation-delay:.1s}.skill-chip{left:50%;top:56%;transform:translate(-50%,.8rem);animation:skill-chip-in .56s cubic-bezier(.2,.72,.18,1) forwards}.prism-band{position:absolute;left:50%;top:16%;width:3.4rem;height:14rem;border-radius:999px;filter:blur(2px);opacity:0;animation:prism-band-in .58s cubic-bezier(.2,.72,.18,1) forwards}.prism-band-a{margin-left:-7.6rem;background:linear-gradient(180deg,#8fe8ffb3,#8fe8ff14)}.prism-band-b{margin-left:-1.7rem;background:linear-gradient(180deg,#ffd093b8,#ffd09314);animation-delay:80ms}.prism-band-c{margin-left:4.2rem;background:linear-gradient(180deg,#8ff2d5b8,#8ff2d514);animation-delay:.16s}.prism-card-left{left:8%;bottom:14%;width:min(20rem,32vw);animation-delay:.18s}.prism-chip{right:8%;top:18%;max-width:20rem;animation-delay:.22s}.prism-chip strong{display:block;font-size:.88rem;line-height:1.45}.floor-card-main{left:50%;bottom:12%;width:min(24rem,40vw);transform:translate(-50%,1.1rem);animation:floor-card-in .6s cubic-bezier(.2,.72,.18,1) forwards}.floor-chip-a{left:11%;bottom:11%;animation-delay:.12s}.floor-chip-b{right:11%;bottom:11%;animation-delay:.2s}.webgl-stage.is-dragging .annotation-shell,.webgl-stage.is-dragging .ability-console,.webgl-stage.is-dragging .back-variant-switch{opacity:0;visibility:hidden;pointer-events:none}@media(max-width:720px){.page-shell{padding:.5rem}.webgl-stage{border-radius:1.5rem}.ability-console{bottom:.95rem}.annotation-shell{left:.95rem;right:.95rem;bottom:.95rem;width:auto;padding:.6rem}.projection-card{width:calc(100% - 1.2rem);left:.6rem;right:.6rem}.front-panel{top:auto}.front-panel-left{bottom:13rem}.front-panel-right{bottom:5.6rem}.front-orbit{bottom:1.1rem;min-width:auto;width:calc(100% - 1.2rem)}.repo-cluster-a,.repo-cluster-b,.skill-rail-a,.skill-rail-b,.back-card,.prism-card-left{top:auto;bottom:auto}.repo-cluster-a{top:8%}.repo-cluster-b{top:28%}.repo-chip-a,.repo-chip-b,.repo-chip-c,.skill-chip,.back-chip,.prism-chip,.floor-chip-a,.floor-chip-b{left:.9rem;right:auto;transform:none}.repo-chip-a{bottom:15rem}.repo-chip-b{bottom:11rem}.repo-chip-c{bottom:7rem}.back-card{top:12%}.back-chip{bottom:1rem}.skill-rail-a{top:10%}.skill-rail-b{top:36%}.skill-chip{bottom:1rem}.prism-band{top:8%;height:10rem}.prism-card-left{bottom:5.8rem}.prism-chip{top:auto;bottom:1rem;max-width:calc(100% - 1.8rem)}.floor-card-main{width:calc(100% - 1.2rem);bottom:5.6rem}.floor-chip-a{bottom:1rem}.floor-chip-b{bottom:4rem}.back-variant-switch{top:auto;right:50%;bottom:3.9rem;transform:translate(50%,.35rem)}.back-variant-switch.is-visible{transform:translate(50%)}}@media(hover:none)and (pointer:coarse){.ability-console{gap:.8rem;padding:.6rem .72rem}.ability-pill{width:.95rem;height:.95rem}.ability-pill:after{content:"";position:absolute;inset:-.55rem}.back-variant-button{padding:.5rem .8rem}}@media(prefers-reduced-motion:reduce){.annotation-shell,.ability-console,.ability-pill,.back-variant-switch{transition:none}}@keyframes front-panel-left-in{0%{opacity:0;transform:translate(5rem)}to{opacity:1;transform:translate(0)}}@keyframes front-panel-right-in{0%{opacity:0;transform:translate(-5rem)}to{opacity:1;transform:translate(0)}}@keyframes front-star-a-out{0%{opacity:0;transform:translate(0) scale(.4)}to{opacity:1;transform:translate(-10.5rem,-3.2rem) scale(1)}}@keyframes front-star-b-out{0%{opacity:0;transform:translate(0) scale(.4)}to{opacity:1;transform:translate(10.5rem,-1.6rem) scale(1)}}@keyframes front-orbit-in{0%{opacity:0;transform:translate(-50%,2rem)}to{opacity:1;transform:translate(-50%)}}@keyframes projection-fade-in{0%{opacity:0;transform:translateY(1.2rem)}to{opacity:1;transform:translateY(0)}}@keyframes skill-chip-in{0%{opacity:0;transform:translate(-50%,1.8rem)}to{opacity:1;transform:translate(-50%)}}@keyframes prism-band-in{0%{opacity:0;transform:translateY(1.8rem) scaleY(.8)}to{opacity:1;transform:translateY(0) scaleY(1)}}@keyframes floor-card-in{0%{opacity:0;transform:translate(-50%,2rem)}to{opacity:1;transform:translate(-50%)}}
