/* Shahin Portfolio Theme */
:root {
    --bg: #0b0f17;
    --bg-soft: #111827;
    --card: #151c2c;
    --text: #ffffff;
    --muted: rgba(255, 255, 255, 0.68);
    --line: rgba(255, 255, 255, 0.1);
    --accent: #6c63ff;
    --accent-2: #00d4ff;
    --radius: 24px;
    --container: 1180px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 112px; }
html, body { max-width: 100%; }
body {
    margin: 0;
    overflow-x: hidden;
    overflow-x: clip;
    font-family: "iranyekanx", "iransansx", Tahoma, Arial, sans-serif;
    font-size: 16px;
    line-height: 1.8;
    background: var(--bg);
    color: var(--text);
    direction: rtl;
    text-align: right;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
body.menu-open { overflow-x: hidden; }
[id] { scroll-margin-top: 112px; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; height: auto; user-select: none; }
button, input, textarea, select { font: inherit; }
::selection { background: rgba(0, 212, 255, 0.26); color: #fff; }
::-webkit-scrollbar { width: 10px; }
::-webkit-scrollbar-track { background: #070a10; }
::-webkit-scrollbar-thumb { background: rgba(255,255,255,.18); border-radius: 999px; border: 2px solid #070a10; }
::-webkit-scrollbar-thumb:hover { background: rgba(0,212,255,.42); }

.container { width: min(var(--container), calc(100% - clamp(24px, 5vw, 48px))); margin-inline: auto; }
.section { padding: clamp(76px, 8vw, 110px) 0; }
.section-header { max-width: 760px; margin-bottom: clamp(34px, 5vw, 48px); }
.section-header h2 { margin: 0; }
.section-header p { color: var(--muted); margin: 18px 0 0; }
.section-kicker, .eyebrow {
    display: inline-flex; margin-bottom: 18px; padding: 8px 14px; border: 1px solid var(--line);
    border-radius: 999px; color: var(--accent-2); background: rgba(255,255,255,.04); font-weight: 700;
}

/* Accessibility */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible {
    outline: 3px solid rgba(0,212,255,.42); outline-offset: 4px;
}

/* Header */
.site-header {
    position: sticky; top: 0; z-index: 999; padding: 10px 0;
    background: rgba(11,15,23,.78); backdrop-filter: blur(20px); border-bottom: 1px solid var(--line);
    transform: translateY(0);
    will-change: transform;
    transition: transform .28s cubic-bezier(.22,.61,.36,1), background .25s ease, border-color .25s ease, box-shadow .25s ease, padding .25s ease;
}
body.admin-bar .site-header { top: 32px; }
.site-header.is-scrolled { padding: 8px 0; background: rgba(7,10,16,.92); border-color: rgba(255,255,255,.13); box-shadow: 0 18px 50px rgba(0,0,0,.22); }
.site-header.is-hidden { transform: translateY(calc(-100% - 60px)); pointer-events: none; }
.header-inner { min-height: 64px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.site-branding, .header-actions { position: relative; z-index: 220; flex: 0 0 auto; }
.site-title { display: inline-flex; align-items: center; font-weight: 900; transition: color .25s ease; }
.site-title:hover { color: var(--accent-2); }
.custom-logo-link, .footer-logo .custom-logo-link { display: inline-flex; align-items: center; }
.custom-logo { max-height: 46px; width: auto; }
.header-navigation-wrap { display: flex; align-items: center; justify-content: center; flex: 1; min-width: 0; }
.site-navigation { display: flex; align-items: center; justify-content: center; }
.primary-menu, .footer-menu { list-style: none; margin: 0; padding: 0; }
.primary-menu { display: flex; align-items: center; gap: 28px; }
.primary-menu a { position: relative; display: inline-flex; align-items: center; min-height: 42px; color: var(--muted); font-weight: 800; white-space: nowrap; transition: color .25s ease; }
.primary-menu a::after { content: ""; position: absolute; right: 0; bottom: 4px; width: 100%; height: 2px; border-radius: 999px; background: linear-gradient(90deg,var(--accent),var(--accent-2)); transform: scaleX(0); transform-origin: right; transition: transform .25s ease; }
.primary-menu a:hover, .primary-menu a.is-active { color: var(--text); }
.primary-menu a:hover::after, .primary-menu a.is-active::after { transform: scaleX(1); }
.header-actions { display: flex; align-items: center; gap: 12px; }
.header-cta { min-height: 44px; padding: 0 18px; white-space: nowrap; }
.menu-toggle { display: none; position: relative; width: 46px; height: 46px; flex: 0 0 46px; border: 1px solid var(--line); background: rgba(255,255,255,.04); border-radius: 15px; cursor: pointer; transition: border-color .25s ease, background .25s ease; }
.menu-toggle:hover { border-color: rgba(0,212,255,.42); background: rgba(0,212,255,.08); }
.menu-toggle span { position: absolute; right: 12px; width: 20px; height: 2px; border-radius: 999px; background: var(--text); transition: transform .25s ease, opacity .25s ease, top .25s ease; }
.menu-toggle span:nth-child(1) { top: 15px; }.menu-toggle span:nth-child(2) { top: 22px; }.menu-toggle span:nth-child(3) { top: 29px; }
body.menu-open .menu-toggle span:nth-child(1) { top: 22px; transform: rotate(45deg); }
body.menu-open .menu-toggle span:nth-child(2) { opacity: 0; }
body.menu-open .menu-toggle span:nth-child(3) { top: 22px; transform: rotate(-45deg); }
.menu-backdrop { display: none; }

/* Buttons */
.btn { position: relative; isolation: isolate; display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 20px; border-radius: 999px; font-weight: 800; overflow: hidden; transition: transform .25s ease, border-color .25s ease, background .25s ease; }
.btn:hover { transform: translateY(-3px); }.btn:active { transform: translateY(-1px) scale(.98); }
.btn-primary { background: linear-gradient(135deg,var(--accent),var(--accent-2)); color:#fff; box-shadow:0 16px 40px rgba(108,99,255,.26); }
.btn-secondary { border:1px solid var(--line); color:var(--text); background:rgba(255,255,255,.04); }
.btn-secondary:hover { border-color:rgba(255,255,255,.24); }

/* Hero */
.hero-section { position:relative; min-height:calc(100vh - 84px); display:flex; align-items:center; padding:96px 0; overflow:hidden; isolation:isolate; }
.hero-bg { position:absolute; inset:0; z-index:-1; pointer-events:none; }
.hero-grid-bg, .contact-grid-bg, .footer-grid-bg, .archive-grid-bg, .content-grid-bg { position:absolute; inset:0; background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px); background-size:54px 54px; mask-image:radial-gradient(circle at center,black 0%,transparent 72%); opacity:.55; }
.hero-orb, .skills-orb, .contact-orb, .footer-orb, .archive-orb, .content-orb, .portfolio-hero-orb { position:absolute; border-radius:999px; filter:blur(52px); opacity:.5; animation:orbFloat 10s ease-in-out infinite alternate; }
.hero-orb-one { width:360px;height:360px;top:8%;right:8%;background:rgba(108,99,255,.34); }
.hero-orb-two { width:320px;height:320px;left:10%;bottom:8%;background:rgba(0,212,255,.24);animation-delay:1.5s; }
.hero-orb-three { width:220px;height:220px;right:48%;bottom:16%;background:rgba(255,255,255,.12);animation-delay:3s; }
.hero-inner { display:grid; grid-template-columns:1.1fr .9fr; gap:64px; align-items:center; }
.hero-content h1 { margin:0; max-width:760px; }
.hero-content p { max-width:620px; margin:28px 0 0; color:var(--muted); }
.hero-actions, .about-actions, .single-portfolio-actions, .error-actions { display:flex; flex-wrap:wrap; gap:16px; margin-top:36px; }
.hero-visual { position:relative; min-height:420px; }
.code-card { position:relative; direction:ltr; text-align:left; border:1px solid var(--line); border-radius:var(--radius); background:radial-gradient(circle at top left,rgba(108,99,255,.26),transparent 38%),linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.025)),var(--card); box-shadow:0 30px 90px rgba(0,0,0,.38); overflow:hidden; animation:floatCard 6s ease-in-out infinite; }
.code-card::before { content:""; position:absolute; top:22px; left:28px; width:11px; height:11px; border-radius:999px; background:#ff5f57; box-shadow:22px 0 #ffbd2e,44px 0 #28c840; }
.code-card pre { margin:0; padding:62px 32px 34px; overflow-x:auto; }.code-card code { font-family:Consolas,Monaco,"Courier New",monospace; color:#d8e1ff; font-size:16px; line-height:1.85; }
.tech-chip { position:absolute; z-index:2; display:inline-flex; align-items:center; justify-content:center; min-height:42px; padding:0 18px; border:1px solid var(--line); border-radius:999px; background:rgba(255,255,255,.075); backdrop-filter:blur(16px); font-weight:800; box-shadow:0 16px 40px rgba(0,0,0,.22); animation:chipFloat 5s ease-in-out infinite; }
.tech-chip-one { top:18px;right:-16px; }.tech-chip-two { left:28px;bottom:72px;animation-delay:1.2s; }.tech-chip-three { right:34px;bottom:12px;animation-delay:2s; }

/* About & Services */
.about-grid { display:grid; grid-template-columns:1.15fr .85fr; gap:48px; align-items:stretch; }
.about-content { padding:36px; border:1px solid var(--line); border-radius:var(--radius); background:rgba(255,255,255,.035); }
.about-content p { margin:0; color:var(--muted); }.about-content p+p { margin-top:22px; }
.about-stats { display:grid; gap:18px; }.stat-card { padding:28px; border:1px solid var(--line); border-radius:var(--radius); background:radial-gradient(circle at top left,rgba(0,212,255,.12),transparent 42%),var(--card); transition:transform .25s ease,border-color .25s ease; }
.stat-card:hover { transform:translateY(-4px); border-color:rgba(255,255,255,.22); }.stat-card strong { display:block; margin-bottom:10px; font-size:21px; }.stat-card span { color:var(--muted); }
.services-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.service-card { position:relative; min-height:280px; padding:30px; border:1px solid var(--line); border-radius:var(--radius); background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.025)),var(--card); overflow:hidden; transition:transform .25s ease,border-color .25s ease; }
.service-card::before { content:""; position:absolute; inset:auto 0 0; height:3px; background:linear-gradient(90deg,var(--accent),var(--accent-2)); transform:scaleX(0); transform-origin:right; transition:transform .3s ease; }
.service-card:hover { transform:translateY(-6px); border-color:rgba(255,255,255,.22); }.service-card:hover::before { transform:scaleX(1); }
.service-number { display:inline-flex; align-items:center; justify-content:center; width:54px; height:38px; margin-bottom:28px; border-radius:999px; background:rgba(108,99,255,.14); color:var(--accent-2); font-weight:800; direction:ltr; }
.service-card h3 { margin:0 0 16px; }.service-card p { margin:0;color:var(--muted); }

/* Portfolio */
.portfolio-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.portfolio-card, .post-card { border:1px solid var(--line); border-radius:var(--radius); background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.025)),var(--card); overflow:hidden; transition:transform .28s ease,border-color .28s ease; }
.portfolio-card:hover, .post-card:hover { transform:translateY(-8px); border-color:rgba(255,255,255,.24); }
.portfolio-image, .post-card-image { position:relative; display:block; aspect-ratio:16/10; overflow:hidden; background:radial-gradient(circle at top right,rgba(108,99,255,.24),transparent 40%),rgba(255,255,255,.04); }
.portfolio-image img, .post-card-image img { width:100%;height:100%;object-fit:cover;backface-visibility:hidden;transition:transform .55s ease,filter .55s ease; }
.portfolio-card:hover .portfolio-image img, .post-card:hover .post-card-image img { transform:scale(1.08);filter:brightness(.72); }
.portfolio-overlay { position:absolute; inset:auto 18px 18px; display:inline-flex; align-items:center; justify-content:center; min-height:44px; border:1px solid rgba(255,255,255,.18); border-radius:999px; background:rgba(11,15,23,.72); backdrop-filter:blur(14px); font-weight:800; opacity:0; transform:translateY(14px); transition:opacity .28s ease,transform .28s ease; }
.portfolio-card:hover .portfolio-overlay { opacity:1;transform:translateY(0); }
.portfolio-placeholder { display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:24px;text-align:center; }.portfolio-placeholder span { color:var(--muted);font-weight:800; }
.portfolio-content, .post-card-content { padding:26px; }.portfolio-meta, .post-card-meta { display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px; }
.portfolio-meta span, .post-card-meta span, .post-card-meta a { display:inline-flex;align-items:center;min-height:30px;padding:0 12px;border:1px solid var(--line);border-radius:999px;color:var(--accent-2);background:rgba(255,255,255,.04);font-weight:800; }
.portfolio-content h3, .post-card-content h2 { margin:0; }.portfolio-content h3 a, .post-card-content h2 a { transition:color .25s ease; }.portfolio-content h3 a:hover, .post-card-content h2 a:hover { color:var(--accent-2); }
.portfolio-content p, .post-card-content p { margin:14px 0 0;color:var(--muted); }
.portfolio-tech-list, .single-tech-list { display:flex;flex-wrap:wrap;gap:8px;margin-top:20px; }
.portfolio-tech-list a, .portfolio-tech-list span, .single-tech-list a, .footer-tech-list span, .skills-stack-cloud span, .process-tags em { display:inline-flex;align-items:center;min-height:30px;padding:0 11px;border-radius:999px;background:rgba(108,99,255,.13);color:rgba(255,255,255,.82);font-weight:700;transition:background .25s ease,color .25s ease,transform .25s ease; }
.portfolio-tech-list a:hover, .single-tech-list a:hover { background:rgba(0,212,255,.16);color:var(--accent-2);transform:translateY(-2px); }
.portfolio-actions { display:flex;flex-wrap:wrap;gap:14px;margin-top:24px; }.portfolio-link, .read-more { color:var(--accent-2);font-weight:800; }.portfolio-link:not(.external) { color:var(--text); }.portfolio-link:hover { color:var(--accent-2); }
.portfolio-more { display:flex;justify-content:center;margin-top:42px; }.portfolio-empty { padding:42px;border:1px dashed rgba(255,255,255,.22);border-radius:var(--radius);background:rgba(255,255,255,.035); }.portfolio-empty h2,.portfolio-empty h3 { margin:0 0 12px; }.portfolio-empty p { margin:0;color:var(--muted); }

/* Skills */
.skills-section, .contact-section, .site-footer { position:relative;overflow:hidden;isolation:isolate; }
.skills-bg,.contact-bg,.footer-bg,.archive-hero-bg,.content-hero-bg,.error-bg,.portfolio-hero-bg { position:absolute;inset:0;z-index:-1;pointer-events:none; }
.skills-orb-one { width:320px;height:320px;right:-80px;top:20%;background:rgba(108,99,255,.24); }.skills-orb-two { width:300px;height:300px;left:-90px;bottom:8%;background:rgba(0,212,255,.18);animation-delay:2s; }
.skills-layout { display:grid;grid-template-columns:.9fr 1.1fr;gap:28px;align-items:stretch; }
.skills-main-card { position:relative;padding:38px;border:1px solid var(--line);border-radius:calc(var(--radius) + 4px);background:radial-gradient(circle at top right,rgba(108,99,255,.22),transparent 42%),linear-gradient(180deg,rgba(255,255,255,.065),rgba(255,255,255,.025)),var(--card);overflow:hidden; }
.skills-label { display:inline-flex;margin-bottom:28px;min-height:34px;align-items:center;padding:0 14px;border-radius:999px;background:rgba(0,212,255,.12);color:var(--accent-2);font-weight:900;direction:ltr; }
.skills-main-card h3 { margin:0; }.skills-main-card p { margin:24px 0 0;color:var(--muted); }.skills-stack-cloud { display:flex;flex-wrap:wrap;gap:10px;margin-top:32px; }
.skills-meter-list { display:grid;gap:18px; }.skill-card { padding:24px;border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(180deg,rgba(255,255,255,.052),rgba(255,255,255,.024)),var(--card);transition:transform .28s ease,border-color .28s ease; }.skill-card:hover { transform:translateY(-5px);border-color:rgba(255,255,255,.22); }
.skill-card-head { display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px; }.skill-card-head strong { direction:ltr;text-align:left; }.skill-card-head span { color:var(--accent-2);font-weight:900;direction:ltr; }
.skill-meter { position:relative;height:10px;border-radius:999px;background:rgba(255,255,255,.08);overflow:hidden; }.skill-meter-fill { position:absolute;inset:0 auto 0 0;width:var(--level);border-radius:inherit;background:linear-gradient(90deg,var(--accent),var(--accent-2));transform:scaleX(0);transform-origin:left;transition:transform 1.05s ease .2s; }.skill-card.is-visible .skill-meter-fill { transform:scaleX(1); }.skill-card p { margin:16px 0 0;color:var(--muted); }

/* Process */
.process-timeline { position:relative;display:grid;gap:22px; }.process-timeline::before { content:"";position:absolute;top:24px;bottom:24px;right:33px;width:2px;background:linear-gradient(180deg,transparent,rgba(108,99,255,.7),rgba(0,212,255,.7),transparent); }
.process-step { position:relative;display:grid;grid-template-columns:68px 1fr;gap:22px;align-items:start; }.process-step-number { position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;width:68px;height:68px;border:1px solid var(--line);border-radius:22px;background:radial-gradient(circle at top,rgba(0,212,255,.18),transparent 52%),var(--card);color:var(--accent-2);font-weight:900;direction:ltr;box-shadow:0 20px 50px rgba(0,0,0,.28); }
.process-step-content { position:relative;padding:28px;border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.025)),var(--card);transition:transform .28s ease,border-color .28s ease; }.process-step:hover .process-step-content { transform:translateX(-6px);border-color:rgba(255,255,255,.22); }
.process-step-content>span { display:inline-flex;margin-bottom:10px;color:var(--accent-2);font-weight:900; }.process-step-content h3 { margin:0; }.process-step-content p { margin:14px 0 0;max-width:850px;color:var(--muted); }.process-tags { display:flex;flex-wrap:wrap;gap:8px;margin-top:22px; }.process-tags em { font-style:normal;direction:ltr; }

/* Contact */
.contact-section { padding-bottom:130px; }.contact-grid-bg { opacity:.45; }.contact-orb-one { width:360px;height:360px;right:4%;bottom:10%;background:rgba(108,99,255,.26); }.contact-orb-two { width:300px;height:300px;left:8%;top:18%;background:rgba(0,212,255,.2);animation-delay:2s; }
.contact-layout { display:grid;grid-template-columns:.95fr 1.05fr;gap:36px;align-items:start; }.contact-content { position:sticky;top:110px; }.contact-content h2 { margin:0; }.contact-content p { margin:26px 0 0;max-width:640px;color:var(--muted); }.contact-cards { display:grid;gap:14px;margin-top:34px; }.contact-card { display:block;padding:22px;border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(180deg,rgba(255,255,255,.052),rgba(255,255,255,.024)),var(--card);transition:transform .25s ease,border-color .25s ease; }.contact-card:hover { transform:translateY(-4px);border-color:rgba(255,255,255,.22); }.contact-card span { display:block;margin-bottom:8px;color:var(--accent-2);font-weight:900; }.contact-card strong { display:block;line-height:1.9;word-break:break-word; }
.contact-form-wrap { padding:30px;border:1px solid var(--line);border-radius:calc(var(--radius) + 6px);background:radial-gradient(circle at top left,rgba(108,99,255,.18),transparent 42%),linear-gradient(180deg,rgba(255,255,255,.065),rgba(255,255,255,.025)),var(--card);box-shadow:0 30px 90px rgba(0,0,0,.28); }.contact-form { display:grid;gap:18px; }.form-row { display:grid;gap:9px; }.form-row label { color:rgba(255,255,255,.82);font-weight:800; }.form-row input,.form-row select,.form-row textarea { width:100%;appearance:none;border:1px solid var(--line);border-radius:16px;background:rgba(11,15,23,.68);color:var(--text);outline:none;transition:border-color .25s ease,background .25s ease,box-shadow .25s ease; }.form-row input,.form-row select { min-height:52px;padding:0 16px; }.form-row textarea { resize:vertical;min-height:150px;padding:16px;line-height:2; }.form-row input::placeholder,.form-row textarea::placeholder { color:rgba(255,255,255,.38); }.form-row input:focus,.form-row select:focus,.form-row textarea:focus { border-color:rgba(0,212,255,.58);background:rgba(11,15,23,.9);box-shadow:0 0 0 4px rgba(0,212,255,.08); }.form-row select { cursor:pointer;background-image:linear-gradient(45deg,transparent 50%,rgba(255,255,255,.65) 50%),linear-gradient(135deg,rgba(255,255,255,.65) 50%,transparent 50%);background-position:left 18px center,left 12px center;background-size:6px 6px;background-repeat:no-repeat;padding-left:42px; }
.contact-submit { width:100%;border:0;cursor:pointer; }.form-alert { margin-bottom:18px;padding:15px 18px;border-radius:16px;font-weight:800; }.form-alert-success { border:1px solid rgba(40,200,64,.35);background:rgba(40,200,64,.1);color:#9ff0ad; }.form-alert-error { border:1px solid rgba(255,95,87,.35);background:rgba(255,95,87,.1);color:#ffb8b4; }.hidden-field { position:absolute;right:-9999px;width:1px;height:1px;opacity:0;overflow:hidden; }

/* Archives & Content */
.portfolio-archive-page,.technology-archive-page,.single-portfolio-page,.content-page,.single-post-page,.blog-archive-page,.error-404-page { overflow:hidden; }
.archive-hero,.content-hero,.portfolio-hero { position:relative;padding:86px 0 64px;overflow:hidden;isolation:isolate; }.archive-breadcrumb,.content-breadcrumb,.portfolio-breadcrumb { display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:42px;color:var(--muted); }.archive-breadcrumb a,.content-breadcrumb a,.portfolio-breadcrumb a { color:var(--muted);transition:color .25s ease; }.archive-breadcrumb a:hover,.content-breadcrumb a:hover,.portfolio-breadcrumb a:hover { color:var(--accent-2); }.archive-breadcrumb strong,.content-breadcrumb strong,.portfolio-breadcrumb strong { color:var(--text);font-weight:800; }
.archive-hero-content,.content-hero-inner,.portfolio-hero-content { max-width:960px; }.archive-hero-content h1,.content-hero-inner h1,.portfolio-hero-content h1 { margin:0; }.archive-hero-content p,.content-hero-inner p,.portfolio-hero-content p { max-width:760px;margin:26px 0 0;color:var(--muted); }.highlight-text { color:var(--accent-2); }
.archive-portfolio-section,.blog-list-section,.content-body-section { padding-top:70px; }.archive-portfolio-top { display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:34px;padding-bottom:24px;border-bottom:1px solid var(--line); }.archive-portfolio-top h2,.archive-portfolio-top p { margin:0; }.archive-portfolio-top p { max-width:520px;color:var(--muted); }
.archive-pagination { margin-top:52px; }.archive-pagination .nav-links { display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px; }.archive-pagination .page-numbers { display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:44px;padding:0 14px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.04);color:var(--muted);font-weight:800;transition:.25s ease; }.archive-pagination .page-numbers:hover,.archive-pagination .page-numbers.current { color:var(--text);border-color:rgba(0,212,255,.45);background:rgba(0,212,255,.12);transform:translateY(-2px); }
.portfolio-hero-orb-one { width:340px;height:340px;top:12%;right:8%;background:rgba(108,99,255,.32); }.portfolio-hero-orb-two { width:280px;height:280px;left:10%;bottom:22%;background:rgba(0,212,255,.22);animation-delay:1.6s; }
.portfolio-cover { margin-top:58px;border:1px solid var(--line);border-radius:calc(var(--radius) + 8px);overflow:hidden;background:var(--card);box-shadow:0 32px 90px rgba(0,0,0,.36); }.portfolio-cover img { display:block;width:100%;height:auto; }.portfolio-cover-placeholder { min-height:460px;display:flex;align-items:center;justify-content:center;color:var(--muted);font-weight:900; }
.portfolio-details-section { padding-top:72px; }.portfolio-details-grid { display:grid;grid-template-columns:360px 1fr;gap:34px;align-items:start; }.portfolio-sidebar { position:sticky;top:110px; }.portfolio-info-card,.content-card { border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.025)),var(--card); }.portfolio-info-card { padding:28px; }.portfolio-info-card h2 { margin:0 0 24px; }.portfolio-info-list { display:grid;gap:18px;list-style:none;margin:0;padding:0; }.portfolio-info-list li { padding-bottom:18px;border-bottom:1px solid var(--line); }.portfolio-info-list li:last-child { border:0;padding-bottom:0; }.portfolio-info-list span { display:block;margin-bottom:8px;color:var(--muted);font-weight:700; }.portfolio-info-list strong { display:block;line-height:1.9; }.content-card { padding:40px; }.content-card>*:first-child { margin-top:0; }.content-card>*:last-child { margin-bottom:0; }.content-card h2,.content-card h3,.content-card h4 { margin:38px 0 16px; }.content-card p,.content-card ul,.content-card ol { color:var(--muted); }.content-card ul,.content-card ol { padding-right:22px; }.content-card a { color:var(--accent-2);font-weight:800; }.content-card img { border-radius:18px;border:1px solid var(--line); }
.content-container { max-width:980px; }.content-featured-image { margin-bottom:34px;border:1px solid var(--line);border-radius:calc(var(--radius) + 6px);overflow:hidden;background:var(--card);box-shadow:0 28px 80px rgba(0,0,0,.28); }.content-featured-image img { display:block;width:100%; }.post-meta-line { display:flex;flex-wrap:wrap;gap:10px;margin-top:22px; }.post-meta-line span,.post-meta-line a { display:inline-flex;align-items:center;min-height:32px;padding:0 12px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.04);color:var(--muted);font-weight:800; }.post-tags { display:flex;flex-wrap:wrap;gap:10px;margin-top:36px;padding-top:26px;border-top:1px solid var(--line); }.post-tags a { display:inline-flex;align-items:center;min-height:32px;padding:0 12px;border-radius:999px;background:rgba(108,99,255,.13); }.post-navigation-box { display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-top:28px; }.post-nav-item { min-height:120px;padding:24px;border:1px solid var(--line);border-radius:var(--radius);background:var(--card); }.post-nav-item span { display:block;margin-bottom:10px;color:var(--accent-2);font-weight:900; }.post-nav-item a { font-weight:900; }.post-nav-next { text-align:left; }
.blog-post-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:24px; }.read-more { display:inline-flex;margin-top:22px; }
.error-404-section { position:relative;min-height:calc(100vh - 82px);display:flex;align-items:center;padding:90px 0;overflow:hidden;isolation:isolate; }.error-404-card { max-width:760px;margin-inline:auto;padding:48px;border:1px solid var(--line);border-radius:calc(var(--radius) + 8px);background:radial-gradient(circle at top right,rgba(108,99,255,.24),transparent 42%),var(--card);text-align:center;box-shadow:0 32px 90px rgba(0,0,0,.32); }.error-code { display:block;margin-bottom:18px;color:var(--accent-2);font-size:clamp(72px,15vw,150px);line-height:.9;font-weight:900;direction:ltr; }.error-404-card h1 { margin:0; }.error-404-card p { max-width:560px;margin:22px auto 0;color:var(--muted); }.error-actions { justify-content:center; }

/* Footer */
.site-footer { padding:110px 0 34px;border-top:1px solid var(--line);background:#070a10; }.footer-grid-bg { opacity:.5; }.footer-orb-one { width:340px;height:340px;right:6%;top:16%;background:rgba(108,99,255,.24); }.footer-orb-two { width:300px;height:300px;left:8%;bottom:18%;background:rgba(0,212,255,.18);animation-delay:1.7s; }
.footer-cta { display:grid;grid-template-columns:1fr auto;gap:32px;align-items:center;margin-bottom:64px;padding:38px;border:1px solid var(--line);border-radius:calc(var(--radius) + 8px);background:radial-gradient(circle at top right,rgba(108,99,255,.22),transparent 42%),var(--card);box-shadow:0 32px 90px rgba(0,0,0,.28); }.footer-cta-content h2 { margin:0;max-width:780px; }.footer-cta-content p { max-width:720px;margin:22px 0 0;color:var(--muted); }.footer-cta-action { display:flex;justify-content:flex-end; }
.footer-main { display:grid;grid-template-columns:1.3fr .7fr .8fr .8fr;gap:34px;padding:48px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line); }.footer-brand { max-width:420px; }.footer-logo { margin-bottom:18px; }.footer-site-title { display:inline-flex;margin-bottom:18px;font-weight:900; }.footer-brand p { margin:0;color:var(--muted); }.footer-socials { display:flex;flex-wrap:wrap;gap:10px;margin-top:24px; }.footer-socials a { display:inline-flex;align-items:center;min-height:34px;padding:0 13px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.04);color:var(--muted);font-weight:800;direction:ltr;transition:.25s ease; }.footer-socials a:hover { color:var(--accent-2);border-color:rgba(0,212,255,.35);transform:translateY(-2px); }
.footer-column h3 { margin:0 0 20px; }.footer-column ul { display:grid;gap:12px;list-style:none;margin:0;padding:0; }.footer-column a { color:var(--muted);font-weight:700;transition:color .25s ease,transform .25s ease; }.footer-column a:hover { color:var(--accent-2);transform:translateX(-3px); }.footer-tech-list { display:flex;flex-wrap:wrap;gap:9px; }
.footer-bottom { display:flex;align-items:center;justify-content:space-between;gap:24px;padding-top:28px; }.footer-bottom p { margin:0;color:var(--muted); }.footer-bottom a { color:var(--accent-2);font-weight:900; }

/* Reveal */
.reveal { opacity:0;transform:translateY(28px);transition:opacity .75s ease,transform .75s ease;transition-delay:var(--reveal-delay,0ms);will-change:opacity,transform; }.reveal.reveal-right { transform:translateX(28px); }.reveal.reveal-left { transform:translateX(-28px); }.reveal.is-visible,.reveal.reveal-right.is-visible,.reveal.reveal-left.is-visible { opacity:1;transform:translate(0,0); }

/* Justified Persian body copy */
.hero-content p,.section-header p,.about-content p,.service-card p,.portfolio-content p,.skills-main-card p,.skill-card p,.process-step-content p,.contact-content p,.contact-card strong,.footer-cta-content p,.footer-brand p,.content-card p,.content-card li,.portfolio-hero-content p,.archive-hero-content p,.content-hero-inner p,.error-404-card p,.portfolio-empty p { text-align:justify;text-align-last:right;text-justify:inter-word;text-wrap:pretty; }
h1,h2,h3,h4,h5,h6,.btn,.primary-menu a,.footer-column a,.footer-socials a,.section-kicker,.eyebrow { text-align:right;text-align-last:auto; }
.error-404-card h1,.error-actions { text-align:center; }

/* Final Typography Scale */
.hero-content h1 { font-size:clamp(38px,5.8vw,68px);line-height:1.18;letter-spacing:-.045em; }
.portfolio-hero-content h1,.archive-hero-content h1,.content-hero-inner h1,.error-404-card h1 { font-size:clamp(34px,5vw,58px);line-height:1.25;letter-spacing:-.04em; }
.section-header h2,.contact-content h2,.footer-cta-content h2,.archive-portfolio-top h2,.portfolio-empty h2,.content-card h2 { font-size:clamp(26px,3.3vw,38px);line-height:1.45;letter-spacing:-.03em; }
.service-card h3,.portfolio-content h3,.skills-main-card h3,.process-step-content h3,.post-card-content h2,.content-card h3 { font-size:clamp(20px,2.2vw,26px);line-height:1.55;letter-spacing:-.025em; }
.content-card h4,.footer-column h3,.portfolio-info-card h2 { font-size:18px;line-height:1.6;letter-spacing:-.02em; }
.hero-content p { font-size:clamp(16px,1.45vw,18px);line-height:2; }.section-header p,.about-content p,.contact-content p,.footer-cta-content p,.portfolio-hero-content p,.archive-hero-content p,.content-hero-inner p { font-size:clamp(15.5px,1.25vw,17px);line-height:2.05; }
.service-card p,.portfolio-content p,.skill-card p,.process-step-content p,.contact-card strong,.footer-brand p,.content-card p,.content-card li,.post-card-content p,.portfolio-empty p { font-size:15px;line-height:2; }
.primary-menu a { font-size:14px;line-height:1.6; }.site-title { font-size:21px; }.btn { font-size:14px;line-height:1.4; }.section-kicker,.eyebrow,.portfolio-meta span,.portfolio-tech-list a,.portfolio-tech-list span,.process-tags em,.footer-tech-list span,.skills-stack-cloud span,.post-meta-line span,.post-meta-line a,.post-card-meta span,.post-card-meta a { font-size:12.5px;line-height:1.5; }.form-row label { font-size:13.5px; }.form-row input,.form-row select,.form-row textarea { font-size:14.5px; }.footer-site-title { font-size:23px; }.footer-bottom p,.footer-bottom a { font-size:13.5px; }

/* Scroll to top */
.scroll-to-top {
    --scroll-progress: 0deg;
    position: fixed;
    left: clamp(16px, 2.4vw, 30px);
    bottom: clamp(16px, 2.4vw, 30px);
    z-index: 900;
    display: inline-grid;
    place-items: center;
    width: 54px;
    height: 54px;
    padding: 3px;
    border: 0;
    border-radius: 50%;
    color: var(--text);
    background: conic-gradient(
        from 0deg,
        var(--accent-2) 0deg,
        var(--accent) var(--scroll-progress),
        rgba(255, 255, 255, .14) var(--scroll-progress),
        rgba(255, 255, 255, .14) 360deg
    );
    box-shadow: 0 18px 48px rgba(0, 0, 0, .38), 0 0 30px rgba(0, 212, 255, .12);
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(16px) scale(.9);
    transition: opacity .25s ease, visibility .25s ease, transform .25s ease, box-shadow .25s ease;
}
.scroll-to-top::before {
    content: "";
    position: absolute;
    inset: 3px;
    border-radius: inherit;
    background: linear-gradient(145deg, rgba(21, 28, 44, .98), rgba(7, 10, 16, .98));
    border: 1px solid rgba(255, 255, 255, .08);
}
.scroll-to-top svg {
    position: relative;
    z-index: 1;
    transition: transform .25s ease;
}
.scroll-to-top.is-visible {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0) scale(1);
}
.scroll-to-top:hover {
    transform: translateY(-4px) scale(1.03);
    box-shadow: 0 22px 56px rgba(0, 0, 0, .44), 0 0 34px rgba(0, 212, 255, .2);
}
.scroll-to-top:hover svg { transform: translateY(-2px); }
.scroll-to-top:active { transform: translateY(-1px) scale(.96); }
body.menu-open .scroll-to-top { opacity: 0; pointer-events: none; }

/* Animations */
@keyframes floatCard { 0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-14px) rotate(1deg)} }
@keyframes chipFloat { 0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)} }
@keyframes orbFloat { 0%{transform:translate3d(0,0,0) scale(1)}100%{transform:translate3d(26px,-28px,0) scale(1.08)} }

@media (max-width:1100px) { .footer-main { grid-template-columns:1fr 1fr; }.footer-brand{max-width:none;} }
@media (max-width:980px) {
    .header-cta { display:none; }.menu-toggle { display:block; }.header-navigation-wrap { position:fixed;top:86px;right:16px;left:16px;z-index:210;display:block;opacity:0;transform:translateY(-14px) scale(.98);pointer-events:none;transition:opacity .28s ease,transform .28s ease; }
    body.menu-open .header-navigation-wrap { opacity:1;transform:translateY(0) scale(1);pointer-events:auto; }.site-navigation { display:block;padding:22px;border:1px solid rgba(255,255,255,.14);border-radius:24px;background:radial-gradient(circle at top right,rgba(108,99,255,.18),transparent 42%),rgba(17,24,39,.96);backdrop-filter:blur(22px);box-shadow:0 28px 80px rgba(0,0,0,.38); }.primary-menu { display:grid;gap:6px; }.primary-menu a { width:100%;min-height:48px;padding:0 14px;border-radius:14px; }.primary-menu a::after { display:none; }.primary-menu a:hover,.primary-menu a.is-active { background:rgba(255,255,255,.065); }
    .menu-backdrop { position:fixed;inset:0;z-index:205;display:block;border:0;background:rgba(0,0,0,.48);backdrop-filter:blur(6px);opacity:0;pointer-events:none;transition:opacity .25s ease; }.menu-open .menu-backdrop { opacity:1;pointer-events:auto; }
    .hero-inner,.about-grid,.skills-layout,.contact-layout,.portfolio-details-grid { grid-template-columns:1fr; }.services-grid,.portfolio-grid,.blog-post-grid { grid-template-columns:repeat(2,1fr); }.contact-content,.portfolio-sidebar { position:static; }.footer-cta { grid-template-columns:1fr; }.footer-cta-action { justify-content:flex-start; }
}
@media (max-width:782px) { body.admin-bar .site-header { top:46px; } }
@media (max-width:760px) { html { scroll-padding-top:96px; } [id]{scroll-margin-top:96px;} .archive-portfolio-top { align-items:flex-start;flex-direction:column; }.hero-inner,.about-grid,.skills-layout,.contact-layout,.portfolio-details-grid { gap:34px; } }
@media (max-width:700px) { .post-navigation-box { grid-template-columns:1fr; }.post-nav-next { text-align:right; } }
@media (max-width:640px) {
    .site-header { padding:7px 0; }.site-header.is-scrolled { padding:5px 0; }.header-inner { min-height:58px; }.site-title { font-size:18px; }.custom-logo { max-height:40px; }.header-navigation-wrap { top:78px;right:12px;left:12px; }.site-navigation { padding:18px;border-radius:20px; }
    .hero-section { min-height:auto;padding:72px 0; }.hero-visual { min-height:auto;display:flex;flex-wrap:wrap; }.code-card { width:100%; }.code-card pre { padding:58px 24px 28px; }.code-card code { font-size:13.5px; }.tech-chip { position:relative;inset:auto;margin:12px 6px 0 0;animation:none; }
    .services-grid,.portfolio-grid,.blog-post-grid { grid-template-columns:1fr; }.about-content,.skills-main-card,.contact-form-wrap,.footer-cta,.content-card,.portfolio-info-card { padding:24px; }.service-card,.portfolio-card,.skill-card,.process-step-content,.contact-card,.post-card { border-radius:20px; }.process-timeline::before { right:25px; }.process-step { grid-template-columns:52px 1fr;gap:14px; }.process-step-number { width:52px;height:52px;border-radius:17px; }.portfolio-content,.post-card-content { padding:22px; }.contact-section { padding-bottom:82px; }.site-footer { padding:76px 0 28px; }.footer-main { grid-template-columns:1fr;gap:30px;padding:38px 0; }.footer-bottom { align-items:flex-start;flex-direction:column; }
    .archive-hero,.content-hero,.portfolio-hero { padding:58px 0 46px; }.archive-breadcrumb,.content-breadcrumb,.portfolio-breadcrumb { margin-bottom:28px; }.archive-portfolio-section,.blog-list-section,.content-body-section { padding-top:50px; }.portfolio-cover { margin-top:38px;border-radius:20px; }.portfolio-cover-placeholder { min-height:280px; }.error-404-section { min-height:auto;padding:72px 0; }.error-404-card { padding:32px 22px; }.hero-actions,.about-actions,.single-portfolio-actions,.error-actions { gap:12px; }
    .reveal { transform:translateY(18px); }.reveal.reveal-right { transform:translateX(18px); }.reveal.reveal-left { transform:translateX(-18px); }
    body { font-size:15.5px; }.hero-content h1 { font-size:clamp(36px,10vw,46px);line-height:1.22; }.portfolio-hero-content h1,.archive-hero-content h1,.content-hero-inner h1,.error-404-card h1 { font-size:clamp(32px,9vw,42px);line-height:1.32; }.section-header h2,.contact-content h2,.footer-cta-content h2,.archive-portfolio-top h2,.portfolio-empty h2,.content-card h2 { font-size:clamp(26px,7.5vw,32px);line-height:1.5; }.service-card h3,.portfolio-content h3,.skills-main-card h3,.process-step-content h3,.post-card-content h2,.content-card h3 { font-size:20px;line-height:1.6; }.hero-content p,.section-header p,.about-content p,.contact-content p,.footer-cta-content p,.portfolio-hero-content p,.archive-hero-content p,.content-hero-inner p { font-size:15.5px; }.service-card p,.portfolio-content p,.skill-card p,.process-step-content p,.contact-card strong,.footer-brand p,.content-card p,.content-card li,.post-card-content p { font-size:14.5px; }.btn { font-size:13.5px; }
}
@media (max-width:520px) {
    .container { width:min(var(--container),calc(100% - 24px)); }.hero-section { padding-top:56px; }.hero-actions,.about-actions,.single-portfolio-actions,.error-actions { flex-direction:column;align-items:stretch; }.hero-actions .btn,.about-actions .btn,.single-portfolio-actions .btn,.error-actions .btn { width:100%; }.section { padding:68px 0; }.portfolio-overlay { inset:auto 12px 12px;min-height:40px;opacity:1;transform:none; }.skill-meter{height:8px;}.form-row textarea{min-height:130px;}
}
@media (max-width:420px) { .hero-content h1 { font-size:35px; }.portfolio-hero-content h1,.archive-hero-content h1,.content-hero-inner h1 { font-size:31px; }.section-header h2,.contact-content h2,.footer-cta-content h2,.content-card h2 { font-size:25px; }.service-card h3,.portfolio-content h3,.skills-main-card h3,.process-step-content h3,.post-card-content h2,.content-card h3 { font-size:19px; } }
@media (max-width:380px) { .site-title{font-size:17px}.menu-toggle{width:42px;height:42px;flex-basis:42px}.menu-toggle span{right:10px}.hero-content h1{font-size:36px}.btn{padding:0 16px} }
@media (max-width:640px) {
    .scroll-to-top { width:48px;height:48px;left:14px;bottom:14px; }
}
@media (hover:none) { .btn:hover,.service-card:hover,.portfolio-card:hover,.skill-card:hover,.contact-card:hover,.post-card:hover,.stat-card:hover { transform:none;box-shadow:none; }.portfolio-card:hover .portfolio-image img,.post-card:hover .post-card-image img{transform:none;filter:none}.portfolio-overlay{opacity:1;transform:none} }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important; }.reveal,.reveal.reveal-right,.reveal.reveal-left{opacity:1;transform:none} }

/* SMS login shortcut in the global header */
.header-login-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0 14px;
    border: 1px solid rgba(255,255,255,.11);
    border-radius: 14px;
    color: var(--text);
    background: rgba(255,255,255,.035);
    font-size: 13px;
    font-weight: 800;
    white-space: nowrap;
    transition: border-color .22s ease, color .22s ease, background .22s ease, transform .22s ease;
}
.header-login-link:hover {
    border-color: rgba(0,212,255,.42);
    color: var(--accent-2);
    background: rgba(0,212,255,.07);
    transform: translateY(-1px);
}
.header-login-label-short { display: none; }
@media (max-width:980px) {
    .header-login-link { min-width:46px; min-height:46px; padding:0 10px; }
    .header-login-label-full { display:none; }
    .header-login-label-short { display:inline; }
}
@media (max-width:390px) { .header-login-link { min-width:40px; min-height:42px; padding:0 7px; font-size:11px; } }


/* Header account/login icon controls - v1.7.5 */
.header-account-icon-link {
    position: relative;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 44px;
    min-width: 44px;
    min-height: 44px;
    padding: 0;
    overflow: visible;
}
.header-account-icon-link .header-account-icon {
    display: block !important;
    flex: 0 0 auto;
    width: 22px;
    height: 22px;
    opacity: 1;
    visibility: visible;
}
.header-account-avatar {
    display: block;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    object-fit: cover;
    border: 1px solid rgba(255,255,255,.18);
}
.header-login-arrow {
    position: absolute;
    right: 3px;
    bottom: 4px;
    display: block;
    width: 13px;
    height: 13px;
    padding: 2px;
    border-radius: 50%;
    color: #35d07f;
    background: var(--surface, #10151d);
    fill: none;
    stroke: currentColor;
    stroke-width: 2.2;
    stroke-linecap: round;
    stroke-linejoin: round;
    box-shadow: 0 0 0 1px rgba(53,208,127,.22);
}
.header-login-icon-link:hover .header-login-arrow {
    color: #55eba0;
    transform: translateX(1px);
}
@media (max-width: 980px) {
    .header-account-icon-link { width: 46px; min-width: 46px; min-height: 46px; padding: 0; }
}
@media (max-width: 390px) {
    .header-login-link.header-account-icon-link {
        display: inline-flex !important;
        width: 42px;
        min-width: 42px;
        min-height: 42px;
        padding: 0;
    }
}


/* Mobile horizontal overflow fixes - v1.7.6 */
html {
    overflow-x:hidden;
}
.site-header,
.header-inner,
.header-actions,
.site-branding,
.custom-logo-link {
    max-width:100%;
}
@media (max-width:640px) {
    .header-inner {
        gap:12px;
    }
    .header-actions {
        gap:8px;
        flex:0 0 auto;
    }
    .site-branding {
        min-width:0;
        max-width:calc(100% - 112px);
        overflow:hidden;
    }
    .custom-logo-link {
        width:auto;
        min-width:0;
    }
    .custom-logo {
        display:block;
        width:auto;
        max-width:100%;
        height:auto;
        object-fit:contain;
    }
}
@media (max-width:390px) {
    .header-inner { gap:9px; }
    .header-actions { gap:6px; }
    .site-branding { max-width:calc(100% - 96px); }
}

/* Header account icon uses the site secondary color in both states - v1.8.9 */
.header-account-icon-link .header-account-icon {
    color: var(--accent-2);
    fill: none;
    stroke: currentColor;
    stroke-width: 1.9;
    stroke-linecap: round;
    stroke-linejoin: round;
}


/* Stable mobile menu while opening mid-page - v1.8.10 */
@media (max-width: 980px) {
    body.menu-open .site-header {
        position: fixed;
        top: 0;
        right: 0;
        left: 0;
        width: 100%;
        transform: none !important;
        pointer-events: auto !important;
    }

    body.menu-open .site-header.is-hidden {
        transform: none !important;
        pointer-events: auto !important;
    }

    body.menu-open .header-navigation-wrap {
        top: 86px;
    }

    .menu-backdrop {
        touch-action: none;
        overscroll-behavior: contain;
    }

    .site-navigation {
        max-height: calc(100dvh - 112px);
        overflow-y: auto;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
    }
}

@media (max-width: 782px) {
    body.admin-bar.menu-open .site-header {
        top: 46px;
    }

    body.admin-bar.menu-open .header-navigation-wrap {
        top: 124px;
    }
}

@media (max-width: 640px) {
    body.menu-open .header-navigation-wrap {
        top: 78px;
    }

    body.admin-bar.menu-open .header-navigation-wrap {
        top: 118px;
    }

    .site-navigation {
        max-height: calc(100dvh - 96px);
    }
}

/* WooCommerce cart shortcut in the global header - v1.9.0 */
.header-cart-link {
    position:relative;
    display:inline-grid;
    place-items:center;
    width:44px;
    min-width:44px;
    height:44px;
    border:1px solid rgba(255,255,255,.11);
    border-radius:14px;
    color:var(--accent-2);
    background:rgba(255,255,255,.035);
    transition:border-color .22s ease,background .22s ease,transform .22s ease;
}
.header-cart-link:hover {
    border-color:rgba(0,212,255,.42);
    background:rgba(0,212,255,.07);
    transform:translateY(-1px);
}
.header-cart-link svg {
    width:22px;
    height:22px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
}
.header-cart-link em {
    position:absolute;
    top:-6px;
    left:-6px;
    display:grid;
    place-items:center;
    min-width:20px;
    height:20px;
    padding:0 5px;
    border:2px solid var(--bg,#080b12);
    border-radius:999px;
    color:#fff;
    background:#ff3b66;
    font-size:10px;
    font-style:normal;
    font-weight:950;
    line-height:1;
    box-shadow:0 7px 18px rgba(255,59,102,.28);
}
@media (max-width:980px) {
    .header-cart-link { width:46px;min-width:46px;height:46px; }
}
@media (max-width:640px) {
    .site-branding { max-width:calc(100% - 164px); }
}
@media (max-width:390px) {
    .header-cart-link { width:42px;min-width:42px;height:42px; }
    .site-branding { max-width:calc(100% - 146px); }
}


/* Latest posts module */
.latest-posts-section {
    position: relative;
}

.latest-posts-grid .post-card {
    height: 100%;
}

.latest-posts-grid .post-card-content {
    display: flex;
    flex-direction: column;
    min-height: 280px;
}

.latest-posts-grid .post-card-content .read-more {
    margin-top: auto;
    padding-top: 22px;
}

.latest-post-placeholder {
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    background:
        radial-gradient(circle at 30% 20%, rgba(0,212,255,.18), transparent 34%),
        radial-gradient(circle at 75% 75%, rgba(108,99,255,.24), transparent 38%);
}

.latest-post-placeholder span {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 0 16px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: rgba(11,15,23,.58);
    color: var(--accent-2);
    font-weight: 900;
}

.latest-posts-more {
    display: flex;
    justify-content: center;
    margin-top: 42px;
}


/* Current header destination — v1.9.19 */
.primary-menu a.is-current-link,
.primary-menu a[aria-disabled="true"] {
    cursor: default;
    pointer-events: none;
    user-select: none;
    touch-action: none;
}

/* Equal-height portfolio and post cards — v1.9.23 */
.portfolio-grid,
.post-grid {
    align-items: stretch;
}

.portfolio-card,
.post-card {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.portfolio-card .portfolio-image,
.post-card .post-card-image {
    flex: 0 0 auto;
}

.portfolio-card .portfolio-content,
.post-card .post-card-content {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    width: 100%;
}

.portfolio-content h3,
.post-card-content h2 {
    display: -webkit-box;
    min-height: 3.2em;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.portfolio-content > p,
.post-card-content > p {
    display: -webkit-box;
    min-height: 4.8em;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.portfolio-actions {
    align-items: center;
    margin-top: auto;
    padding-top: 26px;
}

.post-card-content .read-more {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    margin-top: auto;
    padding-top: 26px;
}

.post-card-placeholder {
    min-height: 100%;
}

@media (max-width: 640px) {
    .portfolio-content h3,
    .post-card-content h2,
    .portfolio-content > p,
    .post-card-content > p {
        min-height: 0;
    }
}

