:root{--paper: #FAF8F3;--paper-soft: #FFFFFF;--cream: #FFF8EC;--ink: #2A1A0A;--ink-soft: #6A4A2A;--amber: #FF7A45;--amber-soft: #FFD3BD;--forest: #2D6A4F;--forest-soft: #D6E7DD;--danger: #C05A2A;--danger-soft: #F8E8D8;--sun: #FFD24D;--game-bg: #FFFBF0;--radius-card: 20px;--radius-pill: 999px;--shadow-card: 0 1px 2px rgba(80, 40, 0, .12), 0 8px 24px rgba(80, 40, 0, .14);--shadow-soft: 0 4px 16px rgba(80, 40, 0, .12);--font-display: "Fredoka", "Nunito", system-ui, -apple-system, Segoe UI, Roboto, sans-serif;--font-body: "Inter", system-ui, -apple-system, Segoe UI, Roboto, sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;overflow:hidden}html{background:var(--game-bg)}body{font-family:var(--font-body);color:var(--ink);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;touch-action:manipulation}button{font-family:inherit;cursor:pointer;border:none}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0}#stage-canvas{position:fixed;inset:0;width:100%;height:100%;z-index:0;background:var(--game-bg)}:root{--ease-bouncy: cubic-bezier(.34, 1.56, .64, 1);--ease-anticipate: cubic-bezier(.5, -.5, .5, 1.5);--ease-soft: cubic-bezier(.4, 0, .2, 1);--ease-snap: cubic-bezier(.55, 0, .1, 1)}.stage-container{position:fixed;inset:0;z-index:0}.actors{position:fixed;inset:0;pointer-events:none;z-index:1;display:flex;align-items:flex-end;justify-content:center;padding:0 8% 8%;gap:6%}.actor{position:relative;font-size:var(--actor-size, 96px);line-height:1;transform-origin:50% 100%;filter:drop-shadow(0 6px 10px rgba(0,0,0,.15));transition:filter .24s ease-out;will-change:transform,opacity,filter;user-select:none}.actor.is-active{filter:drop-shadow(0 0 18px var(--amber)) drop-shadow(0 6px 12px rgba(0,0,0,.25));z-index:2}.actor.is-passive{opacity:.85}.actor-bubble{position:absolute;bottom:105%;left:50%;transform:translate(-50%) scale(0);background:#fff;color:var(--ink);border:2px solid var(--ink);border-radius:16px;padding:6px 14px;font-family:var(--font-display, "Fredoka", sans-serif);font-weight:700;font-size:22px;white-space:nowrap;z-index:3;pointer-events:none}.actor-bubble:after{content:"";position:absolute;bottom:-8px;left:50%;transform:translate(-50%);width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;border-top:8px solid var(--ink)}.actor-bubble.is-show{animation:bubble-pop 1.4s cubic-bezier(.34,1.56,.64,1) both}@keyframes bubble-pop{0%{transform:translate(-50%) scale(0);opacity:0}18%{transform:translate(-50%) scale(1.25);opacity:1}32%{transform:translate(-50%) scale(1);opacity:1}80%{transform:translate(-50%) scale(1);opacity:1}to{transform:translate(-50%) scale(1.1);opacity:0}}@media (prefers-reduced-motion: reduce){.actor,.actor-bubble,.action-arrow{animation:none!important;transition:none!important}.actor-bubble.is-show{opacity:1;transform:translate(-50%) scale(1)}}.app{position:fixed;inset:0;z-index:1;display:flex;align-items:stretch;justify-content:stretch;padding:env(safe-area-inset-top,0) env(safe-area-inset-right,0) env(safe-area-inset-bottom,0) env(safe-area-inset-left,0)}.scene-root{position:relative;flex:1;display:flex;flex-direction:column;overflow:hidden}.top-hud{position:absolute;top:clamp(8px,2vw,16px);left:clamp(10px,2.5vw,24px);right:clamp(10px,2.5vw,24px);display:flex;gap:6px;z-index:4;flex-wrap:wrap;align-items:center}.chip{background:#fffbf0e0;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:var(--ink);font-family:var(--font-display);font-weight:500;font-size:.9rem;padding:7px 13px;border-radius:var(--radius-pill);border:1.5px solid rgba(80,40,0,.15);display:inline-flex;align-items:center;gap:5px;min-height:40px}.chip strong{font-weight:700}.chip.is-hidden{display:none}.chip-back,.chip-mute,.chip-album{cursor:pointer;transition:background .12s ease}.chip-back:hover,.chip-mute:hover,.chip-album:hover{background:#fffbf0fa}.chip-back:focus-visible,.chip-mute:focus-visible,.chip-album:focus-visible{outline:3px solid var(--amber);outline-offset:2px}.chip-stars{color:var(--forest)}.chip-combo{background:linear-gradient(135deg,#ff7a45e6,#ffd24de6);color:var(--ink);border-color:#ffb41e66;animation:combo-pop .26s cubic-bezier(.2,.8,.2,1)}@keyframes combo-pop{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}.builder-panel{position:absolute;left:50%;bottom:0;transform:translate(-50%);width:min(680px,100%);z-index:3;background:#faf8f3f7;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:var(--radius-card) var(--radius-card) 0 0;padding:14px clamp(12px,3vw,24px) clamp(16px,4vw,28px);box-shadow:var(--shadow-card);border:2px solid var(--amber-soft);border-bottom:none;animation:panel-rise .32s cubic-bezier(.2,.8,.2,1);display:flex;flex-direction:column;gap:10px;max-height:65vh;overflow-y:auto}@keyframes panel-rise{0%{opacity:0;transform:translate(-50%) translateY(20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.builder-hint{text-align:center;font-family:var(--font-display);font-size:clamp(.85rem,2.2vw,1rem);color:var(--ink-soft);min-height:1.4em}.builder-slots{display:flex;flex-wrap:wrap;gap:clamp(5px,1.5vw,10px);justify-content:center;min-height:60px;padding:8px 4px;background:var(--cream);border-radius:14px;border:2px dashed var(--amber-soft)}.word-slot{display:inline-flex;align-items:center;justify-content:center;min-width:clamp(44px,10vw,80px);min-height:52px;padding:6px 10px;border-radius:12px;font-family:var(--font-display);font-size:clamp(1rem,3.5vw,1.4rem);font-weight:600;cursor:pointer;user-select:none;transition:transform .12s ease,box-shadow .12s ease,background .12s ease;position:relative}.word-slot.is-empty{background:var(--paper-soft);border:2.5px dashed var(--amber);color:var(--amber)}.word-slot.is-empty:hover,.word-slot.is-empty:focus-visible{background:var(--amber-soft);transform:scale(1.04)}.word-slot.is-empty:focus-visible{outline:3px solid var(--amber);outline-offset:2px}.word-slot.is-filled{background:var(--forest-soft);border:2px solid var(--forest);color:var(--forest)}.word-slot.is-filled:hover,.word-slot.is-filled:focus-visible{background:var(--forest);color:var(--paper);transform:scale(1.04)}.word-slot.is-filled:focus-visible{outline:3px solid var(--forest);outline-offset:2px}.word-slot.drag-over{background:var(--amber-soft);border-color:var(--amber);transform:scale(1.06)}.word-slot.is-correct{background:var(--forest);border-color:var(--forest);color:var(--paper);animation:slot-correct .3s ease-out}@keyframes slot-correct{0%{transform:scale(1)}50%{transform:scale(1.12)}to{transform:scale(1)}}.word-slot.is-wrong{background:var(--danger-soft);border-color:var(--danger);color:var(--danger);animation:slot-shake .42s ease-in-out}@keyframes slot-shake{20%{transform:translate(-7px)}40%{transform:translate(7px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}to{transform:translate(0)}}.slot-text,.slot-placeholder{pointer-events:none;line-height:1}.slot-placeholder{font-size:.75em;opacity:.55}.builder-pool{display:flex;flex-wrap:wrap;gap:clamp(5px,1.5vw,10px);justify-content:center;min-height:56px;padding:6px 4px}.word-card{display:inline-flex;align-items:center;justify-content:center;min-width:clamp(48px,11vw,88px);min-height:52px;padding:8px 14px;border-radius:var(--radius-pill);font-family:var(--font-display);font-size:clamp(1rem,3.5vw,1.4rem);font-weight:600;background:var(--amber);color:var(--ink);border:none;box-shadow:0 4px 12px #ff7a4559;cursor:grab;user-select:none;transition:transform .12s ease,box-shadow .12s ease,background .12s ease;touch-action:none}.word-card:hover{background:#e86932;transform:translateY(-2px);box-shadow:0 6px 18px #ff7a4573}.word-card:focus-visible{outline:3px solid var(--ink);outline-offset:2px}.word-card.is-held{background:var(--sun);box-shadow:0 0 0 3px var(--amber),0 6px 18px #ffd24d80;transform:scale(1.06)}.word-card.is-dragging{opacity:.5;cursor:grabbing;transform:scale(.95)}.builder-actions{display:flex;gap:8px;justify-content:center;align-items:center;flex-wrap:wrap}.builder-feedback{text-align:center;font-family:var(--font-display);font-size:1rem;color:var(--danger);min-height:1.4em;padding:4px 0}.overlay{position:absolute;inset:0;z-index:5;display:flex;align-items:center;justify-content:center;padding:clamp(14px,3.5vw,36px);background:radial-gradient(60% 60% at 50% 50%,#fff0c866,#b478282e);animation:overlay-in .26s ease-out}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}.overlay-map{background:radial-gradient(60% 60% at 50% 50%,#fff8c880,#a0641e40);padding:clamp(8px,2vw,20px);align-items:flex-start}.panel{background:var(--paper);color:var(--ink);border-radius:var(--radius-card);padding:clamp(20px,4.5vw,36px);box-shadow:var(--shadow-card);max-width:520px;width:100%;text-align:center;animation:panel-in .32s cubic-bezier(.2,.8,.2,1);max-height:90vh;overflow-y:auto;border:1.5px solid var(--amber-soft)}@keyframes panel-in{0%{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.panel h1{font-family:var(--font-display);font-size:clamp(1.5rem,5vw,2.2rem);margin:0 0 8px;color:var(--ink)}.panel h2{font-family:var(--font-display);font-size:clamp(1.1rem,3.5vw,1.5rem);margin:0 0 10px;color:var(--ink)}.panel p{margin:0 0 14px;color:var(--ink-soft);font-size:clamp(.88rem,2.2vw,1rem);line-height:1.55}.panel-mascot{font-size:clamp(2.2rem,5.5vw,3.2rem);margin:4px 0 10px}.panel-kicker{font-family:var(--font-display);text-transform:uppercase;font-size:.72rem;letter-spacing:.12em;color:var(--forest);margin-bottom:4px}.panel-meta{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-bottom:16px}.meta-chip{background:var(--forest-soft);color:var(--forest);font-size:.82rem;padding:5px 12px;border-radius:var(--radius-pill);font-family:var(--font-display)}.meta-chip-warm{background:var(--amber-soft);color:var(--amber)}.tuca-fala{font-style:italic;color:var(--forest);border-left:3px solid var(--forest-soft);padding-left:12px;text-align:left;margin-bottom:12px}.btn-primary{background:var(--amber);color:var(--ink);border:none;font-family:var(--font-display);font-weight:500;font-size:1.1rem;padding:13px 26px;min-height:52px;min-width:130px;border-radius:var(--radius-pill);box-shadow:0 5px 14px #ff7a4559;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}.btn-primary:hover{background:#e86932}.btn-primary:active{transform:translateY(1px)}.btn-primary:focus-visible{outline:3px solid var(--ink);outline-offset:2px}.btn-primary:disabled,.btn-primary[aria-disabled=true]{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}.btn-secondary{background:transparent;color:var(--ink-soft);border:none;font-family:var(--font-body);font-size:.92rem;padding:10px 14px;text-decoration:underline;text-underline-offset:3px;cursor:pointer;min-height:44px}.btn-secondary:hover{color:var(--ink)}.btn-secondary:focus-visible{outline:2px solid var(--ink);outline-offset:2px;border-radius:6px}.home-controls{background:var(--cream);border-radius:14px;padding:12px 16px;margin:0 0 18px;text-align:left;display:flex;flex-direction:column;gap:7px}.control-row{display:flex;align-items:center;gap:10px;font-size:.88rem;color:var(--ink-soft)}.control-key{background:var(--paper-soft);border:1.5px solid var(--amber-soft);border-radius:8px;padding:3px 9px;font-family:var(--font-display);font-size:.82rem;color:var(--ink);min-width:40px;text-align:center;flex-shrink:0}.control-key-wide{font-size:.82rem;color:var(--ink-soft);text-align:left}.map-frame{background:var(--paper);border-radius:var(--radius-card);box-shadow:var(--shadow-card);max-width:580px;width:100%;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;animation:panel-in .32s cubic-bezier(.2,.8,.2,1);border:1.5px solid var(--amber-soft)}.map-header{display:flex;align-items:center;justify-content:space-between;padding:clamp(12px,2vw,20px) clamp(14px,2.5vw,26px) 8px;flex-wrap:wrap;gap:8px;border-bottom:1px solid var(--forest-soft)}.map-title{font-family:var(--font-display);font-size:clamp(1.1rem,3vw,1.5rem);margin:0;color:var(--ink)}.phase-list{flex:1;overflow-y:auto;padding:clamp(10px,2vw,18px);display:flex;flex-direction:column;gap:8px}.phase-card{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--paper-soft);border:2px solid transparent;border-radius:16px;cursor:pointer;text-align:left;transition:border-color .15s ease,background .15s ease,transform .15s ease;width:100%;min-height:72px}.phase-card:hover:not(.is-locked){border-color:var(--amber-soft);background:var(--cream);transform:translateY(-1px)}.phase-card:focus-visible{outline:3px solid var(--amber);outline-offset:2px}.phase-card.is-locked{opacity:.5;cursor:not-allowed}.phase-card.is-completed{border-color:var(--forest-soft)}.phase-badge{font-size:1.5rem;line-height:1;flex-shrink:0;width:52px;height:52px;display:flex;align-items:center;justify-content:center;background:var(--forest-soft);border-radius:50%;font-family:var(--font-display);font-weight:700;color:var(--forest)}.phase-info{flex:1;display:flex;flex-direction:column;gap:1px}.phase-ordinal{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--forest);font-weight:600}.phase-name{font-family:var(--font-display);font-size:1rem;color:var(--ink);font-weight:500}.phase-desc{font-size:.78rem;color:var(--ink-soft)}.stars-mini{font-size:.9rem}.phase-status{flex-shrink:0;font-size:1.2rem;width:28px;text-align:center}.stars-display{display:flex;justify-content:center;gap:10px;margin:10px 0 14px;font-size:2rem}.star-icon{filter:grayscale(1) opacity(.28);transition:filter .26s ease}.star-earned{filter:none;animation:star-pop .38s cubic-bezier(.2,.8,.2,1) both}@keyframes star-pop{0%{transform:scale(.3);filter:none}60%{transform:scale(1.3)}to{transform:scale(1)}}.result-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0 0 10px}.stat{background:var(--paper-soft);border-radius:12px;padding:10px 6px;border:1px solid var(--forest-soft)}.stat-value{font-family:var(--font-display);font-size:1.4rem;color:var(--amber);line-height:1.1}.stat-label{font-size:.68rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.06em}.result-badge{margin:12px 0 0;padding:12px;border-radius:12px;background:var(--cream);display:flex;align-items:center;justify-content:center;gap:10px;border:2px solid var(--amber-soft)}.result-badge .badge-icon{font-size:1.8rem}.result-badge strong{font-family:var(--font-display);font-weight:500}.result-unlock{margin:10px 0 0;padding:12px;border-radius:12px;background:var(--forest-soft);color:var(--forest);display:flex;flex-direction:column;align-items:center;gap:3px;animation:bubble-in .28s ease-out}.result-unlock strong{font-family:var(--font-display);font-weight:500}.result-actions{display:flex;flex-direction:column;gap:6px;align-items:center;margin-top:16px}@keyframes bubble-in{0%{opacity:0;transform:translateY(5px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.album-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;margin:12px 0;max-height:260px;overflow-y:auto}.album-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 8px;background:var(--cream);border:2px solid var(--amber-soft);border-radius:14px;cursor:pointer;font-family:var(--font-body);color:var(--ink);transition:background .12s,transform .12s;min-height:80px}.album-card:hover{background:var(--amber-soft);transform:translateY(-2px)}.album-card:focus-visible{outline:3px solid var(--amber);outline-offset:2px}.album-preview{font-size:1.8rem}.album-label{font-size:.78rem;text-align:center;line-height:1.3}.album-empty{color:var(--ink-soft);font-size:.9rem;text-align:center;padding:20px 0}.tuca-hud{position:absolute;right:clamp(8px,2vw,20px);bottom:clamp(8px,2vw,20px);z-index:4;pointer-events:none;filter:drop-shadow(0 4px 8px rgba(0,0,0,.18))}.tuca-hud svg{display:block}@keyframes tuca-jump{0%{transform:translateY(0)}25%{transform:translateY(-14px) rotate(-4deg)}50%{transform:translateY(-20px) rotate(4deg)}75%{transform:translateY(-8px) rotate(-2deg)}to{transform:translateY(0)}}.tuca-bounce{animation:tuca-jump .48s cubic-bezier(.2,.8,.2,1) both}.word-card{box-shadow:0 1px #ffffff8c inset,0 3px #00000021,0 6px 14px #ff7a454d;background:linear-gradient(160deg,#ff9060,#ff7a45 60%);transition:transform 80ms cubic-bezier(.34,1.56,.64,1),box-shadow 80ms ease,background .1s ease}.word-card:hover{background:linear-gradient(160deg,#ff7850,#e86932 60%);transform:translateY(-3px);box-shadow:0 1px #fff6 inset,0 4px #00000029,0 10px 20px #ff7a456b}.word-card.is-dragging{opacity:.55;cursor:grabbing;transform:scale(.94) translateY(2px);box-shadow:0 2px 6px #00000038}.word-card.is-held{background:linear-gradient(160deg,#ffe060,#ffd24d 60%);box-shadow:0 0 0 3px var(--amber),0 6px 18px #ffd24d80;transform:scale(1.08)}.word-card.snap-in{animation:card-snap 80ms cubic-bezier(.34,1.56,.64,1) both}@keyframes card-snap{0%{transform:scale(.88)}to{transform:scale(1)}}.word-slot.is-correct{background:var(--forest);border-color:var(--forest);color:var(--paper);animation:slot-correct .3s ease-out,slot-glow .6s ease-out .3s both}@keyframes slot-glow{0%{box-shadow:0 0 #2d6a4fb3}60%{box-shadow:0 0 0 10px #2d6a4f00}to{box-shadow:0 0 #2d6a4f00}}.tutorial-highlight{animation:tutorial-pulse .6s ease-in-out infinite}@keyframes tutorial-pulse{0%,to{box-shadow:0 0 #ffd24dcc,0 6px 14px #ff7a454d}50%{box-shadow:0 0 0 8px #ffd24d00,0 6px 14px #ff7a454d}}.particle{position:absolute;width:9px;height:9px;border-radius:3px;pointer-events:none;z-index:10;animation:particle-burst .7s ease-out forwards}@keyframes particle-burst{0%{transform:translate(0) rotate(0) scale(1);opacity:1}80%{opacity:.8}to{transform:translate(var(--dx),var(--dy)) rotate(var(--rot)) scale(.4);opacity:0}}.tutorial-balloon{position:absolute;bottom:44%;left:50%;transform:translate(-50%);z-index:9;background:var(--paper);border:2px solid var(--amber-soft);border-radius:var(--radius-md, 16px);padding:12px 18px;box-shadow:var(--shadow-card);text-align:center;max-width:280px;animation:balloon-in .28s cubic-bezier(.2,.8,.2,1)}@keyframes balloon-in{0%{opacity:0;transform:translate(-50%) translateY(10px) scale(.95)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}.tutorial-balloon .tutorial-tuca-face{font-size:1.6rem;margin-bottom:4px}.tutorial-balloon .tutorial-msg{font-family:var(--font-display);font-size:clamp(.82rem,2vw,.95rem);color:var(--ink);margin:0 0 6px;line-height:1.4}.tutorial-arrow{font-size:1.4rem;color:var(--amber);animation:arrow-bounce .6s ease-in-out infinite}@keyframes arrow-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(4px)}}.tutorial-ok{font-size:.9rem;padding:8px 18px;min-height:40px}.hint-level-1{color:var(--forest);font-weight:600}.hint-level-2{color:var(--amber);font-weight:700;font-style:italic}.trail-map{display:flex;align-items:center;gap:0;padding:10px 16px 16px;overflow-x:auto;-webkit-overflow-scrolling:touch}.trail-step{display:flex;flex-direction:column;align-items:center;gap:4px;flex-shrink:0}.trail-connector{flex:1;min-width:20px;height:4px;border-top:3px dashed var(--amber-soft);align-self:center;margin-bottom:24px}.trail-node{width:60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;font-size:1.3rem;border:3px solid transparent;cursor:pointer;transition:transform .14s ease,box-shadow .14s ease;position:relative}.trail-node.is-unlocked{background:linear-gradient(145deg,#ff9060,#ff7a45);border-color:#e86932;color:var(--ink);box-shadow:0 4px 12px #ff7a4566}.trail-node.is-completed{background:linear-gradient(145deg,#48a075,#2d6a4f);border-color:#1a4a33;color:#fff}.trail-node.is-locked{background:var(--forest-soft);border-color:var(--forest-soft);color:var(--ink-soft);cursor:not-allowed;opacity:.55}.trail-node.is-current{box-shadow:0 0 0 4px var(--amber),0 4px 14px #ff7a4580;animation:trail-pulse 1.4s ease-in-out infinite}@keyframes trail-pulse{0%,to{box-shadow:0 0 0 4px var(--amber),0 4px 14px #ff7a4566}50%{box-shadow:0 0 0 8px #ff7a4540,0 4px 14px #ff7a454d}}.trail-node:hover:not(.is-locked){transform:scale(1.1)}.trail-node:focus-visible{outline:3px solid var(--ink);outline-offset:3px}.trail-label{font-family:var(--font-display);font-size:.7rem;color:var(--ink-soft);text-align:center;max-width:72px;line-height:1.2}.trail-stars{font-size:.8rem;text-align:center}.trail-tuca{position:absolute;top:-18px;left:50%;transform:translate(-50%);font-size:1.1rem;animation:tuca-idle 2s ease-in-out infinite}@keyframes tuca-idle{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(-4px)}}.star-reveal{filter:grayscale(1) opacity(.25);transform:scale(.5);transition:filter .26s ease,transform .26s cubic-bezier(.2,.8,.2,1)}.star-reveal.is-revealed{filter:none;transform:scale(1)}.combo-badge{position:absolute;top:60px;right:clamp(10px,2.5vw,24px);z-index:5;background:linear-gradient(135deg,#ff7a45,#ffd24d);color:var(--ink);font-family:var(--font-display);font-weight:700;font-size:.9rem;padding:6px 12px;border-radius:var(--radius-pill);box-shadow:0 4px 12px #ff7a4580;animation:combo-pop .26s cubic-bezier(.2,.8,.2,1);pointer-events:none}.combo-badge.is-master{background:linear-gradient(135deg,#ffd24d,#ff7a45 50%,#e879a0);font-size:1rem}.star-criteria{background:var(--cream);border:1.5px solid var(--amber-soft);border-radius:12px;padding:10px 14px;margin-bottom:14px;text-align:left}.star-criteria-row{display:flex;align-items:center;gap:8px;font-size:.82rem;color:var(--ink-soft);margin:3px 0}.star-criteria-row strong{color:var(--ink)}.builder-panel.slide-out-left{animation:slide-left .28s cubic-bezier(.4,0,.6,1) forwards}.builder-panel.slide-in-right{animation:slide-right .28s cubic-bezier(.2,.8,.2,1) both}@keyframes slide-left{0%{opacity:1;transform:translate(-50%) translate(0)}to{opacity:0;transform:translate(-50%) translate(-60px)}}@keyframes slide-right{0%{opacity:0;transform:translate(-50%) translate(60px)}to{opacity:1;transform:translate(-50%) translate(0)}}.sandbox-overlay{background:radial-gradient(60% 60% at 50% 50%,#fff8c88c,#a0641e47)}.sandbox-panel{background:var(--paper);border-radius:var(--radius-card);padding:clamp(16px,4vw,30px);box-shadow:var(--shadow-card);max-width:560px;width:100%;max-height:88vh;overflow-y:auto;border:1.5px solid var(--amber-soft);animation:panel-in .32s cubic-bezier(.2,.8,.2,1)}.sandbox-header{text-align:center;margin-bottom:12px}.sandbox-title{font-family:var(--font-display);font-size:clamp(1.2rem,4vw,1.6rem);margin:4px 0;color:var(--ink)}.sandbox-sub{font-size:.88rem;color:var(--ink-soft);margin:0 0 8px}.sandbox-slots{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;background:var(--cream);border:2px dashed var(--amber-soft);border-radius:12px;padding:8px;min-height:56px;margin-bottom:10px}.sandbox-slot{display:inline-flex;align-items:center;justify-content:center;min-width:clamp(40px,9vw,70px);min-height:48px;padding:6px 10px;border-radius:10px;font-family:var(--font-display);font-size:clamp(.9rem,3vw,1.2rem);font-weight:600;cursor:pointer}.sandbox-slot.is-empty{background:var(--paper-soft);border:2px dashed var(--amber);color:var(--amber);opacity:.7}.sandbox-slot.is-filled{background:var(--forest-soft);border:2px solid var(--forest);color:var(--forest)}.sandbox-pool{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;padding:4px;margin-bottom:10px}.sandbox-word{display:inline-flex;align-items:center;justify-content:center;min-width:48px;min-height:44px;padding:6px 12px;border-radius:var(--radius-pill);font-family:var(--font-display);font-size:clamp(.88rem,2.8vw,1.1rem);font-weight:600;background:var(--amber-soft);color:var(--ink);border:2px solid transparent;cursor:pointer;transition:transform .1s ease,background .1s ease}.sandbox-word:hover{background:var(--amber);transform:translateY(-2px)}.sandbox-word.is-held{background:var(--sun);border-color:var(--amber);transform:scale(1.06)}.sandbox-word:focus-visible{outline:3px solid var(--ink);outline-offset:2px}.sandbox-result{font-family:var(--font-display);font-size:1rem;color:var(--forest);text-align:center;min-height:1.4em;margin-bottom:8px}.sandbox-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.builder-hint.hint-level-1{color:var(--forest);font-weight:600;background:var(--forest-soft);border-radius:8px;padding:4px 10px}.builder-hint.hint-level-2{color:var(--amber);font-weight:700;background:var(--amber-soft);border-radius:8px;padding:4px 10px;animation:hint-pulse 1.2s ease-in-out infinite}@keyframes hint-pulse{0%,to{opacity:1}50%{opacity:.75}}.chip-ambient{cursor:pointer;transition:background .12s ease}.chip-ambient:hover{background:#fffbf0fa}.chip-ambient:focus-visible{outline:3px solid var(--amber);outline-offset:2px}.chip-ambient.is-on{background:var(--forest-soft);border-color:var(--forest-soft);color:var(--forest)}@media (prefers-reduced-motion: reduce){.overlay,.panel,.builder-panel,.chip-combo,.result-unlock,.map-frame,.star-earned,.star-reveal,.word-slot,.word-card,.slot-correct,.slot-shake,.album-card,.tutorial-balloon,.trail-node,.tuca-hud,.combo-badge,.particle{animation:none!important;transition:none!important}.btn-primary,.phase-card,.word-card{transition:none!important}.tuca-bounce,.tutorial-arrow,.trail-node.is-current{animation:none!important}.particle{display:none!important}}@media (max-width: 480px){.builder-panel{padding:10px 10px 16px;gap:8px}.word-card{font-size:.95rem;min-width:44px;min-height:48px;padding:7px 11px}.word-slot{font-size:.95rem;min-width:40px;min-height:48px;padding:5px 8px}.result-stats{gap:5px}.stat-value{font-size:1.2rem}.btn-primary{font-size:1rem;padding:11px 20px;min-height:48px}.trail-node{width:50px;height:50px;font-size:1.1rem}.sandbox-panel{padding:12px}}@media (max-height: 560px){.builder-panel{max-height:70vh;padding:8px 10px 12px}.panel{padding:clamp(12px,2.5vw,20px)}.phase-list{padding:8px 10px;gap:5px}.phase-card{min-height:56px;padding:8px 10px}.tuca-hud{display:none}}
