html,body,#root{margin:0;height:100%}*,*:before,*:after{box-sizing:border-box}button{font:inherit;color:inherit;border:0;cursor:pointer;-webkit-tap-highlight-color:transparent}.app{--ink:#2b2a33;--ink2:#6b6877;--acc:#d9622b;font-family:system-ui,-apple-system,Segoe UI,Heebo,Arial,sans-serif;font-size:18px;color:var(--ink);height:100%;min-height:520px;position:relative;overflow:hidden;user-select:none;-webkit-user-select:none;touch-action:manipulation;background:radial-gradient(120% 70% at 50% 0%,#fffaf2,#f8efe3 55%,#eef2f3)}[data-w=\5de\5d9]{--c:#d4504a;--cs:#fde4e0}[data-w=\5de\5ea\5d9]{--c:#b57400;--cs:#fdf0c9}[data-w=\5d4\5d9\5db\5df]{--c:#1f8a7d;--cs:#d5f1ec}[data-w=\5db\5de\5d4]{--c:#7a55cc;--cs:#e9e1fb}[data-w=\5de\5d4]{--c:#2f6dc9;--cs:#dce9fb}.center{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;padding:24px}.halo{position:relative;width:260px;height:260px;display:grid;place-items:center}.halo i{position:absolute;inset:0;border-radius:50%;background:#d9622b1a;animation:ring 3.2s ease-out infinite}.halo i:nth-child(2){animation-delay:1.06s}.halo i:nth-child(3){animation-delay:2.1s}.big{position:relative;width:200px;height:200px;border-radius:50%;font-size:40px;font-weight:800;color:#fff;letter-spacing:.5px;background:radial-gradient(circle at 35% 28%,#f08a52,#d9622b 60%,#c4521f);box-shadow:0 26px 40px -14px #c4521fa6,0 8px #b64a1a,inset 0 3px #fff6;transition:transform .15s,box-shadow .15s}.big:active{transform:translateY(6px);box-shadow:0 14px 24px -12px #c4521f99,0 2px #b64a1a,inset 0 3px #fff6}.halo.small{width:150px;height:150px}.big.sm{width:112px;height:112px;font-size:26px}@keyframes ring{0%{transform:scale(.78);opacity:.9}to{transform:scale(1.25);opacity:0}}.end h1{margin:0;font-size:44px}.stars{display:flex;gap:6px;direction:ltr}.stars b{font-size:48px;line-height:1;color:#e6dccb;text-shadow:0 2px 0 rgba(255,255,255,.8)}.stars b.on{color:#f2b134;text-shadow:0 3px 0 #c98a0e,0 8px 14px rgba(201,138,14,.35);animation:pop .5s both;animation-delay:calc(var(--i)*.11s)}@keyframes pop{0%{transform:scale(.3);opacity:0}70%{transform:scale(1.2)}to{transform:none;opacity:1}}.play{height:100%;max-width:560px;margin:0 auto;overflow-y:auto;padding:14px 18px 130px;display:flex;flex-direction:column;align-items:stretch;gap:18px}.play header{display:flex;align-items:center;justify-content:space-between}.x{width:48px;height:48px;border-radius:50%;background:#fff;font-size:28px;line-height:1;color:var(--ink2);box-shadow:0 6px 12px -6px #5a463259,inset 0 1px #fff}.ghostx{visibility:hidden}.dots{display:flex;gap:10px}.dots i{width:14px;height:14px;border-radius:50%;background:#e3d9c8;transition:all .3s}.dots i.now{background:var(--ink);transform:scale(1.25)}.dots i.done{background:#8dbf8a}.say{text-align:center;font-size:26px;font-weight:800;min-height:36px;animation:rise .4s both}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.qcard{background:#fff;border-radius:28px;padding:26px 18px;display:flex;flex-wrap:wrap;gap:6px 10px;justify-content:center;align-items:center;box-shadow:0 22px 34px -18px #5a463261,0 2px #ffffffe6 inset,0 0 0 1px #5a46320d;transition:background .3s}.qcard.small{padding:14px 16px}.qcard.tint{background:var(--cs)}.qw{background:transparent;font-size:34px;font-weight:800;padding:6px 12px;min-height:56px;border-radius:16px}.qcard.small .qw{font-size:26px;min-height:46px}.qw:disabled{color:inherit}.qw:not(:disabled):active{background:#f3ece0}.qw.on{background:var(--c, var(--ink));color:#fff;box-shadow:0 8px 14px -8px #0006}.qcard:not(.tint) .qw.on{--c:var(--ink)}.qm{font-size:34px;font-weight:800;color:var(--ink2)}.qcard.small .qm{font-size:26px}.shake,.det[data-shake]{animation:shake .3s}@keyframes shake{20%{transform:translate(-7px)}50%{transform:translate(7px)}80%{transform:translate(-4px)}}.cats{display:grid;grid-template-columns:1fr 1fr;gap:14px}.cat{min-height:96px;border-radius:26px;font-size:26px;font-weight:800;color:#fff;background:var(--c);line-height:1.15;padding:0 10px;box-shadow:0 14px 20px -10px var(--c),0 6px #0000002e,inset 0 2px #ffffff59;transition:transform .12s,box-shadow .12s,opacity .2s;animation:rise .4s both}.cat:nth-child(5){grid-column:1 / -1}.cat:active{transform:translateY(5px);box-shadow:0 6px 10px -8px var(--c),0 1px #0000002e,inset 0 2px #ffffff59}.cat.no{opacity:.28;transform:none;box-shadow:none}.paper{background:#fffdf7;border-radius:24px;padding:10px 18px 14px;box-shadow:0 22px 34px -18px #5a463261,0 0 0 1px #5a46320d;animation:rise .45s both;background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 53px,rgba(120,150,190,.22) 53px,rgba(120,150,190,.22) 54px);background-position:0 12px}.passage{margin:0;font-size:21px;line-height:54px}.det{display:inline;padding:9px;margin:0 1px;border-radius:10px;background:var(--hl, #fff0b8);font-size:inherit;font-weight:700;line-height:1.3;box-decoration-break:clone;-webkit-box-decoration-break:clone;box-shadow:0 2px #b48c1459}.det:not(:disabled):active{transform:scale(.96)}.det:disabled{color:inherit}.det.no{background:#eee8dc;color:#a39d90;text-decoration:line-through;box-shadow:none}.det.yes{background:#bfe6b8;box-shadow:0 2px #5fa956;animation:pop .4s both}.play[data-w] .det:not(.no):not(.yes){--hl:#fff0b8}.next{position:fixed;bottom:max(24px,env(safe-area-inset-bottom));left:50%;margin-left:-44px;width:88px;height:88px;border-radius:50%;font-size:44px;font-weight:800;color:#fff;background:radial-gradient(circle at 35% 28%,#f08a52,#d9622b 65%);box-shadow:0 18px 26px -12px #c4521fb3,0 6px #b64a1a,inset 0 2px #fff6;animation:pop .4s both}.next:active{transform:translateY(5px);box-shadow:0 8px 12px -8px #c4521f99,0 1px #b64a1a}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.menu{height:100%;overflow-y:auto;padding:34px 20px 28px;max-width:560px;margin:0 auto;display:flex;flex-direction:column;gap:26px}.menu h1{margin:0;text-align:center;font-size:38px;letter-spacing:-.3px}.tiles{display:grid;grid-template-columns:1fr 1fr;gap:16px}.tile{position:relative;min-height:158px;border-radius:30px;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:12px;box-shadow:0 22px 30px -16px #5a463266,inset 0 2px #fff,0 0 0 1px #5a46320d;animation:rise .5s both;animation-delay:calc(var(--i)*70ms);transition:transform .15s,box-shadow .15s}.tile:active{transform:translateY(4px) scale(.98);box-shadow:0 8px 12px -10px #5a463266,inset 0 2px #fff}.tile strong{font-size:22px}.ico{width:68px;height:68px;border-radius:50%;display:grid;place-items:center;color:#fff;background:var(--c);box-shadow:0 12px 16px -8px var(--c),inset 0 2px #fff6,0 4px #00000024}.home{background:transparent;color:var(--ink2);font-size:18px;min-height:48px;padding:0 22px;border-radius:16px}.top{display:flex;align-items:center;justify-content:space-between}.board{position:relative;display:flex;justify-content:space-between;gap:56px;touch-action:none;flex:1;max-height:520px}.col{display:flex;flex-direction:column;justify-content:space-around;gap:12px;flex:1}.lw{min-height:68px;border-radius:22px;font-size:28px;font-weight:800;background:#fff;box-shadow:0 12px 16px -10px #5a463273,inset 0 2px #fff,0 0 0 1px #5a46320f;touch-action:none}.lw.ok{background:var(--c);color:#fff}.ld{min-height:68px;border-radius:22px;display:grid;place-items:center;text-align:center;padding:4px 10px;font-size:19px;font-weight:700;line-height:1.15;background:#fffdf7;box-shadow:inset 0 0 0 2px #e6dccb}.ld.ok{background:var(--cs);box-shadow:inset 0 0 0 2px var(--c)}.wires{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}.card2{background:#fff;border-radius:28px;padding:28px 18px;text-align:center;font-size:32px;font-weight:800;line-height:1.25;min-height:120px;display:grid;place-items:center;box-shadow:0 22px 34px -18px #5a463261,inset 0 2px #fff,0 0 0 1px #5a46320d;animation:rise .35s both;transition:background .25s}.card2.tint{background:var(--cs, #d8f0d3)}.judge .card2.a{background:#fffdf7;box-shadow:inset 0 0 0 3px #e6dccb}.judge .card2.a.tint{background:#d8f0d3;box-shadow:inset 0 0 0 3px #5fa956}.judge .card2.q{background:var(--cs)}.judge .card2.q{font-size:28px}.sort .cat{font-size:34px;min-height:92px}.cat.win{transform:scale(1.04)}.yn{display:flex;gap:18px;margin-top:6px}.yn button{flex:1;min-height:120px;border-radius:32px;font-size:60px;font-weight:800;color:#fff;box-shadow:0 16px 22px -12px #0006,0 6px #0000002e,inset 0 2px #fff6;transition:transform .12s}.yn button:active{transform:translateY(5px);box-shadow:0 6px 10px -8px #0006,0 1px #0000002e}.yn .yes{background:#4f9d54}.yn .no{background:#d4504a}.hearts{display:flex;gap:6px}.hearts b{font-size:32px;line-height:1;color:#e3d9c8;transition:color .2s,transform .2s}.hearts b.on{color:#e0555c;text-shadow:0 3px 0 rgba(160,40,50,.25)}.say.small{font-size:18px;color:var(--ink2);font-weight:600;min-height:0}.goal{display:flex;align-items:center;justify-content:center;gap:14px}.goal b{font-size:40px;line-height:1;padding:8px 26px;border-radius:22px;color:#fff;background:var(--c);box-shadow:0 12px 16px -10px var(--c),inset 0 2px #fff6,0 4px #00000024}.goal span{font-size:22px;font-weight:800}.goal em{font-style:normal;font-size:22px;font-weight:800;color:var(--ink2);min-width:56px;text-align:center}.scene{position:relative;flex:1;min-height:400px;border-radius:30px;overflow:hidden;direction:ltr;background:linear-gradient(#cfe8f5,#f6efe2 72%);box-shadow:0 22px 34px -18px #5a463261,0 0 0 1px #5a46320f}.cloud{position:absolute;width:96px;height:30px;border-radius:30px;background:#ffffffd9;box-shadow:26px -12px 0 -2px #ffffffd9;animation:drift 38s linear infinite}.c1{top:30px;left:-120px}.c2{top:84px;left:-120px;animation-duration:56s;animation-delay:-20s;transform:scale(.7)}@keyframes drift{to{left:110%}}.hills{position:absolute;left:0;right:0;background-repeat:repeat-x}.hills.far{bottom:78px;height:120px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='360' height='120'%3E%3Cpath d='M0 120V70Q90 0 180 70T360 70V120Z' fill='%23d6e7cf'/%3E%3C/svg%3E");background-size:360px 120px;animation:scroll 22s linear infinite}.hills.near{bottom:70px;height:80px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='80'%3E%3Cpath d='M0 80V44Q60 0 120 44T240 44V80Z' fill='%23bcd9b3'/%3E%3C/svg%3E");background-size:240px 80px;animation:scroll2 10s linear infinite}@keyframes scroll{to{background-position-x:-360px}}@keyframes scroll2{to{background-position-x:-240px}}.ground{position:absolute;left:0;right:0;bottom:0;height:96px;background:repeating-linear-gradient(90deg,#a98b69 0 12px,transparent 12px 44px) 0 66px/100% 9px no-repeat,linear-gradient(#8d8576,#8d8576) 0 60px/100% 5px no-repeat,linear-gradient(#e6d9c0,#d9caae);animation:sleepers .64s linear infinite}@keyframes sleepers{to{background-position:-44px 66px,0 60px,0 0}}.go .ground{animation-duration:.22s}.go .hills.near{animation-duration:3s}.go .hills.far{animation-duration:7s}.sign{position:absolute;left:100%;top:calc(16px + var(--row) * 74px);direction:rtl;min-height:56px;max-width:46%;padding:0 16px;border-radius:18px;background:#fff;font-size:19px;font-weight:700;line-height:1.15;box-shadow:0 12px 18px -10px #5a463280,inset 0 2px #fff,0 0 0 1px #5a46320f;animation:slide 7s linear forwards}.sign:after{content:"";position:absolute;left:50%;top:100%;width:4px;height:16px;margin-left:-2px;background:#b9a98f;border-radius:2px}@keyframes slide{to{left:-52%}}.loco{position:absolute;left:10px;right:10px;bottom:34px;display:flex;align-items:flex-end;gap:6px;animation:bob .42s ease-in-out infinite alternate}.loco.shk{animation:shake .3s}@keyframes bob{to{transform:translateY(-2px)}}.go .loco{animation:none;transform:translate(125%);transition:transform 1.4s cubic-bezier(.55,0,1,1)}.wagon{position:relative;flex:1;height:54px;border-radius:10px;background:#e8dfcf;box-shadow:inset 0 2px #ffffffb3;transition:background .3s}.wagon.full{background:var(--c);box-shadow:0 8px 12px -8px var(--c),inset 0 2px #fff6;animation:pop .35s both}.engine{position:relative;width:132px;height:92px;border-radius:34px 20px 10px 10px;background:var(--c);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 10px 14px -8px var(--c),inset 0 2px #fff6;direction:rtl}.engine b{font-size:34px;line-height:1}.engine small{font-size:16px;opacity:.95;margin-top:2px}.engine:before{content:"";position:absolute;top:-18px;right:22px;width:26px;height:20px;background:#3a3845;border-radius:6px 6px 0 0}.smoke{position:absolute;top:-30px;right:24px;width:22px;height:22px}.smoke i{position:absolute;left:0;bottom:0;width:16px;height:16px;border-radius:50%;background:#fffffff2;box-shadow:0 2px 6px #00000014;animation:puff 1.5s ease-out infinite}.smoke i:nth-child(2){animation-delay:.5s}.smoke i:nth-child(3){animation-delay:1s}@keyframes puff{0%{transform:translate(0) scale(.5);opacity:.95}to{transform:translate(-34px,-46px) scale(1.5);opacity:0}}.wh{position:absolute;bottom:-11px;width:20px;height:20px;border-radius:50%;background:#3a3845;border:3px solid #fffdf7;animation:spin .5s linear infinite}.wh:after{content:"";position:absolute;left:50%;top:1px;width:2px;height:11px;margin-left:-1px;background:#fffdf7}.wagon .wh:nth-of-type(1){left:12%}.wagon .wh:nth-of-type(2){right:12%}.engine .wh:nth-of-type(1){left:16%}.engine .wh:nth-of-type(2){right:16%}@keyframes spin{to{transform:rotate(360deg)}}.field{position:relative;flex:1;min-height:380px;direction:ltr;border-radius:30px;overflow:hidden;touch-action:none;background:#fffdf7;box-shadow:0 22px 34px -18px #5a463261,0 0 0 1px #5a46320f;cursor:pointer}.laneline{position:absolute;top:0;bottom:0;left:calc(var(--l) * 33.333%);width:33.333%;transition:background .2s;border-inline-end:2px dashed #eee4d3}.laneline.on{background:#3c32280b}.fall{position:absolute;left:calc(var(--l) * 33.333% + 3%);width:30%;top:-70px;min-height:54px;display:grid;place-items:center;text-align:center;padding:6px 8px;border-radius:18px;background:#fff;direction:rtl;font-size:17px;font-weight:700;line-height:1.15;box-shadow:0 10px 16px -10px #5a46328c,0 0 0 1px #5a463214;animation:fallc 3.6s linear forwards}@keyframes fallc{to{top:calc(100% - 82px)}}.basket{position:absolute;bottom:12px;left:calc(var(--l) * 33.333% + 3%);width:30%;height:58px;border-radius:8px 8px 26px 26px;background:var(--c);box-shadow:0 12px 16px -8px var(--c),inset 0 3px #fff6,0 4px #00000029;transition:left .16s;animation:pop .3s both}.basket span{position:absolute;top:-6px;left:6%;right:6%;height:12px;border-radius:8px;background:#0000002e}.sky2{position:relative;flex:1;min-height:240px;direction:ltr;border-radius:30px;overflow:hidden;background:linear-gradient(#e2f0fa,#f6efe2);box-shadow:0 22px 34px -18px #5a46324d,0 0 0 1px #5a46320f}.balloon{position:absolute;bottom:-120px;left:calc(var(--c) * 25% + 1.5%);width:22%;min-height:96px;padding:10px 6px;direction:rtl;border-radius:50% 50% 48% 48%;background:hsl(calc(var(--c) * 75 + 8) 70% 80%);font-size:17px;font-weight:800;line-height:1.1;box-shadow:inset -8px -10px #0000000f,inset 6px 6px #ffffff59,0 12px 16px -10px #3c322866;animation:floatup 8.5s linear var(--d) both}.balloon:after{content:"";position:absolute;left:50%;top:100%;width:2px;height:22px;background:#3c32284d}.balloon.ok{background:#bfe6b8;animation:none;bottom:40%;transform:scale(1.15);transition:transform .3s}@keyframes floatup{0%{bottom:-120px}to{bottom:calc(100% + 20px)}}.holes{display:grid;grid-template-columns:repeat(3,1fr);gap:10px 12px;align-content:start}.hole{position:relative;aspect-ratio:1/.95;overflow:hidden;border-radius:26px;background:radial-gradient(ellipse at 50% 90%,#4b3d33 0 34%,transparent 35%)}.hole i{position:absolute;left:0;right:0;bottom:0;height:30%;border-radius:50% 50% 24px 24px/80% 80% 24px 24px;background:linear-gradient(#a9d18e,#86b96a);box-shadow:inset 0 3px #ffffff59;pointer-events:none}.mole{position:absolute;left:7%;right:7%;bottom:16%;height:74%;border-radius:44% 44% 20% 20%;background:#e9cfae;display:grid;place-items:center;padding:12px 4px 8px;font-size:16px;font-weight:800;line-height:1.1;text-align:center;box-shadow:inset 0 3px #ffffff80,0 8px 12px -8px #0006;animation:peek .28s cubic-bezier(.2,.9,.3,1.2) both}.mole:before{content:"";position:absolute;top:11px;left:30%;right:30%;height:7px;background:radial-gradient(circle,#3a3845 0 3px,transparent 3.5px) 0 0/50% 100%}.mole span{margin-top:14px}@keyframes peek{0%{transform:translateY(110%)}}.card2.txt{font-size:24px;font-weight:700;line-height:1.35;min-height:0;padding:20px 18px;background:#fffdf7}.card2.sent{font-size:30px;line-height:1.5}.hl{background:#fff0b8;color:inherit;padding:2px 10px;border-radius:12px;box-shadow:0 2px #b48c1459;transition:background .25s}.hl.on{background:var(--c);color:#fff}.card2.a{min-height:90px}@media(hover:hover){.tile:hover{transform:translateY(-4px);box-shadow:0 28px 34px -16px #5a463273,inset 0 2px #fff}.cat:not(:disabled):hover,.lw:hover,.yn button:hover,.big:hover,.next:hover{filter:brightness(1.07)}.qw:not(:disabled):hover{background:#f3ece0}.det:not(:disabled):hover{filter:brightness(.96)}.sign:hover,.mole:hover,.balloon:hover{filter:brightness(1.05)}.x:hover{background:#f3ece0}}button:focus-visible{outline:3px solid #2b2a33;outline-offset:3px}@media(min-width:900px){.menu{max-width:1040px;padding-top:56px}.menu h1{font-size:52px}.tiles{grid-template-columns:repeat(4,1fr);gap:22px}.tile{min-height:190px}.tile strong{font-size:24px}.ico{width:80px;height:80px}.play{padding-top:28px}.passage{font-size:23px}.say{font-size:30px}}.card2.sent,.card2.txt{display:block}.menu>*{flex-shrink:0}.tiles{align-content:start}@media(min-width:900px){.play{max-width:640px}.scene{min-height:470px}.field{min-height:440px}}.app>*{animation:screen .35s cubic-bezier(.2,.8,.2,1) both}@keyframes screen{0%{opacity:0;transform:translateY(12px) scale(.985)}}.ico{animation:floaty 3.4s ease-in-out infinite;animation-delay:calc(var(--i, 0) * -.5s)}@keyframes floaty{50%{transform:translateY(-4px)}}.big{animation:breathe 2.6s ease-in-out infinite}@keyframes breathe{50%{transform:scale(1.04)}}.hearts b{transition:transform .25s,color .25s}.hearts b:not(.on){animation:crack .45s both}@keyframes crack{0%{transform:scale(1.5);color:#e0555c}40%{transform:scale(.8) rotate(-12deg)}to{transform:none}}.goal em{display:inline-block;animation:tick .35s both}@keyframes tick{0%{transform:scale(1.5)}to{transform:none}}.cat.win{animation:win .5s both}@keyframes win{40%{transform:scale(1.1)}to{transform:scale(1.04)}}.hl.on{animation:pop .4s both}.qw.on{animation:pop .35s both}.qcard.tint{animation:wash .5s both}@keyframes wash{0%{filter:saturate(.3)}}.card2.tint{animation:wash .5s both}.yn button:active{animation:none}.card2.a.tint span,.card2.q{animation-name:rise}.det.no{animation:fadeout .35s both}@keyframes fadeout{0%{transform:scale(1.06);opacity:1}}.next{animation:pop .4s both,nudge 1.6s ease-in-out .5s infinite}@keyframes nudge{50%{transform:translate(-6px)}}.end h1{animation:pop .6s both .1s}.end:before,.end:after{content:"\2605  \2726  \2605  \2726  \2605";position:absolute;top:12%;left:0;right:0;text-align:center;letter-spacing:22px;font-size:22px;color:#f2b134;opacity:0;animation:confetti 1.8s ease-out .3s both;pointer-events:none;direction:ltr}.end:after{content:"\2726  \2605  \2726  \2605  \2726";top:22%;color:#e0555c;animation-delay:.5s}@keyframes confetti{0%{opacity:0;transform:translateY(40px) scale(.6)}30%{opacity:1}to{opacity:0;transform:translateY(-30px) scale(1.3)}}.center.end{position:relative}.mole{transition:transform .15s}.mole:active{transform:scale(.9)}.balloon span{display:block;animation:sway 2.2s ease-in-out infinite alternate}@keyframes sway{to{transform:rotate(3deg)}}.balloon{transition:filter .2s}.dots i.now{animation:pulse2 1.2s ease-in-out infinite}@keyframes pulse2{50%{transform:scale(1.5)}}.laneline.on{animation:fade .3s both}
