/* Scoped, dependency-free luxury selectors and 2D squishy mascots. */
.ff-selector-host { display:block!important; grid-template-columns:none!important; width:100%; min-width:0; }
.ff-collection { --ff-gold:#f8d781; --ff-ink:#061c15; color:#fff5d6; font-family:system-ui,sans-serif; width:100%; min-width:0; }
.ff-collection * { box-sizing:border-box; }
.ff-theme-grid { border:0;margin:0;padding:12px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr));gap:16px; }
.ff-theme-grid legend {font-size:20px;font-weight:800;padding:0 0 12px;}
.ff-theme-choice {position:relative;display:block;min-width:0;cursor:pointer;}
.ff-theme-choice input {position:absolute;left:50%;top:50%;width:1px;height:1px;opacity:0;}
.ff-theme-tile {position:relative;display:flex;flex-direction:column;align-items:center;min-height:196px;padding:10px 8px 14px;border:1px solid #b38e4a;border-radius:18px;background:radial-gradient(ellipse at 50% 20%,#214c3c 0%,#0b281e 45%,#071811 80%);box-shadow:inset 0 1px 1px #f9e7a478,inset 0 -5px 8px #0009,0 4px 8px #0008;transition:border-color .2s,background .2s;}
.ff-theme-tile::before {content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;box-shadow:0 0 15px #efc45855,inset 0 0 14px #efc45820;opacity:.5;animation:ff-gold-breathe 2.6s ease-in-out infinite;animation-delay:var(--ff-delay,0s);}
.ff-badge-space {width:100%;height:145px;flex-shrink:0;display:block;padding:8px;overflow:visible;}
.ff-badge-idle {display:block;width:100%;height:100%;transform-origin:50% 78%;animation:ff-gold-wobble 5.2s ease-in-out infinite;animation-delay:var(--ff-delay,0s);}
.ff-squish-body {display:block;width:100%;height:100%;transform-origin:50% 85%;}
.ff-badge-image {display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 0 6px #f5cd6970);pointer-events:none;}
.ff-theme-name {position:relative;z-index:1;display:block;text-align:center;font-weight:800;font-size:15px;line-height:1.35;min-height:2.7em;align-content:center;overflow-wrap:anywhere;text-shadow:0 1px 3px #000;}
.ff-theme-tick {position:absolute;right:10px;top:10px;display:none;place-items:center;width:25px;height:25px;border:1px solid #fff3b2;border-radius:50%;background:linear-gradient(#ffe7a0,#b78025);color:#082218;font-size:18px;font-weight:900;box-shadow:0 0 13px #ffe18b99;}
.ff-theme-choice input:checked + .ff-theme-tile {border:2px solid #ffe5a1;padding:9px 7px 13px;background:radial-gradient(ellipse at 50% 20%,#38654a,#102a1f 55%,#08180f);}
.ff-theme-choice input:checked + .ff-theme-tile::before {box-shadow:0 0 19px #f3c85aaa,inset 0 0 18px #f3c85a33;opacity:1;}
.ff-theme-choice input:checked + .ff-theme-tile .ff-theme-tick {display:grid;}
.ff-theme-choice input:focus-visible + .ff-theme-tile {outline:3px solid white;outline-offset:4px;}
.ff-theme-choice:hover .ff-theme-tile {border-color:#fff0b9;}
.ff-theme-choice input:disabled + .ff-theme-tile {opacity:.45;cursor:not-allowed;}
.ff-theme-choice input:disabled + .ff-theme-tile * {animation:none!important;}
.ff-theme-choice input:disabled + .ff-theme-tile::before {animation:none!important;}
.ff-art-pending {display:grid;height:100%;place-items:center;color:#e8d6a5;font-size:14px;text-align:center;}
.ff-squish-pair {display:flex;justify-content:center;gap:18px;align-items:center;min-height:124px;margin-top:4px;}
.ff-squish-button {position:relative;display:block;border:0;background:transparent;width:112px;height:116px;padding:8px;cursor:pointer;color:inherit;}
.ff-squish-button:focus-visible {outline:3px solid #ffe5a1;border-radius:22px;outline-offset:3px;}
.ff-squish-button .ff-badge-idle {animation:ff-squish-idle 2.6s ease-in-out infinite;animation-delay:var(--ff-delay,0s);}
.ff-squish-button:active .ff-badge-image {filter:drop-shadow(0 0 16px #ffe7a0);}
.ff-is-squishing {animation:ff-tap-squish 620ms ease-out!important;}
.ff-motion-button {font:inherit;font-size:14px;min-height:44px;margin:0 12px 4px;padding:10px 16px;border:1px solid #c09c51;border-radius:10px;color:#fff0c4;background:linear-gradient(#254334,#0c2117);cursor:pointer;}
.ff-motion-button:focus-visible {outline:3px solid white;outline-offset:3px;}
.ff-collection > [role="status"] {margin:8px 12px 0;color:#f8d781;font-weight:800;text-align:center;}
.ff-collection[data-motion="off"] *, .ff-collection[data-motion="off"] *::before,
.ff-collection[data-offscreen="true"] *, .ff-collection[data-offscreen="true"] *::before {animation:none!important;}
@keyframes ff-gold-breathe {0%,100%{opacity:.35}50%{opacity:1}}
@keyframes ff-gold-wobble {0%,76%,100%{transform:rotate(0) translateY(0)}80%{transform:rotate(-2.2deg) translateY(-2px)}84%{transform:rotate(2.2deg) translateY(-2px)}88%{transform:rotate(-1.3deg)}92%{transform:rotate(1deg)}96%{transform:rotate(0)}}
@keyframes ff-squish-idle {0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-5px) rotate(1deg)}}
@keyframes ff-tap-squish {0%{transform:scale(1)}20%{transform:scale(1.12,.84)}44%{transform:scale(.94,1.08)}68%{transform:scale(1.04,.97)}100%{transform:scale(1)}}
@media(max-width:480px){.ff-theme-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:6px}.ff-badge-space{height:112px;padding:5px}.ff-theme-tile{min-height:164px}.ff-theme-name{font-size:14px}.ff-squish-pair{min-height:98px;gap:10px}.ff-squish-button{width:88px;height:92px}.ff-motion-button{margin-inline:6px}}
@media(prefers-reduced-motion:reduce){.ff-collection *, .ff-collection *::before{animation:none!important;transition:none!important}.ff-theme-tile::before{opacity:.55}}
