:root{--bg:#0c0b10;--surface:#16141d;--purple:#a894c0;--purple-dim:#8878a4;--purple-soft:#d4c8e8;--text:#ebe6f4;--muted:#9a94aa;--border:#ffffff1a;--glass-bg:#0c0b106b;--glass-border:#a894c01a;--font-mono:"JetBrains Mono", monospace;--rust:#dea584;--cpp:#8ab4f8;--py:#ffd43b;--go:#5bc0de;--telegram:#2aabee;--instagram:#e1306c;--discord:#5865f2}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg);min-height:100%;color:var(--text);font-family:var(--font-mono);-webkit-font-smoothing:antialiased}body{overflow:hidden}body.page-scroll{overflow:hidden auto}body.page-home{-webkit-user-select:none;user-select:none}body.page-home .site-footer,body.page-home .site-footer__panel,body.page-home .site-footer a,body.page-home .lang-modal,body.page-home .lang-modal *{-webkit-user-select:text;user-select:text}#portal-canvas,#stars-canvas{z-index:0;pointer-events:none;width:100%;height:100%;position:fixed;inset:0}.vignette{z-index:1;pointer-events:none;background:radial-gradient(75% 70%,#0000 35%,#08070c40 70%,#06050a8c 100%);position:fixed;inset:0}.hud{z-index:40;pointer-events:none;padding:1rem 1.25rem;position:fixed;top:0;right:0}.glass-panel{border:1px solid var(--glass-border);background:var(--glass-bg);-webkit-backdrop-filter:blur(10px);box-shadow:inset 0 0 0 1px #ffffff08,0 12px 32px #00000052}.glass-panel--compact{border-radius:2px;padding:.5rem .85rem}.glass-panel--card{padding:.85rem 1.1rem}.hero__card .glass-panel{-webkit-backdrop-filter:none}.hud__panel{color:var(--muted);pointer-events:none;align-items:center;gap:.45rem;font-size:.65rem;display:flex}.dot{background:var(--purple-dim);border-radius:50%;width:5px;height:5px}.hero{z-index:10;min-height:100vh;flex-direction:column;justify-content:center;align-items:center;width:100%;min-height:100dvh;padding:2rem clamp(1.25rem,5vw,2.5rem);display:flex;position:relative;overflow:visible}.hero__card{text-align:center;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;width:min(100%,520px)}.hero__title{font-family:var(--font-mono);letter-spacing:.14em;text-transform:lowercase;color:var(--text);margin-bottom:1.75rem;font-size:clamp(1.85rem,5vw,2.75rem);font-weight:700;line-height:1.2}.stack{flex-wrap:wrap;justify-content:center;align-items:center;gap:.65rem 1.6rem;margin-bottom:1.15rem;display:flex;overflow:visible}.lang-btn{--lang-color:var(--purple-soft);--icon-motion:none;isolation:isolate;min-height:36px;font-family:var(--font-mono);color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:.55rem;padding:.45rem .5rem;font-size:.8rem;transition:color .28s;display:inline-flex;position:relative}.lang-btn:before{content:"";z-index:-1;border-radius:inherit;opacity:0;pointer-events:none;background:currentColor;border:1px solid;transition:opacity .25s,transform .3s;position:absolute;inset:0;transform:scale(.94)}.lang-btn:focus-visible{outline:1px solid var(--lang-color);outline-offset:3px}.lang-btn:focus-visible,.lang-btn:active{color:var(--lang-color)}.lang-btn:focus-visible:before,.lang-btn:active:before{opacity:.08;transform:scale(1)}.lang-btn:focus-visible .lang-btn__icon{animation:var(--icon-motion)}.lang-btn__icon{fill:currentColor;transform-box:fill-box;transform-origin:50%;flex-shrink:0;width:18px;height:18px}.lang-btn[data-lang=rust]{--lang-color:var(--rust);--icon-motion:lang-spin 2.4s linear infinite}.lang-btn[data-lang=cpp]{--lang-color:var(--cpp);--icon-motion:lang-turn .9s ease-in-out}.lang-btn[data-lang=python]{--lang-color:var(--py);--icon-motion:lang-sway 1s ease-in-out}.lang-btn[data-lang=go]{--lang-color:var(--go);--icon-motion:lang-dash 1s ease-in-out}.lang-btn[data-lang=react]{--lang-color:#61dafb;--icon-motion:lang-spin 5s linear infinite}.lang-btn[data-lang=typescript]{--lang-color:#87b5ff;--icon-motion:lang-turn .9s ease-in-out}.lang-btn[data-lang=typescript] path{stroke-dasharray:50;stroke-dashoffset:0}.lang-btn[data-lang=typescript]:focus-visible path{animation:1s both lang-draw}@media (hover:hover) and (pointer:fine){.lang-btn:hover{color:var(--lang-color)}.lang-btn:hover:before{opacity:.08;transform:scale(1)}.lang-btn:hover .lang-btn__icon{animation:var(--icon-motion)}.lang-btn[data-lang=typescript]:hover path{animation:1s both lang-draw}}@keyframes lang-spin{to{transform:rotate(360deg)}}@keyframes lang-turn{0%,to{transform:perspective(100px)rotateY(0)}40%{transform:perspective(100px)rotateY(-35deg)rotate(-8deg)scale(1.08)}70%{transform:perspective(100px)rotateY(15deg)rotate(3deg)}}@keyframes lang-sway{0%,to{transform:rotate(0)}25%{transform:rotate(-18deg)scale(1.08)}55%{transform:rotate(14deg)scale(1.08)}80%{transform:rotate(-5deg)}}@keyframes lang-dash{0%,to{transform:translate(0)}25%{transform:translate(-3px)skew(-10deg)}55%{transform:translate(5px)skew(-10deg)}80%{transform:translate(-1px)}}@keyframes lang-draw{0%{stroke-dashoffset:50px}to{stroke-dashoffset:0}}@media (prefers-reduced-motion:reduce){.lang-btn,.lang-btn:before{transition:none}.lang-btn .lang-btn__icon,.lang-btn[data-lang=typescript] path{animation:none!important}.lang-btn:before{transform:none}}.lang-modal[hidden]{display:none}.lang-modal{z-index:100;justify-content:center;align-items:center;padding:1.25rem;display:flex;position:fixed;inset:0}.lang-modal__backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#040308b8;position:absolute;inset:0}.lang-modal__panel{border:1px solid var(--border);background:linear-gradient(165deg,#181620f5 0%,#0e0c12fa 100%);border-radius:4px;width:min(420px,100%);padding:1.35rem 1.4rem 1.25rem;position:relative;box-shadow:0 20px 60px #0000008c}.lang-modal__close{color:var(--muted);cursor:pointer;background:0 0;border:none;font-size:1.35rem;line-height:1;position:absolute;top:.5rem;right:.65rem}.lang-modal__close:hover{color:var(--purple-soft)}.lang-modal__title{letter-spacing:.04em;margin-bottom:.65rem;font-size:1rem;font-weight:500}.lang-modal__body{color:var(--muted);margin-bottom:1rem;font-size:.78rem;line-height:1.65}.lang-modal__links{border-top:1px solid var(--border);flex-wrap:wrap;gap:.45rem;padding-top:.85rem;display:flex}.lang-modal__link{letter-spacing:.03em;color:var(--purple-soft);border:1px solid #a894c038;border-radius:2px;align-items:center;padding:.28rem .55rem;font-size:.68rem;text-decoration:none;transition:color .2s,border-color .2s,background .2s;display:inline-flex}.lang-modal__link:hover{color:var(--text);background:#a894c014;border-color:#a894c073}.lang-modal__panel[data-lang=rust] .lang-modal__title{color:var(--rust)}.lang-modal__panel[data-lang=cpp] .lang-modal__title{color:var(--cpp)}.lang-modal__panel[data-lang=python] .lang-modal__title{color:var(--py)}.lang-modal__panel[data-lang=go] .lang-modal__title{color:var(--go)}.lang-modal__panel[data-lang=rust] .lang-modal__link:hover{background:#dea58414;border-color:#dea58473}.lang-modal__panel[data-lang=cpp] .lang-modal__link:hover{background:#8ab4f814;border-color:#8ab4f873}.lang-modal__panel[data-lang=python] .lang-modal__link:hover{background:#ffd43b14;border-color:#ffd43b73}.lang-modal__panel[data-lang=go] .lang-modal__link:hover{background:#5bc0de14;border-color:#5bc0de73}.social{flex-direction:column;align-items:center;gap:.55rem;width:100%;margin-bottom:1.15rem;display:flex}.social__link{color:var(--muted);align-items:center;gap:.65rem;font-size:.8rem;text-decoration:none;transition:color .28s;display:inline-flex}.social__link svg{fill:currentColor;flex-shrink:0;width:18px;height:18px}.social__link[data-social=telegram]:hover,.social__link[data-social=telegram]:focus-visible{color:var(--telegram)}.social__link[data-social=instagram]:hover,.social__link[data-social=instagram]:focus-visible{color:var(--instagram)}.social__link[data-social=discord]:hover,.social__link[data-social=discord]:focus-visible{color:var(--discord)}.btn-contact{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--bg);background:linear-gradient(135deg, var(--purple-soft) 0%, var(--purple) 100%);cursor:pointer;border:none;border-radius:2px;justify-content:center;align-items:center;width:-moz-fit-content;width:fit-content;padding:.85rem 1.75rem;font-size:.75rem;font-weight:600;text-decoration:none;transition:transform .15s,box-shadow .15s;display:inline-flex;box-shadow:0 4px 24px #a894c040}.btn-contact:hover{transform:translateY(-1px);box-shadow:0 6px 28px #a894c059}.btn-contact--full{width:100%;margin-top:.5rem}.page-nav{z-index:20;padding:1rem 1.25rem;position:relative}.page-nav__back{color:var(--muted);font-size:.75rem;text-decoration:none;transition:color .2s}.page-nav__back:hover{color:var(--purple-soft)}.form-page{z-index:10;max-width:520px;margin:0 auto;padding:0 1.25rem 3rem;position:relative}.form-card{border:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:linear-gradient(165deg,#181620eb 0%,#110f16f2 100%);border-radius:4px;padding:1.5rem;box-shadow:0 12px 40px #0006}.form-card__title{font-family:var(--font-mono);letter-spacing:.06em;margin-bottom:.35rem;font-size:1.15rem;font-weight:500}.form-card__hint{color:var(--muted);margin-bottom:1.25rem;font-size:.75rem;line-height:1.5}.form-card__back{margin-top:1rem;display:inline-block}.form-card__closed{border:1px solid #a894c033;border-radius:2px;margin-top:1rem;padding:.75rem}.field{margin-bottom:1rem;display:block}.field__label{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:.35rem;font-size:.65rem;display:block}.field__input{width:100%;font-family:var(--font-mono);color:var(--text);border:1px solid var(--border);background:#0c0b10cc;border-radius:2px;outline:none;padding:.65rem .75rem;font-size:.8rem;transition:border-color .2s}.field__input:focus{border-color:#a894c073}.field__textarea{resize:vertical;min-height:120px}.field__file{padding:.5rem;font-size:.7rem}.field__hint{color:var(--muted);margin-top:.35rem;font-size:.65rem;display:block}.form-consent{color:var(--muted);margin:.25rem 0 .85rem;font-size:.68rem;line-height:1.5}.form-consent a{color:var(--purple-soft);text-underline-offset:2px;text-decoration:underline}.site-footer{z-index:15;pointer-events:none;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;bottom:0;left:0;right:0}.site-footer__panel{letter-spacing:.04em;color:var(--muted);pointer-events:auto;align-items:center;gap:.45rem;font-size:.62rem;display:flex}.site-footer a{pointer-events:auto;color:var(--muted);text-decoration:none;transition:color .2s}.site-footer a:hover{color:var(--purple-soft)}.site-footer__sep{opacity:.45}.legal-page{z-index:10;max-width:640px;margin:0 auto;padding:0 1.25rem 4rem;position:relative}.legal-doc{border:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:linear-gradient(165deg,#181620eb 0%,#110f16f2 100%);border-radius:4px;padding:1.5rem 1.4rem}.legal-doc__title{letter-spacing:.06em;margin-bottom:.35rem;font-size:1.15rem;font-weight:600}.legal-doc__meta{color:var(--muted);margin-bottom:1.25rem;font-size:.68rem}.legal-doc__lead{color:var(--text);margin-bottom:.25rem;font-size:.78rem;line-height:1.6}.legal-doc__section{margin-bottom:1.15rem}.legal-doc__section h2{letter-spacing:.05em;text-transform:uppercase;color:var(--purple-soft);margin-bottom:.45rem;font-size:.78rem;font-weight:600}.legal-doc__section p,.legal-doc__section li{color:var(--text);font-size:.75rem;line-height:1.55}.legal-doc__section p{margin-bottom:.55rem}.legal-doc__section ul{margin:.35rem 0 .55rem 1.1rem}.legal-doc__section li{margin-bottom:.25rem}.legal-doc__section a{color:var(--purple-soft);text-underline-offset:2px;text-decoration:underline}.legal-doc__section code{color:var(--purple-soft);font-size:.9em}.hp-field{opacity:0;width:0;height:0;position:absolute;left:-9999px}.form-status{color:var(--purple-soft);margin-top:.75rem;font-size:.75rem}.form-status.is-error{color:#e88}.chat{flex-direction:column;gap:.75rem;max-height:50vh;margin-bottom:1.25rem;display:flex;overflow-y:auto}.chat__msg{border:1px solid var(--border);border-radius:2px;padding:.75rem;font-size:.78rem;line-height:1.5}.chat__msg--user{background:#a894c014;margin-right:1.5rem}.chat__msg--admin,.chat__msg--email{background:#16141ce6;border-color:#a894c033;margin-left:1.5rem}.chat__meta{color:var(--muted);margin-bottom:.35rem;font-size:.6rem}.chat__body{white-space:pre-wrap;overflow-wrap:anywhere}.chat__att{color:var(--purple-soft);margin-top:.35rem;font-size:.65rem;display:block}@media (max-width:768px){.hero{padding-top:4rem}.hero__title{letter-spacing:.12em}}body.page-home{overflow:hidden auto}.page-home .hero{padding-top:5rem;padding-bottom:6rem}.page-home .hero__card{padding:1.6rem}.page-home .stack{grid-template-columns:repeat(3,max-content);gap:.5rem .9rem;display:grid}.lang-btn__icon--outline{fill:none;stroke:currentColor;stroke-width:1.3px}.lang-modal__panel[data-lang=react] .lang-modal__title{color:#61dafb}.lang-modal__panel[data-lang=typescript] .lang-modal__title{color:#87b5ff}.project{border-top:1px solid var(--border);text-align:left;margin-top:1.3rem;padding-top:1.25rem}.project__heading{flex-wrap:wrap;align-items:center;gap:.65rem;display:flex}.project__icon{width:32px;height:32px;color:var(--purple-soft);flex-shrink:0}.project h2{letter-spacing:.02em;font-size:.95rem;font-weight:600}.project__type{color:var(--muted);margin-left:auto;font-size:.65rem}.project__description{color:var(--muted);margin:.8rem 0 1rem;font-size:.75rem;line-height:1.65}.project__links{flex-wrap:wrap;align-items:center;gap:.75rem 1rem;display:flex}.project__link,.project__docs{align-items:center;gap:.5rem;font-size:.7rem;line-height:1.5;text-decoration:none;display:inline-flex}.project__link{color:var(--purple-soft);background:#a894c01a;border:1px solid #a894c04d;border-radius:3px;padding:.65rem .8rem}.project__docs{color:var(--muted);padding-block:.65rem}.project__link:hover{border-color:var(--purple-dim);background:#a894c02e}.project__docs:hover{color:var(--purple-soft)}.project a:focus-visible{outline:2px solid var(--purple);outline-offset:4px}.contact-options{gap:.75rem;margin-top:1.25rem;display:grid}.contact-options a{color:var(--purple-soft);overflow-wrap:anywhere}@media (max-width:420px){.page-home .hero__card{padding:1.25rem}.page-home .stack{grid-template-columns:repeat(2,max-content);gap:.5rem 1.1rem}.project__type{margin-left:0}}.hero__bio{color:var(--muted,#aaa3b8);text-align:center;margin:0 0 1.5rem;font-size:.85rem;line-height:1.6}
