:root{
  --ground:#DFF5E8;
  --ground-2:#C6ECD6;
  --ink:#24394A;
  --muted:#5D7385;
  --paper:#FFFFFF;
  --line:rgba(36,57,74,.12);
  --leaf:#2DB75A;
  --leaf-dark:#1E8A41;
  --sun:#FFC529;
  --sun-dark:#D99A00;
  --bad:#E5484D;
  --font:"Baloo 2", "Comic Sans MS", "Segoe UI", system-ui, sans-serif;
  color-scheme:light;
}
*{box-sizing:border-box}
html,body{background:var(--ground)}
body{
  margin:0;color:var(--ink);font:16px/1.35 var(--font);padding-inline:16px;padding-block:10px 14px;-webkit-tap-highlight-color:transparent;
  background:linear-gradient(180deg, #CFEFFF 0%, var(--ground) 40%);
  min-height:100vh;
}
.app{max-width:1000px;margin-inline:auto;display:grid;gap:12px}

.bar{display:flex;align-items:center;justify-content:space-between;gap:12px}
.back{color:var(--ink);text-decoration:none;font-weight:700;font-size:15px;padding:6px 14px;border-radius:999px;background:rgba(255,255,255,.8)}
.title{margin:0;font-weight:800;font-size:clamp(1.3rem,3.6vw,2rem)}
.bar-actions{display:flex;gap:8px;align-items:center}
.learned{font-weight:800;background:rgba(255,255,255,.8);padding:6px 12px;border-radius:999px;font-variant-numeric:tabular-nums}
.icon-btn{width:44px;height:44px;border-radius:50%;border:0;background:rgba(255,255,255,.8);display:grid;place-items:center;cursor:pointer;color:var(--ink);padding:0}
.icon-btn span{display:grid;place-items:center}
.icon-btn span[hidden]{display:none}
.icon-btn svg{width:24px;height:24px}
button{font:inherit;cursor:pointer}
:focus-visible{outline:4px solid var(--ink);outline-offset:3px}

.modes{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.mode{border:0;border-radius:20px;background:rgba(255,255,255,.75);color:var(--muted);display:flex;align-items:center;justify-content:center;gap:8px;padding:10px;font-size:1.15rem;box-shadow:0 4px 0 var(--line)}
.mode span{font-size:1.8rem;line-height:1}
.mode[aria-selected="true"]{background:var(--leaf);color:#fff;box-shadow:0 4px 0 var(--leaf-dark)}

.view{display:grid;gap:14px}
.view[hidden]{display:none}

/* harf blokları */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:10px}
.tile{
  --c:#FF7A6B;--cd:#D95243;
  position:relative;border:0;border-radius:18px;background:var(--c);color:#fff;aspect-ratio:1;
  font-size:clamp(2.4rem,7vw,3.2rem);font-weight:800;line-height:1;display:grid;place-items:center;padding:0;
  box-shadow:0 6px 0 var(--cd), inset 0 0 0 5px rgba(255,255,255,.28);text-shadow:0 3px 0 rgba(0,0,0,.14);
  transition:transform .08s;
}
.tile:active{transform:translateY(4px);box-shadow:0 2px 0 var(--cd), inset 0 0 0 5px rgba(255,255,255,.28)}
.tile .emo{position:absolute;right:6px;bottom:4px;font-size:22px;text-shadow:none}
.tile .ok{position:absolute;left:6px;top:4px;font-size:16px;background:#fff;color:var(--leaf-dark);border-radius:50%;width:22px;height:22px;display:grid;place-items:center;text-shadow:none}

.stars{display:flex;gap:6px;justify-content:center;min-height:36px;font-size:28px;line-height:1}
.stars i{font-style:normal;opacity:.25;filter:grayscale(1)}
.stars i.on{opacity:1;filter:none;animation:pop .35s ease}
@keyframes pop{0%{transform:scale(.3)}70%{transform:scale(1.25)}100%{transform:scale(1)}}

.q-card{background:var(--paper);border-radius:28px;padding:18px;display:grid;justify-items:center;gap:8px;box-shadow:0 8px 0 var(--line)}
.pic{border:0;background:#F3FBF6;border-radius:24px;width:clamp(150px,34vw,220px);aspect-ratio:1;font-size:clamp(90px,22vw,140px);line-height:1;display:grid;place-items:center;padding:0;font-family:"Segoe UI Emoji","Apple Color Emoji","Noto Color Emoji",sans-serif}
.q-text{margin:0;font-weight:800;font-size:clamp(1.3rem,4vw,1.8rem);text-align:center;text-wrap:balance}

.options{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.options .tile{width:clamp(96px,26vw,140px);font-size:clamp(3.4rem,11vw,5rem)}
.tile.good{--c:var(--leaf);--cd:var(--leaf-dark);animation:bounce .5s ease}
.tile.nope{--c:#B8C2CC;--cd:#8F9AA6;animation:shake .4s ease}
.tile.used{visibility:hidden}
@keyframes bounce{40%{transform:translateY(-14px)}}
@keyframes shake{25%{transform:translateX(-8px)}75%{transform:translateX(8px)}}

.slots{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.slot{width:clamp(48px,12vw,70px);height:clamp(56px,14vw,80px);border-radius:14px;border:4px dashed rgba(36,57,74,.25);display:grid;place-items:center;font-weight:800;font-size:clamp(2rem,7vw,3rem);color:var(--ink)}
.slot.filled{border-style:solid;border-color:var(--leaf);background:#E7F8ED;animation:pop .3s ease}
.tiles .tile{width:clamp(72px,18vw,100px);font-size:clamp(2.4rem,8vw,3.6rem)}

/* harf kartı */
.overlay{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding-inline:16px;padding-block:16px;background:rgba(36,57,74,.45);overflow-y:auto}
.overlay[hidden]{display:none}
.letter-card{position:relative;width:100%;max-width:560px;background:var(--paper);border-radius:32px;padding:26px 60px;box-shadow:0 20px 50px rgba(36,57,74,.3)}
.card-body{display:grid;justify-items:center;gap:6px;text-align:center}
.big-letter{display:flex;align-items:baseline;gap:14px;font-weight:800;line-height:1;color:var(--c, #FF7A6B)}
.big-letter span{font-size:clamp(5rem,20vw,8rem)}
.big-letter small{font-size:clamp(3rem,12vw,5rem);opacity:.75}
.card-emo{font-size:clamp(4rem,16vw,6rem);line-height:1.1}
.card-word{margin:0;font-size:clamp(1.8rem,7vw,2.6rem);font-weight:800;letter-spacing:.06em}
.card-word b{color:var(--c, #FF7A6B)}
.card-note{margin:0;color:var(--muted);font-weight:600}
.btn{border:0;border-radius:16px;font-weight:800;padding:10px 22px;font-size:1.1rem}
.btn.listen{background:var(--sun);color:var(--ink);box-shadow:0 4px 0 var(--sun-dark)}
.nav{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:72px;border:0;border-radius:16px;background:#EEF7F1;color:var(--ink);font-size:2.4rem;font-weight:800;line-height:1;padding:0}
.nav.prev{left:8px}
.nav.next{right:8px}
.close{position:absolute;top:10px;right:10px;width:40px;height:40px;border-radius:50%;border:0;background:#EEF7F1;color:var(--ink);font-size:18px}

.party-card{display:grid;justify-items:center;gap:16px;text-align:center}
.party-title{margin:0;font-weight:800;font-size:clamp(2.6rem,10vw,4.6rem);line-height:1;color:#fff;text-shadow:0 4px 0 var(--leaf-dark), 0 10px 24px rgba(0,0,0,.25)}
.party-stars{font-size:clamp(2rem,8vw,3rem);letter-spacing:.1em}
.big-btn{width:140px;height:140px;border-radius:50%;border:8px solid #fff;background:var(--sun);box-shadow:0 10px 0 var(--sun-dark);display:grid;place-items:center;padding:0}
.big-btn svg{width:60%;height:60%}
.big-btn:active{transform:translateY(8px);box-shadow:0 2px 0 var(--sun-dark)}

#confetti{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:30}
#confetti i{position:absolute;top:-20px;width:10px;height:6px;border-radius:2px;animation:fall linear forwards}
@keyframes fall{to{transform:translate(var(--dx), 110vh) rotate(var(--r))}}

@media (max-width:520px){
  .mode{flex-direction:column;gap:0;font-size:.95rem;padding:6px}
  .mode span{font-size:1.5rem}
  .grid{grid-template-columns:repeat(4,1fr);gap:8px}
  .tile .emo{font-size:16px}
  .letter-card{padding:22px 44px}
  .nav{width:38px}
  .learned{display:none}
}
@media (prefers-reduced-motion:reduce){
  .tile,.stars i.on,.slot.filled,.tile.good,.tile.nope{animation:none;transition:none}
}
