*,:before,:after,::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border:0 solid #e5e7eb}:before,:after{--tw-content:""}html,:host{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{line-height:inherit;margin:0}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:normal;font-variation-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;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}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder{opacity:1;color:#9ca3af}textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.\!visible{visibility:visible!important}.visible{visibility:visible}.mx-auto{margin-left:auto;margin-right:auto}.ml-auto{margin-left:auto}.flex{display:flex}.grid{display:grid}.hidden{display:none}.max-w-\[1280px\]{max-width:1280px}.grow{flex-grow:1}.transform{transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.px-8{padding-left:2rem;padding-right:2rem}.py-7{padding-top:1.75rem;padding-bottom:1.75rem}.text-\[15px\]{font-size:15px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}@font-face{font-family:Outfit;font-style:normal;font-weight:500 700;font-display:swap;src:url(/fonts/outfit.woff2)format("woff2")}@font-face{font-family:Schibsted Grotesk;font-style:normal;font-weight:400 600;font-display:swap;src:url(/fonts/schibsted-grotesk.woff2)format("woff2")}@font-face{font-family:Geist Mono;font-style:normal;font-weight:400 500;font-display:swap;src:url(/fonts/geist-mono.woff2)format("woff2")}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--display:"Outfit", ui-sans-serif, system-ui, sans-serif;--bg:#f3f2ee;--surface:#fff;--surface-2:#e9e7e0;--ink:#111;--ink-2:#2e2e2a;--muted:#5c5c56;--line:#d6d4cc;--line-soft:#eceae4;--marquee-idle:#b3b2aa;--accent:#1e7a55;--vignette:#141413;--vignette-accent:#3fae7f;--contact-muted:#8a8981}:root.dark{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#11110f;--surface:#1b1b19;--surface-2:#24241f;--ink:#edece6;--ink-2:#cfcec7;--muted:#a3a29a;--line:#2e2e2b;--line-soft:#24241f;--marquee-idle:#4a4a45;--accent:#3fae7f;--vignette:#0b0b0a;--contact-muted:#a3a29a}html{scroll-behavior:smooth;background:var(--bg);scroll-padding-top:32px}body{color:var(--ink);font-family:Schibsted Grotesk,ui-sans-serif,system-ui,sans-serif;font-size:17px;line-height:1.55}#site{min-height:100vh;overflow-x:clip}a,button{-webkit-tap-highlight-color:transparent}button{cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:6px}.skip-link{z-index:70;background:var(--ink);color:var(--bg);border-radius:999px;padding:12px 20px;position:fixed;top:16px;left:16px;transform:translateY(-160%)}.skip-link:focus{color:var(--bg);transform:none}#lisbon-clock{min-width:8ch;display:inline-block}.marquee-group{align-items:center;display:flex}.project-arrow{flex-shrink:0}.dark .vignette:not(.mail-vignette){border:1px solid var(--line)}.review-vignette{border-radius:28px 28px 0 0}.bidcast-vignette{border-radius:0 28px 28px 0}@media (width<=883px){.bidcast-vignette{border-radius:0 0 28px 28px}}.review-content{flex-direction:column;gap:14px;width:100%;display:flex}.btn-ghost:focus-visible{background:var(--ink);color:var(--bg)}#copy-email{justify-content:center;min-width:104px}.theme-toggle{border:1px solid var(--line);width:44px;height:44px;color:var(--ink);background:0 0;border-radius:50%;flex:0 0 44px;justify-content:center;align-items:center;display:inline-flex}.theme-icon,.sun-disc,.sun-rays,.moon-cutout{transform-origin:50%;transition:transform .5s cubic-bezier(.16,1,.3,1),opacity .5s cubic-bezier(.16,1,.3,1),r .5s cubic-bezier(.16,1,.3,1)}.dark .theme-icon{transform:rotate(-90deg)}.dark .sun-disc{r:8px}.dark .sun-rays{opacity:0;transform:rotate(45deg)scale(.5)}.dark .moon-cutout{transform:translate(-7px,7px)}::view-transition-group(root){animation:none}::view-transition-old(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){mix-blend-mode:normal;animation:none}::view-transition-old(root){z-index:1}::view-transition-new(root){z-index:2}body{background:var(--bg);margin:0}a{color:var(--ink);text-decoration:none}::selection{background:var(--ink);color:var(--bg)}.wordmark{font-family:var(--display);letter-spacing:-.03em;align-items:center;gap:10px;font-size:22px;font-weight:700;display:inline-flex}.status-mark{color:var(--ink);flex-shrink:0;display:block;overflow:visible}.status-ping{opacity:0;transform-box:fill-box;transform-origin:50%}@media (hover:hover) and (pointer:fine){.wordmark:hover .status-ping{opacity:1;animation:2.6s cubic-bezier(0,0,.2,1) ping}}.accent-text{color:var(--accent)}.clock-time{font-variant-numeric:tabular-nums}.word.word-highlight{margin-bottom:-.34em;padding-bottom:.34em}.hero-actions{flex-direction:column;justify-content:flex-end;align-items:flex-start;gap:12px;display:flex}.marquee{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:28px 0}.marquee-track{font-family:var(--display);letter-spacing:-.03em;align-items:center;font-size:clamp(32px,4vw,56px);font-weight:600;line-height:1}.work-section{max-width:1280px;margin:0 auto;padding:160px 32px 0}.work-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:56px;display:flex}.work-intro{flex-direction:column;gap:20px;max-width:640px;display:flex}.work-description{max-width:380px;color:var(--ink-2);margin:0}.inline-link{border-bottom:1px solid var(--ink)}.project-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,480px),1fr));gap:24px;display:grid}.featured-project{background:var(--surface);border-radius:28px;flex-wrap:wrap;grid-column:1/-1;display:flex;overflow:hidden}.featured-details{flex-direction:column;flex:380px;justify-content:space-between;gap:40px;padding:44px;display:flex}.featured-copy{flex-direction:column;gap:16px;display:flex}.featured-title{font-family:var(--display);letter-spacing:-.035em;margin:0;font-size:clamp(36px,4vw,56px);font-weight:600;line-height:1}.featured-description{max-width:420px;color:var(--ink-2);margin:0;font-size:18px}.campaign-header{letter-spacing:.06em;text-transform:uppercase;color:#9d9c94;justify-content:space-between;align-items:center;font-family:Geist Mono,ui-monospace,monospace;font-size:11px;display:flex}.campaign-status{color:#f08a68;align-items:center;gap:6px;display:inline-flex}.live-dot{background:#f08a68;border-radius:50%;width:6px;height:6px}.campaign-title{font-family:var(--display);letter-spacing:-.02em;font-size:22px;font-weight:600;line-height:1.15}.campaign-funding{flex-direction:column;gap:8px;display:flex}.funding-track{background:#33332f;border-radius:99px;height:8px;overflow:hidden}.funding-bar{background:var(--accent);border-radius:99px;width:78%;height:100%}.funding-summary{color:#b9b8b0;justify-content:space-between;font-family:Geist Mono,ui-monospace,monospace;font-size:12px;display:flex}.bid-list{border-top:1px solid #2e2e2b;height:144px;overflow:hidden}.mail-export{flex-direction:column;align-items:center;gap:10px;display:flex}.mail-folder{background:var(--ink);width:92px;height:72px;color:var(--bg);box-sizing:border-box;border-radius:10px 10px 12px 12px;justify-content:center;align-items:flex-end;padding-bottom:10px;font-family:Geist Mono,ui-monospace,monospace;font-size:11px;display:flex;position:relative}.mail-folder-tab{background:var(--ink);border-radius:6px 6px 0 0;width:40px;height:12px;position:absolute;top:-8px;left:0}.mail-export-caption{color:var(--ink-2);font-family:Geist Mono,ui-monospace,monospace;font-size:11px}.terminal-accent{color:var(--vignette-accent)}.experience-list{border-top:1px solid var(--ink);margin:0;padding:0;list-style:none}.focus-intro{flex-direction:column;flex:320px;gap:20px;max-width:420px;display:flex}.focus-list{border-top:1px solid var(--ink);flex:999 560px;min-width:0;margin:0;padding:0;list-style:none}.stack-description{max-width:640px;color:var(--ink-2);margin:20px 0 0}.contact-actions{flex-wrap:wrap;align-items:center;gap:16px 24px;display:flex}.contact-socials{flex-wrap:wrap;gap:12px;display:flex}.portrait-image{aspect-ratio:3/4;-o-object-fit:cover;object-fit:cover;border-radius:24px;width:100%;display:block}.portrait-caption{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);justify-content:space-between;font-family:Geist Mono,ui-monospace,monospace;font-size:12px;display:flex}.back-to-top{color:var(--ink);align-items:center;gap:8px;display:inline-flex}.button-nav{background:var(--ink);min-height:44px;color:var(--bg);border-radius:999px;align-items:center;padding:0 22px;font-size:15px;font-weight:500;display:inline-flex}.hero{flex-direction:column;gap:56px;max-width:1280px;margin:0 auto;padding:88px 32px 72px;display:flex}.hero-meta{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);grid-template-columns:1fr auto 1fr;align-items:baseline;gap:12px 32px;font-family:Geist Mono,ui-monospace,monospace;font-size:12px;display:grid}.hero-meta>span{white-space:nowrap;align-items:baseline;display:inline-flex}.hero-clock{align-items:baseline;gap:.6em;margin-left:.6em;display:inline-flex}.hero-availability{justify-self:end;align-items:baseline;gap:10px;display:inline-flex}@media (width<=899px){.hero-clock{display:none}}.hero-heading{font-family:var(--display);letter-spacing:-.04em;text-wrap:balance;margin:0;font-size:clamp(44px,6.1vw,90px);font-weight:600;line-height:1.02}.hero-summary{border-top:1px solid var(--line);grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:32px 48px;padding-top:32px;display:grid}.summary-item{flex-direction:column;gap:10px;display:flex}.eyebrow{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-family:Geist Mono,ui-monospace,monospace;font-size:12px}.body-copy{color:var(--ink-2);margin:0}.button-primary{background:var(--ink);min-height:52px;color:var(--bg);border-radius:999px;align-items:center;gap:12px;padding:0 26px;font-weight:500;display:inline-flex}.button-secondary{border:1px solid var(--ink);border-radius:999px;align-items:center;gap:12px;min-height:52px;padding:0 26px;font-weight:500;display:inline-flex}.marquee-tool{align-items:center;gap:40px;padding-right:40px;display:inline-flex}.section-title{font-family:var(--display);letter-spacing:-.035em;margin:0;font-size:clamp(36px,4.6vw,68px);font-weight:600;line-height:1.02}.project-heading{justify-content:space-between;align-items:center;gap:16px;display:flex}.project-arrow{border:1px solid var(--line);border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.project-stack{color:var(--muted);letter-spacing:.02em;font-family:Geist Mono,ui-monospace,monospace;font-size:12px}.bidcast-vignette{background:var(--vignette);box-sizing:border-box;flex:1.25 440px;justify-content:center;align-items:center;min-height:420px;padding:40px;display:flex}.campaign{color:#ecebe4;background:#1f1f1d;border:1px solid #2e2e2b;border-radius:20px;flex-direction:column;gap:20px;width:100%;max-width:380px;padding:24px;display:flex}.bid-row{border-bottom:1px solid #2a2a27;justify-content:space-between;align-items:center;height:48px;font-size:14px;display:flex}.bid-person{align-items:center;gap:10px;display:inline-flex}.bid-avatar{color:#ecebe4;background:#3a3a36;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-family:Geist Mono,ui-monospace,monospace;font-size:10px;display:inline-flex}.bid-amount{color:#ecebe4;font-family:Geist Mono,ui-monospace,monospace}.project-card{background:var(--surface);border-radius:28px;flex-direction:column;display:flex;overflow:hidden}.mail-vignette{background:var(--surface-2);box-sizing:border-box;justify-content:center;align-items:center;gap:28px;height:300px;padding:32px;display:flex}.mail-inbox{width:210px;height:56px;position:relative}.mail-chip{background:var(--surface);border-radius:14px;align-items:center;gap:12px;padding:0 14px;display:flex;position:absolute;inset:0;box-shadow:0 10px 24px -14px #1116}.mail-message{flex-direction:column;line-height:1.2;display:flex}.mail-subject{font-size:13px;font-weight:600}.mail-filename{color:var(--muted);font-family:Geist Mono,ui-monospace,monospace;font-size:11px}.project-details{flex-direction:column;flex:1;gap:14px;padding:36px 40px 40px;display:flex}.project-title{font-family:var(--display);letter-spacing:-.035em;margin:0;font-size:40px;font-weight:600;line-height:1}.review-vignette{background:var(--vignette);box-sizing:border-box;color:#e8e7e0;flex-direction:column;justify-content:center;gap:14px;height:300px;padding:32px;font-family:Geist Mono,ui-monospace,monospace;font-size:13px;line-height:1.5;display:flex}.terminal-muted{color:#8f8e86}.terminal-evidence{background:#1c1c1a;border:1px solid #2e2e2b;border-radius:12px;flex-direction:column;gap:6px;padding:14px 16px;display:flex}.terminal-evidence-heading{justify-content:space-between;gap:12px;display:flex}.section{max-width:1280px;margin:0 auto;padding:180px 32px 0}.section-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:48px;display:flex}.section-intro{flex-direction:column;gap:20px;display:flex}.button-history{border:1px solid var(--ink);border-radius:999px;align-items:center;gap:10px;min-height:44px;padding:0 20px;font-size:15px;display:inline-flex}.experience-row{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:12px 40px;padding:36px 0;display:flex}.experience-date{color:var(--muted);flex:0 0 150px;padding-top:6px;font-family:Geist Mono,ui-monospace,monospace;font-size:13px}.experience-role{flex-direction:column;flex:300px;gap:4px;display:flex}.experience-title{font-family:var(--display);letter-spacing:-.02em;font-size:28px;font-weight:600;line-height:1.15}.muted{color:var(--muted)}.experience-description{color:var(--ink-2);flex:1.3 340px;margin:0}.focus-section{flex-wrap:wrap;gap:40px 64px;max-width:1280px;margin:0 auto;padding:180px 32px 0;display:flex}.focus-heading{font-family:var(--display);letter-spacing:-.035em;margin:0;font-size:clamp(36px,4.2vw,60px);font-weight:600;line-height:1.02}.focus-row{border-bottom:1px solid var(--line);gap:24px;padding:28px 0;display:flex}.focus-number{color:var(--muted);flex:0 0 40px;padding-top:8px;font-family:Geist Mono,ui-monospace,monospace;font-size:13px}.focus-detail{flex-direction:column;flex:1;gap:6px;display:flex}.focus-title{font-family:var(--display);letter-spacing:-.02em;font-size:clamp(24px,2.4vw,32px);font-weight:600;line-height:1.15}.focus-description{color:var(--muted);max-width:560px}.stack-panel{background:var(--surface);border-radius:28px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:0;display:grid;overflow:hidden}.stack-column-bordered{border-right:1px solid var(--line-soft)}.stack-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0;font-family:Geist Mono,ui-monospace,monospace;font-size:12px;font-weight:500}.stack-list{flex-direction:column;gap:10px;margin:0;padding:0;font-size:19px;font-weight:500;list-style:none;display:flex}.stack-column{flex-direction:column;gap:20px;padding:36px;display:flex}.contact-section{flex-wrap:wrap;align-items:flex-end;gap:56px;max-width:1280px;margin:0 auto;padding:200px 32px 120px;display:flex}.contact-details{flex-direction:column;flex:999 600px;gap:32px;min-width:0;display:flex}.contact-heading{font-family:var(--display);letter-spacing:-.035em;color:var(--contact-muted);margin:0;font-size:clamp(36px,4.6vw,68px);font-weight:600;line-height:1.02}.contact-email{font-family:var(--display);letter-spacing:-.04em;overflow-wrap:anywhere;border-bottom:3px solid var(--ink);padding-bottom:6px;font-size:clamp(34px,5.6vw,84px);font-weight:600;line-height:1.05}.button-copy{border:1px solid var(--ink);min-height:44px;color:inherit;font:inherit;cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:8px;padding:0 18px;font-size:14px;display:inline-flex}.contact-facts{border-top:1px solid var(--line);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:24px 32px;margin:16px 0 0;padding-top:32px;display:grid}.contact-fact{flex-direction:column;gap:6px;display:flex}.reset-margin{margin:0}.social-link{border:1px solid var(--line);border-radius:999px;align-items:center;min-height:44px;padding:0 20px;font-size:15px;display:inline-flex}.contact-portrait{flex-direction:column;flex:260px;gap:12px;max-width:340px;margin:0;display:flex}.site-footer{border-top:1px solid var(--line);max-width:1280px;color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin:0 auto;padding:32px;font-size:14px;display:flex}.footer-brand{align-items:center;gap:10px;display:inline-flex}.roll{vertical-align:top;flex-direction:column;height:1.3em;line-height:1.3;display:inline-flex;overflow:hidden}.roll>span{transition:transform .5s cubic-bezier(.7,0,.2,1)}@media (width>=768px) and (hover:hover) and (pointer:fine){a:hover .roll>span,button:hover .roll>span{transform:translateY(-100%)}}.word{vertical-align:top;margin:0 -.03em -.12em;padding:0 .03em .12em;display:inline-block;overflow:hidden}.word>span{animation:1.1s cubic-bezier(.16,1,.3,1) both rise;animation-delay:calc(var(--i) * 55ms + .15s);transition:color .4s;display:inline-block}@keyframes rise{0%{transform:translateY(112%)rotate(5deg)}to{transform:none}}@media (width>=768px) and (hover:hover) and (pointer:fine){h1[data-name-hover] .word>span{color:var(--marquee-idle)}h1[data-name-hover] .name .word>span{color:var(--ink)}}.name{cursor:default}.avatar{vertical-align:-.06em;border-radius:50%;width:.8em;height:.8em;transition:transform .6s cubic-bezier(.16,1,.3,1);display:inline-block;overflow:hidden}@media (width>=768px) and (hover:hover) and (pointer:fine){.avatar:hover{transform:rotate(-8deg)scale(1.12)}}.avatar img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%;display:block}.highlight{display:inline-block;position:relative}.highlight svg{pointer-events:none;width:106%;height:.3em;position:absolute;bottom:-.1em;left:-3%;overflow:visible}.fade{animation:1s cubic-bezier(.16,1,.3,1) both fade;animation-delay:var(--d,0s)}@keyframes fade{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.pulse{background:var(--accent);border-radius:50%;width:7px;height:7px;display:inline-block;position:relative}.pulse:after{content:"";background:var(--accent);border-radius:50%;animation:2.6s cubic-bezier(0,0,.2,1) infinite ping;position:absolute;inset:0}@keyframes ping{70%,to{opacity:0;transform:scale(2.8)}}.btn{transition:background-color .35s,color .35s,border-color .35s}.btn svg{transition:transform .45s cubic-bezier(.16,1,.3,1)}@media (width>=768px) and (hover:hover) and (pointer:fine){.btn:hover svg.arrow-right{transform:translate(4px)}.btn:hover svg.arrow-down{transform:translateY(3px)}.btn-ghost:hover{background:var(--ink);color:var(--bg);border-color:var(--ink)}}.marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 7% 93%,#0000);mask-image:linear-gradient(90deg,#0000,#000 7% 93%,#0000)}.marquee-track{width:max-content;animation:60s linear infinite mq;display:flex}@media (width>=768px) and (hover:hover) and (pointer:fine){.marquee:hover .marquee-track{animation-play-state:paused}}@keyframes mq{to{transform:translate(-50%)}}.marquee-item{color:var(--marquee-idle);transition:color .3s}@media (width>=768px) and (hover:hover) and (pointer:fine){.marquee-item:hover{color:var(--ink)}}.marquee-star{animation:10s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}[data-reveal]{transition:opacity 1s cubic-bezier(.16,1,.3,1),transform 1s cubic-bezier(.16,1,.3,1);transition-delay:var(--d,0s)}[data-motion=on] [data-reveal]:not([data-in]){opacity:0;transform:translateY(32px)}.card{transition:transform .7s cubic-bezier(.16,1,.3,1),box-shadow .7s cubic-bezier(.16,1,.3,1)}@media (width>=768px) and (hover:hover) and (pointer:fine){.card:hover{transform:translateY(-6px);box-shadow:0 40px 80px -40px #11111147}}.card .vignette:not(.vignette-framed),.card .vignette-content{transition:transform .9s cubic-bezier(.16,1,.3,1)}@media (width>=768px) and (hover:hover) and (pointer:fine){.card:hover .vignette:not(.vignette-framed),.card:hover .vignette-content{transform:scale(1.025)}}.card .project-arrow{transition:transform .5s cubic-bezier(.16,1,.3,1),background-color .3s}@media (width>=768px) and (hover:hover) and (pointer:fine){.card:hover .project-arrow{background:var(--ink);color:var(--bg);transform:rotate(45deg)}}.live-dot{animation:1.6s ease-in-out infinite blink}@keyframes blink{50%{opacity:.35}}.bid-ticker{animation:9s cubic-bezier(.7,0,.2,1) infinite tick}@keyframes tick{0%,18%{transform:translateY(0)}25%,43%{transform:translateY(-48px)}50%,68%{transform:translateY(-96px)}75%,93%{transform:translateY(-144px)}to{transform:translateY(-192px)}}.funding-bar{transform-origin:0;transition:transform 2s cubic-bezier(.16,1,.3,1) .4s}[data-motion=on] [data-reveal]:not([data-in]) .funding-bar{transform:scaleX(0)}.mail-chip{opacity:0;animation:7.5s cubic-bezier(.65,0,.35,1) infinite chip;animation-delay:var(--d,0s)}@keyframes chip{0%{opacity:0;transform:translate(-18px)}7%{opacity:1;transform:none}24%{opacity:1;transform:none}31%{opacity:0;transform:translate(150px)scale(.6)}to{opacity:0;transform:translate(150px)scale(.6)}}.mail-folder{animation:2.5s ease-in-out infinite bump}@keyframes bump{0%,88%{transform:none}93%{transform:scale(1.08)rotate(-3deg)}to{transform:none}}.terminal-command{white-space:nowrap;vertical-align:bottom;width:0;animation:10s steps(23,end) infinite type;display:inline-block;overflow:hidden}@keyframes type{0%{width:0}16%,to{width:23ch}}.terminal-caret{vertical-align:-.2em;background:#e8e7e0;width:.55em;height:1.1em;animation:1s step-end infinite caret;display:inline-block}@keyframes caret{50%{opacity:0}}.terminal-output{animation:10s infinite out}@keyframes out{0%,19%{opacity:0;transform:translateY(6px)}24%,90%{opacity:1;transform:none}96%,to{opacity:0}}.row{position:relative}.row:after{content:"";background:var(--ink);transform-origin:0;height:1px;transition:transform .7s cubic-bezier(.16,1,.3,1);position:absolute;bottom:-1px;left:0;right:0;transform:scaleX(0)}@media (width>=768px) and (hover:hover) and (pointer:fine){.row:hover:after{transform:scaleX(1)}}.row .row-title{transition:transform .6s cubic-bezier(.16,1,.3,1)}@media (width>=768px) and (hover:hover) and (pointer:fine){.row:hover .row-title{transform:translate(10px)}}.row .row-meta{transition:color .3s}@media (width>=768px) and (hover:hover) and (pointer:fine){.row:hover .row-meta{color:var(--accent)}}.row .row-description{transition:color .3s}@media (width>=768px) and (hover:hover) and (pointer:fine){.row:hover .row-description{color:var(--ink)}}.email .email-character{display:inline-block}@media (width>=768px) and (hover:hover) and (pointer:fine){.email:hover .email-character{animation:.55s cubic-bezier(.3,0,.2,1) both hop;animation-delay:calc(var(--i) * 22ms)}}@keyframes hop{40%{transform:translateY(-.14em)}to{transform:none}}.cursor{background:var(--ink);pointer-events:none;z-index:60;opacity:0;border-radius:50%;justify-content:center;align-items:center;width:10px;height:10px;margin:-5px 0 0 -5px;transition:width .45s cubic-bezier(.16,1,.3,1),height .45s cubic-bezier(.16,1,.3,1),margin .45s cubic-bezier(.16,1,.3,1),opacity .3s;display:flex;position:fixed;top:0;left:0}.cursor[data-on]{opacity:1}.cursor[data-label]{width:84px;height:84px;margin:-42px 0 0 -42px}.cursor-label{letter-spacing:.06em;text-transform:uppercase;color:var(--bg);opacity:0;font-family:Geist Mono,ui-monospace,monospace;font-size:11px;transition:opacity .2s}.cursor[data-label] .cursor-label{opacity:1;transition-delay:.12s}.floating-photo{aspect-ratio:1;pointer-events:none;z-index:55;opacity:0;border-radius:20px;width:220px;transition:opacity .35s,scale .5s cubic-bezier(.16,1,.3,1);position:fixed;top:0;left:0;overflow:hidden;scale:.7}.floating-photo[data-on]{opacity:1;scale:1}.floating-photo img{-o-object-fit:cover;object-fit:cover;width:100%;height:100%;display:block}.boomich-reveal{color:#f0efe7;pointer-events:none;z-index:50;opacity:0;clip-path:polygon(14px 0,100% 0,100% calc(100% - 14px),calc(100% - 14px) 100%,0 100%,0 14px);background:#1a2213;width:280px;height:176px;transition:opacity .3s,scale .5s cubic-bezier(.16,1,.3,1);position:fixed;top:0;left:0;scale:.7}.boomich-reveal[data-on]{opacity:1;scale:1}.boomich-net{display:block;position:absolute;inset:0}.boomich-strip{background:#141b0f;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex;position:absolute;bottom:0;left:0;right:0}.boomich-wordmark{width:auto;height:15px;display:block}.boomich-readout{letter-spacing:.06em;text-transform:uppercase;color:#9fa392;font-variant-numeric:tabular-nums;font-family:Geist Mono,ui-monospace,monospace;font-size:10px}[data-motion=on] [data-loop]:not([data-active]),[data-motion=on] [data-loop]:not([data-active]) *{animation-play-state:paused!important}@media (hover:none),(pointer:coarse){.cursor,.floating-photo,.boomich-reveal{display:none}}@media (width<=767px){.cursor,.floating-photo,.boomich-reveal{display:none}.site-nav{gap:16px;padding:20px 24px}.site-nav>a:first-child{margin-right:auto}.nav-links{order:4;justify-content:space-between;gap:8px;width:100%;margin:0}.nav-links a{align-items:center;min-height:44px;display:inline-flex}.site-nav>a:last-child{padding:0 16px}#top{gap:36px;padding:56px 24px 48px}.hero-meta{grid-template-columns:1fr;gap:10px}.hero-meta>span:last-child{justify-self:start}.hero-heading{font-size:clamp(40px,10.9vw,64px);line-height:1.06}.hero-summary{grid-template-columns:1fr;gap:28px}#work,#experience,#focus,#stack{padding:88px 24px 0}#work>div:first-child,#experience>div:first-child,#stack>div:first-child{margin-bottom:32px}.card>div:not(.vignette){gap:24px;min-width:0;padding:28px}.card .vignette{min-width:0;padding:24px}.card .vignette:not(.mail-vignette):not(.review-vignette){flex-basis:100%;min-height:380px}.campaign{padding:20px}.mail-vignette{gap:14px;height:250px}.mail-vignette>div:first-child{flex:0 165px;width:165px;min-width:0}.mail-vignette>div:last-child{flex-shrink:0}.mail-chip{gap:8px;padding:0 10px}.mail-chip svg{flex-shrink:0}.mail-vignette>div:last-child>span{font-size:9px}.review-vignette{height:250px;font-size:11px}.review-vignette .terminal-output{padding:12px}.review-vignette .terminal-output>div:first-child{flex-wrap:wrap;gap:4px}#experience .row{gap:12px;padding:28px 0}#experience .row>*{flex-basis:100%;min-width:0}#experience .row .row-title>span:first-child{font-size:25px}#focus{gap:32px}#focus .row{gap:16px}#focus .row .row-meta{flex-basis:28px}#focus .row .row-title{min-width:0}.stack-panel{grid-template-columns:1fr}.stack-panel>div{border-right:0;border-bottom:1px solid var(--line-soft);padding:28px}.stack-panel>div:last-child{border-bottom:0}#contact{gap:40px;padding:100px 24px 64px}#contact>div{flex-basis:100%}.email{font-size:clamp(26px,7.8vw,56px)}#contact dl{grid-template-columns:1fr}#contact figure{flex-basis:100%;max-width:100%}.site-footer{padding:24px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}[data-reveal],[data-motion=on] [data-reveal]:not([data-in]),.word>span,.fade,.terminal-output{opacity:1!important;transform:none!important}.terminal-command{width:23ch}.mail-chip{opacity:1;display:none}.mail-chip:first-child{display:flex}.cursor,.floating-photo,.boomich-reveal{display:none}.card:hover,.card:hover .vignette,.card:hover .vignette-content,.card:hover .project-arrow,.row:hover .row-title,.btn:hover svg,.avatar:hover,.roll>span{transform:none!important}}
