/*
Theme Name: Nikolay Merkulov
Theme URI: https://xn--80aeikgedeehfohz0c.xn--p1ai
Author: Николай Меркулов
Description: Персональный лендинг Николая Меркулова — digital-маркетолога и full-stack разработчика. Тёмная премиальная тема с анимациями, one-page структура.
Version: 1.0
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: nikolay-merkulov
*/

:root{
  --bg: #0a0c10;
  --bg-2: #0e1116;
  --panel: #12151b;
  --panel-2: #171b22;
  --border: #262b34;
  --border-soft: #1c2028;
  --text: #f1ede4;
  --text-muted: #92969f;
  --text-faint: #565b66;
  --gold: #c9a24b;
  --blue: #5b8def;
  --green: #6fcf97;
  --radius: 16px;
  --radius-sm: 10px;
  --maxw: 1180px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0; background:var(--bg); color:var(--text); font-family:'Inter',sans-serif; -webkit-font-smoothing:antialiased; overflow-x:hidden;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important;}
}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
h1,h2,h3{font-family:'Fraunces',serif; margin:0; font-weight:600; letter-spacing:-.01em;}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 28px;}
.eyebrow{font-family:'JetBrains Mono',monospace; font-size:12.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--gold); display:flex; align-items:center; gap:10px; margin-bottom:18px;}
.eyebrow::before{content:""; width:22px; height:1px; background:var(--gold);}
.btn{display:inline-flex; align-items:center; gap:8px; font-family:'Inter',sans-serif; font-weight:600; font-size:14.5px; padding:14px 26px; border-radius:999px; cursor:pointer; border:1px solid transparent; transition:transform .25s ease, box-shadow .25s ease, background .25s ease, border-color .25s ease; white-space:nowrap;}
.btn:active{transform:scale(.97);}
.btn-gold{background:var(--gold); color:#161006;}
.btn-gold:hover{box-shadow:0 10px 30px -8px rgba(201,162,75,.55); transform:translateY(-2px);}
.btn-ghost{border-color:var(--border); color:var(--text);}
.btn-ghost:hover{border-color:var(--gold); color:var(--gold); transform:translateY(-2px);}
.btn-sm{padding:10px 18px; font-size:13.5px;}
a:focus-visible, button:focus-visible{outline:2px solid var(--gold); outline-offset:3px; border-radius:6px;}

header.site-header{position:fixed; top:0; left:0; right:0; z-index:100; border-bottom:1px solid transparent; transition:background .3s ease, border-color .3s ease, padding .3s ease; padding:22px 0;}
header.site-header.scrolled{background:rgba(10,12,16,.86); backdrop-filter:blur(14px); border-color:var(--border-soft); padding:14px 0;}
.nav-inner{display:flex; align-items:center; justify-content:space-between; gap:24px;}
.logo{font-family:'Fraunces',serif; font-weight:600; font-size:19px; display:flex; align-items:center; gap:10px;}
.logo .dot{width:7px;height:7px;border-radius:50%;background:var(--gold);box-shadow:0 0 12px var(--gold);}
.nav-links{display:flex; align-items:center; gap:34px; font-size:14.5px; color:var(--text-muted);}
.nav-links a{transition:color .2s ease; position:relative;}
.nav-links a:hover{color:var(--text);}
.nav-cta{display:flex; align-items:center; gap:16px;}
.nav-phone{font-family:'JetBrains Mono',monospace; font-size:13.5px; color:var(--text-muted); display:none;}
.burger{display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:6px;}
.burger span{width:22px; height:2px; background:var(--text);}
.mobile-menu{display:none; position:fixed; inset:0; z-index:99; background:var(--bg); padding:110px 28px 40px; flex-direction:column; gap:26px; font-size:22px; font-family:'Fraunces',serif;}
.mobile-menu.open{display:flex;}
.mobile-menu a{border-bottom:1px solid var(--border-soft); padding-bottom:18px;}

.hero{position:relative; padding:168px 0 110px; overflow:hidden;}
.hero-glow{position:absolute; top:-220px; right:-160px; width:640px; height:640px; border-radius:50%; background:radial-gradient(circle, rgba(201,162,75,.16), transparent 70%); pointer-events:none;}
.hero-glow-2{position:absolute; bottom:-260px; left:-200px; width:560px; height:560px; border-radius:50%; background:radial-gradient(circle, rgba(91,141,239,.10), transparent 70%); pointer-events:none;}
.hero-grid{display:grid; grid-template-columns:1.05fr .95fr; gap:64px; align-items:center; position:relative;}
.hero-grid > *{min-width:0;}
.hero-name{font-size:clamp(42px, 5.6vw, 74px); line-height:1.02; margin-bottom:22px;}
.hero-name em{font-style:italic; color:var(--gold); font-weight:500;}
.typed-line{font-family:'JetBrains Mono',monospace; font-size:16px; color:var(--text-muted); margin-bottom:26px; min-height:24px;}
.typed-line .cursor{display:inline-block; width:8px; height:17px; background:var(--gold); margin-left:2px; vertical-align:-3px; animation:blink 1s steps(1) infinite;}
@keyframes blink{50%{opacity:0;}}
.hero-bio{font-size:16.5px; line-height:1.75; color:var(--text-muted); max-width:520px; margin-bottom:36px;}
.hero-actions{display:flex; gap:14px; flex-wrap:wrap;}

.editor{background:var(--panel); border:1px solid var(--border); border-radius:var(--radius); overflow:hidden; box-shadow:0 40px 80px -30px rgba(0,0,0,.6);}
.editor-top{display:flex; align-items:center; gap:8px; padding:14px 16px; background:var(--panel-2); border-bottom:1px solid var(--border);}
.editor-top .cdot{width:10px; height:10px; border-radius:50%;}
.cdot.c1{background:#ec6a5e;} .cdot.c2{background:#f4bf4f;} .cdot.c3{background:#61c454;}
.editor-tabs{display:flex; border-bottom:1px solid var(--border); background:var(--bg-2);}
.etab{font-family:'JetBrains Mono',monospace; font-size:13px; color:var(--text-faint); padding:13px 18px; display:flex; align-items:center; gap:9px; cursor:pointer; border-right:1px solid var(--border); background:transparent; border-top:none; border-left:none; border-bottom:none; transition:color .2s ease, background .2s ease;}
.etab .tdot{width:6px;height:6px;border-radius:50%; background:var(--text-faint);}
.etab.active{color:var(--text); background:var(--panel);}
.etab.active .tdot{background:var(--gold);}
.etab:hover{color:var(--text);}
.editor-body{padding:30px 26px 34px; min-height:270px;}
.epane{display:none;}
.epane.active{display:block; animation:fadeIn .4s ease;}
@keyframes fadeIn{from{opacity:0; transform:translateY(6px);} to{opacity:1; transform:translateY(0);}}
.ecomment{font-family:'JetBrains Mono',monospace; font-size:13px; color:var(--green); margin-bottom:14px; opacity:.85;}
.erole{font-family:'Fraunces',serif; font-size:23px; margin-bottom:14px; color:var(--text);}
.etext{color:var(--text-muted); font-family:'JetBrains Mono',monospace; font-size:13.5px; line-height:1.8;}
.epane a.btn{margin-top:22px;}

section{padding:110px 0; position:relative;}
.section-head{max-width:640px; margin-bottom:60px;}
.section-title{font-size:clamp(30px,3.6vw,44px);}
.section-sub{color:var(--text-muted); font-size:16px; margin-top:16px; line-height:1.7;}
.reveal{opacity:0; transform:translateY(26px); transition:opacity .7s ease, transform .7s ease;}
.reveal.in{opacity:1; transform:none;}

.counters{border-top:1px solid var(--border-soft); border-bottom:1px solid var(--border-soft); padding:70px 0;}
.counters-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:40px;}
.counter-item{text-align:left; border-left:1px solid var(--border); padding-left:26px;}
.counter-num{font-family:'Fraunces',serif; font-size:clamp(38px,4.5vw,58px); color:var(--gold); line-height:1;}
.counter-label{font-family:'JetBrains Mono',monospace; font-size:12.5px; text-transform:uppercase; letter-spacing:.1em; color:var(--text-faint); margin-top:12px;}
.counters-note{font-family:'JetBrains Mono',monospace; font-size:11.5px; color:var(--text-faint); margin-top:26px;}

.cases-grid{display:grid; grid-template-columns:1fr 1fr; gap:26px;}
.case-card{background:var(--panel); border:1px solid var(--border); border-radius:var(--radius); padding:34px; display:flex; flex-direction:column; gap:16px; transition:transform .3s ease, border-color .3s ease;}
.case-card:hover{transform:translateY(-6px); border-color:var(--gold);}
.case-tag{font-family:'JetBrains Mono',monospace; font-size:11.5px; text-transform:uppercase; letter-spacing:.08em; color:var(--blue);}
.case-title{font-size:23px;}
.case-text{color:var(--text-muted); font-size:15px; line-height:1.7;}
.case-link{font-family:'JetBrains Mono',monospace; font-size:13px; color:var(--gold); display:inline-flex; align-items:center; gap:6px; margin-top:auto;}
.case-link:hover{gap:10px;}

/* ---------- PORTFOLIO CAROUSEL ---------- */
.portfolio-section{position:relative; overflow:hidden; background:#000;}
.geo-canvas{position:absolute; inset:0; width:100%; height:100%; display:block; opacity:.55;}
.portfolio-content{position:relative; z-index:2;}

/* ---------- GLOBAL BACKGROUND (inner pages) ---------- */
.geo-canvas-global{position:fixed; inset:0; width:100vw; height:100vh; z-index:-1; display:block; opacity:.35; pointer-events:none;}
@media (prefers-reduced-motion: reduce){
  .geo-canvas-global{opacity:.15;}
}
.pf-carousel{position:relative; display:flex; align-items:center; gap:16px;}
.pf-track{display:flex; gap:22px; overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth; padding:6px 4px 24px; flex:1; scrollbar-color:var(--gold) transparent;}
.pf-track::-webkit-scrollbar{height:6px;}
.pf-track::-webkit-scrollbar-thumb{background:var(--gold); border-radius:999px;}
.pf-slide{flex:0 0 auto; width:340px; scroll-snap-align:start; display:flex; flex-direction:column; gap:14px;}
.pf-frame{all:unset; cursor:pointer; display:block; border-radius:var(--radius); overflow:hidden; border:1px solid var(--border); background:rgba(10,12,16,.8); backdrop-filter:blur(4px); transition:transform .3s ease, border-color .3s ease;}
.pf-frame:hover{transform:translateY(-6px); border-color:var(--gold);}
.pf-frame-top{display:flex; gap:6px; padding:10px 12px;}
.pf-frame img{display:block; width:100%; height:auto;}
.pf-fallback{aspect-ratio:900/442; display:flex; align-items:center; justify-content:center; font-family:'Fraunces',serif; font-size:34px; color:var(--bg);}
.pf-caption{padding:0 4px;}
.pf-domain{font-family:'JetBrains Mono',monospace; font-size:12px; color:var(--text-faint); margin-bottom:6px;}
.pf-name a{font-family:'Fraunces',serif; font-size:18px; color:var(--text); transition:color .2s ease;}
.pf-name a:hover{color:var(--gold);}
.pf-tags{display:flex; gap:8px; flex-wrap:wrap; margin-top:8px;}
.pf-tag{font-family:'JetBrains Mono',monospace; font-size:11px; padding:5px 10px; border-radius:999px; border:1px solid var(--border); color:var(--text-muted);}
.pf-nav{flex:0 0 auto; width:46px; height:46px; border-radius:50%; border:1px solid var(--border); background:var(--panel); color:var(--text); font-size:22px; line-height:1; cursor:pointer; transition:border-color .2s ease, color .2s ease;}
.pf-nav:hover{border-color:var(--gold); color:var(--gold);}
@media (max-width: 700px){
  .pf-nav{display:none;}
  .pf-slide{width:78vw;}
}

/* ---------- LIGHTBOX ---------- */
.pf-lightbox{position:fixed; inset:0; background:rgba(5,6,8,.94); z-index:300; display:flex; align-items:center; justify-content:center; padding:40px; opacity:0; pointer-events:none; transition:opacity .3s ease;}
.pf-lightbox.open{opacity:1; pointer-events:auto;}
.pf-lightbox-figure{max-width:min(1100px,92vw); max-height:88vh; margin:0;}
.pf-lightbox-figure img{max-width:100%; max-height:76vh; border-radius:10px; border:1px solid var(--border); display:block; margin:0 auto;}
.pf-lightbox-figure figcaption{text-align:center; color:var(--text-muted); font-family:'JetBrains Mono',monospace; font-size:13px; margin-top:16px;}
.pf-lightbox-close{position:absolute; top:26px; right:32px; background:none; border:1px solid var(--border); color:var(--text); width:42px; height:42px; border-radius:50%; font-size:16px; cursor:pointer; transition:border-color .2s ease, color .2s ease;}
.pf-lightbox-close:hover{border-color:var(--gold); color:var(--gold);}
@media (max-width:600px){
  .pf-lightbox-close{top:14px; right:14px;}
}

.articles-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
.article-card{border-top:1px solid var(--border); padding-top:22px; display:flex; flex-direction:column; gap:12px;}
.article-num{font-family:'JetBrains Mono',monospace; color:var(--gold); font-size:13px;}
.article-title{font-size:19px; line-height:1.35;}
.article-text{color:var(--text-muted); font-size:14.5px; line-height:1.7;}
.article-link{font-family:'JetBrains Mono',monospace; font-size:12.5px; color:var(--blue); margin-top:auto;}

.timeline{border-left:1px solid var(--border); padding-left:34px; display:flex; flex-direction:column; gap:44px; margin-left:6px;}
.tl-item{position:relative;}
.tl-item::before{content:""; position:absolute; left:-40px; top:5px; width:11px; height:11px; border-radius:50%; background:var(--bg); border:2px solid var(--gold);}
.tl-date{font-family:'JetBrains Mono',monospace; font-size:12.5px; color:var(--gold); text-transform:uppercase; letter-spacing:.08em; margin-bottom:8px;}
.tl-title{font-size:21px; margin-bottom:10px;}
.tl-text{color:var(--text-muted); font-size:15px; line-height:1.7; max-width:640px;}

.reviews-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.review-card{background:var(--panel); border:1px solid var(--border); border-radius:var(--radius); padding:30px; display:flex; flex-direction:column; gap:18px;}
.review-quote{font-size:15px; line-height:1.75; color:var(--text);}
.review-quote::before{content:"\201C"; color:var(--gold); font-family:'Fraunces',serif; font-size:26px;}
.review-foot{display:flex; align-items:center; justify-content:space-between; margin-top:auto; border-top:1px solid var(--border-soft); padding-top:16px;}
.review-name{font-weight:600; font-size:14.5px;}
.review-site{font-family:'JetBrains Mono',monospace; font-size:12px; color:var(--text-faint);}

.contact-grid{display:grid; grid-template-columns:.9fr 1.1fr; gap:60px; align-items:start;}
.contact-info-item{margin-bottom:26px;}
.contact-label{font-family:'JetBrains Mono',monospace; font-size:12px; text-transform:uppercase; letter-spacing:.1em; color:var(--text-faint); margin-bottom:8px;}
.contact-value{font-size:19px; font-family:'Fraunces',serif;}
.contact-value a:hover{color:var(--gold);}
form.nm-form{display:flex; flex-direction:column; gap:16px;}
.field{background:var(--panel); border:1px solid var(--border); border-radius:var(--radius-sm); padding:16px 18px; color:var(--text); font-family:'Inter',sans-serif; font-size:15px; width:100%; transition:border-color .2s ease;}
textarea.field{resize:vertical; min-height:90px; font-family:'Inter',sans-serif;}
.contact-links{display:flex; gap:12px; flex-wrap:wrap; margin-top:8px;}
.contact-link-btn{
  width:44px; height:44px; border-radius:50%; border:1px solid var(--border);
  display:flex; align-items:center; justify-content:center;
  font-family:'JetBrains Mono',monospace; font-size:11.5px; letter-spacing:.02em; color:var(--text-muted);
  transition:border-color .2s ease, color .2s ease, background .2s ease, transform .2s ease;
}
.contact-link-btn:hover{border-color:var(--gold); color:var(--gold); background:var(--gold-soft, rgba(201,162,75,.1)); transform:translateY(-3px);}
.field:focus{outline:none; border-color:var(--gold);}
.field::placeholder{color:var(--text-faint);}
.consent{font-size:12.5px; color:var(--text-faint); line-height:1.5;}
.form-thanks{padding:26px; border:1px solid var(--gold); border-radius:var(--radius);}

footer.site-footer{border-top:1px solid var(--border-soft); padding:40px 0;}
.footer-inner{display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px;}
.footer-brand{font-family:'Fraunces',serif; font-size:16px;}
.footer-copy{font-family:'JetBrains Mono',monospace; font-size:12px; color:var(--text-faint);}

@media (max-width: 980px){
  .nav-links{display:none;}
  .burger{display:flex;}
  .hero-grid{grid-template-columns:1fr;}
  .counters-grid{grid-template-columns:1fr; gap:26px;}
  .cases-grid{grid-template-columns:1fr;}
  .articles-grid{grid-template-columns:1fr;}
  .reviews-grid{grid-template-columns:1fr;}
  .contact-grid{grid-template-columns:1fr; gap:36px;}
}
@media (max-width: 600px){
  .wrap{padding:0 20px;}
  section{padding:76px 0;}
  .hero{padding:140px 0 70px;}
  .nav-phone{display:none !important;}
}

/* ---------- SCROLL PROGRESS BAR ---------- */
.scroll-progress{position:fixed; top:0; left:0; height:2.5px; width:0%; background:linear-gradient(90deg,var(--gold),var(--blue)); z-index:200; transition:width .1s linear;}

/* ---------- CURSOR GLOW (hero ambient light) ---------- */
.hero{cursor:default;}
.cursor-glow{position:absolute; width:420px; height:420px; border-radius:50%; pointer-events:none; background:radial-gradient(circle, rgba(201,162,75,.12), transparent 70%); transform:translate(-50%,-50%); left:var(--gx,50%); top:var(--gy,20%); transition:opacity .3s ease; opacity:0; z-index:0;}
.hero:hover .cursor-glow{opacity:1;}

/* ---------- STATUS PULSE ---------- */
.status-pill{display:inline-flex; align-items:center; gap:8px; font-family:'JetBrains Mono',monospace; font-size:12px; color:var(--text-muted); border:1px solid var(--border); border-radius:999px; padding:7px 14px 7px 10px; margin-bottom:22px;}
.status-dot{width:7px; height:7px; border-radius:50%; background:var(--green); position:relative;}
.status-dot::after{content:""; position:absolute; inset:-4px; border-radius:50%; border:1px solid var(--green); animation:pulse 2s ease-out infinite;}
@keyframes pulse{0%{transform:scale(.6); opacity:.9;} 100%{transform:scale(1.8); opacity:0;}}

/* ---------- MAGNETIC BUTTONS ---------- */
.btn{will-change:transform;}

/* ---------- TILT CARDS ---------- */
.tilt{transform-style:preserve-3d; transition:transform .25s ease, border-color .3s ease;}
/* combined selector wins by specificity over either single class, keeping both effects smooth */
.reveal.tilt{transition:opacity .7s ease, transform .25s ease, border-color .3s ease;}

/* ---------- MARQUEE ---------- */
.marquee{border-top:1px solid var(--border-soft); border-bottom:1px solid var(--border-soft); overflow:hidden; padding:22px 0; background:var(--bg-2);}
.marquee-track{display:flex; width:max-content; gap:52px; animation:marquee 26s linear infinite;}
.marquee:hover .marquee-track{animation-play-state:paused;}
.marquee-item{font-family:'JetBrains Mono',monospace; font-size:14px; color:var(--text-faint); display:flex; align-items:center; gap:52px; white-space:nowrap;}
.marquee-item span.sep{color:var(--gold);}
@keyframes marquee{from{transform:translateX(0);} to{transform:translateX(-50%);}}

/* ---------- EMPTY STATE ---------- */
.nm-empty{font-family:'JetBrains Mono',monospace; font-size:13px; color:var(--text-faint); border:1px dashed var(--border); border-radius:var(--radius); padding:26px; text-align:center;}

/* ---------- ROLES SECTION (full-width tabs, was about-section) ---------- */
.roles-section{padding:100px 0;}
.editor--wide{width:100%;}
.editor--wide .editor-body{padding:44px 48px 48px;}
.editor--wide .etext{max-width:760px; font-size:14.5px;}
.editor--wide .erole{font-size:27px;}
@media (max-width: 600px){
  .editor--wide .editor-body{padding:28px 22px 30px;}
}

/* ---------- ABOUT / VIDEO PORTRAIT (now lives in hero) ---------- */
.about-portrait{position:relative; aspect-ratio:480/540; border-radius:var(--radius); overflow:hidden; background:#000; border:1px solid var(--border); max-width:440px; width:100%; margin-left:auto;}
.about-video{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block;
  filter:grayscale(1) sepia(.35) hue-rotate(-8deg) saturate(1.5) contrast(1.08) brightness(.92);
  transition:filter .5s ease, transform .5s ease;
}
.about-portrait:hover .about-video{
  filter:grayscale(.85) sepia(.4) hue-rotate(-8deg) saturate(1.8) contrast(1.12) brightness(1.02);
  transform:scale(1.03);
}
.about-portrait::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg, transparent 70%, rgba(0,0,0,.5) 100%);
}
@media (max-width: 980px){
  .about-portrait{margin:0 auto; max-width:320px;}
}
@media (prefers-reduced-motion: reduce){
  .about-portrait{background:radial-gradient(circle, rgba(201,162,75,.18), #000 70%);}
}
.ai-section{position:relative; overflow:hidden; background:#000; padding:120px 0;}
.ai-canvas{position:absolute; inset:0; width:100%; height:100%; display:block; opacity:.55;}
.ai-content{position:relative; z-index:2;}
.ai-section .section-sub{max-width:640px;}
.ai-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:22px; margin-top:10px;}
.ai-item{
  background:rgba(10,12,16,.72); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
  border:1px solid var(--border); border-radius:var(--radius); padding:28px;
}
.ai-item:hover{border-color:var(--gold);}
.ai-item-num{font-family:'JetBrains Mono',monospace; font-size:12.5px; color:var(--gold); margin-bottom:12px;}
.ai-item-title{font-family:'Fraunces',serif; font-size:19px; margin-bottom:10px; color:var(--text);}
.ai-item-text{color:var(--text-muted); font-size:14.5px; line-height:1.7;}
@media (max-width: 780px){
  .ai-grid{grid-template-columns:1fr;}
}
@media (prefers-reduced-motion: reduce){
  .ai-canvas{display:none;}
  .ai-section{background:linear-gradient(160deg,#0a0c10,#14110a);}
}
@media (prefers-reduced-motion: reduce){
  .marquee-track{animation:none;}
  .cursor-glow{display:none;}
  .tilt{transform:none !important;}
}

