:root{--bg:#0f1a24;--panel:#1a2a3a;--text:#f0f6fc;--muted:#b6c7d8;--warn:#fbbf24;--good:#6ee7b7;--bad:#fca5a5;--touch:68px;--pink:#ff8ec8;--gold:#fbbf24}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{min-height:100dvh;font-family:"PingFang TC","Noto Sans TC","Microsoft JhengHei",system-ui,sans-serif;background:
  radial-gradient(ellipse at 78% 0%,rgba(255,142,200,.18),transparent 46%),
  radial-gradient(ellipse at 12% 100%,rgba(251,191,36,.12),transparent 42%),
  radial-gradient(ellipse at 70% 0%,#3b2a1a,transparent 50%),
  radial-gradient(ellipse at 20% 100%,#1a3d2e,transparent 45%),var(--bg);
color:var(--text);padding:max(.5rem,env(safe-area-inset-top)) .7rem max(.8rem,env(safe-area-inset-bottom));user-select:none}
button{font:inherit;border:none;cursor:pointer;color:inherit;touch-action:manipulation}
button:active{transform:scale(.98)}
.app{max-width:560px;margin:0 auto}
.hidden{display:none!important}
h1{text-align:center;font-size:clamp(1.28rem,4.6vw,1.7rem);color:#fcd34d;font-weight:900;letter-spacing:.14em;margin-bottom:.35rem;text-shadow:0 0 18px rgba(251,191,36,.28)}
.gentle{text-align:center;color:var(--muted);font-weight:700;margin-bottom:.7rem;line-height:1.55}
.panel{background:linear-gradient(180deg,rgba(255,255,255,.06),transparent 40%),var(--panel);border-radius:18px;padding:.95rem;border:1px solid rgba(251,191,36,.28);margin-bottom:.7rem;box-shadow:0 10px 28px rgba(0,0,0,.28)}
.btn-go{width:100%;min-height:76px;border-radius:16px;font-weight:900;font-size:1.18rem;background:linear-gradient(180deg,#fde68a,#f59e0b);color:#451a03;box-shadow:0 1px 0 rgba(255,255,255,.45) inset,0 6px 0 #b45309,0 12px 22px rgba(0,0,0,.35)}
.btn-go:active{transform:translateY(4px);box-shadow:0 1px 0 rgba(255,255,255,.35) inset,0 2px 0 #b45309,0 6px 12px rgba(0,0,0,.3)}
.btn{min-height:56px;border-radius:14px;font-weight:900;padding:0 .9rem;background:rgba(255,255,255,.12);font-size:1.02rem}
.btn.ghost{background:rgba(0,0,0,.28)}
.row{display:flex;gap:.5rem;margin-top:.7rem}
.ans{width:100%;min-height:var(--touch);margin:.32rem 0;border-radius:16px;background:rgba(0,0,0,.34);border:3px solid rgba(255,255,255,.22);font-weight:900;font-size:1.12rem;padding:.55rem .9rem;text-align:left}
.ans.correct{border-color:var(--good);background:rgba(16,185,129,.28);color:var(--good);transform:scale(1.02)}
.ans.wrong{border-color:var(--bad);background:rgba(239,68,68,.2);color:var(--bad)}
.bar{display:flex;justify-content:space-between;font-weight:800;background:var(--panel);padding:.6rem .8rem;border-radius:14px;margin-bottom:.6rem}
.bar b{color:var(--warn)}
.overlay{position:fixed;inset:0;background:rgba(0,0,0,.58);display:flex;align-items:flex-end;justify-content:center;padding:1rem;z-index:40}
.overlay .card{width:100%;max-width:420px;background:linear-gradient(180deg,#2a3a4c,var(--panel));border-radius:24px;padding:1.3rem;border:1px solid rgba(251,191,36,.4);box-shadow:0 18px 40px rgba(0,0,0,.45)}
.overlay h2{color:#fcd34d;margin-bottom:.4rem;font-size:1.4rem}
.chips{display:flex;flex-wrap:wrap;gap:.4rem}
.chip{min-height:var(--touch);padding:.45rem .85rem;border-radius:16px;background:rgba(0,0,0,.34);border:3px solid rgba(182,199,216,.4);font-weight:900}
.chip.active{border-color:var(--warn);background:rgba(251,191,36,.28);color:#fde68a}
html.elder-mode .ans,html.elder-mode .btn-go{min-height:84px;font-size:1.22rem}
.polaroid{background:#fffaf3;padding:.35rem .35rem .7rem;border-radius:8px;box-shadow:0 10px 24px rgba(0,0,0,.35);transform:rotate(var(--tilt,0deg))}
.polaroid img{width:100%;display:block;border-radius:4px;aspect-ratio:3/4;object-fit:cover}
.lantern-swing{transform-origin:50% 0;animation:lanternSwing 2.8s ease-in-out infinite}
@keyframes lanternSwing{0%,100%{transform:rotate(-6deg)}50%{transform:rotate(6deg)}}
@keyframes kenBurns{0%{transform:scale(1) translate(0,0)}100%{transform:scale(1.08) translate(-1.2%,-1%)}}
.ken-burns{animation:kenBurns 5.4s ease-in-out alternate infinite;transform-origin:center}
.pop-plus{position:absolute;font-weight:900;color:#fde68a;pointer-events:none;animation:popPlus .7s ease-out forwards;text-shadow:0 2px 8px #000}
@keyframes popPlus{0%{opacity:1;transform:translate(-50%,0) scale(.8)}100%{opacity:0;transform:translate(-50%,-42px) scale(1.2)}}
.stamp-ok{display:inline-block;border:6px solid #b42318;color:#b42318;font-weight:900;letter-spacing:.3em;padding:.25rem .55rem;transform:rotate(-12deg);animation:stampIn .35s cubic-bezier(.22,1.4,.36,1)}
@keyframes stampIn{0%{transform:rotate(-12deg) scale(1.6);opacity:0}100%{transform:rotate(-12deg) scale(1);opacity:1}}
