@font-face{font-family:Jost Local;src:url(/assets/jost.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:"Font Awesome 5 Brands";src:url(/assets/fa-brands.woff2)format("woff2");font-weight:400;font-style:normal;font-display:block}@font-face{font-family:"Font Awesome 5 Free";src:url(/assets/fa-solid.woff2)format("woff2");font-weight:900;font-style:normal;font-display:block}:root{color:#101010;font-synthesis:none;text-rendering:optimizelegibility;--paper:#fff;--surface:#fff;--panel:#ffffff59;--switcher-bg:#ffffffeb;--field-bg:#e8e8e899;--ink:#101010;--orange:#fa4729;--on-accent:#fff;--muted:#1010102e;--muted-strong:#10101075;--shadow-orange:#fa47292e;--soft-shadow:#1010102e;--title-shadow:#1010102e;--card-shadow:#10101021;--switcher-line:#1010102e;--icon-shadow:#1010101f;--grain-dot:#0000002e;--dot-ink:#101010;--dot-mask:#fff;--hero-dot-opacity:.23;--hero-overlay:transparent;--ease:cubic-bezier(0, 0, .3642, 1);background:#fff;font-family:Jost Local,Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scrollbar-width:none}html::-webkit-scrollbar{width:0;height:0}body::-webkit-scrollbar{width:0;height:0}body{-ms-overflow-style:none;scrollbar-width:none;background:var(--paper);-webkit-font-smoothing:antialiased;min-width:320px;min-height:100vh;margin:0;overflow:hidden}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit}img{max-width:100%}.app-shell{isolation:isolate;background:var(--paper);width:100%;height:100vh;color:var(--ink);transition:background-color .4s var(--ease), color .4s var(--ease);position:relative;overflow:hidden}.app-shell.theme-lime{--orange:#63b32e;--on-accent:#07110d;--shadow-orange:#63b32e33}.app-shell.is-dark{--paper:#07110d;--surface:#0d1914;--panel:#0b1913c2;--switcher-bg:#09140ff0;--field-bg:#edf7f11a;--ink:#edf7f1;--on-accent:#06110d;--muted:#edf7f13d;--muted-strong:#edf7f185;--soft-shadow:#00000061;--title-shadow:#edf7f157;--card-shadow:#0000006b;--switcher-line:#edf7f12e;--icon-shadow:#edf7f11a;--grain-dot:#ffffff1f;--dot-ink:#edf7f1b8;--dot-mask:#07110d;--hero-dot-opacity:.3;--hero-overlay:#050e0a38}.app-shell.is-dark.theme-lime{--orange:#9be15d;--shadow-orange:#9be15d38}.grain{z-index:-1;pointer-events:none;opacity:.14;background-image:radial-gradient(var(--grain-dot) .6px, transparent .7px);mix-blend-mode:multiply;background-size:5px 5px;position:fixed;inset:0}.is-dark .grain{mix-blend-mode:screen;opacity:.2}.frame{z-index:20;border:2px solid var(--ink);pointer-events:none;position:fixed;inset:10px}.frame:before{content:"";border:2px solid var(--muted);position:absolute;inset:7px -9px -9px 7px}.top-panel{z-index:30;pointer-events:none;align-items:stretch;height:82px;display:flex;position:fixed;top:10px;left:10px;right:10px}.top-panel>*{pointer-events:auto}.brand{border-right:2px solid var(--ink);border-bottom:2px solid var(--ink);width:180px;height:80px;color:var(--ink);letter-spacing:.02em;text-shadow:4px 4px 0 var(--soft-shadow);background:0 0;justify-content:center;align-items:center;gap:10px;padding:0 28px;font-size:24px;font-weight:800;line-height:1;text-decoration:none;display:flex;position:relative}.brand:before{content:"";border-right:2px solid var(--muted);pointer-events:none;position:absolute;top:7px;bottom:-9px;right:-9px}.brand:after{content:"";border-bottom:2px solid var(--muted);pointer-events:none;position:absolute;bottom:-9px;left:7px;right:-9px}.brand img{object-fit:contain;width:24px;height:24px;filter:drop-shadow(3px 3px 0 var(--soft-shadow));display:block}.brand span{display:block}.is-dark .brand img{filter:invert(1) drop-shadow(3px 3px 0 var(--soft-shadow))}.main-nav{border-bottom:2px solid var(--ink);background:0 0;align-items:center;gap:32px;height:80px;padding:0 30px;display:flex;position:relative}.main-nav:after,.social-links:after{content:"";border-bottom:2px solid var(--muted);pointer-events:none;position:absolute;bottom:-9px;left:7px;right:-9px}.main-nav a,.social-links a{text-transform:uppercase;height:100%;transition:color .4s var(--ease);align-items:center;font-size:14px;font-weight:700;line-height:1;text-decoration:none;display:inline-flex;position:relative}.main-nav a:hover,.main-nav a.active,.social-links a:hover{color:var(--orange)}.main-nav a.active:after{content:"";background:var(--ink);width:2px;height:10px;position:absolute;bottom:-2px;left:50%;transform:translate(-50%)}.home-nav-item{align-items:center;height:100%;display:flex;position:relative}.social-links{border-bottom:2px solid var(--ink);background:0 0;justify-content:space-between;align-items:center;min-width:223px;height:80px;margin-left:auto;padding:0 40px;display:flex;position:relative}.social-links a{text-transform:none;font-size:18px}.icon{font-style:normal;line-height:1;display:inline-block}.icon-brand{font-family:"Font Awesome 5 Brands";font-weight:400}.icon-brand:before{display:inline-block}.icon-solid{font-family:"Font Awesome 5 Free";font-weight:900}.icon-facebook:before{content:""}.icon-instagram:before{content:""}.icon-linkedin:before{content:""}.icon-youtube:before{content:""}.icon-github:before{content:""}.icon-envelope{font-family:"Font Awesome 5 Free";font-weight:900}.icon-envelope:before{content:""}.menu-button{display:none}.onepage{z-index:1;width:100%;height:600vh;transition:transform .4s var(--ease);will-change:transform;position:relative}.page-section{justify-content:center;align-items:center;width:100%;height:100vh;display:flex;position:relative;overflow:hidden}.page-section:before,.page-section:after{content:"";pointer-events:none;background-image:radial-gradient(var(--dot-ink) 1px, transparent 1px);opacity:.23;background-size:9px 9px;border-radius:50%;position:absolute}.dot-blob{z-index:0;opacity:.35;pointer-events:none;--dot-size:2px;--dot-space:10px;background:linear-gradient(90deg, var(--dot-mask) calc(var(--dot-space) - var(--dot-size)), transparent 1%) 50% / var(--dot-space) var(--dot-space), linear-gradient(var(--dot-mask) calc(var(--dot-space) - var(--dot-size)), transparent 1%) 50% / var(--dot-space) var(--dot-space), var(--dot-ink);border-radius:50%;width:340px;height:420px;position:absolute;transform:rotate(30deg)}.dot-blob:before{content:"";background:inherit;border-radius:50%;width:100px;height:150px;position:absolute;left:-100px}.dot-blob.large{width:400px;height:460px}.dot-blob.large:before,.page-section:not(.hero-section):before,.page-section:not(.hero-section):after{display:none}.page-section:before{width:360px;height:260px;top:18%;left:6%;transform:rotate(-12deg)}.page-section:after{width:390px;height:270px;bottom:-12%;right:16%;transform:rotate(12deg)}.hero-section:before,.hero-section:after{width:380px;height:155px;opacity:var(--hero-dot-opacity);background-image:radial-gradient(var(--dot-ink) 1.55px, transparent 1.7px);transition:opacity .4s var(--ease), transform .4s var(--ease);will-change:transform, opacity, background-position;background-size:10px 10px;border-radius:0;transition-delay:.4s;top:34.5%;bottom:auto;transform:none}.hero-section:before{animation:heroDotsFloatLeft 9s var(--ease) infinite alternate;left:0}.hero-section:after{animation:heroDotsFloatRight 10s var(--ease) .6s infinite alternate;right:39.6%}.app-shell:not(.is-ready) .hero-section:before{opacity:0;transition-delay:0s;animation-play-state:paused;transform:translate(-90px,40px)scale(.92)}.app-shell:not(.is-ready) .hero-section:after{opacity:0;transition-delay:0s;animation-play-state:paused;transform:translate(90px,40px)scale(.92)}.section-inner{z-index:1;opacity:0;width:min(1100px,100% - 180px);transition:.4s var(--ease);transition-delay:0s;position:relative;transform:translateY(90px)scale(.95)}.page-section.active .section-inner{opacity:1;transition-delay:.4s;transform:translateY(0)scale(1)}.app-shell:not(.is-ready) .page-section.active .section-inner{opacity:0;transition-delay:0s;transform:translateY(90px)scale(.95)}.section-label{text-transform:uppercase;margin:0 0 26px;font-size:16px;font-weight:700;line-height:1}.section-label span,.date,.contact-card span,.contact-card em,.about-copy .section-label{color:var(--orange)}.section-label.center{text-align:center}h1,h2,h3,p{margin-top:0}h1,h2{letter-spacing:normal;text-transform:uppercase;margin-bottom:0;font-weight:700}h1{font-size:clamp(64px,6.25vw,80px);line-height:1}h2{font-size:48px;line-height:1}h3{font-size:18px;font-weight:700;line-height:1.25}p{font-size:18px;line-height:1.7}.hero-inner{width:min(1100px,100% - 180px)}.hero-copy{width:54%;padding-left:57px}.hero-copy h1{text-shadow:7px 7px 0 var(--title-shadow);margin-bottom:28px}.hero-description{max-width:600px;margin:0 0 18px 60px;font-size:21px;font-weight:600;line-height:1.35}.hero-detail{max-width:600px;margin:0 0 31px 60px;font-size:18px;line-height:1.65}.button-row{gap:15px;margin-left:60px;display:flex}.hero-image-wrap{z-index:0;width:40.3%;height:100%;transition:opacity .4s var(--ease), transform .4s var(--ease);transition-delay:.4s;position:absolute;top:0;right:0;overflow:hidden}.hero-image-wrap:after{content:"";background:var(--hero-overlay);pointer-events:none;transition:background-color .4s var(--ease);position:absolute;inset:0}.app-shell:not(.is-ready) .hero-image-wrap{opacity:0;transition-delay:0s;transform:translate(90px)scale(.95)}.hero-image{object-fit:cover;object-position:center;width:100%;height:100%;display:block}.is-dark .hero-image{filter:saturate(.86)contrast(.96)brightness(.82)}.outline-button,.submit-button{border:2px solid var(--orange);background:var(--orange);min-width:164px;height:60px;color:var(--on-accent);box-shadow:7px 7px 0 var(--shadow-orange);cursor:pointer;text-transform:uppercase;transition:.4s var(--ease);justify-content:center;align-items:center;padding:0 40px;font-size:14px;font-weight:700;line-height:1;text-decoration:none;display:inline-flex}.outline-button:hover,.submit-button:hover{box-shadow:0 0 #0000}.outline-button.secondary{border-color:var(--ink);background:var(--surface);color:var(--ink);box-shadow:7px 7px 0 var(--soft-shadow)}.outline-button.secondary:hover{box-shadow:0 0 #0000}.about-grid{grid-template-columns:360px minmax(0,1fr);align-items:center;gap:clamp(56px,5vw,86px);width:min(1340px,100% - 180px);display:grid}.portrait-wrap{width:327px;margin-left:30px;line-height:0;position:relative}.portrait-wrap:after{content:"";border:2px solid var(--ink);pointer-events:none;position:absolute;inset:12px -12px -12px 12px}.portrait-wrap img{object-fit:cover;object-position:center;width:100%;height:421px;display:block}.about-copy{max-width:820px}.about-copy .section-label{margin-bottom:10px}.about-copy h2{text-shadow:7px 7px 0 var(--title-shadow);margin-bottom:56px}.about-copy p{margin-bottom:27px}.about-copy .outline-button{margin-top:5px}.skills-inner{width:min(988px,100% - 180px)}.skills-inner .section-head{margin-left:-26px}.skills-grid{grid-template-columns:415px 415px;gap:30px 31px;width:861px;margin-left:153px;padding-top:22px;display:grid}.skill-item{align-items:flex-start;gap:20px;display:flex}.skill-icon-box{z-index:0;border:2px solid var(--ink);background:var(--surface);width:70px;height:70px;box-shadow:none;flex:none;justify-content:center;align-items:center;display:flex;position:relative}.skill-icon-box:before{content:"";z-index:-1;background:var(--icon-shadow);width:66px;height:66px;position:absolute;top:-10px;left:-10px}.skill-icon-box .icon{font-family:"Font Awesome 5 Brands";font-size:34px;font-weight:400}.skill-icon-box img{z-index:1;object-fit:contain;mix-blend-mode:multiply;width:42px;height:42px;display:block;position:relative}.is-dark .skill-icon-box img{filter:invert();mix-blend-mode:normal}.skill-content{flex:1;min-width:0}.skill-heading{text-transform:uppercase;margin-bottom:9px;font-size:16px;line-height:1.15;display:block}.skill-heading strong{white-space:nowrap;margin-bottom:7px;font-weight:700;display:block}.skill-heading span{color:var(--orange);text-transform:none;font-size:14px;font-weight:600;line-height:1.35;display:block}.skill-description{margin:0;font-size:16px;line-height:1.45}.skill-track{display:none}.icon-figma:before{content:""}.icon-php:before{content:""}.icon-js:before{content:""}.icon-react:before{content:""}.icon-html:before{content:""}.icon-vue:before{content:""}.icon-database:before{content:""}.icon-link:before{content:""}.icon-cloud:before{content:""}.icon-star:before{content:""}.experience-inner{width:min(1100px,100% - 180px);padding:0 30px;top:0}.experience-head{justify-content:space-between;align-items:flex-start;gap:30px;display:flex}.experience-head>div:first-child .section-label{margin-bottom:10px}.experience-head h2{text-shadow:7px 7px 0 var(--title-shadow);margin-bottom:34px}.experience-head p{max-width:520px;margin-bottom:30px;font-size:17px;line-height:1.55}.rule{background:var(--ink);width:100%;height:2px;position:relative}.rule:after{content:"";border-bottom:2px solid var(--muted);position:absolute;top:5px;left:9px;right:-9px}.section-head{margin-bottom:28px}.section-head .section-label{margin-bottom:10px}.section-head h2{text-shadow:7px 7px 0 var(--title-shadow);margin-bottom:34px}.section-head p{max-width:640px;margin-bottom:30px;font-size:17px;line-height:1.55}.section-head .rule,.experience-inner>.rule{width:calc(100% + 30px);margin-left:-15px}.experience-grid{grid-template-columns:repeat(2,1fr);gap:31px;min-height:190px;padding-top:28px;display:grid}.experience-card{border:2px solid var(--ink);background:var(--panel);min-height:280px;box-shadow:7px 7px 0 var(--card-shadow);padding:24px 30px}.experience-card h3{text-transform:uppercase;margin:0 0 7px;font-size:21px}.experience-card .date{color:var(--muted-strong);margin-bottom:14px;font-size:14px;font-weight:700;line-height:1}.experience-role{color:var(--orange);text-transform:uppercase;margin-bottom:14px;font-size:15px;font-weight:700;line-height:1.25}.experience-card>p:not(.date):not(.experience-role){margin-bottom:14px;font-size:16px;line-height:1.45}.experience-card ul{margin:0;padding-left:19px}.experience-card li{margin-bottom:7px;font-size:14px;line-height:1.4}.projects-inner{width:min(1040px,100% - 180px);top:-36px}.projects-grid{grid-template-columns:repeat(2,1fr);gap:31px;display:grid}.project-card{border:2px solid var(--ink);background:var(--panel);min-height:260px;box-shadow:7px 7px 0 var(--card-shadow);padding:26px 30px;position:relative}.project-card.featured:after{content:"";opacity:.28;background-image:radial-gradient(var(--dot-ink) 1px, transparent 1px);pointer-events:none;background-size:9px 9px;width:70px;height:70px;position:absolute;top:10px;right:10px}.project-topline{color:var(--orange);text-transform:uppercase;justify-content:space-between;align-items:center;gap:20px;margin-bottom:27px;font-size:14px;font-weight:700;line-height:1;display:flex}.project-topline span:last-child{color:var(--ink);font-size:18px}.project-card h3{text-transform:uppercase;margin:0 0 18px;font-size:28px;line-height:1}.project-card>p{margin-bottom:24px}.project-tech{flex-wrap:wrap;gap:8px;display:flex}.project-tech span{border:1px solid var(--muted);color:var(--ink);padding:7px 9px;font-size:13px;font-weight:600;line-height:1}.contacts-inner{width:min(1040px,100% - 180px);top:-26px}.contact-grid{grid-template-columns:327px 1fr;align-items:start;gap:90px;padding-top:12px;display:grid}.contact-details{gap:30px;display:grid}.contact-card{border:2px solid var(--ink);background:var(--panel);height:171px;min-height:171px;box-shadow:7px 7px 0 var(--card-shadow);flex-direction:column;align-items:flex-start;padding:30px;display:flex;position:relative}.contact-card:after{content:"";opacity:.28;background-image:radial-gradient(var(--dot-ink) 1px, transparent 1px);background-size:9px 9px;width:70px;height:70px;position:absolute;top:10px;right:10px}.contact-card h3{margin-bottom:28px}.contact-card a{transition:color .4s var(--ease);font-size:18px;line-height:1.8;text-decoration:none}.contact-card a:hover{color:var(--orange)}.contact-form{grid-template-columns:1fr 1fr;gap:26px 30px;display:grid}.contact-form label{gap:16px;display:grid}.contact-form label>span,.terms span{text-transform:uppercase;font-size:16px;font-weight:700;line-height:1}.contact-form em{color:var(--orange);font-style:normal}.contact-form input:not([type=checkbox]),.contact-form textarea{background:var(--field-bg);width:100%;color:var(--ink);border:0;border-radius:0;outline:0;padding:0 16px}.contact-form input:not([type=checkbox]){height:61px}.contact-form textarea{resize:vertical;min-height:117px;padding-top:14px}.message-field{grid-column:1/-1}.form-bottom{grid-column:1/-1;justify-content:space-between;align-items:center;gap:25px;margin-top:13px;display:flex}.terms{grid-template-columns:auto 1fr;align-items:center;gap:15px!important;display:flex!important}.terms input{width:25px;height:25px;accent-color:var(--orange);margin:0}.terms span{text-transform:none;white-space:nowrap;font-size:16px;font-weight:400}.contact-form .terms span{text-transform:none;font-size:18px;font-weight:400}.terms u{color:var(--orange)}.submit-button{min-width:138px;height:60px}.pagination{z-index:25;flex-direction:column;gap:15px;display:flex;position:fixed;top:50%;right:51px;transform:translateY(-50%)}.pagination button{border:4px solid var(--muted);background:var(--surface);cursor:pointer;width:15px;height:15px;transition:.4s var(--ease);padding:0;transform:rotate(45deg)}.pagination button.active,.pagination button:hover{border-color:var(--orange)}.site-footer{z-index:25;border-top:2px solid var(--ink);pointer-events:none;align-items:center;width:430px;height:80px;padding:0 30px;display:flex;position:fixed;bottom:10px;left:10px}.site-footer:before{content:"";border-bottom:2px solid var(--muted);position:absolute;top:5px;left:9px;right:-9px}.site-footer p{text-transform:uppercase;white-space:nowrap;margin:0;font-size:12px;font-weight:700;line-height:1.2}.site-footer span{color:var(--orange)}.toast{z-index:60;border:2px solid var(--ink);background:var(--surface);max-width:calc(100% - 40px);box-shadow:7px 7px 0 var(--card-shadow);padding:13px 18px;font-size:14px;font-weight:600;position:fixed;bottom:34px;left:50%;transform:translate(-50%)}.theme-switcher{z-index:70;border:2px solid var(--ink);background:var(--switcher-bg);width:auto;box-shadow:5px 5px 0 var(--card-shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:.86;transition:opacity .4s var(--ease), transform .4s var(--ease), background-color .4s var(--ease);align-items:center;gap:8px;padding:8px;display:flex;position:fixed;bottom:28px;right:28px}.theme-switcher:hover{opacity:1;transform:translateY(-2px)}.theme-switcher button{border:1px solid var(--switcher-line);background:var(--surface);height:34px;color:var(--ink);cursor:pointer;text-align:left;text-transform:uppercase;transition:.4s var(--ease);align-items:center;font-size:12px;font-weight:700;line-height:1;display:flex}.theme-mode-toggle{justify-content:space-between;width:78px;padding:0 9px;position:relative;border-width:2px!important}.theme-mode-toggle:hover,.language-switch button:hover{color:var(--orange)}.mode-icon{z-index:2;opacity:.58;justify-content:center;width:15px;font-size:13px;line-height:1;display:inline-flex;position:relative}.theme-mode-toggle.active .mode-icon:last-child,.theme-mode-toggle:not(.active) .mode-icon:first-child{color:var(--orange);opacity:1}.mode-switch-track{border:1px solid var(--ink);background:var(--field-bg);width:28px;height:14px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.mode-switch-track i{background:var(--ink);width:8px;height:8px;transition:transform .4s var(--ease), background-color .4s var(--ease);position:absolute;top:2px;left:2px}.theme-mode-toggle.active .mode-switch-track i{background:var(--orange);transform:translate(14px)}.language-switch{border:2px solid var(--ink);background:var(--surface);align-items:center;gap:3px;height:34px;padding:3px;display:inline-flex}.language-switch button{height:24px;box-shadow:none;background:0 0;border:0;gap:4px;padding:0 7px}.language-switch button.active{background:var(--orange);color:var(--on-accent);box-shadow:3px 3px 0 var(--shadow-orange)}.language-switch .flag{font-size:13px;line-height:1}.preloader{z-index:100;background:var(--paper);color:var(--ink);pointer-events:none;animation:.7s cubic-bezier(.7,0,.2,1) 2.5s both preloaderLift;position:fixed;inset:0}.preloader-grain{opacity:.2;background-image:radial-gradient(var(--grain-dot) .6px, transparent .7px);background-size:5px 5px;position:absolute;inset:0}.preloader-line{background:var(--ink);position:absolute}.preloader-line.top{transform-origin:0;height:2px;animation:preloaderDrawX .6s var(--ease) 0s both;top:30px;left:30px;right:30px}.preloader-line.bottom{transform-origin:100%;height:2px;animation:preloaderDrawX .6s var(--ease) .15s both;bottom:30px;left:30px;right:30px}.preloader-line.left{transform-origin:top;width:2px;animation:preloaderDrawY .6s var(--ease) .3s both;top:30px;bottom:30px;left:30px}.preloader-line.right{transform-origin:bottom;width:2px;animation:preloaderDrawY .6s var(--ease) .45s both;top:30px;bottom:30px;right:30px}.preloader-center{flex-direction:column;justify-content:center;align-items:center;gap:26px;display:flex;position:absolute;inset:0}.preloader-logo{width:clamp(150px,18vw,230px);height:clamp(150px,18vw,230px);overflow:visible}.preloader-logo path{fill:var(--ink);stroke:var(--ink);stroke-width:90px;stroke-dasharray:1;animation:preloaderStroke 1.1s cubic-bezier(.4, 0, .3, 1) .35s both, preloaderFill .5s var(--ease) 1.5s both}.preloader-mask{overflow:hidden}.preloader-brand{text-shadow:4px 4px 0 var(--title-shadow);animation:preloaderRise .55s var(--ease) 1.6s both;font-size:46px;font-weight:800;line-height:1}.preloader-tag{letter-spacing:.35em;animation:preloaderRise .55s var(--ease) 1.8s both;font-size:15px;font-weight:700}.preloader-tag span{color:var(--orange)}@keyframes preloaderDrawX{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes preloaderDrawY{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes preloaderStroke{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}@keyframes preloaderFill{0%{fill-opacity:0}to{fill-opacity:1}}@keyframes preloaderRise{0%{opacity:0;transform:translateY(46px)}to{opacity:1;transform:translateY(0)}}@keyframes preloaderLift{0%{transform:translateY(0)}to{transform:translateY(-101%)}}@keyframes heroDotsFloatLeft{0%{opacity:calc(var(--hero-dot-opacity) * .82);background-position:0 0;transform:translate(-14px,8px)}to{opacity:var(--hero-dot-opacity);background-position:20px -10px;transform:translate(18px,-10px)}}@keyframes heroDotsFloatRight{0%{opacity:calc(var(--hero-dot-opacity) * .78);background-position:0 0;transform:translate(16px,-8px)}to{opacity:var(--hero-dot-opacity);background-position:-20px 10px;transform:translate(-18px,11px)}}@media (prefers-reduced-motion:reduce){.hero-section:before,.hero-section:after{animation:none}}@media screen and (min-width:1401px){.frame{inset:15px}.top-panel{height:87px;top:15px;left:15px;right:15px}.brand,.main-nav,.social-links{height:86px}.main-nav{gap:40px}.hero-image-wrap{width:40.9%}.hero-inner{width:58.33%;margin:0 auto 0 0}.hero-copy{width:100%;padding:0 10% 0 19.5%}.hero-description{max-width:600px}.hero-description,.hero-detail,.button-row{margin-left:61px}.hero-section:before{width:380px;height:160px;top:34.5%;left:0}.hero-section:after{width:390px;height:160px;top:34.5%;bottom:auto;right:39.6%}.site-footer{bottom:15px;left:15px}}@media screen and (min-width:1201px) and (max-height:800px){.site-footer{display:none}.section-head{margin-bottom:20px}.section-head .section-label{margin-bottom:10px}.section-head h2{margin-bottom:22px}.section-head p{margin-bottom:22px;font-size:16px;line-height:1.45}.skills-inner{top:-28px}.experience-inner{top:-52px}.skills-grid{row-gap:22px;padding-top:12px}.skill-heading{margin-bottom:7px}.skill-description{font-size:15px;line-height:1.35}}@media screen and (min-width:1300px) and (max-width:1500px) and (max-height:800px){.skills-inner,.experience-inner,.projects-inner,.contacts-inner{top:0}}@media screen and (max-width:1200px){body{overflow:auto}.app-shell{height:auto;min-height:100dvh;overflow:visible}.frame{inset:8px}.frame:before{inset:6px -7px -7px 6px}.top-panel{height:74px;top:8px;left:8px;right:8px}.brand{flex:0 0 172px;justify-content:flex-start;width:172px;height:72px;padding:0 22px;font-size:23px}.brand img{width:23px;height:23px}.main-nav{border:2px solid var(--ink);opacity:0;pointer-events:none;transform-origin:top;height:auto;transition:.4s var(--ease);background:var(--switcher-bg);box-shadow:7px 7px 0 var(--card-shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);gap:0;padding:14px 28px;display:grid;position:fixed;top:88px;left:18px;right:18px;transform:scale(.92)translateY(-8px)}.main-nav.is-open{opacity:1;pointer-events:auto;transform:scale(1)translateY(0)}.main-nav a{border-bottom:1px solid var(--switcher-line);height:auto;min-height:44px;padding:14px 0;font-size:15px}.main-nav a:last-child{border-bottom:0}.main-nav a.active:after{display:none}.home-nav-item{height:auto;display:block}.home-nav-item>a:after{display:none}.social-links{min-width:146px;height:72px;margin-left:auto;padding:0 18px}.menu-button{border:2px solid var(--ink);background:var(--surface);width:52px;height:52px;box-shadow:6px 6px 0 var(--soft-shadow);cursor:pointer;transition:.4s var(--ease);align-content:center;justify-items:center;gap:5px;margin:10px 12px 0;display:grid}.menu-button span{background:var(--ink);width:22px;height:2px;transition:inherit}.menu-button.is-open span:first-child{transform:translateY(7px)rotate(45deg)}.menu-button.is-open span:nth-child(2){opacity:0}.menu-button.is-open span:nth-child(3){transform:translateY(-7px)rotate(-45deg)}.onepage{height:auto;transition:none;transform:none!important}.page-section{height:auto;min-height:0;padding:124px 0 92px;scroll-margin-top:88px;overflow:visible}.page-section:first-child{padding-top:104px}.section-inner,.hero-inner,.skills-inner,.experience-inner,.projects-inner,.contacts-inner{opacity:1;width:min(100% - 56px,760px);transition:none;transform:none}.page-section:before,.page-section:after{display:none}.hero-section:before,.hero-section:after{width:42vw;height:115px;opacity:calc(var(--hero-dot-opacity) * .55);display:block;top:230px}.hero-section:before{left:-16vw}.hero-section:after{right:-18vw}.dot-blob{display:none}.hero-section{flex-direction:column;padding-top:92px;display:flex;overflow:hidden}.hero-section .section-inner{transition:.4s var(--ease)}.hero-image-wrap{border:2px solid var(--ink);width:min(100% - 56px,760px);height:min(58dvh,520px);min-height:360px;box-shadow:7px 7px 0 var(--card-shadow);order:2;margin:8px auto 0;position:relative;transform:none}.app-shell:not(.is-ready) .hero-image-wrap{transform:translateY(90px)scale(.95)}.hero-inner{order:1}.hero-copy{text-align:center;width:100%;padding:52px 24px 34px}.hero-description,.hero-detail,.button-row{margin-left:auto;margin-right:auto}.hero-description{max-width:600px}.hero-detail{max-width:620px;margin-bottom:28px}.button-row{flex-wrap:wrap;justify-content:center}.about-grid{grid-template-columns:1fr;gap:44px;margin-top:0;padding-left:0}.skills-inner .section-head{margin-left:0}.section-head .rule{width:100%;margin-left:0}.portrait-wrap{order:2;width:min(300px,70vw);margin:0 auto}.portrait-wrap img{height:360px}.about-copy{text-align:left;max-width:100%}.about-copy .section-label,.about-copy h2{text-align:center}.about-copy .outline-button{margin:10px auto 0}.skills-grid{grid-template-columns:1fr;gap:24px;width:100%;margin-left:0;padding-top:18px}.skill-heading strong{white-space:normal}.skill-heading span{overflow-wrap:anywhere}.education-intro{text-align:center}.education-list{max-width:650px;margin:0 auto}.experience-inner{padding:0;top:0}.experience-head>div:first-child .section-label{position:static}.experience-inner>.rule{width:100%;margin-left:0}.experience-head{display:block}.experience-grid,.experience-grid.page-1{grid-template-columns:1fr;gap:28px}.projects-inner{top:0}.projects-grid{grid-template-columns:1fr;gap:30px}.project-card{max-width:620px;margin:0 auto}.contacts-inner{top:0}.contact-grid{grid-template-columns:1fr;gap:42px}.contact-details{grid-template-columns:1fr 1fr}.contact-card a{overflow-wrap:anywhere}.contact-form{grid-template-columns:1fr}.message-field,.form-bottom{grid-column:auto}.form-bottom{flex-direction:column;align-items:flex-start}.terms span{white-space:normal}.pagination,.site-footer{display:none}.theme-switcher{width:auto;padding:7px;bottom:20px;left:auto;right:20px}.contacts-inner{padding-bottom:72px}}@media screen and (max-width:560px){.frame{border-width:1.5px;inset:7px}.frame:before{border-width:1.5px;inset:5px -6px -6px 5px}.top-panel{height:66px}.brand{flex:0 0 148px;gap:8px;width:148px;height:64px;padding:0 16px;font-size:20px}.brand img{width:21px;height:21px}.social-links{display:none}.menu-button{width:46px;height:46px;box-shadow:4px 4px 0 var(--soft-shadow);margin:9px 10px 0 auto}.main-nav{padding:10px 22px;top:76px;left:15px;right:15px}.main-nav a{min-height:42px;padding:12px 0;font-size:14px}.page-section{padding:96px 0 76px;scroll-margin-top:76px}.page-section:first-child{padding-top:78px}.section-inner,.hero-inner,.skills-inner,.experience-inner,.projects-inner,.contacts-inner{width:calc(100% - 34px)}.hero-section{padding-top:70px}.hero-section:before,.hero-section:after{width:58vw;height:100px;opacity:calc(var(--hero-dot-opacity) * .45);top:230px}.hero-section:before{left:-31vw}.hero-section:after{right:-34vw}.hero-copy{padding:34px 0 26px}.hero-copy .section-label{margin-bottom:24px}.hero-description{max-width:330px;margin-bottom:18px;font-size:20px}.hero-detail{max-width:340px;margin-bottom:34px;font-size:15.5px;line-height:1.65}.hero-image-wrap{width:calc(100% - 34px);height:44dvh;min-height:290px;box-shadow:5px 5px 0 var(--card-shadow);margin-top:6px}h1{letter-spacing:-.025em;text-shadow:5px 5px 0 var(--title-shadow);font-size:clamp(40px,12vw,52px)}h2{font-size:clamp(35px,10vw,42px);text-shadow:5px 5px 0 var(--title-shadow)!important}h3{font-size:18px}p{font-size:16px;line-height:1.65}.section-label{margin-bottom:18px;font-size:13px;line-height:1.25}.section-head{margin-bottom:24px}.section-head h2,.experience-head h2,.about-copy h2{margin-bottom:26px}.section-head p,.experience-head p{margin-bottom:24px;font-size:16px}.button-row{flex-direction:column;align-items:stretch;gap:13px;width:100%}.outline-button,.submit-button{width:100%;min-width:0;height:56px;padding:0 20px}.about-grid{gap:36px}.portrait-wrap{width:min(260px,76vw)}.portrait-wrap img{height:330px}.about-copy p{margin-bottom:22px}.skill-item{gap:17px}.skill-icon-box{width:62px;height:62px}.skill-icon-box:before{width:58px;height:58px;top:-8px;left:-8px}.skill-icon-box img{width:36px;height:36px}.skill-heading{font-size:15px}.skill-heading span,.skill-description{font-size:14.5px}.experience-grid{gap:24px;padding-top:24px}.experience-card,.project-card,.contact-card{box-shadow:5px 5px 0 var(--card-shadow);padding:24px 22px}.experience-card{min-height:0}.experience-card h3{font-size:20px}.experience-card li{font-size:14px}.project-card{min-height:0}.project-card h3{font-size:25px}.project-card>p{font-size:16px}.project-topline{align-items:flex-start;margin-bottom:24px;font-size:13px;line-height:1.25}.project-tech span{font-size:12px}.contact-details{grid-template-columns:1fr}.contact-card{height:auto;min-height:0}.contact-card h3{margin-bottom:20px}.contact-card a{font-size:16px;line-height:1.6}.contact-form{gap:22px}.contact-form label{gap:12px}.contact-form input:not([type=checkbox]){height:56px}.contact-form textarea{min-height:150px}.form-bottom{gap:22px}.terms{align-items:flex-start}.terms input{flex:none;width:22px;height:22px}.contact-form .terms span{font-size:15px;line-height:1.45}.theme-switcher{box-shadow:4px 4px 0 var(--card-shadow);gap:6px;padding:6px;bottom:14px;right:14px}.theme-mode-toggle{width:70px;height:31px;padding:0 7px}.language-switch{height:31px}.language-switch button{height:22px;padding:0 6px;font-size:11px}.mode-switch-track{width:25px;height:13px}.mode-switch-track i{width:7px;height:7px}.theme-mode-toggle.active .mode-switch-track i{transform:translate(12px)}.preloader-logo{width:140px;height:140px}.preloader-brand{font-size:38px}.preloader-tag{text-align:center;letter-spacing:.22em;max-width:280px;line-height:1.7}.preloader-line.top{top:20px;left:20px;right:20px}.preloader-line.bottom{bottom:20px;left:20px;right:20px}.preloader-line.left{top:20px;bottom:20px;left:20px}.preloader-line.right{top:20px;bottom:20px;right:20px}}@media screen and (min-width:561px) and (max-width:1200px){.hero-copy h1{font-size:clamp(58px,8vw,72px)}.contact-card{height:auto;min-height:150px}}@media screen and (min-width:561px) and (max-width:860px){.social-links{display:none}.menu-button{margin-left:auto}.contact-details{grid-template-columns:1fr}.hero-copy{padding-inline:0}.portrait-wrap{width:280px}.project-card,.experience-card{padding:28px 30px}}@media screen and (max-width:380px){.brand{flex-basis:136px;width:136px;padding-inline:13px;font-size:18px}.brand img{width:19px;height:19px}.menu-button{margin-right:8px}.section-inner,.hero-inner,.skills-inner,.experience-inner,.projects-inner,.contacts-inner,.hero-image-wrap{width:calc(100% - 28px)}.skill-item{align-items:flex-start}.skill-icon-box{width:56px;height:56px}.skill-icon-box:before{width:52px;height:52px}.skill-icon-box img{width:32px;height:32px}.experience-card,.project-card,.contact-card{padding-inline:18px}.theme-switcher{transform-origin:100% 100%;transform:scale(.92)}.theme-switcher:hover{transform:scale(.92)translateY(-2px)}}@media screen and (max-width:1200px){.hero-copy h1 br{display:none}.hero-copy h1 span+span:before{content:" "}}
