@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-wght-normal-BgDaEnEv.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-ext-wght-normal-I4S5GZfc.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-wght-normal-BmXc_FBt.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-symbols2-wght-normal-GZpp1pK2.woff2)format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-vietnamese-wght-normal-D8KDMBhC.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-ext-wght-normal-DrnZ1wKl.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-wght-normal-B_7UjwxQ.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.skills-showcase{gap:0;display:grid}.skills-group-card{border-top:1px solid var(--border-color);gap:1.25rem;padding-block:2rem;display:grid}.skills-group-card:first-child{border-top:none;padding-top:0}.skills-group-header{max-width:40ch}.skills-group-title{font-size:var(--fs-h3);font-weight:var(--fw-semibold);color:var(--title-color);margin-bottom:.35rem}.skills-group-description{color:var(--text-color-light);font-size:var(--fs-small);line-height:1.6}.skills-group-grid{flex-wrap:wrap;align-content:flex-start;gap:.7rem;display:flex}.skill-chip{--skill-color:var(--accent);--skill-color-dark:var(--skill-color);border-radius:var(--radius-pill);background:var(--container-color);border:1px solid var(--border-color);transition:transform var(--dur) var(--ease), border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);align-items:center;gap:.6rem;padding:.6rem .95rem .6rem .65rem;display:inline-flex}.skill-chip:hover{border-color:color-mix(in srgb, var(--skill-color) 45%, var(--border-color));box-shadow:var(--shadow-sm);transform:translateY(-2px)}.skill-chip-icon{border-radius:var(--radius-pill);background:var(--surface-2);width:2rem;height:2rem;color:var(--text-color-light);filter:grayscale()saturate(.2);transition:color var(--dur) var(--ease), background-color var(--dur) var(--ease), filter var(--dur) var(--ease), transform var(--dur) var(--ease);flex-shrink:0;justify-content:center;align-items:center;font-size:1.1rem;display:inline-flex}.skill-chip:hover .skill-chip-icon{color:var(--skill-color);background:color-mix(in srgb, var(--skill-color) 14%, transparent);filter:grayscale(0)saturate();transform:scale(1.06)}body.dark-theme .skill-chip:hover .skill-chip-icon{color:var(--skill-color-dark)}.skill-chip-name{color:var(--title-color);font-size:var(--fs-small);font-weight:var(--fw-medium);white-space:nowrap}@media screen and (width>=768px){.skills-group-card{grid-template-columns:minmax(0,18rem) 1fr;align-items:start;gap:2.5rem;padding-block:2.5rem}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--header-height:4.25rem;--hue:34;--accent:#f8a312;--accent-strong:#da7510;--accent-ink:#b05611;--accent-soft:#fdefd8;--on-accent:#241a0f;--first-color:var(--accent);--first-color-second:#191714;--first-color-alt:var(--accent-strong);--first-color-lighter:#f8c977;--body-color:#faf8f5;--container-color:#fefdfb;--surface-2:#f4f1ec;--title-color:#231e1a;--text-color:#5b544d;--text-color-light:#827a73;--input-color:#f6f3ef;--border-color:#e3dfd8;--border-strong:#cfc8bf;--scroll-bar-color:#eae6e1;--scroll-thumb-color:#c9c3ba;--body-font:"Geist Variable", ui-sans-serif, system-ui, -apple-system, sans-serif;--title-font:"Geist Variable", ui-sans-serif, system-ui, sans-serif;--mono-font:"Geist Mono Variable", ui-monospace, "SF Mono", Menlo, monospace;--fs-display:clamp(2.75rem, 1.6rem + 5.4vw, 4.75rem);--fs-h1:clamp(2rem, 1.3rem + 2.8vw, 3rem);--fs-h2:clamp(1.6rem, 1.2rem + 1.6vw, 2.25rem);--fs-h3:1.25rem;--fs-lead:clamp(1.05rem, 1rem + .4vw, 1.2rem);--fs-base:1rem;--fs-small:.875rem;--fs-smaller:.78rem;--fs-eyebrow:.75rem;--big-font-size:var(--fs-display);--h1-font-size:var(--fs-h1);--h2-font-size:var(--fs-h2);--h3-font-size:var(--fs-h3);--normal-font-size:var(--fs-base);--small-font-size:var(--fs-small);--smaller-font-size:var(--fs-smaller);--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--fw-black:800;--font-medium:500;--font-semi-bold:600;--radius-sm:.6rem;--radius:1rem;--radius-lg:1.5rem;--radius-xl:2rem;--radius-pill:999px;--shadow-sm:0 1px 2px #392e220f, 0 2px 6px #392e220a;--shadow:0 10px 30px #2d241a17;--shadow-lg:0 28px 70px #271f1724;--ease:cubic-bezier(.22, 1, .36, 1);--ease-out:cubic-bezier(.16, 1, .3, 1);--dur:.4s;--container-w:1160px;--prose-w:62ch;--mb-0-25:.25rem;--mb-0-5:.5rem;--mb-0-75:.75rem;--mb-1:1rem;--mb-1-5:1.5rem;--mb-2:2rem;--mb-2-5:2.5rem;--mb-3:3rem;--z-tooltip:10;--z-fixed:100;--z-modal:1000}body.dark-theme{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--accent:#fbb323;--accent-strong:#f7bc45;--accent-ink:#f8bf4f;--accent-soft:#40341c;--on-accent:#1d140c;--first-color:var(--accent);--first-color-second:#110f0e;--first-color-alt:var(--accent-strong);--first-color-lighter:#f9cd76;--body-color:#161413;--container-color:#211f1c;--surface-2:#2c2926;--title-color:#f7f6f2;--text-color:#c2bbb3;--text-color-light:#989086;--input-color:#292624;--border-color:#3d3934;--border-strong:#58524b;--scroll-bar-color:#2c2926;--scroll-thumb-color:#514d48;--shadow-sm:0 1px 2px #0006;--shadow:0 12px 34px #00000075;--shadow-lg:0 30px 70px #0000008c}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:6rem}body{margin:0 0 var(--header-height) 0;font-family:var(--body-font);font-size:var(--fs-base);line-height:1.65;font-weight:var(--fw-regular);background-color:var(--body-color);color:var(--text-color);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;transition:background-color .5s var(--ease), color .5s var(--ease)}h1,h2,h3,h4{color:var(--title-color);font-family:var(--title-font);font-weight:var(--fw-bold);letter-spacing:-.02em;text-wrap:balance;line-height:1.1}p{text-wrap:pretty}ul{list-style:none}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto;display:block}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}::selection{background:var(--accent);color:var(--on-accent)}:focus-visible{outline:2px solid var(--accent-ink);outline-offset:3px;border-radius:3px}.skip-link{z-index:var(--z-modal);background:var(--title-color);color:var(--body-color);border-radius:var(--radius-pill);font-size:var(--fs-small);font-weight:var(--fw-medium);transition:translate .25s var(--ease);padding:.65rem 1.1rem;position:fixed;top:.75rem;left:50%;translate:-50% -160%}.skip-link:focus-visible{translate:-50%}.reveal-ready .reveal{opacity:0;transition:opacity .7s var(--ease-out), transform .7s var(--ease-out);transition-delay:var(--rd,0s);will-change:transform, opacity;transform:translateY(26px)}.reveal-ready .reveal.is-visible{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.reveal{opacity:1;transform:none}}.container{width:100%;max-width:var(--container-w);margin-inline:auto;padding-inline:1.5rem}.grid{gap:1.5rem;display:grid}.section{padding-block:5rem 4.5rem}.section__header{width:100%;max-width:var(--container-w);margin-inline:auto;margin-bottom:3rem;padding-inline:1.5rem}.section__title{font-size:var(--fs-h2);color:var(--title-color);text-align:left;max-width:24ch}.section__subtitle{font-family:var(--mono-font);font-size:var(--fs-eyebrow);letter-spacing:.16em;text-transform:uppercase;color:var(--accent-ink);font-weight:var(--fw-medium);text-align:left;margin-bottom:.9rem;display:block}.eyebrow{font-family:var(--mono-font);font-size:var(--fs-eyebrow);letter-spacing:.16em;text-transform:uppercase;color:var(--accent-ink);font-weight:var(--fw-medium);align-items:center;gap:.55rem;display:inline-flex}.button{background-color:var(--accent);color:var(--on-accent);font-family:var(--body-font);font-weight:var(--fw-semibold);border-radius:var(--radius-pill);white-space:nowrap;box-shadow:inset 0 1px 0 #ffffff59, var(--shadow-sm);transition:transform var(--dur) var(--ease), background-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);border:1px solid #0000;align-items:center;gap:.55rem;padding:.9rem 1.4rem;font-size:.95rem;line-height:1;display:inline-flex}.button:hover{background-color:var(--accent-strong);box-shadow:var(--shadow);transform:translateY(-2px)}.button:active{transform:translateY(0)scale(.985)}.button__icon{transition:transform var(--dur) var(--ease);font-size:1.1rem;display:inline-flex}.button:hover .button__icon{transform:translate(3px)}.button--flex{align-items:center;display:inline-flex}.button--small{padding:.72rem 1.1rem;font-size:.875rem}.button--ghost,.portfolio__button--ghost{color:var(--title-color);border:1px solid var(--border-strong);box-shadow:none;background-color:#0000}.button--ghost:hover,.portfolio__button--ghost:hover{background-color:var(--surface-2);border-color:var(--title-color);transform:translateY(-2px)}.button--white{color:#231e1a;box-shadow:var(--shadow-sm);background-color:#faf8f5}.button--white:hover{background-color:var(--accent);color:var(--on-accent)}.header{width:100%;z-index:var(--z-fixed);padding-bottom:env(safe-area-inset-bottom,0);position:fixed;bottom:0;left:0}.nav{max-width:var(--container-w);height:var(--header-height);background:color-mix(in srgb, var(--body-color) 82%, transparent);-webkit-backdrop-filter:blur(16px)saturate(150%);border-top:1px solid var(--border-color);justify-content:space-between;align-items:center;margin-inline:auto;padding-inline:1.25rem;display:flex;position:relative}.nav__logo-link{align-items:center;display:inline-flex}.nav__logo{width:2.7rem;height:auto;transition:transform var(--dur) var(--ease);display:block}.nav__logo-link:hover .nav__logo{transform:rotate(-4deg)scale(1.06)}.nav__btns{align-items:center;gap:.35rem;display:flex}.change-theme{border-radius:var(--radius-pill);width:2.4rem;height:2.4rem;color:var(--title-color);transition:background-color var(--dur) var(--ease), color var(--dur) var(--ease);justify-content:center;align-items:center;font-size:1.2rem;display:inline-flex}.change-theme:hover{color:var(--accent-ink);background:var(--surface-2)}.nav__toggle{border-radius:var(--radius-pill);width:2.4rem;height:2.4rem;color:var(--title-color);transition:background-color var(--dur) var(--ease), color var(--dur) var(--ease);justify-content:center;align-items:center;font-size:1.25rem;display:inline-flex}.nav__toggle:hover{color:var(--accent-ink);background:var(--surface-2)}.nav__list{grid-template-columns:repeat(5,1fr);gap:.5rem;display:grid}.nav__link{color:var(--text-color);font-size:var(--fs-smaller);font-weight:var(--fw-medium);border-radius:var(--radius-sm);transition:color var(--dur) var(--ease), background-color var(--dur) var(--ease);flex-direction:column;align-items:center;gap:.25rem;padding:.4rem .6rem;display:flex}.nav__link:hover{color:var(--title-color)}.nav__icon{font-size:1.3rem}.nav__link.active-link,.active-link{color:var(--accent-ink)}.nav__close{cursor:pointer;color:var(--accent-ink);font-size:1.6rem;position:absolute;bottom:.9rem;right:1.5rem}@media screen and (width<=767px){.nav__menu{background:color-mix(in srgb, var(--container-color) 88%, transparent);-webkit-backdrop-filter:blur(22px)saturate(160%);border:1px solid var(--border-color);box-shadow:var(--shadow-lg);border-radius:var(--radius-lg);transition:bottom .45s var(--ease);z-index:var(--z-fixed);padding:2rem 1.5rem 3.25rem;position:fixed;bottom:-120%;left:1rem;right:1rem}.show-menu{bottom:calc(var(--header-height) + env(safe-area-inset-bottom,0) + .75rem)}}.home{padding-top:6.5rem}.home__container{gap:2rem}.home__content{grid-template-columns:max-content 1fr;align-items:center;gap:2.5rem 2rem;display:grid}.home__social{grid-template-columns:max-content;align-content:flex-start;gap:1.1rem;padding-top:.5rem;display:grid}.home__social:after{content:"";background:var(--border-strong);justify-self:center;width:1px;height:2.5rem;margin-top:.25rem}.home__social-icon{color:var(--text-color-light);transition:color var(--dur) var(--ease), transform var(--dur) var(--ease);font-size:1.25rem}.home__social-icon:hover{color:var(--accent-ink);transform:translateY(-2px)}.home__data{grid-column:2/3}.home__eyebrow{font-family:var(--mono-font);font-size:var(--fs-eyebrow);letter-spacing:.18em;text-transform:uppercase;color:var(--accent-ink);font-weight:var(--fw-medium);margin-bottom:1.1rem;display:inline-block}.home__title{font-size:clamp(2.5rem,5.5vw,4rem);font-weight:var(--fw-black);letter-spacing:-.03em;margin-bottom:.6rem;line-height:1}.home__subtitle{font-size:var(--fs-lead);color:var(--title-color);font-weight:var(--fw-semibold);min-height:1.6em;margin-bottom:1.2rem}.home__subtitle .home__subtitle-accent{color:var(--accent-ink)}.home__description{color:var(--text-color);max-width:46ch;font-size:var(--fs-base);margin-bottom:2rem}.home__actions{flex-wrap:wrap;gap:.85rem;display:flex}.home__img{justify-self:center}.home__portrait{aspect-ratio:4/5;border-radius:var(--radius-xl);isolation:isolate;width:clamp(220px,60vw,340px);position:relative}.home__portrait:before{content:"";border-radius:var(--radius-xl);background:var(--accent);z-index:-1;transition:translate var(--dur) var(--ease);position:absolute;inset:0;translate:1.1rem 1.1rem}.home__portrait:hover:before{translate:.6rem .6rem}.home__portrait-inner{border-radius:var(--radius-xl);border:1px solid var(--border-color);background:linear-gradient(160deg, var(--surface-2), var(--container-color));height:100%;box-shadow:var(--shadow-lg);position:relative;overflow:hidden}.home__portrait-inner img{object-fit:cover;object-position:top center;width:100%;height:100%}.about__container{align-items:center;gap:3rem}.about__img{border-radius:var(--radius-lg);border:1px solid var(--border-color);width:100%;max-width:360px;box-shadow:var(--shadow);justify-self:center}.about__description{color:var(--text-color);font-size:var(--fs-lead);max-width:54ch;margin-bottom:2rem}.about__info{grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:2rem;display:grid}.about__info>div{border-left:2px solid var(--accent);background:var(--surface-2);border-radius:0 var(--radius-sm) var(--radius-sm) 0;padding:1rem 1.1rem}.about__info-title{font-family:var(--mono-font);font-size:1.7rem;font-weight:var(--fw-semibold);color:var(--title-color);font-variant-numeric:tabular-nums;letter-spacing:-.02em;display:block}.about__info-name{font-size:var(--fs-smaller);color:var(--text-color-light);margin-top:.15rem;display:block}.about__buttons{display:flex}.skills__lead{color:var(--text-color);font-size:var(--fs-lead);max-width:52ch;margin-bottom:2.75rem}.qualification__container{margin-top:1rem}.qualification__tabs{border-radius:var(--radius-pill);background:var(--surface-2);border:1px solid var(--border-color);gap:.35rem;margin-bottom:2.75rem;padding:.35rem;display:inline-flex}.qualification__button{font-size:var(--fs-small);font-weight:var(--fw-medium);color:var(--text-color);cursor:pointer;border-radius:var(--radius-pill);transition:background-color var(--dur) var(--ease), color var(--dur) var(--ease);align-items:center;gap:.4rem;padding:.6rem 1.15rem;display:inline-flex}.qualification__button:hover{color:var(--title-color)}.qualification__icon{font-size:1.15rem}.qualification__button.qualification__active{color:var(--on-accent);background:var(--accent);box-shadow:var(--shadow-sm)}.qualification__content{gap:1.25rem;display:grid}.qualification__data{grid-template-columns:auto 1fr;column-gap:1.25rem;display:grid}.qualification__marker{flex-direction:column;align-items:center;padding-top:.4rem;display:flex}.qualification__rounder{background:var(--accent);width:12px;height:12px;box-shadow:0 0 0 5px var(--accent-soft);border-radius:50%;flex-shrink:0}.qualification__line{background:linear-gradient(var(--border-strong), transparent);flex:1;width:2px;margin-top:.4rem}.qualification__card{padding:0 0 .5rem}.qualification__title{font-size:var(--fs-h3);font-weight:var(--fw-semibold);line-height:1.3}.qualification__subtitle{font-size:var(--fs-small);color:var(--accent-ink);font-weight:var(--fw-medium);margin-top:.2rem;margin-bottom:.7rem;display:inline-block}.qualification__meta{flex-wrap:wrap;gap:.35rem 1.25rem;margin-bottom:.75rem;display:flex}.qualification__calendar{font-family:var(--mono-font);font-size:var(--fs-smaller);color:var(--text-color-light);align-items:center;gap:.4rem;display:inline-flex}.qualification__bullets{color:var(--text-color);gap:.4rem;padding-left:1.05rem;list-style:outside;display:grid}.qualification__bullets li{line-height:1.6}.portfolio__grid{gap:1.5rem;display:grid}.portfolio__feature,.portfolio__card{border:1px solid var(--border-color);border-radius:var(--radius-lg);background:var(--container-color);box-shadow:var(--shadow-sm);transition:box-shadow var(--dur) var(--ease), border-color var(--dur) var(--ease);position:relative;overflow:hidden}.portfolio__feature:hover,.portfolio__card:hover{box-shadow:var(--shadow-lg);border-color:var(--border-strong)}.portfolio__spotlight{z-index:3;border-radius:inherit;pointer-events:none;opacity:0;position:absolute;inset:0}.portfolio__media{background:var(--surface-2);flex-direction:column;min-width:0;display:flex}.portfolio__frame{background:color-mix(in srgb, var(--surface-2) 55%, var(--container-color));border-bottom:1px solid var(--border-color);flex-shrink:0;align-items:center;gap:.75rem;height:2.5rem;padding-inline:.9rem;display:flex}.portfolio__dots{flex-shrink:0;gap:.4rem;display:inline-flex}.portfolio__dots i{background:var(--border-strong);border-radius:50%;width:.55rem;height:.55rem}.portfolio__url{min-width:0;font-family:var(--mono-font);color:var(--text-color-light);white-space:nowrap;text-overflow:ellipsis;background:var(--body-color);border:1px solid var(--border-color);border-radius:var(--radius-pill);flex:1;padding:.22rem .7rem;font-size:.72rem;overflow:hidden}.portfolio__shot{aspect-ratio:16/10;background:var(--surface-2);display:block;overflow:hidden}.portfolio__img{object-fit:cover;object-position:top center;width:100%;height:100%}.portfolio__body{flex-direction:column;gap:.75rem;padding:1.6rem;display:flex}.portfolio__title{font-size:var(--fs-h3);font-weight:var(--fw-semibold)}.portfolio__description{color:var(--text-color);font-size:var(--fs-small)}.portfolio__stack{flex-wrap:wrap;gap:.4rem;margin-top:.15rem;display:flex}.portfolio__chip{font-family:var(--mono-font);letter-spacing:.02em;color:var(--text-color-light);border:1px solid var(--border-color);border-radius:var(--radius-pill);padding:.28rem .65rem;font-size:.7rem}.portfolio__actions{flex-wrap:wrap;gap:.7rem;margin-top:.5rem;display:flex}.portfolio__cards{gap:1.5rem;display:grid}@media screen and (width>=768px){.portfolio__feature{grid-template-columns:1.15fr .85fr;align-items:stretch;display:grid}.portfolio__feature .portfolio__media{border-right:1px solid var(--border-color)}.portfolio__feature .portfolio__shot{aspect-ratio:auto;flex:1;min-height:340px}.portfolio__feature .portfolio__body{justify-content:center;gap:.95rem;padding:2.75rem}.portfolio__feature .portfolio__title{font-size:var(--fs-h2)}.portfolio__feature .portfolio__description{font-size:var(--fs-base)}.portfolio__cards{grid-template-columns:repeat(2,1fr)}}.project{padding-block:1rem 5rem}.project__bg{background:var(--first-color-second);border-radius:var(--radius-xl);max-width:var(--container-w);margin-inline:auto;position:relative;overflow:hidden}.project__bg:after{content:"";background:radial-gradient(120% 120% at 85% 15%, color-mix(in srgb, var(--accent) 22%, transparent), transparent 55%);pointer-events:none;position:absolute;inset:0}.project__container{z-index:1;place-items:start;gap:1.25rem;padding:3.25rem 2rem;display:grid;position:relative}.project__title{font-size:var(--fs-h2);color:#fff;max-width:20ch}.project__description{color:#dad4c8;max-width:52ch}.project__icon{font-size:1.1rem}.contact__container{grid-template-columns:1fr;gap:3rem;margin-top:1rem}.contact__information{align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.contact__icon{border-radius:var(--radius);width:3rem;height:3rem;color:var(--accent-ink);background:var(--surface-2);border:1px solid var(--border-color);flex-shrink:0;justify-content:center;align-items:center;font-size:1.35rem;display:inline-flex}.contact__title{font-size:var(--fs-base);font-weight:var(--fw-semibold);color:var(--title-color)}.contact__subtitle,#email{font-size:var(--fs-small);color:var(--text-color-light)}#email:hover{color:var(--accent-ink)}.contact__form{gap:1rem;width:100%;display:grid}.contact__inputs{gap:1rem;display:grid}.contact__content{gap:.4rem;display:grid}.contact__label{font-size:var(--fs-smaller);font-weight:var(--fw-medium);color:var(--title-color);letter-spacing:.01em}.contact__input{background-color:var(--input-color);border:1px solid var(--border-color);border-radius:var(--radius-sm);width:100%;font-size:var(--fs-base);font-family:var(--body-font);color:var(--title-color);transition:border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);outline:none;padding:.85rem .95rem}.contact__input::placeholder{color:var(--text-color-light)}.contact__input:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}textarea.contact__input{resize:vertical;min-height:8rem}.footer{padding:4rem 0 2.5rem}.footer__bg{background:var(--first-color-second);border-radius:var(--radius-xl);max-width:var(--container-w);margin-inline:auto;padding:3rem 2rem 2.25rem;position:relative;overflow:hidden}.footer__container{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.75rem 3rem;display:flex}.footer__title{font-size:var(--fs-h2);color:#fff;margin-bottom:.35rem}.footer__subtitle{font-size:var(--fs-small);color:#d1cabd}.footer__links{flex-flow:wrap;gap:1rem 1.9rem;display:flex}.footer__link{color:#d9d4c9;width:max-content;transition:color var(--dur) var(--ease)}.footer__link:hover{color:var(--accent)}.footer__socials{gap:.5rem;display:flex}.footer__social{border-radius:var(--radius-pill);color:#fff;width:2.6rem;height:2.6rem;transition:background-color var(--dur) var(--ease), transform var(--dur) var(--ease);background:#ffffff0f;border:1px solid #ffffff1f;justify-content:center;align-items:center;font-size:1.25rem;display:inline-flex}.footer__social:hover{background:var(--accent);color:var(--on-accent);transform:translateY(-2px)}.footer__copy{font-size:var(--fs-smaller);color:#aaa292;border-top:1px solid #ffffff1a;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1.5rem;margin-top:2.75rem;padding-top:1.5rem;display:flex}.footer__built{font-family:var(--mono-font);color:#918978;font-size:.72rem}.scrollup{background-color:var(--accent);width:2.6rem;height:2.6rem;color:var(--on-accent);border-radius:var(--radius);box-shadow:var(--shadow);z-index:var(--z-tooltip);opacity:0;transition:bottom .4s var(--ease), opacity .4s var(--ease), transform var(--dur) var(--ease);justify-content:center;align-items:center;display:inline-flex;position:fixed;bottom:-30%;right:1.25rem}.scrollup:hover{background-color:var(--accent-strong);transform:translateY(-3px)}.scrollup__icon{font-size:1.35rem}.show-scroll{opacity:1;bottom:calc(var(--header-height) + 1.25rem)}@media screen and (width>=768px){.show-scroll{bottom:2rem}}::-webkit-scrollbar{background-color:var(--scroll-bar-color);width:.6rem}::-webkit-scrollbar-thumb{background-color:var(--scroll-thumb-color);border-radius:.5rem}::-webkit-scrollbar-thumb:hover{background-color:var(--text-color-light)}.project-page{padding-top:7.5rem;padding-bottom:5rem}.project-page__back{font-size:var(--fs-small);color:var(--text-color-light);transition:color var(--dur) var(--ease);align-items:center;gap:.4rem;margin-bottom:2rem;display:inline-flex}.project-page__back:hover{color:var(--accent-ink)}.project-page__hero{align-items:center;gap:2.5rem;margin-bottom:3.5rem;display:grid}.project-page__eyebrow{font-family:var(--mono-font);color:var(--accent-ink);font-size:var(--fs-eyebrow);letter-spacing:.16em;text-transform:uppercase;font-weight:var(--fw-medium);margin-bottom:.9rem}.project-page__copy h1{font-size:var(--fs-h1);margin-bottom:.5rem}.project-page__summary{color:var(--text-color);font-size:var(--fs-lead);max-width:54ch;margin:1rem 0 1.75rem}.project-page__cover,.project-page__image{border-radius:var(--radius-lg);border:1px solid var(--border-color);width:100%;box-shadow:var(--shadow)}.project-page__links{flex-wrap:wrap;gap:.7rem;display:flex}.project-page__grid{gap:1.5rem;margin-bottom:3.5rem;display:grid}.project-page__card{background:var(--container-color);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:1.75rem}.project-page__card h2{font-size:var(--fs-h3);margin-bottom:1rem}.project-page__list{color:var(--text-color);gap:.7rem;padding-left:1.1rem;list-style:outside;display:grid}.project-page__list li{line-height:1.6}.project-page__tags{flex-wrap:wrap;gap:.6rem;display:flex}.project-page__tag{font-family:var(--mono-font);font-size:var(--fs-smaller);background:var(--surface-2);border:1px solid var(--border-color);border-radius:var(--radius-pill);color:var(--title-color);padding:.4rem .85rem}.project-page__gallery{margin-bottom:3.5rem}.project-page__gallery h2,.project-page__related h2{font-size:var(--fs-h3);margin-bottom:1.5rem}.project-page__image-grid{grid-template-columns:1fr;gap:1.5rem;display:grid}.project-page__figure figcaption{font-size:var(--fs-smaller);color:var(--text-color-light);margin-top:.65rem}.project-page__related-grid{grid-template-columns:1fr;gap:1.5rem;display:grid}.project-page__related-card{color:inherit;gap:.75rem;display:grid}.project-page__related-card img{border-radius:var(--radius);border:1px solid var(--border-color);aspect-ratio:16/10;object-fit:cover;transition:transform var(--dur) var(--ease)}.project-page__related-card:hover img{transform:translateY(-3px)}.project-page__related-card span{font-weight:var(--fw-medium);color:var(--title-color)}.project-page__empty{text-align:center;place-content:center;gap:1rem;min-height:60vh;display:grid}.project-page__empty h1{font-size:var(--fs-h1)}.error-page{text-align:center;place-content:center;gap:1rem;min-height:100dvh;padding:2rem;display:grid}.error-page__code{font-family:var(--mono-font);font-size:clamp(4rem,18vw,9rem);font-weight:var(--fw-bold);color:var(--accent);letter-spacing:-.04em;line-height:1}.error-page h1{font-size:var(--fs-h2)}.error-page p{color:var(--text-color);max-width:40ch;margin-inline:auto}.error-page .button{justify-self:center;margin-top:.5rem}@media screen and (width<=767px){.home__content{grid-template-columns:1fr;row-gap:2rem}.home__data{order:0;grid-column:1/-1}.home__img{order:1}.home__social{order:2;grid-column:1/-1;grid-template-columns:repeat(3,max-content);justify-content:start;gap:1.5rem}.home__social:after{display:none}.section__title{font-size:var(--fs-h2)}.nav__link{padding:.3rem .35rem;font-size:.66rem}.nav__icon{font-size:1.3rem}}@media screen and (width>=768px){body{margin:0}.section{padding-block:7rem 6rem}.header{padding-top:1rem;padding-inline:1rem;top:0;bottom:auto}.nav{border:1px solid var(--border-color);border-radius:var(--radius-pill);height:auto;box-shadow:var(--shadow-sm);padding:.6rem .7rem .6rem 1.15rem}.nav__toggle,.nav__close,.nav__icon{display:none}.nav__menu{margin-left:auto;margin-right:.5rem}.nav__list{grid-template-columns:none;align-items:center;gap:.35rem;display:flex}.nav__link{font-size:var(--fs-small);flex-direction:row;padding:.5rem .85rem}.nav__link:hover,.nav__link.active-link{background:var(--surface-2)}.home{padding-top:9rem}.home__content{grid-template-columns:max-content 1.2fr .8fr;align-items:center;column-gap:3rem}.home__data{grid-column:2/3}.home__img{grid-column:3/4}.about__container{grid-template-columns:.85fr 1.15fr}.contact__container{grid-template-columns:.85fr 1.15fr;align-items:start}.contact__inputs{grid-template-columns:repeat(2,1fr)}.project__container{padding:4rem 3.5rem}.footer__links{gap:1rem 2.25rem}.project-page__hero{grid-template-columns:1fr 1fr}.project-page__grid{grid-template-columns:1.4fr 1fr}.project-page__image-grid{grid-template-columns:repeat(2,1fr)}.project-page__related-grid{grid-template-columns:repeat(3,1fr)}}@media screen and (width>=1024px){.project-page__image-grid{grid-template-columns:repeat(3,1fr)}.home__title{white-space:nowrap}}
