:root{--bg: #0a0c15;--sheet: #0e1120;--surface: rgba(228, 224, 255, .035);--line: rgba(167, 139, 250, .22);--line-hi: rgba(167, 139, 250, .55);--grid-minor: rgba(167, 139, 250, .055);--grid-major: rgba(167, 139, 250, .12);--ink: #e4e0ff;--ink-2: rgba(228, 224, 255, .55);--ink-3: rgba(228, 224, 255, .26);--text: #eceafd;--text-dim: rgba(236, 234, 253, .66);--text-faint: rgba(236, 234, 253, .42);--accent: #a78bfa;--accent-deep: #7c5cff;--cyan: #67e8f9;--amber: #ffb020;--green: #34d399;--mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;font-family:var(--font);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color-scheme:dark;color:var(--text);background-color:var(--bg)}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{min-width:320px;min-height:100vh;line-height:1.6;background:var(--bg);overflow-x:clip}#root{width:100%}::selection{background:#7c5cff73;color:#fff}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}.rbx-logo{display:block;height:100%;width:auto;overflow:visible}.rbx-logo.rbx-outline{filter:drop-shadow(0 0 6px rgba(124,92,255,.35))}.rbx-logo.rbx-solid{filter:none}.rbx-logo .rbx-pupil{transform:translate(var(--px, 0px),var(--py, 0px));transition:transform .25s cubic-bezier(.22,.61,.36,1)}.rbx-logo .rbx-blink{transform-box:fill-box;transform-origin:center}.rbx-logo.is-alive .rbx-blink{animation:rbx-blink 5.8s infinite}@keyframes rbx-blink{0%,88%,to{transform:scaleY(1)}91%,93%{transform:scaleY(.12)}}@media(prefers-reduced-motion:reduce){.rbx-logo.is-alive .rbx-blink{animation:none}.rbx-logo .rbx-pupil{transition:none}}.rb-svg{display:block;width:100%;height:auto;overflow:hidden}.rb-svg path,.rb-svg rect,.rb-svg circle,.rb-svg line,.rb-svg polyline{fill:none;stroke:var(--ink);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.rb-svg text{font-family:var(--mono);font-size:12px;letter-spacing:.08em;fill:var(--ink-2)}.rb-svg .i2{stroke:var(--ink-2);stroke-width:1.1}.rb-svg .i3{stroke:var(--ink-3);stroke-width:1}.rb-svg .bold{stroke-width:2.2}.rb-svg .hid{stroke:var(--ink-2);stroke-width:1.1;stroke-dasharray:5 4}.rb-svg .solid{fill:var(--sheet)}.rb-svg .hatch{fill:url(#rb-hatch)}.rb-svg .bbox{stroke:none;fill:none}.rb-svg .ghost path,.rb-svg .ghost rect,.rb-svg .ghost circle{stroke:var(--ink-3);stroke-width:1;stroke-dasharray:4 3;fill:none}.rb-svg .rb-grid-minor{stroke:var(--grid-minor);stroke-width:1}.rb-svg .rb-grid-major{stroke:var(--grid-major);stroke-width:1}.rb-svg .rb-hatch-line{stroke:var(--ink-3);stroke-width:1}.rb-svg .rb-arrow{stroke:var(--ink-2);stroke-width:1}.rb-svg .rb-far path,.rb-svg .rb-far circle{stroke:var(--ink-3);stroke-width:1}.rb-svg .rb-ground path{stroke:var(--ink-2);stroke-width:1.1}.rb-svg .rb-fore path{stroke:var(--ink-2);stroke-width:2.4;opacity:.22}.rb-svg .rb-far .flake{stroke:none;fill:var(--ink-3)}.rb-svg .rb-fore .flake{stroke:none;fill:var(--ink-2);opacity:.5}.rb-svg .beam{stroke:var(--cyan);stroke-width:1.2;stroke-dasharray:3 3;opacity:.55}.rb-svg .led{stroke:var(--cyan);stroke-width:2.2;stroke-dasharray:3 8;opacity:.85}.rb-scroll{animation:rb-scroll var(--t) linear infinite}@keyframes rb-scroll{to{transform:translate(calc(var(--w) * -1px))}}.rb-wheel.is-spinning,.rb-rotor.is-spinning{transform-box:fill-box;transform-origin:center;animation:rb-spin var(--spin, 2.4s) linear infinite}@keyframes rb-spin{to{transform:rotate(360deg)}}.rb-svg .led.is-running{animation:rb-led .5s linear infinite}@keyframes rb-led{to{stroke-dashoffset:-11}}.rb-svg .flake{animation:rb-fall var(--t) linear infinite;animation-delay:var(--d)}@keyframes rb-fall{0%{transform:translateY(-20px)}to{transform:translate(-40px,420px)}}.rb-svg .chunk{animation:rb-chunk 1.35s ease-out infinite;animation-delay:var(--d)}@keyframes rb-chunk{0%{transform:translate(0);opacity:0}15%{opacity:1}to{transform:translate(30px,-34px);opacity:0}}.rb-svg .clip{animation:rb-clip 1.2s ease-out infinite;animation-delay:var(--d)}@keyframes rb-clip{0%{transform:translate(0);opacity:0}15%{opacity:1}to{transform:translate(-26px,-30px);opacity:0}}.rb-scene.is-enter{animation:rb-wipe-in .9s linear both}.rb-scene.is-leave{animation:rb-wipe-out .9s linear both}@keyframes rb-wipe-in{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}@keyframes rb-wipe-out{0%{clip-path:inset(0 0 0 0)}to{clip-path:inset(0 0 0 100%)}}.rb-plotter{animation:rb-plot .9s linear both}.rb-svg .rb-plotter path{stroke:var(--accent);stroke-width:1.5}@keyframes rb-plot{0%{transform:translate(0);opacity:1}92%{opacity:1}to{transform:translate(960px);opacity:0}}.draft{display:flex;flex-direction:column;gap:14px}.sheet{position:relative;border:1px solid var(--line);background:var(--sheet)}.sheet:before,.sheet:after{content:"";position:absolute;width:12px;height:12px;border:1px solid var(--accent);pointer-events:none;z-index:2}.sheet:before{top:-1px;left:-1px;border-right:0;border-bottom:0}.sheet:after{bottom:-1px;right:-1px;border-left:0;border-top:0}.sheet-art{position:relative;overflow:hidden}.sheet-cam{transform-origin:50% 60%;animation:sheet-cam 14s ease-in-out infinite alternate;will-change:transform}@keyframes sheet-cam{0%{transform:translate(0) scale(1)}to{transform:translate(-8px,-5px) scale(1.035)}}.sheet-svg{display:block;width:100%;height:auto}.rb-svg .sheet-grid{fill:url(#rb-grid);stroke:none}.rb-svg .groundline{stroke:var(--ink-2);stroke-width:1.2}.rb-svg .rb-label{font-size:13px;letter-spacing:.14em;fill:var(--ink)}.rb-svg .rb-leader path{stroke:var(--accent);stroke-width:1}.rb-svg .rb-leader .dot{fill:var(--accent);stroke:none}.rb-svg .rb-leader text{font-size:11.5px;fill:var(--accent)}.rb-svg .rb-dim path{stroke:var(--ink-2);stroke-width:1}.rb-svg .rb-dim text{font-size:11px}.rb-svg .rb-stamp path{stroke:var(--ink-3);stroke-width:1}.rb-svg .rb-stamp text,.rb-svg .rb-stamp-text{font-size:10.5px;fill:var(--ink-3)}.rb-svg .rb-stamp .brand{fill:var(--ink-2)}.sheet-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line)}.sheet-tab{position:relative;display:flex;align-items:baseline;gap:8px;padding:12px 14px;border:0;border-right:1px solid var(--line);background:none;color:var(--text-dim);font:500 .86rem/1.2 var(--font);text-align:left;cursor:pointer;transition:color .25s ease,background .25s ease}.sheet-tab:last-child{border-right:0}.sheet-tab:hover,.sheet-tab.is-active{color:var(--text)}.sheet-tab:hover{background:var(--surface)}.sheet-tab-num{font-family:var(--mono);font-size:.72rem;letter-spacing:.08em;color:var(--accent)}.sheet-tab-bar{position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;animation:sheet-bar linear forwards}@keyframes sheet-bar{to{transform:scaleX(1)}}.sheet-caption{display:flex;align-items:baseline;gap:12px;min-height:2.6em;color:var(--text-dim);font-size:.95rem;line-height:1.5;animation:sheet-caption .5s ease both}@keyframes sheet-caption{0%{opacity:0;transform:translateY(4px)}}.draft.is-paused .rb-svg *,.draft.is-paused .sheet-cam,.draft.is-paused .sheet-tab-bar{animation-play-state:paused}@media(max-width:640px){.rb-svg .rb-stamp,.rb-svg .rb-stamp-text,.rb-svg .rb-label{display:none}.sheet-tab{flex-direction:column;gap:4px;padding:10px;font-size:.8rem}.sheet-caption{flex-direction:column;gap:8px}}.assembly{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.view{display:flex;flex-direction:column;gap:8px}.view-art{position:relative;overflow:hidden;border:1px solid var(--line);background:var(--sheet);transition:border-color .3s ease}.view:hover .view-art{border-color:var(--line-hi)}.view-art svg{clip-path:inset(0 100% 0 0)}.view.is-in .view-art svg{animation:rb-wipe-in 1s linear .15s both}.view-plotter{position:absolute;inset:0;border-right:1px solid var(--accent);transform:translate(-100%);opacity:0;pointer-events:none}.view.is-in .view-plotter{animation:view-plot 1s linear .15s both}@keyframes view-plot{0%{transform:translate(-100%);opacity:1}92%{opacity:1}to{transform:translate(0);opacity:0}}.rb-svg .view-grid{fill:url(#rb-grid);stroke:none}.rb-svg .view-num{font-size:12px;letter-spacing:.14em;fill:var(--accent)}.rb-svg .view-note{font-size:10.5px;fill:var(--ink-3)}.view h3{display:flex;align-items:baseline;gap:12px;margin-top:10px;font-size:1.15rem;font-weight:650;letter-spacing:-.01em}.view-index{font-family:var(--mono);font-size:.76rem;font-weight:500;letter-spacing:.12em;color:var(--accent)}.view p{color:var(--text-dim);font-size:.95rem}@media(max-width:960px){.assembly{grid-template-columns:1fr}.view{display:grid;grid-template-columns:minmax(0,220px) 1fr;grid-template-rows:auto 1fr;column-gap:20px;align-items:start}.view-art{grid-row:1 / 3}.view h3{margin-top:4px}}@media(max-width:560px){.view{grid-template-columns:1fr}.view-art{grid-row:auto}}.app{position:relative;min-height:100vh;color:var(--text)}.container{width:100%;max-width:1180px;margin:0 auto;padding:0 24px}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.backdrop{position:fixed;inset:0;z-index:0;pointer-events:none;background-image:linear-gradient(var(--grid-major) 1px,transparent 1px),linear-gradient(90deg,var(--grid-major) 1px,transparent 1px),linear-gradient(var(--grid-minor) 1px,transparent 1px),linear-gradient(90deg,var(--grid-minor) 1px,transparent 1px);background-size:120px 120px,120px 120px,24px 24px,24px 24px;-webkit-mask-image:linear-gradient(180deg,#000 0%,rgba(0,0,0,.55) 55%,rgba(0,0,0,.25) 100%);mask-image:linear-gradient(180deg,#000,#0000008c 55%,#00000040)}.header{position:sticky;top:0;z-index:50;border-bottom:1px solid transparent;transition:background .3s ease,border-color .3s ease}.header.is-scrolled{background:#0a0c15eb;border-bottom-color:var(--line)}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;height:72px}.brand{display:flex;align-items:center;flex-shrink:0}.brand .rbx-logo{height:28px;width:auto}.nav{display:flex;align-items:center;gap:28px}.nav>a{position:relative;color:var(--text-dim);text-decoration:none;font-size:.92rem;font-weight:500;padding:6px 0;transition:color .25s ease}.nav>a:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .3s ease}.nav>a:hover,.nav>a.is-active{color:var(--text)}.nav>a:hover:after,.nav>a.is-active:after{transform:scaleX(1)}.nav-cta{padding:8px 16px;font-size:.86rem}.nav-cta:after{display:none}.burger{display:none;width:40px;height:40px;border:1px solid var(--line);border-radius:3px;background:transparent;cursor:pointer;padding:0;place-items:center;gap:5px}.burger span{display:block;width:18px;height:1.5px;background:var(--text);transition:transform .3s ease}.burger.is-open span:first-child{transform:translateY(3.25px) rotate(45deg)}.burger.is-open span:last-child{transform:translateY(-3.25px) rotate(-45deg)}.kicker{display:inline-flex;align-items:center;gap:10px;font-family:var(--mono);font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}.kicker:before{content:"";flex-shrink:0;width:18px;height:1px;background:var(--accent)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 24px;border:1px solid transparent;border-radius:3px;font:inherit;font-weight:600;font-size:.95rem;text-decoration:none;cursor:pointer;transition:background .25s ease,border-color .25s ease,color .25s ease}.btn-primary{background:var(--ink);color:var(--bg)}.btn-primary:hover{background:var(--accent)}.btn-ghost{background:transparent;border-color:var(--line-hi);color:var(--text)}.btn-ghost:hover{border-color:var(--ink);background:var(--surface)}.btn-block{width:100%}.status{display:inline-flex;align-items:center;gap:7px;align-self:flex-start;padding:4px 10px;border:1px solid transparent;border-radius:2px;font-family:var(--mono);font-size:.72rem;letter-spacing:.06em;white-space:nowrap}.status:before{content:"";width:6px;height:6px;background:currentColor}.status-progress{color:var(--amber);border-color:#ffb02059}.status-planned{color:var(--text-faint);border-color:var(--line)}.frame{position:relative;display:flex;flex-direction:column;gap:14px;padding:28px;border:1px solid var(--line);background:#0e112099;transition:border-color .3s ease}.frame:before,.frame:after{content:"";position:absolute;width:10px;height:10px;border:1px solid var(--accent);opacity:.8;pointer-events:none}.frame:before{top:-1px;left:-1px;border-right:0;border-bottom:0}.frame:after{bottom:-1px;right:-1px;border-left:0;border-top:0}.frame:hover{border-color:var(--line-hi)}.frame h3{font-size:1.25rem;font-weight:650;letter-spacing:-.01em}.frame p{color:var(--text-dim);font-size:.97rem}.hero{position:relative;z-index:1;padding:56px 0 72px}.hero-inner{display:grid;grid-template-columns:minmax(0,10fr) minmax(0,13fr);gap:48px;align-items:center}.hero-copy{display:flex;flex-direction:column;align-items:flex-start;gap:22px}.hero-mark{width:100%;margin:4px 0 0}.hero-mark .rbx-logo{width:min(100%,440px);height:auto}.hero-title{max-width:24ch;font-size:clamp(1.45rem,2.4vw,2rem);font-weight:700;line-height:1.2;letter-spacing:-.02em}.hero-text{max-width:56ch;color:var(--text-dim);font-size:clamp(.98rem,1.2vw,1.06rem)}.hero-actions{display:flex;flex-wrap:wrap;gap:12px}.spec{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;max-width:440px;margin-top:6px;border:1px solid var(--line)}.spec>div{padding:12px 16px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.spec>div:nth-child(2n){border-right:0}.spec>div:nth-last-child(-n+2){border-bottom:0}.spec dt{font-family:var(--mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-faint)}.spec dd{margin-top:4px;font-weight:600;font-size:.95rem;color:var(--text)}.hero-sheet{min-width:0}.section{position:relative;z-index:1;padding:72px 0}.section-head{display:grid;grid-template-columns:220px minmax(0,1fr);gap:16px 40px;padding-top:22px;margin-bottom:40px;border-top:1px solid var(--line)}.section-head .kicker{padding-top:8px}.section-title{font-size:clamp(1.7rem,3.2vw,2.3rem);font-weight:700;letter-spacing:-.02em;line-height:1.15}.section-text{margin-top:10px;max-width:58ch;color:var(--text-dim);font-size:1.02rem}.note{margin:32px 0 0;max-width:68ch;color:var(--text-faint);font-size:.95rem}.projects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.project-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.project h3{font-size:1.8rem;letter-spacing:-.02em}.project-sub{margin-top:-8px;color:var(--accent)!important;font-size:.95rem!important}.project ul{list-style:none;display:flex;flex-direction:column;gap:9px;margin-top:2px}.project li{position:relative;padding-left:22px;color:var(--text-dim);font-size:.95rem}.project li:before{content:"";position:absolute;left:2px;top:.62em;width:8px;height:8px;border:1px solid var(--accent)}.tag{display:inline-flex;padding:4px 10px;border:1px solid var(--line-hi);border-radius:2px;font-family:var(--mono);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.rev{list-style:none;max-width:880px;border-top:1px solid var(--line)}.rev-row{display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:20px;align-items:center;padding:20px 10px;border-bottom:1px solid var(--line);transition:background .3s ease}.rev-row:hover{background:var(--surface)}.rev-num{font-family:var(--mono);font-size:.86rem;letter-spacing:.1em;color:var(--accent)}.rev-body h3{font-size:1.08rem;font-weight:650;margin-bottom:3px}.rev-body p{color:var(--text-dim);font-size:.94rem}.demos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.demo{gap:12px;padding:12px}.demo video{display:block;width:100%;max-height:420px;border:1px solid var(--line);background:#000;object-fit:contain}.demo figcaption{padding:0 6px 4px;font-family:var(--mono);font-size:.76rem;letter-spacing:.04em;line-height:1.5;color:var(--text-faint)}.contact{display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:start}.contact-info h3{font-size:1.5rem;letter-spacing:-.02em;margin-bottom:14px}.contact-info>p{color:var(--text-dim);margin-bottom:28px}.contact-links{display:flex;flex-direction:column;gap:10px}.contact-link{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:16px 20px;border:1px solid var(--line);color:var(--text);text-decoration:none;transition:border-color .3s ease,background .3s ease}.contact-link:hover{border-color:var(--line-hi);background:var(--surface)}.contact-link-label{font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-faint)}.contact-link-value{font-weight:550;color:var(--accent)}.contact-form{gap:0}.contact-form h3{font-size:1.25rem;margin-bottom:22px}.field{margin-bottom:16px}.field label{display:block;margin-bottom:7px;font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint)}.field input,.field select,.field textarea{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:2px;background:#0a0c15b3;color:var(--text);font:inherit;font-size:.97rem;transition:border-color .25s ease}.field textarea{resize:vertical;min-height:110px}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent)}.field select option{background:#0e1120}.footer{position:relative;z-index:1;padding:40px 0 36px}.stamp{display:grid;grid-template-columns:200px minmax(0,1fr) auto auto auto;border:1px solid var(--line-hi)}.stamp-cell{display:flex;flex-direction:column;justify-content:center;gap:5px;padding:14px 18px;border-right:1px solid var(--line-hi);font-size:.92rem;color:var(--text);text-decoration:none}.stamp-cell:last-child{border-right:0}.stamp-key{font-family:var(--mono);font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-faint)}.stamp-brand .rbx-logo{height:22px;width:auto;opacity:.9}.stamp-links span a{color:var(--accent);text-decoration:none;transition:color .25s ease}.stamp-links span a+a{margin-left:16px}.stamp-links span a:hover{color:var(--cyan)}.footer-note{margin-top:14px;font-family:var(--mono);font-size:.74rem;letter-spacing:.06em;color:var(--text-faint)}[data-reveal]{opacity:0;transform:translateY(16px);transition:opacity .7s cubic-bezier(.22,.61,.36,1),transform .7s cubic-bezier(.22,.61,.36,1)}[data-reveal].is-in{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){[data-reveal]{opacity:1;transform:none}}@media(max-width:1060px){.hero-inner{grid-template-columns:1fr;gap:40px}.hero-copy{max-width:640px}}@media(max-width:960px){.projects,.demos,.contact{grid-template-columns:1fr}.section{padding:60px 0}.section-head{grid-template-columns:1fr;gap:14px;margin-bottom:32px}.section-head .kicker{padding-top:0}.stamp{grid-template-columns:1fr 1fr}.stamp-cell{border-bottom:1px solid var(--line-hi)}.stamp-cell:nth-child(2n){border-right:0}.stamp-brand,.stamp-title{grid-column:1 / -1;border-right:0}.stamp-links{grid-column:1 / -1;border-bottom:0}}@media(max-width:820px){.burger{display:grid}.nav{position:fixed;inset:72px 0 0;flex-direction:column;justify-content:center;gap:6px;padding:24px;background:#0a0c15fa;opacity:0;visibility:hidden;transform:translateY(-12px);transition:opacity .3s ease,transform .3s ease,visibility .3s}.nav.is-open{opacity:1;visibility:visible;transform:none}.nav>a{font-size:1.3rem;padding:14px 0}.nav>a:after{display:none}.nav-cta{margin-top:18px;padding:14px 32px;font-size:1rem}}@media(max-width:640px){.container{padding:0 18px}.header-inner{height:64px}.nav{inset:64px 0 0}.brand .rbx-logo{height:24px}.hero{padding:36px 0 56px}.hero-copy{gap:18px}.spec{max-width:none}.frame{padding:22px}.project h3{font-size:1.5rem}.rev-row{grid-template-columns:40px minmax(0,1fr);gap:12px 14px}.rev-row .status{grid-column:2}.stamp{grid-template-columns:1fr}.stamp-cell{border-right:0}}
