:root{--bg: #fef8ec;--surface: #ffffff;--surface-2: #f4f0ff;--surface-3: #e9e1ff;--line: rgba(63, 48, 110, .1);--line-2: rgba(63, 48, 110, .2);--track: rgba(63, 48, 110, .12);--text: #2c2447;--muted: #746c92;--dim: #9a91b8;--accent: #5b67f2;--accent-2: #4048c9;--good: #29c07a;--good-2: #1a9c60;--bad: #ff5470;--bad-2: #e0395a;--gold: #ffb703;--gold-2: #d99400;--sky: #2f9bef;--green: #2bb673;--orange: #ff8a3d;--violet: #8b5cf6;--pink: #ec5fa3;--teal: #12b3a8;--amber: #f3a613;--cyan: #17aed1;--lime: #7cbb1f;--s1: 4px;--s2: 8px;--s3: 12px;--s4: 16px;--s5: 24px;--s6: 32px;--r1: 12px;--r2: 16px;--r3: 20px;--r4: 26px;--shadow-1: 0 2px 6px rgba(80, 60, 150, .08);--shadow-2: 0 10px 24px rgba(80, 60, 150, .16);--shadow-3: 0 20px 46px rgba(80, 60, 150, .22);--tap: 52px;--page-w: 940px;--ease-out: cubic-bezier(.23, 1, .32, 1);--ease-in-out: cubic-bezier(.77, 0, .175, 1);--font-body: "Nunito", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-display: "Baloo 2", "Nunito", -apple-system, sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%}html{scrollbar-gutter:stable}body{margin:0;color:var(--text);background:var(--bg);font:400 16px/1.5 var(--font-body);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;background:radial-gradient(900px 560px at 8% -10%,rgba(255,183,3,.16),transparent 60%),radial-gradient(820px 540px at 108% 6%,rgba(91,103,242,.14),transparent 58%),radial-gradient(700px 480px at 50% 115%,rgba(236,95,163,.1),transparent 55%),var(--bg)}button,input{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.app{min-height:100%;display:flex;flex-direction:column}.page{width:min(var(--page-w),100%);margin:0 auto;padding:var(--s4) var(--s4) 104px;flex:1}.topbar{position:sticky;top:0;z-index:20;background:#fef8ecd1;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}.topbar-in{width:min(var(--page-w),100%);margin:0 auto;display:flex;align-items:center;gap:var(--s2);padding:var(--s3) var(--s4)}.brand{display:flex;align-items:center;gap:var(--s2);font-family:var(--font-display);font-size:17px;font-weight:700;letter-spacing:-.2px;background:none;border:0;padding:0;color:var(--text)}.brand:hover .logo{background:color-mix(in srgb,var(--accent) 26%,transparent)}.brand .logo{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent)}.spacer{flex:1}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;gap:var(--s1);padding:var(--s2) var(--s2) calc(var(--s2) + env(safe-area-inset-bottom));background:#ffffffeb;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-top:1px solid var(--line);box-shadow:0 -4px 16px #503c960f}.tabbar-in{width:min(var(--page-w),100%);margin:0 auto;display:flex;gap:var(--s1)}.tabbar button{flex:1 1 0;min-width:0;min-height:50px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:0 2px;background:none;border:0;border-radius:var(--r2);color:var(--dim);font-size:11px;font-weight:700;transition:color .15s,background .15s}.tabbar button .ico{line-height:1}.tabbar button span:last-child{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tabbar button.on{color:var(--accent);background:var(--surface-2)}.tabbar button.on .ico{animation:tab-pop .2s var(--ease-out)}h1{margin:0;font-family:var(--font-display);font-size:25px;line-height:1.2;font-weight:700;letter-spacing:-.2px}h2{margin:var(--s5) 0 var(--s3);font-size:12px;font-weight:800;letter-spacing:.9px;text-transform:uppercase;color:var(--dim)}h3{margin:0 0 var(--s1);font-size:15px;font-weight:800}p{margin:0 0 var(--s3)}.sub{color:var(--muted);font-size:14px;margin:var(--s1) 0 0}.muted{color:var(--muted)}.dim{color:var(--dim)}.center{text-align:center}.small{font-size:13px}.screen-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s3);margin-bottom:var(--s4)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r3);padding:var(--s4);box-shadow:var(--shadow-1)}.card+.card{margin-top:var(--s3)}.card-tight{padding:var(--s2)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);min-height:var(--tap);padding:0 22px;border:0;border-radius:var(--r2);background:var(--accent);color:#fff;font-size:16px;font-weight:800;box-shadow:0 4px 0 var(--accent-2),var(--shadow-1);transition:transform .1s ease,filter .1s ease,box-shadow .1s ease}.btn:hover:not(:disabled){filter:brightness(1.04)}.btn:active:not(:disabled){transform:translateY(3px);box-shadow:0 1px 0 var(--accent-2)}.btn:disabled{opacity:.45;box-shadow:none}.btn.wide{width:100%}.btn.ghost{background:var(--surface-2);color:var(--text);box-shadow:0 2px 0 var(--line-2)}.btn.ghost:active:not(:disabled){box-shadow:0 0 0 var(--line-2)}.btn.good{background:var(--good);box-shadow:0 4px 0 var(--good-2),var(--shadow-1)}.btn.good:active:not(:disabled){box-shadow:0 1px 0 var(--good-2)}.btn.gold{background:var(--gold);color:#452c00;box-shadow:0 4px 0 var(--gold-2),var(--shadow-1)}.btn.gold:active:not(:disabled){box-shadow:0 1px 0 var(--gold-2)}.btn.sm{min-height:40px;padding:0 14px;font-size:14px;font-weight:700;border-radius:var(--r1);box-shadow:none}.btn.sm:active:not(:disabled){transform:translateY(1px);box-shadow:none}.btn.lg{min-height:58px;font-size:17px}.pill{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--text);font-size:13px;font-weight:800;white-space:nowrap}.pill.gold{color:var(--gold-2);background:color-mix(in srgb,var(--gold) 14%,var(--surface));border-color:transparent}.pill.streak{color:#d9640f;background:color-mix(in srgb,var(--orange) 14%,var(--surface));border-color:transparent}.pill.good{color:var(--good-2);background:color-mix(in srgb,var(--good) 14%,var(--surface));border-color:transparent}.row{display:flex;align-items:center;gap:var(--s3)}.row.wrap{flex-wrap:wrap}.row.between{justify-content:space-between}.stack{display:flex;flex-direction:column;gap:var(--s3)}.grid{display:grid;gap:var(--s3)}.grid.tiles{grid-template-columns:repeat(auto-fill,minmax(158px,1fr))}.grid.two{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}.grid.stats{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}.segmented{display:flex;gap:var(--s1);padding:var(--s1);background:var(--surface);border:1px solid var(--line);border-radius:var(--r2);overflow-x:auto;scrollbar-width:none;box-shadow:var(--shadow-1)}.segmented::-webkit-scrollbar{display:none}.segmented button{flex:0 0 auto;min-height:38px;padding:0 14px;border:0;border-radius:var(--r1);background:none;color:var(--muted);font-size:14px;font-weight:700;white-space:nowrap;transition:background .15s,color .15s}.segmented button.on{background:var(--accent);color:#fff}.segmented button:disabled{opacity:.4}.auth{max-width:420px;margin:0 auto;padding-top:6vh}.auth .logo{width:84px;height:84px;margin:0 auto;display:grid;place-items:center;border-radius:26px;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}.auth h1{text-align:center;margin-top:var(--s3)}.auth .sub{text-align:center;margin-bottom:var(--s5)}.field{display:block;margin-bottom:var(--s4)}.field>span{display:block;margin-bottom:6px;font-size:12px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;color:var(--dim)}.input{width:100%;min-height:var(--tap);padding:0 14px;background:var(--surface-2);color:var(--text);border:2px solid transparent;border-radius:var(--r2);outline:none;transition:border-color .15s}.input:focus{border-color:var(--accent)}.input::placeholder{color:var(--dim)}.input.pin{letter-spacing:14px;text-align:center;font-size:22px;font-weight:800;padding-left:14px;font-family:var(--font-display)}.error{color:var(--bad);font-size:14px;font-weight:700;min-height:20px;margin-bottom:var(--s2)}.avatar-pick{display:flex;flex-wrap:wrap;gap:var(--s2)}.avatar-pick button{width:50px;height:50px;display:grid;place-items:center;font-size:25px;border:2px solid transparent;border-radius:var(--r2);background:var(--surface-2);transition:border-color .15s,transform .12s}.avatar-pick button:hover{transform:translateY(-1px)}.avatar-pick button.on{border-color:var(--accent);background:var(--surface-3)}.tile{display:flex;flex-direction:column;gap:var(--s2);min-height:132px;padding:var(--s3);text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--r3);box-shadow:var(--shadow-1);transition:border-color .15s,transform .12s,box-shadow .15s;animation:card-rise .34s var(--ease-out) both}.tile:nth-child(2){animation-delay:35ms}.tile:nth-child(3){animation-delay:70ms}.tile:nth-child(4){animation-delay:105ms}.tile:nth-child(5){animation-delay:.14s}.tile:nth-child(n+6){animation-delay:175ms}.tile:active{transform:translateY(0)}.chip{width:40px;height:40px;flex:0 0 40px;display:grid;place-items:center;border-radius:var(--r2);color:var(--c, var(--accent));background:color-mix(in srgb,var(--c, var(--accent)) 16%,transparent)}.tile .name{font-size:15px;font-weight:800;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.5em}.tile .meta{margin-top:auto;font-size:12px;font-weight:700;color:var(--dim)}.bar{height:7px;border-radius:999px;background:var(--track);overflow:hidden}.bar>i{display:block;width:100%;height:100%;transform-origin:left;border-radius:999px;background:var(--c, var(--accent));transition:transform .28s var(--ease-out)}.row-btn{display:flex;align-items:center;gap:var(--s3);width:100%;min-height:64px;padding:var(--s3);text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--r2);box-shadow:var(--shadow-1);transition:border-color .15s,background .15s,transform .1s}.row-btn+.row-btn{margin-top:var(--s2)}.row-btn:hover:not(:disabled){border-color:var(--line-2);background:var(--surface-2)}.row-btn:active:not(:disabled){transform:translateY(1px)}.row-btn:disabled{opacity:.5}.row-btn .num{width:38px;height:38px;flex:0 0 38px;display:grid;place-items:center;border-radius:var(--r1);background:var(--surface-2);color:var(--accent);font-size:15px;font-weight:800}.row-btn .body{flex:1;min-width:0}.row-btn .body b{display:block;font-size:15px;font-weight:800}.row-btn .body small{display:block;color:var(--muted);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-btn.done{border-color:color-mix(in srgb,var(--good) 40%,transparent)}.row-btn.done .num{background:color-mix(in srgb,var(--good) 18%,transparent);color:var(--good-2)}.row-btn .chev{color:var(--dim)}.stars{letter-spacing:2px;font-size:14px;color:var(--gold);white-space:nowrap}.stars .off{color:var(--line-2)}.stars-reveal .earned{display:inline-block;animation:star-reveal .24s var(--ease-out) both;animation-delay:calc(var(--i) * 90ms)}.world-card{position:relative;overflow:hidden;margin-bottom:var(--s4);padding:var(--s4);background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 9%,var(--surface)),var(--surface) 58%);border:1px solid color-mix(in srgb,var(--accent) 22%,transparent);border-radius:var(--r4);box-shadow:var(--shadow-1);animation:story-enter .28s var(--ease-out) both}.world-card:after{content:"";position:absolute;width:180px;height:180px;right:-80px;top:-110px;border-radius:50%;background:radial-gradient(circle,rgba(255,209,94,.24),transparent 68%);pointer-events:none}.world-story{display:flex;align-items:center;gap:var(--s3);margin-bottom:var(--s3)}.world-story>div{flex:1;min-width:0}.world-guide{width:66px;height:66px;flex:0 0 66px;object-fit:contain;filter:drop-shadow(0 7px 8px rgba(47,38,94,.18));animation:guide-arrive .26s var(--ease-out) both}.eyebrow{display:block;color:var(--accent);font-size:11px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.world-story h2{margin:2px 0;font-size:20px}.world-story p{margin:0;color:var(--muted);font-size:13px;line-height:1.35}.world-energy{font-family:var(--font-display);font-size:25px;line-height:1;text-align:right;color:var(--accent-2)}.world-energy small{display:block;margin-top:4px;font:700 11px/1 var(--font-body);color:var(--dim)}.world-card>.bar{height:9px}.world-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(142px,1fr));gap:var(--s2);margin-top:var(--s3)}.world-place{position:relative;min-width:0;padding:0;overflow:hidden;text-align:left;color:var(--text);background:var(--surface);border:1px solid color-mix(in srgb,var(--c) 22%,var(--line));border-radius:var(--r2);box-shadow:var(--shadow-1);transition:transform .16s var(--ease-out),box-shadow .16s ease,border-color .16s ease;animation:card-rise .26s var(--ease-out) both;animation-delay:calc(var(--i) * 55ms + 90ms)}.world-place:active{transform:scale(.975)}.world-picture{position:relative;display:block;aspect-ratio:3 / 2;overflow:hidden;background:color-mix(in srgb,var(--c) 12%,var(--surface))}.world-picture:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,transparent 58%,rgba(26,22,52,.22))}.world-picture img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .26s var(--ease-out)}.world-picture>i{position:absolute;z-index:1;left:9px;bottom:8px;width:32px;height:32px;display:grid;place-items:center;color:var(--c);background:#ffffffeb;border-radius:11px;box-shadow:0 3px 10px #2d235529}.world-caption{display:block;padding:10px}.world-caption b,.world-caption small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.world-caption b{font-size:12px}.world-caption small{margin-top:2px;color:var(--dim);font-size:10px}.world-mini-bar{display:block;height:4px;margin-top:8px;overflow:hidden;border-radius:999px;background:var(--track)}.world-mini-bar>i{display:block;width:100%;height:100%;transform-origin:left;border-radius:inherit;background:var(--c);transition:transform .28s var(--ease-out)}.world-place.restored{border-color:color-mix(in srgb,var(--c) 52%,var(--line));box-shadow:0 7px 20px color-mix(in srgb,var(--c) 16%,transparent)}.world-place.restored .world-picture:before{content:"";position:absolute;z-index:1;top:0;right:0;bottom:0;left:0;box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--gold) 50%,transparent);pointer-events:none}@media(hover:hover)and (pointer:fine){.tile:hover{border-color:var(--line-2);transform:translateY(-2px);box-shadow:var(--shadow-2)}.world-place:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--c) 55%,var(--line));box-shadow:var(--shadow-2)}.world-place:hover .world-picture img{transform:scale(1.045)}}.world-result{display:flex;align-items:center;gap:var(--s3);padding:var(--s3) var(--s4);color:var(--text);background:color-mix(in srgb,var(--c) 12%,var(--surface));border:1px solid color-mix(in srgb,var(--c) 35%,transparent);border-radius:var(--r2)}.world-result>span{display:grid;place-items:center;color:var(--c)}.world-result>div{flex:1;min-width:0}.world-result b,.world-result small{display:block}.world-result b{font-size:14px}.world-result small{margin-top:2px;color:var(--muted);font-size:12px}.world-result strong{color:var(--c);font-family:var(--font-display);font-size:20px}.reward{display:flex;align-items:center;gap:var(--s3);width:100%;margin-bottom:var(--s3);padding:var(--s4);text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--r3);box-shadow:var(--shadow-1)}.reward .big{color:var(--accent);line-height:1;flex:0 0 auto}.reward .t{flex:1;min-width:0}.reward .t b{display:block;font-size:15px;font-weight:800}.reward .t small{color:var(--muted);font-size:13px}.reward .go{flex:0 0 auto;padding:10px 16px;border-radius:var(--r1);background:var(--gold);color:#452c00;font-weight:800;font-size:14px;white-space:nowrap;box-shadow:0 3px 0 var(--gold-2)}.reward.chest{position:relative;overflow:hidden;border-color:color-mix(in srgb,var(--gold) 45%,transparent);background:linear-gradient(140deg,color-mix(in srgb,var(--gold) 12%,transparent),var(--surface) 62%)}.reward.chest .big{color:var(--gold-2)}.reward.chest:hover{border-color:color-mix(in srgb,var(--gold) 65%,transparent)}.reward.chest>*{position:relative;z-index:1}.reward.chest.opening:after{content:"";position:absolute;z-index:0;left:-8px;top:50%;width:86px;height:86px;margin-top:-43px;border-radius:50%;background:radial-gradient(circle,rgba(255,229,137,.9),rgba(255,194,59,.28) 46%,transparent 70%);animation:chest-flash .26s var(--ease-out) both}.reward.chest.opening .big{animation:chest-open .26s var(--ease-out) both}.reward.prize{border-color:color-mix(in srgb,var(--good) 40%,transparent);background:linear-gradient(140deg,color-mix(in srgb,var(--good) 12%,transparent),var(--surface) 62%)}.reward.prize .big{color:var(--good-2)}.reward.goal.ready{border-color:color-mix(in srgb,var(--good) 40%,transparent)}.goalbar{height:7px;margin:7px 0 6px;border-radius:999px;background:var(--track);overflow:hidden}.goalbar>i{display:block;width:100%;height:100%;transform-origin:left;border-radius:999px;background:linear-gradient(90deg,var(--accent),var(--good));transition:transform .28s var(--ease-out)}.duelcode{margin:var(--s2) 0;font-family:var(--font-display);font-size:38px;font-weight:700;letter-spacing:10px;color:var(--gold-2)}.codeinput{flex:1;min-width:0;min-height:var(--tap);padding:0 14px;background:var(--surface-2);color:var(--text);border:2px solid transparent;border-radius:var(--r2);font-family:var(--font-display);font-size:20px;font-weight:700;letter-spacing:6px;text-align:center;text-transform:uppercase;outline:none}.codeinput:focus{border-color:var(--accent)}.duelscore{display:flex;align-items:stretch;gap:var(--s2)}.duelscore .side{flex:1;min-width:0;padding:var(--s3) var(--s2);text-align:center;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r2)}.duelscore .side.win{border-color:color-mix(in srgb,var(--gold) 55%,transparent);background:color-mix(in srgb,var(--gold) 12%,var(--surface-2))}.duelscore .side .av{font-size:24px;line-height:1.2}.duelscore .side b{display:block;font-size:14px}.duelscore .side small{color:var(--muted);font-size:12px}.duelscore .vs{align-self:center;color:var(--dim);font-size:12px;font-weight:800}.play{display:grid;grid-template-rows:auto minmax(0,1fr) auto;min-height:100dvh;width:min(560px,100%);margin:0 auto}.play-top{display:flex;align-items:center;gap:var(--s3);padding:var(--s3) var(--s4)}.play-top .quit{width:40px;height:40px;flex:0 0 40px;display:grid;place-items:center;border:1px solid var(--line-2);border-radius:50%;background:var(--surface);color:var(--muted)}.progress{flex:1;height:9px;border-radius:999px;background:var(--track);overflow:hidden}.progress>i{display:block;width:100%;height:100%;transform-origin:left;background:linear-gradient(90deg,var(--good),var(--accent));transition:transform .28s var(--ease-out)}.counter{font-size:13px;font-weight:800;color:var(--muted);white-space:nowrap}.combo{font-size:13px;font-weight:800;color:var(--gold-2);white-space:nowrap}.question{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s4);padding:var(--s3) var(--s4);overflow-y:auto;text-align:center}.game-guide{position:absolute;right:8px;top:2px;width:72px;height:72px;object-fit:contain;filter:drop-shadow(0 6px 7px rgba(47,38,94,.16));pointer-events:none}.game-guide.ok{animation:guide-cheer .26s var(--ease-out) both}.game-guide.no{animation:guide-encourage .22s var(--ease-out) both}.reward-flight{position:fixed;z-index:70;display:grid;place-items:center;width:34px;height:34px;color:#fff;background:linear-gradient(145deg,#b68cff,#6b5be7);border:2px solid rgba(255,255,255,.8);border-radius:50%;box-shadow:0 6px 18px #4c39ae59;pointer-events:none;animation:reward-fly .28s var(--ease-out) both}.q-label{max-width:calc(100% - 112px);font-size:12px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--dim)}.q-text{font-family:var(--font-display);font-size:clamp(30px,8vw,46px);font-weight:700;letter-spacing:-.5px;line-height:1.1}.q-text.long{font-size:clamp(17px,4.4vw,22px);font-weight:800;letter-spacing:0;line-height:1.4;max-width:30ch;font-family:var(--font-body)}.q-unit{font-size:13px;color:var(--dim)}.answers{display:flex;gap:var(--s3);justify-content:center;flex-wrap:wrap}.answer-slot{text-align:center}.answer-slot .label{margin-bottom:5px;font-size:12px;color:var(--dim)}.answer-box{min-width:148px;min-height:58px;padding:0 16px;display:inline-flex;align-items:center;justify-content:center;background:var(--surface);border:3px solid var(--line-2);border-radius:var(--r2);font-family:var(--font-display);font-size:28px;font-weight:700;box-shadow:var(--shadow-1);transition:border-color .15s,color .15s}.answer-box.idle{opacity:.6}.answer-box.ok{border-color:var(--good);color:var(--good-2)}.answer-box.no{border-color:var(--bad);color:var(--bad-2);animation:shake .34s}.caret{width:3px;height:28px;border-radius:2px;background:var(--accent);animation:blink 1.05s steps(2) infinite}.feedback{min-height:24px;font-size:16px;font-weight:800}.feedback.ok{color:var(--good-2)}.feedback.no{color:var(--bad-2)}.hintline{min-height:42px;display:flex;align-items:center;justify-content:center}.hintline .text{color:var(--muted);font-size:14px;max-width:34ch}.pad{padding:var(--s3) var(--s4) calc(var(--s4) + env(safe-area-inset-bottom))}.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s2)}.keypad button{min-height:58px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r2);font-family:var(--font-display);font-size:24px;font-weight:700;box-shadow:0 3px 0 var(--line-2);transition:background .12s,transform .1s,box-shadow .1s}.keypad button:hover{background:var(--surface-2)}.keypad button:active{transform:translateY(3px);box-shadow:none}.keypad button.go{background:var(--good);color:#fff;border-color:transparent;box-shadow:0 3px 0 var(--good-2)}.keypad button.del{color:var(--bad-2)}.choices{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s2)}.choices button{min-height:62px;padding:0 var(--s3);background:var(--surface);border:3px solid var(--line);border-radius:var(--r2);font-family:var(--font-display);font-size:20px;font-weight:700;box-shadow:var(--shadow-1);transition:background .12s,border-color .12s}.choices button:hover{border-color:var(--line-2)}.choices button.ok{border-color:var(--good);background:color-mix(in srgb,var(--good) 14%,var(--surface));color:var(--good-2)}.choices button.no{border-color:var(--bad);background:color-mix(in srgb,var(--bad) 12%,var(--surface));color:var(--bad-2)}.shapepick{display:flex;flex-wrap:wrap;gap:var(--s2);justify-content:center}.shapepick button{padding:var(--s2);background:var(--surface);border:3px solid var(--line);border-radius:var(--r2);box-shadow:var(--shadow-1)}.shapepick button.ok{border-color:var(--good)}.visual{display:flex;flex-wrap:wrap;gap:var(--s3);justify-content:center;align-items:center}.dots{display:flex;flex-wrap:wrap;gap:5px;max-width:186px;justify-content:center}.dot{width:18px;height:18px;border-radius:50%;background:var(--sky)}.dot.b{background:var(--orange)}.arr{display:grid;gap:4px}.arr .r{display:flex;gap:4px}.arr .c{width:15px;height:15px;border-radius:4px;background:var(--amber)}.gridfig{display:grid;gap:2px}.gridfig .c{background:color-mix(in srgb,var(--sky) 45%,transparent);border:1px solid color-mix(in srgb,var(--sky) 60%,transparent)}.magic{display:grid;grid-template-columns:repeat(3,50px);gap:6px}.magic div{height:50px;display:grid;place-items:center;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r1);font-family:var(--font-display);font-size:19px;font-weight:700}.magic div.hole{border-style:dashed;border-color:var(--line-2);color:var(--accent)}.heat{display:grid;grid-template-columns:repeat(11,minmax(0,1fr));gap:3px;max-width:460px;margin:0 auto}.heat div{aspect-ratio:1;display:grid;place-items:center;border-radius:6px;background:var(--surface-2);font-size:clamp(9px,2.4vw,12px);font-weight:700}.heat div.head{background:none;color:var(--dim);font-weight:800}.heat button{border:0;padding:0;font:inherit}.heat .m0{background:var(--surface-2);color:var(--dim)}.heat .m1{background:color-mix(in srgb,var(--orange) 26%,var(--surface-2));color:#7a3d0f}.heat .m2{background:color-mix(in srgb,var(--amber) 30%,var(--surface-2));color:#6b4c05}.heat .m3{background:color-mix(in srgb,var(--lime) 32%,var(--surface-2));color:#3d5709}.heat .m4{background:color-mix(in srgb,var(--good) 34%,var(--surface-2));color:#0d5a37}.heat .m5{background:var(--good);color:#fff}.legend{display:flex;flex-wrap:wrap;gap:var(--s3);margin-top:var(--s3);font-size:12px;color:var(--muted)}.legend span{display:inline-flex;align-items:center;gap:5px}.legend i{width:11px;height:11px;border-radius:3px}.lb{overflow:hidden}.lb-row{display:flex;align-items:center;gap:var(--s3);padding:var(--s3);border-bottom:1px solid var(--line)}.lb-row:last-child{border-bottom:0}.lb-row .pos{width:30px;flex:0 0 30px;text-align:center;font-size:14px;font-weight:800;color:var(--dim)}.lb-row .pos.top1{color:var(--gold-2)}.lb-row .pos.top2{color:#7a83a8}.lb-row .pos.top3{color:#b5772f}.lb-row .av{font-size:24px;line-height:1}.lb-row .nm{flex:1;min-width:0}.lb-row .nm b{display:block;font-size:15px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lb-row .nm small{color:var(--dim);font-size:12px}.lb-row .val{display:inline-flex;align-items:center;gap:4px;font-size:16px;font-weight:800;white-space:nowrap}.lb-row.me{background:color-mix(in srgb,var(--accent) 8%,transparent)}.lb-me{display:flex;align-items:center;gap:var(--s3);margin-top:var(--s3);padding:var(--s3);background:var(--surface-2);border:2px dashed var(--line-2);border-radius:var(--r2)}.lb-me .val{display:inline-flex;align-items:center;gap:4px}.feed{position:relative;padding-left:30px}.feed:before{content:"";position:absolute;left:13px;top:6px;bottom:6px;width:2px;border-radius:2px;background:var(--line-2)}.feed-item{position:relative;padding:0 0 var(--s4)}.feed-item .marker{position:absolute;left:-30px;top:0;width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:var(--surface);border:1px solid var(--line-2);color:var(--accent);box-shadow:var(--shadow-1)}.feed-item .when{font-size:12px;color:var(--dim)}.feed-item .what{font-size:14px;font-weight:700}.feed-item .what small{display:block;color:var(--muted);font-weight:500}.feed-day{margin:var(--s4) 0 var(--s3);font-size:12px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--dim)}.profile-card{text-align:center}.profile-card .ava{font-size:58px;line-height:1}.rankbar{height:8px;margin:var(--s3) 0 6px;border-radius:999px;background:var(--track);overflow:hidden}.rankbar>i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--gold),var(--pink));transition:width .5s ease}.stat{padding:var(--s3);text-align:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--r2);box-shadow:var(--shadow-1)}.stat b{display:block;font-family:var(--font-display);font-size:20px;font-weight:700}.stat small{display:block;margin-top:2px;font-size:12px;color:var(--dim);line-height:1.3}.ach{display:flex;align-items:center;gap:var(--s3);padding:var(--s3);background:var(--surface);border:1px solid var(--line);border-radius:var(--r2);box-shadow:var(--shadow-1)}.ach.locked{opacity:.45;box-shadow:none}.ach .e{color:var(--accent);line-height:1}.ach.locked .e{color:var(--dim)}.ach b{display:block;font-size:14px}.ach small{color:var(--muted);font-size:12px}.days{display:flex;flex-wrap:wrap;gap:4px}.days i{width:13px;height:13px;border-radius:4px;background:var(--track)}.days i.a1{background:color-mix(in srgb,var(--good) 35%,transparent)}.days i.a2{background:color-mix(in srgb,var(--good) 60%,transparent)}.days i.a3{background:color-mix(in srgb,var(--good) 82%,transparent)}.days i.a4{background:var(--good)}.result{max-width:560px;margin:0 auto;text-align:center;padding-top:var(--s5)}.result .big{color:var(--gold-2);line-height:1}.result .stars-big{font-size:38px;letter-spacing:8px;color:var(--gold)}.result .stars-big .off{color:var(--line-2)}.result .card{text-align:left;margin-top:var(--s4)}.review-row{display:flex;align-items:center;gap:var(--s3);padding:var(--s2) 0;border-bottom:1px solid var(--line)}.review-row:last-child{border-bottom:0}.review-row .q{flex:1;min-width:0;font-size:14px}.review-row .was{color:var(--dim);text-decoration:line-through;font-size:13px}.review-row .right{color:var(--good-2);font-weight:800}.toast{position:fixed;left:50%;bottom:92px;z-index:60;transform:translate(-50%);display:flex;align-items:center;gap:var(--s2);max-width:min(420px,92vw);padding:var(--s3) var(--s4);background:var(--text);color:#fff;border-radius:var(--r2);box-shadow:var(--shadow-3);font-size:14px;font-weight:700;animation:pop .22s ease-out}canvas.confetti{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:50}.ad-slot{width:min(var(--page-w),100%);margin:0 auto 104px;padding:var(--s3) var(--s4) 0;display:flex;justify-content:center;overflow:hidden}.ad-slot:empty{display:none;margin:0}.empty{padding:var(--s5);text-align:center;color:var(--muted);background:var(--surface);border:2px dashed var(--line-2);border-radius:var(--r3)}.loading{padding:var(--s5);text-align:center;color:var(--dim)}@keyframes blink{50%{opacity:0}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-7px)}75%{transform:translate(7px)}}@keyframes pop{0%{transform:scale(.94);opacity:0}to{transform:scale(1);opacity:1}}@keyframes nudge{0%,to{transform:rotate(0)}38%{transform:rotate(-1.4deg)}72%{transform:rotate(1.4deg)}}@keyframes story-enter{0%{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes card-rise{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes guide-arrive{0%{opacity:0;transform:translateY(6px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes guide-cheer{0%{transform:translateY(0) rotate(0)}50%{transform:translateY(-7px) rotate(4deg)}to{transform:translateY(0) rotate(0)}}@keyframes guide-encourage{0%,to{transform:rotate(0)}45%{transform:rotate(-4deg)}70%{transform:rotate(3deg)}}@keyframes reward-fly{0%{opacity:0;transform:translate(-50%,-50%) scale(.9)}18%{opacity:1}to{opacity:0;transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) scale(.7)}}@keyframes chest-open{0%{transform:rotate(0) scale(1)}42%{transform:rotate(-7deg) scale(.94)}to{transform:rotate(5deg) scale(1.12)}}@keyframes chest-flash{0%{opacity:0;transform:scale(.9)}45%{opacity:1}to{opacity:0;transform:scale(1.28)}}@keyframes star-reveal{0%{opacity:0;transform:translateY(5px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes tab-pop{0%{transform:scale(.86)}to{transform:scale(1)}}.pop{animation:pop .22s ease-out}.nudge{animation:nudge .28s var(--ease-out) .8s both}@media(max-width:430px){:root{--s4: 14px;--s5: 20px}h1{font-size:22px}.page{padding-left:var(--s3);padding-right:var(--s3)}.magic{grid-template-columns:repeat(3,44px)}.magic div{height:44px;font-size:17px}.duelcode{font-size:32px;letter-spacing:7px}.tabbar button{font-size:10px}.world-story{align-items:flex-start}.world-guide{width:54px;height:54px;flex-basis:54px}.world-energy{font-size:21px}.world-list{grid-template-columns:1fr 1fr}.game-guide{width:56px;height:56px;right:2px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
