/*! tailwindcss v4.3.3 | 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-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--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;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, 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;--color-white:#fff;--spacing:.25rem;--ease-out:cubic-bezier(0, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1)}}@layer base,components;@layer utilities{.invisible{visibility:hidden}.visible{visibility:visible}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.isolate{isolation:isolate}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.block{display:block}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.h-5{height:calc(var(--spacing) * 5)}.w-5{width:calc(var(--spacing) * 5)}.shrink{flex-shrink:1}.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}.gap-2{gap:calc(var(--spacing) * 2)}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.bg-white{background-color:var(--color-white)}.text-wrap{text-wrap:wrap}.uppercase{text-transform:uppercase}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.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)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.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,)}.filter{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,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))}@media (width>=400px){.min-\[400px\]\:gap-3{gap:calc(var(--spacing) * 3)}}}:root{--ground:#131415;--ink:#ecebe6;--ink-2:#b6b7b2;--ink-3:#8d8f8b;--line:#ecebe621;--line-2:#ecebe657;--accent:#b46cff;--accent-ink:#15062a;--accent-hover:#c28aff;--accent-press:#a85cf5;--mark:#b46cff57;--display:var(--font-schibsted-grotesk);--serif:var(--font-source-serif-4);--mono:var(--font-b612-mono);--bar-h:56px;--dock-h:0px;--gutter:clamp(16px, 4vw, 56px);color-scheme:dark}:root[data-theme=light]{--ground:#e7eae5;--ink:#1f2226;--ink-2:#43474c;--ink-3:#5b6066;--line:#1f222621;--line-2:#1f222661;--accent:#7322d6;--accent-ink:#fff;--accent-hover:#6119b8;--accent-press:#4a0f92;--mark:#965cff4d;color-scheme:light}@media (width<=759px){:root{--dock-h:56px}}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--bar-h) + 20px);scrollbar-color:var(--line-2) var(--ground)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{padding-bottom:var(--dock-h);font-family:var(--serif);color:var(--ink);background:var(--ground);-webkit-font-smoothing:antialiased;margin:0;font-size:1.125rem;line-height:1.6}::selection{background:var(--accent);color:var(--accent-ink)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}a{color:inherit;text-underline-offset:.22em;text-decoration-thickness:1px}img{max-width:100%;height:auto;display:block}mark{background:linear-gradient(transparent 12%, var(--mark) 12%, var(--mark) 88%, transparent 88%);color:inherit;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding:0 .12em}.mono{font-family:var(--mono);letter-spacing:0;font-size:.8em}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip{z-index:60;background:var(--accent);color:var(--accent-ink);padding:8px 12px;position:absolute;top:8px;left:-999px}.skip:focus{left:8px}main{overflow-x:clip}p,li{text-wrap:pretty}h3,h4{text-wrap:balance}.bar{z-index:30;height:var(--bar-h);padding:0 var(--gutter);background:var(--ground);border-bottom:1px solid var(--line);font-family:var(--display);align-items:center;gap:24px;display:flex;position:sticky;top:0}.brand{letter-spacing:-.015em;align-items:center;min-height:44px;font-size:1.05rem;font-weight:800;text-decoration:none;display:inline-flex}.bar-nav{gap:2px;height:100%;margin-left:auto;display:none}.bar-nav a,.lang,.cv{min-height:44px;color:var(--ink-2);align-items:center;gap:6px;padding:0 12px;font-size:.95rem;font-weight:600;text-decoration:none;display:inline-flex}.bar-nav a{height:100%}.bar-nav a:hover,.lang:hover{color:var(--ink)}.bar-nav a[aria-current=true]{color:var(--ink);box-shadow:inset 0 -2px var(--accent)}.bar-controls{align-items:center;margin-left:auto;display:flex}.bar-nav+.bar-controls{margin-left:0}.lang{justify-content:center;min-width:44px}.cv{color:var(--ink);font-weight:700}.cv .mono{color:var(--accent);border:1px solid;padding:0 4px;font-size:11px;line-height:1.6}.cv:hover{color:var(--accent)}.theme{width:44px;height:44px;color:var(--ink-2);cursor:pointer;background:0 0;border:0;place-items:center;display:grid}.theme svg{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linejoin:round;width:20px;height:20px}.theme:hover{color:var(--accent)}@media (width>=760px){.bar-nav{display:flex}}@media (width<=419px){.bar{gap:12px}.cv{justify-content:center;min-width:44px}.cv .mono{display:none}}@media (width<=359px){.bar{gap:8px}.brand{font-size:.95rem}.cv{gap:4px;padding-inline:6px}.lang{padding-inline:0}}.dock{z-index:30;height:var(--dock-h);background:var(--ground);border-top:1px solid var(--line-2);font:600 .95rem/1.2 var(--display);grid-template-columns:repeat(3,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.dock a{color:var(--ink-2);border-left:1px dashed var(--line-2);place-items:center;text-decoration:none;display:grid}.dock a:first-child{border-left:0}.dock a[aria-current=true]{color:var(--ink);box-shadow:inset 0 3px var(--accent)}@media (width>=760px){.dock{display:none}}.actions{flex-wrap:wrap;gap:12px;margin-top:32px;display:flex}.btn{min-height:48px;font:700 1rem/1.3 var(--display);color:var(--ink);border:1px solid var(--line-2);align-items:center;gap:8px;padding:0 22px;text-decoration:none;transition:border-color .2s,background-color .2s,color .2s;display:inline-flex}.btn svg{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.btn:hover{border-color:var(--accent);color:var(--accent)}.btn--primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.btn--primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:var(--accent-ink)}.btn--primary:active{background:var(--accent-press);border-color:var(--accent-press);color:var(--accent-ink)}.btn--quiet{border-color:#0000;padding-inline:10px}.hero{padding:clamp(56px, 9vw, 112px) max(var(--gutter), (100% - 1320px) / 2) clamp(64px, 9vw, 120px);align-content:center;display:grid}.name{font-family:var(--display);letter-spacing:-.045em;text-wrap:balance;margin:0;font-size:clamp(2.3rem,6.8vw,5.75rem);font-weight:850;line-height:.9}.role{font:650 clamp(1.4rem, 2.6vw, 2.2rem)/1.2 var(--display);letter-spacing:-.01em;margin:18px 0 0}.intro{max-width:34ch;margin:32px 0 0;font-size:clamp(1.25rem,1.9vw,1.6rem);line-height:1.45}.hero .portrait{order:-1;width:clamp(120px,32vw,184px);margin-bottom:clamp(28px,6vw,40px)}@media (width>=960px){.hero{min-height:min(calc(100svh - var(--bar-h)), 860px);grid-template-columns:max-content minmax(0,1fr);align-items:center;column-gap:clamp(48px,5vw,88px)}.hero .portrait{justify-self:center}.role,.intro{margin-top:28px}.hero .portrait{order:0;width:clamp(220px,21vw,300px);margin:0}}.role mark{background-repeat:no-repeat}.js[data-motion=pending] :is(.hero .name,.hero .intro,.hero .actions){opacity:0}.js[data-motion=pending] .hero .portrait{clip-path:circle(0%)}.js[data-motion=pending] .hero .role mark{background-size:0 100%}.portrait{margin:0;position:relative}.portrait img{aspect-ratio:1;object-fit:cover;border-radius:50%;width:100%}.section{padding:clamp(96px, 12vw, 168px) max(var(--gutter), (100% - 1320px) / 2) 0;border-top:1px solid var(--line-2)}.section-head{margin-bottom:clamp(40px,5vw,64px)}.section-title{font:850 clamp(2.6rem, 5.6vw, 4.6rem)/.95 var(--display);letter-spacing:-.035em;margin:0}.section-head--small .section-title,.section-title--small{font-size:clamp(2.1rem,4.2vw,3.2rem)}.project{gap:40px;display:grid}@media (width>=1000px){.project{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:start;column-gap:clamp(48px,5vw,88px)}}.project+.project{margin-top:clamp(96px,12vw,160px)}.projects{padding-bottom:clamp(72px,9vw,120px)}.project-title{flex-wrap:wrap;align-items:baseline;gap:8px 20px;display:flex}.project-name{font:850 clamp(2.2rem, 4.2vw, 3.6rem)/1 var(--display);letter-spacing:-.035em;margin:0}.status{font:400 12px/1.6 var(--mono);text-transform:uppercase;color:var(--ink-2);align-items:center;gap:8px;margin:0;display:inline-flex}.status:before{content:"";background:var(--accent);border-radius:50%;width:8px;height:8px}.project-dek{font:500 clamp(1.25rem, 2vw, 1.6rem)/1.3 var(--display);letter-spacing:-.01em;margin:14px 0 0}.project-copy>p:not(.project-dek){max-width:54ch;color:var(--ink-2);margin:20px 0 0}.project-copy>.project-stack{border-top:1px solid var(--line);gap:4px;margin-top:28px;padding-top:12px;line-height:1.8;display:grid}.fig{margin:0}.capture{--feather:34%;position:relative}.capture img{width:100%}.capture.is-veiled{--edge:calc((1 - var(--veil,0)) * (100% + var(--feather)));-webkit-mask-image:linear-gradient(to bottom, #000 calc(var(--edge) - var(--feather)), transparent var(--edge));-webkit-mask-image:linear-gradient(to bottom, #000 calc(var(--edge) - var(--feather)), transparent var(--edge));-webkit-mask-image:linear-gradient(to bottom, #000 calc(var(--edge) - var(--feather)), transparent var(--edge));mask-image:linear-gradient(to bottom, #000 calc(var(--edge) - var(--feather)), transparent var(--edge))}.highlights{counter-reset:h;font-family:var(--display);grid-template-columns:repeat(2,minmax(0,1fr));column-gap:20px;margin:16px 0 0;padding:0;font-size:.95rem;list-style:none;display:grid}@media (width<=520px){.highlights{grid-template-columns:1fr}}.highlights li{counter-increment:h;border-top:1px solid var(--line);opacity:clamp(0, calc(1 - var(--veil,0) * 1.8), 1);transform:translateY(calc(var(--veil,0) * 14px));align-items:baseline;gap:10px;padding:10px 12px 10px 0;display:flex}.highlights li:before{content:counter(h);font:700 .78rem/1.4 var(--mono);color:var(--accent)}.experience{font-size:1.02rem}.job{margin-bottom:clamp(48px,6vw,72px)}.rev-head{border-collapse:collapse;width:100%;font-family:var(--display)}.rev-head th{font:400 11px/1.6 var(--mono);text-transform:uppercase;color:var(--ink-3);text-align:left;border:1px solid var(--line-2);white-space:nowrap;width:1%;padding:8px 12px}.rev-head td{border:1px solid var(--line);padding:8px 12px;font-weight:600}.rev-head tr:first-child th:first-child{box-shadow:inset 2px 0 var(--accent)}.rev-head h3{font:800 1.3rem/1.3 var(--display);letter-spacing:-.01em;margin:0}@media (width<=700px){.rev-head tr{grid-template-columns:6.5rem 1fr;display:grid}.rev-head th{width:auto}}.scope{max-width:64ch;color:var(--ink-2);margin:20px 0 0}.milestones{counter-reset:m;gap:22px 48px;margin:28px 0 0;padding:0;list-style:none;display:grid}@media (width>=1000px){.milestones{grid-template-columns:1fr 1fr}}.milestones li{counter-increment:m;border-top:1px solid var(--line-2);color:var(--ink-2);max-width:64ch;padding-top:12px;font-size:.98rem;position:relative}.milestones li:before{content:"";background:var(--accent);width:28px;height:2px;position:absolute;top:-1px;left:0}.milestones b{font:700 1rem/1.4 var(--display);color:var(--ink);flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin-bottom:6px;display:flex}.milestones b:before{content:counter(m, decimal-leading-zero);font:700 .8rem/1.4 var(--mono);color:var(--accent)}.milestones b .mono{color:var(--ink-3);font-weight:400}.materials{border:1px solid var(--line-2);color:var(--ink-2);gap:4px;margin:28px 0 0;padding:12px 14px;line-height:1.8;display:grid}.label{font:11px/1.4 var(--mono);text-transform:uppercase;color:var(--ink-3)}.contact{padding-bottom:clamp(96px,12vw,168px);display:grid}@media (width>=960px){.contact{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:end;column-gap:clamp(48px,5vw,88px)}.contact .lead,.contact .links{margin-bottom:0}}.contact .lead{max-width:46ch;color:var(--ink-2);margin:28px 0 8px;font-size:clamp(1.15rem,1.6vw,1.35rem)}.email{font:800 clamp(1.35rem, 3.2vw, 2.4rem)/1.3 var(--display);letter-spacing:-.025em;text-decoration:underline;-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:.18em;overflow-wrap:anywhere;margin:0 0 -4px;padding-block:8px;text-decoration-thickness:3px;display:inline-block}.email:hover{color:var(--accent)}.links{font:700 1rem/1.3 var(--display);flex-wrap:wrap;gap:4px 28px;display:flex}.links a{align-items:center;min-height:44px;display:inline-flex}.links a:hover{color:var(--accent)}.foot{padding:20px var(--gutter) 28px;border-top:1px solid var(--line);color:var(--ink-3);font:.9rem/1.5 var(--display);flex-wrap:wrap;align-items:center;gap:12px 28px;display:flex}@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-border-style{syntax:"*";inherits:false;initial-value:solid}@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}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
