/* frontier-wire — neubrutalist newspaper. yellow / pink / black. */
:root{
  --bg:#FBFAF7; --ink:#191216; --yellow:#EFC127; --pink:#D6336C;
  --paper:#FFFFFF; --border:3px solid var(--ink);
  --shadow:6px 6px 0 var(--ink); --shadow-sm:4px 4px 0 var(--ink);
  --font-d:'Space Grotesk',system-ui,sans-serif;
  --font-b:'IBM Plex Serif',Georgia,serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-b);line-height:1.6;
  background-image:radial-gradient(rgba(23,20,26,.10) 1px,transparent 1px) 1px,transparent 1px);background-size:22px 22px;background-attachment:fixed}
a{color:var(--ink);text-decoration-thickness:2px;text-underline-offset:3px}
a:hover{background:var(--yellow)}
img{max-width:100%}

/* language switching */
body.en .lang-ru{display:none!important}
body:not(.en) .lang-en{display:none!important}

/* masthead */
.masthead{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  background:var(--ink);border-bottom:6px solid var(--yellow);padding:.9rem clamp(1rem,4vw,2.5rem);
  position:sticky;top:0;z-index:50}
.brand{font-family:var(--font-d);font-weight:700;font-size:clamp(1.3rem,3.5vw,1.9rem);
  letter-spacing:-.03em;text-decoration:none;background:none;color:var(--yellow)}
.brand span{color:var(--pink)}
.logo{height:1.9em;vertical-align:middle;margin-right:.6rem;background:var(--paper);border:3px solid var(--paper);box-shadow:3px 3px 0 var(--pink)}
.brand{display:flex;align-items:center}
.brand:hover{background:none;color:var(--pink)}
.masthead .nav-link{box-shadow:4px 4px 0 var(--pink)}
.masthead nav{display:flex;align-items:center;gap:.9rem}
.nav-link{font-family:var(--font-d);font-weight:700;text-decoration:none;border:var(--border);
  background:var(--paper);padding:.25rem .8rem;box-shadow:var(--shadow-sm)}
.nav-link:hover{background:var(--pink);color:var(--paper);transform:translate(-2px,-2px);box-shadow:var(--shadow)}
.lang-toggle{font-family:var(--font-d);font-weight:700;font-size:1rem;cursor:pointer;
  border:var(--border);background:var(--pink);color:var(--paper);padding:.25rem .8rem;box-shadow:var(--shadow-sm)}
.lang-toggle:hover{transform:translate(-2px,-2px);box-shadow:var(--shadow)}
.lang-toggle:active{transform:translate(2px,2px);box-shadow:none}

main{max-width:1100px;margin:0 auto;padding:clamp(1.2rem,4vw,3rem)}

/* edition head */
.kicker{font-family:var(--font-d);font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:.9rem}
.edition-head{margin-bottom:2.2rem}
.editorial{border:var(--border);background:var(--yellow);box-shadow:var(--shadow);
  padding:1.2rem 1.5rem;max-width:52rem;font-size:1.08rem}
.editorial p:first-child{margin-top:0}.editorial p:last-child{margin-bottom:0}
.page-title{font-family:var(--font-d);font-size:clamp(2rem,6vw,3.2rem);letter-spacing:-.03em}

/* card grid — deliberate asymmetry: first card spans wide */
.grid{display:grid;gap:1.6rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.grid .card:first-child{grid-column:1/-1;display:grid;grid-template-columns:1fr;gap:0 1.5rem}
@media(min-width:760px){.grid .card:first-child{grid-template-columns:1.1fr 1fr}
  .grid .card:first-child .card-img{grid-row:1/4;height:100%;object-fit:cover;margin:-1.2rem 0 -1.2rem -1.4rem;border-right:var(--border);border-bottom:none}
  .grid .card:first-child h3{font-size:1.7rem}}
.card{border:var(--border);background:var(--paper);box-shadow:var(--shadow);padding:1.2rem 1.4rem;
  transition:transform .12s,box-shadow .12s}
.card:hover{transform:translate(-3px,-3px);box-shadow:9px 9px 0 var(--pink)}
.card-img{display:block;border-bottom:var(--border);margin:-1.2rem -1.4rem 1rem;width:calc(100% + 2.8rem);
  max-width:none;height:170px;object-fit:cover;filter:contrast(1.05)}
.card h3{font-family:var(--font-d);letter-spacing:-.02em;font-size:1.25rem;line-height:1.25;margin:.6rem 0 .4rem}
.card h3 a{text-decoration:none;background:none}
.card h3 a:hover{background:var(--yellow)}
.dek{margin:.2rem 0 0;font-size:.98rem}
.badge{display:inline-block;font-family:var(--font-d);font-weight:700;font-size:.78rem;
  text-transform:uppercase;letter-spacing:.05em;border:2px solid var(--ink);padding:.05rem .55rem;background:var(--yellow)}
.rubric-ai .badge{background:var(--pink);color:var(--paper)}
.rubric-science .badge{background:var(--ink);color:var(--yellow)}
.rubric-world .badge{background:var(--paper)}
.rubric-culture .badge{background:var(--pink);color:var(--paper)}

/* article page */
.article{max-width:46rem;margin:0 auto}
.article h1{font-family:var(--font-d);font-size:clamp(1.7rem,5vw,2.6rem);line-height:1.15;letter-spacing:-.03em;margin:.8rem 0}
.dek.big{font-size:1.15rem;font-style:italic}
.hero-img{border:var(--border);box-shadow:var(--shadow);margin:1rem 0}
.prose{font-size:1.06rem}
.prose h3{font-family:var(--font-d);background:var(--yellow);display:inline-block;padding:.1rem .6rem;border:2px solid var(--ink)}
.prose pre{border:var(--border);background:var(--paper);box-shadow:var(--shadow-sm);padding:1rem;overflow-x:auto}
.prose blockquote{border-left:6px solid var(--pink);margin:1rem 0;padding:.2rem 0 .2rem 1rem;font-style:italic}
.srcline{border-top:var(--border);margin-top:2rem;padding-top:1rem;font-size:.9rem;word-break:break-all}

/* archive */
.archive{list-style:none;padding:0;max-width:36rem}
.archive li{display:flex;justify-content:space-between;align-items:center;gap:1rem;
  border:var(--border);background:var(--paper);box-shadow:var(--shadow-sm);padding:.7rem 1.1rem;margin-bottom:1rem;font-family:var(--font-d);font-weight:700}
.archive li:hover{transform:translate(-2px,-2px);box-shadow:var(--shadow)}
.archive .count{font-weight:500;font-family:var(--font-b);font-size:.9rem}

footer{border-top:6px solid var(--pink);background:var(--ink);color:#F5F5F0;margin-top:3rem;
  padding:1.4rem clamp(1rem,4vw,2.5rem);font-size:.92rem}
footer a{color:var(--yellow)}
footer a:hover{background:var(--pink);color:#fff}

/* loader — generativeloaders-style three stamping squares */
.loader{position:fixed;inset:0;background:var(--bg);z-index:200;display:none;
  align-items:center;justify-content:center;gap:14px}
.loader.on{display:flex}
.loader span{width:22px;height:22px;border:var(--border);background:var(--yellow);
  box-shadow:var(--shadow-sm);animation:stamp .55s infinite alternate}
.loader span:nth-child(2){background:var(--pink);animation-delay:.18s}
.loader span:nth-child(3){background:var(--ink);animation-delay:.36s}
@keyframes stamp{from{transform:translate(0,0)}to{transform:translate(-6px,-6px);box-shadow:8px 8px 0 var(--ink)}}

@media(prefers-reduced-motion:reduce){
  *,.card:hover,.nav-link:hover{transition:none!important;animation:none!important;transform:none!important}
}

/* --- personal resume additions --- */
.hero{border:var(--border);background:var(--paper);color:var(--ink);box-shadow:8px 8px 0 var(--pink);padding:1.6rem 1.8rem;margin-bottom:2.4rem}
.hero h1{color:var(--ink);text-shadow:none;box-shadow:inset 0 -0.35em 0 var(--yellow);display:inline;line-height:1.5}
.hero h1{font-family:var(--font-d);font-size:clamp(1.8rem,5vw,2.8rem);letter-spacing:-.03em;margin:.2rem 0}
.hero .role{font-family:var(--font-d);font-weight:700;font-size:1.1rem}
.hero p{max-width:44rem}
.contacts{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:.6rem;margin:1.2rem 0 0}
.contacts a{font-family:var(--font-d);font-weight:700;text-decoration:none;border:2px solid #fff;
  background:var(--ink);color:#fff;padding:.25rem .7rem;display:inline-block}
.contacts a:hover{background:var(--yellow);color:var(--ink);border-color:var(--ink)}
.section-title{font-family:var(--font-d);font-size:clamp(1.4rem,4vw,2rem);letter-spacing:-.03em;
  border-left:8px solid var(--pink);padding-left:.6rem;margin:2.4rem 0 1rem}
.exp-card{border:var(--border);background:var(--paper);box-shadow:var(--shadow-sm);padding:1.1rem 1.4rem;margin-bottom:1.2rem}
.exp-card h3{font-family:var(--font-d);font-size:1.15rem;margin:0 0 .1rem;letter-spacing:-.02em}
.exp-card .meta{font-family:var(--font-d);font-weight:700;font-size:.85rem;color:var(--pink);margin-bottom:.5rem}
.exp-card ul{margin:.4rem 0 0;padding-left:1.2rem}
.link-card{border:var(--border);background:var(--yellow);box-shadow:var(--shadow);padding:1rem 1.3rem;margin:1rem 0;
  font-family:var(--font-d);font-weight:700}
.link-card a{text-decoration:underline}
.pub-list{list-style:none;padding:0}
.pub-list li{border:var(--border);background:var(--paper);box-shadow:var(--shadow-sm);padding:.7rem 1rem;margin-bottom:.8rem}
.pub-date{font-family:var(--font-d);font-weight:700;font-size:.85rem;color:var(--pink)}

/* v4 typography */
h1,h2,h3,.card h3{text-wrap:balance}
.prose,.exp-card{hyphens:auto;-webkit-hyphens:auto}
.dek{text-wrap:pretty}

/* hero photo */
.hero{display:flex;flex-wrap:wrap;gap:1.6rem;align-items:flex-start}
.hero-photo{flex:0 0 auto;width:clamp(150px,20vw,260px);aspect-ratio:1;object-fit:cover;
  border:var(--border);box-shadow:6px 6px 0 var(--yellow);background:#fff}
.hero-text{flex:1 1 22rem;min-width:0;max-width:46rem}
.hero-text .role{margin-top:0}
.hero-text h1{margin:.3rem 0 .6rem}
