
/* =========================================================
   F L U E N T v3.5.0 — authoritative GLB, hero safety & mobile app QA
   ========================================================= */

/* Explicit Hero stacking. Major copy is never allowed to occupy the visual column. */
.rev-hero-grid{position:relative;isolation:isolate;grid-template-columns:minmax(0,1.08fr) minmax(420px,.92fr);gap:52px}
.rev-hero-copy{position:relative;z-index:5;min-width:0;max-width:100%}
.rev-hero-visual{position:relative;z-index:2;min-width:0;width:100%}
.rev-hero-title,.rev-hero-lead,.rev-hero-actions,.rev-hero-note{position:relative;z-index:5}
.rev-brand-orbit{z-index:3!important;pointer-events:none}
.rev-hero-caption{z-index:4!important}
.rev-hero-model-live model-viewer{pointer-events:none!important}

/* Authoritative 3D model: poster is the only first-paint layer, WebGL fades in after a loaded upright frame. */
.rev-hero-model-live{contain:layout paint;will-change:transform}
.rev-hero-model-live .rev-hero-model-poster{opacity:1!important;visibility:visible!important}
.rev-hero-model-live model-viewer{opacity:0!important;visibility:hidden!important}
.rev-hero-model-live.model-ready .rev-hero-model-poster{opacity:0!important;visibility:hidden!important}
.rev-hero-model-live.model-ready model-viewer{opacity:1!important;visibility:visible!important}
.rev-hero-model-live.model-failed .rev-hero-model-poster{opacity:1!important;visibility:visible!important}

/* PRACTICE / PERFORM are protected Hero concepts. Their visual centers sit halfway between the 2 rings. */
.rev-orbit-word{z-index:6;white-space:nowrap;line-height:1;width:82px;text-align:center;transform-origin:center center}
.rev-orbit-practice{left:24px!important;right:auto!important;top:50%!important;transform:translate(-50%,-50%) rotate(-90deg)!important}
.rev-orbit-perform{right:24px!important;left:auto!important;top:50%!important;transform:translate(50%,-50%) rotate(90deg)!important}
.rev-orbit-learn{top:8px!important}

/* English is independently composed, never a mirrored Persian layout. */
.locale-en .rev-hero-grid{direction:ltr;grid-template-columns:minmax(0,1.12fr) minmax(430px,.88fr);gap:44px}
.locale-en .rev-hero-copy{direction:ltr;text-align:left;min-width:0}
.locale-en .rev-hero-title{direction:ltr;text-align:left;font-size:clamp(46px,3.9vw,58.5px);line-height:1.14;letter-spacing:-.045em;max-width:100%}
.locale-en .rev-hero-line{white-space:nowrap}
.locale-en .rev-hero-lead{direction:ltr;text-align:left;max-width:650px;line-height:1.82}
.locale-en .rev-hero-actions,.locale-en .rev-hero-note{direction:ltr;justify-content:flex-start;text-align:left}
.locale-en .rev-hero-visual{direction:ltr}

/* Persian retains its own RTL composition. */
.locale-fa .rev-hero-grid{direction:rtl}
.locale-fa .rev-hero-copy{direction:rtl;text-align:right}
.locale-fa .rev-hero-title{direction:rtl;text-align:right;font-size:clamp(50px,4.1vw,59px);max-width:100%}
.locale-fa .rev-hero-lead{direction:rtl;text-align:right}

/* English navigation: current labels, true LTR sizing, no drift. */
.locale-en .header-inner{direction:ltr;gap:20px}
.locale-en .brand{margin-right:auto!important;margin-left:0!important;flex:0 0 auto}
.locale-en .desktop-nav{direction:ltr;gap:19px;white-space:nowrap}
.locale-en .header-actions{direction:ltr;gap:9px;white-space:nowrap}
.locale-en .desktop-nav a,.locale-en .header-actions a{white-space:nowrap}

/* Desktop/laptop guard rails. */
@media (max-width:1366px) and (min-width:901px){
  .rev-hero-grid{grid-template-columns:minmax(0,1.06fr) minmax(430px,.94fr);gap:42px}
  .locale-en .rev-hero-grid{grid-template-columns:minmax(0,1.1fr) minmax(440px,.9fr);gap:38px}
  .locale-en .rev-hero-title{font-size:clamp(46px,3.95vw,55px);max-width:100%}
  .locale-en .rev-hero-lead{font-size:16px;max-width:620px}
  .locale-en .header-inner{gap:13px}
  .locale-en .desktop-nav{gap:13px;font-size:12.5px}
  .locale-en .header-actions{gap:7px}
  .locale-en .header-placement{font-size:11.5px}
  .locale-en .button-small{font-size:11.5px;padding-inline:12px}
}

/* Short mobile lead replaces the long desktop paragraph; content is not merely squeezed. */
.rev-hero-lead-mobile{display:none}

/* Touch + mobile web-app behavior for public pages. */
@media(max-width:900px){
  .site-header{padding-top:env(safe-area-inset-top)}
  .mobile-nav.is-open{max-height:calc(100dvh - 72px - env(safe-area-inset-top));overflow:auto;overscroll-behavior:contain;padding-bottom:calc(18px + env(safe-area-inset-bottom))}
  .mobile-nav a,.menu-button,.language-link{min-height:44px}
}

@media(max-width:760px){
  html{scroll-padding-top:76px}
  body{overflow-x:hidden}
  .homepage-revision{overflow-x:hidden}
  .homepage-revision .rev-shell{width:calc(100% - 28px)!important}
  .homepage-revision .rev-hero{padding:22px 0 30px!important}
  .homepage-revision .rev-hero-grid{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:20px!important;min-height:0!important}
  .homepage-revision .rev-hero-copy{order:1!important;width:100%!important;max-width:none!important;padding:0!important}
  .homepage-revision .rev-hero-visual{order:2!important;width:100%!important;max-width:none!important;height:350px!important;min-height:350px!important;border-radius:26px!important}
  .homepage-revision .rev-hero-title{font-size:clamp(34px,10.1vw,43px)!important;line-height:1.22!important;margin:10px 0 14px!important;max-width:none!important}
  .homepage-revision .rev-hero-lead:not(.rev-hero-lead-mobile){display:none!important}
  .homepage-revision .rev-hero-lead-mobile{display:block!important;font-size:14px!important;line-height:1.9!important;margin:0!important}
  .homepage-revision .rev-hero-actions{display:grid!important;grid-template-columns:1fr!important;gap:9px!important;width:100%!important;margin-top:18px!important}
  .homepage-revision .rev-hero-actions .rev-btn{width:100%!important;min-height:52px!important}
  .homepage-revision .rev-hero-note{font-size:10.5px!important;line-height:1.7!important;margin-top:11px!important}
  .homepage-revision .rev-brand-orbit{width:226px!important;height:226px!important;top:46%!important;left:50%!important}
  .homepage-revision .rev-ring-one{inset:0!important}.homepage-revision .rev-ring-two{inset:34px!important}
  .homepage-revision .rev-hero-model-live{width:120px!important;height:120px!important;border-radius:30px!important}
  .homepage-revision .rev-orbit-word{font-size:7.5px!important;width:68px!important;letter-spacing:.12em!important}
  .homepage-revision .rev-orbit-practice{left:12.5%!important;top:50%!important;transform:translate(-50%,-50%) rotate(-90deg)!important}
  .homepage-revision .rev-orbit-perform{right:12.5%!important;top:50%!important;transform:translate(50%,-50%) rotate(90deg)!important}
  .homepage-revision .rev-hero-caption{left:12px!important;right:12px!important;bottom:12px!important;padding:12px 14px!important}
  .homepage-revision .rev-hero-caption strong{font-size:10.5px!important;line-height:1.65!important}
  .homepage-revision .rev-trust-strip{margin-top:18px!important}

  .locale-en .rev-hero-grid,.locale-fa .rev-hero-grid{direction:inherit}
  .locale-en .rev-hero-copy{direction:ltr!important;text-align:left!important}
  .locale-en .rev-hero-title,.locale-en .rev-hero-lead-mobile{direction:ltr!important;text-align:left!important}
  .locale-en .rev-hero-line{white-space:normal!important}
  .locale-en .rev-hero-actions,.locale-en .rev-hero-note{direction:ltr!important;text-align:left!important;justify-content:flex-start!important}
  .locale-fa .rev-hero-copy,.locale-fa .rev-hero-title,.locale-fa .rev-hero-lead-mobile{direction:rtl!important;text-align:right!important}

  /* Mobile form ergonomics: prevent iOS zoom and keep keyboard workflow natural. */
  .rev-ask-form input,.rev-ask-form select,.rev-ask-form textarea,.ask-form input,.ask-form select,.ask-form textarea{font-size:16px!important;min-height:48px}
  .rev-ask-form textarea,.ask-form textarea{min-height:132px}
  .rev-ask-form button,.ask-form button{min-height:50px}
  .floating-channels{bottom:calc(14px + env(safe-area-inset-bottom))!important}
}

@media(max-width:430px){
  .homepage-revision .rev-hero-visual{height:330px!important;min-height:330px!important}
  .homepage-revision .rev-brand-orbit{width:214px!important;height:214px!important}
  .homepage-revision .rev-ring-two{inset:32px!important}
  .homepage-revision .rev-hero-model-live{width:114px!important;height:114px!important}
}

/* Cycle clarity: axes remain visible and center copy breathes. */
.rev-cycle-track{stroke:rgba(11,95,119,.28)!important;stroke-width:2!important}
.rev-cycle-track-inner{stroke:rgba(11,95,119,.16)!important;stroke-width:1.6!important}
.rev-cycle-stage{width:360px!important;padding:22px 30px!important}
.rev-cycle-stage-title{line-height:1.5!important}
.rev-cycle-stage-copy{line-height:1.9!important;max-width:30ch!important}

/* Accessibility / mobile app fundamentals. */
:where(a,button,input,select,textarea):focus-visible{outline:3px solid #f5a201;outline-offset:3px}
@media(prefers-reduced-motion:reduce){
  .rev-ring-one,.rev-ring-two,.rev-hero-model-live{animation:none!important}
  .rev-hero-model-live model-viewer,.rev-hero-model-live .rev-hero-model-poster{transition:none!important}
}
