/* ═══ RITA CANVAS v6 — Draw Section + Site-wide Dark Mode ═══ */
/* Extracted from rita_canvas_v10.html for embedded use */

/* ═══ SITE-WIDE ═══ */

/* ── Page transitions — subtle fade ── */
body {
  opacity:0;
  animation:ritaFadeIn 0.4s var(--rita-ease) forwards;
}
body.rita-leaving {
  animation:none;
  opacity:0;
  transition:opacity 0.25s var(--rita-ease);
}
@keyframes ritaFadeIn {
  from { opacity:0; }
  to   { opacity:1; }
}

/* scroll-behavior left as default (instant) — matches Webflow */
[id] { scroll-margin-top:5rem; }

/* ── Selection — brand purple, theme-aware ── */
::selection { background:#7b5ea7; color:#fff; }
::-moz-selection { background:#7b5ea7; color:#fff; }
[data-theme="dark"] ::selection { background:#b08fd4; color:#1a1a1a; }
[data-theme="dark"] ::-moz-selection { background:#b08fd4; color:#1a1a1a; }

/* ── Scrollbar — themed, purple thumb ── */
::-webkit-scrollbar { width:8px; }
::-webkit-scrollbar-track { background:var(--color-bg, #fafaf8); }
::-webkit-scrollbar-thumb {
  background:#bba3d6; border-radius:4px;
  border:2px solid var(--color-bg, #fafaf8);
}
::-webkit-scrollbar-thumb:hover { background:#7b5ea7; }
[data-theme="dark"] ::-webkit-scrollbar-track { background:#2a2a2e; }
[data-theme="dark"] ::-webkit-scrollbar-thumb {
  background:#6b5a78; border-color:#2a2a2e;
}
[data-theme="dark"] ::-webkit-scrollbar-thumb:hover { background:#b08fd4; }
/* Firefox */
html { scrollbar-width:thin; scrollbar-color:#bba3d6 var(--color-bg, #fafaf8); }
[data-theme="dark"] { scrollbar-color:#6b5a78 #2a2a2e; }

/* Override Webflow nav hover expansion — keep nav quiet */
.rita-nav, .rita-nav:hover {
  background-color:var(--color-bg, #fafaf8) !important;
  padding-top:0.4rem !important; padding-bottom:0.4rem !important;
  font-size:12px !important;
}
[data-theme="dark"] .rita-nav,
[data-theme="dark"] .rita-nav:hover {
  background-color:var(--color-bg) !important;
}

/* Hide old inline nav elements (replaced by panel) */
.rita-nav-links,
.rita-hamburger,
.rita-mobile-menu,
.rita-lang-switcher {
  display:none !important;
}

/* Rita easing — mellow, painterly, calming */
:root {
  --rita-ease: cubic-bezier(.2, .8, .45, .94);
  --rita-ease-spring: cubic-bezier(.34, 1.56, .64, 1);
}

/*
 * Theme-switch transitions merged with original Webflow animations.
 * Each element preserves its original transition properties AND adds
 * background-color / color / border-color for smooth theme switching.
 */
body {
  transition: background-color 0.6s var(--rita-ease), color 0.6s var(--rita-ease);
}
.rita-nav {
  transition: background-color 0.6s var(--rita-ease), padding 0.4s var(--rita-ease),
    font-size 0.35s var(--rita-ease), border-color 0.5s var(--rita-ease);
}
.rita-nav-link {
  transition: border-color 0.4s var(--rita-ease), border-radius 0.3s var(--rita-ease),
    color 0.4s var(--rita-ease), background-color 0.45s var(--rita-ease);
}
.rita-nav-link.invert {
  transition: background-color 0.45s var(--rita-ease), border-color 0.4s var(--rita-ease),
    border-radius 0.3s var(--rita-ease), color 0.4s var(--rita-ease);
}
.rita-logo-link {
  transition: filter 0.35s var(--rita-ease), border-radius 0.3s var(--rita-ease),
    border-color 0.4s var(--rita-ease), padding 0.5s var(--rita-ease);
}
.rita-btn-primary {
  transition: padding 0.4s var(--rita-ease), background-color 0.45s var(--rita-ease),
    color 0.4s var(--rita-ease), border-color 0.4s var(--rita-ease);
}
.rita-hero, .rita-section, .rita-footer {
  transition: background-color 0.6s var(--rita-ease), color 0.5s var(--rita-ease),
    border-color 0.5s var(--rita-ease);
}
.rita-hero-title, .rita-hero-eyebrow, .rita-hero-sub,
.rita-footer-text {
  transition: color 0.6s var(--rita-ease);
}
.rita-footer-credit {
  font-family:'Funnel Sans', system-ui, sans-serif;
  font-size:0.7rem; color:var(--color-text-secondary);
  margin-right:84px;
  transition:color 0.6s var(--rita-ease);
}
.rita-footer-credit a {
  color:var(--color-text-secondary); text-decoration:none;
  border-bottom:1px solid transparent;
  transition:color 0.2s var(--rita-ease), border-color 0.2s var(--rita-ease);
}
.rita-footer-credit a:hover {
  color:var(--hover); border-color:var(--hover);
}
.rita-card, .rita-card-top, .rita-card-bottom,
.course-detail, .course-meta {
  transition: color 0.5s var(--rita-ease), border-color 0.5s var(--rita-ease);
}
.lb-overlay {
  transition: background-color 0.5s var(--rita-ease);
}
.rita-lang-link {
  transition: color 0.35s var(--rita-ease);
}
.rita-hamburger-line {
  transition: transform 0.3s var(--rita-ease), opacity 0.3s var(--rita-ease),
    background-color 0.5s var(--rita-ease);
}
.rita-mobile-menu {
  transition: background-color 0.5s var(--rita-ease), border-color 0.5s var(--rita-ease);
}
.rita-mobile-nav-link {
  transition: color 0.35s var(--rita-ease), border-color 0.35s var(--rita-ease);
}
/* Accordion + course rows */
.rita-accordion-header {
  transition: border-color 0.4s var(--rita-ease), color 0.4s var(--rita-ease);
}
/* ── Accordion body — CSS-driven expand/collapse (courses only) ── */
.rita-course-list .rita-accordion-body,
.rita-course-list .rita-accordion-body-span {
  max-height:0; opacity:0; overflow:hidden;
  transition:max-height 0.9s cubic-bezier(.25,.1,.25,1), opacity 0.7s cubic-bezier(.25,.1,.25,1);
}
.rita-course-list .rita-accordion.is-expanded .rita-accordion-body,
.rita-course-list .rita-accordion.is-expanded .rita-accordion-body-span {
  opacity:1;
}
/* Staggered children entrance */
.rita-course-list .rita-accordion-body-span .rita-accordion-meta,
.rita-course-list .rita-accordion-body-span .rita-accordion-desc,
.rita-course-list .rita-accordion-body-span .rita-accordion-photos,
.rita-course-list .rita-accordion-body-span .rita-wrapper-caption {
  opacity:0; transform:translateY(12px);
  transition:opacity 0.6s cubic-bezier(.25,.1,.25,1), transform 0.65s cubic-bezier(.25,.1,.25,1);
}
.rita-course-list .rita-accordion.is-expanded .rita-accordion-meta {
  opacity:1; transform:translateY(0); transition-delay:0.15s;
}
.rita-course-list .rita-accordion.is-expanded .rita-accordion-desc {
  opacity:1; transform:translateY(0); transition-delay:0.28s;
}
.rita-course-list .rita-accordion.is-expanded .rita-accordion-photos {
  opacity:1; transform:translateY(0); transition-delay:0.40s;
}
.rita-course-list .rita-accordion.is-expanded .rita-wrapper-caption {
  opacity:1; transform:translateY(0); transition-delay:0.52s;
}
/* Photos scale in */
.rita-course-list .rita-accordion-body-span .rita-accordion-photo {
  transform:scale(0.96); opacity:0;
  transition:transform 0.8s cubic-bezier(.25,.1,.25,1), opacity 0.7s cubic-bezier(.25,.1,.25,1);
}
.rita-course-list .rita-accordion.is-expanded .rita-accordion-photo {
  transform:scale(1); opacity:1;
}
.rita-course-list .rita-accordion.is-expanded .photo-wrapper-1 .rita-accordion-photo { transition-delay:0.35s; }
.rita-course-list .rita-accordion.is-expanded .photo-wrapper-2 .rita-accordion-photo { transition-delay:0.45s; }
.rita-course-list .rita-accordion.is-expanded .photo-wrapper-3 .rita-accordion-photo { transition-delay:0.55s; }
/* Header row cursor hint + expanded indicator */
.rita-course-list .rita-course-row {
  cursor:pointer;
  transition:border-width .2s, padding .25s, color .15s, border-color .2s,
    padding-left 0.4s cubic-bezier(.25,.1,.25,1), background 0.3s;
}
/* C2: background warmth hover (overrides webflow padding-expand) */
.rita-course-row:hover {
  border-width:1px;
  border-color:var(--transparent);
  padding-top:1rem;
  padding-bottom:2rem;
  background:rgba(123,89,162,0.03);
}
[data-theme="dark"] .rita-course-row:hover {
  background:rgba(123,89,162,0.06);
}
.rita-course-list .rita-accordion.is-expanded .rita-course-row {
  border-top:2px solid var(--hover, #7b5ea7);
  padding-left:1.1rem;
}

/* ── Scroll reveal ── */
.rita-reveal {
  opacity:0; transform:translateY(24px);
  transition:opacity 0.8s cubic-bezier(.16,1,.3,1), transform 0.9s cubic-bezier(.16,1,.3,1);
}
.rita-reveal.is-visible {
  opacity:1; transform:translateY(0);
}
/* Course row stagger variant (smaller travel) */
.rita-stagger {
  opacity:0; transform:translateY(16px);
  transition:opacity 0.7s cubic-bezier(.16,1,.3,1), transform 0.8s cubic-bezier(.16,1,.3,1);
}
.rita-stagger.is-visible {
  opacity:1; transform:translateY(0);
}
/* Hero word entrance */
.heading-2 > span {
  display:inline;
  opacity:0;
  transition:opacity 0.6s cubic-bezier(.16,1,.3,1);
}
.heading-2.is-visible > span {
  opacity:1;
}
/* Register button — keep right-aligned at tablet & narrow */
@media (max-width:991px) and (min-width:480px) {
  .rita-course-list .rita-course-row {
    position:relative;
  }
  .rita-course-list .rita-course-row > .rita-btn-primary {
    position:absolute;
    right:0;
    bottom:2rem;
  }
}
.rita-badge {
  transition: color 0.5s var(--rita-ease);
}

/* Modal submit button — no size change on hover */
.rita-panel .rita-btn-primary.form:hover {
  padding:1rem 1.3rem;
  border-width:1px;
  -webkit-text-stroke-width:1px;
}

/* Override site variables for dark mode */
[data-theme="dark"] {
  --color-bg: #2a2a2e;
  --color-text: #e0d8e6;
  --color-text-secondary: #8a8590;
  --color-border: #3a383e;
  --color-accent: #e0d8e6;
  --color-white: #2a2a2e;
  --color-surface: #333338;
  --hover: #b08fd4;
  --transparent: #2a2a2e00;
}

/* Hardcoded color overrides for dark mode */
[data-theme="dark"] .rita-hero,
[data-theme="dark"] .rita-section,
[data-theme="dark"] .rita-footer {
  background-color: var(--color-bg);
}
[data-theme="dark"] .rita-hero-title {
  color: var(--color-text);
}
[data-theme="dark"] .rita-hero-eyebrow {
  color: var(--color-text-secondary);
}
[data-theme="dark"] .rita-footer {
  border-top-color: var(--color-border);
}
[data-theme="dark"] .rita-nav {
  background-color: var(--color-bg);
}
[data-theme="dark"] .rita-nav:hover {
  background-color: rgba(100, 70, 140, 0.9);
}
[data-theme="dark"] .lb-overlay {
  background-color: rgba(42, 42, 46, 0.7);
}
/* Logo swap: light/dark variants */
.logo-dark { display:none; }
.logo-light { display:inline; }
[data-theme="dark"] .logo-dark { display:inline; mix-blend-mode:screen; }
[data-theme="dark"] .logo-light { display:none; }
/* Invert remaining dark images in footer (not logos) */
[data-theme="dark"] .rita-footer img:not([class*="swatch"]):not(.logo-light):not(.logo-dark) {
  filter: invert(1) hue-rotate(180deg);
  transition: filter 0.6s ease;
}
[data-theme="light"] .rita-footer img:not([class*="swatch"]):not(.logo-light):not(.logo-dark) {
  filter: none;
  transition: filter 0.6s ease;
}
/* Buttons with hardcoded dark bg */
[data-theme="dark"] .rita-btn-primary {
  background-color: var(--color-text);
  color: var(--color-bg);
}
[data-theme="dark"] .rita-btn-primary:hover {
  background-color: var(--hover);
  border-color: var(--hover);
}
/* Course cards and surfaces */
[data-theme="dark"] .rita-card-top,
[data-theme="dark"] .course-detail,
[data-theme="dark"] .course-meta {
  color: var(--color-text);
}
[data-theme="dark"] .rita-card-bottom {
  color: var(--color-text-secondary);
}
/* Draw FAB adapts to theme */
[data-theme="dark"] .rita-draw-fab {
  background: var(--color-text);
  color: var(--color-bg);
}
/* Tips toggle adapts to theme */
[data-theme="dark"] .rita-tips-toggle {
  background: #b08fd4;
}
/* Nav elements — dark mode */
[data-theme="dark"] .rita-nav {
  border-bottom-color: var(--color-border);
}
[data-theme="dark"] .rita-hamburger-line {
  background-color: var(--hover);
}
[data-theme="dark"] .rita-mobile-menu {
  background-color: var(--color-bg);
  border-bottom-color: var(--color-border);
}
[data-theme="dark"] .rita-mobile-nav-link {
  color: var(--color-text);
  border-bottom-color: var(--color-border);
}
[data-theme="dark"] .rita-lang-switcher {
  border-left-color: var(--color-border);
}
[data-theme="dark"] .rita-lang-link {
  color: var(--color-text-secondary);
}
[data-theme="dark"] .rita-lang-link:hover {
  color: var(--color-text);
}
[data-theme="dark"] .rita-lang-link.rita-lang-link-active {
  color: var(--hover);
}
/* Course rows & accordion borders */
[data-theme="dark"] .rita-course-row {
  border-bottom-color: var(--color-border);
}
[data-theme="dark"] .rita-accordion-header {
  border-bottom-color: var(--color-border);
}
[data-theme="dark"] .rita-accordion-value,
[data-theme="dark"] .rita-accordion-label {
  color: var(--color-text-secondary);
}
[data-theme="dark"] .rita-accordion-desc {
  color: var(--color-text);
}
/* Badge text */
[data-theme="dark"] .rita-badge {
  color: var(--color-text-secondary);
}

/* ═══ GALLERY MASONRY ═══ */
.rita-masonry {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:1rem; padding:1rem 0;
  align-items:start;
}
.rita-gallery-col {
  display:flex; flex-direction:column; gap:1rem;
  will-change:transform;
}
.rita-masonry-item {
  position:relative;
  /* Reveal animation */
  opacity:0; transform:translateY(40px) scale(0.97);
  transition:
    opacity 1s cubic-bezier(.16,1,.3,1),
    transform 1.1s cubic-bezier(.16,1,.3,1),
    outline-color 0s;
  /* Hover outline — thin, brand color */
  outline:1px solid transparent;
  outline-offset:3px;
}
.rita-masonry-item.is-visible {
  opacity:1; transform:translateY(0) scale(1);
}
.rita-masonry-item.is-visible {
  transition:
    outline-color 0s,
    padding 0.25s cubic-bezier(.16,1,.3,1),
    margin 0.25s cubic-bezier(.16,1,.3,1);
}
.rita-masonry-item:hover {
  outline-color: var(--color-brand, #7b59a2);
  padding:4px;
  margin:-4px;
}
/* Stagger items within each column */
.rita-masonry-item:nth-child(2) { transition-delay:0.14s; }
.rita-masonry-item:nth-child(3) { transition-delay:0.28s; }
.rita-masonry-item:nth-child(4) { transition-delay:0.42s; }
/* Stagger columns */
.rita-gallery-col:nth-child(2) .rita-masonry-item { transition-delay:0.09s; }
.rita-gallery-col:nth-child(2) .rita-masonry-item:nth-child(2) { transition-delay:0.23s; }
.rita-gallery-col:nth-child(2) .rita-masonry-item:nth-child(3) { transition-delay:0.37s; }
.rita-gallery-col:nth-child(2) .rita-masonry-item:nth-child(4) { transition-delay:0.51s; }
.rita-gallery-col:nth-child(3) .rita-masonry-item { transition-delay:0.18s; }
.rita-gallery-col:nth-child(3) .rita-masonry-item:nth-child(2) { transition-delay:0.32s; }
.rita-gallery-col:nth-child(3) .rita-masonry-item:nth-child(3) { transition-delay:0.46s; }
.rita-gallery-col:nth-child(3) .rita-masonry-item:nth-child(4) { transition-delay:0.6s; }
.rita-masonry-img {
  display:block; width:100%; height:auto;
  cursor:pointer;
  will-change:transform;
  transition:transform 0.8s cubic-bezier(.16,1,.3,1);
}
.rita-masonry-item .rita-caption {
  padding:0.4rem 0;
}
@media (max-width:900px) { .rita-masonry { grid-template-columns:repeat(2,1fr); } }
@media (max-width:520px) { .rita-masonry { grid-template-columns:1fr; } }
/* Hero — full viewport on mobile, logo centered, badge at bottom */
@media (max-width:767px) {
  .rita-hero { height:100vh; min-height:100vh; padding:0 1.25rem; }
  .rita-hero .div-block { flex:1; width:100%; }
  .rita-hero .div-block > div:first-child {
    flex:1; display:flex; align-items:center; justify-content:center;
  }
  .rita-hero .image { width:100%; height:auto; }
  .rita-hero .rita-badge { padding-bottom:1.5rem; }
}

/* ═══ INSTAGRAM FILMSTRIP (Option A) ═══ */
/* ═══ INSTAGRAM FILMSTRIP ═══ */
.rita-ig-filmstrip-section {
  padding-top:2rem;
  padding-bottom:1rem;
}
/* ── Reveal animation ── */
.rita-ig-filmstrip-header,
.rita-ig-filmstrip-item {
  opacity:0;
  transform:translateY(18px);
  transition:opacity 0.6s var(--rita-ease), transform 0.6s var(--rita-ease);
}
.rita-ig-filmstrip-section.is-visible .rita-ig-filmstrip-header {
  opacity:1;
  transform:translateY(0);
}
.rita-ig-filmstrip-section.is-visible .rita-ig-filmstrip-item {
  opacity:1;
  transform:translateY(0);
}
.rita-ig-filmstrip-header {
  display:flex;
  align-items:baseline;
  gap:1rem;
  margin-bottom:1.25rem;
  padding:0 20px;
}
.rita-ig-filmstrip-title {
  font-family:'Funnel Sans', system-ui, sans-serif;
  font-size:clamp(0.7rem, 1.5vw, 0.85rem);
  font-weight:500;
  letter-spacing:0.06em;
  color:var(--color-text-secondary, #8a8a82);
  text-transform:uppercase;
  white-space:nowrap;
}
.rita-ig-filmstrip-line {
  flex:1;
  height:1px;
  background:var(--color-border, #e0dfd9);
}
[data-theme="dark"] .rita-ig-filmstrip-line { background:var(--color-border); }
.rita-ig-filmstrip-handle {
  font-family:'Funnel Sans', system-ui, sans-serif;
  font-size:0.75rem;
  font-weight:400;
  letter-spacing:0.04em;
  color:var(--color-text-secondary, #8a8a82);
  text-decoration:none;
  transition:color 0.25s var(--rita-ease);
  display:flex;
  align-items:center;
  gap:6px;
  white-space:nowrap;
}
.rita-ig-filmstrip-handle:hover { color:var(--color-brand, #7b59a2); }
.rita-ig-filmstrip-wrapper {
  overflow:hidden;
  margin:0 -20px;
  padding:0 20px;
}
.rita-ig-filmstrip {
  display:flex;
  gap:8px;
  min-height:200px;
  overflow-x:auto;
  cursor:grab;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  -ms-overflow-style:none;
  padding-bottom:2px;
}
.rita-ig-filmstrip::-webkit-scrollbar { display:none; }
.rita-ig-filmstrip.is-grabbing {
  cursor:grabbing;
  scroll-behavior:auto;
  user-select:none;
}
.rita-ig-filmstrip-item {
  flex:0 0 220px;
  display:block;
  position:relative;
  outline:1px solid transparent;
  outline-offset:3px;
  transition:outline-color 0s, padding 0.25s var(--rita-ease), margin 0.25s var(--rita-ease);
  text-decoration:none;
}
.rita-ig-filmstrip-item:hover {
  outline-color:var(--color-brand, #7b59a2);
  padding:4px;
  margin:-4px;
}
.rita-ig-filmstrip-item img {
  width:100%;
  aspect-ratio:1;
  object-fit:cover;
  display:block;
}
.rita-ig-filmstrip-date {
  position:absolute;
  bottom:8px;
  left:8px;
  font-family:'Funnel Sans', system-ui, sans-serif;
  font-size:0.55rem;
  font-weight:300;
  letter-spacing:0.03em;
  color:#fff;
  text-shadow:0 1px 4px rgba(0,0,0,0.5);
  opacity:0;
  transition:opacity 0.3s var(--rita-ease);
}
.rita-ig-filmstrip-item:hover .rita-ig-filmstrip-date { opacity:1; }
@media (max-width:768px) {
  .rita-ig-filmstrip-item { flex:0 0 160px; }
}

/* ═══ LIGHTBOX SCROLL LOCK — prevents layout shift ═══ */
body.rita-lightbox-open {
  position:fixed;
  width:100%;
  overflow:hidden;
  padding-right:var(--scrollbar-width, 0px);
}
body.rita-lightbox-open .rita-nav {
  padding-right:var(--scrollbar-width, 0px);
}

/* ═══ LIGHTBOX — PANEL DESIGN LANGUAGE ═══ */
.rita-lightbox {
  position:fixed; inset:0; z-index:10000;
  pointer-events:none; visibility:hidden;
  transition:visibility 0s 0.7s;
}
.rita-lightbox.is-open {
  pointer-events:auto; visibility:visible;
  transition:visibility 0s 0s;
}
/* Backdrop — theme-aware, opaque, slow entrance */
.rita-lightbox-backdrop {
  position:absolute; inset:0;
  background:rgba(245,243,240,0.95);
  backdrop-filter:blur(24px); -webkit-backdrop-filter:blur(24px);
  opacity:0;
  transition:opacity 0.6s cubic-bezier(.4,0,.2,1);
}
[data-theme="dark"] .rita-lightbox-backdrop {
  background:rgba(10,10,12,0.95);
}
.rita-lightbox.is-open .rita-lightbox-backdrop { opacity:1; }
/* Stage — full viewport */
.rita-lightbox-stage {
  position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center;
  flex-direction:column; padding:0;
}
/* Image frame — fills viewport */
.rita-lightbox-frame {
  position:relative;
  width:100%; height:100vh;
  display:flex; align-items:center; justify-content:center;
  opacity:0; transform:scale(0.98);
  transition:
    opacity 0.7s cubic-bezier(.4,0,.2,1),
    transform 0.8s cubic-bezier(.16,1,.3,1);
}
.rita-lightbox.is-open .rita-lightbox-frame {
  opacity:1; transform:scale(1); transition-delay:0.15s;
}
.rita-lightbox-img {
  max-width:85vw; max-height:88vh;
  object-fit:contain;
  box-shadow:0 8px 40px rgba(0,0,0,0.08);
  transition:opacity 0.5s cubic-bezier(.4,0,.2,1);
}
[data-theme="dark"] .rita-lightbox-img {
  box-shadow:0 12px 60px rgba(0,0,0,0.4);
}
/* Back layer for cross-fade */
.rita-lightbox-img-back {
  position:absolute; top:50%; left:50%;
  transform:translate(-50%,-50%);
  max-width:85vw; max-height:88vh;
  object-fit:contain;
  box-shadow:0 8px 40px rgba(0,0,0,0.08);
  opacity:0;
  transition:opacity 0.5s cubic-bezier(.4,0,.2,1);
  pointer-events:none;
}
[data-theme="dark"] .rita-lightbox-img-back {
  box-shadow:0 12px 60px rgba(0,0,0,0.4);
}
/* Caption — bottom-left, theme-aware */
.rita-lightbox-caption {
  position:absolute; bottom:1.4rem; left:1.8rem;
  font-family:'Funnel Sans', system-ui, sans-serif;
  font-size:0.68rem; letter-spacing:0.04em;
  color:rgba(80,70,60,0.5);
  opacity:0; transform:translateY(6px);
  transition:opacity 0.4s var(--rita-ease), transform 0.4s var(--rita-ease);
}
[data-theme="dark"] .rita-lightbox-caption { color:rgba(255,255,255,0.4); }
.rita-lightbox.is-open .rita-lightbox-caption {
  opacity:1; transform:translateY(0); transition-delay:0.4s;
}
.rita-lightbox-caption.is-swapping {
  opacity:0; transform:translateY(4px);
  transition:opacity 0.15s ease, transform 0.15s ease;
}
/* Counter — bottom-right */
.rita-lightbox-counter {
  position:absolute; bottom:1.4rem; right:1.8rem;
  font-family:'Funnel Sans', system-ui, sans-serif;
  font-size:0.58rem; letter-spacing:0.08em;
  color:rgba(80,70,60,0.25);
  opacity:0;
  transition:opacity 0.4s var(--rita-ease);
}
[data-theme="dark"] .rita-lightbox-counter { color:rgba(255,255,255,0.2); }
.rita-lightbox.is-open .rita-lightbox-counter { opacity:1; transition-delay:0.5s; }
/* Close button — theme-aware */
.rita-lightbox-close {
  position:absolute; top:1.2rem; right:1.5rem;
  width:40px; height:40px; border-radius:50%;
  border:1px solid rgba(80,70,60,0.15);
  background:none; color:rgba(80,70,60,0.5);
  cursor:pointer; font-size:1.4rem; line-height:1;
  display:flex; align-items:center; justify-content:center;
  z-index:2; opacity:0;
  transition:opacity 0.35s var(--rita-ease), border-color 0.3s, color 0.3s;
}
[data-theme="dark"] .rita-lightbox-close {
  border-color:rgba(255,255,255,0.12); color:rgba(255,255,255,0.6);
}
.rita-lightbox.is-open .rita-lightbox-close { opacity:1; transition-delay:0.45s; }
.rita-lightbox-close:hover {
  border-color:rgba(80,70,60,0.35); color:rgba(30,25,20,0.8);
}
[data-theme="dark"] .rita-lightbox-close:hover {
  border-color:rgba(255,255,255,0.35); color:#fff;
}
/* Nav arrows — extended full-height trigger zones */
.rita-lightbox-prev,
.rita-lightbox-next {
  position:absolute; top:0; bottom:0;
  width:15vw; min-width:60px;
  border:none; border-radius:0;
  background:none; cursor:pointer;
  display:flex; align-items:center;
  opacity:0; z-index:1;
  transition:opacity 0.35s var(--rita-ease);
}
.rita-lightbox-prev { left:0; justify-content:center; }
.rita-lightbox-next { right:0; justify-content:center; }
.rita-lightbox-prev svg,
.rita-lightbox-next svg {
  width:28px; height:28px; flex-shrink:0;
  color:rgba(80,70,60,0.35);
  transition:color 0.3s, transform 0.3s var(--rita-ease);
}
[data-theme="dark"] .rita-lightbox-prev svg,
[data-theme="dark"] .rita-lightbox-next svg {
  color:rgba(255,255,255,0.4);
}
.rita-lightbox.is-open .rita-lightbox-prev,
.rita-lightbox.is-open .rita-lightbox-next { opacity:1; transition-delay:0.5s; }
.rita-lightbox-prev:hover svg,
.rita-lightbox-next:hover svg {
  color:rgba(30,25,20,0.7);
}
[data-theme="dark"] .rita-lightbox-prev:hover svg,
[data-theme="dark"] .rita-lightbox-next:hover svg {
  color:#fff;
}
.rita-lightbox-prev:hover svg { transform:translateX(-2px); }
.rita-lightbox-next:hover svg { transform:translateX(2px); }
@media (max-width:600px) {
  .rita-lightbox-prev, .rita-lightbox-next { width:20vw; }
  .rita-lightbox-prev svg, .rita-lightbox-next svg { width:22px; height:22px; }
  .rita-lightbox-img { max-width:95vw; max-height:80vh; }
  .rita-lightbox-caption { left:1rem; bottom:1rem; }
  .rita-lightbox-counter { right:1rem; bottom:1rem; }
}

/* ── Reduce spacer between content and draw section ── */
.rita-section.flex-middle { min-height:70vh; }

/* ── Canvas theme variables ── */
:root, [data-theme="light"] {
  --cvs-bg: #fafaf8;
  --cvs-fg: #1a1a1a;
  --cvs-fg-dim: rgba(26,26,26,0.4);
  --cvs-fg-ghost: rgba(26,26,26,0.12);
  --cvs-fg-faint: rgba(26,26,26,0.06);
  --cvs-accent: #7b5ea7;
  --cvs-stroke-fg: rgba(26,26,26,0.7);
  --cvs-purple: #7b5ea7;
  --cvs-purple-light: #c4b0db;
  --cvs-charcoal: #3a3a3e;
  --cvs-nav-fg: white;
  --cvs-s: 0.5s;
}
[data-theme="dark"] {
  --cvs-bg: #2a2a2e;
  --cvs-fg: #c4a0d4;
  --cvs-fg-dim: #8a7099;
  --cvs-fg-ghost: #6b5a78;
  --cvs-fg-faint: rgba(196,160,212,0.08);
  --cvs-accent: #c4a0d4;
  --cvs-stroke-fg: rgba(196,160,212,0.55);
  --cvs-purple: #c4a0d4;
  --cvs-purple-light: #d4b0e4;
  --cvs-charcoal: #8a8a90;
  --cvs-nav-fg: #c4a0d4;
  --cvs-s: 0.5s;
}
[data-dusk] { --cvs-s: 2s !important; }

/* ── Cursor ── */
.cur {
  position:fixed; z-index:9996; pointer-events:none;
  border:1.5px solid rgba(128,128,128,0.9);
  opacity:0;
  transform:translate(-50%,-50%);
  transition:width 0.1s, height 0.1s, opacity 0.25s, border-radius 0.15s;
  mix-blend-mode:difference;
}
.cur::before, .cur::after {
  content:''; position:absolute; pointer-events:none;
  background:rgba(128,128,128,0.6);
}
.cur::before {
  left:50%; top:50%; width:1px; height:7px;
  transform:translate(-50%,-50%);
}
.cur::after {
  left:50%; top:50%; width:7px; height:1px;
  transform:translate(-50%,-50%);
}
.cur.clamped::before { opacity:0.5; }
.cur.clamped::after { opacity:0.5; }
.cur.clamped { border-style:dashed; }
.cur.on { opacity:0.55; }
.cur.dim { opacity:0.3; }

/* ── Dusk wash ── */
.dusk {
  position:fixed; inset:0; z-index:9997; pointer-events:none;
  background:radial-gradient(ellipse at 50% 60%, rgba(180,120,60,0.12) 0%, rgba(140,80,50,0.06) 50%, transparent 100%);
  opacity:0;
}
.dusk.on { animation:duskPulse 2.4s ease forwards; }
@keyframes duskPulse { 0%{opacity:0} 25%{opacity:1} 65%{opacity:0.7} 100%{opacity:0} }

/* ═══ DRAW SECTION ═══ */
.draw {
  position:relative; z-index:2; width:100%;
  min-height:100vh;
  background:var(--cvs-bg); transition:background var(--cvs-s);
}
[data-theme="dark"] .draw {
  --cvs-bg:#2a2a2e; --cvs-fg:#c4a0d4; --cvs-fg-dim:#8a7099;
  --cvs-fg-ghost:#6b5a78; --cvs-fg-faint:rgba(196,160,212,0.08);
  --cvs-accent:#c4a0d4; --cvs-stroke-fg:rgba(196,160,212,0.55);
  background:#2a2a2e;
}

/* Heading — outlined stroke */
.draw__hd {
  text-align:center; position:absolute;
  top:45%; left:50%; transform:translate(-50%,-50%);
  pointer-events:none; z-index:5;
  opacity:1;
  transition:opacity 0.6s ease, transform 0.6s ease;
}
.draw__hd.out {
  opacity:0; transform:translate(-50%,-50%) scale(0.97);
  transition:opacity 1.2s ease 1.8s, transform 1.2s ease 1.8s;
}
.draw__h {
  font-family:'Funnel Sans', system-ui, sans-serif;
  font-weight:700; font-size:clamp(2.4rem,7vw,5rem);
  letter-spacing:-0.02em; line-height:0.92;
  color:transparent;
  -webkit-text-stroke:2px var(--cvs-fg);
  transition:all var(--cvs-s);
}
.draw__p {
  font-family:'Funnel Sans', system-ui, sans-serif;
  font-weight:400; font-size:0.68rem;
  color:var(--cvs-fg-dim); margin-top:0.8rem;
  letter-spacing:0.03em; transition:color var(--cvs-s);
}

/* Canvas */
.draw__cvs {
  position:absolute; inset:0;
  width:100%; height:100%;
  cursor:default; touch-action:none; z-index:2;
}
.draw.pen { z-index:201; touch-action:none; overflow:hidden; }
.draw.pen .draw__cvs { cursor:none; }

/* ═══ EDGE GUIDES ═══ */
.edge-guide {
  position:absolute; z-index:8; pointer-events:none;
  top:10%; bottom:10%; width:0;
  border-left:1px dashed var(--cvs-fg);
  opacity:0;
  transition:opacity 1.2s ease;
}
.edge-guide--l { left:10%; }
.edge-guide--r { right:10%; }
.draw.pen .edge-guide { opacity:0.035; }
.edge-guide.scrolling { opacity:0.08; transition:opacity 0.15s ease; }
.edge-guide.flash {
  animation:edgeFlash 1.6s ease-out forwards;
}
@keyframes edgeFlash {
  0%   { opacity:0.035; }
  8%   { opacity:0.1; }
  100% { opacity:0.035; }
}

/* ═══ TOOLBAR ═══ */
.tb {
  position:fixed; bottom:0.9rem; left:50%;
  transform:translateX(-50%) scale(0.94);
  transform-origin:center center;
  z-index:9995;
  display:flex; align-items:center;
  background:var(--cvs-bg);
  border:1px solid var(--cvs-fg-ghost);
  border-radius:100px;
  padding:0.45rem 0.7rem; gap:0.15rem;
  transition: background var(--cvs-s), border-color var(--cvs-s),
    transform 0.5s cubic-bezier(0.25,1,0.5,1),
    bottom 0.5s cubic-bezier(0.25,1,0.5,1),
    padding 0.5s cubic-bezier(0.25,1,0.5,1),
    box-shadow 0.5s ease, opacity 0.4s;
  box-shadow:0 2px 12px rgba(0,0,0,0.04);
  opacity:0; pointer-events:none;
}
.tb.on { opacity:0.75; pointer-events:auto; }
/* Invisible hover zone below toolbar — prevents jitter during lift */
.tb::after {
  content:''; position:absolute;
  left:-1rem; right:-1rem; top:100%; height:5rem;
  background:transparent; pointer-events:auto;
}
.tb.lifted {
  transform:translateX(-50%) scale(1.3);
  bottom:4.8rem;
  padding:0.55rem 0.9rem; gap:0.2rem;
  box-shadow:0 4px 28px rgba(0,0,0,0.1);
  opacity:1;
}

.tb__sw {
  width:18px; height:18px; border-radius:50%;
  border:2px solid transparent; cursor:pointer;
  transition:border-color 0.2s, transform 0.15s, background var(--cvs-s);
}
.tb__sw:hover { transform:scale(1.15); }
.tb__sw.act { border-color:var(--cvs-fg); }
.tb__sw[data-role="eraser"] { border:1.5px dashed var(--cvs-fg-ghost); }
.tb__sw[data-role="eraser"].act { border:2px dashed var(--cvs-fg); }

.tb__d { width:1px; height:14px; background:var(--cvs-fg-ghost); margin:0 0.35rem; }

.tb__br {
  width:26px; height:26px; border:none; border-radius:50%;
  background:transparent; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  transition:background 0.2s; position:relative;
}
.tb__br:hover { background:var(--cvs-fg-ghost); }
.tb__br.act { background:var(--cvs-fg-ghost); }
.tb__br svg { width:14px; height:14px; }
.tb__br svg path, .tb__br svg circle { stroke:var(--cvs-fg-dim); fill:none; transition:stroke var(--cvs-s); }
.tb__br.act svg path, .tb__br.act svg circle { stroke:var(--cvs-fg); }
.tb__br svg line { stroke:var(--cvs-fg-dim); fill:none; transition:stroke var(--cvs-s); }
.tb__br.act svg line { stroke:var(--cvs-fg); }

[data-t]::before {
  content:attr(data-t); position:absolute; bottom:calc(100% + 18px); left:50%;
  transform:translateX(-50%) scale(0.9);
  font-family:'Funnel Sans', system-ui, sans-serif;
  font-weight:500; font-size:0.58rem; letter-spacing:0.04em;
  color:var(--cvs-fg); background:var(--cvs-bg); border:1px solid var(--cvs-fg-ghost);
  padding:0.22rem 0.5rem; border-radius:5px;
  white-space:nowrap; pointer-events:none;
  opacity:0; transition:opacity 0.2s, transform 0.2s;
}
[data-t]:hover::before { opacity:1; transform:translateX(-50%) scale(1); }

.tb__dot { position:relative;
  width:var(--ds,8px); height:var(--ds,8px);
  border-radius:50%; background:var(--cvs-fg-dim);
  transition:width 0.1s, height 0.1s, background var(--cvs-s);
  min-width:3px; min-height:3px; margin:0 0.15rem;
}

/* Done / Put down pen */
.tb__done { position:relative;
  font-family:'Funnel Sans', system-ui, sans-serif;
  font-weight:600; font-size:0.48rem; letter-spacing:0.08em; text-transform:uppercase;
  background:none; border:1px solid var(--cvs-fg-ghost); border-radius:100px;
  color:var(--cvs-fg-dim); cursor:pointer;
  padding:0.2rem 0.5rem; transition:all 0.3s;
  opacity:0; pointer-events:none;
  white-space:nowrap;
}
.tb__done.on { opacity:1; pointer-events:auto; }
.tb__done:hover { color:var(--cvs-fg); border-color:var(--cvs-fg); }

.tb__clr { position:relative;
  font-family:'Funnel Sans', system-ui, sans-serif;
  font-weight:600; font-size:0.48rem; letter-spacing:0.08em; text-transform:uppercase;
  background:none; border:none;
  color:var(--cvs-fg-ghost); cursor:pointer;
  padding:0.2rem 0.35rem; border-radius:100px; transition:color 0.3s;
}
.tb__clr:hover { color:var(--cvs-fg); }

/* Wet/dry toggle */
.tb__wet {
  position:relative;
  font-family:'Funnel Sans', system-ui, sans-serif; font-weight:600;
  font-size:0.46rem; letter-spacing:0.06em; text-transform:lowercase;
  background:none; border:1px solid var(--cvs-fg-ghost); border-radius:100px;
  color:var(--cvs-fg-dim); cursor:pointer;
  padding:0.18rem 0.45rem; transition:all 0.3s;
  white-space:nowrap;
}
.tb__wet:hover { color:var(--cvs-fg); border-color:var(--cvs-fg); }

/* ── Draw section footer ── */
.draw-foot {
  position:relative; z-index:9993;
  padding:1rem 1.5rem;
  border-top:1px solid var(--cvs-fg-faint);
  display:grid; grid-template-columns:1fr auto 1fr;
  align-items:center;
  font-family:'Funnel Sans', system-ui, sans-serif;
  font-size:0.5rem; letter-spacing:0.08em;
  text-transform:uppercase; color:var(--cvs-fg-ghost);
  background:var(--cvs-bg);
  min-height:4rem;
  cursor:default;
  transition:background var(--cvs-s), color var(--cvs-s), border-color var(--cvs-s);
}
.draw-foot__l { justify-self:start; }
.draw-foot__r { justify-self:end; }
.draw-foot__c { justify-self:center; height:100%; display:flex; align-items:center; }
.draw-foot.stuck {
  position:fixed; bottom:0; left:0; right:0;
}

/* ── Printing overlay ── */
.printing {
  position:fixed; inset:0; z-index:99999;
  display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  pointer-events:none; opacity:0;
  background:var(--cvs-bg);
  transition:opacity 0.6s ease;
}
.printing.on { opacity:0.88; }
.printing__line {
  font-family:'Funnel Sans', system-ui, sans-serif;
  letter-spacing:0.06em; text-align:center;
}
.printing__line--main {
  font-weight:600; font-size:clamp(1rem,2.2vw,1.4rem);
  color:var(--cvs-fg); opacity:0.5;
}
.printing__line--sub {
  font-weight:300; font-size:clamp(0.7rem,1.4vw,0.85rem);
  color:var(--cvs-fg); opacity:0.25;
  margin-top:0.5rem; font-style:italic;
}

/* ── Touch: collapsed toolbar FAB ── */
.tb-fab {
  display:none;
  position:fixed; bottom:24px; right:24px;
  z-index:9995; width:48px; height:48px;
  border-radius:50%; border:1.5px solid var(--cvs-fg-ghost);
  background:var(--cvs-bg); cursor:pointer;
  align-items:center; justify-content:center;
  transition:background var(--cvs-s), border-color var(--cvs-s), transform 0.3s;
  box-shadow:0 2px 12px rgba(0,0,0,0.06);
}
.tb-fab svg { width:20px; height:20px; }
.tb-fab svg path { stroke:var(--cvs-fg-dim); fill:none; transition:stroke var(--cvs-s); }
.tb-fab:hover { transform:scale(1.08); }

/* ── Nav right wrapper (dusk toggle + menu icon) ── */
.rita-nav-right {
  display:flex; align-items:center; gap:0.5rem;
}

/* ── Menu toggle (hamburger icon) ── */
.rita-menu-toggle {
  display:flex; flex-direction:column; justify-content:center; align-items:center;
  gap:4px; width:36px; height:36px;
  background:none; border:1px solid transparent; border-radius:50%;
  cursor:pointer; padding:0;
  transition:border-color 0.4s var(--rita-ease);
}
.rita-menu-toggle:hover {
  border-color:var(--hover);
}
.rita-menu-toggle-line {
  display:block; width:24px; height:2px;
  background-color:#1a1a1a;
  transition:background-color 0.5s var(--rita-ease), transform 0.4s var(--rita-ease),
    width 0.3s var(--rita-ease), opacity 0.3s var(--rita-ease);
  transform-origin:center;
}
[data-theme="dark"] .rita-menu-toggle-line {
  background-color:var(--hover);
}
/* Brush Stroke animation — lines converge into a short diagonal X */
.rita-menu-toggle.is-open .rita-menu-toggle-line:nth-child(1) {
  transform:translateY(6px) rotate(45deg); width:20px;
}
.rita-menu-toggle.is-open .rita-menu-toggle-line:nth-child(2) {
  opacity:0; transform:scaleX(0);
}
.rita-menu-toggle.is-open .rita-menu-toggle-line:nth-child(3) {
  transform:translateY(-6px) rotate(-45deg); width:20px;
}

/* ═══ PANEL SYSTEM ═══ */

/* Shared panel container */
.rita-panel {
  position:fixed; inset:0; z-index:10000;
  pointer-events:none;
  visibility:hidden;
  transition:visibility 0s 0.4s;
}
.rita-panel.is-open {
  pointer-events:auto;
  visibility:visible;
  transition:visibility 0s 0s;
}

/* Backdrop */
.rita-panel-backdrop {
  position:absolute; inset:0;
  background:rgba(26,26,26,0.3);
  backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  opacity:0;
  transition:opacity 0.35s var(--rita-ease);
}
[data-theme="dark"] .rita-panel-backdrop {
  background:rgba(10,10,12,0.5);
}
.rita-panel.is-open .rita-panel-backdrop {
  opacity:1;
}
/* When a panel layers on top of another (e.g. calendar over nav),
   suppress the double-backdrop blur — just use a subtle darkening */
.rita-panel--cal .rita-panel-backdrop,
.rita-panel--wide .rita-panel-backdrop {
  backdrop-filter:none; -webkit-backdrop-filter:none;
  background:rgba(26,26,26,0.15);
}
[data-theme="dark"] .rita-panel--cal .rita-panel-backdrop,
[data-theme="dark"] .rita-panel--wide .rita-panel-backdrop {
  background:rgba(10,10,12,0.25);
}

/* Panel body — slide from right (no opacity — children stagger individually) */
.rita-panel--right .rita-panel-body {
  position:absolute; top:0; right:0; bottom:0;
  width:min(380px, 85vw);
  background:var(--color-bg, #fafaf8);
  display:flex; flex-direction:column;
  padding:3rem 2.5rem 2rem;
  transform:translateX(100%);
  transition:transform 0.35s var(--rita-ease),
    background-color 0.6s var(--rita-ease);
  overflow-y:auto;
}
[data-theme="dark"] .rita-panel--right .rita-panel-body {
  background:var(--color-bg);
}
.rita-panel--right.is-open .rita-panel-body {
  transform:translateX(0);
}

/* Staggered link entrance */
.rita-panel-link,
.rita-panel-link--cta,
.rita-panel-footer {
  opacity:0;
  transform:translateY(8px);
  transition:
    opacity 0.25s var(--rita-ease),
    transform 0.25s var(--rita-ease),
    -webkit-text-stroke-color 0.15s var(--rita-ease),
    color 0.15s var(--rita-ease),
    border-color 0.2s var(--rita-ease);
}
.rita-panel.is-open .rita-panel-link,
.rita-panel.is-open .rita-panel-link--cta,
.rita-panel.is-open .rita-panel-footer {
  opacity:1;
  transform:translateY(0);
}
.rita-panel.is-open .rita-panel-link:nth-child(1) { transition-delay:0.06s; }
.rita-panel.is-open .rita-panel-link:nth-child(2) { transition-delay:0.12s; }
.rita-panel.is-open .rita-panel-link:nth-child(3) { transition-delay:0.18s; }
.rita-panel.is-open .rita-panel-link:nth-child(4) { transition-delay:0.24s; }
.rita-panel.is-open .rita-panel-link:nth-child(5) { transition-delay:0.30s; }
.rita-panel.is-open .rita-panel-link:nth-child(6) { transition-delay:0.36s; }
.rita-panel.is-open .rita-panel-link:nth-child(7) { transition-delay:0.42s; }
.rita-panel.is-open .rita-panel-link:nth-child(8) { transition-delay:0.48s; }
.rita-panel.is-open .rita-panel-link:nth-child(9) { transition-delay:0.54s; }
.rita-panel.is-open .rita-panel-footer { transition-delay:0.62s; }
/* Reset stagger delay on hover so color responds instantly */
.rita-panel.is-open .rita-panel-link:hover,
.rita-panel.is-open .rita-panel-link--cta:hover { transition-delay:0s; }
/* Close button — fade in after slide finishes */
.rita-panel .rita-panel-close {
  opacity:0;
  transition:opacity 0.35s var(--rita-ease);
}
.rita-panel.is-open .rita-panel-close {
  opacity:1;
  transition-delay:0.38s;
}

/* Panel body — centered modal */
.rita-panel--center .rita-panel-body {
  position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center;
  padding:2rem;
  opacity:0;
  transform:translateY(12px);
  transition:opacity 0.3s var(--rita-ease), transform 0.35s var(--rita-ease);
}
.rita-panel--center.is-open .rita-panel-body {
  opacity:1; transform:translateY(0);
}

/* Close button — same hamburger icon in X state, positioned by JS to match */
.rita-panel-close.rita-menu-toggle {
  position:absolute; top:12px; right:47px;
  z-index:1;
}

/* ── Nav panel logo ── */
.rita-panel-logo {
  display:block;
  padding:1.25rem 2rem 0 0.25rem;
  text-decoration:none;
  line-height:0;
  align-self:flex-start;
}
.rita-panel-logo img {
  display:block;
}

/* ── Nav panel links — outlined stroke headings ── */
.rita-panel-links {
  display:flex; flex-direction:column;
  gap:0; margin-top:0.75rem; flex:1;
}
.rita-panel-link {
  font-family:'Funnel Sans', system-ui, sans-serif;
  font-weight:700;
  font-size:clamp(2rem, 5vw, 3rem);
  letter-spacing:-0.02em; line-height:1.1;
  text-transform:uppercase;
  text-decoration:none;
  color:transparent;
  -webkit-text-stroke:1px var(--color-text, #1a1a1a);
  padding:0.6rem 0;
  border-bottom:1px solid var(--color-border, #e0dfd9);
  transition:
    opacity 0.25s var(--rita-ease),
    transform 0.25s var(--rita-ease),
    -webkit-text-stroke-color 0.15s var(--rita-ease),
    color 0.15s var(--rita-ease),
    border-color 0.2s var(--rita-ease);
}
.rita-panel-link:hover {
  color:var(--hover);
  -webkit-text-stroke-color:var(--hover);
}
.rita-panel-link.is-current {
  color:var(--hover);
  -webkit-text-stroke-color:var(--hover);
}
[data-theme="dark"] .rita-panel-link {
  -webkit-text-stroke-color:var(--color-text);
  border-bottom-color:var(--color-border);
}
[data-theme="dark"] .rita-panel-link:hover {
  color:var(--hover);
  -webkit-text-stroke-color:var(--hover);
}

/* Register link — quieter */
.rita-panel-link--cta {
  font-size:clamp(0.7rem, 1.5vw, 0.85rem);
  font-weight:500;
  letter-spacing:0.06em;
  -webkit-text-stroke:0;
  color:var(--color-text-secondary, #6b6b6b);
  margin-top:1.5rem;
  border-bottom:none;
  padding:0;
}
.rita-panel-link--cta:hover {
  color:var(--hover);
  -webkit-text-stroke:0;
}
[data-theme="dark"] .rita-panel-link--cta {
  -webkit-text-stroke:0;
  color:var(--color-text-secondary);
}

/* ── Panel contact info ── */
.rita-panel-contact {
  margin-top:auto; padding-top:1.5rem;
  display:flex; flex-direction:column; gap:0.2rem;
  opacity:0; transform:translateY(8px);
  transition:opacity 0.25s var(--rita-ease), transform 0.25s var(--rita-ease);
}
.rita-panel.is-open .rita-panel-contact { opacity:1; transform:translateY(0); transition-delay:0.54s; }
.rita-panel-contact-name {
  font-family:'Funnel Sans', system-ui, sans-serif;
  font-size:0.8rem; font-weight:600;
  letter-spacing:0.03em;
  color:var(--color-text, #1a1a1a);
  margin-bottom:0.15rem;
}
.rita-panel-contact-line {
  font-family:'Funnel Sans', system-ui, sans-serif;
  font-size:0.75rem; font-weight:300;
  letter-spacing:0.02em;
  color:var(--color-text-secondary, #8a8a82);
  text-decoration:none;
  transition:color 0.25s var(--rita-ease);
}
.rita-panel-contact-line:hover { color:var(--hover, #7b59a2); }
.rita-panel-contact-ig {
  display:inline-flex; align-items:center; gap:0.4rem; margin-top:0.4rem;
}
[data-theme="dark"] .rita-panel-contact-name { color:var(--color-text); }
[data-theme="dark"] .rita-panel-contact-line { color:var(--color-text-secondary); }
[data-theme="dark"] .rita-panel-contact-line:hover { color:var(--hover); }

/* ── Panel footer (lang + tips toggle) ── */
.rita-panel-footer {
  padding-top:1rem;
  border-top:1px solid var(--color-border, #e0dfd9);
  margin-top:1rem;
}
[data-theme="dark"] .rita-panel-footer {
  border-top-color:var(--color-border);
}
.rita-panel-lang {
  display:flex; gap:0.5rem; align-items:center;
}
.rita-panel-lang-link {
  font-family:'Funnel Sans', system-ui, sans-serif;
  font-weight:300; font-size:0.85rem;
  letter-spacing:0.06em; text-transform:uppercase;
  text-decoration:none;
  color:var(--color-text-secondary, #8a8a82);
  padding:0.5rem;
  transition:color 0.35s var(--rita-ease);
}
.rita-panel-lang-link:hover {
  color:var(--color-text, #1a1a1a);
}
.rita-panel-lang-link.is-active {
  color:var(--hover);
  font-weight:600;
}
[data-theme="dark"] .rita-panel-lang-link {
  color:var(--color-text-secondary);
}
[data-theme="dark"] .rita-panel-lang-link:hover {
  color:var(--color-text);
}
[data-theme="dark"] .rita-panel-lang-link.is-active {
  color:var(--hover);
}

/* ── Modal content card (for registration, calendar, etc.) ── */
.rita-panel-card {
  background:var(--color-bg, #fafaf8);
  border:1px solid var(--color-border, #e0dfd9);
  border-radius:16px;
  width:100%; max-width:42rem;
  padding:2.5rem 3rem;
  position:relative;
  box-shadow:0 8px 40px rgba(0,0,0,0.08), 0 2px 8px rgba(0,0,0,0.04);
  overflow-y:auto; max-height:90vh;
}
[data-theme="dark"] .rita-panel-card {
  background:var(--color-surface);
  border-color:var(--color-border);
  box-shadow:0 8px 40px rgba(0,0,0,0.3), 0 2px 8px rgba(0,0,0,0.15);
}
/* Modal title + sub dark mode */
[data-theme="dark"] .rita-modal-title { color:var(--color-text); }
[data-theme="dark"] .rita-modal-sub { color:var(--color-text-secondary); }
[data-theme="dark"] .rita-form-label { color:var(--color-text-secondary); }
[data-theme="dark"] .rita-form-input {
  border-color:var(--color-border);
  color:var(--color-text);
  background:transparent;
}
[data-theme="dark"] .rita-form-input:focus { border-color:var(--hover); }
[data-theme="dark"] .rita-form-input::placeholder { color:var(--color-text-secondary); }
@media (max-width:600px) {
  .rita-panel-card { padding:1.5rem; border-radius:12px; }
}

/* ── Wide panel variant (for registration modal) ── */
.rita-panel--wide .rita-panel-body {
  width:min(480px, 92vw);
}

/* ── Panel content entrance animation (staggered slide-up) ── */
.rita-panel--right .rita-modal-title,
.rita-panel--right .rita-modal-sub,
.rita-panel--right .rita-check-label,
.rita-panel--right .rita-price-tally,
.rita-panel--right .rita-form-row,
.rita-panel--right .rita-form-group,
.rita-panel--right .rita-btn-primary,
.rita-panel--right .rita-modal-note {
  opacity:0; transform:translateY(10px);
  transition:opacity 0.3s var(--rita-ease), transform 0.3s var(--rita-ease),
    padding-left 0.3s var(--rita-ease);
}
.rita-panel--right.is-open .rita-modal-title    { opacity:1; transform:translateY(0); transition-delay:0.08s; }
.rita-panel--right.is-open .rita-modal-sub      { opacity:1; transform:translateY(0); transition-delay:0.14s; }
.rita-panel--right.is-open .rita-check-label:nth-child(1) { opacity:1; transform:translateY(0); transition-delay:0.18s; }
.rita-panel--right.is-open .rita-check-label:nth-child(2) { opacity:1; transform:translateY(0); transition-delay:0.22s; }
.rita-panel--right.is-open .rita-check-label:nth-child(3) { opacity:1; transform:translateY(0); transition-delay:0.26s; }
.rita-panel--right.is-open .rita-check-label:nth-child(4) { opacity:1; transform:translateY(0); transition-delay:0.30s; }
.rita-panel--right.is-open .rita-check-label:nth-child(5) { opacity:1; transform:translateY(0); transition-delay:0.34s; }
.rita-panel--right.is-open .rita-check-label:nth-child(6) { opacity:1; transform:translateY(0); transition-delay:0.38s; }
.rita-panel--right.is-open .rita-price-tally    { opacity:1; transform:translateY(0); transition-delay:0.40s; }
.rita-panel--right.is-open .rita-form-row       { opacity:1; transform:translateY(0); transition-delay:0.44s; }
.rita-panel--right.is-open .rita-form-group      { opacity:1; transform:translateY(0); transition-delay:0.48s; }
.rita-panel--right.is-open .rita-btn-primary     { opacity:1; transform:translateY(0); transition-delay:0.52s; }
.rita-panel--right.is-open .rita-modal-note      { opacity:1; transform:translateY(0); transition-delay:0.56s; }

/* ── Modal title — stroke heading matching course names ── */
.rita-modal-title {
  font-family:'Funnel Sans', system-ui, sans-serif;
  font-weight:700;
  font-size:clamp(1.8rem, 4vw, 2.8rem);
  letter-spacing:-0.02em; line-height:1.1;
  text-transform:uppercase;
  color:transparent;
  -webkit-text-stroke:1px var(--color-text, #1a1a1a);
  margin:0 0 0.75rem;
}
[data-theme="dark"] .rita-modal-title {
  -webkit-text-stroke-color:var(--color-text);
}
.rita-modal-sub {
  font-size:0.85rem; color:var(--color-text-secondary, #6b6b6b);
  margin-bottom:2rem; max-width:28rem; line-height:1.5;
}

/* ── Course checkboxes — course-row inspired ── */
.rita-course-checks {
  display:flex; flex-direction:column; gap:0;
}
.rita-check-label {
  display:flex; align-items:center; gap:0.75rem;
  padding:0.6rem 0;
  border-bottom:1px solid var(--color-border, #e0dfd9);
  cursor:pointer;
}
/* Checkbox — styled by ritacheckboxmodal which creates div.rita-check-box */
.rita-check-box {
  width:18px; height:18px; border-radius:4px;
  border:1.5px solid var(--color-border, #e0dfd9);
  display:flex; align-items:center; justify-content:center;
  transition:border-color 0.3s var(--rita-ease), background 0.3s var(--rita-ease);
  flex-shrink:0;
}
.rita-check-box.is-checked {
  border-color:var(--hover); background:var(--hover);
}
.rita-check-icon { color:#fff; width:12px; height:12px; }
.rita-check-name {
  font-family:'Funnel Sans', system-ui, sans-serif;
  font-weight:700;
  font-size:clamp(0.85rem, 2vw, 1rem);
  letter-spacing:-0.01em; text-transform:uppercase;
  color:transparent;
  -webkit-text-stroke:1px var(--color-text, #1a1a1a);
  flex:1;
  transition:color 0.15s var(--rita-ease), -webkit-text-stroke-color 0.15s var(--rita-ease);
}
.rita-check-label:hover .rita-check-name {
  color:var(--hover); -webkit-text-stroke-color:var(--hover);
}
.rita-check-box.is-checked ~ .rita-check-name {
  color:var(--hover); -webkit-text-stroke-color:var(--hover);
}
[data-theme="dark"] .rita-check-name {
  -webkit-text-stroke-color:var(--color-text);
}
[data-theme="dark"] .rita-check-box.is-checked ~ .rita-check-name {
  color:var(--hover); -webkit-text-stroke-color:var(--hover);
}
.rita-check-price {
  font-size:0.75rem; color:var(--color-text-secondary, #6b6b6b);
  letter-spacing:0.04em;
}

/* ── Price tally ── */
.rita-price-tally {
  display:flex; justify-content:space-between; align-items:center;
  padding:0.75rem 0; margin-top:0.25rem;
  border-top:2px solid var(--hover, #7b5ea7);
}
.rita-price-tally-label {
  font-size:0.7rem; letter-spacing:0.06em; text-transform:uppercase;
  color:var(--color-text-secondary, #6b6b6b);
}
.rita-price-tally-total {
  font-size:1.1rem; font-weight:700; color:var(--hover, #7b5ea7);
  letter-spacing:-0.01em;
}

/* ── Confirmation note ── */
.rita-modal-note {
  font-size:0.7rem; color:var(--color-text-secondary, #6b6b6b);
  line-height:1.5; margin-top:0.75rem;
  padding-top:0.75rem;
  border-top:1px solid var(--color-border, #e0dfd9);
}

/* ── Dusk toggle (in-nav) ── */
.rita-dusk-toggle {
  position:relative;
  width:30px; height:30px; border-radius:50%;
  border:1.5px solid rgba(26,26,26,0.2);
  background:transparent; color:rgba(26,26,26,0.6);
  cursor:pointer; display:flex; align-items:center; justify-content:center;
  font-size:0.85rem;
  transition:transform 0.4s var(--rita-ease-spring), border-color 0.4s var(--rita-ease),
    color 0.4s var(--rita-ease), background-color 0.4s var(--rita-ease);
  margin-left:0.25rem;
}
[data-theme="dark"] .rita-dusk-toggle {
  border-color:rgba(176,143,212,0.35);
  color:#b08fd4;
}
.rita-dusk-toggle:hover {
  transform:scale(1.1) rotate(15deg);
  border-color:var(--hover);
  color:var(--hover);
  background:rgba(123,94,167,0.06);
}
[data-theme="dark"] .rita-dusk-toggle:hover {
  background:rgba(176,143,212,0.1);
}
[data-theme="light"] .rita-dusk-toggle::after { content:"\263D"; }
[data-theme="dark"] .rita-dusk-toggle::after { content:"\2600"; }

/* ── Escape prompt (draw section) ── */
.rita-esc-card {
  max-width:22rem; padding:2rem 2rem 1.5rem; text-align:center;
}
.rita-esc-options {
  display:flex; flex-direction:column; gap:0;
  margin-top:0.5rem;
}
.rita-esc-btn {
  display:flex; align-items:center; gap:1rem;
  width:100%; padding:1rem 1.2rem;
  background:none; border:none;
  border-bottom:1px solid var(--color-border, #e0dfd9);
  cursor:pointer; text-align:left;
  transition:background 0.25s cubic-bezier(.25,.1,.25,1);
  font-family:'Funnel Sans', system-ui, sans-serif;
}
.rita-esc-btn:last-child { border-bottom:none; }
.rita-esc-btn:hover { background:var(--cvs-fg-faint); }
.rita-esc-icon {
  font-size:1.4rem; width:2rem; text-align:center;
  color:var(--cvs-fg-dim);
  transition:color 0.3s;
}
.rita-esc-btn:hover .rita-esc-icon { color:var(--hover); }
.rita-esc-label {
  font-weight:600; font-size:0.85rem; letter-spacing:0.02em;
  color:var(--cvs-fg, #1a1a1a);
}
.rita-esc-hint {
  font-weight:300; font-size:0.7rem; letter-spacing:0.02em;
  color:var(--cvs-fg-dim);
  margin-left:auto;
}
[data-theme="dark"] .rita-esc-btn { border-bottom-color:var(--color-border); }
[data-theme="dark"] .rita-esc-label { color:var(--color-text); }
[data-theme="dark"] .rita-esc-hint { color:var(--color-text-secondary); }

/* ── Draw anchor FAB (scroll-to button) ── */
.rita-draw-fab {
  position:fixed; bottom:24px; right:24px; z-index:9990;
  width:48px; height:48px; border-radius:50%;
  background:#1a1a1a; color:#fff; border:none;
  cursor:pointer; display:flex; align-items:center; justify-content:center;
  box-shadow:0 2px 12px rgba(0,0,0,0.15);
  transition:all 0.3s cubic-bezier(0.2,0.8,0.2,1);
  text-decoration:none;
}
.rita-draw-fab:hover { transform:scale(1.1); }
.rita-draw-fab svg { width:20px; height:20px; }

/* ── Canvas hints card ── */
.rita-draw-hints {
  position:fixed; bottom:80px; right:24px; z-index:9991;
  background:var(--color-bg, #fafaf8);
  border:1px solid var(--color-border, #e0dfd9);
  border-radius:12px;
  padding:0.8rem 1rem;
  font-family:'Funnel Sans', system-ui, sans-serif;
  box-shadow:0 4px 20px rgba(0,0,0,0.08);
  opacity:0; transform:translateY(6px) scale(0.96);
  transition:opacity 0.3s cubic-bezier(.2,.8,.2,1), transform 0.3s cubic-bezier(.2,.8,.2,1);
  pointer-events:none;
  width:200px;
}
.rita-draw-hints.is-visible {
  opacity:1; transform:translateY(0) scale(1);
  pointer-events:auto;
}
.rita-draw-hints__title {
  font-size:0.6rem; font-weight:700;
  letter-spacing:0.1em; text-transform:uppercase;
  color:var(--hover, #7b5ea7);
  margin-bottom:0.5rem;
}
.rita-draw-hints__row {
  display:flex; align-items:center; gap:0.5rem;
  padding:0.25rem 0;
  font-size:0.7rem; color:var(--color-text-secondary, #8a857e);
  line-height:1.3;
}
.rita-draw-hints__key {
  font-size:0.6rem; font-weight:600;
  letter-spacing:0.03em;
  color:var(--color-text, #1a1816);
  background:var(--color-border, #e0dfd9);
  border-radius:4px;
  padding:0.15rem 0.4rem;
  white-space:nowrap;
  flex-shrink:0;
}
[data-theme="dark"] .rita-draw-hints {
  background:var(--color-bg); border-color:var(--color-border);
  box-shadow:0 4px 20px rgba(0,0,0,0.25);
}
[data-theme="dark"] .rita-draw-hints__key {
  background:rgba(176,143,212,0.15); color:var(--color-text);
}

/* ── Pinch-to-resize indicator ── */
.rita-pinch-ind {
  position:fixed; top:50%; left:50%;
  transform:translate(-50%,-50%);
  z-index:9996;
  background:rgba(26,24,22,0.85);
  color:#fff; border-radius:100px;
  padding:0.45rem 1.1rem;
  font-family:'Funnel Sans', system-ui, sans-serif;
  font-size:0.7rem; font-weight:600;
  letter-spacing:0.04em;
  opacity:0; transition:opacity 0.25s;
  pointer-events:none;
}
.rita-pinch-ind.on { opacity:1; }
[data-theme="dark"] .rita-pinch-ind {
  background:rgba(196,160,212,0.9);
  color:#1a1816;
}

/* ── Small screen: toolbar behind FAB toggle ── */
@media (max-width:767px) {
  .tb-fab.in-draw { display:flex; }
  .rita-draw-fab.in-draw { display:none; }
  .tb {
    left:0.8rem; right:0.8rem; bottom:0;
    transform:translateY(100%);
    transform-origin:center bottom;
    border-radius:16px 16px 0 0;
    flex-direction:row; flex-wrap:wrap;
    justify-content:center; align-items:center;
    padding:0.6rem 0.6rem;
    padding-bottom:max(0.6rem, env(safe-area-inset-bottom));
    gap:0.25rem;
    opacity:0; pointer-events:none;
    background:var(--cvs-bg);
    border:1px solid var(--cvs-fg-ghost);
    border-bottom:none;
    box-shadow:0 -2px 20px rgba(0,0,0,0.08);
    transition:transform 0.35s cubic-bezier(.25,1,.5,1),
      opacity 0.3s, background var(--cvs-s), border-color var(--cvs-s);
  }
  .tb.on { opacity:0; pointer-events:none; }
  .tb.touch-open {
    opacity:1; pointer-events:auto;
    transform:translateY(0);
  }
  .tb.lifted { transform:translateY(0); bottom:0; }
  .tb__d { width:1px; height:16px; margin:0 0.15rem; }
  .tb__sw { width:22px; height:22px; }
  .tb__br { width:30px; height:30px; }
  .tb__dot { display:none; }
  .tb__wet { font-size:0.55rem; padding:0.3rem 0.5rem; }
  .tb__done { font-size:0.55rem; padding:0.3rem 0.6rem; }
  .tb__clr { font-size:0.55rem; }
  .draw-foot__c { display:none; }
  /* FAB transition for repositioning via JS */
  .tb-fab.in-draw { transition:bottom 0.35s cubic-bezier(.25,1,.5,1), background var(--cvs-s), border-color var(--cvs-s), transform 0.3s; }
}

/* ── Footer fade when draw section is active ── */
.rita-footer.draw-active {
  opacity:0.08;
  transition:opacity 0.6s ease;
}
.rita-footer.draw-active:hover {
  opacity:0.6;
  transition:opacity 0.3s ease;
}

@media (max-width:768px) {
  .edge-guide--l { left:12%; }
  .edge-guide--r { right:12%; }
}

/* ═══════════════════════════════════════════════════ */
/* ═══ CALENDAR + LOCATION PANELS                    */
/* ═══════════════════════════════════════════════════ */

/* ── Wider panel for calendar (scrollable content) ── */
.rita-panel--cal .rita-panel-body {
  width:min(680px, 100vw);
  padding:2rem 2rem 3rem;
}
@media(max-width:500px){
  .rita-panel--cal .rita-panel-body { padding:1.5rem 1.2rem 3rem; }
}

/* ── Panel content entrance (calendar + location) ── */
.rita-panel--right .rita-cal-title,
.rita-panel--right .rita-cal-sub,
.rita-panel--right .rita-cal-nav,
.rita-panel--right .rita-cal-grid,
.rita-panel--right .rita-cal-legend,
.rita-panel--right .rita-cal-divider,
.rita-panel--right .rita-cal-list-title,
.rita-panel--right .rita-cal-month-section,
.rita-panel--right .rita-cal-row,
.rita-panel--right .rita-cal-footer,
.rita-panel--right .rita-loc-title,
.rita-panel--right .rita-loc-address,
.rita-panel--right .rita-loc-detail,
.rita-panel--right .rita-loc-map,
.rita-panel--right .rita-loc-directions,
.rita-panel--right .rita-imp-entry,
.rita-panel--right .rita-faq-entry {
  opacity:0; transform:translateY(10px);
  transition:opacity 0.3s var(--rita-ease), transform 0.3s var(--rita-ease);
}

/* Calendar entrance stagger */
.rita-panel--right.is-open .rita-cal-title       { opacity:1; transform:translateY(0); transition-delay:0.08s; }
.rita-panel--right.is-open .rita-cal-sub         { opacity:1; transform:translateY(0); transition-delay:0.14s; }
.rita-panel--right.is-open .rita-cal-nav         { opacity:1; transform:translateY(0); transition-delay:0.18s; }
.rita-panel--right.is-open .rita-cal-grid        { opacity:1; transform:translateY(0); transition-delay:0.22s; }
.rita-panel--right.is-open .rita-cal-legend      { opacity:1; transform:translateY(0); transition-delay:0.50s; }
.rita-panel--right.is-open .rita-cal-divider     { opacity:1; transform:translateY(0); transition-delay:0.54s; }
.rita-panel--right.is-open .rita-cal-list-title  { opacity:1; transform:translateY(0); transition-delay:0.58s; }
.rita-panel--right.is-open .rita-cal-month-section { opacity:1; transform:translateY(0); }
.rita-panel--right.is-open .rita-cal-month-section:nth-of-type(1) { transition-delay:0.62s; }
.rita-panel--right.is-open .rita-cal-month-section:nth-of-type(2) { transition-delay:0.80s; }
.rita-panel--right.is-open .rita-cal-month-section:nth-of-type(3) { transition-delay:0.98s; }
.rita-panel--right.is-open .rita-cal-row         { opacity:1; transform:translateY(0); }
.rita-panel--right.is-open .rita-cal-footer      { opacity:1; transform:translateY(0); transition-delay:1.10s; }

/* Location entrance stagger */
.rita-panel--right.is-open .rita-loc-title      { opacity:1; transform:translateY(0); transition-delay:0.08s; }
.rita-panel--right.is-open .rita-loc-address    { opacity:1; transform:translateY(0); transition-delay:0.18s; }
.rita-panel--right.is-open .rita-loc-address + .rita-loc-detail { opacity:1; transform:translateY(0); transition-delay:0.26s; }
.rita-panel--right.is-open .rita-loc-address + .rita-loc-detail + .rita-loc-detail { opacity:1; transform:translateY(0); transition-delay:0.32s; }
.rita-panel--right.is-open .rita-loc-map        { opacity:1; transform:translateY(0); transition-delay:0.38s; }
.rita-panel--right.is-open .rita-loc-directions { opacity:1; transform:translateY(0); transition-delay:0.52s; }

/* Impressum + FAQ entrance stagger */
.rita-panel--right.is-open .rita-imp-entry:nth-child(1) { opacity:1; transform:translateY(0); transition-delay:0.08s; }
.rita-panel--right.is-open .rita-imp-entry:nth-child(2) { opacity:1; transform:translateY(0); transition-delay:0.14s; }
.rita-panel--right.is-open .rita-imp-entry:nth-child(3) { opacity:1; transform:translateY(0); transition-delay:0.20s; }
.rita-panel--right.is-open .rita-imp-entry:nth-child(4) { opacity:1; transform:translateY(0); transition-delay:0.26s; }
.rita-panel--right.is-open .rita-imp-entry:nth-child(5) { opacity:1; transform:translateY(0); transition-delay:0.32s; }
.rita-panel--right.is-open .rita-imp-entry:nth-child(6) { opacity:1; transform:translateY(0); transition-delay:0.38s; }
.rita-panel--right.is-open .rita-imp-entry:nth-child(7) { opacity:1; transform:translateY(0); transition-delay:0.44s; }
.rita-panel--right.is-open .rita-imp-entry:nth-child(8) { opacity:1; transform:translateY(0); transition-delay:0.50s; }
.rita-panel--right.is-open .rita-imp-entry:nth-child(9) { opacity:1; transform:translateY(0); transition-delay:0.56s; }
.rita-panel--right.is-open .rita-faq-entry:nth-child(1) { opacity:1; transform:translateY(0); transition-delay:0.08s; }
.rita-panel--right.is-open .rita-faq-entry:nth-child(2) { opacity:1; transform:translateY(0); transition-delay:0.12s; }
.rita-panel--right.is-open .rita-faq-entry:nth-child(3) { opacity:1; transform:translateY(0); transition-delay:0.16s; }
.rita-panel--right.is-open .rita-faq-entry:nth-child(4) { opacity:1; transform:translateY(0); transition-delay:0.20s; }
.rita-panel--right.is-open .rita-faq-entry:nth-child(5) { opacity:1; transform:translateY(0); transition-delay:0.24s; }
.rita-panel--right.is-open .rita-faq-entry:nth-child(6) { opacity:1; transform:translateY(0); transition-delay:0.28s; }
.rita-panel--right.is-open .rita-faq-entry:nth-child(7) { opacity:1; transform:translateY(0); transition-delay:0.32s; }
.rita-panel--right.is-open .rita-faq-entry:nth-child(8) { opacity:1; transform:translateY(0); transition-delay:0.36s; }
.rita-panel--right.is-open .rita-faq-entry:nth-child(9) { opacity:1; transform:translateY(0); transition-delay:0.40s; }

/* ── Impressum ── */
.rita-imp-section { margin-bottom:1.5rem; }
.rita-imp-section-title {
  font-size:0.7rem; font-weight:600;
  letter-spacing:0.06em; text-transform:uppercase;
  color:var(--color-text-secondary);
  margin-bottom:0.5rem;
}
.rita-imp-text {
  font-size:0.85rem; line-height:1.7;
  color:var(--color-text);
}
.rita-imp-text strong {
  font-weight:600; display:block; margin-bottom:0.15rem;
}
.rita-imp-text a {
  color:var(--color-text); text-decoration:none;
  border-bottom:1px solid var(--color-border);
  transition:color 0.2s var(--rita-ease), border-color 0.2s var(--rita-ease);
}
.rita-imp-text a:hover {
  color:var(--hover); border-color:var(--hover);
}
.rita-imp-divider {
  border:none; border-top:1px solid var(--color-border);
  margin:1.5rem 0;
}

/* ── FAQ ── */
.rita-faq-list { margin-top:0.5rem; }
.rita-faq-item {
  border-bottom:1px solid var(--color-border);
}
.rita-faq-item:first-child {
  border-top:1px solid var(--color-border);
}
.rita-faq-q {
  display:flex; justify-content:space-between; align-items:center;
  width:100%; padding:1rem 0;
  font-family:'Funnel Sans', system-ui, sans-serif;
  font-size:0.9rem; font-weight:500; line-height:1.4;
  color:var(--color-text);
  background:none; border:none; cursor:pointer;
  text-align:left;
  transition:color 0.2s var(--rita-ease);
}
.rita-faq-q:hover { color:var(--hover); }
.rita-faq-chevron {
  flex-shrink:0; margin-left:1rem;
  color:var(--color-text-secondary);
  transition:transform 0.4s cubic-bezier(.25,.1,.25,1), color 0.2s;
}
.rita-faq-item.is-open .rita-faq-chevron {
  transform:rotate(180deg); color:var(--hover);
}
.rita-faq-a {
  max-height:0; overflow:hidden;
  transition:max-height 0.4s cubic-bezier(.25,.1,.25,1), padding 0.4s cubic-bezier(.25,.1,.25,1);
}
.rita-faq-item.is-open .rita-faq-a {
  max-height:300px; padding-bottom:1rem;
}
.rita-faq-a-inner {
  font-size:0.8rem; line-height:1.7;
  color:var(--color-text-secondary);
}

/* ── Calendar grid ── */
.rita-cal-title {
  font-family:'Funnel Sans', system-ui, sans-serif;
  font-weight:700; font-size:clamp(1.6rem,4vw,2.2rem);
  letter-spacing:-0.02em; line-height:1.1;
  text-transform:uppercase;
  color:transparent; -webkit-text-stroke:1px var(--color-text, #1a1a1a);
  margin-bottom:0.2rem;
}
[data-theme="dark"] .rita-cal-title { -webkit-text-stroke-color:var(--color-text); }
.rita-cal-sub {
  font-size:0.8rem; color:var(--color-text-secondary, #6b6b6b);
  margin-bottom:1.5rem;
}
.rita-cal-nav {
  display:flex; align-items:center; gap:1rem;
  margin-bottom:1.5rem;
}
.rita-cal-arrow {
  width:28px; height:28px; border-radius:50%;
  border:1px solid var(--color-border, #e0dfd9); background:none;
  color:var(--color-text); font-size:0.8rem; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  transition:border-color 0.15s var(--rita-ease), color 0.15s var(--rita-ease);
  font-family:inherit;
}
.rita-cal-arrow:hover { border-color:var(--hover); color:var(--hover); }
.rita-cal-month-label {
  font-weight:700; font-size:1rem;
  text-transform:uppercase; letter-spacing:0.04em;
}
.rita-cal-grid {
  display:grid; grid-template-columns:repeat(7,1fr); gap:0;
}
.rita-cal-day-header {
  font-size:0.6rem; letter-spacing:0.1em; text-transform:uppercase;
  color:var(--color-text-secondary); text-align:center;
  padding:0.6rem 0.25rem; font-weight:600;
}
.rita-cal-cell {
  aspect-ratio:1/1; padding:0.35rem;
  position:relative;
  border-top:1px solid var(--color-border, #e0dfd9);
  transition:background-color 0.2s var(--rita-ease);
}
.rita-cal-cell:hover:not(.empty) { background:var(--color-surface, #f0efeb); }
.rita-cal-cell.empty { opacity:0.15; }
.rita-cal-cell-date {
  font-size:0.6rem; color:var(--color-text-secondary);
  margin-bottom:0.15rem; font-variant-numeric:tabular-nums;
}
.rita-cal-slot {
  font-size:0.5rem; letter-spacing:0.04em; text-transform:uppercase;
  padding:0.25rem 0.3rem; border-radius:3px;
  color:#fff; line-height:1.25; cursor:pointer;
  transition:opacity 0.15s var(--rita-ease), transform 0.15s var(--rita-ease);
}
.rita-cal-slot:hover { opacity:0.85; transform:scale(1.04); }
.rita-cal-slot.drawing   { background:var(--drawing, #4a4a4a); }
.rita-cal-slot.painting  { background:var(--painting, #7b59a2); }
.rita-cal-slot.workshop  { background:var(--workshop, #3a8c6e); }
.rita-cal-slot.mentoring { background:var(--mentoring, #a08878); }
:root {
  --drawing:#4a4a4a; --painting:#7b59a2;
  --workshop:#3a8c6e; --mentoring:#a08878;
}
[data-theme="dark"] {
  --drawing:#9a9a9a; --painting:#b08fd4;
  --workshop:#5ab893; --mentoring:#c4a882;
}
.rita-cal-legend {
  display:flex; gap:1.2rem; margin-top:1.2rem; flex-wrap:wrap;
}
.rita-cal-legend-item {
  display:flex; align-items:center; gap:0.35rem;
  font-size:0.6rem; letter-spacing:0.06em; text-transform:uppercase;
  color:var(--color-text-secondary);
}
.rita-cal-legend-dot { width:7px; height:7px; border-radius:2px; }
.rita-cal-legend-dot.drawing   { background:var(--drawing); }
.rita-cal-legend-dot.painting  { background:var(--painting); }
.rita-cal-legend-dot.workshop  { background:var(--workshop); }
.rita-cal-legend-dot.mentoring { background:var(--mentoring); }

/* ── Calendar list ── */
.rita-cal-divider {
  margin:2.5rem 0 1.5rem; border:none;
  border-top:1px solid var(--color-border, #e0dfd9);
}
.rita-cal-list-title {
  font-family:'Funnel Sans', system-ui, sans-serif;
  font-weight:700; font-size:clamp(1rem,2.5vw,1.3rem);
  letter-spacing:-0.02em; line-height:1.1; text-transform:uppercase;
  color:transparent; -webkit-text-stroke:1px var(--color-text);
  margin-bottom:0.2rem;
}
[data-theme="dark"] .rita-cal-list-title { -webkit-text-stroke-color:var(--color-text); }
.rita-cal-month-section {
  display:flex; align-items:center; gap:0.8rem;
  padding:0.8rem 0 0.4rem; margin-top:1.2rem;
}
.rita-cal-month-name {
  font-weight:700; font-size:clamp(0.85rem,2vw,1rem);
  text-transform:uppercase; letter-spacing:0.06em;
  color:var(--hover);
}
.rita-cal-month-line {
  flex:1; height:1px;
  background:linear-gradient(90deg,var(--hover) 0%,var(--color-border) 100%);
}
.rita-cal-month-year {
  font-size:0.65rem; letter-spacing:0.08em;
  text-transform:uppercase; color:var(--color-text-secondary);
}
.rita-cal-row {
  display:grid; grid-template-columns:4.5rem 1fr auto; gap:0.8rem;
  align-items:center; padding:0.65rem 0;
  border-bottom:1px solid var(--color-border, #e0dfd9);
  transition:border-color 0.15s var(--rita-ease);
}
.rita-cal-row:last-child { border-bottom:none; }
.rita-cal-row:hover { border-bottom-color:var(--hover); }
.rita-cal-day {
  font-weight:700; font-size:clamp(0.85rem,2vw,1rem);
  text-transform:uppercase; letter-spacing:-0.01em;
  color:transparent; -webkit-text-stroke:1px var(--color-text);
}
[data-theme="dark"] .rita-cal-day { -webkit-text-stroke-color:var(--color-text); }
.rita-cal-courses { display:flex; flex-direction:column; gap:0.25rem; }
.rita-cal-course { display:flex; align-items:baseline; gap:0.5rem; }
.rita-cal-course-name {
  font-weight:700; font-size:0.8rem; text-transform:uppercase;
  letter-spacing:-0.01em;
  color:transparent; -webkit-text-stroke:1px var(--color-text);
  transition:color 0.15s var(--rita-ease), -webkit-text-stroke-color 0.15s var(--rita-ease);
}
[data-theme="dark"] .rita-cal-course-name { -webkit-text-stroke-color:var(--color-text); }
.rita-cal-row:hover .rita-cal-course-name {
  color:var(--hover); -webkit-text-stroke-color:var(--hover);
}
.rita-cal-time { font-size:0.7rem; color:var(--color-text-secondary); }
.rita-cal-cat {
  display:inline-block; width:6px; height:6px; border-radius:50%;
  flex-shrink:0; position:relative; top:-1px;
}
.rita-cal-cat.drawing   { background:var(--drawing); }
.rita-cal-cat.painting  { background:var(--painting); }
.rita-cal-cat.workshop  { background:var(--workshop); }
.rita-cal-cat.mentoring { background:var(--mentoring); }
.rita-cal-price {
  font-size:0.7rem; color:var(--color-text-secondary);
  letter-spacing:0.04em; white-space:nowrap;
}
.rita-cal-footer {
  font-size:0.65rem; color:var(--color-text-secondary);
  margin-top:1.2rem; padding-top:0.8rem;
  border-top:1px solid var(--color-border, #e0dfd9);
  line-height:1.5;
}

/* ── Location panel ── */
.rita-loc-title {
  font-family:'Funnel Sans', system-ui, sans-serif;
  font-weight:700; font-size:clamp(1.6rem,4vw,2.2rem);
  letter-spacing:-0.02em; line-height:1.1; text-transform:uppercase;
  color:transparent; -webkit-text-stroke:1px var(--color-text);
  margin-bottom:1.5rem;
}
[data-theme="dark"] .rita-loc-title { -webkit-text-stroke-color:var(--color-text); }
.rita-loc-address {
  font-size:0.9rem; line-height:1.6; margin-bottom:1.5rem;
}
.rita-loc-address strong {
  font-weight:700; font-size:1rem; display:block; margin-bottom:0.25rem;
}
.rita-loc-detail {
  display:flex; align-items:center; gap:0.5rem;
  font-size:0.8rem; color:var(--color-text-secondary);
  margin-bottom:0.4rem;
}
.rita-loc-detail-icon { font-size:1rem; width:1.2rem; text-align:center; }
.rita-loc-map {
  width:100%; height:340px; border-radius:8px;
  border:1px solid var(--color-border, #e0dfd9);
  margin:1.5rem 0; overflow:hidden; position:relative;
}
.rita-loc-directions {
  display:inline-flex; align-items:center; gap:0.5rem;
  font-size:0.8rem; letter-spacing:0.04em; text-transform:uppercase;
  color:var(--color-text);
  border:1px solid var(--color-border, #e0dfd9); border-radius:40px;
  padding:0.6rem 1.2rem;
  transition:border-color 0.15s var(--rita-ease), color 0.15s var(--rita-ease);
}
.rita-loc-directions:hover { border-color:var(--hover); color:var(--hover); }

/* ── Leaflet map overrides ── */
.rita-map-pin { background:none!important; border:none!important; }
.rita-loc-map .leaflet-control-zoom { display:none!important; }
.rita-loc-map .leaflet-control-attribution {
  font-size:0.45rem!important; opacity:0.35;
  background:none!important;
  color:var(--color-text-secondary)!important;
}
.rita-loc-map .leaflet-control-attribution a { color:var(--color-text-secondary)!important; }
.rita-loc-map .leaflet-popup-content-wrapper {
  border-radius:8px; font-family:'Funnel Sans', system-ui, sans-serif;
  font-size:0.8rem; box-shadow:0 4px 20px rgba(0,0,0,0.12);
}
.rita-loc-map .leaflet-popup-tip { display:none; }
/* Smooth tile rendering */
.rita-loc-map .leaflet-tile {
  image-rendering:auto;
}
.rita-loc-map .leaflet-fade-anim .leaflet-tile {
  will-change:opacity;
}
.rita-loc-map .leaflet-zoom-anim .leaflet-zoom-animated {
  will-change:transform;
  transition:transform 0.25s cubic-bezier(0,0,0.25,1);
}
