/* ============================================================
   SECTION CONTENT TYPOGRAPHY (inside dive-inner)
   ============================================================ */
.panel-badge {
  display: inline-flex; align-items: center; gap: .5rem;
  font-family: var(--sans); font-size: .6rem; font-weight: 500;
  letter-spacing: .3em; text-transform: uppercase;
  color: var(--accent); margin-bottom: 1.8rem;
  opacity: 0; transform: translateY(20px); animation: none;
}
.panel-badge::before { content: ''; width: 20px; height: 1px; background: var(--accent); opacity: .5 }
.section-dive.active .panel-badge { animation: slowReveal 1.2s var(--ease-expo) .6s forwards }

.panel-title {
  font-family: var(--serif); font-weight: 300;
  font-size: clamp(2rem, 5vw, 3.2rem);
  line-height: 1.15; margin-bottom: .4em;
  color: var(--text); letter-spacing: .02em;
  opacity: 0; transform: translateY(30px);
}
.section-dive.active .panel-title { animation: slowReveal 1.4s var(--ease-expo) .9s forwards }

.panel-subtitle {
  font-family: var(--serif-it); font-style: italic; font-weight: 300;
  font-size: 1.1rem; color: var(--text-muted);
  margin-bottom: 2rem; letter-spacing: .02em;
  opacity: 0; transform: translateY(25px);
}
.section-dive.active .panel-subtitle { animation: slowReveal 1.3s var(--ease-expo) 1.2s forwards }

.panel-text {
  font-family: var(--sans); font-weight: 300; font-size: .92rem;
  line-height: 1.85; color: rgba(232,229,223,.6);
  margin-bottom: 1.5rem;
  opacity: 0; transform: translateY(20px);
}
.section-dive.active .panel-text { animation: slowReveal 1.2s var(--ease-expo) 1.5s forwards }

.panel-scroll {
  scroll-padding-top: 5.2rem;
  scroll-padding-bottom: 8rem;
}
.section-panel,
.detail-view {
  width: min(100%, 760px);
  margin: 0 auto;
}
.detail-view--testimonials {
  width: 100%;
  max-width: none;
  height: 100dvh;
  min-height: 100dvh;
  overflow: hidden;
  position: relative;
}
.detail-view--testimonials .panel-badge,
.detail-view--testimonials .panel-title,
.detail-view--testimonials .panel-subtitle {
  position: absolute;
  left: 50%;
  transform: translate(-50%, 18px);
  width: min(92vw, 44rem);
  text-align: center;
  z-index: 8;
  margin: 0;
}
.detail-view--testimonials .panel-badge {
  top: clamp(4.5rem, 7.8vh, 5.9rem);
  justify-content: center;
}
.detail-view--testimonials .panel-title {
  top: clamp(6rem, 10.2vh, 7.8rem);
}
.detail-view--testimonials .panel-subtitle {
  top: clamp(9.2rem, 15.6vh, 11rem);
  max-width: min(36rem, 84vw);
}
.detail-view.detail-view--testimonials.active .panel-badge,
.detail-view.detail-view--testimonials.active .panel-title,
.detail-view.detail-view--testimonials.active .panel-subtitle {
  transform: translate(-50%, 0);
}
.detail-view--testimonials .testimonial-starfield {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  min-height: 100%;
  padding: 0;
  overflow: hidden;
  isolation: isolate;
}
.detail-view--testimonials .testimonial-orbit {
  position: absolute;
  inset: 0;
  z-index: 2;
  min-height: 0;
  margin: 0;
  overflow: hidden;
  pointer-events: none;
  background: none;
  opacity: 1;
  transform: none;
}
.detail-view.detail-view--testimonials.active .testimonial-orbit {
  opacity: 1;
  transform: none;
  transition-delay: 0s;
}
.detail-view--testimonials .testimonial-orbit::before,
.detail-view--testimonials .testimonial-orbit::after {
  content: none;
}
.detail-view--testimonials .testimonial-depth-layers {
  pointer-events: none;
}
.detail-view--testimonials .testimonial-nodes {
  pointer-events: auto;
}
.detail-view--testimonials .testimonial-center-layer {
  pointer-events: none;
}
.detail-view--testimonials .testimonial-node {
  width: 38px;
  height: 38px;
  opacity: .95;
}
.detail-view--testimonials .testimonial-node-tip {
  display: none;
}
.detail-view--experience-cinematic {
  width: 100%;
  max-width: none;
  height: 100%;
}
.panel-window--portfolio {
  width: 100%;
  max-width: none;
  margin: 0;
  pointer-events: none;
  z-index: 34;
}
.panel-window--portfolio .panel-window-scroll {
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  -webkit-mask-image: none;
  mask-image: none;
}
.section-panel--portfolio {
  width: 100%;
  min-height: 100%;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.section-panel--portfolio .panel-title {
  margin-bottom: 0;
}
.panel-title--portfolio {
  margin: 0;
  font-size: clamp(2rem, 5.2vw, 3.8rem);
  letter-spacing: .18em;
  text-transform: uppercase;
}
.panel-scroll > :first-child { margin-top: 0 }
.panel-scroll > :last-child { margin-bottom: 0 }

.story-pager {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
}
.panel-window--paged .detail-view {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
}
.panel-window--paged .story-pager {
  flex: 1;
  height: 100%;
  min-height: 0;
}
.story-source {
  display: none;
}
.story-pages {
  position: relative;
  flex: 1;
  height: 100%;
  min-height: 0;
  overflow: hidden;
}
.story-page {
  display: none;
  opacity: 0;
  transform: translateY(12px);
}
.story-page--measure {
  opacity: 0 !important;
  transform: none !important;
}
.story-page.active {
  display: block;
  opacity: 1;
  transform: translateY(0);
  transition: opacity .35s ease, transform .35s ease;
}
.story-page--scroll {
  overflow-y: auto;
  max-height: 100%;
  padding-right: .2rem;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.story-page--scroll::-webkit-scrollbar { width: 0; height: 0; }
.story-controls {
  margin-top: .3rem;
  padding-top: .3rem;
  border-top: 1px solid var(--border);
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: space-between;
  gap: .8rem;
}
.story-pager.single-page .story-controls { display: none; }
.story-btn {
  min-width: 132px;
  height: 34px;
  padding: 0 .9rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: rgba(9,9,14,.5);
  color: rgba(232,229,223,.7);
  font-size: .58rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  transition: border-color .2s ease, color .2s ease, background .2s ease;
}
.story-btn:hover {
  border-color: rgba(196,169,106,.35);
  color: rgba(232,229,223,.9);
  background: rgba(12,12,19,.75);
}
.story-btn:disabled {
  opacity: .35;
  pointer-events: none;
}
.story-progress {
  font-size: .6rem;
  color: var(--text-dim);
  letter-spacing: .15em;
  text-transform: uppercase;
}
.panel-window--fixed .detail-view {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  height: 100%;
}
.panel-window--fixed .panel-subtitle {
  font-size: 1rem;
  margin-bottom: 1.15rem;
}
.panel-window--fixed .experience-cards {
  margin: .9rem 0;
  gap: .7rem;
}
.panel-window--fixed .exp-card {
  padding: 1rem;
}
.panel-window--fixed .exp-card-name {
  font-size: 1rem;
}
.panel-window--fixed .exp-card-desc {
  font-size: .68rem;
}
.panel-window--fixed .exp-card-detail {
  font-size: .52rem;
  line-height: 1.6;
}
.package-note {
  font-size: .73rem !important;
  line-height: 1.5;
  margin-top: .55rem !important;
  margin-bottom: .4rem !important;
  text-align: center;
}
/* Stagger other elements */
.section-dive.active .about-facts { animation: slowReveal 1.2s var(--ease-expo) 1.7s forwards; opacity: 0; transform: translateY(20px) }
.section-dive.active .star-accent { animation: slowReveal 1s var(--ease-expo) 1.9s forwards; opacity: 0; transform: translateY(15px) }
.section-dive.active .process-steps { animation: slowReveal 1.2s var(--ease-expo) 1.4s forwards; opacity: 0; transform: translateY(20px) }
.section-dive.active .experience-cards { animation: slowReveal 1.2s var(--ease-expo) 1.5s forwards; opacity: 0; transform: translateY(20px) }
.section-dive.active .contact-grid { animation: slowReveal 1.2s var(--ease-expo) 1.5s forwards; opacity: 0; transform: translateY(20px) }
.section-dive.active .about-signature { animation: slowReveal 1s var(--ease-expo) 2.1s forwards; opacity: 0 }

/* ============================================================
   DETAIL-VIEW: Transition-basiertes Einblenden (zuverlässiger als Animation)
   Grund: section-dive ist bereits .active wenn detail-view eingefügt wird,
   daher triggern CSS-Animationen nicht zuverlässig neu.
   CSS-Transitions triggern garantiert bei jedem class-toggle (.active hinzufügen).
   ============================================================ */
.detail-view .panel-badge,
.detail-view .panel-title,
.detail-view .panel-subtitle,
.detail-view .panel-text,
.detail-view .about-facts,
.detail-view .star-accent,
.detail-view .process-steps,
.detail-view .experience-cards,
.detail-view .contact-grid,
.detail-view .about-signature,
.detail-view .faq-controls,
.detail-view .faq-list,
.detail-view .faq-empty,
.detail-view .faq-footer-cta {
  animation: none !important;
  transition: opacity 1s var(--ease-expo), transform 1s var(--ease-expo);
}
.detail-view .faq-controls,
.detail-view .faq-list,
.detail-view .faq-empty,
.detail-view .faq-footer-cta {
  opacity: 0;
  transform: translateY(18px);
}
.detail-view .packages-experience-layout {
  opacity: 0;
  transform: translateY(18px);
}
.detail-view .experience-shell {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 1s var(--ease-expo), transform 1s var(--ease-expo);
}
.detail-view.active .panel-badge      { opacity: 1; transform: translateY(0); transition-delay: .6s }
.detail-view.active .panel-title      { opacity: 1; transform: translateY(0); transition-delay: .9s }
.detail-view.active .panel-subtitle   { opacity: 1; transform: translateY(0); transition-delay: 1.2s }
.detail-view.active .panel-text       { opacity: 1; transform: translateY(0); transition-delay: 1.5s }
.detail-view.active .about-facts      { opacity: 1; transform: translateY(0); transition-delay: 1.7s }
.detail-view.active .star-accent      { opacity: 1; transform: translateY(0); transition-delay: 1.9s }
.detail-view.active .process-steps    { opacity: 1; transform: translateY(0); transition-delay: 1.4s }
.detail-view.active .experience-cards { opacity: 1; transform: translateY(0); transition-delay: 1.5s }
.detail-view.active .contact-grid     { opacity: 1; transform: translateY(0); transition-delay: 1.5s }
.detail-view.active .about-signature  { opacity: 1; transition-delay: 2.1s }
.detail-view.active .faq-controls     { opacity: 1; transform: translateY(0); transition-delay: 1.3s }
.detail-view.active .faq-list         { opacity: 1; transform: translateY(0); transition-delay: 1.45s }
.detail-view.active .faq-empty        { opacity: 1; transform: translateY(0); transition-delay: 1.45s }
.detail-view.active .faq-footer-cta   { opacity: 1; transform: translateY(0); transition-delay: 1.55s }
.detail-view.active .packages-experience-layout { opacity: 1; transform: translateY(0); transition-delay: 1.45s }
.detail-view.active .experience-shell { opacity: 1; transform: translateY(0); transition-delay: 1.45s }
.detail-view--lounge-preview .panel-badge,
.detail-view--lounge-preview .panel-title,
.detail-view--lounge-preview .panel-subtitle,
.detail-view--lounge-preview .lounge-preview-intro,
.detail-view--lounge-preview .lounge-preview-main,
.detail-view--lounge-preview .lounge-progress-orbit {
  transition: opacity .2s ease, transform .2s ease;
}
.detail-view.active.detail-view--lounge-preview .panel-badge { transition-delay: .02s; }
.detail-view.active.detail-view--lounge-preview .panel-title { transition-delay: .07s; }
.detail-view.active.detail-view--lounge-preview .panel-subtitle { transition-delay: .11s; }
.detail-view.active.detail-view--lounge-preview .lounge-preview-intro { opacity: 1; transform: translateY(0); transition-delay: .14s; }
.detail-view.active.detail-view--lounge-preview .lounge-preview-main { opacity: 1; transform: translateY(0); transition-delay: .17s; }
.detail-view.active.detail-view--lounge-preview .lounge-progress-orbit { opacity: 1; transform: translateY(0); transition-delay: .2s; }
.detail-view--faq-os .faq-header,
.detail-view--faq-os .faq-controls,
.detail-view--faq-os .faq-scroll-panel,
.detail-view--faq-os .faq-footer-cta {
  transition: opacity .2s ease, transform .2s ease;
}
.detail-view--faq-os .faq-list,
.detail-view--faq-os .faq-empty {
  transition: opacity .2s ease, transform .2s ease !important;
}
.detail-view.active.detail-view--faq-os .faq-header { opacity: 1; transform: translateY(0); transition-delay: .03s; }
.detail-view.active.detail-view--faq-os .faq-controls { opacity: 1; transform: translateY(0); transition-delay: .08s; }
.detail-view.active.detail-view--faq-os .faq-scroll-panel { opacity: 1; transform: translateY(0); transition-delay: .14s; }
.detail-view.active.detail-view--faq-os .faq-list,
.detail-view.active.detail-view--faq-os .faq-empty { transition-delay: .16s; }
.detail-view.active.detail-view--faq-os .faq-footer-cta { opacity: 1; transform: translateY(0); transition-delay: .18s; }

.panel-divider { width: 40px; height: 1px; background: var(--border-light); margin: 2rem 0 }

.panel-quote {
  font-family: var(--serif-it); font-style: italic; font-size: 1.1rem;
  color: var(--text-muted); padding-left: 1.2rem;
  border-left: 1px solid var(--accent);
  margin: 2rem 0; line-height: 1.7; opacity: .7;
}

/* ============================================================
   CONTACT
   ============================================================ */
:root {
  --contact-fixed-ui-clearance: 92px;
  --contact-top-safe-gap: clamp(5.1rem, 9vh, 7.4rem);
  --contact-bottom-safe-gap: clamp(.35rem, 1.2vh, .9rem);
  --contact-modal-max-width: 980px;
}

.panel-window--contact {
  width: min(100%, var(--contact-modal-max-width));
}
.panel-window--contact .panel-window-scroll {
  overflow: hidden;
  -webkit-mask-image: none;
  mask-image: none;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding:
    clamp(.3rem, 1vh, .8rem)
    clamp(.25rem, 1vw, .8rem)
    calc(var(--contact-fixed-ui-clearance) + var(--contact-bottom-safe-gap));
}

.contact-wizard-shell {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: flex-start;
  justify-content: center;
}

.contact-wizard-wrapper {
  position: relative;
  width: min(100%, 940px);
  height: min(44rem, calc(100dvh - var(--contact-fixed-ui-clearance) - var(--contact-top-safe-gap) - var(--contact-bottom-safe-gap)));
  border-radius: 34px;
  border: 1px solid rgba(196,169,106,.2);
  background:
    radial-gradient(circle at 18% 16%, rgba(196,169,106,.14), transparent 48%),
    radial-gradient(circle at 82% 78%, rgba(240,234,212,.1), transparent 56%),
    rgba(10,10,15,.62);
  backdrop-filter: blur(15px);
  -webkit-backdrop-filter: blur(15px);
  padding: clamp(1rem, 2.2vh, 1.25rem) clamp(.85rem, 1.8vw, 1.2rem) clamp(.9rem, 2vh, 1.1rem);
  overflow: hidden;
  display: flex;
}
.section-dive.active .contact-wizard-wrapper {
  animation: slowReveal 1.1s var(--ease-expo) 1.2s forwards;
  opacity: 0;
  transform: translateY(16px);
}

.contact-quick-links {
  position: absolute;
  top: .86rem;
  right: .9rem;
  display: inline-flex;
  gap: .45rem;
  z-index: 2;
}
.contact-quick-link {
  width: 30px;
  height: 30px;
  border-radius: 999px;
  border: 1px solid rgba(196,169,106,.2);
  background: rgba(10,10,16,.55);
  color: rgba(232,229,223,.68);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: .53rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  transition: border-color .24s ease, color .24s ease, background .24s ease;
}
.contact-quick-link:hover,
.contact-quick-link:focus-visible {
  color: rgba(232,229,223,.9);
  border-color: rgba(196,169,106,.42);
  background: rgba(12,12,20,.78);
}

.contact-form--wizard {
  width: 100%;
  height: 100%;
  margin-top: 0;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  gap: .82rem;
}

.contact-wizard-head {
  min-height: 62px;
  padding-right: 118px;
  display: grid;
  align-content: start;
  gap: .26rem;
}
.contact-wizard-progress {
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: center;
  gap: .55rem;
  padding: .1rem .1rem .04rem;
  pointer-events: none;
  user-select: none;
}
.contact-progress-lines {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.contact-progress-lines line {
  stroke: rgba(196,169,106,.16);
  stroke-width: .8;
}
.contact-progress-star {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 26px;
  transition: opacity .24s ease;
  opacity: .5;
}
.contact-progress-star-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: rgba(240,234,212,.58);
  box-shadow: 0 0 8px rgba(240,234,212,.3);
  transition: transform .24s ease, box-shadow .24s ease, background .24s ease, opacity .24s ease;
  opacity: .6;
}
.contact-progress-star.is-active {
  opacity: 1;
}
.contact-progress-star.is-complete {
  opacity: .8;
}
.contact-progress-star.is-active .contact-progress-star-dot {
  transform: scale(1.22);
  background: rgba(255,252,245,.96);
  box-shadow:
    0 0 11px rgba(255,252,245,.5),
    0 0 18px rgba(196,169,106,.26);
  opacity: 1;
}
.contact-progress-star.is-complete .contact-progress-star-dot {
  background: rgba(240,234,212,.8);
  opacity: .88;
}
.contact-progress-status {
  font-size: .6rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: rgba(232,229,223,.52);
}

.contact-wizard-stage {
  min-height: 0;
  overflow: hidden;
  opacity: 1;
  transition: opacity .22s var(--ease-expo);
}
.contact-wizard-stage.is-fading-out,
.contact-wizard-stage.is-fading-in {
  opacity: 0;
}
.contact-wizard-step {
  display: none;
}
.contact-wizard-step.is-active {
  display: flex;
  flex-direction: column;
  height: 100%;
}
.contact-step-title {
  font-family: var(--serif);
  font-size: clamp(1.34rem, 2.8vw, 1.86rem);
  font-weight: 300;
  color: rgba(232,229,223,.95);
  margin-bottom: .25rem;
}
.contact-step-subtitle {
  font-size: .8rem;
  color: rgba(232,229,223,.56);
  margin-bottom: .95rem;
  line-height: 1.52;
}

.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .82rem;
}
.form-group {
  display: flex;
  flex-direction: column;
  gap: .38rem;
}
.form-group.full-width {
  grid-column: 1 / -1;
}
.form-label {
  font-size: .5rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(232,229,223,.46);
}
.contact-form--wizard .form-input,
.contact-form--wizard .form-textarea,
.contact-form--wizard select {
  background: rgba(9,9,14,.56);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 16px;
  padding: .82rem 1rem;
  min-height: 2.78rem;
  box-sizing: border-box;
  font-family: var(--sans);
  font-size: 16px;
  font-weight: 300;
  color: var(--text);
  line-height: 1.5;
  transition: border-color .22s ease, box-shadow .22s ease, background .22s ease;
  outline: none;
  cursor: text;
}
.contact-form--wizard .form-input:focus,
.contact-form--wizard .form-textarea:focus,
.contact-form--wizard select:focus {
  border-color: rgba(196,169,106,.58);
  box-shadow: 0 0 0 2px rgba(196,169,106,.14);
  background: rgba(12,12,19,.78);
}
.contact-form--wizard .form-input::placeholder,
.contact-form--wizard .form-textarea::placeholder {
  color: rgba(232,229,223,.3);
}
.contact-form--wizard .form-textarea {
  min-height: 128px;
  max-height: clamp(150px, 24vh, 220px);
  resize: none;
  overflow-y: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.form-textarea::-webkit-scrollbar { width: 0; height: 0; }
.contact-wizard-step[data-wizard-step="3"] .form-group.full-width {
  min-height: 0;
  flex: 1;
}

.contact-field-error,
.contact-step-error {
  min-height: .92rem;
  font-size: .72rem;
  color: #df8f8f;
  line-height: 1.35;
}
.contact-step-error {
  margin-top: .2rem;
}

.contact-package-map {
  position: relative;
  min-height: 0;
  height: clamp(190px, 33vh, 270px);
  border-radius: 24px;
  border: 1px solid rgba(196,169,106,.17);
  background:
    radial-gradient(circle at 23% 24%, rgba(196,169,106,.14), transparent 54%),
    radial-gradient(circle at 82% 70%, rgba(240,234,212,.1), transparent 52%),
    rgba(8,8,13,.58);
  overflow: hidden;
}
.contact-package-lines {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}
.contact-package-lines line {
  stroke: rgba(196,169,106,.2);
  stroke-width: .5;
}
.contact-package-node {
  position: absolute;
  left: var(--x);
  top: var(--y);
  transform: translate(-50%, -50%);
  border: 0;
  background: transparent;
  width: 124px;
  min-height: 62px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .28rem;
  color: rgba(232,229,223,.72);
  border-radius: 22px;
}
.contact-package-node-halo {
  position: absolute;
  top: .66rem;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(196,169,106,.3) 0%, transparent 72%);
  opacity: 0;
  transition: opacity .22s ease;
}
.contact-package-node-core {
  position: relative;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: rgba(240,234,212,.88);
  box-shadow:
    0 0 9px rgba(240,234,212,.5),
    0 0 16px rgba(196,169,106,.24);
  transition: transform .22s ease, box-shadow .22s ease, background .22s ease;
}
.contact-package-node-hours {
  font-size: .52rem;
  letter-spacing: .2em;
  color: rgba(232,229,223,.52);
  text-transform: uppercase;
}
.contact-package-node-label {
  font-family: var(--serif);
  font-size: .84rem;
  line-height: 1.08;
  color: rgba(232,229,223,.76);
  text-align: center;
}
.contact-package-node:hover .contact-package-node-core,
.contact-package-node:focus-visible .contact-package-node-core,
.contact-package-node.is-active .contact-package-node-core {
  transform: scale(1.24);
  background: rgba(255,252,245,.95);
  box-shadow:
    0 0 12px rgba(255,252,245,.62),
    0 0 22px rgba(196,169,106,.32);
}
.contact-package-node.is-active .contact-package-node-halo {
  opacity: 1;
}
.contact-package-node:hover .contact-package-node-label,
.contact-package-node:focus-visible .contact-package-node-label,
.contact-package-node.is-active .contact-package-node-label {
  color: rgba(232,229,223,.96);
}
.contact-package-node.is-active .contact-package-node-hours {
  color: rgba(196,169,106,.9);
}
.contact-package-node:focus-visible {
  outline: 2px solid rgba(196,169,106,.68);
  outline-offset: 4px;
}

.contact-wizard-footer {
  display: grid;
  align-content: end;
  gap: .24rem;
}
.contact-wizard-nav {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: .6rem;
}
.form-submit {
  min-width: 138px;
  height: 38px;
  padding: 0 1.4rem;
  border-radius: 999px;
  border: 1px solid rgba(196,169,106,.34);
  background: rgba(196,169,106,.14);
  color: rgba(232,229,223,.9);
  font-family: var(--sans);
  font-size: .58rem;
  font-weight: 500;
  letter-spacing: .2em;
  text-transform: uppercase;
  transition: border-color .24s ease, background .24s ease, color .24s ease;
  cursor: none;
}
.form-submit:hover,
.form-submit:focus-visible {
  border-color: rgba(196,169,106,.58);
  background: rgba(196,169,106,.24);
}
.form-submit:focus-visible {
  outline: 2px solid rgba(196,169,106,.58);
  outline-offset: 2px;
}
.form-submit--ghost {
  border-color: rgba(255,255,255,.14);
  background: rgba(255,255,255,.03);
  color: rgba(232,229,223,.68);
}
.form-submit--ghost:hover,
.form-submit--ghost:focus-visible {
  border-color: rgba(196,169,106,.38);
  color: rgba(232,229,223,.86);
  background: rgba(255,255,255,.06);
}
.form-submit[disabled],
.form-submit.is-disabled {
  opacity: .46;
  pointer-events: none;
}

.contact-wizard-microcopy {
  text-align: center;
  font-size: .68rem;
  color: rgba(232,229,223,.5);
}
.contact-form-error {
  display: none;
  text-align: center;
  font-size: .78rem;
  color: #df8f8f;
  line-height: 1.4;
}
.contact-form-error.is-visible {
  display: block;
}
.contact-wizard-note {
  text-align: center;
  font-size: .66rem;
  line-height: 1.45;
  color: rgba(232,229,223,.46);
}
.contact-wizard-note a {
  color: inherit;
  border-bottom: 1px solid rgba(196,169,106,.34);
}

.contact-discard-confirm {
  position: absolute;
  inset: 0;
  z-index: 8;
  display: grid;
  place-content: center;
  gap: .55rem;
  padding: 1.2rem;
  text-align: center;
  border-radius: inherit;
  background: rgba(6, 6, 10, .78);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  opacity: 0;
  pointer-events: none;
  transition: opacity .22s ease;
}
.contact-discard-confirm.is-visible {
  opacity: 1;
  pointer-events: auto;
}
.contact-discard-confirm-title {
  font-family: var(--serif);
  font-size: 1.1rem;
  color: rgba(232,229,223,.95);
}
.contact-discard-confirm-text {
  font-size: .78rem;
  color: rgba(232,229,223,.66);
  line-height: 1.4;
}
.contact-discard-confirm-actions {
  display: flex;
  justify-content: center;
  gap: .55rem;
  flex-wrap: wrap;
}

.contact-confirmation {
  width: 100%;
  text-align: center;
  padding: clamp(2rem, 4vh, 3rem) .7rem;
  margin: auto 0;
}
.contact-confirmation-icon {
  font-size: 1.6rem;
  color: rgba(196,169,106,.86);
  margin-bottom: .5rem;
}
.contact-confirmation-headline {
  font-family: var(--serif);
  font-size: 1.35rem;
  color: rgba(232,229,223,.95);
  margin-bottom: .32rem;
}
.contact-confirmation-text {
  font-size: .82rem;
  color: rgba(232,229,223,.62);
}
.contact-confirmation-close {
  display: block;
  width: fit-content;
  margin: 2rem auto 0;
  padding: .7rem 2rem;
  border-radius: 999px;
  border: 1px solid rgba(196,169,106,.65);
  background: rgba(196,169,106,.06);
  color: rgba(232,229,223,.88);
  font-family: var(--sans);
  font-size: .72rem;
  font-weight: 500;
  letter-spacing: .12em;
  text-transform: uppercase;
  cursor: pointer;
  transition: border-color .24s ease, color .24s ease, background .24s ease;
}
.contact-confirmation-close:hover,
.contact-confirmation-close:focus-visible {
  border-color: rgba(196,169,106,.9);
  color: rgba(232,229,223,1);
  background: rgba(196,169,106,.14);
}
.contact-confirmation-close:focus-visible {
  outline: 2px solid rgba(196,169,106,.5);
  outline-offset: 2px;
}

/* ============================================================
   PROCESS STEPS
   ============================================================ */
.process-steps { display: flex; flex-direction: column; gap: 0; margin-top: 1rem }
.process-steps.compact .process-step { padding: .7rem 0 }
.process-step {
  display: flex; gap: 1.2rem; align-items: flex-start;
  padding: 1rem 0; border-bottom: 1px solid var(--border);
}
.process-step:last-child { border-bottom: none }
.step-number {
  font-family: var(--serif); font-size: 1.4rem; font-weight: 300;
  color: var(--accent); opacity: .3; line-height: 1;
  min-width: 2rem; padding-top: .1rem;
}
.step-content h3 {
  font-family: var(--serif); font-weight: 400; font-size: .95rem;
  margin-bottom: .15rem; color: var(--text); letter-spacing: .02em;
}
.step-content p { font-size: .78rem; color: var(--text-muted); line-height: 1.55 }

/* Premium stepper variant for "Ablauf · Euer Weg" */
.process-stepper {
  margin-top: 1.1rem;
}
.process-stepper-layout {
  display: grid;
  grid-template-columns: minmax(180px, 220px) minmax(0, 1fr);
  gap: clamp(1.2rem, 3vw, 2.2rem);
  align-items: stretch;
}
.process-stepper-nav {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: .35rem;
}
.process-stepper-nav-item {
  margin: 0;
}
.process-stepper-trigger {
  width: 100%;
  border: 0;
  padding: .55rem .1rem;
  background: transparent;
  color: var(--text-dim);
  display: grid;
  grid-template-columns: auto auto minmax(0, 1fr);
  align-items: center;
  gap: .62rem;
  text-align: left;
  letter-spacing: .08em;
  transition: color .28s ease, opacity .28s ease;
}
.process-stepper-trigger-number {
  font-family: var(--serif);
  font-size: 1.2rem;
  line-height: 1;
  color: rgba(196,169,106,.45);
  transition: color .32s ease, text-shadow .32s ease;
}
.process-stepper-trigger-marker {
  width: 16px;
  height: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.process-stepper-star {
  width: 16px;
  height: 16px;
  overflow: visible;
}
.process-stepper-star-orbit {
  fill: none;
  stroke: rgba(196,169,106,.22);
  stroke-width: 1;
  transition: stroke .25s ease, filter .25s ease;
}
.process-stepper-star-core {
  fill: rgba(196,169,106,.35);
  transition: fill .25s ease, filter .25s ease;
}
.process-stepper-star-axis {
  fill: none;
  stroke: rgba(196,169,106,.28);
  stroke-linecap: round;
  stroke-width: .85;
  transition: stroke .25s ease;
}
.process-stepper-trigger-title {
  font-size: .67rem;
  text-transform: uppercase;
  letter-spacing: .18em;
  color: rgba(232,229,223,.64);
  transition: color .3s ease;
}
.process-stepper-trigger:hover .process-stepper-trigger-title,
.process-stepper-trigger:focus-visible .process-stepper-trigger-title {
  color: rgba(232,229,223,.86);
}
.process-stepper-trigger:hover .process-stepper-star-core,
.process-stepper-trigger:focus-visible .process-stepper-star-core {
  fill: rgba(196,169,106,.48);
}
.process-stepper-trigger:hover .process-stepper-star-orbit,
.process-stepper-trigger:focus-visible .process-stepper-star-orbit {
  stroke: rgba(196,169,106,.36);
}
.process-stepper-trigger.is-active .process-stepper-trigger-number {
  color: rgba(196,169,106,.92);
  text-shadow: 0 0 12px rgba(196,169,106,.22);
}
.process-stepper-trigger.is-active .process-stepper-star-orbit {
  stroke: rgba(196,169,106,.58);
  filter: drop-shadow(0 0 4px rgba(196,169,106,.2));
}
.process-stepper-trigger.is-active .process-stepper-star-core {
  fill: rgba(196,169,106,.95);
  filter: drop-shadow(0 0 5px rgba(196,169,106,.24));
}
.process-stepper-trigger.is-active .process-stepper-star-axis {
  stroke: rgba(196,169,106,.54);
}
.process-stepper-trigger.is-active .process-stepper-trigger-title {
  color: rgba(232,229,223,.9);
}
.process-stepper-trigger:focus-visible {
  outline: 1px solid rgba(196,169,106,.45);
  outline-offset: 4px;
  border-radius: 2px;
}

.process-stepper-detail {
  position: relative;
  border: 1px solid rgba(196,169,106,.13);
  border-radius: 22px;
  background:
    linear-gradient(165deg, rgba(14,14,22,.76) 0%, rgba(10,10,16,.72) 100%),
    radial-gradient(circle at 82% 11%, rgba(196,169,106,.06) 0%, transparent 42%);
  padding: clamp(1.35rem, 2.2vw, 1.95rem);
  min-height: 320px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  overflow: hidden;
  box-shadow:
    0 14px 32px rgba(0,0,0,.16),
    inset 0 1px 0 rgba(255,255,255,.025);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.process-card-mount {
  min-width: 0;
}
.process-stepper-detail.process-card {
  --process-card-speed: 320ms;
  opacity: 1;
  transform: translateY(0);
  filter: blur(0);
  transition:
    opacity var(--process-card-speed) cubic-bezier(0.2, 0.8, 0.2, 1),
    transform var(--process-card-speed) cubic-bezier(0.2, 0.8, 0.2, 1),
    filter var(--process-card-speed) cubic-bezier(0.2, 0.8, 0.2, 1);
  will-change: opacity, transform, filter;
}
.process-stepper-detail.process-card.card-out {
  --process-card-speed: 280ms;
  opacity: 0;
  transform: translateY(10px);
  filter: blur(2px);
  pointer-events: none;
}
.process-stepper-detail.process-card.card-preenter {
  --process-card-speed: 320ms;
  opacity: 0;
  transform: translateY(10px);
  filter: blur(2px);
}
.process-stepper-detail.process-card.card-in {
  --process-card-speed: 320ms;
  opacity: 1;
  transform: translateY(0);
  filter: blur(0);
}
.process-stepper-detail-content {
  opacity: 1;
  transform: scale(1);
  transition: opacity .34s cubic-bezier(0.22, 1, 0.36, 1), transform .34s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, transform;
}
.process-stepper-detail-content.is-transitioning {
  opacity: 0;
  transform: scale(.996);
}
.process-stepper-kicker {
  margin: 0;
  font-size: .58rem;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: rgba(196,169,106,.88);
}
.process-stepper-heading {
  margin: .55rem 0 .55rem;
  font-family: var(--serif);
  font-size: clamp(1.6rem, 4vw, 2.15rem);
  font-weight: 300;
  line-height: 1.2;
  color: var(--text);
}
.process-stepper-description {
  margin: 0;
  font-size: .9rem;
  line-height: 1.8;
  color: rgba(232,229,223,.72);
  max-width: 58ch;
}
.process-stepper-cta {
  margin-top: 1.45rem;
  padding-top: 1.1rem;
  border-top: 1px solid rgba(196,169,106,.14);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 1.05rem;
}
.process-stepper-cta-primary,
.process-stepper-cta-secondary {
  height: 35px;
  min-width: 192px;
  padding: 0 1.1rem;
  border-radius: 999px;
  font-size: .56rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  transition: color .25s ease, background .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.process-stepper-cta-primary {
  border: 1px solid rgba(196,169,106,.5);
  background: rgba(196,169,106,.12);
  color: rgba(232,229,223,.9);
}
.process-stepper-cta-primary:hover,
.process-stepper-cta-primary:focus-visible {
  border-color: rgba(196,169,106,.75);
  background: rgba(196,169,106,.2);
  box-shadow: 0 0 18px rgba(196,169,106,.2);
}
.process-stepper-cta-secondary {
  border: 1px solid rgba(196,169,106,.25);
  background: transparent;
  color: rgba(232,229,223,.7);
}
.process-stepper-cta-secondary:hover,
.process-stepper-cta-secondary:focus-visible {
  border-color: rgba(196,169,106,.42);
  color: rgba(232,229,223,.88);
  background: rgba(10,10,16,.7);
}
.process-stepper-cta-primary:focus-visible,
.process-stepper-cta-secondary:focus-visible {
  outline: 1px solid rgba(196,169,106,.45);
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
  .process-stepper-detail.process-card {
    transition-duration: 1ms;
  }
  .process-stepper-detail.process-card.card-out,
  .process-stepper-detail.process-card.card-preenter,
  .process-stepper-detail.process-card.card-in {
    transform: none;
    filter: none;
  }
}

/* ============================================================
   EXPERIENCE CINEMATIC CHAPTERS
   ============================================================ */
/* ============================================================
   EXPERIENCE SHELL — Rail + Focus + Starfield
   ============================================================ */
.experience-shell {
  position: relative;
  width: 100%;
  height: 100dvh;
  min-height: 100dvh;
  display: grid;
  grid-template-columns: clamp(220px, 22vw, 320px) 1fr;
  grid-template-rows: 1fr;
  overflow: hidden;
  isolation: isolate;
}

/* — Background starfield — */
.experience-sky {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
}
.experience-sky::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 18% 22%, rgba(196,169,106,.06), transparent 52%),
    radial-gradient(circle at 78% 76%, rgba(240,234,212,.04), transparent 58%),
    radial-gradient(circle at 47% 52%, rgba(240,234,212,.015), transparent 66%);
}
.experience-sky-vignette {
  position: absolute;
  inset: 0;
  z-index: 2;
  background: radial-gradient(ellipse 88% 82% at 50% 50%, transparent 30%, rgba(5,5,10,.78) 100%);
  pointer-events: none;
}
.experience-sky-layer {
  position: absolute;
  inset: 0;
  pointer-events: none;
  will-change: transform;
  transition: transform .15s linear;
}
.experience-sky-layer--far  { z-index: 0; }
.experience-sky-layer--mid  { z-index: 1; }
.experience-sky-layer--near { z-index: 2; }

.exp-bg-star {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  background: radial-gradient(circle, rgba(255,252,245,.92) 0%, rgba(248,244,233,.6) 50%, transparent 100%);
  will-change: transform, opacity;
}
.exp-bg-star--far  { animation: expTwinkleFar  ease-in-out infinite; }
.exp-bg-star--mid  { animation: expTwinkleMid  ease-in-out infinite; }
.exp-bg-star--near { animation: expTwinkleNear ease-in-out infinite; }
.exp-bg-star::after {
  content: '';
  position: absolute;
  left: 50%; top: 50%;
  width: 280%; height: 280%;
  transform: translate(-50%,-50%);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(196,169,106,.18) 0%, transparent 70%);
  pointer-events: none;
}
.exp-bg-star--near::after {
  width: 340%; height: 340%;
  background: radial-gradient(circle, rgba(214,190,126,.26) 0%, transparent 72%);
}
/* — Background star pulse per depth layer — */
@keyframes expTwinkleFar {
  0%, 100% { transform: scale(1); opacity: var(--star-a, .2); }
  50% { transform: scale(1.25); opacity: calc(var(--star-a, .2) * 1.6); }
}
@keyframes expTwinkleMid {
  0%, 100% { transform: scale(1); opacity: var(--star-a, .3); filter: brightness(1); }
  45% { transform: scale(1.4); opacity: calc(var(--star-a, .3) * 1.8); filter: brightness(1.3); }
}
@keyframes expTwinkleNear {
  0%, 100% { transform: scale(1); opacity: var(--star-a, .4); filter: brightness(1); }
  40% { transform: scale(1.6); opacity: calc(var(--star-a, .4) * 2.2); filter: brightness(1.5); }
  60% { transform: scale(1.15); opacity: calc(var(--star-a, .4) * 1.4); filter: brightness(1.15); }
}

/* — Active stars (interactive) — */
.experience-active-stars {
  position: absolute;
  inset: 0;
  z-index: 5;
}
.experience-active-star {
  position: absolute;
  transform: translate(-50%, -50%);
  width: 14px; height: 14px;
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  z-index: 5;
}
.experience-active-star::before {
  content: '';
  position: absolute;
  inset: -2px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255,250,235,.92) 0%, rgba(240,234,212,.55) 40%, transparent 100%);
  box-shadow: 0 0 10px 3px rgba(196,169,106,.4);
  animation: expActiveStarPulse 3.5s ease-in-out infinite;
}
.experience-active-star::after {
  content: '';
  position: absolute;
  left: 50%; top: 50%;
  width: 44px; height: 44px;
  transform: translate(-50%,-50%);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(196,169,106,.16) 0%, transparent 65%);
  animation: expActiveGlowRing 3.5s ease-in-out infinite;
}
.experience-active-star:hover::after,
.experience-active-star.is-selected::after {
  background: radial-gradient(circle, rgba(196,169,106,.3) 0%, transparent 65%);
}
.experience-active-star.is-selected::before {
  box-shadow: 0 0 16px 5px rgba(196,169,106,.55);
  animation: expActiveStarPulseSelected 2.8s ease-in-out infinite;
}
@keyframes expActiveStarPulse {
  0%, 100% { transform: scale(1); opacity: .8; }
  50% { transform: scale(1.35); opacity: 1; }
}
@keyframes expActiveStarPulseSelected {
  0%, 100% { transform: scale(1); opacity: .85; }
  40% { transform: scale(1.5); opacity: 1; }
  60% { transform: scale(1.2); opacity: .95; }
}
@keyframes expActiveGlowRing {
  0%, 100% { transform: translate(-50%,-50%) scale(1); opacity: .7; }
  50% { transform: translate(-50%,-50%) scale(1.35); opacity: 1; }
}

/* Star tooltip */
.experience-star-tip {
  position: absolute;
  bottom: calc(100% + 10px);
  left: 50%;
  transform: translateX(-50%) translateY(4px);
  white-space: nowrap;
  font-family: var(--sans);
  font-size: .7rem;
  font-weight: 500;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--text);
  padding: .3rem .65rem;
  background: rgba(255,255,255,.06);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 100px;
  opacity: 0;
  pointer-events: none;
  transition: opacity .22s ease, transform .22s ease;
}
.experience-active-star:hover .experience-star-tip,
.experience-active-star:focus-visible .experience-star-tip,
.experience-active-star.is-selected .experience-star-tip {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

/* — Left rail — */
.experience-rail {
  position: relative;
  z-index: 10;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(2rem, 5vh, 4rem) clamp(1.2rem, 2.5vw, 2.4rem);
  gap: 1.8rem;
  pointer-events: auto;
}
.experience-rail-head {
  display: flex;
  flex-direction: column;
  gap: .55rem;
}
.experience-rail-title {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(1.6rem, 2.8vw, 2.3rem);
  font-weight: 300;
  line-height: 1.1;
  letter-spacing: .015em;
  color: var(--text);
}
.experience-rail-intro {
  margin: 0;
  font-family: var(--sans);
  font-size: .78rem;
  line-height: 1.55;
  color: var(--text-muted);
  max-width: 28ch;
}
.experience-rail-nav {
  display: flex;
  flex-direction: column;
}
.experience-rail-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: .15rem;
}
.experience-rail-item {
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: .6rem .7rem;
  border-radius: 8px;
  cursor: pointer;
  transition: background .2s ease, box-shadow .2s ease;
  outline: none;
}
.experience-rail-item:hover {
  background: rgba(255,255,255,.04);
}
.experience-rail-item:focus-visible {
  outline: 1px solid rgba(196,169,106,.4);
  outline-offset: -1px;
}
.experience-rail-item.is-active {
  background: rgba(255,255,255,.055);
  box-shadow: inset 0 0 0 1px rgba(196,169,106,.18);
}
.experience-rail-numeral {
  font-family: var(--sans);
  font-size: .62rem;
  font-weight: 500;
  letter-spacing: .1em;
  color: var(--text-dim);
  min-width: 1.3rem;
  transition: color .2s ease;
}
.experience-rail-item.is-active .experience-rail-numeral {
  color: var(--accent);
}
.experience-rail-label {
  font-family: var(--serif);
  font-size: clamp(.95rem, 1.3vw, 1.12rem);
  font-weight: 400;
  letter-spacing: .01em;
  color: rgba(232,229,223,.7);
  transition: color .2s ease;
}
.experience-rail-item:hover .experience-rail-label {
  color: rgba(232,229,223,.92);
}
.experience-rail-item.is-active .experience-rail-label {
  color: rgba(232,229,223,.97);
  font-weight: 500;
}

/* — Focus area (content) — */
.experience-focus {
  position: relative;
  z-index: 8;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(3rem, 6vh, 5rem) clamp(1.5rem, 4vw, 4rem);
  pointer-events: auto;
}
.experience-focus-content {
  width: min(560px, 72vw);
  display: flex;
  flex-direction: column;
  gap: .6rem;
  opacity: 1;
  transform: translateY(0);
  filter: blur(0);
  transition:
    opacity .28s var(--ease-expo),
    transform .28s var(--ease-expo),
    filter .28s var(--ease-expo);
}
.experience-focus-content.is-leaving {
  opacity: 0;
  transform: translateY(6px);
  filter: blur(1.5px);
}
.experience-focus-content.is-entering {
  opacity: 1;
  transform: translateY(0);
  filter: blur(0);
}
.experience-focus-title {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(2.2rem, 4.5vw, 3.4rem);
  font-weight: 300;
  line-height: 1.06;
  letter-spacing: .015em;
  color: var(--text);
  text-shadow: 0 0 28px rgba(7,7,11,.8), 0 0 56px rgba(7,7,11,.5);
}
.experience-focus-sub {
  margin: 0;
  font-family: var(--serif-it);
  font-style: italic;
  font-size: clamp(.9rem, 1.2vw, 1.08rem);
  line-height: 1.5;
  color: rgba(232,229,223,.65);
  letter-spacing: .015em;
  text-shadow: 0 0 14px rgba(7,7,11,.8);
}
.experience-focus-body {
  margin: .45rem 0 0;
  font-family: var(--sans);
  font-size: clamp(.82rem, .95vw, .92rem);
  line-height: 1.72;
  color: rgba(232,229,223,.72);
  max-width: 54ch;
  text-shadow: 0 0 12px rgba(7,7,11,.7);
}
.experience-focus-bullets {
  list-style: none;
  margin: .7rem 0 0;
  padding: .7rem 0 0;
  border-top: 1px solid rgba(255,255,255,.06);
  display: flex;
  flex-direction: column;
  gap: .35rem;
}
.experience-bullets-header {
  font-family: var(--sans);
  font-size: .66rem;
  font-weight: 500;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--accent);
  opacity: .7;
  margin-bottom: .15rem;
}
.experience-focus-bullets li:not(.experience-bullets-header) {
  font-family: var(--sans);
  font-size: .78rem;
  line-height: 1.55;
  color: rgba(232,229,223,.6);
  padding-left: 1rem;
  position: relative;
}
.experience-focus-bullets li:not(.experience-bullets-header)::before {
  content: '';
  position: absolute;
  left: 0;
  top: .55em;
  width: 4px; height: 4px;
  border-radius: 50%;
  background: var(--accent);
  opacity: .45;
}

/* — Mobile chips (hidden on desktop) — */
.experience-chips {
  display: none;
}

/* — Reduced motion — */
.experience-shell.is-reduced-motion .exp-bg-star,
.experience-shell.is-reduced-motion .experience-active-star::before,
.experience-shell.is-reduced-motion .experience-active-star::after {
  animation: none !important;
}
.experience-shell.is-reduced-motion .experience-focus-content {
  transition-duration: .15s !important;
}
.experience-shell.is-reduced-motion .experience-focus-content.is-leaving {
  filter: blur(0);
  transform: none;
}
@media (prefers-reduced-motion: reduce) {
  .exp-bg-star,
  .experience-active-star::before {
    animation: none !important;
  }
  .experience-focus-content.is-leaving {
    filter: blur(0);
    transform: none;
  }
}

/* ============================================================
   ABOUT SECTION
   ============================================================ */
.about-signature {
  font-family: var(--serif-it); font-style: italic;
  font-size: 1.1rem; color: var(--accent); opacity: .5; margin-top: 1.2rem;
}

.about-facts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin: 2rem 0 }
.about-fact {
  text-align: center; padding: 1rem .5rem;
  border: 1px solid var(--border); border-radius: 2px;
}
.about-fact-number {
  font-family: var(--serif); font-size: 1.8rem; font-weight: 300;
  color: var(--accent); line-height: 1; margin-bottom: .3rem; opacity: .7;
}
.about-fact-label {
  font-size: .5rem; letter-spacing: .2em; text-transform: uppercase;
  color: var(--text-dim);
}

.star-accent {
  background: var(--surface); border: 1px solid var(--border); border-radius: 2px;
  padding: 1.2rem 1.5rem; margin: 2rem 0;
  display: flex; gap: 1rem; align-items: flex-start;
}
.star-accent-icon { font-size: 1.2rem; line-height: 1; flex-shrink: 0; opacity: .5; margin-top: .1rem }
.star-accent-text {
  font-family: var(--serif-it); font-style: italic; font-size: .82rem;
  color: var(--text-dim); line-height: 1.6;
}

/* ============================================================
   EXPERIENCE / PRICING PREVIEW
   ============================================================ */
.lounge-preview {
  width: min(100%, 1020px);
  height: 100vh;
  height: 100dvh;
  min-height: 100%;
  margin: 0 auto;
  padding: clamp(4.35rem, 7.2vh, 5.4rem) clamp(.55rem, 1.8vw, 1.3rem) calc(clamp(7.6rem, 10vh, 8.8rem) + env(safe-area-inset-bottom));
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  gap: clamp(.55rem, 1.2vh, .95rem);
  overflow: hidden;
}
.detail-view--lounge-preview {
  width: min(100%, 1020px);
  height: 100%;
  max-width: 1020px;
  min-height: 100%;
  margin: 0 auto;
}
.lounge-preview-header {
  width: min(100%, 740px);
  margin: 0 auto;
  text-align: center;
}
.lounge-preview .panel-badge {
  margin-bottom: clamp(.35rem, .9vh, .65rem);
}
.lounge-preview .panel-subtitle {
  margin-bottom: clamp(.35rem, .85vh, .6rem);
}
.lounge-preview-intro {
  margin: 0 auto;
  max-width: 52ch;
  font-family: var(--sans);
  font-size: clamp(.68rem, .9vw, .8rem);
  line-height: 1.55;
  color: rgba(232,229,223,.62);
  opacity: 0;
  transform: translateY(12px);
}
.lounge-preview-main {
  min-height: 0;
  display: grid;
  place-items: center;
  opacity: 0;
  transform: translateY(14px);
}
.lounge-preview-deck {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(.48rem, 1.05vh, .85rem);
  width: min(100%, 940px);
  height: 100%;
  min-height: 0;
  align-content: center;
  grid-auto-rows: minmax(0, 1fr);
}
.lounge-preview-card {
  --lounge-x: 50%;
  --lounge-y: 50%;
  position: relative;
  width: 100%;
  min-height: clamp(64px, 11vh, 126px);
  border-radius: 22px;
  border: 1px solid rgba(196,169,106,.2);
  background:
    linear-gradient(150deg, rgba(14,14,22,.72), rgba(9,9,14,.58)),
    radial-gradient(circle at 16% 20%, rgba(196,169,106,.08), transparent 56%);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  padding: clamp(.65rem, 1.6vh, .9rem) clamp(.78rem, 1.6vw, 1rem);
  cursor: pointer;
  isolation: isolate;
  text-align: left;
  font: inherit;
  color: inherit;
  appearance: none;
  transition:
    transform .18s ease,
    border-color .18s ease,
    box-shadow .18s ease,
    background .2s ease;
}
.lounge-preview-card::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: radial-gradient(circle at var(--lounge-x) var(--lounge-y), rgba(240,234,212,.12) 0%, transparent 58%);
  opacity: 0;
  transition: opacity .18s ease;
  pointer-events: none;
}
.lounge-preview-card::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background:
    radial-gradient(circle at 22% 35%, rgba(240,234,212,.28) .6px, transparent 1.4px),
    radial-gradient(circle at 65% 68%, rgba(240,234,212,.22) .6px, transparent 1.4px),
    radial-gradient(circle at 76% 26%, rgba(196,169,106,.24) .7px, transparent 1.5px);
  opacity: 0;
  transform: scale(1);
  transition: opacity .18s ease, transform .18s ease;
  pointer-events: none;
}
.lounge-preview-card:hover,
.lounge-preview-card:focus-visible,
.lounge-preview-card.is-linked {
  transform: translateY(-2px);
  border-color: rgba(196,169,106,.42);
  box-shadow: 0 10px 20px rgba(3,3,7,.3), 0 0 20px rgba(196,169,106,.12);
}
.lounge-preview-card:hover::before,
.lounge-preview-card:focus-visible::before,
.lounge-preview-card.is-hovered::before {
  opacity: 1;
}
.lounge-preview-card:hover::after,
.lounge-preview-card:focus-visible::after,
.lounge-preview-card.is-hovered::after {
  opacity: .58;
  transform: scale(1.02);
}
.lounge-preview-card:focus-visible {
  outline: 1px solid rgba(196,169,106,.55);
  outline-offset: 2px;
}
.lounge-preview-dot {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  display: inline-block;
  margin-bottom: .45rem;
  background: radial-gradient(circle, rgba(240,234,212,.95) 0%, rgba(196,169,106,.7) 60%, transparent 100%);
  box-shadow: 0 0 9px rgba(196,169,106,.55);
}
.lounge-preview-title {
  margin: 0;
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(.95rem, 1.25vw, 1.16rem);
  color: var(--text);
  line-height: 1.2;
}
.lounge-preview-teaser {
  margin: clamp(.26rem, .7vh, .42rem) 0 0;
  font-family: var(--sans);
  font-size: clamp(.62rem, .8vw, .72rem);
  line-height: 1.4;
  color: rgba(232,229,223,.68);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  opacity: .2;
  transform: translateY(2px);
  transition: opacity .18s ease, transform .18s ease;
}
.lounge-preview-card:hover .lounge-preview-teaser,
.lounge-preview-card:focus-visible .lounge-preview-teaser,
.lounge-preview-card.is-linked .lounge-preview-teaser {
  opacity: .95;
  transform: translateY(0);
}
.lounge-preview-more {
  display: inline-flex;
  margin-top: clamp(.4rem, .95vh, .62rem);
  font-family: var(--sans);
  font-size: clamp(.5rem, .64vw, .54rem);
  letter-spacing: .17em;
  text-transform: uppercase;
  color: rgba(232,229,223,.76);
}

.lounge-progress-orbit {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(.45rem, .8vh, .7rem) clamp(.75rem, 1.4vw, 1rem);
  align-items: center;
  justify-content: center;
  min-height: clamp(40px, 6.8vh, 56px);
  opacity: 0;
  transform: translateY(14px);
}
.lounge-orbit-dot {
  border: none;
  background: transparent;
  color: rgba(232,229,223,.74);
  font-family: var(--sans);
  font-size: .58rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .2rem .3rem;
  cursor: pointer;
}
.lounge-orbit-dot::before {
  content: '';
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: radial-gradient(circle, rgba(240,234,212,.95) 0%, rgba(196,169,106,.62) 58%, transparent 100%);
  box-shadow: 0 0 10px rgba(196,169,106,.3);
  transition: transform .2s ease, box-shadow .2s ease, opacity .2s ease;
  opacity: .72;
}
.lounge-orbit-dot:hover::before,
.lounge-orbit-dot:focus-visible::before,
.lounge-orbit-dot.is-active::before {
  transform: scale(1.18);
  opacity: 1;
  box-shadow: 0 0 14px rgba(196,169,106,.55);
}
.lounge-orbit-dot:focus-visible {
  outline: 1px solid rgba(196,169,106,.55);
  outline-offset: 3px;
  border-radius: 999px;
}

.lounge-preview-modal {
  position: fixed;
  inset: 0;
  z-index: 92;
  display: grid;
  place-items: center;
  padding: 1rem;
  opacity: 0;
  pointer-events: none;
  transition: opacity .22s ease;
}
.lounge-preview-modal.is-open {
  opacity: 1;
  pointer-events: auto;
}
.lounge-preview-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(4,4,9,.62);
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
}
.lounge-preview-modal-dialog {
  position: relative;
  z-index: 1;
  width: min(720px, calc(100vw - 2rem));
  max-height: min(80dvh, 680px);
  border-radius: 24px;
  border: 1px solid rgba(196,169,106,.24);
  background:
    linear-gradient(166deg, rgba(12,12,19,.94), rgba(7,7,11,.9)),
    radial-gradient(circle at 18% 14%, rgba(196,169,106,.09), transparent 52%);
  box-shadow: 0 24px 50px rgba(3,3,7,.5);
  padding: .95rem .95rem 1rem;
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr) auto;
  gap: .45rem;
  transform: translateY(8px) scale(.985);
  transition: transform .22s ease;
}
.lounge-preview-modal.is-open .lounge-preview-modal-dialog {
  transform: translateY(0) scale(1);
}
.lounge-preview-modal-close {
  position: absolute;
  top: .55rem;
  right: .55rem;
  width: 34px;
  height: 34px;
  border: 1px solid rgba(196,169,106,.25);
  border-radius: 999px;
  background: rgba(13,13,20,.72);
  color: rgba(232,229,223,.84);
  cursor: pointer;
}
.lounge-preview-modal-close:hover,
.lounge-preview-modal-close:focus-visible {
  border-color: rgba(196,169,106,.5);
  background: rgba(18,18,26,.9);
}
.lounge-preview-modal-kicker {
  margin: 0;
  font-family: var(--sans);
  font-size: .56rem;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: var(--accent);
  opacity: .85;
}
.lounge-preview-modal-title {
  margin: 0;
  padding-right: 2.2rem;
  font-family: var(--serif);
  font-weight: 300;
  font-size: clamp(1.45rem, 2.5vw, 2rem);
  line-height: 1.1;
  color: var(--text);
}
.lounge-preview-modal-body {
  min-height: 0;
  overflow: auto;
  padding-right: .18rem;
  scrollbar-width: thin;
}
.lounge-preview-modal-list {
  margin: 0;
  padding: .72rem 0 0;
  list-style: none;
  border-top: 1px solid rgba(255,255,255,.07);
  display: grid;
  gap: .4rem;
}
.lounge-preview-modal-list li {
  position: relative;
  padding-left: .88rem;
  font-family: var(--sans);
  font-size: .75rem;
  line-height: 1.52;
  color: rgba(232,229,223,.73);
}
.lounge-preview-modal-list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: .48rem;
  width: 5px;
  height: 5px;
  border-radius: 999px;
  background: rgba(196,169,106,.72);
}
.lounge-preview-modal-actions {
  display: flex;
  flex-wrap: nowrap;
  justify-content: flex-start;
  gap: .7rem;
  margin-top: .2rem;
}
.lounge-preview-modal-actions .process-stepper-cta-primary,
.lounge-preview-modal-actions .process-stepper-cta-secondary {
  margin: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}

@media (max-width: 768px) {
  .detail-view--lounge-preview .lounge-preview {
    --sternkarte-h: 88px;
    --safe-bottom: calc(env(safe-area-inset-bottom, 0px) + var(--sternkarte-h) + 16px);
    padding:
      calc(env(safe-area-inset-top) + clamp(3.55rem, 5.8vh, 4.25rem))
      .72rem
      var(--safe-bottom);
    grid-template-rows: auto minmax(0, 1fr) auto;
    gap: .62rem;
    max-height: 100dvh;
  }
  .lounge-preview-header {
    width: min(100%, 520px);
    text-align: center;
  }
  .lounge-preview .panel-badge {
    margin-bottom: .2rem;
  }
  .lounge-preview .panel-title {
    font-size: clamp(1.55rem, 7vw, 2.1rem);
    margin-bottom: .2rem;
  }
  .lounge-preview .panel-subtitle {
    font-size: clamp(.82rem, 3.25vw, .98rem);
    margin-bottom: .2rem;
  }
  .lounge-preview-intro {
    font-size: clamp(.66rem, 2.9vw, .76rem);
    line-height: 1.52;
  }
  /* main = scroll container with gradient fades at edges */
  .detail-view--lounge-preview .lounge-preview-main {
    display: block;
    min-height: 0;
    overflow-y: auto;
    overflow-x: hidden;
    overscroll-behavior-y: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    -ms-overflow-style: none;
    -webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 14px, #000 calc(100% - 14px), transparent 100%);
    mask-image: linear-gradient(to bottom, transparent 0, #000 14px, #000 calc(100% - 14px), transparent 100%);
  }
  .detail-view--lounge-preview .lounge-preview-main::-webkit-scrollbar {
    width: 0;
    height: 0;
  }
  /* deck lays out cards — no longer scrolls itself */
  .detail-view--lounge-preview .lounge-preview-deck {
    grid-template-columns: 1fr;
    grid-auto-rows: minmax(124px, auto);
    align-content: start;
    gap: .72rem;
    padding: .08rem .12rem .24rem;
  }
  .detail-view--lounge-preview .lounge-preview.is-modal-open .lounge-preview-main {
    overflow: hidden;
  }
  .detail-view--lounge-preview .lounge-preview-card {
    min-height: 124px;
    border-radius: 20px;
    padding: .86rem .9rem .94rem;
    max-width: 100%;
    overflow: hidden;
  }
  .lounge-preview-title {
    font-size: clamp(1rem, 4.8vw, 1.15rem);
    line-height: 1.24;
  }
  .lounge-preview-teaser {
    margin-top: .42rem;
    font-size: clamp(.74rem, 3.3vw, .84rem);
    line-height: 1.48;
    white-space: normal;
    overflow: hidden;
    text-overflow: clip;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    line-clamp: 3;
    opacity: .85;
    transform: none;
  }
  .detail-view--lounge-preview .lounge-preview-more {
    margin-top: .5rem;
    font-size: .58rem;
    letter-spacing: .16em;
  }
  .lounge-progress-orbit {
    position: relative;
    flex-wrap: nowrap;
    justify-content: flex-start;
    align-items: center;
    gap: .52rem;
    min-height: 44px;
    margin: 0 -.12rem;
    padding: .16rem .12rem .1rem;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    -ms-overflow-style: none;
    -webkit-mask-image: linear-gradient(to right, transparent 0, #000 16px, #000 calc(100% - 16px), transparent 100%);
    mask-image: linear-gradient(to right, transparent 0, #000 16px, #000 calc(100% - 16px), transparent 100%);
  }
  .lounge-progress-orbit::-webkit-scrollbar {
    width: 0;
    height: 0;
  }
  .lounge-orbit-dot {
    flex: 0 0 auto;
    min-height: 44px;
    padding: .48rem .84rem;
    gap: .42rem;
    border: 1px solid rgba(196,169,106,.2);
    border-radius: 999px;
    background: rgba(10,10,16,.56);
    scroll-snap-align: center;
    white-space: nowrap;
    transition: border-color .2s ease, background .2s ease, color .2s ease;
  }
  /* text-only pills on mobile — hide the glowing dot */
  .lounge-orbit-dot::before {
    display: none;
  }
  /* gold highlight for active orbit dot */
  .lounge-orbit-dot.is-active {
    border-color: rgba(196,169,106,.4);
    background: rgba(196,169,106,.12);
    color: rgba(232,229,223,.95);
  }
  .lounge-preview-modal {
    z-index: 43;
    align-items: center;
    justify-content: center;
    padding: .75rem .72rem calc(var(--safe-bottom) + .35rem);
  }
  .lounge-preview-modal-dialog {
    width: min(92vw, 680px);
    border-radius: 20px;
    max-height: min(680px, calc(100dvh - var(--safe-bottom) - 24px));
    padding: .85rem .82rem .9rem;
    transform: translateY(10px);
  }
  .lounge-preview-modal.is-open .lounge-preview-modal-dialog {
    transform: translateY(0);
  }
  .lounge-preview-modal-close {
    width: 44px;
    height: 44px;
    top: .45rem;
    right: .45rem;
  }
  .lounge-preview-modal-body {
    overflow-y: auto;
    overscroll-behavior-y: contain;
    -webkit-overflow-scrolling: touch;
    padding-right: .12rem;
  }
  .lounge-preview-modal-actions {
    flex-direction: column;
    gap: .48rem;
  }
  .lounge-preview-modal-actions .process-stepper-cta-primary,
  .lounge-preview-modal-actions .process-stepper-cta-secondary {
    width: 100%;
    min-width: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .lounge-preview-card,
  .lounge-preview-card::before,
  .lounge-preview-card::after,
  .lounge-preview-teaser,
  .lounge-orbit-dot::before,
  .lounge-preview-modal,
  .lounge-preview-modal-dialog {
    transition-duration: .01ms !important;
    animation: none !important;
  }
  .lounge-preview-card {
    transform: none !important;
  }
  .lounge-preview-card::after {
    opacity: 0 !important;
  }
}

.lounge-preview.is-reduced-motion .lounge-preview-card,
.lounge-preview.is-reduced-motion .lounge-preview-card::before,
.lounge-preview.is-reduced-motion .lounge-preview-card::after {
  transition-duration: .01ms !important;
}
.lounge-preview.is-reduced-motion .lounge-preview-modal,
.lounge-preview.is-reduced-motion .lounge-preview-modal-dialog {
  transition-duration: .01ms !important;
}

@media (min-width: 1300px) {
  .lounge-preview-header {
    margin: 0;
    text-align: left;
  }
  .lounge-preview .panel-badge {
    justify-content: flex-start;
  }
  .lounge-preview-intro {
    margin-left: 0;
  }
}
@media (min-width: 1480px) and (min-height: 760px) {
  .lounge-preview-deck {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-height: 760px) {
  .lounge-preview {
    padding-top: clamp(3.9rem, 6.4vh, 4.5rem);
    padding-bottom: calc(clamp(6.7rem, 9.2vh, 7.8rem) + env(safe-area-inset-bottom));
    gap: .45rem;
  }
  .lounge-preview .panel-title {
    font-size: clamp(1.45rem, 3.6vw, 2.2rem);
  }
  .lounge-preview .panel-subtitle {
    margin-bottom: .15rem;
  }
  .lounge-preview-intro {
    font-size: clamp(.6rem, .78vw, .7rem);
    line-height: 1.4;
  }
  .lounge-preview-deck {
    gap: .4rem;
  }
  .lounge-preview-card {
    min-height: clamp(54px, 9.2vh, 74px);
    padding: .54rem .68rem;
  }
  .lounge-preview-more {
    margin-top: .24rem;
  }
}

.packages-experience {
  width: min(100%, 980px);
  margin: 0 auto;
}
.packages-experience-layout {
  display: grid;
  grid-template-columns: minmax(320px, 1.15fr) minmax(300px, 1fr);
  gap: 1rem;
  margin: .7rem 0 .95rem;
  transition: opacity 1s var(--ease-expo), transform 1s var(--ease-expo);
}
.package-star-map {
  position: relative;
  min-height: 342px;
  border-radius: 34px;
  border: 1px solid rgba(196,169,106,.14);
  background:
    radial-gradient(circle at 22% 24%, rgba(196,169,106,.06), transparent 58%),
    radial-gradient(circle at 78% 68%, rgba(240,234,212,.045), transparent 62%),
    linear-gradient(164deg, rgba(10,10,15,.8), rgba(6,6,10,.66));
  overflow: hidden;
  backdrop-filter: blur(9px);
  -webkit-backdrop-filter: blur(9px);
}
.package-star-map::after {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 50% 50%, transparent 30%, rgba(4,4,8,.34) 100%),
    radial-gradient(circle at 30% 35%, rgba(240,234,212,.035) .7px, transparent 1.6px),
    radial-gradient(circle at 74% 61%, rgba(240,234,212,.028) .7px, transparent 1.5px);
  background-size: auto, 48px 48px, 52px 52px;
  pointer-events: none;
}
.package-star-lines {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  pointer-events: none;
}
.package-line {
  stroke: rgba(196,169,106,.2);
  stroke-width: .55;
  opacity: .22;
  transition: stroke .22s ease, opacity .22s ease;
}
.package-line.is-active {
  stroke: rgba(196,169,106,.34);
  opacity: .32;
}
.package-line.is-hover {
  stroke: rgba(232,229,223,.32);
  opacity: .26;
}
.package-line--decor {
  stroke: rgba(196,169,106,.14);
  stroke-width: .5;
  opacity: .12;
}
.package-deep-star {
  fill: rgba(240,234,212,1);
  filter: drop-shadow(0 0 4px rgba(240,234,212,.2));
  opacity: .8;
}
.package-star-nodes {
  position: relative;
  width: 100%;
  height: 100%;
  z-index: 3;
}
.package-node {
  position: absolute;
  transform: translate(-50%, -50%);
  width: 56px;
  height: 56px;
  padding: 0;
  border: none;
  background: transparent;
  display: block;
  z-index: 3;
}
.package-node:hover,
.package-node:focus-visible,
.package-node.is-active {
  z-index: 7;
}
.package-node:focus-visible {
  outline: 1px solid rgba(196,169,106,.54);
  outline-offset: 4px;
  border-radius: 50%;
}
.packages-experience.has-selection .package-node {
  opacity: .82;
}
.packages-experience.has-selection .package-node.is-active {
  opacity: 1;
}
.package-node-halo {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 28px;
  height: 28px;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(196,169,106,.22) 0%, transparent 76%);
  opacity: 0;
  transition: opacity .22s ease;
}
.package-node-core {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 6px;
  height: 6px;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: rgba(240,234,212,.84);
  box-shadow:
    0 0 8px rgba(240,234,212,.38),
    0 0 16px rgba(196,169,106,.18);
  transition: transform .22s ease, box-shadow .22s ease, background .22s ease;
}
.package-node-tooltip {
  position: absolute;
  left: 50%;
  min-width: 124px;
  padding: .4rem .5rem;
  border: 1px solid rgba(196,169,106,.28);
  border-radius: 12px;
  background: rgba(8,8,13,.92);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  text-align: center;
  line-height: 1.35;
  z-index: 8;
  transform: translate(-50%, 0);
  opacity: 0;
  transition: opacity .2s ease, transform .2s ease;
  white-space: nowrap;
  pointer-events: none;
}
.package-node--tooltip-bottom .package-node-tooltip {
  top: calc(50% + 13px);
}
.package-node--tooltip-top .package-node-tooltip {
  bottom: calc(50% + 13px);
}
.package-node-tooltip-title {
  display: block;
  font-family: var(--serif);
  font-size: .63rem;
  letter-spacing: .02em;
  color: rgba(232,229,223,.94);
}
.package-node-tooltip-hours {
  display: block;
  font-size: .5rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(232,229,223,.72);
}
.package-node-tooltip-price {
  display: block;
  margin-top: .12rem;
  font-size: .56rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(232,229,223,.92);
  text-shadow: 0 0 6px rgba(4,4,8,.8);
}
.package-node-leader {
  position: absolute;
  left: 50%;
  top: 50%;
  width: var(--package-leader-length, 14px);
  height: 1px;
  transform-origin: 0 50%;
  transform: translateY(-50%) rotate(var(--package-leader-angle, 0deg));
  background: rgba(196,169,106,.22);
  transition: background .22s ease, opacity .22s ease;
  opacity: .75;
}
.package-node-label-wrap {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(
    calc(-50% + var(--package-label-x, 0px)),
    calc(-50% + var(--package-label-y, 0px))
  );
  min-width: 110px;
  pointer-events: none;
}
.package-node-label {
  font-family: var(--serif);
  font-size: .86rem;
  line-height: 1.1;
  color: rgba(232,229,223,.74);
  text-wrap: balance;
  text-shadow: 0 0 12px rgba(7,7,11,.88);
  transition: color .22s ease, transform .22s ease;
}
.package-node-hours {
  display: inline-block;
  margin-top: .16rem;
  font-size: .5rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(232,229,223,.52);
  transition: color .22s ease;
}
.package-node--label-right .package-node-label-wrap {
  text-align: left;
}
.package-node--label-left .package-node-label-wrap {
  text-align: right;
}
.package-node--label-center .package-node-label-wrap {
  text-align: center;
}
.package-node:hover .package-node-core,
.package-node:focus-visible .package-node-core,
.package-node.is-active .package-node-core {
  transform: translate(-50%, -50%) scale(1.14);
  background: rgba(255,252,245,.92);
  box-shadow:
    0 0 10px rgba(255,252,245,.5),
    0 0 18px rgba(196,169,106,.26);
}
.package-node:hover .package-node-label,
.package-node:focus-visible .package-node-label,
.package-node.is-active .package-node-label {
  color: rgba(232,229,223,.95);
}
.package-node:hover .package-node-hours,
.package-node:focus-visible .package-node-hours,
.package-node.is-active .package-node-hours {
  color: rgba(196,169,106,.88);
}
.package-node:hover .package-node-leader,
.package-node:focus-visible .package-node-leader,
.package-node.is-active .package-node-leader {
  background: rgba(232,229,223,.34);
}
.package-node.is-active .package-node-hours {
  color: rgba(196,169,106,.9);
}
.package-node.is-active .package-node-halo {
  opacity: 1;
}
.package-node:hover .package-node-tooltip,
.package-node:focus-visible .package-node-tooltip {
  opacity: 1;
}
.package-node--tooltip-bottom:hover .package-node-tooltip,
.package-node--tooltip-bottom:focus-visible .package-node-tooltip {
  transform: translate(-50%, 4px);
}
.package-node--tooltip-top:hover .package-node-tooltip,
.package-node--tooltip-top:focus-visible .package-node-tooltip {
  transform: translate(-50%, -4px);
}
.package-detail-panel {
  border-radius: 34px;
  border: 1px solid rgba(196,169,106,.16);
  background:
    linear-gradient(160deg, rgba(15,15,22,.66), rgba(9,9,14,.48));
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  padding: 1.25rem 1.2rem;
  min-height: 342px;
  display: flex;
  align-items: flex-start;
}
.package-detail-copy {
  width: 100%;
  transition: opacity .42s cubic-bezier(.22,.61,.36,1), filter .42s cubic-bezier(.22,.61,.36,1);
  filter: blur(0);
}
.package-detail-copy.is-fade-out {
  opacity: 0;
  filter: blur(2px);
}
.package-detail-copy.is-fade-in {
  opacity: 1;
  filter: blur(0);
}
.package-detail-title {
  font-family: var(--serif);
  font-size: clamp(1.5rem, 2.8vw, 2.1rem);
  font-weight: 300;
  line-height: 1.1;
  margin-bottom: .5rem;
  color: rgba(232,229,223,.96);
}
.package-detail-short {
  font-family: var(--serif-it);
  font-style: italic;
  font-size: .9rem;
  color: rgba(232,229,223,.6);
  margin-bottom: .85rem;
}
.package-detail-meta {
  font-size: .62rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(232,229,223,.58);
  margin-bottom: .55rem;
}
.package-detail-price {
  font-family: var(--serif);
  font-size: 1.32rem;
  color: rgba(196,169,106,.86);
  margin-bottom: .8rem;
}
.package-detail-list {
  list-style: none;
  display: grid;
  gap: .35rem;
  margin-bottom: 1.05rem;
}
.package-detail-list li {
  position: relative;
  padding-left: .9rem;
  font-size: .73rem;
  color: rgba(232,229,223,.72);
  line-height: 1.5;
}
.package-detail-list li::before {
  content: '✦';
  position: absolute;
  left: 0;
  color: rgba(196,169,106,.75);
}
.package-detail-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
}
.package-detail-btn {
  height: 34px;
  padding: 0 .95rem;
  border-radius: 999px;
  font-size: .55rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  transition: border-color .22s ease, color .22s ease, background .22s ease;
}
.package-detail-btn--primary {
  border: 1px solid rgba(196,169,106,.5);
  background: rgba(196,169,106,.12);
  color: rgba(232,229,223,.92);
}
.package-detail-btn--primary:hover,
.package-detail-btn--primary:focus-visible {
  border-color: rgba(196,169,106,.72);
  background: rgba(196,169,106,.2);
}
.package-detail-btn--ghost {
  border: 1px solid rgba(196,169,106,.24);
  background: rgba(8,8,13,.35);
  color: rgba(232,229,223,.72);
}
.package-detail-btn--ghost:hover,
.package-detail-btn--ghost:focus-visible {
  border-color: rgba(196,169,106,.44);
  color: rgba(232,229,223,.9);
}

/* ============================================================
   TESTIMONIAL STARFIELD
   ============================================================ */
.testimonial-starfield {
  width: 100%;
  height: 100%;
  min-height: 100%;
  margin: 0 auto;
  overflow: hidden;
}
.testimonial-orbit {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 100dvh;
  margin: 0;
  overflow: hidden;
  isolation: isolate;
}
.testimonial-orbit::before,
.testimonial-orbit::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.testimonial-orbit::before {
  background:
    radial-gradient(circle at 16% 18%, rgba(196,169,106,.07), transparent 56%),
    radial-gradient(circle at 78% 68%, rgba(240,234,212,.045), transparent 59%),
    radial-gradient(circle at 50% 44%, rgba(240,234,212,.024), transparent 68%);
  opacity: .82;
}
.testimonial-orbit::after {
  background: radial-gradient(circle at 50% 50%, transparent 34%, rgba(4,4,9,.5) 100%);
}
.testimonial-depth-layers {
  position: absolute;
  inset: -2.8%;
  z-index: 1;
  pointer-events: none;
}
.testimonial-depth-layer {
  position: absolute;
  inset: 0;
  pointer-events: none;
  transition: transform 1.2s cubic-bezier(.22,.61,.36,1);
  will-change: transform;
}
.testimonial-depth-layer--far { z-index: 1; }
.testimonial-depth-layer--mid { z-index: 2; }
.testimonial-depth-layer--near { z-index: 3; }
.testimonial-depth-star {
  position: absolute;
  width: var(--depth-star-size, 1.2px);
  height: var(--depth-star-size, 1.2px);
  transform: translate3d(-50%, -50%, 0);
  border-radius: 50%;
  opacity: var(--depth-star-opacity, .3);
  filter: blur(var(--depth-star-blur, 0px));
  will-change: transform, opacity;
  animation: none;
}
.testimonial-depth-star--animated {
  animation: testimonialDepthTwinkle var(--depth-star-twinkle-duration, 11s) cubic-bezier(.45,.05,.55,.95) infinite;
  animation-delay: var(--depth-star-twinkle-delay, 0s);
}
.testimonial-depth-star-core {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background: radial-gradient(
    circle at 36% 33%,
    rgba(255,255,255,.95) 0%,
    rgba(246,241,226,.84) 30%,
    rgba(228,214,182,.42) 58%,
    rgba(228,214,182,0) 100%
  );
  box-shadow:
    0 0 calc(var(--depth-star-soft-halo, 8px) * .82) rgba(248,243,231,.16),
    0 0 calc(var(--depth-star-outer-halo, 14px) * .8) rgba(196,169,106,.09);
}
.testimonial-depth-star::before {
  content: '';
  position: absolute;
  inset: -170%;
  border-radius: 50%;
  background: radial-gradient(
    circle,
    rgba(196,169,106,calc(var(--depth-star-warm-mix, .4) * .4)) 0%,
    rgba(161,189,230,calc(var(--depth-star-cool-mix, .3) * .2)) 36%,
    transparent 75%
  );
  opacity: .55;
}
.testimonial-depth-star--near .testimonial-depth-star-core {
  animation: none;
}
.testimonial-nodes,
.testimonial-center-layer {
  transition: transform 1.2s cubic-bezier(.22,.61,.36,1);
  will-change: transform;
}
.testimonial-nodes {
  position: absolute;
  inset: 0;
  z-index: 4;
}
.testimonial-center-layer {
  position: absolute;
  inset: 0;
  z-index: 6;
  display: grid;
  place-items: center;
  pointer-events: none;
}
.testimonial-node {
  position: absolute;
  transform: translate3d(-50%, -50%, 0);
  width: 46px;
  height: 46px;
  padding: 0;
  border: 0;
  background: transparent;
  opacity: 0;
  z-index: 4;
  transition: opacity 1s cubic-bezier(.22,.61,.36,1);
}
.testimonial-node.is-visible {
  opacity: 1;
}
.testimonial-node:hover,
.testimonial-node:focus-visible,
.testimonial-node.is-active {
  z-index: 7;
}
.testimonial-node:focus-visible {
  outline: 1px solid rgba(196,169,106,.44);
  outline-offset: 3px;
  border-radius: 50%;
}
.testimonial-node-ring {
  position: absolute;
  left: 50%;
  top: 50%;
  width: calc(10.6px * var(--testimonial-node-scale, 1));
  height: calc(10.6px * var(--testimonial-node-scale, 1));
  transform: translate(-50%, -50%) scale(.78);
  border-radius: 50%;
  border: 1px solid rgba(246,241,226,.34);
  opacity: 0;
  transition: opacity .22s cubic-bezier(.22,.61,.36,1), transform .22s cubic-bezier(.22,.61,.36,1);
}
.testimonial-node-halo {
  position: absolute;
  left: 50%;
  top: 50%;
  width: calc(36px * var(--testimonial-node-glow, 1));
  height: calc(36px * var(--testimonial-node-glow, 1));
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(196,169,106,.36) 0%, rgba(196,169,106,.16) 34%, transparent 78%);
  opacity: 0;
  transition: opacity .2s cubic-bezier(.22,.61,.36,1);
}
.testimonial-node-core {
  position: absolute;
  left: 50%;
  top: 50%;
  width: calc(4.8px * var(--testimonial-node-scale, 1));
  height: calc(4.8px * var(--testimonial-node-scale, 1));
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: radial-gradient(circle at 34% 33%, rgba(255,255,255,.97) 0%, rgba(246,241,226,.9) 38%, rgba(232,219,188,.55) 68%, rgba(232,219,188,0) 100%);
  box-shadow:
    0 0 10px rgba(248,243,231,.36),
    0 0 20px rgba(196,169,106,.2);
  transition: transform .22s cubic-bezier(.22,.61,.36,1), box-shadow .22s cubic-bezier(.22,.61,.36,1), background .22s cubic-bezier(.22,.61,.36,1);
  animation: testimonialNodeTwinkle var(--testimonial-node-twinkle-duration, 10s) cubic-bezier(.45,.05,.55,.95) infinite;
  animation-delay: var(--testimonial-node-twinkle-delay, 0s);
}
.testimonial-node--far { --node-hover-scale: 1.11; }
.testimonial-node--mid { --node-hover-scale: 1.17; }
.testimonial-node--near { --node-hover-scale: 1.24; }
.testimonial-node-tip {
  position: absolute;
  left: 50%;
  top: calc(50% + 11px);
  transform: translate(-50%, 4px);
  min-width: 96px;
  padding: .27rem .35rem;
  border-radius: 10px;
  border: 1px solid rgba(196,169,106,.2);
  background: rgba(8,8,13,.84);
  font-size: .45rem;
  letter-spacing: .11em;
  text-transform: uppercase;
  color: rgba(232,229,223,.7);
  opacity: 0;
  transition: opacity .2s ease, transform .2s ease;
  pointer-events: none;
  text-align: center;
  line-height: 1.35;
}
.testimonial-node:hover .testimonial-node-tip,
.testimonial-node:focus-visible .testimonial-node-tip,
.testimonial-node.is-pinned .testimonial-node-tip {
  opacity: .85;
  transform: translate(-50%, 7px);
}
.testimonial-node.is-active .testimonial-node-halo {
  opacity: .8;
}
.testimonial-node:hover .testimonial-node-core,
.testimonial-node:focus-visible .testimonial-node-core,
.testimonial-node.is-active .testimonial-node-core {
  transform: translate(-50%, -50%) scale(var(--node-hover-scale, 1.18));
  background: rgba(255,252,245,.97);
  box-shadow:
    0 0 12px rgba(255,252,245,.6),
    0 0 30px rgba(196,169,106,.32);
}
.testimonial-node:hover .testimonial-node-ring,
.testimonial-node:focus-visible .testimonial-node-ring,
.testimonial-node.is-active .testimonial-node-ring {
  opacity: .45;
  transform: translate(-50%, -50%) scale(1.16);
}
.testimonial-node.is-active .testimonial-node-core {
  transform: translate(-50%, -50%) scale(calc(var(--node-hover-scale, 1.18) + .04));
  animation:
    testimonialNodeTwinkle var(--testimonial-node-twinkle-duration, 10s) cubic-bezier(.45,.05,.55,.95) infinite,
    testimonialNodePulse var(--testimonial-node-pulse-duration, 4s) cubic-bezier(.45,.05,.55,.95) infinite;
  box-shadow:
    0 0 16px rgba(255,252,245,.72),
    0 0 36px rgba(196,169,106,.4);
}
.testimonial-node.is-active .testimonial-node-ring {
  animation: testimonialNodeRingPulse var(--testimonial-node-pulse-duration, 4s) cubic-bezier(.45,.05,.55,.95) infinite;
}
.testimonial-node.is-pinned .testimonial-node-core {
  transform: translate(-50%, -50%) scale(calc(var(--node-hover-scale, 1.18) + .08));
}
.testimonial-quote-stage {
  position: relative;
  width: 100%;
  display: grid;
  place-items: center;
  z-index: 1;
  pointer-events: none;
  padding: 0 clamp(1rem, 3.5vw, 2.8rem);
}
.testimonial-quote-content {
  width: min(78vw, 860px);
  max-width: 68ch;
  margin: 0 auto;
  text-align: center;
  transition: opacity .56s cubic-bezier(.22,.61,.36,1), transform .56s cubic-bezier(.22,.61,.36,1);
  opacity: 1;
  transform: translate3d(0, 0, 0);
}
.testimonial-quote-content.is-fast {
  transition-duration: .22s;
}
.testimonial-quote-content.is-fade-out {
  opacity: 0;
  transform: translate3d(0, 8px, 0);
}
.testimonial-quote-content.is-idle {
  opacity: 0;
  transform: translate3d(0, 3px, 0);
}
.testimonial-quote-content.is-fade-in {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}
.testimonial-quote {
  font-family: var(--serif-it);
  font-style: italic;
  font-size: clamp(1.02rem, 1.7vw, 1.28rem);
  line-height: 1.84;
  letter-spacing: .01em;
  color: rgba(232,229,223,.94);
  margin-bottom: .88rem;
  text-wrap: balance;
  text-shadow:
    0 0 26px rgba(8,8,13,.8),
    0 0 8px rgba(240,234,212,.22);
}
.testimonial-author {
  font-size: .58rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(232,229,223,.72);
  margin-bottom: .52rem;
}
.testimonial-signature {
  display: inline-flex;
  align-items: center;
  margin: 0;
  justify-content: center;
  width: 100%;
}
.testimonial-signature-star {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(196,169,106,.9);
  box-shadow:
    0 0 7px rgba(196,169,106,.5),
    0 0 15px rgba(196,169,106,.28);
}
.testimonial-meta {
  position: absolute;
  left: 50%;
  bottom: clamp(1rem, 2.3vh, 1.55rem);
  transform: translateX(-50%);
  margin: 0;
  white-space: nowrap;
  font-size: .56rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(232,229,223,.46);
  z-index: 6;
  pointer-events: none;
}
@keyframes testimonialDepthTwinkle {
  0%, 100% {
    opacity: calc(var(--depth-star-opacity, .3) * .72);
    transform: translate3d(-50%, -50%, 0) scale(.94);
  }
  42% {
    opacity: calc(var(--depth-star-opacity, .3) + (var(--depth-star-twinkle-amp, .28) * .45));
  }
  68% {
    opacity: calc(var(--depth-star-opacity, .3) + (var(--depth-star-twinkle-amp, .28) * .7));
    transform: translate3d(-50%, -50%, 0) scale(1.08);
  }
}
@keyframes testimonialDepthBreath {
  0%, 100% {
    filter: brightness(.98);
    box-shadow:
      0 0 var(--depth-star-soft-halo, 8px) rgba(248,243,231,.26),
      0 0 var(--depth-star-outer-halo, 14px) rgba(196,169,106,.16),
      0 0 calc(var(--depth-star-soft-halo, 8px) * .7) rgba(117,159,213,.08);
  }
  50% {
    filter: brightness(1.16);
    box-shadow:
      0 0 calc(var(--depth-star-soft-halo, 8px) * 1.22) rgba(248,243,231,.38),
      0 0 calc(var(--depth-star-outer-halo, 14px) * 1.24) rgba(196,169,106,.24),
      0 0 calc(var(--depth-star-soft-halo, 8px) * .95) rgba(117,159,213,.12);
  }
}
@keyframes testimonialNodeTwinkle {
  0%, 100% {
    opacity: .78;
    transform: translate(-50%, -50%) scale(1);
  }
  50% {
    opacity: .98;
    transform: translate(-50%, -50%) scale(1.05);
  }
}
@keyframes testimonialNodePulse {
  0%, 100% {
    box-shadow:
      0 0 12px rgba(255,252,245,.64),
      0 0 26px rgba(196,169,106,.3);
  }
  50% {
    box-shadow:
      0 0 18px rgba(255,252,245,.88),
      0 0 38px rgba(196,169,106,.46);
  }
}
@keyframes testimonialNodeRingPulse {
  0%, 100% {
    opacity: .34;
    transform: translate(-50%, -50%) scale(1.1);
  }
  50% {
    opacity: .62;
    transform: translate(-50%, -50%) scale(1.3);
  }
}
.testimonial-starfield.is-reduced-motion .testimonial-depth-star,
.testimonial-starfield.is-reduced-motion .testimonial-depth-star-core,
.testimonial-starfield.is-reduced-motion .testimonial-node-core,
.testimonial-starfield.is-reduced-motion .testimonial-node-ring {
  animation: none !important;
}
.testimonial-starfield.is-reduced-motion .testimonial-depth-layer,
.testimonial-starfield.is-reduced-motion .testimonial-nodes,
.testimonial-starfield.is-reduced-motion .testimonial-center-layer {
  transform: none !important;
  transition: none !important;
}
@media (prefers-reduced-motion: reduce) {
  .testimonial-depth-star,
  .testimonial-depth-star-core,
  .testimonial-node-core,
  .testimonial-node-ring {
    animation: none !important;
  }
  .testimonial-depth-layer,
  .testimonial-nodes,
  .testimonial-center-layer {
    transform: none !important;
    transition: none !important;
  }
}
.experience-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin: 1.5rem 0 }
.exp-card {
  padding: 1.5rem; border: 1px solid var(--border); border-radius: 2px;
  transition: all .3s ease; position: relative; overflow: hidden;
}
.exp-card:hover { border-color: var(--border-light); background: var(--surface) }
.exp-card-name { font-family: var(--serif); font-size: 1.1rem; margin-bottom: .3rem }
.exp-card-desc { font-size: .75rem; color: var(--text-muted); line-height: 1.6; margin-bottom: .8rem }
.exp-card-detail {
  font-size: .55rem; letter-spacing: .15em; text-transform: uppercase;
  color: var(--text-dim); line-height: 1.8;
}
.exp-card-accent {
  position: absolute; top: 0; right: 0; width: 40px; height: 40px;
  background: linear-gradient(135deg, transparent 50%, var(--accent-soft) 50%);
  opacity: .5;
}

/* ============================================================
   REGION / ATLAS HUB
   ============================================================ */
.atlas-hub {
  width: min(100%, 980px);
  margin: 0 auto;
  display: grid;
  grid-template-rows: auto auto 1fr auto;
  gap: .75rem;
  min-height: min(100%, 720px);
  --atlas-fixed-nav-clearance: 124px;
}
.atlas-hub__header {
  display: grid;
  gap: .35rem;
}
.atlas-hub__tabs {
  display: flex;
  align-items: center;
  gap: .45rem;
  width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  white-space: nowrap;
  padding: .12rem .05rem .2rem;
  scrollbar-width: none;
  -ms-overflow-style: none;
  -webkit-overflow-scrolling: touch;
}
.atlas-hub__tabs::-webkit-scrollbar { width: 0; height: 0; }
.atlas-hub__chip {
  border: 1px solid rgba(196,169,106,.24);
  border-radius: 999px;
  background: rgba(10,10,16,.45);
  color: var(--text-muted);
  font-family: var(--sans);
  font-size: .64rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  padding: .38rem .78rem;
  flex: 0 0 auto;
  transition: border-color .24s ease, color .24s ease, background .24s ease;
}
.atlas-hub__chip:hover,
.atlas-hub__chip:focus-visible {
  border-color: rgba(196,169,106,.5);
  color: var(--text);
}
.atlas-hub__chip.is-active {
  border-color: rgba(196,169,106,.7);
  background: rgba(196,169,106,.14);
  color: var(--text);
}
.atlas-hub__scroll {
  min-height: 0;
  overflow: visible;
}
.atlas-hub__hint {
  margin: .15rem 0 0;
  font-size: .62rem;
  color: var(--text-dim);
  text-align: center;
}
.region-grid {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: .8rem; margin-top: 1.5rem; width: 100%;
}
.atlas-hub__grid.region-grid {
  margin-top: 0;
}
.region-scroll {
  max-height: min(52vh, 460px);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding-right: .2rem;
  scrollbar-width: none;
}
.region-scroll::-webkit-scrollbar { width: 0; height: 0; }
.region-card {
  padding: 1rem; background: var(--surface);
  border: 1px solid var(--border); border-radius: 2px;
  transition: all .3s ease; text-align: left;
  cursor: none; position: relative; overflow: hidden;
}
.region-card:hover { background: var(--surface-hover); border-color: var(--border-light) }
.region-card-city {
  font-family: var(--serif); font-size: 1rem; color: var(--text); margin-bottom: .2rem;
  position: relative; z-index: 1;
}
.region-card-info {
  font-size: .65rem; color: var(--text-dim); line-height: 1.5;
  position: relative; z-index: 1;
}
.region-card-link {
  display: inline-block; margin-top: .4rem;
  font-size: .55rem; letter-spacing: .15em; text-transform: uppercase;
  color: var(--accent); opacity: .6; transition: opacity .3s;
  position: relative; z-index: 1;
}
.region-card:hover .region-card-link { opacity: 1 }
.atlas-card {
  cursor: pointer;
}
.atlas-card:focus-visible {
  outline: 1px solid rgba(196,169,106,.72);
  outline-offset: 2px;
}
.atlas-card .region-card-link {
  opacity: .85;
}
/* Region card photo background */
.region-card-bg {
  position: absolute; inset: 0;
  opacity: 0; transition: opacity .5s ease;
  background-size: cover; background-position: center;
  filter: brightness(.2) saturate(.5);
}
.region-card:hover .region-card-bg { opacity: .4 }
.atlas-card .atlas-card-bg {
  opacity: .24;
  background:
    radial-gradient(circle at 18% 20%, rgba(196,169,106,.22), transparent 45%),
    linear-gradient(145deg, rgba(12,12,18,.65), rgba(7,7,11,.9));
}
.atlas-card:hover .atlas-card-bg {
  opacity: .34;
}

/* ============================================================
   REVIEWS / TESTIMONIALS
   ============================================================ */
.review-card {
  padding: 1.2rem 1.5rem;
  background: var(--surface); border: 1px solid var(--border);
  border-radius: 2px; margin-bottom: .8rem;
  position: relative; overflow: hidden;
}
.review-text {
  font-family: var(--serif-it); font-style: italic; font-size: .9rem;
  color: var(--text-muted); line-height: 1.7; margin-bottom: .5rem;
  position: relative; z-index: 1;
}
.review-author {
  font-size: .55rem; letter-spacing: .15em; text-transform: uppercase;
  color: var(--text-dim); position: relative; z-index: 1;
}
/* Review background photo */
.review-card-bg {
  position: absolute; inset: 0;
  background-size: cover; background-position: center;
  filter: blur(20px) brightness(.15) saturate(.3);
  opacity: 0; transition: opacity .5s ease;
}
.review-card:hover .review-card-bg { opacity: .5 }

/* ============================================================
   FAQ EXPERIENCE
   ============================================================ */
.faq-experience {
  width: min(100%, 1040px);
  height: 100vh;
  height: 100dvh;
  min-height: 100%;
  margin: 0 auto;
  --faq-fixed-nav-clearance: 116px;
  padding:
    clamp(4.35rem, 7.1vh, 5.25rem)
    clamp(.65rem, 1.8vw, 1.35rem)
    calc(var(--faq-fixed-nav-clearance) + env(safe-area-inset-bottom));
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr) auto;
  gap: clamp(.52rem, 1.05vh, .88rem);
  overflow: hidden;
}
.detail-view--faq-os {
  width: min(100%, 1040px);
  height: 100%;
  min-height: 100%;
  margin: 0 auto;
}
.detail-view--faq-os .panel-badge,
.detail-view--faq-os .panel-title,
.detail-view--faq-os .panel-subtitle {
  transition: opacity .2s ease, transform .2s ease !important;
}
.detail-view.active.detail-view--faq-os .panel-badge { transition-delay: .03s; }
.detail-view.active.detail-view--faq-os .panel-title { transition-delay: .07s; }
.detail-view.active.detail-view--faq-os .panel-subtitle { transition-delay: .11s; }
.faq-header,
.faq-controls,
.faq-scroll-panel,
.faq-footer-cta {
  opacity: 0;
  transform: translateY(14px);
}
.faq-header {
  width: min(100%, 760px);
  margin: 0 auto;
  text-align: center;
}
.faq-header .panel-badge {
  margin-bottom: clamp(.35rem, .9vh, .6rem);
}
.faq-header .panel-subtitle {
  margin-bottom: 0;
}
.faq-controls {
  width: min(100%, 920px);
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: clamp(.5rem, .95vh, .72rem);
}
.faq-search-label {
  font-size: .52rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--text-dim);
}
.faq-search-shell {
  width: min(100%, 580px);
  position: relative;
}
.faq-search-icon {
  position: absolute;
  left: .78rem;
  top: 50%;
  width: 14px;
  height: 14px;
  transform: translateY(-50%);
  color: rgba(196,169,106,.55);
  pointer-events: none;
}
.faq-search-icon svg {
  width: 100%;
  height: 100%;
  display: block;
  fill: currentColor;
}
.faq-search-input {
  width: 100%;
  min-height: 2.45rem;
  padding: .56rem .9rem .56rem 2rem;
  border: 1px solid rgba(196,169,106,.16);
  border-radius: 999px;
  background: linear-gradient(150deg, rgba(13,13,20,.68), rgba(9,9,14,.54));
  color: rgba(232,229,223,.88);
  font-family: var(--sans);
  font-size: .8rem;
  line-height: 1.4;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition: border-color .22s ease, background .22s ease, box-shadow .22s ease;
}
.faq-search-input::placeholder { color: rgba(232,229,223,.42); }
.faq-search-input:focus {
  outline: none;
  border-color: rgba(196,169,106,.44);
  background: rgba(11,11,18,.78);
  box-shadow: 0 0 0 1px rgba(196,169,106,.2), 0 0 10px rgba(196,169,106,.08);
}
.faq-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
}
.faq-chip {
  border: 1px solid rgba(196,169,106,.22);
  border-radius: 999px;
  background: transparent;
  color: rgba(232,229,223,.64);
  font-size: .58rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  padding: .42rem .76rem;
  transition: border-color .25s ease, color .25s ease, background .25s ease;
}
.faq-chip:hover,
.faq-chip:focus-visible {
  border-color: rgba(196,169,106,.48);
  color: rgba(232,229,223,.88);
  background: rgba(14,14,20,.8);
}
.faq-chip.is-active {
  border-color: rgba(196,169,106,.62);
  color: rgba(232,229,223,.92);
  background: rgba(196,169,106,.16);
}
.faq-chip:focus-visible {
  outline: 1px solid rgba(196,169,106,.45);
  outline-offset: 1px;
}
.faq-status {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  border: 0;
}
.faq-scroll-panel {
  position: relative;
  --faq-edge-fade-size: 18px;
  min-height: 0;
  width: min(100%, 920px);
  margin: 0 auto;
  overflow: auto;
  border-top: 1px solid rgba(196,169,106,.18);
  border-bottom: 1px solid rgba(196,169,106,.16);
  padding: .18rem 0 clamp(1.5rem, 2.6vh, 2rem);
  scrollbar-width: none;
  -ms-overflow-style: none;
  overscroll-behavior: contain;
}
.faq-scroll-panel::-webkit-scrollbar { width: 0; height: 0; }
.faq-scroll-panel::before,
.faq-scroll-panel::after {
  content: '';
  position: sticky;
  left: 0;
  right: 0;
  display: block;
  height: var(--faq-edge-fade-size);
  z-index: 3;
  pointer-events: none;
  opacity: 0;
  transition: opacity .18s ease;
}
.faq-scroll-panel::before {
  top: 0;
  margin-bottom: calc(var(--faq-edge-fade-size) * -1);
  background: linear-gradient(to bottom, rgba(7,7,11,.95), rgba(7,7,11,0));
}
.faq-scroll-panel::after {
  bottom: 0;
  margin-top: calc(var(--faq-edge-fade-size) * -1);
  background: linear-gradient(to top, rgba(7,7,11,.95), rgba(7,7,11,0));
}
.faq-scroll-panel.show-top-fade::before {
  opacity: 1;
}
.faq-scroll-panel.show-bottom-fade::after {
  opacity: 1;
}
.faq-results {
  opacity: 1;
  transform: translateY(0);
  transition: opacity .2s ease, transform .2s ease;
}
.faq-results.is-fade-out {
  opacity: 0;
  transform: translateY(4px);
}
.faq-results.is-fade-in {
  opacity: 1;
  transform: translateY(0);
}
.faq-list {
  padding-inline: .02rem;
  border-top: 1px solid rgba(196,169,106,.14);
}
.faq-item {
  border-bottom: 1px solid rgba(232,229,223,.12);
  transition: border-color .2s ease, box-shadow .2s ease;
}
.faq-item.is-open {
  border-bottom-color: rgba(196,169,106,.32);
  box-shadow: inset 0 -1px 0 rgba(196,169,106,.14);
}
.faq-trigger {
  width: 100%;
  border: 0;
  background: transparent;
  min-height: 52px;
  padding: clamp(.82rem, 1.6vh, 1.02rem) .02rem;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: .82rem;
  text-align: left;
  transition: color .2s ease, background .2s ease;
}
.faq-q {
  font-family: var(--serif);
  font-size: clamp(.9rem, 1.32vw, 1.05rem);
  line-height: 1.4;
  color: rgba(232,229,223,.92);
  letter-spacing: .01em;
}
.faq-chevron {
  flex-shrink: 0;
  color: rgba(196,169,106,.8);
  font-size: 1rem;
  transform: rotate(0deg);
  transition: transform .2s ease, color .2s ease;
}
.faq-item.is-open .faq-chevron {
  transform: rotate(180deg);
  color: rgba(196,169,106,.95);
}
.faq-panel {
  display: grid;
  grid-template-rows: 0fr;
  opacity: 0;
  transform: translateY(-5px);
  transition: grid-template-rows .2s cubic-bezier(.22,.61,.36,1), opacity .18s ease-out, transform .2s cubic-bezier(.22,.61,.36,1);
}
.faq-item.is-open .faq-panel {
  grid-template-rows: 1fr;
  opacity: 1;
  transform: translateY(0);
}
.faq-panel-inner {
  overflow: hidden;
}
.faq-a {
  margin: 0;
  padding: 0 .02rem 1rem;
  font-size: clamp(.78rem, .96vw, .86rem);
  line-height: 1.76;
  color: rgba(232,229,223,.76);
}
.faq-empty {
  margin-top: .75rem;
  padding: 1rem 0 .2rem;
}
.faq-empty-text {
  margin: 0 0 .8rem;
  font-size: .84rem;
  line-height: 1.75;
  color: rgba(232,229,223,.68);
}
.faq-inline-action {
  border: 1px solid rgba(196,169,106,.4);
  background: rgba(196,169,106,.12);
  color: rgba(232,229,223,.9);
  border-radius: 999px;
  padding: .52rem 1rem;
  font-size: .56rem;
  letter-spacing: .17em;
  text-transform: uppercase;
  transition: border-color .25s ease, background .25s ease;
}
.faq-inline-action:hover,
.faq-inline-action:focus-visible {
  border-color: rgba(196,169,106,.65);
  background: rgba(196,169,106,.2);
}
.faq-footer-cta {
  width: min(100%, 920px);
  margin: 0 auto;
  padding-top: clamp(.62rem, 1.1vh, .9rem);
  border-top: 1px solid rgba(196,169,106,.2);
}
.faq-footer-copy {
  margin: 0 0 .85rem;
  font-size: .76rem;
  line-height: 1.72;
  color: rgba(232,229,223,.7);
}
.faq-footer-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
}
.faq-footer-btn {
  height: 34px;
  padding: 0 .95rem;
  border-radius: 999px;
  font-size: .56rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  transition: border-color .25s ease, color .25s ease, background .25s ease, box-shadow .25s ease;
}
.faq-footer-btn--primary {
  border: 1px solid rgba(196,169,106,.52);
  background: rgba(196,169,106,.14);
  color: rgba(232,229,223,.9);
}
.faq-footer-btn--primary:hover,
.faq-footer-btn--primary:focus-visible {
  border-color: rgba(196,169,106,.76);
  background: rgba(196,169,106,.22);
  box-shadow: 0 0 16px rgba(196,169,106,.16);
}
.faq-footer-btn:focus-visible,
.faq-inline-action:focus-visible,
.faq-trigger:focus-visible {
  outline: 1px solid rgba(196,169,106,.45);
  outline-offset: 2px;
}

@media (max-width: 1024px) {
  .faq-experience {
    padding:
      clamp(4.1rem, 6.5vh, 4.9rem)
      clamp(.55rem, 1.7vw, 1rem)
      calc(var(--faq-fixed-nav-clearance) + env(safe-area-inset-bottom));
    gap: .56rem;
  }
  .faq-header .panel-title {
    font-size: clamp(1.56rem, 5.2vw, 2.25rem);
  }
  .faq-header .panel-subtitle {
    font-size: clamp(.84rem, 2.2vw, 1rem);
  }
}
@media (max-width: 768px) {
  .faq-experience {
    padding:
      calc(env(safe-area-inset-top) + clamp(3.75rem, 6.1vh, 4.4rem))
      .58rem
      calc(var(--faq-fixed-nav-clearance) + env(safe-area-inset-bottom));
    gap: .45rem;
  }
  .faq-header {
    width: min(100%, 560px);
  }
  .faq-header .panel-badge {
    margin-bottom: .22rem;
  }
  .faq-header .panel-title {
    font-size: clamp(1.42rem, 7vw, 1.98rem);
    margin-bottom: .2rem;
  }
  .faq-header .panel-subtitle {
    font-size: clamp(.78rem, 3.2vw, .92rem);
    line-height: 1.4;
  }
  .faq-controls {
    gap: .56rem;
  }
  .faq-search-shell {
    width: 100%;
  }
  .faq-chip-row {
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
    -ms-overflow-style: none;
    margin: 0 -.18rem;
    padding: 0 .18rem .1rem;
  }
  .faq-chip-row::-webkit-scrollbar { width: 0; height: 0; }
  .faq-chip {
    white-space: nowrap;
    flex: 0 0 auto;
  }
  .faq-scroll-panel {
    width: min(100%, 680px);
    padding-bottom: clamp(1.25rem, 2vh, 1.6rem);
  }
  .faq-trigger {
    min-height: 50px;
    padding: .82rem .02rem;
  }
  .faq-q {
    font-size: clamp(.88rem, 4vw, .96rem);
    line-height: 1.4;
  }
  .faq-a {
    font-size: .82rem;
    line-height: 1.72;
  }
  .faq-footer-cta {
    width: min(100%, 680px);
    padding-top: .56rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  .faq-results,
  .faq-panel,
  .faq-trigger,
  .faq-chevron,
  .faq-item,
  .faq-scroll-panel::before,
  .faq-scroll-panel::after {
    transition-duration: .01ms !important;
    animation: none !important;
  }
}

/* ============================================================
   PORTFOLIO — MEMORY FLOW
   ============================================================ */
.memory-flow { position: fixed; inset: 0; z-index: 31; overflow: hidden; pointer-events: none }

.memory-frame {
  position: absolute; left: 0; top: 0;
  border: 1px solid rgba(255,255,255,.1); border-radius: 3px;
  overflow: hidden;
  box-shadow: 0 8px 40px rgba(0,0,0,.5), 0 2px 10px rgba(0,0,0,.3);
  will-change: transform, opacity; pointer-events: auto;
  touch-action: pan-y;
  cursor: none;
}
.memory-frame-inner {
  width: 100%; height: 100%;
  background: var(--frame-bg);
  background-size: cover; background-position: center;
  transition: transform 3s ease;
}
.memory-frame:hover .memory-frame-inner { transform: scale(1.05) }
.memory-frame-label {
  position: absolute; bottom: 8px; left: 10px;
  font-family: var(--serif); font-size: .65rem;
  color: rgba(255,255,255,.35); letter-spacing: .05em;
  text-shadow: 0 1px 4px rgba(0,0,0,.8);
}
.memory-frame-number {
  position: absolute; top: 8px; right: 10px;
  font-family: var(--sans); font-size: .45rem;
  color: rgba(255,255,255,.15); letter-spacing: .15em;
}

/* Memory UI */
.memory-ui {
  position: fixed; bottom: 4rem; right: 2.5rem; z-index: 35;
  text-align: right; pointer-events: none; max-width: 300px;
}
.memory-ui--center {
  left: 50%;
  right: auto;
  bottom: 8.1rem;
  transform: translateX(-50%);
  width: min(220px, 42vw);
  max-width: none;
  text-align: center;
  z-index: 39;
}
.memory-ui--center .memory-progress {
  width: 100%;
  margin: 0 auto;
}
.memory-progress {
  width: 120px; height: 2px;
  background: rgba(255,255,255,.08);
  border-radius: 1px; margin-top: .8rem;
  overflow: hidden; margin-left: auto;
}
.memory-progress-bar {
  height: 100%; width: 0%;
  background: var(--accent); opacity: .5;
  border-radius: 1px; transition: width .15s ease;
}

/* ============================================================
   PORTFOLIO — FILMSTRIP (for Paare)
   ============================================================ */
.filmstrip {
  display: flex; gap: 1.5rem; align-items: center;
  height: 60vh; padding: 0 5vw;
  overflow: hidden; position: relative;
  touch-action: pan-x;
}
.filmstrip-frame {
  flex-shrink: 0;
  width: 280px; height: 100%;
  border: 1px solid rgba(255,255,255,.08); border-radius: 3px;
  overflow: hidden; position: relative;
  transition: transform .6s var(--ease-expo), opacity .4s ease;
  cursor: none;
}
.filmstrip-frame:hover { transform: scale(1.03) }
.filmstrip-frame-inner {
  width: 100%; height: 100%;
  background-size: cover; background-position: center;
}
.filmstrip-label {
  position: absolute; bottom: 12px; left: 12px;
  font-family: var(--serif); font-size: .7rem;
  color: rgba(255,255,255,.4); letter-spacing: .04em;
}
.filmstrip-progress {
  position: fixed; bottom: 4rem; left: 50%; transform: translateX(-50%);
  width: 200px; height: 2px;
  background: rgba(255,255,255,.08); border-radius: 1px;
  z-index: 35;
}
.filmstrip-progress-bar {
  height: 100%; width: 0%;
  background: var(--accent); opacity: .5;
  border-radius: 1px; transition: width .15s ease;
}

/* ============================================================
   PORTFOLIO — MOSAIC (for Details)
   ============================================================ */
.mosaic-grid {
  position: relative; width: 100%; height: 70vh;
}
.mosaic-item {
  position: absolute;
  border: 1px solid rgba(255,255,255,.06); border-radius: 3px;
  overflow: hidden;
  opacity: 0; transform: scale(.8);
  transition: opacity 1.2s ease, transform 1.2s var(--ease-expo);
  cursor: none;
}
.mosaic-item.visible { opacity: 1; transform: scale(1) }
.mosaic-item:hover { z-index: 10 }
.mosaic-item-inner {
  width: 100%; height: 100%;
  background-size: cover; background-position: center;
  transition: transform .6s ease;
}
.mosaic-item:hover .mosaic-item-inner { transform: scale(1.08) }
.mosaic-item-label {
  position: absolute; bottom: 8px; left: 10px;
  font-family: var(--serif); font-size: .6rem;
  color: rgba(255,255,255,.3);
}

/* ============================================================
   LIGHTBOX
   ============================================================ */
.lightbox {
  position: fixed; inset: 0; z-index: 60;
  background: rgba(4,4,8,.95);
  display: flex; align-items: center; justify-content: center;
  opacity: 0; pointer-events: none;
  transition: opacity .5s ease;
}
.lightbox.active { opacity: 1; pointer-events: auto }
.lightbox-img {
  max-width: 90vw; max-height: 85vh;
  object-fit: contain; border-radius: 2px;
  box-shadow: 0 20px 80px rgba(0,0,0,.6);
  animation: lightboxIn .6s var(--ease-expo);
}
@keyframes lightboxIn {
  from { opacity: 0; transform: scale(.9) }
  to { opacity: 1; transform: scale(1) }
}
.lightbox-close {
  position: absolute; top: 2rem; right: 2rem;
  width: 40px; height: 40px; border-radius: 50%;
  border: 1px solid rgba(255,255,255,.15);
  background: rgba(7,7,11,.6);
  color: var(--text-muted);
  display: flex; align-items: center; justify-content: center;
  font-size: 1rem; cursor: none;
  transition: all .3s ease;
}
.lightbox-close:hover { color: var(--text); border-color: var(--accent-glow) }
.lightbox-caption {
  position: absolute; bottom: 2rem; left: 50%; transform: translateX(-50%);
  font-family: var(--serif-it); font-style: italic; font-size: .85rem;
  color: var(--text-muted); letter-spacing: .03em;
}

/* ============================================================
   PORTFOLIO LABEL OVERRIDES — Text-Labels auf Karten ausgeblendet
   ============================================================ */
.memory-frame-label,
.memory-frame-number,
.filmstrip-label,
.mosaic-item-label { display: none }
