:root{font-family:Fredoka,Trebuchet MS,Arial,sans-serif;line-height:1.35;color:#2f2b3a;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--sky: #bfe4ff;--lavender: #e7d9ff;--peach: #ffd7c2;--mint: #d8f5e7;--ink: #2f2b3a;--soft-ink: #5b5566;--shadow: 0 12px 30px rgba(64, 44, 110, .12);--bg-gradient: radial-gradient(circle at top left, var(--sky), transparent 60%), radial-gradient(circle at top right, var(--peach), transparent 55%), radial-gradient(circle at bottom left, var(--mint), transparent 52%), radial-gradient(circle at bottom right, var(--lavender), transparent 60%), #f7f3ff}*{box-sizing:border-box}html,body,#root{width:100%;height:100%}body{margin:0;overflow:hidden;background:var(--bg-gradient)}button{font-family:inherit}.primary{border:none;border-radius:16px;padding:12px 20px;font-size:1.05rem;background:linear-gradient(135deg,var(--sky),var(--lavender));color:#1f1c2b;box-shadow:0 10px 18px #5a66cf33;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.primary:hover{transform:translateY(-1px);box-shadow:0 14px 20px #5a66cf3d}.start-button{justify-self:center;display:inline-flex;align-items:center;gap:6px}.button-icon{width:20px;height:20px}.secondary{border:2px solid rgba(47,43,58,.15);border-radius:16px;padding:10px 18px;font-size:1.05rem;background:#ffffffd1;color:var(--ink);cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;box-shadow:0 8px 14px #402c6e1a}.secondary:hover{transform:translateY(-1px);box-shadow:0 12px 16px #402c6e24}.app{height:100dvh;max-width:1180px;margin:0 auto;padding:12px 16px 16px;display:flex;flex-direction:column;gap:10px;overflow:hidden}.top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-radius:18px;background:#ffffff9e;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.top .logo-badge{width:84px;height:84px}.top .logo-image{width:80px;height:80px}.brand{min-width:0;display:flex;align-items:center;gap:10px}.logo-badge{width:56px;height:56px;border-radius:0;background:transparent;color:inherit;display:grid;place-items:center;box-shadow:none;flex-shrink:0}.logo-image{width:52px;height:52px;display:block;object-fit:contain}.logo-badge.is-large{width:144px;height:96px;border-radius:18px}.logo-badge.is-large .logo-image{width:132px;height:88px}.title{min-width:0}.title h1{margin:0;font-size:clamp(1.08rem,2.2vw,1.65rem)}.subtitle{margin:2px 0 0;color:var(--soft-ink);font-size:clamp(1.02rem,1.5vw,1.12rem);white-space:normal;overflow:hidden;text-overflow:ellipsis}.controls{display:flex;align-items:center;flex-shrink:0;gap:8px}.sound-toggle{width:42px;height:42px;border-radius:14px;border:2px solid transparent;display:grid;place-items:center;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;background:#ffffffd1;box-shadow:0 8px 14px #402c6e1f}.sound-toggle svg{width:22px;height:22px}.sound-toggle.is-on{border-color:#42a87873;color:#2f7a57}.sound-toggle.is-off{border-color:#dc545e73;color:#c44650}.sound-toggle:hover{transform:translateY(-1px);box-shadow:0 12px 18px #402c6e29}.status-dock{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;background:#ffffff94;border-radius:20px;padding:8px;box-shadow:var(--shadow)}.status-item{min-width:0;text-align:center;border-radius:16px;padding:8px 6px;background:#ffffffe6;border:1px solid rgba(47,43,58,.07);color:var(--soft-ink);display:flex;flex-direction:column;gap:2px}.status-item.level{background:linear-gradient(145deg,#e5f2ff,#cfe7ff)}.status-item.pairs{background:linear-gradient(145deg,#e9f8e7,#d9f2d2)}.status-item.time{background:linear-gradient(145deg,#fff0d9,#ffe4bf)}.status-item.moves{background:linear-gradient(145deg,#f0e8ff,#e5d9ff)}.status-item span{font-size:1.05rem;white-space:normal}.status-icon{display:none;color:var(--ink);width:20px;height:20px;flex:0 0 auto}.status-item strong{color:var(--ink);font-size:1.08rem;white-space:normal}.main-content{flex:1;min-height:0;display:flex;overflow:hidden}.main-content.is-welcome{align-items:center;justify-content:center}.main-content.is-game{background:transparent}.welcome{width:min(100%,860px);margin:0 auto;border-radius:24px;background:#ffffffe6;box-shadow:var(--shadow);padding:clamp(14px,2.6vh,22px);display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:1rem;height:auto;max-height:min(92dvh,720px);overflow:hidden;justify-items:center}.welcome-brand{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;width:100%;text-align:center}.welcome h1{margin:0;font-size:clamp(1.35rem,3.1vw,2.2rem)}.welcome p{margin:0;color:var(--soft-ink);font-size:1.06rem}.character-selector{display:grid;grid-template-rows:auto minmax(0,1fr);gap:.5rem;min-height:0;overflow:hidden;position:relative;width:min(100%,760px)}.character-selector h2{margin:0;font-size:1.3rem;color:var(--soft-ink);font-weight:600;text-align:center}.character-list{list-style:none;margin:0;padding:0 4px 58px 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;width:100%}.character-scroll-hint{position:absolute;left:50%;bottom:8px;transform:translate(-50%);width:44px;height:44px;border-radius:999px;border:1px solid rgba(97,91,110,.2);background:#ffffffe0;box-shadow:0 10px 18px #402c6e2e;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:grid;align-content:center;justify-items:center;gap:2px;pointer-events:none;z-index:2;opacity:1;transition:opacity .2s ease,transform .2s ease}.character-scroll-hint.is-hidden{opacity:0;transform:translate(-50%,6px) scale(.92)}.scroll-chevron{width:12px;height:12px;border-right:3px solid rgba(73,67,89,.9);border-bottom:3px solid rgba(73,67,89,.9);transform:rotate(45deg);animation:scroll-chevron-drop 1.15s ease-in-out infinite}.scroll-chevron:last-child{margin-top:-8px;animation-delay:.14s}@keyframes scroll-chevron-drop{0%{transform:translateY(-4px) rotate(45deg);opacity:0}30%{opacity:1}to{transform:translateY(7px) rotate(45deg);opacity:0}}.character-item{margin:0;padding:0}.character-option{border:2px solid rgba(47,43,58,.13);border-radius:16px;padding:9px;display:grid;gap:6px;cursor:pointer;background:#fffc}.character-option:has(input:checked){border-color:#7171e78c;background:#eaeaffd9;box-shadow:0 8px 14px #504ebb24}.character-option-head{display:flex;align-items:center;gap:8px}.character-option-head input{margin:0}.character-option-head h3{margin:0;font-weight:700;font-size:1.18rem}.character-preview{display:flex;gap:6px}.preview-avatar{width:56px;height:56px;border-radius:10px;border:1px solid rgba(47,43,58,.15);background:#ffffffe0;padding:3px;object-fit:contain}.preview-more{display:grid;place-items:center;color:var(--soft-ink);background:linear-gradient(145deg,#f0f5ff,#e7eeff);border-style:dashed}.preview-more-icon{width:22px;height:22px}.board-wrap{width:100%;height:100%;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden;background:transparent}.board{display:grid;--columns: 4;--card-size: 100px;--board-gap: 10px;grid-template-columns:repeat(var(--columns),var(--card-size));gap:var(--board-gap);justify-content:center;align-content:center;width:max-content;max-width:100%;max-height:100%;background:transparent}.card{border:none;padding:0;background:transparent;cursor:pointer;perspective:900px;width:var(--card-size);height:calc(var(--card-size) * 1.25);transition:transform .15s ease}.card:disabled{cursor:default}.card-inner{display:block;width:100%;height:100%;position:relative;transform-style:preserve-3d;transition:transform .5s ease}.card.is-flipped .card-inner,.card.is-matched .card-inner{transform:rotateY(180deg)}.card.is-selected{transform:translateY(-1px) scale(1.02)}.card.is-selected .card-back{box-shadow:0 0 0 3px #7c7cef59,0 0 18px #7c7cef38}.card.is-shaking{animation:wrong-pair-shake .34s ease-in-out 1}@keyframes wrong-pair-shake{0%,to{transform:translate(0)}20%{transform:translate(-4px)}40%{transform:translate(4px)}60%{transform:translate(-3px)}80%{transform:translate(3px)}}.card-face{position:absolute;inset:0;border-radius:18px;backface-visibility:hidden;display:grid;place-items:center;box-shadow:var(--shadow)}.card-front{background:linear-gradient(135deg,#fff,#eef7ff);border:2px dashed rgba(47,43,58,.12)}.card-mark{font-size:clamp(1.4rem,2.5vw,2.2rem);color:#2f2b3a73}.card-back{transform:rotateY(180deg);border:2px solid rgba(47,43,58,.1);display:flex;flex-direction:column;gap:8px;padding:8px;text-align:center;align-items:center;justify-content:center}.character-image{width:100%;max-height:calc(100% - 30px);object-fit:contain;filter:drop-shadow(0 5px 8px rgba(47,43,58,.16))}.name{font-size:1rem;font-weight:600;color:var(--ink);line-height:1.1;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card.is-matched .card-back{box-shadow:0 0 0 3px #fff9 inset}@media(prefers-reduced-motion:reduce){.card.is-shaking{animation:none}.scroll-chevron{animation:none;opacity:.85}}@media(max-width:860px){.app{padding:10px 10px 12px;gap:8px}.title h1{font-size:clamp(1.06rem,4.6vw,1.3rem)}.subtitle{font-size:1.02rem}.status-dock{padding:4px;gap:4px}.status-item{padding:7px 4px}.character-selector{gap:.45rem}.character-scroll-hint{bottom:6px;width:40px;height:40px}.character-list{grid-template-columns:1fr}}@media(max-width:560px){.top{padding:8px 10px}.top .logo-badge{width:64px;height:64px}.top .logo-image{width:60px;height:60px}.status-dock{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.status-item{flex-direction:row;align-items:center;justify-content:center;gap:6px;padding:8px 4px}.status-label{display:none}.status-icon{display:inline-flex;align-items:center;justify-content:center;font-size:20px}.status-item strong{line-height:1}.logo-badge{width:46px;height:46px;border-radius:0}.logo-image{width:42px;height:42px}.logo-badge.is-large{width:120px;height:80px;border-radius:0}.logo-badge.is-large .logo-image{width:110px;height:72px}.sound-toggle{width:38px;height:38px;border-radius:12px}.sound-toggle svg{width:22px;height:22px}.preview-avatar{width:46px;height:46px}.welcome{margin:0 auto;border-radius:18px;max-height:min(92dvh,680px);padding:12px}.main-content.is-game,.board-wrap,.board{background:transparent!important}.card-face{box-shadow:none}}dialog[open]{margin:auto;border:none;border-radius:24px;background:#fff;padding:1rem;text-align:center;width:min(calc(100% - 1rem),28rem);height:fit-content;max-height:none;overflow:visible;box-shadow:#0000001a 0 10px 15px -3px,#0000000d 0 4px 6px -2px;display:grid;grid-auto-rows:min-content;align-content:start;gap:1rem;transition:opacity .2s ease,transform .2s ease}@starting-style{dialog[open]{opacity:0;transform:scale(.95)}}dialog[open]>*{margin:0}dialog::backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:.85;transition:opacity .2s ease,backdrop-filter .2s ease}@starting-style{dialog::backdrop{opacity:0;-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0)}}.dialog-title{margin:0;font-size:clamp(1.4rem,4.2vw,1.95rem)}.dialog-message{margin:0;font-size:1.06rem;color:var(--soft-ink)}.dialog-header{display:grid;gap:.45rem}.dialog-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:.35rem 0}.dialog-stat{border-radius:14px;padding:.55rem .45rem;color:var(--soft-ink);display:grid;gap:.2rem;border:1px solid rgba(47,43,58,.07)}.dialog-stat.level{background:linear-gradient(145deg,#e5f2ff,#cfe7ff)}.dialog-stat.pairs{background:linear-gradient(145deg,#e9f8e7,#d9f2d2)}.dialog-stat.time{background:linear-gradient(145deg,#fff0d9,#ffe4bf)}.dialog-stat.moves{background:linear-gradient(145deg,#f0e8ff,#e5d9ff)}.dialog-stat span{font-size:1.05rem}.dialog-stat strong{font-size:1.1rem;color:var(--ink)}.actions{display:flex;gap:.5rem;justify-content:center;align-items:center;flex-wrap:wrap}.actions .primary,.actions .secondary{width:auto;min-height:0;padding:10px 16px;flex:0 0 auto}@media(max-width:560px){dialog[open]{padding:.85rem;gap:.5rem;width:min(calc(100% - .75rem),26rem)}.actions{gap:.45rem}.actions .primary,.actions .secondary{width:auto;padding:9px 14px}}
