/*! tailwindcss v4.1.11 | 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)))){*,:before,:after,::backdrop{--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-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;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}:-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{.visible{visibility:visible}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.contents{display:contents}.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)}}:root{--paper:#f3f5f8;--surface:#fff;--ink:#142033;--ink-soft:#33405a;--muted:#5b6779;--line:#dde2ea;--line-strong:#c3cbd8;--accent:#2346d4;--accent-ink:#fff;--accent-soft:#e6ebfc;--signal:#d98a0b;--font:"Schibsted Grotesk",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;--gutter:clamp(1rem,4vw,2.5rem);--max:72rem;--ease:cubic-bezier(.2,.7,.2,1);color-scheme:light}@media (prefers-color-scheme:dark){:root{--paper:#0c131d;--surface:#131c29;--ink:#e8edf4;--ink-soft:#c3ccd9;--muted:#8e9bb0;--line:#223047;--line-strong:#34445f;--accent:#8ba4ff;--accent-ink:#0c131d;--accent-soft:#1b2744;--signal:#f2b544;color-scheme:dark}}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:5rem}body{background:var(--paper);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;margin:0;font-size:1.0625rem;line-height:1.6}::selection{background:var(--accent);color:var(--accent-ink)}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}.skip-link{z-index:100;background:var(--ink);color:var(--paper);border-radius:8px;padding:.5rem .9rem;transition:top .2s;position:absolute;top:-3rem;left:1rem}.skip-link:focus{top:1rem}.nav{z-index:50;border-bottom:1px solid #0000;transition:background-color .25s,border-color .25s;position:sticky;top:0}.nav-scrolled{background:var(--paper)}@supports (color:color-mix(in lab,red,red)){.nav-scrolled{background:color-mix(in srgb,var(--paper)82%,transparent)}}.nav-scrolled{-webkit-backdrop-filter:blur(12px)saturate(1.4);border-bottom-color:var(--line)}.nav-inner{max-width:var(--max);padding:.85rem var(--gutter);align-items:center;gap:1.5rem;margin:0 auto;display:flex}.nav-name{letter-spacing:-.01em;margin-right:auto;font-weight:700}.nav-links{gap:.25rem;margin:0;padding:0;list-style:none;display:flex}.nav-links a{color:var(--muted);border-radius:8px;padding:.35rem .7rem;font-size:.9375rem;transition:color .2s;display:block;position:relative}.nav-links a:after{content:"";background:var(--accent);transform-origin:0;height:2px;transition:transform .35s var(--ease);border-radius:2px;position:absolute;bottom:.1rem;left:.7rem;right:.7rem;transform:scaleX(0)}.nav-links a:hover,.nav-links a[aria-current=true]{color:var(--ink)}.nav-links a[aria-current=true]:after{transform:scaleX(1)}.nav-cta{border:1px solid var(--line-strong);border-radius:10px;align-items:center;gap:.45rem;padding:.45rem .85rem;font-size:.9375rem;font-weight:600;transition:border-color .2s,background-color .2s;display:inline-flex}.nav-cta:hover{border-color:var(--ink)}@media (max-width:760px){.nav-links{display:none}}.hero{max-width:var(--max);padding:clamp(2.5rem,7vw,5.5rem)var(--gutter)clamp(3rem,8vw,6rem);grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);align-items:center;gap:clamp(2rem,5vw,4.5rem);margin:0 auto;display:grid}.hero-name{letter-spacing:-.04em;margin:0 0 1.4rem;font-size:clamp(2.6rem,6.6vw,5.4rem);font-weight:800;line-height:.94}.hero-name>span{white-space:nowrap;display:block}.hero-name>span+span{color:var(--ink-soft)}.hero-tagline{letter-spacing:-.015em;max-width:30ch;margin:0 0 1rem;font-size:clamp(1.25rem,2.2vw,1.55rem);font-weight:600;line-height:1.3}.hero-summary{max-width:54ch;color:var(--muted);margin:0 0 2rem}.hero-actions{flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:1.75rem;display:flex}.btn{font:inherit;cursor:pointer;transition:background-color .2s,border-color .2s,color .2s,transform .2s var(--ease);border:1px solid #0000;border-radius:10px;align-items:center;gap:.5rem;padding:.7rem 1.1rem;font-size:.9375rem;font-weight:600;line-height:1.2;display:inline-flex}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--accent);color:var(--accent-ink)}.btn-primary:hover{background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.btn-primary:hover{background:color-mix(in srgb,var(--accent)86%,var(--ink))}}.btn-secondary{background:var(--surface);border-color:var(--line-strong)}.btn-secondary:hover{border-color:var(--ink)}.btn-quiet{border-color:var(--line-strong);color:var(--ink);background:0 0}.btn-quiet:hover{border-color:var(--ink)}.btn-icon{width:2.65rem;height:2.65rem;color:var(--muted);border-radius:10px;place-items:center;font-size:1.15rem;transition:color .2s,background-color .2s;display:inline-grid}.btn-icon:hover{color:var(--ink);background:var(--accent-soft)}.hero-meta{color:var(--muted);align-items:center;gap:.6rem;margin:0;font-size:.9375rem;display:flex}.status-dot{background:var(--signal);border-radius:50%;flex:none;width:.5rem;height:.5rem;position:relative}.status-dot:after{content:"";border:1.5px solid var(--signal);animation:ping 2.4s var(--ease)infinite;border-radius:50%;position:absolute;inset:0}.reveal{animation:rise .9s var(--ease)both;animation-delay:calc(var(--i,0)*90ms + 80ms)}@keyframes rise{0%{opacity:0;filter:blur(6px);transform:translateY(18px)}to{opacity:1;filter:none;transform:none}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}.gossip{background:var(--surface);border:1px solid var(--line);box-shadow:0 1px 0 var(--line),0 24px 48px -28px var(--ink);border-radius:18px;margin:0;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.gossip{box-shadow:0 1px 0 var(--line),0 24px 48px -28px color-mix(in srgb,var(--ink)30%,transparent)}}.gossip-canvas{background-image:radial-gradient(var(--line-strong)1px,transparent 1px);height:clamp(260px,34vw,380px);position:relative}@supports (color:color-mix(in lab,red,red)){.gossip-canvas{background-image:radial-gradient(color-mix(in srgb,var(--line-strong)60%,transparent)1px,transparent 1px)}}.gossip-canvas{background-position:-10px -10px;background-size:20px 20px}.gossip-canvas canvas{touch-action:manipulation;width:100%;height:100%;position:absolute;inset:0}.gossip figcaption{border-top:1px solid var(--line);grid-template-columns:1fr auto;align-items:center;gap:.2rem 1rem;padding:.95rem 1.15rem 1.05rem;display:grid}.gossip-status{font-size:.9375rem;font-weight:600}.gossip-hint{color:var(--muted);grid-column:1;font-size:.8125rem;line-height:1.45}.gossip-replay{font:inherit;color:var(--accent);background:var(--accent-soft);cursor:pointer;white-space:nowrap;border:0;border-radius:8px;grid-area:1/2/span 2;padding:.5rem .8rem;font-size:.8125rem;font-weight:600}.gossip-replay:hover{background:var(--accent-soft)}@supports (color:color-mix(in lab,red,red)){.gossip-replay:hover{background:color-mix(in srgb,var(--accent-soft)70%,var(--accent))}}@media (max-width:900px){.hero{grid-template-columns:1fr}}@media (max-width:520px){.gossip figcaption{grid-template-columns:1fr}.gossip-replay{grid-area:auto/1;justify-self:start;margin-top:.5rem}}main{display:block}.section{max-width:var(--max);padding:clamp(3rem,7vw,5rem)var(--gutter);border-top:1px solid var(--line);grid-template-columns:13rem minmax(0,1fr);gap:2rem clamp(2rem,5vw,4rem);margin:0 auto;display:grid}.section-title{letter-spacing:-.01em;color:var(--ink);margin:0;font-size:1.0625rem;font-weight:700}.section-title:before{content:"";background:var(--accent);border-radius:2px;width:1.5rem;height:3px;margin-bottom:.9rem;display:block}@media (min-width:901px){.section-title{align-self:start;position:sticky;top:5.5rem}}@media (max-width:900px){.section{grid-template-columns:1fr}}.timeline{margin:0;padding:0;list-style:none}.role{grid-template-columns:8.5rem minmax(0,1fr);gap:.25rem 2rem;padding-bottom:2.75rem;display:grid;position:relative}.role:last-child{padding-bottom:0}.role-body{padding-left:1.75rem;position:relative}.role-body:before{content:"";background:var(--line-strong);width:1px;position:absolute;top:.55rem;bottom:-2.75rem;left:0}.role:last-child .role-body:before{bottom:0}.role-body:after{content:"";background:var(--paper);border:2px solid var(--accent);border-radius:50%;width:9px;height:9px;position:absolute;top:.45rem;left:-4px}.role:first-child .role-body:after{background:var(--accent)}.role-dates{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;padding-top:.1rem;font-size:.9375rem}.role-title{letter-spacing:-.01em;margin:0;font-size:1.1875rem;font-weight:700;line-height:1.35}.role-at{color:var(--ink-soft);font-weight:500}.role-at a{background-image:linear-gradient(var(--accent),var(--accent));transition:background-size .3s var(--ease);background-position:0 100%;background-repeat:no-repeat;background-size:0 1.5px}.role-at a:hover{background-size:100% 1.5px}.role-location{color:var(--muted);margin:.15rem 0 .9rem;font-size:.9375rem}.role-points{max-width:68ch;margin:0;padding:0;list-style:none}.role-points li{color:var(--ink-soft);padding-left:1.1rem;position:relative}.role-points li+li{margin-top:.5rem}.role-points li:before{content:"";background:var(--line-strong);border-radius:1px;width:.4rem;height:2px;position:absolute;top:.75em;left:0}.results{background:var(--surface);border:1px solid var(--line);border-radius:12px;grid-template-columns:repeat(3,minmax(0,1fr));max-width:34rem;margin:0 0 1.1rem;display:grid}.results>div{flex-direction:column-reverse;justify-content:flex-end;padding:.8rem 1rem;display:flex}.results>div+div{border-left:1px solid var(--line)}.results dt{color:var(--muted);font-size:.8125rem;line-height:1.35}.results dd{letter-spacing:-.03em;color:var(--accent);margin:0 0 .1rem;font-size:clamp(1.25rem,2.6vw,1.6rem);font-weight:800}@media (max-width:640px){.role{grid-template-columns:1fr}.role-dates{padding-left:1.75rem}.role-body:before{top:-1.2rem}.role-body:after{top:-1.15rem}.role:first-child .role-body:before{top:-1rem}.results>div{padding:.65rem .7rem}.results dd{font-size:1.125rem}.results dt{font-size:.75rem}}.projects{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:0;padding:0;list-style:none;display:grid}.project{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:1.4rem 1.5rem 1.5rem;transition:border-color .25s;position:relative}.project:first-child{grid-column:1/-1}.project:hover{border-color:var(--line-strong)}.project-head{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.project-name{letter-spacing:-.025em;margin:0;font-size:1.375rem;font-weight:800}.project:first-child .project-name{font-size:clamp(1.5rem,3vw,2rem)}.project-name a:after{content:"";border-radius:inherit;position:absolute;inset:0}.project-arrow{vertical-align:-.05em;color:var(--muted);transition:transform .25s var(--ease),color .25s;margin-left:.3rem;font-size:.8em;display:inline-block}.project:hover .project-arrow,.pub-title a:hover .project-arrow{color:var(--accent);transform:translate(2px,-2px)}.project-when{color:var(--muted);font-size:.875rem}.project-url{color:var(--accent);margin:.1rem 0 .75rem;font-size:.875rem}.project-summary{max-width:62ch;color:var(--ink-soft);margin:0 0 1.1rem}@media (max-width:700px){.projects{grid-template-columns:1fr}}.tags{flex-wrap:wrap;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.tags li{color:var(--ink-soft);background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:.2rem .6rem;font-size:.8125rem;line-height:1.5}.pubs{margin:0;padding:0;list-style:none}.pub+.pub{border-top:1px solid var(--line);margin-top:1.75rem;padding-top:1.75rem}.pub-title{letter-spacing:-.015em;max-width:44ch;margin:0 0 .35rem;font-size:1.25rem;font-weight:700;line-height:1.3}.pub-title a:hover{color:var(--accent)}.pub-venue{color:var(--ink-soft);max-width:64ch;margin:0;font-style:italic}.pub-authors{color:var(--muted);margin:.2rem 0 0;font-size:.9375rem}.skills{margin:0}.skill-row{border-bottom:1px solid var(--line);grid-template-columns:8.5rem minmax(0,1fr);gap:.5rem 2rem;padding:.9rem 0;display:grid}.skill-row:first-child{padding-top:0}.skill-row:last-child{border-bottom:0}.skill-row dt{padding-top:.15rem;font-weight:600}.skill-row dd{margin:0}.skill-row .tags li{background:var(--surface)}@media (max-width:640px){.skill-row{grid-template-columns:1fr}}.edu{margin:0;padding:0;list-style:none}.edu li{justify-content:space-between;gap:1.5rem;display:flex}.edu li+li{margin-top:1.5rem}.edu-school{letter-spacing:-.01em;margin:0;font-size:1.1875rem;font-weight:700}.edu-degree{color:var(--ink-soft);margin:.1rem 0 0}.edu-when{text-align:right;color:var(--muted);white-space:nowrap;margin:0;font-size:.9375rem}.edu-when span{display:block}@media (max-width:640px){.edu li{flex-direction:column;gap:.25rem}.edu-when{text-align:left}.edu-when span{margin-left:.5rem;display:inline}}.contact{max-width:var(--max);padding:clamp(4rem,10vw,7rem)var(--gutter);border-top:1px solid var(--line);margin:0 auto}.contact-title{letter-spacing:-.035em;max-width:22ch;margin:0 0 1rem;font-size:clamp(2rem,5vw,3.4rem);font-weight:800;line-height:1.04}.contact-lede{max-width:50ch;color:var(--muted);margin:0 0 2rem}.contact-email{letter-spacing:-.025em;color:var(--accent);overflow-wrap:anywhere;transition:background-size .35s var(--ease);background-image:linear-gradient(currentColor,currentColor);background-position:0 100%;background-repeat:no-repeat;background-size:100% 2px;padding-bottom:.15rem;font-size:clamp(1.4rem,4.4vw,2.6rem);font-weight:700;display:inline-block}.contact-email:hover{background-position:100% 100%;background-size:0 2px}.contact-actions{flex-wrap:wrap;gap:.6rem;margin:1.75rem 0 2.5rem;display:flex}.elsewhere{flex-wrap:wrap;gap:.5rem 1.75rem;margin:0;padding:0;list-style:none;display:flex}.elsewhere a{color:var(--ink-soft);border-bottom:1px solid var(--line-strong);font-weight:500;transition:color .2s,border-color .2s}.elsewhere a:hover{color:var(--accent);border-color:var(--accent)}.footer{max-width:var(--max);padding:1.5rem var(--gutter)2.5rem;color:var(--muted);border-top:1px solid var(--line);justify-content:space-between;gap:1rem;margin:0 auto;font-size:.875rem;display:flex}.footer p{margin:0}.footer a:hover{color:var(--ink)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important}}@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}
