:root{color-scheme:dark;--color-ink: #0a0a09;--color-ink-raised: #11110f;--color-ink-soft: #181815;--color-paper: #f2f1e8;--color-paper-soft: #c8c7bd;--color-muted: #929188;--color-line: rgba(242, 241, 232, .16);--color-line-strong: rgba(242, 241, 232, .34);--color-signal: #54c5f8;--color-signal-ink: #03141f;--color-vermilion: #d6a33d;--color-cobalt: #02569b;--font-display: "Syne", "Arial Black", sans-serif;--font-body: "Manrope", Arial, sans-serif;--font-mono: "IBM Plex Mono", "SFMono-Regular", Consolas, monospace;--font-size-display-xl: 5rem;--font-size-display-lg: 3.75rem;--font-size-display-md: 2.5rem;--font-size-heading: 1.5rem;--font-size-body-lg: 1.0625rem;--font-size-body: .9375rem;--font-size-small: .8125rem;--font-size-micro: .6875rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-7: 3rem;--space-8: 4rem;--space-9: 6rem;--space-10: 8rem;--radius-small: 3px;--radius-medium: 6px;--radius-stage: 32px;--page-gutter: 2.5rem;--page-max: 80rem;--ease-standard: cubic-bezier(.22, 1, .36, 1);--ease-snappy: cubic-bezier(.4, 0, .2, 1);--duration-fast: .18s;--duration-medium: .42s}@media(max-width:64rem){:root{--font-size-display-xl: 4rem;--font-size-display-lg: 3rem;--font-size-display-md: 2.125rem;--page-gutter: 2rem}}@media(max-width:45rem){:root{--font-size-display-xl: 2.75rem;--font-size-display-lg: 2.125rem;--font-size-display-md: 1.875rem;--font-size-heading: 1.25rem;--font-size-body-lg: 1rem;--page-gutter: 1.25rem}}*,*:before,*:after{box-sizing:border-box}html{background:var(--color-ink);scroll-behavior:smooth}body{margin:0;min-width:320px;overflow-x:hidden;color:var(--color-paper);background:var(--color-ink);font-family:var(--font-body);font-size:var(--font-size-body);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}body:before{position:fixed;z-index:-3;top:0;right:0;bottom:0;left:0;content:"";background-image:linear-gradient(var(--color-line) 1px,transparent 1px),linear-gradient(90deg,var(--color-line) 1px,transparent 1px);background-size:6rem 6rem;opacity:.16;pointer-events:none}body:after{position:fixed;z-index:100;top:0;right:0;bottom:0;left:0;content:"";opacity:.035;pointer-events:none;background-image:repeating-radial-gradient(circle at 0 0,var(--color-paper) 0 .5px,transparent .5px 3px)}a{color:inherit;text-decoration:none}button,a{font:inherit}button,a[href]{cursor:pointer}ul{margin:0;padding:0;list-style:none}p{margin:0}::selection{color:var(--color-signal-ink);background:var(--color-signal)}:focus-visible{outline:2px solid var(--color-signal);outline-offset:5px}.ambient-field{position:fixed;z-index:-2;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none}.ambient-field:before{position:absolute;top:-25%;left:66%;width:1px;height:150%;content:"";background:var(--color-signal);opacity:.28;transform:rotate(7deg)}.ambient-field:after{position:absolute;top:0;right:9%;width:12rem;height:100%;content:"";border-inline:1px solid var(--color-line);opacity:.34}.section{width:min(100%,var(--page-max));margin-inline:auto;padding:var(--space-10) var(--page-gutter)}#top,#about,#work,#skills,#contact{scroll-margin-top:6.5rem}.eyebrow{display:inline-flex;align-items:center;gap:var(--space-3);color:var(--color-signal);font-family:var(--font-mono);font-size:var(--font-size-micro);font-weight:600;letter-spacing:0;text-transform:uppercase}.eyebrow i{width:1.75rem;height:1px;background:currentColor}.section-header{display:grid;grid-template-columns:minmax(9rem,.35fr) minmax(0,1fr);gap:var(--space-7);align-items:start;margin-bottom:var(--space-8)}.section-header>div{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(16rem,.65fr);gap:var(--space-7);align-items:end}.section-header h2{margin:0;max-width:17ch;font-family:var(--font-display);font-size:var(--font-size-display-md);font-weight:700;letter-spacing:0;line-height:1.04}.section-header p{max-width:36ch;color:var(--color-muted);font-size:var(--font-size-small);line-height:1.7}.button{display:inline-flex;min-height:3rem;align-items:center;justify-content:center;gap:var(--space-3);padding:.8rem 1.15rem;border:1px solid var(--color-line-strong);border-radius:var(--radius-medium);font-size:var(--font-size-small);font-weight:700;transition:color var(--duration-fast) var(--ease-snappy),background var(--duration-fast) var(--ease-snappy),border-color var(--duration-fast) var(--ease-snappy),transform var(--duration-fast) var(--ease-snappy)}.button.primary{border-color:var(--color-signal);color:var(--color-signal-ink);background:var(--color-signal)}.button.secondary{color:var(--color-paper);background:transparent}.button:hover{transform:translateY(-3px)}.button.primary:hover{border-color:var(--color-paper);background:var(--color-paper)}.button.secondary:hover{border-color:var(--color-paper)}.tag-row{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-3)}.tag-row span{display:inline-flex;align-items:center;gap:var(--space-3);color:var(--color-paper-soft);font-family:var(--font-mono);font-size:var(--font-size-micro);letter-spacing:0;text-transform:uppercase}.tag-row span:not(:last-child):after{color:var(--accent, var(--color-signal));content:"/"}.store-links{display:flex;flex-wrap:wrap;gap:var(--space-2)}.store-link{display:grid;min-width:8.5rem;grid-template-columns:auto 1fr;align-items:center;gap:.6rem;padding:.55rem .7rem;border:1px solid var(--color-line-strong);border-radius:var(--radius-medium);color:var(--color-paper);background:var(--color-ink-raised);transition:border-color var(--duration-fast) var(--ease-snappy),background var(--duration-fast) var(--ease-snappy),transform var(--duration-fast) var(--ease-snappy)}.store-link>span{display:grid;gap:.08rem}.store-link small{color:var(--color-muted);font-family:var(--font-mono);font-size:.48rem;line-height:1}.store-link strong{font-size:.72rem;line-height:1.1}.store-link:hover{border-color:var(--accent, var(--color-signal));background:color-mix(in srgb,var(--accent, var(--color-signal)) 10%,var(--color-ink-raised));transform:translateY(-2px)}.site-header{position:fixed;z-index:50;top:1.25rem;left:50%;display:grid;width:min(calc(100vw - 3rem),var(--page-max));min-height:4rem;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--space-6);padding:.5rem 0;border-block:1px solid var(--color-line);background:#0a0a09db;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);transform:translate(-50%)}.brand{display:inline-grid;grid-template-columns:2.5rem auto;align-items:center;gap:var(--space-3)}.brand img{display:block;width:2.5rem;aspect-ratio:1;border:1px solid rgba(84,197,248,.55);border-radius:50%;object-fit:cover}.brand span{color:var(--color-paper-soft);font-family:var(--font-mono);font-size:var(--font-size-micro);text-transform:uppercase}.site-header nav{display:flex;justify-content:center;gap:var(--space-5)}.site-header nav a{position:relative;display:inline-flex;align-items:baseline;gap:.35rem;padding-block:.85rem;color:var(--color-muted);font-size:.75rem;font-weight:600;transition:color var(--duration-fast) var(--ease-snappy)}.site-header nav a span{color:var(--color-line-strong);font-family:var(--font-mono);font-size:.55rem}.site-header nav a:after{position:absolute;right:0;bottom:-.55rem;left:0;height:2px;content:"";background:var(--color-signal);transform:scaleX(0);transform-origin:left;transition:transform var(--duration-medium) var(--ease-standard)}.site-header nav a:hover,.site-header nav a.is-active{color:var(--color-paper)}.site-header nav a.is-active:after{transform:scaleX(1)}.header-cta{display:inline-flex;min-height:2.5rem;align-items:center;gap:var(--space-3);padding-inline:.9rem;color:var(--color-paper);background:var(--color-ink-soft);font-size:.75rem;font-weight:700;justify-self:end;transition:color var(--duration-fast) var(--ease-snappy),background var(--duration-fast) var(--ease-snappy)}.header-cta:hover{color:var(--color-signal-ink);background:var(--color-signal)}.scroll-rail{position:fixed;z-index:40;top:50%;right:1.15rem;display:grid;width:2.25rem;grid-template-rows:auto 7rem repeat(5,.8rem) auto;justify-items:center;gap:.55rem;transform:translateY(-50%)}.scroll-rail-current,.scroll-rail small{color:var(--color-paper);font-family:var(--font-mono);font-size:.6rem}.scroll-rail-line{position:relative;width:1px;height:100%;overflow:hidden;background:var(--color-line)}.scroll-rail-line i{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--color-signal);transform-origin:top;transition:transform var(--duration-medium) var(--ease-standard)}.scroll-rail a{position:relative;display:grid;place-items:center;color:var(--color-muted)}.scroll-rail a>span{position:absolute;right:1.8rem;width:max-content;padding:.25rem .45rem;color:var(--color-paper);background:var(--color-ink);font-family:var(--font-mono);font-size:.6rem;opacity:0;transform:translate(.35rem);transition:opacity var(--duration-fast) var(--ease-snappy),transform var(--duration-fast) var(--ease-snappy);pointer-events:none}.scroll-rail a>i{font-family:var(--font-mono);font-size:.55rem;font-style:normal}.scroll-rail a:hover>span{opacity:1;transform:translate(0)}.scroll-rail a.is-active{color:var(--color-signal)}.hero{position:relative;display:grid;width:min(100%,var(--page-max));min-height:94svh;grid-template-columns:minmax(0,1fr) minmax(28rem,.84fr);grid-template-rows:1fr auto;align-items:center;gap:var(--space-6) var(--space-8);margin-inline:auto;padding:8.5rem var(--page-gutter) 4.5rem}.hero-copy{z-index:2;align-self:end;max-width:41rem}.hero-copy .eyebrow{margin-bottom:var(--space-5)}.hero h1{max-width:12ch;margin:0 0 var(--space-3);font-family:var(--font-display);font-size:var(--font-size-display-xl);font-weight:700;letter-spacing:0;line-height:.94}.hero-summary{margin:0 0 var(--space-5);font-family:var(--font-display);font-size:var(--font-size-display-lg);font-weight:700;letter-spacing:0;line-height:.98}.hero-summary span{display:block}.hero-summary em{position:relative;color:var(--color-signal);font-style:normal}.hero-summary em:after{position:absolute;right:0;bottom:-.3rem;left:0;height:.2rem;content:"";background:var(--color-vermilion);transform:rotate(-1deg)}.hero-intro{max-width:51ch;color:var(--color-paper-soft);font-size:var(--font-size-body-lg);line-height:1.7}.hero-actions{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-6)}.hero-stage{z-index:1;grid-column:2;grid-row:1 / span 2;align-self:stretch;min-height:39rem;overflow:visible}.flutter-stage{position:relative;width:100%;height:100%;min-height:39rem}.hero-portrait{position:absolute;right:-9%;bottom:0;width:auto;height:92%;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 1.5rem 1.5rem rgba(0,0,0,.34));-webkit-mask-image:linear-gradient(to right,transparent 0%,#000 34%,#000 100%),linear-gradient(to bottom,#000 0%,#000 88%,transparent 100%);-webkit-mask-composite:source-in;mask-image:linear-gradient(to right,transparent 0%,#000 34%,#000 100%),linear-gradient(to bottom,#000 0%,#000 88%,transparent 100%);mask-composite:intersect}.flutter-mark{position:absolute;z-index:4;bottom:9%;left:5%;display:grid;width:4.75rem;min-height:5.5rem;place-items:center;padding:.7rem;border:1px solid rgba(84,197,248,.42);color:var(--color-paper);background:#0a0a09d1;box-shadow:.4rem .4rem #d6a33dcc;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.flutter-mark span{font-family:var(--font-mono);font-size:.58rem;text-transform:uppercase}.flutter-logo-svg{width:2rem;height:auto}.flutter-face-light{fill:#54c5f8}.flutter-face-mid{fill:#29b6f6}.flutter-face-dark{fill:#01579b}.hero-stats{display:grid;min-width:0;grid-template-columns:repeat(3,minmax(0,1fr));align-self:start;padding-block:var(--space-4);border-block:1px solid var(--color-line)}.hero-stats>div{display:grid;min-width:0;grid-template-columns:auto 1fr;gap:0 var(--space-2);align-items:baseline;padding-inline:var(--space-4)}.hero-stats>div:first-child{padding-left:0}.hero-stats>div+div{border-left:1px solid var(--color-line)}.hero-stats small{color:var(--color-vermilion);font-family:var(--font-mono);font-size:.55rem}.hero-stats strong{font-family:var(--font-display);font-size:1.55rem;font-weight:700}.hero-stats span{grid-column:2;color:var(--color-muted);font-size:.68rem}.about{width:min(100%,var(--page-max));margin-inline:auto;padding:var(--space-10) var(--page-gutter);border-top:1px solid var(--color-line)}.about>div{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(17rem,.45fr);gap:var(--space-9);align-items:end}.about-statement p{max-width:27ch;margin-top:var(--space-6);font-family:var(--font-display);font-size:var(--font-size-display-md);font-weight:600;letter-spacing:0;line-height:1.18}.about-statement strong{color:var(--color-signal);font-weight:600}.about-facts{border-top:1px solid var(--color-line-strong)}.about-facts>div{display:grid;grid-template-columns:5rem 1fr;gap:var(--space-4);padding-block:var(--space-4);border-bottom:1px solid var(--color-line)}.about-facts span{color:var(--color-muted);font-family:var(--font-mono);font-size:var(--font-size-micro);text-transform:uppercase}.about-facts strong{font-size:var(--font-size-small);font-weight:600}.work-signature.is-pinned{position:relative}.work-signature.is-pinned .work-sticky{position:sticky;top:0;display:flex;height:100vh;overflow:hidden;flex-direction:column;background:var(--color-ink)}.work-signature.is-pinned .section-header{width:min(100%,var(--page-max));flex:0 0 auto;margin:0 auto;padding:5.5rem var(--page-gutter) 1.5rem}.work-signature.is-pinned .work-track{display:flex;height:100%;min-height:0;flex:1 1 auto;will-change:transform}.work-signature.is-pinned .work-panel{flex:0 0 100%}.work-signature.is-pinned .work-progress{display:flex;width:min(100%,var(--page-max));flex:0 0 auto;gap:0;margin-inline:auto;padding:0 var(--page-gutter) 1.25rem}.work-signature.is-pinned .work-progress span{width:100%;height:2px;background:var(--color-line);transition:background var(--duration-medium) var(--ease-standard)}.work-signature.is-pinned .work-progress span.is-active{background:var(--color-signal)}.work-signature.is-stacked{width:min(100%,var(--page-max));margin-inline:auto;padding:var(--space-10) 0}.work-signature.is-stacked .section-header{padding-inline:var(--page-gutter)}.work-signature.is-stacked .work-track{display:flex;gap:var(--space-5);overflow-x:auto;overflow-y:hidden;padding-inline:var(--page-gutter);padding-bottom:var(--space-4);scroll-padding-inline:var(--page-gutter);scroll-snap-type:x mandatory;scrollbar-width:none}.work-signature.is-stacked .work-track::-webkit-scrollbar{display:none}.work-signature.is-stacked .work-panel{width:min(52rem,calc(100vw - (var(--page-gutter) * 2)));min-height:36rem;flex:0 0 min(52rem,calc(100vw - (var(--page-gutter) * 2)));scroll-snap-align:center}.work-panel{position:relative;display:grid;grid-template-columns:minmax(18rem,.72fr) minmax(25rem,1.28fr);gap:var(--space-7);align-items:stretch;padding:var(--space-5) max(var(--page-gutter),calc((100vw - var(--page-max)) / 2 + var(--page-gutter)));background:var(--color-ink)}.work-panel-copy{display:flex;min-width:0;flex-direction:column;justify-content:center}.work-panel-meta{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-6);color:var(--accent);font-family:var(--font-mono);font-size:var(--font-size-micro);text-transform:uppercase}.work-panel-index{display:grid;width:2rem;aspect-ratio:1;place-items:center;border:1px solid currentColor}.work-panel-title{display:flex;align-items:center;gap:var(--space-4)}.work-panel-icon{display:grid;width:3rem;aspect-ratio:1;flex:0 0 auto;place-items:center;color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.work-panel-icon img{width:2rem;height:2rem;border-radius:.4rem;object-fit:contain}.work-panel h3{margin:0;font-family:var(--font-display);font-size:var(--font-size-display-md);font-weight:700;letter-spacing:0;line-height:1}.work-panel-copy>p{max-width:45ch;margin-top:var(--space-5);color:var(--color-paper-soft);line-height:1.65}.work-panel-copy .work-panel-impact{margin-block:var(--space-5);padding-left:var(--space-4);border-left:2px solid var(--accent);color:var(--color-muted);font-size:var(--font-size-small)}.store-links{display:flex;min-height:2.5rem;align-items:center;flex-wrap:wrap;gap:.625rem;margin-top:var(--space-5)}.store-badge{display:inline-flex;height:2.5rem;align-items:center;flex:0 0 auto;justify-content:center}.store-badge img{display:block;width:auto;height:2.5rem}.store-badge:focus-visible{border-radius:.35rem;outline:2px solid var(--accent, var(--color-signal));outline-offset:.25rem}.project-visual{position:relative;min-height:0;overflow:hidden;border:1px solid color-mix(in srgb,var(--accent) 42%,var(--color-line));border-radius:var(--radius-medium);background:var(--color-ink-raised);isolation:isolate}.project-visual:after{position:absolute;z-index:8;top:0;right:0;bottom:0;left:0;content:"";border:1px solid rgba(255,255,255,.06);pointer-events:none}.project-visual-image{aspect-ratio:3 / 2;align-self:center;border:0;border-radius:0;background:transparent}.project-visual-image:after{display:none}.project-visual-image img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;scale:var(--image-scale, 1);transition:transform .9s var(--ease-standard)}.work-panel[aria-current=true] .project-visual-image img{transform:scale(1.035)}.visual-caption{position:absolute;z-index:9;right:1rem;bottom:1rem;padding:.5rem .65rem;color:var(--color-paper);background:#0a0a09c7;font-family:var(--font-mono);font-size:.58rem;text-transform:uppercase;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.project-visual-guard{background-color:#071611;background-image:radial-gradient(circle at 50% 54%,rgba(103,232,177,.18),transparent 22%),repeating-radial-gradient(circle at 50% 54%,transparent 0 3rem,rgba(103,232,177,.16) 3.05rem 3.1rem)}.guard-radar{position:absolute;top:50%;left:50%;display:grid;width:18rem;aspect-ratio:1;place-items:center;border:1px solid rgba(103,232,177,.24);border-radius:50%;transform:translate(-50%,-50%)}.guard-radar:before,.guard-radar:after{position:absolute;content:"";background:#67e8b12e}.guard-radar:before{width:1px;height:130%}.guard-radar:after{width:130%;height:1px}.guard-radar>i{position:absolute;top:-1px;right:50%;bottom:50%;left:-1px;border-top-left-radius:100%;background:linear-gradient(135deg,rgba(103,232,177,.34),transparent 72%);animation:radar-sweep 5s linear infinite;transform-origin:bottom right}.guard-radar>span{position:absolute;top:25%;right:21%;width:.55rem;aspect-ratio:1;border-radius:50%;background:var(--accent);box-shadow:0 0 1.25rem var(--accent)}.guard-radar svg{position:relative;color:var(--accent)}.visual-status,.visual-metric{position:absolute;z-index:5;display:flex;align-items:center;gap:var(--space-2);font-family:var(--font-mono);font-size:.62rem;text-transform:uppercase}.visual-status{top:1.25rem;left:1.25rem;color:var(--accent)}.visual-metric{right:1.25rem;bottom:1.25rem;display:grid;padding-left:var(--space-3);border-left:2px solid var(--accent)}.visual-metric span{color:var(--color-muted);font-size:.55rem}.visual-metric strong{color:var(--color-paper);font-family:var(--font-display);font-size:1.4rem}.project-visual-race{overflow:hidden;background:#180807}.project-visual-race:before{position:absolute;top:-20%;right:18%;width:2px;height:150%;content:"";background:var(--accent);box-shadow:1rem 0 #ff5a4585,2rem 0 #ff5a4542;transform:rotate(22deg)}.race-number{position:absolute;top:50%;left:8%;color:transparent;font-family:var(--font-display);font-size:12rem;font-weight:800;line-height:.75;-webkit-text-stroke:1px rgba(255,90,69,.56);transform:translateY(-50%)}.race-lines{position:absolute;top:50%;right:9%;display:grid;width:48%;gap:1rem;transform:translateY(-50%) skew(-22deg)}.race-lines i{height:.45rem;background:var(--accent);transform-origin:right;animation:velocity-line 2.4s var(--ease-standard) infinite alternate}.race-lines i:nth-child(2){width:82%;animation-delay:-.4s}.race-lines i:nth-child(3){width:64%;animation-delay:-.8s}.race-lines i:nth-child(4){width:42%;animation-delay:-1.2s}.project-visual-race>svg{position:absolute;z-index:4;top:1.5rem;right:1.5rem;color:var(--accent)}.race-meta{position:absolute;z-index:4;right:1.5rem;bottom:1.5rem;display:grid;gap:.3rem;text-align:right;text-transform:uppercase}.race-meta span{color:var(--color-muted);font-family:var(--font-mono);font-size:.55rem}.race-meta strong{font-family:var(--font-display);font-size:1.5rem}.project-visual-health{background-color:#071817;background-image:linear-gradient(rgba(94,225,211,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(94,225,211,.09) 1px,transparent 1px);background-size:2.5rem 2.5rem}.cycle-orbit{position:absolute;top:50%;left:50%;display:grid;width:14rem;aspect-ratio:1;place-content:center;border:1px solid rgba(94,225,211,.46);border-radius:50%;text-align:center;transform:translate(-50%,-50%)}.cycle-orbit:before{position:absolute;top:1.15rem;right:1.15rem;bottom:1.15rem;left:1.15rem;border:1px dashed rgba(94,225,211,.34);border-radius:inherit;content:"";animation:stage-spin 22s linear infinite reverse}.cycle-orbit span{color:var(--accent);font-family:var(--font-display);font-size:4.5rem;font-weight:700;line-height:.86}.cycle-orbit small{margin-top:.5rem;color:var(--color-muted);font-family:var(--font-mono);font-size:.6rem;text-transform:uppercase}.health-wave{position:absolute;right:10%;bottom:14%;left:10%;display:flex;height:3.5rem;align-items:center;justify-content:space-between}.health-wave i{width:1px;height:40%;background:var(--accent);animation:health-pulse 1.4s var(--ease-snappy) infinite alternate}.health-wave i:nth-child(2),.health-wave i:nth-child(6){height:70%;animation-delay:-.3s}.health-wave i:nth-child(3),.health-wave i:nth-child(5){height:100%;animation-delay:-.6s}.health-wave i:nth-child(4){height:55%;animation-delay:-.9s}.project-visual-moon{background-color:#0d1021;background-image:linear-gradient(rgba(125,155,255,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(125,155,255,.1) 1px,transparent 1px);background-size:3rem 3rem}.moon-orbit{position:absolute;top:50%;left:34%;width:15rem;aspect-ratio:1;border:1px solid rgba(125,155,255,.5);border-radius:50%;transform:translate(-50%,-50%) rotate(-18deg)}.moon-orbit:before,.moon-orbit:after{position:absolute;border:1px solid rgba(125,155,255,.18);border-radius:inherit;content:""}.moon-orbit:before{top:17%;right:17%;bottom:17%;left:17%}.moon-orbit:after{top:38%;right:38%;bottom:38%;left:38%;background:var(--accent);box-shadow:0 0 2.5rem #7d9bff8c}.moon-orbit>span{position:absolute;top:16%;right:4%;width:1rem;aspect-ratio:1;border-radius:50%;background:var(--color-signal);box-shadow:0 0 1.25rem #54c5f880}.moon-orbit>i{position:absolute;top:-.65rem;right:-.65rem;bottom:-.65rem;left:-.65rem;border-top:1px solid var(--color-vermilion);border-radius:inherit;animation:stage-spin 10s linear infinite}.market-chart{position:absolute;right:12%;bottom:18%;display:flex;width:32%;height:9rem;align-items:end;gap:.4rem}.market-chart i{width:100%;background:var(--accent);transform-origin:bottom;animation:chart-rise 2.8s var(--ease-standard) infinite alternate}.market-chart i:nth-child(2n){background:var(--color-signal);animation-delay:-.7s}.moon-trend{position:absolute;top:1.5rem;right:1.5rem;color:var(--accent)}.visual-activity,.visual-pin,.visual-bag{position:absolute;color:var(--color-line-strong)}.visual-activity{top:18%;left:9%}.visual-pin{top:14%;left:48%}.visual-bag{right:8%;bottom:9%}.work-panel-close{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:var(--space-5);border-top:1px solid var(--color-line)}.work-panel-close:before{position:absolute;right:7%;width:14rem;aspect-ratio:1;border:1px solid var(--color-signal);border-radius:50%;content:"";box-shadow:inset 0 0 0 2.5rem var(--color-ink),inset 0 0 0 2.6rem var(--color-vermilion);animation:stage-spin 18s linear infinite}.work-panel-close h3{z-index:1;max-width:14ch;font-size:var(--font-size-display-lg)}.work-panel-close p,.work-panel-close .button,.work-panel-close .work-panel-index{z-index:1}.work-panel-close p{color:var(--color-muted)}.skills-experience{border-top:1px solid var(--color-line)}.skills-experience-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(19rem,.8fr);gap:var(--space-9);align-items:start}.skill-groups{border-top:1px solid var(--color-line-strong)}.skills-column{min-width:0}.skill-group-row{display:grid;grid-template-columns:11rem minmax(12rem,.8fr) minmax(16rem,1.2fr);gap:var(--space-5);align-items:start;padding-block:var(--space-5);border-bottom:1px solid var(--color-line);transition:padding var(--duration-medium) var(--ease-standard),border-color var(--duration-fast) var(--ease-snappy)}.skill-group-row:hover{padding-inline:var(--space-3);border-color:var(--color-signal)}.skill-group-heading{display:flex;align-items:baseline;gap:var(--space-3)}.skill-group-index,.experience-index{color:var(--color-vermilion);font-family:var(--font-mono);font-size:var(--font-size-micro)}.skill-group-row h3{margin:0;font-family:var(--font-display);font-size:1.05rem;font-weight:700}.skill-group-row>p{color:var(--color-muted);font-size:.78rem;line-height:1.65}.skill-list{display:flex;flex-wrap:wrap;gap:.5rem 0}.skill-list span{display:inline-flex;align-items:center;color:var(--color-paper-soft);font-family:var(--font-mono);font-size:.68rem}.skill-list span:not(:last-child):after{margin-inline:.6rem;color:var(--color-signal);content:"•"}.technology-marquee{position:relative;overflow:hidden;margin-top:var(--space-8);-webkit-mask-image:linear-gradient(to right,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(to right,transparent,#000 6%,#000 94%,transparent)}.technology-track{display:flex;width:max-content;will-change:transform;animation:technology-marquee 34s linear infinite}.technology-loop{display:flex;flex:0 0 auto;align-items:center}.technology-item{display:inline-flex;min-width:max-content;align-items:center;gap:.75rem;padding:1.15rem 1.8rem;color:var(--color-paper-soft)}.technology-item svg{width:1.8rem;height:1.8rem;color:var(--tech-color, var(--color-signal))}.technology-item span{font-family:var(--font-mono);font-size:.68rem;font-weight:600;text-transform:uppercase}.open-source-strip{display:grid;grid-template-columns:10rem minmax(18rem,1fr) minmax(18rem,.8fr);gap:var(--space-6);align-items:start;margin-top:var(--space-7);padding-block:var(--space-6);border-block:1px solid var(--color-line-strong)}.open-source-label{display:flex;align-items:center;gap:var(--space-3);color:var(--color-signal);font-family:var(--font-mono);font-size:var(--font-size-micro);font-weight:600;text-transform:uppercase}.open-source-label svg{width:1.2rem;height:1.2rem}.open-source-copy>span{display:block;margin-bottom:var(--space-2);color:var(--color-muted);font-family:var(--font-mono);font-size:var(--font-size-micro);text-transform:uppercase}.open-source-copy h3{margin:0;color:var(--color-paper);font-family:var(--font-display);font-size:clamp(1.5rem,3vw,2.65rem);font-weight:700;line-height:1;overflow-wrap:anywhere}.open-source-copy p{max-width:58ch;margin-top:var(--space-4);color:var(--color-muted);font-size:var(--font-size-small);line-height:1.7}.open-source-meta{display:flex;min-width:0;flex-direction:column;gap:var(--space-5)}.open-source-technologies{display:flex;flex-wrap:wrap;gap:.55rem 0}.open-source-technologies span{color:var(--color-paper-soft);font-family:var(--font-mono);font-size:.64rem;text-transform:uppercase}.open-source-technologies span:not(:last-child):after{margin-inline:.6rem;color:var(--color-signal);content:"/"}.open-source-links{display:flex;flex-wrap:wrap;gap:var(--space-5)}.open-source-links a{display:inline-flex;align-items:center;gap:.45rem;padding-bottom:.3rem;border-bottom:1px solid var(--color-line-strong);color:var(--color-paper);font-size:var(--font-size-small);font-weight:700;transition:color var(--duration-fast) var(--ease-snappy),border-color var(--duration-fast) var(--ease-snappy)}.open-source-links a:hover{border-color:var(--color-signal);color:var(--color-signal)}.open-source-links svg{width:1rem;height:1rem}.experience-list{border-top:1px solid var(--color-line-strong)}.experience-list li{position:relative;display:grid;grid-template-columns:2rem 1fr;gap:var(--space-4);padding-block:var(--space-5);border-bottom:1px solid var(--color-line)}.experience-list li:before{position:absolute;top:1.7rem;left:-.2rem;width:.35rem;aspect-ratio:1;content:"";background:var(--color-signal)}.experience-entry{min-width:0}.experience-period{display:block;margin-bottom:var(--space-2);color:var(--color-muted);font-family:var(--font-mono);font-size:var(--font-size-micro);text-transform:uppercase}.experience-entry h4{margin:0;font-family:var(--font-display);font-size:1.15rem;font-weight:700}.experience-entry>strong{display:block;margin-top:.15rem;color:var(--color-signal);font-family:var(--font-mono);font-size:var(--font-size-micro);font-weight:600;text-transform:uppercase}.experience-entry p{margin-top:var(--space-3);color:var(--color-muted);font-size:.78rem;line-height:1.65}.contact-section{width:100%;max-width:none;padding:0;border-top:1px solid var(--color-line)}.contact-composition{width:min(100%,var(--page-max));margin-inline:auto;padding:var(--space-10) var(--page-gutter) var(--space-7)}.contact-intro{display:grid;grid-template-columns:minmax(9rem,.35fr) minmax(0,1fr);gap:var(--space-7);align-items:start}.contact-intro h2{max-width:20ch;margin:0;font-family:var(--font-display);font-size:var(--font-size-display-md);font-weight:700;letter-spacing:0;line-height:1.08}.contact-email{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-5);align-items:center;margin-block:var(--space-8);padding-block:var(--space-5);border-block:1px solid var(--color-line-strong);font-family:var(--font-display);font-size:var(--font-size-display-lg);font-weight:600;line-height:1;transition:color var(--duration-medium) var(--ease-standard),padding var(--duration-medium) var(--ease-standard)}.contact-email span{min-width:0;overflow-wrap:anywhere}.contact-email svg{width:3rem;height:3rem;color:var(--color-signal);transition:transform var(--duration-medium) var(--ease-standard)}.contact-email:hover{padding-inline:var(--space-4);color:var(--color-signal)}.contact-email:hover svg{transform:translate(.3rem,-.3rem)}.contact-copy-status{position:absolute;right:0;bottom:-1.75rem;color:var(--color-signal);font-family:var(--font-mono);font-size:var(--font-size-micro);opacity:0;transform:translateY(-.25rem);transition:opacity var(--duration-fast) var(--ease-snappy),transform var(--duration-fast) var(--ease-snappy)}.contact-copy-status.is-visible{opacity:1;transform:translateY(0)}.contact-actions{display:flex;flex-wrap:wrap;gap:var(--space-5)}.contact-actions a{display:inline-flex;align-items:center;gap:var(--space-2);padding-bottom:.4rem;border-bottom:1px solid var(--color-line-strong);color:var(--color-paper-soft);font-size:var(--font-size-small);font-weight:600;transition:color var(--duration-fast) var(--ease-snappy),border-color var(--duration-fast) var(--ease-snappy)}.contact-actions a:hover{border-color:var(--color-signal);color:var(--color-signal)}.build-status{display:flex;flex-wrap:wrap;gap:var(--space-3) var(--space-5);align-items:center;margin-top:var(--space-8);padding-top:var(--space-4);border-top:1px solid var(--color-line);color:var(--color-muted);font-family:var(--font-mono);font-size:var(--font-size-micro);text-transform:uppercase}.build-status>span{width:.5rem;aspect-ratio:1;border-radius:50%;background:var(--color-signal);box-shadow:0 0 .75rem #54c5f8a6;animation:status-pulse 2s ease-in-out infinite}.build-status code{color:var(--color-paper);font-family:inherit}.build-status i{font-style:normal}.build-status strong{margin-left:auto;color:var(--color-signal)}@keyframes stage-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes radar-sweep{to{transform:rotate(360deg)}}@keyframes velocity-line{0%{transform:scaleX(.7)}to{transform:scaleX(1)}}@keyframes health-pulse{0%{transform:scaleY(.65)}to{transform:scaleY(1)}}@keyframes chart-rise{0%{transform:scaleY(.7)}to{transform:scaleY(1)}}@keyframes status-pulse{0%,to{opacity:.55;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}@keyframes technology-marquee{to{transform:translate3d(-50%,0,0)}}@media(max-width:68.75rem){.scroll-rail{display:none}.hero{grid-template-columns:minmax(0,1fr) minmax(24rem,.78fr);gap:var(--space-5)}.hero-stage,.flutter-stage{min-height:32rem}.hero-portrait{right:-16%;height:98%}.site-header{width:calc(100vw - 2rem)}.skills-experience-grid{gap:var(--space-7)}.open-source-strip{grid-template-columns:8rem minmax(16rem,1fr) minmax(14rem,.75fr);gap:var(--space-5)}.skill-group-row{grid-template-columns:9rem 1fr}.skill-list{grid-column:1 / -1;padding-left:9rem}}@media(max-width:56.25rem){.site-header nav{display:none}.hero{min-height:auto;grid-template-columns:minmax(0,1fr);grid-template-rows:auto;padding-top:7.5rem}.hero-copy{align-self:auto;min-width:0}.hero-stage{grid-column:1;grid-row:auto;min-width:0;min-height:32rem}.hero-portrait{right:2%;height:95%}.hero-stats{grid-row:auto}.about>div{grid-template-columns:1fr;gap:var(--space-7)}.section-header{grid-template-columns:1fr;gap:var(--space-4)}.section-header>div{grid-template-columns:minmax(0,1.1fr) minmax(15rem,.9fr)}.work-panel{grid-template-columns:minmax(14rem,.75fr) minmax(22rem,1.25fr);padding-inline:var(--space-5)}.skills-experience-grid{grid-template-columns:1fr}.open-source-strip{grid-template-columns:9rem minmax(0,1fr)}.open-source-meta{grid-column:2}.contact-intro{grid-template-columns:1fr}}@media(max-width:45rem){body:before{background-size:3.5rem 3.5rem}.ambient-field:after{right:1.25rem;width:4rem}.section{padding-block:var(--space-9)}.site-header{top:0;width:100%;min-height:3.75rem;padding-inline:var(--page-gutter);border-top:0}.brand{grid-template-columns:2.25rem auto}.brand img{width:2.25rem}.header-cta{min-width:2.5rem;padding:0;justify-content:center}.header-cta span{display:none}.hero{gap:var(--space-6);padding-top:6.5rem;padding-bottom:var(--space-7)}.hero h1{margin-bottom:var(--space-3)}.hero-summary{max-width:100%;line-height:.98;overflow-wrap:anywhere}.hero-intro{line-height:1.6}.hero-actions{display:grid;grid-template-columns:minmax(0,1fr)}.hero-actions .button{width:100%}.hero-stage,.flutter-stage{min-height:24rem}.hero-portrait{right:-5%;height:100%}.flutter-mark{bottom:8%;left:4%;width:4.25rem;min-height:5rem}.hero-stats>div{grid-template-columns:auto 1fr;padding-inline:var(--space-2)}.hero-stats strong{font-size:1.2rem}.hero-stats span{font-size:.56rem}.about{padding-block:var(--space-9)}.about-statement p{line-height:1.22}.section-header{margin-bottom:var(--space-6)}.section-header>div{grid-template-columns:1fr;gap:var(--space-3)}.section-header p{max-width:42ch}.work-signature.is-stacked{padding-block:var(--space-9)}.work-signature.is-stacked .work-panel{width:calc(100vw - (var(--page-gutter) * 2));min-height:0;flex-basis:calc(100vw - (var(--page-gutter) * 2))}.work-panel{display:grid;grid-template-columns:1fr;gap:var(--space-5);padding:0}.project-visual{min-height:18rem;grid-row:1}.project-visual-image{min-height:0}.work-panel-copy{grid-row:2;justify-content:flex-start;padding-bottom:var(--space-4)}.work-panel-meta{margin-bottom:var(--space-4)}.work-panel h3{font-size:1.8rem}.work-panel-icon{width:2.5rem}.work-panel-copy>p{margin-top:var(--space-4)}.race-number{font-size:8rem}.guard-radar{width:13rem}.cycle-orbit{width:11rem}.moon-orbit{left:38%;width:11rem}.market-chart{right:7%;width:31%;height:6rem}.work-panel-close{min-height:25rem!important;padding:var(--space-6);border:1px solid var(--color-line)}.work-panel-close:before{right:-4rem;bottom:-4rem;width:13rem}.work-panel-close h3{font-size:var(--font-size-display-md)}.skill-group-row{grid-template-columns:1fr;gap:var(--space-3)}.skill-list{grid-column:auto;padding-left:0}.technology-item{gap:.6rem;padding:1rem 1.25rem}.technology-item svg{width:1.55rem;height:1.55rem}.open-source-strip{grid-template-columns:1fr;gap:var(--space-4);margin-top:var(--space-6);padding-block:var(--space-5)}.open-source-meta{grid-column:auto}.open-source-copy h3{font-size:1.65rem}.experience-list li{grid-template-columns:1.5rem 1fr}.contact-composition{padding-block:var(--space-9) var(--space-6)}.contact-email{grid-template-columns:minmax(0,1fr) 2rem;gap:var(--space-3);margin-block:var(--space-7);font-size:1.35rem}.contact-email svg{width:2rem;height:2rem}.contact-actions{gap:var(--space-4)}.build-status{gap:var(--space-3)}.build-status i{display:none}}@media(max-width:23rem){.brand span{display:none}.hero-actions,.hero-stats{grid-template-columns:1fr}.hero-stats>div{padding:var(--space-3) 0}.hero-stats>div+div{border-top:1px solid var(--color-line);border-left:0}.contact-email{font-size:1.15rem}}@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.technology-marquee{overflow-x:auto;-webkit-mask-image:none;mask-image:none;scrollbar-width:none}.technology-marquee::-webkit-scrollbar{display:none}.technology-track{transform:none!important}.technology-loop[aria-hidden=true]{display:none}}
