/* MeshCore 0.7.1 — deterministic WebGL-only stage and optical text-stroke pass.
 * The original CSS blob and ring markup are intentionally removed from DOM.
 * No old fallback graphics are ever shown during reload, failures or context loss.
 */
.stage-graphic[data-render-state] {
  isolation:isolate;
  background:
    radial-gradient(ellipse 55% 47% at 49% 54%,rgba(94,111,112,.115),transparent 78%),
    linear-gradient(145deg,rgba(11,20,23,.12),transparent 60%);
}
.stage-graphic .stage-object,
.stage-graphic .stage-object-face,
.stage-graphic .stage-inner,
.stage-graphic .stage-outer,
.stage-graphic #stageObject {
  display:none!important;
}
.stage-graphic .workflow-loading {
  position:absolute;z-index:2;inset:0;
  display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:21px;
  background:radial-gradient(ellipse at center,rgba(19,36,36,.38),transparent 63%);
  pointer-events:none;
  color:rgba(211,225,222,.81);
  font:700 10px/1.6 Inter,Arial,sans-serif;
  letter-spacing:.15em;
  text-align:center;
  padding:20px;
}
.stage-graphic .workflow-loading[hidden],
.stage-graphic[data-render-state="ready"]>.workflow-loading {
  display:none!important;
}
.workflow-loading-indicator {
  position:relative;display:block;width:53px;height:53px;
  border:1px solid rgba(184,212,204,.22);
  border-top-color:rgba(211,243,227,.8);
  border-radius:50%;animation:meshcore-stage-loading 1.6s linear infinite;
}
.workflow-loading-indicator::after {
  content:'';position:absolute;inset:11px;
  border:1px solid rgba(198,221,212,.15);border-radius:50%;
}
@keyframes meshcore-stage-loading {to{transform:rotate(360deg)}}
.stage-graphic[data-render-state="failed"] .workflow-loading-indicator {
  border-color:rgba(196,214,213,.23);
  animation:none;
}
html[lang="fa"] .workflow-loading,
html[lang="ar"] .workflow-loading {
  font-family:Modam,Vazirmatn,system-ui,sans-serif;
  letter-spacing:0;
  font-size:14px;
}
@media(prefers-reduced-motion:reduce){
  .workflow-loading-indicator{animation:none;border-top-color:rgba(211,243,227,.76)}
}
/* The hero's outlined glyphs are isolated from the dot, which must never
 * inherit text-stroke or share a negative-tracking painted box.
 */
.hero h1 .line-mask.outline-line {
  -webkit-text-stroke:0!important;
  color:inherit;
  display:flex;
  align-items:baseline;
  gap:clamp(2px,.25vw,6px);
  letter-spacing:0!important;
  padding-block:.075em .16em;
  padding-inline:.035em .16em;
  overflow:hidden;
  white-space:nowrap;
}
.hero h1 .outline-text {
  display:inline-block;
  color:transparent;
  -webkit-text-stroke:clamp(.7px,.085vw,1.2px) #edf6eb;
  paint-order:stroke fill;
  font-weight:790;
  letter-spacing:-.045em;
  line-height:1.11;
  text-rendering:geometricPrecision;
  -webkit-font-smoothing:antialiased;
  transform-origin:left bottom;
}
.hero h1 .outline-line .fullstop {
  display:inline-block;
  flex:0 0 auto;
  color:var(--mc-lime);
  -webkit-text-stroke:0!important;
  letter-spacing:0;
  line-height:1;
}
html[data-theme="light"] .hero h1 .outline-text {
  -webkit-text-stroke-color:#edf6eb;
}
@media(max-width:760px){
  .hero h1 .outline-text{
    -webkit-text-stroke-width:.9px;
    letter-spacing:-.026em;
    font-weight:750;
  }
  .hero h1 .line-mask.outline-line {
    padding-inline:.04em .16em;
    padding-block:.09em .17em;
  }
}
/* Interlude: restoring air between white-stroked letters prevents overlapped
 * diagonal edges and produces more reliable painting at responsive sizes.
 */
.interlude-headline em {
  display:inline-block;
  font-weight:750;
  letter-spacing:-.028em!important;
  line-height:1.14;
  padding:.025em .045em .07em .015em;
  color:transparent!important;
  -webkit-text-stroke:clamp(.7px,.078vw,1.15px) #f4fbef!important;
  paint-order:stroke fill;
  text-rendering:geometricPrecision;
  -webkit-font-smoothing:antialiased;
  white-space:normal;
}
.interlude-headline h2 {
  line-height:1.02;
  letter-spacing:-.066em;
  overflow:visible;
}
@media(max-width:760px){
  .interlude-headline em {
    -webkit-text-stroke-width:.85px!important;
    letter-spacing:-.015em!important;
  }
}
/* Finale: the outlined word is a separate painted run; avoid deep negative
 * tracking, and keep ample line-height for stroke/counter shapes.
 */
.closing h2 {
  line-height:.99;
  letter-spacing:-.067em;
}
.closing h2>span:not(.closing-dot) {
  display:inline-block;
  color:transparent!important;
  -webkit-text-stroke:clamp(.7px,.076vw,1.15px) var(--text)!important;
  font-weight:770;
  letter-spacing:-.03em;
  line-height:1.11;
  padding:.012em .04em .075em .01em;
  paint-order:stroke fill;
  text-rendering:geometricPrecision;
  -webkit-font-smoothing:antialiased;
}
.closing h2 .closing-dot {
  -webkit-text-stroke:0!important;
  color:var(--accent-ink)!important;
}
@media(max-width:760px){
  .closing h2>span:not(.closing-dot){
    -webkit-text-stroke-width:.85px!important;
    letter-spacing:-.013em;
  }
  .closing h2{line-height:1.1}
}
/* Persian/Arabic are connected scripts; no negative letter-spacing or drawn
 * counter-overlapping strokes. The typographic ghost treatment uses a readable
 * translucent fill instead, without fracturing ligatures.
 */
html[dir="rtl"] .hero h1 .outline-text,
html[dir="rtl"] .interlude-headline em,
html[dir="rtl"] .closing h2>span:not(.closing-dot){
  -webkit-text-stroke:0!important;
  letter-spacing:0!important;
  color:rgba(235,247,230,.68)!important;
  font-weight:700;
  line-height:1.35;
}
html[dir="rtl"] .closing h2>span:not(.closing-dot) {
  color:color-mix(in srgb,var(--text) 68%,transparent)!important;
}
html[dir="rtl"] .hero h1 .line-mask.outline-line {
  overflow:visible;
  white-space:normal;
  gap:.05em;
  padding-block:.05em .18em;
}
html[dir="rtl"] .hero h1 .outline-text {font-size:.9em}
html[dir="rtl"] .interlude-headline h2 {line-height:1.3}
html[dir="rtl"] .closing h2 {line-height:1.3}
/* Optical-spacing audit: the outlines must remain visually separate even when
 * heavy display type is rasterized at different pixel densities. */
.hero h1 .outline-text {
  letter-spacing:.026em!important;
  -webkit-text-stroke-width:.95px!important;
  font-weight:720;
}
.interlude-headline em {
  letter-spacing:.022em!important;
  -webkit-text-stroke-width:.95px!important;
  font-weight:710;
}
.closing h2>span:not(.closing-dot){
  letter-spacing:.018em!important;
  -webkit-text-stroke-width:.9px!important;
  font-weight:720;
}
@media(max-width:760px){
  .hero h1 .outline-text{letter-spacing:.03em!important;-webkit-text-stroke-width:.8px!important}
  .interlude-headline em{letter-spacing:.024em!important;-webkit-text-stroke-width:.78px!important}
  .closing h2>span:not(.closing-dot){letter-spacing:.019em!important;-webkit-text-stroke-width:.78px!important}
}
html[dir="rtl"] .hero h1 .outline-text,
html[dir="rtl"] .interlude-headline em,
html[dir="rtl"] .closing h2>span:not(.closing-dot){letter-spacing:0!important;-webkit-text-stroke:0!important}
/* Optical kerning deliberately disabled only for outlined glyph runs: kerning
 * pairs can cause contour intersections even with a small positive tracking. */
.hero h1 .outline-text,
.interlude-headline em,
.closing h2>span:not(.closing-dot){
  font-kerning:none;
  font-feature-settings:'kern' 0;
}
