@font-face{font-family:__Schibsted_Grotesk_e8899d;font-style:normal;font-weight:400 900;font-display:swap;src:url(/_next/static/media/56069e83bb5b2425-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Schibsted_Grotesk_e8899d;font-style:normal;font-weight:400 900;font-display:swap;src:url(/_next/static/media/91601dd83defba07-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Schibsted_Grotesk_Fallback_e8899d;src:local("Arial");ascent-override:93.46%;descent-override:24.67%;line-gap-override:0.00%;size-adjust:104.49%}.__className_e8899d{font-family:__Schibsted_Grotesk_e8899d,__Schibsted_Grotesk_Fallback_e8899d;font-style:normal}.__variable_e8899d{--font-schibsted:"__Schibsted_Grotesk_e8899d","__Schibsted_Grotesk_Fallback_e8899d"}@font-face{font-family:__IM_Fell_Great_Primer_ef4497;font-style:italic;font-weight:400;font-display:swap;src:url(/_next/static/media/022af832e45721bf.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__IM_Fell_Great_Primer_ef4497;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/6c3889ec5b9a6dc3.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}.__className_ef4497{font-family:__IM_Fell_Great_Primer_ef4497;font-weight:400}.__variable_ef4497{--font-im-fell:"__IM_Fell_Great_Primer_ef4497"}@font-face{font-family:__Sono_775057;font-style:normal;font-weight:200 800;font-display:swap;src:url(/_next/static/media/188b030bababfcfc.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__Sono_775057;font-style:normal;font-weight:200 800;font-display:swap;src:url(/_next/static/media/4b6d7572a3d7db15.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Sono_775057;font-style:normal;font-weight:200 800;font-display:swap;src:url(/_next/static/media/9180564b4111f858.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}.__className_775057{font-family:__Sono_775057;font-style:normal}.__variable_775057{--font-sono:"__Sono_775057"}

/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-border-style:solid;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:forwards;--tw-animation-iteration-count:1;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:host,:root{--font-serif:var(--font-im-fell);--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--leading-tight:1.25;--leading-relaxed:1.625;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-body);--default-mono-font-family:var(--font-sono);--color-accent:var(--accent);--color-border:var(--border)}}@layer base{*,::backdrop,:after,:before{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}:host,html{-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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{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}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,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,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-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,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.static{position:static}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.block{display:block}.flex{display:flex}.hidden{display:none}.inline{display:inline}.animate-in{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,forwards)}.border{border-style:var(--tw-border-style);border-width:1px}.italic{font-style:italic}.underline{text-decoration-line:underline}.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))}.fade-in{--tw-enter-opacity:0}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:forwards}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}:root{--background:#f5f2ed;--foreground:#1a1a1a;--card:#fff;--card-foreground:#1a1a1a;--popover:#fff;--popover-foreground:#1a1a1a;--primary:#1a1a1a;--primary-foreground:#f5f2ed;--secondary:#ece8df;--secondary-foreground:#1a1a1a;--muted:#ebe7df;--muted-foreground:#7d7a72;--accent:#c16e54;--accent-foreground:#fff7f2;--destructive:#b42318;--destructive-foreground:#fff;--border:#1a1a1a24;--input:#1a1a1a29;--ring:#c16e54;--chart-1:#c16e54;--chart-2:#e9a028;--chart-3:#57ab5a;--chart-4:#7d7a72;--chart-5:#1a1a1a;--radius:.5rem;--sidebar:#f5f2ed;--sidebar-foreground:#1a1a1a;--sidebar-primary:#1a1a1a;--sidebar-primary-foreground:#f5f2ed;--sidebar-accent:#ece8df;--sidebar-accent-foreground:#1a1a1a;--sidebar-border:#1a1a1a24;--sidebar-ring:#c16e54;--page-bg:#f5f2ed;--page-text:#1a1a1a;--text-muted:#858178;--text-soft:#9b968c;--line:#1a1a1a24;--link-line:#1a1a1a4d;--link-line-hover:#c16e54;--row-hover:#1a1a1a0a;--pill-bg:#ffffff52;--accent-warm:#c16e54;--dot-red:#e5534b;--dot-yellow:#e9a028;--dot-green:#57ab5a;--font-body:var(--font-schibsted),ui-sans-serif,system-ui,sans-serif;--font-serif:var(--font-im-fell),Georgia,serif;--font-label:var(--font-sono),ui-monospace,SFMono-Regular,Menlo,monospace;--shell-width:640px;--shell-padding:clamp(1rem,4vw,2rem)}.dark{--background:#1c1c1e;--foreground:#f0ede8;--card:#242426;--card-foreground:#f0ede8;--popover:#242426;--popover-foreground:#f0ede8;--primary:#f0ede8;--primary-foreground:#1c1c1e;--secondary:#292927;--secondary-foreground:#f0ede8;--muted:#292927;--muted-foreground:#9f9a90;--accent:#c16e54;--accent-foreground:#fff7f2;--destructive:#f04438;--destructive-foreground:#fff;--border:#f0ede824;--input:#f0ede829;--ring:#c16e54;--sidebar:#1c1c1e;--sidebar-foreground:#f0ede8;--sidebar-primary:#f0ede8;--sidebar-primary-foreground:#1c1c1e;--sidebar-accent:#292927;--sidebar-accent-foreground:#f0ede8;--sidebar-border:#f0ede824;--sidebar-ring:#c16e54;--page-bg:#1c1c1e;--page-text:#f0ede8;--text-muted:#a09c93;--text-soft:#77736b;--line:#f0ede821;--link-line:#f0ede840;--row-hover:#f0ede80d;--pill-bg:#ffffff05}*,:after,:before{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100%;overflow:hidden scroll}body{background:var(--page-bg);min-height:100vh;color:var(--page-text);font-family:var(--font-body);margin:0;font-size:14px;line-height:1.6;transition:background-color .3s,color .3s;overflow-x:hidden}::selection{color:var(--page-text);background:#c16e5447}button,input,select,textarea{font:inherit}button{border:0}a{color:inherit;text-decoration-line:underline;-webkit-text-decoration-color:var(--link-line);text-decoration-color:var(--link-line);text-underline-offset:5px;text-decoration-thickness:1px;transition:color .16s,text-decoration-color .16s}a:hover{color:var(--page-text);-webkit-text-decoration-color:var(--link-line-hover);text-decoration-color:var(--link-line-hover)}a:focus-visible,button:focus-visible{outline:2px solid var(--accent-warm);outline-offset:4px}em{font-family:var(--font-serif);font-style:italic}.shell{width:calc(100% - (var(--shell-padding) * 2));max-width:var(--shell-width);margin-inline:auto}.site-header{flex-direction:column;align-items:flex-start;gap:.9rem;padding-top:clamp(2.75rem,7vw,4rem);padding-bottom:1.35rem;display:flex}.avatar-mark{background:var(--muted);border-radius:50%;flex:none;place-items:center;width:48px;height:48px;display:grid;overflow:hidden}.profile-photo{object-fit:cover;width:100%;height:100%;transform:scale(1.14)}.site-header h1{color:var(--page-text);letter-spacing:0;margin:0;font-size:18px;font-weight:520;line-height:1.25}.site-header h1 em{color:var(--text-muted);font-size:.9em}.site-nav{justify-content:space-between;align-items:center;gap:1.25rem;padding-bottom:clamp(2rem,5vw,2.4rem);display:flex}.nav-links{flex-wrap:wrap;gap:clamp(1.2rem,5vw,2.35rem);display:flex}.nav-links a{color:var(--text-muted);font-size:14px;font-weight:560;text-decoration:none}.nav-links a.is-active,.nav-links a:hover{color:var(--page-text)}.theme-toggle{border:1px solid var(--line);width:2.35rem;height:2.35rem;color:var(--text-muted);cursor:pointer;background:0 0;border-radius:50%;flex:none;justify-content:center;align-items:center;transition:border-color .16s,color .16s,background-color .16s;display:inline-flex}.theme-toggle:disabled{cursor:default}.theme-toggle:hover{border-color:var(--page-text);color:var(--page-text);background:var(--row-hover)}.theme-toggle svg{width:.95rem;height:.95rem}.bio-section{flex-direction:column;gap:1.3rem;display:flex}.bio-section p{color:var(--page-text);overflow-wrap:break-word;text-align:justify;margin:0;font-size:14px;font-weight:420;line-height:1.72}.bio-section .contact-line{font-size:14px}.say-hello-link{color:inherit;font-family:var(--font-serif);font-style:italic;font-weight:560;line-height:inherit;text-decoration-line:underline;-webkit-text-decoration-color:var(--link-line);text-decoration-color:var(--link-line);text-underline-offset:5px;cursor:pointer;background:0 0;padding:0;text-decoration-thickness:1px;transition:color .16s,text-decoration-color .16s;display:inline;position:relative}.say-hello-link:focus-visible,.say-hello-link:hover{color:var(--page-text);-webkit-text-decoration-color:var(--link-line-hover);text-decoration-color:var(--link-line-hover)}.copy-tooltip{z-index:20;background:var(--page-text);width:max-content;max-width:10rem;color:var(--page-bg);font-family:var(--font-body);opacity:0;pointer-events:none;border-radius:.38rem;padding:.38rem .58rem;font-size:12px;font-style:normal;font-weight:520;line-height:1;transition:opacity .14s,transform .14s;position:absolute;bottom:calc(100% + .58rem);left:50%;transform:translate(-50%,4px)}.say-hello-link:focus-visible .copy-tooltip,.say-hello-link:hover .copy-tooltip{opacity:1;transform:translate(-50%)}.traffic-lights{justify-content:center;gap:.62rem;padding-block:clamp(2.8rem,6vw,3.9rem);display:flex}.traffic-dot{border-radius:50%;width:.42rem;height:.42rem}.traffic-dot-red{background:var(--dot-red)}.traffic-dot-yellow{background:var(--dot-yellow)}.traffic-dot-green{background:var(--dot-green)}.content-section h2{color:var(--text-soft);font-family:var(--font-label);letter-spacing:.14em;text-transform:uppercase;margin:0 0 1.35rem;font-size:.78rem;font-weight:420;line-height:1}.project-list{flex-direction:column;gap:.32rem;display:flex}.project-item{min-height:2.05rem;color:var(--page-text);border-radius:.35rem;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.68rem;margin-inline:-.45rem;padding:.32rem .45rem;text-decoration:none;transition:background-color .16s;display:grid}a.project-item:hover{background:var(--row-hover)}.project-mark{color:#fff;width:1.42rem;height:1.42rem;font-family:var(--font-label);letter-spacing:0;border-radius:.4rem;place-items:center;font-size:.56rem;font-weight:650;display:grid}.project-mark-1{background:#5546e8}.project-mark-2{background:#49a962}.project-mark-3{background:#c16e54}.project-mark-4{background:#4f7eae}.project-mark-5{background:#8c6fb8}.project-mark-6{background:#b1844f}.project-mark-7{background:#497f74}.project-mark-8{background:#9a5f68}.project-copy{min-width:0;color:var(--text-muted);overflow-wrap:anywhere;font-size:14px;line-height:1.4}.project-copy strong{color:var(--page-text);font-weight:680}.project-separator{color:var(--text-soft);margin-inline:.42rem}.project-tags{flex-wrap:wrap;justify-content:flex-end;gap:.35rem;display:flex}.pill,.tag{border:1px solid var(--line);background:var(--pill-bg);color:var(--text-muted);white-space:nowrap;border-radius:999px;align-items:center;display:inline-flex}.tag{min-height:1.15rem;padding-inline:.45rem;font-size:.62rem}.writing-section{color:var(--page-text)}.writing-section p{text-align:justify;max-width:100%;margin:0 0 1rem;font-size:14px;line-height:1.65}.text-link{font-style:italic;font-weight:560}.skill-groups{flex-direction:column;gap:1rem;display:flex}.skill-group h3{color:var(--text-soft);font-family:var(--font-label);letter-spacing:.1em;text-transform:uppercase;margin:0 0 .62rem;font-size:.68rem;font-weight:430}.skill-pills{flex-wrap:wrap;gap:.44rem;display:flex}.pill{min-height:1.5rem;padding-inline:.62rem;font-size:.72rem}.site-footer{border-top:1px solid var(--line);margin-top:clamp(3rem,7vw,4rem);padding-block:1.8rem 3rem}.footer-links{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:.62rem;font-size:14px;display:flex}.footer-links a{text-decoration:none}.footer-links a:hover{color:var(--page-text)}.animate-in{opacity:0;filter:blur(8px);animation:reveal-from-top .52s ease-out forwards;transform:translateY(-10px)}.animate-delay-1{animation-delay:50ms}.animate-delay-2{animation-delay:.1s}.animate-delay-3{animation-delay:.15s}.animate-delay-4{animation-delay:.2s}.animate-delay-5{animation-delay:.26s}.animate-delay-6{animation-delay:.32s}.animate-delay-7{animation-delay:.38s}.animate-delay-8{animation-delay:.44s}.animate-delay-9{animation-delay:.5s}@keyframes reveal-from-top{0%{opacity:0;filter:blur(8px);transform:translateY(-10px)}to{opacity:1;filter:blur();transform:translateY(0)}}@media (max-width:640px){.shell{max-width:350px;margin-inline:1.25rem auto}.site-header{padding-bottom:1.2rem}.avatar-mark{width:48px;height:48px}.site-nav{align-items:flex-start}.nav-links{row-gap:.8rem}.theme-toggle{width:2.25rem;height:2.25rem}.bio-section p{text-align:left;font-size:14px;line-height:1.65}.bio-section .contact-line{font-size:14px}.traffic-lights{padding-block:2.6rem}.project-item{grid-template-columns:auto minmax(0,1fr);align-items:flex-start}.project-tags{grid-column:2;justify-content:flex-start}.project-copy{font-size:14px}.writing-section p{text-align:left}}@media (max-width:380px){.nav-links{gap:.92rem}.nav-links a{font-size:14px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}.animate-in{opacity:1;filter:none;transform:none}}@media print{.site-nav,.theme-toggle,.traffic-lights{display:none!important}body{color:#000;background:#fff;font-size:11pt}.shell{width:100%}a{color:#000;text-decoration:underline}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0))}}