:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--font-display:"Archivo", "Hanken Grotesk", sans-serif;--font-sans:"Hanken Grotesk", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--color-accent:#58d0a4;--color-accent-soft:#40b58a;--color-accent-glow:#33cc942e;--color-text:#c8d0cd;--color-text-title:#f6f8f7;--color-text-muted:#6e7c79;--color-text-faint:#4d5654;--color-bg:#0b0f0e;--color-bg-deep:#090c0b;--color-surface:#131817;--color-surface-hover:#191f1e;--color-border:#252d2b;--color-border-strong:#384340;--label:.7rem / 1 var(--font-mono);--radius:.85rem;--radius-sm:.5rem;--ease-out:cubic-bezier(.22, 1, .36, 1);--page-pad:clamp(1.5rem, 4.5vw, 4.25rem)}html{-webkit-text-size-adjust:100%;font-size:clamp(13px,1.82vh,28px)}@media (width<1100px){html{font-size:clamp(14px,3.6vw,19px)}}*{box-sizing:border-box;margin:0;padding:0}::selection{background:var(--color-accent);color:var(--color-bg-deep)}body{font-family:var(--font-sans);color:var(--color-text);background-color:var(--color-bg-deep);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;min-height:100dvh;font-weight:400;line-height:1.6;overflow-x:hidden}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}h1,h2,h3,h4{font-family:var(--font-display);color:var(--color-text-title);letter-spacing:-.02em;font-weight:700;line-height:1}*{scrollbar-width:thin;scrollbar-color:var(--color-border-strong) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--color-border-strong);border:3px solid var(--color-bg-deep);border-radius:99px}.label{font:var(--label);text-transform:uppercase;letter-spacing:.22em;color:var(--color-text-muted);font-weight:500}.accent{color:var(--color-accent)}:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px;border-radius:3px}@keyframes rise{0%{opacity:0;transform:translateY(1.1rem)}to{opacity:1;transform:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes figure-in{0%{opacity:0;transform:translate(5%)scale(1.015)}to{opacity:1;transform:none}}::view-transition-old(root){animation-duration:.42s;animation-timing-function:var(--ease-out)}::view-transition-new(root){animation-duration:.42s;animation-timing-function:var(--ease-out)}::view-transition-old(root){animation-name:vt-fade-out}::view-transition-new(root){animation-name:vt-fade-in}@keyframes vt-fade-out{to{opacity:0;filter:blur(6px);transform:scale(.985)}}@keyframes vt-fade-in{0%{opacity:0;filter:blur(6px);transform:scale(1.012)}}.vt-brand{view-transition-name:brand}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}::view-transition-group(*){animation:none!important}::view-transition-old(*){animation:none!important}::view-transition-new(*){animation:none!important}}#app{isolation:isolate;min-height:100dvh;position:relative}.backdrop{z-index:-1;pointer-events:none;background:radial-gradient(120% 90% at -5% -10%, var(--color-accent-glow), transparent 55%), radial-gradient(100% 100% at 100% 0%, #12211e99, transparent 60%), var(--color-bg-deep);position:fixed;inset:0}.backdrop:after{content:"";opacity:.5;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.4'/%3E%3C/svg%3E");position:absolute;inset:0}.socials{gap:.6rem;display:flex}.socials__link{background:var(--color-surface);border:1px solid var(--color-border);width:2.6rem;height:2.6rem;color:var(--color-text-muted);transition:transform .25s var(--ease-out), border-color .25s, background .25s, box-shadow .25s;border-radius:50%;place-items:center;display:grid}.socials__link:hover{border-color:var(--color-accent-soft);background:var(--color-surface-hover);box-shadow:0 6px 20px -8px var(--color-accent-glow);transform:translateY(-3px)}.socials__icon{opacity:.85;width:1.15rem;height:1.15rem}.hero{flex-direction:column;grid-area:header;gap:1.4rem;display:flex}.hero__name{letter-spacing:-.04em;color:var(--color-accent);text-shadow:0 0 60px var(--color-accent-glow);width:fit-content;font-size:clamp(3rem,11vw,9rem);font-weight:800;line-height:.82}.hero__meta{letter-spacing:.26em;flex-wrap:wrap;align-items:center;gap:.6em;padding-left:.25rem;font-size:.8rem;display:flex}.hero__dot{color:var(--color-accent-soft)}.hero__socials{margin-top:.6rem}.bio{grid-area:bio;max-width:34rem}.bio__text{color:var(--color-text);font-size:1.08rem;line-height:1.75}.bio__text .accent{color:var(--color-accent);font-weight:500}.skills{flex-direction:column;grid-area:skills;gap:1.4rem;display:flex}.skills__list{flex-direction:column;gap:.2rem;list-style:none;display:flex}.skill{border-radius:var(--radius-sm);align-items:center;gap:.85rem;padding:.5rem .4rem;transition:background .2s;display:flex}.skill:hover{background:var(--color-surface)}.skill:hover .skill__icon{transform:translateY(-1px)}.skill__icon{width:1.7rem;height:1.7rem;transition:transform .2s var(--ease-out);flex-shrink:0;place-items:center;display:grid}.skill__icon img{object-fit:contain;width:100%;height:100%}.skill__name{color:var(--color-text-title);white-space:nowrap;font-weight:500}.skill__leader{opacity:.45;background-image:radial-gradient(circle, var(--color-border-strong) 1px, transparent 1.5px);background-position:50%;background-repeat:repeat-x;background-size:.7rem 2px;flex:1;align-self:center;height:2px}.skill__kind{flex-shrink:0}.stuff{flex-direction:column;grid-area:pages;gap:1.4rem;display:flex}.stuff__grid{grid-template-columns:repeat(2,1fr);gap:1.1rem;list-style:none;display:grid;container-type:inline-size}.card{--hue:200;border-radius:var(--radius);background:radial-gradient(140% 120% at 100% 0%, hsl(var(--hue), 45%, 22%, .55), transparent 60%), var(--color-surface);border:1px solid var(--color-border);transition:transform .4s var(--ease-out), border-color .3s, box-shadow .4s var(--ease-out);position:relative;overflow:hidden}.card__link{flex-direction:column;justify-content:flex-end;height:100%;min-height:9.5rem;padding:1.25rem;display:flex}.card__media{pointer-events:none;position:absolute;inset:0}.card__image{width:58%;filter:drop-shadow(0 12px 30px hsl(var(--hue), 60%, 10%, .7));transition:transform .5s var(--ease-out), filter .4s;position:absolute;top:-18%;right:-10%;-webkit-mask-image:radial-gradient(120% 120% at 75% 20%,#000 45%,#0000 78%);mask-image:radial-gradient(120% 120% at 75% 20%,#000 45%,#0000 78%)}.card__image--wide{width:82%;top:auto;bottom:-6%;right:-12%;-webkit-mask-image:linear-gradient(255deg,#000 55%,#0000 92%);mask-image:linear-gradient(255deg,#000 55%,#0000 92%)}.card__body{flex-direction:column;gap:.35rem;max-width:72%;display:flex;position:relative}.card__name{font-size:1.7rem;font-weight:700}.card__desc{color:var(--color-text-muted);font-size:.9rem;line-height:1.45}.card__sep{color:var(--color-text-faint)}.card__meta{white-space:nowrap}.card__arrow{color:hsl(var(--hue), 50%, 65%);opacity:0;transition:opacity .3s, transform .3s var(--ease-out);font-size:1.1rem;position:absolute;bottom:1.25rem;right:1.25rem;transform:translate(-6px)}.card:hover{border-color:hsl(var(--hue), 45%, 40%);box-shadow:0 18px 40px -22px hsl(var(--hue), 60%, 30%, .8);transform:translateY(-4px)}.card:hover .card__image{filter:drop-shadow(0 16px 36px hsl(var(--hue), 60%, 12%, .85));transform:scale(1.06)rotate(-2deg)}.card:hover .card__image--wide{transform:scale(1.05)}.card:hover .card__arrow{opacity:1;transform:translate(0)}@container (width<26rem){.card__link{min-height:8rem}}.aside{position:relative;overflow:hidden}.aside__figure{filter:saturate(1.05)contrast(1.02);-webkit-mask-image:linear-gradient(90deg,#0000,#000 30%);mask-image:linear-gradient(90deg,#0000,#000 30%)}.aside__signature{z-index:0;writing-mode:vertical-rl;font-family:var(--font-display);letter-spacing:.02em;color:var(--color-text);opacity:.06;-webkit-user-select:none;user-select:none;pointer-events:none;font-size:clamp(8rem,32vh,26rem);font-weight:800;line-height:.82;position:absolute;top:-2%;right:3%}.aside--hero{grid-area:aside;justify-content:flex-end;align-items:flex-end;max-width:48vw;display:flex}.aside--hero .aside__figure{z-index:1;object-fit:contain;object-position:bottom right;width:auto;max-width:none;height:100dvh;position:relative}.aside--animate .aside__signature{animation:1.4s .35s both aside-signature-in}.aside--animate.aside--hero .aside__figure{animation:figure-in 1.1s var(--ease-out) .1s both}.aside--ambient{z-index:-1;pointer-events:none;opacity:.14;justify-content:flex-end;align-items:flex-end;display:flex;position:fixed;inset:0}.aside--ambient .aside__figure{object-fit:contain;object-position:bottom right;filter:grayscale(.3)brightness(.9);width:auto;max-width:none;height:100dvh}@keyframes aside-signature-in{0%{opacity:0}to{opacity:.06}}.home{grid-template-columns:1fr auto;grid-template-areas:"content aside";min-height:100dvh;display:grid}.home__content{grid-area:content;grid-template-rows:auto 1fr;grid-template-areas:"header""main";align-content:start;gap:clamp(1.5rem,3.2vh,3rem);min-width:0;padding:clamp(1.5rem,3vw,3.25rem) clamp(1.5rem,3.5vw,4rem);display:grid}.home__main{grid-area:main;grid-template-columns:minmax(10rem,.8fr) 1.6fr;grid-template-areas:"bio bio""skills pages";align-content:start;gap:clamp(1.75rem,3vh,3rem) clamp(2rem,3.5vw,3.5rem);display:grid}.aside--hero{grid-area:aside}@media (width>=1100px){.home{height:100dvh;overflow:hidden}}@media (width<1100px){.home{grid-template-columns:1fr;grid-template-areas:"content"}.aside--hero{display:none}}@media (width<640px){.home__main{grid-template-columns:1fr;grid-template-areas:"bio""skills""pages"}.stuff__grid{grid-template-columns:1fr!important}}.home--animate .hero__name{animation:rise .85s var(--ease-out) backwards}.home--animate .hero__meta{animation:rise .7s var(--ease-out) .12s backwards}.home--animate .hero__socials{animation:rise .7s var(--ease-out) .2s backwards}.home--animate .bio{animation:rise .7s var(--ease-out) .3s backwards}.home--animate .skills>.label{animation:rise .6s var(--ease-out) .38s backwards}.home--animate .skills__list .skill:first-child{animation:rise .55s var(--ease-out) .47s backwards}.home--animate .skills__list .skill:nth-child(2){animation:rise .55s var(--ease-out) .52s backwards}.home--animate .skills__list .skill:nth-child(3){animation:rise .55s var(--ease-out) .57s backwards}.home--animate .skills__list .skill:nth-child(4){animation:rise .55s var(--ease-out) .62s backwards}.home--animate .skills__list .skill:nth-child(5){animation:rise .55s var(--ease-out) .67s backwards}.home--animate .skills__list .skill:nth-child(6){animation:rise .55s var(--ease-out) .72s backwards}.home--animate .stuff>.label{animation:rise .6s var(--ease-out) .46s backwards}.home--animate .stuff__grid .card:first-child{animation:rise .6s var(--ease-out) .63s backwards}.home--animate .stuff__grid .card:nth-child(2){animation:rise .6s var(--ease-out) .72s backwards}.home--animate .stuff__grid .card:nth-child(3){animation:rise .6s var(--ease-out) .81s backwards}
