/* Perspective belongs to media and offers; reading and form controls stay level. */
.intro-official-logo,.brand-official-logo { display: block; object-fit: contain; height: auto; background: transparent; }
.intro-official-logo { width: clamp(220px,34vw,430px); }
.brand-official-logo { width: 64px; }
.site-intro-mark { gap: 14px; }
.site-intro.is-leaving .site-intro-mark { transform: scale(1); }
.site-intro.is-leaving .intro-official-logo { transform: perspective(700px) translateZ(280px) scale(1.35); opacity: 0; transition: transform .65s cubic-bezier(.4,0,.2,1), opacity .6s ease; }
@media(prefers-reduced-motion:reduce) { .site-intro.is-leaving .intro-official-logo { transform: none; } }
@media(max-width:620px) {
  .brand-official-logo { width: 46px; }
  .festival-art-copy { padding-top: 24px; }
}
/* Machined edges: a raised face, a solid sidewall, then a recessed press. */
.button,.type-button,.mode-button,.language-button,.menu-toggle {
  --button-edge: #383125;
  border-radius: 9px;
  border: 1px solid #ddc39855;
  background: linear-gradient(155deg,#302b22,#171610 80%);
  box-shadow: 0 5px 0 var(--button-edge),0 9px 0 #050504,0 16px 25px #0006,inset 0 1px 0 #fff3;
  transform: translateY(-2px);
  transition: transform .16s cubic-bezier(.2,.8,.2,1),box-shadow .16s ease,background .25s ease,border-color .25s ease;
  -webkit-tap-highlight-color: transparent;
}
.button-gold {
  --button-edge: #896436;
  background: linear-gradient(145deg,#f4e6c4 0%,#d8b779 45%,#be9458 100%);
  color: #251b0c;
  border-color: #fff0c699;
  text-shadow: 0 1px #fff4;
  font-weight: 700;
}
.button-ghost { color: #ebd9b9; }
.button:active,.button-gold:active,.type-button:active,.mode-button:active,.language-button:active,.menu-toggle:active,
.type-button[aria-pressed="true"],.mode-button[aria-pressed="true"],.language-button[aria-pressed="true"],.menu-toggle[aria-expanded="true"] {
  transform: translateY(4px);
  box-shadow: 0 1px 0 var(--button-edge),inset 0 3px 7px #0007,inset 0 -1px 0 #fff2;
  border-color: #c9a66a99;
}
.type-button[aria-pressed="true"],.mode-button[aria-pressed="true"],.language-button[aria-pressed="true"] {
  background: linear-gradient(145deg,#b18d54,#debd82);
  color: #21180b;
}
.button:focus-visible,.type-button:focus-visible,.mode-button:focus-visible,.language-button:focus-visible,.menu-toggle:focus-visible {
  outline: 2px solid #f0d6a0; outline-offset: 7px;
}
.button:disabled { cursor: wait; opacity: .65; transform: translateY(4px); box-shadow: inset 0 2px 5px #0005; }
.form-types { row-gap: 18px !important; }
.form-actions { padding-block: 6px 12px; }
.language-switch { gap: 7px; padding: 6px 9px 10px; background: #080807; border: 1px solid #c9a66a20; }
.language-button { border-radius: 6px; }
.menu-toggle { border-radius: 50%; }
.brief-form { background: linear-gradient(155deg,#191710,#0d0d0a); border-top-color: #e4c89666; }
@media(hover:hover) and (pointer:fine) {
  .button:hover:not(:active):not(:disabled) { transform: translateY(-4px); box-shadow: 0 7px 0 var(--button-edge),0 11px 0 #050504,0 20px 32px #0007,inset 0 1px 0 #fff5; }
}
.depth-surface {
  position: relative;
  transform: perspective(1100px) translate3d(0,var(--depth-lift,0px),0) rotateX(calc(var(--depth-x,0deg) + var(--depth-entry,0deg))) rotateY(var(--depth-y,0deg)) !important;
  transform-origin: center;
  transition: transform .65s cubic-bezier(.16,1,.3,1), box-shadow .65s ease, border-color .35s ease;
  backface-visibility: hidden;
  box-shadow: 0 26px 55px -25px #000c, 0 1px 0 #e4c89645 inset;
}
.depth-surface.is-depth-active {
  transition-duration: .16s,.4s,.35s;
  box-shadow: 0 44px 70px -24px #000, 0 0 40px #c9a66a12, 0 1px 0 #f0e2c880 inset;
  border-color: #e4c89688;
}
.depth-light {
  position: absolute; inset: 0; z-index: 6; pointer-events: none; border-radius: inherit;
  background: radial-gradient(ellipse at var(--light-x,50%) var(--light-y,30%),#f0d19a26,transparent 60%);
  opacity: .24; transition: opacity .5s ease; mix-blend-mode: screen;
}
.is-depth-active>.depth-light { opacity: 1; }
.offer-options { perspective: 1200px; gap: 24px; padding-block: 12px; }
.offer-options>a { background: linear-gradient(145deg,#242017,#100f0c 75%); border: 1px solid #c9a66a42; border-bottom: 3px solid #705d3c; }
.offer-options>a strong { font-size: 26px; }
.offer-options>a b { transition: letter-spacing .35s ease; }
.offer-options>a:hover b { letter-spacing: .025em; }
.hero-media { border: 1px solid #e4c89666; box-shadow: 18px 24px 0 -12px #19160f,18px 24px 0 -11px #c9a66a44,0 40px 90px #0008; }
.hero-media.is-depth-active { box-shadow: 22px 32px 0 -12px #19160f,22px 32px 0 -11px #c9a66a66,0 50px 100px #000a; }
.manifesto-card.depth-surface { background: linear-gradient(145deg,#18160f,#0a0a08); border-radius: 8px; border: 1px solid #c9a66a28; }
.section-heading { text-wrap: balance; }
.section-kicker::after { height: 1px; background: linear-gradient(90deg,#e4c896,transparent); }
.festival-art { box-shadow: 0 30px 100px #0006; }
.festival-art-copy h2 em { text-shadow: 0 3px 34px #d6b57520; }
@media(max-width:700px) {
  .depth-surface { transform: perspective(1200px) rotateX(var(--depth-entry,0deg)) !important; }
  .offer-options { gap: 18px; }
  .hero-media { box-shadow: 8px 12px 0 -5px #19160f,8px 12px 0 -4px #c9a66a44; }
}
body.motion-paused .depth-surface { transform: none !important; transition: none; }
body.motion-paused .depth-light { opacity: 0; }
@media(prefers-reduced-motion:reduce) {
  .depth-surface { transform: none !important; transition: none; }
  .depth-light { display: none; }
}
