/* Spatial science scenes enhance the public website only. */
.ep-skip-link {
  position: fixed;
  z-index: 100;
  top: 12px;
  left: 16px;
  padding: 10px 14px;
  border-radius: 10px;
  background: #f6e8c8;
  color: #15251f;
  font-weight: 700;
  transform: translateY(-180%);
  transition: transform .18s ease;
}
.ep-skip-link:focus { transform: translateY(0); }
.ep-landing :where(a, button, summary):focus-visible {
  outline: 2px solid #4b675b;
  outline-offset: 4px;
}
.ep-landing :is(.ep-hero, .ep-footer) :where(a, button):focus-visible { outline-color: #e5cfa8; }

.ep-video-shell { isolation: isolate; }
.ep-video-blank { overflow: hidden; }
.ep-video-blank > picture { position: absolute; inset: 0; z-index: 0; }
.ep-video-blank > picture .ep-hero-backdrop { width: 100%; height: 100%; object-fit: cover; opacity: .38; filter: saturate(.8) contrast(1.04); }
.ep-hero-video { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; object-fit: cover; opacity: .72; mix-blend-mode: multiply; filter: saturate(.72) contrast(1.06); }
.ep-video-overlay { position: absolute; z-index: 3; left: clamp(22px, 4vw, 54px); bottom: clamp(22px, 4vw, 48px); display: grid; gap: 8px; color: #17251f; text-align: left; pointer-events: none; }
.ep-video-overlay .ep-video-kicker { color: rgba(23,37,31,.68); font-size: 11px; font-weight: 800; letter-spacing: .18em; }
.ep-video-overlay strong { font-family: var(--ep-display); font-size: clamp(24px, 3.4vw, 44px); font-weight: 500; letter-spacing: -.04em; }
.ep-video-overlay small { color: rgba(23,37,31,.72); font-size: 14px; }

.ep-source-search button { min-width: 90px; }
.ep-resource-card:focus-visible { --lift: -7px; border-color: var(--ep-line-strong); background: var(--ep-bg); }
.ep-carousel-controls button { min-width: 44px; min-height: 44px; }

@media (max-width: 720px) {
  .ep-video-overlay { left: 20px; right: 20px; bottom: 22px; }
  .ep-video-overlay strong { font-size: 27px; }
  .ep-video-overlay small { font-size: 13px; }
  .ep-video-shell { margin-top: 64px; border-radius: 22px; }
}
@media (prefers-reduced-motion: reduce) {
  .ep-skip-link { transition: none; }
  .ep-hero-video { display: none; }
}
.ep-hero.ep-spatial-hero {
  --ep-spatial-gutter: max(var(--ep-gutter), calc((100vw - 1312px) / 2));
  --ep-spatial-copy-width: min(590px, 44vw);
  background: #101a14;
  min-height: 720px;
}
.ep-spatial-hero .ep-hero-backdrop { opacity: .08; }
.ep-spatial-hero .ep-hero-video { opacity: 1; mix-blend-mode: normal; filter: none; }
.ep-spatial-hero.ep-container::before {
  background: linear-gradient(90deg, #101a14 1%, rgba(16,26,20,.98) 35%, rgba(16,26,20,.66) 50%, rgba(16,26,20,.1) 76%),
    linear-gradient(0deg, #101a14, transparent 25%);
}
.ep-spatial-hero .ep-hero-copy { width: var(--ep-spatial-copy-width); }
.ep-spatial-hero .ep-hero-lead { max-width: 540px; line-height: 1.7; }
.ep-spatial-hero .ep-hero-actions .ep-dark-button {
  color: #15251f !important;
  background: #e5cfa8;
  border-color: #e5cfa8;
  box-shadow: 0 6px 24px rgba(0,0,0,.15);
}
.ep-spatial-hero .ep-hero-actions .ep-dark-button:hover { background: #f4e4c7; }
.ep-spatial-stage {
  position: absolute;
  z-index: 2;
  width: auto;
  left: calc(var(--ep-spatial-gutter) + var(--ep-spatial-copy-width) + 24px);
  right: var(--ep-spatial-gutter);
  top: 28px;
  bottom: 52px;
  color: #e9e9dd;
  display: grid;
  grid-template-rows: auto minmax(0,1fr) auto;
  padding: 30px 24px 20px;
}
.ep-spatial-viewport { position: relative; width: 100%; min-height: 0; cursor: grab; outline: none; border-radius: 32px; }
.ep-spatial-viewport:active { cursor: grabbing; }
.ep-spatial-viewport::before {
  content: ""; position: absolute; inset: 5%; pointer-events: none;
  background: radial-gradient(ellipse at 58% 44%, rgba(136,150,98,.08), transparent 64%);
}
.ep-spatial-canvas { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; }
.is-spatial-ready .ep-spatial-canvas { opacity: 1; }
.ep-spatial-fallback {
  position: absolute; inset: 0; display: grid; place-items: center;
  pointer-events: none; overflow: hidden;
}
.ep-spatial-fallback img {
  display: block; width: 100%; height: 100%; object-fit: contain;
}
.is-spatial-ready .ep-spatial-fallback { display: none; }
.ep-spatial-stage[data-spatial-decorative="true"] { display: block; padding: 0; pointer-events: none; }
.ep-spatial-stage[data-spatial-decorative="true"] .ep-spatial-viewport { height: 100%; cursor: default; }
.ep-spatial-motion-toggle {
  position: absolute; right: 12px; bottom: 12px; width: 44px; height: 44px;
  display: grid; place-items: center; padding: 10px; border: 1px solid rgba(205,215,197,.24);
  border-radius: 50%; background: #162019; color: #bdc8b6; cursor: pointer; pointer-events: auto;
}
.ep-spatial-motion-toggle[hidden] { display: none; }
.ep-spatial-motion-toggle svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.5; }
.ep-spatial-motion-toggle[aria-pressed="true"] .ep-spatial-play-icon,
.ep-spatial-motion-toggle[aria-pressed="false"] .ep-spatial-pause-icon { display: none; }
.ep-spatial-motion-toggle:hover { background: #263125; color: #eeead7; }
.ep-spatial-stage :focus-visible { outline: 2px solid #ebd7a9; outline-offset: 4px; }

/* The public hero now uses the authored Blender world. The earlier abstract
   stage remains as a non-rendered compatibility node for old preference code. */
.ep-spatial-stage { display: none !important; }
.ep-world-stage {
  position: absolute; z-index: 2; inset: 0; pointer-events: none; overflow: hidden;
}
.ep-world-scene, .ep-world-viewport { position: absolute; inset: 0; width: 100%; height: 100%; }
.ep-world-viewport { overflow: hidden; background: #101a14; }
.ep-world-viewport::after { content: ""; position: absolute; inset: 0; z-index: 3; pointer-events: none;
  background: linear-gradient(90deg, #101a14 0%, rgba(16,26,20,.94) 28%, rgba(16,26,20,.42) 51%, rgba(16,26,20,.05) 78%), linear-gradient(0deg, #101a14 0%, transparent 28%); }
.ep-world-poster, .ep-world-tour-poster, .ep-world-canvas { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ep-world-tour-poster { z-index: 1; }
.ep-world-poster { opacity: .96; z-index: 0; }
.ep-world-tour-poster { opacity: 1; }
.ep-world-canvas { opacity: 0; z-index: 2; transition: opacity .45s ease; }
.is-world-ready .ep-world-canvas { opacity: 1; }
.is-world-ready .ep-world-poster, .is-world-ready .ep-world-tour-poster { opacity: 0; }
.ep-hero.is-video-preview-active .ep-world-viewport { visibility: hidden; }

.ep-product .ep-pillar-demo { perspective: 1400px; }
.ep-product .ep-demo-window {
  transform: rotateY(-9deg) rotateX(5deg) translateZ(0);
  transform-origin: 50% 55%; border: 1px solid rgba(255,249,228,.6);
  box-shadow: 12px 15px 0 -5px rgba(41,58,47,.45), 26px 31px 0 -12px rgba(202,206,171,.2), 0 36px 80px rgba(0,0,0,.3);
}
.ep-product .ep-pillar-mint .ep-demo-window { transform: rotateY(8deg) rotateX(5deg); }
.ep-product .ep-demo-window:focus-within { transform: none; }
.ep-product [data-depth-scene] { perspective: 1400px; }
.ep-depth-rig {
  position: relative; width: 100%; height: 100%; min-width: 0; transform-style: preserve-3d;
  transform: translateY(var(--ep-depth-lift, 0px)) rotateX(var(--ep-depth-x, 4deg)) rotateY(var(--ep-depth-y, -6deg));
}
.ep-depth-rig::before, .ep-depth-rig::after {
  content: ""; position: absolute; inset: 4px; border: 1px solid rgba(221,230,215,.48); border-radius: 20px;
  background: linear-gradient(145deg, rgba(218,209,175,.25), rgba(48,80,64,.52)); pointer-events: none;
  transform: translate3d(14px, 14px, -28px);
}
.ep-depth-rig::after { transform: translate3d(28px, 28px, -56px); opacity: .6; }
.ep-product [data-depth-scene] .ep-demo-window {
  transform: translateZ(0); transform-style: flat; transition: none;
  box-shadow: 0 24px 60px rgba(0,0,0,.26);
}
.ep-product [data-depth-scene]:focus-within .ep-depth-rig,
.ep-product [data-depth-state="flat"] .ep-depth-rig { transform: none; }
.ep-product [data-depth-state="flat"] .ep-depth-rig::before,
.ep-product [data-depth-state="flat"] .ep-depth-rig::after { display: none; }
.ep-helix-card img { border: 1px solid rgba(240,234,217,.5); }
.ep-account-dialog, .ep-auth-dialog { box-shadow: 0 32px 110px rgba(6,16,12,.32); }

@media (max-width: 1100px) {
  .ep-spatial-hero h1 { font-size: clamp(46px, 5.6vw, 68px); }
  .ep-spatial-stage { padding-inline: 14px; top: 44px; }
}
@media (max-width: 720px) {
  .ep-hero.ep-container.ep-spatial-hero { height: auto; min-height: 0; padding: 52px var(--ep-gutter) 28px; flex-direction: column; align-items: stretch; }
  .ep-spatial-hero .ep-hero-copy { width: 100%; }
  .ep-spatial-hero h1 { font-size: clamp(43px, 11.7vw, 66px); }
  .ep-spatial-hero .ep-hero-lead { font-size: 16px; max-width: 560px; }
  .ep-spatial-hero.ep-container::before {
    background: linear-gradient(90deg, rgba(16,26,20,.94), rgba(16,26,20,.7) 58%, rgba(16,26,20,.35)),
      linear-gradient(0deg, rgba(16,26,20,.45), transparent 48%, rgba(16,26,20,.2));
  }
  .ep-spatial-stage { position: relative; top: auto; bottom: auto; width: 100%; height: 450px; left: auto; right: auto; padding: 0; margin-top: 30px; flex: none; }
  .ep-world-stage { position: absolute; inset: 0; }
  .ep-product .ep-demo-window, .ep-product .ep-pillar-mint .ep-demo-window { transform: none; }
  .ep-spatial-hero > .ep-era-marker { display: none; }
  .ep-product article.ep-pillar > [data-depth-scene] { height: auto; min-height: 300px; padding: 18px 18px 38px; }
  .ep-depth-rig { height: auto; transform: none; }
  .ep-depth-rig::before, .ep-depth-rig::after { display: none; }
  .ep-product [data-depth-scene] .ep-demo-window { height: auto; min-height: 250px; }
}
@media (prefers-reduced-motion: reduce) {
  .ep-world-tour-poster { display: none; }
}
@media print {
  .ep-world-tour-poster { display: none; }
}
/* Keep the static Blender still behind a blocked video or unsupported codec. */
@supports not (object-fit: cover) {
  .ep-world-tour-poster { display: none; }
}
@media print {
  .ep-product .ep-demo-window, .ep-product .ep-pillar-mint .ep-demo-window { transform: none; }
  .ep-spatial-stage *, .ep-spatial-hero .ep-hero-backdrop { animation: none !important; transition: none !important; }
  .ep-depth-rig { transform: none; }
  .ep-depth-rig::before, .ep-depth-rig::after { display: none; }
}
@media print {
  .ep-spatial-stage { display: none; }
  .ep-world-stage { display: none; }
  .ep-hero.ep-spatial-hero { min-height: 0; height: auto; padding-bottom: 30px; }
  .ep-spatial-hero .ep-hero-copy { width: 100%; }
  .ep-depth-rig { transform: none; }
  .ep-depth-rig::before, .ep-depth-rig::after { display: none; }
}

/* One restrained type scale for the public page; no remote font dependency. */
.ep-landing {
  --ep-display: -apple-system, BlinkMacSystemFont, "SF Pro Display", "PingFang SC", "Microsoft YaHei", sans-serif;
  --ep-body: -apple-system, BlinkMacSystemFont, "SF Pro Text", "PingFang SC", "Microsoft YaHei", sans-serif;
  --ep-muted: #59645f;
  font-kerning: normal;
  -webkit-font-smoothing: antialiased;
}
.ep-landing :is(h1, h2, h3) {
  text-wrap: balance;
  word-break: normal;
  line-break: strict;
  overflow-wrap: break-word;
  letter-spacing: -.015em;
}
.ep-landing :is(p, dd) { overflow-wrap: anywhere; text-wrap: pretty; }
.ep-hero.ep-spatial-hero h1 {
  font-size: clamp(46px, 4.8vw, 68px);
  line-height: 1.16;
  font-weight: 600;
  letter-spacing: -.025em;
  text-shadow: 0 3px 20px rgba(0,0,0,.16);
}
.ep-hero .ep-hero-lead { font-size: 18px; line-height: 1.8; max-width: 32em; }
.ep-section-heading h2 { font-size: clamp(28px, 3vw, 42px); line-height: 1.3; font-weight: 600; }
.ep-eyebrow { font-size: 12px; line-height: 1.5; letter-spacing: .06em; font-weight: 600; }
.ep-brand strong { font-family: var(--ep-body); font-size: 24px; font-weight: 650; letter-spacing: -.04em; }
.ep-nav-links { gap: 24px; }
.ep-nav-links a::before { display: none; }
.ep-nav-links a { min-height: 44px; display: inline-flex; align-items: center; font-size: 13px; }
.ep-header.is-scrolled { box-shadow: 0 5px 20px rgba(24,38,31,.06); }
.ep-landing :is(.ep-dark-button, .ep-soft-button, .ep-outline-button) {
  min-height: 44px; padding-inline: 18px; border-radius: 11px;
  font-size: 14px; font-weight: 600; line-height: 1.4; letter-spacing: 0;
  transition: background-color .16s ease, border-color .16s ease, box-shadow .16s ease;
}
.ep-product article.ep-pillar > .ep-pillar-copy {
  padding: 32px; border-radius: 22px; align-self: center;
  background: rgba(250,249,245,.97);
  box-shadow: 0 12px 40px rgba(4,10,9,.16);
}
.ep-product article.ep-pillar .ep-pillar-copy h3 {
  font-size: clamp(24px, 2.1vw, 30px); font-weight: 600; line-height: 1.35; letter-spacing: -.015em;
}
.ep-product article.ep-pillar .ep-pillar-copy > p {
  margin: 16px 0 24px; color: var(--ep-muted); font-size: 15px; line-height: 1.8;
}
.ep-product article.ep-pillar .ep-accordion { margin-top: 0; }
.ep-accordion summary, .ep-faq-list summary {
  min-height: 60px; padding: 19px 30px 19px 0;
  font-size: 15px; font-weight: 600; line-height: 1.55; letter-spacing: 0;
}
.ep-accordion summary::before, .ep-accordion summary::after,
.ep-faq-list summary::before, .ep-faq-list summary::after { width: 12px; right: 3px; }
.ep-accordion details, .ep-faq-list details { border-color: rgba(45,65,54,.14); }
.ep-accordion details p, .ep-faq-list details p {
  font-size: 14px; line-height: 1.85; color: var(--ep-muted); margin: 0 20px 20px 0;
}
.ep-product article.ep-pillar .ep-accordion details.is-opened { background: transparent; }
.ep-tab-list { gap: 6px; }
.ep-tab-list button { font-size: 14px; font-weight: 550; }
.ep-tab-panel > div:last-child h3 { font-size: 28px; font-weight: 600; line-height: 1.4; }
.ep-tab-panel > div:last-child > p:not(.ep-eyebrow) { font-size: 16px; line-height: 1.8; }
.ep-role-card { min-height: 300px; padding: 28px; border-radius: 18px; }
.ep-role-card h3 { font-size: 24px; font-weight: 600; line-height: 1.4; letter-spacing: -.015em; }
.ep-role-card p { font-size: 15px; line-height: 1.8; }
.ep-resource-grid { width: min(1120px, calc(100% - var(--ep-gutter) * 2)); gap: 18px; }
.ep-resource-card { min-height: 224px; padding: 24px; border-radius: 18px; box-shadow: 0 4px 16px rgba(35,48,39,.035); }
.ep-resource-card span { max-width: calc(100% - 28px); font-size: 12px; line-height: 1.6; letter-spacing: .02em; }
.ep-resource-card h3 { font-size: 19px; font-weight: 600; line-height: 1.5; letter-spacing: -.01em; }
.ep-resource-card small { font-size: 12px; }
.ep-stack-copy h2 { font-size: clamp(26px, 2.6vw, 36px); font-weight: 600; line-height: 1.35; }
.ep-faq { padding: 100px 0 120px; }
.ep-faq-inner { width: min(760px, calc(100% - var(--ep-gutter) * 2)); }
.ep-faq-list summary { font-size: 16px; padding-block: 22px; }
.ep-footer-brand strong { font-size: 32px; font-weight: 600; }
.ep-footer-grid { gap: 44px 30px; }
.ep-footer-grid a, .ep-footer-grid button { font-size: 13px; line-height: 1.65; }
.ep-download-card h2 { font-family: var(--ep-body); font-size: 28px; font-weight: 600; line-height: 1.35; letter-spacing: -.02em; }
.ep-landing :is(.ep-download-card, .ep-account-card, .ep-auth-card) > p:not(.ep-eyebrow) { font-size: 14px; line-height: 1.75; }

@media (prefers-reduced-motion: reduce) {
  .ep-landing :is(.ep-dark-button, .ep-soft-button, .ep-outline-button) { transition: none; }
}

@media (max-width: 720px) {
  .ep-landing { --ep-gutter: 24px; }
  .ep-brand strong { font-size: 22px; }
  .ep-hero.ep-spatial-hero h1 { font-size: clamp(36px, 9.2vw, 52px); line-height: 1.2; }
  .ep-hero .ep-hero-lead { font-size: 16px; line-height: 1.8; }
  .ep-section-heading h2 { font-size: 28px; line-height: 1.4; }
  .ep-product article.ep-pillar.ep-container { padding: 76px var(--ep-gutter) 56px; }
  .ep-product article.ep-pillar > .ep-pillar-copy { padding: 25px 22px; border-radius: 20px; }
  .ep-product article.ep-pillar .ep-pillar-copy h3 { font-size: 24px; line-height: 1.45; }
  .ep-product article.ep-pillar .ep-pillar-copy > p { font-size: 15px; margin: 14px 0 22px; }
  .ep-accordion summary { font-size: 15px; }
  .ep-workflows, .ep-responsibility { padding: 72px 0; }
  .ep-tabs { width: calc(100% - 48px); }
  .ep-tab-list { width: calc(100% - 54px); }
  .ep-tab-list button { width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .ep-tab-mobile-toggle { width: 44px; height: 46px; }
  .ep-tab-panel > div:last-child h3 { font-size: 24px; }
  .ep-role-card { min-height: 280px; }
  .ep-stack { padding-bottom: 72px; }
  .ep-stack-card { width: calc(100% - 48px); }
  .ep-resources { height: auto; padding: 72px 0; }
  .ep-resources .ep-section-heading > .ep-eyebrow,
  .ep-resources .ep-section-heading > h2 { display: block; }
  .ep-resource-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .ep-resource-card { min-height: 208px; padding: 18px; }
  .ep-resource-card h3 { font-size: 17px; }
  .ep-resource-card i { top: 18px; right: 18px; }
  .ep-faq { padding: 72px 0 88px; }
  .ep-footer-grid { min-height: 0; gap: 36px 24px; padding: 40px 0 48px; align-content: start; }
  .ep-footer-grid > div { min-height: 0; }
  .ep-mobile-menu a, .ep-mobile-menu > button { font-family: var(--ep-body); font-size: 23px; font-weight: 550; }
}
