@charset "UTF-8";.nav{position:fixed;top:clamp(.75rem,2vw,1.25rem);left:0;right:0;z-index:100;max-width:72rem;margin:0 auto;padding:0 clamp(1.25rem,4vw,3rem);pointer-events:none}.nav__bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.65rem .75rem;border-radius:999px;background:#ffffffe6;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid rgba(21,32,43,.08);box-shadow:0 10px 30px #15202b14;pointer-events:auto;transition:opacity .3s ease}.nav--scrolled .nav__bar{opacity:.65}.nav--scrolled .nav__bar:hover,.nav--scrolled .nav__bar:focus-within{opacity:1}.nav__home{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:999px;background:#15202b;color:#fff;transition:background .22s ease,transform .22s cubic-bezier(.22,1,.36,1),box-shadow .22s ease}.nav__home:hover{background:#e85d4c;transform:translateY(-2px) scale(1.05);box-shadow:0 8px 18px #e85d4c59}.nav__home svg{width:1.15rem;height:1.15rem;fill:currentColor}.nav__actions{display:flex;align-items:center;gap:.75rem}.nav__icon-link{display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:999px;border:1.5px solid #e85d4c;color:#e85d4c;transition:background .22s ease,color .22s ease,transform .22s cubic-bezier(.22,1,.36,1),box-shadow .22s ease}.nav__icon-link:hover{background:#e85d4c;color:#fff;transform:translateY(-2px) scale(1.05);box-shadow:0 8px 18px #e85d4c59}.nav__icon-link svg{width:1.15rem;height:1.15rem;fill:currentColor}.nav__resume{display:inline-flex;align-items:center;gap:.45rem;padding:.55rem 1.1rem;border-radius:999px;border:1.5px solid #e85d4c;color:#e85d4c;font-weight:600;font-size:.9rem;background:transparent;transition:background .22s ease,color .22s ease,transform .22s cubic-bezier(.22,1,.36,1),box-shadow .22s ease}.nav__resume:hover{background:#e85d4c;color:#fff;transform:translateY(-2px) scale(1.03);box-shadow:0 8px 18px #e85d4c59}.nav__resume svg{width:1rem;height:1rem;stroke:currentColor;fill:none}.tool-stack{width:100%;padding:1.35rem 1.5rem 1.5rem;border-radius:1.25rem;background:linear-gradient(145deg,#2f9e911a,#15202b09 55%);animation:rise-in .9s cubic-bezier(.22,1,.36,1) .22s both}.tool-stack__header{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:1.15rem}.tool-stack__title{font-size:clamp(1.15rem,2.5vw,1.45rem);letter-spacing:-.02em}.tool-stack__title span{color:#e85d4c}.tool-stack__subtitle{color:#8a93a0;font-size:.9rem;white-space:nowrap}.tool-stack__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem;margin:0;padding:0;list-style:none}@media(min-width:520px){.tool-stack__grid{grid-template-columns:repeat(6,minmax(0,1fr))}}@media(min-width:900px){.tool-stack__grid{grid-template-columns:repeat(8,minmax(0,1fr))}}.tool-stack__item{display:flex;align-items:center;justify-content:center;aspect-ratio:1;border-radius:.85rem;background:#fff;box-shadow:0 1px 2px #15202b0a;opacity:0;animation:scale-in .55s cubic-bezier(.22,1,.36,1) both;transition:transform .28s cubic-bezier(.22,1,.36,1),box-shadow .28s ease}.tool-stack__item:nth-child(1){animation-delay:.28s}.tool-stack__item:nth-child(2){animation-delay:.325s}.tool-stack__item:nth-child(3){animation-delay:.37s}.tool-stack__item:nth-child(4){animation-delay:.415s}.tool-stack__item:nth-child(5){animation-delay:.46s}.tool-stack__item:nth-child(6){animation-delay:.505s}.tool-stack__item:nth-child(7){animation-delay:.55s}.tool-stack__item:nth-child(8){animation-delay:.595s}.tool-stack__item:nth-child(9){animation-delay:.64s}.tool-stack__item:nth-child(10){animation-delay:.685s}.tool-stack__item:nth-child(11){animation-delay:.73s}.tool-stack__item:nth-child(12){animation-delay:.775s}.tool-stack__item:nth-child(13){animation-delay:.82s}.tool-stack__item:nth-child(14){animation-delay:.865s}.tool-stack__item:nth-child(15){animation-delay:.91s}.tool-stack__item:nth-child(16){animation-delay:.955s}.tool-stack__item:hover{transform:translateY(-5px) scale(1.04);box-shadow:0 12px 24px #15202b1a,0 0 0 1px #e85d4c2e}.tool-stack__item img{width:1.65rem;height:1.65rem;object-fit:contain}@media(prefers-reduced-motion:reduce){.tool-stack__item{opacity:1;animation:none}}.home{padding-bottom:6rem}.hero{position:relative;display:flex;flex-direction:column;gap:2.5rem;min-height:auto;padding:clamp(8rem,14vh,10.5rem) clamp(1.25rem,4vw,3rem) clamp(2.5rem,12vh,5rem);max-width:72rem;margin:0 auto}.hero__intro{display:grid;grid-template-columns:1fr;gap:2rem;align-items:center}@media(min-width:900px){.hero__intro{grid-template-columns:1.1fr .9fr;gap:3rem}}.hero__copy{display:flex;flex-direction:column;align-items:flex-start}.hero__name{display:grid;font-size:clamp(2.25rem,5.5vw,3.75rem);line-height:1.05;margin-bottom:1.25rem;white-space:nowrap}.hero__typed,.hero__typed-sizer{grid-area:1/1}.hero__typed-sizer{visibility:hidden;pointer-events:none;-webkit-user-select:none;user-select:none}.hero__cursor{display:inline-block;width:.08em;height:.85em;margin-left:.08em;vertical-align:-.05em;background:#e85d4c;animation:cursor-blink .9s steps(1,end) infinite}.hero__tagline{font-size:clamp(1.05rem,2.2vw,1.35rem);line-height:1.45;color:#5c6673;max-width:28rem;animation:rise-in .9s cubic-bezier(.22,1,.36,1) .1s both}.hero__cta{display:inline-flex;align-items:center;gap:.45rem;margin-top:1.75rem;padding:.85rem 1.5rem;border-radius:999px;background:#e85d4c;color:#fff;font-weight:600;font-size:.95rem;box-shadow:0 10px 28px #e85d4c61;animation:rise-in .9s cubic-bezier(.22,1,.36,1) .2s both;transition:transform .28s cubic-bezier(.22,1,.36,1),box-shadow .28s ease,gap .28s ease}.hero__cta:after{content:"→";display:inline-block;transition:transform .28s cubic-bezier(.22,1,.36,1)}.hero__cta:hover{transform:translateY(-3px);gap:.7rem;box-shadow:0 16px 36px #e85d4c73}.hero__cta:hover:after{transform:translate(3px)}.hero__media{display:flex;flex-direction:column;align-items:center;animation:rise-in .95s cubic-bezier(.22,1,.36,1) .14s both}.hero__portrait{width:min(100%,18rem);aspect-ratio:1;border-radius:50%;overflow:hidden;background:linear-gradient(145deg,rgba(232,93,76,.22),transparent 55%),linear-gradient(320deg,#2f9e912e,#f7f9fc);box-shadow:0 18px 40px #15202b1f}.hero__portrait img{width:100%;height:100%;object-fit:cover}@media(prefers-reduced-motion:reduce){.hero__cursor{animation:none!important;opacity:1}}.featured{max-width:72rem;margin:0 auto;padding:0 clamp(1.25rem,4vw,3rem) 0}.featured__label{margin-bottom:1.25rem;font-family:Instrument Sans,sans-serif;font-size:.8rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#5c6673}.featured__list{display:flex;flex-direction:column;gap:1.25rem}.featured__card{display:grid;grid-template-columns:1fr;gap:1.25rem;align-items:center;padding:1.25rem;border-radius:1.75rem;background:#fff;border:1px solid rgba(21,32,43,.08);box-shadow:0 8px 28px #15202b0d;transition:transform .4s cubic-bezier(.22,1,.36,1),box-shadow .4s ease,border-color .35s ease}@media(min-width:800px){.featured__card{grid-template-columns:minmax(14rem,.9fr) minmax(0,1.3fr);gap:2rem;padding:1.35rem 1.35rem 1.35rem 2.25rem}}.featured__card:hover{transform:translateY(-6px);border-color:#e85d4c59;box-shadow:0 20px 48px #15202b1a,0 0 0 1px #e85d4c1f}.featured__card:hover .featured__thumb{transform:scale(1.045)}.featured__card:hover .featured__card-cta{color:#2f9e91;gap:.45rem}.featured__copy{display:flex;flex-direction:column;align-items:flex-start;gap:.85rem}.featured__card-title{font-size:clamp(1.6rem,3.5vw,2.15rem);line-height:1.1;letter-spacing:-.03em;color:#15202b}.featured__card-desc{color:#5c6673;font-size:.98rem;line-height:1.55;max-width:22rem}.featured__card-cta{display:inline-flex;align-items:center;gap:.25rem;margin-top:.35rem;font-size:.92rem;font-weight:600;color:#e85d4c;transition:color .25s ease,gap .25s ease}.featured__card-cta:after{content:"→";transition:transform .25s ease}.featured__card:hover .featured__card-cta:after{transform:translate(3px)}.featured__media{overflow:hidden;border-radius:1.25rem;background:#15202b0a}.featured__thumb{width:100%;aspect-ratio:16/11;object-fit:cover;display:block;transition:transform .5s cubic-bezier(.22,1,.36,1)}.resume{max-width:72rem;margin:0 auto;padding:clamp(5.5rem,10vh,7rem) clamp(1.25rem,4vw,3rem) 4rem}.resume__frame{display:block;width:100%;min-height:calc(100vh - 12rem);border:1px solid rgba(21,32,43,.08);border-radius:1.25rem;background:#fff;box-shadow:0 12px 32px #15202b0f}.project-page{margin:0 auto;padding:clamp(8rem,14vh,10.5rem) clamp(1.25rem,4vw,3rem) 4rem}.project-page__header{max-width:60rem;margin:0 auto 2.5rem;animation:rise-in .85s cubic-bezier(.22,1,.36,1) .08s both}.project-page__title{font-size:clamp(2rem,5vw,3rem);margin-bottom:2rem}.project-page__context{display:flex;flex-direction:column;gap:1.5rem}.project-page__context-title{font-size:clamp(1.5rem,3vw,2rem);letter-spacing:-.02em;color:#15202b}.project-page__context-summary{color:#5c6673;font-size:1.05rem;line-height:1.7}.project-page__context-meta{display:grid;grid-template-columns:1fr;gap:1.75rem;padding-top:.25rem}@media(min-width:640px){.project-page__context-meta{grid-template-columns:1fr 1fr;gap:2.5rem}}.project-page__context-col{display:flex;flex-direction:column;gap:.35rem}.project-page__context-label{margin:0;font-family:Instrument Sans,sans-serif;font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#15202b}.project-page__context-label--spaced{margin-top:1.35rem}.project-page__context-value{margin:0;color:#15202b;font-size:1rem;line-height:1.5}.project-page__context-detail{margin:0;color:#5c6673;font-size:.98rem;line-height:1.55}.project-page__gallery{display:flex;flex-direction:column}.project-page__image{width:100%;height:auto;display:block;background:#15202b0a;box-shadow:0 12px 32px #15202b0f}@keyframes rise-in{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes scale-in{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes ring-pulse{0%,to{box-shadow:0 0 #e85d4c59,0 24px 60px #15202b1f}50%{box-shadow:0 0 0 12px #e85d4c00,0 28px 70px #15202b24}}@keyframes cursor-blink{0%,50%{opacity:1}50.01%,to{opacity:0}}.motion-rise{animation:rise-in .85s cubic-bezier(.22,1,.36,1) both;animation-delay:var(--delay, 0s)}.motion-fade{animation:fade-in .7s ease both;animation-delay:var(--delay, 0s)}.motion-scale{animation:scale-in .7s cubic-bezier(.22,1,.36,1) both;animation-delay:var(--delay, 0s)}.reveal{opacity:0;transform:translateY(36px);transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1);transition-delay:var(--delay, 0s)}.reveal.is-visible{opacity:1;transform:translateY(0)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;font-family:Instrument Sans,sans-serif;font-weight:400;color:#15202b;background:radial-gradient(ellipse 70% 45% at 8% -8%,rgba(232,93,76,.16),transparent 55%),radial-gradient(ellipse 55% 40% at 100% 0%,rgba(47,158,145,.14),transparent 50%),radial-gradient(ellipse 50% 35% at 70% 100%,rgba(232,93,76,.06),transparent 45%),#eef2f7;-webkit-font-smoothing:antialiased}#root{min-height:100vh}h1,h2,h3{font-family:Syne,sans-serif;font-weight:700;letter-spacing:-.03em;margin:0}p{margin:0}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}button{font:inherit;cursor:pointer}:root{--color-bg: #eef2f7;--color-bg-elevated: #f7f9fc;--color-surface: #ffffff;--color-ink: #15202b;--color-ink-muted: #5c6673;--color-ink-subtle: #8a93a0;--color-accent: #e85d4c;--color-accent-soft: #ffe4df;--color-accent-ink: #ffffff;--color-secondary: #2f9e91;--color-secondary-soft: #d8f3f0;--color-border: rgba(21, 32, 43, .08);--color-nav-bg: rgba(238, 242, 247, .88);--color-project-1: #ff5c5c;--color-project-2: #3d8bfd;--color-project-3: #2ec4b6}
