/* Edition 02: a listening-room study, with the existing visual identity. */
.ritual { position:relative; background:#e6e7dc; border-bottom:1px solid #bfc4b5; }
.ritual-stage { padding-top:44px; padding-bottom:30px; }
.ritual .section-index { margin-bottom:24px; }
.ritual-layout { display:grid; grid-template-columns:.8fr 1.35fr; gap:4%; align-items:center; min-height:520px; }
.ritual-copy .eyebrow { font-size:9px; letter-spacing:1px; }
.ritual-copy h2 { font-size:clamp(35px,4.2vw,67px); letter-spacing:-2.5px; line-height:1.06; margin:25px 0; }
.ritual-copy h2 em { font-size:1.16em; }
.ritual-copy>p:not(.eyebrow) { font-size:14px; line-height:1.9; }
.ritual-copy .text-link { margin-top:25px; }
.ritual-object { min-width:0; }
.deck-frame { position:relative; aspect-ratio:800/510; background-image:linear-gradient(#89977c14 1px,transparent 1px),linear-gradient(90deg,#89977c14 1px,transparent 1px); background-size:30px 30px; border:1px solid #a8b09d; }
.deck-svg { width:100%; height:100%; overflow:visible; }
.deck-sketch { color:#5e6c54; }
.deck-sketch use { fill:none; }

/* Geometry is shared; the outline version below uses a dedicated style clone. */
.deck-sketch * { vector-effect:non-scaling-stroke; }
.deck-sketch #deck-outline { stroke-width:1; }
.deck-finish { clip-path:inset(0 calc(100% - var(--reveal,100%)) 0 0); }
.deck-dimensions { color:#6f7e62; opacity:.6; }
.deck-annotation { position:absolute; font-size:8px; letter-spacing:1px; line-height:1.3; color:#536248; }
.deck-annotation-a { right:9%; top:12%; }
.deck-annotation-b { bottom:7%; left:8%; }
.deck-scan { position:absolute; top:0; bottom:0; left:0; width:1px; background:var(--rust); transform:translateX(var(--scan,0px)); opacity:var(--scan-visible,0); pointer-events:none; }
.ritual-control { padding-top:17px; }
.ritual-control label { display:flex; justify-content:space-between; font-size:9px; letter-spacing:1px; }
.ritual-control input { width:100%; height:28px; margin:2px 0; cursor:ew-resize; accent-color:var(--rust); background:transparent; }
.ritual-control p { color:#536248; font-size:10px; }
.ritual-foot { display:flex; justify-content:space-between; border-top:1px solid #a8b09d; padding-top:15px; margin-top:25px; font-size:8px; letter-spacing:1px; }
.ritual-foot i { font-style:normal; padding-left:14px; }
.ritual.scroll-ready { min-height:170vh; min-height:170svh; }
.ritual.scroll-ready .ritual-stage { position:sticky; top:0; min-height:100vh; min-height:100svh; display:flex; flex-direction:column; justify-content:center; }
.ritual.scroll-ready .ritual-layout { min-height:0; flex:1; max-height:650px; }
.menu-open { margin-top:24px; }
#menu-dialog { width:min(740px,calc(100% - 28px)); }
.menu-filters { display:flex; flex-wrap:wrap; gap:8px; margin-top:24px; }
.menu-filters button { min-height:44px; padding:10px 14px; border:1px solid var(--line); font-size:11px; border-radius:2px; }
.menu-filters button[aria-pressed=true] { background:var(--ink); color:var(--paper); border-color:var(--ink); }
.menu-count { font-size:10px; color:var(--muted); margin:14px 0 4px; }
.menu-recipes { list-style:none; padding:0; margin:0 0 18px; }
.menu-recipes li { display:grid; grid-template-columns:23px 1fr auto; gap:14px; padding:20px 0; border-bottom:1px solid var(--line); align-items:start; }
.menu-recipes li>span { font-size:9px; color:var(--rust); padding-top:5px; }
.menu-recipes h3 { font-size:19px; font-weight:500; letter-spacing:-.4px; }
.menu-recipes li p { font-size:12px; line-height:1.65; margin:6px 0 0; }
.menu-recipes small { font-size:8px; letter-spacing:.7px; padding-top:7px; white-space:nowrap; }
.ticket-actions { border-top:1px dashed var(--muted); border-bottom:1px dashed var(--muted); padding-block:10px; margin-bottom:24px; }
.ticket-actions .text-link { font-size:12px; }
#save-status { display:block; font-size:11px; color:var(--muted); padding-top:4px; }
.motion-paused .session-panel { animation:none; }
.page-hidden *, .page-hidden *::before, .page-hidden *::after, .ticker.offstage .ticker-track { animation-play-state:paused!important; }
.light-mode .ticker-track, .light-mode .vinyl { animation:none; }
.hero-art.offstage .vinyl { will-change:auto; }
@media (max-width:900px) and (min-width:601px) {
  .ritual-layout { grid-template-columns:.85fr 1.15fr; gap:3%; min-height:380px; }
  .ritual-copy h2 { letter-spacing:-1.5px; }
  .ritual-copy>p:not(.eyebrow) { font-size:12px; }
}
@media (max-width:600px) {
  .ritual-stage { padding-top:30px; padding-bottom:24px; }
  .ritual-layout { display:flex; flex-direction:column; gap:24px; align-items:stretch; min-height:0; }
  .ritual .section-index { font-size:7px; margin-bottom:25px; }
  .ritual .section-index span:last-child { display:none; }
  .ritual-copy .eyebrow { font-size:8px; }
  .ritual-copy h2 { font-size:42px; letter-spacing:-1.4px; margin:13px 0; }
  .ritual-copy>p:not(.eyebrow) { font-size:12px; line-height:1.7; }
  .ritual-copy>p:not(.eyebrow) br { display:none; }
  .ritual-copy .text-link { display:none; }
  .ritual-foot { font-size:6px; letter-spacing:.4px; margin-top:20px; }
  .ritual-foot span:last-child { display:none; }
  .ritual-control { padding-top:10px; }
  .deck-annotation { font-size:5px; letter-spacing:.4px; }
  .deck-frame { background-size:20px 20px; }
  .ritual.scroll-ready .ritual-stage { padding-top:20px; padding-bottom:20px; }
  .ritual.scroll-ready .ritual-layout { flex:0; }
  .menu-recipes li { grid-template-columns:18px 1fr; gap:8px; padding:16px 0; }
  .menu-recipes small { grid-column:2; padding:0; font-size:7px; }
  .menu-filters { gap:6px; }
  .menu-filters button { font-size:10px; padding:9px 11px; }
}
@media(max-height:650px) { .ritual.scroll-ready { min-height:0; } .ritual.scroll-ready .ritual-stage { position:relative; min-height:0; } }
@media(prefers-reduced-motion:reduce) { html:not(.motion-enabled) .ritual.scroll-ready { min-height:0; } html:not(.motion-enabled) .ritual.scroll-ready .ritual-stage { position:relative; min-height:0; } }

/* The palette is authored; prevent automatic darkening from recoloring the artwork. */
:root { color-scheme:only light; }
.hero-object { position:absolute; inset:0; transform:perspective(950px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)); transition:transform 400ms var(--ease); }
html.motion-enabled .vinyl { animation-duration:16s; }
.motion-toggle { position:fixed; z-index:40; right:22px; bottom:18px; left:auto; min-height:44px; padding:10px 15px; background:var(--paper); color:var(--ink); border:1px solid var(--ink); box-shadow:0 4px 20px #2526211c; opacity:1; font-size:11px; }
.motion-toggle[aria-pressed=false] { background:var(--ink); color:var(--paper); }
.ritual-control-footer { display:flex; justify-content:space-between; gap:16px; align-items:center; }
.ritual-play { min-height:44px; padding:8px 0; font-size:11px; border-bottom:1px solid currentColor; white-space:nowrap; }
.motion-paused .hero-object { transform:none; transition:none; }
@media(min-width:1000px) and (max-height:850px) {
  .hero { padding-top:24px; }
  .hero-art { min-height:460px; height:calc(100svh - 220px); max-height:600px; }
  .hero h1 { font-size:min(10.12vw,18svh); margin-top:24px; }
  .hero-bottom { padding-top:20px; }
  .hero-foot { padding-block:17px; }
  .hero-art .record-wrap { width:85%; top:13%; left:22%; }
}
@media(max-width:600px) {
  .motion-toggle { bottom:12px; right:12px; font-size:10px; padding:9px 12px; }
  .ritual-control-footer { flex-wrap:wrap; gap:3px 12px; }
  .ritual-play { font-size:10px; }
}
