html,body,#root{margin:0;height:100%}*,*:before,*:after{box-sizing:border-box}.app{--ink:#2b2a33;--ink2:#5a5866;--card:#fff;--card-edge:rgba(60,50,40,.08);--shadow:0 10px 24px -8px rgba(90,70,50,.28), 0 2px 0 rgba(255,255,255,.9) inset;--accent:#d9622b;--accent-ink:#fff;--bg:linear-gradient(#fbf3ea,#eef3f6);font-family:system-ui,-apple-system,Segoe UI,Heebo,Arial,sans-serif;font-size:16px;color:var(--ink);background:var(--bg);height:100vh;height:100dvh;max-width:none;margin:0;border-radius:0;overflow:hidden;position:relative;user-select:none;-webkit-user-select:none;touch-action:manipulation}.app[data-theme=b]{--ink:#eef0fa;--ink2:#b4b9d2;--card:rgba(255,255,255,.08);--card-edge:rgba(255,255,255,.16);--shadow:0 14px 30px -10px rgba(0,0,0,.6), 0 1px 0 rgba(255,255,255,.18) inset;--bg:linear-gradient(#1b2033,#0f1320)}button{font:inherit;color:inherit;cursor:pointer;border:0}.hub{height:100%;max-width:480px;margin:0 auto;padding:28px 20px 24px;display:flex;flex-direction:column;gap:20px;overflow:auto}.hub header h1{margin:0;font-size:44px;letter-spacing:-.5px;line-height:1.1}.hub header p{margin:8px 0 0;color:var(--ink2);font-size:16px}.tiles{display:grid;grid-template-columns:1fr 1fr;gap:14px}.tile{position:relative;text-align:start;padding:16px;min-height:150px;border-radius:22px;background:var(--card);border:1px solid var(--card-edge);box-shadow:var(--shadow);display:flex;flex-direction:column;justify-content:flex-end;gap:2px;animation:rise .5s both;animation-delay:calc(var(--i)*70ms);transition:transform .18s;backdrop-filter:blur(14px)}.tile.live:active{transform:translateY(2px) scale(.98)}.tile:disabled{opacity:.62;cursor:default}.tile strong{font-size:22px}.tile small{color:var(--ink2);font-size:16px}.tile em{position:absolute;top:14px;inset-inline-end:14px;font-style:normal;font-size:16px;color:var(--ink2)}.glyph{position:absolute;top:14px;inset-inline-start:14px;width:44px;height:44px;border-radius:14px;display:grid;place-items:center;font-size:22px;font-weight:800;color:hsl(var(--h) 45% 32%);background:hsl(var(--h) 55% 82%);box-shadow:0 6px 12px -6px hsl(var(--h) 50% 50% / .6),0 1px #ffffffb3 inset}.app[data-theme=b] .glyph{color:hsl(var(--h) 70% 85%);background:hsl(var(--h) 45% 32%)}.tile{min-height:156px!important}.themeflip{min-height:44px;border-radius:12px;background:var(--card);border:1px solid var(--card-edge);padding:0 14px;font-size:16px;margin-top:auto}.stage.dom{display:flex;flex-direction:column;align-items:center}.center{margin:auto;text-align:center;padding:0 28px;display:flex;flex-direction:column;gap:14px;align-items:center}.center .t{font-size:40px}.center p{margin:0;color:var(--ink2)}.bar{margin-top:96px;width:calc(100% - 48px);height:10px;border-radius:6px;background:var(--card-edge);overflow:hidden}.bar i{display:block;height:100%;background:var(--accent);transition:width 1s linear}.word{font-size:84px;font-weight:800;margin:70px 0 40px;transition:transform .12s}.opts{display:grid;grid-template-columns:1fr 1fr;gap:12px;width:calc(100% - 40px)}.opt{min-height:72px;border-radius:18px;background:var(--card);border:1px solid var(--card-edge);box-shadow:var(--shadow);font-size:22px;font-weight:700}.opt:active{transform:translateY(2px)}.flash-ok .word{transform:scale(1.06)}.flash-bad{animation:shake .16s}@keyframes shake{25%{transform:translate(-6px)}75%{transform:translate(6px)}}.act{background:var(--accent);color:var(--accent-ink);font-weight:700;font-size:18px;min-height:52px;padding:0 28px;border-radius:16px;box-shadow:0 8px 18px -6px #d9622b99,0 1px #ffffff59 inset;transition:transform .15s}.act:active{transform:translateY(2px)}.act.wide{width:100%}.ghost{background:transparent;color:var(--ink2);min-height:48px;font-size:16px;border-radius:14px;padding:0 20px}.themes{margin-top:auto;display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:var(--ink2)}.themes button{min-height:44px;padding:0 14px;border-radius:12px;background:var(--card);border:1px solid var(--card-edge);font-size:16px}.themes button.on{border-color:var(--ink);font-weight:700}.frame{position:relative;max-width:480px;height:100%;margin:0 auto;overflow:hidden}.stage{position:absolute;inset:0;touch-action:manipulation}.stage canvas{width:100%;height:100%;display:block}.hud{position:absolute;top:0;inset-inline:0;padding:14px 16px;display:flex;align-items:flex-start;justify-content:space-between;pointer-events:none}.hud>*{pointer-events:auto;flex:1}.chip{flex:0 0 auto!important;min-height:44px;padding:0 14px;display:inline-flex;align-items:center;border-radius:14px;background:var(--card);border:1px solid var(--card-edge);box-shadow:var(--shadow);font-size:16px;backdrop-filter:blur(12px)}.score{text-align:center;font-size:64px;font-weight:800;line-height:1;margin-top:2px;pointer-events:none!important;font-variant-numeric:tabular-nums}.combo{position:absolute;top:112px;inset-inline:0;text-align:center;font-weight:800;font-size:20px;pointer-events:none;animation:pop .7s both}.hint{position:absolute;inset-inline:24px;bottom:calc(env(safe-area-inset-bottom) + 28px);text-align:center;display:flex;flex-direction:column;gap:6px;pointer-events:none;animation:pulse 1.8s infinite}.hint b{font-size:22px}.hint span{color:var(--ink2);font-size:16px}.over{position:absolute;inset:0;display:grid;place-items:center;background:#14141e2e;animation:fade .3s both}.card{width:min(320px,86vw);padding:24px;border-radius:26px;background:var(--card);border:1px solid var(--card-edge);box-shadow:var(--shadow),0 30px 60px -20px #00000059;text-align:center;display:flex;flex-direction:column;gap:6px;backdrop-filter:blur(18px);animation:rise .4s both}.app[data-theme=a] .card{background:#fff}.card .lbl{color:var(--ink2)}.card .big{font-size:72px;font-weight:800;line-height:1}.card .sub{color:var(--ink2);margin-bottom:12px}@keyframes rise{0%{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes pop{0%{opacity:0;transform:scale(.7)}25%{opacity:1;transform:scale(1.08)}to{opacity:0;transform:translateY(-12px)}}@keyframes pulse{50%{opacity:.55}}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}.status{margin-top:100px;min-height:24px;color:var(--ink2);text-align:center}.pads{display:grid;grid-template-columns:1fr 1fr;gap:14px;width:calc(100% - 40px);margin-top:20px}.pad{aspect-ratio:1;border-radius:28px;background:hsl(var(--h) 50% 80%);box-shadow:0 10px 18px -8px hsl(var(--h) 50% 40% / .6),0 2px #ffffffb3 inset;transition:transform .1s,filter .1s,background .1s}.app[data-theme=b] .pad{background:hsl(var(--h) 40% 34%)}.pad.lit{transform:scale(.96);background:hsl(var(--h) 80% 68%);filter:brightness(1.1) saturate(1.3);box-shadow:0 0 36px hsl(var(--h) 90% 65% / .8)}.center.ov{position:absolute;inset:0;background:var(--bg);z-index:2}.lives{margin-top:96px;display:flex;gap:10px}.lives i{width:14px;height:14px;border-radius:50%;background:var(--card-edge)}.lives i.on{background:var(--accent)}.holes{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;width:calc(100% - 40px);margin-top:24px}.hole{aspect-ratio:1;border-radius:50%;background:#5a463c24;box-shadow:inset 0 8px 14px #0000002e;position:relative;overflow:hidden}.hole span{position:absolute;left:18%;right:18%;bottom:-70%;height:64%;border-radius:50%;background:#8cd9b3;box-shadow:0 -4px #ffffff80 inset;transition:bottom .09s ease-out}.hole.up span{bottom:18%}.hole.hit span{bottom:30%;background:var(--accent)}.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;width:calc(100% - 32px);margin-top:10px}.pc{aspect-ratio:3/4;border-radius:16px;background:var(--card);border:1px solid var(--card-edge);box-shadow:var(--shadow);font-size:30px;font-weight:800;display:grid;place-items:center;transition:transform .25s,background .2s}.pc.f{background:hsl(var(--h) 55% 82%);color:hsl(var(--h) 45% 28%);transform:rotateY(0)}.pc.d{opacity:.55}.app[data-theme=b] .pc.f{background:hsl(var(--h) 45% 34%);color:hsl(var(--h) 70% 88%)}.board{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;width:calc(100% - 40px);margin-top:14px;padding:10px;border-radius:22px;background:#5a463c1a}.mt{aspect-ratio:1;border-radius:14px;display:grid;place-items:center;font-size:26px;font-weight:800;background:#ffffff59}.mt.v{background:hsl(var(--h) 55% 80%);color:hsl(var(--h) 45% 26%);box-shadow:0 6px 10px -6px hsl(var(--h) 50% 40% / .7),0 1px #ffffffb3 inset}.app[data-theme=b] .mt.v{background:hsl(var(--h) 45% 36%);color:hsl(var(--h) 70% 90%)}.lgrid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;width:calc(100% - 40px);margin:14px 0}.lt{aspect-ratio:1;border-radius:16px;background:#5a463c24;box-shadow:inset 0 3px 6px #0000001f;transition:background .15s,box-shadow .15s}.lt.on{background:#f8d877;box-shadow:0 0 22px #fbd051b3,0 1px #ffffffb3 inset}.center.won{position:absolute;inset:0;background:#faf5eeeb;z-index:2}.app[data-theme=b] .center.won{background:#0f1320eb}.status{padding:0 20px}.slots{display:flex;gap:8px;margin-top:60px;direction:rtl;flex-wrap:wrap;justify-content:center;padding:0 16px}.slot{width:52px;height:60px;border-radius:14px;background:#5a463c1a;border:2px dashed var(--card-edge);font-size:28px;font-weight:800}.slot.f{background:var(--card);border:1px solid var(--card-edge);box-shadow:var(--shadow)}.letters{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:44px;padding:0 20px}.letter{width:60px;height:68px;border-radius:16px;background:hsl(var(--h,210) 55% 82%);font-size:30px;font-weight:800;box-shadow:0 8px 12px -6px #3c3c5a80,0 1px #ffffffb3 inset}.letter{background:#b8d5ea}.letter:disabled{opacity:.25;box-shadow:none}.app[data-theme=b] .letter{background:#345779;color:#eef}.heaps{display:flex;gap:22px;align-items:flex-end;margin-top:30px;height:340px;direction:ltr}.heap{display:flex;flex-direction:column-reverse;gap:8px}.stone{width:70px;height:34px;border-radius:12px;background:hsl(var(--h) 55% 78%);box-shadow:0 5px 8px -4px hsl(var(--h) 50% 40% / .7),0 1px #ffffffb3 inset;transition:transform .12s}.stone:hover:not(:disabled){transform:translateY(-2px)}.stone:disabled{opacity:.7}.app[data-theme=b] .stone{background:hsl(var(--h) 45% 40%)}.msg{margin-top:14px;padding:0 24px;text-align:center;color:var(--ink2);min-height:48px}.chips{display:flex;gap:8px;flex:0 0 auto!important}.hud .chips .chip{flex:0 0 auto}.hub{max-width:820px}.cats{display:flex;gap:8px;overflow-x:auto;padding:2px 0 6px;flex-shrink:0;scrollbar-width:none}.cat{flex:0 0 auto;min-height:44px;padding:0 16px;border-radius:22px;background:var(--card);border:1px solid var(--card-edge);font-size:16px;white-space:nowrap}.cat.on{background:var(--accent);color:var(--accent-ink);border-color:transparent;font-weight:700}.sec h2{margin:6px 0 10px;font-size:22px;display:flex;align-items:baseline;gap:10px}.sec h2 small{color:var(--ink2);font-size:16px;font-weight:400}.sec{margin-bottom:10px}.tiles{grid-template-columns:repeat(2,1fr)}@media (min-width:600px){.tiles{grid-template-columns:repeat(3,1fr)}}@media (min-width:800px){.tiles{grid-template-columns:repeat(4,1fr)}}.stars{font-size:16px;letter-spacing:2px;color:var(--accent);min-height:20px}.stars i{font-style:normal;opacity:.25}.stars i.on{opacity:1}.hubtop{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.hubtop .chip{flex:0 0 auto}.field{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;padding-top:104px;gap:12px;overflow:hidden}.btnrow{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;padding:0 16px}.bigbtn{min-height:56px;min-width:56px;padding:0 18px;border-radius:18px;background:var(--card);border:1px solid var(--card-edge);box-shadow:var(--shadow);font-size:22px;font-weight:700}.bigbtn:active,.bigbtn.on{transform:translateY(2px);background:hsl(var(--h,25) 60% 78%);color:#2b2a33}.cell{aspect-ratio:1;border-radius:14px;background:var(--card);border:1px solid var(--card-edge);box-shadow:var(--shadow);font-size:26px;font-weight:800;display:grid;place-items:center}.cell.lit{background:hsl(var(--h,45) 80% 72%);color:#2b2a33}.cell.bad{background:#eea0a0;color:#2b2a33}.txt{text-align:center;font-size:20px;padding:0 20px;min-height:30px}.q{font-size:44px;font-weight:800;text-align:center;direction:ltr}.keys{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;width:calc(100% - 32px)}.seq{display:flex;direction:ltr;gap:8px;flex-wrap:wrap;justify-content:center;padding:0 16px;margin-top:24px}.seq b{min-width:52px;height:52px;padding:0 8px;border-radius:14px;background:var(--card);border:1px solid var(--card-edge);box-shadow:var(--shadow);display:grid;place-items:center;font-size:24px;font-variant-numeric:tabular-nums}.seq b.qm{background:var(--accent);color:#fff}.ltr{direction:ltr}.center.ov{justify-content:center;align-items:center;margin:0}.hud{z-index:6}
