/* =========================================================================
   QAAB — main stylesheet
   Single-edition AI-art gallery. RTL-first, logical properties throughout.
   ========================================================================= */

/* ---- Fonts (self-hosted Vazirmatn) ------------------------------------- */
@font-face{
  font-family:"Vazirmatn"; font-style:normal; font-weight:400; font-display:swap;
  src:url("../fonts/Vazirmatn-Regular.woff2") format("woff2");
}
@font-face{
  font-family:"Vazirmatn"; font-style:normal; font-weight:500; font-display:swap;
  src:url("../fonts/Vazirmatn-Medium.woff2") format("woff2");
}
@font-face{
  font-family:"Vazirmatn"; font-style:normal; font-weight:700; font-display:swap;
  src:url("../fonts/Vazirmatn-Bold.woff2") format("woff2");
}
@font-face{
  font-family:"Vazirmatn"; font-style:normal; font-weight:900; font-display:swap;
  src:url("../fonts/Vazirmatn-Black.woff2") format("woff2");
}

/* ---- Design tokens ------------------------------------------------------ */
:root{
  /* surfaces — a cool plaster "gallery wall", not a warm cream */
  --wall:#e6e5df;
  --wall-deep:#dedcd4;
  --surface:#f4f3ee;
  --surface-2:#fbfbf8;
  --ink:#17160f;
  --ink-2:#4d4c44;
  --ink-3:#8a887d;
  --line:#d3d1c8;
  --line-strong:#bcbab0;

  /* the single accent — electric ultramarine, used with restraint */
  --accent:#2522e6;
  --accent-ink:#1a18b0;
  --accent-wash:#e7e6fb;

  /* engraved metal plate (echoes the metal frames) */
  --metal-hi:#f1f0eb;
  --metal-lo:#cbcac2;
  --metal-line:#bbb9af;
  --metal-ink:#2c2b24;

  /* type */
  --sans:"Vazirmatn", ui-sans-serif, system-ui, "Segoe UI", Tahoma, sans-serif;
  --mono:ui-monospace, "Cascadia Code", "SFMono-Regular", "Segoe UI Mono", Menlo, monospace;

  /* fluid scale */
  --fs-micro:.72rem;
  --fs-cap:.8rem;
  --fs-sm:.9rem;
  --fs-base:1rem;
  --fs-md:1.125rem;
  --fs-lg:clamp(1.35rem,1.1rem + 1.2vw,1.9rem);
  --fs-xl:clamp(2rem,1.4rem + 3vw,3.4rem);
  --fs-display:clamp(2.6rem,1.4rem + 6vw,6.2rem);

  /* rhythm */
  --gut:clamp(1.1rem,4vw,2.6rem);
  --maxw:1360px;
  --readw:62ch;
  --radius:3px;

  --ease:cubic-bezier(.2,.7,.2,1);
  --shadow-art:0 1px 1px rgba(23,22,15,.05),0 18px 40px -22px rgba(23,22,15,.45);
  --shadow-art-hi:0 2px 2px rgba(23,22,15,.06),0 40px 70px -28px rgba(23,22,15,.55);
  --shadow-pop:0 24px 60px -24px rgba(23,22,15,.5);
}

/* ---- Reset / base ------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  font-family:var(--sans);
  font-size:var(--fs-base);
  line-height:1.7;
  color:var(--ink);
  background:var(--wall);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  font-feature-settings:"ss01" on;
}
img,svg,video{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3,h4{margin:0;line-height:1.15;font-weight:900;letter-spacing:-.01em}
p{margin:0 0 1em}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}
::selection{background:var(--accent);color:#fff}

.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
.container{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gut)}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);white-space:nowrap}
.skip-link{position:fixed;inset-block-start:-100px;inset-inline-start:1rem;z-index:1000;background:var(--ink);color:#fff;padding:.6rem 1rem;border-radius:var(--radius)}
.skip-link:focus{inset-block-start:1rem}

/* shared eyebrow / label */
.eyebrow{
  font-family:var(--mono);
  font-size:var(--fs-micro);
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--ink-3);
}

/* ---- Buttons ------------------------------------------------------------ */
.btn{
  --bg:var(--ink); --fg:#fff;
  display:inline-flex;align-items:center;gap:.5rem;
  padding:.85rem 1.5rem;
  background:var(--bg);color:var(--fg);
  font-weight:700;font-size:var(--fs-sm);
  border:1px solid var(--bg);border-radius:var(--radius);
  cursor:pointer;
  transition:transform .25s var(--ease),background .25s var(--ease),box-shadow .25s var(--ease);
}
.btn:hover{transform:translateY(-2px)}
.btn--accent{--bg:var(--accent)}
.btn--accent:hover{--bg:var(--accent-ink)}
.btn--ghost{--bg:transparent;--fg:var(--ink);border-color:var(--line-strong)}
.btn--ghost:hover{border-color:var(--ink);background:transparent}
.btn--block{display:flex;width:100%;justify-content:center}
.btn[disabled],.btn.is-disabled{opacity:.4;cursor:not-allowed;transform:none}

/* link with growing underline */
.ulink{position:relative;font-weight:500}
.ulink::after{content:"";position:absolute;inset-block-end:-2px;inset-inline:0;height:1.5px;background:currentColor;transform:scaleX(0);transform-origin:inline-start;transition:transform .3s var(--ease)}
.ulink:hover::after{transform:scaleX(1)}

/* ============================ HEADER ===================================== */
.site-header{
  position:sticky;inset-block-start:0;z-index:60;
  background:color-mix(in srgb,var(--wall) 82%,transparent);
  backdrop-filter:saturate(1.1) blur(10px);
  border-block-end:1px solid transparent;
  transition:border-color .3s var(--ease),background .3s var(--ease);
}
.site-header.is-stuck{border-block-end-color:var(--line);background:color-mix(in srgb,var(--wall) 94%,transparent)}
.header-bar{display:flex;align-items:center;gap:1.5rem;min-height:74px}
.brand{display:flex;align-items:baseline;gap:.55rem;margin-inline-end:auto}
.brand__mark{font-weight:900;font-size:1.5rem;letter-spacing:-.02em}
.brand__tag{font-family:var(--mono);font-size:var(--fs-micro);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-3)}

.main-nav{display:flex;align-items:center;gap:1.6rem}
.main-nav a{font-size:var(--fs-sm);font-weight:500;color:var(--ink-2)}
.main-nav a:hover,.main-nav .current-menu-item>a{color:var(--ink)}
.main-nav ul{display:flex;gap:1.6rem;list-style:none;margin:0;padding:0}

.header-actions{display:flex;align-items:center;gap:.4rem}
.icon-btn{
  display:inline-grid;place-items:center;width:42px;height:42px;
  background:transparent;border:1px solid transparent;border-radius:var(--radius);
  color:var(--ink);cursor:pointer;position:relative;transition:background .2s var(--ease)}
.icon-btn:hover{background:var(--surface)}
.icon-btn svg{width:21px;height:21px}
.cart-count{
  position:absolute;inset-block-start:4px;inset-inline-start:4px;
  min-width:18px;height:18px;padding:0 4px;
  display:grid;place-items:center;
  background:var(--accent);color:#fff;border-radius:99px;
  font-size:.62rem;font-weight:700;line-height:1;font-family:var(--mono)}
.cart-count:empty,.cart-count.is-zero{display:none}

.nav-toggle{display:none}

/* ============================ HERO ======================================= */
.hero{padding-block:clamp(3rem,7vw,7rem) clamp(2rem,5vw,4rem)}
.hero__eyebrow{margin-block-end:1.4rem}
.hero__title{
  font-size:var(--fs-display);
  letter-spacing:-.025em;
  line-height:.98;
  max-width:18ch;
}
.hero__title .accent{color:var(--accent)}
.hero__lead{
  margin-block-start:1.6rem;
  max-width:48ch;
  font-size:var(--fs-md);
  color:var(--ink-2);
}
.hero__cta{display:flex;flex-wrap:wrap;gap:.8rem;margin-block-start:2.2rem;align-items:center}
.hero__stats{display:flex;gap:2.4rem;margin-block-start:2.8rem;flex-wrap:wrap}
.stat{display:flex;flex-direction:column;gap:.2rem}
.stat__num{font-family:var(--mono);font-size:1.7rem;font-weight:700;letter-spacing:-.02em}
.stat__label{font-size:var(--fs-cap);color:var(--ink-3)}

/* genre marquee */
.marquee{
  margin-block-start:clamp(2.5rem,5vw,4rem);
  border-block:1px solid var(--line);
  overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
          mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
}
.marquee__track{
  display:flex;gap:0;width:max-content;
  animation:marquee 38s linear infinite;
}
.marquee:hover .marquee__track{animation-play-state:paused}
.marquee__item{
  display:inline-flex;align-items:center;gap:1.4rem;
  padding-block:1rem;padding-inline:1.4rem;
  font-size:clamp(1.1rem,1rem + 1vw,1.7rem);font-weight:700;letter-spacing:-.01em;white-space:nowrap;color:var(--ink)}
.marquee__item::after{content:"✺";color:var(--accent);font-weight:400;font-size:.8em}
@keyframes marquee{to{transform:translateX(50%)}} /* RTL: shift toward start */

/* ============================ SECTIONS =================================== */
.section{padding-block:clamp(3rem,6vw,5.5rem)}
.section__head{display:flex;align-items:flex-end;justify-content:space-between;gap:1.5rem;margin-block-end:clamp(1.8rem,3vw,2.8rem);flex-wrap:wrap}
.section__title{font-size:var(--fs-xl);letter-spacing:-.02em}
.section__head .ulink{font-size:var(--fs-sm);color:var(--ink-2);white-space:nowrap}

/* ===================== ARTWORK GRID + CARD =============================== */
.art-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(290px,1fr));
  gap:clamp(1.4rem,3vw,2.6rem) clamp(1.2rem,2.4vw,2rem);
}

.art-card{display:flex;flex-direction:column}
/* the framed piece on the wall */
.art-card__frame{
  position:relative;display:block;
  background:var(--surface);
  padding:clamp(11px,1.6vw,18px);
  border:1px solid var(--line);
  border-radius:2px;
  box-shadow:var(--shadow-art);
  transition:transform .5s var(--ease),box-shadow .5s var(--ease);
  overflow:hidden;
}
.art-card__mat{
  display:block;position:relative;
  background:var(--surface-2);
  border:1px solid var(--line);
  aspect-ratio:4/5;overflow:hidden;
}
.art-card__mat img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .9s var(--ease),filter .5s var(--ease);
}
.art-card__frame:hover{transform:translateY(-6px);box-shadow:var(--shadow-art-hi)}
.art-card__frame:hover .art-card__mat img{transform:scale(1.04)}

/* hover reveal action layer */
.art-card__reveal{
  position:absolute;inset-inline:clamp(11px,1.6vw,18px);inset-block-end:clamp(11px,1.6vw,18px);
  display:flex;gap:.5rem;
  transform:translateY(12px);opacity:0;
  transition:transform .45s var(--ease),opacity .45s var(--ease);
}
.art-card__frame:hover .art-card__reveal,
.art-card__frame:focus-within .art-card__reveal{transform:none;opacity:1}
.art-card__reveal .btn{flex:1;justify-content:center;box-shadow:var(--shadow-pop)}

/* corner edition flag */
.edition-flag{
  position:absolute;inset-block-start:0;inset-inline-end:0;
  background:var(--ink);color:#fff;
  font-family:var(--mono);font-size:var(--fs-micro);font-weight:700;letter-spacing:.05em;
  padding:.4rem .7rem;border-bottom-left-radius:2px;
}
.edition-flag.is-limited{background:var(--accent)}

/* the engraved metal acquisition plate — the signature element */
.tombstone{
  margin-block-start:.9rem;
  display:grid;gap:.55rem;
  padding:.7rem .85rem;
  background:linear-gradient(176deg,var(--metal-hi) 0%,#e3e2db 46%,var(--metal-lo) 54%,#e0dfd7 100%);
  border:1px solid var(--metal-line);
  border-radius:2px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.85),inset 0 -1px 0 rgba(0,0,0,.08);
}
.tombstone__row{display:flex;align-items:center;justify-content:space-between;gap:.75rem}
.tombstone__code{
  font-family:var(--mono);font-size:var(--fs-micro);letter-spacing:.08em;
  color:var(--metal-ink);text-shadow:0 1px 0 rgba(255,255,255,.65)}
.tombstone__title{
  font-size:var(--fs-md);font-weight:700;letter-spacing:-.01em;color:var(--ink);
  text-shadow:0 1px 0 rgba(255,255,255,.4)}
.tombstone__title a{color:inherit}
.tombstone__title a:hover{color:var(--accent-ink)}
.tombstone__meta{
  font-family:var(--mono);font-size:var(--fs-micro);letter-spacing:.04em;color:var(--ink-2);
  text-shadow:0 1px 0 rgba(255,255,255,.5)}

/* status chip */
.status{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--mono);font-size:var(--fs-micro);letter-spacing:.05em;color:var(--ink-2);text-shadow:0 1px 0 rgba(255,255,255,.5)}
.status__dot{width:8px;height:8px;border-radius:99px;background:var(--accent);box-shadow:0 0 0 0 var(--accent);animation:pulse 2.6s var(--ease) infinite}
.status--limited .status__dot{background:var(--accent)}
.status--sold{color:var(--ink-3)}
.status--sold .status__dot{background:var(--ink-3);animation:none}
@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 55%,transparent)}70%{box-shadow:0 0 0 7px transparent}100%{box-shadow:0 0 0 0 transparent}}

/* price line under the plate */
.art-card__foot{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-block-start:.7rem;min-height:24px}
.art-card__price{font-weight:700;font-size:var(--fs-md);letter-spacing:-.01em}
.art-card__price del{color:var(--ink-3);font-weight:400;font-size:.85em;margin-inline-end:.35rem}
.art-card__collector{font-size:var(--fs-cap);color:var(--ink-3)}
.art-card__collector b{color:var(--ink-2);font-weight:700}

/* sold styling */
.art-card.is-sold .art-card__mat img{filter:grayscale(.35) contrast(.96) brightness(.99)}
.art-card.is-sold .art-card__frame{box-shadow:0 1px 1px rgba(23,22,15,.04),0 14px 32px -24px rgba(23,22,15,.4)}
.sold-seal{
  position:absolute;inset-block-start:0;inset-inline-end:0;
  background:#fff;color:var(--ink);
  border:1px solid var(--line-strong);border-block-start:none;border-inline-end:none;
  font-family:var(--mono);font-size:var(--fs-micro);font-weight:700;letter-spacing:.08em;
  padding:.4rem .7rem;border-bottom-left-radius:2px}

/* ===================== PROCESS STRIP ===================================== */
.process{background:var(--ink);color:#fff}
.process .eyebrow{color:rgba(255,255,255,.5)}
.process__title{color:#fff}
.process__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin-block-start:2rem;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.12)}
.process__cell{background:var(--ink);padding:clamp(1.4rem,3vw,2.2rem)}
.process__num{font-family:var(--mono);font-size:var(--fs-cap);color:var(--accent);letter-spacing:.1em}
.process__cell h3{font-size:var(--fs-md);margin-block:.7rem .5rem;color:#fff}
.process__cell p{color:rgba(255,255,255,.62);font-size:var(--fs-sm);margin:0}

/* ===================== PAGE / SINGULAR =================================== */
.page-hero{padding-block:clamp(2.4rem,5vw,4rem) 0}
.page-hero .eyebrow{margin-block-end:1rem}
.page-title{font-size:var(--fs-xl);letter-spacing:-.02em}
.entry{padding-block:2rem 4rem}
.entry__content{max-width:var(--readw);font-size:var(--fs-md);color:var(--ink-2)}
.entry__content :is(h2,h3){color:var(--ink);margin-block:1.6em .5em}
.entry__content a{color:var(--accent-ink);text-decoration:underline;text-underline-offset:3px}
.entry__content img{border:1px solid var(--line);border-radius:2px;margin-block:1.4em}

/* ===================== FOOTER ============================================ */
.site-footer{background:var(--wall-deep);border-block-start:1px solid var(--line);margin-block-start:auto}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:2.5rem;padding-block:clamp(2.6rem,5vw,4rem)}
.footer-brand .brand__mark{font-size:1.8rem}
.footer-brand p{color:var(--ink-2);font-size:var(--fs-sm);max-width:36ch;margin-block-start:1rem}
.footer-col h4{font-size:var(--fs-cap);font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);font-weight:500;margin-block-end:1rem}
.footer-col ul{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}
.footer-col a{font-size:var(--fs-sm);color:var(--ink-2)}
.footer-col a:hover{color:var(--ink)}
.footer-bottom{border-block-start:1px solid var(--line);padding-block:1.4rem;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:var(--fs-cap);color:var(--ink-3)}

/* ===================== CART DRAWER ======================================= */
.drawer-backdrop{position:fixed;inset:0;background:rgba(23,22,15,.4);opacity:0;visibility:hidden;transition:opacity .35s var(--ease),visibility .35s;z-index:90}
.drawer-backdrop.is-open{opacity:1;visibility:visible}
.cart-drawer{
  position:fixed;inset-block:0;inset-inline-start:0;z-index:100;
  width:min(420px,92vw);background:var(--wall);
  display:flex;flex-direction:column;
  transform:translateX(-102%);transition:transform .4s var(--ease);
  box-shadow:var(--shadow-pop)}
.cart-drawer.is-open{transform:none}
.cart-drawer__head{display:flex;align-items:center;justify-content:space-between;padding:1.3rem var(--gut);border-block-end:1px solid var(--line)}
.cart-drawer__head h2{font-size:var(--fs-lg)}
.cart-drawer__body{flex:1;overflow:auto;padding:1.3rem var(--gut)}
.cart-drawer__body .woocommerce-mini-cart__empty-message{color:var(--ink-3)}

/* ===================== UTIL / MISC ======================================= */
.notice-bar{background:var(--accent-wash);color:var(--accent-ink);text-align:center;font-size:var(--fs-cap);padding:.55rem 1rem;font-family:var(--mono);letter-spacing:.03em}
.site{display:flex;flex-direction:column;min-height:100vh}
.site-main{flex:1}

/* reveal-on-scroll */
.reveal{opacity:0;transform:translateY(16px)}
.reveal.is-in{opacity:1;transform:none;transition:opacity .7s var(--ease),transform .7s var(--ease)}

/* ===================== RESPONSIVE ======================================== */
@media (max-width:900px){
  .footer-grid{grid-template-columns:1fr 1fr}
  .footer-brand{grid-column:1/-1}
  .process__grid{grid-template-columns:1fr 1fr}
}
@media (max-width:760px){
  .main-nav{position:fixed;inset:74px 0 auto 0;background:var(--wall);border-block-end:1px solid var(--line);
    flex-direction:column;align-items:stretch;padding:1rem var(--gut) 1.5rem;gap:0;
    transform:translateY(-12px);opacity:0;visibility:hidden;transition:.3s var(--ease);z-index:50}
  .main-nav.is-open{transform:none;opacity:1;visibility:visible}
  .main-nav ul{flex-direction:column;gap:0}
  .main-nav a{padding-block:.9rem;border-block-end:1px solid var(--line);font-size:var(--fs-md)}
  .nav-toggle{display:inline-grid}
}
@media (max-width:520px){
  .process__grid{grid-template-columns:1fr}
  .hero__stats{gap:1.6rem}
}

/* ===================== MOTION SAFETY ===================================== */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .marquee__track{animation:none;flex-wrap:wrap}
  .reveal{opacity:1;transform:none}
}

/* ----------------------------------------------------------------------
 * Secondary templates — blog, archive, search, 404
 * ------------------------------------------------------------------- */
.post-list{display:grid;gap:clamp(1.4rem,3vw,2.2rem);padding-block:clamp(2rem,4vw,3rem)}
.post-card{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem;padding-block-end:clamp(1.4rem,3vw,2.2rem);border-block-end:1px solid var(--line)}
.post-card:last-child{border-block-end:0}
@media(min-width:680px){.post-card.has-thumb{grid-template-columns:240px minmax(0,1fr);align-items:start}}
.post-card__thumb{display:block;overflow:hidden;border-radius:var(--radius);background:var(--surface)}
.post-card__thumb img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3;transition:transform .6s var(--ease)}
.post-card:hover .post-card__thumb img{transform:scale(1.04)}
.post-card__meta{font-family:var(--mono);font-size:var(--fs-micro);letter-spacing:.06em;color:var(--ink-3);text-transform:uppercase}
.post-card__title{font-size:var(--fs-lg);letter-spacing:-.01em;margin-block:.4rem .5rem}
.post-card__title a{color:var(--ink)}
.post-card__title a:hover{color:var(--accent)}
.post-card__excerpt{color:var(--ink-2);font-size:var(--fs-sm);max-width:62ch}

.pager{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:center;padding-block:2rem;font-family:var(--mono);font-size:var(--fs-sm)}
.pager .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:2.4rem;height:2.4rem;padding-inline:.6rem;border:1px solid var(--line-strong);border-radius:99px;color:var(--ink-2);transition:all .25s var(--ease)}
.pager .page-numbers.current{background:var(--ink);color:#fff;border-color:var(--ink)}
.pager a.page-numbers:hover{border-color:var(--ink);color:var(--ink)}

.searchform{display:flex;gap:.5rem;max-width:32rem}
.searchform input[type=search]{flex:1;min-width:0;font:inherit;padding:.7rem 1rem;background:var(--surface);border:1px solid var(--line-strong);border-radius:99px;color:var(--ink)}
.searchform input[type=search]:focus{outline:none;border-color:var(--accent)}
.searchform button{flex:none}

.notfound{padding-block:clamp(3rem,8vw,6rem)}
.notfound__code{font-family:var(--mono);font-size:clamp(4rem,16vw,9rem);font-weight:700;line-height:1;color:var(--accent);letter-spacing:-.04em}
.notfound__msg{font-size:var(--fs-lg);color:var(--ink-2);margin-block:1rem 1.8rem;max-width:48ch}
.muted{color:var(--ink-3);padding-block:1rem}

/* page/post featured media */
.entry__media{margin-block-end:1.8rem;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.entry__media img{display:block;width:100%;height:auto}
