*,*:before,*:after{box-sizing:border-box}body{font-family:system-ui,sans-serif}.hidden{display:none!important}.board{position:relative;width:min(94vw,434px,50.4svh);aspect-ratio:7 / 10;margin:0 auto;padding:25px 28px 24px;border-radius:18px;background:linear-gradient(160deg,#4b2528,#28141c);border:0;box-shadow:0 8px #512716,0 12px 26px #0c050a57;display:grid;grid-template-columns:repeat(7,1fr);grid-template-rows:repeat(10,minmax(0,1fr));gap:4px;touch-action:none;overflow:hidden;contain:layout paint size}.board:before{content:"";position:absolute;inset:0;z-index:3;box-sizing:border-box;border:25px solid transparent;border-width:25px 28px 24px;border-image-source:url(assets/board-frame-7x10.webp);border-image-slice:88;border-image-width:25px 28px 24px;border-image-repeat:stretch;border-radius:inherit;pointer-events:none}.tile{position:relative;z-index:1;min-width:0;aspect-ratio:1;border:0;padding:0;border-radius:8px;display:grid;place-items:center;color:#fff;font-size:clamp(.95rem,5.5vw,2.15rem);text-shadow:0 2px 0 rgba(0,0,0,.2);box-shadow:inset 0 -5px #0000002e,0 4px 8px #00000029;transform:translateZ(0);will-change:transform,opacity,filter;transition:transform .15s ease,filter .15s ease,opacity .18s ease}.snack-image{width:78%;height:78%;object-fit:contain;pointer-events:none;user-select:none;-webkit-user-drag:none;filter:drop-shadow(0 5px 5px rgba(44,22,14,.24))}.tile.dropping{animation:snack-drop-move .34s cubic-bezier(.2,.86,.25,1.08) both}.tile.selected{outline:4px solid rgba(255,255,255,.9);transform:scale(1.06)}.tile:focus-visible{outline:4px solid #1454c8;outline-offset:-2px}.result-card button:focus,.result-card a:focus{outline:4px solid #1454c8;outline-offset:3px}.tile.matching{filter:brightness(1.45);opacity:.18;transform:scale(.58) rotate(5deg)}.match-spark{position:absolute;z-index:4;width:clamp(42px,12vw,62px);height:clamp(42px,12vw,62px);margin:calc(clamp(42px,12vw,62px)/-2) 0 0 calc(clamp(42px,12vw,62px)/-2);background-image:var(--burst-image);background-repeat:no-repeat;background-size:400% 100%;background-position:0 0;pointer-events:none;animation:snack-spark-burst .34s steps(4) both,snack-spark-pop .34s ease-out both;filter:drop-shadow(0 7px 8px rgba(73,33,8,.22))}.score-pop{animation:snack-score-pop .28s ease}.tile-0{background:linear-gradient(180deg,#ff8aa0,#e84a68)}.tile-1{background:linear-gradient(180deg,#ffe782,#f2a83c)}.tile-2{background:linear-gradient(180deg,#8ff0c0,#31b779)}.tile-3{background:linear-gradient(180deg,#a7d4ff,#4a8fe7)}.tile-4{background:linear-gradient(180deg,#d7b6ff,#8856d9)}.tile-5{background:linear-gradient(180deg,#ffd7a8,#d87a3b)}.result-stars{min-height:42px;color:#ffe36f;font-size:2rem;letter-spacing:4px;text-align:center;text-shadow:0 0 16px rgba(255,227,111,.7)}.skill-report{display:grid;gap:8px;padding:12px;border-radius:8px;background:#ffffff1a;border:1px solid rgba(255,255,255,.14)}.skill-report strong{font-size:1rem;text-align:left}.skill-line,.progress-line{display:flex;justify-content:space-between;gap:12px;color:#fff1c4;font-weight:800}.skill-line i,.progress-line i{color:#ffe36f;font-style:normal;white-space:nowrap}.progress-message,.progress-note{color:#f7dfad;font-size:.84rem;line-height:1.35;text-align:left}.progress-note{opacity:.78}.leave-confirm-card{width:min(100%,410px);display:grid;gap:14px;padding:20px;border:1px solid rgba(255,255,255,.2);border-radius:12px;background:#fff8e8;color:#272033;box-shadow:0 24px 60px #00000061}.leave-confirm-card strong{font-size:30px;line-height:1.05;text-align:center}.leave-confirm-card p{margin:0;font-size:16px;font-weight:800;line-height:1.4}.leave-confirm-card>div{display:grid;grid-template-columns:1fr 1fr;gap:10px}.leave-confirm-card button{min-height:50px;background:#ffe28a;color:#352314;font-weight:1000}.leave-confirm-card #leaveStageBtn{background:#fff;box-shadow:inset 0 0 0 2px #6a526d}.leave-confirm-card button:focus{outline:5px solid #6fe3a8;outline-offset:3px}@keyframes snack-drop-move{0%{opacity:.98;transform:translateY(var(--drop)) scale(.98)}78%{transform:translateY(4%) scale(1.02)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes snack-spark-pop{0%{opacity:0;transform:scale(.45)}38%{opacity:1;transform:scale(1.2)}to{opacity:0;transform:translateY(-26px) scale(.72)}}@keyframes snack-spark-burst{0%{background-position:0 0}to{background-position:100% 0}}@keyframes snack-score-pop{0%{transform:scale(1);color:#fff8e8}55%{transform:scale(1.26);color:#ffe36f;text-shadow:0 0 14px rgba(255,227,111,.85)}to{transform:scale(1);color:#fff8e8}}@media(prefers-reduced-motion:reduce){.tile,.match-spark,.score-pop{animation:none;transition:none}}
