
:root{--ink:#383347;--muted:#70697b;--paper:#fffaf6;--line:#f2e8df;--title:'League Spartan',system-ui,sans-serif;--text:'Sniglet',system-ui,sans-serif}
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0;background:transparent;max-width:100%;overflow-x:clip}
body{font-family:var(--text);color:var(--ink);-webkit-tap-highlight-color:transparent}
[hidden]{display:none!important}
button{font:inherit}
button:focus-visible{outline:3px solid #7063af;outline-offset:3px}
.app{max-width:1100px;width:100%;margin:0 auto}
.selection{background:radial-gradient(ellipse at 0 35%,rgba(222,206,240,.2),transparent 35%),radial-gradient(ellipse at 100% 70%,rgba(191,226,207,.25),transparent 36%),var(--paper);border:1px solid var(--line);border-radius:22px;padding:clamp(20px,3.2vw,34px);box-shadow:0 3px 14px rgba(89,67,101,.055)}
.page-header{text-align:center;margin-bottom:30px}.header-decor{display:inline-grid;place-items:center;width:33px;height:33px;color:#947cb0;background:#ece1f5;border-radius:50%;font-size:20px;margin-bottom:7px}
.page-header h1{font:800 clamp(32px,5vw,44px)/1.05 var(--title);letter-spacing:-.04em;margin:0 0 8px;color:#5c4a79}
.page-header p{color:#6a6172;font-size:clamp(15px,2vw,18px);margin:0}
.sets{max-width:860px;margin:0 auto}.sets-heading{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin:0 0 14px}.sets-heading h2{font:700 clamp(22px,2.8vw,28px)/1 var(--title);letter-spacing:-.02em;color:#544764;margin:0}.sets-heading span{font-size:14px;color:#867c8e}
.set-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.set-card{width:100%;display:flex;flex-direction:column;text-align:left;cursor:pointer;border:1px solid #e6dfe8;border-radius:20px;background:#fff;padding:0;overflow:hidden;box-shadow:0 4px 12px rgba(70,52,70,.055);transition:transform .17s ease,box-shadow .17s ease,border-color .17s ease}
.set-card:hover{transform:translateY(-3px);box-shadow:0 8px 20px rgba(70,52,70,.11);border-color:#c9b6da}.set-card:active{transform:translateY(-1px)}
.set-card__art{height:clamp(142px,19vw,200px);width:100%;display:flex;justify-content:center;align-items:center;gap:clamp(3px,.8vw,13px);overflow:hidden;padding:10px clamp(8px,1.6vw,16px)}
.set-card--one .set-card__art{background:linear-gradient(120deg,#f6e8f8,#e8f3ee)}.set-card--two .set-card__art{background:linear-gradient(120deg,#fbe9e6,#f3e9dd)}
.set-card__art img{width:min(31%,132px);height:93%;object-fit:contain;filter:drop-shadow(0 2px 2px rgba(95,75,90,.05));user-select:none;pointer-events:none}
.set-card__art img:nth-child(1){transform:rotate(-4deg)}.set-card__art img:nth-child(2){transform:translateY(-4px)}.set-card__art img:nth-child(3){transform:rotate(4deg)}
.set-card__info{padding:16px 18px 4px;display:flex;flex-direction:column;gap:3px}.set-card__info strong{font:700 clamp(23px,2.8vw,30px)/1.05 var(--title);color:#554969}.set-card__info small{font-size:clamp(13px,1.6vw,16px);color:#827988}
.set-card__play{margin:11px 18px 17px;display:inline-flex;align-items:center;justify-content:space-between;gap:8px;min-width:89px;align-self:flex-start;background:#e9dff5;color:#57496c;border-radius:99px;padding:8px 15px;font-size:16px}.set-card--two .set-card__play{background:#e5f1e6;color:#4c6658}.set-card__play span{font-size:23px;line-height:.8}
.selection-note{text-align:center;color:#867e8b;font-size:14px;margin:25px 0 0}.footprints{text-align:center;letter-spacing:16px;opacity:.35;font-size:17px;margin:15px 0 0}.footprints span{display:inline-block;transform:rotate(-18deg)}
.play-header{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:0 3px 10px}.back-button{display:inline-flex;align-items:center;gap:7px;cursor:pointer;color:#675574;border:1px solid #eadfea;background:#f8f2fb;padding:8px 15px;border-radius:999px;font-size:15px}.back-button:hover{background:#efe3f5}.back-button span{font-size:24px;line-height:15px}.current-set{color:#6e6178;font-family:var(--title);font-size:18px;font-weight:600}
#game-frame{display:block;border:0;border-radius:22px;width:100%;height:1000px;max-width:100%;overflow:hidden;background:transparent}
@media(max-width:600px){.selection{padding:19px 14px;border-radius:17px}.page-header{margin-bottom:21px}.set-grid{grid-template-columns:1fr;gap:14px}.set-card__art{height:134px}.set-card__art img{max-width:110px}.set-card__info{padding:12px 15px 0}.set-card__play{margin:9px 15px 14px}.play-header{padding:0 2px 8px}.current-set{font-size:16px}.back-button{padding:9px 12px;font-size:14px}}
@media(prefers-reduced-motion:reduce){.set-card{transition:none}}

/* New Food category, same approved pastel menu card design. */
.sets--food { margin-top:26px; }
.set-card--food .set-card__art {background:linear-gradient(120deg,#fff0e7,#e7f2e9)}
.set-card--food .set-card__play {background:#f8e6d5;color:#715c4d}
@media(max-width:600px){.sets--food{margin-top:22px}}

/* Clothes vocabulary: same menu styling, gently different pastel accent. */
.sets--clothes{margin-top:26px}
.set-card--clothes .set-card__art{background:linear-gradient(120deg,#efe6f8,#fcebe6)}
.set-card--clothes .set-card__play{background:#e6e1f4;color:#564d71}
@media(max-width:600px){.sets--clothes{margin-top:22px}}
