/*
Theme Name: Ivan Portfolio
Theme URI: https://ivanivanov.me/
Author: Ivan Ivanov
Author URI: https://ivanivanov.me/
Description: Lightweight custom portfolio theme for Ivan Ivanov.
Version: 1.10.18
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 8.0
Text Domain: ivan-portfolio
*/

@font-face { font-family: "Montserrat"; src: url("assets/fonts/montserrat-variable.woff2") format("woff2"); font-style: normal; font-weight: 100 900; font-display: optional; }
@font-face { font-family: "Roboto Slab"; src: url("assets/fonts/roboto-slab-variable.woff2") format("woff2"); font-style: normal; font-weight: 100 900; font-display: optional; }

:root {
  --ink: #202520;
  --ink-soft: #333b34;
  --green: #168ee0;
  --green-dark: #0e6fae;
  --green-pale: #eaf5fc;
  --canvas: #d3dce3;
  --paper: #fbfcfd;
  --white: #fff;
  --muted: #586058;
  --line: rgba(32,37,32,.14);
  --display: "Roboto Slab", Georgia, serif;
  --sans: "Montserrat", Arial, sans-serif;
  --max: 1180px;
  --pad: clamp(1.1rem,4vw,3.25rem);
  --space: clamp(4.5rem,8vw,7.5rem);
  --radius: 1.4rem;
}

html[data-theme="dark"] {
  --ink: #edf4f7;
  --ink-soft: #d3dde1;
  --green: #51b7f5;
  --green-dark: #8bd3ff;
  --green-pale: #18313e;
  --canvas: #0e161a;
  --paper: #172126;
  --white: #223038;
  --muted: #a8b7bd;
  --line: rgba(225,239,246,.15);
}

*, *::before, *::after { box-sizing: border-box; }
html { min-height: 100%; overflow-x: hidden; overflow-y: auto; background: var(--canvas); scroll-behavior: smooth; }
html, body { font-family: var(--sans) !important; }
body { min-height: 100%; height: auto !important; margin: 0; overflow: visible !important; color: var(--ink); background: var(--canvas) !important; font-size: 1rem; line-height: 1.68; -webkit-font-smoothing: antialiased; }
body::before { content: ""; position: fixed; inset: 0; z-index: 50; pointer-events: none; opacity: .025; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.74' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
a { color: inherit; text-underline-offset: .2em; }
img { display: block; max-width: 100%; height: auto; }
svg { flex: 0 0 auto; }
.proof-item__icon svg, .service-row__icon svg, .service-mini__icon svg, .service-category__icon svg, .resume-item-icon svg, .project-card__open svg { stroke-width: var(--icon-stroke,1.45); }
button, input, textarea { font: inherit; }
::selection { color: var(--ink); background: #cceaff; }
:focus-visible { outline: 3px solid var(--green); outline-offset: 4px; }
@media (pointer: fine) {
  html, body { cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'%3E%3Cpath d='M4 3l16 13-7 .9-3.8 6.2L4 3Z' fill='%23202520' stroke='%23fff' stroke-width='1.4' stroke-linejoin='round'/%3E%3Ccircle cx='21.5' cy='6.5' r='3' fill='%23168ee0'/%3E%3C/svg%3E") 4 3, auto; }
  a, button, input[type="submit"], input[type="button"], .nav-toggle, label[for] { cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'%3E%3Cpath d='M4 3l16 13-7 .9-3.8 6.2L4 3Z' fill='%23168ee0' stroke='%23fff' stroke-width='1.4' stroke-linejoin='round'/%3E%3Ccircle cx='21.5' cy='6.5' r='3' fill='%23202520'/%3E%3C/svg%3E") 4 3, pointer; }
}
.screen-reader-text, .skip-link:not(:focus) { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
.skip-link:focus { position: fixed; top: 1rem; left: 1rem; z-index: 999; padding: .7rem 1rem; background: var(--white); }
.section-shell, .site-header__inner, .site-footer__inner, .site-footer__bottom { width: min(100%,calc(var(--max) + 2 * var(--pad))); margin-inline: auto; padding-inline: var(--pad); }
.site-main { min-height: 65vh; overflow-x: clip; overflow-y: visible; }

.site-header { position: sticky !important; top: 0 !important; z-index: 30; padding: .7rem 0; }
.site-header__inner { position: relative; min-height: 4rem; display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.site-header__inner::before { content: ""; position: absolute; inset: 0; z-index: -1; border: 1px solid rgba(32,37,32,.1); border-radius: 1rem; background: rgba(248,248,243,.9); box-shadow: 0 10px 35px rgba(32,37,32,.07); backdrop-filter: blur(14px); }
.site-header__actions { display: flex; align-items: center; justify-content: flex-end; gap: .55rem; min-width: 0; }
.brand { min-height: 4rem; display: inline-flex; align-items: center; gap: .7rem; padding-left: 1.05rem; text-decoration: none; }
.brand__symbol { width: 2.15rem; height: 2.15rem; flex: 0 0 auto; }
.brand__symbol img { width: 100%; height: 100%; }
.brand__name { display: block; font-family: var(--display); font-size: 1.32rem; font-weight: 500; line-height: 1; text-align: center; }
.brand__name small { display: block; margin-top: .32rem; color: var(--muted); font-family: var(--sans); font-size: .53rem; line-height: 1.15; letter-spacing: .12em; text-transform: uppercase; }
.primary-nav ul { display: flex; align-items: center; gap: clamp(.9rem,1.9vw,1.65rem); margin: 0; padding: 0 1.2rem 0 0; list-style: none; }
.primary-nav a { position: relative; padding-block: .5rem; font-size: .72rem; font-weight: 700; letter-spacing: .035em; text-decoration: none; }
.primary-nav a::after { content: ""; position: absolute; right: 0; bottom: .24rem; left: 0; height: 1px; background: var(--green); transform: scaleX(0); transform-origin: right; transition: transform .25s ease; }
.primary-nav a:hover::after, .primary-nav .current-menu-item > a::after { transform: scaleX(1); transform-origin: left; }
.nav-toggle { display: none; width: 2.8rem; height: 2.8rem; border: 0; background: transparent; cursor: pointer; }
.nav-toggle > span:not(.screen-reader-text) { display: block; width: 1.3rem; height: 1px; margin: .38rem auto; background: var(--ink); transition: transform .2s ease; }
.theme-toggle { position: relative; width: 2.35rem; height: 2.35rem; display: grid; flex: 0 0 auto; place-items: center; padding: 0; border: 1px solid var(--line); border-radius: 50%; color: var(--ink); background: color-mix(in srgb,var(--paper) 84%,transparent); box-shadow: 0 6px 18px rgba(38,54,66,.08); transition: color .2s ease,background .2s ease,transform .2s ease; }
.theme-toggle:hover { color: var(--green-dark); transform: translateY(-1px); }
.theme-toggle span { position: absolute; display: grid; place-items: center; transition: opacity .2s ease,transform .25s ease; }
.theme-toggle svg { width: 1.1rem; height: 1.1rem; }
.theme-toggle__moon { opacity: 0; transform: rotate(-35deg) scale(.65); }
html[data-theme="dark"] .theme-toggle__sun { opacity: 0; transform: rotate(35deg) scale(.65); }
html[data-theme="dark"] .theme-toggle__moon { opacity: 1; transform: rotate(0) scale(1); }

html[data-theme="dark"] .site-header__inner::before { border-color: var(--line); background: rgba(23,33,38,.92); box-shadow: 0 10px 35px rgba(0,0,0,.22); }
html[data-theme="dark"] .hero { border-color: var(--line); background-clip: padding-box; }
html[data-theme="dark"] .hero__lead { color: var(--muted); }
html[data-theme="dark"] :is(.skill-float,.portrait-skills span,.hero__proof,.intro > div:first-child,.contact-band__visual,.contact-band__tag,.page-hero__visual-icon,.article-categories a,.service-category__icon) { background-color: rgba(31,45,52,.92); }
html[data-theme="dark"] :is(.article-aside,.transliteration-rules article) { background: linear-gradient(145deg,var(--green-pale),rgba(31,45,52,.88)); }
html[data-theme="dark"] .service-category__primary-link:hover { background: linear-gradient(110deg,rgba(24,49,62,.72),rgba(31,45,52,.75)); }
html[data-theme="dark"] .tool-advanced { background: rgba(31,45,52,.72); }
html[data-theme="dark"] .tool-field input.is-invalid, html[data-theme="dark"] .tool-field select.is-invalid, html[data-theme="dark"] .tool-field textarea.is-invalid { background: #351f20; }
html[data-theme="dark"] .serp-preview { color: #202124; background: #fff; }
html[data-theme="dark"] .serp-preview :is(small,p) { color: #4d5156; }
html[data-theme="dark"] body::before { opacity: .018; filter: invert(1); }
html[data-theme="dark"] :is(input,textarea,select) { color: var(--ink); background-color: #101b20; }
html[data-theme="dark"] .site-footer { border-color: rgba(255,255,255,.1); }

.eyebrow { margin: 0 0 1rem; color: var(--green-dark); font-size: .65rem; font-weight: 700; letter-spacing: .17em; line-height: 1.35; text-transform: uppercase; }
h1, h2, h3 { margin: 0; font-family: var(--display); font-weight: 500; letter-spacing: -.025em; line-height: 1.08; text-wrap: balance; }
h1 { font-size: clamp(2.85rem,5vw,4.75rem); }
h2 { font-size: clamp(2.2rem,4.2vw,3.8rem); }
h3 { font-size: clamp(1.45rem,2.4vw,2.05rem); }
h1 em, h2 em { color: var(--green-dark); font-style: italic; font-weight: 500; }

.hero { position: relative; display: grid; grid-template-columns: 55% 45%; grid-template-rows: 1fr auto; gap: 0; min-height: min(620px,calc(100svh - 6rem)); margin-top: clamp(.8rem,2vw,1.5rem); margin-bottom: clamp(2rem,5vw,4rem); padding-top: clamp(1.35rem,2.2vw,2.2rem); padding-bottom: 0; overflow: hidden; border: 1px solid rgba(32,37,32,.08); border-radius: 1.55rem; background: linear-gradient(90deg,var(--paper) 0 55%,var(--green-pale) 55% 100%); box-shadow: 0 25px 65px rgba(38,54,66,var(--visual-hero-shadow,.13)); }
.hero::before, .hero::after { content: ""; position: absolute; border: 1px solid rgba(22,142,224,.14); border-radius: 50%; pointer-events: none; }
.hero::before { width: 17rem; height: 17rem; top: -8rem; right: -6rem; animation: drift 11s ease-in-out infinite; }
.hero::after { width: 7rem; height: 7rem; right: 30%; top: 18%; animation: drift 8s 1s ease-in-out infinite reverse; }
.hero__portrait, .hero__copy { min-height: 455px; }
.hero__portrait { position: relative; z-index: 2; order: 2; overflow: visible; }
.portrait-card { position: absolute; inset: 0; display: flex; align-items: flex-end; justify-content: center; }
.portrait-card picture { width: 100%; height: 100%; display: flex; align-items: flex-end; justify-content: center; }
.portrait-card img { width: 100%; max-width: none; height: 100%; object-fit: contain; object-position: center bottom; filter: saturate(.9) contrast(1.01); transform-origin: center bottom; transition: transform .7s cubic-bezier(.2,.7,.2,1),filter .4s ease; }
.hero__portrait:hover .portrait-card img { transform: scale(1.02); filter: saturate(.94) contrast(1.01); }
.skill-float { position: absolute; z-index: 5; display: grid; width: 2.75rem; height: 2.75rem; place-items: center; border: 1px solid rgba(32,37,32,.08); border-radius: .45rem; color: var(--green); background: rgba(255,255,255,.92); box-shadow: 0 8px 22px rgba(38,54,66,.11); font-family: var(--sans); font-size: .85rem; animation: float 5s ease-in-out infinite; }
.skill-float--one { top: 18%; left: 2%; }
.skill-float--two { top: 9%; right: 5%; animation-delay: -1.7s; }
.skill-float--three { right: 1%; bottom: 25%; animation-delay: -3.2s; }
.portrait-skills { position: absolute; right: 1.1rem; bottom: 1.1rem; z-index: 6; display: flex; flex-direction: column; align-items: flex-end; gap: .35rem; }
.portrait-skills span { padding: .3rem .55rem; border: 1px solid rgba(22,142,224,.14); border-radius: 999px; color: var(--green-dark); background: rgba(255,255,255,.88); box-shadow: 0 5px 15px rgba(38,54,66,.07); font-size: .5rem; letter-spacing: .08em; text-transform: uppercase; }
.hero__copy { position: relative; z-index: 3; order: 1; display: flex; flex-direction: column; justify-content: center; padding: 1rem 0 7.3rem clamp(1rem,2vw,2rem); background: transparent; }
.hero__copy::after { display: none; }
.hero__kicker { display: inline-flex; align-items: center; align-self: flex-start; gap: .55rem; margin-bottom: 1.2rem; color: var(--muted); font-size: .6rem; letter-spacing: .1em; text-transform: uppercase; }
.status-dot { width: .47rem; height: .47rem; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 .22rem rgba(93,143,101,.14); animation: pulse 2.2s ease-in-out infinite; }
.hero h1 { max-width: 14ch; font-size: clamp(2.75rem,4.5vw,4.35rem); }
.hero__lead { max-width: 36rem; margin: 1.45rem 0 0; color: #586058; font-size: clamp(1rem,1.5vw,1.16rem); line-height: 1.72; }
.hero__actions { display: flex; align-items: center; flex-wrap: wrap; gap: 1.25rem; margin-top: 1.8rem; }
.button { min-height: 3.05rem; display: inline-flex; align-items: center; justify-content: center; gap: .65rem; padding: .72rem 1.2rem; border: 1px solid var(--ink); border-radius: 999px; color: var(--white); background: var(--ink); font-size: .77rem; font-weight: 700; text-decoration: none; transition: transform .2s ease,background .2s ease,color .2s ease; }
.button:hover { color: var(--white); background: var(--green-dark); transform: translateY(-2px); }
.button--light { color: var(--ink); background: var(--white); }
.text-link, .scribble-link { position: relative; display: inline-flex; align-items: center; gap: .45rem; font-size: .76rem; font-weight: 700; text-decoration: none; }
.text-link::after, .scribble-link::after { content: ""; position: absolute; right: 0; bottom: -.25rem; left: 0; height: 1px; background: var(--green); transform: scaleX(.35); transform-origin: left; transition: transform .25s ease; }
.text-link:hover::after, .scribble-link:hover::after { transform: scaleX(1); }
.text-link svg { transition: transform .2s ease; }
.text-link:hover svg { transform: translateX(.25rem); }
.hero__proof { position: absolute; z-index: 8; left: clamp(1.5rem,3.2vw,3rem); bottom: 1.35rem; display: grid; grid-template-columns: repeat(3,1fr); align-items: center; width: min(52%,39rem); min-height: 4.8rem; overflow: hidden; border: 1px solid var(--line); border-radius: 1rem; background: rgba(255,255,255,.94); box-shadow: 0 15px 38px rgba(38,54,66,.1); backdrop-filter: blur(10px); }
.hero__proof > p { display: none; }
.hero__proof .proof-item { min-width: 0; display: flex; align-items: center; gap: .65rem; min-height: 4.8rem; padding: .55rem .8rem; border-left: 1px solid var(--line); }
.hero__proof .proof-item:first-of-type { border-left: 0; }
.proof-item__icon { display: grid; width: 2.35rem; height: 2.35rem; flex: 0 0 auto; place-items: center; border: 1px solid rgba(22,142,224,.16); border-radius: .65rem; color: var(--green-dark); background: var(--green-pale); }
.proof-item > span:last-child { min-width: 0; }
.hero__proof strong { display: block; font-family: var(--display); font-size: 1.75rem; font-weight: 500; line-height: 1; }
.hero__proof small { display: block; margin-top: .25rem; color: var(--muted); font-size: .57rem; line-height: 1.2; }

.split-section { position: relative; display: grid; grid-template-columns: .82fr 1.18fr; gap: clamp(3rem,7vw,7rem); margin-top: 1.4rem; margin-bottom: 1.4rem; padding-top: var(--space); padding-bottom: var(--space); border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); box-shadow: 0 15px 45px rgba(38,54,66,.06); }
.intro { isolation: isolate; overflow: hidden; background: linear-gradient(108deg,var(--green-pale) 0 36%,var(--paper) 36% 100%); }
.intro::before { content: ""; position: absolute; z-index: -1; top: -8rem; left: -6rem; width: 24rem; height: 24rem; border: 1px solid rgba(22,142,224,.16); border-radius: 50%; }
.intro::after { content: ""; position: absolute; z-index: -1; bottom: 1.5rem; left: 2.2rem; width: 9rem; height: 5rem; opacity: .32; background-image: radial-gradient(circle,var(--green) 1px,transparent 1.5px); background-size: .9rem .9rem; }
.intro > div:first-child { align-self: stretch; display: flex; flex-direction: column; justify-content: center; padding: clamp(1.5rem,3vw,2.5rem); border: 1px solid rgba(22,142,224,.15); border-radius: calc(var(--radius) * .82); background: rgba(255,255,255,.68); box-shadow: 0 18px 40px rgba(38,54,66,.06); backdrop-filter: blur(8px); }
.intro .prose { position: relative; align-self: center; padding: 1.2rem 0 1.2rem 1.6rem; border-left: 1px solid var(--line); }
.intro .prose::before { content: "“"; position: absolute; top: -2.8rem; right: 0; color: rgba(22,142,224,.1); font-family: var(--display); font-size: 9rem; line-height: 1; }
.intro .prose p:first-child { position: relative; }
.intro .prose p:first-child::before { content: ""; position: absolute; top: .55rem; left: -1.72rem; width: .45rem; height: .45rem; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 .35rem var(--green-pale); }
.split-section h2 { max-width: 18ch; font-size: clamp(2.15rem,3.5vw,3.25rem); }
.split-section h2 em { display: inline-block; }
.intro-stamp { width: fit-content; margin-top: 2.3rem; padding: .65rem .9rem; border: 1px solid var(--green); border-radius: 999px; color: var(--green-dark); font-size: .66rem; letter-spacing: .08em; text-transform: uppercase; }
.intro-stamp span { margin-right: .25rem; font-family: var(--display); font-size: 1.4rem; }
.prose { font-size: 1rem; }
.prose--large { max-width: 42rem; font-size: clamp(1.04rem,1.45vw,1.18rem); line-height: 1.85; }
.prose--narrow { max-width: 780px; }
.prose > :first-child { margin-top: 0; }
.prose > :last-child { margin-bottom: 0; }
.prose h2, .prose h3 { margin: 2.2em 0 .7em; line-height: 1.05; }
.prose h2 { font-size: clamp(2rem,3.5vw,3rem); }
.prose h3 { font-size: clamp(1.4rem,2.2vw,1.95rem); }
.prose p, .prose ul, .prose ol, .prose blockquote { margin: 0 0 1.45em; }
.prose a { text-decoration-color: var(--green); }
.prose img { border-radius: .9rem; }
.prose blockquote { margin-inline: 0; padding: 1.4rem 1.5rem; border-left: 3px solid var(--green); border-radius: 0 .8rem .8rem 0; background: var(--green-pale); font-family: var(--display); font-size: 1.4em; line-height: 1.35; }
.prose table { width: 100%; border-collapse: collapse; }
.prose th, .prose td { padding: .75rem; border-bottom: 1px solid var(--line); text-align: left; }
.prose .alignwide { width: min(100vw - 2 * var(--pad),1100px); max-width: none; margin-left: 50%; transform: translateX(-50%); }
.related-service-text { margin-top: 2.2rem !important; color: var(--muted); font-size: .92rem; }
.related-service-text a { color: var(--green-dark); font-weight: 700; text-decoration-thickness: 1px; text-decoration-color: var(--green); }

.services, .selected-work, .latest { margin-top: 1.4rem; margin-bottom: 1.4rem; padding-top: var(--space); padding-bottom: var(--space); border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); box-shadow: 0 15px 45px rgba(38,54,66,.06); }
.services { position: relative; overflow: hidden; }
.services::after { content: ""; position: absolute; top: 20%; right: -7rem; z-index: -1; width: 18rem; height: 18rem; border: 1px solid rgba(53,92,60,.12); border-radius: 50%; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: clamp(2.4rem,5vw,4rem); }
.section-heading h2 { max-width: 14ch; }
@media (min-width: 981px) {
  .home .services .section-heading > div, .home .selected-work .section-heading > div, .home .latest .section-heading > div { min-width: 0; flex: 1; }
  .home .services .section-heading h2, .home .selected-work .section-heading h2, .home .latest .section-heading h2 { max-width: none; white-space: nowrap; font-size: clamp(2.35rem,3.6vw,3.45rem); }
}
.service-list { border-top: 1px solid var(--line); }
.service-row { position: relative; min-height: 7.6rem; display: grid; grid-template-columns: 2.7rem 3rem 1fr auto; align-items: center; gap: 1.2rem; padding: 1.25rem .8rem; border-bottom: 1px solid var(--line); text-decoration: none; transition: padding .25s ease,background .25s ease; }
.service-row::before { content: ""; position: absolute; inset: 0; z-index: -1; border-radius: .8rem; background: var(--paper); opacity: 0; transform: scaleY(.75); transition: opacity .25s ease,transform .25s ease; }
.service-row:hover { padding-inline: 1.25rem; }
.service-row:hover::before { opacity: 1; transform: scaleY(1); }
.service-row__number { color: var(--green); font-family: var(--display); font-size: 1.15rem; }
.service-row__icon { display: grid; width: 3rem; height: 3rem; place-items: center; border: 1px solid rgba(22,142,224,.14); border-radius: .75rem; color: var(--green-dark); background: var(--green-pale); transition: transform .25s ease,background .25s ease; }
.service-row:hover .service-row__icon { background: var(--white); transform: rotate(-4deg); }
.service-row strong { display: block; font-family: var(--display); font-size: clamp(1.55rem,2.5vw,2.2rem); font-weight: 500; line-height: 1; }
.service-row small { display: block; max-width: 42rem; margin-top: .45rem; color: var(--muted); font-size: .75rem; line-height: 1.45; }
.service-row > svg { transition: transform .25s ease; }
.service-row:hover > svg { transform: translateX(.35rem); }

.selected-work { position: relative; overflow: hidden; color: var(--ink); background: var(--paper); }
.selected-work::before { content: ""; position: absolute; top: -9rem; right: -8rem; width: 26rem; height: 26rem; border: 1px solid rgba(22,142,224,.1); border-radius: 50%; animation: drift 12s ease-in-out infinite; }
.selected-work .eyebrow { color: var(--green-dark); }
.selected-work .text-link::after { background: var(--green); }
.project-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: clamp(2.6rem,5vw,4.5rem) clamp(1.2rem,3vw,2.2rem); }
.project-card:nth-child(even) { margin-top: 0; }
.project-card__media { position: relative; display: block; aspect-ratio: 1.42; overflow: hidden; border: 1px solid var(--line); border-radius: 1rem; background: var(--green-pale); text-decoration: none; }
.project-card__open { position: absolute; right: .85rem; bottom: .85rem; display: grid; width: 2.65rem; height: 2.65rem; place-items: center; border-radius: 50%; color: var(--ink); background: var(--paper); transform: translateY(4rem); transition: transform .3s ease; }
.project-card:hover .project-card__open { transform: none; }
.project-card__media img { width: 100%; height: 100%; object-fit: contain; filter: saturate(.72); transition: transform .6s cubic-bezier(.2,.8,.2,1),filter .4s ease; }
.project-card:hover .project-card__media img { transform: none; filter: saturate(1); }
.project-card__placeholder { width: 100%; height: 100%; display: grid; place-items: center; background: linear-gradient(135deg,var(--green-dark),var(--ink)); }
.project-card__placeholder span { color: var(--paper); font-family: var(--display); font-size: 4rem; }
.project-card__body { padding-top: 1.15rem; }
.project-card__body .eyebrow { margin-bottom: .5rem; }
.project-card h2 { margin-bottom: .9rem; font-size: clamp(1.55rem,2.5vw,2.3rem); }
.project-card h2 a { text-decoration: none; }

.post-grid { display: grid; grid-template-columns: repeat(6,1fr); gap: 1.25rem; }
.post-grid .post-card { grid-column: span 2; }
.post-grid .post-card:last-child:nth-child(3n + 1) { grid-column: span 6; }
.post-grid .post-card:nth-last-child(2):nth-child(3n + 1), .post-grid .post-card:last-child:nth-child(3n + 2) { grid-column: span 3; }
.post-card { display: flex; flex-direction: column; min-height: 100%; overflow: hidden; border: 1px solid var(--line); border-radius: 1rem; background: var(--paper); transition: transform .25s ease,box-shadow .25s ease; }
.post-card:hover { transform: translateY(-.35rem); box-shadow: 0 18px 45px rgba(32,37,32,.1); }
.post-card__media { aspect-ratio: 1.55; overflow: hidden; background: var(--green-pale); text-decoration: none; }
.post-card__media img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.78); transition: transform .45s ease,filter .35s ease; }
.post-card:hover .post-card__media img { transform: scale(1.035); filter: saturate(1); }
.post-card__placeholder { display: block; width: 100%; height: 100%; background: radial-gradient(circle at 35% 35%,rgba(255,255,255,.35) 0 10%,transparent 10.5%),linear-gradient(135deg,var(--green-pale),#b5d9ef); }
.post-card__body { display: flex; flex: 1; flex-direction: column; padding: 1.25rem; }
.post-meta { display: flex; flex-wrap: wrap; gap: .8rem; color: var(--muted); font-size: .57rem; letter-spacing: .08em; text-transform: uppercase; }
.post-card h2 { margin: .8rem 0 .75rem; font-size: clamp(1.4rem,2vw,1.8rem); line-height: 1.08; }
.post-card h2 a { text-decoration: none; }
.post-card p { color: var(--muted); font-size: .82rem; }
.post-card .text-link { margin-top: auto; }

.contact-band { position: relative; display: grid; grid-template-columns: minmax(0,1.05fr) minmax(19rem,.95fr); align-items: center; gap: clamp(2rem,5vw,5rem); margin-top: 1.4rem; margin-bottom: var(--space); padding-top: clamp(2.8rem,5vw,4.5rem); padding-bottom: clamp(2.8rem,5vw,4.5rem); overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); color: var(--ink); background: var(--green-pale); box-shadow: 0 15px 45px rgba(38,54,66,.06); }
.contact-band::before, .contact-band::after { content: ""; position: absolute; border: 1px solid rgba(22,142,224,.15); border-radius: 50%; }
.contact-band::before { width: 18rem; height: 18rem; top: -10rem; right: 8%; }
.contact-band::after { width: 8rem; height: 8rem; right: 3%; bottom: -4rem; }
.contact-band__copy { position: relative; z-index: 2; }
.contact-band h2 { position: relative; max-width: 18ch; margin-bottom: 1rem; }
.contact-band__copy > p:not(.eyebrow) { max-width: 34rem; margin: 0 0 1.7rem; color: var(--muted); font-size: .87rem; }
.contact-band .eyebrow { color: var(--green-dark); }
.contact-band__visual { position: relative; z-index: 2; min-height: 15.5rem; border: 1px solid rgba(22,142,224,.13); border-radius: 1.15rem; background: rgba(255,255,255,.58); box-shadow: inset 0 0 0 8px rgba(255,255,255,.18); }
.contact-band__visual > img { width: 100%; height: 100%; min-height: 15.5rem; object-fit: cover; border-radius: inherit; }
.contact-band__visual svg { position: absolute; inset: .2rem; width: calc(100% - .4rem); height: calc(100% - .4rem); color: #7396ad; }
.contact-band__visual svg path, .contact-band__visual svg rect, .contact-band__visual svg circle { fill: none; stroke: currentColor; stroke-width: 1.35; stroke-linecap: round; stroke-linejoin: round; }
.contact-band__visual svg circle { fill: var(--paper); stroke: var(--green); stroke-width: 2; }
.contact-band__visual svg .contact-band__route { stroke: var(--green); stroke-dasharray: 5 8; animation: route-dash 13s linear infinite; }
.contact-band__visual svg .contact-band__window { fill: rgba(255,255,255,.7); }
.contact-band__tag { position: absolute; padding: .38rem .58rem; border: 1px solid rgba(22,142,224,.15); border-radius: 999px; color: var(--green-dark); background: rgba(255,255,255,.92); box-shadow: 0 7px 20px rgba(38,54,66,.08); font-size: .52rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.contact-band__tag--one { left: 2%; bottom: 13%; }
.contact-band__tag--two { top: 9%; left: 28%; }
.contact-band__tag--three { top: 23%; right: 1%; }

.page-hero { position: relative; margin-top: .75rem; margin-bottom: 1.15rem; padding-top: clamp(2.15rem,4.2vw,3.5rem); padding-bottom: clamp(2.15rem,4.2vw,3.5rem); overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: linear-gradient(110deg,var(--paper) 0 78%,var(--green-pale) 78%); box-shadow: 0 15px 45px rgba(38,54,66,.06); }
.page-hero::after { content: ""; position: absolute; right: var(--pad); bottom: 20%; width: 4rem; height: 4rem; border: 1px solid rgba(53,92,60,.25); border-radius: 50%; animation: drift 9s ease-in-out infinite; }
.page-hero__visual-icon { position: absolute; right: var(--pad); top: 50%; z-index: 2; display: grid; width: 4.5rem; height: 4.5rem; place-items: center; border: 1px solid var(--line); border-radius: .9rem; color: var(--green-dark); background: rgba(255,255,255,.82); transform: translateY(-50%); box-shadow: 0 10px 25px rgba(38,54,66,.08); }
.page-hero__visual-icon svg { width: 2rem; height: 2rem; stroke-width: var(--icon-stroke,1.45); }
.page-hero h1 { max-width: 30ch; font-size: clamp(2rem,3.35vw,3.05rem); line-height: 1.08; text-wrap: balance; }
.page-hero--wide h1 { max-width: 28ch; }
.page-hero > p:last-child { max-width: 46rem; margin: 1rem 0 0; color: var(--muted); font-size: clamp(.98rem,1.35vw,1.12rem); }
.page-content { margin-bottom: var(--space); padding-top: clamp(2rem,5vw,4rem); padding-bottom: clamp(2rem,5vw,4rem); border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); box-shadow: 0 15px 45px rgba(38,54,66,.06); }
.page-content__inner { max-width: 780px; margin-inline: auto; }
.back-link { display: inline-flex; align-items: center; width: fit-content; margin-bottom: 2rem; color: var(--muted); font-size: .72rem; font-weight: 700; text-decoration: none; transition: color .2s ease,transform .2s ease; }
.back-link:hover { color: var(--green-dark); transform: translateX(-.2rem); }
.article-hero { position: relative; display: grid; grid-template-columns: minmax(12rem,.34fr) minmax(0,1fr); gap: clamp(2rem,5vw,5rem); align-items: end; margin-top: 1rem; margin-bottom: 1.4rem; padding-top: clamp(2.4rem,5vw,4.2rem); padding-bottom: clamp(2.4rem,5vw,4.2rem); overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: linear-gradient(125deg,var(--paper) 0 72%,var(--green-pale) 100%); box-shadow: 0 15px 45px rgba(38,54,66,.06); }
.article-hero::before { content: ""; position: absolute; right: -7rem; bottom: -10rem; width: 24rem; height: 24rem; border: 1px solid rgba(22,142,224,.13); border-radius: 50%; pointer-events: none; }
.article-hero__meta-column, .article-hero__heading { position: relative; z-index: 1; }
.article-hero__meta-column { align-self: stretch; display: flex; flex-direction: column; justify-content: space-between; padding-right: clamp(1rem,3vw,2.5rem); border-right: 1px solid var(--line); }
.article-hero__meta-column .back-link { margin-bottom: auto; }
.article-hero__meta-column .eyebrow { margin: 2.5rem 0 .75rem; }
.article-hero .post-meta { margin-bottom: .85rem; }
.article-categories { display: flex; flex-wrap: wrap; gap: .45rem; }
.article-categories a { padding: .35rem .55rem; border: 1px solid rgba(22,142,224,.16); border-radius: 999px; color: var(--green-dark); background: rgba(255,255,255,.75); font-size: .59rem; font-weight: 700; letter-spacing: .04em; text-decoration: none; transition: background .2s ease,border-color .2s ease; }
.article-categories a:hover { border-color: var(--green); background: var(--white); }
.article-hero h1 { max-width: 23ch; font-size: clamp(2.25rem,3.9vw,3.55rem); line-height: 1.04; text-wrap: balance; }
.article-deck { max-width: 42rem; margin: 1.35rem 0 0; color: var(--muted); font-size: clamp(.98rem,1.4vw,1.13rem); line-height: 1.7; }
.article-hero--post { display: block; margin-top: .7rem; margin-bottom: 1rem; padding-top: clamp(1.6rem,3vw,2.5rem); padding-right: var(--pad); padding-bottom: clamp(1.7rem,3.2vw,2.6rem); }
.article-hero--post > .back-link { position: relative; z-index: 2; margin-bottom: clamp(1.1rem,2vw,1.55rem); }
.article-hero--post .article-hero__heading { padding-right: clamp(4.8rem,8vw,6.5rem); }
.article-hero--post h1 { max-width: none; font-size: clamp(2.05rem,3.25vw,3.05rem); line-height: 1.06; text-wrap: pretty; }
.article-hero__details { display: flex; align-items: center; flex-wrap: wrap; gap: .65rem 1rem; margin-top: 1rem; }
.article-hero--post .post-meta { gap: .55rem .9rem; margin: 0; font-size: .6rem; }
.article-hero--post .article-categories { gap: .4rem; }
.article-hero--post .article-categories a { padding: .28rem .52rem; }
.article-hero--post .article-deck { max-width: 56rem; margin-top: .85rem; font-size: clamp(.94rem,1.15vw,1.04rem); line-height: 1.62; }
.article-cover { width: min(100%,calc(var(--max) + 2 * var(--pad))); margin-top: 0; margin-bottom: 1.4rem; padding-top: clamp(.65rem,1.4vw,1rem); padding-bottom: clamp(.65rem,1.4vw,1rem); overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); box-shadow: 0 15px 45px rgba(38,54,66,.06); }
.article-cover img { width: auto; max-width: 100%; max-height: clamp(20rem,42vw,31rem); height: auto; margin-inline: auto; object-fit: contain; border-radius: calc(var(--radius) * .72); background: var(--green-pale); }
.article-layout { display: grid; grid-template-columns: minmax(0,1fr) 220px; gap: clamp(2rem,4vw,4rem); margin-bottom: 1.4rem; padding-top: clamp(2.2rem,4vw,3.6rem); padding-bottom: clamp(2.2rem,4vw,3.6rem); border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); box-shadow: 0 15px 45px rgba(38,54,66,.06); }
.article-content { width: 100%; max-width: none; margin-left: 0; font-size: clamp(1rem,1.2vw,1.08rem); line-height: 1.78; }
.article-content > p:first-child { font-size: clamp(1.06rem,1.35vw,1.16rem); }
.article-content h2 { max-width: none; margin-top: 1.35em; margin-bottom: .55em; font-size: clamp(1.75rem,2.55vw,2.45rem); line-height: 1.1; text-wrap: pretty; }
.article-content h3 { max-width: none; margin-top: 1.35em; margin-bottom: .5em; line-height: 1.15; text-wrap: pretty; }
.article-content img { margin-block: 2rem; box-shadow: 0 14px 35px rgba(38,54,66,.08); }
.article-aside { position: sticky; top: 6rem; align-self: start; padding: 1.35rem; border: 1px solid rgba(22,142,224,.16); border-radius: 1rem; background: linear-gradient(145deg,var(--green-pale),rgba(255,255,255,.8)); }
.article-aside__icon { display: grid; width: 2.7rem; height: 2.7rem; margin-bottom: 1.25rem; place-items: center; border: 1px solid rgba(22,142,224,.16); border-radius: .75rem; color: var(--green-dark); background: var(--white); }
.article-aside__icon svg { width: 1.3rem; height: 1.3rem; }
.article-aside .eyebrow { margin-bottom: .55rem; }
.article-aside h3 { margin-bottom: .8rem; font-size: 1.45rem; }
.article-aside p { margin: 0 0 1.2rem; color: var(--muted); font-size: .78rem; line-height: 1.65; }
.article-aside .text-link { font-size: .7rem; }
.article-navigation { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); grid-auto-rows: 1fr; align-items: stretch; gap: 1rem; margin-bottom: var(--space); }
.article-navigation__item { display: flex; min-width: 0; }
.article-navigation__item:empty { display: flex; min-height: 8.5rem; visibility: hidden; }
.article-navigation__item--previous { grid-column: 1; }
.article-navigation__item--next { grid-column: 2; }
.article-navigation__item a { width: 100%; min-height: 8.5rem; height: 100%; display: flex; flex-direction: column; justify-content: flex-start; padding: 1.35rem 1.5rem; border: 1px solid var(--line); border-radius: 1rem; background: var(--paper); text-decoration: none; transition: transform .2s ease,border-color .2s ease,box-shadow .2s ease; }
.article-navigation__item a:hover { border-color: rgba(22,142,224,.35); box-shadow: 0 14px 35px rgba(38,54,66,.08); transform: translateY(-.2rem); }
.article-navigation__item span { margin-bottom: .55rem; color: var(--green-dark); font-size: .61rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.article-navigation__item strong { max-width: 28ch; font-family: var(--display); font-size: clamp(1.15rem,1.8vw,1.5rem); font-weight: 500; line-height: 1.2; }
.article-navigation__item--next { text-align: right; }
.article-navigation__item--next strong { margin-left: auto; }
.project-cover { margin-top: 0; margin-bottom: 1.4rem; padding-top: clamp(.65rem,1.4vw,1rem); padding-bottom: clamp(.65rem,1.4vw,1rem); overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); box-shadow: 0 15px 45px rgba(38,54,66,.06); }
.project-cover img { width: 100%; max-width: none; aspect-ratio: 16 / 9; object-fit: contain; object-position: center; border-radius: calc(var(--radius) * .72); background: var(--green-pale); }
.project-content { margin-left: 0; }
.project-hero { display: block; padding-top: clamp(1.8rem,3.4vw,2.8rem); padding-bottom: clamp(1.9rem,3.6vw,3rem); }
.project-hero .article-hero__meta-column { min-height: 0; display: flex; flex-direction: row; align-items: center; justify-content: space-between; gap: 1.5rem; padding: 0 0 1.15rem; border-right: 0; border-bottom: 1px solid var(--line); }
.project-hero .article-hero__meta-column .back-link { flex: 0 0 auto; margin: 0; }
.project-hero .article-hero__meta-column .eyebrow { max-width: 48rem; margin: 0; text-align: right; }
.project-hero .article-hero__heading { display: block; margin-top: clamp(1.45rem,2.5vw,2.15rem); }
.project-hero h1 { max-width: none; margin-right: 0; font-size: clamp(1.9rem,2.65vw,2.65rem); line-height: 1.08; text-wrap: pretty; }
.project-hero .article-deck { max-width: 58rem; margin: 1rem 0 0; }
.project-hero .project-facts { margin-top: 1.35rem; padding-top: 1rem; }
.project-aside h3 { overflow-wrap: anywhere; }
.project-summary { display: grid; grid-template-columns: 1fr; gap: .25rem; margin: 1.2rem 0 1.4rem; }
.project-summary dt { margin-top: .7rem; color: var(--green-dark); font-size: .58rem; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.project-summary dd { margin: 0; color: var(--ink); font-size: .76rem; line-height: 1.5; }
.project-aside__button { width: 100%; justify-content: center; padding-inline: .8rem; text-align: center; }
.archive-hero { padding-top: clamp(2.15rem,4.2vw,3.5rem); padding-bottom: clamp(2.15rem,4.2vw,3.5rem); background: linear-gradient(120deg,var(--paper) 0 70%,var(--green-pale) 100%); }
.archive-hero h1 { max-width: 22ch; }
.archive-hero__description { max-width: 46rem; margin-top: 1.2rem; color: var(--muted); }
.archive-hero__description > :last-child { margin-bottom: 0; }
.archive-results { margin-bottom: var(--space); padding-top: clamp(2rem,4vw,3rem); padding-bottom: clamp(2rem,4vw,3rem); border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); box-shadow: 0 15px 45px rgba(38,54,66,.06); }
.project-facts { display: flex; flex-wrap: wrap; gap: 1.5rem; margin-top: 1.5rem; padding-top: 1.2rem; border-top: 1px solid var(--line); color: var(--muted); font-size: .72rem; }
.project-facts span { display: grid; gap: .2rem; }
.project-facts small { display: block; color: var(--green-dark); font-size: .57rem; font-weight: 700; letter-spacing: .1em; line-height: 1.2; text-transform: uppercase; }
.project-facts strong { color: var(--ink); }

.service-detail-list { padding-bottom: var(--space); border-top: 1px solid var(--line); }
.service-detail { display: grid; grid-template-columns: 4rem 1fr auto; align-items: center; gap: 1.2rem; padding: 2rem .7rem; border-bottom: 1px solid var(--line); transition: background .25s ease,padding .25s ease; }
.service-detail:hover { padding-inline: 1.2rem; border-radius: .9rem; background: var(--paper); }
.service-detail__number { color: var(--green); font-family: var(--display); font-size: 1.2rem; }
.service-detail h2 { font-size: clamp(1.75rem,3vw,2.7rem); }
.service-detail h2 a { text-decoration: none; }
.service-detail p { max-width: 42rem; margin: .6rem 0 0; color: var(--muted); font-size: .85rem; }
.round-link { display: grid; width: 3rem; height: 3rem; place-items: center; border: 1px solid var(--line); border-radius: 50%; background: var(--paper); transition: color .2s ease,background .2s ease; }
.round-link:hover { color: var(--white); background: var(--green-dark); }

.section-shell.service-categories { display: grid; gap: 1.4rem; padding-right: 0; padding-bottom: var(--space); padding-left: 0; }
.service-category { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); box-shadow: 0 15px 40px rgba(38,54,66,.06); }
.service-category__header { position: relative; overflow: hidden; border-bottom: 1px solid var(--line); background: linear-gradient(110deg,var(--paper) 0 72%,var(--green-pale) 72%); }
.service-category__primary-link { display: grid; grid-template-columns: 3.2rem 1fr auto; gap: clamp(1rem,3vw,2rem); align-items: start; padding: clamp(1.5rem,4vw,3rem); text-decoration: none; transition: background .3s ease; }
.service-category__primary-link:hover { background: linear-gradient(110deg,rgba(234,245,252,.45),rgba(255,255,255,.55)); }
.service-category__primary-link:hover .service-category__icon { color: var(--white); background: var(--green-dark); transform: translateY(-.25rem) rotate(-4deg); }
.service-category__primary-link:hover h2 { color: var(--green-dark); }
.service-category__number { color: var(--green); font-family: var(--display); font-size: 1.3rem; line-height: 1; }
.service-category__header .eyebrow { margin-bottom: .55rem; }
.service-category__header h2 { font-size: clamp(2rem,3.7vw,3.35rem); transition: color .25s ease; }
.service-category__header p:last-child { max-width: 43rem; margin: .75rem 0 0; color: var(--muted); font-size: .88rem; }
.service-category__icon { position: relative; z-index: 2; display: grid; width: 4rem; height: 4rem; place-items: center; border: 1px solid rgba(22,142,224,.18); border-radius: .8rem; color: var(--green); background: rgba(255,255,255,.85); box-shadow: 0 10px 25px rgba(38,54,66,.09); animation: float 6s ease-in-out infinite; }
.service-category__icon svg { width: 1.8rem; height: 1.8rem; }
.service-mini-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 0; background: var(--paper); }
.service-mini { position: relative; min-height: 10.5rem; display: grid; grid-template-columns: 2.6rem minmax(0,1fr); align-content: start; column-gap: .9rem; padding: 1.3rem 3.7rem 1.3rem 1.35rem; background: var(--paper); text-decoration: none; transition: background .25s ease; }
.service-mini:nth-child(odd) { border-right: 1px solid var(--line); }
.service-mini { border-bottom: 1px solid var(--line); }
.service-mini:last-child, .service-mini:nth-last-child(2):nth-child(odd) { border-bottom: 0; }
.service-mini:hover { background: var(--green-pale); }
.service-mini__icon { display: grid; width: 2.6rem; height: 2.6rem; place-items: center; border: 1px solid rgba(22,142,224,.14); border-radius: .65rem; color: var(--green-dark); background: var(--green-pale); transition: transform .25s ease,background .25s ease; }
.service-mini__title { align-self: center; font-family: var(--display); font-size: clamp(1.25rem,2vw,1.7rem); line-height: 1.08; }
.service-mini small { grid-column: 2; margin-top: .65rem; color: var(--muted); font-size: .72rem; line-height: 1.48; }
.service-mini > svg { position: absolute; top: 1.35rem; right: 1.35rem; color: var(--green); transition: transform .25s ease; }
.service-mini:hover .service-mini__icon { background: var(--white); transform: rotate(-4deg); }
.service-mini:hover > svg { transform: translateX(.3rem); }
.section-shell.related-services { padding-right: 0; padding-bottom: var(--space); padding-left: 0; }
.related-services .section-heading { padding-inline: var(--pad); }
.related-services .service-mini-grid { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); }
@media (min-width: 981px) {
  .related-services .section-heading > div { min-width: 0; flex: 1; }
  .related-services .section-heading h2 { max-width: none; white-space: nowrap; font-size: clamp(2.35rem,3.6vw,3.45rem); }
}

.resume-layout { display: grid; grid-template-columns: 250px minmax(0,1fr); gap: clamp(2rem,6vw,6rem); align-items: start; margin-bottom: var(--space); padding-top: clamp(2rem,5vw,4rem); padding-bottom: clamp(2rem,5vw,4rem); border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); box-shadow: 0 15px 45px rgba(38,54,66,.06); }
.resume-profile { position: sticky; top: 6rem; padding: 1.5rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--green-pale); }
.resume-profile > span { color: var(--green-dark); font-family: var(--display); font-size: 4.2rem; line-height: .8; }
.resume-profile p { margin: 1rem 0 1.4rem; color: var(--muted); font-size: .78rem; }
.resume-content { max-width: 800px; }
.resume-content > h2 { position: relative; margin: 0 0 1.5rem; padding: 1.25rem 0; border-block: 1px solid var(--line); font-size: clamp(2.1rem,4vw,3.35rem); }
.resume-content > h2:not(:first-child) { margin-top: 4.5rem; }
.resume-content > h2, .resume-content > h3 { display: flex; align-items: center; gap: .8rem; }
.resume-content > h3 { position: relative; margin: 2rem 0 .5rem; font-size: clamp(1.35rem,2.2vw,1.9rem); }
.resume-content > h3 + p { margin-left: 3.45rem; color: var(--muted); }
.resume-item-icon { display: grid; flex: 0 0 auto; place-items: center; border: 1px solid rgba(22,142,224,.15); color: var(--green-dark); background: var(--green-pale); }
.resume-content h2 .resume-item-icon { width: 3.1rem; height: 3.1rem; border-radius: .8rem; }
.resume-content h3 .resume-item-icon { width: 2.65rem; height: 2.65rem; border-radius: .7rem; }
.resume-item-text { min-width: 0; }
.resume-content ul { display: grid; grid-template-columns: repeat(2,1fr); gap: .65rem; margin: 1rem 0 2.4rem; padding: 0; list-style: none; }
.resume-content li { position: relative; min-height: 4.6rem; display: flex; align-items: center; gap: .7rem; padding: .75rem .85rem; border: 1px solid var(--line); border-radius: .7rem; background: var(--paper); font-size: .78rem; line-height: 1.4; }
.resume-content li .resume-item-icon { width: 2rem; height: 2rem; border: 0; border-radius: .55rem; }
.resume-content li .resume-item-icon svg { width: 1.15rem; height: 1.15rem; }
.language-skills { display: grid; gap: 1rem; }
.language { --level: 100%; position: relative; display: grid; grid-template-columns: 1fr auto; gap: .5rem; margin: 0; padding: 1rem 1rem 1.8rem; overflow: hidden; border: 1px solid var(--line); border-radius: .75rem; background: var(--paper); }
.language::before { content: ""; position: absolute; right: 1rem; bottom: .8rem; left: 1rem; height: .42rem; border-radius: 999px; background: linear-gradient(90deg,var(--green) 0 var(--level),#dce7ed var(--level) 100%); }
.language span { color: var(--green-dark); font-size: .72rem; font-weight: 700; }
.language--70 { --level: 70%; }
.language--50 { --level: 50%; }

.site-breadcrumb { width: min(100%,calc(var(--max) + 2 * var(--pad))); min-height: 4.2rem; display: flex; align-items: center; margin: 0 auto; padding: 1rem var(--pad); }
.site-breadcrumb ol { display: flex; width: 100%; align-items: center; flex-wrap: nowrap; gap: .35rem .55rem; margin: 0; padding: 0; overflow: hidden; list-style: none; color: var(--muted); font-size: .68rem; line-height: 1.45; }
.site-breadcrumb li { display: inline-flex; align-items: center; gap: .55rem; }
.site-breadcrumb li:last-child { min-width: 0; overflow: hidden; }
.site-breadcrumb li:not(:last-child)::after { content: "/"; color: rgba(22,142,224,.65); }
.site-breadcrumb a { color: var(--green-dark); text-decoration: none; }
.site-breadcrumb a:hover { text-decoration: underline; text-underline-offset: .2rem; }
.site-breadcrumb [aria-current="page"] { display: inline-block; max-width: min(44rem,75vw); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.contact-layout { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(2rem,6vw,6rem); padding-bottom: var(--space); }
.contact-details > p { max-width: 31rem; margin-top: 0; color: var(--muted); font-size: 1.05rem; }
.contact-details dl { margin: 2.2rem 0 0; }
.contact-details dl > div { position: relative; min-height: 5rem; padding: 1rem 0 1rem 4rem; border-top: 1px solid var(--line); }
.contact-details dt { display: flex; align-items: center; color: var(--muted); font-size: .61rem; letter-spacing: .12em; text-transform: uppercase; }
.contact-detail__icon { position: absolute; top: .85rem; left: 0; display: grid; width: 3rem; height: 3rem; place-items: center; border: 1px solid rgba(22,142,224,.18); border-radius: .8rem; color: var(--green-dark); background: var(--green-pale); box-shadow: 0 8px 20px rgba(38,54,66,.05); }
.contact-details dd { margin: .25rem 0 0; font-family: var(--display); font-size: 1.35rem; }
.contact-form-wrap { padding: clamp(1.4rem,3vw,2.2rem); border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); }
.ivan-contact-form { display: grid; gap: 1.1rem; }
.form-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 1rem; }
.form-field { display: grid; gap: .35rem; margin: 0; color: var(--muted); font-size: .7rem; letter-spacing: .06em; }
.form-field--full { grid-column: 1 / -1; }
.contact-form-intro { margin: 0; padding-bottom: .9rem; border-bottom: 1px solid var(--line); color: var(--muted); font-size: .76rem; line-height: 1.6; }
.form-field label { font-weight: 650; }
.form-field input, .form-field select, .form-field textarea { width: 100%; padding: .8rem .9rem; border: 1px solid var(--line); border-radius: .55rem; color: var(--ink); background: var(--white); outline: none; }
.form-field select { min-height: 3rem; cursor: pointer; }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus { border-color: var(--green); box-shadow: 0 0 0 3px rgba(22,142,224,.12); }
.form-field textarea { min-height: 9rem; resize: vertical; }
.form-consent { display: flex; align-items: flex-start; gap: .6rem; color: var(--muted); font-size: .7rem; line-height: 1.5; }
.form-consent input { margin-top: .22rem; accent-color: var(--green); }
.form-honeypot { position: absolute; left: -9999px; }
.ivan-contact-form .button { justify-self: start; cursor: pointer; }
.notice-error { margin-bottom: 1rem; padding: .9rem 1rem; border-radius: .6rem; color: #702525; background: #fde9e9; }
.notice-success { margin-bottom: 1rem; padding: .9rem 1rem; border-radius: .6rem; color: #174e70; background: var(--green-pale); }

.section-shell.transliterator-layout { display: grid; gap: 1.4rem; margin-bottom: var(--space); padding-inline: 0; }
.transliterator-tool, .transliteration-reference { border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); box-shadow: 0 15px 45px rgba(38,54,66,.06); }
.transliterator-tool { position: relative; overflow: hidden; padding: clamp(1.4rem,4vw,3.3rem); }
.transliterator-tool::after { content: ""; position: absolute; top: -8rem; right: -7rem; width: 20rem; height: 20rem; border: 1px solid rgba(22,142,224,.12); border-radius: 50%; pointer-events: none; }
.transliterator-tool__heading { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0,1fr) minmax(18rem,.72fr); align-items: end; gap: clamp(1.5rem,5vw,5rem); margin-bottom: 2rem; }
.transliterator-tool__heading h2 { max-width: 15ch; font-size: clamp(2rem,3.6vw,3.15rem); }
.transliterator-tool__heading > p { max-width: 38rem; margin: 0; color: var(--muted); font-size: .88rem; line-height: 1.7; }
.transliterator-fields { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.transliterator-field { min-width: 0; display: grid; gap: .65rem; }
.transliterator-field > span { color: var(--green-dark); font-size: .65rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.transliterator-field textarea { width: 100%; min-height: 14rem; resize: vertical; padding: 1.1rem; border: 1px solid var(--line); border-radius: 1rem; color: var(--ink); background: var(--white); font-family: var(--sans); font-size: .95rem; line-height: 1.65; outline: none; transition: border-color .2s ease,box-shadow .2s ease; }
.transliterator-field textarea:focus { border-color: var(--green); box-shadow: 0 0 0 4px rgba(22,142,224,.11); }
.transliterator-field--output textarea { background: linear-gradient(145deg,var(--green-pale),var(--white)); }
.transliterator-actions { position: relative; z-index: 1; display: flex; align-items: center; flex-wrap: wrap; gap: .8rem 1.2rem; margin-top: 1.2rem; }
.transliterator-actions .button { appearance: none; cursor: pointer; }
.transliterator-actions .button.is-copied { border-color: var(--green-dark); background: var(--green-dark); }
.transliterator-clear { min-height: 3rem; padding: .65rem 1rem; border: 0; color: var(--muted); background: transparent; font-size: .76rem; font-weight: 700; cursor: pointer; text-decoration: underline; text-decoration-color: var(--green); text-underline-offset: .3rem; }
.transliterator-status { min-height: 1.5rem; flex: 1 1 15rem; margin: 0; color: var(--green-dark); font-size: .73rem; text-align: right; }
.transliteration-reference { padding: clamp(1.5rem,5vw,4.3rem); }
.transliteration-reference__intro { display: grid; grid-template-columns: minmax(0,.8fr) minmax(18rem,.7fr); column-gap: clamp(2rem,7vw,7rem); align-items: end; }
.transliteration-reference__intro .eyebrow { grid-column: 1 / -1; }
.transliteration-reference__intro h2 { max-width: 15ch; font-size: clamp(2rem,3.8vw,3.4rem); }
.transliteration-reference__intro > p:last-child { margin: 0; color: var(--muted); font-size: .9rem; line-height: 1.75; }
.transliteration-alphabet { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 1px; margin-top: clamp(2rem,5vw,4rem); overflow: hidden; border: 1px solid var(--line); border-radius: 1rem; background: var(--line); }
.transliteration-letter { min-height: 5.2rem; display: grid; place-content: center; gap: .2rem; padding: .7rem; background: var(--white); text-align: center; }
.transliteration-letter strong { font-family: var(--display); font-size: 1.08rem; font-weight: 500; }
.transliteration-letter span { color: var(--green-dark); font-size: .72rem; font-weight: 700; }
.transliteration-rules { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; margin-top: 1.4rem; }
.transliteration-rules article { position: relative; min-height: 13rem; padding: 1.35rem; overflow: hidden; border: 1px solid rgba(22,142,224,.14); border-radius: 1rem; background: linear-gradient(145deg,var(--green-pale),rgba(255,255,255,.86)); }
.transliteration-rules article > span { color: var(--green); font-family: var(--display); font-size: 1rem; }
.transliteration-rules h3 { margin: .8rem 0 .65rem; font-size: clamp(1.35rem,2vw,1.75rem); }
.transliteration-rules p { margin: 0; color: var(--muted); font-size: .8rem; line-height: 1.65; }
.transliteration-examples { display: grid; grid-template-columns: minmax(10rem,.35fr) minmax(0,1fr); gap: clamp(1.5rem,5vw,4rem); margin-top: 1.4rem; padding: clamp(1.2rem,3vw,2rem); border: 1px solid var(--line); border-radius: 1rem; }
.transliteration-examples h3 { font-size: clamp(1.55rem,2.5vw,2.2rem); }
.transliteration-examples dl { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .8rem 1.4rem; margin: 0; }
.transliteration-examples dl > div { padding-bottom: .7rem; border-bottom: 1px solid var(--line); }
.transliteration-examples dt { color: var(--muted); font-size: .7rem; }
.transliteration-examples dd { margin: .2rem 0 0; color: var(--green-dark); font-weight: 700; }
.transliteration-custom-content { max-width: 780px; margin: clamp(2rem,5vw,4rem) auto 0; padding-top: clamp(2rem,5vw,4rem); border-top: 1px solid var(--line); }
.transliterator-hero .back-link { position: relative; z-index: 2; margin-bottom: 1.2rem; }
.tools-directory { margin-bottom: var(--space); padding-top: clamp(2rem,5vw,4rem); padding-bottom: clamp(2rem,5vw,4rem); border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); box-shadow: 0 15px 45px rgba(38,54,66,.06); }
.tools-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.tool-card { position: relative; min-height: 12rem; display: grid; grid-template-columns: 2rem 3.2rem minmax(0,1fr) auto; align-items: start; gap: 1rem; padding: 1.4rem; overflow: hidden; border: 1px solid var(--line); border-radius: 1rem; background: linear-gradient(145deg,var(--white),var(--green-pale)); text-decoration: none; transition: border-color .25s ease,transform .25s ease,box-shadow .25s ease; }
.tool-card:hover { border-color: rgba(22,142,224,.38); transform: translateY(-.25rem); box-shadow: 0 16px 38px rgba(38,54,66,.08); }
.tool-card__number { padding-top: .75rem; color: var(--green); font-family: var(--display); font-size: 1rem; }
.tool-card__icon { display: grid; width: 3.2rem; height: 3.2rem; place-items: center; border: 1px solid rgba(22,142,224,.17); border-radius: .8rem; color: var(--green-dark); background: var(--white); }
.tool-card__copy { align-self: center; display: grid; gap: .55rem; }
.tool-card__copy strong { font-family: var(--display); font-size: clamp(1.35rem,2.3vw,1.9rem); font-weight: 500; line-height: 1.12; }
.tool-card__copy small { max-width: 34rem; color: var(--muted); font-size: .75rem; line-height: 1.55; }
.tool-card > svg { align-self: center; color: var(--green-dark); transition: transform .25s ease; }
.tool-card:hover > svg { transform: translateX(.3rem); }
.tools-custom-content { max-width: 780px; margin: 3rem auto 0; padding-top: 3rem; border-top: 1px solid var(--line); }

.section-shell.tool-workspace { display: grid; gap: 1.4rem; margin-bottom: var(--space); padding-inline: 0; }
.page-template-page-instrument .site-breadcrumb, .page-template-page-transliteratsia .site-breadcrumb { min-height: 2.5rem; padding-top: .35rem; padding-bottom: .35rem; }
.tool-page-hero { margin-top: .25rem; margin-bottom: .7rem; padding-top: clamp(1.35rem,2vw,1.65rem); padding-right: clamp(6.5rem,10vw,8rem); padding-bottom: clamp(1.4rem,2.1vw,1.75rem); }
.tool-page-hero h1 { max-width: calc(100% - 1rem); font-size: clamp(2rem,2.9vw,2.75rem); }
.tool-page-hero > p:not(.eyebrow) { max-width: 54rem; margin: .8rem 0 0; color: var(--muted); font-size: clamp(.92rem,1.15vw,1.03rem); line-height: 1.65; }
@media (min-width: 981px) {
  .tool-page-hero h1 { white-space: nowrap; }
}
.tool-panel { position: relative; overflow: hidden; padding: clamp(1.35rem,4vw,3.2rem); border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); box-shadow: 0 15px 45px rgba(38,54,66,.06); }
.tool-panel::after { content: ""; position: absolute; z-index: 0; top: -12rem; right: -10rem; width: 28rem; height: 28rem; border: 1px solid rgba(22,142,224,.11); border-radius: 50%; pointer-events: none; }
.tool-panel > * { position: relative; z-index: 1; }
.tool-panel__heading { display: grid; grid-template-columns: minmax(0,1fr) minmax(16rem,.65fr); align-items: end; gap: 2rem; margin-bottom: 2rem; }
.tool-panel__heading h2 { font-size: clamp(1.9rem,3.4vw,3rem); }
.tool-panel__heading > p { margin: 0; color: var(--muted); font-size: .82rem; line-height: 1.65; }
.tool-form { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.tool-field { min-width: 0; display: grid; align-content: start; gap: .42rem; }
.tool-field--full, .schema-fields, .tool-form > .button, .tool-form > .text-link { grid-column: 1 / -1; }
.schema-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.tool-field > span, .tool-output > label { color: var(--green-dark); font-size: .65rem; font-weight: 750; letter-spacing: .09em; text-transform: uppercase; }
.tool-field input, .tool-field select, .tool-field textarea, .tool-output textarea { width: 100%; min-height: 3.2rem; padding: .8rem .9rem; border: 1px solid var(--line); border-radius: .68rem; color: var(--ink); background: var(--white); font: inherit; font-size: .88rem; line-height: 1.55; outline: none; }
.tool-field textarea, .tool-output textarea { resize: vertical; }
.tool-field input:focus, .tool-field select:focus, .tool-field textarea:focus, .tool-output textarea:focus { border-color: var(--green); box-shadow: 0 0 0 4px rgba(22,142,224,.1); }
.tool-field small { color: var(--muted); font-size: .67rem; line-height: 1.5; }
.tool-field input.is-invalid, .tool-field select.is-invalid, .tool-field textarea.is-invalid { border-color: #b74135; background: #fff8f7; }
.tool-form > .button { justify-self: start; margin-top: .25rem; cursor: pointer; }
.tool-form > .button:disabled { opacity: .58; cursor: wait; }
.tool-google-search { justify-self: start; margin-top: -.35rem; font-size: .76rem; }
.tool-status { min-height: 1.5rem; margin-top: 1rem; color: var(--green-dark); font-size: .75rem; }
.tool-status.is-loading::before { content: ""; display: inline-block; width: .75rem; height: .75rem; margin-right: .5rem; border: 2px solid rgba(22,142,224,.22); border-top-color: var(--green); border-radius: 50%; vertical-align: -.1rem; animation: orbit .7s linear infinite; }
.tool-results { margin-top: 1.2rem; padding-top: 1.3rem; border-top: 1px solid var(--line); }
.tool-score { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 1.2rem; margin-bottom: 1rem; padding: 1.2rem; border: 1px solid rgba(22,142,224,.18); border-radius: 1rem; background: linear-gradient(145deg,var(--green-pale),var(--white)); }
.tool-score > strong { min-width: 5.3rem; color: var(--green-dark); font-family: var(--display); font-size: 2.6rem; font-weight: 500; text-align: center; }
.tool-score > strong small { font-family: var(--sans); font-size: .7rem; }
.tool-score h3, .tool-check h3 { margin: 0; font-family: var(--sans); font-size: .85rem; }
.tool-score p, .tool-check p { margin: .25rem 0 0; overflow-wrap: anywhere; color: var(--muted); font-size: .73rem; line-height: 1.5; }
.tool-score a { overflow-wrap: anywhere; font-size: .7rem; }
.tool-export { grid-column: 1 / -1; justify-self: start; padding: .55rem .8rem; border: 1px solid var(--green); border-radius: .55rem; color: var(--green-dark); background: var(--white); font-size: .7rem; font-weight: 700; cursor: pointer; }
.tool-checks { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .75rem; }
.tool-check { min-width: 0; display: grid; grid-template-columns: 2rem 1fr; gap: .7rem; padding: 1rem; border: 1px solid var(--line); border-radius: .8rem; background: var(--white); }
.tool-check__mark { display: grid; width: 2rem; height: 2rem; place-items: center; border-radius: 50%; color: #fff; background: #a26a24; font-weight: 800; }
.tool-check.is-ok .tool-check__mark { background: #2f7c4d; }
.tool-check small { color: var(--muted); font-size: .65rem; }
.tool-summary { display: flex; align-items: baseline; gap: .6rem; margin-bottom: 1rem; }
.tool-summary strong { color: var(--green-dark); font-family: var(--display); font-size: 2.6rem; font-weight: 500; }
.tool-summary span { color: var(--muted); }
.redirect-chain { display: grid; gap: .6rem; margin: 0; padding: 0; list-style: none; }
.redirect-chain li { display: grid; grid-template-columns: 3.2rem 1fr; gap: .25rem .8rem; padding: .9rem; border: 1px solid var(--line); border-radius: .75rem; background: var(--white); }
.redirect-chain b { grid-row: 1 / 3; color: var(--green-dark); }
.redirect-chain span, .redirect-chain small { overflow-wrap: anywhere; font-size: .72rem; }
.redirect-chain small { color: var(--muted); }
.tool-table-wrap { max-width: 100%; overflow: auto; border: 1px solid var(--line); border-radius: .8rem; background: var(--white); }
.tool-table { width: 100%; border-collapse: collapse; font-size: .72rem; }
.tool-table th, .tool-table td { min-width: 7rem; padding: .7rem .8rem; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.tool-table th { color: var(--green-dark); background: var(--green-pale); font-size: .63rem; letter-spacing: .06em; text-transform: uppercase; }
.tool-table td:first-child { min-width: 12rem; }
.tool-table a { overflow-wrap: anywhere; }
.tool-result-note { margin: .9rem 0 0; color: var(--muted); font-size: .7rem; line-height: 1.6; }
.tool-result-cta { margin: 1.2rem 0 0; padding-top: 1rem; border-top: 1px solid var(--line); color: var(--muted); font-size: .76rem; line-height: 1.65; }
.tool-result-cta a { color: var(--green-dark); font-weight: 750; text-underline-offset: .2rem; }
.tool-details { margin-top: 1rem; }
.tool-details summary { color: var(--green-dark); cursor: pointer; font-weight: 700; }
.tool-code { position: relative; margin-top: .7rem; }
.tool-code pre { max-height: 32rem; margin: 0; overflow: auto; padding: 1rem 1rem 3.7rem; border-radius: .8rem; color: #e8eef2; background: #172026; font: .72rem/1.6 ui-monospace,SFMono-Regular,Consolas,monospace; white-space: pre-wrap; overflow-wrap: anywhere; }
.tool-copy { position: absolute; right: .7rem; bottom: .7rem; padding: .45rem .7rem; border: 1px solid rgba(255,255,255,.2); border-radius: .45rem; color: #fff; background: rgba(255,255,255,.08); cursor: pointer; }
.tool-output { display: flex; align-items: center; flex-wrap: wrap; gap: .7rem; }
.tool-output > label, .tool-output textarea { flex: 1 0 100%; }
.tool-output .tool-copy { position: static; min-height: 2.7rem; padding: .55rem .9rem; border-color: var(--green); color: var(--green-dark); background: var(--green-pale); }
.button--outline { color: var(--ink); background: var(--white); border: 1px solid var(--line); }
.tool-metrics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .75rem; }
.tool-metrics article { display: grid; gap: .4rem; padding: 1rem; border: 1px solid var(--line); border-radius: .8rem; background: linear-gradient(145deg,var(--white),var(--green-pale)); }
.tool-metrics span { color: var(--muted); font-size: .67rem; text-transform: uppercase; letter-spacing: .06em; }
.tool-metrics strong { color: var(--ink); font-family: var(--display); font-size: 1.55rem; font-weight: 500; }
.tool-subtitle { margin: 1.4rem 0 .8rem; font-size: 1.4rem; }
.word-frequency { display: flex; flex-wrap: wrap; gap: .45rem; }
.word-frequency span { padding: .45rem .65rem; border: 1px solid rgba(22,142,224,.18); border-radius: 999px; color: var(--green-dark); background: var(--green-pale); font-size: .72rem; }
.preview-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.social-preview-stack { display: grid; gap: 1rem; }
.serp-preview, .social-preview { overflow: hidden; border: 1px solid var(--line); border-radius: .8rem; background: var(--white); }
.serp-preview { padding: 1.1rem; }
.social-preview__network { display: block; margin-bottom: .65rem; color: var(--green-dark); font-size: .62rem; letter-spacing: .08em; text-transform: uppercase; }
.social-preview > .social-preview__network { margin: 0; padding: .65rem .8rem; border-bottom: 1px solid var(--line); }
.serp-preview small { color: #4d5156; }
.serp-preview h3 { margin: .35rem 0; color: #1a0dab; font: 1.2rem/1.3 Arial,sans-serif; }
.serp-preview p { margin: 0; color: #4d5156; font: .78rem/1.5 Arial,sans-serif; }
.social-preview img, .social-preview__placeholder { width: 100%; aspect-ratio: 1.91 / 1; object-fit: cover; }
.social-preview__placeholder { display: grid; place-items: center; color: var(--green-dark); background: var(--green-pale); }
.social-preview > div:last-child { padding: .8rem; }
.social-preview h3 { margin: .25rem 0; font: 700 .95rem/1.35 Arial,sans-serif; }
.social-preview p, .social-preview small { margin: 0; color: var(--muted); font: .7rem/1.45 Arial,sans-serif; }
.social-preview--x { max-width: 34rem; }
.tool-notes { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; }
.tool-notes article { padding: 1.25rem; border: 1px solid var(--line); border-radius: 1rem; background: var(--paper); }
.tool-notes article > span { color: var(--green); font-family: var(--display); }
.tool-notes h3 { margin: .65rem 0 .45rem; font-size: 1.25rem; }
.tool-notes p { margin: 0; color: var(--muted); font-size: .75rem; line-height: 1.65; }
.tool-custom-content { padding: clamp(1.4rem,4vw,3rem); border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); }
.tool-advanced { overflow: hidden; border: 1px solid var(--line); border-radius: .8rem; background: rgba(255,255,255,.58); }
.tool-advanced summary { padding: .9rem 1rem; color: var(--green-dark); font-size: .75rem; font-weight: 750; cursor: pointer; }
.tool-advanced[open] summary { border-bottom: 1px solid var(--line); }
.tool-advanced > .tool-field, .tool-advanced > .tool-form { margin: 1rem; }
.tool-form--nested { margin: 1rem; }
.preview-loader { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: 1rem; padding: 1rem; border: 1px solid rgba(22,142,224,.18); border-radius: .85rem; background: var(--green-pale); }
.preview-loader .button { min-height: 3.2rem; white-space: nowrap; }

.schema-builder { display: grid; grid-template-columns: minmax(0,1.08fr) minmax(22rem,.92fr); align-items: start; gap: 1.2rem; }
.schema-builder__form { min-width: 0; display: grid; gap: 1rem; }
.schema-builder__form > .tool-field { padding: 1rem; border: 1px solid var(--line); border-radius: .85rem; background: var(--white); }
.schema-fields { grid-template-columns: repeat(2,minmax(0,1fr)); }
.schema-section, .schema-repeater { grid-column: 1 / -1; }
.schema-section { margin-top: .4rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.schema-section h3 { margin: 0; font-size: 1.22rem; }
.schema-section p { margin: .3rem 0 0; color: var(--muted); font-size: .72rem; }
.schema-repeater { min-width: 0; margin: 0; padding: 1rem; border: 1px solid rgba(22,142,224,.18); border-radius: .85rem; background: var(--green-pale); }
.schema-repeater legend { padding: 0 .4rem; color: var(--green-dark); font-size: .7rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.schema-repeater [data-repeater-rows] { display: grid; gap: .75rem; }
.schema-repeater__row { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .7rem; padding: .8rem; border: 1px solid var(--line); border-radius: .7rem; background: var(--white); }
.schema-repeater__row .tool-field:only-of-type { grid-column: 1 / -1; }
.schema-add, .schema-remove { border: 0; color: var(--green-dark); background: transparent; font: inherit; font-size: .7rem; font-weight: 750; cursor: pointer; }
.schema-add { margin-top: .75rem; }
.schema-remove { grid-column: 1 / -1; justify-self: end; color: #8d342c; }
.schema-live { position: sticky; top: 1rem; min-width: 0; overflow: hidden; border-radius: 1rem; color: #e9f1f5; background: #172026; box-shadow: 0 18px 38px rgba(23,32,38,.16); }
.schema-live__heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem; border-bottom: 1px solid rgba(255,255,255,.1); }
.schema-live__heading span { color: #9eacb4; font-size: .62rem; letter-spacing: .08em; text-transform: uppercase; }
.schema-live__heading h3 { margin: .18rem 0 0; color: #fff; font-family: var(--sans); font-size: 1rem; }
.schema-live .tool-copy { position: static; flex: 0 0 auto; }
.schema-warnings { padding: .8rem 1rem; color: #ffd8a8; background: rgba(255,184,77,.08); font-size: .7rem; line-height: 1.5; }
.schema-warnings strong { color: #fff; }
.schema-warnings ul { margin: .35rem 0 0; padding-left: 1.1rem; }
.schema-warnings .is-ready { color: #bce8cb; }
.schema-live pre { max-height: 42rem; min-height: 24rem; margin: 0; overflow: auto; padding: 1rem; font: .7rem/1.58 ui-monospace,SFMono-Regular,Consolas,monospace; white-space: pre-wrap; overflow-wrap: anywhere; }
.schema-live__actions { display: flex; flex-wrap: wrap; gap: .5rem 1rem; padding: .85rem 1rem; border-top: 1px solid rgba(255,255,255,.1); }
.schema-live__actions a { color: #73bff0; font-size: .68rem; }
.schema-live > p { margin: 0; padding: 0 1rem 1rem; color: #9eacb4; font-size: .65rem; line-height: 1.55; }

.tool-faq { display: grid; grid-template-columns: minmax(12rem,.55fr) minmax(0,1fr); gap: clamp(1.5rem,4vw,4rem); padding: clamp(1.4rem,4vw,3rem); border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); }
.tool-faq__heading h2 { max-width: 12ch; margin-top: .5rem; font-size: clamp(1.8rem,3.2vw,2.8rem); }
.tool-faq__items { border-top: 1px solid var(--line); }
.tool-faq details { border-bottom: 1px solid var(--line); }
.tool-faq summary { display: grid; grid-template-columns: minmax(0,1fr) 1.5rem; align-items: center; gap: 1rem; padding: 1rem 0; color: var(--ink); font-weight: 750; cursor: pointer; list-style: none; }
.tool-faq summary::-webkit-details-marker { display: none; }
.tool-faq summary i { position: relative; width: 1.25rem; height: 1.25rem; border: 1px solid rgba(22,142,224,.25); border-radius: 50%; }
.tool-faq summary i::before, .tool-faq summary i::after { content: ""; position: absolute; top: 50%; left: 50%; width: .55rem; height: 1px; background: var(--green-dark); transform: translate(-50%,-50%); }
.tool-faq summary i::after { transform: translate(-50%,-50%) rotate(90deg); transition: transform .2s ease; }
.tool-faq details[open] summary i::after { transform: translate(-50%,-50%) rotate(0); }
.tool-faq details > div { padding: 0 2.5rem 1rem 0; }
.tool-faq details p { margin: 0; color: var(--muted); font-size: .8rem; line-height: 1.7; }

.pagination, .nav-links { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 3rem; }
.page-numbers { display: inline-flex; min-width: 2.5rem; height: 2.5rem; padding: 0 .25rem; align-items: center; justify-content: center; border: 1px solid var(--line); border-radius: 50%; line-height: 1; text-decoration: none; }
.page-numbers.prev, .page-numbers.next { width: 2.5rem; padding: 0; }
.pagination-arrow { display: grid; width: 1.1rem; height: 1.1rem; place-items: center; line-height: 0; }
.pagination-arrow svg { display: block; width: 1.1rem; height: 1.1rem; }
.page-numbers.prev .pagination-arrow { transform: rotate(180deg); }
.page-numbers.current, .page-numbers:hover { color: var(--white); background: var(--green-dark); }
.not-found { position: relative; min-height: 62vh; display: grid; align-content: center; justify-items: start; padding-top: clamp(3rem,8vw,6rem); padding-bottom: clamp(3rem,8vw,6rem); }
.not-found h1 { max-width: 22ch; margin: .55rem 0 1rem; font-size: clamp(2.8rem,6vw,5.4rem); line-height: 1.02; text-wrap: balance; }
.not-found__text { max-width: 44rem; margin: 0 0 1.6rem; color: var(--muted); font-size: clamp(1rem,1.5vw,1.15rem); line-height: 1.65; }

.site-footer { position: relative; isolation: isolate; width: min(100%,calc(var(--max) + 2 * var(--pad))); margin: 2rem auto 1rem; overflow: hidden; border: 1px solid rgba(255,255,255,.08); border-radius: var(--radius); color: #dfe5df; background: radial-gradient(ellipse at 68% 22%,rgba(22,142,224,.22),transparent 34%),radial-gradient(ellipse at 90% 115%,rgba(115,191,240,.12),transparent 37%),linear-gradient(118deg,#202622 0%,#252b26 53%,#1b2427 100%); box-shadow: 0 15px 45px rgba(38,54,66,.12); }
.site-footer::before { content: ""; position: absolute; z-index: -1; top: -7.5rem; right: 9%; width: 24rem; height: 15rem; border: 1px solid rgba(255,255,255,.1); border-radius: 50%; background: linear-gradient(115deg,rgba(255,255,255,.045),rgba(22,142,224,.08),transparent 68%); transform: rotate(-14deg); }
.site-footer::after { content: ""; position: absolute; z-index: -1; top: 24%; right: -7rem; width: 31rem; height: 5.5rem; border-top: 1px solid rgba(115,191,240,.18); border-bottom: 1px solid rgba(255,255,255,.05); border-radius: 50%; background: linear-gradient(90deg,transparent,rgba(115,191,240,.08),transparent); transform: rotate(-12deg); }
.site-footer__inner { position: relative; display: grid; grid-template-columns: minmax(16rem,1fr) auto; align-items: start; gap: 1.15rem clamp(2rem,5vw,5rem); padding-top: 2.2rem; padding-bottom: 1.65rem; }
.footer-brand { font-family: var(--display); font-size: clamp(2.2rem,4vw,3.5rem); line-height: 1; text-decoration: none; }
.footer-brand span { color: #73bff0; }
.footer-intro { grid-column: 1; grid-row: 1; }
.site-footer p { margin: .75rem 0 0; color: #98a099; font-size: .78rem; }
.footer-heading { margin: 0 0 .9rem !important; color: #73bff0 !important; font-size: .58rem !important; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.footer-navigation ul, .footer-services ul { margin: 0; padding: 0; list-style: none; }
.footer-navigation { grid-column: 1 / -1; grid-row: 2; display: flex; align-items: center; gap: 1.35rem; padding: .75rem 0; border-top: 1px solid rgba(255,255,255,.1); border-bottom: 1px solid rgba(255,255,255,.1); }
.footer-navigation .footer-heading { flex: 0 0 auto; margin: 0 !important; }
.footer-menu { display: flex; align-items: center; flex-wrap: wrap; gap: .35rem 1.25rem; }
.footer-navigation a, .footer-services a, .footer-contact a { display: inline-block; text-decoration: none; transition: color .2s ease,transform .2s ease; }
.footer-navigation a:hover, .footer-services a:hover, .footer-contact a:hover { color: #73bff0; transform: translateX(.25rem); }
.footer-navigation a { font-size: .78rem; }
.footer-contact { grid-column: 2; grid-row: 1; display: flex; justify-content: flex-end; align-items: center; align-self: center; flex-wrap: wrap; gap: .55rem 1rem; text-align: right; }
.footer-contact .footer-heading { flex-basis: 100%; margin-bottom: .15rem !important; text-align: right; }
.footer-contact-link { display: inline-flex !important; align-items: center; gap: .48rem; text-decoration-color: #73bff0; }
.footer-contact-link__icon { display: grid; width: 1.8rem; height: 1.8rem; flex: 0 0 auto; place-items: center; border: 1px solid rgba(115,191,240,.18); border-radius: .5rem; color: #73bff0; background: rgba(115,191,240,.08); }
.footer-contact-link__icon svg { width: .95rem; height: .95rem; }
.footer-services { grid-column: 1 / -1; grid-row: 3; padding-top: .25rem; }
.footer-services__grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); align-items: start; gap: clamp(.75rem,1.8vw,1.35rem); }
.footer-service-group { min-width: 0; padding: .85rem .9rem; border: 1px solid rgba(255,255,255,.075); border-radius: .9rem; background: rgba(255,255,255,.025); transition: border-color .25s ease,background .25s ease,transform .25s ease; }
.footer-service-group:hover { border-color: rgba(115,191,240,.24); background: rgba(115,191,240,.045); transform: translateY(-3px); }
.footer-service-parent { display: flex !important; align-items: center; gap: .55rem; margin-bottom: .6rem; color: #fff; font-weight: 700; }
.footer-service-parent span { display: grid; width: 1.8rem; height: 1.8rem; place-items: center; border-radius: .45rem; color: #73bff0; background: rgba(115,191,240,.09); }
.footer-service-parent svg { width: 1rem; height: 1rem; }
.footer-service-group ul { display: grid; gap: .28rem; }
.footer-service-group li { min-width: 0; }
.footer-service-group li a { color: #aab3ac; font-size: .7rem; line-height: 1.42; }
.footer-tools-strip { display: grid; grid-template-columns: auto minmax(0,1fr); align-items: start; gap: .8rem 1.2rem; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid rgba(255,255,255,.1); }
.footer-tools-strip__title { display: flex !important; align-items: center; gap: .5rem; color: #fff; font-weight: 700; white-space: nowrap; }
.footer-tools-strip__title span { display: grid; width: 1.8rem; height: 1.8rem; place-items: center; border-radius: .45rem; color: #73bff0; background: rgba(115,191,240,.09); }
.footer-tools-strip__title svg { width: 1rem; height: 1rem; }
.footer-tools-strip ul { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: .35rem .8rem; }
.footer-tools-strip li { min-width: 0; }
.footer-tools-strip li a { color: #aab3ac; font-size: .7rem; line-height: 1.42; }
.site-footer__bottom { display: flex; justify-content: space-between; gap: 1rem; padding-top: .8rem; padding-bottom: .95rem; border-top: 1px solid rgba(255,255,255,.1); color: #98a099; font-size: .67rem; }

/* Native visual editor variants. */
.ivn-system-cursor, .ivn-system-cursor * { cursor: auto !important; }
.ivn-system-cursor a, .ivn-system-cursor button, .ivn-system-cursor label[for] { cursor: pointer !important; }
.ivn-no-grain::before { display: none; }
.ivn-hide-header-logo .brand__symbol { display: none; }
.ivn-header-solid .site-header__inner::before { background: var(--paper); backdrop-filter: none; }
.ivn-header-minimal .site-header__inner::before { border-color: transparent; background: transparent; box-shadow: none; backdrop-filter: none; }
.ivn-hide-footer-decorations .site-footer::before, .ivn-hide-footer-decorations .site-footer::after { display: none; }
.ivn-buttons-rounded .button { border-radius: .72rem; }
.ivn-buttons-square .button { border-radius: 0; }
.ivn-icons-circle :is(.proof-item__icon,.service-row__icon,.service-mini__icon,.service-category__icon,.resume-item-icon) { border-radius: 50%; }
.ivn-icons-square :is(.proof-item__icon,.service-row__icon,.service-mini__icon,.service-category__icon,.resume-item-icon) { border-radius: 0; }
.ivn-icons-none :is(.proof-item__icon,.service-row__icon,.service-mini__icon,.service-category__icon,.resume-item-icon) { border-color: transparent; background: transparent; }
.ivn-footer-solid .site-footer { background: #202622; }
.ivn-footer-light .site-footer { color: var(--ink); background: var(--paper); border-color: var(--line); }
.ivn-footer-light .site-footer p, .ivn-footer-light .site-footer__bottom { color: var(--muted); }
.ivn-footer-light .site-footer__bottom { border-color: var(--line); }
.ivn-footer-minimal .site-footer { color: var(--ink); background: transparent; border-color: var(--line); box-shadow: none; }
.ivn-footer-minimal .site-footer::before, .ivn-footer-minimal .site-footer::after { display: none; }
.ivn-footer-minimal .site-footer p, .ivn-footer-minimal .site-footer__bottom { color: var(--muted); }
.ivn-footer-minimal .site-footer__bottom { border-color: var(--line); }
.ivn-hide-decorations :is(.hero,.services,.selected-work,.contact-band,.page-hero,.site-footer)::before,
.ivn-hide-decorations :is(.hero,.services,.selected-work,.contact-band,.page-hero,.site-footer)::after { display: none; }
.ivn-hide-service-numbers .service-category__primary-link { grid-template-columns: 1fr auto; }
.ivn-hide-service-icons .service-category__primary-link { grid-template-columns: 3.2rem 1fr; }
.ivn-hide-service-numbers.ivn-hide-service-icons .service-category__primary-link { grid-template-columns: 1fr; }
.ivn-hide-service-icons .service-mini { grid-template-columns: 1fr; }
.ivn-hide-resume-icons .resume-item-icon { display: none; }
.ivn-motion-soft *, .ivn-motion-soft *::before, .ivn-motion-soft *::after { animation-duration: 12s !important; transition-duration: .15s !important; }
.ivn-motion-off *, .ivn-motion-off *::before, .ivn-motion-off *::after { animation: none !important; transition: none !important; }
.ivn-motion-off .reveal { opacity: 1; transform: none; }
.split-section, .services, .selected-work, .latest, .contact-band, .page-hero, .article-hero, .page-content, .article-layout, .service-category, .resume-layout { box-shadow: 0 15px 45px rgba(38,54,66,var(--visual-shadow,.06)); }

body.blog .site-main > .section-shell:not(.page-hero):not(.site-breadcrumb), body.post-type-archive-portfolio .site-main > .section-shell:not(.page-hero):not(.site-breadcrumb) { margin-bottom: var(--space); padding-top: clamp(2rem,4vw,3rem); padding-bottom: clamp(2rem,4vw,3rem); border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); box-shadow: 0 15px 45px rgba(38,54,66,.06); }

.reveal { opacity: 0; transform: translateY(1.5rem); transition: opacity .7s ease,transform .7s ease; }
.reveal.is-visible { opacity: 1; transform: none; }
@keyframes pulse { 0%,100% { box-shadow: 0 0 0 .2rem rgba(93,143,101,.12); } 50% { box-shadow: 0 0 0 .45rem rgba(93,143,101,0); } }
@keyframes drift { 0%,100% { transform: translate3d(0,0,0); } 50% { transform: translate3d(-1rem,1rem,0); } }
@keyframes orbit { to { transform: rotate(360deg); } }
@keyframes float { 0%,100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-.55rem) rotate(2deg); } }
@keyframes route-dash { to { stroke-dashoffset: -130; } }

@media (max-width: 980px) {
  .hero { grid-template-columns: 55% 45%; }
  .hero__portrait, .hero__copy { min-height: 430px; }
  .hero__copy { padding-left: 1rem; }
  h1 { font-size: clamp(3rem,6.6vw,4.7rem); }
  .post-grid { grid-template-columns: repeat(2,1fr); }
  .post-grid .post-card { grid-column: span 1; }
  .post-grid .post-card:last-child:nth-child(odd) { grid-column: 1 / -1; }
  .site-footer__inner { grid-template-columns: 1fr auto; }
  .footer-services__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .footer-tools-strip { grid-template-columns: 1fr; }
  .footer-tools-strip ul { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .article-hero { grid-template-columns: minmax(10rem,.3fr) minmax(0,1fr); gap: 2rem; }
  .article-hero--post { display: block; }
  .article-hero h1 { font-size: clamp(2.1rem,4.8vw,3.15rem); }
  .project-hero h1 { max-width: none; font-size: clamp(1.9rem,3.6vw,2.5rem); }
  .article-layout { grid-template-columns: minmax(0,1fr) 220px; gap: 2.5rem; }
}

@media (max-width: 780px) {
  .site-header__actions { margin-right: .35rem; }
  .nav-toggle { display: block; position: relative; z-index: 4; margin-right: 0; }
  .primary-nav { position: absolute; top: 4.5rem; right: var(--pad); left: var(--pad); display: none; padding: 1rem; border: 1px solid var(--line); border-radius: 1rem; background: var(--paper); box-shadow: 0 18px 45px rgba(32,37,32,.12); }
  .nav-open .primary-nav { display: block; }
  .primary-nav ul { display: grid; gap: 0; padding: 0; }
  .primary-nav a { display: block; padding: .75rem; }
  .nav-open .nav-toggle > span:first-child { transform: translateY(.2rem) rotate(45deg); }
  .nav-open .nav-toggle > span:nth-child(2) { transform: translateY(-.2rem) rotate(-45deg); }
  .hero { grid-template-columns: 1fr; grid-template-rows: 480px 500px auto; min-height: 0; padding-top: 2rem; background: var(--paper); }
  .hero__portrait { min-height: 500px; order: 2; margin-inline: calc(-1 * var(--pad)); background: var(--green-pale); }
  .hero__copy { min-height: 480px; order: 1; padding: 2rem 1rem 3rem; }
  .hero__proof { position: relative; left: auto; bottom: auto; grid-column: 1; order: 3; width: auto; margin: 0 calc(-1 * var(--pad)); border-width: 1px 0 0; border-radius: 0; box-shadow: none; }
  .hero__proof > p { display: none; }
  body::before { display: none; }
  .site-header__inner::before, .hero__proof, .intro > div:first-child { backdrop-filter: none; }
  .split-section { grid-template-columns: 1fr; gap: 2.5rem; }
  .intro { background: radial-gradient(ellipse at 50% 0,#dff1fc 0,var(--green-pale) 30%,rgba(247,250,252,.96) 66%,var(--paper) 100%); }
  .intro .prose { padding-left: 0; border-left: 0; }
  .intro .prose p:first-child::before { display: none; }
  .split-section h2 { max-width: 12ch; }
  .project-grid, .contact-layout, .article-layout { grid-template-columns: 1fr; }
  .contact-band { grid-template-columns: 1fr; }
  .contact-band__visual { min-height: 13rem; }
  .project-card:nth-child(even) { margin-top: 0; }
  .article-aside { position: static; }
  .article-hero { grid-template-columns: 1fr; gap: 1.8rem; align-items: start; }
  .article-hero--post { display: block; }
  .article-hero__meta-column { display: grid; grid-template-columns: 1fr auto; gap: .8rem 1.5rem; padding-right: 0; padding-bottom: 1.5rem; border-right: 0; border-bottom: 1px solid var(--line); }
  .article-hero__meta-column .back-link { grid-column: 1 / -1; margin-bottom: .8rem; }
  .article-hero__meta-column .eyebrow { align-self: center; margin: 0; }
  .article-hero .post-meta { align-self: center; justify-content: flex-end; margin: 0; }
  .article-categories { grid-column: 1 / -1; }
  .project-hero { display: block; }
  .project-hero .article-hero__meta-column { display: flex; padding-bottom: 1rem; }
  .project-hero .article-hero__heading { margin-top: 1.5rem; }
  .project-hero h1 { max-width: 100%; }
  .project-hero .article-deck { margin-top: 1rem; }
  .project-hero .project-facts { margin-top: 1.2rem; }
  .article-content { max-width: none; margin: 0; }
  .article-aside { display: grid; grid-template-columns: auto 1fr; column-gap: 1rem; }
  .article-aside__icon { grid-row: span 2; }
  .article-aside .eyebrow, .article-aside h3 { align-self: center; }
  .article-aside p, .article-aside .text-link { grid-column: 1 / -1; }
  .project-aside .project-summary, .project-aside__button { grid-column: 1 / -1; }
  .service-detail { grid-template-columns: 3rem 1fr auto; }
  .resume-layout { grid-template-columns: 1fr; }
  .resume-profile { position: static; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 1rem; }
  .resume-profile p { margin: 0; }
  .transliterator-tool__heading, .transliteration-reference__intro { grid-template-columns: 1fr; align-items: start; gap: 1rem; }
  .transliterator-fields { grid-template-columns: 1fr; }
  .transliteration-alphabet { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .transliteration-rules { grid-template-columns: 1fr; }
  .transliteration-rules article { min-height: 0; }
  .transliteration-examples { grid-template-columns: 1fr; }
  .tools-grid { grid-template-columns: 1fr; }
  .page-hero__visual-icon { top: 1rem; right: 1rem; width: 3.2rem; height: 3.2rem; transform: none; }
  .page-hero__visual-icon svg { width: 1.45rem; height: 1.45rem; }
}

@media (max-width: 560px) {
  :root { --pad: 1rem; --space: 4.3rem; --radius: 1.05rem; }
  body { font-size: .95rem; }
  .site-header { padding-top: .5rem; }
  .site-header__inner { min-height: 3.8rem; }
  .brand { gap: .55rem; padding-left: .75rem; }
  .brand__symbol { width: 1.9rem; height: 1.9rem; }
  .brand__name { font-size: 1.15rem; }
  .brand__name small { font-size: .46rem; }
  .theme-toggle { width: 2.2rem; height: 2.2rem; }
	.not-found { min-height: 56vh; padding-top: 3rem; padding-bottom: 3rem; }
	.not-found h1 { max-width: 100%; font-size: clamp(2.2rem,10.5vw,3.15rem); line-height: 1.08; }
	.not-found__text { max-width: 34rem; font-size: .98rem; }
  h1 { font-size: clamp(2.55rem,12vw,3.7rem); }
  .page-hero { margin-top: .55rem; margin-bottom: .9rem; padding-top: 1.75rem; padding-bottom: 1.9rem; }
  .page-hero h1 { max-width: 100%; font-size: clamp(1.9rem,8.5vw,2.5rem); line-height: 1.1; }
  .page-hero > p:last-child { margin-top: .75rem; font-size: .96rem; }
  .article-hero { padding-top: 1.7rem; padding-bottom: 2rem; }
  .article-hero h1 { max-width: 100%; font-size: clamp(2rem,9vw,2.75rem); line-height: 1.08; }
	.article-hero--post { margin-top: .35rem; margin-bottom: .75rem; padding-top: 1.25rem; padding-bottom: 1.4rem; }
	.article-hero--post > .back-link { margin-bottom: 1rem; }
	.article-hero--post .article-hero__heading { padding-right: 2.7rem; }
	.article-hero--post h1 { font-size: clamp(1.85rem,8vw,2.4rem); }
	.article-hero__details { align-items: flex-start; flex-direction: column; gap: .55rem; margin-top: .85rem; }
	.article-hero--post .article-deck { margin-top: .75rem; }
  .article-hero__meta-column { grid-template-columns: 1fr; }
  .article-hero .post-meta { justify-content: flex-start; }
  .project-hero .article-hero__meta-column { align-items: flex-start; flex-direction: column; gap: .75rem; }
  .project-hero .article-hero__meta-column .eyebrow { text-align: left; }
  .project-hero h1 { max-width: 100%; font-size: clamp(1.85rem,7.2vw,2.45rem); line-height: 1.1; text-wrap: pretty; overflow-wrap: normal; }
	.site-breadcrumb { min-height: 3.25rem; padding-top: .7rem; padding-bottom: .7rem; }
	.site-breadcrumb ol { gap: .3rem .45rem; font-size: .64rem; }
	.site-breadcrumb li { flex: 0 0 auto; gap: .45rem; }
	.site-breadcrumb li:last-child { flex: 1 1 auto; }
	.site-breadcrumb [aria-current="page"] { max-width: 100%; }
  .article-cover { padding: .45rem; }
  .article-cover img { max-height: clamp(15rem,62vw,24rem); border-radius: .8rem; }
  .article-layout { gap: 2.8rem; padding-top: 2rem; padding-bottom: 2rem; }
  .article-content { font-size: .98rem; line-height: 1.76; }
  .article-content h2 { margin-top: 1.25em; font-size: clamp(1.65rem,7.2vw,2.2rem); }
	.article-content h3 { margin-top: 1.2em; }
  .article-navigation { grid-template-columns: 1fr; }
	.article-navigation__item--previous, .article-navigation__item--next { grid-column: 1; }
	.article-navigation__item:empty { display: none; }
  .article-navigation__item--next { text-align: left; }
  .article-navigation__item--next strong { margin-left: 0; }
  h2 { font-size: clamp(2.05rem,10vw,3.15rem); }
  .hero { grid-template-rows: 460px 430px auto; padding-top: 1rem; }
  .hero__copy { min-height: 460px; padding: 1.5rem .45rem 2.5rem; }
  .hero__copy::after { display: none; }
  .hero__portrait { min-height: 430px; }
  .skill-float { width: 2.4rem; height: 2.4rem; }
  .portrait-skills { right: .65rem; bottom: .65rem; }
  .hero__proof { min-height: 8.25rem; align-items: stretch; padding: .8rem .7rem .9rem; }
  .hero__proof .proof-item { min-width: 0; flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: .45rem; padding: .35rem .55rem; }
  .proof-item__icon { width: 2.15rem; height: 2.15rem; }
  .proof-item__icon svg { width: 1.05rem; height: 1.05rem; }
  .proof-item > span:last-child { width: 100%; }
  .hero__proof strong { font-size: 1.55rem; }
  .hero__proof small { max-width: 10ch; margin-top: .3rem; font-size: .56rem; line-height: 1.25; overflow-wrap: normal; hyphens: none; }
  .hero__actions { align-items: flex-start; flex-direction: column; }
  .section-heading { align-items: flex-start; flex-direction: column; }
  .service-row { grid-template-columns: 2rem 2.6rem 1fr auto; gap: .75rem; min-height: 7rem; padding-inline: 0; }
  .service-row__icon { width: 2.6rem; height: 2.6rem; }
  .service-row small { display: none; }
  .project-grid, .post-grid { grid-template-columns: 1fr; }
  .post-grid .post-card, .post-grid .post-card:last-child:nth-child(odd) { grid-column: auto; }
  .contact-band { padding: 2.5rem 1.5rem; }
  .contact-band__visual { min-height: 11.5rem; }
  .service-detail { grid-template-columns: 2rem 1fr; }
  .service-detail .round-link { display: none; }
  .form-grid { grid-template-columns: 1fr; }
  .form-field--full { grid-column: auto; }
  .service-category__primary-link { grid-template-columns: 2rem 1fr; background: var(--paper); }
  .service-category__icon { display: none; }
  .service-mini-grid, .resume-content ul { grid-template-columns: 1fr; }
  .service-mini:nth-child(odd) { border-right: 0; }
  .service-mini:nth-last-child(2):nth-child(odd) { border-bottom: 1px solid var(--line); }
  .service-mini { min-height: 8.5rem; }
  .resume-profile { grid-template-columns: auto 1fr; }
  .resume-profile .button { grid-column: 1 / -1; }
  .transliterator-hero { padding-right: 4.2rem; }
  .transliterator-tool, .transliteration-reference { border-radius: var(--radius); }
  .transliterator-field textarea { min-height: 11rem; }
  .transliterator-actions { align-items: stretch; flex-direction: column; }
  .transliterator-actions .button, .transliterator-clear { width: 100%; }
  .transliterator-status { width: 100%; flex-basis: auto; text-align: left; }
  .transliteration-alphabet { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .transliteration-letter { min-height: 4.6rem; }
  .transliteration-examples dl { grid-template-columns: 1fr; }
  .tool-card { min-height: 0; grid-template-columns: 2.8rem minmax(0,1fr) auto; padding: 1.15rem; }
  .tool-card__number { display: none; }
  .tool-card__icon { width: 2.8rem; height: 2.8rem; }
  .page-template-page-instrument .site-breadcrumb, .page-template-page-transliteratsia .site-breadcrumb { min-height: 2.75rem; padding-top: .4rem; padding-bottom: .4rem; }
  .tool-page-hero { margin-top: .2rem; margin-bottom: .65rem; padding-top: 1.2rem; padding-right: 4.2rem; padding-bottom: 1.3rem; }
  .tool-page-hero h1 { font-size: clamp(1.82rem,8vw,2.35rem); }
  .tool-page-hero > p:not(.eyebrow) { margin-top: .65rem; font-size: .92rem; line-height: 1.58; }
  .tool-panel__heading, .tool-form, .schema-fields, .preview-grid, .tool-checks, .tool-notes, .schema-builder, .schema-repeater__row, .tool-faq, .preview-loader { grid-template-columns: 1fr; }
  .tool-field--full, .schema-fields, .tool-form > .button, .tool-form > .text-link { grid-column: auto; }
  .tool-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .tool-score { grid-template-columns: 1fr; align-items: start; }
  .tool-score > strong { text-align: left; }
  .schema-live { position: relative; top: auto; }
  .schema-live pre { min-height: 18rem; max-height: 30rem; }
  .preview-loader .button { width: 100%; }
  .site-footer__inner { grid-template-columns: 1fr; align-items: start; }
  .footer-intro, .footer-navigation, .footer-contact, .footer-services { grid-column: 1; }
  .footer-intro, .footer-navigation, .footer-contact, .footer-services { grid-row: auto; }
  .footer-contact { justify-content: flex-start; text-align: left; }
  .footer-contact .footer-heading { text-align: left; }
  .footer-navigation { display: block; padding-block: .8rem; }
  .footer-navigation .footer-heading { margin-bottom: .65rem !important; }
  .footer-menu { gap: .4rem 1rem; }
  .footer-services__grid { grid-template-columns: 1fr; }
  .footer-tools-strip { display: block; padding: .85rem .9rem; border: 1px solid rgba(255,255,255,.075); border-radius: .9rem; background: rgba(255,255,255,.025); }
  .footer-tools-strip__title { margin-bottom: .7rem; }
  .footer-service-group ul, .footer-tools-strip ul { gap: 0; }
  .footer-tools-strip ul { display: grid; grid-template-columns: 1fr; grid-template-rows: none; grid-auto-flow: row; grid-auto-columns: auto; overflow: visible; padding-bottom: 0; }
  .footer-tools-strip li { width: 100%; }
  .footer-service-group li a, .footer-tools-strip li a { min-height: 2.5rem; display: flex !important; align-items: center; padding: .3rem 0; font-size: .74rem; line-height: 1.35; }
  .footer-tools-strip li a { border: 0; border-radius: 0; color: #aab3ac; background: transparent; }
  .footer-tools-strip li a:hover { color: #73bff0; background: transparent; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}
