@import"https://fonts.googleapis.com/css2?family=Newsreader:ital,opsz,wght@1,6..72,400..500&display=swap";:root{--c-brand-dark: #0A2540;--c-brand-primary: #635BFF;--c-brand-light: #00D4FF;--c-accent-warm: #FF7E5F;--c-accent-glow: #FEB47B;--c-bg: #F6F9FC;--c-surface: #FFFFFF;--c-text-main: #222222;--c-text-muted: #666666;--c-border: #E6EBF1;--sky-bg: linear-gradient(180deg, #168eea 0%, #20a2f3 42%, #75ccfb 78%, #f0fbff 100%);--gradient-mesh: radial-gradient(at 0% 0%, hsla(253, 16%, 7%, 1) 0, transparent 50%), radial-gradient(at 50% 0%, hsla(225, 39%, 30%, 1) 0, transparent 50%), radial-gradient(at 100% 0%, hsla(339, 49%, 30%, 1) 0, transparent 50%);--gradient-hero: linear-gradient(135deg, #0A2540 0%, #15193B 100%);--gradient-text: linear-gradient(120deg, #635BFF, #00D4FF);--space-xs: .25rem;--space-sm: .75rem;--space-md: 1.5rem;--space-lg: 3rem;--space-xl: 6rem;--font-display: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--text-hero: clamp(3rem, 6vw, 5rem);--text-h1: clamp(2rem, 4vw, 3rem);--text-h2: 1.75rem;--text-body: 1.05rem;--content-width: 44rem;--shadow-sm: 0 2px 5px rgba(50, 50, 93, .1), 0 1px 0 rgba(0, 0, 0, .02);--shadow-md: 0 13px 27px -5px rgba(50, 50, 93, .25), 0 8px 16px -8px rgba(0, 0, 0, .3);--shadow-lg: 0 30px 60px -12px rgba(50, 50, 93, .25), 0 18px 36px -18px rgba(0, 0, 0, .3);--shadow-glow: 0 0 40px rgba(99, 91, 255, .3);--radius-sm: 8px;--radius-md: 16px;--radius-lg: 24px;--bg-gradient: var(--sky-bg);--glass-bg: rgba(255, 255, 255, .28);--glass-border: rgba(255, 255, 255, .5);--glass-text: #0A2540;--input-bg: rgba(255, 255, 255, .5);--ease-out: cubic-bezier(.215, .61, .355, 1);--ease-spring: cubic-bezier(.68, -.6, .32, 1.6)}[data-theme=dark]{--c-bg: #188eea;--c-surface: #121212;--c-text-main: #FFFFFF;--c-text-muted: #A0A0A0;--c-border: #2A2A2A;--shadow-sm: 0 2px 5px rgba(0, 0, 0, .3);--shadow-md: 0 13px 27px -5px rgba(0, 0, 0, .5);--bg-gradient: var(--sky-bg);--glass-bg: rgba(255, 255, 255, .12);--glass-border: rgba(255, 255, 255, .2);--glass-text: #FFFFFF;--input-bg: rgba(0, 0, 0, .2)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body{height:100%;font-family:var(--font-body);background-color:#168eea;background:var(--bg-gradient);background-attachment:fixed;background-size:cover;color:var(--c-text-main);transition:color .5s var(--ease-out);overflow-x:hidden;overscroll-behavior:none;overscroll-behavior-x:none;overscroll-behavior-y:none;scrollbar-width:none;line-height:1.7;font-weight:400}html::-webkit-scrollbar,body::-webkit-scrollbar{width:0;height:0;display:none}html,body,#root{min-height:100%;overscroll-behavior:none;overscroll-behavior-x:none}body:before,body:after{content:"";position:fixed;top:-18vh;right:-28vw;bottom:-18vh;left:-28vw;z-index:0;pointer-events:none;will-change:transform}body:before{background:radial-gradient(ellipse 420px 140px at 8% 22%,rgba(255,255,255,.56) 0%,rgba(255,255,255,.34) 32%,transparent 68%),radial-gradient(ellipse 540px 180px at 21% 18%,rgba(255,255,255,.42) 0%,rgba(255,255,255,.2) 34%,transparent 72%),radial-gradient(ellipse 620px 210px at 48% 28%,rgba(255,255,255,.58) 0%,rgba(255,255,255,.28) 36%,transparent 72%),radial-gradient(ellipse 460px 150px at 72% 18%,rgba(255,255,255,.46) 0%,rgba(255,255,255,.2) 38%,transparent 74%),radial-gradient(ellipse 760px 240px at 94% 34%,rgba(255,255,255,.52) 0%,rgba(255,255,255,.24) 34%,transparent 76%);filter:blur(16px);opacity:.88;animation:clouds-drift-wide 72s linear infinite alternate}body:after{background:radial-gradient(ellipse 700px 220px at 5% 56%,rgba(255,255,255,.34) 0%,rgba(255,255,255,.16) 35%,transparent 72%),radial-gradient(ellipse 500px 160px at 33% 48%,rgba(255,255,255,.42) 0%,rgba(255,255,255,.18) 38%,transparent 76%),radial-gradient(ellipse 780px 250px at 68% 58%,rgba(255,255,255,.38) 0%,rgba(255,255,255,.16) 36%,transparent 76%),radial-gradient(ellipse 560px 180px at 102% 48%,rgba(255,255,255,.42) 0%,rgba(255,255,255,.18) 34%,transparent 72%);filter:blur(22px);opacity:.74;animation:clouds-drift-soft 104s linear infinite alternate}#root{min-height:100vh;display:flex;flex-direction:column;position:relative;z-index:1}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:500;letter-spacing:-.02em;color:var(--c-text-main);line-height:1.2}.text-hero{font-size:var(--text-hero);font-weight:800;letter-spacing:-.04em;line-height:1.1}.text-gradient{background:var(--gradient-text);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}p{font-size:var(--text-body);color:var(--c-text-muted);margin-bottom:1.5rem}a{text-decoration:underline;text-decoration-color:#a3a3a3;text-underline-offset:.22em;text-decoration-thickness:1px;font-weight:500;color:inherit;transition:opacity .2s ease}button{cursor:pointer;border:none;background:none;font-family:inherit;-webkit-user-select:none;user-select:none}.container{width:90%;max-width:var(--content-width);margin:0 auto;padding:0 var(--space-md)}.glass-panel{background:rgba(var(--c-surface),.7);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.1)}::-webkit-scrollbar{width:0;height:0;display:none}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--c-text-muted);border-radius:100px;opacity:.5}h1.hero-title{transform:none}.btn-liquid{position:relative;overflow:hidden}.btn-liquid:after{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:var(--c-brand-primary);border-radius:40%;opacity:.1;transform:rotate(0);transition:transform .5s;z-index:0}.btn-liquid:hover:after{transform:rotate(45deg) scale(1.2)}.page-container{position:relative;overflow:hidden;min-height:100vh;background:transparent}.page-container:before,.page-container:after{content:"";display:none;position:absolute;border-radius:50%;filter:blur(100px);opacity:.4;z-index:0;pointer-events:none}.page-container:before{width:600px;height:600px;background:var(--c-brand-primary);top:-20%;right:-10%;animation:drift 10s ease-in-out infinite alternate}.page-container:after{width:500px;height:500px;background:var(--c-accent-warm);bottom:-10%;left:-10%;animation:drift 15s ease-in-out infinite alternate-reverse}@keyframes drift{0%{transform:translate(0)}to{transform:translate(50px,50px)}}@keyframes clouds-drift-wide{0%{transform:translate3d(-3vw,-1vh,0) scale(1)}to{transform:translate3d(9vw,2vh,0) scale(1.04)}}@keyframes clouds-drift-soft{0%{transform:translate3d(6vw,1vh,0) scale(1.03)}to{transform:translate3d(-10vw,-2vh,0) scale(1)}}@media (prefers-reduced-motion: reduce){body:before,body:after{animation:none}}.text-column{max-width:var(--content-width);margin-inline:auto;padding:5rem 1.5rem;text-align:left}strong,b{font-weight:500}html.portfolio-mode .container{max-width:1200px}@font-face{font-family:Newsreader;src:url(/fonts/newsreader-italic.ttf) format("truetype");font-style:italic;font-weight:400;font-display:swap}html.landing-mode{--c-text-main: #222222;--landing-bg: #fcfcfc;--landing-text: #222222;background:var(--landing-bg);height:100%;overflow:hidden;color-scheme:light}html.landing-mode.personal-dark{--landing-bg: #040404;--landing-text: #e8e8e8;color-scheme:dark}html.landing-mode body{height:100%;min-height:0;overflow:hidden;background:var(--landing-bg);color:var(--landing-text);transition:none}html.landing-mode body:before,html.landing-mode body:after{display:none}html.landing-mode #root{min-height:0;height:100%}.landing-page{height:100vh;height:100svh;width:100%;display:grid;place-items:center;padding:min(5rem,8svh) 1.5rem;overflow:hidden;color:var(--landing-text)}.landing-content{width:100%;max-width:var(--content-width);display:flex;flex-direction:column;align-items:center;gap:1.25rem;text-align:center;animation:landing-enter .5s ease-out both}.landing-portrait{position:relative;width:clamp(80px,24svh,180px);aspect-ratio:1;border-radius:50%;overflow:hidden}.landing-portrait img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center 30%}.landing-portrait-dark,.personal-dark .landing-portrait-light{opacity:0}.personal-dark .landing-portrait-dark{opacity:1}.landing-content h1{margin:0;font-size:clamp(17px,2vw,20px);font-weight:400;line-height:1.7;letter-spacing:-.015em;color:inherit}.landing-content h1 a{font-weight:500;text-decoration-color:color-mix(in srgb,currentColor 30%,transparent);text-underline-offset:.3em}.landing-theme{position:absolute;top:max(20px,env(safe-area-inset-top));right:max(20px,env(safe-area-inset-right));width:44px;height:44px;display:grid;place-items:center;color:inherit}.landing-page :focus-visible{outline:2px solid currentColor;outline-offset:6px;border-radius:3px}.landing-page a:hover,.landing-theme:hover{opacity:.65}@keyframes landing-enter{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.landing-content{animation:none}}.landing-intro,.mobile-navigation,.landing-datetime{display:none}@media (max-width: 600px){.landing-page{--mobile-font-size: 15px}.landing-content{position:absolute;top:max(90px,calc(15svh - 30px));left:24px;width:calc(100% - 48px);gap:16px}.landing-content h1 a{font-weight:600}.landing-content h1{font-size:var(--mobile-font-size);line-height:1.7;letter-spacing:normal}.landing-intro{display:block;font-size:var(--mobile-font-size);line-height:1.6;font-weight:400;color:inherit;text-align:left;margin:4px 0 0;max-width:390px}.mobile-navigation{--dock-surface: #f1f1f1;--dock-tile: #e5e5e5;--dock-border: #d5d5d5;display:block;position:fixed;z-index:20;bottom:max(18px,env(safe-area-inset-bottom));left:20px;right:20px;height:58px}.personal-dark .mobile-navigation{--dock-surface: #171719;--dock-tile: #29292b;--dock-border: #363638}.mobile-dock,.mobile-menu,.mobile-menu-toggle{background:var(--dock-surface);border:1px solid var(--dock-border);box-shadow:inset 0 1px 1px #ffffff12,0 4px 20px #00000008}.mobile-dock{position:absolute;top:0;right:70px;bottom:0;left:0;border-radius:40px;display:grid;grid-template-columns:repeat(4,1fr);padding:4px;transition:opacity .22s ease,transform .45s cubic-bezier(.22,1,.36,1)}.mobile-dock a{display:grid;place-items:center;border-radius:30px;text-decoration:none}.mobile-dock a[aria-current]{background:var(--dock-tile)}.mobile-menu-toggle{position:absolute;right:0;bottom:0;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;color:inherit;cursor:pointer}.mobile-menu-toggle svg{transition:transform .5s cubic-bezier(.22,1,.36,1)}.mobile-menu{position:absolute;bottom:0;left:0;width:100%;height:300px;border:0;background:transparent;box-shadow:none;padding:16px;border-radius:0;opacity:0;transform:translateY(18px) scale(.94);transform-origin:bottom right;pointer-events:none;visibility:hidden;transition:opacity .25s ease,transform .5s cubic-bezier(.22,1,.36,1),visibility 0s linear .25s;isolation:isolate;contain:paint}.mobile-menu-grid{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px 10px}.mobile-menu-grid a{font-size:11px;font-weight:400;text-decoration:none;text-align:center;line-height:1.7}.mobile-menu-grid a span{display:grid;place-items:center;height:58px;border-radius:17px;background:var(--dock-tile);margin-bottom:5px}.mobile-menu-backdrop{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:transparent;cursor:default}.is-expanded .mobile-menu-backdrop{display:block}.is-expanded .mobile-menu{transition-delay:0s;visibility:visible;pointer-events:auto;opacity:1;transform:none}.is-expanded .mobile-dock{opacity:0;transform:scale(.94);pointer-events:none}.is-expanded .mobile-menu-toggle svg{transform:rotate(45deg)}.landing-page .mobile-navigation a:hover{opacity:1}.mobile-navigation a:active span,.mobile-menu-toggle:active{filter:brightness(.9)}}@media (max-width: 600px) and (max-height: 740px){.landing-page{--mobile-font-size: 14px}.landing-portrait{width:130px}}@media (max-width: 600px) and (max-height: 650px){.landing-page{--mobile-font-size: 13px}.landing-content{top:76px;gap:10px}.landing-portrait{width:90px}}@media (prefers-reduced-motion: reduce){.mobile-navigation *,.mobile-navigation *:before{transition:none!important}}@media (max-width: 600px){.landing-datetime{display:block;position:absolute;inset:max(20px,env(safe-area-inset-top)) 20px auto;height:44px;font-size:10px;font-weight:500;line-height:44px;pointer-events:none}.landing-clock{position:absolute;left:0;font-variant-numeric:tabular-nums}.landing-date{position:absolute;left:50%;transform:translate(-50%);white-space:nowrap}.landing-content{animation:none}.landing-portrait,.landing-content h1{animation:landing-reveal .85s cubic-bezier(.22,1,.36,1) both}.landing-intro span{animation:landing-reveal .95s cubic-bezier(.22,1,.36,1) both}.landing-intro span:nth-child(1){animation-delay:.1s}.landing-intro span:nth-child(2){animation-delay:.22s}.landing-intro span:nth-child(3){animation-delay:.34s}.mobile-menu-surface{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible;pointer-events:none}.mobile-menu-surface path{fill:var(--dock-surface);stroke:var(--dock-border);stroke-width:1;vector-effect:non-scaling-stroke}.mobile-navigation{-webkit-tap-highlight-color:transparent}.mobile-menu-toggle{outline:none;transition:transform .55s cubic-bezier(.22,1,.36,1),background-color .25s ease,box-shadow .25s ease}.mobile-menu-toggle:active{transform:scale(.9)}.landing-page .mobile-menu-toggle:focus-visible{border-radius:50%;outline:1px solid currentColor;outline-offset:4px}.mobile-menu-grid a{opacity:0;transform:translateY(8px);transition:opacity .18s ease,transform .3s ease}.is-expanded .mobile-menu-grid a{opacity:1;transform:none;transition:opacity .4s ease .1s,transform .55s cubic-bezier(.22,1,.36,1) .1s}}@keyframes landing-reveal{0%{opacity:0;filter:blur(3px)}to{opacity:1;filter:blur(0)}}@media (prefers-reduced-motion: reduce){.landing-portrait,.landing-content h1,.landing-intro span{animation:none}}html.landing-mode,html.landing-mode body{transition:background-color .48s cubic-bezier(.4,0,.2,1),color .48s cubic-bezier(.4,0,.2,1)}.landing-page{transition:color .48s cubic-bezier(.4,0,.2,1)}.landing-portrait img{transition:opacity .48s cubic-bezier(.4,0,.2,1)}.landing-theme{-webkit-tap-highlight-color:transparent;outline:none;border-radius:50%}.landing-page .landing-theme:focus-visible{outline:1px solid currentColor;border-radius:50%;outline-offset:2px}.landing-theme:active{transform:scale(.9)}.landing-theme{transition:transform .3s cubic-bezier(.22,1,.36,1)}.theme-symbols{display:block;position:relative;width:17px;height:17px}.theme-symbols svg{position:absolute;top:0;right:0;bottom:0;left:0;transition:opacity .48s cubic-bezier(.4,0,.2,1),transform .48s cubic-bezier(.4,0,.2,1)}.theme-sun{opacity:0;transform:rotate(-90deg) scale(.65)}.theme-moon,.personal-dark .theme-sun{opacity:1;transform:none}.personal-dark .theme-moon{opacity:0;transform:rotate(90deg) scale(.65)}@media (max-width: 600px){.mobile-dock,.mobile-menu-toggle{transition:background-color .48s cubic-bezier(.4,0,.2,1),border-color .48s cubic-bezier(.4,0,.2,1),opacity .22s ease,transform .5s cubic-bezier(.22,1,.36,1),height .4s cubic-bezier(.22,1,.36,1)}.mobile-menu-grid a span,.mobile-dock a{transition:background-color .48s cubic-bezier(.4,0,.2,1),transform .4s cubic-bezier(.22,1,.36,1)}.mobile-menu-surface path{transition:fill .48s cubic-bezier(.4,0,.2,1),stroke .48s cubic-bezier(.4,0,.2,1)}.landing-intro strong{font-weight:600}.mobile-dock{overflow:hidden;-webkit-touch-callout:none;height:58px;top:auto;user-select:none;-webkit-user-select:none}.mobile-dock a{position:relative;gap:0;align-content:center}.dock-label{font-size:9px;line-height:1.4;max-height:0;opacity:0;transform:translateY(4px);overflow:hidden;transition:max-height .4s cubic-bezier(.22,1,.36,1),opacity .25s ease,transform .4s cubic-bezier(.22,1,.36,1)}.is-pressed .mobile-dock{height:72px}.is-pressed .dock-label{max-height:18px;opacity:1;transform:none}.mobile-menu-toggle{touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.mobile-menu-grid .gesture-selected span{color:#222;background:color-mix(in srgb,var(--dock-tile) 30%,white);box-shadow:0 0 0 2px #ffffff80,0 0 18px #ffffff40;transform:scale(1.06)}.mobile-menu-grid .gesture-selected{font-weight:600}.mobile-menu-grid a{-webkit-user-select:none;user-select:none}}@media (prefers-reduced-motion: reduce){html.landing-mode,html.landing-mode body,.landing-page,.landing-portrait img,.landing-theme,.theme-symbols svg{transition:none}}@media (max-width: 600px){.mobile-menu-toggle svg{opacity:1;transition:opacity .55s cubic-bezier(.4,0,.2,1),transform .55s cubic-bezier(.22,1,.36,1)}.is-steering .mobile-menu-toggle,.is-steering .mobile-menu-toggle:active{transform:scale(1.4)}.is-steering .mobile-menu-toggle svg{opacity:0}}.landing-content{position:absolute;top:clamp(64px,7svh,90px);left:max(5vw,calc((100vw - 1120px)/2));width:min(90vw,1120px);max-width:none;align-items:stretch;gap:clamp(32px,6svh,68px);text-align:left}.landing-profile{display:flex;align-items:center;gap:32px}.landing-portrait{width:144px;flex:0 0 144px;aspect-ratio:1;border-radius:50%}.landing-profile-copy{min-width:0}.landing-content h1{font-family:Newsreader,serif;font-optical-sizing:auto;font-size:clamp(40px,6.1vw,80px);font-style:italic;font-weight:400;line-height:1.12;letter-spacing:-.025em}.landing-content h1 a{font-weight:400;text-decoration:none}.landing-subtitle{margin:12px 0 0;color:inherit;opacity:.58;font-size:clamp(16px,2.4vw,28px);line-height:1.4;letter-spacing:.025em}.landing-intro{display:block;margin:0;max-width:none;text-align:left;font-size:clamp(17px,2.35vw,28px);line-height:1.7;color:inherit;opacity:.76;font-weight:400}.landing-intro span{display:block}.landing-intro span+span{margin-top:1em}.landing-intro strong{font-weight:600}@media (max-width: 600px){.landing-content{top:94px;left:24px;width:calc(100% - 48px);gap:30px}.landing-profile{gap:16px}.landing-portrait{width:76px;flex-basis:76px}.landing-content h1{font-size:clamp(26px,7.7vw,43px);line-height:1.12;letter-spacing:-.025em}.landing-content h1 a{font-weight:400}.landing-subtitle{font-size:12px;margin-top:8px;letter-spacing:.01em}.landing-intro{font-size:15px;line-height:1.65}}@media (max-height: 740px){.landing-content{gap:22px}.landing-intro{font-size:14px;line-height:1.55}.landing-intro span+span{margin-top:.7em}}@media (max-width: 600px) and (max-height: 650px){.landing-content{top:80px;gap:18px}.landing-portrait{width:62px;flex-basis:62px}.landing-content h1{font-size:26px}.landing-subtitle{font-size:10px;margin-top:5px}.landing-intro{font-size:12px;line-height:1.5}}@media (min-width: 601px) and (max-height: 600px){.landing-content{top:48px;gap:22px}.landing-portrait{width:90px;flex-basis:90px}.landing-content h1{font-size:42px}.landing-subtitle{font-size:16px;margin-top:6px}.landing-intro{font-size:14px;line-height:1.5}}.landing-intro a{font-weight:700;text-decoration:underline;text-underline-offset:.18em;text-decoration-thickness:1px;color:inherit}.landing-intro p{margin:0;color:inherit;font:inherit}.landing-intro p+p{margin-top:1em}@media (max-width: 350px) and (max-height: 650px){.landing-content{gap:14px}.landing-intro{font-size:11px;line-height:1.45}}@media (min-width: 601px){.mobile-navigation{--dock-surface: #f1f1f1;--dock-tile: #e5e5e5;--dock-border: #d5d5d5;display:block;position:fixed;z-index:20;bottom:max(18px,env(safe-area-inset-bottom));left:20px;right:20px;height:58px}.personal-dark .mobile-navigation{--dock-surface: #171719;--dock-tile: #29292b;--dock-border: #363638}.mobile-dock,.mobile-menu,.mobile-menu-toggle{background:var(--dock-surface);border:1px solid var(--dock-border);box-shadow:inset 0 1px 1px #ffffff12,0 4px 20px #00000008}.mobile-dock{position:absolute;top:0;right:70px;bottom:0;left:0;border-radius:40px;display:grid;grid-template-columns:repeat(4,1fr);padding:4px;transition:opacity .22s ease,transform .45s cubic-bezier(.22,1,.36,1)}.mobile-dock a{display:grid;place-items:center;border-radius:30px;text-decoration:none}.mobile-dock a[aria-current]{background:var(--dock-tile)}.mobile-menu-toggle{position:absolute;right:0;bottom:0;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;color:inherit;cursor:pointer}.mobile-menu-toggle svg{transition:transform .5s cubic-bezier(.22,1,.36,1)}.mobile-menu{position:absolute;bottom:0;left:0;width:100%;height:300px;border:0;background:transparent;box-shadow:none;padding:16px;border-radius:0;opacity:0;transform:translateY(18px) scale(.94);transform-origin:bottom right;pointer-events:none;visibility:hidden;transition:opacity .25s ease,transform .5s cubic-bezier(.22,1,.36,1),visibility 0s linear .25s;isolation:isolate;contain:paint}.mobile-menu-grid{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px 10px}.mobile-menu-grid a{font-size:11px;font-weight:400;text-decoration:none;text-align:center;line-height:1.7}.mobile-menu-grid a span{display:grid;place-items:center;height:58px;border-radius:17px;background:var(--dock-tile);margin-bottom:5px}.mobile-menu-backdrop{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:transparent;cursor:default}.is-expanded .mobile-menu-backdrop{display:block}.is-expanded .mobile-menu{transition-delay:0s;visibility:visible;pointer-events:auto;opacity:1;transform:none}.is-expanded .mobile-dock{opacity:0;transform:scale(.94);pointer-events:none}.is-expanded .mobile-menu-toggle svg{transform:rotate(45deg)}.landing-page .mobile-navigation a:hover{opacity:1}.mobile-navigation a:active span,.mobile-menu-toggle:active{filter:brightness(.9)}.mobile-menu-surface{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible;pointer-events:none}.mobile-menu-surface path{fill:var(--dock-surface);stroke:var(--dock-border);stroke-width:1;vector-effect:non-scaling-stroke}.mobile-navigation{-webkit-tap-highlight-color:transparent}.mobile-menu-toggle{outline:none;transition:transform .55s cubic-bezier(.22,1,.36,1),background-color .25s ease,box-shadow .25s ease}.mobile-menu-toggle:active{transform:scale(.9)}.landing-page .mobile-menu-toggle:focus-visible{border-radius:50%;outline:1px solid currentColor;outline-offset:4px}.mobile-menu-grid a{opacity:0;transform:translateY(8px);transition:opacity .18s ease,transform .3s ease}.is-expanded .mobile-menu-grid a{opacity:1;transform:none;transition:opacity .4s ease .1s,transform .55s cubic-bezier(.22,1,.36,1) .1s}.mobile-dock,.mobile-menu-toggle{transition:background-color .48s cubic-bezier(.4,0,.2,1),border-color .48s cubic-bezier(.4,0,.2,1),opacity .22s ease,transform .5s cubic-bezier(.22,1,.36,1),height .4s cubic-bezier(.22,1,.36,1)}.mobile-menu-grid a span,.mobile-dock a{transition:background-color .48s cubic-bezier(.4,0,.2,1),transform .4s cubic-bezier(.22,1,.36,1)}.mobile-menu-surface path{transition:fill .48s cubic-bezier(.4,0,.2,1),stroke .48s cubic-bezier(.4,0,.2,1)}.mobile-dock{overflow:hidden;-webkit-touch-callout:none;height:58px;top:auto;user-select:none;-webkit-user-select:none}.mobile-dock a{position:relative;gap:0;align-content:center}.dock-label{font-size:9px;line-height:1.4;max-height:0;opacity:0;transform:translateY(4px);overflow:hidden;transition:max-height .4s cubic-bezier(.22,1,.36,1),opacity .25s ease,transform .4s cubic-bezier(.22,1,.36,1)}.is-pressed .mobile-dock{height:72px}.is-pressed .dock-label{max-height:18px;opacity:1;transform:none}.mobile-menu-toggle{touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.mobile-menu-grid .gesture-selected span{color:#222;background:color-mix(in srgb,var(--dock-tile) 30%,white);box-shadow:0 0 0 2px #ffffff80,0 0 18px #ffffff40;transform:scale(1.06)}.mobile-menu-grid .gesture-selected{font-weight:600}.mobile-menu-grid a{-webkit-user-select:none;user-select:none}.mobile-menu-toggle svg{opacity:1;transition:opacity .55s cubic-bezier(.4,0,.2,1),transform .55s cubic-bezier(.22,1,.36,1)}.is-steering .mobile-menu-toggle,.is-steering .mobile-menu-toggle:active{transform:scale(1.4)}.is-steering .mobile-menu-toggle svg{opacity:0}.mobile-navigation{width:390px;left:50%;right:auto;transform:translate(-50%)}}.landing-portrait{width:172px;flex-basis:172px}.landing-content h1{font-size:clamp(44px,6.6vw,86px);line-height:1.1}.landing-intro{font-size:clamp(18px,2vw,24px);line-height:1.6}.landing-content{gap:30px}.landing-intro .intro-menu-button{display:inline;padding:0 2px;font:inherit;font-weight:700;color:inherit;text-decoration:underline;text-underline-offset:.18em;cursor:pointer}@media (max-width: 600px){.landing-portrait{width:94px;flex-basis:94px}.landing-profile{gap:14px}.landing-content h1{font-size:clamp(28px,8.2vw,46px);line-height:1.1}.landing-subtitle{margin-top:0;font-size:12px}.landing-intro{font-size:15px;line-height:1.6}.landing-content{gap:24px}.landing-intro p+p{margin-top:.8em}}@media (max-width: 600px) and (max-height: 740px){.landing-content{top:78px;gap:14px}.landing-portrait{width:78px;flex-basis:78px}.landing-intro{font-size:12px;line-height:1.45}}@media (max-width: 350px) and (max-height: 650px){.landing-portrait{width:72px;flex-basis:72px}.landing-content h1{font-size:28px}.landing-intro{font-size:11px;line-height:1.4}}@media (min-width: 601px) and (max-height: 740px){.landing-content{top:64px;gap:18px}.landing-portrait{width:110px;flex-basis:110px}.landing-content h1{font-size:52px}.landing-subtitle{font-size:19px}.landing-intro{font-size:16px;line-height:1.5}.landing-intro p+p{margin-top:.7em}}@media (min-width: 601px) and (max-height: 450px){.landing-content{top:24px;gap:12px}.landing-portrait{width:100px;flex-basis:100px}.landing-content h1{font-size:46px}.landing-intro{font-size:11px;line-height:1.4}.landing-intro p+p{margin-top:.5em}}@media (max-width: 350px) and (max-height: 650px){.landing-intro{line-height:1.35}.landing-intro p+p{margin-top:.5em}}.landing-subtitle{margin-top:-8px}@media (max-width: 600px){.landing-subtitle{margin-top:-3px}}.landing-profile{--profile-size: 148px;align-items:stretch;gap:20px;margin-left:-32px;width:calc(100% + 32px)}.landing-portrait{width:var(--profile-size);flex-basis:var(--profile-size);height:var(--profile-size)}.landing-profile-copy{flex:1;min-width:0;height:var(--profile-size);display:flex;flex-direction:column;justify-content:space-between;container-type:inline-size}.landing-content h1{white-space:nowrap;font-size:clamp(24px,11.6cqi,94px);line-height:1.1;transform:translateY(-.08em)}.landing-subtitle{margin:0 0 -2px;line-height:1.1;font-size:clamp(10px,3.45cqi,29px);white-space:nowrap}@media (max-width: 600px){.landing-profile{--profile-size: 68px;gap:10px;margin-left:-18px;width:calc(100% + 36px)}.landing-content h1{font-size:11.6cqi}.landing-subtitle{font-size:3.45cqi}}@media (max-width: 350px){.landing-profile{--profile-size: 58px;gap:8px}}@media (min-width: 601px) and (max-height: 740px){.landing-profile{--profile-size: 100px}.landing-content h1{font-size:clamp(24px,11.6cqi,68px)}.landing-subtitle{font-size:clamp(10px,3.45cqi,21px)}}@media (min-width: 601px) and (max-height: 450px){.landing-profile{--profile-size: 84px}.landing-content h1{font-size:clamp(24px,11.6cqi,56px)}.landing-subtitle{font-size:clamp(10px,3.45cqi,18px)}}.landing-content h1{transform:none}.landing-subtitle{font-size:clamp(10px,4cqi,31px)}@media (max-width: 600px){.landing-subtitle{font-size:4cqi}}@media (min-width: 601px) and (max-height: 740px){.landing-subtitle{font-size:clamp(10px,4cqi,22px)}}@media (min-width: 601px) and (max-height: 450px){.landing-subtitle{font-size:clamp(10px,4cqi,18px)}}.landing-profile-copy{justify-content:flex-end}.landing-subtitle{margin-top:0}@media (min-width: 601px){.landing-content{width:min(88vw,640px);left:50%;transform:translate(-50%);top:clamp(80px,11svh,112px);gap:32px;animation:none}.landing-profile{--profile-size: 100px;margin-left:0;width:100%;gap:18px}.landing-intro{font-size:17px;line-height:1.65}.landing-intro p+p{margin-top:1em}}@media (min-width: 601px) and (max-height: 740px){.landing-content{top:64px;gap:24px}.landing-profile{--profile-size: 90px}.landing-intro{font-size:14px;line-height:1.5}.landing-intro p+p{margin-top:.7em}}@media (min-width: 601px) and (max-height: 450px){.landing-content{top:24px;gap:12px}.landing-profile{--profile-size: 76px}.landing-content h1{font-size:clamp(24px,11.6cqi,48px)}.landing-subtitle{font-size:clamp(10px,4cqi,16px)}.landing-intro{font-size:11px;line-height:1.4}.landing-intro p+p{margin-top:.5em}}@media (max-width: 600px){.landing-profile{margin-left:-8px;width:calc(100% + 26px)}}.life-timeline{--timeline-top: 172px;--timeline-bottom: 126px;--timeline-row: 210px;position:absolute;top:0;right:0;bottom:0;left:0;color:var(--landing-text);pointer-events:none}.life-heading{position:absolute;top:70px;left:24px;right:24px;text-align:center}.life-heading>p{color:inherit;margin:0 0 12px;font-size:10px;letter-spacing:.16em;opacity:.45;font-variant-numeric:tabular-nums}.life-heading h1{margin:0 0 10px;color:inherit;font-size:clamp(25px,3vw,34px);font-weight:400;line-height:1.25;letter-spacing:-.045em}.life-heading>span{font-size:12px;opacity:.5}.life-window{position:absolute;top:var(--timeline-top);bottom:var(--timeline-bottom);left:max(24px,calc((100vw - 660px)/2));right:max(24px,calc((100vw - 660px)/2))}.life-window:before{content:"";position:absolute;pointer-events:none;top:50%;left:0;right:0;height:160px;transform:translateY(-50%);background:linear-gradient(transparent,color-mix(in srgb,var(--landing-text) 2%,transparent),transparent)}.life-scroll{pointer-events:auto;height:100%;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:none;scroll-snap-type:y proximity;mask-image:linear-gradient(transparent,#000 17%,#000 83%,transparent);-webkit-mask-image:linear-gradient(transparent,#000 17%,#000 83%,transparent)}.life-scroll::-webkit-scrollbar{display:none}.life-scroll:focus-visible{outline:1px solid color-mix(in srgb,currentColor 30%,transparent);outline-offset:8px;border-radius:8px}.life-track{position:relative;margin:0;list-style:none;padding:max(0px,calc((100svh - var(--timeline-top) - var(--timeline-bottom) - var(--timeline-row))/2)) 0}.life-track:before{content:"";position:absolute;top:0;bottom:0;left:104px;width:1px;background:color-mix(in srgb,var(--landing-text) 15%,transparent)}.life-track:after{content:"";position:absolute;top:0;bottom:0;left:98px;width:7px;background:repeating-linear-gradient(to bottom,transparent 0 11px,color-mix(in srgb,var(--landing-text) 15%,transparent) 11px 12px);pointer-events:none}.life-event{--focus: 0;position:relative;display:grid;grid-template-columns:105px minmax(0,1fr);align-items:center;min-height:var(--timeline-row);scroll-snap-align:center}.life-year{display:flex;justify-content:space-between;align-items:center;gap:4px;padding-right:0}.life-year time{max-width:78px;font-size:11px;line-height:1.6;opacity:calc(.25 + var(--focus) * .75);font-variant-numeric:tabular-nums}.life-year>span{height:1px;width:12px;flex-shrink:0;background:currentColor;opacity:.25;transform-origin:right;transition:transform .3s ease,opacity .3s ease}.life-event[aria-current] .life-year>span{transform:scaleX(1.7);opacity:.9}.life-event[aria-current] time{font-weight:600}.life-copy{padding:24px 4px 24px 34px;opacity:calc(.22 + var(--focus) * .78);transform:scale(calc(.96 + var(--focus) * .04));transform-origin:left center}.life-copy h2{color:inherit;font-size:clamp(17px,2.2vw,21px);font-weight:400;letter-spacing:-.025em;line-height:1.45;margin:0 0 10px}.life-copy p{color:inherit;margin:0;font-size:13px;line-height:1.8;max-width:380px;opacity:.65}.life-footnote{color:inherit;position:absolute;bottom:58px;width:100%;text-align:center;margin:0;font-size:10px;opacity:.45;line-height:1.8}.life-footnote>span:first-child{margin-left:8px}.life-date-note{display:block;font-size:9px;opacity:.7}@media (max-width: 600px){.life-timeline{--timeline-top: 176px;--timeline-bottom: max(140px, calc(env(safe-area-inset-bottom) + 130px) );--timeline-row: 210px}.life-heading{top:88px}.life-heading>p{margin-bottom:8px;font-size:9px}.life-heading h1{font-size:26px;margin-bottom:8px}.life-heading>span{font-size:11px}.life-window{left:24px;right:24px}.life-event{grid-template-columns:80px minmax(0,1fr)}.life-track:before{left:79px}.life-track:after{left:73px}.life-year time{max-width:58px;font-size:10px}.life-copy{padding-left:22px}.life-copy h2{font-size:17px}.life-copy p{font-size:12px}.life-footnote{bottom:max(91px,calc(env(safe-area-inset-bottom) + 81px))}}@media (max-height: 650px){.life-timeline{--timeline-top: 140px;--timeline-bottom: 104px;--timeline-row: 200px}.life-heading{top:68px}.life-heading>p{display:none}.life-footnote{bottom:83px;font-size:9px}.life-date-note{display:none}}@media (prefers-reduced-motion: reduce){.life-scroll{scroll-snap-type:none}.life-copy{transform:none}.life-year>span{transition:none}}.timeline-editor fieldset{display:grid;gap:16px;border:1px solid color-mix(in srgb,currentColor 12%,transparent);border-radius:12px;padding:16px;min-width:0}.timeline-editor legend{font-size:11px;padding:0 6px;opacity:.6}.timeline-editor:not(.is-editing){top:68px!important;bottom:auto!important;right:24px!important}.timeline-editor.is-editing{z-index:15}@media (max-width: 600px){.timeline-editor:not(.is-editing){top:66px!important}.timeline-editor:not(.is-editing) .account-muted{display:none}}html.portfolio-mode{--font-display: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--royal-text: #061f6f;--royal-text-muted: rgba(6, 31, 111, .76);--c-text-main: #061f6f;--c-text-muted: rgba(6, 31, 111, .76);--glass-text: #061f6f}html.portfolio-mode,html.portfolio-mode body,html.portfolio-mode body *,html.portfolio-mode button,html.portfolio-mode input,html.portfolio-mode textarea,html.portfolio-mode select{font-family:var(--font-body)!important;letter-spacing:normal}html.portfolio-mode h1,html.portfolio-mode h2,html.portfolio-mode h3,html.portfolio-mode h4,html.portfolio-mode h5,html.portfolio-mode h6,html.portfolio-mode .brand-logo,html.portfolio-mode .nav-item{font-family:var(--font-display)!important;color:var(--royal-text)!important;letter-spacing:-.02em!important}html.portfolio-mode body,html.portfolio-mode main,html.portfolio-mode .home-page,html.portfolio-mode .work-page,html.portfolio-mode .contact-page,html.portfolio-mode .identity-page,html.portfolio-mode .thoughts-page,html.portfolio-mode .photography-page{color:var(--royal-text)!important}html.portfolio-mode .projects-page{color:var(--royal-text)!important}html.portfolio-mode body :is(button,input,textarea,select),html.portfolio-mode .slide-send :is(span,svg),html.portfolio-mode .project-loop-label,html.portfolio-mode .project-loop-label small,html.portfolio-mode .item__label,html.portfolio-mode .item__label small,html.portfolio-mode .enlarge__copy,html.portfolio-mode .enlarge__copy span,html.portfolio-mode .enlarge__copy h2,html.portfolio-mode .enlarge__copy p,html.portfolio-mode .photo-chip,html.portfolio-mode .photo-location,html.portfolio-mode .btn-close{color:var(--royal-text)!important}html.portfolio-mode .home-page :is(h1,h2,h3,h4,h5,h6,p,span,strong,small,a,li),html.portfolio-mode .work-page :is(h1,h2,h3,h4,h5,h6,p,span,strong,small,a,li),html.portfolio-mode .contact-page :is(h1,h2,h3,h4,h5,h6,p,span,strong,small,a,li,label),html.portfolio-mode .identity-page :is(h1,h2,h3,h4,h5,h6,p,span,strong,small,a,li),html.portfolio-mode .thoughts-page :is(h1,h2,h3,h4,h5,h6,p,span,strong,small,a,li),html.portfolio-mode .photography-page :is(h1,h2,h3,h4,h5,h6,p,span,strong,small,a,li){color:var(--royal-text)!important;letter-spacing:normal!important}html.portfolio-mode .projects-page :is(h1,h2,h3,h4,h5,h6,p,span,strong,small,a,li),html.portfolio-mode .projects-page .project-loop-label,html.portfolio-mode .projects-page .project-loop-label small,html.portfolio-mode .projects-page .project-loop-label strong,html.portfolio-mode .projects-page .product-image-expand-title{color:var(--royal-text)!important;-webkit-text-fill-color:var(--royal-text)!important;letter-spacing:normal!important}html.portfolio-mode .projects-page .project-loop-label strong{background:none!important;-webkit-background-clip:initial!important;background-clip:initial!important;opacity:1}html.portfolio-mode .projects-page :is(.projects-hero h1,.project-lane-heading h2,.glass-blog-card-copy h3,.project-preview-copy h2,.project-detail-section h3,.project-detail-action,.project-detail-action svg){color:var(--royal-text)!important;-webkit-text-fill-color:var(--royal-text)!important}html.portfolio-mode .projects-page .glass-blog-card-tags span{color:#ffffffbf!important;-webkit-text-fill-color:rgba(255,255,255,.75)!important}html.portfolio-mode .projects-page :is(.projects-hero p,.glass-blog-card-copy p,.project-preview-copy p,.project-detail-section li,.glass-blog-card-author small,.glass-blog-card-time){color:var(--royal-text-muted)!important;-webkit-text-fill-color:var(--royal-text-muted)!important}html.portfolio-mode .projects-page :is(.projects-eyebrow,.project-lane-heading span,.project-lane-heading small,.project-preview-hero-copy span,.project-detail-meta small){color:#061f6fad!important;-webkit-text-fill-color:rgba(6,31,111,.68)!important}html.portfolio-mode .contact-page .product-image-label{color:#ffffffbf!important;background:none!important;-webkit-background-clip:initial!important;background-clip:initial!important;-webkit-text-fill-color:rgba(255,255,255,.75)!important}html.portfolio-mode .pc-card :is(.pc-handle,.pc-status,.pc-contact-btn){color:#ffffffe6!important;-webkit-text-fill-color:rgba(255,255,255,.9)!important}html.portfolio-mode .pc-card .pc-details :is(h3,p){color:transparent!important;-webkit-text-fill-color:transparent!important}html.portfolio-mode .home-clean-profile-card .pc-details :is(h3,p){color:#545d69d1!important;-webkit-text-fill-color:rgba(84,93,105,.82)!important}html.portfolio-mode .home-page :is(input,textarea,select),html.portfolio-mode .work-page :is(input,textarea,select),html.portfolio-mode .contact-page :is(input,textarea,select){color:var(--royal-text)!important;caret-color:var(--royal-text)}html.portfolio-mode .home-page ::placeholder,html.portfolio-mode .work-page ::placeholder,html.portfolio-mode .contact-page ::placeholder{color:#061f6f8a!important}html.portfolio-mode .product-image-expand-title,html.portfolio-mode .dome-gallery-title,html.portfolio-mode .item__label strong,html.portfolio-mode .hero-title .gradient-text,html.portfolio-mode .photography-title{color:var(--royal-text)!important;background:none!important;-webkit-background-clip:initial!important;background-clip:initial!important;-webkit-text-fill-color:var(--royal-text)!important}html.portfolio-mode .projects-page .product-image-label,html.portfolio-mode .contact-page .product-image-label{color:#ffffffbf!important;background:none!important;-webkit-background-clip:initial!important;background-clip:initial!important;-webkit-text-fill-color:rgba(255,255,255,.75)!important;opacity:1!important}html.portfolio-mode .flow-marquee,html.portfolio-mode .flow-marquee b{color:var(--royal-text)!important}
