/* self-hosted fonts (OFL); unicode-ranges copied from Google Fonts, so Onest is fetched only when Cyrillic text is shown */
@font-face{font-family:"Bricolage Grotesque";font-style:normal;font-weight:800;font-display:swap;src:url(/assets/fonts/bricolage-grotesque-800-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Figtree";font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/fonts/figtree-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Onest";font-style:normal;font-weight:400 800;font-display:swap;src:url(/assets/fonts/onest-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}

body{margin:0;background:#FBE8DC}
a{color:#1C1C1E}
a:hover{color:#4A5FC1}

.wrap{font-family:"Figtree","Onest",system-ui,sans-serif;color:#1C1C1E;background:#FBE8DC;padding:56px max(16px,4vw) 72px;overflow:hidden}
.disp{font-family:"Bricolage Grotesque","Onest","Arial Black",system-ui,sans-serif}
.frame{position:relative;max-width:1180px;margin:0 auto;background:#F8F5F1;border:3px solid #1C1C1E;border-radius:44px;box-shadow:10px 10px 0 #1C1C1E}
.inner{padding:40px clamp(20px,7vw,96px) 80px;display:flex;flex-direction:column;gap:120px}
.stk{border:3px solid #1C1C1E;box-shadow:6px 6px 0 #1C1C1E}

.btn{display:inline-flex;align-items:center;gap:10px;min-height:52px;padding:0 26px;border:3px solid #1C1C1E;border-radius:14px;box-shadow:5px 5px 0 #1C1C1E;font-weight:700;font-size:17px;text-decoration:none;color:#1C1C1E;transition:transform .12s,box-shadow .12s}
.btn:hover{color:#1C1C1E;transform:translate(2px,2px);box-shadow:3px 3px 0 #1C1C1E}

.nav{margin-left:auto}
.nav a{text-decoration:none;font-weight:600;font-size:16px}
.lang-switch{order:2;display:inline-flex;border:3px solid #1C1C1E;border-radius:12px;box-shadow:3px 3px 0 #1C1C1E;background:#FFFFFF;overflow:hidden}
.lang-switch button{appearance:none;margin:0;border:0;background:transparent;font:inherit;font-weight:700;font-size:14px;min-height:36px;padding:0 12px;color:#1C1C1E;cursor:pointer}
.lang-switch button+button{border-left:3px solid #1C1C1E}
.lang-switch button[aria-pressed="true"]{background:#F6CB45}
.lang-switch button:focus-visible{outline:3px solid #4A5FC1;outline-offset:-4px}
.nav a:hover{text-decoration:underline;text-underline-offset:4px}

.hero{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:48px;align-items:center}
.cards3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.cards2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.chip{display:inline-flex;align-items:center;min-height:34px;padding:0 14px;border:2px solid #1C1C1E;border-radius:999px;background:#FFFFFF;font-weight:600;font-size:14px}
.job{display:grid;grid-template-columns:220px minmax(0,1fr);gap:32px;padding:32px 0;border-top:3px dashed #1C1C1E}
.float{position:absolute;pointer-events:none}

/* experience: expandable projects */
.more{margin-top:6px}
.more summary{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 16px;border:3px solid #1C1C1E;border-radius:12px;box-shadow:3px 3px 0 #1C1C1E;background:#FFFFFF;font-weight:700;font-size:15px;cursor:pointer;list-style:none;user-select:none;transition:transform .12s,box-shadow .12s}
.more summary::-webkit-details-marker{display:none}
.more summary:hover{transform:translate(1px,1px);box-shadow:2px 2px 0 #1C1C1E}
.more summary:focus-visible{outline:3px solid #4A5FC1;outline-offset:3px}
.more summary svg{transition:transform .2s}
.more[open] summary{background:var(--accent,#FFFFFF)}
.more[open] summary svg{transform:rotate(180deg)}
.projects{display:flex;flex-direction:column;gap:18px;padding:22px 8px 8px 0}
.project{border:3px solid #1C1C1E;border-radius:20px;box-shadow:4px 4px 0 #1C1C1E;background:#FFFFFF;padding:22px 26px;display:flex;flex-direction:column;gap:10px}
.project h4{margin:0;font-weight:800;font-size:20px;letter-spacing:-.01em}
.project-sub{margin:-4px 0 0;font-size:15px;font-style:italic;opacity:.75}
.tags{display:flex;gap:6px;flex-wrap:wrap}
.tags .chip{min-height:28px;padding:0 11px;font-size:13px}
.project ul{margin:4px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}
.project li{position:relative;padding-left:20px;font-size:16px;line-height:1.6}
.project li::before{content:"";position:absolute;left:0;top:.6em;width:8px;height:8px;border:2px solid #1C1C1E;background:var(--accent,#F6CB45)}
@media (prefers-reduced-motion:no-preference){
  .more{interpolate-size:allow-keywords}
  .more::details-content{height:0;overflow:clip;transition:height .3s ease,content-visibility .3s allow-discrete}
  .more[open]::details-content{height:auto}
}

@media (prefers-reduced-motion:no-preference){
  html{scroll-behavior:smooth}
  .bob{animation:bob 5s ease-in-out infinite}
  .bob2{animation:bob 6s ease-in-out -2s infinite}
}
@keyframes bob{
  0%,100%{transform:translateY(0) rotate(var(--r,0deg))}
  50%{transform:translateY(-10px) rotate(var(--r,0deg))}
}

.git-badge{right:-38px}
.hero-photo{display:block;width:100%;height:100%;object-fit:cover;object-position:center top;transform:scale(1.14);transform-origin:50% 0;filter:drop-shadow(0 0 14px rgba(28,28,30,.45)) drop-shadow(0 12px 28px rgba(28,28,30,.30))}
.open-badge{left:50%;bottom:-18px;transform:translateX(-50%);white-space:nowrap;z-index:2}
.skill-label{width:150px;flex-shrink:0}

@media (max-width:1100px){
  .lang-switch{order:1;margin-left:auto}
  .nav{order:2;flex-basis:100%;margin-left:0}
}
@media (max-width:980px){
  .hero,.cards2{grid-template-columns:minmax(0,1fr)}
  .cards3,.stats{grid-template-columns:minmax(0,1fr)}
  .job{grid-template-columns:minmax(0,1fr);gap:12px}
  /* !important: stickers set display:flex inline */
  .hide-md{display:none!important}
}
@media (max-width:640px){
  .git-badge{right:-14px}
  .term-badge,.git-badge{scale:.72}
  .skill-label{width:100%}
  /* !important: header sets gap inline */
  .inner>header{gap:14px 12px!important}
  .lang-switch button{min-height:32px;padding:0 9px;font-size:13px}
  .project{padding:18px 18px;border-radius:16px}
  .projects{padding-right:6px}
  .email-btn{font-size:clamp(11px,3.5vw,16px);padding:0 14px;white-space:nowrap;max-width:100%}
  .wrap{padding-top:28px}
  .frame{border-radius:28px;box-shadow:6px 6px 0 #1C1C1E}
  .inner{gap:88px}
}
