/* ==========================================================================
   Ariya Obsidian – main stylesheet
   Logical properties (inline-start / inline-end) are used throughout so the
   layout mirrors automatically between RTL (Persian) and LTR.
   ========================================================================== */

:root {
	--ao-bg: #e7e5e0;
	--ao-ink: #0d0d0d;
	--ao-muted: #8c8a86;
	--ao-hero-text: #0d0d0d;
	--ao-hero-muted: #6f6c67;
	--ao-hero-bg: #ebe8e3;
	--ao-menu-bg: #e7e5e0;
	--ao-menu-ink: #0d0d0d;
	--ao-card-bg: #efece6;
	--ao-card-ink: #111;
	--ao-overlay-rgb: 11, 12, 14;
	--ao-overlay-opacity: 0;
	--ao-overlay-gradient: 0;
	--ao-focal: 50% 50%;
	--ao-focal-m: 50% 50%;
	--ao-headline-tracking: -0.03em;
	--ao-headline-weight: 900;
	--ao-headline-top: 9vh;

	--ao-font: "Vazirmatn", "Vazir", Tahoma, "Segoe UI", system-ui, -apple-system, sans-serif;
	--ao-pad: clamp(16px, 3.4vw, 50px);
	--ao-label-size: 11px;
	--ao-label-track: .14em;
	--ao-ease: cubic-bezier(.22, .8, .22, 1);
	--ao-ease-io: cubic-bezier(.77, 0, .18, 1);
	--ao-header-h: 84px;
}

html[dir="rtl"] {
	/* Persian script: no letter-spacing (it breaks letter joins), slightly larger small text. */
	--ao-label-size: 12px;
	--ao-label-track: 0;
}

*,
*::before,
*::after { box-sizing: border-box; }

html {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
	scroll-behavior: smooth;
}

body {
	margin: 0;
	background: var(--ao-bg);
	color: var(--ao-ink);
	font-family: var(--ao-font);
	font-size: 16px;
	line-height: 1.85;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: clip;
	text-rendering: optimizeLegibility;
}

img,
video { max-width: 100%; height: auto; display: block; }

a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: .25em; }
a:hover { text-decoration-thickness: 2px; }

:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }

button { font: inherit; color: inherit; }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0);
	white-space: nowrap; border: 0;
}

.ao-skip {
	position: fixed;
	inset-block-start: 8px;
	inset-inline-start: 8px;
	z-index: 1000;
	padding: 10px 16px;
	background: var(--ao-ink);
	color: var(--ao-bg);
	transform: translateY(-200%);
	transition: transform .2s;
}
.ao-skip:focus { transform: none; }

/* Small editorial label type used in the header, intro and story labels. */
.ao-header__info,
.ao-hero__intro-text,
.ao-story__label,
.ao-meta,
.ao-page-header__kicker {
	font-size: var(--ao-label-size);
	letter-spacing: var(--ao-label-track);
	text-transform: uppercase;
	line-height: 1.55;
}

/* --------------------------------------------------------------------------
   Header
   -------------------------------------------------------------------------- */

.ao-header {
	position: fixed;
	inset-block-start: 0;
	inset-inline: 0;
	z-index: 50;
	display: grid;
	grid-template-columns: 1fr 1fr 1fr auto;
	align-items: start;
	gap: 16px;
	padding: calc(var(--ao-pad) * .6) var(--ao-pad);
	color: var(--ao-ink);
	transition: color .4s var(--ao-ease), background-color .4s var(--ao-ease), backdrop-filter .4s;
}

.has-hero .ao-header { color: var(--ao-hero-text); }
.has-hero .ao-header .ao-header__sub { color: var(--ao-hero-muted); }

.has-hero.is-past-hero .ao-header,
.no-hero.is-scrolled .ao-header {
	color: var(--ao-ink);
	background: color-mix(in srgb, var(--ao-bg) 82%, transparent);
	-webkit-backdrop-filter: blur(14px);
	backdrop-filter: blur(14px);
}
.has-hero.is-past-hero .ao-header .ao-header__sub { color: var(--ao-muted); }

.admin-bar .ao-header { inset-block-start: var(--wp-admin--admin-bar--height, 32px); }

.ao-brand {
	font-size: var(--ao-label-size);
	letter-spacing: var(--ao-label-track);
	text-transform: uppercase;
	text-decoration: none;
	font-weight: 500;
	line-height: 1.55;
	white-space: nowrap;
}
.ao-brand--logo { display: inline-block; }
.ao-brand__logo { max-height: 34px; width: auto; }
.has-hero:not(.is-past-hero) .ao-header .ao-brand__logo { filter: none; }

.ao-header__info {
	margin: 0;
	display: flex;
	flex-direction: column;
	text-align: center;
	font-weight: 500;
}
.ao-header__sub { color: var(--ao-muted); font-weight: 400; }

.ao-burger {
	position: relative;
	width: 44px;
	height: 32px;
	margin-block-start: -6px;
	margin-inline-end: -8px;
	padding: 8px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-end;
	gap: 5px;
	background: none;
	border: 0;
	cursor: pointer;
}
.ao-burger__line {
	display: block;
	height: 1.5px;
	width: 26px;
	background: currentColor;
	transition: width .35s var(--ao-ease), transform .35s var(--ao-ease);
}
.ao-burger__line:nth-child(2) { width: 19px; }
.ao-burger__line:nth-child(3) { width: 23px; }
.ao-burger:hover .ao-burger__line { width: 26px; }

/* --------------------------------------------------------------------------
   Load-in reveal (header items, intro, button)
   -------------------------------------------------------------------------- */

.ao-reveal {
	opacity: 0;
	transform: translateY(14px);
	transition: opacity .9s var(--ao-ease), transform .9s var(--ao-ease);
	transition-delay: calc(var(--d, 0) * 90ms + 250ms);
}
.is-loaded .ao-reveal { opacity: 1; transform: none; }
.no-js .ao-reveal { opacity: 1; transform: none; }

/* --------------------------------------------------------------------------
   Hero
   -------------------------------------------------------------------------- */

.ao-hero {
	--p: 0;          /* overall scroll progress through the hero, 0 → 1 */
	position: relative;
	height: 100vh;
	height: 100svh;
	color: var(--ao-hero-text);
}
.ao-hero--story,
.ao-hero--scroll {
	height: calc(100vh + 90vh * max(var(--ao-steps), 1) + 40vh);
	height: calc(100svh + 90svh * max(var(--ao-steps), 1) + 40svh);
}

.ao-hero__stage {
	position: sticky;
	top: 0;
	height: 100vh;
	height: 100svh;
	overflow: hidden;
	background: var(--ao-hero-bg);
	isolation: isolate;
}

.ao-hero__media {
	position: absolute;
	inset: 0;
	z-index: 0;
	transform-origin: 50% 45%;
}
.ao-hero--zoom .ao-hero__media { transform: scale(calc(1 + var(--p) * .14)); will-change: transform; }

.ao-hero__video,
.ao-hero__canvas,
.ao-hero__poster,
.ao-hero__fallback,
.ao-hero__fg-video,
.ao-hero__fg-image {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	object-position: var(--ao-focal);
}
.ao-hero--fit-contain .ao-hero__video,
.ao-hero--fit-contain .ao-hero__canvas,
.ao-hero--fit-contain .ao-hero__poster,
.ao-hero--fit-contain .ao-hero__fallback,
.ao-hero--fit-contain .ao-hero__fg-video,
.ao-hero--fit-contain .ao-hero__fg-image { object-fit: contain; }

/* Soft edges when the whole video is shown: the mask is computed in main.js from the real video box. */

.ao-hero__video { opacity: 0; transition: opacity .8s ease; }
.ao-hero__video.is-ready { opacity: 1; }
.ao-hero__canvas { opacity: 0; transition: opacity .6s ease; }
.ao-hero__canvas.is-ready { opacity: 1; }
.ao-hero.has-scrub-canvas .ao-hero__video { opacity: 0 !important; }
.ao-hero__fallback { display: none; }
.ao-hero.is-fallback .ao-hero__fallback { display: block; }
.ao-hero.is-fallback .ao-hero__poster,
.ao-hero.is-fallback .ao-hero__canvas,
.ao-hero.is-fallback .ao-hero__video { display: none; }

.ao-hero__overlay {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(180deg,
			rgba(var(--ao-overlay-rgb), var(--ao-overlay-gradient)) 0%,
			rgba(var(--ao-overlay-rgb), 0) 34%,
			rgba(var(--ao-overlay-rgb), 0) 62%,
			rgba(var(--ao-overlay-rgb), var(--ao-overlay-gradient)) 100%),
		rgba(var(--ao-overlay-rgb), var(--ao-overlay-opacity));
	pointer-events: none;
}

/* Headline ------------------------------------------------------------------ */

.ao-headline {
	position: absolute;
	z-index: 3;
	inset-inline: calc(var(--ao-pad) * .4);
	top: var(--ao-headline-top);
	margin: 0;
	font-family: var(--ao-font);
	font-weight: var(--ao-headline-weight);
	letter-spacing: var(--ao-headline-tracking);
	line-height: .9;
	font-size: 13vw; /* fallback before the fit script runs */
	text-align: center;
	white-space: nowrap;
	color: var(--ao-hero-text);
	pointer-events: none;
	transform: translateY(calc(var(--p) * -55vh));
	opacity: calc(1 - var(--p) * 5);
	font-kerning: normal;
}
.ao-hero--headline-behind .ao-headline { z-index: 2; }
.ao-hero__fg { position: absolute; inset: 0; z-index: 3; pointer-events: none; }
.ao-hero--headline-front .ao-hero__fg { z-index: 2; }
.ao-hero--zoom .ao-hero__fg { transform: scale(calc(1 + var(--p) * .14)); transform-origin: 50% 45%; }

.ao-headline__inner {
	display: block;
	opacity: 0;
	transform: translateY(18%);
	filter: blur(6px);
	transition: opacity 1.3s var(--ao-ease), transform 1.3s var(--ao-ease), filter 1.3s var(--ao-ease);
	transition-delay: .15s;
}
.is-loaded .ao-headline__inner,
.no-js .ao-headline__inner { opacity: 1; transform: none; filter: none; }

.ao-headline__part { display: inline-block; }
.ao-headline.is-split .ao-headline__part { display: block; }
.ao-headline.is-split .ao-headline__gap { display: none; }

/* Intro + CTA ------------------------------------------------------------------ */

.ao-hero__intro {
	position: absolute;
	z-index: 4;
	inset-block-end: var(--ao-pad);
	inset-inline-start: var(--ao-pad);
	max-width: min(360px, 70vw);
	opacity: calc(1 - var(--p) * 6);
}
.ao-hero__intro-text { margin: 0 0 14px; font-weight: 500; }
html[dir="rtl"] .ao-hero__intro-text { font-size: 13px; line-height: 1.9; }

.ao-cta {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding-block: 6px;
	font-size: 13px;
	font-weight: 600;
	text-decoration: none;
	border-block-end: 1px solid currentColor;
}
.ao-cta__arrow {
	position: relative;
	width: 18px;
	height: 1px;
	background: currentColor;
	transition: transform .4s var(--ao-ease);
}
.ao-cta__arrow::after {
	content: "";
	position: absolute;
	inset-block-start: -3px;
	inset-inline-end: 0;
	width: 7px;
	height: 7px;
	border-block-start: 1px solid currentColor;
	border-inline-end: 1px solid currentColor;
	transform: rotate(45deg);
}
html[dir="rtl"] .ao-cta__arrow::after { transform: rotate(-45deg); }
.ao-cta:hover .ao-cta__arrow { transform: translateX(6px); }
html[dir="rtl"] .ao-cta:hover .ao-cta__arrow { transform: translateX(-6px); }

/* Scroll story ----------------------------------------------------------------- */

.ao-story {
	--s: 0;          /* local progress for this block: 0 → 1 while it passes */
	--v: 0;          /* visibility 0 → 1 */
	position: absolute;
	z-index: 4;
	top: 50%;
	margin: 0;
	opacity: var(--v);
	transform: translateY(calc(-50% + (0.5 - var(--s)) * 70vh));
	visibility: hidden;
	will-change: transform, opacity;
}
.ao-story.is-active { visibility: visible; }
.ao-story--start { inset-inline-start: var(--ao-pad); }
.ao-story--end { inset-inline-end: var(--ao-pad); }

.ao-story__label { margin: 0 0 14px; opacity: .7; }
.ao-story--plain,
.ao-story--quote { text-shadow: 0 1px 24px rgba(var(--ao-overlay-rgb), .55); }
.ao-story__text { margin: 0; }

.ao-story--plain { max-width: min(560px, 80vw); }
.ao-story--plain .ao-story__text {
	font-size: clamp(18px, 1.55vw, 24px);
	line-height: 1.75;
	font-weight: 500;
}

.ao-story--card {
	width: min(440px, calc(100vw - var(--ao-pad) * 2));
	padding: clamp(22px, 2.2vw, 32px);
	background: color-mix(in srgb, var(--ao-card-bg) 94%, transparent);
	color: var(--ao-card-ink);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
}
.ao-story--card .ao-story__text { font-size: 15px; line-height: 1.95; }

.ao-story--quote { max-width: min(520px, 82vw); }
.ao-story--quote .ao-story__text {
	font-size: clamp(22px, 2.1vw, 32px);
	line-height: 1.6;
	font-weight: 600;
}

/* Pause button ------------------------------------------------------------------ */

.ao-pause {
	position: absolute;
	z-index: 5;
	inset-block-end: var(--ao-pad);
	inset-inline-end: var(--ao-pad);
	width: 42px;
	height: 42px;
	border-radius: 50%;
	border: 1px solid color-mix(in srgb, var(--ao-hero-text) 45%, transparent);
	background: color-mix(in srgb, var(--ao-hero-bg) 25%, transparent);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	display: grid;
	place-items: center;
	cursor: pointer;
	transition: border-color .3s, background-color .3s;
}
.ao-pause[hidden] { display: none; }
.ao-pause:hover { border-color: var(--ao-hero-text); }
.ao-pause__icon {
	width: 10px;
	height: 12px;
	border-inline: 3px solid currentColor;
	box-sizing: border-box;
}
.ao-pause[aria-pressed="true"] .ao-pause__icon {
	width: 0;
	height: 0;
	border: 0;
	border-block: 6px solid transparent;
	border-left: 10px solid currentColor;
	margin-left: 3px;
}

/* --------------------------------------------------------------------------
   Full-screen menu
   -------------------------------------------------------------------------- */

.ao-menu {
	position: fixed;
	inset: 0;
	z-index: 200;
	display: grid;
	grid-template-rows: auto 1fr;
	background: var(--ao-menu-bg);
	color: var(--ao-menu-ink);
	clip-path: inset(0 0 100% 0);
	transition: clip-path .8s var(--ao-ease-io);
	overflow-y: auto;
	overscroll-behavior: contain;
}
.ao-menu[hidden] { display: none; }
.ao-menu.is-open { clip-path: inset(0 0 0 0); }

.admin-bar .ao-menu { inset-block-start: var(--wp-admin--admin-bar--height, 32px); }

.ao-menu__bar {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: calc(var(--ao-pad) * .6) var(--ao-pad);
}

.ao-menu__close {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	background: none;
	border: 0;
	padding: 6px 0;
	cursor: pointer;
	font-size: var(--ao-label-size);
	letter-spacing: var(--ao-label-track);
	text-transform: uppercase;
}
.ao-menu__close-icon {
	position: relative;
	width: 22px;
	height: 22px;
}
.ao-menu__close-icon::before,
.ao-menu__close-icon::after {
	content: "";
	position: absolute;
	inset-inline: 0;
	top: 50%;
	height: 1.5px;
	background: currentColor;
	transform: rotate(45deg);
	transition: transform .5s var(--ao-ease);
}
.ao-menu__close-icon::after { transform: rotate(-45deg); }
.ao-menu__close:hover .ao-menu__close-icon::before { transform: rotate(135deg); }
.ao-menu__close:hover .ao-menu__close-icon::after { transform: rotate(45deg); }

.ao-menu__body {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(220px, 340px);
	align-items: end;
	gap: clamp(24px, 6vw, 120px);
	padding: clamp(24px, 6vh, 80px) var(--ao-pad) var(--ao-pad);
}

.ao-menu__list,
.ao-menu__list .sub-menu {
	list-style: none;
	margin: 0;
	padding: 0;
}
.ao-menu__list { counter-reset: ao-item; }

.ao-menu__list > li {
	counter-increment: ao-item;
	overflow: hidden;
	border-block-start: 1px solid color-mix(in srgb, var(--ao-menu-ink) 14%, transparent);
}
.ao-menu__list > li:last-child { border-block-end: 1px solid color-mix(in srgb, var(--ao-menu-ink) 14%, transparent); }

.ao-menu__list > li > a {
	position: relative;
	display: flex;
	align-items: baseline;
	gap: clamp(14px, 2vw, 30px);
	padding-block: .08em .12em;
	font-size: clamp(34px, min(6vw, 8.2vh), 104px);
	font-weight: 800;
	line-height: 1.15;
	text-decoration: none;
	transform: translateY(105%);
	transition: transform .9s var(--ao-ease), opacity .4s;
	transition-delay: calc(var(--i, 0) * 70ms + 250ms);
}
.ao-menu__list > li > a::before {
	content: counter(ao-item, decimal-leading-zero);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: .1em;
	min-width: 2.4em;
	opacity: .55;
	transform: translateY(-1.2em);
}
html[dir="rtl"] .ao-menu__list > li > a::before { content: counter(ao-item, persian); letter-spacing: 0; font-size: 13px; }
.ao-menu.is-open .ao-menu__list > li > a { transform: none; }

.ao-menu__list:hover > li > a { opacity: .32; }
.ao-menu__list > li > a:hover,
.ao-menu__list > li > a:focus-visible,
.ao-menu__list > li.current-menu-item > a { opacity: 1; }

.ao-menu__list .sub-menu {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 22px;
	padding-block: 0 14px;
	padding-inline-start: calc(2.4em + clamp(14px, 2vw, 30px));
	font-size: 15px;
}
.ao-menu__list .sub-menu a { text-decoration: none; opacity: .75; }
.ao-menu__list .sub-menu a:hover { opacity: 1; text-decoration: underline; }

.ao-menu__aside {
	display: grid;
	gap: 26px;
	font-size: 14px;
	opacity: 0;
	transform: translateY(16px);
	transition: opacity .8s var(--ao-ease) .55s, transform .8s var(--ao-ease) .55s;
}
.ao-menu.is-open .ao-menu__aside { opacity: 1; transform: none; }
.ao-menu__info { margin: 0; color: color-mix(in srgb, var(--ao-menu-ink) 70%, transparent); }
.ao-menu__hint { font-size: 13px; opacity: .6; }
.ao-menu__social-list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 20px; }
.ao-menu__social-list a { text-decoration: none; border-block-end: 1px solid currentColor; }

body.ao-menu-open { overflow: hidden; }

/* --------------------------------------------------------------------------
   Search form
   -------------------------------------------------------------------------- */

.ao-search {
	display: flex;
	align-items: stretch;
	border-block-end: 1px solid currentColor;
	max-width: 520px;
}
.ao-search__input {
	flex: 1;
	min-width: 0;
	padding: 10px 0;
	border: 0;
	background: transparent;
	color: inherit;
	font: inherit;
	font-size: 15px;
}
.ao-search__input:focus { outline: none; }
.ao-search__submit {
	border: 0;
	background: none;
	padding: 10px 0 10px 4px;
	cursor: pointer;
	font-size: 13px;
	font-weight: 600;
}

/* --------------------------------------------------------------------------
   Content pages
   -------------------------------------------------------------------------- */

.ao-main {
	scroll-margin-top: var(--ao-header-h);
	display: block;
	width: min(1240px, 100%);
	margin-inline: auto;
	padding: calc(var(--ao-header-h) + clamp(32px, 6vw, 90px)) var(--ao-pad) clamp(60px, 8vw, 120px);
	outline: none;
}
.ao-main--front { padding-block-start: clamp(60px, 8vw, 120px); }
.no-hero .ao-main--front { padding-block-start: calc(var(--ao-header-h) + clamp(32px, 6vw, 90px)); }
.ao-main--front:empty { padding: 0; }

.ao-page-header { margin-block-end: clamp(32px, 5vw, 70px); }
.ao-page-header__title,
.ao-entry__title {
	margin: 0 0 .3em;
	font-size: clamp(40px, 7.5vw, 120px);
	font-weight: 900;
	line-height: 1.05;
	overflow-wrap: anywhere;
}
.ao-page-header__kicker { margin: 0 0 8px; color: var(--ao-muted); }
.ao-page-header__desc { max-width: 62ch; color: var(--ao-muted); }

.ao-entry { max-width: 1100px; }
.ao-entry__header { margin-block-end: clamp(28px, 4vw, 56px); }
.ao-entry__media { margin: 0 0 clamp(28px, 4vw, 56px); }
.ao-entry__media img { width: 100%; }

.ao-prose { max-width: 72ch; font-size: 17px; }
.ao-entry--front .ao-prose,
.ao-prose > .alignwide,
.ao-prose > .alignfull { max-width: none; }
.ao-prose > * + * { margin-block-start: 1.1em; }
.ao-prose h2, .ao-prose h3, .ao-prose h4 { line-height: 1.3; font-weight: 800; margin-block: 1.8em .6em; }
.ao-prose h2 { font-size: clamp(26px, 3vw, 40px); }
.ao-prose h3 { font-size: clamp(21px, 2.2vw, 28px); }
.ao-prose blockquote {
	margin-inline: 0;
	padding-inline-start: 1.2em;
	border-inline-start: 2px solid var(--ao-ink);
	font-size: 1.2em;
}
.ao-prose img { height: auto; }
.ao-prose .alignfull { margin-inline: calc(var(--ao-pad) * -1); width: calc(100% + var(--ao-pad) * 2); }
.ao-prose .wp-block-button__link {
	background: var(--ao-ink);
	color: var(--ao-bg);
	border-radius: 0;
	padding: .8em 1.6em;
	text-decoration: none;
}
.ao-prose .is-style-outline .wp-block-button__link { background: transparent; color: var(--ao-ink); border: 1px solid currentColor; }
.ao-prose table { border-collapse: collapse; width: 100%; }
.ao-prose th, .ao-prose td { border-block-end: 1px solid color-mix(in srgb, var(--ao-ink) 15%, transparent); padding: .6em; text-align: start; }
.ao-prose code, .ao-prose pre { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .9em; direction: ltr; }
.ao-prose pre { overflow-x: auto; padding: 1em; background: color-mix(in srgb, var(--ao-ink) 6%, transparent); }
.wp-caption-text, figcaption { font-size: 13px; color: var(--ao-muted); }
.alignleft { float: left; margin: .4em 1.4em 1em 0; }
.alignright { float: right; margin: .4em 0 1em 1.4em; }
.aligncenter { margin-inline: auto; }
.sticky, .bypostauthor, .gallery-caption { outline: 0; }

.ao-meta { color: var(--ao-muted); margin: 0 0 8px; }

.ao-list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr));
	gap: clamp(28px, 4vw, 56px) clamp(20px, 3vw, 40px);
}
.ao-card { display: flex; flex-direction: column; gap: 16px; }
.ao-card__media { display: block; overflow: hidden; aspect-ratio: 4 / 5; background: color-mix(in srgb, var(--ao-ink) 6%, transparent); }
.ao-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ao-ease); }
.ao-card:hover .ao-card__media img { transform: scale(1.04); }
.ao-card__title { margin: 0 0 6px; font-size: clamp(20px, 1.8vw, 26px); line-height: 1.4; font-weight: 800; }
.ao-card__title a { text-decoration: none; }
.ao-card__excerpt { color: color-mix(in srgb, var(--ao-ink) 72%, transparent); font-size: 15px; }
.ao-card__excerpt p { margin: 0; }

.ao-pagination,
.navigation.pagination { margin-block-start: clamp(40px, 6vw, 80px); }
.nav-links { display: flex; flex-wrap: wrap; gap: 8px 18px; align-items: center; }
.page-numbers { text-decoration: none; padding: 4px 6px; }
.page-numbers.current { border-block-end: 1px solid currentColor; }
.post-navigation .nav-links { justify-content: space-between; margin-block-start: 40px; }
.post-navigation a { text-decoration: none; display: grid; gap: 4px; font-weight: 700; }

.ao-tags a { display: inline-block; margin-inline-end: 8px; font-size: 13px; }

.ao-empty { display: grid; gap: 20px; }

.ao-main--404 { display: grid; gap: 18px; align-content: center; min-height: 80vh; }
.ao-404__code { margin: 0; font-size: clamp(120px, 30vw, 420px); font-weight: 900; line-height: .85; }
.ao-cta--ink { color: var(--ao-ink); }

/* Comments */
.ao-comments { max-width: 72ch; margin-block-start: 70px; }
.ao-comments__list { list-style: none; padding: 0; }
.ao-comments__list .children { list-style: none; padding-inline-start: 24px; }
.comment-body { padding-block: 18px; border-block-end: 1px solid color-mix(in srgb, var(--ao-ink) 12%, transparent); }
.comment-meta { font-size: 13px; color: var(--ao-muted); }
.comment-form input:not([type="submit"]):not([type="checkbox"]),
.comment-form textarea {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid color-mix(in srgb, var(--ao-ink) 25%, transparent);
	background: transparent;
	font: inherit;
	color: inherit;
}
.comment-form .submit,
.ao-button {
	border: 0;
	background: var(--ao-ink);
	color: var(--ao-bg);
	padding: 12px 26px;
	font-weight: 600;
	cursor: pointer;
}

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */

.ao-footer {
	border-block-start: 1px solid color-mix(in srgb, var(--ao-ink) 14%, transparent);
	padding: clamp(28px, 4vw, 50px) var(--ao-pad);
	font-size: 13px;
}
.ao-footer__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 16px 40px;
}
.ao-footer__list { list-style: none; display: flex; flex-wrap: wrap; gap: 6px 22px; margin: 0; padding: 0; }
.ao-footer__list a { text-decoration: none; }
.ao-footer__list a:hover { text-decoration: underline; }
.ao-footer__text { margin: 0; color: var(--ao-muted); }
.ao-footer__widgets { flex-basis: 100%; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 24px; }
.ao-widget__title { font-size: 13px; margin: 0 0 8px; }

/* --------------------------------------------------------------------------
   Responsive
   -------------------------------------------------------------------------- */

@media (max-width: 900px) {
	.ao-header { grid-template-columns: 1fr 1fr auto; }
	.ao-header__info--col2 { display: none; }
	.ao-menu__body { grid-template-columns: 1fr; align-items: start; }
}

@media (max-width: 640px) {
	:root { --ao-header-h: 64px; }
	.ao-header { grid-template-columns: 1fr auto; }
	.ao-header__info { display: none; }
	.ao-hero__video,
	.ao-hero__canvas,
	.ao-hero__poster,
	.ao-hero__fallback,
	.ao-hero__fg-video,
	.ao-hero__fg-image { object-position: var(--ao-focal-m); }
	.ao-hero__intro { max-width: calc(100vw - var(--ao-pad) * 2 - 56px); }
	.ao-story { inset-inline: var(--ao-pad) !important; }
	.ao-story--card { width: auto; }
	.ao-story--plain .ao-story__text { font-size: 18px; }
	.ao-menu__list > li > a { font-size: clamp(34px, 11vw, 56px); }
}

@media (min-width: 1800px) {
	:root { --ao-label-size: 12px; }
	html[dir="rtl"] { --ao-label-size: 13px; }
}

/* --------------------------------------------------------------------------
   Reduced motion
   -------------------------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*,
	*::before,
	*::after {
		transition-duration: .01ms !important;
		transition-delay: 0s !important;
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
	}
	.ao-hero--zoom .ao-hero__media,
	.ao-hero--zoom .ao-hero__fg { transform: none; }
	.ao-headline__inner { filter: none; }
}
