/* 1.7.6 tuning. Only surrounding light layers move; paintings retain their geometry. */
:root {
  --cine-header:88px; /* Reserved header height; updated only on header/caption resize. */
  --cine-header-gap:16px; /* Minimum header-to-painting clearance. */
  --cine-band-h:80px; /* Reserved caption height; translated wraps may increase it. */
  --cine-side:max(24px,3vw); /* Desktop safe-box side margin. */
  --cine-colour-1:193 109 79; /* Warm fallback pigment, sampled once from the hero. */
  --cine-colour-2:63 100 89; /* Cool fallback pigment, sampled once from the hero. */
  --cine-colour-3:222 187 117; /* Light fallback pigment, sampled once from the hero. */
  --cine-colour-4:42 48 52; /* Deep fallback pigment, sampled once from the hero. */
  --cine-field-duration:18s; /* Slow movement of two bounded background light layers. */
  --cine-field-travel:8px; /* Background light drift, never applied to artwork. */
  --cine-field-opacity:.65; /* Maximum light-field visibility. */
  --cine-depth-drift:24px; /* Native scroll-linked background depth travel. */
  --cine-grade-saturation:1.20; /* Owner-approved static hero-only saturation. */
  --cine-grade-contrast:1.06; /* Owner-approved static hero-only contrast. */
  --cine-grade-brightness:1.03; /* Owner-approved static hero-only brightness. */
  --cine-grain-opacity:.035; /* Static baked grain, behind the painting. */
  --cine-glass-alpha:.92; /* Dark tint: readable even over a white background. */
  --cine-glass-blur:8px; /* Small real-glass surfaces, hard capped at 12px. */
  --cine-glass-border:.16; /* Faint decorative rim; controls have a stronger border. */
  --cine-glass-shadow:.48; /* Static shadow beneath faux and real glass. */
  --cine-glass-highlight:.10; /* Local hover specular intensity on two glass elements. */
  --cine-pool-opacity:.08; /* Static light on the room wall. */
  --cine-reveal-rise:12px; /* One-shot card wrapper entrance distance. */
  --cine-reveal-duration:.42s; /* One-shot card wrapper entrance duration. */
  --cine-transition-duration:.42s; /* Shared painting morph and page cross-fade duration. */
  --cine-trail-alpha:.50; /* Whole-canvas opacity, hard capped at .55. */
  --cine-trail-life:1100; /* Pigment life in ms, capped at 1200ms. */
  --cine-trail-width:9; /* Slow stroke width in CSS px, hard capped at 12px. */
  --cine-trail-min-width:2; /* Fast stroke width in CSS px. */
  --cine-trail-dpr:1.25; /* Canvas resolution multiplier, hard capped at 1.25. */
  --cine-trail-fps:30; /* Maximum paints per second, hard capped at 45. */
}
.mf-site { isolation:isolate; }
.mf-site::before,.mf-site::after { display:none; }
html:lang(fa) body *,html:lang(ar) body * { letter-spacing:0!important; }
.mf-view-home>.stage-note { position:absolute; top:100svh; inset-inline:0; z-index:2; }
html body.mf-site .site-header { position:relative; top:auto; background:transparent; border:0; box-shadow:none; z-index:30; }
html body.mf-view-home .site-header { position:absolute; top:0; inset-inline:0; }
html body.mf-site .header-inner { min-height:88px; position:relative; gap:16px; border-radius:0 0 22px 22px; }
html body.mf-site .site-header :is(.brand,.desktop-nav,.header-actions) { background:transparent; border:0; box-shadow:none; }
html body.mf-site .desktop-nav { display:flex; gap:18px; }
html body.mf-site .desktop-nav a { min-height:44px; display:inline-flex; align-items:center; white-space:nowrap; }
html body.mf-site .menu-toggle { display:none; gap:7px; width:auto; min-width:72px; padding-inline:10px; }
html body.mf-site :is(.eyebrow,.art-reference,.brand small) { text-transform:none; letter-spacing:0; }
.hero-atelier.luminous-hero.cinematic-hero,html[dir=ltr] .hero-atelier.luminous-hero.cinematic-hero {
  display:block; position:relative; isolation:isolate; width:100%; max-width:none;
  height:100vh; height:100svh; min-height:0; margin:0; padding:0; border:0; border-radius:0;
  overflow:hidden; background:#0d0a09; box-shadow:none; animation:none!important;
}
.cine-decor { position:absolute; inset:0; z-index:0; pointer-events:none; overflow:hidden; }
.cine-field { position:absolute; inset:-8px; opacity:var(--cine-field-opacity); }
.cine-field-one { background:radial-gradient(ellipse at 20% 42%,rgb(var(--cine-colour-1) / .85),transparent 65%),radial-gradient(ellipse at 80% 70%,rgb(var(--cine-colour-2) / .7),transparent 60%); }
.cine-field-two { background:radial-gradient(ellipse at 78% 24%,rgb(var(--cine-colour-3) / .55),transparent 65%),radial-gradient(ellipse at 24% 80%,rgb(var(--cine-colour-4)),transparent 60%); opacity:.3; }
.cine-vignette { position:absolute; inset:0; background:radial-gradient(ellipse,transparent 32%,#0d0a0980 100%); }
.cine-grain { position:absolute; inset:0; background-image:url(grain.png); opacity:var(--cine-grain-opacity); }
.cine-darken { position:absolute; inset:0; background:#0d0a09; opacity:0; }
.cine-dissolve { position:absolute; inset:auto 0 0; height:20svh; background:linear-gradient(transparent,#0d0a09); }
.cine-dissolve>span { display:none; }
.cine-safe { position:absolute; z-index:2; top:calc(var(--cine-header) + var(--cine-header-gap)); bottom:var(--cine-band-h); left:var(--cine-side); right:var(--cine-side); display:grid; place-items:center; container-type:size; }
.cine-painting { position:relative; width:min(96cqw,calc(96cqh * var(--hero-ratio,1.43))); aspect-ratio:var(--hero-ratio,1.43); }
.hero-atelier.luminous-hero.cinematic-hero .hero-art,
.hero-atelier.luminous-hero.cinematic-hero .hero-art:hover {
  position:relative; display:block; inset:auto; width:100%; height:100%; max-width:none; aspect-ratio:var(--hero-ratio,1.43);
  margin:0; padding:0; background:transparent!important; box-shadow:0 24px 55px -24px #0009;
  border:0; border-radius:0; rotate:none; scale:none; translate:none; transform:none; animation:none!important; transition:none;
}
.hero-atelier.luminous-hero.cinematic-hero .hero-art>.canvas-frame {
  position:relative; inset:auto; width:100%; height:100%; max-width:none; margin:0; aspect-ratio:var(--hero-ratio,1.43);
  translate:none; scale:none; transform:none; overflow:visible; box-shadow:none; animation:none!important;
}
.hero-atelier.luminous-hero.cinematic-hero .hero-art>.canvas-frame>img {
  left:0!important; top:0!important; width:100%!important; height:100%!important;
  object-fit:contain!important; object-position:center!important; clip-path:none!important; transform:none!important;
  filter:saturate(var(--cine-grade-saturation)) contrast(var(--cine-grade-contrast)) brightness(var(--cine-grade-brightness))!important;
}
.cine-float { position:relative; width:100%; height:100%; }
.cine-band { position:absolute; z-index:3; bottom:0; inset-inline:var(--cine-side); height:var(--cine-band-h); display:flex; align-items:center; justify-content:space-between; gap:16px; padding-block:8px; }
.hero-atelier.luminous-hero.cinematic-hero .atelier-art-caption { position:static; display:flex; align-items:center; gap:16px; max-width:none; margin:0; padding:0 16px; min-height:44px; border-radius:28px; background:var(--surface); color:var(--ink); pointer-events:auto; }
.hero-atelier.luminous-hero.cinematic-hero .atelier-art-caption>span { color:var(--muted); font-size:.75rem; }
.hero-atelier.luminous-hero.cinematic-hero .atelier-art-caption .text-link { display:inline-flex; min-height:44px; padding:0; background:transparent; border:0; color:var(--ink); font-size:.8rem; }
.cine-scroll { display:inline-flex; align-items:center; gap:12px; min-height:44px; padding:8px 18px; border-radius:24px; background:var(--surface); color:var(--ink); font-size:.8rem; }
.cine-scroll>span { display:inline-block; font-size:1.2rem; }
.cine-intro { position:relative; padding-block:clamp(48px,7vw,96px); scroll-margin-top:24px; }
.cine-intro .hero-copy { width:min(900px,100%); margin-inline:auto; text-align:center; }
.cine-intro .atelier-byline { justify-content:center; color:var(--muted); }
.cine-intro .hero-copy h1 { font-size:clamp(2.4rem,5vw,4.5rem); line-height:1.45; font-weight:800; margin-inline:auto; max-width:none; }
.cine-intro h1 em { font-style:normal; font-weight:400; }
.cine-intro h1 em::after { display:none; }
.cine-intro .hero-description { max-width:680px; margin:24px auto 32px; font-size:1.05rem; line-height:2; }
.cine-intro .hero-buttons { justify-content:center; flex-wrap:wrap; }
/* Fully visible default: only IO-armed card wrappers receive a one-shot entrance. */
@media (prefers-reduced-motion:no-preference) and (forced-colors:none) {
  .mf-reveal { transition:opacity var(--cine-reveal-duration) ease-out,transform var(--cine-reveal-duration) ease-out; }
  .mf-reveal:not(.is-in) { opacity:0; transform:translateY(var(--cine-reveal-rise)); }
  html[data-cine-power=full] .cine-field { animation:cine-light var(--cine-field-duration) ease-in-out infinite alternate; }
  html[data-cine-power=full] .cine-field-two { animation-delay:-9s; animation-direction:alternate-reverse; }
}
@keyframes cine-light { from { transform:translate3d(-8px,0,0); opacity:.32; } to { transform:translate3d(var(--cine-field-travel),6px,0); opacity:var(--cine-field-opacity); } }
html .cinematic-hero[data-cine-paused=true] .cine-field { animation-play-state:paused!important; }
/* Native scroll effects have static fallbacks. No scroll-handler style writes. */
@supports (animation-timeline:view()) {
  @media (prefers-reduced-motion:no-preference) and (forced-colors:none) {
    html[data-cine-power=full] .cinematic-hero { view-timeline-name:--hero-stage; view-timeline-axis:block; }
    html[data-cine-power=full] .cine-darken { animation:cine-room-morph linear both; animation-timeline:--hero-stage; animation-range:exit 0% exit 100%; }
    html[data-cine-power=full] .cine-decor { animation:cine-depth linear both; animation-timeline:--hero-stage; animation-range:exit 0% exit 100%; }
    html[data-cine-power=full] .entry-menu-panel:not(.entry-arrived) { animation:cine-entry linear both; animation-timeline:view(); animation-range:entry 0% entry 100%; }
    html[data-cine-power=full] .header-inner::after { content:''; position:absolute; height:1px; inset:auto 18px 0; background:#edbe80; transform-origin:left; animation:cine-progress linear both; animation-timeline:scroll(root); }
  }
  @keyframes cine-room-morph { from { opacity:0; } to { opacity:1; } }
  @keyframes cine-depth { from { transform:translateY(0); } to { transform:translateY(var(--cine-depth-drift)); } }
  @keyframes cine-entry { from { opacity:.65; transform:translateY(12px); } to { opacity:1; transform:none; } }
  @keyframes cine-progress { from { transform:scaleX(0); } to { transform:scaleX(1); } }
}
@supports (view-transition-name:site-header) {
  @media (prefers-reduced-motion:no-preference) and (forced-colors:none) {
    @view-transition { navigation:auto; }
    .site-header { view-transition-name:site-header; }
    #single-art-image { view-transition-name:var(--art-transition-name,none); }
    ::view-transition-group(*) { animation-duration:var(--cine-transition-duration); animation-timing-function:cubic-bezier(.2,.7,.2,1); }
    ::view-transition-old(root) { animation:cine-page-out var(--cine-transition-duration) ease-out both; }
    ::view-transition-new(root) { animation:cine-page-in var(--cine-transition-duration) ease-in both; }
    ::view-transition-old(site-header),::view-transition-new(site-header) { animation:none; mix-blend-mode:normal; }
    html.mf-dialog-transition::view-transition-group(root) { animation:none; }
    html.mf-dialog-transition::view-transition-old(root),html.mf-dialog-transition::view-transition-new(root) { animation:none; }
  }
  @keyframes cine-page-out { to { opacity:0; } }
  @keyframes cine-page-in { from { opacity:0; } to { opacity:1; } }
  @media (prefers-reduced-motion:reduce),(forced-colors:active),print {
    @view-transition { navigation:none; }
    html::view-transition-group(*),html::view-transition-old(*),html::view-transition-new(*) { animation:none!important; }
    .site-header { view-transition-name:none; }
  }
}
@media (max-width:1100px) {
  html body.mf-site .desktop-nav { display:none; }
  html body.mf-site .menu-toggle { display:inline-flex; }
  html body.mf-site .header-commission { display:none; }
}
@media (max-width:700px) {
  :root { --cine-band-h:88px; --cine-side:12px; }
  .cine-painting { width:min(calc(100cqw - 8px),calc(96cqh * var(--hero-ratio,1.43))); }
  html body.mf-site .header-inner { width:calc(100% - 24px); gap:6px; }
  .cine-band { gap:8px; }
  .hero-atelier.luminous-hero.cinematic-hero .atelier-art-caption { padding-inline:12px; }
  .hero-atelier.luminous-hero.cinematic-hero .atelier-art-caption>span { display:none; }
  .cine-scroll { padding-inline:12px; font-size:.72rem; }
  .cine-intro .hero-description { font-size:.95rem; }
  html:not([data-cine-past=true]) .mf-view-home .mf-quick-contact { visibility:hidden; }
}
@media (prefers-reduced-motion:reduce),(forced-colors:active) {
  .mf-reveal { opacity:1!important; transform:none!important; }
  .cinematic-hero *,.entry-menu-panel,.header-inner::after { animation:none!important; transition:none!important; }
}
@media (forced-colors:active) {
  .cine-decor { display:none!important; }
  .hero-atelier.luminous-hero.cinematic-hero { background:Canvas; color:CanvasText; }
  .hero-atelier.luminous-hero.cinematic-hero .hero-art>.canvas-frame>img { filter:none!important; }
}
@media print {
  .cine-decor,.cine-band { display:none!important; }
  .hero-atelier.luminous-hero.cinematic-hero { height:auto; min-height:0; overflow:visible; background:transparent; }
  .cine-safe { position:static; display:block; container-type:normal; }
  .cine-painting,.cine-float { width:100%; transform:none!important; }
  .hero-atelier.luminous-hero.cinematic-hero .hero-art>.canvas-frame>img { filter:none!important; }
  .mf-reveal { opacity:1!important; transform:none!important; }
}
