@font-face{font-family:Schibsted Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/schibsted-grotesk-latin-400-normal.woff2) format("woff2")}@font-face{font-family:Schibsted Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/schibsted-grotesk-latin-500-normal.woff2) format("woff2")}:root{--ground: #0f0f10;--frame: #161618;--ink: #eceae4;--muted: rgba(236, 234, 228, .58);--faint: rgba(236, 234, 228, .34);--hair: rgba(236, 234, 228, .14);--accent: #5b78ff;--gutter: 24px;--max: 1680px;--head-h: 64px;--display: clamp(2.25rem, 4.8vw, 5rem);--ease: cubic-bezier(.2, .7, .2, 1)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body,h1,h2,h3,p,ul,ol,dl,dd,figure{margin:0}ul,ol{padding:0;list-style:none}img{display:block;max-width:100%;height:auto}a{color:inherit}summary{list-style:none;cursor:pointer}summary::-webkit-details-marker{display:none}::selection{background:var(--accent);color:var(--ground)}:focus-visible{outline:1px solid var(--accent);outline-offset:4px}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}body{min-height:100vh;display:flex;flex-direction:column;overflow-x:clip;font-family:Schibsted Grotesk,system-ui,-apple-system,Segoe UI,Helvetica,Arial,sans-serif;font-size:1rem;line-height:1.5;background:var(--ground);color:var(--ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}.main{flex:1;width:100%;max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}.skip{position:absolute;left:var(--gutter);top:-100px;z-index:30;padding:8px 12px;background:var(--ink);color:var(--ground);text-decoration:none}.skip:focus{top:12px}.label{display:inline-block;font-size:11.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);text-decoration:none;line-height:1.2}.label a{display:inline-block;padding:6px 0;color:inherit;text-decoration:none;background-image:linear-gradient(var(--accent),var(--accent));background-repeat:no-repeat;background-size:0% 1px;background-position:0 100%;transition:background-size .24s var(--ease)}.label a:hover,a.label:hover{color:var(--ink)}.label a:hover{background-size:100% 1px}.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.site-head{position:sticky;top:0;z-index:10;height:var(--head-h);display:flex;align-items:center;justify-content:space-between;padding:0 var(--gutter);background:var(--ground);border-bottom:1px solid var(--hair)}.site-name{font-weight:500;letter-spacing:-.01em;text-decoration:none;transition:opacity .2s var(--ease)}.site-name.is-quiet{opacity:0;pointer-events:none}.site-nav{display:flex;align-items:center;gap:28px}.site-nav a,.works-menu summary{text-decoration:none;background-image:linear-gradient(var(--accent),var(--accent));background-repeat:no-repeat;background-size:0% 1.5px;background-position:0 calc(100% - 6px);transition:background-size .24s var(--ease);padding:8px 0}.site-nav a:hover,.site-nav a[aria-current=page],.works-menu summary:hover,.works-menu[open] summary{background-size:100% 1.5px}.works-menu{position:relative}.works-menu summary:after{content:"";display:inline-block;width:6px;height:6px;margin-left:8px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:translateY(-3px) rotate(45deg);transition:transform .2s var(--ease)}.works-menu[open] summary:after{transform:translateY(0) rotate(-135deg)}.works-list{position:absolute;top:calc(100% + 14px);left:-16px;min-width:220px;padding:8px 0;background:var(--ground);border:1px solid var(--hair);z-index:20}.works-list li a{display:block;padding:9px 16px;background:none}.works-list li a:hover,.works-list li a[aria-current=page]{background:none;color:var(--ink)}.works-list li a[aria-current=page]:before{content:"";display:inline-block;width:6px;height:6px;margin-right:10px;border-radius:50%;background:var(--accent);vertical-align:middle}.works-list li a:hover{text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:.2em}.band{position:relative}.band:after{content:"";position:absolute;left:50%;bottom:0;width:100vw;transform:translate(-50%);border-bottom:1px solid var(--hair)}.hero{padding:clamp(72px,12vh,140px) 0 clamp(40px,6vh,72px)}.hero-name{font-weight:400;font-size:clamp(4.5rem,12.5vw,13rem);line-height:.9;letter-spacing:-.04em;text-wrap:balance}.intro{padding:48px 0 52px}.intro-text{font-weight:400;font-size:clamp(1.625rem,3vw,2.75rem);line-height:1.12;letter-spacing:-.02em;max-width:26ch}.page-head{padding:72px 0 16px}.page-title{margin-top:10px;font-weight:400;font-size:var(--display);line-height:.95;letter-spacing:-.025em}.index{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:64px;align-items:start;padding-bottom:120px}.index-list{min-width:0}.page-home .index{padding-top:56px}.group+.group,.group+.more{margin-top:48px}.group .label{padding-bottom:12px}.titles{border-top:1px solid var(--hair)}.row{display:flex;align-items:baseline;justify-content:space-between;gap:24px;padding:16px 0 18px;border-bottom:1px solid var(--hair)}.title{min-width:0;font-size:var(--display);font-weight:400;line-height:.95;letter-spacing:-.025em;text-decoration:none;text-wrap:balance;background-image:linear-gradient(var(--accent),var(--accent));background-repeat:no-repeat;background-size:0% 3px;background-position:0 100%;padding-bottom:.06em;transition:background-size .3s var(--ease)}.title:hover,.title:focus-visible{background-size:100% 3px}.title:focus-visible{outline:none}.row-meta{flex-shrink:0;max-width:38%;display:inline-flex;flex-wrap:wrap;justify-content:flex-end;align-items:baseline;gap:6px 10px;text-align:right}.status{font-size:11.5px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.status--live{color:var(--accent)}.status-note{font-size:12px;color:var(--muted)}.tag{font-size:10.5px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);border:1px solid var(--hair);border-radius:2px;padding:2px 6px}.preview{position:sticky;top:calc(var(--head-h) + 40px);min-width:0}.preview-frame{position:relative;aspect-ratio:16 / 10;display:grid;place-items:center;overflow:hidden;border:1px solid var(--hair);background:var(--frame);visibility:hidden;opacity:0}.preview-frame img{width:100%;height:100%;object-fit:contain}.preview-empty{display:none;font-size:11.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}.preview.is-empty img{display:none}.preview.is-empty .preview-empty{display:block}.preview-caption{min-height:1.4em;margin-top:12px;font-size:13px;color:var(--muted)}.standard{border-top:1px solid var(--hair)}.standard-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"title meta" "line meta";gap:6px 24px;padding:18px 0 20px;border-bottom:1px solid var(--hair)}.standard-title{grid-area:title;justify-self:start;font-size:clamp(1.375rem,2vw,1.75rem);letter-spacing:-.015em;line-height:1.15;text-decoration:none;background-image:linear-gradient(var(--accent),var(--accent));background-repeat:no-repeat;background-size:0% 2px;background-position:0 100%;padding-bottom:2px;transition:background-size .26s var(--ease)}.standard-title:hover,.standard-title:focus-visible{background-size:100% 2px;outline:none}.standard-line{grid-area:line;max-width:64ch;font-size:15px;color:var(--muted)}.standard-row .row-meta{grid-area:meta;align-self:start;max-width:none;flex-wrap:nowrap;white-space:nowrap;padding-top:8px}.more-summary{display:flex;align-items:center;gap:12px;padding:0 0 12px;border-bottom:1px solid var(--hair)}.more-summary .label{padding:0}.more-summary:hover .label{color:var(--ink)}.more-count{font-size:11.5px;color:var(--muted)}.more-summary:after{content:"";margin-left:auto;width:8px;height:8px;border-right:1px solid var(--muted);border-bottom:1px solid var(--muted);transform:translateY(-2px) rotate(45deg);transition:transform .2s var(--ease)}.more[open] .more-summary:after{transform:translateY(2px) rotate(-135deg)}.more-body{overflow:hidden}.more-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name meta" "line meta";gap:2px 24px;padding:14px 0 16px;border-bottom:1px solid var(--hair)}.more-name{grid-area:name;font-size:1.0625rem;letter-spacing:-.01em}.more-line{grid-area:line;max-width:64ch;font-size:14px;color:var(--muted)}.more-row .row-meta{grid-area:meta;align-self:start;padding-top:4px;gap:14px}.more-row .link{font-size:12px}.link{color:var(--ink);text-decoration:underline;text-decoration-thickness:1px;text-decoration-color:var(--faint);text-underline-offset:.22em;transition:text-decoration-color .2s var(--ease)}.link:hover{text-decoration-color:var(--accent)}.detail{max-width:1240px;padding:64px 0 104px}.detail-title{margin:14px 0 18px;font-weight:400;font-size:clamp(2.5rem,6vw,6.5rem);line-height:.95;letter-spacing:-.025em;text-wrap:balance}.detail-lede{max-width:44ch;font-size:clamp(1.125rem,1.6vw,1.5rem);line-height:1.3;letter-spacing:-.01em}.meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin-top:44px;padding:20px 0;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}.meta dt{font-size:11.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.meta dd{margin-top:8px;font-size:14px;line-height:1.5;overflow-wrap:anywhere}.meta dd a:not(.link){display:inline-block;padding:3px 0;text-decoration:none}.meta dd a:not(.link):hover{text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:.2em}.meta-links{display:flex;flex-wrap:wrap;gap:4px 18px}.meta-links .link,.elsewhere .link{display:inline-block;padding:3px 0}.back{padding:6px 0}.meta .status-note{display:block}.meta .tag{margin-left:8px}.detail-body{max-width:62ch;padding:52px 0 56px;font-size:clamp(1.0625rem,1.25vw,1.25rem);line-height:1.5}.detail-body p+p,.info-body p+p{margin-top:1em}.detail-body a{text-decoration-color:var(--faint);text-underline-offset:.2em}.shots{display:grid;gap:44px}.shot img,.shot-placeholder{width:100%;border:1px solid var(--hair);background:var(--frame)}.shot-placeholder{aspect-ratio:16 / 10;display:grid;place-items:center;font-size:11.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}.shot figcaption{margin-top:10px;font-size:13px;color:var(--muted)}.detail-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px;margin-top:64px;padding:48px 0 64px;border-top:1px solid var(--hair)}.fact-title{margin-bottom:12px;font-size:15px;font-weight:500;letter-spacing:-.005em}.fact p,.fact li{font-size:15px;line-height:1.5}.stack-list li+li,.plain li+li{margin-top:8px}.numbered{list-style:decimal;padding-left:1.5em}.numbered li+li{margin-top:12px}.numbered li::marker{color:var(--muted)}.detail-nav{display:flex;justify-content:space-between;gap:24px;padding-top:24px;border-top:1px solid var(--hair)}.detail-nav a{display:flex;flex-direction:column;gap:8px;max-width:48%;font-size:clamp(1.25rem,2vw,1.75rem);letter-spacing:-.015em;line-height:1.15;text-decoration:none}.detail-nav a:hover{text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:.15em}.detail-next{text-align:right;align-items:flex-end;margin-left:auto}.info{max-width:1100px;padding:24px 0 104px}.info-block{display:grid;grid-template-columns:200px minmax(0,1fr);gap:24px 40px;padding:36px 0;border-top:1px solid var(--hair)}.stack-group+.stack-group{margin-top:16px}.stack dt{font-weight:500;font-size:15px}.stack dd{margin-top:2px;font-size:15px;color:var(--muted)}.info-lede{max-width:32ch;font-size:clamp(1.25rem,2vw,1.75rem);line-height:1.3;letter-spacing:-.015em}.capabilities li{padding:14px 0;border-bottom:1px solid var(--hair)}.capabilities li:first-child{padding-top:0}.cap-name{display:block;font-size:1.25rem;letter-spacing:-.01em}.cap-note{display:block;margin-top:4px;max-width:60ch;font-size:15px;color:var(--muted)}.info-body{border-top:0;padding-top:8px}.info-body p{max-width:56ch;font-size:clamp(1.0625rem,1.3vw,1.25rem);line-height:1.5}.elsewhere li+li{margin-top:14px}.site-foot{margin-top:40px;padding:48px var(--gutter) 24px;border-top:1px solid var(--hair)}.foot-top,.foot-row{max-width:var(--max);margin:0 auto}.foot-top{display:flex;justify-content:space-between;flex-wrap:wrap;gap:40px 64px}.foot-name{font-size:clamp(1.75rem,3vw,2.5rem);letter-spacing:-.02em;line-height:1;text-decoration:none}.foot-nav{display:flex;gap:64px}.foot-nav li{font-size:14px;line-height:1.9}.foot-nav a{display:inline-block;padding:3px 0;text-decoration:none}.foot-nav a:hover{text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:.2em}.foot-label{font-size:11.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}.foot-row{display:flex;justify-content:space-between;gap:24px;margin-top:40px;padding-top:16px;border-top:1px solid var(--hair);font-size:13px;color:var(--muted)}.foot-row a{display:inline-block;padding:2px 0;text-decoration:none}.foot-row a:hover{color:var(--ink)}@media(max-width:1023px){.index{grid-template-columns:minmax(0,1fr)}.preview{display:none}.meta{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-facts{grid-template-columns:minmax(0,1fr);gap:36px}.info-block{grid-template-columns:minmax(0,1fr);gap:16px}}@media(max-width:639px){:root{--gutter: 16px;--head-h: 56px}.site-nav{gap:20px}.hero{padding:56px 0 36px}.intro{padding:36px 0 40px}.page-home .index{padding-top:40px}.row{flex-wrap:wrap;gap:10px 16px}.row-meta{max-width:none;justify-content:flex-start;text-align:left}.standard-row,.more-row{grid-template-columns:minmax(0,1fr);grid-template-areas:"title" "line" "meta"}.more-row{grid-template-areas:"name" "line" "meta"}.standard-row .row-meta,.more-row .row-meta{padding-top:2px}.foot-nav{gap:40px}.foot-row{flex-direction:column;gap:8px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:0s!important}}.resume{max-width:820px;padding:64px 0 104px}.resume-name{margin-top:14px;font-weight:400;font-size:clamp(2.5rem,5vw,4.5rem);line-height:.95;letter-spacing:-.025em}.resume-title{margin-top:14px;font-size:clamp(1.125rem,1.6vw,1.5rem);letter-spacing:-.01em}.resume-contact{margin-top:12px;font-size:15px;color:var(--muted)}.resume-contact a{color:var(--ink);text-decoration:none}.resume-contact a:hover{text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:.2em}.resume-sep{margin:0 4px;color:var(--faint);white-space:pre}.resume-actions{margin-top:28px}.button{font:inherit;font-size:15px;font-weight:500;color:var(--ground);background:var(--ink);border:0;border-radius:2px;padding:12px 18px;cursor:pointer;transition:background-color .2s var(--ease)}.button:hover{background:var(--accent);color:#fff}.resume-section{margin-top:48px;padding-top:24px;border-top:1px solid var(--hair)}.resume-h2{font-size:11.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.resume-summary{margin-top:16px;max-width:62ch;font-size:clamp(1.0625rem,1.25vw,1.25rem);line-height:1.5}.resume-job+.resume-job{margin-top:32px}.resume-job:first-of-type{margin-top:16px}.resume-role{font-size:1.25rem;font-weight:500;letter-spacing:-.01em}.resume-org{margin-top:4px;font-size:15px;color:var(--muted)}.resume-bullets,.resume-work,.resume-skills,.resume-edu{margin-top:12px;list-style:disc;padding-left:1.2em}.resume-bullets li,.resume-work li,.resume-skills li,.resume-edu li{max-width:72ch;font-size:15px;line-height:1.5}.resume-bullets li+li,.resume-work li+li,.resume-skills li+li,.resume-edu li+li{margin-top:8px}.resume li::marker{color:var(--muted)}.resume-proof{color:var(--muted)}@page{size:letter;margin:.5in .6in}@media print{html.lenis,html.lenis body{height:auto}body{display:block;background:#fff;color:#000;font-family:Arial,Helvetica,sans-serif;font-size:10.5pt;line-height:1.35}.site-head,.site-foot,.skip,.resume-actions,.button,.resume-head .label{display:none!important}.main,.resume{max-width:none;padding:0}.resume-name{margin:0;font-size:22pt;font-weight:700;letter-spacing:0;line-height:1.1}.resume-title{margin-top:3pt;font-size:12pt;letter-spacing:0}.resume-contact{margin-top:4pt;font-size:10pt;color:#000}.resume-contact a{color:#000;text-decoration:none}.resume-sep{color:#000;margin:0 5pt}.resume-section{margin-top:9pt;padding-top:5pt;border-top:1px solid #000;break-inside:auto}.resume-h2{font-size:9.5pt;font-weight:700;letter-spacing:.08em;color:#000}.resume-summary{margin-top:5pt;max-width:none;font-size:10.5pt;line-height:1.35}.resume-job:first-of-type{margin-top:6pt}.resume-job+.resume-job{margin-top:9pt}.resume-job{break-inside:avoid}.resume-role{font-size:11pt;font-weight:700;letter-spacing:0}.resume-org{margin-top:1pt;font-size:10pt;color:#000}.resume-bullets,.resume-work,.resume-skills,.resume-edu{margin-top:4pt;padding-left:1.1em}.resume-bullets li,.resume-work li,.resume-skills li,.resume-edu li{max-width:none;font-size:9.5pt;line-height:1.28}.resume-bullets li+li,.resume-work li+li,.resume-skills li+li,.resume-edu li+li{margin-top:2pt}.resume li::marker,.resume-proof{color:#000}}
