:root {
  color-scheme: light;
  --background: #eceff3;
  --background-deep: #e6eaef;
  --surface: #eef1f4;
  --surface-high: #f3f5f7;
  --surface-low: #e6eaf0;
  --navy: #101b33;
  --navy-soft: #182842;
  --accent: #4d8eff;
  --accent-deep: #2d6de0;
  --text-primary: #171c26;
  --text-secondary: #626872;
  --text-faint: #858b95;
  --line: rgba(20, 31, 50, .11);
  --radius-xs: 10px;
  --radius-sm: 16px;
  --radius-md: 24px;
  --radius-lg: 34px;
  --radius-xl: 48px;
  --container: min(1180px, calc(100vw - 48px));
  --ease-out: cubic-bezier(.16, 1, .3, 1);
  --shadow-raised: -12px -12px 26px rgba(255,255,255,.88), 12px 16px 30px rgba(54,66,87,.14), inset 1px 1px 1px rgba(255,255,255,.88);
  --shadow-raised-small: -5px -5px 12px rgba(255,255,255,.9), 5px 7px 14px rgba(54,66,87,.14), inset 1px 1px 1px rgba(255,255,255,.8);
  --shadow-inset: inset 5px 6px 12px rgba(69,82,104,.11), inset -5px -6px 12px rgba(255,255,255,.9), 1px 1px 0 rgba(255,255,255,.7);
}

*,*::before,*::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 96px; background: var(--background); color: var(--text-primary); -webkit-text-size-adjust: 100%; }
body { min-width: 320px; margin: 0; overflow-x: clip; background: radial-gradient(circle at 12% 3%, rgba(255,255,255,.75), transparent 28rem), linear-gradient(135deg,#eef1f4 0%,var(--background) 43%,#e9edf2 100%); color: var(--text-primary); font-family: "Vazirmatn",Tahoma,Arial,sans-serif; line-height: 1.75; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }
body.menu-open { overflow: hidden; }
img,svg { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
p,h1,h2,h3,h4,dl,dd,figure,blockquote { margin: 0; }
ul,ol { margin: 0; padding: 0; }
button,input,select { color: inherit; font: inherit; }
button { border: 0; cursor: pointer; }
h1,h2,h3 { font-weight: 650; line-height: 1.08; letter-spacing: -.045em; text-wrap: balance; }
em { color: var(--accent); font-style: normal; }
:focus-visible { outline: 3px solid rgba(77,142,255,.52); outline-offset: 4px; }
::selection { color: #fff; background: var(--accent); }

.skip-link { position: fixed; z-index: 1000; top: 12px; right: 12px; transform: translateY(-150%); padding: 10px 15px; border-radius: 12px; background: var(--navy); color: #fff; transition: transform .2s ease; }
.skip-link:focus { transform: translateY(0); }

.page-header { position: sticky; z-index: 100; top: 0; border-bottom: 1px solid rgba(16,27,51,.08); background: rgba(236,239,243,.86); backdrop-filter: blur(18px); }
.page-header-inner { display: flex; width: var(--container); min-height: 74px; margin: auto; align-items: center; justify-content: space-between; gap: 24px; }
.page-brand { display: flex; align-items: center; gap: 10px; color: var(--navy); font: 800 .82rem/1 ui-monospace,monospace; letter-spacing: .1em; }
.page-brand i { width: 13px; height: 13px; border-radius: 4px; background: var(--accent); box-shadow: var(--shadow-raised-small); }
.page-nav { display: flex; align-items: center; gap: 22px; color: var(--text-secondary); font-size: .8rem; }
.page-nav a:hover { color: var(--navy); }
.page-cta,.button { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; gap: 9px; padding: 10px 16px; border: 1px solid transparent; border-radius: 14px; font-weight: 700; }
.page-cta,.button-primary { background: var(--navy); box-shadow: var(--shadow-raised-small); color: #fff; }
.button-secondary { border-color: var(--line); background: var(--surface); box-shadow: var(--shadow-raised-small); color: var(--navy); }
.button-disabled { border: 1px dashed var(--line); background: var(--surface-low); color: var(--text-faint); cursor: not-allowed; }
.page-menu-button { display: none; width: 44px; height: 44px; place-items: center; border-radius: 14px; background: var(--surface); box-shadow: var(--shadow-raised-small); }
.page-menu-button svg { width: 21px; }

.page-main { width: var(--container); margin: auto; }
.breadcrumbs { display: flex; flex-wrap: wrap; gap: 8px; padding-top: 32px; color: var(--text-faint); font-size: .72rem; }
.breadcrumbs span[aria-hidden] { opacity: .5; }
.page-kicker { color: var(--accent-deep); font: 700 .68rem/1.4 ui-monospace,monospace; letter-spacing: .1em; }

.page-hero { padding: clamp(58px,9vw,120px) 0 clamp(66px,9vw,120px); }
.case-hero-grid { display: grid; grid-template-columns: minmax(300px,.82fr) minmax(0,1.18fr); gap: clamp(36px,7vw,94px); align-items: center; }
.page-hero h1 { margin-top: 22px; color: var(--navy); font-size: clamp(3.6rem,9vw,8.4rem); }
.page-hero .lead { max-width: 58ch; margin-top: 25px; color: var(--text-secondary); font-size: clamp(1rem,1.3vw,1.15rem); line-height: 1.95; }
.facts { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; margin-top: 30px; }
.facts div { padding: 14px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: rgba(255,255,255,.25); }
.facts dt { color: var(--text-faint); font-size: .7rem; }
.facts dd { margin-top: 4px; color: var(--navy); font-weight: 700; }
.case-poster { position: relative; min-height: 580px; overflow: hidden; padding: 10px; border-radius: var(--radius-xl); background: var(--surface); box-shadow: var(--shadow-raised); }
.case-poster img { width: 100%; height: 100%; min-height: 560px; border-radius: calc(var(--radius-xl) - 8px); object-fit: cover; }
.case-poster figcaption { position: absolute; inset: auto 24px 24px; width: fit-content; padding: 8px 11px; border-radius: 999px; background: rgba(16,27,51,.82); backdrop-filter: blur(12px); color: #fff; font: 700 .62rem/1 ui-monospace,monospace; letter-spacing: .08em; }

.case-section { display: grid; grid-template-columns: minmax(210px,.48fr) minmax(0,1.52fr); gap: clamp(30px,7vw,90px); padding: clamp(70px,9vw,120px) 0; border-top: 1px solid var(--line); }
.case-section-label { position: sticky; top: 105px; align-self: start; }
.case-section-label span { color: var(--accent-deep); font: 700 .65rem/1 ui-monospace,monospace; letter-spacing: .1em; }
.case-section-label h2 { margin-top: 15px; color: var(--navy); font-size: clamp(1.8rem,3.2vw,3rem); }
.case-section-body { display: grid; gap: 24px; }
.case-section-body > p { max-width: 68ch; color: var(--text-secondary); font-size: clamp(1rem,1.2vw,1.12rem); line-height: 2; }
.case-section-body blockquote { padding: 24px; border-right: 3px solid var(--accent); border-radius: var(--radius-sm); background: rgba(255,255,255,.26); color: var(--navy); font-size: clamp(1.15rem,2vw,1.55rem); line-height: 1.8; }
.feature-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; list-style: none; }
.feature-list li { padding: 17px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: rgba(255,255,255,.2); }
.feature-list b,.feature-list span { display: block; }
.feature-list b { color: var(--navy); }
.feature-list span { margin-top: 6px; color: var(--text-faint); font-size: .8rem; line-height: 1.65; }
.case-media-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.case-media-grid figure { overflow: hidden; padding: 8px; border-radius: var(--radius-md); background: var(--surface); box-shadow: var(--shadow-raised-small); }
.case-media-grid img { width: 100%; height: 420px; border-radius: calc(var(--radius-md) - 7px); object-fit: cover; }
.case-media-grid figcaption { padding: 11px 6px 4px; color: var(--text-faint); font-size: .7rem; }
.tech-grid { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; }
.tech-grid li { padding: 8px 12px; border: 1px solid var(--line); border-radius: 999px; color: var(--text-secondary); font-size: .76rem; }
.required-note { display: grid; gap: 5px; padding: 14px 16px; border: 1px dashed var(--line); border-radius: var(--radius-sm); background: var(--surface-low); }
.required-note b { color: var(--navy); font-size: .78rem; }
.required-note span { color: var(--text-faint); font-size: .75rem; }
.page-final-cta { display: flex; justify-content: space-between; gap: 28px; align-items: center; margin-bottom: 84px; padding: clamp(26px,5vw,58px); border-radius: var(--radius-lg); background: var(--navy); color: #fff; box-shadow: 0 24px 55px rgba(16,27,51,.2); }
.page-final-cta h2 { font-size: clamp(1.8rem,4vw,3.6rem); }
.page-final-cta p { margin-top: 10px; color: #aebbd0; }
.page-final-cta .button { background: #fff; color: var(--navy); white-space: nowrap; }

/* Journal */
.archive-hero { display: grid; grid-template-columns: minmax(0,1fr) minmax(260px,.68fr); gap: clamp(30px,7vw,90px); align-items: end; padding: clamp(66px,10vw,126px) 0 54px; }
.archive-hero h1 { margin-top: 22px; color: var(--navy); font-size: clamp(3.4rem,8vw,7.7rem); }
.archive-hero p { color: var(--text-secondary); line-height: 2; }
.featured-article { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(280px,.85fr); min-height: 520px; overflow: hidden; border-radius: var(--radius-xl); background: var(--navy); box-shadow: 0 26px 60px rgba(16,27,51,.2); color: #fff; }
.featured-article img { width: 100%; height: 100%; min-height: 520px; object-fit: cover; }
.featured-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(28px,5vw,62px); }
.featured-copy .page-kicker { color: #8bb6ff; }
.featured-copy h2 { margin-top: 18px; font-size: clamp(2rem,4.1vw,4rem); }
.featured-copy p { margin-top: 18px; color: #b9c5d7; line-height: 1.9; }
.featured-copy .button { width: fit-content; margin-top: 28px; background: #fff; color: var(--navy); }
.journal-tools { display: grid; grid-template-columns: minmax(240px,.7fr) minmax(0,1.3fr); gap: 16px; align-items: center; margin: 62px 0 28px; }
.journal-search { display: flex; align-items: center; min-height: 52px; padding-inline: 15px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--surface-low); box-shadow: var(--shadow-inset); }
.journal-search input { width: 100%; border: 0; outline: 0; background: transparent; }
.journal-filters { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.journal-filters button { min-height: 40px; padding: 8px 12px; border: 1px solid var(--line); border-radius: 999px; background: var(--surface); box-shadow: var(--shadow-raised-small); color: var(--text-secondary); font-size: .72rem; }
.journal-filters button.is-active { background: var(--navy); color: #fff; }
.archive-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; padding-bottom: 100px; }
.archive-card { overflow: hidden; border-radius: var(--radius-md); background: var(--surface); box-shadow: var(--shadow-raised-small); }
.archive-card.is-filtered { display: none; }
.archive-card img { width: calc(100% - 18px); height: 260px; margin: 9px; border-radius: calc(var(--radius-md) - 7px); object-fit: cover; }
.archive-card > div { padding: 18px 22px 24px; }
.archive-card small { color: var(--accent-deep); font: 700 .64rem/1.4 ui-monospace,monospace; letter-spacing: .07em; }
.archive-card h2 { margin-top: 13px; color: var(--navy); font-size: 1.48rem; line-height: 1.35; }
.archive-card p { margin-top: 13px; color: var(--text-secondary); font-size: .88rem; line-height: 1.8; }
.archive-card footer { display: flex; justify-content: space-between; gap: 10px; margin-top: 20px; color: var(--text-faint); font-size: .7rem; }
.journal-empty { display: none; margin-bottom: 90px; padding: 28px; border: 1px dashed var(--line); border-radius: var(--radius-md); text-align: center; color: var(--text-secondary); }
.journal-empty.is-visible { display: block; }

/* Article */
.article-wrap { width: min(820px,calc(100vw - 48px)); margin: auto; }
.article-hero { padding: clamp(62px,10vw,120px) 0 42px; text-align: center; }
.article-hero h1 { max-width: 12ch; margin: 24px auto 0; color: var(--navy); font-size: clamp(2.8rem,7vw,6.1rem); }
.article-intro { max-width: 62ch; margin: 24px auto 0; color: var(--text-secondary); font-size: clamp(1rem,1.3vw,1.16rem); line-height: 2; }
.article-meta { display: flex; justify-content: center; flex-wrap: wrap; gap: 10px 20px; margin-top: 26px; color: var(--text-faint); font-size: .76rem; }
.article-hero-visual { width: min(1180px,calc(100vw - 48px)); margin: 0 auto 72px; overflow: hidden; padding: 10px; border-radius: var(--radius-xl); background: var(--surface); box-shadow: var(--shadow-raised); }
.article-hero-visual img { width: 100%; max-height: 720px; border-radius: calc(var(--radius-xl) - 8px); object-fit: cover; }
.article-body { padding-bottom: 80px; }
.article-body h2 { margin: 58px 0 20px; color: var(--navy); font-size: clamp(1.8rem,3.5vw,2.8rem); }
.article-body h3 { margin: 38px 0 14px; color: var(--navy); font-size: 1.45rem; }
.article-body p,.article-body li { color: #4e5662; font-size: clamp(1rem,1.2vw,1.1rem); line-height: 2.05; }
.article-body p + p { margin-top: 20px; }
.article-body ul,.article-body ol { display: grid; gap: 10px; padding-right: 24px; }
.article-body blockquote { margin: 42px 0; padding: 26px; border-right: 3px solid var(--accent); border-radius: var(--radius-sm); background: rgba(255,255,255,.3); color: var(--navy); font-size: 1.28rem; line-height: 1.9; }
.article-body pre { margin: 34px 0; overflow-x: auto; padding: 22px; border-radius: var(--radius-md); background: var(--navy); color: #dbe7fa; direction: ltr; text-align: left; font: 500 .83rem/1.8 ui-monospace,SFMono-Regular,monospace; }
.article-body figure { margin: 42px 0; }
.article-body figure img { width: 100%; border-radius: var(--radius-md); }
.article-body figcaption { margin-top: 10px; color: var(--text-faint); font-size: .72rem; }
.article-callout { margin: 36px 0; padding: 21px; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--surface); box-shadow: var(--shadow-raised-small); }
.article-callout b { color: var(--navy); }
.article-callout p { margin-top: 7px; font-size: .92rem; }
.related-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.related-grid a { padding: 20px; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--surface); box-shadow: var(--shadow-raised-small); }
.related-grid small { color: var(--accent-deep); font-size: .66rem; }
.related-grid b { display: block; margin-top: 8px; color: var(--navy); }

/* Store */
.store-hero { display: grid; grid-template-columns: minmax(0,1fr) minmax(260px,.62fr); gap: 50px; align-items: end; padding: clamp(70px,10vw,130px) 0 65px; }
.store-hero h1 { margin-top: 20px; color: var(--navy); font-size: clamp(3.5rem,8vw,7rem); }
.store-hero p { color: var(--text-secondary); line-height: 2; }
.store-grid-page { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; padding-bottom: 100px; }
.store-product { display: flex; min-width: 0; flex-direction: column; overflow: hidden; border-radius: var(--radius-lg); background: var(--surface); box-shadow: var(--shadow-raised); }
.store-product-visual { display: grid; height: 300px; place-items: center; margin: 9px; overflow: hidden; border-radius: calc(var(--radius-lg) - 7px); background: var(--navy); color: #fff; }
.store-product-visual strong { font-size: 3rem; letter-spacing: -.05em; }
.store-product-visual span { margin-top: 8px; color: #9fb0ca; font: 700 .62rem/1 ui-monospace,monospace; letter-spacing: .1em; }
.store-product > div:last-child { display: flex; flex: 1; flex-direction: column; align-items: flex-start; padding: 22px 24px 28px; }
.store-product small { color: var(--accent-deep); font: 700 .64rem/1 ui-monospace,monospace; }
.store-product h2 { margin-top: 14px; color: var(--navy); font-size: 2rem; }
.store-product p { margin-top: 14px; color: var(--text-secondary); line-height: 1.85; }
.store-product .tech-grid { margin: 20px 0; }
.store-price { margin-top: auto; color: var(--navy); font-weight: 800; }
.store-product .button { width: 100%; margin-top: 18px; }

.page-footer { border-top: 1px solid var(--line); }
.page-footer-inner { display: flex; width: var(--container); min-height: 100px; margin: auto; align-items: center; justify-content: space-between; gap: 24px; color: var(--text-faint); font-size: .75rem; }
.page-footer nav { display: flex; flex-wrap: wrap; gap: 15px; }

@media (max-width: 900px) {
  .page-nav,.page-header .page-cta { display: none; }
  .page-menu-button { display: grid; }
  .page-header.menu-active .page-nav { position: fixed; inset: 74px 14px auto; display: grid; gap: 6px; padding: 16px; border-radius: var(--radius-md); background: rgba(238,241,244,.98); box-shadow: var(--shadow-raised); }
  .page-header.menu-active .page-nav a { padding: 10px; }
  .case-hero-grid,.archive-hero,.featured-article,.store-hero { grid-template-columns: 1fr; }
  .case-poster { min-height: 480px; }
  .case-poster img { min-height: 460px; }
  .featured-article img { min-height: 390px; }
  .journal-tools { grid-template-columns: 1fr; }
  .journal-filters { justify-content: flex-start; overflow-x: auto; flex-wrap: nowrap; padding-bottom: 8px; scrollbar-width: none; }
  .journal-filters button { flex: 0 0 auto; }
  .archive-grid,.store-grid-page { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 650px) {
  :root { --container: min(100% - 28px,680px); --radius-lg: 28px; --radius-xl: 34px; }
  .page-header-inner { min-height: 66px; }
  .page-header.menu-active .page-nav { inset-block-start: 66px; }
  .breadcrumbs { padding-top: 22px; }
  .page-hero { padding-top: 48px; }
  .page-hero h1,.archive-hero h1,.store-hero h1 { font-size: clamp(3rem,16vw,5rem); }
  .facts { grid-template-columns: 1fr; }
  .case-poster { min-height: 360px; }
  .case-poster img { min-height: 340px; }
  .case-section { grid-template-columns: 1fr; padding-block: 64px; }
  .case-section-label { position: static; }
  .feature-list,.case-media-grid,.related-grid { grid-template-columns: 1fr; }
  .case-media-grid img { height: 320px; }
  .page-final-cta { align-items: flex-start; flex-direction: column; margin-bottom: 48px; border-radius: 25px; }
  .archive-hero,.store-hero { padding-top: 58px; }
  .featured-article { display: block; border-radius: 28px; }
  .featured-article img { min-height: 300px; }
  .archive-grid,.store-grid-page { grid-template-columns: 1fr; }
  .article-wrap,.article-hero-visual { width: min(100% - 28px,820px); }
  .article-hero { padding-top: 54px; }
  .article-hero-visual { margin-bottom: 54px; border-radius: 26px; }
  .page-footer-inner { align-items: flex-start; flex-direction: column; justify-content: center; padding-block: 28px; }
}

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

@media print {
  .page-header,.page-footer,.page-final-cta,.journal-tools { display: none !important; }
  body { background: #fff; }
  .page-main,.article-wrap,.article-hero-visual { width: 100%; }
  .case-section { break-inside: avoid; }
}
