:root{--paper: #F5F7F8;--ink: #12171D;--muted: #56606C;--rule: #D5DBE0;--merged: #0F6B4C;--merged-soft: #E1EFE9;--panel: #FFFFFF;--display: "Schibsted Grotesk", "Helvetica Neue", Arial, sans-serif;--body: "Source Serif 4", Georgia, "Times New Roman", serif;--mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace}@media screen and (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper: #0E1215;--ink: #E7EBEE;--muted: #98A2AD;--rule: #27313A;--merged: #5FCB9C;--merged-soft: #15302A;--panel: #151B20;color-scheme:dark}}:root[data-theme=dark]{--paper: #0E1215;--ink: #E7EBEE;--muted: #98A2AD;--rule: #27313A;--merged: #5FCB9C;--merged-soft: #15302A;--panel: #151B20;color-scheme:dark}body{background:var(--paper);color:var(--ink);font-family:var(--body);font-size:1.0625rem;line-height:1.6;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}.wrap{max-width:60rem;margin:0 auto;padding-block:3.5rem 4rem;display:grid;gap:4rem}h1,h2,h3{font-family:var(--display);text-wrap:balance;margin:0;letter-spacing:-.01em}h1{font-size:clamp(2rem,5vw,3.25rem);line-height:1.08;font-weight:800;max-width:22ch}h2{font-size:1.5rem;font-weight:700}h3{font-size:1.1875rem;font-weight:700;line-height:1.3}p{margin:0;max-width:65ch}a{color:var(--merged)}a:focus-visible{outline:2px solid var(--merged);outline-offset:2px}.label{font-family:var(--mono);font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}header{display:grid;gap:1.25rem}.byline{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;font-family:var(--mono);font-size:.8125rem;color:var(--muted)}.byline strong{color:var(--ink);font-weight:600}.lede{font-size:1.1875rem}.record{display:grid;gap:1.5rem}.row{display:grid;grid-template-columns:10.5rem minmax(0,1fr);gap:.5rem 2rem;padding-top:1.5rem;border-top:1px solid var(--rule)}.row>*{min-width:0}.row-side{display:grid;gap:.5rem;align-content:start}.row-main{display:grid;gap:.75rem}@media(max-width:640px){.row{grid-template-columns:minmax(0,1fr)}.row-side{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .75rem}}.figures{display:grid;grid-template-columns:repeat(auto-fit,minmax(10.5rem,1fr));gap:0;border-top:2px solid var(--ink)}.figure{padding:1rem 1rem 1.125rem 0;border-bottom:1px solid var(--rule);display:grid;gap:.25rem;align-content:start}.figure b{font-family:var(--display);font-weight:800;font-size:2.25rem;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.figure span{font-size:.9375rem;color:var(--muted);line-height:1.4}.note{font-size:.875rem;color:var(--muted);max-width:70ch}.parts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem}@media(max-width:760px){.parts{grid-template-columns:minmax(0,1fr);gap:1.25rem}}.part{display:grid;gap:.5rem;align-content:start}.part h3{display:flex;align-items:baseline;gap:.625rem}.role{display:inline-block;justify-self:start;font-family:var(--mono);font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;padding:.2rem .5rem;border-radius:3px;border:1px solid var(--merged);line-height:1.4;white-space:nowrap}.role.built{background:var(--merged);color:var(--paper)}.role.led{color:var(--merged);background:transparent}.role.investigated{color:var(--ink);border-color:var(--muted);border-style:dashed;background:transparent}.when{font-family:var(--mono);font-size:.75rem;color:var(--muted)}.facts{display:grid;gap:.5rem;margin:0}.facts div{display:grid;grid-template-columns:5.5rem minmax(0,1fr);gap:1rem}.facts dt{font-family:var(--mono);font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding-top:.3rem}.facts dd{margin:0}@media(max-width:480px){.facts div{grid-template-columns:minmax(0,1fr);gap:.125rem}}.stack{font-family:var(--mono);font-size:.8125rem;color:var(--muted)}.routine{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));counter-reset:step}.routine li{counter-increment:step;padding:.875rem .75rem .875rem 0;border-top:2px solid var(--merged);display:grid;gap:.25rem;align-content:start;position:relative}.routine li:before{content:counter(step);font-family:var(--mono);font-size:.75rem;color:var(--merged);font-weight:600}.routine b{font-family:var(--display);font-size:1rem}.routine span{font-size:.875rem;color:var(--muted);line-height:1.45}@media(max-width:760px){.routine{grid-template-columns:minmax(0,1fr)}.routine li{border-top-width:1px}}.practices{margin:0;padding-left:1.125rem;display:grid;gap:.625rem;max-width:65ch}section{display:grid;gap:1.5rem}.section-head{display:grid;gap:.5rem}.stack-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:1.25rem 2rem}.stack-grid div{display:grid;gap:.25rem}.stack-grid p{font-size:.9375rem}footer{border-top:2px solid var(--ink);padding-top:1.25rem;display:grid;gap:.75rem}footer ul{margin:0;padding-left:1.125rem;display:grid;gap:.375rem;font-size:.9375rem;color:var(--muted);max-width:70ch}html,body{overflow-x:clip}.label a{color:inherit;text-decoration:none}.label a:hover{color:var(--merged)}main.wrap{position:relative;z-index:1;padding-top:2rem;gap:2.75rem}main.wrap>section,main.wrap>footer{border-top:1px solid var(--rule);padding-top:1.25rem;gap:1rem}main.wrap>section>h2,.cv-head h2{font-size:1.25rem}.hero{display:grid;gap:1rem;position:relative}.hero-text{display:grid;gap:.375rem;min-width:0}.name-h{font-size:clamp(2rem,5vw,2.75rem);line-height:1.1;max-width:none}.role-line{font-family:var(--display);font-weight:500;font-size:1.125rem;color:var(--muted)}.contact-line{max-width:none;display:flex;flex-wrap:wrap;gap:.25rem 1.25rem;font-family:var(--mono);font-size:.8125rem;color:var(--muted);margin-top:.5rem}.contact-line a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--rule)}.contact-line a:hover,.contact-line .cv-link{color:var(--merged);border-color:var(--merged)}.profile{max-width:68ch}.figures{border-top:0}.figure b{font-size:1.5rem}.figure span{font-size:.875rem}.now-copy{display:grid;gap:.75rem;max-width:68ch}.stack-line{font-family:var(--mono);font-size:.8125rem;color:var(--muted)}.work-list,.principles{list-style:none;margin:0;padding:0;display:grid;gap:0}.work-list li{display:grid;grid-template-columns:14rem minmax(0,1fr);gap:.25rem 2rem;padding:.625rem 0;border-bottom:1px solid var(--rule)}.work-list li:first-child{padding-top:0}.work-list li>*{min-width:0}.work-list b{font-family:var(--display);font-weight:700}.principles{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem 2.5rem}.principle{display:grid;gap:.25rem;align-content:start}.principle h3{font-size:1rem}.principle p{font-size:.9375rem}@media(max-width:720px){.principles,.work-list li{grid-template-columns:minmax(0,1fr)}}.draft{border:1px dashed var(--muted);border-radius:4px;padding:1rem 1.125rem;display:grid;gap:.5rem;color:var(--muted);max-width:68ch}.draft .label{color:var(--merged)}.more{font-family:var(--mono);font-size:.8125rem}.more a{color:var(--merged)}.contact h2{font-size:.75rem}.topbar{max-width:60rem;margin:0 auto;padding-top:1rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;position:relative;z-index:1}.rev{font-family:var(--mono);font-size:.75rem;color:var(--muted);white-space:nowrap}.switch{font:600 .75rem/1 JetBrains Mono,ui-monospace,Menlo,monospace;letter-spacing:.02em;display:inline-flex;align-items:center;gap:.5rem;flex:none;padding:.5rem .25rem;margin:-.5rem -.25rem;background:none;border:0;border-radius:4px;color:var(--muted);cursor:pointer}.switch:focus-visible{outline:2px solid var(--merged);outline-offset:2px}.ms-track{width:2.125rem;height:1.125rem;border-radius:999px;border:1px solid var(--muted);position:relative;display:inline-block;transition:background-color .2s,border-color .2s}.ms-knob{position:absolute;top:2px;left:2px;width:.75rem;height:.75rem;border-radius:50%;background:var(--ink);transition:transform .2s ease}.ms-b{color:var(--ink)}.switch[aria-pressed=true] .ms-b{color:var(--muted)}.switch[aria-pressed=true] .ms-p{color:var(--ink)}.switch[aria-pressed=true] .ms-track{background:var(--merged);border-color:var(--merged)}.switch[aria-pressed=true] .ms-knob{transform:translate(1rem);background:var(--paper)}.switch:hover .ms-track{border-color:var(--merged)}.p,.p-only,.party-only,.print-only{display:none}@media screen{:root[data-mode=party] .b{display:none}:root[data-mode=party] .p{display:inline}:root[data-mode=party] .p-only{display:block}:root[data-mode=party] .party-only{display:grid}}:root:not([data-js]) .switch,:root:not([data-js]) [data-print]{display:none}mark{background:none;color:inherit}.js-reveal .reveal{transition:opacity .35s ease;transition-delay:calc(var(--i, 0) * 50ms)}.js-reveal .reveal:not(.in){opacity:0}.stack-strip{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;border-block:1px solid var(--rule);padding-block:1rem}.mark{display:inline-flex;align-items:center;gap:.5rem;color:var(--muted);font-family:var(--mono);font-size:.75rem}.mark svg{width:1.25rem;height:1.25rem;fill:currentColor;flex:none}:root[data-cvdoc] .reloc{display:none}.reloc-line{max-width:none;font-family:var(--mono);font-size:.8125rem;color:var(--ink)}.cvdoc-only{display:none}:root[data-cvdoc] .cvdoc-only{display:inline}.cv-links{display:flex;flex-wrap:wrap;gap:.25rem .5rem;font-family:var(--mono);font-size:.8125rem;margin-top:.25rem}.cv-links a{color:var(--merged);text-decoration:none;border-bottom:1px solid currentColor}.cv-links .cv-link{margin-right:.75rem}.job-earlier .gist{font-size:.9375rem}.dl{font-family:var(--mono);font-size:.8125rem;color:var(--muted)}.dl a{color:var(--merged);text-decoration:none;border-bottom:1px solid currentColor}.prn-t{display:none}@media print{.prn-t{display:inline}.scr-t{display:none}}.exhibits{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr));gap:1.75rem 1.5rem;align-items:start}.exhibit{margin:0;display:grid;gap:.625rem;min-width:0}.exhibit figcaption{font-family:var(--display);font-weight:700;font-size:1rem;line-height:1.3}.ex-tag{display:block;font-family:var(--mono);font-size:.6875rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--merged);margin-bottom:.125rem}.card{background:var(--panel);border:1px solid var(--rule);border-radius:6px;padding:.875rem 1rem;display:grid;gap:.625rem;font-size:.9375rem;line-height:1.45;min-width:0;transition:transform .25s ease,box-shadow .25s ease}.mono{font-family:var(--mono);font-size:.75rem}.card-top{display:flex;justify-content:space-between;align-items:center;gap:.5rem;flex-wrap:wrap;color:var(--muted)}.pill{font-family:var(--mono);font-size:.6875rem;padding:.125rem .4rem;border-radius:3px;border:1px solid var(--rule);color:var(--muted);white-space:nowrap}.pill.ok{color:var(--merged);border-color:var(--merged)}.card-title{font-family:var(--display);font-weight:700;font-size:1rem;line-height:1.3}.card-foot{color:var(--muted);font-size:.8125rem}.card-foot.mono{font-size:.6875rem}.ac{list-style:none;margin:0;padding:0;display:grid;gap:.375rem}.ac li{padding-left:1.25rem;position:relative}.ac li:before{content:"✓";position:absolute;left:0;color:var(--merged);font-weight:700}.diff{margin:0;overflow-x:auto;font-family:var(--mono);font-size:.6875rem;line-height:1.7;background:var(--paper);border-radius:4px;padding:.5rem .625rem}.diff span{display:block;white-space:pre}.diff .del{color:#a3322a}.diff .add{color:var(--merged)}@media screen and (prefers-color-scheme:dark){:root:not([data-theme=light]):not([data-mode=party]) .diff .del{color:#f08a80}}:root[data-theme=dark]:not([data-mode=party]) .diff .del{color:#f08a80}.comment{font-size:.875rem;border-left:2px solid var(--merged);padding-left:.625rem}.pipeline{list-style:none;margin:0;padding:0;display:grid;gap:0}.pipeline li{display:grid;grid-template-columns:1.25rem 1fr;column-gap:.75rem;position:relative;padding-bottom:1rem}.pipeline li:last-child{padding-bottom:0}.pipeline li:before{content:"";grid-row:1 / span 2;width:.75rem;height:.75rem;margin:.35rem 0 0 .25rem;border-radius:50%;background:var(--merged);box-shadow:0 0 0 3px var(--merged-soft)}.pipeline li:not(:last-child):after{content:"";position:absolute;left:calc(.625rem - 1px);top:1.4rem;bottom:.1rem;width:2px;background:var(--merged);transform-origin:top}.pipeline b{font-family:var(--mono);font-size:.8125rem}.pipeline span{color:var(--muted);font-size:.875rem}.js-reveal .ex-pipe li:before{transition:background-color .3s,box-shadow .3s;transition-delay:calc(var(--d) * 1ms)}.js-reveal .ex-pipe li:after{transition:transform .4s ease;transition-delay:calc(var(--d) * 1ms + .2s)}.pipeline li:nth-child(1){--d: 200}.pipeline li:nth-child(2){--d: 700}.pipeline li:nth-child(3){--d: 1200}.pipeline li:nth-child(4){--d: 1700}.pipeline li:nth-child(5){--d: 2200}.js-reveal .ex-pipe:not(.in) li:before{background:var(--rule);box-shadow:0 0 0 3px transparent}.js-reveal .ex-pipe:not(.in) li:after{transform:scaleY(0)}.checklist{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}.checklist li{display:grid;grid-template-columns:1.125rem 1fr;column-gap:.625rem}.checklist b{font-family:var(--display);font-size:.9375rem}.checklist li>span:last-child{grid-column:2;color:var(--muted);font-size:.8125rem;line-height:1.4}.box{grid-row:1 / span 2;width:1rem;height:1rem;margin-top:.2rem;border:1.5px solid var(--merged);border-radius:3px;background:var(--merged);position:relative}.box:after{content:"";position:absolute;left:.27rem;top:.05rem;width:.3rem;height:.55rem;border:solid var(--paper);border-width:0 2px 2px 0;transform:rotate(45deg)}.js-reveal .ex-check .box{transition:background-color .2s;transition-delay:calc(var(--i) * .28s + .3s)}.js-reveal .ex-check .box:after{transition:opacity .2s;transition-delay:calc(var(--i) * .28s + .3s)}.js-reveal .ex-check:not(.in) .box{background:transparent}.js-reveal .ex-check:not(.in) .box:after{opacity:0}.spark{width:100%;height:auto;display:block}.spark path{fill:none;stroke-width:2.5;stroke-linecap:round}.spark .grid{stroke:var(--rule);stroke-width:1}.spark .ours{stroke:var(--merged)}.spark .theirs{stroke:var(--muted);stroke-dasharray:.02 .015}.js-reveal .ex-spark .ours{stroke-dasharray:1;transition:stroke-dashoffset 1.4s ease .2s}.js-reveal .ex-spark:not(.in) .ours{stroke-dashoffset:1}.legend{display:flex;gap:1rem;color:var(--muted)}.legend span:before{content:"";display:inline-block;width:.875rem;height:2px;margin-right:.375rem;vertical-align:middle;background:var(--merged)}.legend .k-theirs:before{background:var(--muted)}.cv{display:grid;gap:1.25rem;scroll-margin-top:1.5rem}.cv-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1.5rem}.cv-tools{display:flex;align-items:center;gap:1.25rem;flex-wrap:wrap}.print-btn{font:600 .75rem/1 JetBrains Mono,ui-monospace,Menlo,monospace;color:var(--merged);background:none;border:1px solid var(--merged);border-radius:4px;padding:.45rem .625rem;cursor:pointer}.print-btn:hover{background:var(--merged-soft)}.print-btn:focus-visible{outline:2px solid var(--merged);outline-offset:2px}.timeline{list-style:none;margin:0;padding:0}.job{display:grid;grid-template-columns:10.5rem minmax(0,1fr);gap:.25rem 2rem;padding:1rem 0;border-bottom:1px solid var(--rule)}.job>*{min-width:0}.job-side{display:grid;align-content:start;gap:.25rem}.job-side .when{font-family:var(--mono);font-size:.8125rem;color:var(--muted)}.hash{display:none;font-family:var(--mono);font-size:.75rem}.job-main{display:grid;gap:.25rem}.job h3{font-size:1.125rem}.org{font-family:var(--display);font-weight:500;color:var(--muted);display:flex;flex-wrap:wrap;align-items:center;gap:.25rem .75rem}.gist{font-size:1rem}.cv-more{display:grid;gap:.5rem;margin-top:.375rem}.cv-more ul{margin:0;padding-left:1.125rem;display:grid;gap:.375rem;font-size:.9375rem;max-width:70ch}.cv-more .stack{font-family:var(--mono);font-size:.75rem;color:var(--muted)}.cv-more .more{font-family:var(--mono);font-size:.8125rem}:root[data-cv=concise] .cv-more{display:none}:root[data-cv=expanded] .role-block:has(.cv-more) .gist{display:none}:root[data-cv=concise] .cv-only{display:none}.edu{display:grid;gap:.5rem}.edu h3{font-size:.75rem}.edu ul{list-style:none;margin:0;padding:0;display:grid;gap:.375rem}.edu li{display:grid;grid-template-columns:10.5rem minmax(0,1fr);gap:0 2rem}.edu li>*{min-width:0}.edu .when{font-family:var(--mono);font-size:.8125rem;color:var(--muted)}.edu b{font-family:var(--display)}.skills dl{margin:0;display:grid;gap:.375rem}.skills dl div{display:grid;grid-template-columns:10.5rem minmax(0,1fr);gap:0 2rem}.skills dt{font-family:var(--display);font-weight:700;font-size:.9375rem}.skills dd{margin:0;font-size:.9375rem}@media(max-width:640px){.job,.edu li,.skills dl div{grid-template-columns:minmax(0,1fr)}.job-side{display:flex;gap:.75rem}}.job h3{font-size:1.1875rem}.role-block{display:grid;gap:.25rem;margin-top:.25rem}.role-block h4{margin:0;font-family:var(--display);font-size:1rem;font-weight:700;display:flex;flex-wrap:wrap;align-items:baseline;gap:.25rem .75rem}.role-when{font-family:var(--mono);font-size:.75rem;font-weight:400;color:var(--muted)}.tag-promo{color:var(--merged);border:1px solid var(--merged);border-radius:3px;padding:0 .375rem;font-size:.625rem}.role-multi{position:relative;padding-left:1rem}.role-multi:before{content:"";position:absolute;left:0;top:.5rem;width:.4375rem;height:.4375rem;border-radius:50%;background:var(--merged)}.role-multi:not(:last-child):after{content:"";position:absolute;left:.1875rem;top:1.125rem;bottom:-.875rem;width:1px;background:var(--merged)}.role-multi+.role-multi{margin-top:.75rem}.role-multi:last-child:before{background:transparent;border:1px solid var(--merged)}@media screen{:root[data-mode=party]{--paper: #0F1012;--ink: #F3F3EE;--muted: #A6A6A0;--rule: #2A2B30;--merged: #D4FF3A;--merged-soft: rgba(212, 255, 58, .12);--panel: #17181B;--violet: #B9A6FF;--blue: #7CC4FF;--dark: #0F1012;--life-a: #D4FF3A;--life-b: #8B6CFF;--body: "Schibsted Grotesk", "Helvetica Neue", Arial, sans-serif;color-scheme:dark}:root[data-mode=party] body{background-color:var(--paper);background-image:radial-gradient(56rem 30rem at 85% -6rem,rgba(139,108,255,.28),transparent 70%),radial-gradient(40rem 26rem at -10% 4rem,rgba(212,255,58,.1),transparent 70%),linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:auto,auto,16px 16px,16px 16px;background-repeat:no-repeat,no-repeat,repeat,repeat;font-size:1rem}.life{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;opacity:.22}:root[data-mode=party] main.wrap{gap:2rem}:root[data-mode=party] .rev{color:var(--merged)}:root[data-mode=party] .ms-track{border-color:#55565c}:root[data-mode=party] .switch[aria-pressed=true] .ms-knob{background:var(--dark)}:root[data-mode=party] .hero{padding-block:1.5rem 1rem;align-items:center}@media(min-width:900px){:root[data-mode=party] .hero{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:2.5rem}}:root[data-mode=party] .name-h{font-size:clamp(2.75rem,7vw,4.75rem);line-height:.95;letter-spacing:-.045em;font-weight:800}:root[data-mode=party] .role-line{color:var(--merged);font-family:var(--mono);font-size:.9375rem}:root[data-mode=party] .contact-line a{border-bottom-color:#3a3b40}:root[data-mode=party] .contact-line a:hover{color:var(--merged);border-color:var(--merged)}:root[data-mode=party] main.wrap>section,:root[data-mode=party] main.wrap>footer{border-top:0}.flag-card{gap:.875rem;padding:1.125rem 1.25rem;border-radius:14px;font-size:.9375rem;border:1px solid transparent;background:linear-gradient(var(--panel),var(--panel)) padding-box,linear-gradient(135deg,#d4ff3a,#8b6cff 60%,#7cc4ff) border-box;box-shadow:0 0 80px -20px #8b6cff8c}.fc-top{display:flex;align-items:center;gap:.625rem}.fc-key{font-family:var(--mono);font-weight:600;font-size:1rem}.fc-type{font-family:var(--mono);font-size:.6875rem;color:var(--muted);border:1px solid var(--rule);border-radius:4px;padding:.1rem .35rem}.fc-on{margin-left:auto;font-family:var(--mono);font-size:.75rem;font-weight:600;background:var(--merged);color:var(--dark);border-radius:999px;padding:.2rem .6rem}.fc-rows{margin:0;display:grid;gap:.5rem}.fc-rows div{display:grid;grid-template-columns:5.5rem minmax(0,1fr);gap:.75rem;align-items:center;border-top:1px solid var(--rule);padding-top:.5rem}.fc-rows dt{font-family:var(--mono);font-size:.6875rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.fc-rows dd{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:.375rem}.fc-rows code{font-family:var(--mono);color:var(--merged)}.fc-bar{flex:1 1 6rem;height:.5rem;border-radius:999px;background:var(--rule);overflow:hidden}.fc-bar span{display:block;height:100%;width:100%;background:linear-gradient(90deg,#8b6cff,#d4ff3a);animation:rollout 1.6s cubic-bezier(.2,.8,.2,1) .2s both}@keyframes rollout{0%{width:0}}.chip{font-family:var(--mono);font-size:.6875rem;border:1px solid #3A3B40;border-radius:999px;padding:.1rem .5rem}.fc-foot{font-family:var(--mono);font-size:.75rem;color:var(--muted)}:root[data-mode=party] main>section[data-file]{position:relative;background:var(--panel);border:1px solid #2E2F35;border-radius:10px;padding:3.5rem clamp(1rem,3vw,1.75rem) 1.5rem;box-shadow:0 30px 60px -30px #000c,inset 0 1px #ffffff0a}.winbar,.taskbar,.start-menu,.confetti{display:none}:root[data-mode=party] .winbar{border-top:3px solid var(--accent, var(--merged));display:flex;align-items:center;position:absolute;inset:0 0 auto;height:2.25rem;padding:0 .25rem 0 1rem;background:#1d1e22;border-bottom:1px solid #2E2F35;border-radius:10px 10px 0 0;cursor:default}.win-title{font-family:var(--mono);font-size:.75rem;color:var(--muted);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.win-btns{display:flex}.win-btn{width:2.25rem;height:2.125rem;display:grid;place-items:center;background:none;border:0;border-radius:4px;color:var(--muted);font:400 .875rem/1 var(--mono);cursor:pointer}.win-btn:hover{background:#2a2b30;color:var(--ink)}.win-btn:focus-visible{outline:2px solid var(--merged);outline-offset:-2px}.win-btn[data-win=close]:hover{background:#3a2a2d}:root[data-mode=party] section.win-min{padding:2.25rem 0 0}:root[data-mode=party] section.win-min>:not(.winbar){display:none!important}:root[data-mode=party] section.win-min .winbar{border-bottom:0;border-radius:10px;cursor:pointer}:root[data-mode=party] section.win-closed{display:none!important}.win-dialog{width:min(60rem,calc(100vw - 32px));max-height:calc(100vh - 48px);padding:0;border:1px solid #2E2F35;border-radius:10px;background:var(--panel);color:var(--ink);box-shadow:0 40px 80px -20px #000000e6}.win-dialog::backdrop{background:#08080ab3}.win-dialog .winbar{display:flex;position:sticky;top:0;z-index:1;height:2.25rem;align-items:center;padding:0 .25rem 0 1rem;background:#1d1e22;border-bottom:1px solid #2E2F35}.win-body{display:grid;gap:1.25rem;padding:1.25rem clamp(1rem,3vw,1.75rem) 1.75rem}:root[data-mode=party] .owns{border-top-color:var(--rule)}:root[data-mode=party] .figures{border-top:1px solid var(--rule)}:root[data-mode=party] .figure b{font-size:3rem;letter-spacing:-.04em;color:var(--merged)}:root[data-mode=party] .figure:nth-child(2) b{color:var(--violet)}:root[data-mode=party] .figure:nth-child(3) b{color:var(--blue)}:root[data-mode=party] .timeline{border-top:1px solid var(--rule)}:root[data-mode=party] .hash{display:block;color:var(--merged)}:root[data-mode=party] .job h3{font-weight:700}.cv-joke{font-family:var(--mono);font-size:.8125rem;color:var(--muted)}:root[data-mode=party] .print-btn{border-radius:8px}:root[data-mode=party] .principle h3 span{display:inline-grid;place-items:center;min-width:2.25rem;height:1.75rem;border-radius:999px;border:1px solid #3A3B40;color:var(--ink);font-size:.75rem}:root[data-mode=party] .principle:first-child h3 span{background:var(--merged);color:var(--dark);border-color:var(--merged)}:root[data-mode=party] .exhibit{padding:.875rem;border-radius:14px;color:var(--dark);background-image:linear-gradient(rgba(15,16,18,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(15,16,18,.12) 1px,transparent 1px),linear-gradient(135deg,#d4ff3a,#7df0c0);background-size:24px 24px,24px 24px,auto}:root[data-mode=party] .exhibit:nth-child(2){background-image:linear-gradient(rgba(15,16,18,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(15,16,18,.12) 1px,transparent 1px),linear-gradient(135deg,#b9a6ff,#7cc4ff)}:root[data-mode=party] .exhibit:nth-child(3){background-image:linear-gradient(rgba(15,16,18,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(15,16,18,.12) 1px,transparent 1px),linear-gradient(135deg,#ffb86b,#ff7ab6)}:root[data-mode=party] .exhibit:nth-child(4){background-image:linear-gradient(rgba(15,16,18,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(15,16,18,.12) 1px,transparent 1px),linear-gradient(135deg,#7cc4ff,#7df0c0)}:root[data-mode=party] .exhibit:nth-child(5){background-image:linear-gradient(rgba(15,16,18,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(15,16,18,.12) 1px,transparent 1px),linear-gradient(135deg,#ff7ab6,#b9a6ff)}:root[data-mode=party] .exhibit figcaption,:root[data-mode=party] .ex-tag{color:var(--dark)}:root[data-mode=party] .card{background:#141518;border-color:#2e2f35;color:var(--ink);border-radius:10px;box-shadow:0 10px 24px -12px #0009}:root[data-mode=party] .exhibit:hover .card{transform:translateY(-3px)}:root[data-mode=party] .diff{background:#0b0c0e}:root[data-mode=party] .diff .del{color:#ff8a80}:root[data-mode=party] .stack-strip{border-color:var(--rule)}:root[data-mode=party] .mark{color:var(--ink)}:root[data-mode=party] .mark:hover{color:var(--merged)}:root[data-mode=party] .mark:hover svg{animation:wobble .5s ease}@keyframes wobble{30%{transform:rotate(-12deg) scale(1.15)}60%{transform:rotate(8deg)}}:root[data-mode=party] .draft{border-color:#55565c}:root[data-mode=party] .off-record .figure b{font-size:2.5rem}.life-note{font-size:.9375rem;color:var(--muted)}.glider-btn{font:600 .8125rem/1 var(--mono);color:var(--dark);background:var(--merged);border:0;border-radius:8px;padding:.45rem .7rem;cursor:pointer;box-shadow:0 3px #8da91f}.glider-btn:active{transform:translateY(2px);box-shadow:0 1px #8da91f}.glider-btn:focus-visible{outline:2px solid var(--violet);outline-offset:2px}:root[data-mode=party] footer{border-top:1px solid var(--rule)}:root[data-mode=party] .contact .email{font-size:1.375rem;font-weight:600;color:var(--merged)}:root[data-mode=party] .role.built{background:var(--merged);color:var(--dark);border-color:var(--merged)}:root[data-mode=party] .routine li{border-top-color:var(--merged)}:root[data-mode=party] footer ul{color:var(--muted)}:root[data-mode=party] .name-h{font-size:clamp(3.25rem,11vw,7rem);line-height:.9;background:linear-gradient(100deg,#f3f3ee,#d4ff3a 35%,#7df0c0 55%,#b9a6ff 80%,#ff7ab6);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:sheen 8s ease-in-out infinite alternate}@keyframes sheen{to{background-position:100% 0}}:root[data-mode=party] .role-line{font-size:1.0625rem}:root[data-mode=party] .flag-card{transform:rotate(1.5deg);transition:transform .3s ease}:root[data-mode=party] .flag-card:hover{transform:rotate(0) scale(1.02)}.ticker{overflow:hidden;border-block:1px solid #2E2F35;background:#141518;margin-inline:-16px;padding-block:.625rem}@media(min-width:60rem){.ticker{margin-inline:calc((60rem - 100vw)/2)}}.ticker-track{display:flex;gap:1.5rem;width:max-content;animation:ticker 32s linear infinite;font-family:var(--display);font-weight:800;font-size:clamp(1.25rem,3vw,1.75rem);letter-spacing:-.02em;text-transform:uppercase;white-space:nowrap}.ticker-track span:nth-child(4n+1){color:var(--merged)}.ticker-track span:nth-child(4n+3){color:var(--violet)}.tk-star{color:#ff7ab6}@keyframes ticker{to{transform:translate(-50%)}}:root[data-mode=party] main>section[data-file]{transition:box-shadow .2s ease}:root[data-mode=party] main>section[data-file]:hover{box-shadow:0 30px 60px -30px #000c,0 0 0 1px color-mix(in srgb,var(--accent) 35%,transparent)}:root[data-mode=party] section.is-dragging{box-shadow:0 40px 80px -20px #000000e6,0 0 0 2px var(--accent)}@media(min-width:900px)and (pointer:fine){:root[data-mode=party] .winbar{cursor:grab}:root[data-mode=party] section.is-dragging .winbar{cursor:grabbing}}:root[data-mode=party] .win-dialog .winbar{border-top:3px solid var(--accent, var(--merged))}:root[data-mode=party] body{padding-bottom:3.75rem}:root[data-mode=party] .taskbar{display:flex;align-items:center;gap:.375rem;position:fixed;inset:auto 0 0;z-index:30;height:2.75rem;padding:0 .5rem;background:#141518eb;border-top:1px solid #2E2F35;backdrop-filter:blur(8px)}.tb-start{font:800 .875rem/1 var(--display);color:var(--dark);background:var(--merged);border:0;border-radius:6px;padding:.5rem .75rem;cursor:pointer;box-shadow:0 2px #8da91f;flex:none}.tb-start[aria-expanded=true]{transform:translateY(1px);box-shadow:0 1px #8da91f}.tb-list{display:flex;gap:.25rem;overflow-x:auto;min-width:0;flex:1;scrollbar-width:none}.tb-win{font:600 .6875rem/1 var(--mono);color:var(--ink);background:#222327;border:0;border-bottom:2px solid var(--accent);border-radius:4px;padding:.5rem .625rem;cursor:pointer;white-space:nowrap}.tb-win:hover{background:#2e2f35}.tb-win.is-closed{opacity:.6;border-bottom-style:dashed}.tb-clock{font:600 .75rem/1 var(--mono);color:var(--muted);flex:none;padding-inline:.25rem}.tb-start:focus-visible,.tb-win:focus-visible,.sm-item:focus-visible{outline:2px solid var(--violet);outline-offset:2px}@media(max-width:600px){.tb-list{display:none}:root[data-mode=party] .taskbar{justify-content:space-between}}:root[data-mode=party] .start-menu:not([hidden]){display:grid;gap:.125rem;position:fixed;left:.5rem;bottom:3.25rem;z-index:31;width:min(18rem,calc(100vw - 1rem));padding:.5rem;background:#1d1e22;border:1px solid #2E2F35;border-radius:10px;box-shadow:0 20px 50px -10px #000000e6}.sm-head{font:600 .75rem/1 var(--mono);color:var(--merged);padding:.5rem .5rem .625rem;border-bottom:1px solid #2E2F35;margin-bottom:.25rem}.sm-item{text-align:left;font:500 .875rem/1.2 var(--display);color:var(--ink);background:none;border:0;border-radius:6px;padding:.5rem;cursor:pointer}.sm-item:hover{background:#2a2b30;color:var(--merged)}:root[data-mode=party] .confetti{display:block;position:fixed;inset:0;width:100%;height:100%;z-index:40;pointer-events:none}}@media(prefers-reduced-motion:reduce){:root[data-mode=party] .name-h,.ticker-track{animation:none}.ticker-track{flex-wrap:wrap;width:auto;white-space:normal}:root[data-mode=party] .flag-card,:root[data-mode=party] .flag-card:hover{transform:none;transition:none}.glider-btn,.click-hint{display:none}.fc-bar span{animation:none}:root[data-mode=party] .exhibit .card,:root[data-mode=party] .exhibit:hover .card{transition:none;transform:none}:root[data-mode=party] .mark:hover svg{animation:none}.ms-knob,.ms-track{transition:none}}@media print{@page{size:A4;margin:13mm 15mm}:root,:root[data-mode=party],:root[data-theme=dark]{--paper: #FFFFFF;--ink: #000000;--muted: #333333;--rule: #BBBBBB;--merged: #000000;--merged-soft: transparent;--panel: #FFFFFF;--display: "Schibsted Grotesk", "Helvetica Neue", Arial, sans-serif;--body: "Source Serif 4", Georgia, serif;color-scheme:light}html,body{background:#fff!important;color:#000}body{font-size:9.5pt;line-height:1.33;padding:0}.topbar,.switch,.print-btn,.cv-links,.dl,.life,.party-only,.p-only,.cv-link,.winbar,.taskbar,.start-menu,.confetti,.ticker,dialog,main>section:not(#cv):not([aria-labelledby=profile-h]),main>footer,.figures,.cv-more .more,.hash,.cv-only{display:none!important}.wrap,main.wrap{padding:0!important;gap:8pt;max-width:none;display:grid}main.wrap>section{border-top:.5pt solid #999;padding-top:5pt;gap:4pt}main.wrap>section>h2,.cv-head h2{font-size:11pt;text-transform:uppercase;letter-spacing:.06em}.hero{gap:2pt}.name-h{font-size:20pt}.role-line{font-size:11pt;color:#000}.contact-line{font-size:8.5pt;margin-top:2pt;color:#000}.contact-line a{border:0;color:#000}.reloc-line{font-size:8.5pt;color:#000;margin-top:1pt}.profile{max-width:none;font-size:9.5pt}#cv{gap:4pt}.cv-more{display:grid!important;gap:2pt;margin-top:1pt}.role-block:has(.cv-more) .gist{display:none!important}.job{padding:4pt 0;grid-template-columns:8rem minmax(0,1fr);gap:0 12pt;break-inside:avoid;border-bottom:.5pt solid #DDD}.job:first-child{break-inside:auto}.job-side .when,.role-when,.edu .when{color:#000;font-size:8pt}.job h3{font-size:10.5pt}.org{font-size:8.5pt;color:#333}.role-block{gap:1pt;margin-top:1pt}.role-block h4{font-size:10pt}.role-multi+.role-multi{margin-top:4pt}.role-multi:before,.role-multi:after{background:#000!important;border-color:#000!important}.tag-promo{border-color:#000;color:#000}.gist,.job-earlier .gist{font-size:9pt;max-width:none}.cv-more ul{font-size:8.5pt;gap:1pt;max-width:none}.cv-more .stack{font-size:7.5pt;color:#333}.edu,.skills{break-inside:avoid}.edu li,.skills dl div{grid-template-columns:8rem minmax(0,1fr);gap:0 12pt}.edu h3,.skills h3{font-size:8pt;color:#000}.skills dt,.skills dd{font-size:8.5pt}.reveal{opacity:1!important;transform:none!important}a{color:inherit;text-decoration:none}*,*:before,*:after{animation:none!important;transition:none!important;box-shadow:none!important;text-shadow:none!important}}@media print{.wrap,main.wrap,main.wrap>section,#cv,.cv-head,.hero,.hero-text,.job-main,.role-block,.cv-more{display:block!important}main.wrap>section{margin-bottom:8pt}.cv-head h2,main.wrap>section>h2{margin-bottom:4pt}.hero{margin-bottom:8pt}.hero-text>*+*{margin-top:2pt}.role-block+.role-block,.cv-more ul,.cv-more .stack{margin-top:2pt}.cv-more ul{display:block}.cv-more li+li{margin-top:1pt}.timeline,.edu ul,.skills dl{display:block}.job,.edu li,.skills dl div{display:flex!important;align-items:flex-start;gap:12pt}.job-side,.edu .when,.skills dt{flex:0 0 8rem}.job-main,.edu li>span:last-child,.skills dd{flex:1 1 auto;min-width:0}.job-side{display:block}.edu li,.skills dl div{margin-bottom:2pt}.edu,.skills{display:block;margin-top:6pt}.edu h3,.skills h3{margin-bottom:3pt}}
