.nav[data-astro-cid-37fxchfa]{display:flex;justify-content:space-between;align-items:center;padding:var(--space-inline) var(--margin-x);position:fixed;top:0;left:0;right:0;z-index:100;background:linear-gradient(to bottom,#0a0a0cf2,#0a0a0ccc,#0a0a0c00);max-width:none}.nav-logo[data-astro-cid-37fxchfa]{font-family:Satoshi,-apple-system,sans-serif;font-size:1.2rem;font-weight:800;color:var(--color-text);letter-spacing:.01em;transition:color var(--duration-fast) var(--ease-out)}.nav-logo[data-astro-cid-37fxchfa]:hover{color:var(--color-accent)}.nav-links[data-astro-cid-37fxchfa]{display:flex;gap:var(--space-element);list-style:none}.nav-link[data-astro-cid-37fxchfa]{position:relative;font-family:General Sans,-apple-system,sans-serif;font-size:.85rem;font-weight:500;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;transition:color var(--duration-fast) var(--ease-out)}.nav-link[data-astro-cid-37fxchfa]:hover,.nav-link[data-astro-cid-37fxchfa].active{color:var(--color-accent)}.nav-link[data-astro-cid-37fxchfa].active:after{content:"";position:absolute;bottom:-4px;left:0;right:0;height:2px;background:var(--color-accent)}.site-footer[data-astro-cid-37fxchfa]{padding:4rem 0 2rem;text-align:center}.footer-text[data-astro-cid-37fxchfa]{font-family:JetBrains Mono,monospace;font-size:.7rem;color:#8a877f}@media(min-width:601px){.nav-link[data-astro-cid-37fxchfa]{min-height:44px;display:inline-flex;align-items:center}}@media(max-width:600px){.nav-links[data-astro-cid-37fxchfa]{gap:var(--space-inline)}.nav-link[data-astro-cid-37fxchfa]{font-size:.75rem;min-height:44px;display:inline-flex;align-items:center;padding-block:.75rem}.nav-logo[data-astro-cid-37fxchfa]{min-height:44px;display:inline-flex;align-items:center}}@media(max-width:360px){.nav-links[data-astro-cid-37fxchfa]{gap:.5rem}.nav-link[data-astro-cid-37fxchfa]{font-size:.65rem}}:root{--color-bg: #0A0A0C;--color-bg-elevated: #111114;--color-bg-subtle: #1A1A1F;--color-text: #E8E6E1;--color-text-muted: #7A7770;--color-accent: #5B8FFF;--color-accent-hover: #7BABFF;--color-accent-glow: rgba(91, 143, 255, .15);--color-accent-subtle: rgba(91, 143, 255, .08);--color-border: #2A2A32;--color-border-accent: rgba(91, 143, 255, .3);--color-warm: #D4A053;--color-warm-hover: #E8B86A;--font-display: "Satoshi", -apple-system, sans-serif;--font-body: "General Sans", -apple-system, sans-serif;--font-mono: "JetBrains Mono", monospace;--text-hero: clamp(3rem, 8vw, 6rem);--text-hero-statement: clamp(1.25rem, 2.5vw, 1.75rem);--text-h1: clamp(2.5rem, 5vw, 4rem);--text-h2: clamp(1.75rem, 3vw, 2.5rem);--text-h3: 1.5rem;--text-body: 1.125rem;--text-caption: .875rem;--text-mono: .9375rem;--text-small: .8125rem;--leading-hero: .95;--leading-heading: 1.15;--leading-body: 1.6;--leading-caption: 1.4;--space-section: clamp(6rem, 10vw, 8rem);--space-block: 4rem;--space-element: 2rem;--space-inline: 1rem;--max-width: 1400px;--margin-x: clamp(1.5rem, 5vw, 4rem);--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--duration-fast: .2s;--duration-medium: .4s;--duration-slow: .6s;--shadow-phone: 0 8px 32px rgba(0, 0, 0, .5), 0 2px 8px rgba(0, 0, 0, .3);--shadow-card: 0 4px 24px rgba(0, 0, 0, .3);--shadow-glow: 0 0 40px var(--color-accent-glow)}.project-nostalgic-towns,.project-blue-angels-fans{--color-accent: var(--color-warm);--color-accent-hover: var(--color-warm-hover);--color-accent-glow: rgba(212, 160, 83, .15);--color-border-accent: rgba(212, 160, 83, .3)}h1,h2,.display{font-family:var(--font-display);font-weight:700;line-height:var(--leading-heading);color:var(--color-text);letter-spacing:-.02em}h1{font-size:var(--text-hero);line-height:var(--leading-hero)}h2{font-size:var(--text-h2);margin-bottom:var(--space-element)}h3{font-family:var(--font-display);font-size:var(--text-h3);font-weight:500;line-height:var(--leading-heading);color:var(--color-text);margin-bottom:var(--space-inline)}body,p,.body-text{font-family:var(--font-body);font-size:var(--text-body);line-height:var(--leading-body);color:var(--color-text)}p{margin-bottom:var(--space-inline)}p:last-child{margin-bottom:0}code,pre,.mono{font-family:var(--font-mono);font-size:var(--text-mono);line-height:1.6;color:var(--color-text)}pre{background:var(--color-bg-elevated);padding:var(--space-inline);border-radius:4px;overflow-x:auto}.caption,figcaption,.metadata{font-family:var(--font-body);font-size:var(--text-caption);line-height:var(--leading-caption);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}strong{font-weight:500;color:var(--color-text)}ul,ol{margin-bottom:var(--space-inline);padding-left:var(--space-element)}li{margin-bottom:.5rem}blockquote{font-family:var(--font-body);font-size:var(--text-body);line-height:var(--leading-body);color:var(--color-text);border-left:2px solid var(--color-accent);padding-left:var(--space-inline);margin:var(--space-element) 0;font-style:italic}.reveal-section{opacity:0;transform:translateY(40px)}.reveal-section.is-revealed{opacity:1;transform:translateY(0)}.hero-video{opacity:0}.hero-statement,.hero-secondary{opacity:0;transform:translateY(20px)}.hover-lift{transition:transform var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.hover-lift:hover{transform:translateY(-4px);box-shadow:0 10px 40px #0000004d}.phone-frame{transition:transform var(--duration-fast) var(--ease-out)}.phone-frame:hover{transform:scale(1.02)}.link-underline{position:relative;display:inline-block}.link-underline:after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:1px;background:var(--color-accent);transition:width var(--duration-fast) var(--ease-out)}.link-underline:hover:after{width:100%}.video-fade-enter{animation:fadeIn var(--duration-medium) var(--ease-out) forwards}.video-fade-exit{animation:fadeOut var(--duration-fast) var(--ease-out) forwards}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal-section{opacity:1;transform:none}.hero-video{opacity:1}.hero-name{clip-path:none}.hero-statement,.hero-secondary{opacity:1;transform:none}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background-color:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:var(--text-body);line-height:var(--leading-body);min-height:100vh}::selection{background-color:var(--color-accent);color:var(--color-bg)}body:after{content:"";position:fixed;inset:0;pointer-events:none;z-index:9999;opacity:.045;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E")}.container{max-width:var(--max-width);margin:0 auto;padding:0 var(--margin-x)}section{padding:var(--space-section) 0}.section-header{margin-bottom:var(--space-block)}.accent-line{width:48px;height:2px;background:var(--color-accent);margin-bottom:var(--space-element)}.accent-border-left{border-left:2px solid var(--color-accent);padding-left:var(--space-element)}.accent-glow{box-shadow:var(--shadow-glow)}img{max-width:100%;height:auto;display:block}video{max-width:100%;display:block}.thumb-media,.thumb video,.thumb img,.work-thumb img{transform:translateZ(0);backface-visibility:hidden;-webkit-backface-visibility:hidden}a{color:var(--color-accent);text-decoration:none;transition:color var(--duration-fast) var(--ease-out)}a:hover{color:var(--color-accent-hover)}button{font-family:var(--font-body);cursor:pointer;border:none;background:none}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}:focus:not(:focus-visible){outline:none}.skip-link{position:absolute;top:-100%;left:var(--margin-x);padding:1rem;background:var(--color-accent);color:var(--color-bg);font-weight:500;z-index:1000;transition:top var(--duration-fast) var(--ease-out)}.skip-link:focus{top:var(--margin-x)}.card{background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:8px;padding:var(--space-element);transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.card:hover{border-color:var(--color-border-accent);box-shadow:var(--shadow-glow)}.mono-label{font-family:var(--font-mono);font-size:var(--text-small);color:var(--color-accent);text-transform:uppercase;letter-spacing:.1em}.project-number{font-family:var(--font-mono);font-size:clamp(4rem,10vw,8rem);color:var(--color-accent-subtle);font-weight:700;line-height:.8;user-select:none}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.text-muted{color:var(--color-text-muted)}.text-accent{color:var(--color-accent)}@media(min-width:601px){.bio,.intro-content p,.project-section p:not(.mono):not(.note):not(.lead){max-width:65ch}}@media(max-width:600px){a,button{-webkit-tap-highlight-color:rgba(91,143,255,.15)}}.asset-placeholder{border:1px dashed var(--color-text-muted);border-radius:4px;padding:var(--space-element);display:flex;align-items:center;justify-content:center;text-align:center;background:var(--color-bg-elevated);min-height:200px}.asset-placeholder span{font-family:var(--font-mono);font-size:var(--text-caption);color:var(--color-text-muted)}.asset-placeholder--diagram{aspect-ratio:16 / 9;max-width:900px;margin:var(--space-element) auto;border:1px dashed var(--color-accent);border-radius:8px;background:var(--color-bg-elevated);display:flex;align-items:center;justify-content:center;min-height:auto}.asset-placeholder--diagram .placeholder-inner{display:flex;flex-direction:column;align-items:center;gap:.5rem;text-align:center;padding:2rem}.asset-placeholder--diagram .placeholder-label{font-family:var(--font-mono);font-size:var(--text-mono);color:var(--color-accent)}.asset-placeholder--diagram .placeholder-sublabel{font-family:var(--font-body);font-size:var(--text-caption);color:var(--color-text-muted)}.asset-placeholder--diagram .placeholder-status{font-family:var(--font-mono);font-size:.75rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.08em;margin-top:.5rem;padding:.25rem .75rem;border:1px solid var(--color-border);border-radius:4px}
