@font-face{font-family:Schibsted Grotesk Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(../media/schibsted-grotesk-latin-ext-wght-normal.1mn47ffbmm65q.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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 Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(../media/schibsted-grotesk-latin-wght-normal.1n5gamcxs9g-p.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{--paper:#f6f7f9;--surface:#fff;--tint:#eceff4;--ink:#121a2b;--slate:#5a6577;--rule:#d9dee6;--amber:#f2b233;--amber-ink:#3b2a05;--blue:#2b4fd8;--blue-hover:#1f3db3;--ticket:#121a2b;--ticket-text:#f3f5f9;--ticket-muted:#a9b3c4;--max:1160px;--radius:14px;--font:"Schibsted Grotesk Variable", "Schibsted Grotesk", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html[data-theme=dark]{--paper:#0e1420;--surface:#151d2c;--tint:#121a28;--ink:#e9edf4;--slate:#9aa6b8;--rule:#263247;--amber:#f5c04f;--blue:#8ea6ff;--blue-hover:#b3c3ff;--ticket:#1b2539;--ticket-text:#f3f5f9;--ticket-muted:#a9b3c4;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:84px}body{background:var(--paper);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:17px;line-height:1.6}h1,h2,h3{letter-spacing:-.02em;margin:0;font-weight:760;line-height:1.12}p{margin:0}a{color:inherit}img{max-width:100%;height:auto;display:block}ul,ol,dl,dd{margin:0;padding:0}button,input,textarea{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--amber);outline-offset:3px;border-radius:6px}::selection{background:var(--amber);color:var(--amber-ink)}.container{width:min(var(--max), calc(100% - 32px));margin-inline:auto}.srOnly{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skipLink{z-index:200;background:var(--ink);color:var(--paper);border-radius:8px;padding:10px 14px;font-weight:650;position:fixed;top:-60px;left:16px}.skipLink:focus{top:12px}.button{cursor:pointer;border:1.5px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:8px;min-height:46px;padding:0 20px;font-size:16px;font-weight:650;text-decoration:none;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}.buttonPrimary{background:var(--blue);color:#fff}html[data-theme=dark] .buttonPrimary{color:#0e1420}.buttonPrimary:hover{background:var(--blue-hover)}.buttonGhost{border-color:var(--rule);background:var(--surface)}.buttonGhost:hover{border-color:var(--ink)}.buttonSmall{min-height:38px;padding:0 14px;font-size:15px}.button:disabled{opacity:.6;cursor:progress}.iconButton{border:1.5px solid var(--rule);background:var(--surface);cursor:pointer;border-radius:10px;place-items:center;width:38px;height:38px;display:grid}.iconButton:hover{border-color:var(--ink)}.textLink{color:var(--blue);text-underline-offset:3px;align-items:center;gap:6px;font-weight:650;text-decoration:underline;text-decoration-thickness:1.5px;display:inline-flex}.actions{flex-wrap:wrap;gap:12px;margin-top:28px;display:flex}.navShell{z-index:50;background:color-mix(in srgb, var(--paper) 88%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--rule);position:sticky;top:0}.nav{align-items:center;gap:24px;min-height:64px;display:flex}.brand{letter-spacing:-.02em;font-size:19px;font-weight:800;text-decoration:none}.navLinks{gap:4px;margin-left:auto;list-style:none;display:flex}.navLinks a{color:var(--slate);border-radius:8px;padding:8px 12px;font-size:15.5px;font-weight:560;text-decoration:none;display:block}.navLinks a:hover{color:var(--ink);background:var(--tint)}.navActions{align-items:center;gap:10px;display:flex}.showSmall{display:none}.hero{padding:72px 0 88px}.heroGrid{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:center;gap:64px;display:grid}.availability{border:1px solid var(--rule);background:var(--surface);color:var(--slate);border-radius:999px;align-items:center;gap:10px;margin-bottom:26px;padding:6px 14px 6px 10px;font-size:15px;font-weight:560;display:inline-flex}.availabilityDot{background:#22a06b;border-radius:50%;width:9px;height:9px;box-shadow:0 0 0 4px #22a06b38}.hero h1{letter-spacing:-.035em;text-wrap:balance;max-width:14ch;font-size:clamp(40px,5.4vw,66px);font-weight:820;line-height:1.02}.heroIntro{max-width:54ch;color:var(--slate);margin-top:24px;font-size:19px;line-height:1.6}.heroLinks{flex-wrap:wrap;gap:8px 22px;margin-top:26px;list-style:none;display:flex}.heroLinks a{color:var(--slate);align-items:center;gap:7px;font-size:15.5px;font-weight:560;text-decoration:none;display:inline-flex}.heroLinks a:hover{color:var(--ink);text-underline-offset:3px;text-decoration:underline}.ticket{--stub:128px;--notch:13px;grid-template-columns:1fr var(--stub);background:var(--ticket);color:var(--ticket-text);border-radius:18px;animation:.7s cubic-bezier(.2,.8,.2,1) both issue;display:grid;position:relative;transform:rotate(-1.4deg);box-shadow:0 30px 60px -28px #121a2b8c}@keyframes issue{0%{opacity:0;transform:translateY(18px)rotate(-4deg)}}.ticketMain{min-width:0;padding:30px 30px 26px}.ticketAdmit{border:1.5px solid var(--amber);color:var(--amber);border-radius:6px;padding:3px 10px;font-size:14px;font-weight:700;display:inline-block}.ticketEvent{letter-spacing:-.03em;margin-top:16px;font-size:clamp(30px,3.4vw,40px);font-weight:820;line-height:1.02}.ticketEvent span{color:var(--ticket-muted);letter-spacing:0;margin-top:8px;font-size:17px;font-weight:560;display:block}.ticketFields{border-top:1px solid #ffffff24;grid-template-columns:1fr 1fr;gap:16px 20px;margin-top:26px;padding-top:20px;display:grid}.ticketFields dt{color:var(--ticket-muted);font-size:13.5px}.ticketFields dd{font-size:17px;font-weight:650}.ticketStack{color:var(--ticket-muted);margin-top:22px;font-size:14.5px}.ticketStub{background:var(--amber);color:var(--amber-ink);border-left:2px dashed #121a2b73;border-radius:0 18px 18px 0;flex-direction:column;justify-content:space-between;gap:18px;padding:26px 18px 22px;text-decoration:none;transition:transform .25s;display:flex;position:relative}.ticketStub:before,.ticketStub:after{content:"";left:calc(var(--notch) * -1 - 1px);width:calc(var(--notch) * 2);height:calc(var(--notch) * 2);background:var(--paper);border-radius:50%;position:absolute}.ticketStub:before{top:calc(var(--notch) * -1)}.ticketStub:after{bottom:calc(var(--notch) * -1)}.ticketStub:hover{transform:translate(6px)rotate(2deg)}.ticketStubLabel{letter-spacing:-.02em;font-size:20px;font-weight:800}.ticketStubAction{flex-direction:column;gap:6px;font-size:15px;font-weight:650;line-height:1.25;display:flex}.barcode{background:repeating-linear-gradient(90deg, var(--amber-ink) 0 2px, transparent 2px 4px, var(--amber-ink) 4px 7px, transparent 7px 9px, var(--amber-ink) 9px 10px, transparent 10px 13px);opacity:.85;border-radius:2px;height:56px}.section{padding:96px 0}.sectionTinted{background:var(--tint);border-block:1px solid var(--rule)}.sectionHeading{max-width:720px;margin-bottom:44px}.sectionHeading h2,.contactGrid h2{letter-spacing:-.03em;font-size:clamp(32px,3.8vw,46px)}.sectionCopy{color:var(--slate);max-width:62ch;margin-top:14px;font-size:18.5px}.wakeNote{color:var(--slate);margin:-24px 0 40px;font-size:15px}.pointList{gap:10px;margin-top:18px;list-style:none;display:grid}.pointList li{color:var(--slate);padding-left:20px;position:relative}.pointList li:before{content:"";background:var(--amber);border-radius:2px;width:7px;height:7px;position:absolute;top:.68em;left:2px}.techLine{color:var(--slate);margin-top:18px;font-size:15px}.liveList{gap:104px;display:grid}.liveProject{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:start;gap:56px;display:grid}.liveProject:nth-child(2n) .liveCopy{order:2}.liveProject h3{letter-spacing:-.03em;font-size:clamp(30px,3.2vw,40px)}.liveTagline{text-wrap:balance;margin:10px 0 18px;font-size:20px;font-weight:620;line-height:1.35}.liveCopy>p:not(.liveTagline):not(.techLine){color:var(--slate)}.results{border-block:1px solid var(--rule);grid-template-columns:repeat(3,1fr);gap:16px;margin-top:26px;padding:18px 0;display:grid}.results dt{letter-spacing:-.02em;font-size:26px;font-weight:800;line-height:1.1}.results dd{color:var(--slate);margin-top:4px;font-size:14px;line-height:1.4}.liveShot{text-decoration:none;display:block;position:sticky;top:96px}.liveShot:hover .browser{transform:translateY(-4px);box-shadow:0 34px 60px -30px #121a2b80}.browser{border-radius:var(--radius);border:1px solid var(--rule);background:var(--surface);margin:0;transition:transform .25s,box-shadow .25s;overflow:hidden;box-shadow:0 26px 50px -32px #121a2b73}.browserBar{border-bottom:1px solid var(--rule);background:var(--tint);align-items:center;gap:14px;height:38px;padding:0 14px;display:flex}.browserDots{gap:6px;display:flex}.browserDots i{background:var(--rule);border-radius:50%;width:10px;height:10px}.browserUrl{background:var(--surface);max-width:340px;color:var(--slate);white-space:nowrap;text-overflow:ellipsis;border-radius:6px;flex:1;padding:3px 12px;font-size:13px;overflow:hidden}.browserView img{width:100%;height:auto}.browserScrolls{cursor:ns-resize}.browserScrolls .browserView{aspect-ratio:16/10;position:relative;overflow:hidden;container-type:size}.browserScrolls .browserView img{transition:transform 1.2s;position:absolute;inset:0 0 auto}.browserScrolls .browserView img.browserNarrow{margin-inline:auto;right:0}.browserScrolls:hover .browserView img,.browserScrolls:focus-visible .browserView img{transition:transform 9s linear;transform:translateY(calc(100cqh - 100%))}@media (hover:none),(prefers-reduced-motion:reduce){.browserScrolls{cursor:auto}.browserScrolls .browserView{overscroll-behavior:contain;overflow-y:auto}.browserScrolls .browserView img.browserNarrow{display:block}.browserScrolls .browserView img{position:static;transition:none!important;transform:none!important}}.clientGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:56px 40px;display:grid}.clientProject{align-content:start;gap:24px;display:grid}.clientProjectText{border-radius:var(--radius);border:1px solid var(--rule);background:var(--surface);align-self:start;padding:32px}.clientGrid>.clientProjectText:first-child{grid-column:1/-1}.clientProjectText .clientCopy{max-width:820px}.clientKind{color:var(--slate);font-size:15px;font-weight:560}.clientProject h3{margin-top:4px;font-size:26px}.clientRole{margin:4px 0 12px;font-size:15px;font-weight:620}.clientCopy>p:not(.clientKind):not(.clientRole):not(.techLine){color:var(--slate)}.clientCopy .textLink{margin-top:16px}.skills{border-top:1px solid var(--rule);display:grid}.skills>div{border-bottom:1px solid var(--rule);grid-template-columns:240px 1fr;gap:24px;padding:20px 0;display:grid}.skills dt{font-size:18px;font-weight:700}.skills dd{color:var(--slate);font-size:17px}.timeline{gap:44px;list-style:none;display:grid;position:relative}.timeline>li{grid-template-columns:200px 1fr;gap:40px;display:grid;position:relative}.timeline>li:before{content:"";background:var(--amber);width:11px;height:11px;box-shadow:0 0 0 4px var(--tint);border-radius:50%;position:absolute;top:.55em;left:216px}.timeline>li:after{content:"";background:var(--rule);width:1px;position:absolute;top:1.6em;bottom:-44px;left:221px}.timeline>li:last-child:after{display:none}.timeline>li>div{padding-left:26px}.timelineDates{color:var(--slate);padding-top:2px;font-size:15.5px;font-weight:600}.timeline h3{font-size:22px}.timelineCompany{margin-top:4px;font-weight:560}.contactGrid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:start;gap:64px;display:grid}.contactLinks{gap:10px;margin-top:32px;list-style:none;display:grid}.contactLinks a{border:1px solid var(--rule);background:var(--surface);overflow-wrap:anywhere;border-radius:12px;align-items:center;gap:16px;padding:14px 18px;font-weight:620;text-decoration:none;display:flex}.contactLinks a:hover{border-color:var(--ink)}.contactLinks svg{color:var(--blue);flex:none}.contactLinks small{color:var(--slate);font-size:13.5px;font-weight:500;display:block}.contactForm{border-radius:var(--radius);border:1px solid var(--rule);background:var(--surface);gap:18px;padding:32px;display:grid}.formGrid{grid-template-columns:1fr 1fr;gap:18px;display:grid}.contactForm label{gap:7px;font-size:15.5px;font-weight:620;display:grid}.contactForm em{color:var(--slate);font-style:normal;font-weight:500}.contactForm input,.contactForm textarea{border:1.5px solid var(--rule);background:var(--paper);border-radius:10px;width:100%;padding:12px 14px;font-size:16px;font-weight:450}.contactForm input:focus,.contactForm textarea:focus{border-color:var(--blue);outline:none}.contactForm textarea{resize:vertical;min-height:140px}.honeypot{width:1px;height:1px;left:-9999px;overflow:hidden;position:absolute!important}.formFooter{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.formStatus{color:#1c7c54;font-size:15px;font-weight:600}html[data-theme=dark] .formStatus{color:#5fd0a0}.formStatusError,html[data-theme=dark] .formStatusError{color:#c4372d}html[data-theme=dark] .formStatusError{color:#ff8a80}.footer{border-top:1px solid var(--rule);color:var(--slate);padding:36px 0;font-size:15px}.footerInner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.footer strong{color:var(--ink)}.socialRow{gap:8px;list-style:none;display:flex}.socialRow a{border:1px solid var(--rule);width:40px;height:40px;color:var(--ink);border-radius:10px;place-items:center;display:grid}.socialRow a:hover{border-color:var(--ink)}.subpage .section:first-child{padding-top:64px}.pageTitle{letter-spacing:-.035em;font-size:clamp(40px,5vw,60px)}.pageLead{max-width:64ch;color:var(--slate);margin:18px 0 48px;font-size:19px}.backLink{color:var(--slate);align-items:center;gap:6px;font-weight:600;text-decoration:none;display:inline-flex}.backLink:hover{color:var(--ink)}.resumePage{padding:40px 0 96px}.resumeToolbar{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.resumeSheet{border-radius:var(--radius);border:1px solid var(--rule);background:var(--surface);width:min(900px,100% - 32px);margin:0 auto;padding:56px}.resumeHeader{border-bottom:2px solid var(--ink);grid-template-columns:1fr auto;gap:32px;padding-bottom:28px;display:grid}.resumeHeader h1{letter-spacing:-.03em;font-size:44px}.resumeRole{margin-top:4px;font-size:18px;font-weight:650}.resumeSummary{color:var(--slate);max-width:60ch;margin-top:14px}.resumeContact{align-content:start;gap:6px;font-size:15px;display:grid}.resumeContact a{color:var(--blue);align-items:center;gap:7px;text-decoration:none;display:inline-flex}.resumeSection{padding-top:30px}.resumeSection h2{margin-bottom:14px;font-size:22px}.resumeSkills{gap:8px;display:grid}.resumeSkills>div{grid-template-columns:190px 1fr;gap:16px;display:grid}.resumeSkills span{color:var(--slate)}.resumeExperience{gap:26px;display:grid}.resumeJobHeading{justify-content:space-between;align-items:baseline;gap:18px;display:flex}.resumeJobHeading h3{font-size:18.5px}.resumeJobHeading p,.resumeJobHeading time{color:var(--slate);font-size:15.5px}.resumeJobHeading time{flex:none;font-weight:600}.resumeLinks{flex:none;gap:14px;display:flex}.resumeLinks a{color:var(--blue);font-size:15px;font-weight:650}.resumeExperience ul{color:var(--slate);margin-top:10px;padding-left:20px}.resumeExperience li+li{margin-top:6px}.resumeExperience article>p:not(.resumeTech){color:var(--slate);margin-top:8px}.resumeTech{color:var(--slate);margin-top:8px;font-size:14.5px}.resumeTwoCol{grid-template-columns:1fr 1fr;gap:32px;display:grid}.resumeTwoCol h3{font-size:17px}.resumeTwoCol p,.resumeTwoCol ul{color:var(--slate)}.resumeTwoCol ul{padding-left:20px}@media (max-width:980px){.heroGrid,.liveProject,.contactGrid{grid-template-columns:1fr;gap:40px}.liveProject:nth-child(2n) .liveCopy{order:0}.liveShot{order:-1;position:static}.hero{padding-top:48px}.hero h1{max-width:18ch}.ticket{max-width:560px}}@media (max-width:820px){.navLinks{display:none}.navActions{margin-left:auto}.clientGrid{grid-template-columns:1fr}.skills>div{grid-template-columns:1fr;gap:4px}.timeline>li{grid-template-columns:1fr;gap:6px;padding-left:28px}.timeline>li>div{padding-left:0}.timeline>li:before{top:.45em;left:0}.timeline>li:after{left:5px}.resumeHeader{grid-template-columns:1fr}.resumeSheet{padding:32px 24px}.resumeSkills>div,.resumeTwoCol{grid-template-columns:1fr;gap:4px}.resumeTwoCol{gap:28px}.resumeJobHeading{flex-direction:column;gap:2px}}@media (max-width:560px){body{font-size:16px}.section{padding:72px 0}.hideSmall{display:none}.showSmall{display:inline}.ticket{--notch:12px;grid-template-columns:1fr;transform:none}.ticketMain{padding:24px 22px 22px}.ticketStub{border-top:2px dashed #121a2b73;border-left:0;border-radius:0 0 18px 18px;flex-direction:row;align-items:center;padding:18px 22px}.ticketStub:before,.ticketStub:after{top:calc(var(--notch) * -1 - 1px);bottom:auto}.ticketStub:before{left:calc(var(--notch) * -1)}.ticketStub:after{left:auto;right:calc(var(--notch) * -1)}.ticketStub:hover{transform:none}.barcode{flex:none;width:64px;height:40px}.results,.formGrid{grid-template-columns:1fr}.contactForm,.clientProjectText{padding:22px}.actions .button{flex:auto}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.ticket{animation:none}.ticketStub,.browser{transition:none}}@media print{:root,html[data-theme=dark]{--paper:#fff;--surface:#fff;--tint:#fff;--ink:#111827;--slate:#374151;--rule:#d1d5db;--blue:#1f3db3}body{background:#fff;font-size:11pt}.navShell,.footer,.noPrint{display:none!important}.resumePage{padding:0}.resumeSheet{border:0;width:100%;margin:0;padding:0}.resumeExperience article{break-inside:avoid}}
