@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/inter-cyrillic-ext-400-normal.BQZuk6qB.woff2) format("woff2"),url(/_astro/inter-cyrillic-ext-400-normal.DQukG94-.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/inter-cyrillic-400-normal.obahsSVq.woff2) format("woff2"),url(/_astro/inter-cyrillic-400-normal.HOLc17fK.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/inter-greek-ext-400-normal.DGGRlc-M.woff2) format("woff2"),url(/_astro/inter-greek-ext-400-normal.KugGGMne.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/inter-greek-400-normal.B4URO6DV.woff2) format("woff2"),url(/_astro/inter-greek-400-normal.q2sYcFCs.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/inter-vietnamese-400-normal.DMkecbls.woff2) format("woff2"),url(/_astro/inter-vietnamese-400-normal.Bbgyi5SW.woff) format("woff");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;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/inter-latin-ext-400-normal.C1nco2VV.woff2) format("woff2"),url(/_astro/inter-latin-ext-400-normal.77YHD8bZ.woff) format("woff");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;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/inter-latin-400-normal.C38fXH4l.woff2) format("woff2"),url(/_astro/inter-latin-400-normal.CyCys3Eg.woff) format("woff");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}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/inter-cyrillic-ext-500-normal.B0yAr1jD.woff2) format("woff2"),url(/_astro/inter-cyrillic-ext-500-normal.BmqWE9Dz.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/inter-cyrillic-500-normal.BasfLYem.woff2) format("woff2"),url(/_astro/inter-cyrillic-500-normal.CxZf_p3X.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/inter-greek-ext-500-normal.C4iEst2y.woff2) format("woff2"),url(/_astro/inter-greek-ext-500-normal.2j5mBUwD.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/inter-greek-500-normal.BIZE56-Y.woff2) format("woff2"),url(/_astro/inter-greek-500-normal.Xzm54t5V.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/inter-vietnamese-500-normal.DOriooB6.woff2) format("woff2"),url(/_astro/inter-vietnamese-500-normal.mJboJaSs.woff) format("woff");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;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/inter-latin-ext-500-normal.CV4jyFjo.woff2) format("woff2"),url(/_astro/inter-latin-ext-500-normal.BxGbmqWO.woff) format("woff");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;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/inter-latin-500-normal.Cerq10X2.woff2) format("woff2"),url(/_astro/inter-latin-500-normal.BL9OpVg8.woff) format("woff");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}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/inter-cyrillic-ext-700-normal.BjwYoWNd.woff2) format("woff2"),url(/_astro/inter-cyrillic-ext-700-normal.LO58E6JB.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/inter-cyrillic-700-normal.CjBOestx.woff2) format("woff2"),url(/_astro/inter-cyrillic-700-normal.DrXBdSj3.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/inter-greek-ext-700-normal.qfdV9bQt.woff2) format("woff2"),url(/_astro/inter-greek-ext-700-normal.BoQ6DsYi.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/inter-greek-700-normal.C3JjAnD8.woff2) format("woff2"),url(/_astro/inter-greek-700-normal.BUv2fZ6O.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/inter-vietnamese-700-normal.DlLaEgI2.woff2) format("woff2"),url(/_astro/inter-vietnamese-700-normal.BZaoP0fm.woff) format("woff");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;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/inter-latin-ext-700-normal.Ca8adRJv.woff2) format("woff2"),url(/_astro/inter-latin-ext-700-normal.TidjK2hL.woff) format("woff");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;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/inter-latin-700-normal.Yt3aPRUw.woff2) format("woff2"),url(/_astro/inter-latin-700-normal.BLAVimhd.woff) format("woff");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}:root{--color-accent: #2596be;--color-accent-light: #3aaedb;--color-warm: #e8d9b5;--color-bg: #0f172a;--color-surface: #1e293b;--color-text: #f1f5f9;--color-text-muted: #b8c9d9;--color-border: #334155}html.light{--color-accent-light: #1a7a9e;--color-warm: #0f172a;--color-bg: #f8fafc;--color-surface: #ffffff;--color-text: #0f172a;--color-text-muted: #475569;--color-border: #e2e8f0}:root{--text-display: clamp(2rem, 5vw, 4.5rem);--text-heading: clamp(1.25rem, 3vw, 2.25rem);--text-body: clamp(1rem, .19vw + .94rem, 1.125rem);--text-small: clamp(.875rem, .19vw + .82rem, 1rem);--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 32px;--space-xl: 64px;--space-2xl: 96px;--radius: 6px;--max-width: 820px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;scroll-behavior:smooth}body{background-color:var(--color-bg);background-image:radial-gradient(ellipse 70% 50% at 75% 5%,rgba(37,150,190,.06) 0%,transparent 65%);color:var(--color-text);transition:background-color .2s,color .2s;font-family:Inter,sans-serif;font-size:var(--text-body);line-height:1.6;-webkit-font-smoothing:antialiased;position:relative;overflow-x:hidden}html.light body{background-image:none}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");background-size:200px 200px}body:after{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.04;background-image:radial-gradient(circle,var(--color-text) 1px,transparent 1px);background-size:28px 28px}main>section:nth-child(2n){background:var(--color-surface);transition:background-color .2s}.bg-deco{position:fixed;inset:0;pointer-events:none;z-index:0;color:var(--color-accent);overflow:hidden}.bg-deco svg{width:100%;height:100%}main,nav,footer{position:relative;z-index:1}a{color:var(--color-accent);text-decoration:none}a:hover{text-decoration:underline}.btn-primary{display:inline-block;background:var(--color-accent);color:#fff;font-size:var(--text-small);font-weight:500;letter-spacing:.01em;padding:.625rem 1.25rem;border-radius:var(--radius);border:1px solid transparent;position:relative;overflow:hidden;transition:box-shadow .2s ease,transform .2s ease}.btn-primary:before{content:"";position:absolute;inset:0;background:#ffffff26;transform:scaleX(0);transform-origin:left;transition:transform .25s ease}.btn-primary:hover{box-shadow:0 0 24px #2596be80,0 4px 12px #2596be40;transform:translateY(-1px);text-decoration:none}.btn-primary:hover:before{transform:scaleX(1)}.btn-ghost{display:inline-block;background:transparent;color:var(--color-accent);font-size:var(--text-small);font-weight:500;letter-spacing:.01em;padding:.625rem 1.25rem;border-radius:var(--radius);border:1px solid var(--color-accent);transition:background .15s}.btn-ghost:hover{background:color-mix(in srgb,var(--color-accent) 10%,transparent);text-decoration:none}nav{position:sticky;top:0;z-index:10;background:var(--color-bg);border-bottom:1px solid var(--color-border);transition:background-color .2s,border-color .2s}.nav-inner{max-width:var(--max-width);margin:0 auto;padding:var(--space-md);display:flex;justify-content:space-between;align-items:center;gap:var(--space-md)}.nav-name{font-size:var(--text-small);font-weight:700;color:var(--color-text);white-space:nowrap;text-decoration:none}.nav-name:hover{color:var(--color-text);text-decoration:none}.nav-right{display:flex;align-items:center;gap:var(--space-lg)}.nav-link{font-size:var(--text-small);font-weight:500;color:var(--color-text-muted);text-decoration:none;position:relative;transition:color .2s ease}.nav-link:after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:1px;background:var(--color-accent);transition:width .2s ease}.nav-link:hover{color:var(--color-warm);text-decoration:none}.nav-link:hover:after{width:100%}.theme-toggle{background:none;border:none;cursor:pointer;font-size:1rem;color:var(--color-text-muted);padding:0;line-height:1}.theme-toggle:hover{color:var(--color-text)}.container{max-width:var(--max-width);margin:0 auto;padding:0 var(--space-md)}.section-label{font-size:var(--text-small);font-weight:500;color:var(--color-accent);letter-spacing:.08em;text-transform:uppercase;margin-bottom:var(--space-lg)}#hero{padding:var(--space-2xl) 0;border-bottom:1px solid var(--color-border)}#hero h1{font-size:var(--text-display);font-weight:700;line-height:1.1;margin-bottom:var(--space-lg);color:var(--color-warm)}.hero-label{font-size:var(--text-small);font-weight:500;color:var(--color-accent);letter-spacing:.06em;text-transform:uppercase;margin-bottom:var(--space-md)}.hero-tagline{font-size:1.125rem;color:var(--color-text-muted);max-width:560px;margin-bottom:var(--space-xl);line-height:1.65}#services{padding:var(--space-2xl) 0;border-bottom:1px solid var(--color-border)}.services-list{display:flex;flex-direction:column}.service-row{display:grid;grid-template-columns:1fr 2fr;gap:var(--space-xl);align-items:start;padding:var(--space-lg) 0}.service-name{font-size:clamp(1rem,2vw,1.25rem);font-weight:700;color:var(--color-warm);line-height:1.3;padding-top:var(--space-sm)}.service-bubble{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;padding:var(--space-lg);position:relative;transition:transform .15s,box-shadow .15s,border-color .15s,background-color .2s}.service-bubble:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0000004d;border-color:var(--color-accent)}.service-bubble:before{content:"";position:absolute;left:-8px;top:20px;width:0;height:0;border-top:6px solid transparent;border-bottom:6px solid transparent;border-right:8px solid var(--color-border)}.service-bubble:after{content:"";position:absolute;left:-6px;top:21px;width:0;height:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-right:7px solid var(--color-surface)}.service-bubble p{font-size:var(--text-small);color:var(--color-text-muted);line-height:1.65}@media(max-width:680px){.service-row{grid-template-columns:1fr;gap:var(--space-sm)}.service-bubble:before,.service-bubble:after{display:none}}.service-row:nth-child(2n){grid-template-columns:2fr 1fr}.service-row:nth-child(2n) .service-bubble{order:1}.service-row:nth-child(2n) .service-name{order:2}.service-row:nth-child(2n) .service-bubble:before{left:auto;right:-8px;border-right:none;border-left:8px solid var(--color-border)}.service-row:nth-child(2n) .service-bubble:after{left:auto;right:-6px;border-right:none;border-left:7px solid var(--color-surface)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-lg);transition:transform .15s,box-shadow .15s,background-color .2s,border-color .2s}.card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0000004d}.card-number{display:block;font-size:var(--text-small);font-weight:700;color:var(--color-accent-light);margin-bottom:var(--space-md);letter-spacing:.04em}.card h3{font-size:1rem;font-weight:700;color:var(--color-text);margin-bottom:var(--space-sm);line-height:1.3}.card-price{font-size:var(--text-small);font-weight:500;color:var(--color-text-muted);margin-bottom:var(--space-md)}.card p:last-child{font-size:var(--text-small);color:var(--color-text-muted);line-height:1.6}#about{padding:var(--space-2xl) 0;border-bottom:1px solid var(--color-border)}.about-body{border-left:2px solid var(--color-accent);padding-left:var(--space-lg);max-width:600px}.about-body p{color:var(--color-text-muted);line-height:1.7}#work{padding:var(--space-2xl) 0;border-bottom:1px solid var(--color-border)}.work-grid{display:grid;grid-template-columns:1fr 1fr 1fr;grid-template-rows:minmax(clamp(160px,20vw,260px),auto) minmax(clamp(160px,20vw,260px),auto) minmax(clamp(140px,16vw,200px),auto);gap:var(--space-sm);margin-top:var(--space-lg);padding:0 calc(var(--space-md) * 3)}.work-card:nth-child(1){grid-column:1 / 3;grid-row:1 / 3;display:flex;flex-direction:column;justify-content:flex-end}.work-card:nth-child(2){grid-column:3;grid-row:1 / 3;display:flex;flex-direction:column;justify-content:flex-end}.work-card:nth-child(3){grid-column:2 / 4;grid-row:3}.work-card:nth-child(4){grid-column:1;grid-row:3}.work-card.has-image{background-image:var(--card-image);background-size:cover;background-position:top center;position:relative;overflow:hidden;--color-text: #f1f5f9;--color-text-muted: #b8c9d9}.work-card.has-image:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,#0f172aeb,#0f172a66 55%,#0f172a1a);pointer-events:none}.work-card.has-image .work-card-body{position:relative;z-index:1}.work-card{padding:var(--space-lg)}.work-card-body{display:flex;flex-direction:column;gap:var(--space-sm)}.work-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-md)}.work-card h3{font-size:clamp(1rem,1.5vw,1.375rem);font-weight:700;color:var(--color-text);margin-bottom:var(--space-sm);line-height:1.3}.work-stack{font-size:var(--text-small);color:var(--color-text-muted);margin-bottom:var(--space-sm);font-weight:500}.work-card p:not(.work-stack){font-size:var(--text-small);color:var(--color-text);line-height:1.6}.badge{flex-shrink:0;display:inline-block;font-size:.75rem;font-weight:500;color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:99px;padding:.25rem .75rem;white-space:nowrap}.badge--active{color:var(--color-warm);border-color:var(--color-warm)}.badge--link{color:var(--color-warm);border-color:var(--color-warm);text-decoration:none;position:relative;overflow:hidden;transition:box-shadow .2s ease}.badge--link:before{content:"";position:absolute;inset:0;background:#e8d9b526;transform:scaleX(0);transform-origin:left;transition:transform .2s ease;border-radius:99px}.badge--link:hover{box-shadow:0 0 10px #e8d9b54d;text-decoration:none}.badge--link:hover:before{transform:scaleX(1)}@media(max-width:680px){.work-grid{grid-template-columns:1fr;grid-template-rows:auto}.work-card:nth-child(1),.work-card:nth-child(2),.work-card:nth-child(3),.work-card:nth-child(4){grid-column:1;grid-row:auto;min-height:160px;justify-content:flex-start}}#contact{padding:var(--space-2xl) 0;border-bottom:1px solid var(--color-border)}.contact-inner{max-width:520px}.contact-inner h2{font-size:var(--text-heading);font-weight:700;color:var(--color-warm);margin-bottom:var(--space-md)}.contact-inner p{color:var(--color-text-muted);line-height:1.65}footer{padding:var(--space-lg) 0}.footer-inner{display:flex;align-items:center;justify-content:space-between}footer span{font-size:var(--text-small);color:var(--color-text-muted)}.footer-link{font-size:var(--text-small);color:var(--color-text-muted);text-decoration:none}.footer-link:hover{color:var(--color-text)}
