:root{color-scheme:dark;--bg: #0d1117;--bg-soft: #111722;--panel: #151b26;--panel-strong: #1a2230;--text: #f5f7fb;--muted: #a7b0bf;--faint: #768195;--border: rgba(255, 255, 255, .08);--border-strong: rgba(255, 255, 255, .13);--accent: #2dd4bf;--accent-ink: #041310;--accent-warm: #f3b047;--accent-cool: #7dc4f8;--accent-red: #ee8796;--shadow-border: 0 0 0 1px rgba(255, 255, 255, .08);--shadow-border-hover: 0 0 0 1px rgba(255, 255, 255, .14);--shadow-soft: 0 22px 70px rgba(0, 0, 0, .34);--content: 1160px;--narrow: 760px;--ease-out: cubic-bezier(.2, .8, .2, 1)}*{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@view-transition{navigation:auto}::view-transition-old(root){animation:page-exit .18s ease both}::view-transition-new(root){animation:page-enter .36s var(--ease-out) both}body{margin:0;min-height:100vh;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.6;text-rendering:optimizeLegibility}body:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);background-size:56px 56px;mask-image:linear-gradient(to bottom,black 0,black 360px,transparent 680px);-webkit-mask-image:linear-gradient(to bottom,black 0,black 360px,transparent 680px)}img{display:block;max-width:100%}a{color:inherit;text-decoration-color:color-mix(in srgb,currentColor 42%,transparent);text-underline-offset:.22em}a:hover{text-decoration-color:currentColor}button,input{font:inherit}button{cursor:pointer}:focus-visible{outline:3px solid var(--accent);outline-offset:4px}::selection{background:var(--accent);color:var(--accent-ink)}.site-header,.site-footer,.section-shell{width:min(var(--content),calc(100% - 40px));margin-inline:auto}.site-header{position:sticky;top:0;z-index:20;width:100%;margin-inline:0;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:20px;align-items:center;padding:18px max(20px,calc((100% - var(--content)) / 2));background:color-mix(in srgb,var(--bg) 76%,transparent);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.site-header:after{content:"";position:absolute;top:calc(100% - 1px);right:0;left:0;height:72px;pointer-events:none;background:linear-gradient(to bottom,color-mix(in srgb,var(--bg) 76%,transparent),color-mix(in srgb,var(--bg) 52%,transparent) 30%,color-mix(in srgb,var(--bg) 22%,transparent) 68%,transparent);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);mask-image:linear-gradient(to bottom,black 0,rgba(0,0,0,.78) 42%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,black 0,rgba(0,0,0,.78) 42%,transparent 100%)}.brand,.site-nav,.header-actions,.language-switcher,.hero-actions,.tag-list,.project-card-topline,.timeline-heading,.site-footer nav{display:flex;align-items:center}.brand{min-height:40px;font-weight:850;text-decoration:none}.brand-text{font-size:clamp(1.12rem,1.35vw,1.28rem);letter-spacing:.01em;white-space:nowrap}.site-nav{justify-content:center;gap:6px;min-width:0;flex-wrap:nowrap}.site-nav a,.icon-link{border-radius:8px;color:var(--muted);font-size:.95rem;font-weight:700;text-decoration:none;transition-property:background-color,color,box-shadow;transition-duration:.16s;transition-timing-function:ease}.site-nav a{position:relative;display:inline-flex;align-items:center;min-height:40px;padding:8px 11px;white-space:nowrap}.site-nav a:hover,.icon-link:hover{background:var(--panel);color:var(--text)}.site-nav a[aria-current=page]{color:var(--text)}.site-nav a[aria-current=page]:after{content:"";position:absolute;right:11px;bottom:5px;left:11px;height:2px;border-radius:999px;background:var(--accent);box-shadow:0 0 12px color-mix(in srgb,var(--accent) 70%,transparent)}.icon-link{display:inline-flex;align-items:center;justify-content:center;min-width:42px;min-height:40px;box-shadow:var(--shadow-border)}.header-actions{justify-content:flex-end;gap:8px;min-width:0}.language-switcher{min-height:40px;padding:2px;border-radius:8px;background:transparent}.language-switcher a{display:inline-flex;align-items:center;justify-content:center;min-width:34px;min-height:36px;border-radius:6px;color:var(--muted);font-size:.78rem;font-weight:850;line-height:1;text-decoration:none;transition-property:background-color,color;transition-duration:.16s;transition-timing-function:ease}.language-switcher a:hover{color:var(--text)}.language-switcher a[aria-current=true]{background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--text)}html[data-preferred-language] .language-switcher a[aria-current=true]{background:transparent;color:var(--muted)}html[data-preferred-language=en] .language-switcher a[data-language-choice=en],html[data-preferred-language=fi] .language-switcher a[data-language-choice=fi]{background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--text)}main{overflow:hidden}.section-shell{padding:74px 0}.compact-section{padding-top:32px}.compact-section .section-heading{margin-bottom:16px}.hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.78fr);gap:clamp(34px,5vw,64px);align-items:center;min-height:clamp(560px,calc(100svh - 126px),680px);padding-top:48px;padding-bottom:88px}.hero-copy{max-width:760px}.eyebrow,.project-card-topline,.post-meta,.timeline-period,.career-year{margin:0 0 6px;color:var(--accent);font-size:.78rem;font-weight:800;text-transform:uppercase}h1,h2,h3,p,dl,dd{margin-top:0}h1,h2,h3{line-height:1.05;letter-spacing:0;text-wrap:balance}h1{margin-bottom:18px;font-size:4.8rem}.hero h1{font-size:clamp(2.6rem,5.3vw,5.1rem);white-space:nowrap}h2{margin-bottom:18px;font-size:2.45rem}h3{margin-bottom:12px;font-size:1.14rem}p,li,dd{color:var(--muted);text-wrap:pretty}.hero-statement{max-width:720px;margin-bottom:16px;color:var(--text);font-size:2rem;font-weight:850;line-height:1.08;text-wrap:balance}.hero-lede,.page-hero p:not(.eyebrow),.about-detail-hero>div>p:not(.eyebrow),.project-detail-hero>div>p:not(.eyebrow),.project-detail-description p,.post-hero>p{max-width:760px;color:#d7deea;font-size:1.16rem}.hero-actions{display:grid;gap:12px;margin-top:28px}.hero-action-row{display:flex;flex-wrap:wrap;gap:12px}.hero-action-row-primary .button{min-width:186px}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 16px;border:0;border-radius:8px;background:var(--panel);box-shadow:var(--shadow-border);color:var(--text);font-weight:800;white-space:nowrap;text-decoration:none;scale:1;transition-property:scale,background-color,box-shadow,color;transition-duration:.16s;transition-timing-function:ease}.button:hover{background:color-mix(in srgb,var(--accent) 12%,var(--panel-strong));box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 42%,transparent),0 14px 34px #00000038;color:var(--text)}.button:active{scale:.96}.button.is-disabled,.button:disabled{background:transparent;box-shadow:var(--shadow-border);color:var(--faint);pointer-events:none}.button-primary{background:var(--accent);box-shadow:none;color:var(--accent-ink)}.button-primary:hover{background:#36e0cb;box-shadow:0 0 0 1px color-mix(in srgb,#36e0cb 42%,transparent),0 16px 38px #2dd4bf2e;color:var(--accent-ink)}.button-quiet{background:transparent}.button-linkedin{background:color-mix(in srgb,var(--panel-strong) 92%,transparent)}.detail-back-nav{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:flex-start;padding-top:34px;padding-bottom:0}.detail-back-nav .button{background:transparent;box-shadow:none;color:var(--muted)}.detail-back-nav .button:hover{background:color-mix(in srgb,var(--panel-strong) 58%,transparent);box-shadow:none;color:var(--text)}.detail-back-nav .button:disabled{background:transparent;box-shadow:none;color:var(--faint)}.detail-back-nav+article .about-detail-hero,.detail-back-nav+article .project-detail-hero{padding-top:42px}.detail-previous-button{min-width:154px}.button-icon{width:18px;height:18px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.hero-actions .button:hover,.contact-actions .button:hover{box-shadow:var(--shadow-border)}.hero-actions .button-primary:hover,.contact-actions .button-primary:hover{box-shadow:none}.button-logo{width:18px;height:18px;object-fit:contain;outline:0}.hero-proof{margin:34px 0 0;padding-top:20px;border-top:1px solid var(--border)}.hero-proof{display:grid;grid-template-columns:auto minmax(0,1fr);gap:28px;align-items:center}.hero-proof>div{display:grid;grid-template-columns:auto auto;gap:12px;align-items:center}.hero-proof>div:last-child{justify-self:end}.hero-proof dt{margin-bottom:0;color:var(--faint);font-size:.78rem;font-weight:800;text-transform:uppercase}.hero-proof dd{margin-left:0}.proof-logo-list{display:flex;flex-wrap:wrap;align-items:center;gap:16px}.proof-logo{display:inline-flex;align-items:center;justify-content:center;min-width:42px;min-height:42px;padding:4px 0;border-radius:8px;scale:1;transition-property:scale,opacity,filter;transition-duration:.16s;transition-timing-function:ease}.proof-logo:hover{filter:brightness(1.12)}.proof-logo:active{scale:.96}.proof-logo img{max-width:112px;max-height:30px;object-fit:contain;outline:0;opacity:.78;filter:grayscale(.08) saturate(.9);transition-property:opacity,filter;transition-duration:.16s;transition-timing-function:ease}.proof-logo-current img{max-width:132px}.proof-logo:hover img{opacity:1;filter:none}.hero-visual{display:flex;justify-content:center}.hero-portrait-panel{position:relative;width:min(100%,430px);min-height:460px}.hero-portrait-panel:before,.hero-portrait-panel:after{content:"";position:absolute;inset:24px -36px 0 -18px;border-radius:18px;pointer-events:none;transform:translateZ(0)}.hero-portrait-panel:before{z-index:0;background:repeating-linear-gradient(135deg,rgba(45,212,191,.14) 0 1px,transparent 1px 22px),radial-gradient(circle at 76% 16%,rgba(125,196,248,.17),transparent 34%),radial-gradient(circle at 18% 86%,rgba(45,212,191,.11),transparent 38%),linear-gradient(135deg,#12212beb,#0f1b22b8);box-shadow:0 0 94px #2dd4bf24,var(--shadow-border),var(--shadow-soft);mask-image:linear-gradient(to right,transparent 0,black 18%,black 82%,transparent 100%),linear-gradient(to bottom,transparent 0,black 14%,black 100%);-webkit-mask-image:linear-gradient(to right,transparent 0,black 18%,black 82%,transparent 100%),linear-gradient(to bottom,transparent 0,black 14%,black 100%);mask-composite:intersect;-webkit-mask-composite:source-in}.hero-portrait-panel:after{z-index:1;background:radial-gradient(circle at 72% 30%,rgba(45,212,191,.18),transparent 36%),radial-gradient(circle at 24% 78%,rgba(125,196,248,.14),transparent 42%);filter:blur(18px);opacity:.68;mask-image:linear-gradient(to right,transparent 0,black 20%,black 80%,transparent 100%),linear-gradient(to bottom,transparent 0,black 18%,black 100%);-webkit-mask-image:linear-gradient(to right,transparent 0,black 20%,black 80%,transparent 100%),linear-gradient(to bottom,transparent 0,black 18%,black 100%);mask-composite:intersect;-webkit-mask-composite:source-in;transform-origin:50% 100%;animation:portrait-panel-breathe 6.8s cubic-bezier(.45,0,.2,1) infinite}.hero-photo{position:absolute;right:12px;bottom:0;z-index:2;max-height:440px;object-fit:contain;filter:drop-shadow(0 30px 34px rgba(0,0,0,.42))}.reveal{animation:reveal .56s var(--ease-out) both}.hero-visual.reveal{animation-delay:.1s}@media(scripting:enabled){[data-reveal],[data-reveal-group]>*{opacity:0;translate:0 16px}}[data-reveal],[data-reveal-group]>*{transition-property:opacity,translate;transition-duration:.64s;transition-timing-function:var(--ease-out)}[data-reveal].is-visible,[data-reveal-group].is-visible>*{opacity:1;translate:0 0}[data-reveal-group].is-visible:not(.has-revealed)>:nth-child(2){transition-delay:70ms}[data-reveal-group].is-visible:not(.has-revealed)>:nth-child(3){transition-delay:.14s}[data-reveal-group].is-visible:not(.has-revealed)>:nth-child(4){transition-delay:.21s}[data-reveal-group].is-visible:not(.has-revealed)>:nth-child(n+5){transition-delay:.28s}.section-heading{max-width:760px;margin-bottom:20px}.section-heading p{max-width:640px}.section-heading-row{display:flex;align-items:end;justify-content:space-between;gap:28px;max-width:none}.section-heading-row h2:last-child{margin-bottom:0}.section-heading-row>p{max-width:520px;margin-bottom:22px}.section-heading-link{padding:14px 18px;margin:-14px -18px 6px;border-radius:8px;color:inherit;text-decoration:none;transition-property:background-color;transition-duration:.18s;transition-timing-function:ease}.compact-section .section-heading-link{margin-bottom:2px}.section-heading-link:hover,.section-heading-link:focus-visible{background:color-mix(in srgb,var(--panel-strong) 58%,transparent)}.section-heading-link:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.section-heading-link-action{transition-property:color;transition-duration:.16s;transition-timing-function:ease}.section-heading-link:hover .section-heading-link-action,.section-heading-link:focus-visible .section-heading-link-action{color:#36e0cb}.section-heading-link:hover .section-heading-link-action svg,.section-heading-link:focus-visible .section-heading-link-action svg{translate:2px -2px}.text-link{display:inline-flex;align-items:center;min-height:40px;color:var(--accent);font-weight:800}.text-link-outbound{gap:7px;text-decoration-thickness:2px;text-underline-offset:5px}.text-link-outbound svg{width:.92em;height:.92em;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.4;translate:0 0;transition-property:translate;transition-duration:.16s;transition-timing-function:ease}.text-link-outbound:hover svg{translate:2px -2px}.focus-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0}.post-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.post-card,.project-card,.skill-group,.timeline-content{border-radius:8px;background:color-mix(in srgb,var(--panel) 92%,transparent);box-shadow:var(--shadow-border)}.post-card,.skill-group,.timeline-content{padding:22px}.timeline-content{position:relative;transition-property:background-color,box-shadow;transition-duration:.18s;transition-timing-function:ease}.timeline-content-clickable{cursor:pointer}.timeline-card-link{position:absolute;inset:0;z-index:1;border-radius:inherit;color:inherit;cursor:pointer;text-decoration:none}.timeline-card-link:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.focus-card{position:relative;min-width:0;padding:clamp(18px,2.2vw,26px) clamp(24px,3vw,34px)}.focus-card-link{display:flex;flex-direction:column;height:100%;border-radius:8px;color:inherit;text-decoration:none;transition-property:background-color;transition-duration:.18s;transition-timing-function:ease}.focus-card-link:hover,.focus-card-link:focus-visible{background:color-mix(in srgb,var(--panel-strong) 58%,transparent)}.focus-card-link:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.focus-read-more{margin-top:auto;padding-top:16px}.focus-card-link:hover .focus-read-more,.focus-card-link:focus-visible .focus-read-more{color:var(--accent)}.focus-card-link:hover .focus-read-more svg,.focus-card-link:focus-visible .focus-read-more svg{translate:2px 0}.focus-card:first-child{padding-left:0}.focus-card:last-child{padding-right:0}.focus-card+.focus-card:before{content:"";position:absolute;top:0;bottom:0;left:0;width:1px;background:var(--border);pointer-events:none}.focus-grid-current .focus-card{padding:clamp(20px,2.2vw,28px)}.focus-card h3,.post-card h3,.skill-group h3{color:var(--text)}.project-list-shell{padding-top:28px}.project-list{--project-list-gap: clamp(48px, 7vw, 86px);display:flex;flex-direction:column;gap:var(--project-list-gap);max-width:1120px;margin-inline:auto}.work-grid{--work-grid-column-gap: 36px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:var(--work-grid-column-gap);row-gap:36px;align-items:stretch}.project-card{position:relative;display:flex;flex-direction:column;overflow:hidden;background:color-mix(in srgb,var(--panel) 96%,transparent);transition-property:opacity,translate,box-shadow,background-color;transition-duration:.18s;transition-timing-function:ease}.project-card:hover{background:color-mix(in srgb,var(--panel-strong) 58%,transparent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 30%,transparent),0 22px 56px #00000042}.project-card-selected,.project-card-selected:hover{box-shadow:none;overflow:visible}.project-card[hidden]{display:none}.project-card-link{display:grid;grid-template-rows:auto 1fr;min-height:100%;color:inherit;text-decoration:none}.project-card-link:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.project-card-main-link{position:absolute;inset:0;z-index:1;border-radius:inherit;color:inherit;text-decoration:none}.project-card-main-link:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.project-card-content{display:flex;flex-direction:column;flex:1;min-width:0;padding-block:10px}.project-media{display:block;aspect-ratio:16 / 9;background:var(--panel-strong);overflow:hidden;text-decoration:none}.project-media img,.project-detail-hero img{width:100%;height:100%;object-fit:cover;object-position:center top;outline:1px solid rgba(255,255,255,.1);outline-offset:-1px}.project-media img{filter:brightness(1) saturate(1);transition-property:filter;transition-duration:.18s;transition-timing-function:ease}.project-card:hover .project-media img{filter:brightness(1.1) saturate(1.12) contrast(1.02)}.work-grid .project-card{min-width:0;min-height:100%}.work-grid .project-card-selected{height:100%;border-radius:0;background:transparent}.work-grid .project-card-selected+.project-card-selected:before{content:"";position:absolute;top:0;bottom:0;left:calc(var(--work-grid-column-gap) * -.5);width:1px;background:var(--border)}.work-grid .project-card-selected .project-card-link{grid-template-rows:auto 1fr;gap:0;height:100%;min-height:100%;overflow:hidden;border-radius:18px;transition-property:background-color;transition-duration:.18s;transition-timing-function:ease}.work-grid .project-card-selected:hover .project-card-link{background:color-mix(in srgb,var(--panel-strong) 48%,transparent)}.work-grid .project-card-selected .project-media{width:100%;max-width:100%;height:232px;aspect-ratio:16 / 10;justify-self:stretch;border-radius:18px;box-shadow:0 20px 52px #00000038;clip-path:inset(0 round 18px);contain:paint;transition-property:box-shadow;transition-duration:.18s;transition-timing-function:ease}.work-grid .project-media img{width:100%;height:100%;border-radius:inherit;outline:none;object-fit:cover;object-position:center center}.work-grid .project-card-selected:hover .project-media{box-shadow:0 28px 74px #00000057}.work-grid .project-card-selected:hover .project-media img{filter:brightness(1.14) saturate(1.16) contrast(1.02)}.work-grid .project-card-selected .project-card-body{padding:18px 14px}.work-grid .project-card-selected .project-card-read-more{margin-top:auto;padding-top:16px}.work-grid .project-card-selected:hover .project-card-read-more,.work-grid .project-card-selected:focus-within .project-card-read-more{color:var(--accent)}.work-grid .project-card-selected:hover .project-card-read-more svg,.work-grid .project-card-selected:focus-within .project-card-read-more svg{translate:2px 0}.work-grid .project-card-selected .project-card-topline{margin-bottom:8px;color:var(--accent);font-variant-numeric:tabular-nums}.work-grid .project-card h3{margin-bottom:10px;font-size:1.16rem;transition-property:color;transition-duration:.16s;transition-timing-function:ease}.work-grid .project-card-copy p{font-size:.96rem;line-height:1.54}.project-card-body{display:flex;flex-direction:column;align-items:flex-start;flex:1;width:100%;padding:18px}.project-card-topline{justify-content:space-between;gap:18px;width:100%}.project-card h3{margin-bottom:10px;font-size:1.08rem}.project-card p{font-size:.94rem;line-height:1.55}.project-card-copy,.project-card-description,.project-detail-description{display:grid;gap:12px}[data-language-copy=fi],[data-language-block=fi],html[data-preferred-language=fi] [data-language-copy=en]{display:none}html[data-preferred-language=fi] [data-language-copy=fi]{display:inline}html[data-preferred-language=fi] [data-language-block=en]{display:none}html[data-preferred-language=fi] [data-language-block=fi]{display:block}[data-project-description-lang=fi],html[data-preferred-language=fi] [data-project-description-lang=en]{display:none}html[data-preferred-language=fi] [data-project-description-lang=fi]{display:block}.project-detail-description{max-width:760px}.post-card h3 a{text-decoration:none}.project-card p,.project-detail-description p,.focus-card p,.principle-item p,.writing-item p,.career-step p{margin-bottom:0}.project-list .project-card{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(300px,.82fr);align-items:center;gap:clamp(24px,4.5vw,52px);overflow:visible;border-radius:18px;background:transparent;box-shadow:none;translate:0 0}.project-list .project-card+.project-card:before{content:"";position:absolute;top:calc(var(--project-list-gap) * -.5);right:0;left:0;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--border) 72%,transparent) 14%,color-mix(in srgb,var(--border-strong) 76%,transparent) 50%,color-mix(in srgb,var(--border) 72%,transparent) 86%,transparent)}.project-list .project-card:nth-child(2n){grid-template-columns:minmax(300px,.82fr) minmax(0,1.18fr)}.project-list .project-card:nth-child(2n) .project-media{grid-column:2}.project-list .project-card:nth-child(2n) .project-card-content{grid-column:1;justify-self:end;margin-right:0;margin-left:0;text-align:right}.project-list .project-card:nth-child(2n) .project-card-body{align-items:flex-end}.project-list .project-card:nth-child(2n) .project-card-read-more{align-self:flex-end}.project-list .project-card:hover{background:color-mix(in srgb,var(--panel-strong) 48%,transparent);translate:0 0}.project-list .project-media{grid-column:1;grid-row:1;width:100%;aspect-ratio:16 / 10;border-radius:18px;box-shadow:0 20px 52px #00000038;transition-property:box-shadow;transition-duration:.18s;transition-timing-function:ease}.project-list .project-media img{border-radius:inherit;filter:brightness(1) saturate(1);outline:none;transition-property:filter;transition-duration:.18s;transition-timing-function:ease}.project-list .project-card:hover .project-media{box-shadow:0 28px 74px #00000057}.project-list .project-card:hover .project-media img{filter:brightness(1.14) saturate(1.16) contrast(1.02)}.project-list .project-card-content{grid-column:2;grid-row:1;align-self:stretch;justify-self:start;width:min(100%,520px);min-width:0;max-width:520px}.project-list .project-card-body{padding:0}.project-list .project-card-topline{width:auto;margin-bottom:12px;color:var(--accent);font-variant-numeric:tabular-nums}.project-list .project-card h3{max-width:680px;margin-bottom:14px;font-size:clamp(1.75rem,3vw,2.45rem);line-height:1.02}.project-list .project-card p{max-width:62ch;color:#d7deea;font-size:1.03rem;line-height:1.65}.project-card:hover .project-card-read-more,.project-card:focus-within .project-card-read-more{color:var(--accent)}.project-card:hover .project-card-read-more svg,.project-card:focus-within .project-card-read-more svg{translate:2px 0}.project-list .project-card-read-more{align-self:flex-start;margin-top:auto;padding:22px 0 0}.feature-list{display:grid;gap:8px;margin:16px 0;padding:0;list-style:none}.feature-list li{position:relative;padding-left:18px;color:var(--muted)}.feature-list li:before{content:"";position:absolute;top:.72em;left:0;width:6px;height:6px;border-radius:50%;background:var(--accent)}.feature-list-large{gap:12px;margin-top:0;font-size:1.06rem}.tag-list{flex-wrap:wrap;gap:7px}.tech-tag{display:inline-flex;align-items:center;min-height:26px;padding:3px 8px;border-radius:7px;background:color-mix(in srgb,var(--accent) 12%,transparent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 28%,transparent);color:#d9fffb;font-size:.78rem;font-weight:750;line-height:1.2;text-decoration:none}.tech-tag.is-muted{background:color-mix(in srgb,var(--panel-strong) 88%,transparent);box-shadow:var(--shadow-border);color:var(--muted)}.tag-python,.tag-java,.tag-spring-boot{background:color-mix(in srgb,var(--accent-warm) 11%,transparent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent-warm) 28%,transparent);color:#ffe9bd}.tag-csharp,.tag-dotnet,.tag-net,.tag-wpf,.tag-winforms{background:color-mix(in srgb,var(--accent-cool) 11%,transparent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent-cool) 28%,transparent);color:#dcf6ff}.tag-language,.tag-vision,.tag-diffusion,.tag-language-models{background:color-mix(in srgb,var(--accent-red) 11%,transparent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent-red) 28%,transparent);color:#ffe4e6}.principles-section .section-heading{padding-bottom:24px;border-bottom:1px solid var(--border)}.principles-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--border);border-left:1px solid var(--border)}.principle-item{padding:28px;border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.principle-item h3{margin-bottom:10px}.split-section{display:grid;grid-template-columns:minmax(220px,.34fr) minmax(0,1fr);gap:60px;align-items:start}#work,#studies{scroll-margin-top:112px}.sticky-heading{position:sticky;top:92px}.skill-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.skill-group h3{margin-bottom:14px}.career-spine{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:26px;padding-top:34px}.career-spine:before{content:"";position:absolute;top:12px;left:0;right:0;height:1px;background:var(--border)}.career-step{position:relative}.career-step:before{content:"";position:absolute;top:-28px;left:0;width:13px;height:13px;border:3px solid var(--bg);border-radius:50%;background:var(--accent);box-shadow:0 0 0 1px var(--accent)}.career-step h3{font-size:1rem}.career-year{margin-bottom:8px;color:var(--accent-warm)}.timeline-preview-section{display:grid;gap:22px}.timeline-preview-list{display:grid;gap:70px}.timeline-preview{display:grid;grid-template-columns:minmax(126px,.18fr) minmax(0,1fr);gap:26px;align-items:start;min-width:0}.timeline-preview-heading{padding-top:2px}.timeline-preview-heading-link{display:block;min-height:40px;padding:12px 14px;margin:-12px -14px;border-radius:8px;color:inherit;text-decoration:none;transition-property:background-color;transition-duration:.18s;transition-timing-function:ease}.timeline-preview-heading-link:hover,.timeline-preview-heading-link:focus-visible{background:color-mix(in srgb,var(--panel-strong) 72%,transparent)}.timeline-preview-heading-link:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.timeline-preview-heading h2{margin-bottom:0;font-size:2.55rem;line-height:1}.timeline-heading-action{margin-top:14px}.timeline-preview-heading-link:hover .timeline-heading-action,.timeline-preview-heading-link:focus-visible .timeline-heading-action{color:#36e0cb}.timeline-preview-heading-link:hover .timeline-heading-action svg,.timeline-preview-heading-link:focus-visible .timeline-heading-action svg{translate:2px -2px}.timeline-list{display:grid;gap:18px;margin:0;padding:0;list-style:none}.timeline-item{position:relative;padding-left:28px}.timeline-item:before{content:"";position:absolute;top:20px;bottom:-18px;left:7px;width:1px;background:var(--border)}.timeline-item:last-child:before{display:none}.timeline-marker{position:absolute;top:20px;left:0;width:15px;height:15px;border:3px solid var(--bg);border-radius:50%;background:var(--accent);box-shadow:0 0 0 1px var(--accent)}.timeline-heading{justify-content:space-between;gap:20px;margin-bottom:12px}.timeline-heading img{width:44px;height:44px;object-fit:contain;outline:0;filter:grayscale(1) brightness(1.35)}.timeline-heading a{display:inline-flex;position:relative;z-index:2;color:var(--accent);font-weight:800}.timeline-period{margin-bottom:6px;color:var(--faint)}.timeline-list-compact{--timeline-date-width: 82px;--timeline-marker-width: 17px;--timeline-rail-gap: 12px;--timeline-marker-left: calc(var(--timeline-date-width) + var(--timeline-rail-gap) + (var(--timeline-marker-width) / 2));--timeline-marker-top: 8px;--timeline-marker-bottom: 8px;--timeline-item-gap: 12px;gap:var(--timeline-item-gap);position:relative}.timeline-list-compact .timeline-item{display:grid;grid-template-columns:var(--timeline-date-width) var(--timeline-marker-width) minmax(0,1fr);column-gap:var(--timeline-rail-gap);align-items:start;padding-left:0;border-radius:8px;cursor:pointer;transition-property:background-color,box-shadow;transition-duration:.18s;transition-timing-function:ease}.timeline-list-compact .timeline-item:before{top:var(--timeline-marker-top);bottom:var(--timeline-marker-bottom);left:var(--timeline-marker-left);background:color-mix(in srgb,var(--border) 74%,transparent)}.timeline-list-compact .timeline-item:last-child:before{display:block}.timeline-list-compact .timeline-item:not(:last-child):after{content:"";position:absolute;top:100%;left:var(--timeline-marker-left);height:var(--timeline-item-gap);border-left:1px dashed color-mix(in srgb,var(--border) 92%,transparent);transform:translate(-.5px)}.timeline-date{position:absolute;left:0;width:var(--timeline-date-width);margin:0;color:var(--faint);font-size:.76rem;font-weight:850;font-variant-numeric:tabular-nums;line-height:1;text-align:right;text-transform:uppercase;white-space:nowrap}.timeline-date-start{top:calc(var(--timeline-marker-top) + 2px)}.timeline-date-end{bottom:calc(var(--timeline-marker-bottom) + 2px)}.timeline-list-compact .timeline-marker{position:absolute;top:auto;bottom:auto;left:var(--timeline-marker-left);z-index:1;width:var(--timeline-marker-width);height:var(--timeline-marker-width);margin-top:0;border-width:4px;transform:translate(-50%)}.timeline-list-compact .timeline-marker-start{top:var(--timeline-marker-top)}.timeline-list-compact .timeline-marker-end{bottom:var(--timeline-marker-bottom)}.timeline-list-compact .timeline-content{position:static;grid-column:3;padding:16px 18px;border-radius:8px;background:transparent;box-shadow:none}.timeline-list-compact .timeline-heading{align-items:start;gap:18px;margin-bottom:10px}.timeline-list-compact .timeline-heading h3{margin-bottom:4px;color:var(--text);font-size:1.14rem;line-height:1.15}.timeline-list-compact .timeline-title-block a{width:fit-content}.timeline-list-compact .timeline-heading img{width:58px;height:42px;opacity:1;filter:none}.timeline-list-compact .timeline-heading .timeline-logo-wide{width:96px}.timeline-list-compact .timeline-heading a{font-size:1rem}.timeline-list-compact .timeline-content>p{margin-bottom:0;max-width:840px}.timeline-read-more{display:inline-flex;align-items:center;gap:6px;margin-top:12px;color:var(--faint);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.76rem;font-weight:700;line-height:1;transition-property:color;transition-duration:.16s;transition-timing-function:ease}.timeline-read-more svg{width:.98em;height:.98em;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.2;translate:0 0;transition-property:translate;transition-duration:.16s;transition-timing-function:ease}.timeline-content-clickable:hover,.timeline-content-clickable:focus-within{background:color-mix(in srgb,var(--panel-strong) 95%,#ffffff 5%)}.timeline-content-clickable:hover .timeline-read-more,.timeline-content-clickable:focus-within .timeline-read-more{color:var(--accent)}.timeline-content-clickable:hover .timeline-read-more svg,.timeline-content-clickable:focus-within .timeline-read-more svg{translate:2px 0}.timeline-list-compact .timeline-content-clickable:hover,.timeline-list-compact .timeline-content-clickable:focus-within{background:transparent}.timeline-list-compact .timeline-item:hover,.timeline-list-compact .timeline-item:focus-within{background:color-mix(in srgb,var(--panel-strong) 72%,transparent)}.timeline-list-compact .timeline-item:hover .timeline-read-more,.timeline-list-compact .timeline-item:focus-within .timeline-read-more{color:var(--accent)}.timeline-list-compact .timeline-item:hover .timeline-read-more svg,.timeline-list-compact .timeline-item:focus-within .timeline-read-more svg{translate:2px 0}@media(max-width:760px),(hover:none){.timeline-read-more{color:var(--accent)}.timeline-read-more svg{translate:2px 0}}.page-hero,.post-hero,.about-detail-hero,.project-detail-hero{padding-top:96px;padding-bottom:46px}.page-hero h1,.post-hero h1,.about-detail-hero h1,.project-detail-hero h1{max-width:900px;font-size:3.4rem}.about-hero{display:grid;grid-template-columns:minmax(0,.85fr) minmax(440px,.75fr);gap:clamp(30px,4.6vw,56px);align-items:center}.about-hero-copy{min-width:0}.about-hero-visual{display:flex;align-items:center;justify-content:center;min-height:clamp(360px,36vw,460px)}.about-photo-stack{position:relative;isolation:isolate;width:min(100%,520px);height:clamp(360px,37vw,480px)}.about-photo-card{position:absolute;bottom:0;left:50%;width:clamp(184px,18vw,244px);overflow:visible;border-radius:0;background:transparent;filter:drop-shadow(0 22px 26px rgba(0,0,0,.34));transform-origin:50% 92%;transition-property:transform,filter,opacity;transition-duration:.26s;transition-timing-function:cubic-bezier(.2,0,0,1)}.about-photo-card img{width:100%;height:auto;object-fit:contain;object-position:center bottom;outline:0;filter:brightness(1) contrast(1) saturate(1);transition-property:filter;transition-duration:.26s;transition-timing-function:cubic-bezier(.2,0,0,1)}.about-photo-card-left{z-index:2;width:clamp(206px,20vw,264px);transform:translate(-104%) translateY(8px) rotate(-5.5deg)}.about-photo-card-center{z-index:4;width:clamp(220px,22vw,286px);transform:translate(-50%) translateY(-10px) rotate(1deg)}.about-photo-card-right{z-index:1;width:clamp(206px,20vw,264px);transform:translate(4%) translateY(12px) rotate(6deg)}.about-photo-stack:has(.about-photo-card-left:hover) .about-photo-card-center{transform:translate(-34%) translateY(-10px) rotate(1deg)}.about-photo-stack:has(.about-photo-card-left:hover) .about-photo-card-right{transform:translate(16%) translateY(14px) rotate(7deg)}.about-photo-stack:has(.about-photo-card-center:hover) .about-photo-card-left{transform:translate(-116%) translateY(12px) rotate(-7.5deg)}.about-photo-stack:has(.about-photo-card-center:hover) .about-photo-card-right{transform:translate(18%) translateY(14px) rotate(7.5deg)}.about-photo-stack:has(.about-photo-card-right:hover) .about-photo-card-left{transform:translate(-116%) translateY(10px) rotate(-7deg)}.about-photo-stack:has(.about-photo-card-right:hover) .about-photo-card-center{transform:translate(-64%) translateY(-10px) rotate(1deg)}.about-photo-card:hover{opacity:1}.about-photo-card:hover img{filter:brightness(1.08) contrast(1.04) saturate(1.04)}.about-photo-card-left:hover{transform:translate(-114%) translateY(-8px) rotate(-7.5deg) scale(1.08)}.about-photo-card-center:hover{transform:translate(-50%) translateY(-30px) rotate(1deg) scale(1.08)}.about-photo-card-right:hover{transform:translate(16%) translateY(-8px) rotate(7.5deg) scale(1.08)}.about-detail-hero,.project-detail-hero{display:grid;grid-template-columns:minmax(0,.9fr) minmax(320px,.85fr);gap:44px;align-items:center}.about-detail-hero{grid-template-columns:minmax(0,.95fr) minmax(260px,.45fr)}.project-detail-hero img{aspect-ratio:16 / 10;border-radius:8px;box-shadow:var(--shadow-border),var(--shadow-soft)}.about-detail-logo-card,.background-entry{border-radius:8px;background:color-mix(in srgb,var(--panel) 92%,transparent);box-shadow:var(--shadow-border)}.about-detail-logo-card{display:flex;align-items:center;justify-content:center;min-height:250px;padding:34px}.about-detail-logo{width:min(100%,230px);max-height:122px;object-fit:contain;outline:0}.about-detail-logo-wide{width:min(100%,280px)}.about-detail-meta{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 0;padding:0;list-style:none}.about-detail-meta li{display:inline-flex;align-items:center;min-height:30px;padding:3px 9px;border-radius:7px;background:color-mix(in srgb,var(--panel-strong) 88%,transparent);box-shadow:var(--shadow-border);color:var(--muted);font-size:.8rem;font-weight:800;font-variant-numeric:tabular-nums}.background-entry-list{display:grid;gap:16px}.background-entry{padding:22px}.background-entry-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:12px}.background-entry-header h3,.background-entry p:last-child{margin-bottom:0}.background-entry-period{margin-bottom:0;color:var(--faint);font-size:.82rem;font-weight:850;font-variant-numeric:tabular-nums;text-align:right;text-transform:uppercase;white-space:nowrap}.background-entry .tag-list{margin-top:16px}.post-grid{align-items:stretch}.post-card{display:flex;flex-direction:column;min-height:230px}.post-card .tag-list{margin-top:auto}.writing-item{display:grid;grid-template-columns:minmax(280px,.96fr) minmax(360px,1.24fr) max-content;column-gap:clamp(26px,4vw,58px);align-items:center;padding:24px clamp(16px,1.8vw,24px) 14px;color:inherit;text-decoration:none;transition-property:opacity,translate,background-color,color;transition-duration:.16s;transition-timing-function:ease}.writing-item+.writing-item{border-top:1px solid var(--border)}.writing-item:hover,.writing-item:focus-visible{background:color-mix(in srgb,var(--panel-strong) 72%,transparent)}.writing-item-title{position:relative;min-width:0}.writing-item h3{margin-bottom:0;font-size:1.08rem;transition-property:color;transition-duration:.16s;transition-timing-function:ease}.writing-item .post-meta{position:absolute;top:-22px;left:0;margin-bottom:0;color:var(--accent)}.writing-item-description{max-width:640px}.writing-read-more{justify-self:end;margin-top:0;white-space:nowrap}.writing-item:hover .writing-read-more,.writing-item:focus-visible .writing-read-more{color:var(--accent)}.writing-item:hover .writing-read-more svg,.writing-item:focus-visible .writing-read-more svg{translate:2px 0}.blog-post .post-body{max-width:var(--narrow);padding-top:20px}.post-body{color:var(--muted);font-size:1.05rem}.post-body h2,.post-body h3{margin-top:2.2em;color:var(--text)}.post-body p,.post-body ul,.post-body ol{margin-bottom:1.1em}.post-body li{margin-bottom:.45em}.post-body code{border-radius:6px;background:var(--panel);box-shadow:var(--shadow-border);color:var(--accent);padding:.12em .34em}.post-body pre{overflow-x:auto;margin:1.4em 0;padding:18px;border-radius:8px;background:var(--panel);box-shadow:var(--shadow-border)}.post-body pre code{display:block;min-width:max-content;padding:0;background:transparent;box-shadow:none;color:#d7deea}.post-body blockquote{margin:1.4em 0;padding:4px 0 4px 18px;border-left:3px solid var(--accent)}.post-body blockquote p{color:#d7deea}.post-body img{width:100%;margin:1.6em 0;border-radius:8px;box-shadow:var(--shadow-border)}.post-body table{width:100%;margin:1.4em 0;border-collapse:collapse;font-size:.95rem}.post-body th,.post-body td{padding:10px 12px;border:1px solid var(--border);text-align:left}.post-body th{background:var(--panel);color:var(--text)}.prose-block{max-width:820px}.prose-block>p{font-size:1.05rem}.contact-section{padding-top:64px}.contact-panel{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;column-gap:32px;row-gap:0}.contact-copy{display:contents}.contact-panel h2{grid-column:1 / -1;max-width:none}.contact-copy .eyebrow{grid-column:1 / -1}.contact-text{grid-column:1;max-width:780px;margin-bottom:0;color:#d7deea;font-size:1.06rem}.contact-actions{display:grid;gap:12px;grid-column:2;justify-self:end;width:min(100%,270px)}.contact-actions .button{min-width:0}.site-footer{display:flex;justify-content:space-between;gap:24px;padding:44px 0 56px;color:var(--faint)}.site-footer p{margin:0}.site-footer nav{gap:14px;flex-wrap:wrap}.site-footer a{color:var(--muted);font-weight:800}.not-found{min-height:58vh}@keyframes page-enter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes page-exit{0%{opacity:1}to{opacity:0}}@keyframes reveal{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes portrait-panel-breathe{0%,to{opacity:.5;transform:translateZ(0) scale(1)}50%{opacity:.9;transform:translate3d(-8px,-5px,0) scale(1.04)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:1ms!important}@view-transition{navigation:none}}@media(max-width:1100px){.hero{grid-template-columns:minmax(0,1fr) minmax(270px,.68fr);gap:42px;padding-top:38px;padding-bottom:50px}h1{font-size:4.25rem}.hero-statement{font-size:1.72rem}.hero-proof{margin-top:24px}.proof-logo img{max-width:104px}.hero-portrait-panel{min-height:430px}.hero-photo{max-height:410px}}@media(max-width:980px){.site-header{gap:14px}.project-detail-hero,.about-detail-hero,.about-hero,.split-section{grid-template-columns:1fr}.about-hero{gap:28px}.about-hero-visual{justify-content:center;min-height:360px}.about-photo-stack{width:min(100%,420px);height:360px}.work-grid{--work-grid-column-gap: 32px;grid-template-columns:repeat(2,minmax(0,1fr))}.work-grid .project-card-selected+.project-card-selected:before{display:none}.work-grid .project-card-selected:nth-child(2n):before{display:block}.hero{grid-template-columns:minmax(0,1fr) minmax(230px,.55fr);gap:30px;min-height:auto;padding-top:42px}.hero-visual{justify-content:flex-end}.hero-portrait-panel{min-height:340px}.hero-portrait-panel:before,.hero-portrait-panel:after{inset:28px 0 0 8px}.hero-photo{right:0;max-height:335px;translate:0 0}.sticky-heading{position:static}.focus-grid,.post-grid,.skill-groups{grid-template-columns:1fr}.focus-card{padding:20px 0}.focus-card+.focus-card:before{inset:0 0 auto;width:auto;height:1px}.timeline-preview{grid-template-columns:1fr;gap:18px}.contact-panel{grid-template-columns:1fr;gap:28px}.contact-actions{grid-column:1}.timeline-preview-list{gap:52px}.career-spine{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:42px}.career-spine:before{display:none}.career-step:before{top:-22px}.writing-item{grid-template-columns:minmax(240px,.96fr) minmax(0,1.04fr) max-content;column-gap:22px}}@media(max-width:760px){.site-header,.site-footer,.section-shell{width:min(100% - 28px,var(--content))}.site-header{grid-template-columns:auto minmax(0,1fr) auto;gap:10px;width:100%;margin-inline:0;padding:14px max(14px,calc((100% - var(--content)) / 2))}.site-header:after{height:34px;background:linear-gradient(to bottom,color-mix(in srgb,var(--bg) 66%,transparent),transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);mask-image:linear-gradient(to bottom,black 0,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,black 0,transparent 100%)}.site-nav{grid-column:auto;grid-row:auto;justify-content:center;gap:2px;overflow:visible;padding-bottom:0}.header-actions{grid-column:auto;grid-row:auto}.site-nav a{padding:7px 8px;font-size:.86rem}.icon-link{min-width:40px;min-height:40px}.section-shell{padding:54px 0}.detail-back-nav{gap:8px;padding-top:24px;padding-bottom:0}.detail-back-nav+article .about-detail-hero,.detail-back-nav+article .project-detail-hero{padding-top:34px}.about-hero{padding-top:60px;padding-bottom:36px}.about-hero-visual{min-height:320px}.about-photo-stack{width:min(100%,360px);height:315px}.about-photo-card{width:clamp(150px,39vw,190px)}.about-photo-card-left{width:clamp(158px,42vw,204px)}.about-photo-card-center{width:clamp(172px,47vw,218px)}.about-photo-card-right{width:clamp(158px,42vw,204px)}.timeline-preview-list{gap:46px}.timeline-preview-heading-link{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:16px;row-gap:8px;align-items:end}.timeline-preview-heading-link .eyebrow{grid-column:1;grid-row:1;margin-bottom:0}.timeline-preview-heading-link h2{grid-column:1 / -1;grid-row:2}.timeline-heading-action{grid-column:2;grid-row:1;justify-self:end;align-self:end;min-height:0;margin-top:0;font-size:.78rem;white-space:nowrap}.timeline-list-compact{--timeline-date-width: 68px;--timeline-marker-width: 15px;--timeline-rail-gap: 10px;--timeline-item-gap: 10px}.timeline-list-compact .timeline-item{padding-left:0}.timeline-list-compact .timeline-content{padding:15px 16px}.timeline-list-compact .timeline-heading{gap:12px}.timeline-list-compact .timeline-heading img{width:48px;height:36px}.timeline-list-compact .timeline-heading .timeline-logo-wide{width:80px}.compact-section{padding-top:24px}h1,.page-hero h1,.post-hero h1,.about-detail-hero h1,.project-detail-hero h1{font-size:3rem}h2{font-size:2rem}.about-detail-logo-card{min-height:180px;padding:28px}.background-entry-header{flex-direction:column;gap:4px}.background-entry-period{text-align:left;white-space:normal}.hero-statement{font-size:1.5rem}.hero-lede,.page-hero p:not(.eyebrow),.about-detail-hero>div>p:not(.eyebrow),.project-detail-hero>div>p:not(.eyebrow),.project-detail-description p,.post-hero>p{font-size:1.04rem}.hero{grid-template-columns:minmax(0,1fr) minmax(138px,32vw);gap:18px 16px;align-items:start;padding-top:28px;padding-bottom:58px}.hero-copy{display:contents}.hero .eyebrow,.hero h1{grid-column:1 / -1}.hero-statement,.hero-lede{grid-column:1}.hero-visual{grid-column:2;grid-row:3 / 5;align-self:start;justify-content:flex-end}.hero-actions,.hero-proof{grid-column:1 / -1}.hero-proof{grid-template-columns:auto minmax(0,1fr);gap:18px}.hero-portrait-panel{width:100%;min-height:280px}.hero-portrait-panel:before,.hero-portrait-panel:after{inset:20px 0 0 4px}.hero-photo{right:0;max-height:272px}.work-grid{grid-template-columns:1fr;row-gap:34px}.work-grid .project-card-selected:nth-child(2n):before{display:none}.work-grid .project-card-selected .project-media{height:clamp(220px,58vw,280px)}.project-list-shell{padding-top:28px}.project-list{gap:54px}.project-list .project-card{display:flex;flex-direction:column;align-items:flex-start;gap:18px}.project-list .project-card:nth-child(2n){flex-direction:column}.project-list .project-card:nth-child(2n) .project-card-content{margin-left:0;margin-right:0;text-align:left}.project-list .project-card:nth-child(2n) .project-card-body{align-items:flex-start}.project-list .project-card:nth-child(2n) .project-card-read-more{align-self:flex-start}.project-list .project-media{flex-basis:auto;width:100%;border-radius:14px}.project-list .project-card-content{max-width:none}.project-list .project-card h3{font-size:clamp(1.55rem,7vw,2.1rem)}.project-list .project-card-read-more{padding-top:18px}.principles-grid{grid-template-columns:1fr}.principle-item{padding:22px}.section-heading-row,.site-footer{align-items:flex-start;flex-direction:column}.contact-panel{align-items:flex-start}.section-heading-action-row{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:16px;row-gap:8px;align-items:end}.section-heading-action-row>div{display:contents}.section-heading-action-row .eyebrow{grid-column:1;grid-row:1;margin-bottom:0}.section-heading-action-row h2{grid-column:1 / -1;grid-row:2}.section-heading-action-row>.text-link{grid-column:2;grid-row:1;justify-self:end;align-self:end;min-height:0;font-size:.78rem;white-space:nowrap}.writing-item{grid-template-columns:1fr;grid-template-rows:auto;padding:16px 4px;gap:10px}.writing-item .post-meta,.writing-item h3,.writing-item-description,.writing-read-more{grid-column:1;grid-row:auto}.writing-item .post-meta{position:static}.writing-read-more{justify-self:start}}@media(max-width:520px){.site-header{grid-template-columns:minmax(0,1fr) auto}.brand{display:none}.site-nav{justify-content:flex-start}.header-actions{justify-self:end;gap:6px}.site-nav a{padding-inline:7px;font-size:.82rem}.language-switcher{min-height:38px;border-radius:7px}.language-switcher a{min-width:31px;min-height:34px;border-radius:5px;font-size:.72rem}.icon-link{min-width:38px;min-height:38px;border-radius:7px;font-size:.74rem}.hero{grid-template-columns:minmax(0,1fr) minmax(104px,32vw);gap:10px 12px;padding-bottom:32px}.about-hero{padding-top:46px}.about-hero-visual{min-height:270px}.about-photo-stack{height:274px}.about-photo-card{width:134px}.about-photo-card-left{width:138px;transform:translate(-102%) translateY(8px) rotate(-5deg)}.about-photo-card-center{width:154px;transform:translate(-50%) translateY(-8px) rotate(1deg)}.about-photo-card-right{width:138px;transform:translate(4%) translateY(10px) rotate(5.5deg)}.about-photo-stack:has(.about-photo-card-left:hover) .about-photo-card-center{transform:translate(-34%) translateY(-8px) rotate(1deg)}.about-photo-stack:has(.about-photo-card-center:hover) .about-photo-card-left,.about-photo-stack:has(.about-photo-card-right:hover) .about-photo-card-left{transform:translate(-112%) translateY(10px) rotate(-7deg)}.about-photo-stack:has(.about-photo-card-center:hover) .about-photo-card-right{transform:translate(16%) translateY(12px) rotate(7deg)}.about-photo-stack:has(.about-photo-card-right:hover) .about-photo-card-center{transform:translate(-62%) translateY(-8px) rotate(1deg)}.about-photo-card-left:hover{transform:translate(-112%) translateY(-4px) rotate(-7deg) scale(1.06)}.about-photo-card-center:hover{transform:translate(-50%) translateY(-22px) rotate(1deg) scale(1.06)}.about-photo-card-right:hover{transform:translate(14%) translateY(-4px) rotate(7.5deg) scale(1.06)}.site-header:after{height:22px}.section-heading h2,.timeline-preview-heading h2{font-size:clamp(1.05rem,5.3vw,1.55rem);line-height:1.04;white-space:nowrap;text-wrap:nowrap}.hero .eyebrow{margin-bottom:0;font-size:.74rem;line-height:1.15}.hero h1{margin-bottom:4px;font-size:clamp(2rem,9.8vw,2.55rem)}.hero-statement{font-size:1.22rem}.hero-lede{font-size:.96rem}.compact-section{padding-top:12px}.contact-panel{gap:22px}.contact-actions{justify-self:stretch;width:100%}.hero-actions{align-items:stretch;gap:8px;margin-top:8px}.hero-action-row{gap:8px}.hero-action-row-primary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.hero-action-row-secondary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.hero-action-row-primary .button,.hero-action-row-secondary .button{min-width:0}.hero-actions .button{min-height:42px;gap:5px;padding-inline:5px;font-size:.74rem;line-height:1.05;text-align:center;white-space:normal}.hero-actions .button-logo{width:16px;height:16px}.hero-proof{grid-template-columns:auto minmax(0,1fr);gap:10px;margin-top:20px;padding-top:16px}.hero-proof>div{grid-template-columns:auto auto;gap:6px}.hero-proof>div:last-child{justify-self:end}.hero-proof dt{font-size:.68rem}.proof-logo-list{gap:8px}.proof-logo{min-width:28px;min-height:34px;padding:2px 0}.proof-logo img{max-width:64px;max-height:21px}.proof-logo-current img{max-width:66px}.timeline-list-compact .timeline-item{--timeline-date-width: 54px;--timeline-rail-gap: 8px;--timeline-marker-left: calc(var(--timeline-date-width) + var(--timeline-rail-gap) + (var(--timeline-marker-width) / 2));grid-template-columns:var(--timeline-date-width) var(--timeline-marker-width) minmax(0,1fr);column-gap:var(--timeline-rail-gap)}.timeline-list-compact .timeline-date{font-size:.68rem}.timeline-list-compact .timeline-content{grid-column:3}.timeline-list-compact .timeline-heading h3{font-size:1.02rem;line-height:1.12}.timeline-list-compact .timeline-heading a{font-size:.92rem}.timeline-list-compact .timeline-content>p{font-size:.94rem;line-height:1.55}.hero-portrait-panel{min-height:210px}.hero-portrait-panel:before,.hero-portrait-panel:after{inset:-8px -12px -10px -34px}.hero-portrait-panel:before{mask-image:linear-gradient(to right,transparent 0,black 12%,black 86%,transparent 100%),linear-gradient(to bottom,transparent 0,black 7%,black 100%);-webkit-mask-image:linear-gradient(to right,transparent 0,black 12%,black 86%,transparent 100%),linear-gradient(to bottom,transparent 0,black 7%,black 100%)}.hero-portrait-panel:after{opacity:.74;mask-image:linear-gradient(to right,transparent 0,black 14%,black 84%,transparent 100%),linear-gradient(to bottom,transparent 0,black 8%,black 100%);-webkit-mask-image:linear-gradient(to right,transparent 0,black 14%,black 84%,transparent 100%),linear-gradient(to bottom,transparent 0,black 8%,black 100%)}.hero-photo{max-height:205px}.career-spine{grid-template-columns:1fr;padding-left:20px}.career-step:before{left:-20px}}@media(max-width:420px){.site-header{gap:6px;padding:12px 10px}.brand-text{font-size:1rem}.site-nav{gap:0}.site-nav a{padding:6px 5px;font-size:.78rem}.header-actions{gap:4px}.language-switcher{min-height:36px}.language-switcher a{min-width:29px;min-height:32px;font-size:.7rem}.icon-link{min-width:36px;min-height:36px;font-size:.72rem}}@media(max-width:360px){.header-actions .icon-link{display:none}.hero-actions,.hero-action-row{gap:6px}.hero-actions .button{min-height:40px;gap:3px;padding-inline:3px;font-size:.68rem}.hero-actions .button-logo{width:14px;height:14px}.hero-proof{gap:8px}.hero-proof>div{gap:5px}.hero-proof dt{font-size:.62rem}.proof-logo-list{gap:5px}.proof-logo{min-width:24px;min-height:30px}.proof-logo img{max-width:48px;max-height:18px}.proof-logo-current img{max-width:55px}}
