/* Accessibility and touch-first polish */
button, a, input, select, label { min-height: 44px; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible { outline: 3px solid #1769aa; outline-offset: 3px; }
input, select { font-size: 16px; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
.hint-trigger { display:inline-flex; align-items:center; gap:6px; min-height:44px; padding:8px 14px; border:2px solid #d8c5f4; border-radius:999px; background:#fff; color:#6f4bb2; font:600 0.9rem Fredoka,sans-serif; cursor:pointer; }
.hint-trigger svg { width:17px; height:17px; }
.hint-drawer-backdrop { position:fixed; inset:0; z-index:10000; display:flex; align-items:flex-end; justify-content:center; background:rgba(26,20,45,.48); }
.hint-drawer { position:relative; width:min(620px,100%); max-height:80vh; overflow:auto; padding:22px 20px 28px; border-radius:24px 24px 0 0; background:var(--surface,#fff); color:var(--dark,#252033); box-shadow:0 -12px 45px rgba(0,0,0,.25); }
.hint-close { position:absolute; top:12px; right:14px; width:44px; height:44px; min-height:44px; border:0; border-radius:50%; background:#f1ebfb; color:#60429a; font-size:1.7rem; cursor:pointer; }
.hint-kicker { color:#7652b3; font-size:.75rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.hint-drawer h2 { margin:4px 48px 14px 0; font-size:1.35rem; }
.hint-tabs { display:flex; gap:6px; margin-bottom:16px; }
.hint-tab { flex:1; min-height:48px; padding:8px 6px; border:1px solid #dbcaf2; border-radius:12px; background:#faf8ff; color:#6f4bb2; font:600 .78rem Fredoka,sans-serif; cursor:pointer; }
.hint-tab.active { background:#7652b3; color:#fff; }
.hint-content { min-height:100px; padding:16px; border-radius:16px; background:#f7f2ff; font-size:1rem; line-height:1.55; }
.hint-content ol { margin:0; padding-left:22px; }.hint-content li { margin:7px 0; }.hint-fraction-visual { text-align:center; }.hint-fraction-visual svg { max-width:170px; vertical-align:middle; }.hint-fraction-visual p { display:inline-block; margin:0 0 0 12px; font-weight:700; vertical-align:middle; }
@media print { #app-chrome, #particles-canvas { display:none !important; }
