:root{--bg: #050506;--surface: #1a1a1f;--glass: rgba(255, 255, 255, .07);--glass-strong: rgba(255, 255, 255, .12);--glass-border: rgba(255, 255, 255, .12);--text: #f5f5f7;--muted: #8e8e98;--primary: #f5f5f7;--on-primary: #0b0b0e;--accent: #7c83ff;--accent-soft: rgba(124, 131, 255, .28);--rec: #ff3b4f;--danger: #ff6b81;--r-tile: 22px;--r-card: 28px;--r-sheet: 32px;--font-ui: "Onest", system-ui, -apple-system, "SF Pro Text", Roboto, sans-serif;--font-digits: "Doto", "Onest", ui-monospace, monospace;--ease-out: cubic-bezier(.22, 1, .36, 1);--blur: blur(20px) saturate(150%);color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%;background-color:var(--bg);background-image:radial-gradient(rgba(255,255,255,.07) 1px,transparent 1.4px);background-size:22px 22px;background-position:11px 11px;color:var(--text);font:500 15px/1.35 var(--font-ui);overflow-x:clip;overscroll-behavior:none;user-select:none;-webkit-user-select:none;-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;border:0;background:none;cursor:pointer;padding:0}button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}svg{display:block}.app{display:flex;flex-direction:column;height:100dvh;padding:calc(max(env(safe-area-inset-top,0px),var(--tg-safe-area-inset-top, 0px)) + var(--tg-content-safe-area-inset-top, 0px) + 12px) 16px calc(max(env(safe-area-inset-bottom,0px),var(--tg-safe-area-inset-bottom, 0px)) + 16px);gap:16px}.top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.title{margin:0;font-size:32px;line-height:1.05;font-weight:800;letter-spacing:-.03em}.subtitle{margin-top:4px;color:var(--muted);font-size:14px}.mode-toggle{display:flex;gap:4px;padding:4px;border-radius:999px;background:var(--glass);border:1px solid var(--glass-border);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur)}.mode-btn{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-size:20px;color:var(--muted);transition:background-color .2s var(--ease-out),color .2s var(--ease-out),transform .14s var(--ease-out)}.mode-btn.active{background:var(--primary);color:var(--on-primary)}.mode-btn:active{transform:scale(.94)}.stage{flex:1 1 auto;min-height:200px;display:flex;align-items:center;justify-content:center;container-type:size}.circle{position:relative;width:min(86vw,calc(100cqh - 28px),420px);aspect-ratio:1;isolation:isolate}.glow{position:absolute;inset:-14%;z-index:-1;border-radius:50%;background:radial-gradient(circle at 50% 60%,#7c83ff8c,#7c83ff00 66%);filter:blur(30px)}.app[data-mode=game] .glow{background:radial-gradient(circle at 50% 60%,#ff8a4c61,#ff8a4c00 64%)}.recording .glow{background:radial-gradient(circle at 50% 60%,#ff3b4f66,#ff3b4f00 64%)}.view{width:100%;height:100%;border-radius:50%;display:block;background:var(--surface);box-shadow:0 0 0 1px #ffffff1a,0 24px 60px #0009}.ring{position:absolute;inset:-10px;width:calc(100% + 20px);height:calc(100% + 20px);transform:rotate(-90deg);pointer-events:none}.ring circle{fill:none;stroke-width:1.4}.ring-track{stroke:#ffffff0f}.ring-progress{stroke:var(--rec);stroke-linecap:round;transition:stroke-dashoffset .1s linear}.status{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:20%;border-radius:50%;text-align:center;font-weight:600;background:#0505068c;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);pointer-events:none}.status[hidden]{display:none}.rec-time{position:absolute;left:50%;bottom:-18px;transform:translate(-50%);display:flex;align-items:center;gap:8px;padding:6px 14px;border-radius:999px;background:#050506d9;border:1px solid rgba(255,59,79,.45);font:800 18px/1 var(--font-digits);font-variant-numeric:tabular-nums}.rec-time[hidden]{display:none}.rec-time:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--rec);animation:blink 1s steps(2,jump-none) infinite}@keyframes blink{50%{opacity:.25}}.spinner{width:26px;height:26px;border-radius:50%;border:3px solid rgba(255,255,255,.14);border-top-color:var(--text);animation:spin .8s linear infinite}.spinner.big{width:40px;height:40px;margin:8px auto 16px}@keyframes spin{to{transform:rotate(360deg)}}.panel{display:flex;flex-direction:column;gap:12px;animation:rise .24s var(--ease-out)}.panel[hidden],.bottom[hidden]{display:none}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}.chips{display:flex;gap:8px;overflow-x:auto;margin:0 -16px;padding:0 16px;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}.chip{flex:0 0 auto}.chip{height:36px;padding:0 16px;border-radius:999px;background:var(--glass);border:1px solid var(--glass-border);color:var(--text);font-size:14px;font-weight:600;transition:background-color .2s var(--ease-out),color .2s var(--ease-out),transform .14s var(--ease-out)}.chip.active{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}.chip:active{transform:scale(.96)}.carousel{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x proximity;scroll-padding-inline:16px;margin:0 -16px;padding:6px 16px 4px;scrollbar-width:none}.carousel::-webkit-scrollbar{display:none}.carousel[hidden]{display:none}.item{flex:0 0 auto;width:72px;display:flex;flex-direction:column;align-items:center;gap:8px;scroll-snap-align:start}.thumb{position:relative;width:68px;height:68px;border-radius:var(--r-tile);display:grid;place-items:center;overflow:hidden;background:var(--glass);border:1px solid var(--glass-border);transition:transform .14s var(--ease-out),border-color .2s var(--ease-out)}.thumb img{width:52px;height:52px;object-fit:contain}.thumb img.cover{width:100%;height:100%;object-fit:cover}.thumb .none{font-size:26px;color:var(--muted)}.thumb .icon-lg{font-size:30px;color:var(--text)}.item.active .icon-lg{color:var(--accent)}.text-tab{display:flex;flex-direction:column;gap:10px}.text-tab[hidden]{display:none}.caption-field{display:flex;align-items:center;gap:10px;height:50px;padding:0 16px;border-radius:999px;background:var(--glass);border:1px solid var(--glass-border)}.caption-field:focus-within{border-color:var(--accent)}.caption-icon{font-size:20px;color:var(--muted)}.caption-input{flex:1;min-width:0;height:100%;border:0;outline:none;background:none;color:var(--text);font:600 16px var(--font-ui);user-select:text;-webkit-user-select:text}.caption-input::placeholder{color:var(--muted)}.thumb-blur{background:radial-gradient(circle at 35% 35%,#5d5a72,#1d1c26)}.thumb-aura{background:linear-gradient(140deg,#8c33f2,#fa5a9e 55%,#26ccf2)}.item.active .thumb{border:2px solid var(--primary);box-shadow:0 0 0 4px var(--accent-soft)}.item:active .thumb{transform:scale(.94)}.label{font-size:12px;font-weight:600;color:var(--muted);white-space:nowrap}.item.active .label{color:var(--text)}.bottom{display:flex;flex-direction:column;align-items:center;gap:8px}.rec-btn{width:78px;height:78px;border-radius:50%;border:4px solid var(--primary);display:grid;place-items:center;box-shadow:0 8px 30px #ff3b4f40;transition:transform .14s var(--ease-out)}.rec-btn:active{transform:scale(.94)}.rec-btn span,.rec-btn:after{grid-area:1 / 1;background:var(--rec);transition:transform .22s var(--ease-out),opacity .18s var(--ease-out)}.rec-btn span{width:62px;height:62px;border-radius:50%}.rec-btn:after{content:"";width:28px;height:28px;border-radius:8px;opacity:0;transform:scale(1.6)}.recording .rec-btn span{opacity:0;transform:scale(.45)}.recording .rec-btn:after{opacity:1;transform:none}.hint{font-size:13px;color:var(--muted)}.circle{transition:transform .5s cubic-bezier(.32,.72,0,1)}.app.focus .circle{transform:translateY(var(--focus-dy, 0px)) scale(var(--focus-k, 1));transition-duration:.62s}.top{transition:transform .45s var(--ease-out) .12s,opacity .45s var(--ease-out) .12s}.app.focus .top{transform:translateY(-28px);opacity:0;pointer-events:none;transition:transform .28s cubic-bezier(.5,0,.75,0),opacity .22s linear}.chip,.item,.folder,.game-actions,.duel-banner,.caption-field{--drop-r: 0deg;transition-property:transform,opacity,background-color,color;transition-duration:.5s,.5s,.2s,.2s;transition-timing-function:var(--ease-out)}.item:nth-child(odd),.chip:nth-child(2n){--drop-r: 7deg}.item:nth-child(2n),.chip:nth-child(odd){--drop-r: -6deg}.app.focus .chip,.app.focus .item,.app.focus .folder,.app.focus .game-actions,.app.focus .duel-banner,.app.focus .caption-field{transform:translateY(calc(100% + 140px)) rotate(var(--drop-r));opacity:0;transition-duration:.34s;transition-timing-function:cubic-bezier(.55,0,.8,.2)}.app.focus .panel{pointer-events:none}.app.focus .chip{transition-delay:calc(var(--i, 0) * 18ms)}.chip:nth-child(1),.item:nth-child(1){--i: 0}.chip:nth-child(2),.item:nth-child(2){--i: 1}.chip:nth-child(3),.item:nth-child(3){--i: 2}.chip:nth-child(4),.item:nth-child(4){--i: 3}.chip:nth-child(5),.item:nth-child(5){--i: 4}.chip:nth-child(6),.item:nth-child(6){--i: 5}.chip:nth-child(n+7),.item:nth-child(n+7){--i: 6}.app.focus .item{transition-delay:calc(40ms + var(--i, 0) * 28ms)}.item{transition-delay:calc(var(--i, 0) * 22ms)}.app.focus .folder{transition-delay:30ms}.app.focus .duel-banner{transition-delay:60ms}.app.focus .game-actions{transition-delay:0ms}.game-actions,.duel-banner{transition-delay:60ms}.app.focus .cam-btn{transform:scale(calc(1 / var(--focus-k, 1)))}.app.focus .rec-time{transform:translate(-50%) scale(calc(1 / var(--focus-k, 1)))}.rec-time{transform-origin:50% 0;transition:transform .5s cubic-bezier(.32,.72,0,1)}.app{position:relative;z-index:1;overflow:clip}.stop-btn{position:fixed;left:50%;bottom:calc(max(env(safe-area-inset-bottom,0px),var(--tg-safe-area-inset-bottom, 0px)) + 20px);z-index:5;width:72px;height:72px;margin-left:-36px;border-radius:50%;border:4px solid var(--primary);display:grid;place-items:center;opacity:0;visibility:hidden;transform:translateY(24px) scale(.8);transition:opacity .2s linear,transform .3s var(--ease-out),visibility 0s linear .3s}.stop-btn span{width:26px;height:26px;border-radius:7px;background:var(--rec)}.stop-btn:active{transform:scale(.94)}.playing .app.focus .stop-btn{opacity:1;visibility:visible;transform:none;transition:opacity .25s linear .2s,transform .5s cubic-bezier(.34,1.4,.64,1) .2s,visibility 0s}.cam-btn{position:absolute;bottom:-8px;z-index:2;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;font-size:21px;color:var(--text);background:#1a1a1fb8;border:1px solid var(--glass-border);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);transition:transform .5s cubic-bezier(.32,.72,0,1),background-color .2s var(--ease-out),color .2s var(--ease-out)}.cam-btn[hidden]{display:none}.cam-btn:active svg{transform:scale(.86)}.cam-btn svg{transition:transform .14s var(--ease-out)}.flip-btn{left:-8px}.flash-btn{right:-8px}.flash-btn.on{background:#fff4d6;color:#0b0b0e;border-color:#fff4d6;box-shadow:0 0 22px #ffecbe8c}.flip-btn.spin svg{animation:flip-turn .45s var(--ease-out)}@keyframes flip-turn{0%{transform:rotate(-180deg)}}.flash-screen{position:fixed;inset:0;z-index:0;background:#fff7ea;opacity:0;pointer-events:none;transition:opacity .35s var(--ease-out)}.flash-lit .flash-screen{opacity:1}.app.flash .glow{inset:-42%;background:radial-gradient(circle at 50% 50%,#fff8eaf2,#fff0d673 42%,#fff0d600 70%);filter:blur(20px)}.flash-lit .rec-btn,.flash-lit .stop-btn{border-color:#0b0b0e;box-shadow:none}.flash-lit .hint{color:#55555e}.flash-lit .view{box-shadow:0 0 0 1px #00000014,0 20px 50px #785a2840}.flash-lit .ring-track{stroke:#00000014}.games{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 -16px;padding:58px 16px 4px;scrollbar-width:none}.games::-webkit-scrollbar{display:none}.folder{position:relative;flex:0 0 84%;display:block;text-align:left;scroll-snap-align:center;opacity:.5;transform:scale(.97);transition:opacity .22s var(--ease-out),transform .22s var(--ease-out)}.folder.active{opacity:1;transform:none}.folder-front,.folder-title,.folder-desc{display:block}.folder.active .folder-front{border-color:#ffffff3d}.folder-peek{position:absolute;top:-54px;left:16px;z-index:0;display:flex;align-items:flex-end;pointer-events:none}.peek{width:68px;height:68px;margin-right:-8px;object-fit:contain;filter:drop-shadow(0 8px 14px rgba(0,0,0,.5))}.p1{transform:rotate(-12deg) translateY(4px)}.p2{transform:rotate(5deg) translateY(-6px)}.p3{transform:rotate(-5deg) translateY(2px)}.p4{transform:rotate(12deg) translateY(-2px)}.folder-front{position:relative;z-index:1;padding:20px 20px 18px;border-radius:var(--r-card);background:#1e1e249e;border:1px solid rgba(255,255,255,.14);box-shadow:inset 0 1px #ffffff1a;backdrop-filter:blur(22px) saturate(120%);-webkit-backdrop-filter:blur(22px) saturate(120%)}.folder-title{font-size:26px;font-weight:800;letter-spacing:-.02em}.folder-meta{display:flex;gap:8px;margin:10px 0 12px}.folder-desc{min-height:2.7em}.pill-meta{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 12px;border-radius:999px;background:#0505068c;font-size:13px;font-weight:600;color:var(--text)}.pill-meta[hidden]{display:none}.pill-meta svg{font-size:15px;color:var(--muted)}.pill-meta b{font:900 17px/1 var(--font-digits);letter-spacing:.02em}.folder-desc{color:var(--muted);font-size:14px}.duel-banner{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:var(--r-card);background:var(--glass);border:1px solid rgba(124,131,255,.45);font-size:14px}.duel-banner[hidden]{display:none}.duel-icon{flex:0 0 auto;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-size:20px;background:var(--accent);color:var(--on-primary)}.duel-score{font:900 22px/1 var(--font-digits);color:var(--accent)}.game-actions{display:flex;gap:10px}.game-actions .btn.primary{flex:0 0 38%}.btn span{white-space:nowrap}.btn{flex:1;height:54px;padding:0 18px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:16px;font-weight:700;transition:transform .14s var(--ease-out),opacity .14s var(--ease-out)}.btn svg{font-size:19px}.btn:active{transform:scale(.97)}.btn.primary{background:var(--primary);color:var(--on-primary)}.btn.glass,.sheet .btn:not(.primary){background:var(--glass-strong);border:1px solid var(--glass-border);color:var(--text)}.sheet{position:fixed;inset:0;z-index:10;display:flex;align-items:flex-end;justify-content:center;background:#0000;transition:background-color .25s var(--ease-out)}.sheet[hidden]{display:none}.sheet.show{background:#0000008c}.sheet-card{width:100%;max-width:480px;padding:28px 20px calc(env(safe-area-inset-bottom,0px) + 20px);border-radius:var(--r-sheet) var(--r-sheet) 0 0;background:#16161be0;border-top:1px solid var(--glass-border);backdrop-filter:blur(24px) saturate(150%);-webkit-backdrop-filter:blur(24px) saturate(150%);text-align:center;transform:translateY(100%);transition:transform .28s cubic-bezier(.2,.9,.3,1)}.sheet.show .sheet-card{transform:none}.sheet-art{display:block;width:88px;height:88px;margin:0 auto 10px}.thumb-tgs{width:48px;height:48px}.sheet-icon{width:64px;height:64px;margin:0 auto 14px;border-radius:50%;display:grid;place-items:center;font-size:30px;background:var(--glass-strong);border:1px solid var(--glass-border)}.sheet-title{font-size:24px;font-weight:800;letter-spacing:-.02em;margin-bottom:6px}.sheet-score{font:900 52px/1.1 var(--font-digits);color:var(--accent);margin:6px 0 8px}.sheet-text{color:var(--muted);margin-bottom:20px}.sheet-row{display:flex;gap:10px}.toast{position:fixed;left:50%;top:calc(env(safe-area-inset-top,0px) + 72px);z-index:20;max-width:calc(100% - 32px);padding:12px 18px;border-radius:999px;background:#1a1a1fe6;border:1px solid var(--glass-border);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);font-size:14px;font-weight:600;text-align:center;opacity:0;transform:translate(-50%,-10px);transition:opacity .2s var(--ease-out),transform .2s var(--ease-out)}.toast.show{opacity:1;transform:translate(-50%)}@media(max-height:740px){.app{gap:10px}.title{font-size:26px}.subtitle,.folder-desc,.hint{display:none}.mode-btn{width:36px;height:36px;font-size:18px}.games{padding-top:48px}.folder-peek{top:-46px}.peek{width:56px;height:56px}.folder-front{padding:14px 16px}.folder-title{font-size:22px}.folder-meta{margin:8px 0 0}.thumb{width:60px;height:60px;border-radius:20px}.thumb img{width:46px;height:46px}.item{width:64px}.rec-btn{width:68px;height:68px}.rec-btn span{width:54px;height:54px}.btn{height:50px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
