:root{color:#3d2817;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-synthesis:none;--pickup-success:#58cc02;--pickup-success-dark:#58a700;--pickup-success-tint:#e0f5d0;--pickup-warning:#ffc800;--pickup-warning-dark:#e5b400;--pickup-warning-tint:#fff4d4;--pickup-error:#ff4b4b;--pickup-error-dark:#cc3a3a;--pickup-error-tint:#ffd6d6;--pickup-streak:#ff9600;--pickup-streak-dark:#cc7800;--pickup-streak-tint:#fff0d6;--pickup-xp:#ffd900;--pickup-xp-dark:#d4b400;--pickup-info:#1cb0f6;--pickup-info-dark:#0b8ec9;--pickup-info-tint:#d6f0fb;--pickup-bg:#fef8ed;--pickup-bg-outer:#f4ecd8;--pickup-surface:#fff;--pickup-accent:#e7a44a;--pickup-accent-dark:#b07a2a;--pickup-accent-tint:#fdedd0;--pickup-text:#3d2817;--pickup-text-muted:#8b6f4a;--pickup-text-soft:#b8a280;--pickup-outline:#1a1a1a;--pickup-border:#ead9bb;--pickup-border-dark:#d4c098;--font-family:"Noto Sans TC", "Nunito", "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "PingFang TC", "Microsoft JhengHei", sans-serif;--font-display-size:36px;--font-display-weight:900;--font-display-tracking:-.5px;--font-body-size:16px;--font-body-weight:600;--font-button-size:17px;--font-button-weight:800;--font-button-tracking:.6px;--font-stat-size:28px;--font-stat-weight:900;--font-microcopy-size:13px;--font-microcopy-weight:600;--pickup-pad-xs:4px;--pickup-pad-sm:8px;--pickup-pad-md:14px;--pickup-pad-lg:20px;--pickup-spring:cubic-bezier(.34, 1.56, .64, 1);--pickup-snap:cubic-bezier(.2, .8, .4, 1);--ww-green:var(--pickup-success);--ww-green-dark:var(--pickup-success-dark);--ww-green-tint:var(--pickup-success-tint);--ww-blue:var(--pickup-info);--ww-yellow:var(--pickup-warning);--ww-red:var(--pickup-error);--ww-cream:var(--pickup-bg);--ww-amber:var(--pickup-accent);--ww-amber-dark:var(--pickup-accent-dark);--ww-sepia:#3c2a1c;--ww-text:var(--pickup-text);--ww-muted:var(--pickup-text-muted);--ww-border:var(--pickup-border);--ww-border-dark:var(--pickup-border-dark);background:#fef8ed;font-family:Noto Sans TC,Nunito,Inter,system-ui,-apple-system,Segoe UI,Roboto,PingFang TC,Microsoft JhengHei,sans-serif}html,body{background:var(--pickup-bg);min-height:100dvh;margin:0;padding:0}#app{background:var(--pickup-bg);width:100vw;max-width:480px;min-height:100dvh;padding:12px 16px max(16px, env(safe-area-inset-bottom));padding-top:max(12px, env(safe-area-inset-top));box-sizing:border-box;flex-direction:column;gap:10px;margin:0 auto;display:flex;position:relative}#app canvas{display:none!important}@media (width>=520px){body{background:var(--pickup-bg-outer)}#app{border-radius:22px;min-height:calc(100dvh - 24px);margin-top:12px;margin-bottom:12px;box-shadow:0 8px 36px #785a281f}}:focus{outline:none}:focus-visible{outline:3px solid var(--pickup-info);outline-offset:2px;border-radius:6px}button:focus-visible{outline-offset:3px}.pickup-btn{--pbg:var(--pickup-success);--pbg-dark:var(--pickup-success-dark);--pfg:#fff;background:var(--pbg);color:var(--pfg);border:none;border-bottom:4px solid var(--pbg-dark);font-family:inherit;font-size:var(--font-button-size);font-weight:var(--font-button-weight);letter-spacing:var(--font-button-tracking);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;min-height:44px;transition:transform .1s var(--pickup-snap), border-bottom-width .1s var(--pickup-snap), box-shadow .2s ease-out, opacity .16s ease-out;border-radius:14px;justify-content:center;align-items:center;gap:10px;padding:14px 22px;display:inline-flex}.pickup-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 16px #0000001a}.pickup-btn:active:not(:disabled),.pickup-btn.is-pressed:not(:disabled){box-shadow:none;border-bottom-width:2px;transform:translateY(2px)}.pickup-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}@keyframes wordwar-shake{0%,to{transform:translate(0)}15%{transform:translate(-1.5px,.5px)}30%{transform:translate(1.5px,-.5px)}45%{transform:translate(-1px,1px)}60%{transform:translate(1px,-1px)}75%{transform:translate(-.5px,.5px)}90%{transform:translate(.5px)}}.wordwar-shake{animation:.2s ease-in-out wordwar-shake}#wordwar-flash{pointer-events:none;opacity:0;z-index:25;position:fixed;inset:0}@keyframes wordwar-flash-anim{0%{opacity:var(--flash-peak,.18)}to{opacity:0}}#wordwar-flash.wordwar-flash-on{animation:.32s ease-out wordwar-flash-anim}@keyframes wordwar-blink{0%{opacity:1}to{opacity:.4}}@keyframes wordwar-banner-pop{0%{opacity:0;transform:scale(.7)}60%{opacity:1;transform:scale(1.08)}to{opacity:1;transform:scale(1)}}@keyframes wordwar-stat-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes pickup-bounce{0%{transform:scale(1)}35%{transform:scale(1.14)}60%{transform:scale(.96)}to{transform:scale(1)}}.pickup-bounce{animation:pickup-bounce .4s var(--pickup-spring)}@keyframes pickup-pulse{0%,to{transform:scale(1);box-shadow:0 0 #e7a44a80}50%{transform:scale(1.025);box-shadow:0 0 0 10px #e7a44a00}}.pickup-pulse{animation:1.6s ease-in-out infinite pickup-pulse}@keyframes pickup-wobble{0%,to{transform:translate(0)rotate(0)}20%{transform:translate(-4px)rotate(-1deg)}40%{transform:translate(4px)rotate(1deg)}60%{transform:translate(-3px)rotate(-.5deg)}80%{transform:translate(2px)rotate(.5deg)}}.pickup-wobble{animation:.35s ease-in-out pickup-wobble}@keyframes pickup-fade-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.pickup-fade-up{animation:pickup-fade-up .28s var(--pickup-snap) both}@keyframes pickup-streak-pop{0%{color:var(--pickup-streak);text-shadow:0 0 #ff960000;transform:scale(1)}40%{color:var(--pickup-streak);text-shadow:0 0 12px #ff9600cc;transform:scale(1.5)}to{color:var(--pickup-streak);text-shadow:0 0 #ff960000;transform:scale(1)}}.pickup-streak-pop{animation:pickup-streak-pop .5s var(--pickup-spring)}@keyframes pickup-confetti-burst{0%{opacity:0;transform:scale(.5)rotate(0)}40%{opacity:1;transform:scale(1.15)rotate(180deg)}to{opacity:0;transform:scale(1)rotate(360deg)translateY(-40px)}}.pickup-confetti-burst{animation:.6s ease-out forwards pickup-confetti-burst}@keyframes pickup-glow{0%,to{filter:drop-shadow(0 0 4px #1cb0f64d)}50%{filter:drop-shadow(0 0 12px #1cb0f699)}}.pickup-glow{animation:1.6s ease-in-out infinite pickup-glow}.mascot-wrap{transform-origin:50% 100%;will-change:transform}.mascot-wrap svg{width:100%;height:100%;display:block}.mascot-idle{animation:2.6s ease-in-out infinite mascot-idle-bob}@keyframes mascot-idle-bob{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-4px)scale(1.015)}}.mascot-happy{animation:.7s cubic-bezier(.34,1.56,.64,1) mascot-happy-bounce}@keyframes mascot-happy-bounce{0%{transform:translateY(0)scale(1)rotate(0)}20%{transform:translateY(-14px)scale(1.08)rotate(-3deg)}45%{transform:translateY(0)scale(1.04)rotate(3deg)}65%{transform:translateY(-7px)scale(1.06)rotate(-2deg)}85%{transform:translateY(0)scale(1.02)rotate(1deg)}to{transform:translateY(0)scale(1)rotate(0)}}.mascot-sad{animation:.7s ease-in-out mascot-sad-shake}@keyframes mascot-sad-shake{0%{transform:translateY(0)rotate(0)}15%{transform:translateY(2px)rotate(-4deg)}30%{transform:translateY(4px)rotate(4deg)}45%{transform:translateY(6px)rotate(-3deg)}60%{transform:translateY(7px)rotate(2deg)}80%{transform:translateY(4px)rotate(0)}to{transform:translateY(0)rotate(0)}}.mascot-happy .mascot-pupil{transform-origin:50%;transform-box:fill-box;transform:translateY(-1px)scale(1.15)}.mascot-sad .mascot-pupil{transform-origin:50%;transform-box:fill-box;transform:translateY(2px)scale(.85)}.mascot-wrap .mascot-eye{transform-origin:50%;transform-box:fill-box;animation:4.2s ease-in-out infinite mascot-blink}.mascot-wrap .mascot-eye-right{animation-delay:40ms}@keyframes mascot-blink{0%,92%,to{transform:scaleY(1)}94%,97%{transform:scaleY(.1)}}.wordwar-breathing{transform-origin:50%;will-change:transform;animation:3.2s ease-in-out infinite wordwar-breathing}@keyframes wordwar-breathing{0%,to{transform:scale(1)}50%{transform:scale(1.006)}}.wordwar-ambient{pointer-events:none;opacity:0;will-change:transform, opacity;z-index:0;border-radius:50%;position:absolute}#wordwar-hud{z-index:1;position:relative}.wordwar-ambient-1{background:#c8eba0;width:44px;height:44px;animation:9s ease-in-out infinite wordwar-drift-a;top:18%;left:8%}.wordwar-ambient-2{background:#ffe48a;width:28px;height:28px;animation:11s ease-in-out -3s infinite wordwar-drift-b;top:26%;right:10%}.wordwar-ambient-3{background:#b8e0ff;border-radius:8px;width:36px;height:36px;animation:13s ease-in-out -6s infinite wordwar-drift-c;top:12%;right:32%;transform:rotate(12deg)}@keyframes wordwar-drift-a{0%,to{opacity:.16;transform:translate(0)}50%{opacity:.22;transform:translate(14px,-10px)}}@keyframes wordwar-drift-b{0%,to{opacity:.14;transform:translate(0)}50%{opacity:.2;transform:translate(-12px,8px)}}@keyframes wordwar-drift-c{0%,to{opacity:.12;transform:rotate(12deg)translate(0)}50%{opacity:.18;transform:rotate(-6deg)translate(10px,14px)}}#pickup-preboot{background:var(--pickup-bg);z-index:50;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:12px;font-family:Noto Sans TC,Nunito,system-ui,sans-serif;transition:opacity .32s ease-out;display:flex;position:fixed;inset:0}#pickup-preboot.is-hidden{opacity:0}#pickup-preboot-mark{color:var(--pickup-accent);letter-spacing:-1px;font-size:48px;font-weight:900;animation:1.2s ease-in-out infinite pickup-preboot-pulse}#pickup-preboot-dots{gap:6px;display:flex}#pickup-preboot-dots span{background:var(--pickup-accent);opacity:.3;border-radius:50%;width:8px;height:8px;animation:1.2s ease-in-out infinite pickup-preboot-dot}#pickup-preboot-dots span:nth-child(2){animation-delay:.18s}#pickup-preboot-dots span:nth-child(3){animation-delay:.36s}@keyframes pickup-preboot-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(.97)}}@keyframes pickup-preboot-dot{0%,80%,to{opacity:.3;transform:scale(.85)}40%{opacity:1;transform:scale(1.15)}}#wordwar-splash{background:var(--pickup-bg);z-index:15;font-family:var(--font-family);color:var(--pickup-text);box-sizing:border-box;opacity:0;flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:24px;animation:.36s ease-out forwards wordwar-splash-in;display:flex;position:fixed;inset:0}@keyframes wordwar-splash-in{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}.wordwar-splash-tagline{font-size:var(--font-microcopy-size);color:var(--pickup-text-muted);letter-spacing:.6px;font-style:italic;font-weight:700}.wordwar-splash-mascot{transform-origin:50% 100%;justify-content:center;align-items:center;width:240px;height:270px;animation:2.6s ease-in-out infinite mascot-idle-bob;display:flex}.wordwar-splash-mascot svg{filter:drop-shadow(0 8px 14px #e7a44a47);width:100%;height:100%;display:block}.wordwar-splash-title{letter-spacing:-1.5px;color:var(--pickup-accent);text-shadow:0 2px 0 var(--pickup-accent-dark);margin-top:4px;font-size:56px;font-weight:900}.wordwar-splash-cta{background:var(--pickup-success);color:#fff;border:none;border-bottom:5px solid var(--pickup-success-dark);letter-spacing:1.2px;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;width:min(320px,80%);min-height:56px;transition:transform .1s var(--pickup-snap), border-bottom-width .1s var(--pickup-snap), box-shadow .2s ease-out;border-radius:16px;margin-top:12px;padding:16px 28px;font-family:inherit;font-size:18px;font-weight:900;animation:2.2s ease-in-out infinite pickup-pulse;box-shadow:0 4px 12px #58cc0240}.wordwar-splash-cta:hover{transform:translateY(-1px);box-shadow:0 6px 18px #58cc0259}.wordwar-splash-cta:active{box-shadow:none;border-bottom-width:2px;animation:none;transform:translateY(3px)}.wordwar-splash-meta{color:var(--pickup-text-soft);margin-top:2px;font-size:12px;font-weight:600}@media (prefers-reduced-motion:reduce){.mascot-idle,.mascot-happy,.mascot-sad,.mascot-wrap .mascot-eye,.wordwar-breathing,.wordwar-ambient,.wordwar-splash-mascot,.wordwar-splash-cta,.pickup-bounce,.pickup-pulse,.pickup-wobble,.pickup-fade-up,.pickup-streak-pop,.pickup-confetti-burst,.pickup-glow,#pickup-preboot-mark,#pickup-preboot-dots span,#wordwar-splash,#boot-overlay *{animation:none!important}.wordwar-shake,#wordwar-flash.wordwar-flash-on{animation:none}}
