*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#062020;font-family:system-ui,Segoe UI,Roboto,sans-serif;overflow:hidden}#root{width:100vw;height:100vh}.scene--background,.scene--background canvas{pointer-events:none}.battleship-promo{--battleship-green:#6c6;--battleship-green-50:#66cc6680;--battleship-green-25:#66cc6640;--battleship-text:#fff;--battleship-text-50:#ffffff80;color:inherit;flex-direction:column;align-items:flex-start;text-decoration:none;display:inline-flex;position:relative}.battleship-promo-badge{color:var(--battleship-text);letter-spacing:.04em;text-transform:uppercase;background-color:var(--battleship-green-25);background-image:linear-gradient(to right, var(--battleship-text-50) 2px, transparent 2px), linear-gradient(to right, var(--battleship-text-50) 2px, transparent 2px), linear-gradient(to left, var(--battleship-text-50) 2px, transparent 2px), linear-gradient(to left, var(--battleship-text-50) 2px, transparent 2px), linear-gradient(to bottom, var(--battleship-text-50) 2px, transparent 2px), linear-gradient(to bottom, var(--battleship-text-50) 2px, transparent 2px), linear-gradient(to top, var(--battleship-text-50) 2px, transparent 2px), linear-gradient(to top, var(--battleship-text-50) 2px, transparent 2px);background-position:0 0,0 100%,100% 0,100% 100%,0 0,100% 0,0 100%,100% 100%;background-repeat:no-repeat;background-size:40px 10px;border-radius:4px;align-items:center;gap:.55rem;margin:0;padding:.4rem .75rem .35rem;font-family:Russo One,system-ui,sans-serif;font-size:.95rem;font-weight:400;display:inline-flex;transform:rotate(-2deg)}.battleship-promo--desktop .battleship-promo-badge{transition:transform .3s ease-in-out,box-shadow .3s}.battleship-promo--desktop:hover .battleship-promo-badge,.battleship-promo--desktop:focus-visible .battleship-promo-badge{box-shadow:0 0 18px var(--battleship-green-50);transform:rotate(-2deg)scale(1.05)}.battleship-promo:focus-visible{outline:none}.battleship-promo-icon{background-color:var(--battleship-text);flex-shrink:0;width:1.85rem;height:1.85rem;animation:8s infinite battleship-promo-spin;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.battleship-promo-title{gap:.35rem;line-height:1;display:inline-flex}.battleship-promo--desktop .battleship-promo-hint{z-index:2;border:1px solid var(--battleship-green-50);color:#d8ffe0;letter-spacing:.01em;text-align:center;white-space:normal;opacity:0;pointer-events:none;background:#061812eb;border-radius:.45rem;width:max-content;max-width:16rem;padding:.45rem .65rem;font-family:system-ui,Segoe UI,Roboto,sans-serif;font-size:.72rem;font-weight:500;line-height:1.35;transition:opacity .2s,transform .2s;position:absolute;top:calc(100% + .55rem);left:50%;transform:translate(-50%,.25rem)}.battleship-promo--desktop:hover .battleship-promo-hint,.battleship-promo--desktop:focus-visible .battleship-promo-hint{opacity:1;transform:translate(-50%)}.battleship-promo--desktop{z-index:4;pointer-events:auto;position:fixed;top:min(62vh,34rem);left:50%;transform:translate(-50%)}.battleship-promo--mobile{margin-top:.75rem}.battleship-promo--mobile .battleship-promo-badge{padding:.45rem .7rem .4rem;font-size:.82rem}.battleship-promo--mobile .battleship-promo-icon{width:1.55rem;height:1.55rem}.battleship-promo--mobile .battleship-promo-hint{color:#d8ffe0c7;text-align:left;margin-top:.45rem;font-family:system-ui,Segoe UI,Roboto,sans-serif;font-size:.72rem;font-weight:500;line-height:1.35;display:block}@keyframes battleship-promo-spin{0%{animation-timing-function:cubic-bezier(.45,.05,.85,.4);transform:rotate(0)}42%{animation-timing-function:cubic-bezier(.2,.8,.4,1);transform:rotate(300deg)}48%{animation-timing-function:linear;transform:rotate(400deg)}52%{animation-timing-function:cubic-bezier(.45,.05,.85,.4);transform:rotate(400deg)}94%{animation-timing-function:cubic-bezier(.15,.85,.35,1);transform:rotate(40deg)}to{transform:rotate(0)}}@media (prefers-reduced-motion:reduce){.battleship-promo-icon{animation:none}.battleship-promo--desktop .battleship-promo-badge,.battleship-promo--desktop:hover .battleship-promo-badge,.battleship-promo--desktop:focus-visible .battleship-promo-badge{transition:none}}.card-overlay{z-index:100;background:#0006;justify-content:center;align-items:center;animation:.3s fadeIn;display:flex;position:fixed;inset:0}.card{--card-bg:#0c0e10eb;--card-border:#a0aab440;--card-shadow:#00000059;--card-color:#e4e8ec;--card-muted:#9aa3ab;--card-muted-strong:#c0c7ce;--card-link:#a8b4c0;--card-surface:#a0aab414;--card-surface-strong:#a0aab41f;--card-border-soft:#a0aab42e;--card-link-border:#a0aab459;--card-link-border-hover:#b4bec8a6;--card-link-bg-hover:#a0aab41f;--card-scrollbar-track:#a0aab41a;--card-scrollbar-thumb:#a0aab459;--card-scrollbar-thumb-hover:#a0aab48c;--card-body:#c8d0d8;--card-accent:#f7df1e;background:var(--card-bg);border:1px solid var(--card-border);cursor:default;width:min(1200px,80vw);min-width:300px;max-width:min(1200px,80vw);max-height:85vh;color:var(--card-color);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 0 40px var(--card-shadow);border-radius:16px;padding:32px;animation:.3s slideIn;position:relative;overflow-y:auto}.card::-webkit-scrollbar{width:6px}.card::-webkit-scrollbar-track{background:var(--card-scrollbar-track);border-radius:3px}.card::-webkit-scrollbar-thumb{background:var(--card-scrollbar-thumb);border-radius:3px}.card::-webkit-scrollbar-thumb:hover{background:var(--card-scrollbar-thumb-hover)}.card-close{float:right;z-index:10;color:var(--card-muted);cursor:pointer;background:0 0;border:none;margin-top:-4px;margin-right:-8px;padding:4px 8px;font-size:28px;line-height:1;transition:color .2s;position:sticky;top:0}.card-close:hover{color:#fff}.card h2{color:#fff;margin:0 0 8px;font-size:24px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{opacity:0;transform:translateY(16px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}@media (width<=670px){.card:has(.card-sun){border:none;border-radius:0;width:100%;max-width:100%;height:100dvh;max-height:100dvh;padding:20px 16px}.card:has(.card-sun)>.card-close{top:8px;right:12px}}.card-photo{object-fit:cover;border:3px solid #f7df1e66;border-radius:50%;width:140px;height:140px;box-shadow:0 0 20px #f7df1e33}.card-sun-header{grid-template-columns:auto 1fr;align-items:flex-start;gap:28px;margin-bottom:8px;display:grid}.card-sun-info{flex-direction:column;display:flex}.card-sun-info h2{color:#fff;margin:0 0 4px;font-size:32px}.card-job{color:var(--card-muted-strong);margin-bottom:16px;font-size:18px}.card-contacts{flex-wrap:wrap;gap:12px;display:flex}.card-contacts a{color:var(--card-link);border:1px solid var(--card-link-border);border-radius:8px;padding:6px 14px;font-size:16px;text-decoration:none;transition:all .2s}.card-contacts a:hover{color:#fff;border-color:var(--card-link-border-hover);background:var(--card-link-bg-hover)}.card-resume-download{color:#1a1a12;background:var(--card-accent);border:1px solid var(--card-accent);border-radius:8px;align-self:flex-start;align-items:center;gap:8px;margin-top:14px;padding:10px 18px;font-size:15px;font-weight:600;text-decoration:none;transition:background .2s,border-color .2s,color .2s;display:inline-flex}.card-resume-download img{flex-shrink:0;width:16px;height:16px;display:block}.card-resume-download:hover{color:#111;background:#ffe94a;border-color:#ffe94a}.card-section{background:var(--card-surface);border-radius:12px;margin:20px 0;padding:16px}.card-section-title{color:var(--card-accent);text-transform:uppercase;letter-spacing:.5px;margin:0 0 12px;font-size:16px;font-weight:600}.card-about{color:var(--card-body);margin:0;font-size:18px;line-height:1.6}.card-about p+p{margin-top:12px}.education-item{flex-direction:column;gap:6px;display:flex}.education-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.education-level{color:#fff;font-size:16px;font-weight:500}.education-year{color:var(--card-muted);font-size:16px}.education-institution{color:var(--card-muted-strong);font-size:16px;font-weight:500}.education-faculty{color:var(--card-link);font-size:16px}.education-speciality{color:var(--card-muted);font-size:16px;font-style:italic}.experience-item{border-top:1px solid var(--card-border-soft);padding:16px 0}.experience-item:first-child{border-top:none;padding-top:0}.experience-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px;display:flex}.experience-header h3{color:#fff;margin:0;font-size:18px}.experience-company{color:var(--card-accent);white-space:nowrap;font-size:16px;font-weight:500}.experience-meta{color:var(--card-muted);gap:8px;margin-bottom:12px;font-size:16px;display:flex}.experience-project{background:var(--card-surface-strong);border-radius:8px;margin-bottom:12px;padding:12px}.experience-project strong{color:var(--card-muted-strong);font-size:16px}.project-description{color:var(--card-body);margin:6px 0 8px;font-size:16px;line-height:1.5}.project-tech{flex-wrap:wrap;gap:6px;display:flex}.tech-tag{color:var(--card-accent);background:#f7df1e26;border-radius:4px;padding:3px 8px;font-size:16px;font-weight:500}.experience-achievements{color:var(--card-body);margin:0;padding-left:18px;font-size:16px;line-height:1.6}.experience-achievements li{margin-bottom:6px}@media (width<=600px){.card-sun-header{text-align:center;flex-direction:column;align-items:center;gap:16px;display:flex}.card-sun-info{align-items:center}.card-sun-info h2{font-size:24px}.card-job{margin-bottom:12px;font-size:16px}.card-contacts{justify-content:center}.card-contacts a{padding:6px 12px;font-size:13px}.card-resume-download{align-self:center;padding:9px 16px;font-size:14px}}.card-tech-dot{border-radius:50%;width:48px;height:48px;margin-bottom:16px}.card-proficiency{margin:16px 0}.card-proficiency-label{color:var(--card-muted);margin-bottom:6px;font-size:16px}.card-proficiency-bar{background:var(--card-surface-strong);border-radius:3px;height:6px;overflow:hidden}.card-proficiency-fill{border-radius:3px;height:100%;transition:width .5s}.card-description{color:var(--card-body);margin:16px 0 0;font-size:16px;line-height:1.6}.mobile-cv{--mobile-cv-border:#7dd3fc29;--mobile-cv-muted:#aebfcc;--mobile-cv-panel:#05181ed1;--mobile-cv-text:#f4fbff;z-index:10;color:var(--mobile-cv-text);pointer-events:auto;scrollbar-color:#7dd3fc73 transparent;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;background:radial-gradient(circle at 82% 3%,#38bdf81f,#0000 28rem),linear-gradient(#03121852,#031218c7);position:fixed;inset:0;overflow:hidden auto}.mobile-cv-content{width:min(100%,48rem);padding:max(1rem, env(safe-area-inset-top)) 1rem max(3rem, env(safe-area-inset-bottom));margin:0 auto}.mobile-cv-hero,.mobile-cv-section{border:1px solid var(--mobile-cv-border);background:var(--mobile-cv-panel);-webkit-backdrop-filter:blur(1rem);border-radius:1.25rem;box-shadow:0 1.25rem 3rem #0003}.mobile-cv-hero{grid-template-columns:6.5rem minmax(0,1fr);align-items:center;gap:1rem;padding:1.25rem;display:grid}.mobile-cv-photo{aspect-ratio:1;object-fit:cover;border:2px solid #7dd3fc73;border-radius:50%;width:6.5rem;box-shadow:0 0 2rem #38bdf82e}.mobile-cv-eyebrow{color:#7dd3fc;letter-spacing:.16em;text-transform:uppercase;margin-bottom:.3rem;font-size:.68rem;font-weight:700}.mobile-cv-hero h1{letter-spacing:-.045em;font-size:clamp(1.6rem,8vw,2.35rem);line-height:1.02}.mobile-cv-job{color:var(--mobile-cv-muted);margin-top:.45rem;font-size:.95rem}.mobile-cv-contacts{flex-wrap:wrap;gap:.45rem;margin-top:.9rem;display:flex}.mobile-cv-contacts a{color:#d9f3ff;border:1px solid #7dd3fc47;border-radius:999px;padding:.38rem .65rem;font-size:.76rem;font-weight:650;text-decoration:none}.mobile-cv-actions{flex-wrap:wrap;align-items:flex-start;gap:.65rem .85rem;margin-top:.75rem;display:flex}.mobile-cv-resume{color:#1a1a12;background:#f7df1e;border:1px solid #f7df1e;border-radius:.65rem;align-items:center;gap:.45rem;padding:.55rem .9rem;font-size:.84rem;font-weight:700;text-decoration:none;display:inline-flex}.mobile-cv-actions .battleship-promo--mobile{margin-top:0}.mobile-cv-resume img{flex-shrink:0;width:1rem;height:1rem;display:block}.mobile-cv-section{margin-top:.75rem;padding:1.25rem}.mobile-cv-section>h2{color:#e7f7ff;letter-spacing:.15em;text-transform:uppercase;margin-bottom:1rem;font-size:.78rem}.mobile-cv-about{color:#d5e2e8;gap:.8rem;font-size:.94rem;line-height:1.65;display:grid}.mobile-cv-timeline{gap:1rem;display:grid}.mobile-cv-experience{border-left:1px solid #7dd3fc4d;padding-left:1rem;position:relative}.mobile-cv-experience:before{content:"";background:#7dd3fc;border-radius:50%;width:.55rem;height:.55rem;position:absolute;top:.45rem;left:-.3rem;box-shadow:0 0 .75rem #7dd3fc99}.mobile-cv-experience-heading,.mobile-cv-education-heading{justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.mobile-cv-experience h3,.mobile-cv-education h3{font-size:1rem;line-height:1.35}.mobile-cv-company,.mobile-cv-institution{color:#7dd3fc;font-weight:650}.mobile-cv-company{margin-top:.2rem;font-size:.88rem}.mobile-cv-duration,.mobile-cv-education-heading span{color:#c8eafa;white-space:nowrap;background:#7dd3fc1a;border-radius:999px;flex:none;padding:.28rem .5rem;font-size:.68rem}.mobile-cv-meta{color:var(--mobile-cv-muted);margin-top:.6rem;font-size:.75rem;line-height:1.45}.mobile-cv-project{color:#d7e4e9;gap:.35rem;margin-top:.75rem;font-size:.84rem;line-height:1.5;display:grid}.mobile-cv-tech-list{flex-wrap:wrap;gap:.35rem;margin-top:.75rem;list-style:none;display:flex}.mobile-cv-tech-list li{color:#cbd8de;background:#ffffff12;border-radius:.3rem;padding:.25rem .4rem;font-size:.67rem}.mobile-cv-achievements{color:#cbd8de;gap:.55rem;margin-top:.85rem;padding-left:1rem;font-size:.82rem;line-height:1.5;display:grid}.mobile-cv-achievements li::marker{color:#7dd3fc}.mobile-cv-education{color:var(--mobile-cv-muted);gap:.4rem;font-size:.84rem;line-height:1.5;display:grid}.mobile-cv-institution{margin-top:.35rem}.mobile-cv-orbit+.mobile-cv-orbit{margin-top:1.1rem}.mobile-cv-orbit h3{align-items:center;gap:.55rem;margin-bottom:.65rem;font-size:.9rem;display:flex}.mobile-cv-orbit h3 span{color:#7dd3fc;border:1px solid #7dd3fc4d;border-radius:50%;place-items:center;width:1.5rem;height:1.5rem;font-size:.68rem;display:grid}.mobile-cv-chips{flex-wrap:wrap;gap:.45rem;max-width:100%;display:flex}.mobile-cv-chip{color:#edf9ff;max-width:100%;font:inherit;cursor:pointer;background:#fff1;border:1px solid #ffffff1c;border-radius:999px;align-items:center;gap:.45rem;padding:.55rem .75rem;font-size:.8rem;display:inline-flex}.mobile-cv-chip-dot{border-radius:50%;flex:none;width:.55rem;height:.55rem}.mobile-cv-contacts a:focus-visible,.mobile-cv-resume:focus-visible,.mobile-cv-chip:focus-visible{outline-offset:2px;outline:2px solid #7dd3fc}@media (hover:hover){.mobile-cv-contacts a,.mobile-cv-chip{transition:border-color .16s,background .16s,transform .16s}.mobile-cv-contacts a:hover,.mobile-cv-chip:hover{background:#7dd3fc1f;border-color:#7dd3fc8c;transform:translateY(-1px)}.mobile-cv-resume{transition:background .16s,border-color .16s,transform .16s}.mobile-cv-resume:hover{background:#ffe94a;border-color:#ffe94a;transform:translateY(-1px)}}@media (width<=25rem){.mobile-cv-hero{grid-template-columns:4.75rem minmax(0,1fr);padding:1rem}.mobile-cv-photo{width:4.75rem}.mobile-cv-hero h1{font-size:1.45rem}.mobile-cv-experience-heading{display:grid}.mobile-cv-duration{width:fit-content}}@media (prefers-reduced-motion:reduce){.mobile-cv-contacts a,.mobile-cv-resume,.mobile-cv-chip{transition:none}}.tech-sheet{z-index:40;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.tech-sheet-backdrop{cursor:pointer;background:#0000008c;border:0;position:absolute;inset:0}.tech-sheet-panel{--card-muted:#9aa3ab;--card-surface-strong:#a0aab41f;--card-body:#c8d0d8;z-index:1;background:#0a121cf5;border-radius:16px 16px 0 0;width:100%;max-height:min(70dvh,560px);padding:1.25rem 1.25rem 1.75rem;position:relative;overflow:auto;box-shadow:0 -8px 32px #0006}.tech-sheet-close{color:#c8cddf;cursor:pointer;background:0 0;border:0;font-size:1.5rem;line-height:1;position:absolute;top:.75rem;right:.75rem}
