:root{
  --bg:#080817;
  --line:rgba(200,211,255,.18);
  --text:#f2f3ff;
  --muted:#aeb3d1;
  --dim:#777d9f;
  --cyan:#6fe7ff;
  --violet:#b58cff;
  --amber:#ffc86b;
  --pink:#ff7fc7;
  --green:#72e9b5;
  --shadow:0 28px 80px rgba(0,0,0,.48),0 2px 12px rgba(0,0,0,.32);
  --inset:inset 0 1px 0 rgba(255,255,255,.2),inset 0 -1px 0 rgba(0,0,0,.32);
  --font-ui:"Segoe UI",Tahoma,Geneva,Verdana,sans-serif;
  --font-mono:"Cascadia Mono","SFMono-Regular",Consolas,"Liberation Mono",monospace;
  --header-h:68px;
  --radius:14px;
  --shell:min(1240px,calc(100% - 36px));
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 14px);color-scheme:dark;-webkit-text-size-adjust:100%}
body{margin:0;min-height:100%;padding-top:var(--header-h);overflow-x:hidden;background:var(--bg);color:var(--text);font:15px/1.6 var(--font-ui);letter-spacing:.005em}
body.locked{overflow:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input{font:inherit}
button{color:inherit}
::selection{background:rgba(127,140,255,.35);color:#fff}

.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
[hidden]{display:none!important}
.shell{width:var(--shell);margin-inline:auto}
.icon{display:inline-block;width:1em;height:1em;flex:0 0 auto;background:currentColor;vertical-align:-.14em;mask:var(--icon) center/contain no-repeat;-webkit-mask:var(--icon) center/contain no-repeat}
.icon-arrow-right{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m13 6 6 6-6 6'/%3E%3C/svg%3E")}
.icon-chevron-left{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m15 18-6-6 6-6'/%3E%3C/svg%3E")}
.icon-chevron-right{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 18 6-6-6-6'/%3E%3C/svg%3E")}
.icon-external{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.1' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 3h6v6'/%3E%3Cpath d='M10 14 21 3'/%3E%3Cpath d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'/%3E%3C/svg%3E")}
.icon-folder{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 7a2 2 0 0 1 2-2h5l2 2h7a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2Z'/%3E%3C/svg%3E")}
.icon-image{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Ccircle cx='8.5' cy='10' r='1.5'/%3E%3Cpath d='m21 15-5-5L5 19'/%3E%3C/svg%3E")}
.icon-list{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 6h13'/%3E%3Cpath d='M8 12h13'/%3E%3Cpath d='M8 18h13'/%3E%3Cpath d='M3 6h.01'/%3E%3Cpath d='M3 12h.01'/%3E%3Cpath d='M3 18h.01'/%3E%3C/svg%3E")}
.icon-search{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.1' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E")}
.icon-message{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 11.5a8.4 8.4 0 0 1-9 8.5 8.7 8.7 0 0 1-3.7-.9L3 20l1.1-4.5A8.4 8.4 0 1 1 21 11.5Z'/%3E%3Cpath d='M8 10h8'/%3E%3Cpath d='M8 14h5'/%3E%3C/svg%3E")}
.icon-telegram{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M21.5 3.5 18.3 19c-.2 1.1-.9 1.4-1.8.9l-4.9-3.6-2.4 2.3c-.3.3-.5.5-1 .5l.4-5 9-8.1c.4-.3-.1-.5-.6-.2L5.9 12.7 1.1 11.2C0 10.9 0 10.1 1.3 9.6L20 2.4c.9-.3 1.7.2 1.5 1.1Z'/%3E%3C/svg%3E")}
.icon-github{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 22v-4a4.8 4.8 0 0 0-1-3.5c3.3-.4 6.8-1.6 6.8-7A5.4 5.4 0 0 0 19.4 4 5 5 0 0 0 19.3.5S18.2.1 15 1.8a13.4 13.4 0 0 0-7 0C4.8.1 3.7.5 3.7.5A5 5 0 0 0 3.6 4a5.4 5.4 0 0 0-1.4 3.7c0 5.4 3.5 6.5 6.8 7A4.8 4.8 0 0 0 8 18v4'/%3E%3Cpath d='M8 19c-3 .9-3-1.5-4-2'/%3E%3C/svg%3E")}
.icon-vk{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M15.1 2H8.9C3.3 2 2 3.3 2 8.9v6.2C2 20.7 3.3 22 8.9 22h6.2c5.6 0 6.9-1.3 6.9-6.9V8.9C22 3.3 20.7 2 15.1 2Zm3 14.3h-1.4c-.6 0-.7-.4-1.7-1.5-.9-.8-1.3-.9-1.5-.9-.3 0-.4.1-.4.5v1.3c0 .4-.1.6-1 .6-1.6 0-3.3-.9-4.5-2.7-1.8-2.5-2.3-4.4-2.3-4.8 0-.2.1-.4.5-.4h1.5c.4 0 .5.2.7.6.7 2.1 1.9 3.9 2.4 3.9.2 0 .3-.1.3-.6v-2.2c-.1-1-.6-1.1-.6-1.5 0-.2.1-.3.4-.3h2.3c.3 0 .4.2.4.5v3c0 .3.1.4.2.4.2 0 .4-.1.7-.5 1.1-1.2 1.9-3.1 1.9-3.1.1-.2.3-.4.7-.4h1.5c.4 0 .6.2.5.5-.2 1-2.2 3.7-2.2 3.7-.2.3-.2.4 0 .7.2.2.7.7 1 1.1.7.7 1.2 1.3 1.3 1.8.1.3-.2.5-.7.5Z'/%3E%3C/svg%3E")}
.icon-mail{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m4 7 8 6 8-6'/%3E%3C/svg%3E")}
.icon-minus{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M5 12h14'/%3E%3C/svg%3E")}
.icon-square{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.1' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='6' y='6' width='12' height='12' rx='1.5'/%3E%3C/svg%3E")}
.icon-x{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.3' stroke-linecap='round'%3E%3Cpath d='M6 6l12 12'/%3E%3Cpath d='M18 6 6 18'/%3E%3C/svg%3E")}

.ambient{position:fixed;inset:0;z-index:-2;overflow:hidden;background:
  radial-gradient(ellipse at 50% -12%,rgba(104,119,255,.3),transparent 48%),
  radial-gradient(ellipse at 92% 48%,rgba(111,54,181,.15),transparent 38%),
  linear-gradient(145deg,#070814 0%,#0a0c20 46%,#05060e 100%)}
.ambient::before{content:"";position:absolute;inset:0;background:
  linear-gradient(118deg,transparent 0 31%,rgba(132,151,255,.1) 31.08%,transparent 31.3%),
  linear-gradient(118deg,transparent 0 69%,rgba(111,231,255,.065) 69.08%,transparent 69.26%);
  opacity:.85}
.ambient::after{content:"";position:absolute;left:8%;right:8%;top:30%;height:1px;background:linear-gradient(90deg,transparent,rgba(139,158,255,.3),rgba(111,231,255,.16),transparent);box-shadow:0 0 32px rgba(98,119,255,.18)}
.ambient-orb{position:absolute;height:1px;border-radius:0;filter:none;opacity:.72;mix-blend-mode:screen;transform-origin:left center}
.orb-one{width:58vw;min-width:520px;left:-8vw;top:24vh;background:linear-gradient(90deg,transparent,rgba(115,142,255,.46),transparent);box-shadow:0 0 24px rgba(79,112,255,.18);transform:rotate(-11deg)}
.orb-two{width:48vw;min-width:460px;right:-12vw;top:18vh;background:linear-gradient(90deg,transparent,rgba(190,102,255,.4),transparent);box-shadow:0 0 24px rgba(162,78,255,.16);transform:rotate(14deg)}
.orb-three{width:40vw;min-width:400px;left:38vw;bottom:17vh;background:linear-gradient(90deg,transparent,rgba(91,221,255,.28),transparent);box-shadow:0 0 24px rgba(73,195,255,.12);transform:rotate(-24deg)}
.ambient-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(190,202,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(190,202,255,.045) 1px,transparent 1px);background-size:64px 64px;mask-image:linear-gradient(to bottom,rgba(0,0,0,.9),rgba(0,0,0,.45) 56%,transparent 92%)}
body.s1{--bg:#06110f;--line:rgba(125,255,207,.24);--text:#f3fff9;--muted:#b9d8cf;--dim:#7ea89c;--cyan:#7dffcf;--violet:#ff8bdc;--amber:#ffe07a;--pink:#ffcf6b;--green:#a7ff7d;--shadow:0 28px 90px rgba(0,0,0,.55),0 0 44px rgba(125,255,207,.1)}
body.s1::after{content:"пасхалка найдена!";position:fixed;z-index:1100;right:18px;bottom:18px;padding:8px 11px;border:1px solid rgba(125,255,207,.32);border-radius:7px;background:rgba(6,8,22,.78);box-shadow:var(--inset),0 0 24px rgba(125,255,207,.2);color:#dcfff6;font:10px var(--font-mono);letter-spacing:.08em;text-transform:uppercase;animation:s1c 8s both;pointer-events:none}
body.s1 .ambient{background:radial-gradient(ellipse at 18% -10%,rgba(125,255,207,.32),transparent 42%),radial-gradient(ellipse at 88% 22%,rgba(255,139,220,.24),transparent 38%),radial-gradient(ellipse at 60% 95%,rgba(255,207,107,.12),transparent 42%),linear-gradient(145deg,#05110f 0%,#0d1720 48%,#120816 100%)}
body.s1 .ambient::before{background:linear-gradient(118deg,transparent 0 29%,rgba(125,255,207,.17) 29.08%,transparent 29.3%),linear-gradient(118deg,transparent 0 68%,rgba(255,139,220,.14) 68.08%,transparent 68.26%);opacity:1}
body.s1 .ambient::after{animation:s1a 1.1s ease-in-out infinite alternate}
body.s1 .ambient-grid{background-image:linear-gradient(rgba(125,255,207,.075) 1px,transparent 1px),linear-gradient(90deg,rgba(255,139,220,.055) 1px,transparent 1px)}
body.s1 .site-header{border-bottom-color:rgba(125,255,207,.24);background:linear-gradient(to bottom,rgba(12,36,31,.9),rgba(16,12,34,.78));box-shadow:0 9px 28px rgba(0,0,0,.32),inset 0 1px 0 rgba(255,255,255,.14),0 0 28px rgba(125,255,207,.08)}
body.s1 .brand span{animation:s1b .72s steps(2,end) infinite;text-shadow:0 0 16px rgba(125,255,207,.72),0 0 30px rgba(255,139,220,.28)}
body.s1 .brand-mark{filter:drop-shadow(0 0 10px rgba(125,255,207,.5)) hue-rotate(78deg) saturate(1.25)}
body.s1 .main-menu a:hover,body.s1 .main-menu a.active{border-color:rgba(125,255,207,.18);background:linear-gradient(to bottom,rgba(125,255,207,.13),rgba(255,139,220,.045))}
body.s1 .main-menu a.active::after{background:linear-gradient(90deg,var(--cyan),var(--violet));box-shadow:0 0 10px rgba(125,255,207,.72)}
body.s1 .lang button.active{background:linear-gradient(to bottom,rgba(125,255,207,.72),rgba(255,139,220,.42));box-shadow:var(--inset),0 0 13px rgba(125,255,207,.24)}
body.s1 .aero-window{border-color:rgba(125,255,207,.32);background:linear-gradient(145deg,rgba(18,47,42,.76),rgba(24,13,40,.72));box-shadow:var(--shadow),inset 0 1px 0 rgba(255,255,255,.22),0 0 44px rgba(125,255,207,.1)}
body.s1 .aero-window::before{background:linear-gradient(to bottom,rgba(125,255,207,.15),transparent 78%)}
body.s1 .window-titlebar{border-bottom-color:rgba(125,255,207,.18);background:linear-gradient(to bottom,rgba(125,255,207,.11),rgba(255,139,220,.025))}
body.s1 .window-control,body.s1 .toolbar-button,body.s1 .address-bar,body.s1 .search-shell{border-color:rgba(125,255,207,.18);background:rgba(6,23,21,.48)}
body.s1 .section-kicker,body.s1 .skill-label,body.s1 .timeline time,body.s1 .address-bar b,body.s1 .lightbox-counter{color:#9fffe5}
body.s1 .nav-portfolio-cta,body.s1 .aero-button.primary{border-color:rgba(125,255,207,.58);background:linear-gradient(to bottom,rgba(125,255,207,.34),rgba(255,139,220,.2));box-shadow:var(--inset),0 0 30px rgba(125,255,207,.22);color:#effff9}
body.s1 .aero-button:not(.primary),body.s1 .stack-item,body.s1 .skill-primary,body.s1 .photo-item,body.s1 .project-row.active,body.s1 .privacy-updated{border-color:rgba(125,255,207,.18);background:linear-gradient(145deg,rgba(125,255,207,.1),rgba(255,139,220,.055),rgba(7,10,24,.72))}
body.s1 .hero-stack,body.s1 .project-preview,body.s1 .about-portfolio-teaser{background:radial-gradient(circle at 80% 0,rgba(255,139,220,.12),transparent 38%),linear-gradient(155deg,rgba(125,255,207,.11),rgba(10,8,28,.36))}
body.s1 .skill-tags span,body.s1 .project-thumb,body.s1 .lightbox-thumb.active{border-color:rgba(125,255,207,.28);background:linear-gradient(145deg,rgba(125,255,207,.13),rgba(255,139,220,.07));box-shadow:var(--inset),0 0 14px rgba(125,255,207,.13)}
body.s1 .timeline article::before{background:linear-gradient(to bottom,rgba(125,255,207,.75),rgba(255,139,220,.06))}
body.s1 .timeline article::after{border-color:#d9fff6;background:#52d9be;box-shadow:0 0 16px rgba(125,255,207,.78)}
body.s1 .photo-item img,body.s1 .teaser-screen,body.s1 .project-hero{filter:hue-rotate(54deg) saturate(1.16) contrast(1.03)}
body.s1 .contact-links a{filter:hue-rotate(82deg) saturate(1.15)}
body.s1 .site-footer{border-top-color:rgba(125,255,207,.13);background:rgba(4,19,18,.45)}
@keyframes s1a{from{opacity:.55;filter:hue-rotate(0)}to{opacity:1;filter:hue-rotate(92deg)}}
@keyframes s1b{50%{transform:translateX(1px);color:#cffff4}}
@keyframes s1c{0%,100%{opacity:0;transform:translateY(8px)}10%,88%{opacity:1;transform:none}}

.site-header{position:fixed;z-index:100;left:0;right:0;top:0;height:var(--header-h);border-bottom:1px solid rgba(255,255,255,.12);background:linear-gradient(to bottom,rgba(22,24,54,.86),rgba(8,9,25,.74));backdrop-filter:blur(22px) saturate(145%);box-shadow:0 7px 25px rgba(0,0,0,.26),inset 0 1px 0 rgba(255,255,255,.1)}
.nav-shell{height:100%;display:flex;align-items:center;gap:26px}
.brand{position:relative;display:flex;align-items:center;flex:0 0 auto;padding-bottom:2px;font-size:18px;font-weight:650;letter-spacing:-.02em;text-shadow:0 1px 8px rgba(255,255,255,.22)}
.brand-mark{display:block;object-fit:contain;filter:drop-shadow(0 0 6px rgba(122,136,255,.46))}
.brand-mark-caption{flex:0 0 20px;width:20px;height:20px}
.brand-mark-address{flex:0 0 16px;width:16px;height:16px}
.main-menu{display:flex;align-items:center;gap:3px;flex:1}
.main-menu a{position:relative;display:inline-flex;align-items:center;justify-content:center;padding:8px 11px;border:1px solid transparent;border-radius:7px;color:var(--muted);font-size:13px;transition:.18s ease}
.main-menu a:hover,.main-menu a.active{color:#fff;border-color:rgba(255,255,255,.13);background:linear-gradient(to bottom,rgba(255,255,255,.1),rgba(255,255,255,.035));box-shadow:inset 0 1px 0 rgba(255,255,255,.13),0 2px 8px rgba(0,0,0,.2)}
.main-menu a.active::after{content:"";position:absolute;left:23%;right:23%;bottom:-1px;height:1px;background:var(--cyan);box-shadow:0 0 7px var(--cyan)}
.nav-portfolio-cta{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-height:34px;padding:8px 16px;border:1px solid rgba(111,231,255,.35);border-radius:7px;background:linear-gradient(145deg,rgba(111,231,255,.18),rgba(128,116,255,.1));box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 0 18px rgba(111,231,255,.13);color:#edf5ff;font-size:13px;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease,background .16s ease}
.nav-portfolio-cta:hover,.nav-portfolio-cta.active{transform:translateY(-1px);border-color:rgba(111,231,255,.58);background:linear-gradient(145deg,rgba(111,231,255,.26),rgba(128,116,255,.15));box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 0 24px rgba(111,231,255,.22)}
.lang{display:flex;gap:3px;padding:3px;border:1px solid rgba(255,255,255,.12);border-radius:7px;background:rgba(0,0,0,.18)}
.lang button{border:0;border-radius:4px;padding:5px 7px;background:transparent;color:var(--dim);cursor:pointer;font-size:10px;font-weight:700;letter-spacing:.08em}
.lang button.active{color:#fff;background:linear-gradient(to bottom,rgba(138,151,255,.72),rgba(78,71,177,.65));box-shadow:var(--inset),0 0 10px rgba(111,127,255,.25)}
.menu-toggle{display:none;margin-left:auto;width:38px;height:34px;padding:8px;border:1px solid var(--line);border-radius:7px;background:rgba(255,255,255,.05);cursor:pointer}
.menu-toggle>span:not(.sr-only){display:block;height:1px;margin:4px 0;background:#e8eaff}

.startup{position:fixed;z-index:1000;inset:0;display:grid;place-items:center;background:radial-gradient(circle at 50% 42%,#171941,#070711 55%,#030306 100%);transition:opacity .7s ease,visibility .7s ease}
.startup.hide{opacity:0;visibility:hidden;pointer-events:none}
.startup-card{width:min(380px,calc(100% - 40px));text-align:center}
.startup-mark{display:block;width:64px;height:64px;margin:0 auto 19px;transform:rotate(-5deg);filter:drop-shadow(0 0 18px rgba(111,130,255,.55))}
.startup-brand{font-size:27px;font-weight:650;letter-spacing:-.04em;text-shadow:0 0 20px rgba(194,204,255,.5)}
.startup-copy{margin-top:4px;color:var(--muted);font-size:12px}
.startup-track{height:7px;margin-top:24px;padding:1px;border:1px solid rgba(255,255,255,.18);border-radius:99px;background:rgba(0,0,0,.42);overflow:hidden}
.startup-track span{display:block;width:0;height:100%;border-radius:99px;background:linear-gradient(90deg,#5b67e9,#8a92ff 45%,#e3e8ff 52%,#7f8cff 58%,#723ec1);box-shadow:0 0 12px rgba(126,141,255,.9);transition:width .12s linear}
.startup-status{display:flex;justify-content:space-between;margin-top:9px;color:var(--dim);font:10px var(--font-mono);text-transform:uppercase;letter-spacing:.08em}

main{position:relative}
.hero{padding:66px 0 38px;min-height:calc(100svh - var(--header-h));display:flex;align-items:center}
.aero-window{position:relative;border:1px solid rgba(222,228,255,.32);border-radius:var(--radius);background:linear-gradient(145deg,rgba(32,35,79,.73),rgba(10,11,30,.76));backdrop-filter:blur(27px) saturate(145%);box-shadow:var(--shadow),inset 0 1px 0 rgba(255,255,255,.19),inset 0 0 0 1px rgba(0,0,0,.18);overflow:hidden}
.aero-window::before{content:"";position:absolute;z-index:0;left:1px;right:1px;top:1px;height:95px;border-radius:13px 13px 50% 50%;background:linear-gradient(to bottom,rgba(255,255,255,.115),transparent 82%);pointer-events:none}
.window-titlebar{position:relative;z-index:2;height:39px;display:flex;align-items:center;justify-content:space-between;padding-left:14px;border-bottom:1px solid rgba(255,255,255,.12);background:linear-gradient(to bottom,rgba(255,255,255,.09),rgba(255,255,255,.018));box-shadow:inset 0 1px 0 rgba(255,255,255,.11)}
.window-caption{display:flex;align-items:center;gap:8px;min-width:0;color:#e8eaff;font-size:12px;text-shadow:0 1px 3px #000}
.caption-icon{display:grid;place-items:center;width:18px;height:18px;border:1px solid rgba(255,255,255,.25);border-radius:5px;background:linear-gradient(145deg,rgba(146,160,255,.65),rgba(73,55,153,.72));font:700 10px var(--font-mono);box-shadow:var(--inset)}
.caption-icon{border-color:color-mix(in srgb,var(--section-accent,#9ba8ff) 55%,transparent);background:linear-gradient(145deg,color-mix(in srgb,var(--section-accent,#9ba8ff) 54%,transparent),rgba(54,43,115,.76));box-shadow:var(--inset),0 0 12px color-mix(in srgb,var(--section-accent,#9ba8ff) 18%,transparent)}
.window-controls{height:100%;display:flex;align-items:flex-start;margin-right:7px}
.window-controls span{display:grid;place-items:center;width:34px;height:24px;border:1px solid rgba(255,255,255,.12);border-top:0;background:linear-gradient(to bottom,rgba(255,255,255,.13),rgba(255,255,255,.02));font-size:12px;line-height:1;box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
.window-controls .icon{width:12px;height:12px}
.window-controls span:first-child{border-radius:0 0 0 5px}
.window-controls span.close{border-radius:0 0 5px 0;background:linear-gradient(to bottom,rgba(255,98,146,.55),rgba(135,35,75,.54))}

.hero-window{width:100%}
.hero-body{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(270px,.7fr);min-height:520px}
.hero-main{display:flex;flex-direction:column;justify-content:center;min-width:0;padding:clamp(46px,7vw,92px)}
.hero h1{margin:0;font-size:clamp(64px,11vw,145px);font-weight:650;line-height:.82;letter-spacing:-.035em;text-shadow:0 3px 0 rgba(0,0,0,.24),0 0 38px rgba(159,172,255,.18)}
.hero-role{width:max-content;max-width:100%;margin:25px 0 9px;background:linear-gradient(90deg,#c4cbff,var(--cyan) 58%,var(--violet));background-clip:text;-webkit-background-clip:text;color:transparent;font:clamp(15px,2vw,20px) var(--font-mono);letter-spacing:.01em;text-shadow:0 0 18px rgba(111,231,255,.1)}
.hero-text{max-width:650px;margin:0;color:var(--muted);font-size:clamp(15px,1.55vw,18px);line-height:1.72}
.hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px}
.aero-button{display:inline-flex;align-items:center;justify-content:center;gap:18px;min-height:42px;padding:8px 16px;border:1px solid rgba(255,255,255,.2);border-radius:7px;background:linear-gradient(to bottom,rgba(255,255,255,.13),rgba(255,255,255,.035));box-shadow:var(--inset),0 3px 9px rgba(0,0,0,.24);color:#eceeff;font-size:13px;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}
.aero-button:hover{transform:translateY(-1px);border-color:rgba(167,183,255,.52);box-shadow:var(--inset),0 5px 15px rgba(0,0,0,.32),0 0 18px rgba(122,139,255,.12)}
.aero-button.primary{background:linear-gradient(to bottom,rgba(139,151,255,.76),rgba(72,65,165,.74));border-color:rgba(210,218,255,.5);box-shadow:var(--inset),0 5px 16px rgba(34,28,103,.35),0 0 24px rgba(122,136,255,.18)}
.hero-stack{position:relative;display:flex;flex-direction:column;min-width:0;padding:34px;border-left:1px solid rgba(255,255,255,.12);background:linear-gradient(155deg,rgba(92,107,207,.12),rgba(4,5,18,.32))}
.hero-stack::before{content:"";position:absolute;inset:0;background:
  linear-gradient(rgba(204,213,255,.025) 1px,transparent 1px),
  linear-gradient(90deg,rgba(204,213,255,.025) 1px,transparent 1px);
  background-size:24px 24px;mask-image:linear-gradient(to bottom,#000,transparent 78%);pointer-events:none}
.stack-meta,.stack-intro,.stack-grid,.stack-link{position:relative;z-index:1}
.stack-meta{display:flex;justify-content:space-between;gap:20px;color:#8f98c5;font:9px var(--font-mono);letter-spacing:.12em;text-transform:uppercase}
.stack-meta>span:last-child{color:#c0c7ff}
.stack-intro{margin:27px 0 20px}
.stack-intro h2{max-width:300px;margin:0;font-size:24px;line-height:1.08;letter-spacing:-.04em}
.stack-intro p{margin:10px 0 0;color:var(--muted);font-size:11px;line-height:1.6}
.stack-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none}
.stack-item{--tech:#aab4ff;display:flex;align-items:center;gap:10px;min-width:0;min-height:58px;padding:9px;border:1px solid rgba(255,255,255,.1);border-radius:8px;background:linear-gradient(145deg,color-mix(in srgb,var(--tech) 10%,transparent),rgba(5,6,18,.58));box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}
.tech-mark{display:grid;place-items:center;flex:0 0 35px;height:35px;border:1px solid color-mix(in srgb,var(--tech) 52%,transparent);border-radius:7px;background:color-mix(in srgb,var(--tech) 13%,rgba(6,7,20,.86));color:var(--tech);font:700 10px var(--font-mono);box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 0 16px color-mix(in srgb,var(--tech) 12%,transparent)}
.stack-item>span:last-child{min-width:0}
.stack-item b{display:block;overflow:hidden;color:#eceeff;font-size:11px;font-weight:600;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}
.stack-item small{display:block;max-width:100%;margin-top:4px;overflow:hidden;color:#727a9c;font:7px var(--font-mono);letter-spacing:.07em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}
.tech-html{--tech:#ff835d}.tech-css{--tech:#62a9ff}.tech-js{--tech:#f2d85c}.tech-tailwind{--tech:#5ee0ef}.tech-php{--tech:#aeb2ff}.tech-bootstrap{--tech:#b77cff}.tech-mysql{--tech:#69bfe8}.tech-docker{--tech:#2496ed}
.stack-link{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:20px;color:#bfc7ff;font:10px var(--font-mono);letter-spacing:.04em}
.stack-link .icon{width:15px;height:15px;transition:transform .16s ease}
.stack-link:hover{color:#fff}.stack-link:hover .icon{transform:translateX(3px)}
.caption-icon .icon{width:13px;height:13px}

#about{--section-accent:var(--cyan)}
#skills{--section-accent:var(--violet)}
#highlights{--section-accent:var(--amber)}
#photos{--section-accent:var(--pink)}
#contact{--section-accent:var(--green)}
.section{scroll-margin-top:calc(var(--header-h) + 22px);padding:42px 0}
.content-window{min-height:330px}
.section-grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(240px,.65fr) minmax(0,1.35fr)}
.section-heading{padding:48px clamp(28px,4vw,54px);border-right:1px solid rgba(255,255,255,.1)}
.section-index{display:flex;align-items:center;gap:9px;margin-bottom:16px;color:var(--section-accent,#8792dc);font:11px var(--font-mono);letter-spacing:.11em;text-transform:uppercase}
.section-heading h2,.contact-body h2,.portfolio-intro h1{margin:0;font-size:clamp(30px,4vw,54px);font-weight:580;line-height:1.05;letter-spacing:-.045em}
.section-heading p{margin:18px 0 0;color:var(--muted);line-height:1.72}
.copy-column{padding:48px clamp(28px,5vw,66px);font-size:17px}
.copy-column p{margin:0 0 18px;color:#d7d9ea;line-height:1.82}
.text-link{display:inline-flex;align-items:center;gap:8px;margin-top:9px;color:#abb6ff;border-bottom:1px solid rgba(171,182,255,.42);font-size:13px}
.text-link:hover{color:#fff;border-color:#fff}
.about-portfolio-teaser{position:relative;min-height:286px;margin-top:30px;border:1px solid rgba(111,231,255,.22);border-radius:12px;background:linear-gradient(145deg,rgba(111,231,255,.1),rgba(7,8,24,.62));box-shadow:inset 0 1px 0 rgba(255,255,255,.09),0 22px 48px rgba(0,0,0,.28);overflow:hidden}
.about-portfolio-teaser::before{content:"";position:absolute;z-index:2;inset:0;background:linear-gradient(180deg,rgba(9,10,29,.08),rgba(9,10,29,.68));backdrop-filter:blur(5px);pointer-events:none}
.about-portfolio-button{position:absolute;z-index:4;left:50%;top:50%;transform:translate(-50%,-50%);width:max-content;max-width:calc(100% - 34px);min-height:46px;padding-inline:20px;border-color:rgba(224,231,255,.66);background:linear-gradient(to bottom,rgba(144,157,255,.88),rgba(62,72,183,.84));box-shadow:var(--inset),0 12px 30px rgba(15,20,70,.42),0 0 34px rgba(111,231,255,.28);white-space:nowrap}
.about-portfolio-button:hover{transform:translate(-50%,-50%) translateY(-1px);box-shadow:var(--inset),0 14px 34px rgba(15,20,70,.48),0 0 42px rgba(111,231,255,.36)}
.about-portfolio-button span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis}
.teaser-window{position:absolute;inset:18px;border:1px solid rgba(255,255,255,.18);border-radius:10px;background:rgba(5,6,20,.72);overflow:hidden;filter:saturate(.9);opacity:.9}
.teaser-toolbar{display:flex;align-items:center;gap:8px;height:32px;padding:0 10px;border-bottom:1px solid rgba(255,255,255,.1);background:linear-gradient(to bottom,rgba(255,255,255,.11),rgba(255,255,255,.025));color:#bfc7ff;font:9px var(--font-mono)}
.teaser-toolbar span{width:14px;height:14px;border:1px solid rgba(111,231,255,.38);border-radius:4px;background:rgba(111,231,255,.16)}
.teaser-toolbar b{font-weight:500}
.teaser-screen{display:block;width:100%;height:calc(100% - 32px);object-fit:cover;object-position:top center;filter:blur(2px) saturate(.86) contrast(1.02);transform:scale(1.02)}

.skills-grid>*{min-width:0}
.skill-explorer{min-width:0;padding:38px clamp(24px,4vw,54px)}
.skill-primary{min-width:0;padding:27px;border:1px solid rgba(255,255,255,.14);border-radius:10px;background:linear-gradient(145deg,rgba(102,119,255,.11),rgba(255,255,255,.025));box-shadow:inset 0 1px 0 rgba(255,255,255,.09)}
.skill-label{color:#8f99db;font:10px var(--font-mono);text-transform:uppercase;letter-spacing:.1em}
.skill-primary h3{margin:5px 0 6px;font:700 clamp(24px,3vw,38px) var(--font-mono);letter-spacing:-.045em}
.skill-primary p{max-width:780px;margin:0;color:var(--muted)}
.skill-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:20px}
.skill-tags span{padding:5px 9px;border:1px solid rgba(255,255,255,.12);border-radius:5px;background:rgba(0,0,0,.18);color:#cbd0ef;font:10px var(--font-mono)}
.skill-secondary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));min-width:0;gap:1px;margin-top:23px;border:1px solid rgba(255,255,255,.09);border-radius:9px;overflow:hidden;background:rgba(255,255,255,.09)}
.skill-secondary article{--skill-accent:#9aa8ff;position:relative;display:flex;gap:14px;align-items:center;min-height:94px;padding:18px;overflow:hidden;background:linear-gradient(145deg,color-mix(in srgb,var(--skill-accent) 13%,rgba(10,11,30,.82)),rgba(10,11,30,.78))}
.skill-secondary article:last-child{grid-column:span 2}
.skill-secondary article>span{display:grid;place-items:center;flex:0 0 42px;height:42px;border:1px solid color-mix(in srgb,var(--skill-accent) 52%,transparent);border-radius:8px;background:linear-gradient(145deg,color-mix(in srgb,var(--skill-accent) 25%,transparent),rgba(18,19,48,.62));color:color-mix(in srgb,var(--skill-accent) 72%,#fff);font:700 10px var(--font-mono);box-shadow:var(--inset),0 0 14px color-mix(in srgb,var(--skill-accent) 10%,transparent)}
.skill-secondary article::after{content:"";position:absolute;inset:auto 16px 0;height:1px;background:linear-gradient(90deg,transparent,var(--skill-accent),transparent);opacity:.72}
.skill-secondary article>div{min-width:0}
.skill-secondary .skill-dotnet{--skill-accent:#b58cff}
.skill-secondary .skill-crm{--skill-accent:#72e9b5}
.skill-secondary .skill-python{--skill-accent:#6fc8ff}
.skill-secondary .skill-lua{--skill-accent:#8893ff}
.skill-secondary .skill-qa{--skill-accent:#ffc86b}
.skill-secondary .skill-admin{--skill-accent:#6fe7ff}
.skill-secondary .skill-photo{--skill-accent:#ff7fc7}
.skill-secondary .skill-video{--skill-accent:#ff8b5f}
.skill-secondary .skill-docker{--skill-accent:#2496ed}
.skill-secondary h3{margin:0;font-size:14px;font-weight:600;overflow-wrap:anywhere}
.skill-secondary p{margin:3px 0 0;color:var(--dim);font-size:11px;line-height:1.4;overflow-wrap:anywhere}

.timeline{padding:42px clamp(27px,5vw,66px)}
.timeline article{position:relative;display:grid;grid-template-columns:76px 1fr;gap:22px;padding:0 0 31px}
.timeline article:last-child{padding-bottom:0}
.timeline article::before{content:"";position:absolute;left:89px;top:7px;bottom:-1px;width:1px;background:linear-gradient(to bottom,rgba(139,153,255,.75),rgba(139,153,255,.05))}
.timeline article:last-child::before{display:none}
.timeline article::after{content:"";position:absolute;left:85px;top:5px;width:8px;height:8px;border:2px solid #c5ccff;border-radius:50%;background:#6977d8;box-shadow:0 0 12px rgba(117,135,255,.8)}
.timeline time{color:#9ba6ef;font:12px var(--font-mono)}
.timeline article>div{padding-left:14px}
.timeline h3{margin:-4px 0 5px;font-size:16px}
.timeline p{margin:0;color:var(--muted)}

.photo-section{position:relative;z-index:1;padding:48px clamp(28px,4vw,54px)}
.section-heading.photo-heading{max-width:700px;padding:0;border:0;margin-bottom:28px}
.photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.photo-item{position:relative;aspect-ratio:1/1;overflow:hidden;padding:0;border:1px solid rgba(255,255,255,.14);border-radius:8px;background:#0c0d20;content-visibility:auto;contain-intrinsic-size:180px;cursor:zoom-in;box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
.photo-item::after{content:"+";position:absolute;right:10px;bottom:10px;display:grid;place-items:center;width:27px;height:27px;border:1px solid rgba(255,255,255,.23);border-radius:6px;background:rgba(8,9,23,.68);backdrop-filter:blur(8px);opacity:0;transform:translateY(5px);transition:.2s ease}
.photo-item:hover::after{opacity:1;transform:none}
.photo-item img{width:100%;height:100%;object-fit:cover;filter:saturate(.82) contrast(1.04);transition:transform .5s ease,filter .3s ease}
.photo-item:hover img{transform:scale(1.025);filter:saturate(1) contrast(1.03)}

.contact-section{padding-bottom:80px}
.contact-body{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1.25fr;gap:60px;padding:54px clamp(30px,6vw,78px)}
.contact-body p{max-width:470px;margin:18px 0 0;color:var(--muted);line-height:1.72}
.contact-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;align-content:center}
.contact-links a{--platform:#9da9f4;--platform-base:rgba(10,11,30,.82);display:flex;align-items:center;justify-content:space-between;min-height:55px;padding:0 17px;border:1px solid color-mix(in srgb,var(--platform) 28%,transparent);border-radius:8px;background:linear-gradient(145deg,color-mix(in srgb,var(--platform) 10%,transparent),var(--platform-base));box-shadow:var(--inset),0 0 15px color-mix(in srgb,var(--platform) 8%,transparent);font-size:13px;transition:transform .18s ease,border-color .18s ease,background .18s ease,box-shadow .18s ease}
.contact-links a:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--platform) 52%,transparent);background:linear-gradient(145deg,color-mix(in srgb,var(--platform) 17%,transparent),var(--platform-base));box-shadow:var(--inset),0 5px 16px rgba(0,0,0,.24),0 0 22px color-mix(in srgb,var(--platform) 18%,transparent)}
.contact-links .contact-telegram{--platform:#2aabee}
.contact-links .contact-vk{--platform:#2787f5}
.contact-links .contact-github{--platform:#f4f4f5;--platform-base:rgba(3,4,8,.94)}
.contact-links .contact-email{--platform:#ea4335;--platform-base:rgba(30,8,12,.84)}
.contact-links b{color:var(--platform);filter:drop-shadow(0 0 5px color-mix(in srgb,var(--platform) 38%,transparent))}
.contact-links b{display:grid;place-items:center;width:20px;height:20px}.contact-links b .icon{width:16px;height:16px}
.site-footer{border-top:1px solid rgba(255,255,255,.08);background:rgba(3,4,12,.32);color:var(--dim);font:10px var(--font-mono);text-transform:uppercase;letter-spacing:.08em}
.site-footer .shell{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 0}
.site-footer a{color:#9fa9dd;border-bottom:1px solid rgba(159,169,221,.28);transition:color .16s ease,border-color .16s ease}
.site-footer a:hover{color:#fff;border-color:rgba(255,255,255,.72)}

.privacy-main{--section-accent:var(--pink);padding:50px 0 76px}
.privacy-intro{padding:38px 0 34px}
.privacy-intro h1{margin:0;font-size:clamp(42px,6vw,76px);font-weight:580;line-height:1.02;letter-spacing:-.045em;overflow-wrap:anywhere}
.privacy-intro p{max-width:680px;margin:18px 0 0;color:var(--muted);font-size:17px;line-height:1.72}
.privacy-window{max-width:920px;margin:0 auto}
.privacy-content{position:relative;z-index:1;padding:38px clamp(24px,5vw,58px)}
.privacy-updated{display:inline-flex;margin:0 0 26px;padding:6px 9px;border:1px solid rgba(255,255,255,.12);border-radius:6px;background:rgba(0,0,0,.18);color:#9da7da;font:10px var(--font-mono);text-transform:uppercase;letter-spacing:.08em}
.privacy-content article{padding:22px 0;border-top:1px solid rgba(255,255,255,.09)}
.privacy-content article:first-of-type{border-top:0;padding-top:8px}
.privacy-content h2{margin:0 0 8px;color:#f0f2ff;font-size:18px;font-weight:600}
.privacy-content p{max-width:760px;margin:0;color:#c9cde4;line-height:1.78;overflow-wrap:anywhere}
.privacy-back{margin-top:24px}

.lightbox{position:fixed;z-index:1200;inset:0;display:grid;grid-template-rows:minmax(0,1fr) auto;align-items:center;justify-items:center;gap:14px;padding:56px 72px 18px;background:rgba(1,2,8,.9);backdrop-filter:blur(18px)}
.lightbox[hidden]{display:none}
.lightbox-image{max-width:min(1400px,calc(100vw - 150px));max-height:calc(100svh - 170px);border:1px solid rgba(255,255,255,.25);border-radius:9px;box-shadow:0 30px 100px #000;object-fit:contain}
.lightbox-close{position:fixed;z-index:2;right:24px;top:20px;display:grid;place-items:center;width:40px;height:40px;padding:0;border:1px solid rgba(255,255,255,.22);border-radius:8px;background:rgba(20,22,50,.8);font-size:24px;cursor:pointer}
.lightbox-close .icon{width:20px;height:20px}
.lightbox-nav{position:fixed;z-index:2;top:50%;display:grid;place-items:center;width:48px;height:62px;padding:0;border:1px solid rgba(255,255,255,.2);border-radius:9px;background:rgba(20,22,50,.72);backdrop-filter:blur(14px);box-shadow:var(--inset),0 12px 30px rgba(0,0,0,.35);cursor:pointer;transform:translateY(-50%);transition:border-color .16s ease,background .16s ease}
.lightbox-nav:hover{border-color:rgba(183,194,255,.58);background:rgba(45,48,100,.82)}
.lightbox-nav .icon{width:25px;height:25px}
.lightbox-prev{left:22px}
.lightbox-next{right:22px}
.lightbox-footer{display:grid;justify-items:center;gap:7px;min-width:0;max-width:min(900px,88vw)}
.lightbox-counter{color:#cbd1ff;font:10px var(--font-mono);letter-spacing:.08em}
.lightbox-thumbs{display:flex;gap:7px;max-width:100%;padding:3px 2px 5px;overflow-x:auto;scrollbar-width:thin}
.lightbox-thumb{position:relative;flex:0 0 72px;height:46px;padding:0;border:1px solid rgba(255,255,255,.16);border-radius:6px;background:linear-gradient(145deg,rgba(125,139,255,.12),rgba(8,9,23,.72));overflow:hidden;cursor:pointer;opacity:.56;transition:border-color .16s ease,box-shadow .16s ease,opacity .16s ease,transform .16s ease}
.lightbox-thumb:hover{opacity:.86}
.lightbox-thumb.active{border-color:rgba(111,231,255,.8);box-shadow:0 0 0 1px rgba(111,231,255,.25),0 0 14px rgba(111,231,255,.18);opacity:1;transform:translateY(-1px)}
.lightbox-thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .16s ease}
.lightbox-thumb.has-thumb img{opacity:1}

.portfolio-main{--section-accent:var(--cyan);padding:50px 0 72px}
.portfolio-intro{padding:38px 0 34px}
.portfolio-intro h1{font-size:clamp(48px,8vw,96px)}
.portfolio-intro p{max-width:740px;margin:18px 0 0;color:var(--muted);font-size:17px}
.explorer-window{min-height:680px}
.explorer-toolbar{position:relative;z-index:2;display:flex;align-items:center;gap:6px;padding:8px;border-bottom:1px solid rgba(255,255,255,.1);background:linear-gradient(to bottom,rgba(255,255,255,.055),rgba(0,0,0,.08))}
.toolbar-button{display:grid;place-items:center;flex:0 0 30px;height:29px;padding:0;border:1px solid rgba(255,255,255,.14);border-radius:5px;background:linear-gradient(to bottom,rgba(255,255,255,.12),rgba(255,255,255,.025));box-shadow:var(--inset);cursor:pointer}
.toolbar-button .icon{width:15px;height:15px}
.toolbar-button:hover{border-color:rgba(183,194,255,.4)}
.address-bar,.search-shell{display:flex;align-items:center;min-width:0;height:29px;border:1px solid rgba(255,255,255,.13);border-radius:5px;background:rgba(4,5,17,.42);box-shadow:inset 0 1px 5px rgba(0,0,0,.3);color:var(--muted);font:10px var(--font-mono)}
.address-bar{flex:1;gap:8px;padding:0 10px 0 5px}
.address-nav{display:flex;align-items:center;gap:3px;flex:0 0 auto;margin-right:3px}
.address-nav .toolbar-button{flex-basis:24px;width:24px;height:23px;border-color:rgba(255,255,255,.1);border-radius:4px;background:rgba(255,255,255,.045);box-shadow:none}
.address-nav .toolbar-button:hover{border-color:rgba(183,194,255,.38);background:rgba(126,143,255,.12)}
.address-nav .toolbar-button .icon{width:14px;height:14px}
.address-bar span:last-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.address-bar b{color:#dbe0ff;font-weight:500}
.search-shell{flex:0 1 190px;gap:6px;padding:0 9px;color:var(--dim)}
.explorer-layout{position:relative;z-index:1;display:grid;grid-template-columns:minmax(250px,320px) minmax(0,1fr);min-height:583px}
.project-list-pane{border-right:1px solid rgba(255,255,255,.1);background:rgba(4,5,16,.18)}
.pane-head{display:flex;justify-content:space-between;padding:10px 13px;border-bottom:1px solid rgba(255,255,255,.08);color:#858daf;font:9px var(--font-mono);text-transform:uppercase;letter-spacing:.08em}
.project-list{padding:7px}
.project-row{display:grid;grid-template-columns:42px minmax(0,1fr);gap:10px;width:100%;padding:11px;border:1px solid transparent;border-radius:7px;background:transparent;text-align:left;cursor:pointer;transition:.15s ease}
.project-row:hover{background:rgba(255,255,255,.045);border-color:rgba(255,255,255,.08)}
.project-row.active{background:linear-gradient(to bottom,rgba(128,145,255,.24),rgba(74,63,154,.17));border-color:rgba(184,196,255,.25);box-shadow:inset 0 1px 0 rgba(255,255,255,.09)}
.project-thumb{display:grid;place-items:center;width:42px;height:42px;border:1px solid rgba(255,255,255,.13);border-radius:7px;background:linear-gradient(145deg,rgba(124,144,255,.22),rgba(83,45,135,.18));overflow:hidden;color:#bac2ff;font:700 9px var(--font-mono);box-shadow:var(--inset)}
.project-thumb img{width:100%;height:100%;object-fit:cover}
.project-row strong{display:block;overflow:hidden;color:#e5e7f7;font-size:12px;font-weight:550;white-space:nowrap;text-overflow:ellipsis}
.project-row small{display:block;margin-top:3px;overflow:hidden;color:var(--dim);font:9px var(--font-mono);white-space:nowrap;text-overflow:ellipsis}
.project-preview{min-width:0;padding:28px clamp(22px,3vw,40px);overflow:auto;background:radial-gradient(circle at 80% 0,rgba(112,75,185,.1),transparent 38%)}
.project-content{min-width:0}
.project-empty{display:grid;justify-items:center;align-content:center;min-height:100%;text-align:center;color:var(--muted)}
.empty-monitor{display:grid;place-items:center;width:145px;height:98px;border:1px solid rgba(255,255,255,.2);border-radius:9px;background:linear-gradient(145deg,rgba(94,110,215,.25),rgba(8,9,27,.75));box-shadow:var(--inset),0 18px 45px rgba(0,0,0,.32),inset 0 0 25px rgba(90,107,255,.13);transform:perspective(500px) rotateY(-5deg)}
.empty-monitor::after{content:"";position:absolute;width:44px;height:7px;margin-top:112px;border-radius:50%;background:rgba(0,0,0,.5);filter:blur(3px)}
.empty-monitor span{font:15px var(--font-mono);color:#aeb8ff}
.project-empty h2{margin:26px 0 4px;font-size:20px}
.project-empty p{max-width:340px;margin:0;color:var(--dim);font-size:12px}
.project-visual{position:relative;display:grid;place-items:center;min-height:245px;border:1px solid rgba(255,255,255,.13);border-radius:9px;background:linear-gradient(145deg,rgba(77,88,182,.16),rgba(7,8,24,.6));overflow:hidden;box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
.project-visual img{width:100%;height:100%;max-height:420px;object-fit:cover}
.project-cover-button{display:block;width:100%;height:100%;min-height:245px;padding:0;border:0;border-radius:0;background:transparent;cursor:zoom-in}
.project-placeholder{display:grid;place-items:center;width:100%;min-height:245px;color:#7f88b9;font:12px var(--font-mono);background:repeating-linear-gradient(135deg,rgba(255,255,255,.018) 0 14px,transparent 14px 28px)}
.project-header{display:flex;justify-content:space-between;gap:20px;margin-top:24px}
.project-kicker{display:block;color:#8e99dc;font:9px var(--font-mono);text-transform:uppercase;letter-spacing:.1em}
.project-header h2{margin:5px 0 0;font-size:clamp(24px,3vw,40px);line-height:1.05;letter-spacing:-.04em}
.project-year{color:#8e96bb;font:11px var(--font-mono)}
.project-description{margin:17px 0 22px;color:#c8cbe0;line-height:1.7}
.project-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;border:1px solid rgba(255,255,255,.09);border-radius:7px;overflow:hidden;background:rgba(255,255,255,.08)}
.project-meta>div{padding:13px;background:rgba(8,9,25,.7)}
.project-meta dt{color:#777f9f;font:8px var(--font-mono);text-transform:uppercase;letter-spacing:.09em}
.project-meta dd{margin:5px 0 0;color:#d7daee;font-size:11px;word-break:break-word}
.project-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.project-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:12px}
.gallery-button{position:relative;aspect-ratio:16/10;padding:0;border:1px solid rgba(255,255,255,.13);border-radius:6px;background:linear-gradient(145deg,rgba(124,144,255,.16),rgba(0,0,0,.22));overflow:hidden;cursor:pointer;opacity:.72;transition:border-color .16s ease,opacity .16s ease,transform .16s ease}
.gallery-button:hover,.gallery-button.active{border-color:rgba(190,201,255,.58);opacity:1}
.gallery-button.active{box-shadow:0 0 0 1px rgba(111,231,255,.38),0 0 18px rgba(111,231,255,.14)}
.gallery-button img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .16s ease}
.gallery-button.has-thumb img{opacity:1}
.gallery-fallback{position:absolute;inset:0;display:grid;place-items:center;color:#8d97ca;font:10px var(--font-mono);transition:opacity .16s ease}
.gallery-button.has-thumb .gallery-fallback{opacity:0}
.media-nav{position:absolute;z-index:2;top:50%;display:grid;place-items:center;width:34px;height:44px;padding:0;border:1px solid rgba(255,255,255,.2);border-radius:7px;background:rgba(8,9,23,.68);backdrop-filter:blur(10px);box-shadow:var(--inset),0 8px 18px rgba(0,0,0,.28);color:#fff;font-size:24px;line-height:1;cursor:pointer;transform:translateY(-50%);transition:.16s ease}
.media-nav .icon{width:22px;height:22px}
.media-nav:hover{border-color:rgba(183,194,255,.5);background:rgba(34,37,80,.78)}
.media-prev{left:12px}
.media-next{right:12px}
.media-counter{position:absolute;right:12px;bottom:12px;z-index:2;padding:4px 8px;border:1px solid rgba(255,255,255,.16);border-radius:6px;background:rgba(8,9,23,.68);backdrop-filter:blur(10px);color:#cfd5ff;font:10px var(--font-mono)}
.explorer-statusbar{position:relative;z-index:2;display:flex;justify-content:space-between;gap:20px;padding:7px 12px;border-top:1px solid rgba(255,255,255,.1);background:rgba(0,0,0,.16);color:#72799b;font:9px var(--font-mono)}
.explorer-statusbar b{color:#aab2de;font-weight:500}

.reveal{opacity:0;transform:translateY(18px);transition:opacity .65s ease,transform .65s cubic-bezier(.2,.75,.25,1)}
.reveal.visible{opacity:1;transform:none}

@media (max-width:1050px){
  .main-menu{gap:0}.main-menu a{padding-inline:8px}
  .nav-portfolio-cta{padding-inline:12px}
  .hero-body{grid-template-columns:1fr 310px}.hero-main{padding:62px 48px}
  .explorer-layout{grid-template-columns:minmax(230px,290px) minmax(0,1fr)}
  .photo-grid{grid-template-rows:180px 180px}
}

@media (max-width:820px){
  :root{--shell:min(100% - 22px,760px);--header-h:62px}
  html{scroll-padding-top:calc(var(--header-h) + 14px)}
  .section{scroll-margin-top:calc(var(--header-h) + 18px)}
  .menu-toggle{display:block;order:3;margin-left:0}
  .main-menu{position:fixed;top:calc(var(--header-h) + 7px);left:11px;right:11px;display:none;flex-direction:column;align-items:stretch;padding:8px;border:1px solid rgba(255,255,255,.2);border-radius:10px;background:rgba(10,11,31,.94);backdrop-filter:blur(24px);box-shadow:0 20px 60px rgba(0,0,0,.55)}
  .main-menu.open{display:flex}.main-menu a{margin:0 auto}.main-menu a.active::after{display:none}
  .nav-shell{gap:9px}.lang{margin-left:auto}
  .hero{padding-top:34px;min-height:auto}
  .hero-body{grid-template-columns:1fr}.hero-main{padding:54px 34px}.hero h1{font-size:clamp(62px,18vw,116px)}
  .hero-stack{border-left:0;border-top:1px solid rgba(255,255,255,.1);padding:31px 34px}
  .section-grid{grid-template-columns:1fr}.section-heading{border-right:0;border-bottom:1px solid rgba(255,255,255,.1);padding:35px 30px}.copy-column,.skill-explorer,.timeline{padding:35px 30px}.about-portfolio-teaser{min-height:250px}
  .contact-body{grid-template-columns:1fr;gap:28px;padding:40px 30px}
  .photo-section{padding:35px 30px}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:none}
  .privacy-main{padding-top:24px}.privacy-intro{padding-top:26px}.privacy-content{padding:35px 30px}
  .portfolio-main{padding-top:24px}.portfolio-intro{padding-top:26px}
  .explorer-toolbar .search-shell{display:none}
  .explorer-layout{grid-template-columns:220px minmax(0,1fr)}
  .project-list-pane{border-right:1px solid rgba(255,255,255,.1)}
}

@media (max-width:600px){
  :root{--shell:calc(100% - 24px);--radius:12px}
  body{font-size:14px}
  .site-header{height:var(--header-h)}.brand{font-size:16px}
  .nav-portfolio-cta{min-height:31px;padding:6px 9px;font-size:11px}
  .lang button{padding:5px}
  .hero{padding:16px 0 26px;align-items:flex-start}
  .hero-window{border-radius:16px;box-shadow:0 18px 55px rgba(0,0,0,.4),inset 0 1px 0 rgba(255,255,255,.16)}
  .hero-window::before{height:70px;border-radius:15px 15px 38% 38%}
  .hero-body{min-height:0}
  .hero-main{padding:34px 20px 30px}
  .hero h1{font-size:clamp(48px,17vw,72px);line-height:.92;letter-spacing:-.025em}
  .hero-role{margin:18px 0 8px;font-size:12px}
  .hero-text{font-size:13px;line-height:1.65}
  .hero-actions{display:grid;gap:9px;margin-top:26px}.aero-button{width:100%;min-height:40px}
  .hero-stack{padding:22px 20px 20px;background:linear-gradient(145deg,rgba(90,106,207,.1),rgba(7,8,25,.48))}
  .stack-intro{margin:20px 0 17px}.stack-intro h2{font-size:21px}
  .stack-grid{gap:7px}.stack-item{min-height:55px}.stack-link{padding-top:17px}
  .window-titlebar{height:36px;padding-left:10px}.window-caption{font-size:11px}.window-controls{display:none}
  .section{padding:24px 0}.section-heading,.copy-column,.skill-explorer,.timeline{padding:28px 21px}.section-heading h2,.contact-body h2{font-size:34px}.copy-column{font-size:15px}.about-portfolio-teaser{min-height:220px;margin-top:24px}.about-portfolio-button{min-height:42px;padding-inline:16px}
  .skill-primary{padding:20px}.skill-secondary{grid-template-columns:1fr}.skill-secondary article{min-height:82px}.skill-secondary article:last-child{grid-column:auto}
  .timeline article{grid-template-columns:50px 1fr;gap:23px}.timeline article::before{left:61px}.timeline article::after{left:57px}.timeline article>div{padding-left:10px}
  .photo-section{padding:28px 21px}.section-heading.photo-heading{margin-bottom:24px}.photo-grid{grid-template-columns:1fr 1fr;gap:8px}
  .contact-body{padding:30px 21px}.contact-links{grid-template-columns:repeat(2, 1fr)}
  .site-footer .shell{flex-direction:column;align-items:center;gap:4px;padding:18px 0}
  .portfolio-intro{padding:21px 4px 26px}.portfolio-intro h1{font-size:50px}.portfolio-intro p{font-size:14px}
  .privacy-intro{padding:21px 4px 26px}.privacy-intro h1{font-size:32px;word-break:break-word}.privacy-intro p{font-size:14px}.privacy-content{padding:28px 21px}.privacy-content h2{font-size:16px}
  .explorer-toolbar{gap:8px}.address-bar{flex-basis:auto}
  .explorer-layout{display:block;min-height:0}.project-list-pane{border-right:0;border-bottom:1px solid rgba(255,255,255,.1)}.project-list{display:flex;gap:6px;overflow:auto;padding:7px;scroll-padding-inline:calc((100vw - 205px) / 2);scroll-snap-type:x proximity}.project-row{flex:0 0 205px;scroll-snap-align:center}.project-preview{min-height:490px;padding:24px 18px}.project-content{display:flex;flex-direction:column}.project-visual{order:1}.project-gallery{order:2;grid-template-columns:repeat(4,minmax(72px,1fr));gap:7px;margin:9px 0 22px;overflow-x:auto;padding-bottom:3px}.gallery-button{min-width:72px}.project-header{order:3;margin-top:0}.project-description{order:4}.project-meta{order:5;grid-template-columns:1fr}.project-actions{order:6}.project-empty{min-height:440px}.explorer-statusbar{flex-direction:column;gap:3px}.explorer-statusbar span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .lightbox{gap:10px;padding:58px 12px 12px}.lightbox-image{max-width:calc(100vw - 24px);max-height:calc(100svh - 150px)}.lightbox-close{right:12px;top:12px}.lightbox-nav{width:38px;height:48px}.lightbox-nav .icon{width:21px;height:21px}.lightbox-prev{left:8px}.lightbox-next{right:8px}.lightbox-footer{max-width:94vw}.lightbox-thumb{flex-basis:56px;height:36px}
}

@media (max-width:380px){
  :root{--shell:calc(100% - 18px)}
  .nav-shell{gap:7px}.nav-portfolio-cta{padding-inline:7px;font-size:10px}.lang button{padding:5px 6px}
  .hero-main{padding:30px 17px 27px}
  .hero h1{font-size:clamp(44px,16vw,60px)}
  .hero-stack{padding:20px 17px 18px}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.aero-button,.photo-item img,.project-row{transition:none}
  body.s1::after,body.s1 .ambient::after,body.s1 .brand span{animation:none}
}
