/* THREE TAPES | Festive snowfall + optional original sound logo (2026)
   Light-weight, non-interactive snow. Original sound is manual-play only.
   Remove these assets/tags after the seasonal campaign. */
.tt-season-snowfall{position:fixed;inset:0;z-index:21;pointer-events:none;overflow:hidden;contain:layout style;user-select:none}
.tt-season-snowflake{--left:50%;--size:3px;--fall:18s;--delay:0s;--drift:28px;--alpha:.5;position:absolute;left:var(--left);top:-6vh;width:var(--size);height:var(--size);border-radius:50%;background:#f8f5ff;opacity:0;box-shadow:0 0 10px rgba(255,255,255,.6);transform:translate3d(0,0,0);animation:tt-season-fall var(--fall) linear var(--delay) infinite;will-change:transform,opacity}
.tt-season-snowflake:nth-child(3n){background:#f0eaff;box-shadow:none}
.tt-season-snowflake:nth-child(7n){background:#e6deff}
@keyframes tt-season-fall{0%{transform:translate3d(0,-4vh,0);opacity:0}12%{opacity:var(--alpha)}84%{opacity:var(--alpha)}100%{transform:translate3d(var(--drift),115vh,0);opacity:0}}
/* Replaces the tiny, hero-only snow from the initial Christmas release. */
.tt-holiday .tt-holiday-snow{display:none!important}
.tt-jingle-control{position:fixed;bottom:22px;right:22px;z-index:90;display:inline-flex;align-items:center;gap:11px;min-height:45px;border:1px solid rgba(199,184,255,.7);border-radius:8px;background:rgba(21,14,34,.96);color:#f6ecff;padding:10px 14px;box-shadow:0 8px 30px rgba(0,0,0,.3);font:700 10px/1.2 Consolas,'Courier New',monospace;letter-spacing:.105em;cursor:pointer;transition:background .2s,border-color .2s,transform .2s,opacity .2s;-webkit-tap-highlight-color:transparent}
.tt-jingle-control:hover{background:#33244c;border-color:#dcc7ff;transform:translateY(-2px)}
.tt-jingle-control[aria-pressed="true"]{border-color:#d8c6ff;background:#33224c}
.tt-jingle-control:focus-visible{outline:2px solid #e9dfff;outline-offset:3px}
.tt-jingle-control svg{width:18px;height:18px;flex:0 0 auto;color:#d8c6ff;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.tt-jingle-control .tt-jingle-indicator{height:5px;width:5px;background:#b79bf6;border-radius:100%;box-shadow:0 0 9px #9874ff5e}
.tt-jingle-control[aria-pressed="true"] .tt-jingle-indicator{background:#c9b4ff;box-shadow:0 0 12px #ac8cff}
@media(max-width:600px){.tt-jingle-control{right:14px;bottom:14px;min-height:44px;padding:10px 12px;font-size:9px;letter-spacing:.07em;gap:9px}.tt-season-snowflake:nth-child(n+27){display:none}}
/* When the cookie preferences banner is open, keep the corner button out of its way. */
.tt-holiday:has(.tt-consent-banner) .tt-jingle-control{opacity:0;pointer-events:none}
@media(prefers-reduced-motion:reduce){.tt-season-snowfall{display:none!important}.tt-jingle-control{transition:none!important}.tt-jingle-control:hover{transform:none}}

/* Colour consistency: opt-in music control matches Three Tapes original palette. */
.tt-holiday .tt-jingle-control{background:rgba(25,16,39,.96);border-color:rgba(199,184,255,.74);color:#f5f2fa;}
.tt-holiday .tt-jingle-control:hover{background:#33224c;border-color:#c7b8ff;}
.tt-holiday .tt-jingle-control .tt-jingle-indicator{background:#c7b8ff;box-shadow:0 0 9px rgba(199,184,255,.48);}
