:root{--bg:#fbf3e4;--card:#f3e7d3;--ink:#3a3542;--ink-soft:#6b6575;--accent:#f59b3c;--teal:#6fb7a8;--gold:#ffc93c;--vowel:#e2574c;--cons-hard:#4a7bd0;--cons-soft:#4caf7d;--letter-locked:#b9b2a6;--tap-min:88px;--drag-min:120px;--gap-targets:16px;--radius:20px;--t-fast:.15s;--t-norm:.3s;--t-max:.4s}html.calm{--accent:#d99a55;--gold:#e6c56a}html.calm *{animation-duration:.01ms!important}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--bg);color:var(--ink);overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;font-family:Nunito,-apple-system,Helvetica Neue,Arial,sans-serif}.screen{flex-direction:column;justify-content:center;align-items:center;gap:24px;height:100%;padding:20px;display:flex;position:relative}.title{text-align:center;font-size:24px;font-weight:900}.profiles{gap:var(--gap-targets);width:100%;max-width:560px;display:flex}.profile-card{aspect-ratio:3/4;border-radius:var(--radius);background:var(--card);cursor:pointer;transition:transform var(--t-fast);border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;font-family:inherit;display:flex}.profile-card:active{transform:scale(.97)}.profile-card .avatar{font-size:72px}.profile-card .name{color:var(--ink);font-size:26px;font-weight:900}.trail-wrap{background:radial-gradient(circle at 20% 8%, #6fb7a82e, transparent 40%), radial-gradient(circle at 85% 3%, #4a7bd01f, transparent 35%), linear-gradient(180deg, #eaf4f0 0%, var(--bg) 22%, #f4ead6 100%);height:100%;overflow:hidden auto}.trail-sky{text-align:center;padding:26px 0 6px}.peak{filter:drop-shadow(0 4px 6px #0000001f);font-size:68px}.peak-label{color:var(--ink);opacity:.85;font-size:18px;font-weight:900}.trail{max-width:480px;margin:0 auto;padding:10px 0 30px;position:relative}.trail:before{content:"";background:repeating-linear-gradient(180deg, var(--teal) 0 14px, transparent 14px 30px);opacity:.5;border-radius:8px;width:8px;position:absolute;top:0;bottom:60px;left:50%;transform:translate(-50%)}.stop{flex-direction:column;align-items:center;width:50%;padding:14px 0;display:flex;position:relative}.stop.left{margin-right:50%}.stop.right{margin-left:50%}.stop-inner{position:relative}.map-node{cursor:pointer;color:#fff;background:var(--teal);width:76px;min-width:76px;height:76px;transition:transform var(--t-fast);border:4px solid #fff;border-radius:50%;justify-content:center;align-items:center;font-family:inherit;font-size:32px;font-weight:900;display:flex;overflow:hidden;box-shadow:0 4px 12px #00000026}.stop.done .map-node{background:var(--gold);color:var(--ink)}.stop.active .map-node{background:var(--accent);animation:1.2s ease-in-out infinite pulse;box-shadow:0 0 0 6px #f59b3c40,0 4px 12px #00000026}.stop.future .map-node{background:var(--letter-locked);opacity:.5;filter:blur(.4px);pointer-events:none}.stop.future .map-node-label{opacity:.4}.you-here{z-index:3;background:#fff;border-radius:50%;width:48px;height:48px;animation:2s ease-in-out infinite bob;position:absolute;top:-54px;left:50%;transform:translate(-50%);box-shadow:0 3px 8px #0000002e}.scenery{filter:drop-shadow(0 2px 2px #0000001a);font-size:26px;position:absolute;bottom:-6px;right:-22px}.map-node-label{color:var(--ink-soft);text-align:center;max-width:120px;margin-top:6px;font-size:13px}.trail-start{text-align:center;color:var(--ink-soft);padding-top:12px;font-size:16px;font-weight:900}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.attribution{text-align:center;color:var(--ink-soft);opacity:.5;font-size:10px;position:fixed;bottom:6px;left:0;right:0}.gear{opacity:.35;cursor:pointer;background:0 0;border:none;width:44px;height:44px;font-size:20px;position:fixed;top:10px;right:10px}.big-letter{cursor:pointer;transition:transform var(--t-fast);background:0 0;border:none;font-family:inherit;font-size:min(45vh,240px);font-weight:900;line-height:1}.big-letter:active{transform:scale(1.06)}.big-letter.vowel{color:var(--vowel)}.big-letter.cons{color:var(--cons-hard)}.pick-row{flex-wrap:wrap;justify-content:center;gap:32px;display:flex}.pick-item{border-radius:var(--radius);background:var(--card);cursor:pointer;width:110px;height:110px;transition:transform var(--t-fast);border:none;justify-content:center;align-items:center;font-size:56px;display:flex;overflow:hidden}.pick-item:active{transform:scale(.95)}.pick-item.bounce{animation:.45s bounce}.pick-item.shake{animation:.4s shake}@keyframes bounce{0%,to{transform:translateY(0)}40%{transform:translateY(-22px)}70%{transform:translateY(0)}85%{transform:translateY(-8px)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-6px)}75%{transform:translate(6px)}}.pic{object-fit:contain;pointer-events:none;width:84%;height:84%}.pick-item .pic,.find-item .pic{border-radius:12px}.find-grid{grid-template-columns:repeat(3,1fr);gap:16px;width:100%;max-width:480px;display:grid}.find-item{aspect-ratio:1;border-radius:var(--radius);background:var(--card);cursor:pointer;transition:transform var(--t-fast), border-color var(--t-fast), box-shadow var(--t-fast);border:5px solid #0000;justify-content:center;align-items:center;font-size:52px;display:flex;overflow:hidden}.find-item:active{transform:scale(.95)}.find-item.sel{border-color:var(--accent);transform:scale(1.04);box-shadow:0 0 0 4px #f59b3c40}.find-item.flash-wrong{border-color:var(--vowel);animation:.4s shake}.find-item.good{border-color:var(--cons-soft);box-shadow:0 0 0 4px #4caf7d4d}.btn-next.disabled{opacity:.4;pointer-events:none}.letters-grid{flex-wrap:wrap;justify-content:center;gap:18px;display:flex}.letter-tile,.syl-tile{background:var(--card);cursor:pointer;min-width:96px;height:110px;transition:transform var(--t-fast);border:none;border-radius:20px;padding:0 14px;font-family:inherit;font-size:64px;font-weight:900}.letter-tile.vowel{color:var(--vowel)}.letter-tile.cons{color:var(--cons-hard)}.syl-tile{color:var(--ink);font-size:48px}.letter-tile:active,.syl-tile:active{transform:scale(.95)}.ear-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:50%;width:96px;height:96px;font-size:44px}.ear-btn:active{transform:scale(.94)}.road{flex-wrap:wrap;justify-content:center;gap:10px;max-width:560px;display:flex}.road-syl{border:3px solid var(--letter-locked);background:var(--bg);min-width:74px;height:84px;color:var(--letter-locked);cursor:pointer;transition:transform var(--t-fast), color var(--t-fast), border-color var(--t-fast);border-radius:14px;font-family:inherit;font-size:40px;font-weight:900}.road-syl.done{color:var(--cons-soft);border-color:var(--cons-soft);background:var(--card)}.road-syl.active{color:var(--ink);border-color:var(--accent);animation:1.2s ease-in-out infinite pulse}.minigame{justify-content:flex-start;overflow:hidden}.mg-counter{color:var(--ink);padding-top:8px;font-size:28px;font-weight:900}.mg-field{position:absolute;inset:0;overflow:hidden}.mg-hint{text-align:center;color:var(--ink-soft);pointer-events:none;font-size:15px;position:absolute;top:10px;left:0;right:0}.balloon{cursor:pointer;will-change:transform;background:0 0;border:none;width:84px;height:84px;font-size:64px;animation-name:floatUp;animation-timing-function:linear;animation-fill-mode:forwards;position:absolute;bottom:-80px}.balloon:active{transform:scale(1.2)}@keyframes floatUp{0%{transform:translateY(0)translate(0)}50%{transform:translateY(-55vh)translate(-16px)}to{transform:translateY(-112vh)translate(16px)}}.mg-win{text-align:center;margin:auto}.build-target{justify-content:center;align-items:center;display:flex}.build-emoji{font-size:96px}.build-pic{object-fit:contain;width:120px;height:120px}.build-slots{justify-content:center;gap:8px;display:flex}.build-slot{border:3px dashed var(--letter-locked);min-width:68px;height:72px;color:var(--ink);border-radius:14px;justify-content:center;align-items:center;padding:0 8px;font-size:34px;font-weight:900;display:flex}.build-slot.filled{border-style:solid;border-color:var(--cons-soft);background:var(--card);animation:.4s bounce}.build-tiles{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.build-tile{background:var(--accent);color:#fff;cursor:pointer;min-width:88px;height:88px;transition:transform var(--t-fast);border:none;border-radius:16px;padding:0 12px;font-family:inherit;font-size:36px;font-weight:900}.build-tile:active{transform:scale(.95)}.build-tile.used{opacity:0;pointer-events:none}.read-word{letter-spacing:4px;color:var(--ink);cursor:pointer;border-radius:var(--radius);background:0 0;border:none;padding:8px 20px;font-family:inherit;font-size:min(18vw,96px);font-weight:900}.read-word:active{background:var(--card);transform:scale(1.04)}.merge-stage{border-radius:var(--radius);background:var(--card);touch-action:none;width:100%;max-width:640px;height:240px;position:relative;overflow:hidden}.merge-letter{width:var(--drag-min);height:var(--drag-min);margin-top:calc(var(--drag-min) / -2);color:#fff;border-radius:24px;justify-content:center;align-items:center;font-size:64px;font-weight:900;display:flex;position:absolute;top:50%}.merge-letter.cons{background:var(--cons-hard);cursor:grab;z-index:2;left:10px;box-shadow:0 0 0 18px #0000}.merge-letter.vowel{background:var(--vowel);right:10px}.merge-letter.pulse{animation:1.2s ease-in-out infinite pulse}.flash{animation:.5s ease-out flash}@keyframes flash{0%{box-shadow:0 0 #ffc93ce6}to{box-shadow:0 0 0 32px #ffc93c00}}.confetti{font-size:80px;animation:.6s bounce}.btn-next{border-radius:var(--radius);background:var(--accent);color:#fff;cursor:pointer;border:none;min-width:240px;padding:20px 28px;font-family:inherit;font-size:22px;font-weight:900}.btn-next:active{transform:scale(.97)}.hint{color:var(--ink-soft);text-align:center;font-size:15px}.host{background:var(--card);border-radius:50%;width:92px;height:92px;animation:.5s hostIn,3s ease-in-out .5s infinite bob;position:fixed;bottom:12px;left:12px;overflow:hidden;box-shadow:0 4px 14px #0000001f}.host img{object-fit:cover;width:100%;height:100%}@keyframes hostIn{0%{opacity:0;transform:translateY(30px)scale(.6)}}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.map-node .node-char{object-fit:cover;border-radius:50%;width:100%;height:100%}.reward-scene{border-radius:var(--radius);width:min(88vw,460px);box-shadow:0 8px 28px #00000026}.install-hint{z-index:100;background:var(--cons-hard);color:#fff;border-radius:16px;padding:14px 16px;animation:.4s hostIn;position:fixed;bottom:8px;left:8px;right:8px;box-shadow:0 6px 20px #00000040}.install-hint__text{text-align:center;margin-bottom:10px;font-size:13px;line-height:1.4}.install-hint__row{justify-content:center;gap:8px;display:flex}.install-hint__btn{background:var(--gold);max-width:200px;color:var(--ink);cursor:pointer;border:none;border-radius:12px;flex:1;padding:12px 18px;font-family:inherit;font-size:16px;font-weight:900}.install-hint__btn:active{transform:scale(.97)}.install-hint__close{color:#fff;cursor:pointer;background:#ffffff2e;border:none;border-radius:12px;padding:12px 16px;font-family:inherit;font-size:14px}
