*{box-sizing:border-box}body{background:var(--paper);color:var(--ink);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;margin:0}@media (prefers-color-scheme:dark){body{--lightningcss-light: ;--lightningcss-dark:initial}}.site-header{z-index:100;background:color-mix(in srgb, var(--paper) 90%, transparent);border-bottom:1px solid #0000;height:72px;transition:background-color .35s,border-color .35s,box-shadow .35s,-webkit-backdrop-filter .35s,backdrop-filter .35s;position:sticky;top:0}.site-header--scrolled{background:color-mix(in srgb, var(--paper) 82%, transparent);-webkit-backdrop-filter:blur(10px);border-bottom-color:var(--line);box-shadow:0 8px 24px -16px #00000040}.site-header__inner{justify-content:space-between;align-items:center;gap:24px;max-width:1200px;height:100%;margin:0 auto;padding:0 24px;display:flex}.site-header__logo{letter-spacing:-.02em;color:var(--ink);border-radius:4px;align-items:baseline;font-family:Space Grotesk,sans-serif;font-size:20px;font-weight:700;text-decoration:none;display:inline-flex}.site-header__logo-dot{color:var(--red);transition:color .25s}.site-header__logo:hover .site-header__logo-dot{color:var(--ink)}.site-header__logo:focus-visible{outline:2px solid var(--red);outline-offset:4px}.site-header__nav{align-items:center;gap:28px;display:flex}.site-header__nav-list{align-items:center;gap:28px;margin:0;padding:0;list-style:none;display:flex}.site-header__link{color:var(--ink);border-radius:2px;padding:6px 1px;font-family:Inter,sans-serif;font-size:14px;font-weight:500;text-decoration:none;position:relative}.site-header__link:after{content:"";background:var(--red);width:0%;height:2px;transition:width .25s cubic-bezier(.4,0,.2,1);position:absolute;bottom:0;left:0}.site-header__link:hover:after{width:100%}.site-header__link--active{color:var(--ink)}.site-header__link--active:after{width:100%}.site-header__link:focus-visible{outline:2px solid var(--red);outline-offset:3px}.theme-toggle{width:32px;height:32px;color:var(--ink);cursor:pointer;background:0 0;border:none;border-radius:50%;place-items:center;transition:background-color .25s;display:grid;position:relative}.theme-toggle:hover{background:color-mix(in srgb, var(--ink) 8%, transparent)}.theme-toggle:focus-visible{outline:2px solid var(--red);outline-offset:2px}.theme-toggle__icon{opacity:1;width:18px;height:18px;transition:opacity .35s,transform .35s cubic-bezier(.4,0,.2,1);position:absolute;transform:rotate(0)scale(1)}.theme-toggle__icon.is-hidden{opacity:0;pointer-events:none;transform:rotate(-90deg)scale(.6)}.hamburger{cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;gap:5px;width:40px;height:40px;display:none}.hamburger:focus-visible{outline:2px solid var(--red);outline-offset:2px}.hamburger__line{background:var(--ink);border-radius:1px;width:20px;height:2px;transition:transform .3s cubic-bezier(.4,0,.2,1),opacity .3s}.hamburger--open .hamburger__line:first-child{transform:translateY(7px)rotate(45deg)}.hamburger--open .hamburger__line:nth-child(2){opacity:0}.hamburger--open .hamburger__line:nth-child(3){transform:translateY(-7px)rotate(-45deg)}@media (width<=760px){.hamburger{display:flex}.site-header__nav{background:var(--paper);border-bottom:1px solid var(--line);opacity:0;pointer-events:none;visibility:hidden;flex-direction:column;align-items:stretch;gap:0;transition:opacity .28s cubic-bezier(.4,0,.2,1),transform .28s cubic-bezier(.4,0,.2,1),visibility 0s linear .28s;position:absolute;top:72px;left:0;right:0;transform:translateY(-8px);box-shadow:0 16px 32px -20px #0000004d}.site-header__nav--open{opacity:1;pointer-events:auto;visibility:visible;transition:opacity .28s cubic-bezier(.4,0,.2,1),transform .28s cubic-bezier(.4,0,.2,1);transform:translateY(0)}.site-header__nav-list{flex-direction:column;align-items:stretch;gap:0;padding:8px 24px}.site-header__nav-list li{border-bottom:1px solid var(--line)}.site-header__nav-list li:last-child{border-bottom:none}.site-header__link{padding:14px 2px;display:block}.site-header__link:after{display:none}.site-header__link--active{color:var(--red)}.theme-toggle{justify-self:start;margin:4px 24px 12px}}.hero{background:var(--paper);max-width:1200px;min-height:100vh;color:var(--ink);flex-direction:column;justify-content:center;gap:28px;margin:0 auto;padding:120px 24px 96px;display:flex;position:relative;overflow:hidden}.hero:after{content:"";background:var(--red);opacity:.14;filter:blur(120px);pointer-events:none;z-index:0;border-radius:50%;width:480px;height:480px;position:absolute;bottom:40px;left:40px;-webkit-mask-image:radial-gradient(circle,#000 40%,#0000 75%);mask-image:radial-gradient(circle,#000 40%,#0000 75%)}.hero>*{z-index:1;position:relative}.hero__portrait{transform-origin:100% 100%;z-index:2;opacity:0;width:auto;height:92vh;max-height:840px;transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .6s cubic-bezier(.16,1,.3,1);position:absolute;bottom:-40px;right:20px;transform:scale(1)}.hero__portrait.is-visible{opacity:1}.hero__portrait.is-visible:hover{transform:scale(1.15)}.hero__eyebrow{letter-spacing:.06em;text-transform:uppercase;width:fit-content;color:var(--muted);opacity:0;will-change:transform, opacity;align-items:center;gap:10px;margin:0;font-family:Inter,sans-serif;font-size:13px;font-weight:500;transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);display:inline-flex;transform:translateY(18px)}.hero__eyebrow.is-visible{opacity:1;transform:translateY(0)}.hero__eyebrow-dot{background:var(--red);border-radius:50%;flex-shrink:0;width:6px;height:6px}.hero__headline-wrap{opacity:0;will-change:transform, opacity;transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);transform:translateY(20px)}.hero__headline-wrap.is-visible{opacity:1;transform:translateY(0)}.hero__headline{letter-spacing:-.03em;text-transform:uppercase;color:var(--ink);margin:0;font-family:Space Grotesk,sans-serif;font-size:clamp(48px,9vw,108px);font-weight:700;line-height:.98}.hero__line{white-space:nowrap;display:block;position:relative}.hero__line--last{color:var(--ink)}.hero__sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.hero__cursor{background:var(--red);vertical-align:-.05em;width:.06em;height:.78em;margin-left:.02em;animation:.9s step-end infinite hero-cursor-blink;display:inline-block}@keyframes hero-cursor-blink{0%,49%{opacity:1}50%,to{opacity:0}}.hero__underline{width:92%;max-width:420px;height:.14em;min-height:10px;position:absolute;bottom:-.06em;left:2px;overflow:visible}.hero__underline path{fill:none;stroke:var(--red);stroke-width:6px;stroke-linecap:round;stroke-dasharray:420;stroke-dashoffset:420px}.hero__underline.is-drawing path{stroke-dashoffset:0;transition:stroke-dashoffset .9s cubic-bezier(.65,0,.35,1)}.hero__lede{max-width:480px;color:var(--muted);opacity:0;will-change:transform, opacity;margin:0;font-family:Inter,sans-serif;font-size:17px;font-weight:400;line-height:1.6;transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);transform:translateY(15px)}.hero__lede.is-visible{opacity:1;transform:translateY(0)}.hero__scroll-cue{letter-spacing:.05em;text-transform:uppercase;color:var(--muted);white-space:nowrap;align-items:center;gap:10px;width:fit-content;font-family:Inter,sans-serif;font-size:12px;font-weight:500;text-decoration:none;transition:color .25s;display:inline-flex;position:absolute;bottom:40px;left:24px}.hero__scroll-cue:hover{color:var(--red)}.hero__scroll-line{background:var(--line);width:32px;height:1px;transition:background-color .25s;animation:2.5s ease-in-out infinite hero-scroll-pulse}.hero__scroll-cue:hover .hero__scroll-line{background:var(--red)}@keyframes hero-scroll-pulse{0%,to{opacity:.4}50%{opacity:1}}@media (prefers-reduced-motion:reduce){.hero__eyebrow,.hero__headline-wrap,.hero__lede{opacity:1;transition:none;transform:none}.hero__cursor{display:none}.hero__underline path{stroke-dashoffset:0;transition:none}.hero__scroll-line{animation:none}}@media (width<=760px){.hero{cursor:auto;justify-content:flex-start;align-items:flex-start;gap:24px;min-height:0;padding:32px 20px 56px}.hero:after{opacity:.1;width:280px;height:280px;bottom:20px;left:20px}.hero__eyebrow{order:1}.hero__headline-wrap{order:2}.hero__portrait{order:3;align-self:center;height:38vh;max-height:280px;position:static}.hero__lede{order:4;font-size:16px}.hero__scroll-cue{order:5;margin-top:-4px;position:static}}@media (hover:hover) and (pointer:fine){body,a,button{cursor:none}}.cursor{mix-blend-mode:difference;pointer-events:none;z-index:9999;background:#fff;border-radius:50%;width:20px;height:20px;margin:-10px 0 0 -10px;transition:width .25s cubic-bezier(.16,1,.3,1),height .25s cubic-bezier(.16,1,.3,1),margin .25s cubic-bezier(.16,1,.3,1);position:fixed;top:0;left:0}.cursor.is-hovering{width:56px;height:56px;margin:-28px 0 0 -28px}@media not all and (hover:hover) and (pointer:fine){.cursor{display:none}}@media (prefers-reduced-motion:reduce){.cursor{display:none}body,a,button{cursor:auto}}.footer{background:var(--paper);color:var(--ink);position:relative;overflow:hidden}.footer:before{content:"";background:linear-gradient(to bottom, var(--paper) 0%, transparent 100%);pointer-events:none;z-index:1;height:220px;position:absolute;top:0;left:0;right:0}.footer__glow{background:radial-gradient(circle at 20% 30%, color-mix(in srgb, var(--red) 16%, transparent) 0%, transparent 45%);pointer-events:none;animation:22s ease-in-out infinite footer-glow-drift;position:absolute;inset:-20%;-webkit-mask-image:linear-gradient(#0000 0%,#000 30%);mask-image:linear-gradient(#0000 0%,#000 30%)}@keyframes footer-glow-drift{0%{transform:translate(0%)scale(1)}50%{transform:translate(12%,10%)scale(1.15)}to{transform:translate(0%)scale(1)}}.footer__inner{opacity:0;max-width:1200px;margin:0 auto;padding:120px 24px 32px;transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1);position:relative;transform:translateY(24px)}.footer__inner--standalone{padding-top:32px}.footer.is-visible .footer__inner{opacity:1;transform:translateY(0)}.footer__bottom{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:24px;padding-top:24px;display:flex}.footer__bottom--standalone{border-top:none;padding-top:0}.footer__copyright{color:var(--ink);margin:0;font-family:Inter,sans-serif;font-size:13px}.footer__to-top{color:var(--muted);cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:6px 2px;font-family:Inter,sans-serif;font-size:13px;font-weight:500;transition:color .25s;display:inline-flex}.footer__to-top svg{transition:transform .25s cubic-bezier(.16,1,.3,1)}.footer__to-top:hover{color:var(--red)}.footer__to-top:hover svg{transform:translateY(-3px)}.footer__to-top:focus-visible{outline:2px solid var(--red);outline-offset:4px}@media (prefers-reduced-motion:reduce){.footer__glow{animation:none}.footer__to-top svg{transition:none}.footer__inner{opacity:1;transition:none;transform:none}}@media (width<=640px){.footer__inner{padding:72px 20px 24px}.footer__inner--standalone{padding-top:24px}.footer__bottom{flex-direction:column;align-items:flex-start;gap:16px}}:root{--ink:#1c1b19;--muted:#847f74;--line:#e6e2d8;--paper:#faf9f6}[data-theme=dark]{--ink:#f3f1ec;--muted:#9b968b;--line:#2c2a26;--paper:#151412}.tech-marquee{border-top:1px solid var(--line);border-bottom:1px solid var(--line);width:100%;padding:28px 0;position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000 0%,#000 8% 92%,#0000 100%);mask-image:linear-gradient(90deg,#0000 0%,#000 8% 92%,#0000 100%)}.tech-marquee__track{width:max-content;animation:tech-marquee-scroll var(--duration) linear infinite;display:flex}@keyframes tech-marquee-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.tech-marquee__item{color:var(--muted);white-space:nowrap;align-items:center;gap:10px;padding:0 36px;transition:color .25s;display:inline-flex}.tech-marquee__item:hover{color:var(--ink)}.tech-marquee__label{font-family:Inter,sans-serif;font-size:14px;font-weight:500}@media (prefers-reduced-motion:reduce){.tech-marquee__track{animation:none}.tech-marquee{overflow-x:auto}}@media (width<=760px){.tech-marquee{padding:20px 0}.tech-marquee__item{padding:0 24px}}.timeline{background:var(--paper);max-width:1200px;color:var(--ink);margin:0 auto;padding:120px 24px 168px;position:relative}.timeline__inner{max-width:830px;margin:0 auto}.timeline__heading{letter-spacing:-.01em;text-transform:uppercase;margin:0 0 72px;font-family:Space Grotesk,sans-serif;font-size:clamp(36px,5.2vw,52px);font-weight:700}.timeline__track{padding-left:52px;position:relative}.timeline__rail{background:var(--line);width:3px;position:absolute;top:8px;bottom:8px;left:7px}.timeline__rail-fill{background:var(--red);width:100%;transition:height .1s linear}.timeline__list{flex-direction:column;gap:96px;margin:0;padding:0;list-style:none;display:flex}.timeline__item{opacity:0;flex-direction:column;gap:8px;transition:opacity .6s cubic-bezier(.16,1,.3,1),transform .6s cubic-bezier(.16,1,.3,1);display:flex;position:relative;transform:translateY(16px)}.timeline__item.is-visible{opacity:1;transform:translateY(0)}.timeline__dot{background:var(--paper);border:3px solid var(--line);border-radius:50%;width:16px;height:16px;transition:border-color .3s,background-color .3s;position:absolute;top:6px;left:-52px}.timeline__item.is-visible .timeline__dot{border-color:var(--red);background:var(--red)}.timeline__period{color:var(--muted);font-family:JetBrains Mono,Fira Code,ui-monospace,monospace;font-size:16px}.timeline__title{letter-spacing:-.01em;font-family:Space Grotesk,sans-serif;font-size:clamp(26px,3.1vw,34px);font-weight:700}.timeline__description{max-width:560px;color:var(--muted);margin:6px 0 0;font-family:Inter,sans-serif;font-size:16px;line-height:1.6}@media (prefers-reduced-motion:reduce){.timeline__item{opacity:1;transition:none;transform:none}.timeline__rail-fill{transition:none;height:100%!important}.timeline__dot{border-color:var(--red);background:var(--red)}}@media (width<=640px){.timeline{padding:80px 20px 120px}.timeline__heading{margin-bottom:48px}.timeline__track{padding-left:40px}.timeline__dot{left:-40px}.timeline__list{gap:64px}}:root{--paper:#faf9f6;--ink:#1c1b19;--muted:#847f74;--red:#da291c}[data-theme=dark]{--paper:#151412;--ink:#f3f1ec;--muted:#9b968b;--red:#ff5445}.statement{background:var(--paper);max-width:1200px;margin:0 auto;padding:80px 24px 160px;position:relative;overflow:hidden}.statement__mark{z-index:0;color:var(--red);opacity:0;transform-origin:0 0;pointer-events:none;-webkit-user-select:none;user-select:none;font-family:Space Grotesk,sans-serif;font-size:clamp(220px,30vw,440px);font-weight:700;line-height:1;transition:opacity 1s cubic-bezier(.16,1,.3,1),scale 1s cubic-bezier(.16,1,.3,1);position:absolute;top:-40px;left:-20px;scale:.85}.statement.is-visible .statement__mark{opacity:.1;scale:1}.statement__quote{z-index:1;letter-spacing:-.01em;max-width:780px;color:var(--muted);opacity:0;margin:0;font-family:Space Grotesk,sans-serif;font-size:clamp(28px,4vw,44px);font-weight:700;line-height:1.25;transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1);position:relative;transform:translateY(20px)}.statement.is-visible .statement__quote{opacity:1;transform:translateY(0)}.statement__accent{color:var(--ink)}.statement__cite{z-index:1;letter-spacing:.02em;color:var(--muted);opacity:0;margin:20px 0 0;font-family:Inter,sans-serif;font-size:15px;font-weight:500;transition:opacity .8s cubic-bezier(.16,1,.3,1) .15s,transform .8s cubic-bezier(.16,1,.3,1) .15s;position:relative;transform:translateY(20px)}.statement.is-visible .statement__cite{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){.statement__quote,.statement__cite{opacity:1;transition:none;transform:none}.statement__mark{opacity:.1;transition:none;scale:1}}@media (width<=640px){.statement{padding:56px 20px 120px}}:root{--paper:#faf9f6;--ink:#1c1b19;--muted:#847f74;--line:#e6e2d8}[data-theme=dark]{--paper:#151412;--ink:#f3f1ec;--muted:#9b968b;--line:#2c2a26}.page{background:var(--paper);max-width:1200px;min-height:100vh;color:var(--ink);flex-direction:column;align-items:flex-start;margin:0 auto;padding:140px 24px 96px;scroll-margin-top:72px;display:flex;position:relative;overflow:hidden}.page-section{border-top:1px solid var(--line)}.page-section:first-of-type{border-top:none}.page__title{z-index:1;letter-spacing:-.02em;text-transform:uppercase;align-items:baseline;gap:18px;margin:0 0 48px;font-family:Space Grotesk,sans-serif;font-size:clamp(36px,6vw,64px);font-weight:700;display:flex;position:relative}.page__title-index{letter-spacing:.02em;text-transform:none;color:var(--red);font-family:JetBrains Mono,Fira Code,ui-monospace,monospace;font-size:clamp(15px,1.6vw,18px);font-weight:500}.page__watermark{z-index:0;letter-spacing:-.03em;color:var(--ink);opacity:.035;pointer-events:none;-webkit-user-select:none;user-select:none;margin:0;font-family:Space Grotesk,sans-serif;font-size:clamp(140px,22vw,320px);font-weight:700;line-height:1;position:absolute;top:-30px;right:-12px}.page__content--split{align-items:flex-start;gap:64px;width:100%;display:flex}.page__content--split .page__intro{flex:320px}.page__content--split .contact-form-wrap{flex:480px}.page__intro{z-index:1;flex-direction:column;gap:28px;display:flex;position:relative}.page__direct{flex-direction:column;gap:10px;display:flex}.page__direct-label{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-family:Inter,sans-serif;font-size:16px;font-weight:500}.page__direct-links{gap:16px;margin:0;padding:0;list-style:none;display:flex}.page__direct-link{width:72px;height:72px;color:var(--ink);border-radius:50%;justify-content:center;align-items:center;text-decoration:none;transition:color .25s,background-color .25s,transform .25s cubic-bezier(.16,1,.3,1);display:inline-flex}.page__direct-link svg{width:38px;height:38px}.page__direct-link:hover{color:var(--red);background:color-mix(in srgb, var(--red) 10%, transparent);transform:translateY(-2px)}.page__direct-link:focus-visible{outline:2px solid var(--red);outline-offset:4px}@media (width<=900px){.page__content--split{flex-direction:column;gap:40px}}@media (width<=760px){.page{padding-top:96px}}:root{--red:#da291c}[data-theme=dark]{--red:#ff5445}.page:after{content:"";background:var(--red);opacity:.13;filter:blur(110px);pointer-events:none;z-index:0;border-radius:50%;width:420px;height:420px;position:absolute;top:32px;right:32px;-webkit-mask-image:radial-gradient(circle,#000 40%,#0000 75%);mask-image:radial-gradient(circle,#000 40%,#0000 75%)}:root{--line:#e6e2d8}[data-theme=dark]{--line:#2c2a26}.work-page{padding-bottom:0}.work-page__inner{z-index:1;width:100%;padding-bottom:120px;position:relative}.work-page .tech-marquee{width:100vw;margin-left:50%;transform:translate(-50%)}.work-page__inner:before{content:"";z-index:0;background:var(--red);opacity:.08;filter:blur(140px);pointer-events:none;border-radius:50%;width:900px;height:900px;position:absolute;top:60px;left:50%;transform:translate(-50%)}.terminal{z-index:1;background:#17161a;border-radius:12px;max-width:760px;margin:0 auto;position:relative;overflow:hidden;box-shadow:0 30px 60px -30px #00000080}.terminal__bar{background:#211f26;align-items:center;gap:8px;padding:12px 16px;display:flex}.terminal__dot{border-radius:50%;width:11px;height:11px}.terminal__dot--red{background:#ff5f56}.terminal__dot--yellow{background:#ffbd2e}.terminal__dot--green{background:#27c93f}.terminal__bar-title{color:#8b889a;margin:0 auto;font-family:JetBrains Mono,Fira Code,ui-monospace,monospace;font-size:12px;transform:translate(-22px)}.terminal__body{min-height:260px;padding:24px 28px 32px;font-family:JetBrains Mono,Fira Code,ui-monospace,monospace;font-size:14px;line-height:1.9}.terminal__line{color:#e4e2ea;white-space:pre-wrap;word-break:break-word;align-items:baseline;gap:2px;display:flex}.terminal__file{font:inherit;color:#ff5445;text-align:left;cursor:pointer;background:0 0;border:none;padding:0;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;transition:text-decoration-color .2s,color .2s}.terminal__file-index{color:#5c5968}.terminal__file:hover,.terminal__file:focus-visible{text-decoration-color:currentColor}.terminal__file.is-open{color:#6ee7a8}.terminal__file:focus-visible{outline-offset:3px;outline:2px solid #ff5445}.terminal__hint{color:#8b889a;margin-top:4px}.terminal__hint-text{margin-left:6px}.terminal__output{border-top:1px solid #2c2a33;margin-top:18px;padding-top:18px}.terminal__link{color:#6ee7a8;word-break:break-all;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;transition:text-decoration-color .2s}.terminal__link:hover,.terminal__link:focus-visible{text-decoration-color:currentColor}.terminal__link:focus-visible{outline-offset:3px;outline:2px solid #ff5445}.terminal__cursor{background:#ff5445;width:.55em;height:1.1em;margin-left:2px;animation:.9s step-end infinite terminal-blink;display:inline-block}@keyframes terminal-blink{0%,49%{opacity:1}50%,to{opacity:0}}@media (prefers-reduced-motion:reduce){.terminal__cursor{animation:none}}.skills{z-index:1;border-top:1px solid var(--line);flex-wrap:wrap;gap:48px;max-width:760px;margin:64px auto 0;padding-top:48px;display:flex;position:relative}.skills__group{flex-direction:column;gap:14px;display:flex}.skills__label{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:0;font-family:Inter,sans-serif;font-size:13px;font-weight:500}.skills__tags{flex-wrap:wrap;gap:8px;max-width:340px;margin:0;padding:0;list-style:none;display:flex}.skills__tags li{color:var(--ink);border:1px solid var(--line);border-radius:999px;padding:6px 14px;font-family:Inter,sans-serif;font-size:13px;font-weight:500;transition:border-color .25s,color .25s}.skills__tags li:hover{border-color:var(--red);color:var(--red)}@media (width<=760px){.terminal__body{padding:20px;font-size:13px}.skills{flex-direction:column;gap:32px;margin-top:48px}.skills__tags{max-width:none}}:root{--paper:#faf9f6;--ink:#1c1b19;--muted:#847f74;--line:#e6e2d8;--red:#da291c}[data-theme=dark]{--paper:#151412;--ink:#f3f1ec;--muted:#9b968b;--line:#2c2a26;--red:#ff5445}.about-page__content{z-index:1;align-items:flex-start;gap:64px;width:100%;display:flex;position:relative}.about-page__portrait-wrap{perspective:800px;width:260px;height:320px;transform-style:preserve-3d;will-change:transform;opacity:0;border-radius:12px;flex:0 0 260px;transition:transform .25s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden;translate:0 20px}.about-page.is-visible .about-page__portrait-wrap{opacity:1;transition:opacity .7s cubic-bezier(.16,1,.3,1),translate .7s cubic-bezier(.16,1,.3,1);translate:0}.about-page__portrait{object-fit:cover;width:100%;height:100%;display:block}.about-page__portrait--mono{filter:grayscale()contrast(1.5)brightness(.92)}.about-page__portrait--color{opacity:0;transition:opacity .25s;position:absolute;inset:0}.about-page__portrait--color.is-active{opacity:1}.about-page__body{opacity:0;flex-direction:column;flex:480px;gap:24px;max-width:640px;transition:opacity .7s cubic-bezier(.16,1,.3,1) .1s,transform .7s cubic-bezier(.16,1,.3,1) .1s;display:flex;transform:translateY(20px)}.about-page.is-visible .about-page__body{opacity:1;transform:translateY(0)}.about-page__lede{color:var(--muted);margin:0;font-family:Inter,sans-serif;font-size:17px;line-height:1.65}.about-page__values{border-top:1px solid var(--line);flex-direction:column;gap:4px;margin-top:8px;padding-top:28px;display:flex}.about-page__value{cursor:default;grid-template-rows:auto 0fr;gap:0;padding:10px 0;transition:grid-template-rows .35s cubic-bezier(.16,1,.3,1);display:grid}.about-page__value:hover,.about-page__value:focus-visible{outline:none;grid-template-rows:auto 1fr}.about-page__value-label{color:var(--red);align-items:center;gap:10px;font-family:JetBrains Mono,Fira Code,ui-monospace,monospace;font-size:13px;font-weight:500;display:inline-flex}.about-page__value-label:before{content:"";background:var(--red);width:14px;height:1px;transition:width .3s cubic-bezier(.16,1,.3,1)}.about-page__value:hover .about-page__value-label:before,.about-page__value:focus-visible .about-page__value-label:before{width:26px}.about-page__value-text{color:var(--ink);opacity:0;margin:0;font-family:Inter,sans-serif;font-size:15px;line-height:1.5;transition:opacity .25s;overflow:hidden}.about-page__value:hover .about-page__value-text,.about-page__value:focus-visible .about-page__value-text{opacity:1;transition:opacity .35s .1s}.about-page__value-text:before{content:"";height:6px;display:block}.about-page__interests{flex-direction:column;gap:12px;padding-top:8px;display:flex}.about-page__interests-label{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-family:Inter,sans-serif;font-size:13px;font-weight:500}.about-page__interests-cards{flex-wrap:wrap;gap:14px;margin:0;padding:0;list-style:none;display:flex}.about-page__interest-card{border:1px solid var(--line);width:108px;color:var(--ink);background:var(--paper);cursor:default;border-radius:14px;flex-direction:column;align-items:flex-start;gap:16px;padding:20px 16px;transition:border-color .25s,box-shadow .25s,transform .25s cubic-bezier(.16,1,.3,1);display:flex;position:relative}.about-page__interest-card svg{color:var(--muted);transition:color .25s,transform .35s cubic-bezier(.34,1.56,.64,1)}.about-page__interest-label{font-family:Inter,sans-serif;font-size:13px;font-weight:500}.about-page__interest-card:hover,.about-page__interest-card:focus-visible{border-color:var(--red);box-shadow:0 12px 24px -16px color-mix(in srgb, var(--red) 60%, transparent);z-index:1;outline:none;transform:translateY(-4px)}.about-page__interest-card:hover svg,.about-page__interest-card:focus-visible svg{color:var(--red);transform:scale(1.12)}.about-page__interest-tooltip{z-index:2;background:var(--ink);width:min(200px,100vw - 48px);color:var(--paper);text-align:left;opacity:0;pointer-events:none;border-radius:10px;margin:0;padding:12px 14px;font-family:Inter,sans-serif;font-size:13px;line-height:1.5;transition:opacity .2s,translate .2s cubic-bezier(.16,1,.3,1);position:absolute;bottom:calc(100% + 12px);left:50%;translate:-50% 6px;box-shadow:0 16px 32px -16px #00000059}.about-page__interest-tooltip:after{content:"";border:6px solid #0000;border-top-color:var(--ink);position:absolute;top:100%;left:50%;translate:-50%}.about-page__interest-card:hover .about-page__interest-tooltip,.about-page__interest-card:focus-visible .about-page__interest-tooltip{opacity:1;translate:-50%}.about-page__interests-cards li:first-child .about-page__interest-tooltip{left:0;translate:0 6px}.about-page__interests-cards li:first-child .about-page__interest-tooltip:after{left:20px;translate:0}.about-page__interests-cards li:first-child:hover .about-page__interest-tooltip,.about-page__interests-cards li:first-child:focus-visible .about-page__interest-tooltip{translate:0}.about-page__interests-cards li:last-child .about-page__interest-tooltip{left:auto;right:0;translate:0 6px}.about-page__interests-cards li:last-child .about-page__interest-tooltip:after{left:auto;right:20px;translate:0}.about-page__interests-cards li:last-child:hover .about-page__interest-tooltip,.about-page__interests-cards li:last-child:focus-visible .about-page__interest-tooltip{translate:0}@media (prefers-reduced-motion:reduce){.about-page__portrait-wrap,.about-page__body{opacity:1;transition:none;transform:translate(0,0)}.about-page__portrait--mono{filter:none}.about-page__portrait--color{display:none}.about-page__value{grid-template-rows:auto 1fr}.about-page__value-text{opacity:1}.about-page__interest-card:hover,.about-page__interest-card:hover svg{transform:none}}@media (width<=760px){.about-page__content{flex-direction:column;gap:32px}.about-page__portrait-wrap{flex-basis:auto;width:200px;height:240px}}@media (hover:none){.about-page__value{grid-template-rows:auto 1fr}.about-page__value-text{opacity:1}.about-page__portrait--mono{filter:none}.about-page__portrait--color{display:none}}:root{--ink:#1c1b19;--muted:#847f74;--line:#e6e2d8;--red:#da291c;--paper:#faf9f6}[data-theme=dark]{--ink:#f3f1ec;--muted:#9b968b;--line:#2c2a26;--red:#ff5445;--paper:#151412}.contact-form{z-index:1;flex-direction:column;gap:24px;width:100%;max-width:480px;display:flex;position:relative}.contact-form__glow{background:var(--red);opacity:0;filter:blur(70px);pointer-events:none;z-index:-1;border-radius:50%;width:220px;height:220px;transition:opacity .5s,transform .5s cubic-bezier(.16,1,.3,1);position:absolute;top:-60px;right:-80px;transform:scale(.85)}.contact-form.is-focused .contact-form__glow{opacity:.22;transform:scale(1)}.contact-form__field{flex-direction:column;gap:8px;display:flex}.contact-form__field label{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-family:Inter,sans-serif;font-size:13px;font-weight:500}.contact-form__control{position:relative}.contact-form__control input,.contact-form__control textarea{width:100%;color:var(--ink);border:none;border-bottom:1.5px solid var(--line);resize:vertical;background:0 0;padding:8px 2px;font-family:Space Grotesk,sans-serif;font-size:19px}.contact-form__control input:focus,.contact-form__control textarea:focus{outline:none}.contact-form__control:after{content:"";background:var(--red);pointer-events:none;width:100%;height:1.5px;transition:transform .3s cubic-bezier(.16,1,.3,1);position:absolute;bottom:0;left:50%;transform:translate(-50%)scaleX(0)}.contact-form__control:has(:focus):after{transform:translate(-50%)scaleX(1)}.contact-form__counter{color:var(--muted);font-variant-numeric:tabular-nums;align-self:flex-end;font-family:Inter,sans-serif;font-size:12px}.contact-form__submit{color:var(--paper);background:var(--ink);cursor:pointer;border:none;border-radius:999px;align-self:flex-start;margin-top:8px;padding:14px 32px;font-family:Inter,sans-serif;font-size:15px;font-weight:500;transition:background-color .25s,transform .2s}.contact-form__submit:hover:not(:disabled){background:var(--red)}.contact-form__submit:disabled{opacity:.6;cursor:not-allowed}.contact-form__error{color:var(--red);margin:0;font-family:Inter,sans-serif;font-size:14px}.contact-form--success{align-items:center;gap:20px;max-width:480px;display:flex}.contact-form__check{background:var(--red);width:52px;height:52px;color:var(--paper);border-radius:50%;flex-shrink:0;place-items:center;animation:.5s cubic-bezier(.16,1,.3,1) check-pop;display:grid}.contact-form__check svg path{stroke-dasharray:24;stroke-dashoffset:24px;animation:.4s .25s forwards check-draw}@keyframes check-pop{0%{opacity:0;transform:scale(.4)}60%{opacity:1;transform:scale(1.08)}to{transform:scale(1)}}@keyframes check-draw{to{stroke-dashoffset:0}}.contact-form--success p{letter-spacing:-.01em;color:var(--ink);margin:0;font-family:Space Grotesk,sans-serif;font-size:clamp(22px,3vw,28px);font-weight:700}@media (prefers-reduced-motion:reduce){.contact-form__check,.contact-form__check svg path{stroke-dashoffset:0;animation:none}.contact-form__glow,.contact-form__control:after{transition:none}}@media (width<=640px){.contact-form,.contact-form--success{max-width:none}}.availability{color:var(--muted);transform-origin:0;align-items:center;gap:21px;font-family:Inter,sans-serif;font-size:14px;display:inline-flex;transform:scale(1.5)}.availability__face{border-radius:50%;flex-shrink:0;display:inline-flex;box-shadow:0 2px 10px #0000002e}.availability__rim{fill:#fff;stroke:#d8d5cc;stroke-width:1px}.availability__tick{fill:#1c1b19}.availability__tick--minute{fill:#86837a}.availability__hand{fill:#1c1b19;transition:transform .2s cubic-bezier(.4,2.2,.6,1)}.availability__hand--second{fill:none;transition:transform .15s cubic-bezier(.4,2.2,.6,1)}.availability__hand--second line,.availability__hand--second circle{stroke:var(--red);fill:var(--red)}.availability__hand--second line{stroke-width:1.6px}.availability__pivot{fill:#1c1b19}.availability__text{flex-direction:column;gap:8px;display:flex}.availability__status-row{align-items:center;gap:10px;display:inline-flex}.availability__dot{background:var(--muted);border-radius:50%;flex-shrink:0;width:9px;height:9px}.availability__dot.is-online{background:#34c759;animation:2.4s ease-in-out infinite availability-pulse;box-shadow:0 0 0 4px #34c75933}@keyframes availability-pulse{0%,to{box-shadow:0 0 0 4px #34c75933}50%{box-shadow:0 0 0 8px #34c75914}}.availability__status{color:var(--ink);font-weight:500}.availability__time{font-variant-numeric:tabular-nums}@media (prefers-reduced-motion:reduce){.availability__dot.is-online{animation:none}}@media (width<=480px){.availability{transform:scale(1.15)}}@media (width<=360px){.availability{transform:scale(1)}}:root{--ink:#1c1b19;--muted:#847f74;--line:#e6e2d8;--red:#da291c}[data-theme=dark]{--ink:#f3f1ec;--muted:#9b968b;--line:#2c2a26;--red:#ff5445}.page--contact .page__title{opacity:0;transition:opacity .6s cubic-bezier(.16,1,.3,1),transform .6s cubic-bezier(.16,1,.3,1);transform:translateY(16px)}.page--contact .page__title.is-visible{opacity:1;transform:translateY(0)}.contact-reveal{opacity:0;transition:opacity .6s cubic-bezier(.16,1,.3,1),transform .6s cubic-bezier(.16,1,.3,1);transform:translateY(16px)}.contact-reveal.is-visible{opacity:1;transform:translateY(0)}.contact-clock-wrap{padding-bottom:40px}.contact-note{border-top:1px solid var(--line);max-width:320px;padding-top:20px}.contact-note p{color:var(--muted);margin:0;font-family:Inter,sans-serif;font-size:14px;line-height:1.6}@media (prefers-reduced-motion:reduce){.page--contact .page__title,.contact-reveal{opacity:1;transition:none;transform:none}}
