@property --education-beam-angle{syntax:"<angle>";inherits:true;initial-value:0deg}@layer sections{.section{z-index:1;padding-block:clamp(4rem,8vw,7rem);position:relative}.section:after{content:"";background:linear-gradient(90deg, transparent, var(--line) 10%, var(--line) 90%, transparent);height:1px;position:absolute;bottom:0;left:max(1rem,50vw - 37.5rem);right:max(1rem,50vw - 37.5rem)}.section-heading{gap:1.5rem;margin-bottom:clamp(2.5rem,6vw,4.5rem);display:grid}.section-heading h2{letter-spacing:-.06em;max-width:13ch;margin-top:.9rem;font-size:clamp(2.55rem,10.5vw,5.9rem);font-weight:620;line-height:.95}.section-heading-body{max-width:38rem;color:var(--muted);font-size:clamp(1rem,1.5vw,1.12rem);line-height:1.7}.section-index{border-bottom:1px solid var(--line);justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1.35rem;padding-bottom:.8rem;display:flex}.section-index h2{letter-spacing:-.025em;font-size:clamp(1.05rem,2vw,1.35rem);font-weight:720}.section-index span{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-family:SFMono-Regular,Consolas,monospace;font-size:.58rem}.section-index-action{align-items:center}.section-index-action>div{gap:.15rem;display:grid}.section-index-action .button{min-height:2.7rem;padding:.55rem .9rem;font-size:.76rem}.work-section{overflow:clip}.work-section:before{pointer-events:none;content:"";background:radial-gradient(circle,#582fa21f,#0000 68%);border-radius:50%;width:42rem;height:42rem;position:absolute;top:14%;left:-22rem}.project-grid{gap:1rem;display:grid}.project-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:linear-gradient(145deg,#111526d6,#070911c2);min-width:0;overflow:hidden;box-shadow:inset 0 1px #ffffff0a}.project-card-visual{transition:transform .45s var(--ease-out);border-radius:0;display:block}.project-card-visual:hover{transform:translateY(-4px)}.project-card-body{padding:1.15rem}.project-card-meta{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;gap:1rem;font-family:SFMono-Regular,Consolas,monospace;font-size:.62rem;font-weight:650;display:flex}.project-card h3{letter-spacing:-.045em;margin-top:.65rem;font-size:clamp(1.35rem,4vw,1.8rem);font-weight:650;line-height:1.05}.project-card h3 a:hover{color:#b9edff}.project-card-body>p{color:var(--muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin-top:.7rem;font-size:.82rem;line-height:1.55;display:-webkit-box;overflow:hidden}.project-card-metrics{border-block:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));margin-top:.9rem;display:grid}.project-card-metrics>div{padding:.7rem .6rem .7rem 0}.project-card-metrics>div+div{border-left:1px solid var(--line);padding-left:.75rem}.project-card-metrics strong{letter-spacing:-.035em;font-size:1.1rem;line-height:1.1;display:block}.project-card-metrics span{color:var(--muted);letter-spacing:.05em;text-transform:uppercase;margin-top:.2rem;font-family:SFMono-Regular,Consolas,monospace;font-size:.48rem;line-height:1.35;display:block}.tag-row{flex-wrap:wrap;gap:.45rem;display:flex}.project-card .tag-row{margin-top:.85rem}.tag-row span{border:1px solid var(--line);min-height:1.8rem;color:var(--ink-soft);letter-spacing:.05em;background:#ffffff06;border-radius:999px;align-items:center;padding:.28rem .65rem;font-family:SFMono-Regular,Consolas,monospace;font-size:.58rem;display:inline-flex}.project-card-link{align-items:center;gap:.55rem;margin-top:.9rem;font-size:.85rem;font-weight:750;display:inline-flex}.project-card-link span,.project-external-links span{transition:transform .25s var(--ease-out)}.project-card-link:hover span,.project-external-links a:hover span{transform:translate(2px,-2px)}.project-visual{aspect-ratio:16/10;border:1px solid var(--line);isolation:isolate;background:#0b0d17;border-width:0 0 1px;border-radius:0;margin:0;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff0d}.project-visual:after{z-index:1;pointer-events:none;content:"";background:linear-gradient(#0000 58%,#04050abd);position:absolute;inset:0}.project-visual img{object-fit:cover;width:100%;height:100%;transition:transform .8s var(--ease-out), filter .8s var(--ease-out)}.project-card-visual:hover .project-visual img{filter:saturate(1.06);transform:scale(1.025)}.project-visual.has-image.tone-magenta img{object-position:49% center}.project-visual.has-image.tone-signal img{object-position:center 45%}.project-visual figcaption{z-index:2;color:#f1f4ffb8;letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;gap:1rem;font-family:SFMono-Regular,Consolas,monospace;font-size:.56rem;display:flex;position:absolute;bottom:.85rem;left:1rem;right:1rem}.visual-placeholder{background:radial-gradient(circle at 50% 46%,#5c65a033,#0000 28%),#090b14;position:absolute;inset:0;overflow:hidden}.visual-placeholder:before{content:"";opacity:.68;background:conic-gradient(from 210deg at 50% 50%, transparent 0 35%, var(--visual-glow,#6ce2ff80) 46%, #ffffffad 48%, var(--visual-glow,#6ce2ff80) 50%, transparent 61% 100%);filter:blur(16px);position:absolute;inset:-20%;transform:rotate(-12deg)scaleX(.5)}.visual-grid{opacity:.13;background-image:linear-gradient(#ffffff47 1px,#0000 1px),linear-gradient(90deg,#ffffff47 1px,#0000 1px);background-size:2.5rem 2.5rem;position:absolute;inset:0;-webkit-mask-image:radial-gradient(circle,#000,#0000 70%);mask-image:radial-gradient(circle,#000,#0000 70%)}.visual-core{width:5rem;height:5rem;box-shadow:0 0 0 1px #ffffff24, 0 0 4rem var(--visual-glow);background:#05060c;border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.visual-orbit{border:1px solid #ffffff47;border-radius:50%;width:14rem;height:5.5rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-16deg)}.visual-orbit-b{opacity:.5;width:10rem;height:15rem;transform:translate(-50%,-50%)rotate(38deg)}.visual-placeholder strong{z-index:2;color:#ffffffc7;letter-spacing:.18em;font-family:SFMono-Regular,Consolas,monospace;font-size:.68rem;position:absolute;top:50%;left:50%;transform:translate(-43%,-50%)}.tone-cyan{--visual-glow:#3dd5ffb8}.tone-violet{--visual-glow:#9972ffb8}.tone-magenta{--visual-glow:#dd2bc7ad}.tone-amber{--visual-glow:#f2f450a6}.tone-signal{--visual-glow:#ff666ead}.robotics-section{background:linear-gradient(#0000,#090c18d1 30% 72%,#0000);overflow:clip}.robotics-section:before{content:"";background:radial-gradient(circle,#4f7adb1f,#0000 68%);width:48rem;height:48rem;position:absolute;top:10%;right:-22rem}.robotics-grid{gap:1.25rem;display:grid}.robot-feature{border:1px solid var(--line);border-radius:calc(var(--radius-lg) + .35rem);background:linear-gradient(145deg,#14192ec7,#080a13d6);min-width:0;padding:.65rem;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff0a}.robot-feature .project-visual{aspect-ratio:4/3;border-radius:var(--radius-md)}.robot-feature-copy{padding:1.4rem .7rem .8rem}.robot-feature-copy>div:first-child{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;gap:1rem;font-family:SFMono-Regular,Consolas,monospace;font-size:.6rem;display:flex}.robot-feature h3{letter-spacing:-.055em;margin-top:.8rem;font-size:clamp(2rem,8vw,3.4rem);line-height:.96}.robot-feature p{color:var(--muted);margin-top:1rem;line-height:1.7}.robot-feature-facts{flex-wrap:wrap;gap:.4rem;margin:1rem 0 0;padding:0;list-style:none;display:flex}.robot-feature-facts li{border:1px solid var(--line);color:var(--ink-soft);letter-spacing:.04em;background:#ffffff06;border-radius:999px;padding:.28rem .55rem;font-family:SFMono-Regular,Consolas,monospace;font-size:.53rem}.robot-feature-link{align-items:center;gap:.55rem;margin-top:1.25rem;font-size:.82rem;font-weight:750;display:inline-flex}.phase-badge{z-index:4;color:var(--ink-soft);backdrop-filter:blur(12px);letter-spacing:.08em;text-transform:uppercase;background:#04050ba8;border:1px solid #ffffff2e;border-radius:999px;padding:.42rem .65rem;font-family:SFMono-Regular,Consolas,monospace;font-size:.55rem;position:absolute;top:1.55rem;right:1.55rem}.scene-roadmap{border:1px solid var(--line);border-radius:var(--radius-lg);background:#ffffff05;gap:1.25rem;margin-top:1.25rem;padding:1.45rem;display:grid}.scene-roadmap>p{color:var(--muted);line-height:1.7}.scene-roadmap-list{gap:.7rem;display:grid}.scene-roadmap-list div{grid-template-columns:2.3rem 1fr;align-items:center;gap:.8rem;display:grid}.scene-roadmap-list span{border:1px solid var(--line);width:2.3rem;height:2.3rem;color:var(--cyan);border-radius:50%;place-items:center;font-family:SFMono-Regular,Consolas,monospace;font-size:.58rem;display:grid}.scene-roadmap-list p{color:var(--ink-soft);font-size:.83rem}.education-card{--education-beam-start:72%;--education-beam-soft:78%;--education-beam-trail-stop:84%;--education-beam-lead-stop:90%;--education-beam-end:96%;--education-beam-trail-soft:#31a8ff1f;--education-beam-trail:#31a8ff;--education-beam-lead:#ffe94a;--education-beam-lead-soft:#ffe94a1a;border:1px solid var(--line);border-radius:var(--radius-lg);background:radial-gradient(circle at 12% 15%,#31a8ff12,#0000 30%),radial-gradient(circle at 44% 80%,#ffe94a0b,#0000 28%),linear-gradient(135deg,#151a32e0,#080a14c7);gap:2rem;padding:clamp(1.4rem,4vw,2.4rem);display:grid;position:relative;overflow:hidden}.education-card:before{z-index:2;pointer-events:none;border-radius:inherit;background:conic-gradient(from var(--education-beam-angle), transparent 0 var(--education-beam-start), var(--education-beam-trail-soft) var(--education-beam-soft), var(--education-beam-trail) var(--education-beam-trail-stop), var(--education-beam-lead) var(--education-beam-lead-stop), var(--education-beam-lead-soft) var(--education-beam-end), transparent 100%);content:"";filter:drop-shadow(0 0 .45rem #31a8ff4d)drop-shadow(0 0 .55rem #ffe94a2e);-webkit-mask-composite:xor;padding:2px;position:absolute;inset:-1px;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-composite:exclude;mask-mode:match-source,match-source}.education-card:after{content:"";border:1px solid #6ce2ff29;border-radius:50%;width:22rem;height:22rem;position:absolute;bottom:-11rem;right:-8rem;box-shadow:0 0 6rem #505ad21f}.education-main h2{color:#ffe94a;-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 .65rem #31a8ff2b)drop-shadow(0 0 .8rem #ffe94a1a);letter-spacing:-.055em;background:linear-gradient(105deg,#31a8ff 5%,#75caff 38%,#ffe94a 64%,#fff6a5 92%);-webkit-background-clip:text;background-clip:text;max-width:16ch;margin-top:.55rem;font-size:clamp(2rem,6vw,3.5rem);line-height:1;display:inline-block;position:relative}.education-main>p:last-child{max-width:36rem;color:var(--muted);margin-top:1.2rem;line-height:1.7}.education-detail{z-index:1;align-content:end;gap:1rem;display:grid;position:relative}.education-detail>div{border-top:1px solid var(--line);padding-top:1rem}.education-detail span{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-family:SFMono-Regular,Consolas,monospace;font-size:.6rem}.education-detail strong{margin-top:.35rem;font-size:.98rem;display:block}.about-section{overflow:clip}.about-grid{gap:3rem;display:grid}.about-mark{aspect-ratio:1;border:1px solid var(--line);border-radius:var(--radius-lg);background:#090b15;width:100%;display:block;position:relative;overflow:hidden;box-shadow:0 1.5rem 4rem -1rem #00000073}.about-mark:before,.about-mark:after{display:none}.about-mark img{object-fit:cover;object-position:center;border-radius:inherit;width:100%;height:100%;display:block}.about-copy h2{letter-spacing:-.06em;max-width:12ch;margin-top:.9rem;font-size:clamp(2.5rem,9vw,5rem);line-height:.98}.about-copy>p:not(.eyebrow){max-width:43rem;color:var(--muted);margin-top:1.2rem;font-size:1.04rem;line-height:1.8}.skills-cloud{margin-top:1.75rem}.contact-section{overflow:clip}.contact-panel{border:1px solid var(--line-strong);border-radius:calc(var(--radius-lg) + .45rem);background:radial-gradient(circle at 80% 12%,#5a4dc233,#0000 38%),radial-gradient(circle at 10% 90%,#1da9cc1f,#0000 36%),#0b0e1be6;gap:2.3rem;padding:clamp(1.65rem,5vw,3.2rem);display:grid;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff0d,0 3rem 9rem #00000040}.contact-panel:before{content:"";border:1px solid #79c1ff33;border-radius:50%;width:30rem;height:30rem;position:absolute;top:-15rem;right:-11rem;box-shadow:0 0 7rem #664fd224}.contact-panel h2{letter-spacing:-.065em;max-width:12ch;margin-top:.7rem;font-size:clamp(2.5rem,8vw,5rem);line-height:.92}.contact-side{z-index:1;align-content:end;gap:1.3rem;display:grid;position:relative}.contact-side>p{max-width:30rem;color:var(--muted);line-height:1.7}.contact-actions{flex-wrap:wrap;gap:.8rem;display:flex}.button-secondary{border:1px solid var(--line-strong);color:var(--ink);background:#ffffff0b}.site-footer{z-index:1;padding-block:1rem 2.4rem;position:relative}.footer-grid{border-top:1px solid var(--line);color:var(--muted);gap:1.7rem;padding-top:2rem;font-size:.78rem;display:grid}.footer-mark{color:var(--ink);letter-spacing:-.03em;font-size:1.1rem;font-weight:850}.footer-mark span{color:var(--orbit)}.footer-links{flex-wrap:wrap;gap:1.2rem;display:flex}.footer-links a:hover{color:var(--ink)}.footer-meta{letter-spacing:.07em;text-transform:uppercase;font-family:SFMono-Regular,Consolas,monospace;font-size:.58rem}.project-detail{padding-top:6.25rem}.project-detail-hero{border-bottom:1px solid var(--line);gap:2rem;padding-block:1.25rem 3rem;display:grid}.project-detail-header{min-width:0}.back-link{color:var(--muted);align-items:center;gap:.6rem;margin-bottom:1.4rem;font-size:.78rem;font-weight:700;display:inline-flex}.back-link:hover{color:var(--ink)}.project-detail-header h1{letter-spacing:-.055em;max-width:18ch;margin-top:.65rem;font-size:clamp(2.5rem,6vw,4rem);font-weight:650;line-height:.98}.project-detail-lede{max-width:42rem;color:var(--ink-soft);margin-top:1rem;font-size:clamp(1rem,1.6vw,1.16rem);line-height:1.55}.project-detail-meta{color:var(--muted);flex-wrap:wrap;gap:.55rem 2.25rem;margin-top:1.25rem;display:flex}.project-detail-meta div{display:contents}.project-detail-meta span{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.project-detail-meta strong{text-transform:capitalize;font-size:.82rem;font-weight:650}.project-detail-visual{align-self:center;width:100%;min-width:0}.project-detail-visual .project-visual{aspect-ratio:16/9;border-radius:var(--radius-md);border-width:1px}.project-detail-visual .project-visual img{object-position:center}.project-detail-visual .project-visual.has-robot-viewer:after{display:none}.project-detail-visual .project-visual.has-robot-viewer .robot-viewer{width:100%;height:100%;aspect-ratio:auto!important;border:0!important;border-radius:0!important;min-height:0!important}.project-detail-visual .project-visual.has-robot-viewer figcaption{top:.85rem;bottom:auto}.metric-grid{gap:.75rem;display:grid}.detail-metrics{margin-top:1.4rem}.metric-grid>div{border:1px solid var(--line);border-radius:var(--radius-sm);background:#ffffff09;align-content:center;gap:.4rem;min-height:7rem;padding:1.15rem 1.25rem;display:grid}.metric-grid strong{color:var(--muted);letter-spacing:-.015em;font-size:clamp(1rem,2vw,1.18rem);font-weight:520;line-height:1.25}.metric-grid span{max-width:26ch;color:var(--ink);letter-spacing:-.015em;font-size:clamp(.92rem,1.7vw,1.05rem);font-weight:650;line-height:1.35}.project-detail-grid{gap:3rem;padding-block:clamp(2.75rem,6vw,5rem);display:grid}.project-detail-grid aside{align-self:start}.project-index-section+.project-index-section{margin-top:2.25rem}.project-detail-grid aside .tag-row{margin-top:.8rem}.project-detail-grid aside .tag-row span{min-height:2rem;color:var(--ink);padding:.35rem .7rem;font-size:.66rem}.project-external-links{gap:.45rem;width:fit-content;margin-top:.75rem;display:grid}.project-external-links a{color:var(--cyan);align-items:center;gap:.45rem;font-size:.88rem;font-weight:700;display:inline-flex}.prose{min-width:0}.prose h2{border-top:1px solid var(--line);letter-spacing:-.035em;margin-top:3.75rem;padding-top:1rem;font-size:clamp(1.35rem,3.5vw,1.85rem);font-weight:650;line-height:1.15}.prose h2:first-child{margin-top:0}.prose h2#the-obstacle{margin-top:4.5rem}.prose p,.prose li{max-width:68ch;color:var(--ink-soft);font-size:1rem;line-height:1.78}.prose p{margin-top:.9rem}.project-narrative h2#what-it-does,.project-narrative h2#why-it-exists{letter-spacing:-.015em;border:0;margin:0;padding:0;font-size:1rem;font-weight:750;line-height:1.78;display:inline}.project-narrative h2#what-it-does:after,.project-narrative h2#why-it-exists:after{content:": "}.project-narrative h2#why-it-exists:before{content:"";height:.45rem;display:block}.project-narrative h2#what-it-does+p,.project-narrative h2#why-it-exists+p{margin:0;display:inline}.prose p:has(>img:only-child){max-width:none;margin-top:1.5rem}.prose p:has(>img:only-child)+p{max-width:72ch;color:var(--muted);margin-top:.55rem;font-size:.78rem;line-height:1.55}.prose img{border:1px solid var(--line);border-radius:var(--radius-sm);background:#0b0d17;width:100%;height:auto}.prose ul{gap:.55rem;margin:1.1rem 0 0;padding-left:1.2rem;display:grid}.prose li::marker{color:var(--cyan)}.project-next{border-top:1px solid var(--line);padding-block:3rem 6rem}.project-next a{letter-spacing:-.055em;align-items:center;gap:.8rem;margin-top:1rem;font-size:clamp(2rem,7vw,4rem);font-weight:650;display:inline-flex}.not-found{align-content:center;min-height:80vh;padding-top:10rem;padding-bottom:6rem;display:grid}.not-found h1{letter-spacing:-.07em;max-width:10ch;margin-top:1rem;font-size:clamp(3.2rem,14vw,7rem);line-height:.9}.not-found>p:not(.eyebrow){color:var(--muted);margin-top:1.2rem}.not-found .button{width:fit-content;margin-top:2rem}}@media (width>=40rem){.metric-grid{grid-template-columns:repeat(auto-fit,minmax(14rem,1fr))}}@media (width>=48rem){.section-heading-split{grid-template-columns:minmax(0,1.15fr) minmax(18rem,.55fr);align-items:end}.section-heading-split .section-heading-body{padding-bottom:.35rem}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.robotics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.scene-roadmap{grid-template-columns:.8fr 1.2fr;align-items:center;padding:2rem}.education-card{grid-template-columns:.7fr 1.3fr;align-items:end}.education-detail{grid-template-columns:repeat(3,minmax(0,1fr))}.about-grid{grid-template-columns:minmax(17rem,.65fr) minmax(0,1.35fr);align-items:center}.about-mark{max-width:29rem}.contact-panel{grid-template-columns:1.3fr .7fr;align-items:end}.footer-grid{grid-template-columns:.35fr 1.25fr .8fr;align-items:start}.footer-meta{grid-column:2}}@media (width>=64rem){.project-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.project-detail-hero{grid-template-columns:minmax(0,1.15fr) minmax(22rem,.9fr);align-items:center;gap:clamp(2.75rem,5vw,4rem);padding-block:1.25rem 3rem}.project-detail-header h1{font-size:clamp(2.75rem,4.4vw,3.75rem)}.project-detail-header .metric-grid{grid-template-columns:repeat(auto-fit,minmax(9rem,1fr))}.project-detail-header .metric-grid>div{min-height:7.25rem}.project-detail-visual .project-visual{aspect-ratio:4/3}.project-detail-grid{grid-template-columns:15rem minmax(0,1fr);gap:clamp(3rem,7vw,6rem)}.project-detail-grid aside{position:sticky;top:8rem}}@media (hover:none){.project-card-visual:hover{transform:none}.project-card-visual:hover .project-visual img{filter:none;transform:none}}@supports ((-moz-appearance:none)){.phase-badge{backdrop-filter:none}html.gecko-scrolling .education-card:before,html.gecko-scrolling .visual-core,html.gecko-scrolling .education-card:after,html.gecko-scrolling .about-mark img,html.gecko-scrolling .contact-panel:before{box-shadow:none;filter:none}.project-card,.robot-feature,.experience-item,.education-card,.about-grid,.contact-panel{animation:none!important}}@media (forced-colors:active){.education-main h2{-webkit-text-fill-color:CanvasText;color:canvastext;background:0 0}}@media (prefers-reduced-motion:no-preference){@supports (animation-timeline:view()){.project-card,.robot-feature,.experience-item,.education-card,.about-grid,.contact-panel{animation:linear both section-reveal view();animation-range:entry 5% cover 28%}}@keyframes section-reveal{0%{opacity:.35;transform:translateY(1.7rem)}to{opacity:1;transform:translateY(0)}}}
