*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Schibsted Grotesk,ui-sans-serif,system-ui,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:Geist Mono,ui-monospace,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings: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:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-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{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,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{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:before,:after{--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: rgb(59 130 246 / .5);--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: }::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: rgb(59 130 246 / .5);--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: }.visible{visibility:visible}.absolute{position:absolute}.relative{position:relative}.mx-auto{margin-left:auto;margin-right:auto}.ml-auto{margin-left:auto}.block{display:block}.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)) skew(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}.text-wrap{text-wrap:wrap}.border{border-width:1px}.px-8{padding-left:2rem;padding-right:2rem}.py-7{padding-top:1.75rem;padding-bottom:1.75rem}.text-\[15px\]{font-size:15px}.uppercase{text-transform:uppercase}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.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,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}@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{color-scheme:light;--display: "Outfit", ui-sans-serif, system-ui, sans-serif;--bg: #F3F2EE;--surface: #FFFFFF;--surface-2: #E9E7E0;--ink: #111111;--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{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{font-family:Schibsted Grotesk,ui-sans-serif,system-ui,sans-serif;font-size:17px;line-height:1.55;color:var(--ink)}#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{position:fixed;left:16px;top:16px;z-index:70;padding:12px 20px;background:var(--ink);color:var(--bg);transform:translateY(-160%);border-radius:999px}.skip-link:focus{transform:none;color:var(--bg)}#lisbon-clock{display:inline-block;min-width:8ch}.mq-group{display:flex;align-items:center}.go{flex-shrink:0}.dark .vig:not(.mail-vig){border:1px solid var(--line)}.review-vig{border-radius:28px 28px 0 0}.bidcast-vig{border-radius:0 28px 28px 0}@media (max-width: 883px){.bidcast-vig{border-radius:0 0 28px 28px}}.review-content{width:100%;display:flex;flex-direction:column;gap:14px}.btn-ghost:focus-visible{background:var(--ink)!important;color:var(--bg)!important}@media (min-width: 768px) and (hover: hover) and (pointer: fine){.btn-ghost:hover{background:var(--ink)!important;color:var(--bg)!important}}#copy-email{min-width:104px;justify-content:center}.theme-toggle{width:44px;height:44px;flex:0 0 44px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:50%;color:var(--ink);background:transparent}.theme-icon,.sun-disc,.sun-rays,.moon-cutout{transform-origin:center;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),::view-transition-new(root){animation:none;mix-blend-mode:normal}::view-transition-old(root){z-index:1}::view-transition-new(root){z-index:2}body{margin:0;background:var(--bg)}a{color:var(--ink);text-decoration:none}@media (min-width: 768px) and (hover: hover) and (pointer: fine){a:hover{color:var(--ink)}}::-moz-selection{background:var(--ink);color:var(--bg)}::selection{background:var(--ink);color:var(--bg)}.roll{display:inline-flex;flex-direction:column;height:1.3em;line-height:1.3;overflow:hidden;vertical-align:top}.roll>span{transition:transform .5s cubic-bezier(.7,0,.2,1)}@media (min-width: 768px) and (hover: hover) and (pointer: fine){a:hover .roll>span,button:hover .roll>span{transform:translateY(-100%)}}.w{display:inline-block;overflow:hidden;vertical-align:top;padding:0 .03em .12em;margin:0 -.03em -.12em}.w>span{display:inline-block;animation:rise 1.1s cubic-bezier(.16,1,.3,1) both;animation-delay:calc(var(--i) * 55ms + .15s);transition:color .4s ease}@keyframes rise{0%{transform:translateY(112%) rotate(5deg)}to{transform:none}}@media (min-width: 768px) and (hover: hover) and (pointer: fine){h1[data-name-hover] .w>span{color:var(--marquee-idle)}h1[data-name-hover] .name .w>span{color:var(--ink)}}.name{cursor:default}.ava{display:inline-block;width:.8em;height:.8em;border-radius:50%;overflow:hidden;vertical-align:-.06em;transition:transform .6s cubic-bezier(.16,1,.3,1)}@media (min-width: 768px) and (hover: hover) and (pointer: fine){.ava:hover{transform:rotate(-8deg) scale(1.12)}}.ava img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block}.hl{position:relative;display:inline-block}.hl svg{position:absolute;left:-3%;width:106%;bottom:-.1em;height:.3em;overflow:visible;pointer-events:none}.hl path{stroke-dasharray:none;stroke-dashoffset:0}.fade{animation:fade 1s cubic-bezier(.16,1,.3,1) both;animation-delay:var(--d,0ms)}@keyframes fade{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.pulse{position:relative;display:inline-block;width:7px;height:7px;border-radius:50%;background:#5f8a6b}.pulse:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:#5f8a6b;animation:ping 2.6s cubic-bezier(0,0,.2,1) infinite}@keyframes ping{70%,to{transform:scale(2.8);opacity:0}}.btn{transition:background-color .35s ease,color .35s ease,border-color .35s ease}.btn svg{transition:transform .45s cubic-bezier(.16,1,.3,1)}@media (min-width: 768px) and (hover: hover) and (pointer: fine){.btn:hover svg.r{transform:translate(4px)}.btn:hover svg.d{transform:translateY(3px)}.btn-ghost:hover{background:var(--ink);color:var(--bg);border-color:var(--ink)}}.mq{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}.mq-track{display:flex;width:-moz-max-content;width:max-content;animation:mq 60s linear infinite}@media (min-width: 768px) and (hover: hover) and (pointer: fine){.mq:hover .mq-track{animation-play-state:paused}}@keyframes mq{to{transform:translate(-50%)}}.mq-item{color:var(--marquee-idle);transition:color .3s ease}@media (min-width: 768px) and (hover: hover) and (pointer: fine){.mq-item:hover{color:var(--ink)}}.spin{animation:spin 10s linear infinite}@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,0ms)}[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 (min-width: 768px) and (hover: hover) and (pointer: fine){.card:hover{transform:translateY(-6px);box-shadow:0 40px 80px -40px #11111147}}.card .vig:not(.vig-framed),.card .vig-content{transition:transform .9s cubic-bezier(.16,1,.3,1)}@media (min-width: 768px) and (hover: hover) and (pointer: fine){.card:hover .vig:not(.vig-framed),.card:hover .vig-content{transform:scale(1.025)}}.card .go{transition:transform .5s cubic-bezier(.16,1,.3,1),background-color .3s}@media (min-width: 768px) and (hover: hover) and (pointer: fine){.card:hover .go{transform:rotate(45deg);background:var(--ink);color:var(--bg)}}.live{animation:blink 1.6s ease-in-out infinite}@keyframes blink{50%{opacity:.35}}.ticker{animation:tick 9s cubic-bezier(.7,0,.2,1) infinite}@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)}}.bar{transform-origin:left;transition:transform 2s cubic-bezier(.16,1,.3,1) .4s}[data-motion=on] [data-reveal]:not([data-in]) .bar{transform:scaleX(0)}.chip{opacity:0;animation:chip 7.5s cubic-bezier(.65,0,.35,1) infinite;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)}}.folder{animation:bump 2.5s ease-in-out infinite}@keyframes bump{0%,88%{transform:none}93%{transform:scale(1.08) rotate(-3deg)}to{transform:none}}.type{display:inline-block;overflow:hidden;white-space:nowrap;vertical-align:bottom;width:0;animation:type 10s steps(23) infinite}@keyframes type{0%{width:0}16%,to{width:23ch}}.caret{display:inline-block;width:.55em;height:1.1em;background:#e8e7e0;vertical-align:-.2em;animation:caret 1s steps(1) infinite}@keyframes caret{50%{opacity:0}}.out{animation:out 10s ease infinite}@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:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .7s cubic-bezier(.16,1,.3,1)}@media (min-width: 768px) and (hover: hover) and (pointer: fine){.row:hover:after{transform:scaleX(1)}}.row .t{transition:transform .6s cubic-bezier(.16,1,.3,1)}@media (min-width: 768px) and (hover: hover) and (pointer: fine){.row:hover .t{transform:translate(10px)}}.row .n{transition:color .3s ease}@media (min-width: 768px) and (hover: hover) and (pointer: fine){.row:hover .n{color:var(--accent)}}.row .p{transition:color .3s ease}@media (min-width: 768px) and (hover: hover) and (pointer: fine){.row:hover .p{color:var(--ink)}}.email .ch{display:inline-block}@media (min-width: 768px) and (hover: hover) and (pointer: fine){.email:hover .ch{animation:hop .55s cubic-bezier(.3,0,.2,1) both;animation-delay:calc(var(--i) * 22ms)}}@keyframes hop{40%{transform:translateY(-.14em)}to{transform:none}}.cur{position:fixed;left:0;top:0;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:var(--ink);pointer-events:none;z-index:60;opacity:0;display:flex;align-items:center;justify-content:center;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 ease}.cur[data-on]{opacity:1}.cur[data-label]{width:84px;height:84px;margin:-42px 0 0 -42px}.cur-l{font-family:Geist Mono,ui-monospace,monospace;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--bg);opacity:0;transition:opacity .2s ease}.cur[data-label] .cur-l{opacity:1;transition-delay:.12s}.float{position:fixed;left:0;top:0;width:220px;aspect-ratio:1;border-radius:20px;overflow:hidden;pointer-events:none;z-index:55;opacity:0;scale:.7;transition:opacity .35s ease,scale .5s cubic-bezier(.16,1,.3,1)}.float[data-on]{opacity:1;scale:1}.float img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.mq-track{animation:none}}[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){.cur,.float{display:none}}@media (max-width: 767px){.cur,.float{display:none}.site-nav{padding:20px 24px;gap:16px}.site-nav>a:first-child{margin-right:auto}.nav-links{order:4;width:100%;margin:0;justify-content:space-between;gap:8px}.nav-links a{display:inline-flex;align-items:center;min-height:44px}.site-nav>a:last-child{padding:0 16px!important}#top{padding:56px 24px 48px!important;gap:36px!important}.hero-meta{grid-template-columns:1fr!important;gap:10px!important}.hero-meta>span:last-child{justify-self:start!important}h1{font-size:clamp(40px,10.9vw,64px)!important;line-height:1.06!important}.hero-summary{grid-template-columns:1fr!important;gap:28px!important}#work,#experience,#focus,#stack{padding:88px 24px 0!important}#work>div:first-child,#experience>div:first-child,#stack>div:first-child{margin-bottom:32px!important}.card>div:not(.vig){padding:28px!important;gap:24px!important;min-width:0}.card .vig{min-width:0;padding:24px!important}.card .vig:not(.mail-vig):not(.review-vig){flex-basis:100%!important;min-height:380px!important}.campaign{padding:20px!important}.mail-vig{gap:14px!important;height:250px!important}.mail-vig>div:first-child{width:165px!important;flex:0 1 165px;min-width:0}.mail-vig>div:last-child{flex-shrink:0}.chip{padding:0 10px!important;gap:8px!important}.chip svg{flex-shrink:0}.mail-vig>div:last-child>span{font-size:9px!important}.review-vig{font-size:11px!important;height:250px!important}.review-vig .out{padding:12px!important}.review-vig .out>div:first-child{flex-wrap:wrap;gap:4px!important}#experience .row{padding:28px 0!important;gap:12px!important}#experience .row>*{flex-basis:100%!important;min-width:0}#experience .row .t>span:first-child{font-size:25px!important}#focus{gap:32px!important}#focus .row{gap:16px!important}#focus .row .n{flex-basis:28px!important}#focus .row .t{min-width:0}.stack-panel{grid-template-columns:1fr!important}.stack-panel>div{padding:28px!important;border-right:0!important;border-bottom:1px solid var(--line-soft)}.stack-panel>div:last-child{border-bottom:0}#contact{padding:100px 24px 64px!important;gap:40px!important}#contact>div{flex-basis:100%!important}.email{font-size:clamp(26px,7.8vw,56px)!important}#contact dl{grid-template-columns:1fr!important}#contact figure{max-width:100%!important;flex-basis:100%!important}footer{padding:24px!important}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}[data-reveal],[data-motion=on] [data-reveal]:not([data-in]),.w>span,.fade,.out{opacity:1!important;transform:none!important}.hl path{stroke-dashoffset:0}.type{width:23ch}.chip{display:none;opacity:1}.chip:first-child{display:flex}.cur,.float{display:none}.card:hover,.card:hover .vig,.card:hover .vig-content,.card:hover .go,.row:hover .t,.btn:hover svg,.ava:hover,.roll>span{transform:none!important}}
