:root {
  --ivory: #f4f0e7;
  --warm-white: #fbf8f1;
  --gold: #b69a64;
  --gold-light: #d6c39f;
  --black: #11110f;
  --graphite: #232321;
  --muted: #6f6b63;
  --line: rgba(17,17,15,.16);
  --max: 1360px;
  --pad: clamp(22px, 5vw, 72px);
  --ease: cubic-bezier(.22,1,.36,1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--ivory);
  color: var(--black);
  font-family: "DM Sans", Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
img { max-width: 100%; display: block; }

.noise {
  position: fixed; inset: 0; z-index: 9999; pointer-events: none; opacity: .035;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E");
}

.site-header {
  position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
  display: grid; grid-template-columns: 1fr auto 1fr; align-items: center;
  height: 86px; padding: 0 var(--pad); color: var(--warm-white);
  border-bottom: 1px solid rgba(255,255,255,.12);
  transition: background .35s ease, color .35s ease, height .35s ease, backdrop-filter .35s ease;
}
.site-header.scrolled {
  height: 72px; color: var(--black); background: rgba(244,240,231,.88);
  border-bottom-color: var(--line); backdrop-filter: blur(16px);
}
.brand { display: inline-flex; align-items: center; gap: 12px; width: fit-content; font-weight: 600; letter-spacing: .2em; font-size: .95rem; }
.brand-mark { width: 22px; height: 22px; border: 1px solid currentColor; border-radius: 50%; position: relative; }
.brand-mark::after { content: ""; position: absolute; width: 8px; height: 8px; inset: 6px; background: var(--gold); border-radius: 50%; }
.primary-nav { display: flex; align-items: center; gap: 36px; font-size: .84rem; }
.primary-nav a { opacity: .78; transition: opacity .2s ease; }
.primary-nav a:hover { opacity: 1; }
.header-actions { justify-self: end; display: flex; align-items: center; gap: 20px; }
.language-switcher { display:flex; align-items:center; gap:2px; border:1px solid rgba(255,255,255,.22); padding:3px; }
.language-option { border:0; background:transparent; color:inherit; cursor:pointer; min-width:32px; height:28px; padding:0 7px; font-size:.64rem; letter-spacing:.12em; opacity:.58; transition:background .2s ease,color .2s ease,opacity .2s ease; }
.language-option:hover { opacity:1; }
.language-option.active { background:var(--warm-white); color:var(--black); opacity:1; }
.site-header.scrolled .language-switcher { border-color:var(--line); }
.site-header.scrolled .language-option.active { background:var(--black); color:var(--warm-white); }
.form-honeypot { position:absolute !important; left:-10000px !important; width:1px !important; height:1px !important; overflow:hidden !important; }
.contact-form button:disabled { opacity:.58; cursor:wait; transform:none; }
.menu-toggle { display: none; background: none; border: 0; width: 40px; height: 40px; padding: 10px; }
.menu-toggle span { display:block; height:1px; background:currentColor; margin:7px 0; transition:.3s ease; }

.button { display: inline-flex; align-items: center; justify-content: center; min-height: 54px; padding: 0 26px; border: 1px solid transparent; cursor: pointer; text-transform: uppercase; letter-spacing: .13em; font-size: .72rem; font-weight: 600; transition: transform .25s var(--ease), background .25s ease, color .25s ease; }
.button:hover { transform: translateY(-2px); }
.button-small { min-height: 42px; padding: 0 19px; font-size: .68rem; }
.button-dark { background: var(--warm-white); color: var(--black); }
.site-header.scrolled .button-dark { background: var(--black); color: var(--warm-white); }
.button-gold { background: var(--gold); color: var(--black); }
.button-gold:hover { background: var(--gold-light); }
.text-link { display: inline-flex; align-items: center; gap: 10px; font-size: .84rem; border-bottom: 1px solid rgba(255,255,255,.5); padding-bottom: 5px; }

.hero {
  min-height: 100svh; background: var(--black); color: var(--warm-white); position: relative;
  display: flex; align-items: flex-end; overflow: hidden; padding: 160px var(--pad) 58px;
}
.hero::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(0,0,0,.72) 0%, rgba(0,0,0,.22) 53%, rgba(0,0,0,.28) 100%); }
.hero-media { position:absolute; inset:0; overflow:hidden; }
.hero-glow { position:absolute; width:70vw; height:70vw; right:-18vw; top:-25vw; border-radius:50%; background:radial-gradient(circle, rgba(182,154,100,.35) 0%, rgba(182,154,100,.08) 42%, transparent 68%); }
.hero-orbit { position:absolute; border:1px solid rgba(255,255,255,.11); border-radius:50%; }
.orbit-one { width:72vw; height:72vw; right:-13vw; top:-13vw; animation: rotate 28s linear infinite; }
.orbit-two { width:48vw; height:48vw; right:0; top:4vw; border-style:dashed; animation: rotate 22s linear infinite reverse; }
.hero-stage { position:absolute; right:5vw; bottom:-8vh; width:min(56vw,760px); height:76vh; transform:perspective(900px) rotateY(-10deg); background:linear-gradient(150deg, #2f2d29 0%, #151513 55%, #080808 100%); clip-path:polygon(11% 0,100% 10%,93% 100%,0 90%); box-shadow:0 0 100px rgba(182,154,100,.08) inset; }
.stage-line { position:absolute; display:block; height:1px; background:rgba(214,195,159,.35); transform-origin:left; }
.stage-line-1 { width:90%; left:6%; top:31%; transform:rotate(12deg); }
.stage-line-2 { width:84%; left:9%; top:63%; transform:rotate(-8deg); }
.stage-light { position:absolute; width:16px; height:16px; border-radius:50%; background:#efe0bf; box-shadow:0 0 14px 5px rgba(239,224,191,.5), 0 0 80px 22px rgba(182,154,100,.28); }
.stage-light-1 { left:23%; top:19%; }
.stage-light-2 { left:66%; top:42%; }
.stage-light-3 { left:44%; top:71%; }
.hero-content { position:relative; z-index:2; max-width:900px; padding-bottom:70px; }
.eyebrow { margin:0 0 20px; font-size:.72rem; text-transform:uppercase; letter-spacing:.22em; font-weight:600; }
.hero h1 { margin:0; font-family:"Manrope", sans-serif; font-size:clamp(3.9rem, 9.4vw, 9.7rem); font-weight:500; letter-spacing:-.065em; line-height:.84; max-width:1070px; }
.hero h1 span, .hero h1 em { display:block; }
.hero h1 em { font-family:"Playfair Display", serif; font-weight:500; color:var(--gold-light); letter-spacing:-.04em; }
.hero-copy { width:min(560px, 90%); font-size:clamp(1rem,1.4vw,1.2rem); line-height:1.65; color:rgba(251,248,241,.72); margin:34px 0 32px; }
.hero-actions { display:flex; align-items:center; gap:30px; }
.hero-meta { position:absolute; z-index:2; right:var(--pad); bottom:62px; display:flex; gap:45px; font-size:.7rem; text-transform:uppercase; letter-spacing:.12em; color:rgba(255,255,255,.7); }
.hero-meta div { display:flex; flex-direction:column; gap:8px; }
.meta-number { color:var(--gold-light); }
@keyframes rotate { to { transform: rotate(360deg); } }

.section-shell { max-width:var(--max); margin:0 auto; padding-left:var(--pad); padding-right:var(--pad); }
.intro { padding-top:150px; padding-bottom:150px; }
.section-kicker { display:flex; justify-content:space-between; border-top:1px solid var(--line); padding-top:16px; font-size:.67rem; text-transform:uppercase; letter-spacing:.18em; color:var(--muted); }
.intro-grid { display:grid; grid-template-columns:1.25fr .75fr; gap:10vw; margin-top:70px; align-items:start; }
.intro h2, .services h2, .contact-section h2, .process-content h2 { margin:0; font-size:clamp(2.5rem,5vw,5.2rem); line-height:1.02; letter-spacing:-.055em; font-weight:500; }
.intro-copy { font-size:1.05rem; color:var(--muted); line-height:1.75; padding-top:10px; }
.intro-copy p { margin:0 0 22px; }
.stats-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); margin-top:100px; }
.stats-grid div { background:var(--ivory); min-height:170px; padding:32px; display:flex; flex-direction:column; justify-content:space-between; }
.stats-grid strong { font-size:2.8rem; font-weight:500; letter-spacing:-.04em; }
.stats-grid span { color:var(--muted); font-size:.82rem; }

.events-section { background:var(--graphite); color:var(--warm-white); padding:140px 0 150px; }
.section-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:30px; margin-bottom:58px; }
.section-heading h2 { margin:0; font-size:clamp(2.7rem,5.5vw,5.8rem); font-weight:500; letter-spacing:-.055em; }
.events-section .eyebrow { color:var(--gold-light); }
.filter-controls { display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.filter-button { border:1px solid rgba(255,255,255,.18); background:transparent; color:rgba(255,255,255,.65); padding:10px 16px; cursor:pointer; font-size:.72rem; text-transform:uppercase; letter-spacing:.12em; transition:.25s ease; }
.filter-button:hover, .filter-button.active { background:var(--warm-white); color:var(--black); border-color:var(--warm-white); }
.event-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.event-card { border:1px solid rgba(255,255,255,.12); cursor:pointer; transition:transform .35s var(--ease), opacity .35s ease; outline:none; }
.event-card:hover, .event-card:focus-visible { transform:translateY(-8px); }
.event-card.hidden { display:none; }
.event-image { aspect-ratio:4/4.6; position:relative; overflow:hidden; isolation:isolate; }
.event-image::before, .event-image::after { content:""; position:absolute; border-radius:50%; filter:blur(1px); }
.event-image-business { background:linear-gradient(145deg,#82725d,#272625 56%,#0e0e0e); }
.event-image-business::before { width:75%; height:75%; right:-18%; top:-10%; border:1px solid rgba(255,255,255,.36); box-shadow:0 0 50px rgba(255,255,255,.08) inset; }
.event-image-business::after { width:33%; height:33%; left:20%; bottom:17%; background:radial-gradient(circle at 35% 30%, #dfc79a, #8e7446 55%, #281f15); box-shadow:0 20px 60px rgba(0,0,0,.5); }
.event-image-music { background:linear-gradient(165deg,#250a27,#5f1848 45%,#100b18); }
.event-image-music::before { width:2px; height:110%; left:50%; top:-5%; border-radius:0; background:linear-gradient(transparent,#ffc0d8,transparent); box-shadow:-70px 0 30px #b63b85,70px 0 30px #b63b85; transform:rotate(22deg); }
.event-image-music::after { width:180px; height:180px; left:calc(50% - 90px); bottom:15%; background:radial-gradient(circle,#edcaa9 0 7%,#763a59 8% 22%,#1a0d1a 23% 100%); box-shadow:0 0 70px rgba(255,116,194,.3); }
.event-image-culture { background:linear-gradient(135deg,#c6b793,#73674f 45%,#25231f); }
.event-image-culture::before { width:68%; height:86%; left:16%; top:7%; border-radius:0; background:linear-gradient(135deg,rgba(255,255,255,.4),rgba(255,255,255,.03)); clip-path:polygon(50% 0,100% 100%,0 100%); }
.event-image-culture::after { width:45%; height:45%; left:27%; top:33%; background:#1b1b19; box-shadow:0 24px 50px rgba(0,0,0,.35); }
.event-index { position:absolute; left:20px; top:20px; z-index:2; font-size:.7rem; letter-spacing:.15em; }
.event-date { position:absolute; right:18px; bottom:18px; z-index:2; width:66px; height:74px; background:rgba(244,240,231,.94); color:var(--black); display:flex; flex-direction:column; align-items:center; justify-content:center; }
.event-date strong { font-size:1.75rem; line-height:1; font-weight:500; }
.event-date small { letter-spacing:.13em; margin-top:5px; }
.event-card-content { padding:25px 24px 28px; }
.event-meta { display:flex; justify-content:space-between; color:rgba(255,255,255,.5); font-size:.67rem; text-transform:uppercase; letter-spacing:.12em; }
.event-card h3 { font-size:1.85rem; margin:24px 0 12px; font-weight:500; letter-spacing:-.035em; }
.event-card p { margin:0; color:rgba(255,255,255,.62); line-height:1.65; font-size:.91rem; min-height:72px; }
.card-link { width:100%; display:flex; justify-content:space-between; align-items:center; background:none; border:0; border-top:1px solid rgba(255,255,255,.13); color:var(--warm-white); padding:18px 0 0; margin-top:28px; cursor:pointer; font-size:.72rem; text-transform:uppercase; letter-spacing:.13em; }

.services { padding-top:150px; padding-bottom:160px; }
.services-heading { display:grid; grid-template-columns:1.2fr .8fr; gap:10vw; align-items:end; margin:70px 0 95px; }
.services-heading p { margin:0; color:var(--muted); line-height:1.7; font-size:1.05rem; }
.service-list { border-top:1px solid var(--line); }
.service-row { display:grid; grid-template-columns:90px 1fr auto; gap:35px; align-items:center; padding:38px 0; border-bottom:1px solid var(--line); transition:padding .3s var(--ease); }
.service-row:hover { padding-left:14px; padding-right:14px; }
.service-number { font-size:.7rem; color:var(--muted); letter-spacing:.15em; }
.service-row h3 { margin:0 0 8px; font-size:1.65rem; font-weight:500; letter-spacing:-.03em; }
.service-row p { margin:0; color:var(--muted); font-size:.91rem; }
.service-arrow { font-size:1.2rem; }

.process-section { background:var(--black); color:var(--warm-white); padding:145px 0; }
.process-grid { display:grid; grid-template-columns:.85fr 1.15fr; gap:9vw; align-items:center; }
.process-visual { aspect-ratio:1; position:relative; display:grid; place-items:center; background:radial-gradient(circle,rgba(182,154,100,.17),transparent 58%); }
.process-ring { position:absolute; border:1px solid rgba(255,255,255,.16); border-radius:50%; }
.ring-a { inset:7%; animation:rotate 24s linear infinite; border-style:dashed; }
.ring-b { inset:24%; animation:rotate 16s linear infinite reverse; }
.process-core { width:34%; aspect-ratio:1; border-radius:50%; display:grid; place-items:center; border:1px solid var(--gold); color:var(--gold-light); letter-spacing:.25em; font-size:.72rem; box-shadow:0 0 70px rgba(182,154,100,.14); }
.process-content .eyebrow { color:var(--gold-light); }
.process-steps { margin-top:55px; border-top:1px solid rgba(255,255,255,.17); }
.process-steps div { display:grid; grid-template-columns:55px 170px 1fr; gap:20px; padding:24px 0; border-bottom:1px solid rgba(255,255,255,.17); align-items:start; }
.process-steps span { color:var(--gold-light); font-size:.7rem; }
.process-steps h3 { margin:0; font-size:1.1rem; font-weight:500; }
.process-steps p { margin:0; color:rgba(255,255,255,.58); line-height:1.6; font-size:.9rem; }

.contact-section { background:var(--warm-white); padding:150px 0; }
.contact-grid { display:grid; grid-template-columns:.95fr 1.05fr; gap:10vw; }
.contact-copy .eyebrow { color:var(--gold); }
.contact-copy > p:not(.eyebrow) { color:var(--muted); line-height:1.7; max-width:520px; margin:28px 0 42px; }
.contact-details { display:flex; flex-direction:column; gap:9px; font-size:.92rem; }
.contact-form { display:grid; grid-template-columns:1fr 1fr; gap:24px 18px; }
.contact-form label { display:flex; flex-direction:column; gap:10px; font-size:.72rem; text-transform:uppercase; letter-spacing:.13em; }
.contact-form label:nth-child(4) { grid-column:1/-1; }
.contact-form input, .contact-form select, .contact-form textarea { width:100%; border:0; border-bottom:1px solid var(--line); background:transparent; padding:12px 0; outline:none; color:var(--black); resize:vertical; text-transform:none; letter-spacing:0; }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus { border-bottom-color:var(--gold); }
.contact-form .button { justify-self:start; }
.form-status { margin:0; align-self:center; color:var(--muted); font-size:.85rem; text-transform:none; letter-spacing:0; }

.site-footer { background:var(--graphite); color:var(--warm-white); padding:70px var(--pad) 30px; }
.footer-top { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; padding-bottom:65px; }
.footer-brand { font-size:clamp(2.8rem,7vw,6.5rem); letter-spacing:-.06em; font-weight:600; }
.footer-top p { color:var(--gold-light); font-family:"Playfair Display",serif; font-style:italic; font-size:1.3rem; }
.footer-up { justify-self:end; width:48px; height:48px; border:1px solid rgba(255,255,255,.2); display:grid; place-items:center; }
.footer-bottom { border-top:1px solid rgba(255,255,255,.14); padding-top:24px; display:grid; grid-template-columns:1fr auto 1fr; font-size:.68rem; color:rgba(255,255,255,.5); text-transform:uppercase; letter-spacing:.11em; }
.footer-bottom div { display:flex; gap:25px; }
.footer-bottom > span:last-child { justify-self:end; }

.event-dialog { width:min(980px,92vw); max-height:88vh; padding:0; border:0; background:var(--warm-white); color:var(--black); box-shadow:0 35px 100px rgba(0,0,0,.4); overflow:auto; }
.event-dialog::backdrop { background:rgba(0,0,0,.73); backdrop-filter:blur(8px); }
.dialog-close { position:absolute; z-index:3; right:18px; top:18px; width:42px; height:42px; border:0; background:var(--warm-white); cursor:pointer; font-size:1.4rem; }
.dialog-visual { min-height:280px; background:linear-gradient(145deg,#82725d,#272625 60%,#111); }
.dialog-content { padding:45px; }
.dialog-content h2 { font-size:clamp(2.4rem,5vw,5rem); letter-spacing:-.055em; margin:0 0 20px; font-weight:500; }
.dialog-description { max-width:720px; color:var(--muted); line-height:1.7; }
.dialog-facts { display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line); border:1px solid var(--line); margin:35px 0; }
.dialog-facts div { background:var(--warm-white); padding:22px; display:flex; flex-direction:column; gap:8px; }
.dialog-facts span { font-size:.66rem; text-transform:uppercase; letter-spacing:.13em; color:var(--muted); }

.reveal { opacity:0; transform:translateY(24px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.visible { opacity:1; transform:none; }

:focus-visible { outline:2px solid var(--gold); outline-offset:4px; }

@media (max-width: 980px) {
  .site-header { grid-template-columns:1fr auto auto; }
  .menu-toggle { display:block; order:3; color:inherit; }
  .header-actions .button { display:none; }
  .primary-nav { position:fixed; inset:0; background:var(--black); color:var(--warm-white); flex-direction:column; justify-content:center; gap:28px; font-size:1.7rem; transform:translateY(-100%); opacity:0; pointer-events:none; transition:.5s var(--ease); }
  .primary-nav.open { transform:none; opacity:1; pointer-events:auto; }
  .site-header .brand, .site-header .header-actions, .site-header .menu-toggle { position:relative; z-index:2; }
  .site-header.menu-active { color:var(--warm-white); }
  .site-header.menu-active .menu-toggle span:first-child { transform:translateY(4px) rotate(45deg); }
  .site-header.menu-active .menu-toggle span:last-child { transform:translateY(-4px) rotate(-45deg); }
  .hero-stage { width:75vw; right:-18vw; opacity:.75; }
  .hero-meta { display:none; }
  .intro-grid, .services-heading, .contact-grid { grid-template-columns:1fr; gap:38px; }
  .event-grid { grid-template-columns:1fr 1fr; }
  .event-card:last-child { grid-column:1/-1; max-width:calc(50% - 10px); }
  .process-grid { grid-template-columns:1fr; }
  .process-visual { max-width:550px; width:100%; margin:auto; }
}

@media (max-width: 680px) {
  .site-header { height:68px; }
  .site-header.scrolled { height:64px; }
  .brand { font-size:.8rem; }
  .header-actions { gap:8px; }
  .language-option { min-width:27px; padding:0 5px; font-size:.58rem; }
  .hero { padding-top:120px; padding-bottom:42px; min-height:760px; align-items:center; }
  .hero-content { padding-bottom:0; }
  .hero h1 { font-size:clamp(3.3rem,18vw,5.6rem); line-height:.9; }
  .hero-copy { width:100%; font-size:.98rem; margin-top:28px; }
  .hero-actions { align-items:flex-start; flex-direction:column; gap:20px; }
  .hero-stage { width:110vw; height:65vh; right:-54vw; bottom:-10vh; }
  .orbit-one { width:130vw; height:130vw; right:-65vw; top:5vh; }
  .orbit-two { width:90vw; height:90vw; right:-45vw; top:18vh; }
  .intro, .services, .contact-section { padding-top:100px; padding-bottom:100px; }
  .intro-grid { margin-top:45px; }
  .intro h2, .services h2, .contact-section h2, .process-content h2 { font-size:2.7rem; }
  .stats-grid { grid-template-columns:1fr; margin-top:65px; }
  .stats-grid div { min-height:130px; }
  .events-section { padding:100px 0; }
  .section-heading { align-items:flex-start; flex-direction:column; }
  .filter-controls { justify-content:flex-start; }
  .event-grid { grid-template-columns:1fr; }
  .event-card:last-child { grid-column:auto; max-width:none; }
  .services-heading { margin:50px 0 60px; }
  .service-row { grid-template-columns:45px 1fr auto; gap:12px; padding:28px 0; }
  .service-row p { line-height:1.5; }
  .process-section { padding:100px 0; }
  .process-steps div { grid-template-columns:40px 1fr; }
  .process-steps p { grid-column:2; }
  .contact-form { grid-template-columns:1fr; }
  .contact-form label:nth-child(4) { grid-column:auto; }
  .footer-top { grid-template-columns:1fr auto; gap:20px; }
  .footer-top p { grid-row:2; grid-column:1/-1; }
  .footer-bottom { grid-template-columns:1fr; gap:18px; }
  .footer-bottom > span:last-child { justify-self:start; }
  .footer-bottom div { flex-wrap:wrap; }
  .dialog-content { padding:30px 22px; }
  .dialog-facts { grid-template-columns:1fr; }
}

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

/* ATMOS cinematic motion system — hero and process visuals */
.hero,
.process-visual {
  --pointer-x: 0px;
  --pointer-y: 0px;
}

.hero-media {
  perspective: 1200px;
}

.hero-memory-line {
  margin: 22px 0 0;
  color: rgba(251,248,241,.78);
  font-family: "Playfair Display", serif;
  font-style: italic;
  font-size: clamp(1.15rem, 2vw, 2rem);
  letter-spacing: -.02em;
}

.hero-parallax {
  --depth-x: 0px;
  --depth-y: 0px;
  will-change: transform;
}

.hero-glow {
  animation: glowBreathe 8s ease-in-out infinite;
  transform: translate3d(var(--depth-x), var(--depth-y), 0);
}

.orbit-one {
  animation: heroOrbitOne 34s linear infinite;
}

.orbit-two {
  animation: heroOrbitTwo 25s linear infinite reverse;
}

.orbit-three {
  width: 30vw;
  height: 30vw;
  right: 9vw;
  top: 13vw;
  border-color: rgba(214,195,159,.12);
  animation: heroOrbitThree 18s linear infinite;
}

.hero-stage {
  overflow: hidden;
  transform-origin: 55% 50%;
  animation: stageFloat 10s ease-in-out infinite;
}

.stage-sheen {
  position: absolute;
  inset: -30%;
  background: linear-gradient(115deg, transparent 36%, rgba(214,195,159,.055) 48%, rgba(255,255,255,.075) 50%, transparent 62%);
  transform: translateX(-35%);
  animation: stageSheen 11s ease-in-out infinite;
}

.stage-line {
  overflow: visible;
  opacity: .55;
  box-shadow: 0 0 18px rgba(214,195,159,.05);
}

.stage-line::after {
  content: "";
  position: absolute;
  top: -1px;
  left: 0;
  width: 18%;
  height: 2px;
  background: linear-gradient(90deg, transparent, rgba(239,224,191,.85), transparent);
  filter: blur(.2px);
  animation: lineSpark 7s ease-in-out infinite;
}

.stage-line-1 {
  animation: lineFlowOne 8s ease-in-out infinite;
}

.stage-line-2 {
  animation: lineFlowTwo 10s ease-in-out infinite reverse;
}

.stage-line-3 {
  width: 76%;
  left: 14%;
  top: 49%;
  transform: rotate(2deg);
  opacity: .22;
  animation: lineFlowThree 12s ease-in-out infinite;
}

.stage-line-2::after { animation-delay: -2.4s; }
.stage-line-3::after { animation-delay: -4.3s; }

.stage-light {
  width: 14px;
  height: 14px;
  animation: lightPulse 4.8s ease-in-out infinite;
  will-change: transform, opacity;
}

.stage-light-1 { animation: lightDriftOne 8s ease-in-out infinite; }
.stage-light-2 { animation: lightDriftTwo 9s ease-in-out infinite -2.2s; }
.stage-light-3 { animation: lightDriftThree 10.5s ease-in-out infinite -4.5s; }
.stage-light-4 {
  left: 78%;
  top: 69%;
  width: 8px;
  height: 8px;
  opacity: .65;
  animation: lightDriftFour 12s ease-in-out infinite -1.6s;
}

@keyframes heroOrbitOne {
  from { transform: translate3d(var(--depth-x), var(--depth-y), 0) rotate(0deg); }
  to { transform: translate3d(var(--depth-x), var(--depth-y), 0) rotate(360deg); }
}
@keyframes heroOrbitTwo {
  from { transform: translate3d(var(--depth-x), var(--depth-y), 0) rotate(0deg); }
  to { transform: translate3d(var(--depth-x), var(--depth-y), 0) rotate(360deg); }
}
@keyframes heroOrbitThree {
  0% { transform: translate3d(var(--depth-x), var(--depth-y), 0) rotate(0deg) scale(.98); opacity: .5; }
  50% { transform: translate3d(var(--depth-x), var(--depth-y), 0) rotate(180deg) scale(1.025); opacity: .9; }
  100% { transform: translate3d(var(--depth-x), var(--depth-y), 0) rotate(360deg) scale(.98); opacity: .5; }
}
@keyframes glowBreathe {
  0%,100% { transform: translate3d(var(--depth-x), var(--depth-y), 0) scale(.94); opacity: .72; }
  50% { transform: translate3d(var(--depth-x), var(--depth-y), 0) scale(1.06); opacity: 1; }
}
@keyframes stageFloat {
  0%,100% { transform: translate3d(var(--depth-x), calc(var(--depth-y) + 0px), 0) perspective(900px) rotateY(-10deg) rotateZ(-.25deg); }
  50% { transform: translate3d(var(--depth-x), calc(var(--depth-y) - 13px), 0) perspective(900px) rotateY(-8.5deg) rotateZ(.35deg); }
}
@keyframes stageSheen {
  0%,20% { transform: translateX(-38%) rotate(2deg); opacity: 0; }
  42% { opacity: .9; }
  64%,100% { transform: translateX(42%) rotate(2deg); opacity: 0; }
}
@keyframes lineSpark {
  0%,12% { transform: translateX(-120%); opacity: 0; }
  38% { opacity: .9; }
  68%,100% { transform: translateX(560%); opacity: 0; }
}
@keyframes lineFlowOne {
  0%,100% { transform: rotate(12deg) scaleX(.96); opacity: .4; }
  50% { transform: rotate(12deg) scaleX(1.03); opacity: .78; }
}
@keyframes lineFlowTwo {
  0%,100% { transform: rotate(-8deg) scaleX(.97); opacity: .38; }
  50% { transform: rotate(-8deg) scaleX(1.04); opacity: .72; }
}
@keyframes lineFlowThree {
  0%,100% { transform: rotate(2deg) scaleX(.92); opacity: .12; }
  50% { transform: rotate(2deg) scaleX(1.06); opacity: .35; }
}
@keyframes lightDriftOne {
  0%,100% { transform: translate3d(0,0,0) scale(.88); opacity:.72; }
  35% { transform: translate3d(13px,-8px,0) scale(1.1); opacity:1; }
  68% { transform: translate3d(-7px,11px,0) scale(.95); opacity:.82; }
}
@keyframes lightDriftTwo {
  0%,100% { transform: translate3d(0,0,0) scale(.92); opacity:.65; }
  42% { transform: translate3d(-18px,8px,0) scale(1.12); opacity:1; }
  72% { transform: translate3d(8px,-9px,0) scale(.9); opacity:.76; }
}
@keyframes lightDriftThree {
  0%,100% { transform: translate3d(0,0,0) scale(.8); opacity:.58; }
  50% { transform: translate3d(12px,14px,0) scale(1.16); opacity:1; }
}
@keyframes lightDriftFour {
  0%,100% { transform: translate3d(0,0,0) scale(.7); opacity:.38; }
  45% { transform: translate3d(-24px,-13px,0) scale(1.2); opacity:.85; }
}

/* Process orbital animation */
.process-visual {
  min-height: 520px;
  isolation: isolate;
  overflow: hidden;
  border-radius: 50%;
  --process-x: 0px;
  --process-y: 0px;
  --process-x-inverse: 0px;
  --process-y-inverse: 0px;
  --process-x-soft: 0px;
  --process-y-soft: 0px;
}

.process-aura {
  position: absolute;
  inset: 15%;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(214,195,159,.15), rgba(182,154,100,.035) 43%, transparent 70%);
  filter: blur(8px);
  animation: processAura 6s ease-in-out infinite;
}

.process-ring {
  will-change: transform;
  box-shadow: 0 0 55px rgba(182,154,100,.025) inset;
}

.ring-a {
  inset: 9%;
  border-style: dashed;
  animation: processSpinA 30s linear infinite;
}

.ring-b {
  inset: 25%;
  border-color: rgba(255,255,255,.19);
  animation: processSpinB 21s linear infinite reverse;
}

.ring-c {
  inset: 34%;
  border-color: rgba(214,195,159,.28);
  animation: processSpinC 14s linear infinite;
}

.orbit-node {
  position: absolute;
  left: 50%;
  top: -4px;
  width: 8px;
  height: 8px;
  margin-left: -4px;
  border-radius: 50%;
  background: #e7d3aa;
  box-shadow: 0 0 11px 3px rgba(214,195,159,.4), 0 0 42px 10px rgba(182,154,100,.14);
}
.node-b { width: 6px; height: 6px; top: auto; bottom: -3px; opacity: .72; }
.node-c { width: 5px; height: 5px; top: 50%; left: -2px; opacity: .56; }

.process-scan {
  position: absolute;
  inset: 28%;
  border: 1px solid rgba(214,195,159,.35);
  border-radius: 50%;
  animation: processScan 5.2s cubic-bezier(.22,1,.36,1) infinite;
}

.process-core {
  position: relative;
  overflow: hidden;
  background: radial-gradient(circle at 50% 42%, rgba(214,195,159,.13), rgba(182,154,100,.025) 55%, transparent 72%);
  animation: coreBreathe 5.5s ease-in-out infinite;
}

.process-core::before {
  content: "";
  position: absolute;
  inset: -15%;
  background: conic-gradient(from 180deg, transparent 0 42%, rgba(214,195,159,.12) 49%, transparent 57% 100%);
  animation: coreSweep 9s linear infinite;
}

.process-core span {
  position: relative;
  z-index: 1;
}

.process-visual:hover .ring-a { animation-duration: 19s; }
.process-visual:hover .ring-b { animation-duration: 13s; }
.process-visual:hover .ring-c { animation-duration: 9s; }
.process-visual:hover .process-core { box-shadow: 0 0 95px rgba(182,154,100,.22); }

@keyframes processSpinA {
  to { transform: translate3d(var(--process-x), var(--process-y), 0) rotate(360deg); }
}
@keyframes processSpinB {
  to { transform: translate3d(var(--process-x-inverse), var(--process-y-inverse), 0) rotate(360deg); }
}
@keyframes processSpinC {
  to { transform: translate3d(var(--process-x-soft), var(--process-y-soft), 0) rotate(360deg); }
}
@keyframes processAura {
  0%,100% { transform: translate3d(var(--process-x), var(--process-y), 0) scale(.88); opacity: .52; }
  50% { transform: translate3d(var(--process-x), var(--process-y), 0) scale(1.1); opacity: 1; }
}
@keyframes processScan {
  0% { transform: scale(.72); opacity: 0; }
  20% { opacity: .7; }
  82%,100% { transform: scale(1.48); opacity: 0; }
}
@keyframes coreBreathe {
  0%,100% { transform: translate3d(var(--process-x-soft), var(--process-y-soft), 0) scale(.97); box-shadow: 0 0 54px rgba(182,154,100,.1); }
  50% { transform: translate3d(var(--process-x-soft), var(--process-y-soft), 0) scale(1.025); box-shadow: 0 0 82px rgba(182,154,100,.2); }
}
@keyframes coreSweep { to { transform: rotate(360deg); } }

@media (max-width: 980px) {
  .orbit-three { width: 44vw; height: 44vw; right: -2vw; top: 17vw; }
  .process-visual { min-height: auto; }
}

@media (max-width: 680px) {
  .hero-memory-line { max-width: 280px; font-size: 1.18rem; }
  .orbit-three { width: 66vw; height: 66vw; right: -31vw; top: 29vh; }
  .stage-light { width: 11px; height: 11px; }
  .process-visual { border-radius: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .hero-parallax,
  .hero-stage,
  .hero-orbit,
  .hero-glow,
  .stage-line,
  .stage-line::after,
  .stage-light,
  .process-aura,
  .process-ring,
  .process-scan,
  .process-core,
  .process-core::before {
    animation: none !important;
    transform: none !important;
  }
}
