@import"https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700&family=Space+Grotesk:wght@500;700&display=swap";:root{--bg-main: #090b12;--text-primary: #eceffe;--text-secondary: #b9c1de;--text-dim: #7f87a3;--accent: #7ea7ff;--panel: rgba(18, 21, 37, .72);--panel-strong: rgba(53, 61, 100, .66);--stroke: rgba(143, 154, 201, .25);font-family:Manrope,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body,#root{margin:0;width:100%;min-width:320px}body{min-height:100vh;background:radial-gradient(circle at 20% -10%,#1d2f61,transparent 45%),var(--bg-main);color:var(--text-primary)}a{text-decoration:none;color:inherit}.page-shell{position:relative;max-width:1340px;margin:0 auto;padding:2.2rem clamp(1rem,2vw,2rem) 4rem;z-index:1;--mx: 52%;--my: 18%}.mouse-aura{position:fixed;inset:0;z-index:-2;pointer-events:none;background:radial-gradient(520px circle at var(--mx) var(--my),rgba(86,117,255,.26),rgba(49,196,170,.12) 40%,transparent 75%);transition:background .12s linear}.topbar{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1.2rem;padding-bottom:1.2rem}.brand{display:inline-flex;align-items:center;gap:.7rem;color:var(--text-primary)}.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:58px;height:58px;border-radius:14px;background:linear-gradient(135deg,#5d74f080,#31c4aa6b);border:1px solid rgba(122,145,255,.52);box-shadow:0 10px 26px #4365f538}.brand-image{display:block;width:50px;height:50px;object-fit:contain;filter:drop-shadow(0 4px 10px rgba(12,16,30,.35))}.brand-copy{display:inline-flex;align-items:center}.brand-copy strong{font-size:1.2rem;letter-spacing:.08em;text-transform:uppercase}.topnav{display:inline-flex;justify-content:center;gap:1rem}.topnav a{font-size:.9rem;color:var(--text-secondary)}.topnav a:hover{color:var(--text-primary)}.lang-switch{display:inline-flex;border:1px solid var(--stroke);border-radius:999px;padding:.2rem;background:#ffffff08}.lang-switch button{border:0;background:transparent;color:var(--text-secondary);border-radius:999px;padding:.35rem .7rem;font-size:.82rem;cursor:pointer}.lang-switch button.active{background:var(--panel-strong);color:var(--text-primary)}.hero{padding:4.2rem 0 3rem;max-width:780px}.pill{width:fit-content;padding:.35rem .75rem;border-radius:999px;border:1px solid rgba(115,143,253,.45);background:#5771f22e;color:#dbe3ff;font-size:.82rem;letter-spacing:.02em;margin:0}.hero h1{margin:1rem 0 1.1rem;font-size:clamp(2.1rem,6vw,4.3rem);line-height:1;font-family:Space Grotesk,sans-serif;letter-spacing:-.03em}.hero h1 span{color:var(--accent)}.hero-copy{margin:0;max-width:660px;color:var(--text-secondary);font-size:clamp(1rem,1.8vw,1.18rem)}.hero-actions{margin-top:1.6rem;display:flex;flex-wrap:wrap;gap:.8rem}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:42px;border-radius:999px;padding:.2rem 1.1rem;font-size:.9rem;font-weight:600}.btn-primary{background:linear-gradient(120deg,#6495ff,#5b77ff 42%,#65e2ca);color:#0f1022}.btn-ghost{color:var(--text-primary);border:1px solid var(--stroke);background:#ffffff05}.section{margin-top:4rem}.section-label{text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim);font-size:.72rem;margin:0}.section h2{margin:.55rem 0 .8rem;font-size:clamp(1.5rem,3.4vw,2.4rem);font-family:Space Grotesk,sans-serif;letter-spacing:-.02em}.section-copy{margin:0;max-width:760px;color:var(--text-secondary)}.section-hint{margin:.45rem 0 0;max-width:760px;color:var(--text-dim);font-size:.83rem}.project-grid{margin-top:1.4rem;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.95rem;align-items:stretch}.section-toggle{margin-top:1rem;border:1px solid var(--stroke);border-radius:999px;padding:.5rem .95rem;background:#ffffff08;color:var(--text-primary);cursor:pointer;font-size:.86rem;font-weight:600}.section-toggle:hover{border-color:#7c93ffa6;background:#6a82fa21}.project-card{border:1px solid var(--stroke);border-radius:20px;padding:1rem;background:var(--panel);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:transform .18s ease,border-color .18s ease;display:flex;flex-direction:column;height:100%}.project-card:hover{transform:translateY(-2px);border-color:#687bf699}.visual-box{position:relative;border-radius:14px;aspect-ratio:2 / 1;min-height:140px;display:flex;align-items:center;justify-content:center;padding:1rem;overflow:hidden}.visual-box.has-image-logo{padding:0;background:#070911;box-shadow:inset 0 0 0 1px #0000008c}.visual-box.has-image-logo:after{display:none}.visual-box.has-company-logo{padding:.55rem;background:#fff;box-shadow:inset 0 0 0 1px #0a0e1c29}.visual-box.has-company-logo:after{display:none}.visual-box.has-company-logo-fill{padding:0;background:#090b12}.visual-box:after{content:"";position:absolute;inset:auto -20% -55% auto;width:74%;aspect-ratio:1;border-radius:50%;filter:blur(30px);opacity:.6;background:#fffc}.visual-box>.visual-label{position:relative;z-index:1;border:1px dashed rgba(255,255,255,.55);background:#00000026;border-radius:999px;padding:.25rem .6rem;font-size:.76rem}.project-logo{position:relative;z-index:1;display:inline-flex;align-items:center;gap:.62rem;max-width:100%;border-radius:999px;border:1px solid rgba(255,255,255,.28);background:#06080e80;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:.45rem .75rem .45rem .45rem}.project-logo-mark{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:999px;font-size:.78rem;font-weight:800;letter-spacing:.04em;background:#ffffff26;color:#f6f7ff}.project-logo-text{display:inline-block;max-width:min(100%,240px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:clamp(.95rem,1.8vw,1.12rem);font-weight:700;letter-spacing:.03em;color:#f8faff}.project-logo-image{position:relative;z-index:1;display:block;width:calc(100% + 4px);height:calc(100% + 4px);margin:-2px;object-fit:cover;filter:none}.company-logo-image{width:100%;height:100%;margin:0;object-fit:contain;border-radius:10px;background:#fff}.has-company-logo-fill .company-logo-image{width:calc(100% + 4px);height:calc(100% + 4px);margin:-2px;object-fit:cover;border-radius:0;background:transparent}.logo-image-watchdog,.logo-image-childzen{object-position:center;background:#fff}.logo-watchdog .project-logo-mark{background:#6ad2f147}.logo-childzen .project-logo-mark{background:#b086f74d}.logo-mark .project-logo-mark{background:#70dfa84d}.logo-vocabume .project-logo-mark{background:#f47ea04f}.logo-reposter .project-logo-mark{background:#f5a25b4f}.from-cyan{background:radial-gradient(circle at 20% 20%,#2f4957,#0f141a 66%)}.from-orange{background:radial-gradient(circle at 20% 20%,#69442c,#1b1613 66%)}.from-green{background:radial-gradient(circle at 20% 20%,#36503f,#141915 66%)}.from-violet{background:radial-gradient(circle at 20% 20%,#4d3970,#191523 66%)}.from-rose{background:radial-gradient(circle at 20% 20%,#6b3241,#1f1316 66%)}.project-card h3{margin:0;font-size:1.17rem}.project-card p{margin:0;color:var(--text-secondary);font-size:.95rem}.project-summary{line-height:1.42}.stack-label{margin-top:.8rem!important;color:var(--text-dim)!important;font-size:.74rem!important;text-transform:uppercase;letter-spacing:.08em}.stack-row{margin-top:.55rem;display:flex;flex-wrap:wrap;gap:.42rem}.stack-row span{border-radius:999px;border:1px solid rgba(255,255,255,.15);padding:.2rem .55rem;font-size:.76rem;color:var(--text-primary);background:#ffffff08}.project-head{margin:.95rem 0 .5rem;display:flex;align-items:flex-start;justify-content:space-between;gap:.6rem}.status-row{display:flex;flex-wrap:wrap;gap:.35rem;justify-content:flex-end}.status-badge{border-radius:999px;padding:.17rem .52rem;font-size:.69rem;border:1px solid transparent;white-space:nowrap}.status-badge.openSource{color:#bff9dc;background:#3aae702e;border-color:#3aae7061}.status-badge.inProgress{color:#ffe4ae;background:#e4a02b29;border-color:#e4a02b66}.status-badge.closed{color:#cfd4e9;background:#7884a833;border-color:#7884a866}.status-badge.zbt{color:#ffd9c2;background:#c565262e;border-color:#d979386b}.status-badge.mvp{color:#ffe4ba;background:#bb7b2133;border-color:#e0a45075}.status-badge.platform{color:#d2f5ff;background:#3b9aba33;border-color:#62c3e475}.status-badge.client{color:#d5e6ff;background:#4a7cd633;border-color:#6da1ff70}.status-badge.nda{color:#f2d8ff;background:#8a4eb03d;border-color:#ba80df85}.period-badge{border-radius:999px;padding:.17rem .52rem;font-size:.69rem;white-space:nowrap;color:#d7e2ff;background:#586ec533;border:1px solid rgba(118,146,255,.42)}.project-links{margin-top:.9rem;margin-bottom:.65rem;display:flex;flex-wrap:wrap;gap:.45rem}.project-link{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;border:1px solid rgba(106,130,250,.65);padding:.4rem .85rem;color:#d9e1ff;background:#5d74f029;font-size:.83rem;font-weight:600;transition:background .18s ease,border-color .18s ease}.project-link:hover{background:#5d74f040;border-color:#6a82faf2}.project-link.is-github{border-color:#52bc7ea6;background:#3aae7029;color:#d4ffe6}.project-link.is-github:hover{border-color:#52bc7ef2;background:#3aae7042}.project-more{margin-top:auto;border-top:1px dashed rgba(255,255,255,.14);padding-top:.68rem}.project-more summary{cursor:pointer;color:var(--text-primary);font-size:.84rem;font-weight:600}.project-more p{margin-top:.52rem;font-size:.9rem;color:var(--text-secondary)}.shot-grid{margin-top:.62rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}.shot-grid div{min-height:62px;border-radius:10px;border:1px dashed rgba(255,255,255,.18);background:#ffffff05;display:flex;align-items:center;justify-content:center;font-size:.73rem;color:var(--text-dim)}.shot-item{border:1px solid rgba(255,255,255,.14);border-radius:10px;background:#ffffff05;padding:0;overflow:hidden;text-align:left;cursor:zoom-in}.shot-item img{display:block;width:100%;aspect-ratio:16 / 9;object-fit:cover}.shot-item span{display:block;padding:.4rem .55rem .5rem;font-size:.72rem;color:var(--text-dim)}.lightbox{position:fixed;inset:0;z-index:40;background:#080a10db;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);padding:1rem;display:flex;align-items:center;justify-content:center}.lightbox-inner{max-width:min(1320px,94vw);max-height:88vh}.lightbox-inner img{display:block;max-width:100%;max-height:88vh;border-radius:12px;border:1px solid rgba(255,255,255,.24);box-shadow:0 22px 62px #00000073}.lightbox-close{position:absolute;top:.9rem;right:.9rem;border:1px solid rgba(255,255,255,.22);border-radius:999px;background:#0d0f18d1;color:var(--text-primary);padding:.35rem .75rem;cursor:pointer}.company-grid{margin-top:1.2rem;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem;align-items:start}@media(max-width:1220px){.project-grid,.company-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tech-stack-shell{grid-template-columns:1fr}}.company-card{border-radius:16px;border:1px solid var(--stroke);background:var(--panel);padding:1rem}.company-emoji{position:relative;z-index:1;font-size:clamp(2rem,4.6vw,2.9rem);line-height:1;filter:drop-shadow(0 8px 16px rgba(0,0,0,.28))}.company-logo{width:fit-content;border-radius:10px;border:1px solid rgba(255,255,255,.18);padding:.34rem .62rem;font-size:.72rem;font-weight:700;letter-spacing:.07em}.logo-heineken{color:#e4fdd9;background:#22915833;border-color:#46c17c59}.logo-sovcombank{color:#dce6ff;background:#5067bd38;border-color:#7b96ff66}.logo-samsonite{color:#f4f2ff;background:#74569938;border-color:#9d7dc461}.logo-genergy{color:#fff4d6;background:#ad7c2d38;border-color:#dcae596b}.logo-insurancech{color:#edf3ff;background:linear-gradient(140deg,#54658f75,#5f95dd47);border-color:#b8d0ff99;box-shadow:0 0 0 1px #b7ccff2e inset}.company-card h3{margin:0;font-size:1rem}.company-card>p{margin-top:.5rem;color:var(--text-secondary);font-size:.9rem}.nda-note{margin:.9rem 0 0;color:var(--text-dim);font-size:.84rem}.tech-stack-section{margin-top:4.4rem}.tech-stack-shell{position:relative;display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.35fr);gap:1.1rem;padding:1.2rem;border:1px solid var(--stroke);border-radius:20px;background:var(--panel);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);overflow:hidden}.tech-stack-shell:before{display:none}.tech-stack-intro{position:relative;z-index:1;padding:.35rem .2rem .2rem;align-self:center}.tech-stack-intro .section-copy{max-width:36rem}.tech-stack-grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem}.tech-stack-card{position:relative;min-height:170px;padding:1rem;border-radius:22px;border:1px solid rgba(255,255,255,.08);background:#070a12c7;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);overflow:hidden;box-shadow:inset 0 1px #ffffff0d}.tech-stack-card:before{content:"";position:absolute;inset:auto -18% -38% auto;width:150px;aspect-ratio:1;border-radius:50%;opacity:.45;filter:blur(16px)}.tech-stack-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem}.tech-stack-card-head p{margin:0;font-size:1.15rem;font-weight:700;letter-spacing:-.02em;color:var(--text-primary)}.tech-stack-card-head span{flex-shrink:0;border-radius:999px;padding:.28rem .55rem;font-size:.72rem;font-weight:700;letter-spacing:.08em;color:#edf2ffe6;background:#ffffff0f;border:1px solid rgba(255,255,255,.12)}.tech-stack-tags{margin-top:1.35rem;display:flex;flex-wrap:wrap;gap:.6rem}.tech-stack-tags span{position:relative;display:inline-flex;align-items:center;min-height:42px;padding:.55rem .8rem;border-radius:14px;border:1px solid rgba(255,255,255,.09);background:#ffffff0a;color:var(--text-primary);font-size:.92rem;font-weight:600;line-height:1.2}.accent-cyan:before{background:#56c6ff80}.accent-violet:before{background:#a274ff7a}.accent-green:before{background:#4adfa575}.accent-orange:before{background:#ffab5f7a}.contact-block{border-radius:20px;border:1px solid var(--stroke);padding:1.2rem;background:var(--panel)}.contact-links{margin-top:1rem;display:flex;flex-wrap:wrap;gap:.6rem}.telegram-link,.email-link{display:inline-flex;align-items:center;gap:.65rem;border-radius:999px;border:1px solid var(--stroke);padding:.46rem .8rem;background:#ffffff06;color:var(--text-primary)}.telegram-link span,.email-link span{color:var(--text-secondary);font-size:.9rem}footer{margin-top:2.6rem;color:var(--text-dim);font-size:.82rem}footer a{color:var(--text-secondary)}footer a:hover{color:var(--text-primary)}.bg-orb{position:fixed;z-index:-3;border-radius:50%;filter:blur(88px);opacity:.42;animation:drift 10s ease-in-out infinite alternate}.orb-a{width:290px;height:290px;top:-35px;left:max(-120px,calc(50% - 640px));background:#4a66ff}.orb-b{width:260px;height:260px;right:max(-110px,calc(50% - 620px));top:37vh;background:#31c4aa;animation-delay:2s}.bg-grid{position:fixed;inset:0;z-index:-4;background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);background-size:34px 34px;-webkit-mask-image:radial-gradient(circle at top center,black 25%,transparent 90%);mask-image:radial-gradient(circle at top center,black 25%,transparent 90%);opacity:.32}@keyframes drift{0%{transform:translateZ(0) scale(1)}to{transform:translate3d(12px,-8px,0) scale(1.07)}}@keyframes scroll-logos{0%{transform:translate(0)}to{transform:translate(-50%)}}@media(max-width:900px){.topbar{grid-template-columns:1fr auto;grid-template-areas:"brand lang" "nav nav"}.brand{grid-area:brand}.topnav{grid-area:nav;justify-content:flex-start}.lang-switch{grid-area:lang;justify-self:end}.project-grid,.company-grid{grid-template-columns:1fr}.tech-stack-shell{grid-template-columns:1fr;gap:.9rem}.tech-stack-intro{padding:.1rem .1rem 0}.tech-stack-intro .section-copy{max-width:none}.tech-stack-grid{grid-template-columns:1fr}.project-head{flex-direction:column}.status-row{justify-content:flex-start}}@media(min-width:901px){.project-summary{display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden;min-height:7.1em}}@media(max-width:620px){.page-shell{padding-top:1.1rem}.hero{padding-top:2.2rem}.topnav{gap:.55rem;flex-wrap:wrap}.topnav a{font-size:.84rem}.brand-mark{width:50px;height:50px;border-radius:12px}.brand-image{width:44px;height:44px}.brand-copy strong{font-size:1rem}.visual-box{min-height:128px}.project-logo-text{font-size:.98rem}.tech-stack-shell{padding:1rem;border-radius:20px}.tech-stack-card{min-height:auto}}
