/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-400-normal-DZqxrq2p.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-400-normal-BTotfTJu.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-500-normal-CocWQlwt.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-500-normal-ByOcLdNv.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-600-normal-71GNu3SW.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-600-normal-BGq0mW3O.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff)format("woff")}@font-face{font-family:Unbounded;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/unbounded-cyrillic-500-normal-vuFlZByi.woff2)format("woff2"),url(/assets/unbounded-cyrillic-500-normal-CRDmNtZY.woff)format("woff")}@font-face{font-family:Unbounded;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/unbounded-cyrillic-600-normal-DW6uzIMB.woff2)format("woff2"),url(/assets/unbounded-cyrillic-600-normal-B-s5c2Kn.woff)format("woff")}@font-face{font-family:Unbounded;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/unbounded-latin-500-normal-4slEIF53.woff2)format("woff2"),url(/assets/unbounded-latin-500-normal-ZsrgWWU1.woff)format("woff")}@font-face{font-family:Unbounded;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/unbounded-latin-600-normal-oRSANpZr.woff2)format("woff2"),url(/assets/unbounded-latin-600-normal-BPdB_PEv.woff)format("woff")}@layer theme{:root,:host{--font-sans:"IBM Plex Sans", "Segoe UI", system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--font-display:"Unbounded", "Segoe UI", system-ui, sans-serif;--color-ink:#0b0c0e;--color-panel:#121418;--color-card:#171a1f;--color-line:#2c3138;--color-muted:#8b919a;--color-paper:#ece8e1;--color-accent:#e07a3d}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.contents{display:contents}.hidden{display:none}}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--header-h:72px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 12px);overflow-x:hidden}body{background:var(--color-ink);min-width:320px;color:var(--color-paper);font-family:var(--font-sans);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;margin:0;font-size:17px;line-height:1.6;overflow-x:hidden}img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}code{font-family:var(--font-mono);color:var(--color-accent);font-size:.86em}#root{min-height:100svh;overflow-x:hidden}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:80;background:var(--color-accent);color:var(--color-ink);padding:8px 14px;font-weight:600;position:absolute;top:-48px;left:12px}.skip-link:focus{top:12px}.container{width:min(1180px,100% - 40px);margin-inline:auto}@media (width<=480px){.container{width:min(1180px,100% - 28px)}}.reveal{opacity:0;transition:opacity .7s,transform .7s;transform:translateY(16px)}.reveal.is-in{opacity:1;transform:none}.site-header{z-index:40;height:var(--header-h);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#0b0c0eb8;border-bottom:1px solid #0000;position:sticky;top:0}.site-header.is-scrolled{border-bottom-color:var(--color-line)}.header-inner{height:var(--header-h);align-items:center;gap:20px;display:flex}.logo{font-family:var(--font-display);letter-spacing:.14em;text-transform:uppercase;align-items:center;gap:7px;font-size:15px;display:inline-flex}.logo-dot{background:var(--color-accent);width:7px;height:7px}.nav-desktop{gap:22px;margin-left:auto;display:none}.nav-desktop a{color:var(--color-muted);letter-spacing:.04em;font-size:13px;transition:color .2s}.nav-desktop a:hover{color:var(--color-paper)}.header-cta{border:1px solid var(--color-line);letter-spacing:.04em;margin-left:8px;padding:8px 14px;font-size:13px;transition:border-color .2s,color .2s;display:none}.header-cta:hover{border-color:var(--color-accent);color:var(--color-accent)}.menu-toggle{border:1px solid var(--color-line);place-items:center;width:44px;height:44px;margin-left:auto;display:grid}.nav-mobile{inset:var(--header-h) 0 0 0;background:#0b0c0ef7;flex-direction:column;gap:4px;padding:18px 20px 32px;display:flex;position:fixed}.nav-mobile-link{border-bottom:1px solid var(--color-line);align-items:center;min-height:52px;font-size:20px;display:flex}@media (width>=900px){.nav-desktop,.header-cta{display:flex}.menu-toggle,.nav-mobile{display:none}}.hero{min-height:calc(100svh - var(--header-h));align-items:center;padding:36px 0 72px;display:flex;position:relative;overflow:hidden}.hero-grid{pointer-events:none;background-image:linear-gradient(#e07a3d0b 1px,#0000 1px),linear-gradient(90deg,#e07a3d0b 1px,#0000 1px);background-size:56px 56px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(at 30% 20%,#000 20%,#0000 72%);mask-image:radial-gradient(at 30% 20%,#000 20%,#0000 72%)}.hero-inner{width:100%;position:relative}.hero-kicker,.section-kicker{color:var(--color-muted);font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;align-items:center;gap:12px;margin:0 0 22px;font-size:12px;display:flex}.section-kicker-line{background:var(--color-accent);width:28px;height:1px}.hero-layout{gap:36px;display:grid}.hero-copy{min-width:0}.hero h1{font-family:var(--font-display);letter-spacing:-.03em;margin:0;font-weight:500;line-height:.92}.hero-first{overflow-wrap:anywhere;font-size:clamp(40px,9vw,96px);display:block}.hero-last{color:#ece8e19e;overflow-wrap:anywhere;font-size:clamp(28px,6.4vw,62px);display:block}.hero-roles{color:var(--color-muted);letter-spacing:.04em;flex-wrap:wrap;align-items:center;gap:8px 0;margin:22px 0 0;font-size:13px;display:flex}.role-sep{background:var(--color-accent);vertical-align:middle;width:4px;height:4px;margin:0 10px;display:inline-block}.hero-location{color:var(--color-muted);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;margin:10px 0 0;font-size:12px}.hero-tagline{color:#ece8e1d1;max-width:58ch;margin:22px 0 0}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:28px;display:flex}.btn{justify-content:center;align-items:center;gap:8px;min-height:48px;padding:0 18px;font-size:15px;transition:transform .2s,background .2s,border-color .2s,color .2s;display:inline-flex}.btn-primary{background:var(--color-accent);color:var(--color-ink);font-weight:600}.btn-primary:hover{background:#ec8a4d}.btn-ghost{border:1px solid var(--color-line)}.btn-ghost:hover{border-color:var(--color-paper)}.hero-photo{max-width:340px}.hero-scroll{color:var(--color-muted);font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;align-items:center;gap:8px;margin-top:48px;font-size:11px;display:inline-flex}.crop-frame{border:1px solid var(--color-line);background:var(--color-panel);margin:0;padding:12px;position:relative}.crop-frame img{aspect-ratio:4/5;object-fit:cover;object-position:center 18%;background:#16181d;width:100%}.crop-frame figcaption{color:var(--color-muted);font-family:var(--font-mono);letter-spacing:.14em;margin-top:10px;font-size:10px}.crop-mark{border:1px solid var(--color-accent);width:14px;height:14px;position:absolute}.crop-mark.tl{border-bottom:0;border-right:0;top:-1px;left:-1px}.crop-mark.tr{border-bottom:0;border-left:0;top:-1px;right:-1px}.crop-mark.bl{border-top:0;border-right:0;bottom:-1px;left:-1px}.crop-mark.br{border-top:0;border-left:0;bottom:-1px;right:-1px}.section{border-top:1px solid var(--color-line);padding:88px 0}.section-head{margin-bottom:28px}.display-title{max-width:18ch;font-family:var(--font-display);letter-spacing:-.03em;margin:0 0 16px;font-size:clamp(28px,4.4vw,46px);font-weight:500;line-height:1.12}.lead{max-width:62ch;color:var(--color-muted);margin:0 0 28px}.about-grid,.skill-grid,.project-grid,.contact-grid{gap:18px;display:grid}.about-points{margin:0;padding:0;list-style:none}.about-points li{border-top:1px solid var(--color-line);color:#ece8e1db;grid-template-columns:42px 1fr;gap:12px;padding:16px 0;display:grid}.about-points span{color:var(--color-accent);font-family:var(--font-mono);font-size:12px}.skill-card,.timeline-card,.project-card,.contact-card,.process-step{background:var(--color-card);border:1px solid var(--color-line)}.skill-card{min-height:100%;padding:22px 22px 18px;transition:border-color .2s}.skill-card:hover{border-color:#e07a3d73}.skill-index{color:var(--color-accent);font-family:var(--font-mono);margin:0 0 18px;font-size:12px}.skill-card h3,.timeline-card h3,.project-card h3,.process-step h3{font-family:var(--font-display);margin:0;font-size:22px;font-weight:500}.skill-lead{color:var(--color-muted);margin:10px 0 18px;font-size:15px}.skill-card ul,.timeline-card ul{margin:0;padding:0;list-style:none}.skill-card li,.tech-row li{border:1px solid var(--color-line);color:#ece8e1e0;margin:0 8px 8px 0;padding:6px 10px;font-size:13px;display:inline-flex}.experience-note{max-width:70ch}.timeline{margin:0;padding:0;list-style:none}.timeline-item{margin-bottom:18px;padding-left:28px;position:relative}.timeline-item:before{content:"";background:var(--color-line);width:1px;position:absolute;top:22px;bottom:-18px;left:5px}.timeline-item:last-child:before{display:none}.timeline-item:after{content:"";border:1px solid var(--color-accent);background:var(--color-ink);width:11px;height:11px;position:absolute;top:28px;left:0}.timeline-card{padding:24px}.timeline-period{color:var(--color-accent);font-family:var(--font-mono);letter-spacing:.08em;margin:0 0 8px;font-size:12px}.timeline-company{color:var(--color-muted);margin:6px 0 14px}.timeline-cols{gap:18px;margin-top:18px;display:grid}.timeline-cols h4{letter-spacing:.12em;text-transform:uppercase;color:var(--color-muted);margin:0 0 8px;font-size:12px}.timeline-cols li{color:#ece8e1db;padding:4px 0}.education{border-top:1px solid var(--color-line);margin-top:36px;padding-top:28px}.education h3{font-family:var(--font-display);margin:0 0 12px;font-size:22px;font-weight:500}.education p{color:var(--color-muted);margin:0}.education span{min-width:52px;color:var(--color-accent);font-family:var(--font-mono);margin-right:10px;font-size:12px;display:inline-block}.project-card{flex-direction:column;height:100%;transition:transform .25s,border-color .25s;display:flex;overflow:hidden}.project-card-link{min-height:0;color:inherit;flex-direction:column;flex:1;display:flex}.project-card-video{border:1px solid var(--color-accent);min-height:46px;color:var(--color-accent);justify-content:center;align-items:center;gap:8px;margin:0 16px 16px;font-size:14px;font-weight:600;display:flex}.project-card-video:hover{background:var(--color-accent);color:var(--color-ink)}.project-card:hover{border-color:#e07a3d80;transform:translateY(-4px)}.project-card-media{background:#101216;position:relative}.project-card-media img{aspect-ratio:16/10;object-fit:cover;object-position:top center;width:100%}.project-badge{border:1px solid var(--color-line);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;background:#0b0c0ed1;padding:4px 8px;font-size:10px;position:absolute;top:12px;left:12px}.project-badge-video{left:auto;right:12px}.project-video{margin-top:4px;margin-bottom:8px}.project-card-body{flex-direction:column;gap:10px;padding:20px 20px 18px;display:flex}.project-card-top{justify-content:space-between;gap:12px;display:flex}.project-card-body p{color:var(--color-muted);margin:0;font-size:15px}.tech-row{flex-wrap:wrap;gap:0;margin:6px 0 0;padding:0;list-style:none;display:flex}.tech-row.large li{padding:8px 12px}.process-flow{gap:12px;margin:0 0 28px;padding:0;list-style:none;display:grid}.process-step{height:100%;padding:18px}.process-step span{color:var(--color-accent);font-family:var(--font-mono);font-size:11px}.process-step p{color:var(--color-muted);margin:10px 0 0;font-size:14px}.process-details{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.process-details li{border:1px solid var(--color-line);padding:10px 12px;font-size:14px}.principle{background:linear-gradient(#e07a3d14, #e07a3d14), var(--color-panel);border-top:1px solid var(--color-line);padding:96px 0}.principle blockquote{max-width:18ch;margin:0}.principle p{font-family:var(--font-display);letter-spacing:-.03em;margin:0;font-size:clamp(28px,5vw,48px);font-weight:500;line-height:1.18}.principle p:before{content:"«";color:var(--color-accent);margin-right:6px}.principle p:after{content:"»";color:var(--color-accent);margin-left:6px}.contact-title span{color:#ece8e18c;display:block}.contact-card{align-items:center;gap:14px;min-height:88px;padding:16px 18px;transition:border-color .2s;display:flex}.contact-card:hover{border-color:var(--color-accent)}.contact-icon{border:1px solid var(--color-line);width:42px;height:42px;color:var(--color-accent);flex:none;place-items:center;display:grid}.contact-card strong,.contact-card em{display:block}.contact-card strong{font-size:15px}.contact-card em{color:var(--color-muted);word-break:break-word;font-size:13px;font-style:normal}.site-footer{border-top:1px solid var(--color-line);color:var(--color-muted);padding:36px 0 48px;font-size:14px}.footer-inner{gap:8px;display:grid}.footer-name{font-family:var(--font-display);color:var(--color-paper)}.footer-copy{margin:8px 0 0;font-size:12px}.project-page{padding-bottom:80px}.project-hero{padding:48px 0 12px}.back-link{color:var(--color-muted);align-items:center;gap:8px;margin-bottom:18px;font-size:14px;display:inline-flex}.back-link:hover{color:var(--color-paper)}.visual-note{max-width:62ch;color:var(--color-muted);margin:0 0 16px;font-size:14px}.example-note{border:1px solid var(--color-line);color:var(--color-accent);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;margin:0 0 16px;padding:6px 10px;font-size:11px;display:inline-block}.gallery{gap:10px;margin:28px 0 48px;display:grid}.gallery-main{border:1px solid var(--color-line);background:var(--color-panel);width:100%}.gallery-main img,.gallery-thumbs img{aspect-ratio:16/10;object-fit:contain;background:#101216;width:100%}.gallery-thumbs{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.gallery-thumbs button{border:1px solid var(--color-line);opacity:.62}.gallery-thumbs button.is-active,.gallery-thumbs button:hover{opacity:1;border-color:var(--color-accent)}.story{margin:0;padding:0;list-style:none}.story-block{border-left:1px solid var(--color-line);padding:0 0 28px 22px;position:relative}.story-block>p:first-child{color:var(--color-accent);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;gap:10px;margin:0 0 8px;font-size:12px;display:flex}.story-block h2{font-family:var(--font-display);margin:0 0 8px;font-size:26px;font-weight:500}.story-arrow{color:var(--color-accent);margin-top:16px;display:block}.tech-block{border-top:1px solid var(--color-line);margin-top:12px;padding-top:28px}.tech-block h2{font-family:var(--font-display);margin:0 0 14px;font-size:22px;font-weight:500}.project-next{margin-top:36px}.not-found{min-height:70svh}@media (width>=768px){.hero-layout{grid-template-columns:minmax(0,1.15fr) minmax(260px,340px);align-items:end;gap:48px}.about-grid{grid-template-columns:1.1fr .9fr;align-items:start;gap:48px}.skill-grid,.project-grid,.contact-grid{grid-template-columns:1fr 1fr}.timeline-cols{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.process-flow{grid-template-columns:repeat(3,1fr)}}@media (width>=1024px){.process-flow{grid-template-columns:repeat(6,1fr)}}@media (width>=1440px){.container{width:min(1240px,100% - 64px)}}@media (width<=374px){body{font-size:16px}.hero-actions,.btn{width:100%}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal,.project-card,.btn{transition:none}.reveal{opacity:1;transform:none}}
