:root{--color-primary: #ef7f1a;--color-primary-light: #f5a623;--color-primary-dark: #d4690f;--color-primary-rgb: 239, 127, 26;--color-bg: #0f1117;--color-bg-alt: #161822;--color-bg-card: #1c1f2e;--color-bg-card-hover: #232740;--color-text: #e4e6ef;--color-text-muted: #9399b0;--color-text-heading: #fff;--color-border: rgba(255, 255, 255, .08);--color-border-hover: rgba(239, 127, 26, .3);--color-overlay: rgba(15, 17, 23, .7);--font-family: "Inter Variable", "Inter", system-ui, -apple-system, sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 2rem;--font-size-4xl: 2.5rem;--font-size-5xl: 3.5rem;--line-height-tight: 1.2;--line-height-normal: 1.6;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--space-3xl: 4rem;--space-4xl: 6rem;--space-5xl: 8rem;--container-max: 1100px;--container-padding: var(--space-lg);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-xl: 24px;--radius-full: 9999px;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .2);--shadow-md: 0 4px 16px rgba(0, 0, 0, .3);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .4);--shadow-glow: 0 0 30px rgba(239, 127, 26, .15);--shadow-glow-strong: 0 0 50px rgba(239, 127, 26, .25);--transition-fast: .15s ease;--transition-base: .25s ease;--transition-slow: .4s ease}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility}body{font-family:var(--font-family);font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--color-text);background-color:var(--color-bg);min-height:100dvh}h1,h2,h3,h4{color:var(--color-text-heading);line-height:var(--line-height-tight);font-weight:var(--font-weight-bold);text-wrap:balance}p{text-wrap:pretty}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast);&:hover{color:var(--color-primary-light)}&:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-sm)}}img{max-width:100%;height:auto;display:block}.container{width:100%;max-width:var(--container-max);margin-inline:auto;padding-inline:var(--container-padding)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.skip-link{position:absolute;top:-100%;left:var(--space-md);z-index:999;padding:var(--space-sm) var(--space-md);background:var(--color-primary);color:var(--color-bg);font-weight:var(--font-weight-semibold);border-radius:var(--radius-sm);transition:top var(--transition-fast);&:focus{top:var(--space-md)}}.flex-center{display:flex;justify-content:center;align-items:center}.flex-between{display:flex;justify-content:space-between}.flex-between-center{display:flex;justify-content:space-between;align-items:center}.flex-around-center{display:flex;justify-content:space-around;align-items:center}.gap-1{gap:var(--space-sm)}.gap-2{gap:var(--space-md)}.gap-3{gap:var(--space-lg)}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-ext-wght-normal.BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-wght-normal.DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-ext-wght-normal.DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-wght-normal.CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-vietnamese-wght-normal.CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-ext-wght-normal.DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-wght-normal.Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.hero{position:relative;min-height:90dvh;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden}.hero__bg{position:absolute;inset:0;background:radial-gradient(ellipse at 30% 20%,rgba(var(--color-primary-rgb),.12) 0%,transparent 60%),radial-gradient(ellipse at 70% 80%,rgba(var(--color-primary-rgb),.06) 0%,transparent 50%),var(--color-bg);z-index:-1;&:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent,transparent 100px,rgba(255,255,255,.015) 100px,rgba(255,255,255,.015) 101px)}}.hero__content{padding-block:var(--space-4xl)}.hero__logo{margin-bottom:var(--space-2xl);display:flex;justify-content:center;img{width:100%;max-width:700px;height:auto;filter:drop-shadow(0 4px 20px rgba(var(--color-primary-rgb),.2))}}.hero__logo-link{display:block;transition:transform var(--transition-base)}.hero__logo-link:hover{transform:scale(1.02)}.hero__title{font-size:clamp(var(--font-size-3xl),5vw,var(--font-size-5xl));font-weight:var(--font-weight-bold);margin-bottom:var(--space-lg);letter-spacing:-.02em}.hero__highlight{color:var(--color-primary);position:relative;transition:color var(--transition-base),text-shadow var(--transition-base)}.hero__title-link{text-decoration:none;color:inherit;transition:color var(--transition-base),text-shadow var(--transition-base)}.hero__title-link:hover{opacity:.95;color:var(--color-primary-light);text-shadow:var(--shadow-glow)}.hero__title-link:hover .hero__highlight{color:var(--color-primary-light);text-shadow:var(--shadow-glow)}.hero__subtitle{font-size:clamp(var(--font-size-base),2vw,var(--font-size-xl));color:var(--color-text-muted);max-width:600px;margin-inline:auto;margin-bottom:var(--space-3xl)}.hero__actions{display:flex;flex-direction:column;align-items:center;gap:var(--space-md);@media(min-width:640px){flex-direction:row;justify-content:center}}.hero__cta{display:inline-flex;align-items:center;justify-content:center;width:100%;max-width:300px;gap:var(--space-sm);padding:var(--space-md) var(--space-xl);background:var(--color-primary);color:var(--color-bg);font-weight:var(--font-weight-semibold);font-size:var(--font-size-lg);border-radius:var(--radius-full);transition:background var(--transition-base),transform var(--transition-fast),box-shadow var(--transition-base);&:hover{background:var(--color-primary-light);color:var(--color-bg);transform:translateY(-2px);box-shadow:var(--shadow-glow-strong)}svg{animation:bounce 2s infinite}@media(min-width:640px){width:auto}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(4px)}}.about{padding-block:var(--space-5xl)}.about__grid{display:grid;grid-template-columns:1fr;gap:var(--space-3xl);@media(min-width:768px){grid-template-columns:1.5fr 1fr;align-items:start}}.about__text{p{margin-bottom:var(--space-lg);font-size:var(--font-size-lg);color:var(--color-text);&:last-child{margin-bottom:0}}strong{color:var(--color-text-heading)}}.about__image{background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md);aspect-ratio:3/4;img{width:100%;height:100%;object-fit:cover;display:block}}.about__link{color:var(--color-primary);text-decoration:none;font-weight:var(--font-weight-medium);position:relative;transition:color var(--transition-base);&:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background-color:var(--color-primary);transform:scaleX(0);transform-origin:right;transition:transform var(--transition-base)}&:hover{color:var(--color-primary-light);text-shadow:var(--shadow-glow);&:after{transform:scaleX(1);transform-origin:left}}}.section-title{font-size:clamp(var(--font-size-2xl),3vw,var(--font-size-4xl));margin-bottom:var(--space-2xl);position:relative;display:inline-block;&:after{content:"";position:absolute;bottom:-8px;left:0;width:60px;height:3px;background:var(--color-primary);border-radius:var(--radius-full)}}.portfolio{padding-block:var(--space-5xl);background:var(--color-bg-alt)}.portfolio__intro{font-size:var(--font-size-lg);color:var(--color-text-muted);max-width:700px;margin-bottom:var(--space-3xl)}.portfolio__grid{display:grid;grid-template-columns:1fr;gap:var(--space-xl);@media(min-width:640px){grid-template-columns:repeat(2,1fr)}@media(min-width:960px){grid-template-columns:repeat(3,1fr)}}.site-card{--card-accent: var(--color-primary);background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;transition:transform var(--transition-base),border-color var(--transition-base),box-shadow var(--transition-base);&:hover{transform:translateY(-4px);border-color:var(--card-accent);box-shadow:var(--shadow-lg),0 0 40px color-mix(in srgb,var(--card-accent) 15%,transparent)}}.site-card__image{aspect-ratio:16 / 9;overflow:hidden;background:var(--color-bg-alt);img{width:100%;height:100%;object-fit:cover;transition:transform var(--transition-slow)}.site-card:hover & img{transform:scale(1.03)}}.site-card__placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-sm);color:var(--color-text-muted);font-size:var(--font-size-sm);opacity:.9}.site-card__body{padding:var(--space-md)}.site-card__title{font-size:var(--font-size-xl);margin-bottom:var(--space-xs);a{color:var(--color-text-heading);transition:color var(--transition-fast);&:hover{color:var(--card-accent)}}}.site-card__url{font-size:var(--font-size-sm);color:var(--card-accent);font-weight:var(--font-weight-medium);margin-bottom:var(--space-md)}.site-card__description{font-size:var(--font-size-sm);color:var(--color-text-muted);line-height:var(--line-height-normal);margin-bottom:var(--space-lg);display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}.site-card__link{display:inline-flex;align-items:center;gap:var(--space-xs);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--card-accent);transition:gap var(--transition-fast),color var(--transition-fast);&:hover{gap:var(--space-sm);color:var(--color-text-heading)}}.footer{padding-block:var(--space-3xl);border-top:1px solid var(--color-border)}.footer__content{text-align:center}.footer__info{margin-bottom:var(--space-lg);font-size:var(--font-size-sm);color:var(--color-text-muted);line-height:1.8;a{color:var(--color-text-muted);&:hover{color:var(--color-primary)}}}.footer__company{font-weight:var(--font-weight-semibold);color:var(--color-text);font-size:var(--font-size-base);margin-bottom:var(--space-xs)}.footer__copy{font-size:var(--font-size-xs);color:var(--color-text-muted);opacity:.9}.contact{padding:var(--space-4xl) 0;background:var(--color-bg-alt);text-align:center}.contact__intro{max-width:640px;margin:0 auto var(--space-2xl);font-size:var(--font-size-lg);line-height:var(--line-height-normal);color:var(--color-text)}.contact__cards{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-xl);max-width:700px;margin:0 auto}.contact__card{display:flex;flex-direction:column;align-items:center;gap:var(--space-md);padding:var(--space-2xl) var(--space-xl);background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);text-decoration:none;color:var(--color-text);transition:transform var(--transition-base),border-color var(--transition-base),box-shadow var(--transition-base);&:hover{transform:translateY(-4px);border-color:var(--color-border-hover);box-shadow:var(--shadow-glow)}}.contact__icon{width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:rgba(var(--color-primary-rgb),.1);border-radius:var(--radius-full);color:var(--color-primary);& svg{width:28px;height:28px}}.contact__card-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-heading);margin:0}.contact__card-desc{font-size:var(--font-size-sm);color:var(--color-text-muted);line-height:var(--line-height-normal);margin:0}.contact__card-label{display:inline-flex;align-items:center;gap:.375rem;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-primary);margin-top:auto;& svg{width:16px;height:16px;transition:transform var(--transition-fast)}.contact__card:hover & svg{transform:translate(3px)}}.contact__company,.contact__location{max-width:700px;margin:var(--space-3xl) auto 0;text-align:left}.contact__subtitle{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-heading);margin:0 0 var(--space-lg);padding-bottom:var(--space-sm);border-bottom:2px solid var(--color-border)}.contact__details{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md) var(--space-2xl);margin:0}.contact__detail{display:flex;flex-direction:column;gap:.125rem;& dt{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}& dd{margin:0;font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text)}& a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast);&:hover{color:var(--color-primary-light);text-decoration:underline}}}.contact__location-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-lg);padding:var(--space-lg);background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md)}.contact__location-info{display:flex;align-items:center;gap:var(--space-md);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text)}.contact__location-pin{width:22px;height:22px;flex-shrink:0;color:var(--color-primary)}.contact__directions-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;background:var(--color-primary);color:var(--color-bg);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);border-radius:var(--radius-full);text-decoration:none;white-space:nowrap;transition:background var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast);& svg{width:16px;height:16px}&:hover{color:var(--color-bg);background:var(--color-primary-dark);transform:translateY(-2px);box-shadow:0 4px 14px rgba(var(--color-primary-rgb),.35)}}@media(max-width:600px){.contact__cards,.contact__details{grid-template-columns:1fr}.contact__location-row{flex-direction:column;text-align:center}}.nav-up[data-astro-cid-73562bqz]{position:fixed;bottom:var(--space-xl);right:var(--space-xl);z-index:99;display:flex;align-items:center;justify-content:center;width:3rem;height:3rem;background-color:var(--color-primary);color:var(--color-bg);border:none;border-radius:var(--radius-full);box-shadow:var(--shadow-lg);cursor:pointer;opacity:0;visibility:hidden;transform:translateY(1rem);transition:opacity var(--transition-base),visibility var(--transition-base),transform var(--transition-base),background-color var(--transition-fast)}.nav-up[data-astro-cid-73562bqz]:hover{background-color:var(--color-primary-light)}.nav-up[data-astro-cid-73562bqz].visible{opacity:1;visibility:visible;transform:translateY(0)}@media(max-width:768px){.nav-up[data-astro-cid-73562bqz]{bottom:var(--space-md);right:var(--space-md);width:2.5rem;height:2.5rem}}
