:root{--font-display:"Space Grotesk", sans-serif;--font-body:"Inter", sans-serif;--font-mono:"JetBrains Mono", monospace;--color-paper:oklch(98.5% .004 250);--color-surface:oklch(100% 0 0);--color-surface-subtle:oklch(96.8% .006 250);--color-ink:oklch(22% .018 258);--color-body:oklch(34% .016 258);--color-muted:oklch(52% .012 258);--color-faint:oklch(68% .009 258);--color-line:oklch(87% .008 250);--color-line-strong:oklch(72% .01 250);--color-cobalt:oklch(54% .22 260);--color-cobalt-hover:oklch(47% .225 260);--color-cobalt-soft:oklch(94% .035 260);--color-graphite:oklch(20% .015 260);--color-graphite-raised:oklch(24% .015 260);--color-on-dark:oklch(97% .004 250);--color-accent-ink:oklch(97% .004 250);--color-on-dark-muted:oklch(73% .01 255);--color-dark-line:oklch(35% .012 258);--color-backdrop:oklch(14% .015 260/.72);--color-focus-ring:oklch(56% .22 260/.3);--color-shadow:oklch(20% .02 260/.1);--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--space-28:7rem;--space-32:8rem;--radius-control:.375rem;--radius-media:.625rem;--radius-panel:.75rem;--shadow-media:0 1.25rem 3.5rem var(--color-shadow);--page-gutter:clamp(1.25rem, 4vw, 4rem);--page-width:94rem;--transition-fast:.16s cubic-bezier(.22, 1, .36, 1);--transition-smooth:.36s cubic-bezier(.22, 1, .36, 1)}html{scroll-behavior:smooth;background:var(--color-paper);scroll-padding-top:6rem;overflow-x:clip}body{background:var(--color-paper);min-width:20rem;color:var(--color-body);font-family:var(--font-body);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;margin:0;font-size:1rem;line-height:1.6;overflow-x:clip}.app,.app *{box-sizing:border-box}.app{background:var(--color-paper);min-height:100vh;color:var(--color-body)}.app :where(a){color:inherit;text-decoration:none}.app :where(button,input){font:inherit}.app :where(a,button,input):focus-visible{outline:2px solid var(--color-cobalt);outline-offset:3px;box-shadow:0 0 0 5px var(--color-focus-ring)}.app :where(a,button):active{opacity:.78}.app :where(button:disabled,[aria-disabled=true]){opacity:.55;cursor:not-allowed;pointer-events:none}.app :where(h1,h2,h3,p){margin-block-start:0}.app p{color:inherit}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:200;top:var(--space-4);left:var(--space-4);padding:var(--space-3) var(--space-4);border-radius:var(--radius-control);background:var(--color-ink);transition:transform var(--transition-fast);font-weight:600;position:fixed;transform:translateY(-160%);color:var(--color-on-dark)!important}.skip-link:focus{transform:translateY(0)}.eyebrow{margin-bottom:var(--space-4);color:var(--color-muted);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;font-size:.75rem;font-weight:500;line-height:1.4}.site-header{z-index:50;width:min(calc(100% - (var(--page-gutter) * 2)), var(--page-width));min-height:5rem;margin:var(--space-5) auto 0;padding:var(--space-3) var(--space-5);border:1px solid var(--color-line-strong);background:var(--color-paper);justify-content:space-between;align-items:center;line-height:1;display:flex;position:relative}.wordmark{font-family:var(--font-display);letter-spacing:-.04em;font-size:clamp(1.15rem,2vw,1.4rem);font-weight:700;color:var(--color-ink)!important}.primary-nav{align-items:center;gap:clamp(var(--space-4), 2.6vw, var(--space-8));line-height:1;display:flex}.primary-nav>a{color:var(--color-body);font-family:var(--font-body);white-space:nowrap;font-size:.78rem;position:relative}.primary-nav>a:after{background:var(--color-cobalt);content:"";transform-origin:0;height:1px;transition:transform var(--transition-fast);position:absolute;bottom:-.4rem;left:0;right:0;transform:scaleX(0)}.primary-nav>a:hover:after,.primary-nav>a:focus-visible:after{transform:scaleX(1)}.command-trigger{min-width:17rem;height:2.75rem;padding:0 var(--space-3);align-items:center;gap:var(--space-3);border:1px solid var(--color-line-strong);border-radius:var(--radius-control);background:var(--color-surface);color:var(--color-muted);cursor:pointer;white-space:nowrap;transition:border-color var(--transition-fast), color var(--transition-fast), background var(--transition-fast);line-height:1;display:flex}.command-trigger:hover{border-color:var(--color-cobalt);background:var(--color-cobalt-soft);color:var(--color-ink)}.command-trigger svg,.command-search svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:1.75px;flex:none;width:1.15rem}.command-trigger span{text-align:left;flex:1}.command-trigger kbd{padding:var(--space-1) var(--space-2);border:1px solid var(--color-line);border-radius:calc(var(--radius-control) - 2px);background:var(--color-surface-subtle);color:var(--color-body);font-family:var(--font-body);font-size:.7rem}.hero{width:min(100%, calc(var(--page-width) + (var(--page-gutter) * 2)));min-height:42rem;padding:clamp(var(--space-12), 4vw, var(--space-16)) var(--page-gutter) clamp(var(--space-20), 7vw, var(--space-28));gap:clamp(var(--space-10), 6vw, var(--space-24));grid-template-columns:minmax(21rem,.78fr) minmax(34rem,1.22fr);align-items:center;margin:0 auto;display:grid;position:relative}.hero-copy{z-index:2;position:relative}.hero-eyebrow{animation:.68s cubic-bezier(.22,1,.36,1) 80ms both reveal-up}.hero h1{margin-bottom:var(--space-8);color:var(--color-ink);font-family:var(--font-display);letter-spacing:-.07em;overflow-wrap:anywhere;min-width:0;font-size:clamp(4rem,7vw,7.6rem);font-weight:600;line-height:.88;animation:.76s cubic-bezier(.22,1,.36,1) .14s both reveal-up}.hero h1 .hero-line{white-space:nowrap;display:block}.hero h1 .hero-line-accent{color:var(--color-cobalt)}.hero-summary{max-width:62ch;margin-bottom:var(--space-8);color:var(--color-body);font-size:clamp(1.02rem,1.4vw,1.2rem);line-height:1.65;animation:.76s cubic-bezier(.22,1,.36,1) .22s both reveal-up}.hero-actions{gap:var(--space-3);flex-wrap:wrap;align-items:center;line-height:1;animation:.76s cubic-bezier(.22,1,.36,1) .3s both reveal-up;display:flex}.button{min-height:3.25rem;padding:0 var(--space-5);justify-content:space-between;align-items:center;gap:var(--space-6);border-radius:var(--radius-control);font-family:var(--font-body);white-space:nowrap;transition:transform var(--transition-fast), background var(--transition-fast), border-color var(--transition-fast);border:1px solid #0000;font-size:.78rem;font-weight:500;display:inline-flex}.button span:last-child,.project-links a span:last-child,.contact-links a span:last-child{transition:transform var(--transition-fast)}.button:hover span:last-child,.project-links a:hover span:last-child,.contact-links a:hover span:last-child{transform:translate(.2rem,-.2rem)}.button-primary{background:var(--color-cobalt);min-width:13.5rem;color:var(--color-accent-ink)!important}.button-primary:hover{background:var(--color-cobalt-hover)}.button-secondary{background:var(--color-surface);border-color:var(--color-cobalt);color:var(--color-cobalt)!important}.button-secondary:hover{background:var(--color-cobalt-soft)}.hero-showcase{min-height:38rem;animation:.9s cubic-bezier(.22,1,.36,1) .18s both reveal-up;position:relative}.hero-frame{border:1px solid var(--color-line-strong);border-radius:var(--radius-media);background:var(--color-surface);box-shadow:var(--shadow-media);transition:border-color var(--transition-fast);display:block;position:absolute;overflow:hidden}.hero-frame:hover,.hero-frame:focus-visible{z-index:3;border-color:var(--color-cobalt)}.hero-frame img{object-fit:cover;width:100%;height:100%;display:block}.hero-frame>span{padding:var(--space-3) var(--space-4);background:var(--color-surface);border-top:1px solid var(--color-line);color:var(--color-ink);font-family:var(--font-display);justify-content:space-between;align-items:center;font-weight:600;display:flex;position:absolute;bottom:0;left:0;right:0}.hero-frame small{color:var(--color-muted);font-family:var(--font-body);letter-spacing:.08em;text-transform:uppercase;font-size:.65rem;font-weight:400}.hero-frame-primary{width:85%;height:63%;top:0;right:0}.hero-frame-secondary{width:76%;height:56%;bottom:0;left:0}.hero-index{right:var(--page-gutter);bottom:var(--space-5);left:var(--page-gutter);padding-top:var(--space-4);gap:var(--space-4);border-top:1px solid var(--color-line-strong);color:var(--color-muted);font-family:var(--font-body);letter-spacing:.04em;text-transform:uppercase;grid-template-columns:1fr 1fr auto;font-size:.68rem;display:grid;position:absolute}.work-section{width:min(100%, calc(var(--page-width) + (var(--page-gutter) * 2)));padding:var(--space-28) var(--page-gutter) 0;border-top:1px solid var(--color-line-strong);margin:0 auto}.section-intro{margin-bottom:var(--space-20);gap:var(--space-12);grid-template-columns:minmax(0,1fr);align-items:end;display:grid}.section-intro h2,.capabilities h2,.about-section h2,.contact-section h2{color:var(--color-ink);font-family:var(--font-display);letter-spacing:-.065em;overflow-wrap:anywhere;min-width:0;margin-bottom:0;font-size:clamp(2.8rem,5.5vw,6.2rem);font-weight:600;line-height:.94}.section-intro>p{max-width:58ch;color:var(--color-muted);margin:0;font-size:1.05rem}.project-list{border-top:1px solid var(--color-line-strong)}.project{padding:clamp(var(--space-12), 5vw, var(--space-20)) 0;gap:clamp(var(--space-10), 6vw, var(--space-24));border-bottom:1px solid var(--color-line-strong);grid-template-columns:minmax(0,1.25fr) minmax(18rem,.75fr);align-items:center;display:grid}.project:nth-child(2n){grid-template-columns:minmax(18rem,.75fr) minmax(0,1.25fr)}.project:nth-child(2n) .project-media{grid-column:2}.project:nth-child(2n) .project-copy{grid-area:1/1}.project-media{aspect-ratio:16/10;border:1px solid var(--color-line-strong);border-radius:var(--radius-media);background:var(--color-surface-subtle);box-shadow:var(--shadow-media);transition:border-color var(--transition-fast);display:block;position:relative;overflow:hidden}.project-media img{object-fit:cover;width:100%;height:100%;transition:transform var(--transition-smooth);display:block}.project-media:hover,.project-media:focus-visible{border-color:var(--color-cobalt)}.project-media:hover img,.project-media:focus-visible img{transform:scale(1.008)}.media-action{right:var(--space-3);bottom:var(--space-3);padding:var(--space-2) var(--space-3);align-items:center;gap:var(--space-5);border:1px solid var(--color-line);border-radius:var(--radius-control);background:var(--color-surface);color:var(--color-ink);font-family:var(--font-body);font-size:.7rem;display:flex;position:absolute}.project-copy{max-width:58ch}.project-number,.project-stack{color:var(--color-muted);letter-spacing:.04em;font-size:.72rem}.project-number{margin-bottom:var(--space-4);font-family:var(--font-mono)}.project-copy h3{margin-bottom:var(--space-5);color:var(--color-ink);font-family:var(--font-display);letter-spacing:-.05em;overflow-wrap:anywhere;min-width:0;font-size:clamp(2rem,3.2vw,3.5rem);font-weight:600;line-height:1}.project-copy>p:not(.project-number):not(.project-stack){margin-bottom:var(--space-5);font-size:1.02rem}.project-stack{margin-bottom:var(--space-8)}.project-links,.contact-links{border-top:1px solid var(--color-line);display:grid}.project-links a,.contact-links a{border-bottom:1px solid var(--color-line);min-height:3.5rem;color:var(--color-cobalt);font-family:var(--font-body);white-space:nowrap;transition:color var(--transition-fast);justify-content:space-between;align-items:center;font-size:.78rem;font-weight:500;line-height:1;display:flex}.project-links a:hover,.contact-links a:hover{color:var(--color-cobalt-hover)}.capabilities{margin-top:var(--space-28);padding:var(--space-28) var(--page-gutter);background:var(--color-graphite);color:var(--color-on-dark-muted)}.capabilities-inner{width:min(100%, var(--page-width));margin:0 auto}.capabilities .eyebrow{color:var(--color-on-dark-muted)}.capabilities h2{margin-bottom:var(--space-16);color:var(--color-on-dark)}.capability-list{border-top:1px solid var(--color-dark-line)}.capability-list a{min-height:7rem;padding:var(--space-5) 0;gap:var(--space-6);border-bottom:1px solid var(--color-dark-line);white-space:nowrap;transition:background var(--transition-fast);grid-template-columns:4rem .8fr 1.2fr auto;align-items:center;line-height:1;display:grid}.capability-list a:hover{background:var(--color-graphite-raised)}.capability-list strong{color:var(--color-on-dark);font-family:var(--font-display);font-size:clamp(1.2rem,2vw,1.7rem);font-weight:500}.capability-list span:not(.capability-number){font-family:var(--font-body);font-size:.84rem}.capability-number{color:var(--color-cobalt);font-family:var(--font-body);font-size:.72rem}.capability-list b{color:var(--color-on-dark-muted);transition:transform var(--transition-fast), color var(--transition-fast);font-size:1.25rem;font-weight:400}.capability-list a:hover b{color:var(--color-on-dark);transform:translate(.2rem,-.2rem)}.about-section,.contact-section,.site-footer{width:min(100%, calc(var(--page-width) + (var(--page-gutter) * 2)));padding-right:var(--page-gutter);padding-left:var(--page-gutter);margin:0 auto}.about-section{padding-top:var(--space-28);padding-bottom:var(--space-28)}.about-grid,.contact-grid{gap:clamp(var(--space-10), 8vw, var(--space-28));grid-template-columns:1.1fr .9fr;display:grid}.about-section h2,.contact-section h2{overflow-wrap:anywhere;min-width:0;font-size:clamp(2.6rem,4.8vw,5.4rem)}.about-grid>div{max-width:64ch}.about-grid>div p{font-size:clamp(1.05rem,1.5vw,1.2rem)}.about-grid>div p:last-child{color:var(--color-muted);margin-bottom:0}.contact-section{padding-top:var(--space-16);padding-bottom:var(--space-24);border-top:1px solid var(--color-line-strong)}.contact-grid{align-items:end}.contact-links a{min-height:4rem;font-size:.9rem}.site-footer{padding-top:var(--space-10);padding-bottom:var(--space-10);border-top:1px solid var(--color-line-strong)}.site-footer>p{margin-bottom:var(--space-16);color:var(--color-ink);font-family:var(--font-display);letter-spacing:-.07em;overflow-wrap:anywhere;min-width:0;font-size:clamp(2.8rem,6.8vw,7.5rem);font-weight:600;line-height:.92}.site-footer>p span{color:var(--color-cobalt)}.site-footer>div{align-items:center;gap:var(--space-8);color:var(--color-muted);font-family:var(--font-body);font-size:.72rem;display:flex}.site-footer>div span{margin-right:auto}.site-footer a{border-bottom:1px solid var(--color-line-strong);color:var(--color-body);white-space:nowrap;line-height:1}.command-dialog{width:min(calc(100% - (var(--space-8) * 2)), 43rem);max-height:min(48rem, calc(100dvh - (var(--space-8) * 2)));border-radius:var(--radius-panel);color:var(--color-body);background:0 0;border:0;padding:0;overflow:visible}.command-dialog::backdrop{background:var(--color-backdrop)}.command-panel{max-height:min(48rem, calc(100dvh - (var(--space-8) * 2)));padding:var(--space-6);border:1px solid var(--color-line-strong);border-radius:var(--radius-panel);background:var(--color-surface);box-shadow:var(--shadow-media);overflow-y:auto}.command-dialog[open] .command-panel{animation:.22s cubic-bezier(.22,1,.36,1) both panel-in}.command-heading{margin-bottom:var(--space-5);justify-content:space-between;align-items:flex-start;gap:var(--space-4);display:flex}.command-heading .eyebrow{margin-bottom:var(--space-2)}.command-heading .command-title{color:var(--color-ink);font-family:var(--font-display);letter-spacing:-.04em;margin:0;font-size:1.75rem}.icon-button{border:1px solid var(--color-line);border-radius:var(--radius-control);background:var(--color-surface);width:2.5rem;height:2.5rem;color:var(--color-body);cursor:pointer;place-items:center;padding:0;font-size:1.5rem;line-height:1;display:grid}.icon-button:hover{border-color:var(--color-cobalt);color:var(--color-cobalt)}.command-search{height:3.5rem;padding:0 var(--space-4);align-items:center;gap:var(--space-3);border:1px solid var(--color-line-strong);border-radius:var(--radius-control);background:var(--color-paper);color:var(--color-muted);display:flex}.command-search:focus-within{border-color:var(--color-cobalt);box-shadow:0 0 0 4px var(--color-focus-ring)}.command-search input{width:100%;color:var(--color-ink);outline-offset:1px;background:0 0;border:0;outline:2px solid #0000}.command-search input:focus-visible{outline:2px solid var(--color-cobalt);outline-offset:1px;box-shadow:none}.command-search input::placeholder{color:var(--color-faint)}.result-count{margin:var(--space-3) 0 var(--space-2);color:var(--color-muted);font-family:var(--font-body);text-transform:uppercase;font-size:.66rem}.command-results{border-top:1px solid var(--color-line)}.command-results a{min-height:4.25rem;padding:var(--space-3);border-bottom:1px solid var(--color-line);color:var(--color-ink);white-space:nowrap;transition:background var(--transition-fast), color var(--transition-fast);justify-content:space-between;align-items:center;line-height:1;display:flex}.command-results a.is-selected{background:var(--color-cobalt-soft);color:var(--color-cobalt-hover)}.command-results a span:first-child{gap:var(--space-1);font-family:var(--font-display);font-weight:600;display:grid}.command-results a small{color:var(--color-muted);font-family:var(--font-body);letter-spacing:.08em;text-transform:uppercase;font-size:.62rem;font-weight:400}.empty-state{padding:var(--space-8) var(--space-3);border-bottom:1px solid var(--color-line);color:var(--color-muted);text-align:center}.command-hint{padding-top:var(--space-4);gap:var(--space-4);color:var(--color-muted);font-family:var(--font-body);font-size:.62rem;display:flex}@keyframes reveal-up{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}@keyframes panel-in{0%{opacity:0;transform:translateY(.5rem)scale(.99)}to{opacity:1;transform:translateY(0)scale(1)}}@media (width<=68rem){.primary-nav>a{display:none}.hero{gap:var(--space-8);grid-template-columns:minmax(19rem,.85fr) minmax(28rem,1.15fr)}.hero h1{font-size:clamp(3.6rem,7vw,5.8rem)}}@media (width<=52rem){.site-header{margin-top:var(--space-3)}.command-trigger{justify-content:center;width:2.75rem;min-width:2.75rem}.command-trigger span,.command-trigger kbd{display:none}.hero{min-height:auto;padding-top:var(--space-20);padding-bottom:var(--space-20);gap:var(--space-16);grid-template-columns:minmax(0,1fr)}.hero-copy{max-width:40rem}.hero h1{font-size:clamp(4rem,13vw,6.5rem)}.hero-showcase{min-height:34rem}.hero-index{display:none}.section-intro,.about-grid,.contact-grid{grid-template-columns:minmax(0,1fr)}.section-intro>p{margin-left:0}.project,.project:nth-child(2n){gap:var(--space-8);grid-template-columns:minmax(0,1fr)}.project:nth-child(2n) .project-media,.project:nth-child(2n) .project-copy{grid-area:auto}.project-copy{max-width:42rem}.capability-list a{grid-template-columns:2.5rem 1fr auto}.capability-list span:not(.capability-number){grid-area:2/2}.capability-list b{grid-area:1/3/span 2}}@media (width<=34rem){.site-header{width:calc(100% - (var(--space-4) * 2));min-height:4.25rem;margin-top:var(--space-2);padding:var(--space-2) var(--space-3)}.hero{padding-top:var(--space-16);gap:var(--space-12)}.hero h1{margin-bottom:var(--space-6);font-size:clamp(2.8rem,14.5vw,4.6rem);line-height:.91}.hero-summary{margin-bottom:var(--space-6)}.hero-actions{display:grid}.button{width:100%}.hero-showcase{min-height:26rem}.hero-frame-primary{width:92%;height:58%}.hero-frame-secondary{width:88%;height:52%}.hero-frame>span{font-size:.85rem}.hero-frame small{display:none}.work-section,.about-section,.contact-section{padding-top:var(--space-20)}.section-intro{margin-bottom:var(--space-12);gap:var(--space-6)}.project{padding:var(--space-12) 0}.media-action{right:var(--space-2);bottom:var(--space-2)}.capabilities{margin-top:var(--space-20);padding-top:var(--space-20);padding-bottom:var(--space-20)}.capability-list a{min-height:8rem}.site-footer>div{align-items:flex-start;gap:var(--space-3);flex-direction:column}.site-footer>div span{margin-bottom:var(--space-3)}.command-dialog{width:calc(100% - (var(--space-4) * 2));max-height:calc(100dvh - (var(--space-4) * 2))}.command-panel{max-height:calc(100dvh - (var(--space-4) * 2));padding:var(--space-4)}.command-hint{display:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
