/* ===== Orange Highlight gallery frames ===== */
.ltf-frame img,
.wp-block-post.category-orange-highlights .wp-block-post-featured-image img {
	box-sizing: border-box;
	background: #fbf8ef;
	padding: 12px;
	border: 10px solid #5b3a1e;
	border-image: linear-gradient(135deg, #8b5a2b 0%, #3e2412 35%, #9c6b3c 55%, #2f1b0d 100%) 1;
	box-shadow: inset 0 0 0 1px rgba(0,0,0,.10), inset 0 2px 6px rgba(0,0,0,.12), 0 14px 26px rgba(0,0,0,.32), 0 3px 6px rgba(0,0,0,.22);
	transition: transform .25s ease, box-shadow .25s ease;
}
.ltf-frame img:hover,
.wp-block-post.category-orange-highlights .wp-block-post-featured-image img:hover {
	transform: rotate(-1deg) scale(1.02);
	box-shadow: inset 0 0 0 1px rgba(0,0,0,.10), inset 0 2px 6px rgba(0,0,0,.12), 0 20px 34px rgba(0,0,0,.38), 0 4px 8px rgba(0,0,0,.25);
}
.ltf-frame { position: relative; }
.ltf-frame::before {
	content: ""; position: absolute; top: -14px; left: 50%; width: 46px; height: 14px; margin-left: -23px;
	border: 2px solid #8a8a8a; border-bottom: 0; border-radius: 46px 46px 0 0; opacity: .55;
}
.wp-block-post.category-orange-highlights .wp-block-post-featured-image { margin-bottom: 10px; }
.wp-block-post.category-orange-highlights .wp-block-post-title {
	display: table; margin: 6px auto 0; padding: 3px 10px; font-size: .78rem; letter-spacing: .04em; text-align: center;
	background: linear-gradient(180deg, #e9cf7a, #b8892c); color: #2b1d07; border-radius: 2px;
	box-shadow: 0 1px 2px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.45);
}
.wp-block-post.category-orange-highlights .wp-block-post-title a { color: #2b1d07; text-decoration: none; }

/* ===== Playlist logos ===== */
.ltf-playlist-logo img { border-radius: 22px; box-shadow: 0 6px 16px rgba(0,0,0,.25); }

/* ===== Llama button ===== */
.ltf-llama {
	display: flex; align-items: center; gap: 12px; width: 100%; max-width: 360px; box-sizing: border-box;
	padding: 12px 14px; margin: 6px 0 10px; text-decoration: none !important;
	background: linear-gradient(180deg, #2b2f3a 0%, #11131a 100%);
	border: 3px solid #ffb238; border-radius: 6px;
	box-shadow: 0 0 0 2px #11131a, 0 6px 0 #7a4a00, 0 10px 18px rgba(0,0,0,.35);
	color: #39ff6a !important; font-family: "Press Start 2P", "VT323", monospace; font-size: 10px; line-height: 1.7;
	text-shadow: 0 0 6px rgba(57,255,106,.75);
	animation: ltf-llama-glow 1.6s ease-in-out infinite;
	transition: transform .12s ease, box-shadow .12s ease;
}
.ltf-llama:hover { transform: translateY(-2px) rotate(-.6deg); color: #fff !important; }
.ltf-llama:active { transform: translateY(4px); box-shadow: 0 0 0 2px #11131a, 0 2px 0 #7a4a00, 0 4px 8px rgba(0,0,0,.35); }
.ltf-llama-emoji { font-size: 34px; line-height: 1; text-shadow: none; animation: ltf-llama-bob .9s ease-in-out infinite alternate; }
.ltf-llama-text b { color: #ffb238; text-shadow: 0 0 6px rgba(255,178,56,.8); font-weight: normal; }
.ltf-llama-eq { display: flex; gap: 2px; align-items: flex-end; height: 22px; margin-left: auto; }
.ltf-llama-eq i { width: 4px; background: #39ff6a; display: block; animation: ltf-eq .7s ease-in-out infinite alternate; }
.ltf-llama-eq i:nth-child(2) { animation-delay: .15s; } .ltf-llama-eq i:nth-child(3) { animation-delay: .3s; } .ltf-llama-eq i:nth-child(4) { animation-delay: .45s; }
@keyframes ltf-llama-glow { 0%,100% { border-color: #ffb238; } 50% { border-color: #ff5e1a; } }
@keyframes ltf-llama-bob { from { transform: translateY(0) rotate(-4deg); } to { transform: translateY(-4px) rotate(4deg); } }
@keyframes ltf-eq { from { height: 4px; } to { height: 22px; } }

/* ===== Shared arcade look ===== */
.ltf-arcade, .ltf-oracle { --ltf-g: #39ff6a; --ltf-a: #ffb238; --ltf-o: #ff7a1a; --ltf-bg: #14161d; --ltf-panel: #22252f; color: #e8e8ee; font-family: "VT323", monospace; font-size: 22px; line-height: 1.25; }
.ltf-arcade *, .ltf-oracle * { box-sizing: border-box; }
.ltf-shell { background: radial-gradient(ellipse at top, #2a2e3b, #12141a 70%); border: 3px solid #4a4f5c; border-radius: 12px; padding: 18px; box-shadow: 0 14px 30px rgba(0,0,0,.35); max-width: 860px; margin: 0 auto; }
.ltf-h { font-family: "Press Start 2P", monospace; font-size: clamp(14px, 2.6vw, 22px); color: var(--ltf-a); text-shadow: 3px 3px 0 #7a2e00; margin: 0 0 8px; letter-spacing: 1px; }
.ltf-sub { color: #b9bcc8; margin: 0 0 14px; }
.ltf-btn { display: inline-block; font-family: "Press Start 2P", monospace; font-size: 11px; line-height: 1.5; padding: 12px 14px; border: 2px solid var(--ltf-a); border-radius: 6px; background: linear-gradient(180deg, #3b3f4d, #23262f); color: #fff !important; cursor: pointer; text-decoration: none !important; box-shadow: 0 4px 0 #7a4a00; transition: transform .1s; }
.ltf-btn:hover { transform: translateY(-1px); border-color: var(--ltf-g); }
.ltf-btn:active { transform: translateY(3px); box-shadow: 0 1px 0 #7a4a00; }
.ltf-btn.ltf-go { background: linear-gradient(180deg, #ff8d33, #d9570a); color: #14161d !important; }
.ltf-btn[disabled] { opacity: .45; cursor: not-allowed; }
.ltf-row { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin: 10px 0; }
.ltf-select { font-family: "VT323", monospace; font-size: 20px; background: #0d0f14; color: var(--ltf-g); border: 2px solid #4a4f5c; border-radius: 6px; padding: 6px 8px; max-width: 100%; }
.ltf-lcd { background: #0b0f0a; border: 2px inset #555; border-radius: 6px; color: var(--ltf-g); text-shadow: 0 0 6px rgba(57,255,106,.6); padding: 8px 12px; display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.ltf-card { display: flex; gap: 14px; align-items: center; background: var(--ltf-panel); border: 2px solid #4a4f5c; border-radius: 10px; padding: 12px; margin: 10px 0; }
.ltf-card img { width: 84px; height: 84px; border-radius: 16px; flex: 0 0 84px; }
.ltf-card h4 { font-family: "Press Start 2P", monospace; font-size: 13px; color: var(--ltf-a); margin: 0 0 6px; line-height: 1.5; }
.ltf-card p { margin: 0 0 8px; font-size: 19px; color: #c9ccd6; }
.ltf-small { font-size: 18px; color: #9da1ad; }

/* ===== Name That Tune ===== */
.ltf-ntt-stage { text-align: center; padding: 14px 0; }
.ltf-ntt-eq { display: flex; justify-content: center; gap: 5px; height: 60px; align-items: flex-end; margin: 10px 0; }
.ltf-ntt-eq i { width: 10px; height: 6px; background: linear-gradient(0deg, var(--ltf-g), var(--ltf-a), #ff3b1a); display: block; border-radius: 2px; }
.ltf-ntt-eq.on i { animation: ltf-eq2 .45s ease-in-out infinite alternate; }
.ltf-ntt-eq.on i:nth-child(odd) { animation-duration: .6s; } .ltf-ntt-eq.on i:nth-child(3n) { animation-duration: .35s; }
@keyframes ltf-eq2 { from { height: 6px; } to { height: 58px; } }
.ltf-opts { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 12px; }
.ltf-opt { text-align: left; font-family: "VT323", monospace; font-size: 21px; line-height: 1.15; padding: 12px; border: 2px solid #4a4f5c; border-radius: 8px; background: #1b1e27; color: #fff; cursor: pointer; }
.ltf-opt small { display: block; color: #9da1ad; font-size: 17px; }
.ltf-opt:hover:not([disabled]) { border-color: var(--ltf-a); }
.ltf-opt.right { border-color: var(--ltf-g); background: #133a1f; }
.ltf-opt.wrong { border-color: #ff3b3b; background: #3a1313; }
.ltf-timer { height: 8px; background: #0b0f0a; border-radius: 4px; overflow: hidden; margin: 6px 0; }
.ltf-timer i { display: block; height: 100%; background: linear-gradient(90deg, var(--ltf-g), var(--ltf-a), #ff3b1a); width: 100%; transition: width .1s linear; }
.ltf-big { font-family: "Press Start 2P", monospace; font-size: clamp(18px, 4vw, 30px); color: var(--ltf-g); margin: 10px 0; }
@media (max-width: 600px) { .ltf-opts { grid-template-columns: 1fr; } }

/* ===== Fish Oracle ===== */
.ltf-tank-wrap { position: relative; border: 10px solid #3b2a1a; border-image: linear-gradient(135deg, #6b4a2a, #2a1a0c 50%, #6b4a2a) 1; border-radius: 4px; box-shadow: 0 10px 24px rgba(0,0,0,.4); background: #04293a; }
.ltf-tank-wrap canvas { display: block; width: 100%; height: auto; aspect-ratio: 16 / 8; }
.ltf-teller { display: flex; gap: 14px; align-items: flex-start; background: linear-gradient(180deg, #3a1f2b, #1d1218); border: 2px solid #8a5a2b; border-radius: 10px; padding: 14px; margin: 14px 0; }
.ltf-teller-face { font-size: 48px; line-height: 1; filter: drop-shadow(0 0 8px rgba(255,178,56,.6)); }
.ltf-teller-text { flex: 1; }
.ltf-teller-text q { quotes: none; color: #f6e7c1; display: block; margin-bottom: 10px; }
.ltf-choices { display: grid; gap: 8px; }
.ltf-choice { text-align: left; font-family: "VT323", monospace; font-size: 21px; padding: 10px 12px; border: 2px solid #8a5a2b; border-radius: 8px; background: #2a1820; color: #ffe9b8; cursor: pointer; }
.ltf-choice:hover { border-color: var(--ltf-a); background: #3a2028; }
.ltf-choice b { color: var(--ltf-a); font-weight: normal; margin-right: 6px; }
.ltf-palette { display: flex; flex-wrap: wrap; gap: 6px; }
.ltf-fishbtn { font-family: "VT323", monospace; font-size: 19px; padding: 6px 10px; border-radius: 20px; border: 2px solid #4a4f5c; background: #1b1e27; color: #fff; cursor: pointer; }
.ltf-fishbtn:hover { border-color: var(--ltf-a); }
.ltf-fishbtn i { display: inline-block; width: 12px; height: 12px; border-radius: 50%; margin-right: 6px; vertical-align: -1px; }
.ltf-legend { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 19px; color: #c9ccd6; margin-top: 8px; min-height: 24px; }
.ltf-legend span i { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 5px; }
.ltf-progress { color: var(--ltf-a); font-family: "Press Start 2P", monospace; font-size: 10px; margin-bottom: 8px; }

/* ===== v1.1 Funky titles (ToeJam & Earl vibe) ===== */
.ltf-funky { font-family: "Luckiest Guy", "Arial Black", sans-serif !important; font-weight: 400 !important; text-align: center !important; letter-spacing: .05em; line-height: 1.15 !important; margin-left: auto; margin-right: auto; }
.ltf-funky .ltf-fl { display: inline-block; -webkit-text-stroke: 2px #2b1055; paint-order: stroke fill; text-shadow: 3px 3px 0 #2b1055; transform: rotate(var(--r, 0deg)) translateY(var(--y, 0px)); }
.ltf-funky:hover .ltf-fl { animation: ltf-boing .5s ease-in-out infinite alternate; }
@keyframes ltf-boing { from { transform: rotate(var(--r, 0deg)) translateY(var(--y, 0px)); } to { transform: rotate(calc(var(--r, 0deg) * -1)) translateY(-5px); } }
.ltf-funky a { text-decoration: none; }

/* ===== Header brand: bone logo + tagline ===== */
.ltf-brand { display: flex; align-items: center; gap: 22px; flex: 1 1 auto; min-width: 0; }
.ltf-tagline { display: flex; flex-direction: column; gap: 2px; line-height: 1.25; max-width: 440px; }
.ltf-tagline strong { font-size: 15px; font-weight: 600; }
.ltf-tagline span { font-size: 12.5px; opacity: .8; }
@media (max-width: 820px) { .ltf-tagline { display: none; } }

/* ===== Kicker label ===== */
.ltf-kicker { font-family: "Press Start 2P", monospace; font-size: 9px; letter-spacing: 1px; color: #ff7a1a; text-transform: uppercase; margin-bottom: 4px; }

/* ===== Featured playlist card ===== */
.ltf-feat { background: #fff; border: 2px solid #2b1055; border-radius: 14px; padding: 14px; box-shadow: 5px 5px 0 #2b1055; }
.ltf-feat-head { display: flex; align-items: center; gap: 12px; margin-bottom: 8px; }
.ltf-feat-logo { width: 72px; height: 72px; border-radius: 16px; flex: 0 0 72px; box-shadow: 0 4px 10px rgba(0,0,0,.25); }
.ltf-feat-title { font-family: "Fredoka", sans-serif; font-weight: 700; font-size: 1.45rem; line-height: 1.1; margin: 0; }
.ltf-feat-title a { color: #1b1d24; text-decoration: none; }
.ltf-feat-teaser { font-size: .98rem; line-height: 1.4; margin: 0 0 10px; }
.ltf-feat-embed { border-radius: 12px; display: block; margin-bottom: 10px; }
.ltf-feat-btns { display: flex; flex-wrap: wrap; gap: 8px; }
.ltf-feat-btns .ltf-btn, .ltf-oh-info .ltf-btn { font-size: 9px; padding: 10px 11px; }

/* ===== Big taped Orange Highlight ===== */
.ltf-oh { display: flex; gap: 34px; align-items: center; padding: 26px 18px 18px; background: #fffdf7; border-radius: 14px; background-image: radial-gradient(rgba(0,0,0,.035) 1px, transparent 1px); background-size: 14px 14px; }
.ltf-oh-frame { position: relative; display: block; flex: 0 0 min(360px, 50%); transform: rotate(-1.5deg); transition: transform .25s ease; }
.ltf-oh-frame:hover { transform: rotate(0deg) scale(1.02); }
.ltf-oh-frame img { display: block; width: 100%; height: auto; box-sizing: border-box; background: #fbf8ef; padding: 16px; border: 12px solid #5b3a1e; border-image: linear-gradient(135deg, #8b5a2b 0%, #3e2412 35%, #9c6b3c 55%, #2f1b0d 100%) 1; box-shadow: inset 0 0 0 1px rgba(0,0,0,.10), 0 18px 30px rgba(0,0,0,.32), 0 4px 8px rgba(0,0,0,.2); }
.ltf-tape { position: absolute; top: -10px; width: 110px; height: 30px; z-index: 2; background: rgba(255, 236, 170, .78); box-shadow: 0 2px 4px rgba(0,0,0,.18); background-image: repeating-linear-gradient(90deg, rgba(255,255,255,.25) 0 6px, transparent 6px 12px); clip-path: polygon(3% 0, 97% 4%, 100% 50%, 96% 100%, 2% 96%, 0 50%); }
.ltf-tape-l { left: -34px; transform: rotate(-38deg); }
.ltf-tape-r { right: -34px; transform: rotate(38deg); background-color: rgba(255, 196, 160, .78); }
.ltf-oh-info { flex: 1; min-width: 0; }
.ltf-oh-plaque { display: inline-block; font-family: "Fredoka", sans-serif; font-weight: 700; font-size: 1.5rem; padding: 6px 16px; margin: 4px 0 12px; background: linear-gradient(180deg, #e9cf7a, #b8892c); color: #2b1d07; border-radius: 3px; box-shadow: 0 2px 3px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.45); }
.ltf-oh-info p { font-size: 1.05rem; line-height: 1.45; margin: 0 0 10px; }
.ltf-oh-info .ltf-oh-note { font-size: .85rem; opacity: .7; }
@media (max-width: 700px) { .ltf-oh { flex-direction: column; } .ltf-oh-frame { flex-basis: auto; width: 82%; } }

/* ===== Fish Oracle banner (moon over the sea) ===== */
.ltf-oracle-banner { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 120px; padding: 18px 22px; border-radius: 14px; overflow: hidden; text-decoration: none !important; color: #f6efdc !important; background: #0b0f14 url(/wp-content/uploads/2025/11/ocean-music.png) center 38% / cover no-repeat; box-shadow: 5px 5px 0 #2b1055; border: 2px solid #2b1055; }
.ltf-oracle-banner::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(5,8,14,.88) 0%, rgba(5,8,14,.55) 55%, rgba(5,8,14,.15) 100%); }
.ltf-oracle-banner > * { position: relative; }
.ltf-oracle-banner b { display: block; font-family: "Luckiest Guy", sans-serif; font-weight: 400; font-size: clamp(22px, 3vw, 34px); letter-spacing: .05em; color: #ffd60a; text-shadow: 3px 3px 0 #2b1055; }
.ltf-oracle-banner small { font-family: "VT323", monospace; font-size: 20px; color: #e8e2d0; }
.ltf-oracle-banner .ltf-orb { font-size: 46px; filter: drop-shadow(0 0 12px rgba(180,140,255,.9)); animation: ltf-orb 2.4s ease-in-out infinite alternate; }
@keyframes ltf-orb { to { filter: drop-shadow(0 0 22px rgba(120,220,255,1)); transform: translateY(-3px); } }
.ltf-teller { background: linear-gradient(180deg, rgba(40,20,30,.86), rgba(20,12,18,.92)), url(/wp-content/uploads/2025/11/ocean-music.png) center / cover; }

/* ===== RetroAmp launcher (Winamp style) ===== */
.ltf-amp { display: block; max-width: 100%; text-decoration: none !important; background: linear-gradient(180deg, #3a3f4c, #20232b); border: 2px solid #11131a; border-radius: 6px; box-shadow: 0 0 0 2px #6b7080 inset, 5px 5px 0 #2b1055; color: #39ff6a !important; margin: 0 0 18px; transition: transform .12s ease; }
.ltf-amp:hover { transform: translateY(-2px); }
.ltf-amp-bar { display: flex; align-items: center; gap: 6px; padding: 4px 8px; background: linear-gradient(90deg, #ff7a1a, #ffb238 40%, #3a3f4c 41%); font-family: "Press Start 2P", monospace; font-size: 9px; color: #1b1d24; }
.ltf-amp-bar i { width: 9px; height: 9px; border: 1px solid #11131a; background: #8a8f9e; margin-left: auto; }
.ltf-amp-bar i + i { margin-left: 3px; }
.ltf-amp-body { display: flex; gap: 10px; align-items: stretch; padding: 10px; }
.ltf-amp-lcd { flex: 1; display: flex; align-items: center; gap: 10px; background: #050805; border: 2px inset #555; padding: 8px 10px; font-family: "Press Start 2P", monospace; font-size: 11px; line-height: 1.7; text-shadow: 0 0 6px rgba(57,255,106,.8); }
.ltf-amp-lcd small { display: block; font-size: 7px; color: #ffb238; text-shadow: 0 0 5px rgba(255,178,56,.7); }
.ltf-amp-llama { font-size: 30px; line-height: 1; text-shadow: none; animation: ltf-llama-bob .9s ease-in-out infinite alternate; }
.ltf-amp-eq { display: flex; gap: 2px; align-items: flex-end; width: 92px; height: 54px; background: #050805; border: 2px inset #555; padding: 3px; }
.ltf-amp-eq i { flex: 1; display: block; height: 30%; background: linear-gradient(0deg, #39ff6a 0, #39ff6a 45%, #ffe14a 70%, #ff3b1a 100%); background-size: 100% 48px; background-position: bottom; -webkit-mask: repeating-linear-gradient(0deg, #000 0 3px, transparent 3px 5px); mask: repeating-linear-gradient(0deg, #000 0 3px, transparent 3px 5px); animation: ltf-amp-eq .6s ease-in-out infinite alternate; }
.ltf-amp-eq i:nth-child(2n) { animation-duration: .45s; } .ltf-amp-eq i:nth-child(3n) { animation-duration: .8s; } .ltf-amp-eq i:nth-child(4n+1) { animation-duration: .35s; } .ltf-amp-eq i:nth-child(5n) { animation-duration: .7s; animation-delay: .2s; }
@keyframes ltf-amp-eq { 0% { height: 12%; } 50% { height: 70%; } 100% { height: 95%; } }
.ltf-funky .ltf-word { display: inline-block; white-space: nowrap; }
.wp-block-column .ltf-funky { overflow-wrap: normal; }
.ltf-oh { align-items: stretch; }
.ltf-oh-frame { align-self: center; }
.ltf-oh-info { display: flex; flex-direction: column; }
.ltf-oh-info .ltf-oracle-banner { min-height: 96px; padding: 14px 16px; margin: 0 0 18px; }
.ltf-oh-info .ltf-oracle-banner b { font-size: clamp(20px, 2.2vw, 28px); }
.ltf-oh-info .ltf-oracle-banner small { font-size: 18px; }
.ltf-oh-info .ltf-oracle-banner .ltf-orb { font-size: 38px; }
.ltf-oh-body { margin: auto 0; }

/* ===== v1.2 Highlighter guy ===== */
.ltf-oh-head { display: flex; align-items: center; justify-content: center; gap: 10px; margin: 0 0 12px; }
.ltf-oh-head h2 { margin: 0 !important; }
.ltf-hl-guy { display: inline-block; width: 96px; flex: 0 0 96px; line-height: 0; }
.ltf-hl-guy svg { width: 100%; height: auto; overflow: visible; }
.ltf-hl-body { transform-origin: 60px 100px; animation: ltf-hl-bob 1.1s ease-in-out infinite alternate; }
.ltf-hl-arm { transform-origin: 84px 46px; animation: ltf-hl-wave .5s ease-in-out infinite alternate; }
.ltf-hl-swoosh { stroke-dasharray: 120; stroke-dashoffset: 120; animation: ltf-hl-draw 2.2s ease-in-out infinite; }
.ltf-hl-spark path { transform-box: fill-box; transform-origin: center; animation: ltf-hl-twinkle 1.4s ease-in-out infinite; }
.ltf-hl-spark path + path { animation-delay: .7s; }
@keyframes ltf-hl-bob { from { transform: translateY(0) rotate(-4deg); } to { transform: translateY(-6px) rotate(5deg); } }
@keyframes ltf-hl-wave { from { transform: rotate(-12deg); } to { transform: rotate(14deg); } }
@keyframes ltf-hl-draw { 0% { stroke-dashoffset: 120; } 55%, 80% { stroke-dashoffset: 0; } 100% { stroke-dashoffset: -120; } }
@keyframes ltf-hl-twinkle { 0%, 100% { transform: scale(.6) rotate(0deg); opacity: .5; } 50% { transform: scale(1.15) rotate(25deg); opacity: 1; } }
@media (max-width: 600px) { .ltf-hl-guy { width: 64px; flex-basis: 64px; } }
/* ===== Order a print ===== */
.ltf-order { margin: 14px 0 14px; padding: 12px 14px; background: #fff7ec; border: 2px dashed #ff7a1a; border-radius: 12px; max-width: 460px; }
.ltf-order-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 8px; }
.ltf-order-badge { font-family: "Press Start 2P", monospace; font-size: 9px; color: #2b1055; }
.ltf-order-price { font-family: "Luckiest Guy", sans-serif; font-size: 26px; color: #ff5e1a; text-shadow: 2px 2px 0 #2b1055; }
.ltf-order-price small { font-size: 13px; color: #2b1055; text-shadow: none; }
.ltf-order-label { display: block; font-size: .9rem; margin-bottom: 10px; }
.ltf-order-label select { display: block; width: 100%; margin-top: 4px; padding: 6px 8px; border: 2px solid #2b1055; border-radius: 6px; background: #fff; font-size: .95rem; }
.ltf-order-btn { width: 100%; font-size: 11px !important; }
.ltf-order-note { font-size: .78rem !important; opacity: .75; margin: 8px 0 0 !important; }
.wp-block-post-content .ltf-order { margin-left: auto; margin-right: auto; }
.ltf-oh .ltf-oh-frame { align-self: flex-start; margin-top: 40px; }
.ltf-order-price { white-space: nowrap; }

/* ===== v1.3 Salmon Presents intro ===== */
#ltf-intro { position: fixed; inset: 0; z-index: 2147483000; background: #000; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: opacity .45s ease; }
.ltf-intro-seen #ltf-intro { display: none; }
html.ltf-intro-on, html.ltf-intro-on body { overflow: hidden; }
#ltf-intro.ltf-intro-out { opacity: 0; }
.ltf-intro-stage { position: relative; width: min(640px, 92vw); height: 320px; }
.ltf-intro-fish { position: absolute; left: 0; bottom: 70px; width: 110px; height: 50px; image-rendering: pixelated; animation: ltf-intro-leap 1.25s cubic-bezier(.3,.1,.4,1) .15s both; }
@keyframes ltf-intro-leap { 0% { transform: translate(-40px, 90px) rotate(-35deg); opacity: 0; } 10% { opacity: 1; } 50% { transform: translate(calc(min(640px, 92vw) * .45), -150px) rotate(0deg); } 100% { transform: translate(calc(min(640px, 92vw) - 90px), 60px) rotate(40deg); opacity: 0; } }
.ltf-intro-splash { position: absolute; right: 60px; bottom: 40px; width: 80px; height: 40px; }
.ltf-intro-splash i { position: absolute; bottom: 0; left: 50%; width: 8px; height: 8px; background: #6ec6ff; opacity: 0; animation: ltf-intro-drop .6s ease-out 1.25s both; }
.ltf-intro-splash i:nth-child(1) { --dx: -36px; --dy: -34px; } .ltf-intro-splash i:nth-child(2) { --dx: -16px; --dy: -50px; } .ltf-intro-splash i:nth-child(3) { --dx: 0px; --dy: -58px; } .ltf-intro-splash i:nth-child(4) { --dx: 18px; --dy: -48px; } .ltf-intro-splash i:nth-child(5) { --dx: 36px; --dy: -30px; }
@keyframes ltf-intro-drop { 0% { opacity: 1; transform: translate(0, 0); } 100% { opacity: 0; transform: translate(var(--dx), var(--dy)); } }
.ltf-intro-word { position: absolute; left: 0; right: 0; top: 70px; text-align: center; font-family: "Press Start 2P", monospace; font-size: clamp(34px, 9vw, 64px); color: #ff7f50; text-shadow: 4px 4px 0 #7a2e00, 0 0 18px rgba(255,127,80,.6); letter-spacing: 6px; }
.ltf-intro-word span { display: inline-block; opacity: 0; transform: translateY(20px) scale(.6); animation: ltf-intro-letter .28s steps(4) both; }
.ltf-intro-word span:nth-child(1) { animation-delay: .75s; } .ltf-intro-word span:nth-child(2) { animation-delay: .85s; } .ltf-intro-word span:nth-child(3) { animation-delay: .95s; } .ltf-intro-word span:nth-child(4) { animation-delay: 1.05s; } .ltf-intro-word span:nth-child(5) { animation-delay: 1.15s; } .ltf-intro-word span:nth-child(6) { animation-delay: 1.25s; }
@keyframes ltf-intro-letter { to { opacity: 1; transform: none; } }
.ltf-intro-presents { position: absolute; left: 0; right: 0; top: 165px; text-align: center; font-family: "Press Start 2P", monospace; font-size: clamp(12px, 3vw, 18px); color: #e8e2d0; letter-spacing: 8px; opacity: 0; animation: ltf-intro-fade .5s ease 1.7s both; }
@keyframes ltf-intro-fade { to { opacity: 1; } }
.ltf-intro-skip { position: absolute; right: 0; bottom: 0; font-family: "VT323", monospace; font-size: 18px; color: #666; }

/* ===== Sound Club ===== */
.ltf-sponsor { display: flex; align-items: center; gap: 10px; width: fit-content; margin: 0 auto 14px; padding: 5px 16px 5px 5px; background: #07060c; border-radius: 999px; box-shadow: 0 0 0 2px #2b1055, 0 0 14px rgba(155, 93, 229, .55); text-decoration: none !important; }
.ltf-sponsor img { width: 54px; height: 54px; border-radius: 50%; display: block; }
.ltf-sponsor span { font-family: "Press Start 2P", monospace; font-size: 8px; line-height: 1.8; color: #c9a7ff; text-shadow: 0 0 6px rgba(180, 140, 255, .8); text-transform: uppercase; }
.ltf-sponsor b { display: block; font-size: 11px; color: #fff; font-weight: normal; letter-spacing: 2px; }
.ltf-sc-badge { display: block; width: 50px; height: 50px; border-radius: 50%; overflow: hidden; box-shadow: 0 0 0 2px #2b1055, 0 0 12px rgba(155, 93, 229, .7); flex: 0 0 50px; }
.ltf-sc-badge img { width: 100%; height: 100%; display: block; }
.ltf-sc-hero { display: flex; gap: 28px; align-items: center; background: #07060c; color: #e9e3ff; border-radius: 16px; padding: 22px; box-shadow: 5px 5px 0 #2b1055; }
.ltf-sc-hero > img { width: min(260px, 40%); border-radius: 50%; box-shadow: 0 0 30px rgba(155, 93, 229, .6); }
.ltf-sc-hero p { color: #e9e3ff; }
.ltf-sc-hero .ltf-order { background: #14112a; border-color: #9b5de5; color: #e9e3ff; }
.ltf-sc-hero .ltf-order-badge { color: #c9a7ff; }
@media (max-width: 700px) { .ltf-sc-hero { flex-direction: column; } .ltf-sc-hero > img { width: 70%; } }

/* ===== v1.4 star box ===== */
.ltf-starbox { position: relative; border-radius: 10px; box-shadow: 0 0 0 3px #2b1055, 6px 6px 0 #2b1055; overflow: visible !important; }
.ltf-stars { position: absolute; left: -12px; top: -12px; right: -12px; bottom: -12px; pointer-events: none; z-index: 2; }
.ltf-stars span { position: absolute; display: block; transform: rotate(var(--rot)); animation: ltf-star-tw 1.6s ease-in-out infinite alternate; }
.ltf-stars svg { width: 100%; height: 100%; display: block; }
@keyframes ltf-star-tw { from { transform: rotate(var(--rot)) scale(.85); } to { transform: rotate(calc(var(--rot) + 25deg)) scale(1.15); } }
.ltf-starbox { margin-bottom: 26px !important; margin-top: 12px; }
canvas.ltf-maze { position: absolute !important; left: 0 !important; top: 0 !important; width: 100% !important; height: 100% !important; max-width: none !important; margin: 0 !important; }

/* ===== v1.5 intro sparkle ===== */
.ltf-intro-word, .ltf-intro-splash { display: none !important; }
.ltf-intro-fish { left: calc(50% - 55px) !important; bottom: 150px !important; animation: ltf-intro-leap2 1.3s cubic-bezier(.25,.1,.3,1) .1s both, ltf-intro-glow 1.2s ease-in-out 1.3s infinite alternate !important; }
@keyframes ltf-intro-leap2 { 0% { transform: translate(-260px, 170px) rotate(-40deg); opacity: 0; } 15% { opacity: 1; } 70% { transform: translate(0, -14px) rotate(-6deg); } 100% { transform: translate(0, 0) rotate(4deg); opacity: 1; } }
@keyframes ltf-intro-glow { from { filter: drop-shadow(0 0 4px #ffd60a); } to { filter: drop-shadow(0 0 18px #fff) drop-shadow(0 0 8px #ff7f50); } }
.ltf-intro-sparkles { position: absolute; left: 50%; top: 145px; width: 0; height: 0; }
.ltf-intro-sparkles i { position: absolute; left: 0; top: 0; width: 6px; height: 6px; border-radius: 50%; box-shadow: 0 0 10px currentColor, 0 0 3px #fff; animation: ltf-intro-spark .9s ease-out both; }
.ltf-intro-sparkles i:nth-child(3n) { width: 10px; height: 10px; border-radius: 0; clip-path: polygon(50% 0, 62% 38%, 100% 50%, 62% 62%, 50% 100%, 38% 62%, 0 50%, 38% 38%); }
@keyframes ltf-intro-spark { 0% { transform: translate(0, 0) scale(1.2); opacity: 1; } 100% { transform: translate(var(--dx), var(--dy)) scale(0); opacity: 0; } }
.ltf-intro-presents { top: 225px !important; animation-delay: 1.4s !important; }
.ltf-intro-sound { position: absolute; left: 0; bottom: 0; font-family: "VT323", monospace; font-size: 18px; color: #9da1ad; transition: opacity .3s; }

/* ===== Haiku ===== */
.ltf-haiku { font-family: "Fredoka", sans-serif; font-style: italic; font-size: .82rem !important; line-height: 1.45; text-align: center; color: #5a3b78; margin: 6px auto 0 !important; }
.wp-block-post-content .ltf-haiku, .ltf-oh-info .ltf-haiku { font-size: 1rem !important; margin: 14px auto !important; }

/* ===== Star box text over stars ===== */
.ltf-stars { z-index: 0 !important; }
.ltf-starbox ~ * { position: relative; z-index: 3; }

/* ===== Under-the-sea footer ===== */
.ltf-sea { position: relative; overflow: hidden; padding-top: 34px !important; }
.ltf-sea > *:not(.ltf-sea-layer):not(.ltf-sea-wave) { position: relative; z-index: 2; }
.ltf-sea-wave { position: absolute; left: 0; right: 0; top: 0; height: 30px; z-index: 1; }
.ltf-sea-wave svg { width: 100%; height: 100%; display: block; }
.ltf-sea-layer { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.ltf-sea-layer span { position: absolute; opacity: .09; animation: ltf-sea-bob 6s ease-in-out infinite alternate; }
.ltf-sea-layer svg { width: 100%; height: 100%; display: block; fill: #000; }
@keyframes ltf-sea-bob { to { margin-top: -10px; } }

/* ===== Playlist list (logo left, teaser right) ===== */
.ltf-pl-row { display: flex; gap: 14px; align-items: flex-start; padding: 10px 0; border-bottom: 1px dashed rgba(43,16,85,.2); }
.ltf-pl-row .wp-block-post-featured-image { flex: 0 0 72px; width: 72px !important; margin: 0 !important; }
.ltf-pl-row .wp-block-post-featured-image img { width: 72px !important; height: 72px !important; border-radius: 16px; box-shadow: 0 3px 8px rgba(0,0,0,.2); }
.ltf-pl-row .wp-block-post-title { margin: 0 0 4px !important; font-family: "Fredoka", sans-serif; font-weight: 700; }
.ltf-pl-row .wp-block-post-excerpt { margin: 0 0 4px; font-size: .95rem; }
.ltf-pl-row .wp-block-post-excerpt__more-text { display: none; }
.ltf-pl-row .wp-block-post-terms { font-size: .8rem; opacity: .75; }

/* ===== Sound Club Notes heading logo ===== */
.ltf-notes-head { display: flex; align-items: center; justify-content: center; gap: 10px; }
.ltf-notes-head svg { width: 52px; height: 52px; flex: 0 0 52px; }
.ltf-notes-head h3 { margin: 0 !important; }

/* ===== Nova Scotia map ===== */
.ltf-ns-map { margin: 18px auto 0; max-width: 380px; }
.ltf-ns-map svg { width: 100%; height: auto; display: block; overflow: visible; }
.ltf-ns-map .bob { animation: ltf-ns-bob 2.4s ease-in-out infinite alternate; transform-box: fill-box; transform-origin: center; }
.ltf-ns-map .bob2 { animation-delay: .8s; } .ltf-ns-map .bob3 { animation-delay: 1.5s; }
@keyframes ltf-ns-bob { to { transform: translateY(-4px) rotate(4deg); } }

/* ===== Eric Carle-style sayings ===== */
.ltf-sayings { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; max-width: 1180px; margin: 0 auto; padding: 10px 20px 30px; }
.ltf-saying { background: #fff; border: 2px solid #2b1055; border-radius: 16px; box-shadow: 5px 5px 0 #2b1055; padding: 16px; text-align: center; }
.ltf-saying canvas { width: 100%; max-width: 260px; height: auto; aspect-ratio: 4 / 3; display: block; margin: 0 auto 10px; }
.ltf-saying h4 { font-family: "Luckiest Guy", sans-serif; font-weight: 400; font-size: 1.35rem; letter-spacing: .03em; color: #ff5e1a; text-shadow: 2px 2px 0 #2b1055; margin: 0 0 6px; }
.ltf-saying p { margin: 0; font-size: .98rem; line-height: 1.45; }
@media (max-width: 800px) { .ltf-sayings { grid-template-columns: 1fr; } }

/* ===== v1.6 featured head + tighter footer ===== */
.ltf-feat-head2 { display: flex; align-items: center; justify-content: center; gap: 12px; margin: 0 0 2px; }
.ltf-feat-head2 h2 { margin: 0 !important; line-height: 1.05 !important; }
.ltf-feat-head2 .ltf-sc-badge { width: 54px; height: 54px; flex: 0 0 54px; }
.ltf-brought { text-align: center; font-size: .82rem; margin: 2px 0 10px !important; color: #5a3b78; letter-spacing: .02em; }
.ltf-brought a { color: #7b2cbf; font-weight: 700; text-decoration: none; }
.ltf-sea .wp-block-group, .ltf-sea.wp-block-group { padding-top: 14px !important; padding-bottom: 14px !important; }
.ltf-sea { padding-top: 40px !important; }
.ltf-sea .wp-block-columns { margin-top: 0 !important; margin-bottom: 0 !important; gap: 24px !important; }
.ltf-sea .wp-block-heading { margin-top: 0 !important; margin-bottom: 6px !important; }
.ltf-sea p { margin-top: 4px !important; margin-bottom: 6px !important; }
.ltf-sea .wp-block-spacer { height: 8px !important; }
.ltf-sea .wp-block-separator { margin: 10px 0 !important; }

/* v1.7 crazy flashy plaque names */
@keyframes ltfFlash { 0%{color:#fff} 20%{color:#00e5ff} 40%{color:#ff4fd8} 60%{color:#7CFF4F} 80%{color:#fff36b} 100%{color:#fff} }
@keyframes ltfWiggle { 0%,100%{transform:rotate(-1.5deg) scale(1)} 50%{transform:rotate(1.5deg) scale(1.04)} }
.ltf-oh-plaque, .wp-block-post.category-orange-highlights .wp-block-post-title a {
 font-family:'Bungee','Luckiest Guy','Arial Black',sans-serif !important; font-weight:400 !important; letter-spacing:.5px;
 animation: ltfFlash 2.4s linear infinite; text-shadow: 2px 2px 0 #2b1055, 3px 3px 0 #000, 0 0 10px rgba(255,255,255,.55);
 -webkit-text-stroke: .6px #2b1055; }
.ltf-oh-plaque { display:inline-block; animation: ltfFlash 2.4s linear infinite, ltfWiggle 3s ease-in-out infinite; }
.wp-block-post.category-orange-highlights .wp-block-post-title a { display:inline-block; font-size:.78rem; line-height:1.25; }
@media (prefers-reduced-motion: reduce){ .ltf-oh-plaque, .wp-block-post.category-orange-highlights .wp-block-post-title a { animation:none; } }
/* fish guy in the Salmon box */
.ltf-fishguy { float:left; width:104px; margin:-6px 12px 4px -6px; shape-outside: circle(50%); }
.ltf-fishguy svg { width:100%; height:auto; display:block; animation: ltfWiggle 4s ease-in-out infinite; }

/* v1.8 footer links: orange wavy with yellow flecks; tighter footer; smaller Carle fish */
.ltf-sea .wp-block-navigation a.wp-block-navigation-item__content { color:#ff6a00 !important; font-weight:700; text-shadow:1px 1px 0 #2b1055; text-decoration: underline wavy #ff7a1a !important; text-decoration-thickness:2px !important; text-underline-offset:6px; padding:2px 4px 8px; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='46' height='14'%3E%3Ccircle cx='6' cy='3' r='1.6' fill='%23ffd60a'/%3E%3Ccircle cx='21' cy='11' r='1.2' fill='%23ffd60a'/%3E%3Cpath d='M34 2 l1 2.2 l2.2 1 l-2.2 1 l-1 2.2 l-1 -2.2 l-2.2 -1 l2.2 -1 z' fill='%23fff36b'/%3E%3C/svg%3E"); background-repeat:repeat-x; background-position:0 100%; background-size:46px 14px; transition: transform .15s; display:inline-block; }
.ltf-sea .wp-block-navigation a.wp-block-navigation-item__content:hover { transform: translateY(-2px) rotate(-1deg); color:#ff3d00 !important; }
.ltf-sea > .wp-block-group:nth-of-type(1) { padding-bottom:0 !important; }
.ltf-sea > .wp-block-group + .wp-block-group { padding-top:4px !important; margin-top:0 !important; }
.ltf-sea .wp-social-links { margin-top:10px !important; margin-bottom:0 !important; }
.ltf-sea .wp-block-columns { align-items:flex-start !important; }
.ltf-sea .wp-block-navigation__container { row-gap:4px !important; }
canvas.ltf-carle { width:70% !important; height:auto !important; display:block; margin-left:auto !important; margin-right:auto !important; }

.ltf-ns-map { max-width:400px !important; margin:14px auto 0 !important; display:block; }
.ltf-ns-map svg { width:100%; height:auto; }
.ltf-sea .wp-block-jetpack-subscriptions { margin-top:6px !important; }
.ltf-sea .wp-block-column p { margin-bottom:0 !important; }
.ltf-sea .wp-block-column h4 + p { font-size:.95rem; line-height:1.45; }

/* v1.9 Sound Club hat photo */
.ltf-sc-hatrow { display:flex; gap:32px; align-items:center; justify-content:center; flex-wrap:wrap; margin:28px auto; max-width:900px; }
.ltf-sc-photo { position:relative; margin:0; background:#fff; padding:12px 12px 10px; border-radius:4px; box-shadow:0 10px 24px rgba(43,16,85,.25), 0 0 0 3px #2b1055; transform:rotate(-2.5deg); width:300px; max-width:90%; transition:transform .2s; }
.ltf-sc-photo:hover { transform:rotate(0deg) scale(1.02); }
.ltf-sc-photo img { width:100%; height:auto; display:block; border-radius:2px; }
.ltf-sc-photo figcaption { font-family:'Fredoka',sans-serif; font-weight:600; font-size:.85rem; text-align:center; color:#2b1055; margin-top:8px; }
.ltf-sc-photo .ltf-tape { position:absolute; top:-12px; width:70px; height:24px; background:rgba(255,200,120,.75); z-index:2; }
.ltf-sc-photo .ltf-tape-l { left:-14px; transform:rotate(-35deg); }
.ltf-sc-photo .ltf-tape-r { right:-14px; transform:rotate(35deg); }
.ltf-sc-hatbuy { flex:1 1 300px; max-width:420px; }
.ltf-sc-hatbuy h3 { text-align:center; margin:0 0 8px; }

/* v1.9 map under the art */
.ltf-oh-left { display:flex; flex-direction:column; align-items:center; flex:0 0 auto; }
.ltf-oh-left .ltf-ns-map { max-width:250px !important; width:100%; margin:6px auto 0 !important; }

.ltf-oh .ltf-oh-left { flex:0 0 min(360px, 50%); min-width:0; align-self:flex-start; margin-top:40px; }
.ltf-oh .ltf-oh-left .ltf-oh-frame { flex:none; width:100%; margin-top:0; align-self:stretch; }

/* v2.0 sunken typewriter treasure chest credit */
.ltf-made-link { display:inline-flex; align-items:center; gap:10px; text-decoration:none !important; color:#2b1055 !important; }
.ltf-chest { width:120px; height:auto; flex:0 0 auto; filter: drop-shadow(0 3px 0 rgba(43,16,85,.18)); }
.ltf-made-text { font-family:'Special Elite','Courier New',monospace; font-size:1.05rem; line-height:1.25; letter-spacing:.5px; }
.ltf-made-text strong { font-weight:400; font-size:1.35rem; color:#7a3a10; text-shadow:1px 1px 0 #ffd60a; }
.ltf-caret { display:inline-block; margin-left:2px; animation: ltfCaret 1s steps(1) infinite; color:#2b1055; }
@keyframes ltfCaret { 50% { opacity:0; } }
@keyframes ltfBub { 0% { transform:translateY(6px); opacity:0; } 30% { opacity:1; } 100% { transform:translateY(-10px); opacity:0; } }
@keyframes ltfSway { 0%,100% { transform:rotate(-3deg); } 50% { transform:rotate(3deg); } }
.ltf-chest .ltf-bub { animation: ltfBub 3s ease-in infinite; }
.ltf-chest .ltf-weed { transform-origin:50% 100%; transform-box:fill-box; animation: ltfSway 4s ease-in-out infinite; }
.ltf-chest .ltf-weed2 { animation-delay:-2s; }
.ltf-chest .ltf-glint { transform-origin:center; transform-box:fill-box; animation: ltfCaret 1.6s steps(1) infinite; }
.ltf-made-link:hover .ltf-chest { transform: rotate(-3deg) scale(1.05); transition: transform .2s; }

.ltf-notes-head { justify-content:flex-start !important; margin-left:0 !important; margin-right:auto !important; }
.ltf-notes-head h3 { text-align:left !important; }

.ltf-note-excerpt .wp-block-post-excerpt__more-link { font-weight:800; color:#ff6a00; text-decoration:none; margin-left:2px; letter-spacing:2px; }
.ltf-note-excerpt .wp-block-post-excerpt__more-link:hover { color:#2b1055; }

/* v2.0 Subscribe Fish */
.ltf-subfish { display:flex; align-items:flex-end; justify-content:flex-end; gap:6px; margin:4px 0 -6px; pointer-events:none; position:relative; z-index:2; }
.ltf-subfish svg { width:78px; height:auto; flex:0 0 auto; animation: ltfSfBob 2.2s ease-in-out infinite; }
.ltf-sf-say { font-family:'Luckiest Guy','Arial Black',sans-serif; font-size:.85rem; letter-spacing:.5px; color:#2b1055; background:#fff; border:2px solid #2b1055; border-radius:14px 14px 2px 14px; padding:4px 10px; margin-bottom:22px; box-shadow:2px 2px 0 #2b1055; white-space:nowrap; }
.ltf-subfish .ltf-sf-fin { transform-box:fill-box; transform-origin:0 0; animation: ltfSfPoint .9s ease-in-out infinite; }
@keyframes ltfSfBob { 0%,100% { transform:translateY(0) rotate(-2deg); } 50% { transform:translateY(-4px) rotate(2deg); } }
@keyframes ltfSfPoint { 0%,100% { transform:translate(0,0); } 50% { transform:translate(2px,3px); } }
.ltf-subfish.is-happy svg { animation: ltfSfWiggle .6s ease-in-out infinite; }
.ltf-subfish.is-happy .ltf-sf-say { background:#ffd60a; }
@keyframes ltfSfWiggle { 0%,100% { transform:rotate(-8deg) translateY(0); } 50% { transform:rotate(8deg) translateY(-6px); } }
.ltf-subfish .ltf-sf-heart { transform-box:fill-box; transform-origin:center; animation: ltfSfHeart 1.2s ease-in-out infinite; }
.ltf-subfish .ltf-sf-heart.h2 { animation-delay:-.6s; }
@keyframes ltfSfHeart { 0%,100% { transform:scale(.8) translateY(0); opacity:.7; } 50% { transform:scale(1.15) translateY(-3px); opacity:1; } }
.ltf-subfish .ltf-sf-spark { transform-box:fill-box; transform-origin:center; animation: ltfSfHeart .8s ease-in-out infinite; }
.ltf-subfish.ltf-sf-away svg, .ltf-subfish.ltf-sf-away .ltf-sf-say { transition: transform .8s ease-in, opacity .8s; transform: translateX(160%) rotate(10deg); opacity:0; animation:none; }
.ltf-subfish.ltf-sf-back { animation: ltfSfBack .9s cubic-bezier(.2,1.4,.4,1); }
@keyframes ltfSfBack { 0% { transform:translateX(160%) scale(.6); opacity:0; } 100% { transform:translateX(0) scale(1); opacity:1; } }
@media (prefers-reduced-motion: reduce) { .ltf-subfish svg, .ltf-subfish * { animation:none !important; } }

.ltf-oh .ltf-oh-left .ltf-ns-map { margin-top:76px !important; }

/* ---------- v1.1.1: more room under star box, haiku in Latest Posts ---------- */
.ltf-starbox { margin-bottom: 46px !important; }
.ltf-starbox ~ .wp-block-group.has-background { padding-top: 14px; }
.wp-block-post-template li > .wp-block-columns .ltf-haiku { font-size: .78rem !important; text-align: left; margin: 4px 0 0 !important; opacity: .85; }

/* ---------- v1.1.2: tighter hero, intro beside fish, fancy plaque titles, Sound Club logo ---------- */
.wp-block-group.alignwide:has(h1.wp-block-post-title) { padding-top: 22px !important; padding-bottom: 22px !important; margin-top: 0 !important; }
.wp-block-columns.alignwide:has(h1.wp-block-post-title) { align-items: center !important; }
.wp-block-columns.alignwide:has(h1.wp-block-post-title) > .wp-block-column:last-child { flex-basis: 44% !important; }
.wp-block-group:has(> .ltf-fishguy) { display: grid !important; grid-template-columns: auto 1fr; column-gap: 14px; row-gap: 6px; align-items: start; }
.wp-block-group:has(> .ltf-fishguy) > .ltf-fishguy { grid-row: 1 / span 2; grid-column: 1; float: none !important; margin: 0 !important; }
.wp-block-group:has(> .ltf-fishguy) > p { grid-column: 2; margin: 0 !important; max-width: none !important; text-align: left; }
.wp-block-group:has(> .ltf-fishguy) > p + p { margin-top: 2px !important; }
.wp-block-post.category-orange-highlights .wp-block-post-title,
.wp-block-post.category-orange-highlights .wp-block-post-title a { font-family: "Cinzel Decorative", "Cinzel", Georgia, serif !important; font-weight: 700 !important; text-transform: none !important; letter-spacing: .03em !important; color: #2b1d07 !important; text-shadow: 0 1px 0 rgba(255,255,255,.45) !important; }
.wp-block-post-template li > .wp-block-columns .category-orange-highlights .wp-block-post-title,
.wp-block-post-template li.category-orange-highlights > .wp-block-columns .wp-block-post-title { margin: 2px 0 0 !important; text-align: left !important; }
.wp-block-post-template li.category-orange-highlights > .wp-block-columns > .wp-block-column:last-child { text-align: left; }
.wp-block-post-template li.category-sound-club-notes > .wp-block-columns > .wp-block-column:first-child { min-height: 72px; background: url(/wp-content/uploads/2026/11/sound-club-logo-centred.jpg) center top / 72px auto no-repeat; border-radius: 50%; }
.wp-block-group.alignwide:has(> .wp-block-columns .wp-block-post-content) { padding-top: 20px !important; }
.wp-block-columns.alignwide:has(h1.wp-block-post-title) > .wp-block-column:last-child { padding: 8px 0 !important; }

/* ---------- v1.1.3: home - mood picker centred full width, 2 rows ---------- */
@media (min-width: 782px) {
	.wp-block-columns:has(> .wp-block-column > .ltf-oh) { display: grid !important; grid-template-columns: 1fr 2fr; align-items: start; }
	.wp-block-columns:has(> .wp-block-column > .ltf-oh) > .wp-block-column:first-child { grid-column: 1; grid-row: 1 / span 2; }
	.wp-block-column:has(> .ltf-oh) { display: contents !important; }
	.wp-block-column:has(> .ltf-oh) > .ltf-oh-head { grid-column: 2; grid-row: 1; }
	.wp-block-column:has(> .ltf-oh) > .ltf-oh { grid-column: 2; grid-row: 2; }
	.wp-block-column:has(> .ltf-oh) > .wp-block-spacer { display: none !important; }
	.wp-block-column:has(> .ltf-oh) > h2.ltf-funky { grid-column: 1 / -1; grid-row: 3; margin: 6px 0 0 !important; }
	.wp-block-column:has(> .ltf-oh) > .wp-block-buttons { grid-column: 1 / -1; grid-row: 4; gap: 6px !important; margin: 0 auto !important; }
	.wp-block-column:has(> .ltf-oh) > .wp-block-buttons .wp-block-button__link { padding: 6px 11px !important; font-size: .82rem !important; }
}

/* ---------- v1.1.4: home - Nova Scotia map + playlist buttons up ~1cm ---------- */
.ltf-oh-left .ltf-ns-map { margin-top: 38px !important; }
.wp-block-column:has(> .ltf-feat) > .wp-block-spacer:has(+ .wp-block-buttons) { display: none !important; }
.wp-block-column:has(> .ltf-feat) > .wp-block-buttons { margin-top: 16px !important; }

/* ---------- v1.1.5: home - less space between Orange Highlights heading and oracle ---------- */
@media (min-width: 782px) {
	.wp-block-columns:has(> .wp-block-column > .ltf-oh) { row-gap: 10px !important; }
	.wp-block-column:has(> .ltf-oh) > .ltf-oh-head { margin-bottom: 0 !important; }
	.wp-block-column:has(> .ltf-oh) > .ltf-oh { margin-top: 0 !important; padding-top: 14px !important; }
	.wp-block-column:has(> .ltf-oh) > h2.ltf-funky { margin-top: 30px !important; }
}

/* ---------- v1.1.6: Donate Now fish ---------- */
.ltf-donate { display: none; margin: 18px auto 10px; max-width: 520px; text-align: center; }
.ltf-donate.is-placed { display: block; }
.ltf-donate-form { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 10px 12px; margin: 0; }
.ltf-donate-btn { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; border: 3px solid #2b1055; border-radius: 999px; background: linear-gradient(180deg, #ffd60a, #ff9a1a); color: #2b1055; font-family: "Fredoka", sans-serif; font-weight: 700; font-size: 1rem; padding: 6px 16px 6px 8px; box-shadow: 4px 4px 0 #2b1055; transition: transform .15s ease, box-shadow .15s ease; }
.ltf-donate-btn:hover, .ltf-donate-btn:focus-visible { transform: translate(-2px, -2px) rotate(-2deg); box-shadow: 6px 6px 0 #2b1055; }
.ltf-donate-fish { width: 44px; height: 28px; animation: ltf-donate-swim 1.8s ease-in-out infinite; }
@keyframes ltf-donate-swim { 0%, 100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-3px) rotate(-6deg); } }
.ltf-donate-amt { display: inline-flex; align-items: center; gap: 4px; font-family: "Fredoka", sans-serif; font-weight: 600; font-size: .95rem; }
.ltf-donate-amt input { width: 64px; padding: 5px 6px; border: 2px solid #2b1055; border-radius: 6px; font: inherit; text-align: right; }
.ltf-donate-note { flex-basis: 100%; margin: 2px 0 0 !important; font-size: .85rem; font-style: italic; opacity: .85; }
@media (prefers-reduced-motion: reduce) { .ltf-donate-fish { animation: none; } }

/* ---------- v1.1.7: fish rain below the footer ---------- */
.ltf-greyfoot { position: relative; overflow: hidden; }
.ltf-greyfoot > *:not(#ltf-fishrain) { position: relative; z-index: 1; }
#ltf-fishrain { position: absolute; inset: 0; display: none; overflow: hidden; pointer-events: none; z-index: 0; }
.ltf-rainfish { position: absolute; top: -18px; display: block; opacity: .9; animation-name: ltf-fishfall; animation-timing-function: linear; animation-fill-mode: forwards; }
.ltf-rainfish svg { display: block; width: 100%; height: auto; transform: rotate(var(--tilt)); }
@keyframes ltf-fishfall { from { transform: translateY(0); } to { transform: translateY(var(--fall)); } }

/* ---------- v1.1.8: page layouts with the Salmon Music star box - top-align columns ---------- */
.wp-block-columns.alignwide:has(h1.wp-block-post-title):has(.ltf-starbox) { align-items: flex-start !important; }
.wp-block-columns.alignwide:has(.ltf-starbox) > .wp-block-column:first-child > h1.wp-block-post-title:first-child { margin-top: 18px !important; }

/* ---------- v1.1.9: homepage fish schools + silver flash fish ---------- */
#ltf-school { position: fixed; inset: 0; z-index: -1; pointer-events: none; overflow: hidden; }
.ltf-schoolfish { position: absolute; left: 0; top: 0; display: block; will-change: transform; }
.ltf-schoolfish svg { display: block; width: 100%; height: auto; animation: ltf-tailwag .5s ease-in-out infinite alternate; transform-origin: 40% 50%; }
.ltf-schoolfish.is-right svg { scale: -1 1; }
@keyframes ltf-tailwag { from { rotate: -6deg; } to { rotate: 6deg; } }
#ltf-silver { position: fixed; left: 0; top: 0; z-index: 9990; width: 30px; height: 18px; padding: 0; border: 0; background: none; cursor: pointer; opacity: 0; pointer-events: none; }
#ltf-silver.is-swimming { opacity: 1; pointer-events: auto; }
#ltf-silver svg { display: block; width: 100%; height: auto; filter: drop-shadow(0 0 3px rgba(255,255,255,.9)) drop-shadow(0 1px 2px rgba(0,0,0,.35)); animation: ltf-tailwag .35s ease-in-out infinite alternate, ltf-silverflash 1.4s ease-in-out infinite; }
#ltf-silver.is-right svg { scale: -1 1; }
@keyframes ltf-silverflash { 0%, 100% { filter: drop-shadow(0 0 2px rgba(255,255,255,.7)) drop-shadow(0 1px 2px rgba(0,0,0,.35)) brightness(1); } 50% { filter: drop-shadow(0 0 8px #fff) drop-shadow(0 0 3px #bfe4ff) brightness(1.35); } }
#ltf-silver:focus-visible { outline: 2px dashed #2b1055; outline-offset: 3px; }
#ltf-silver.is-still { opacity: 1; pointer-events: auto; position: fixed; left: auto; top: auto; right: 14px; bottom: 14px; }

/* ---------- v1.2.0: Salmon Presents - retro adventure-game intro ---------- */
#ltf-sierra { position: fixed; inset: 0; z-index: 100000; overflow: hidden; background: radial-gradient(ellipse at 50% 80%, #2a0f5c 0%, #0b0420 55%, #000 100%); opacity: 0; transition: opacity .6s ease; font-family: "Press Start 2P", "VT323", monospace; }
#ltf-sierra[hidden] { display: none; }
#ltf-sierra.is-on { opacity: 1; }
#ltf-sierra.is-out { opacity: 0; transition: opacity .7s ease; }
#ltf-sierra::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: repeating-linear-gradient(0deg, rgba(0,0,0,.22) 0 1px, transparent 1px 3px); }
#ltf-sierra .sx-stars { position: absolute; inset: 0; }
#ltf-sierra .sx-stars b { position: absolute; width: 2px; height: 2px; background: #fff; animation: sx-twinkle 2.2s steps(2) infinite; }
#ltf-sierra .sx-stars b.big { width: 3px; height: 3px; box-shadow: 0 0 4px #bfe4ff; }
@keyframes sx-twinkle { 50% { opacity: .15; } }
#ltf-sierra .sx-sun { position: absolute; left: 50%; bottom: 14%; width: 46vmin; height: 46vmin; margin-left: -23vmin; border-radius: 50%; background: radial-gradient(circle, #ffd27a 0%, #ff7f50 38%, rgba(255,90,60,.35) 55%, rgba(255,90,60,0) 70%); transform: translateY(40%); opacity: 0; }
#ltf-sierra.is-on .sx-sun { animation: sx-sunrise 3.2s ease-out .3s forwards; }
@keyframes sx-sunrise { to { transform: translateY(0); opacity: .95; } }
#ltf-sierra .sx-land { position: absolute; left: 0; bottom: 0; width: 100%; height: 34vh; }
#ltf-sierra .sx-fish { position: absolute; left: 50%; top: 50%; width: min(34vw, 260px); margin-left: calc(min(34vw, 260px) / -2); margin-top: -8vh; transform: translate(-70vw, 45vh) rotate(-35deg); }
#ltf-sierra .sx-fishin { position: relative; overflow: hidden; }
#ltf-sierra .sx-fishsvg { display: block; width: 100%; height: auto; filter: drop-shadow(0 0 10px rgba(255,180,140,.55)); }
#ltf-sierra .sx-fishin::after { content: ""; position: absolute; top: -20%; bottom: -20%; width: 30%; left: -40%; background: linear-gradient(100deg, transparent, rgba(255,255,255,.85), transparent); transform: skewX(-15deg); opacity: 0; }
#ltf-sierra.is-on .sx-fish { animation: sx-leap 4.4s cubic-bezier(.25,.6,.3,1) 1.2s forwards, sx-bob 1.6s ease-in-out 5.7s infinite alternate; }
#ltf-sierra.is-on .sx-fishin::after { animation: sx-glint 1.1s ease-in-out 6.2s 1, sx-glint 1.1s ease-in-out 8.6s 1; }
@keyframes sx-leap { 0% { transform: translate(-70vw, 45vh) rotate(-35deg); } 40% { transform: translate(-22vw, -26vh) rotate(-12deg); } 62% { transform: translate(0, -30vh) rotate(8deg); } 82% { transform: translate(0, -10vh) rotate(-3deg); } 100% { transform: translate(0, -14vh) rotate(0); } }
@keyframes sx-bob { from { transform: translate(0, -14vh) rotate(0); } to { transform: translate(0, -16vh) rotate(-2deg); } }
@keyframes sx-glint { 0% { left: -40%; opacity: 0; } 15% { opacity: 1; } 100% { left: 120%; opacity: 0; } }
#ltf-sierra .sx-fx { position: absolute; inset: 0; pointer-events: none; }
#ltf-sierra .sx-fx i { position: absolute; width: var(--sz); height: var(--sz); margin: calc(var(--sz) / -2) 0 0 calc(var(--sz) / -2); background: var(--c); box-shadow: 0 0 6px var(--c); clip-path: polygon(50% 0, 62% 38%, 100% 50%, 62% 62%, 50% 100%, 38% 62%, 0 50%, 38% 38%); animation: sx-spark 1s ease-out forwards; }
@keyframes sx-spark { 0% { transform: translate(0,0) scale(.4) rotate(0); opacity: 1; } 60% { opacity: 1; } 100% { transform: translate(var(--dx), var(--dy)) scale(1.2) rotate(90deg); opacity: 0; } }
#ltf-sierra .sx-title { position: absolute; left: 0; right: 0; top: 56%; text-align: center; }
#ltf-sierra .sx-word { font-size: clamp(20px, 5.2vw, 52px); letter-spacing: .08em; color: #ffd27a; text-shadow: 3px 3px 0 #c8553d, 6px 6px 0 #2b1055; }
#ltf-sierra .sx-word span { display: inline-block; opacity: 0; transform: translateY(-14px); transition: opacity .25s ease, transform .35s cubic-bezier(.3,1.6,.5,1); }
#ltf-sierra .sx-word span.on { opacity: 1; transform: translateY(0); }
#ltf-sierra .sx-sub { margin-top: 18px; font-family: "Fredoka", "VT323", sans-serif; font-style: italic; font-size: clamp(16px, 2.6vw, 26px); letter-spacing: .3em; color: #9fd8ff; opacity: 0; }
#ltf-sierra.is-on .sx-sub { animation: sx-fade 1.2s ease 6.6s forwards; }
@keyframes sx-fade { to { opacity: 1; } }
#ltf-sierra button { position: absolute; z-index: 2; font: 10px/1.4 "Press Start 2P", monospace; color: #fff; background: rgba(0,0,0,.45); border: 2px solid rgba(255,255,255,.55); border-radius: 4px; padding: 8px 12px; cursor: pointer; }
#ltf-sierra .sx-skip { right: 16px; bottom: 16px; }
#ltf-sierra .sx-sound { left: 50%; top: 18px; transform: translateX(-50%); display: none; border-color: #ffd60a; color: #ffd60a; animation: sx-twinkle 1.2s steps(2) infinite; }
#ltf-sierra .sx-sound.is-on { display: block; }
#ltf-sierra.is-still .sx-fish { transform: translate(0, -14vh); animation: none !important; }
#ltf-sierra.is-still .sx-sun { transform: none; opacity: .95; animation: none !important; }
#ltf-sierra.is-still .sx-sub { opacity: 1; animation: none !important; }

/* ---------- v1.2.1: YouTube playlists button ---------- */
.ltf-yt-btn .wp-block-button__link { background: #ff3030 !important; color: #fff !important; border-color: #2b1055 !important; font-weight: 700; }
.ltf-yt-btn .wp-block-button__link:hover, .ltf-yt-btn .wp-block-button__link:focus-visible { background: #d81b1b !important; transform: rotate(-1.5deg) scale(1.03); }

/* ---------- v1.2.2: Music Bingo ---------- */
.ltf-bingo { max-width: 680px; margin: 0 auto; }
.ltf-bingo-lead { font-size: 1.15rem; line-height: 1.5; }
.ltf-bingo-yt { display: inline-block; background: #ff3030; color: #fff !important; text-decoration: none !important; font-weight: 700; padding: 10px 18px; border: 3px solid #2b1055; border-radius: 10px; box-shadow: 4px 4px 0 #2b1055; transition: transform .15s ease; }
.ltf-bingo-yt:hover, .ltf-bingo-yt:focus-visible { transform: translate(-2px, -2px) rotate(-1deg); }
.ltf-bingo-steps { line-height: 1.6; }
.ltf-bingo-gen { margin: 22px 0; padding: 18px 20px; background: #fff8ef; border: 3px solid #ff7f50; border-radius: 14px; box-shadow: 5px 5px 0 #2b1055; }
.ltf-bingo-row { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; font-weight: 700; }
.ltf-bingo-row input[type=number] { width: 76px; padding: 6px 8px; border: 2px solid #2b1055; border-radius: 6px; font: inherit; text-align: center; }
.ltf-bingo-row input[type=range] { flex: 1 1 180px; accent-color: #ff7f50; }
.ltf-bingo-check { display: block; margin: 12px 0; }
.ltf-bingo-btn { cursor: pointer; font: 700 1.05rem/1.2 "Fredoka", sans-serif; color: #2b1055; background: linear-gradient(180deg, #ffd60a, #ff9a1a); border: 3px solid #2b1055; border-radius: 999px; padding: 10px 22px; box-shadow: 4px 4px 0 #2b1055; }
.ltf-bingo-btn:hover:not(:disabled) { transform: translate(-2px, -2px); box-shadow: 6px 6px 0 #2b1055; }
.ltf-bingo-btn:disabled { opacity: .7; cursor: wait; }
.ltf-bingo-note { font-size: .85rem; opacity: .8; margin: 10px 0 0 !important; }
.ltf-bingo-donate { margin: 26px 0 10px; text-align: center; }
.ltf-bingo-donate-note { font-style: italic; margin-bottom: 12px !important; }
.ltf-bingo-home .wp-block-button__link { background: linear-gradient(180deg, #ffd60a, #ff9a1a) !important; color: #2b1055 !important; font-weight: 700; }

/* ---------- v1.2.3: bingo tagline + mood picker under the Nova Scotia map ---------- */
.ltf-bingo-tag { text-align: center; font-family: "Fredoka", sans-serif; font-weight: 700; font-style: italic; font-size: 1.15rem; color: #c8553d; margin: -6px 0 18px !important; }
.ltf-oh-mood { margin-top: 26px; text-align: center; }
.ltf-oh-mood h2.ltf-funky { font-size: clamp(20px, 2.1vw, 28px) !important; line-height: 1.15; margin: 0 0 12px !important; }
.ltf-oh-mood .wp-block-buttons { gap: 6px !important; justify-content: center; margin: 0 !important; }
.ltf-oh-mood .wp-block-button__link { padding: 5px 10px !important; font-size: .78rem !important; }

/* ---------- v1.2.4: YouTube playlists page ---------- */
.ltf-ytp-lead { font-size: 1.1rem; line-height: 1.5; }
.ltf-ytp-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 22px; margin: 22px 0; }
.ltf-ytp-card { display: flex; flex-direction: column; background: #fff8ef; border: 3px solid #2b1055; border-radius: 12px; overflow: hidden; box-shadow: 5px 5px 0 #2b1055; transition: transform .18s ease, box-shadow .18s ease; }
.ltf-ytp-card:hover { transform: translate(-2px, -3px) rotate(-.6deg); box-shadow: 7px 8px 0 #2b1055; }
.ltf-ytp-thumb { position: relative; display: block; aspect-ratio: 16 / 9; overflow: hidden; background: #111; border-bottom: 3px solid #2b1055; }
.ltf-ytp-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s ease; }
.ltf-ytp-card:hover .ltf-ytp-thumb img { transform: scale(1.06); }
.ltf-ytp-count { position: absolute; right: 8px; bottom: 8px; background: rgba(0,0,0,.78); color: #fff; font-size: .72rem; font-weight: 700; padding: 3px 7px; border-radius: 4px; }
.ltf-ytp-play { position: absolute; left: 50%; top: 50%; width: 52px; height: 36px; margin: -18px 0 0 -26px; display: grid; place-items: center; background: #ff3030; color: #fff; border-radius: 10px; font-size: 16px; opacity: .92; transition: transform .18s ease; }
.ltf-ytp-card:hover .ltf-ytp-play { transform: scale(1.12); }
.ltf-ytp-body { padding: 12px 14px 14px; display: flex; flex-direction: column; flex: 1; }
.ltf-ytp-title { font-family: "Fredoka", sans-serif; font-size: 1.05rem !important; line-height: 1.25; margin: 0 0 6px !important; }
.ltf-ytp-title a { color: #2b1055; text-decoration: none; }
.ltf-ytp-desc { font-size: .88rem; line-height: 1.45; margin: 0 0 10px !important; flex: 1; }
.ltf-ytp-links { margin: 0 !important; display: flex; flex-wrap: wrap; gap: 8px; }
.ltf-ytp-watch, .ltf-ytp-extra { font-size: .8rem; font-weight: 700; text-decoration: none !important; padding: 5px 10px; border-radius: 999px; border: 2px solid #2b1055; }
.ltf-ytp-watch { background: #ff3030; color: #fff !important; }
.ltf-ytp-extra { background: linear-gradient(180deg, #ffd60a, #ff9a1a); color: #2b1055 !important; }
.ltf-ytp-more { text-align: center; }

/* ---------- v1.2.5: Orange Highlights art strip in the sidebar ---------- */
.wp-block-column.ltf-has-artstrip { align-self: stretch !important; }
.ltf-artstrip { position: sticky; top: 90px; margin-top: 36px; padding: 12px 12px 14px; background: #fff8ef; border: 3px solid #ff7f50; border-radius: 14px; box-shadow: 5px 5px 0 #2b1055; text-align: center; }
.ltf-artstrip[hidden] { display: none; }
.ltf-as-head { display: block; font-family: "Fredoka", sans-serif; font-weight: 700; font-size: 1.15rem; color: #ff5e1a !important; text-decoration: none !important; text-shadow: 2px 2px 0 #2b1055; margin-bottom: 8px; }
.ltf-as-view { position: relative; height: min(70vh, 640px); overflow: hidden; -webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 40px, #000 calc(100% - 40px), transparent 100%); mask-image: linear-gradient(to bottom, transparent 0, #000 40px, #000 calc(100% - 40px), transparent 100%); }
.ltf-as-track { display: flex; flex-direction: column; gap: 22px; padding: 20px 0; animation: ltf-as-scroll 120s linear infinite; }
.ltf-artstrip:hover .ltf-as-track, .ltf-artstrip:focus-within .ltf-as-track { animation-play-state: paused; }
@keyframes ltf-as-scroll { from { transform: translateY(0); } to { transform: translateY(calc(-50% - 11px)); } }
.ltf-as-item { display: block; text-decoration: none !important; }
.ltf-as-item .ltf-frame { display: inline-block; width: 72%; }
.ltf-as-item .ltf-frame img { width: 100%; height: auto; display: block; }
.ltf-as-item:nth-child(odd) .ltf-frame { transform: rotate(-2deg); }
.ltf-as-item:nth-child(even) .ltf-frame { transform: rotate(2deg); }
.ltf-as-name { display: table; margin: 8px auto 0; padding: 3px 10px; font-family: "Cinzel Decorative", "Cinzel", Georgia, serif; font-weight: 700; font-size: .78rem; color: #2b1d07; background: linear-gradient(180deg, #e9cf7a, #b8892c); border-radius: 2px; box-shadow: 0 1px 2px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.45); }
.ltf-as-all { display: inline-block; margin-top: 10px; font-weight: 700; font-size: .85rem; color: #2b1055 !important; }
@media (prefers-reduced-motion: reduce) { .ltf-as-track { animation: none; } .ltf-as-view { overflow-y: auto; } }

/* ---------- v1.2.6: louder YouTube button + talking fish ---------- */
.ltf-yt-btn { position: relative; margin-top: 44px !important; }
.ltf-yt-btn .wp-block-button__link { font-size: 1.02em !important; padding: .75em 1.25em !important; border: 3px solid #2b1055 !important; box-shadow: 4px 4px 0 #2b1055; animation: ltf-yt-nudge 3.2s ease-in-out infinite; }
@keyframes ltf-yt-nudge { 0%, 82%, 100% { transform: rotate(0) scale(1); } 86% { transform: rotate(-2.5deg) scale(1.05); } 90% { transform: rotate(2.5deg) scale(1.05); } 94% { transform: rotate(-1deg) scale(1.02); } }
.ltf-yt-fish { position: absolute; right: -10px; top: -38px; width: 46px; pointer-events: none; animation: ltf-yt-bob 1.8s ease-in-out infinite alternate; }
.ltf-yt-fish svg { display: block; width: 46px; height: auto; transform: scaleX(-1); }
@keyframes ltf-yt-bob { from { transform: translateY(0) rotate(-4deg); } to { transform: translateY(-4px) rotate(4deg); } }
.ltf-yt-bubble { position: absolute; right: 48px; bottom: 6px; white-space: nowrap; background: #fff; color: #2b1055; border: 2px solid #2b1055; border-radius: 12px; padding: 3px 9px; font: 700 11px/1.3 "Fredoka", sans-serif; box-shadow: 2px 2px 0 #2b1055; transition: opacity .25s ease, transform .25s ease; }
.ltf-yt-bubble::after { content: ""; position: absolute; right: -12px; top: 50%; margin-top: -5px; border: 5px solid transparent; border-left: 7px solid #2b1055; }
.ltf-yt-bubble.is-swap { opacity: 0; transform: translateY(4px); }
@media (prefers-reduced-motion: reduce) { .ltf-yt-btn .wp-block-button__link, .ltf-yt-fish { animation: none; } }

/* ---------- v1.2.7: bingo playlist card + "Includes such hits as" ticker; pink 16-bit salmon shimmer ---------- */
.ltf-bingo-feature { max-width: 420px; margin: 18px auto 14px; }
.ltf-bt { display: flex; align-items: stretch; margin: 6px 0 22px; border: 3px solid #2b1055; border-radius: 10px; overflow: hidden; background: #2b1055; box-shadow: 4px 4px 0 #ff7f50; }
.ltf-bt-label { flex: 0 0 auto; display: flex; align-items: center; padding: 8px 12px; background: linear-gradient(180deg, #ffd60a, #ff9a1a); color: #2b1055; font: 700 .85rem/1.2 "Fredoka", sans-serif; white-space: nowrap; }
.ltf-bt-view { flex: 1; overflow: hidden; position: relative; -webkit-mask-image: linear-gradient(to right, transparent 0, #000 24px, #000 calc(100% - 24px), transparent 100%); mask-image: linear-gradient(to right, transparent 0, #000 24px, #000 calc(100% - 24px), transparent 100%); }
.ltf-bt-track { display: inline-flex; align-items: center; white-space: nowrap; padding: 9px 0; animation: ltf-bt-scroll 400s linear infinite; }
.ltf-bt:hover .ltf-bt-track { animation-play-state: paused; }
@keyframes ltf-bt-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.ltf-bt-track { width: max-content; flex-wrap: nowrap; }
.ltf-bt-item, .ltf-bt-dot { flex: 0 0 auto; white-space: nowrap !important; }
.ltf-bt-item { color: #fff; font-size: .9rem; padding: 0 4px; }
.ltf-bt-item b, .ltf-bt-item i, .ltf-bt-item em { white-space: nowrap; }
.ltf-bt-item b { color: #ffd60a; }
.ltf-bt-item i { color: #9fd8ff; font-style: normal; font-size: .82rem; }
.ltf-bt-item em { color: #ffb3c7; }
.ltf-bt-dot { color: #ff7f50; padding: 0 12px; font-size: .6rem; }
@media (prefers-reduced-motion: reduce) { .ltf-bt-track { animation: none; } .ltf-bt-view { overflow-x: auto; } }
#ltf-sierra .sx-fishsvg { filter: drop-shadow(0 0 10px rgba(255,160,190,.65)); animation: sx-pinkshimmer 1.6s ease-in-out infinite; }
@keyframes sx-pinkshimmer { 0%, 100% { filter: drop-shadow(0 0 8px rgba(255,150,185,.55)) brightness(1) saturate(1); } 50% { filter: drop-shadow(0 0 16px rgba(255,200,220,.9)) brightness(1.18) saturate(1.25); } }
#ltf-sierra .sx-fishin::after { background: linear-gradient(100deg, transparent, rgba(255,235,242,.95), transparent); }

/* ---------- v1.2.8: "What it says" handwriting transcription ---------- */
.ltf-art-words { max-width: 560px; margin: 26px auto 10px; padding: 16px 20px 18px; background: #fffdf6; border: 2px dashed #ff9a1a; border-radius: 12px; box-shadow: 4px 4px 0 rgba(43,16,85,.15); }
.ltf-art-words-head { margin: 0 0 8px !important; text-align: center; font: 700 .8rem/1.2 "Press Start 2P", monospace; letter-spacing: .08em; color: #ff5e1a; text-transform: uppercase; }
.ltf-art-words-text { margin: 0 !important; text-align: center; font-family: "Fredoka", sans-serif; font-size: 1rem; line-height: 1.6; color: #2b1055; }

/* ---------- v1.2.9: Marbles story page - full width, no sidebar ---------- */
body.page-id-1213 .wp-block-columns.alignwide:has(.wp-block-post-content) > .wp-block-column:not(:has(.wp-block-post-content)) { display: none !important; }
body.page-id-1213 .wp-block-columns.alignwide:has(.wp-block-post-content) > .wp-block-column:has(.wp-block-post-content) { flex-basis: 100% !important; max-width: 100% !important; }
body.page-id-1213 .wp-block-post-content { max-width: 1040px !important; width: 100% !important; margin-left: auto !important; margin-right: auto !important; }
body.page-id-1213 .wp-block-post-content > .wp-block-group.alignwide { max-width: 100% !important; }
body.page-id-1213 .wp-block-column:has(.wp-block-post-content) > .wp-block-post-title, body.page-id-1213 .wp-block-column:has(.wp-block-post-content) > h1 { text-align: center; margin-left: auto !important; margin-right: auto !important; }

/* ---------- v1.3.0: words in the star box + fish orchestra ---------- */
.ltf-has-words .ltf-side-words { position: relative; z-index: 3; padding: 6px 4px 64px; }
.ltf-has-words .ltf-art-words { margin: 0 0 14px; max-width: none; background: #fffdf6; border: 2px dashed #ff9a1a; }
.ltf-has-words .ltf-art-words-text { font-size: .92rem; line-height: 1.5; }
.ltf-side-btn { display: block; text-align: center; padding: 10px 14px; background: #000; color: #9fe0e0 !important; font: 700 .85rem/1.3 sans-serif; letter-spacing: .04em; text-transform: uppercase; text-decoration: none !important; border-radius: 4px; transition: transform .15s ease; }
.ltf-side-btn:hover, .ltf-side-btn:focus-visible { transform: translateY(-2px) scale(1.02); }
.ltf-orch { position: absolute; left: 0; right: 0; bottom: 10px; display: flex; justify-content: space-around; align-items: flex-end; height: 44px; pointer-events: none; }
.ltf-orch-fish { position: relative; width: 18px; animation: ltf-orch-bob .9s ease-in-out infinite alternate; }
.ltf-orch-fish svg { display: block; width: 100%; height: auto; }
.ltf-orch-fish.is-flip svg { transform: scaleX(-1); }
.ltf-orch-fish:nth-child(3n) { width: 14px; }
.ltf-orch-fish:nth-child(4n) { width: 21px; }
.ltf-orch-fish b { position: absolute; left: 50%; bottom: 100%; font-size: 11px; line-height: 1; color: #2b1055; opacity: 0; animation: ltf-orch-note 2.2s ease-out infinite; }
@keyframes ltf-orch-bob { from { transform: translateY(0) rotate(-6deg); } to { transform: translateY(-6px) rotate(6deg); } }
@keyframes ltf-orch-note { 0% { transform: translate(-50%, 4px); opacity: 0; } 20% { opacity: 1; } 100% { transform: translate(-30%, -26px) rotate(15deg); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .ltf-orch-fish, .ltf-orch-fish b { animation: none; } .ltf-orch-fish b { opacity: 1; } }

/* ---------- v1.3.1: Sound Club speaker card ---------- */
.ltf-speaker { max-width: 620px; margin: 28px auto; padding: 18px 22px 20px; background: #0d0f14; color: #e9fbff; border: 3px solid #2b1055; border-radius: 14px; box-shadow: 6px 6px 0 #ff7f50; }
.ltf-speaker-kicker { margin: 0 0 4px !important; font: 700 .72rem/1.2 "Press Start 2P", monospace; letter-spacing: .08em; color: #ffd60a; text-transform: uppercase; }
.ltf-speaker-title { margin: 0 0 10px !important; font-family: "Fredoka", sans-serif; font-size: 1.5rem !important; color: #9fd8ff; }
.ltf-speaker-list { margin: 0 0 12px; padding-left: 1.2em; line-height: 1.55; }
.ltf-speaker-list li::marker { content: "\266A  "; color: #ff7f50; }
.ltf-speaker-endorse { margin: 0 0 14px !important; color: #ffb3c7; }
.ltf-speaker-btn { display: inline-block; padding: 10px 18px; background: linear-gradient(180deg, #ffd60a, #ff9a1a); color: #2b1055 !important; font-weight: 700; text-decoration: none !important; border: 3px solid #2b1055; border-radius: 999px; box-shadow: 3px 3px 0 #e9fbff; }
.ltf-speaker-btn:hover, .ltf-speaker-btn:focus-visible { transform: translate(-2px, -2px) rotate(-1deg); }

/* ---------- v1.3.2: Marbles side fish scroll guide ---------- */
.ltf-sidefish { position: fixed; right: 4px; top: 0; z-index: 50; width: 46px; height: 320px; transition: transform .12s linear; filter: drop-shadow(2px 2px 0 rgba(43,16,85,.25)); }
.ltf-sidefish > svg { position: absolute !important; left: 50% !important; top: 50% !important; width: 320px !important; max-width: none !important; height: 44px !important; margin: 0 !important; transform: translate(-50%, -50%) rotate(-90deg) !important; pointer-events: none; }
.ltf-sidefish button { position: absolute; left: 0; width: 100%; height: 50%; padding: 0; border: 0; background: transparent; cursor: pointer; border-radius: 20px; }
.ltf-sf-head { top: 0; cursor: n-resize !important; }
.ltf-sf-tail { bottom: 0; cursor: s-resize !important; }
.ltf-sidefish button:hover, .ltf-sidefish button:focus-visible { background: rgba(255,214,10,.22); outline: none; }
.ltf-sidefish:not(.is-down) .ltf-sf-head { opacity: .6; }
@media (max-width: 781px) { .ltf-sidefish { width: 34px; height: 220px; right: 2px; } .ltf-sidefish > svg { width: 220px !important; height: 31px !important; } }
@media (prefers-reduced-motion: reduce) { .ltf-sidefish { transition: none; } }

/* ---------- v1.3.3: playlist posts - Spotify player first (level with Salmon Music), playlist logo tucked right above the write-up ---------- */
.wp-block-post-content:has(> figure.is-provider-spotify):has(> figure.wp-block-image:first-child) { display: flex; flex-direction: column; }
.wp-block-post-content:has(> figure.is-provider-spotify):has(> figure.wp-block-image:first-child) > * { order: 3; }
.wp-block-post-content:has(> figure.is-provider-spotify):has(> figure.wp-block-image:first-child) > figure.is-provider-spotify { order: 1; margin-top: 0 !important; margin-bottom: 0 !important; align-self: stretch; width: 100%; max-width: 100% !important; }
.wp-block-post-content:has(> figure.is-provider-spotify):has(> figure.wp-block-image:first-child) > figure.is-provider-spotify iframe { width: 100% !important; }
.wp-block-post-content:has(> figure.is-provider-spotify) > figure.wp-block-image:first-child { order: 2; margin-top: 18px !important; margin-bottom: 4px !important; }
.wp-block-post-content:has(> figure.is-provider-spotify):has(> figure.wp-block-image:first-child) > p:first-of-type { margin-top: 4px !important; }

/* ---------- v1.3.4: playlist logo + blurb row under the player ---------- */
.ltf-pl-intro { display: flex; align-items: center; gap: 18px; margin: 16px 0 8px !important; max-width: 100% !important; }
.ltf-pl-intro > figure { flex: 0 0 96px; width: 96px !important; margin: 0 !important; }
.ltf-pl-intro > figure img { width: 96px !important; height: auto !important; display: block; }
.ltf-pl-blurb { margin: 0 !important; font-family: "Fredoka", sans-serif; font-size: 1.08rem; line-height: 1.45; font-style: italic; color: #2b1055; }
@media (max-width: 480px) { .ltf-pl-intro { gap: 12px; } .ltf-pl-intro > figure, .ltf-pl-intro > figure img { flex-basis: 72px; width: 72px !important; } .ltf-pl-blurb { font-size: .98rem; } }
