@font-face{font-family:outfit;src:url(../media/outfit_v15_latin_regular-s.p.0qc9jx-02bjhr.woff2)format("woff2");font-display:swap;font-weight:400;font-style:normal}@font-face{font-family:outfit;src:url(../media/outfit_v15_latin_500-s.p.3r7bui-qf0qs6.woff2)format("woff2");font-display:swap;font-weight:500;font-style:normal}@font-face{font-family:outfit;src:url(../media/outfit_v15_latin_600-s.p.3s68twez8chh7.woff2)format("woff2");font-display:swap;font-weight:600;font-style:normal}@font-face{font-family:outfit;src:url(../media/outfit_v15_latin_700-s.p.0w3yrtx4-qwen.woff2)format("woff2");font-display:swap;font-weight:700;font-style:normal}@font-face{font-family:outfit;src:url(../media/outfit_v15_latin_800-s.p.0pht_-lyz8t7b.woff2)format("woff2");font-display:swap;font-weight:800;font-style:normal}@font-face{font-family:outfit Fallback;src:local(Arial);ascent-override:99.94%;descent-override:25.98%;line-gap-override:0.0%;size-adjust:100.06%}.outfit_56ab40bd-module__hvZyeW__className{font-family:outfit,outfit Fallback}.outfit_56ab40bd-module__hvZyeW__variable{--font-outfit:"outfit", "outfit Fallback"}
@font-face{font-family:jetbrainsMono;src:url(../media/jetbrains_mono_v24_latin_regular-s.p.3crsbyy6lh6yf.woff2)format("woff2");font-display:swap;font-weight:400;font-style:normal}@font-face{font-family:jetbrainsMono;src:url(../media/jetbrains_mono_v24_latin_500-s.p.2h52d08o60qht.woff2)format("woff2");font-display:swap;font-weight:500;font-style:normal}@font-face{font-family:jetbrainsMono;src:url(../media/jetbrains_mono_v24_latin_600-s.p.2mm922pe315l1.woff2)format("woff2");font-display:swap;font-weight:600;font-style:normal}@font-face{font-family:jetbrainsMono Fallback;src:local(Arial);ascent-override:77.57%;descent-override:22.82%;line-gap-override:0.0%;size-adjust:131.49%}.jetbrainsmono_f7441a9c-module__vqqvUG__className{font-family:jetbrainsMono,jetbrainsMono Fallback}.jetbrainsmono_f7441a9c-module__vqqvUG__variable{--font-jetbrains:"jetbrainsMono", "jetbrainsMono Fallback"}
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.static{position:static}.block{display:block}.hidden{display:none}.inline{display:inline}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{--bg:#0d0d0d;--bg-2:#121212;--surface:#0f1923;--surface-2:#1a1a2e;--sage:#9cb080;--olive:#859f3d;--forest:#31511e;--teal:#3bacb6;--text:#e8e8e8;--white:#fff;--muted:#e8e8e89e;--faint:#e8e8e86b;--line:#ffffff14;--line-2:#ffffff0a;--teal-glow:#3bacb64d;--maxw:1200px;--pad:clamp(20px, 5vw, 64px);--font:var(--font-outfit), "Outfit", system-ui, -apple-system, sans-serif;--mono:var(--font-jetbrains), "JetBrains Mono", ui-monospace, "SF Mono", monospace;--ease:cubic-bezier(.22, .61, .36, 1)}*{box-sizing:border-box;margin:0;padding:0}[hidden]{display:none!important}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;line-height:1.65;overflow-x:hidden}body:before{content:"";z-index:-2;background:radial-gradient(1100px 700px at 78% -8%, #3bacb61a, transparent 60%), radial-gradient(900px 600px at 8% 12%, #31511e38, transparent 55%), radial-gradient(1200px 900px at 50% 120%, #1a1a2e8c, transparent 60%), var(--bg);position:fixed;inset:0}body:after{content:"";z-index:-1;pointer-events:none;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.wrap{max-width:var(--maxw);padding-inline:var(--pad);margin:0 auto}.eyebrow{font-family:var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--teal);align-items:center;gap:10px;font-size:12.5px;display:inline-flex}.eyebrow:before{content:"";background:var(--olive);width:26px;height:1px}.section{padding-block:clamp(80px,11vw,140px);position:relative}.section-head{margin-bottom:clamp(40px,6vw,64px)}.section-head h2{letter-spacing:-.02em;color:var(--white);text-wrap:balance;margin-top:16px;font-size:clamp(30px,5vw,52px);font-weight:700;line-height:1.05}.section-head p{color:var(--muted);max-width:56ch;margin-top:14px;font-size:17px}.reveal{opacity:0;transition:opacity .7s var(--ease), transform .7s var(--ease);transform:translateY(26px)}.reveal.in{opacity:1;transform:none}.reveal[data-d="1"]{transition-delay:80ms}.reveal[data-d="2"]{transition-delay:.16s}.reveal[data-d="3"]{transition-delay:.24s}.reveal[data-d="4"]{transition-delay:.32s}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transition:none;transform:none}}.nav{z-index:100;transition:background .4s var(--ease), border-color .4s var(--ease), backdrop-filter .4s;border-bottom:1px solid #0000;position:fixed;inset:0 0 auto}.nav.scrolled{-webkit-backdrop-filter:blur(14px)saturate(140%);backdrop-filter:blur(14px)saturate(140%);border-bottom-color:var(--line);background:#0d0d0db8}.nav .wrap{justify-content:space-between;align-items:center;height:72px;display:flex}.logo{align-items:center;gap:11px;font-weight:700;display:flex}.logo .mono-mark{border:1px solid var(--teal);width:38px;height:38px;color:var(--teal);font-family:var(--mono);letter-spacing:.04em;background:linear-gradient(140deg,#3bacb624,#0000);border-radius:9px;place-items:center;font-size:15px;font-weight:700;display:grid}.logo .logo-name{color:var(--white);font-size:15.5px}.logo .logo-name span{color:var(--faint);font-weight:400}.nav-links{align-items:center;gap:6px;display:flex}.nav-links a{color:var(--muted);border-radius:8px;padding:9px 14px;font-size:14.5px;transition:color .25s,background .25s}.nav-links a:hover{color:var(--white);background:#ffffff0a}.btn{font-family:var(--font);cursor:pointer;transition:transform .2s var(--ease), box-shadow .25s, background .25s, border-color .25s, color .25s;white-space:nowrap;border:1px solid #0000;border-radius:10px;align-items:center;gap:9px;padding:11px 20px;font-size:14.5px;font-weight:600;display:inline-flex}.btn-primary{background:var(--teal);color:#04181a;box-shadow:0 6px 22px -8px var(--teal-glow)}.btn-primary:hover{box-shadow:0 12px 30px -8px var(--teal-glow);transform:translateY(-2px)}.btn-ghost{color:var(--text);border-color:var(--line);background:0 0}.btn-ghost:hover{border-color:var(--teal);color:var(--white);transform:translateY(-2px)}.nav-cta{display:inline-flex}.burger{border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:9px;width:42px;height:42px;display:none;position:relative}.burger span{background:var(--text);height:1.6px;transition:transform .3s var(--ease), opacity .2s;position:absolute;left:11px;right:11px}.burger span:first-child{top:15px}.burger span:nth-child(2){top:20px}.burger span:nth-child(3){top:25px}body.menu-open .burger span:first-child{transform:translateY(5px)rotate(45deg)}body.menu-open .burger span:nth-child(2){opacity:0}body.menu-open .burger span:nth-child(3){transform:translateY(-5px)rotate(-45deg)}.mobile-menu{z-index:90;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:var(--pad);opacity:0;pointer-events:none;transition:opacity .35s var(--ease), transform .35s var(--ease);background:#0a0a0af5;flex-direction:column;justify-content:center;gap:8px;display:flex;position:fixed;inset:0;transform:translateY(-12px)}body.menu-open .mobile-menu{opacity:1;pointer-events:auto;transform:none}.mobile-menu a{color:var(--white);border-bottom:1px solid var(--line);align-items:center;gap:14px;padding:12px 0;font-size:30px;font-weight:700;display:flex}.mobile-menu a .idx{font-family:var(--mono);color:var(--teal);font-size:13px;font-weight:400}.mobile-menu .btn{justify-content:center;margin-top:28px;padding:16px;font-size:17px}.hero{align-items:center;min-height:100svh;padding-top:72px;display:flex;position:relative;overflow:hidden}#mesh{z-index:0;position:absolute;inset:0}.hero:after{content:"";z-index:1;pointer-events:none;background:linear-gradient(180deg, transparent 40%, #0d0d0d66 78%, var(--bg) 100%);position:absolute;inset:0}.hero .wrap{z-index:2;width:100%;position:relative}.hero-status{font-family:var(--mono);color:var(--sage);border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0f192380;border-radius:100px;align-items:center;gap:9px;padding:7px 14px;font-size:12.5px;display:inline-flex}.dot{background:var(--teal);border-radius:50%;width:7px;height:7px;position:relative}.dot:after{content:"";background:var(--teal);opacity:.5;animation:pulse 2.4s var(--ease) infinite;border-radius:50%;position:absolute;inset:-4px}@keyframes pulse{50%{opacity:.5}}.hero h1{letter-spacing:-.03em;color:var(--white);text-wrap:balance;max-width:17ch;margin:26px 0 0;font-size:clamp(38px,7.4vw,84px);font-weight:700;line-height:1.02}.hero h1 .hl{color:var(--teal)}.hero-lead{max-width:56ch;color:var(--sage);text-wrap:pretty;margin-top:22px;font-size:clamp(17px,2.05vw,22px);font-weight:400;line-height:1.5}.hero-lead b{color:var(--white);font-weight:600}.hero .sub{font-family:var(--mono);color:var(--sage);letter-spacing:.01em;flex-wrap:wrap;gap:8px 14px;margin-top:24px;font-size:clamp(13px,1.7vw,16px);display:flex}.hero .sub span{white-space:nowrap}.hero .sub span+span:before{content:"|";color:var(--faint);margin-right:14px}.hero-cta{flex-wrap:wrap;gap:14px;margin-top:38px;display:flex}.ticker{z-index:2;border-top:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0d0d0d8c;position:absolute;bottom:0;left:0;right:0}.ticker .wrap{flex-wrap:wrap;gap:0;display:flex}.ticker .stat{border-left:1px solid var(--line-2);flex-direction:column;flex:1 1 0;gap:2px;min-width:150px;padding:20px 8px;display:flex}.ticker .stat:first-child{border-left:none}.ticker .stat b{color:var(--white);letter-spacing:-.01em;font-size:clamp(22px,3vw,30px);font-weight:700}.ticker .stat b em{color:var(--teal);font-style:normal}.ticker .stat .lbl{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--faint);font-size:11.5px}.scroll-cue{z-index:3;color:var(--faint);place-items:center;gap:8px;display:grid;position:absolute;bottom:96px;left:50%;transform:translate(-50%)}.scroll-cue .mouse{border:1.5px solid var(--line);border-radius:12px;width:22px;height:36px;position:relative}.scroll-cue .mouse:after{content:"";background:var(--teal);width:3px;height:7px;animation:wheel 1.8s var(--ease) infinite;border-radius:2px;position:absolute;top:7px;left:50%;transform:translate(-50%)}@keyframes wheel{0%{opacity:0;transform:translate(-50%)}30%{opacity:1}to{opacity:0;transform:translate(-50%,10px)}}.about-grid{grid-template-columns:.85fr 1.15fr;align-items:center;gap:clamp(36px,6vw,80px);display:grid}.brand-art{aspect-ratio:1;background:linear-gradient(155deg, var(--surface) 0%, var(--surface-2) 70%, #0a0f16 100%);border:1px solid var(--line);border-radius:20px;place-items:center;display:grid;position:relative;overflow:hidden}.brand-art canvas{z-index:0;width:100%;height:100%;display:block;position:absolute;inset:0}.brand-art .mono-big{z-index:1;font-family:var(--mono);color:var(--white);letter-spacing:.02em;text-shadow:0 0 40px #3bacb659;place-items:center;font-size:clamp(70px,13vw,150px);font-weight:700;display:grid;position:absolute;inset:0}.brand-art img{z-index:0}.brand-art:after{content:"";z-index:1;pointer-events:none;background:linear-gradient(160deg,#0000 48%,#0d0d0d80);position:absolute;inset:0}.brand-art .corner{z-index:2;font-family:var(--mono);color:var(--faint);letter-spacing:.1em;text-shadow:0 1px 6px #0009;font-size:11px;position:absolute}.brand-art .corner.tl{top:16px;left:18px}.brand-art .corner.br{color:var(--teal);bottom:16px;right:18px}.about-bio .lead{color:var(--white);letter-spacing:-.01em;text-wrap:pretty;font-size:clamp(20px,2.6vw,27px);font-weight:600;line-height:1.4}.about-bio .lead b{color:var(--teal);font-weight:600}.about-bio p{color:var(--muted);max-width:58ch;margin-top:18px;font-size:17px}.badges{flex-wrap:wrap;gap:10px;margin-top:30px;display:flex}.badge{border:1px solid var(--line);color:var(--text);background:#0f192366;border-radius:100px;align-items:center;gap:9px;padding:9px 15px;font-size:13.5px;transition:border-color .25s,transform .25s;display:inline-flex}.badge:hover{border-color:var(--olive);transform:translateY(-2px)}.badge .b-dot{background:var(--olive);border-radius:2px;width:8px;height:8px}.about-meta{border-top:1px solid var(--line);flex-wrap:wrap;gap:26px;margin-top:34px;padding-top:26px;display:flex}.about-meta div{flex-direction:column;display:flex}.about-meta .k{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--faint);font-size:11px}.about-meta .v{color:var(--white);margin-top:3px;font-size:16px;font-weight:600}.projects-grid{grid-template-columns:1fr 1fr;gap:22px;display:grid}.proj-featured{grid-column:1/-1}.card{border:1px solid var(--line);transition:border-color .35s var(--ease), box-shadow .35s var(--ease);transform-style:preserve-3d;will-change:transform;background:linear-gradient(160deg,#0f1923eb,#0d0d0deb);border-radius:18px;padding:clamp(24px,3vw,36px);position:relative;overflow:hidden}.card:before{content:"";border-radius:inherit;pointer-events:none;background:radial-gradient(420px 320px at var(--mx,70%) var(--my,0%), #3bacb61f, transparent 60%);opacity:0;transition:opacity .35s;position:absolute;inset:0}.card:hover{border-color:#3bacb673;box-shadow:0 26px 60px -28px #000c,0 0 0 1px #3bacb61f}.card:hover:before{opacity:1}.card>*{transform:translateZ(40px)}.card .ctx{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--sage);align-items:center;gap:8px;font-size:12px;display:inline-flex}.card .ctx:before{content:"";background:var(--olive);border-radius:50%;width:6px;height:6px}.card h3{color:var(--white);letter-spacing:-.01em;margin:14px 0 0;font-size:clamp(21px,2.4vw,28px);font-weight:700;line-height:1.12}.card .desc{color:var(--muted);max-width:52ch;margin-top:12px;font-size:15.5px}.metric{align-items:baseline;gap:10px;margin-top:22px;display:flex}.metric .big{color:var(--teal);letter-spacing:-.02em;font-size:clamp(30px,4vw,46px);font-weight:700;line-height:1}.metric .small{color:var(--muted);font-size:14px}.proj-featured .metric-row{flex-wrap:wrap;gap:36px;margin-top:24px;display:flex}.proj-featured .metric-row .metric{margin-top:0}.stack{flex-wrap:wrap;gap:8px;margin-top:24px;display:flex}.pill{font-family:var(--mono);color:var(--text);border:1px solid var(--line);background:#859f3d14;border-radius:7px;padding:6px 11px;font-size:12px}.card .view{color:var(--teal);cursor:pointer;align-items:center;gap:8px;margin-top:22px;font-size:14px;font-weight:600;display:inline-flex}.card .view svg{transition:transform .25s var(--ease)}.card:hover .view svg{transform:translate(4px)}.proj-featured .featured-inner{grid-template-columns:1.3fr 1fr;align-items:center;gap:clamp(28px,4vw,56px);display:grid}.featured-visual{aspect-ratio:16/11;border:1px solid var(--line);background:linear-gradient(135deg, #3bacb60f, transparent), repeating-linear-gradient(135deg, #ffffff06 0 2px, transparent 2px 11px), var(--surface);border-radius:14px;place-items:center;display:grid;position:relative;overflow:hidden}.featured-visual .fv-label{font-family:var(--mono);color:var(--faint);letter-spacing:.14em;text-transform:uppercase;font-size:12px}.featured-tag{font-family:var(--mono);color:var(--teal);letter-spacing:.1em;text-transform:uppercase;z-index:2;background:#3bacb614;border:1px solid #3bacb666;border-radius:100px;padding:5px 12px;font-size:11px;position:absolute;top:16px;left:16px}.featured-visual.has-img{background:var(--surface)}.featured-visual.has-img img{z-index:0}.featured-visual.has-img:after{content:"";z-index:1;pointer-events:none;background:linear-gradient(160deg,#0000 55%,#0d0d0d73);position:absolute;inset:0}.skill-groups{grid-template-columns:repeat(2,1fr);gap:18px;display:grid}.skill-cat{border:1px solid var(--line);background:#0f192366;border-radius:16px;padding:26px;transition:border-color .3s}.skill-cat:hover{border-color:var(--line)}.skill-cat h4{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--teal);align-items:center;gap:10px;margin-bottom:16px;font-size:12.5px;display:flex}.skill-cat h4 .n{color:var(--faint);margin-left:auto}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{cursor:default;color:var(--text);background:#859f3d1a;border:1px solid #859f3d4d;border-radius:8px;padding:8px 13px;font-size:13.5px;transition:background .2s,border-color .2s,transform .2s,color .2s}.chip:hover{border-color:var(--sage);color:var(--white);background:#9cb08033;transform:translateY(-2px)}.timeline{padding-left:34px;position:relative}.timeline:before{content:"";background:linear-gradient(var(--teal), var(--olive), var(--forest));opacity:.5;width:1px;position:absolute;top:6px;bottom:6px;left:7px}.tl-item{padding-bottom:46px;position:relative}.tl-item:last-child{padding-bottom:0}.tl-item:before{content:"";background:var(--bg);border:2px solid var(--olive);border-radius:50%;width:15px;height:15px;position:absolute;top:6px;left:-34px;transform:translate(0)}.tl-item.current:before{border-color:var(--teal);box-shadow:0 0 0 4px #3bacb626}.tl-item.current:after{content:"";border:2px solid var(--teal);width:15px;height:15px;animation:ring 2.2s var(--ease) infinite;border-radius:50%;position:absolute;top:6px;left:-34px}@keyframes ring{0%{opacity:.8;transform:scale(1)}to{opacity:0;transform:scale(2.4)}}.tl-top{flex-wrap:wrap;align-items:baseline;gap:8px 14px;display:flex}.tl-top .role{color:var(--white);letter-spacing:-.01em;font-size:20px;font-weight:700}.tl-top .at{color:var(--teal);font-size:16px;font-weight:600}.tl-badge{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--teal);background:#3bacb614;border:1px solid #3bacb666;border-radius:100px;padding:3px 10px;font-size:10.5px}.tl-meta{font-family:var(--mono);color:var(--faint);flex-wrap:wrap;gap:6px 16px;margin-top:6px;font-size:12.5px;display:flex}.tl-body{gap:8px;margin-top:14px;display:grid}.tl-body li{color:var(--muted);padding-left:20px;font-size:15.5px;list-style:none;position:relative}.tl-body li:before{content:"";background:var(--olive);width:7px;height:1.5px;position:absolute;top:10px;left:2px}.impact-layout{margin-top:8px}.map-panel{aspect-ratio:2;border:1px solid var(--line);background:radial-gradient(circle, #9cb08029 1px, transparent 1.6px) -8px -8px / 28px 28px, radial-gradient(760px 460px at 52% 46%, #3bacb612, transparent 70%), linear-gradient(180deg, #1a1a2e80, var(--surface));border-radius:20px;position:relative;overflow:hidden}.map-arcs{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.map-arcs .arc{stroke-dasharray:5 8;opacity:.55;animation:16s linear infinite arcflow}@media (prefers-reduced-motion:reduce){.map-arcs .arc{animation:none}}@keyframes arcflow{to{stroke-dashoffset:-260px}}.pin{cursor:pointer;z-index:2;background:0 0;border:0;padding:0;position:absolute;transform:translate(-50%,-50%)}.pin-dot{background:var(--teal);z-index:2;width:12px;height:12px;transition:transform .2s var(--ease);border-radius:50%;display:block;position:relative;box-shadow:0 0 0 4px #3bacb629,0 0 16px #3bacb699}.pin-ring{border:1.5px solid var(--teal);width:12px;height:12px;animation:pinpulse 2.4s var(--ease) infinite;border-radius:50%;margin-top:-6px;margin-left:-6px;position:absolute;top:6px;left:50%}@media (prefers-reduced-motion:reduce){.pin-ring{opacity:.4;animation:none}}@keyframes pinpulse{0%{opacity:.8;transform:scale(1)}to{opacity:0;transform:scale(3.4)}}.pin-label{white-space:nowrap;font-family:var(--mono);letter-spacing:.08em;color:var(--sage);font-size:11px;transition:color .2s;position:absolute;top:calc(100% + 7px);left:50%;transform:translate(-50%)}.pin:hover{z-index:6}.pin:hover .pin-dot,.pin.active .pin-dot{transform:scale(1.25)}.pin:hover .pin-label,.pin.active .pin-label{color:var(--white)}.pin.active .pin-dot{box-shadow:0 0 0 5px #3bacb638,0 0 22px #3bacb6cc}.pin-card{text-align:left;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:0;pointer-events:none;z-index:7;background:#12121ef5;border:1px solid #3bacb64d;border-radius:14px;gap:7px;width:252px;padding:16px 18px;transition:opacity .25s,transform .25s;display:grid;position:absolute;bottom:calc(100% + 16px);left:50%;transform:translate(-50%,8px);box-shadow:0 24px 50px -22px #000000d9}.pin-card:after{content:"";border:7px solid #0000;border-top-color:#3bacb64d;position:absolute;top:100%;left:50%;transform:translate(-50%)}.pin:hover .pin-card,.pin:focus-visible .pin-card,.pin.active .pin-card{opacity:1;pointer-events:auto;transform:translate(-50%)}.pc-flag{font-size:22px;line-height:1}.pc-name{color:var(--white);font-size:16px;font-weight:700}.pc-name em{color:var(--sage);font-size:13px;font-style:normal;font-weight:500}.pc-projects{color:var(--teal);font-size:13px;font-weight:500;line-height:1.45}.pc-tags{flex-wrap:wrap;gap:6px;display:flex}.pc-metric{color:var(--muted);font-size:12.5px;line-height:1.5}.st{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;border-radius:100px;padding:3px 8px;font-size:10px}.st.gov{color:var(--olive);background:#859f3d1a;border:1px solid #859f3d66}.st.health{color:var(--teal);background:#3bacb61a;border:1px solid #3bacb666}.st.edu{color:var(--sage);background:#9cb0801a;border:1px solid #9cb08066}.map-hint{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--faint);font-size:11px;position:absolute;bottom:14px;right:16px}.map-stack{display:none}.country-card{border:1px solid var(--line);background:#0f192380;border-radius:14px;align-items:flex-start;gap:14px;padding:18px;display:flex}.country-card+.country-card{margin-top:12px}.country-card .cc-flag{font-size:26px;line-height:1}.country-card h4{color:var(--white);align-items:baseline;gap:8px;font-size:17px;display:flex}.country-card .cc-sub{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--sage);font-size:10px}.country-card p{color:var(--teal);margin-top:3px;font-size:13.5px}.country-card .cc-tags{gap:6px;margin-top:8px;display:flex}.country-card .cc-metric{color:var(--muted);margin-top:8px;font-size:12.5px;display:block}.impact-stats{border:1px solid var(--line);border-radius:14px;flex-wrap:wrap;margin-top:26px;display:flex;overflow:hidden}.impact-stats .is{border-left:1px solid var(--line-2);flex-direction:column;flex:1 1 0;gap:3px;min-width:120px;padding:22px 16px;display:flex}.impact-stats .is:first-child{border-left:0}.impact-stats .is b{color:var(--teal);letter-spacing:-.01em;font-size:clamp(24px,3.4vw,34px);font-weight:700}.impact-stats .is span{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--faint);font-size:11.5px}.contact .section-head{text-align:center}.contact .section-head .eyebrow{display:inline-flex}.contact .section-head p{margin-left:auto;margin-right:auto}.contact h2{font-size:clamp(34px,5.5vw,60px)}.contact-grid{grid-template-columns:.85fr 1.15fr;align-items:start;gap:clamp(24px,4vw,52px);display:grid}.contact-info{flex-direction:column;gap:24px;padding-top:8px;display:flex}.contact-info .email{color:var(--white);border-bottom:1px solid #0000;align-self:flex-start;align-items:center;gap:11px;font-size:clamp(18px,2.2vw,24px);font-weight:700;transition:color .25s,border-color .25s;display:inline-flex}.contact-info .email:hover{color:var(--teal);border-bottom-color:var(--teal)}.contact-info .socials{gap:12px;display:flex}.contact-info .socials a{border:1px solid var(--line);width:50px;height:50px;color:var(--text);border-radius:12px;place-items:center;transition:border-color .25s,color .25s,transform .25s,background .25s;display:grid}.contact-info .socials a:hover{border-color:var(--teal);color:var(--teal);background:#3bacb60f;transform:translateY(-3px)}.contact-loc{align-items:flex-start;gap:12px;display:flex}.contact-loc .cl-dot{background:var(--teal);border-radius:50%;flex:none;width:9px;height:9px;margin-top:8px;box-shadow:0 0 0 4px #3bacb626}.contact-loc p{color:var(--muted);font-size:15.5px}.contact-loc b{color:var(--text);font-weight:600}.contact-assure{border-top:1px solid var(--line);gap:10px;padding-top:4px;display:grid}.contact-assure li{color:var(--muted);padding-left:24px;font-size:14px;list-style:none;position:relative}.contact-assure li:first-child{padding-top:16px}.contact-assure li:before{content:"";border:1.5px solid var(--olive);border-radius:2px;width:8px;height:8px;position:absolute;top:8px;left:4px}.contact-assure li:first-child:before{top:24px}.contact-assure a{color:var(--teal);border-bottom:1px solid #0000}.contact-assure a:hover{border-bottom-color:var(--teal)}.booking{border:1px solid var(--line);background:linear-gradient(#1a1a2e8c,#0f1923b3);border-radius:18px;overflow:hidden;box-shadow:0 30px 70px -40px #000c}.bk-head{border-bottom:1px solid var(--line);align-items:center;gap:13px;padding:18px 22px;display:flex}.bk-head .mono-mark{border:1px solid var(--teal);width:42px;height:42px;font-family:var(--mono);color:var(--teal);background:#3bacb60f;border-radius:10px;flex:none;place-items:center;font-weight:600;display:grid}.bk-head-txt{flex-direction:column;display:flex}.bk-name{color:var(--white);font-size:16px;font-weight:700}.bk-meta{font-family:var(--mono);color:var(--muted);align-items:center;gap:6px;font-size:12px;display:inline-flex}.bk-meta svg{color:var(--teal)}.bk-tz{font-family:var(--mono);letter-spacing:.06em;color:var(--faint);border:1px solid var(--line);border-radius:100px;margin-left:auto;padding:5px 11px;font-size:11px}.bk-embed{height:640px;padding:10px}.bk-embed>*{border-radius:12px;height:100%}@media (max-width:720px){.bk-embed{height:560px}}.bk-body{grid-template-columns:1fr 168px;gap:22px;padding:22px;display:grid}.bk-cal-head{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.bk-month{color:var(--white);font-size:15px;font-weight:600}.bk-nav{border:1px solid var(--line);width:32px;height:32px;color:var(--text);cursor:pointer;background:0 0;border-radius:9px;font-size:18px;line-height:1;transition:border-color .2s,color .2s,background .2s}.bk-nav:hover:not(:disabled){border-color:var(--teal);color:var(--teal);background:#3bacb60f}.bk-nav:disabled{opacity:.3;cursor:not-allowed}.bk-dow{grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:6px;display:grid}.bk-dow span{text-align:center;font-family:var(--mono);letter-spacing:.05em;color:var(--faint);font-size:10.5px}.bk-days{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.bk-day{aspect-ratio:1;color:var(--text);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:9px;place-items:center;font-size:13.5px;transition:background .15s,border-color .15s,color .15s;display:grid;position:relative}.bk-day.empty{pointer-events:none}.bk-day.disabled{color:var(--faint);opacity:.45;cursor:not-allowed}.bk-day.avail:hover{border-color:var(--sage);color:var(--white);background:#9cb0802e}.bk-day.avail:after{content:"";background:var(--olive);border-radius:50%;width:4px;height:4px;position:absolute;bottom:5px;left:50%;transform:translate(-50%)}.bk-day.selected{background:var(--teal);color:#04181a;border-color:var(--teal);font-weight:700}.bk-day.selected:after{background:#04181a}.bk-slots-wrap{border-left:1px solid var(--line);min-height:220px;padding-left:22px}.bk-slots-label{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--faint);margin-bottom:12px;font-size:11px;display:block}.bk-slots{gap:8px;display:grid}.bk-slot{border:1px solid var(--line);color:var(--text);cursor:pointer;text-align:center;background:0 0;border-radius:10px;padding:11px 12px;font-size:13.5px;font-weight:600;transition:border-color .15s,color .15s,background .15s,transform .15s}.bk-slot:hover{border-color:var(--teal);color:var(--white);background:#3bacb614;transform:translate(2px)}.bk-slots .bk-empty{color:var(--faint);font-size:13px;line-height:1.5}.bk-form{border-top:1px solid var(--line);gap:14px;padding:22px;display:grid}.bk-chosen{font-family:var(--mono);color:var(--teal);background:#3bacb612;border:1px solid #3bacb64d;border-radius:10px;align-items:center;gap:8px;padding:11px 14px;font-size:12.5px;display:flex}.bk-chosen b{color:var(--white);font-weight:600}.bk-field{gap:6px;display:grid}.bk-field span{color:var(--muted);font-size:13px}.bk-field input,.bk-field textarea{font-family:var(--font);color:var(--text);border:1px solid var(--line);resize:vertical;background:#0d0d0d80;border-radius:10px;padding:11px 13px;font-size:14.5px;transition:border-color .2s,background .2s}.bk-field input::placeholder,.bk-field textarea::placeholder{color:var(--faint)}.bk-field input:focus,.bk-field textarea:focus{border-color:var(--teal);background:#3bacb60d;outline:none}.bk-actions{justify-content:flex-end;gap:10px;margin-top:4px;display:flex}.bk-done{text-align:center;justify-items:center;gap:10px;padding:44px 28px;display:grid}.bk-check{background:#3bacb614;border:1.5px solid #3bacb666;border-radius:50%;place-items:center;width:64px;height:64px;margin-bottom:6px;display:grid}.bk-done h4{color:var(--white);font-size:22px}.bk-done p{color:var(--muted);max-width:36ch;font-size:15px}.bk-done .btn{margin-top:10px}.footer{border-top:1px solid var(--line);padding-block:34px}.footer .wrap{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.footer .f-left{color:var(--faint);align-items:center;gap:12px;font-size:13.5px;display:flex}.footer .f-left .mono-mark{border:1px solid var(--teal);width:30px;height:30px;color:var(--teal);font-size:12px;font-family:var(--mono);border-radius:8px;place-items:center;font-weight:700;display:grid}.footer .f-right{font-family:var(--mono);color:var(--faint);font-size:12px}.footer .f-right a:hover{color:var(--teal)}@media (max-width:900px){.nav-links,.nav-cta{display:none}.burger{display:block}.about-grid{grid-template-columns:1fr}.brand-art{max-width:380px}.projects-grid,.proj-featured .featured-inner,.skill-groups{grid-template-columns:1fr}.card>*{transform:none!important}.contact-grid{grid-template-columns:1fr}}@media (max-width:720px){.map-panel{display:none}.map-stack{display:block}.impact-stats .is{flex:50%;min-width:50%}.impact-stats .is:nth-child(odd){border-left:0}.impact-stats .is:nth-child(n+3){border-top:1px solid var(--line-2)}.bk-body{grid-template-columns:1fr;gap:18px}.bk-slots-wrap{border-left:0;border-top:1px solid var(--line);min-height:0;padding-top:18px;padding-left:0}.bk-slots{grid-template-columns:repeat(3,1fr)}}@media (max-width:560px){.ticker .stat{border-left:none;border-top:1px solid var(--line-2);flex:50%;min-width:50%}.scroll-cue,.hero .sub span+span:before{display:none}.hero .sub{gap:4px 12px}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}
