@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-B2xhLi22.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C88,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(/assets/inter-cyrillic-wght-normal-CMZtQduZ.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(/assets/inter-greek-ext-wght-normal-CGAr0uHJ.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(/assets/inter-greek-wght-normal-CaVNZxsx.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(/assets/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(/assets/inter-latin-ext-wght-normal-CFHvXkgd.woff2) format("woff2-variations");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,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(/assets/inter-latin-wght-normal-C2S99t-D.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+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(data:font/woff2;base64,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) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-vietnamese-wght-normal-Bnh6xcKr.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:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-latin-ext-wght-normal-Ch-K9LVU.woff2) format("woff2-variations");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,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:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-latin-wght-normal-BD2oGHtS.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+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--blue: #1662f0;--blue-dark: #0b47c4;--blue-50: #eef4ff;--blue-100: #dce8ff;--navy: #0b1530;--navy-2: #12204a;--bg: #ffffff;--bg-alt: #f6f8fc;--text: #0f1a33;--text-muted: #59657c;--text-subtle: #8a95a8;--border: #e4e9f2;--border-strong: #d2dae7;--warn-bg: #fff4dc;--warn-text: #8a5300;--danger: #c62828;--success: #0f7b4d;--radius: 12px;--radius-lg: 16px;--shadow-sm: 0 1px 2px rgba(15, 26, 51, .05);--shadow: 0 2px 4px rgba(15, 26, 51, .04), 0 12px 32px -12px rgba(15, 26, 51, .14);--shadow-lg: 0 30px 60px -24px rgba(11, 71, 196, .35);--font-body: "Inter Variable", "Segoe UI", system-ui, -apple-system, Roboto, Arial, sans-serif;--font-head: "Plus Jakarta Sans Variable", "Inter Variable", "Segoe UI", system-ui, sans-serif;--header-h: 76px;color-scheme:light}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:var(--header-h)}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:1rem;line-height:1.65;-webkit-font-smoothing:antialiased}#root{display:flex;flex-direction:column;min-height:100vh}main{flex:1}main:focus{outline:none}img{max-width:100%}h1,h2,h3,h4{font-family:var(--font-head);color:var(--navy);line-height:1.15;letter-spacing:-.025em;margin:0 0 .5em}h1{font-size:clamp(2.4rem,4.6vw,3.6rem);font-weight:800}h2{font-size:clamp(1.7rem,3vw,2.25rem);font-weight:800}h3{font-size:1.05rem;font-weight:700;letter-spacing:-.01em}p{margin:0 0 1em}a{color:var(--blue);text-underline-offset:3px}a:hover{color:var(--blue-dark)}code{font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:.9em}:focus-visible{outline:2.5px solid var(--blue);outline-offset:3px;border-radius:4px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;left:16px;top:-60px;z-index:100;padding:10px 16px;background:var(--blue);color:#fff;border-radius:8px;font-weight:600}.skip-link:focus{top:12px;color:#fff}.container{width:100%;max-width:1240px;margin:0 auto;padding:0 32px}@media (max-width: 640px){.container{padding:0 16px}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:50px;padding:0 26px;border-radius:8px;border:1.5px solid transparent;font:inherit;font-weight:600;font-size:.975rem;text-decoration:none;white-space:nowrap;cursor:pointer;transition:background-color .15s,border-color .15s,color .15s,box-shadow .15s}.btn-sm{min-height:44px;padding:0 20px;font-size:.925rem}.btn-block{width:100%}.btn-primary{background:var(--blue);color:#fff;box-shadow:0 8px 18px -8px #1662f0b3}.btn-primary:hover{background:var(--blue-dark);color:#fff}.btn-primary:disabled{opacity:.6;cursor:progress}.btn-outline{background:#fff;color:var(--blue);border-color:var(--blue)}.btn-outline:hover{background:var(--blue-50);color:var(--blue-dark)}.text-btn{display:inline-flex;align-items:center;gap:8px;padding:6px 0;border:0;background:none;color:var(--blue);font:inherit;font-weight:600;font-size:.95rem;cursor:pointer;white-space:nowrap}.text-btn:hover{color:var(--blue-dark)}.arrow{display:inline-block;transition:transform .15s}.text-btn:hover .arrow{transform:translate(3px)}.site-header{position:sticky;top:0;z-index:50;background:#fffffff0;-webkit-backdrop-filter:saturate(180%) blur(12px);backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid var(--border)}.header-inner{display:flex;align-items:center;justify-content:space-between;height:var(--header-h);gap:24px}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;flex-shrink:0}.brand-text{display:flex;flex-direction:column;line-height:1}.brand-name,.footer-brand{font-family:var(--font-head);font-weight:800;font-size:1.6rem;letter-spacing:-.03em;color:var(--navy)}.brand-name span,.footer-brand span{color:var(--blue)}.brand-role{margin-top:4px;font-size:.66rem;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--navy)}.site-nav{display:flex;align-items:center;gap:28px}.site-nav ul{display:flex;gap:2px;list-style:none;margin:0;padding:0}.site-nav ul a{position:relative;display:block;padding:8px 13px;color:var(--navy);text-decoration:none;font-weight:500;font-size:.95rem;white-space:nowrap}.site-nav ul a:hover,.site-nav ul a.active{color:var(--blue)}.site-nav ul a.active:after{content:"";position:absolute;left:13px;right:13px;bottom:-2px;height:2px;border-radius:2px;background:var(--blue)}.menu-toggle{display:none;place-items:center;width:44px;height:44px;border-radius:10px;border:1px solid var(--border-strong);background:#fff;color:var(--navy);cursor:pointer}@media (max-width: 1100px){.menu-toggle{display:grid}.site-nav{display:none;position:absolute;top:var(--header-h);left:0;right:0;flex-direction:column;align-items:stretch;gap:12px;padding:12px 16px 20px;background:#fff;border-bottom:1px solid var(--border);box-shadow:var(--shadow)}.site-nav.is-open{display:flex}.site-nav ul{flex-direction:column}.site-nav ul a{padding:12px;border-radius:8px}.site-nav ul a.active{background:var(--blue-50)}.site-nav ul a.active:after{display:none}}.hero{position:relative;overflow:hidden;background:linear-gradient(105deg,#fff,#f7faff 45%,#e9f1ff);border-bottom:1px solid var(--border)}.hero-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(220px,.58fr) minmax(0,.95fr);gap:32px;align-items:center;min-height:600px}.hero-copy{padding:64px 0}.hero-kicker{margin-bottom:20px;color:var(--text-muted);font-size:.9rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase}.hero-kicker span{margin:0 8px;color:var(--border-strong)}.hero h1{margin-bottom:22px;letter-spacing:-.035em}.hero h1 span{display:block;color:var(--blue)}.hero-text{font-size:1.15rem;color:var(--text-muted);max-width:52ch}.hero-actions{display:flex;flex-wrap:wrap;gap:16px;margin-top:32px}.hero-stats{position:relative;z-index:2;display:grid;gap:14px;list-style:none;margin:0;padding:0}.hero-stats li{display:flex;align-items:center;gap:14px;padding:14px 16px;background:#ffffffeb;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.stat-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:10px;background:var(--blue-50);color:var(--blue);flex-shrink:0}.hero-stats strong{display:block;font-family:var(--font-head);font-size:1.2rem;font-weight:800;color:var(--navy);line-height:1.25}.hero-stats li>span:last-child>span{display:block;font-size:.85rem;color:var(--text-muted)}.hero-grid{position:relative;z-index:2}.hero-photo-wrap{position:absolute;top:0;right:0;bottom:0;width:min(46vw,700px);z-index:1}.hero-shape{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(160deg,#dbe8ff,#b9d0ff);clip-path:polygon(38% 100%,100% 8%,100% 100%)}.hero-photo{position:absolute;top:0;right:0;bottom:0;left:0;display:block}.hero-photo img{position:absolute;right:4%;top:28px;display:block;width:auto;height:122%;max-width:none;object-fit:cover;-webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 26%,#000 88%,transparent 100%),linear-gradient(180deg,transparent 0%,#000 16%);-webkit-mask-composite:source-in;mask-image:linear-gradient(90deg,transparent 0%,#000 26%,#000 88%,transparent 100%),linear-gradient(180deg,transparent 0%,#000 16%);mask-composite:intersect}.hero-dots{position:absolute;top:40px;right:24px;width:136px;height:116px;background-image:radial-gradient(#9dbcf5 1.6px,transparent 1.6px);background-size:16px 16px}@media (max-width: 1100px){.hero-grid{grid-template-columns:1fr;gap:28px;min-height:0}.hero-copy{padding:48px 0 0}.hero-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-spacer{display:none}.hero-photo-wrap{position:relative;width:100%;height:480px;margin-top:28px}.hero-shape{clip-path:polygon(0 100%,100% 25%,100% 100%)}.hero-photo img{top:0;right:50%;transform:translate(50%);height:100%}}@media (max-width: 760px){.hero-actions .btn{flex:1 1 100%}.hero-stats{gap:10px}.hero-stats li{flex-direction:column;align-items:flex-start;gap:10px;padding:14px}.hero-photo-wrap{height:440px}}.highlights{border-bottom:1px solid var(--border);background:#fff}.highlights-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));list-style:none;margin:0;padding:0}.highlights-grid li{display:flex;align-items:center;gap:18px;padding:26px 20px}.highlights-grid li:first-child{padding-left:0}.highlights-grid li+li{border-left:1px solid var(--border)}.hl-icon{display:grid;place-items:center;width:58px;height:58px;border-radius:12px;background:var(--blue-50);color:var(--blue);flex-shrink:0}.highlights-grid strong{display:block;font-family:var(--font-head);color:var(--navy);font-size:1.02rem;margin-bottom:2px}.highlights-grid li>span:last-child>span{display:block;color:var(--text-muted);font-size:.9rem;line-height:1.45}@media (max-width: 1000px){.highlights-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.highlights-grid li:nth-child(3){border-left:0;padding-left:0}.highlights-grid li:nth-child(n+3){border-top:1px solid var(--border)}}@media (max-width: 560px){.highlights-grid{grid-template-columns:1fr}.highlights-grid li{padding:18px 0}.highlights-grid li+li{border-left:0;border-top:1px solid var(--border)}}.section{padding:72px 0}.section-alt{background:var(--bg-alt)}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px 24px;flex-wrap:wrap;margin-bottom:32px}.section-head h2{margin-bottom:6px}.section-head p{margin:0;color:var(--text-muted);font-size:1.05rem}@media (max-width: 640px){.section{padding:64px 0}}.about-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:64px;align-items:center}.about-copy>p{color:var(--text-muted);font-size:1.05rem}.approach-list{list-style:none;margin:28px 0 0;padding:0;display:grid;gap:12px}.approach-list li{position:relative;padding-left:30px;color:var(--text-muted);font-size:.975rem}.approach-list strong{color:var(--navy)}.approach-list li:before{content:"";position:absolute;left:0;top:.2em;width:19px;height:19px;border-radius:50%;background:var(--blue-50) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231662f0' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5 9-10'/%3E%3C/svg%3E") center / 11px no-repeat}.credentials{margin-top:24px;padding-top:18px;border-top:1px solid var(--border)}.about-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;align-items:center;padding:24px;border-radius:var(--radius-lg);background:linear-gradient(135deg,#f4f8ff,#e8f0ff);border:1px solid var(--blue-100)}.about-photo img{display:block;width:100%;height:auto;aspect-ratio:4 / 5;object-fit:cover;object-position:top;border-radius:var(--radius);box-shadow:var(--shadow)}.facts{margin:0;display:grid;gap:14px}.facts div{display:grid;grid-template-columns:90px 1fr;gap:8px;font-size:.925rem}.facts dt{color:var(--navy);font-weight:600}.facts dd{margin:0;color:var(--text-muted);overflow-wrap:anywhere}@media (max-width: 960px){.about-grid{grid-template-columns:1fr;gap:40px}}@media (max-width: 700px){.about-card{grid-template-columns:1fr}.about-photo{display:none}}.project-card-main .status-badge{margin-top:10px}.skills-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:18px}.skill-card{padding:24px 20px;background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);transition:transform .2s,box-shadow .2s}.skill-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.skill-icon{display:grid;place-items:center;width:50px;height:50px;margin-bottom:16px;border-radius:12px;color:var(--tint);background:color-mix(in srgb,var(--tint) 11%,#fff)}.skill-card h3{margin-bottom:6px}.skill-card p{margin:0;font-size:.875rem;color:var(--text-muted);line-height:1.55}.skills-full{margin-top:32px;padding:8px 28px;background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg)}.skills-row{display:grid;grid-template-columns:200px 1fr;gap:24px;align-items:center;padding:18px 0}.skills-row+.skills-row{border-top:1px solid var(--border)}.skills-row h3{margin:0;font-size:.975rem}@media (max-width: 1100px){.skills-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 640px){.skills-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.skill-card{padding:18px 16px}.skills-full{padding:4px 18px}.skills-row{grid-template-columns:1fr;gap:10px}}.tags{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}.tags li{padding:4px 12px;border-radius:6px;background:var(--bg-alt);border:1px solid var(--border);color:var(--navy-2);font-size:.8rem;font-weight:500;line-height:1.5}.projects-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.project-card{position:relative;display:flex;flex-direction:column;padding:24px;background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);transition:box-shadow .2s,transform .2s,border-color .2s}.project-card:hover,.project-card:focus-within{box-shadow:var(--shadow);transform:translateY(-3px);border-color:var(--blue-100)}.project-card-main{display:flex;gap:14px;margin-bottom:18px}.project-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:12px;background:var(--blue-50);color:var(--blue);flex-shrink:0}.project-card h3{margin-bottom:6px;font-size:1rem}.project-card h3 a{color:var(--navy);text-decoration:none}.project-card-main p{margin:0;color:var(--text-muted);font-size:.875rem;line-height:1.55}.stretched-link:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--radius)}.stretched-link:focus-visible{outline:none}.stretched-link:focus-visible:after{outline:2.5px solid var(--blue);outline-offset:3px}.project-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto;padding-top:20px}.card-cta{color:var(--blue);font-weight:600;font-size:.9rem}.project-card:hover .arrow{transform:translate(3px)}.status-badge{display:inline-block;padding:3px 10px;border-radius:999px;background:var(--warn-bg);color:var(--warn-text);font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}@media (max-width: 1100px){.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 640px){.projects-grid{grid-template-columns:1fr}}.timeline{position:relative;list-style:none;margin:0;padding:0 0 0 36px}.timeline:before{content:"";position:absolute;left:9px;top:8px;bottom:8px;width:2px;background:var(--blue-100)}.timeline>li{position:relative;display:grid;grid-template-columns:150px 1fr;gap:28px;padding-bottom:32px}.timeline-dot{position:absolute;left:-36px;top:4px;width:20px;height:20px;border-radius:50%;background:#fff;border:5px solid var(--blue);box-shadow:0 0 0 4px var(--blue-50)}.timeline-date{justify-self:start;margin:0;padding:4px 12px;border-radius:6px;background:var(--blue-50);color:var(--blue);font-weight:700;font-size:.875rem;white-space:nowrap}.timeline-body h3{margin-bottom:4px}.timeline-company{font-weight:600;color:var(--navy-2);margin-bottom:4px}.timeline-body p{color:var(--text-muted);margin-bottom:8px}@media (max-width: 640px){.timeline>li{grid-template-columns:1fr;gap:8px}}.innovation-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.inno-card{position:relative;background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);transition:box-shadow .2s,transform .2s}.inno-card>*:not(.inno-link),.inno-link{padding:0}.inno-card{padding:22px}.inno-link{display:block;color:inherit;text-decoration:none}.inno-link:hover{color:inherit}.inno-card:hover{box-shadow:var(--shadow);transform:translateY(-3px)}.inno-visual{display:grid;place-items:center;height:120px;margin-bottom:18px;border-radius:10px;color:var(--tint);background:radial-gradient(circle at 50% 40%,color-mix(in srgb,var(--tint) 16%,#fff),color-mix(in srgb,var(--tint) 6%,#fff) 70%)}.inno-visual-lg{color:#fff;background:radial-gradient(circle at 30% 25%,#4d8bff,#0b47c4 75%)}.inno-card h3{margin-bottom:6px}.inno-card p{margin:0 0 10px;color:var(--text-muted);font-size:.9rem;line-height:1.55}.inno-feature h3{color:var(--blue)}@media (max-width: 1000px){.innovation-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 520px){.innovation-grid{grid-template-columns:1fr}}.contact-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:48px;align-items:start}.contact-grid>:only-child{grid-column:1 / -1}.contact-list{list-style:none;margin:0;padding:0;display:grid;gap:18px}.contact-list li{display:flex;align-items:center;gap:14px;min-width:0;font-weight:500}.contact-list a{color:var(--navy);text-decoration:none;overflow-wrap:anywhere}.contact-list a:hover{color:var(--blue)}.contact-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:10px;background:var(--blue-50);color:var(--blue);flex-shrink:0}.contact-form{display:flex;flex-direction:column;gap:16px;padding:28px;background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-field label{display:block;margin-bottom:6px;font-weight:600;font-size:.875rem;color:var(--navy)}.form-field input,.form-field textarea{width:100%;padding:12px 14px;border-radius:8px;border:1px solid var(--border-strong);background:#fff;color:var(--text);font:inherit}.form-field input::placeholder,.form-field textarea::placeholder{color:var(--text-subtle)}.form-field textarea{resize:vertical;min-height:140px}.form-field input:focus,.form-field textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-100)}.has-error input,.has-error textarea{border-color:var(--danger)}.field-error{margin:6px 0 0;color:var(--danger);font-size:.85rem}.hp-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.form-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.form-privacy{margin:0;font-size:.825rem;color:var(--text-muted);flex:1 1 200px}.form-status{margin:0;padding:14px 16px;border-radius:8px}.form-status.success{background:#e8f7ef;border:1px solid #b6e3cb;color:var(--success)}.form-status.error{background:#fdeceb;border:1px solid #f5c2bf;color:var(--danger)}.dev-note{margin-top:24px;padding:14px 16px;border-radius:8px;background:var(--warn-bg);color:var(--warn-text);font-size:.9rem}@media (max-width: 860px){.contact-grid{grid-template-columns:1fr;gap:28px}}@media (max-width: 560px){.contact-form{padding:20px 16px}.form-row{grid-template-columns:1fr}.form-footer .btn{width:100%}}.social-links{display:flex;flex-wrap:wrap;gap:10px;list-style:none;margin:0;padding:0}.social-links a{display:flex;align-items:center;gap:12px;text-decoration:none}.social-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:10px}.social-dark .social-icon{background:#ffffff14;border:1px solid rgba(255,255,255,.14);color:#fff}.social-dark a:hover .social-icon{background:var(--blue);border-color:var(--blue)}.case-hero{padding:48px 0 56px;background:linear-gradient(105deg,#fff,#f5f9ff,#e9f1ff);border-bottom:1px solid var(--border)}.case-hero h1{font-size:clamp(2rem,4.5vw,3rem);max-width:22ch}.case-lead{font-size:1.125rem;color:var(--text-muted);max-width:60ch;margin:0}.section-num{display:flex;align-items:center;gap:12px;margin-bottom:14px;color:var(--text-muted);font-size:.85rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.section-num span:first-child{display:inline-grid;place-items:center;min-width:38px;height:26px;padding:0 8px;border-radius:6px;background:var(--blue-50);color:var(--blue)}.breadcrumb{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px;font-size:.9rem;color:var(--text-subtle)}.breadcrumb a{color:var(--text-muted);text-decoration:none}.breadcrumb a:hover{color:var(--blue)}.breadcrumb [aria-current]{color:var(--navy);font-weight:600}.case-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:64px;padding-top:56px;padding-bottom:32px;align-items:start}.case-block{padding-bottom:32px;margin-bottom:32px;border-bottom:1px solid var(--border)}.case-block:last-child{border-bottom:0;margin-bottom:0}.case-block h2{font-size:1.35rem;margin-bottom:12px}.case-block p{font-size:1.05rem;color:var(--text-muted);margin:0}.check-list{list-style:none;padding:0;margin:0}.check-list li{position:relative;padding-left:32px;margin-bottom:12px}.check-list li:before{content:"";position:absolute;left:0;top:.2em;width:20px;height:20px;border-radius:50%;background:var(--blue-50) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231662f0' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5 9-10'/%3E%3C/svg%3E") center / 12px no-repeat}.case-aside{position:sticky;top:calc(var(--header-h) + 24px);display:grid;gap:20px}.aside-card{padding:26px;border:1px solid var(--border);border-radius:var(--radius-lg);background:#fff;box-shadow:var(--shadow-sm)}.aside-card h2{font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);margin-bottom:16px}.aside-card h2:not(:first-child){margin-top:24px}.aside-links{list-style:none;padding:0;margin:0}.aside-cta{background:linear-gradient(135deg,var(--blue),var(--blue-dark));border:0;color:#fff}.aside-cta p{font-family:var(--font-head);font-weight:700;font-size:1.1rem}.aside-cta .btn-primary{background:#fff;color:var(--blue);box-shadow:none}.aside-cta .btn-primary:hover{background:var(--blue-50);color:var(--blue-dark)}.next-project{display:flex;flex-direction:column;gap:4px;margin:32px 0 88px;padding:28px 32px;border-radius:var(--radius-lg);background:var(--bg-alt);border:1px solid var(--border);text-decoration:none;transition:border-color .15s}.next-project:hover{border-color:var(--blue)}.next-label{color:var(--text-muted);font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em}.next-title{font-family:var(--font-head);font-size:clamp(1.15rem,2.4vw,1.5rem);font-weight:800;color:var(--navy)}@media (max-width: 960px){.case-layout{grid-template-columns:1fr;gap:32px;padding-top:40px}.case-aside{position:static}}.not-found{padding:120px 0;background:var(--bg-alt)}.nf-code{font-family:var(--font-head);font-weight:800;font-size:clamp(4rem,12vw,7rem);line-height:1;color:var(--blue);margin-bottom:16px}.site-footer{background:var(--navy);color:#a9b6d0;padding-top:48px}.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:28px;flex-wrap:wrap;padding-bottom:36px}.footer-id{display:flex;align-items:center;gap:12px}.footer-brand{margin:0;color:#fff;font-size:1.4rem;line-height:1.1}.footer-brand span{color:#5b9bff}.footer-role{margin:4px 0 0;font-size:.72rem;letter-spacing:.22em;text-transform:uppercase}.footer-links{display:flex;flex-wrap:wrap;gap:4px 22px;list-style:none;margin:0;padding:0}.footer-links a{color:#c9d3e8;text-decoration:none;font-size:.925rem}.footer-links a:hover{color:#fff}.footer-bottom{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-top:22px;padding-bottom:26px;border-top:1px solid rgba(255,255,255,.08);font-size:.85rem}.footer-bottom p{margin:0}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}.project-card:hover,.skill-card:hover,.inno-card:hover{transform:none}}
