:root,:root[data-theme=dark]{--bg-primary: #191A1F;--bg-secondary: #23242A;--bg-tertiary: #2C2D33;--bg-elevated: #2A2B32;--text-primary: #ECECED;--text-secondary: #8E8F96;--text-muted: #7A7B82;--accent: #7B8FF2;--accent-secondary: #764ba2;--accent-gradient: linear-gradient(135deg, #7B8FF2, #764ba2);--danger: #f44336;--success: #4CAF50;--border: #2C2D33;--border-focus: rgba(123, 143, 242, .5);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .3);--shadow-md: 0 4px 15px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 30px rgba(0, 0, 0, .5);--code-bg: #15161A;--overlay-bg: rgba(25, 26, 31, .92);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--text-xs: 12px;--text-sm: 13px;--text-base: 16px;--text-lg: 18px;--text-xl: 20px;--text-2xl: 24px;--text-3xl: 32px;--leading-tight: 1.25;--leading-normal: 1.5;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--duration-fast: .1s;--duration-normal: .15s;--duration-slow: .3s;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--color-success: #4ade80;--color-warning: #fbbf24;--color-info: #60a5fa;--color-ide-run: #22c55e;--color-premium: #c084fc;--color-basic: #4ade80;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 20px;--radius-full: 9999px;--header-height: 52px;--input-bar-height: auto;--max-content-width: 600px;--bottom-safe-area: env(safe-area-inset-bottom, 0px);--tg-safe-top: 0px;--tg-safe-bottom: 0px;--tg-safe-left: 0px;--tg-safe-right: 0px;--tg-content-safe-top: 0px;--tg-content-safe-bottom: 0px;--safe-top: max( var(--tg-safe-top, 0px), var(--tg-safe-area-inset-top, 0px), env(safe-area-inset-top, 0px) );--safe-bottom: max( var(--tg-safe-bottom, 0px), var(--tg-safe-area-inset-bottom, 0px), env(safe-area-inset-bottom, 0px) );--safe-left: max( var(--tg-safe-left, 0px), var(--tg-safe-area-inset-left, 0px), env(safe-area-inset-left, 0px) );--safe-right: max( var(--tg-safe-right, 0px), var(--tg-safe-area-inset-right, 0px), env(safe-area-inset-right, 0px) );--content-safe-top: max( var(--tg-content-safe-top, 0px), var(--tg-content-safe-area-inset-top, 0px) );--content-safe-bottom: max( var(--tg-content-safe-bottom, 0px), var(--tg-content-safe-area-inset-bottom, 0px) )}:root[data-theme=light]{--bg-primary: #FBFAF4;--bg-secondary: #FFFFFF;--bg-tertiary: #F0F0EC;--bg-elevated: #FFFFFF;--text-primary: #091717;--text-secondary: #5C5D63;--text-muted: #8E8F96;--accent: #5B6BD4;--accent-gradient: linear-gradient(135deg, #5B6BD4, #764ba2);--border: #E5E5E0;--border-focus: rgba(91, 107, 212, .3);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .06);--shadow-md: 0 4px 15px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 30px rgba(0, 0, 0, .12);--code-bg: #F5F5F0;--overlay-bg: rgba(251, 250, 244, .92)}.icon{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;display:inline-block;vertical-align:-.15em}.icon--sm{width:16px;height:16px}.icon--lg{width:24px;height:24px}*{margin:0;padding:0;box-sizing:border-box}html{height:100%;overflow:hidden}body{font-family:Manrope,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;background:var(--bg-primary);color:var(--text-primary);height:100%;overflow:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.top-bar{position:fixed;top:0;left:0;right:0;height:calc(var(--header-height) + var(--safe-top) + var(--content-safe-top));padding-top:calc(var(--safe-top) + var(--content-safe-top));background:var(--bg-primary);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding-left:calc(16px + var(--safe-left));padding-right:calc(16px + var(--safe-right));z-index:50}.top-bar__left{display:flex;align-items:center;justify-content:flex-start;gap:var(--space-2);font-size:15px;font-weight:var(--font-medium);color:var(--text-secondary);letter-spacing:1.5px;text-transform:uppercase}.top-bar__right{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-2)}.avatar{width:44px;height:44px;border-radius:50%;overflow:hidden;background:var(--accent);display:flex;align-items:center;justify-content:center;cursor:pointer}.avatar img{width:100%;height:100%;object-fit:cover}.avatar__fallback{color:#fff;font-size:16px;font-weight:600}.avatar--loading{animation:avatarPulse 1.2s ease-in-out infinite}@keyframes avatarPulse{0%,to{opacity:1}50%{opacity:.6}}.lang-toggle{min-width:44px;height:44px;padding:0 var(--space-3);border-radius:50%;border:none;background:var(--bg-tertiary);color:var(--text-primary);font-size:var(--text-sm);font-weight:var(--font-bold);cursor:pointer;transition:transform var(--duration-fast) var(--ease-out),background var(--duration-normal) var(--ease-out);-webkit-tap-highlight-color:transparent;display:flex;align-items:center;justify-content:center;letter-spacing:.5px}.lang-toggle:active{transform:scale(.92);background:#7b8ff24d}.sound-toggle{width:44px;height:44px;border-radius:50%;border:none;background:var(--bg-tertiary);color:var(--text-primary);cursor:pointer;transition:transform var(--duration-fast) var(--ease-out),opacity var(--duration-normal) var(--ease-out);-webkit-tap-highlight-color:transparent;display:flex;align-items:center;justify-content:center}.sound-toggle .icon{width:20px;height:20px;fill:currentColor;stroke:currentColor}.sound-toggle:active{transform:scale(.92)}.sound-toggle.muted{opacity:.45}.shop-btn{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,gold,orange);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 2px 8px #ffa50066;transition:transform var(--duration-fast) var(--ease-out),box-shadow var(--duration-normal) var(--ease-out)}.shop-btn .icon{width:22px;height:22px;fill:currentColor;stroke:none;filter:drop-shadow(0 1px 1px rgba(0,0,0,.2))}.shop-btn:active{transform:scale(.9);box-shadow:0 1px 4px #ffa5004d}.shop-btn{position:relative;overflow:visible}.shop-badge{position:absolute;top:-6px;right:-6px;min-width:20px;height:20px;border-radius:10px;background:var(--color-error, #ff4444);color:#fff;font-size:11px;font-weight:700;line-height:20px;text-align:center;padding:0 5px;box-shadow:0 1px 3px #0000004d;pointer-events:none}.purchase-balance{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;margin:0 0 12px;border-radius:12px;background:#ffd7001f;border:1px solid rgba(255,215,0,.25);font-size:15px;font-weight:600;color:gold}.purchase-balance .icon{width:18px;height:18px;fill:gold;stroke:none}.last-game-btn{width:44px;height:44px;border-radius:50%;background:var(--bg-tertiary);border:1px solid var(--border);font-size:var(--text-xl);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform var(--duration-fast) var(--ease-out),background var(--duration-normal) var(--ease-out)}.last-game-btn:active{transform:scale(.9)}.screen-container{position:fixed;top:calc(var(--header-height) + var(--safe-top) + var(--content-safe-top));left:0;right:0;bottom:0;overflow:hidden}.screen-container__inner{display:flex;width:300%;height:100%;transform:translate(-33.333%);transition:transform .3s cubic-bezier(.4,0,.2,1);will-change:transform}.screen-container__inner[data-screen=catalog]{transform:translate(0)}.screen-container__inner[data-screen=home]{transform:translate(-33.333%)}.screen-container__inner[data-screen=ide]{transform:translate(-66.666%)}.screen{width:33.333%;height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch}.screen--home{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-5);padding-bottom:140px}.hero{text-align:center;margin-bottom:var(--space-8)}.hero__pixel-robot{display:inline-block;vertical-align:middle;animation:float 3s ease-in-out infinite;line-height:0;position:relative}.hero__pixel-robot:before{content:"";position:absolute;inset:-16px;border-radius:50%;background:radial-gradient(circle at center,rgba(123,143,242,.2) 0%,rgba(123,143,242,.08) 40%,transparent 70%);animation:robot-aura 3s ease-in-out infinite;z-index:-1;pointer-events:none}@keyframes robot-aura{0%,to{transform:scale(1);opacity:.5}50%{transform:scale(1.12);opacity:.85}}.pixel-robot-svg{display:inline-block;vertical-align:middle}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.robot-shadow{animation:shadow-sync 3s ease-in-out infinite}@keyframes shadow-sync{0%,to{rx:14;opacity:.15}50%{rx:11;opacity:.08}}.robot-eye-left,.robot-eye-right{transform-origin:center center;animation:blink 4.5s ease-in-out infinite}.robot-eye-right{animation:blink 4.5s ease-in-out infinite,wink 9s ease-in-out infinite 3s}@keyframes blink{0%,92%,to{transform:scaleY(1)}95%,97%{transform:scaleY(.05)}}@keyframes wink{0%,88%,to{transform:scaleY(1)}91%,95%{transform:scaleY(.1)}}.robot-eye-spark{animation:spark-twinkle 3s ease-in-out infinite}@keyframes spark-twinkle{0%,to{opacity:.9;r:1}50%{opacity:.4;r:.6}75%{opacity:1;r:1.2}}.robot-pupil-left,.robot-pupil-right{animation:look-around 7s ease-in-out infinite}@keyframes look-around{0%,30%,to{transform:translate(0)}8%,20%{transform:translate(1.2px)}40%,55%{transform:translate(-1.5px,.5px)}65%{transform:translateY(-.8px)}75%,85%{transform:translate(.8px,.3px)}90%{transform:translate(-.5px,-.3px)}}.robot-antenna{transform-origin:32px 14px;animation:antenna-wobble 4s ease-in-out infinite}@keyframes antenna-wobble{0%,to{transform:rotate(0)}15%{transform:rotate(6deg)}30%{transform:rotate(-4deg)}50%{transform:rotate(8deg)}70%{transform:rotate(-6deg)}85%{transform:rotate(3deg)}}.robot-antenna-tip{animation:antenna-glow 2.5s ease-in-out infinite}@keyframes antenna-glow{0%,to{opacity:.7}50%{opacity:1}}.robot-particle{transform-origin:center center}.robot-particle-1{animation:particle-float-1 3s ease-out infinite}.robot-particle-2{animation:particle-float-2 3s ease-out infinite 1s}.robot-particle-3{animation:particle-float-3 3s ease-out infinite 2s}@keyframes particle-float-1{0%{transform:translate(0);opacity:0;r:1}15%{opacity:.8}to{transform:translate(-8px,-12px);opacity:0;r:.3}}@keyframes particle-float-2{0%{transform:translate(0);opacity:0;r:.8}15%{opacity:.7}to{transform:translate(6px,-14px);opacity:0;r:.2}}@keyframes particle-float-3{0%{transform:translate(0);opacity:0;r:.6}15%{opacity:.6}to{transform:translate(10px,-10px);opacity:0;r:.2}}.robot-ear-right{transform-origin:55.5px 29px;animation:ear-twitch 6s ease-in-out infinite}@keyframes ear-twitch{0%,82%,to{transform:rotate(0) scaleY(1)}85%{transform:rotate(-12deg) scaleY(.85)}88%{transform:rotate(5deg) scaleY(1.1)}91%{transform:rotate(-6deg) scaleY(.92)}94%{transform:rotate(2deg) scaleY(1.02)}}.robot-ear-left{transform-origin:8.5px 29px;animation:ear-wiggle 8s ease-in-out infinite 1s}@keyframes ear-wiggle{0%,90%,to{transform:rotate(0)}93%{transform:rotate(5deg)}96%{transform:rotate(-3deg)}}.robot-blush-l,.robot-blush-r{animation:blush-pulse 4s ease-in-out infinite}.robot-blush-r{animation-delay:.5s}@keyframes blush-pulse{0%,to{opacity:.15;r:2.5}50%{opacity:.3;r:2.7}}.robot-mouth{animation:mouth-happy 5s ease-in-out infinite}@keyframes mouth-happy{0%,30%,to{d:path("M28 33 Q32 36.5 36 33")}40%,55%{d:path("M28 33 Q32 37.5 36 33")}65%,80%{d:path("M28 33.5 Q32 36 36 33.5")}}.robot-heart{transform-origin:32px 55px;animation:heartbeat 1.5s ease-in-out infinite}@keyframes heartbeat{0%,to{transform:scale(1);opacity:.8}15%{transform:scale(1.15);opacity:1}30%{transform:scale(.95);opacity:.7}45%{transform:scale(1.1);opacity:.95}60%{transform:scale(1);opacity:.8}}.robot-arm-left{transform-origin:16px 51.5px;animation:arm-wave-l 5s ease-in-out infinite}.robot-arm-right{transform-origin:48px 51.5px;animation:arm-wave-r 5s ease-in-out infinite .5s}@keyframes arm-wave-l{0%,70%,to{transform:rotate(0)}80%{transform:rotate(-8deg)}90%{transform:rotate(3deg)}}@keyframes arm-wave-r{0%,60%,to{transform:rotate(0)}70%{transform:rotate(10deg)}80%{transform:rotate(-5deg)}85%{transform:rotate(12deg)}90%{transform:rotate(0)}}.robot-foot-left{transform-origin:23.5px 62px;animation:foot-tap 4s ease-in-out infinite 1s}@keyframes foot-tap{0%,85%,to{transform:rotate(0)}88%{transform:rotate(-5deg)}91%{transform:rotate(0)}94%{transform:rotate(-3deg)}}.robot-screen{animation:screen-glow 6s ease-in-out infinite}@keyframes screen-glow{0%,to{opacity:1}50%{opacity:.88}}.hero__title{font-size:44px;font-weight:var(--font-semibold);background:var(--accent-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;background-size:200% auto;animation:shimmer 3s linear infinite;margin:var(--space-2) 0 var(--space-1);line-height:1.2;display:flex;align-items:center;justify-content:center;gap:var(--space-2)}.hero__title .hero__pixel-robot{-webkit-text-fill-color:initial;background:none;-webkit-background-clip:initial;background-clip:initial}@keyframes shimmer{0%{background-position:200% center}to{background-position:-200% center}}.hero__subtitle{font-size:15px;color:var(--text-secondary);font-weight:var(--font-normal)}.mode-selector{display:flex;justify-content:center;gap:var(--space-2);margin:var(--space-4) auto 0}.mode-pill{padding:6px var(--space-4);border-radius:var(--radius-lg);border:1px solid rgba(123,143,242,.2);background:#7b8ff20d;color:var(--text-secondary);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;transition:transform var(--duration-fast) var(--ease-out),background var(--duration-normal) var(--ease-out),border-color var(--duration-normal) var(--ease-out),color var(--duration-normal) var(--ease-out);-webkit-tap-highlight-color:transparent;opacity:.85}.mode-pill:active{transform:scale(.95)}.mode-pill--active{background:linear-gradient(135deg,#7b8ff233,#764ba233);border-color:#7b8ff266;color:var(--text-primary);box-shadow:0 0 12px #7b8ff226;opacity:1}.invite-friends-btn{display:none;margin:var(--space-4) auto 0;padding:10px var(--space-6);background:transparent;border:1px solid rgba(123,143,242,.3);border-radius:var(--radius-lg);color:var(--text-primary);font-size:14px;cursor:pointer;transition:transform var(--duration-fast) var(--ease-out),background var(--duration-normal) var(--ease-out)}.invite-friends-btn:active{transform:scale(.96);background:#7b8ff226}.first-share-cta{display:flex;align-items:center;gap:12px;margin:16px 0;padding:14px 16px;background:linear-gradient(135deg,#7b8ff21f,#764ba21f);border:1px solid rgba(123,143,242,.25);border-radius:14px}.first-share-cta__text{flex:1;font-size:14px;color:var(--text-primary);line-height:1.4}.first-share-cta__btn{padding:8px 16px;background:linear-gradient(135deg,#7b8ff2,#764ba2);border:none;border-radius:12px;color:#fff;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap;transition:transform .15s}.first-share-cta__btn:active{transform:scale(.95)}.game-count-label{text-align:center;color:var(--text-tertiary, rgba(255,255,255,.35));font-size:12px;margin:6px 0 0}.swipe-hint{display:flex;gap:6px;margin-top:24px}.swipe-hint__dot{width:6px;height:6px;border-radius:50%;background:var(--text-muted);transition:all .3s}.swipe-hint__dot--active{background:var(--accent);width:18px;border-radius:3px}.screen--catalog{padding:var(--space-5) var(--space-4)}.catalog-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}.catalog-title{font-size:20px;font-weight:600;color:var(--text-primary)}.catalog-back-btn{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-full);padding:6px 14px;font-size:13px;font-weight:500;color:var(--text-secondary);cursor:pointer;font-family:inherit}.catalog-tabs{display:flex;gap:8px;margin-bottom:16px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.catalog-tabs::-webkit-scrollbar{display:none}.catalog-tab{padding:var(--space-2) 14px;flex-shrink:0;border-radius:var(--radius-full);border:1px solid var(--border);background:transparent;font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;transition:all var(--duration-slow);color:var(--text-secondary);font-family:inherit}.catalog-tab.active{background:var(--accent-gradient);color:#fff;border-color:transparent}.catalog-tab:not(.active):active{transform:scale(.95)}.catalog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:var(--space-3)}.catalog-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:var(--space-4) var(--space-2);border-radius:var(--radius-md);background:var(--bg-secondary);border:1px solid var(--border);cursor:pointer;transition:all var(--duration-slow)}.catalog-card:active{transform:scale(.93)}.catalog-card:hover{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.catalog-card-emoji{font-size:32px;line-height:1.2}.catalog-card-name{font-size:12px;font-weight:500;text-align:center;color:var(--text-secondary);line-height:1.2}.input-bar{position:fixed;bottom:0;left:0;right:0;background:var(--bg-primary);border-top:none;padding:8px 12px calc(8px + var(--safe-bottom));z-index:60}.input-bar__row{display:flex;align-items:flex-end;gap:8px;touch-action:none}.prompt-chips{display:flex;gap:8px;overflow-x:auto;padding:6px 0 2px;scrollbar-width:none;-webkit-overflow-scrolling:touch;touch-action:pan-x}.prompt-chips::-webkit-scrollbar{display:none}.prompt-chips.hidden{display:none}.prompt-chip{flex-shrink:0;padding:5px 12px;border-radius:16px;border:1px solid var(--border);background:var(--bg-tertiary);color:var(--text-secondary);font-size:13px;cursor:pointer;white-space:nowrap;transition:background .15s ease-out,border-color .15s ease-out}.prompt-chip:active{background:var(--accent);color:#fff;border-color:var(--accent)}.prompt-chip--dice{border-color:var(--accent);color:var(--accent);background:rgba(var(--accent-rgb, 99,102,241),.08)}.input-bar__textarea{flex:1;background:var(--bg-tertiary);border:1.5px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--text-base);font-family:inherit;padding:10px 14px;resize:none;min-height:42px;max-height:120px;line-height:1.4;transition:border-color var(--duration-slow),box-shadow var(--duration-slow);outline:none;touch-action:manipulation}.input-bar__textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--border-focus)}.input-bar__textarea::placeholder{color:var(--text-muted)}.input-bar__btn--voice{width:44px;height:44px;border-radius:var(--radius-md);background:transparent;border:1px solid var(--border);font-size:var(--text-xl);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform var(--duration-fast) var(--ease-out),background var(--duration-normal) var(--ease-out),border-color var(--duration-normal) var(--ease-out);flex-shrink:0}.input-bar__btn--voice:active{transform:scale(.9)}.input-bar__btn--voice.recording{background:var(--danger);border-color:var(--danger);animation:pulse 1.5s ease-in-out infinite}.input-bar__btn--send{width:44px;height:44px;border-radius:var(--radius-md);background:var(--bg-tertiary);border:none;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .1s ease-out,background .15s ease-out;flex-shrink:0;color:var(--text-muted)}.input-bar__btn--send.active{background:var(--accent-gradient);color:#fff}.input-bar__btn--send:active{transform:scale(.9)}@keyframes pulse{0%,to{transform:scale(1);box-shadow:0 0 #f4433666}50%{transform:scale(1.05);box-shadow:0 0 0 8px #f4433600}}.loading-overlay{position:fixed;inset:0;background:var(--overlay-bg);z-index:200;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);padding-top:calc(var(--safe-top) + var(--content-safe-top));padding-bottom:var(--safe-bottom)}.loading-scene{display:flex;flex-direction:column;align-items:center;gap:20px;position:relative}.loading-ring-wrapper{position:relative;width:120px;height:120px}.loading-ring{position:absolute;inset:0;animation:spin 2.5s linear infinite}.loading-ring__progress{animation:ring-fill 45s ease-in-out forwards;transform:rotate(-90deg);transform-origin:center}@keyframes ring-fill{0%{stroke-dashoffset:339.292}15%{stroke-dashoffset:100}80%{stroke-dashoffset:30}to{stroke-dashoffset:20}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes fade-in-delay{0%{opacity:0}to{opacity:1}}.loading-robot{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.thinking-pupil-l,.thinking-pupil-r{animation:think-look 2.5s ease-in-out infinite}@keyframes think-look{0%,to{transform:translateY(-2px)}25%{transform:translate(1.5px,-2px)}50%{transform:translate(-1px,-1px)}75%{transform:translate(-1.5px,-2px)}}.thinking-mouth{animation:think-mouth 3s ease-in-out infinite}@keyframes think-mouth{0%,to{d:path("M28 34 Q32 34 36 34")}30%{d:path("M28 34 Q32 35 36 34")}60%{d:path("M29 34 Q32 33.5 35 34")}}.thinking-question{animation:think-question 2s ease-in-out infinite}@keyframes think-question{0%,60%,to{opacity:0;transform:translate(0)}10%,50%{opacity:.8;transform:translateY(-3px)}}.thinking-heart{animation:thinking-heart-beam 1.5s ease-in-out infinite}@keyframes thinking-heart-beam{0%,to{opacity:.5;filter:brightness(1) drop-shadow(0 0 2px rgba(236,72,153,.3))}50%{opacity:1;filter:brightness(2.2) drop-shadow(0 0 8px #ec4899) drop-shadow(0 0 16px rgba(236,72,153,.5))}}.thinking-antenna{transform-origin:32px 14px;animation:think-antenna 1.5s ease-in-out infinite}@keyframes think-antenna{0%,to{transform:rotate(0)}25%{transform:rotate(12deg)}75%{transform:rotate(-12deg)}}.thinking-arm-l{transform-origin:16px 51.5px;animation:think-arm-l 1.2s ease-in-out infinite}.thinking-arm-r{transform-origin:48px 51.5px;animation:think-arm-r 1.2s ease-in-out infinite .3s}@keyframes think-arm-l{0%,to{transform:rotate(0)}50%{transform:rotate(-20deg)}}@keyframes think-arm-r{0%,to{transform:rotate(0)}50%{transform:rotate(20deg)}}.loading-particles{position:absolute;inset:-40px;pointer-events:none}.code-particle{position:absolute;font-family:Courier New,monospace;font-size:12px;font-weight:700;color:var(--accent);opacity:0;animation:fly-particle 3s ease-in-out infinite}.code-particle:nth-child(1){top:10%;left:5%;animation-delay:0s;color:#7b8ff2}.code-particle:nth-child(2){top:5%;right:10%;animation-delay:.5s;color:#a78bfa}.code-particle:nth-child(3){bottom:15%;left:10%;animation-delay:1s;color:#764ba2}.code-particle:nth-child(4){bottom:5%;right:5%;animation-delay:1.5s;color:#7b8ff2}.code-particle:nth-child(5){top:50%;left:0;animation-delay:2s;color:#c084fc}.code-particle:nth-child(6){top:50%;right:0;animation-delay:2.5s;color:#f472b6}@keyframes fly-particle{0%{opacity:0;transform:translateY(20px) scale(.5) rotate(0)}20%{opacity:.7;transform:translate(0) scale(1) rotate(0)}80%{opacity:.5;transform:translateY(-30px) scale(.8) rotate(180deg)}to{opacity:0;transform:translateY(-50px) scale(.3) rotate(360deg)}}.loading-text{font-size:var(--text-lg);font-weight:var(--font-medium);color:var(--text-primary);animation:text-pulse 2s ease-in-out infinite}.loading-subtext{font-size:var(--text-sm);color:var(--text-muted);transition:opacity var(--duration-slow);min-width:150px;text-align:center}.loading-cancel-btn{margin-top:var(--space-4);padding:var(--space-2) var(--space-6);border-radius:var(--radius-lg);border:1px solid var(--border);background:transparent;color:var(--text-muted);font-size:var(--text-sm);cursor:pointer;opacity:0;animation:fade-in-delay 1s ease-out 3s forwards;transition:background var(--duration-normal) var(--ease-out),color var(--duration-normal) var(--ease-out)}.loading-cancel-btn:active{background:var(--bg-tertiary);color:var(--text-primary)}@keyframes text-pulse{0%,to{opacity:1}50%{opacity:.6}}@keyframes loading-dots{0%,24%{content:""}25%,49%{content:"."}50%,74%{content:".."}75%,to{content:"..."}}.loading-overlay .spinner{width:48px;height:48px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite}.results-screen{position:fixed;inset:0;background:var(--bg-primary);z-index:100;display:flex;flex-direction:column;transform:translateY(100%);transition:transform .35s cubic-bezier(.4,0,.2,1);will-change:transform;padding-top:calc(var(--safe-top) + var(--content-safe-top))}.results-screen--visible{transform:translateY(0)}.results-screen__header{display:flex;align-items:center;height:var(--header-height);padding:0 var(--space-3);border-bottom:1px solid var(--border);gap:var(--space-1);flex-shrink:0}.results-back-btn{background:none;border:none;color:var(--accent);font-size:14px;font-weight:500;cursor:pointer;padding:8px;font-family:inherit}.results-back-btn:active{opacity:.7}.tabs{display:flex;flex:1;justify-content:center;gap:0}.tab{padding:var(--space-3) var(--space-3);background:transparent;border:none;border-bottom:2px solid transparent;font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;color:var(--text-muted);transition:all var(--duration-slow);font-family:inherit}.tab.active{color:var(--accent);border-bottom-color:var(--accent)}.tab:active{opacity:.7}.results-share-btn{background:none;border:none;font-size:20px;cursor:pointer;padding:8px}.results-share-btn:active{opacity:.7}.results-story-btn{background:none;border:none;font-size:20px;cursor:pointer;padding:8px}.results-story-btn:active{opacity:.7}.tab-content{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}.tab-pane{display:none;padding:var(--space-5) var(--space-4)}.tab-pane.active{display:block}.explanation-card h3{color:var(--accent);margin-bottom:var(--space-3);font-size:var(--text-lg)}.explanation-card p{line-height:1.7;color:var(--text-secondary);font-size:15px}.code-card{background:var(--code-bg);border-radius:var(--radius-md);overflow:hidden}.code-header{display:flex;justify-content:space-between;align-items:center;padding:10px var(--space-4);background:var(--bg-tertiary);border-bottom:1px solid var(--border)}.code-header span{font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.copy-btn{background:var(--accent);color:#fff;border:none;padding:var(--space-1) var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--font-medium);cursor:pointer;font-family:inherit;transition:opacity var(--duration-slow)}.copy-btn:active{opacity:.8}.code-card pre{margin:0;padding:15px;overflow-x:auto}.code-card code{font-family:Courier New,monospace;font-size:13px;line-height:1.6;color:var(--text-primary)}#codeText{user-select:text;-webkit-user-select:text;cursor:text}.run-card{margin:-20px -16px}.game-frame{width:100%;height:calc(100vh - var(--header-height) - 20px);min-height:300px;border:none;background:#1a1a2e}.error-overlay{position:fixed;inset:0;background:var(--overlay-bg);z-index:200;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:calc(40px + var(--safe-top) + var(--content-safe-top)) 40px calc(40px + var(--safe-bottom));backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.error-robot{animation:sad-bob 3s ease-in-out infinite}@keyframes sad-bob{0%,to{transform:translateY(0) rotate(0)}30%{transform:translateY(3px) rotate(-2deg)}70%{transform:translateY(3px) rotate(2deg)}}.sad-antenna{transform-origin:32px 14px;animation:sad-droop 4s ease-in-out infinite}@keyframes sad-droop{0%,to{transform:rotate(-8deg)}50%{transform:rotate(-12deg)}}.sad-eyes{animation:sad-blink 5s ease-in-out infinite}@keyframes sad-blink{0%,90%,to{transform:scaleY(1)}93%,97%{transform:scaleY(.1)}}.sad-tear-l{animation:tear-fall 3s ease-in infinite .5s}.sad-tear-r{animation:tear-fall 3s ease-in infinite 2s}@keyframes tear-fall{0%{opacity:0;transform:translate(0);r:1.2}10%{opacity:.7}to{opacity:0;transform:translateY(15px);r:.5}}.sad-arm-l{transform-origin:16px 53.5px;animation:sad-arm 4s ease-in-out infinite}.sad-arm-r{transform-origin:48px 53.5px;animation:sad-arm 4s ease-in-out infinite 1s}@keyframes sad-arm{0%,to{transform:rotate(5deg)}50%{transform:rotate(8deg)}}.sad-heart{opacity:.2;animation:sad-heartbeat 3s ease-in-out infinite}@keyframes sad-heartbeat{0%,to{opacity:.15;filter:brightness(.6)}50%{opacity:.3;filter:brightness(.9)}}.sad-blush-l,.sad-blush-r{opacity:.15}.error-robot .robot-eye-spark{opacity:.2!important}.error-title{color:var(--danger);font-size:18px;font-weight:600}.error-overlay p{color:var(--text-secondary);text-align:center;line-height:1.5;max-width:280px}.retry-btn{padding:var(--space-3) 30px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--text-base);font-weight:var(--font-medium);cursor:pointer;font-family:inherit;margin-top:var(--space-2);position:relative;overflow:hidden;transition:transform var(--duration-slow),box-shadow var(--duration-slow)}.retry-btn:active{transform:scale(.95);box-shadow:var(--shadow-md)}.confetti-canvas{position:fixed;inset:0;z-index:300;pointer-events:none;width:100%;height:100%}button{position:relative;overflow:hidden}button .ripple{position:absolute;border-radius:50%;background:#ffffff4d;transform:scale(0);animation:ripple-expand .6s ease-out forwards;pointer-events:none}@keyframes ripple-expand{0%{transform:scale(0);opacity:1}to{transform:scale(4);opacity:0}}.input-bar__btn--send.active{transition:transform .15s,box-shadow .15s}.input-bar__btn--send.active:active{transform:scale(.88);box-shadow:0 0 20px #7b8ff266}.catalog-card{transition:transform .2s cubic-bezier(.34,1.56,.64,1),border-color .2s,box-shadow .2s}.catalog-card:active{transform:scale(.92)}.tab{transition:color .2s,border-color .3s}.tab.active{position:relative}.results-screen{transition:transform .4s cubic-bezier(.34,1.56,.64,1)}.input-bar__textarea{transition:border-color .2s,box-shadow .2s,transform .15s}.input-bar__textarea:focus{transform:translateY(-1px)}.input-bar__btn--voice.recording{box-shadow:0 0 #f4433666;animation:recording-pulse 1.5s ease-in-out infinite}@keyframes recording-pulse{0%,to{transform:scale(1);box-shadow:0 0 #f4433666}50%{transform:scale(1.05);box-shadow:0 0 0 10px #f4433600,0 0 20px #f4433626}}.input-bar__btn--send.active:after{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:linear-gradient(45deg,transparent 30%,rgba(255,255,255,.15) 50%,transparent 70%);animation:btn-shine 3s ease-in-out infinite}@keyframes btn-shine{0%,to{transform:translate(-100%) rotate(45deg)}50%{transform:translate(100%) rotate(45deg)}}.swipe-hint__dot{transition:all .3s cubic-bezier(.34,1.56,.64,1)}.last-game-btn:not(.hidden){animation:bounce-in .5s cubic-bezier(.34,1.56,.64,1)}@keyframes bounce-in{0%{transform:scale(0);opacity:0}60%{transform:scale(1.2)}to{transform:scale(1);opacity:1}}.explain-btn{position:fixed;z-index:1000;padding:var(--space-2) var(--space-4);background:var(--accent);color:#fff;border:none;border-radius:var(--radius-full);font-size:14px;font-weight:var(--font-medium);cursor:pointer;box-shadow:var(--shadow-md);transition:transform var(--duration-slow);pointer-events:auto;font-family:inherit}.explain-btn:active{transform:scale(.95)}.explain-popup{position:fixed;inset:0;background:#00000080;z-index:2000;display:flex;align-items:flex-end;justify-content:center;padding:20px}.explain-popup.hidden{display:none}.explain-popup-content{background:var(--bg-elevated);border-radius:var(--radius-lg) var(--radius-lg) var(--radius-md) var(--radius-md);padding:20px;max-height:60vh;width:100%;max-width:var(--max-content-width);overflow-y:auto;position:relative;animation:slideUp .3s ease-out}@keyframes slideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.explain-popup-close{position:absolute;top:12px;right:12px;background:var(--bg-tertiary);border:none;width:36px;height:36px;border-radius:50%;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-secondary)}.explain-popup-title{color:var(--accent);font-size:var(--text-lg);margin-bottom:var(--space-4)}.explain-popup-body{line-height:1.6;color:var(--text-secondary);font-size:15px}.explain-popup-body .spinner{width:30px;height:30px;margin:0 auto 10px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite}.screen--ide{display:flex;flex-direction:column;height:100%;overflow:hidden;position:relative}.ide-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);border-bottom:none;box-shadow:0 1px #ffffff0a;flex-shrink:0;min-height:44px;background:var(--bg-primary);overflow:visible;position:relative;z-index:10}.ide-back-btn{background:none;border:none;color:var(--accent);font-size:14px;font-weight:500;cursor:pointer;padding:6px 8px;font-family:inherit;border-radius:var(--radius-sm);transition:background .15s}.ide-back-btn:active{background:var(--bg-tertiary)}.ide-run-btn{width:44px;height:44px;border-radius:var(--radius-md);background:var(--color-ide-run);border:none;font-size:var(--text-base);cursor:pointer;display:flex;align-items:center;justify-content:center;color:#fff;transition:transform var(--duration-normal),box-shadow var(--duration-normal)}.ide-run-btn:active{transform:scale(.92);box-shadow:0 0 0 4px #22c55e40}.battle-robot-svg{position:relative;transform-origin:center bottom;opacity:0;transform:translateY(-30px) scale(.5);pointer-events:none}.battle-robot-svg.robot-active{pointer-events:auto;animation:battle-enter .6s cubic-bezier(.34,1.56,.64,1) forwards,battle-patrol 16s ease-in-out .6s infinite}@keyframes battle-enter{0%{transform:translateY(-30px) scale(.5);opacity:0}60%{transform:translateY(3px) scale(1.05);opacity:1}to{transform:translateY(0) scale(1);opacity:1}}@keyframes battle-patrol{0%{transform:translate(0) translateY(0) rotate(0)}5%{transform:translate(0) translateY(-2px) rotate(0)}10%{transform:translate(0) translateY(0) rotate(0)}15%{transform:translate(0) translateY(0) rotate(0)}20%{transform:translate(15px) translateY(-1px) rotate(1deg)}25%{transform:translate(30px) translateY(0) rotate(-1deg)}30%{transform:translate(42px) translateY(-1px) rotate(1deg)}35%{transform:translate(50px) translateY(0) rotate(0)}38%{transform:translate(52px) translateY(0) rotate(8deg)}42%{transform:translate(55px) translateY(0) rotate(14deg)}45%{transform:translate(56px) translateY(0) rotate(22deg)}48%{transform:translate(55px) translateY(12px) rotate(35deg)}50%{transform:translate(54px) translateY(18px) rotate(15deg)}52%{transform:translate(53px) translateY(20px) rotate(-5deg)}54%{transform:translate(53px) translateY(22px) rotate(5deg)}56%{transform:translate(53px) translateY(20px) rotate(-3deg)}58%{transform:translate(53px) translateY(21px) rotate(3deg)}60%{transform:translate(52px) translateY(18px) rotate(-8deg)}63%{transform:translate(51px) translateY(12px) rotate(-5deg)}66%{transform:translate(50px) translateY(5px) rotate(-10deg)}68%{transform:translate(49px) translateY(0) rotate(0)}70%{transform:translate(48px) translateY(0) rotate(3deg)}72%{transform:translate(48px) translateY(-2px) rotate(-2deg)}74%{transform:translate(48px) translateY(0) rotate(0)}78%{transform:translate(35px) translateY(-1px) rotate(-1deg)}82%{transform:translate(20px) translateY(0) rotate(1deg)}86%{transform:translate(10px) translateY(-1px) rotate(-1deg)}90%{transform:translate(0) translateY(0) rotate(0)}95%{transform:translate(0) translateY(-2px) rotate(0)}to{transform:translate(0) translateY(0) rotate(0)}}.battle-robot-svg.robot-active .battle-foot-left{transform-origin:23.5px 62px;animation:battle-run-left 16s ease-in-out infinite}.battle-robot-svg.robot-active .battle-foot-right{transform-origin:40.5px 62px;animation:battle-run-right 16s ease-in-out infinite}@keyframes battle-run-left{0%,15%{transform:rotate(0)}17%{transform:rotate(-15deg)}19%{transform:rotate(10deg)}21%{transform:rotate(-15deg)}23%{transform:rotate(10deg)}25%{transform:rotate(-15deg)}27%{transform:rotate(10deg)}29%{transform:rotate(-15deg)}31%{transform:rotate(10deg)}33%{transform:rotate(-15deg)}35%{transform:rotate(0)}38%,44%{transform:rotate(0)}48%{transform:rotate(25deg)}50%{transform:rotate(-20deg)}52%{transform:rotate(30deg)}54%{transform:rotate(-25deg)}56%{transform:rotate(20deg)}58%{transform:rotate(-15deg)}60%{transform:rotate(-30deg)}63%{transform:rotate(20deg)}66%{transform:rotate(-20deg)}68%{transform:rotate(0)}70%,75%{transform:rotate(0)}77%{transform:rotate(-12deg)}79%{transform:rotate(8deg)}81%{transform:rotate(-12deg)}83%{transform:rotate(8deg)}85%{transform:rotate(-12deg)}87%{transform:rotate(8deg)}89%{transform:rotate(-8deg)}90%{transform:rotate(0)}to{transform:rotate(0)}}@keyframes battle-run-right{0%,15%{transform:rotate(0)}17%{transform:rotate(10deg)}19%{transform:rotate(-15deg)}21%{transform:rotate(10deg)}23%{transform:rotate(-15deg)}25%{transform:rotate(10deg)}27%{transform:rotate(-15deg)}29%{transform:rotate(10deg)}31%{transform:rotate(-15deg)}33%{transform:rotate(10deg)}35%{transform:rotate(0)}38%,44%{transform:rotate(0)}48%{transform:rotate(-20deg)}50%{transform:rotate(25deg)}52%{transform:rotate(-25deg)}54%{transform:rotate(30deg)}56%{transform:rotate(-15deg)}58%{transform:rotate(20deg)}60%{transform:rotate(20deg)}63%{transform:rotate(-30deg)}66%{transform:rotate(15deg)}68%{transform:rotate(0)}70%,75%{transform:rotate(0)}77%{transform:rotate(8deg)}79%{transform:rotate(-12deg)}81%{transform:rotate(8deg)}83%{transform:rotate(-12deg)}85%{transform:rotate(8deg)}87%{transform:rotate(-12deg)}89%{transform:rotate(8deg)}90%{transform:rotate(0)}to{transform:rotate(0)}}.battle-robot-svg.robot-active .battle-arm-left{transform-origin:16px 51.5px;animation:battle-arm-left 16s ease-in-out infinite}.battle-robot-svg.robot-active .battle-arm-right{transform-origin:48px 51.5px;animation:battle-arm-right 16s ease-in-out infinite}@keyframes battle-arm-left{0%,15%{transform:rotate(0)}17%{transform:rotate(12deg)}19%{transform:rotate(-8deg)}21%{transform:rotate(12deg)}23%{transform:rotate(-8deg)}25%{transform:rotate(12deg)}27%{transform:rotate(-8deg)}29%{transform:rotate(12deg)}31%{transform:rotate(-8deg)}33%{transform:rotate(12deg)}35%{transform:rotate(0)}38%{transform:rotate(-15deg)}42%{transform:rotate(-20deg)}44%{transform:rotate(-15deg)}46%{transform:rotate(-40deg)}48%{transform:rotate(-60deg)}50%{transform:rotate(-45deg)}52%{transform:rotate(-70deg)}54%{transform:rotate(-65deg)}56%{transform:rotate(-72deg)}58%{transform:rotate(-68deg)}60%{transform:rotate(-55deg)}63%{transform:rotate(-40deg)}66%{transform:rotate(-25deg)}68%{transform:rotate(0)}70%{transform:rotate(15deg)}71%{transform:rotate(-10deg)}72%{transform:rotate(12deg)}74%{transform:rotate(0)}77%{transform:rotate(-8deg)}79%{transform:rotate(12deg)}81%{transform:rotate(-8deg)}83%{transform:rotate(12deg)}85%{transform:rotate(-8deg)}87%{transform:rotate(12deg)}89%{transform:rotate(-8deg)}90%{transform:rotate(0)}to{transform:rotate(0)}}@keyframes battle-arm-right{0%,15%{transform:rotate(0)}17%{transform:rotate(-8deg)}19%{transform:rotate(12deg)}21%{transform:rotate(-8deg)}23%{transform:rotate(12deg)}25%{transform:rotate(-8deg)}27%{transform:rotate(12deg)}29%{transform:rotate(-8deg)}31%{transform:rotate(12deg)}33%{transform:rotate(-8deg)}35%{transform:rotate(0)}38%{transform:rotate(10deg)}42%{transform:rotate(18deg)}44%{transform:rotate(10deg)}46%{transform:rotate(40deg)}48%{transform:rotate(60deg)}50%{transform:rotate(45deg)}52%{transform:rotate(70deg)}54%{transform:rotate(65deg)}56%{transform:rotate(72deg)}58%{transform:rotate(68deg)}60%{transform:rotate(55deg)}63%{transform:rotate(40deg)}66%{transform:rotate(25deg)}68%{transform:rotate(0)}70%{transform:rotate(-15deg)}71%{transform:rotate(10deg)}72%{transform:rotate(-12deg)}74%{transform:rotate(0)}77%{transform:rotate(12deg)}79%{transform:rotate(-8deg)}81%{transform:rotate(12deg)}83%{transform:rotate(-8deg)}85%{transform:rotate(12deg)}87%{transform:rotate(-8deg)}89%{transform:rotate(12deg)}90%{transform:rotate(0)}to{transform:rotate(0)}}.battle-robot-svg.robot-active .battle-pupil{transition:transform .3s ease;animation:battle-eyes-look 16s ease-in-out infinite}@keyframes battle-eyes-look{0%,15%{transform:translate(0) translateY(0)}18%{transform:translate(1px) translateY(0)}35%{transform:translate(1px) translateY(0)}38%{transform:translate(1px) translateY(1px)}44%{transform:translate(1px) translateY(1.5px)}46%{transform:translate(0) translateY(-2px)}48%{transform:translate(-.5px) translateY(-2px)}50%{transform:translate(.5px) translateY(-2px)}52%{transform:translate(-1px) translateY(-1.5px)}54%{transform:translate(1px) translateY(-2px)}56%{transform:translate(-1px) translateY(-1.5px)}58%{transform:translate(1px) translateY(-2px)}60%{transform:translate(0) translateY(-1.5px)}68%{transform:translate(0) translateY(-1px)}70%{transform:translate(-1px) translateY(0)}72%{transform:translate(1px) translateY(0)}74%{transform:translate(0) translateY(0)}76%{transform:translate(-1px) translateY(0)}90%{transform:translate(-1px) translateY(0)}95%{transform:translate(0) translateY(0)}to{transform:translate(0) translateY(0)}}.battle-robot-svg.robot-active .battle-eye-left,.battle-robot-svg.robot-active .battle-eye-right{animation:battle-blink 16s ease-in-out infinite}.battle-robot-svg.robot-active .battle-eye-right{animation-delay:.15s}@keyframes battle-blink{0%,to{transform:scaleY(1)}22%{transform:scaleY(1)}22.5%{transform:scaleY(.1)}23%{transform:scaleY(1)}44%{transform:scaleY(1)}44.3%{transform:scaleY(.1)}44.6%{transform:scaleY(1)}46%,58%{transform:scaleY(1.1)}70%{transform:scaleY(1)}70.4%{transform:scaleY(.05)}70.8%{transform:scaleY(.05)}71.2%{transform:scaleY(1)}84%{transform:scaleY(1)}84.5%{transform:scaleY(.1)}85%{transform:scaleY(1)}}.battle-robot-svg.robot-active .battle-antenna{transform-origin:32px 14px;animation:battle-antenna-action 16s ease-in-out infinite}@keyframes battle-antenna-action{0%{transform:rotate(0)}5%{transform:rotate(2deg)}10%{transform:rotate(-2deg)}15%{transform:rotate(0)}17%{transform:rotate(3deg)}19%{transform:rotate(-3deg)}21%{transform:rotate(3deg)}23%{transform:rotate(-3deg)}25%{transform:rotate(3deg)}27%{transform:rotate(-3deg)}29%{transform:rotate(3deg)}31%{transform:rotate(-3deg)}33%{transform:rotate(3deg)}35%{transform:rotate(0)}38%{transform:rotate(5deg)}42%{transform:rotate(8deg)}46%{transform:rotate(-15deg)}48%{transform:rotate(20deg)}50%{transform:rotate(-12deg)}52%{transform:rotate(15deg)}54%{transform:rotate(-18deg)}56%{transform:rotate(12deg)}58%{transform:rotate(-10deg)}60%{transform:rotate(5deg)}63%{transform:rotate(-5deg)}66%{transform:rotate(3deg)}68%{transform:rotate(0)}70%{transform:rotate(4deg)}72%{transform:rotate(-4deg)}74%{transform:rotate(0)}77%{transform:rotate(-3deg)}79%{transform:rotate(3deg)}81%{transform:rotate(-3deg)}83%{transform:rotate(3deg)}85%{transform:rotate(-3deg)}87%{transform:rotate(3deg)}89%{transform:rotate(-3deg)}90%{transform:rotate(0)}to{transform:rotate(0)}}.battle-robot-svg.robot-active .battle-mouth{animation:battle-mouth-story 16s ease-in-out infinite}@keyframes battle-mouth-story{0%,15%{d:path("M28 33 Q32 36.5 36 33")}20%,35%{d:path("M28 33 Q32 37 36 33")}38%{d:path("M30 33 Q32 36 34 33")}42%{d:path("M30 32.5 Q32 35.5 34 32.5")}45%{d:path("M29 32 Q32 36 35 32")}46%{d:path("M29 31 Q32 37 35 31")}48%,58%{d:path("M29 31 Q32 37.5 35 31")}60%,66%{d:path("M28 34 L36 34")}68%{d:path("M27 33 Q32 38 37 33")}70%{d:path("M27 32 Q32 38 37 32")}74%{d:path("M28 33 Q32 36.5 36 33")}76%,90%{d:path("M28 33 Q32 36.5 36 33")}to{d:path("M28 33 Q32 36.5 36 33")}}.battle-robot-svg.robot-active .battle-ear-left{transform-origin:8.5px 29px;animation:battle-ear-left 16s ease-in-out infinite}.battle-robot-svg.robot-active .battle-ear-right{transform-origin:55.5px 29px;animation:battle-ear-right 16s ease-in-out infinite}@keyframes battle-ear-left{0%,15%{transform:rotate(0)}17%,35%{transform:rotate(-2deg)}45%{transform:rotate(-8deg)}48%,58%{transform:rotate(-12deg)}60%,68%{transform:rotate(-5deg)}70%{transform:rotate(3deg)}74%{transform:rotate(0)}90%,to{transform:rotate(0)}}@keyframes battle-ear-right{0%,15%{transform:rotate(0)}17%,35%{transform:rotate(2deg)}45%{transform:rotate(8deg)}48%,58%{transform:rotate(12deg)}60%,68%{transform:rotate(5deg)}70%{transform:rotate(-3deg)}74%{transform:rotate(0)}90%,to{transform:rotate(0)}}.battle-robot-svg.robot-active .battle-heart-core{transform-origin:32px 55px;animation:battle-heart-story 16s ease-in-out infinite}@keyframes battle-heart-story{0%{transform:scale(1)}1%{transform:scale(1.1)}2%{transform:scale(1)}4%{transform:scale(1.08)}5%{transform:scale(1)}15%{transform:scale(1)}16%{transform:scale(1.12)}17%{transform:scale(1)}19%{transform:scale(1.1)}20%{transform:scale(1)}46%{transform:scale(1)}46.5%{transform:scale(1.25)}47%{transform:scale(.9)}47.5%{transform:scale(1.2)}48%{transform:scale(.95)}48.5%{transform:scale(1.3)}49%{transform:scale(.9)}49.5%{transform:scale(1.25)}50%{transform:scale(1)}50.5%{transform:scale(1.3)}51%{transform:scale(.9)}51.5%{transform:scale(1.25)}52%{transform:scale(1)}52.5%{transform:scale(1.2)}53%{transform:scale(.95)}53.5%{transform:scale(1.25)}54%{transform:scale(1)}54.5%{transform:scale(1.2)}55%{transform:scale(.95)}55.5%{transform:scale(1.2)}56%{transform:scale(1)}60%{transform:scale(1)}60.8%{transform:scale(1.2)}61.6%{transform:scale(1)}62.4%{transform:scale(1.15)}63.2%{transform:scale(1)}68%{transform:scale(1)}69%{transform:scale(1.3)}70%{transform:scale(.85)}71%{transform:scale(1.15)}72%{transform:scale(1)}80%{transform:scale(1)}81%{transform:scale(1.1)}82%{transform:scale(1)}84%{transform:scale(1.08)}85%{transform:scale(1)}to{transform:scale(1)}}.battle-robot-svg.robot-active .battle-blush-l,.battle-robot-svg.robot-active .battle-blush-r{animation:battle-blush-story 16s ease-in-out infinite}@keyframes battle-blush-story{0%,44%{opacity:.25}68%{opacity:.25}70%{opacity:.55}74%{opacity:.5}78%{opacity:.35}85%{opacity:.25}to{opacity:.25}}.battle-robot-svg.robot-active ellipse:last-child{animation:battle-shadow-story 16s ease-in-out infinite}@keyframes battle-shadow-story{0%,15%{opacity:.15;rx:14}20%,35%{opacity:.12;rx:13}48%{opacity:.05;rx:8}52%,58%{opacity:.03;rx:5}63%{opacity:.08;rx:10}68%{opacity:.15;rx:14}74%,to{opacity:.15;rx:14}}.battle-robot-svg .battle-visor{opacity:0;transition:opacity .4s ease}.battle-robot-svg .battle-particle{opacity:0}.battle-robot-svg .battle-eye-spark{transition:opacity .3s ease}.battle-robot-svg.battle-mode .battle-visor{opacity:.85;animation:battle-visor-flicker 2s ease-in-out infinite}.battle-robot-svg.battle-mode .battle-iris{fill:#ef4444;transition:fill .4s ease}.battle-robot-svg.battle-mode .battle-pupil{fill:#ff2020;transition:fill .4s ease}.battle-robot-svg.battle-mode .battle-eye-white{opacity:.85;transition:opacity .4s ease}.battle-robot-svg.battle-mode .battle-eye-spark{opacity:1;animation:battle-spark-pulse .6s ease-in-out infinite}.battle-robot-svg.battle-mode .battle-antenna-tip{fill:#ef4444;animation:battle-antenna-pulse .8s ease-in-out infinite}.battle-robot-svg.battle-mode .battle-particle-1{animation:battle-particle-float 1.2s ease-in-out infinite}.battle-robot-svg.battle-mode .battle-particle-2{animation:battle-particle-float 1.2s ease-in-out .4s infinite}.battle-robot-svg.battle-mode .battle-particle-3{animation:battle-particle-float 1.2s ease-in-out .8s infinite}.battle-robot-svg.battle-mode .battle-mouth{stroke:#ef4444;transition:stroke .4s ease}.battle-robot-svg.battle-mode .battle-screen{fill:#1a0a0a;transition:fill .4s ease}@keyframes battle-visor-flicker{0%,to{opacity:.85}50%{opacity:.6}75%{opacity:.9}}@keyframes battle-antenna-pulse{0%,to{opacity:1;r:3.5}50%{opacity:.5;r:4}}@keyframes battle-spark-pulse{0%,to{opacity:1}50%{opacity:.3}}@keyframes battle-particle-float{0%{opacity:0;transform:translateY(0)}30%{opacity:.8}to{opacity:0;transform:translateY(-8px)}}.battle-robot-svg.battle-mode .battle-blush-l,.battle-robot-svg.battle-mode .battle-blush-r{transition:opacity .4s ease}.ide-empty-robot .ide-empty-zzz{animation:zzz-float 2s ease-in-out infinite}.ide-empty-robot .ide-empty-zzz-2{animation:zzz-float 2s ease-in-out .6s infinite}@keyframes zzz-float{0%,to{opacity:.5;transform:translateY(0)}50%{opacity:.2;transform:translateY(-3px)}}.ide-empty-robot .empty-antenna{opacity:.4}.ide-empty-robot .empty-antenna-tip{animation:none}.ide-empty-robot .empty-heart{opacity:.25;animation:none;transform-origin:32px 55px}.ide-empty-robot .empty-eyes-open{display:none}.ide-empty-robot .empty-eyes-closed{display:block}.ide-empty-robot .empty-arm-left{transform-origin:16px 51.5px}.ide-empty-robot .empty-arm-right{transform-origin:48px 51.5px}.ide-empty-robot .empty-foot-left{transform-origin:23.5px 62px}.ide-empty-robot .empty-foot-right{transform-origin:40.5px 62px}.ide-empty-robot .empty-ear-left{transform-origin:8.5px 29px}.ide-empty-robot .empty-ear-right{transform-origin:55.5px 29px}.ide-empty-robot .empty-antenna{transform-origin:32px 14px}.ide-empty-robot svg{animation:empty-breathe 4s ease-in-out infinite}@keyframes empty-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}.ide-empty-state.waking-up .ide-empty-zzz{animation:zzz-vanish .5s cubic-bezier(.4,0,.2,1) forwards}.ide-empty-state.waking-up .ide-empty-zzz-2{animation:zzz-vanish .5s cubic-bezier(.4,0,.2,1) .1s forwards}@keyframes zzz-vanish{0%{opacity:.5;transform:translateY(0) scale(1) rotate(0)}40%{opacity:.8;transform:translateY(-8px) scale(1.2) rotate(10deg)}to{opacity:0;transform:translateY(-25px) scale(.2) rotate(30deg)}}.ide-empty-state.waking-up .empty-eye-line-l,.ide-empty-state.waking-up .empty-eye-line-r{animation:eyes-open .4s cubic-bezier(.34,1.56,.64,1) .2s forwards}@keyframes eyes-open{0%{stroke-width:2;opacity:.7}40%{stroke-width:3;opacity:.9}60%{stroke-width:.5;opacity:.4}to{stroke-width:0;opacity:0}}.ide-empty-state.waking-up .empty-eyes-closed rect{animation:eyewhite-wake .5s ease-out .3s forwards}@keyframes eyewhite-wake{0%{opacity:.3}50%{opacity:.9}to{opacity:.85}}.ide-empty-state.waking-up .empty-iris-l,.ide-empty-state.waking-up .empty-iris-r{animation:pupil-appear .4s ease-out .4s forwards}.ide-empty-state.waking-up .empty-pupil-l,.ide-empty-state.waking-up .empty-pupil-r{animation:pupil-appear .3s ease-out .45s forwards}.ide-empty-state.waking-up .empty-spark-l,.ide-empty-state.waking-up .empty-spark-r{animation:spark-appear .3s ease-out .5s forwards}@keyframes pupil-appear{0%{opacity:0;transform:scale(.3)}70%{opacity:1;transform:scale(1.15)}to{opacity:1;transform:scale(1)}}@keyframes spark-appear{0%{opacity:0}to{opacity:.9}}.ide-empty-state.waking-up .empty-antenna-tip{animation:antenna-wake .6s cubic-bezier(.34,1.56,.64,1) .15s forwards}@keyframes antenna-wake{0%{opacity:.4;r:3.5}30%{opacity:.3;r:3}60%{opacity:1;r:4.5}80%{opacity:.9;r:3.8}to{opacity:.85;r:3.5}}.ide-empty-state.waking-up .empty-antenna{animation:antenna-startle .6s ease-out .25s forwards}@keyframes antenna-startle{0%{transform:rotate(0)}20%{transform:rotate(-12deg)}40%{transform:rotate(10deg)}60%{transform:rotate(-6deg)}80%{transform:rotate(4deg)}to{transform:rotate(0)}}.ide-empty-state.waking-up .empty-heart{animation:heart-awaken .7s cubic-bezier(.34,1.56,.64,1) .2s forwards}@keyframes heart-awaken{0%{opacity:.25;transform:scale(1)}25%{opacity:.9;transform:scale(1.4)}45%{opacity:.7;transform:scale(.9)}65%{opacity:.85;transform:scale(1.2)}to{opacity:.75;transform:scale(1)}}.ide-empty-state.waking-up .empty-blush-l,.ide-empty-state.waking-up .empty-blush-r{animation:blush-surprise .5s ease-out .3s forwards}@keyframes blush-surprise{0%{opacity:.1;r:2.5}50%{opacity:.5;r:3}to{opacity:.4;r:2.8}}.ide-empty-state.waking-up .empty-arm-left{animation:escape-arm-l 2.5s ease-in-out .3s forwards}.ide-empty-state.waking-up .empty-arm-right{animation:escape-arm-r 2.5s ease-in-out .35s forwards}@keyframes escape-arm-l{0%{transform:rotate(0)}5%{transform:rotate(-25deg)}10%{transform:rotate(-15deg)}12%{transform:rotate(-25deg)}16%{transform:rotate(12deg)}21%{transform:rotate(-8deg)}26%{transform:rotate(12deg)}31%{transform:rotate(-8deg)}36%{transform:rotate(12deg)}41%{transform:rotate(-8deg)}46%{transform:rotate(12deg)}51%{transform:rotate(-8deg)}56%{transform:rotate(12deg)}61%{transform:rotate(-8deg)}66%{transform:rotate(10deg)}76%{transform:rotate(-6deg)}to{transform:rotate(0)}}@keyframes escape-arm-r{0%{transform:rotate(0)}5%{transform:rotate(25deg)}10%{transform:rotate(15deg)}12%{transform:rotate(25deg)}16%{transform:rotate(-8deg)}21%{transform:rotate(12deg)}26%{transform:rotate(-8deg)}31%{transform:rotate(12deg)}36%{transform:rotate(-8deg)}41%{transform:rotate(12deg)}46%{transform:rotate(-8deg)}51%{transform:rotate(12deg)}56%{transform:rotate(-8deg)}61%{transform:rotate(12deg)}66%{transform:rotate(-10deg)}76%{transform:rotate(6deg)}to{transform:rotate(0)}}.ide-empty-state.waking-up .empty-ear-left{animation:escape-ear-l 2.5s ease-in-out .3s forwards}.ide-empty-state.waking-up .empty-ear-right{animation:escape-ear-r 2.5s ease-in-out .3s forwards}@keyframes escape-ear-l{0%{transform:rotate(0)}5%{transform:rotate(-8deg) scaleY(1.1)}12%{transform:rotate(-3deg)}16%,26%,36%,46%,56%,66%{transform:rotate(-5deg)}21%,31%,41%,51%,61%{transform:rotate(-2deg)}to{transform:rotate(0)}}@keyframes escape-ear-r{0%{transform:rotate(0)}5%{transform:rotate(8deg) scaleY(1.1)}12%{transform:rotate(3deg)}16%,26%,36%,46%,56%,66%{transform:rotate(5deg)}21%,31%,41%,51%,61%{transform:rotate(2deg)}to{transform:rotate(0)}}.ide-empty-state.waking-up .ide-empty-robot{animation:robot-run-away 2.5s cubic-bezier(.4,0,.2,1) .6s forwards;overflow:visible}@keyframes robot-run-away{0%{transform:translate(0) translateY(0) rotate(0);opacity:.8}5%{transform:translate(0) translateY(-15px) rotate(0);opacity:.85}10%{transform:translate(20px) translateY(-2px) rotate(2deg);opacity:.85}15%{transform:translate(40px) translateY(0) rotate(-1deg);opacity:.85}20%{transform:translate(60px) translateY(-2px) rotate(2deg);opacity:.8}25%{transform:translate(82px) translateY(0) rotate(-1deg);opacity:.8}30%{transform:translate(105px) translateY(-2px) rotate(2deg);opacity:.75}35%{transform:translate(128px) translateY(0) rotate(-1deg);opacity:.7}40%{transform:translate(152px) translateY(-2px) rotate(2deg);opacity:.65}45%{transform:translate(176px) translateY(0) rotate(-1deg);opacity:.55}50%{transform:translate(200px) translateY(-2px) rotate(2deg);opacity:.45}55%{transform:translate(224px) translateY(0) rotate(-1deg);opacity:.35}60%{transform:translate(248px) translateY(-2px) rotate(2deg);opacity:.25}70%{transform:translate(280px) translateY(0) rotate(3deg);opacity:.1}to{transform:translate(350px) translateY(0) rotate(5deg);opacity:0}}.ide-empty-state.waking-up .empty-foot-left{animation:escape-leg-l 2.5s ease-in-out .6s forwards}.ide-empty-state.waking-up .empty-foot-right{animation:escape-leg-r 2.5s ease-in-out .6s forwards}@keyframes escape-leg-l{0%,5%{transform:rotate(0)}10%{transform:rotate(-15deg)}15%{transform:rotate(10deg)}20%{transform:rotate(-15deg)}25%{transform:rotate(10deg)}30%{transform:rotate(-15deg)}35%{transform:rotate(10deg)}40%{transform:rotate(-15deg)}45%{transform:rotate(10deg)}50%{transform:rotate(-15deg)}55%{transform:rotate(10deg)}60%{transform:rotate(-15deg)}70%{transform:rotate(8deg)}to{transform:rotate(0)}}@keyframes escape-leg-r{0%,5%{transform:rotate(0)}10%{transform:rotate(10deg)}15%{transform:rotate(-15deg)}20%{transform:rotate(10deg)}25%{transform:rotate(-15deg)}30%{transform:rotate(10deg)}35%{transform:rotate(-15deg)}40%{transform:rotate(10deg)}45%{transform:rotate(-15deg)}50%{transform:rotate(10deg)}55%{transform:rotate(-15deg)}60%{transform:rotate(10deg)}70%{transform:rotate(-8deg)}to{transform:rotate(0)}}.ide-empty-state.waking-up .empty-antenna{animation:escape-antenna 2.5s ease-in-out .6s forwards}@keyframes escape-antenna{0%,5%{transform:rotate(0)}10%{transform:rotate(3deg)}15%{transform:rotate(-3deg)}20%{transform:rotate(3deg)}25%{transform:rotate(-3deg)}30%{transform:rotate(3deg)}35%{transform:rotate(-3deg)}40%{transform:rotate(3deg)}45%{transform:rotate(-3deg)}50%{transform:rotate(3deg)}55%{transform:rotate(-3deg)}60%{transform:rotate(2deg)}to{transform:rotate(0)}}.ide-empty-state.waking-up .ide-empty-title{animation:content-fade-up .5s ease-out .5s forwards}.ide-empty-state.waking-up .ide-empty-text{animation:content-fade-up .5s ease-out .6s forwards}.ide-empty-state.waking-up .ide-history{animation:content-fade-up .5s ease-out .7s forwards}.ide-empty-state.waking-up .ide-empty-btn{animation:content-fade-up .4s ease-out .5s forwards}@keyframes content-fade-up{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(15px)}}.ide-empty-state.waking-up .ide-empty-robot svg{animation:none}.loading-robot-svg .thinking-blush-l,.loading-robot-svg .thinking-blush-r{opacity:0!important}.ide-editor-mount{flex:1;overflow:hidden;position:relative;background:var(--bg-primary)}.ide-editor-mount .cm-editor{height:100%;font-size:13px;background:transparent}.ide-editor-mount .cm-scroller{overflow:auto;-webkit-overflow-scrolling:touch}.ide-editor-mount .cm-gutters{border-right:1px solid var(--border)}.ide-bottom-bar{flex-shrink:0;border-top:none;box-shadow:0 -1px #ffffff0a;background:var(--bg-primary);padding:var(--space-2) var(--space-3) calc(var(--space-2) + var(--safe-bottom));display:flex;gap:var(--space-2);align-items:center}.ide-action-btn{padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);border:1px solid var(--border);background:var(--bg-tertiary);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-secondary);cursor:pointer;font-family:inherit;transition:background var(--duration-normal),transform var(--duration-normal);white-space:nowrap}.ide-action-btn:active{transform:scale(.95);background:var(--border)}.ide-action-btn--primary{background:var(--accent);color:#fff;border-color:transparent}.ide-action-btn--primary:active{background:var(--accent)}.ide-empty-state{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;text-align:center;padding:64px 20px 20px;z-index:5;background:var(--bg-primary);overflow-y:auto;-webkit-overflow-scrolling:touch}.ide-empty-state.hidden{display:none}.ide-empty-robot{margin-top:auto;margin-bottom:24px;opacity:.8;filter:drop-shadow(0 0 20px rgba(123,143,242,.08));animation:float 3s ease-in-out infinite}.ide-empty-title{font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--text-primary);margin:0 0 var(--space-2)}.ide-empty-text{font-size:14px;color:var(--text-muted);line-height:var(--leading-normal);margin:0 0 var(--space-6)}.ide-empty-btn{padding:10px var(--space-6);background:var(--accent);color:#fff;border:none;border-radius:var(--radius-md);font-size:14px;font-weight:var(--font-medium);cursor:pointer;font-family:inherit;transition:transform var(--duration-normal);flex-shrink:0;margin-top:auto;margin-bottom:20px}.ide-empty-btn:active{transform:scale(.95)}.ide-history{width:100%;max-height:320px;overflow-y:auto;border-top:1px solid rgba(255,255,255,.06);margin:12px 0 4px;display:flex;flex-direction:column;gap:6px;padding:0 4px 8px}.ide-history:empty{display:none}.ide-history__title{font-size:12px;font-weight:600;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px;margin:0 0 4px 2px}.ide-history__card{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;transition:background var(--duration-normal),border-color var(--duration-normal),transform var(--duration-fast);-webkit-tap-highlight-color:transparent}.ide-history__card:active{background:var(--bg-tertiary);border-color:var(--accent);transform:scale(.97)}.ide-history__emoji{font-size:22px;width:32px;text-align:center;flex-shrink:0;line-height:1}.ide-history__info{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.ide-history__name{font-size:13px;font-weight:600;color:var(--text-primary);line-height:1.4}.ide-history__time{font-size:11px;color:var(--text-tertiary)}.edit-in-ide-btn{padding:8px 16px;border-radius:var(--radius-full);border:1px solid var(--accent);background:transparent;color:var(--accent);font-size:13px;font-weight:500;cursor:pointer;font-family:inherit;transition:background .15s,transform .15s}.edit-in-ide-btn:active{background:var(--accent);color:#fff;transform:scale(.95)}.hidden{display:none!important}@media(max-width:480px){.hero__title{font-size:40px}.hero__pixel-robot{font-size:56px}.tab{font-size:12px;padding:10px 8px}.game-frame{height:calc(100vh - var(--header-height) - 10px);min-height:250px}.catalog-grid{grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:10px}.catalog-card{padding:12px 6px}.catalog-card-emoji{font-size:28px}.catalog-card-name{font-size:11px}}.idea-toast{position:fixed;bottom:calc(80px + var(--tg-safe-bottom, 0px));left:50%;transform:translate(-50%) translateY(20px);background:var(--bg-elevated);color:var(--text-primary);padding:10px 20px;border-radius:var(--radius-full);font-size:14px;font-weight:500;box-shadow:var(--shadow-md);opacity:0;pointer-events:none;transition:opacity .3s ease,transform .3s ease;z-index:10000;white-space:nowrap}.idea-toast--visible{opacity:1;transform:translate(-50%) translateY(0);pointer-events:auto}.share-cta{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);margin:var(--space-3) 0;background:var(--accent);border-radius:var(--radius-md);color:#fff}.share-cta.hidden{display:none}.share-cta__text{margin:0;font-size:13px;font-weight:500;opacity:.95}.share-cta__btn{flex-shrink:0;background:#fff3;color:#fff;border:1px solid rgba(255,255,255,.3);padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:var(--font-semibold);cursor:pointer;white-space:nowrap;transition:background var(--duration-slow)}.share-cta__btn:active{background:#ffffff59}.catalog-loading,.catalog-empty{text-align:center;color:var(--text-secondary);font-size:14px;padding:40px 20px;grid-column:1 / -1}.catalog-card--popular{position:relative}.catalog-card-views{font-size:11px;color:var(--text-muted);margin-top:2px}.rpg-container{display:flex;flex-direction:column;gap:16px;grid-column:1 / -1;padding:4px 0 20px}.rpg-header{text-align:center;margin-bottom:4px}.rpg-header__title{font-size:22px;font-weight:var(--font-bold);color:var(--accent);line-height:var(--leading-tight)}.rpg-header__subtitle{font-size:13px;color:var(--text-secondary);margin-top:4px}.rpg-slider-section{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);padding:14px 16px 10px}.rpg-slider-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.rpg-slider-label{font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.rpg-slider-value{font-size:20px;font-weight:700;color:var(--accent);min-width:28px;text-align:center}.rpg-slider{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:3px;background:linear-gradient(to right,var(--accent) 0%,var(--accent) var(--fill, 22%),var(--bg-tertiary) var(--fill, 22%),var(--bg-tertiary) 100%);outline:none;cursor:pointer;margin:0}.rpg-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:26px;height:26px;border-radius:50%;background:var(--accent);cursor:pointer;border:3px solid var(--bg-secondary);box-shadow:0 2px 8px #7b8ff266;transition:transform var(--duration-normal) var(--ease-spring)}.rpg-slider::-webkit-slider-thumb:active{transform:scale(1.2)}.rpg-slider::-moz-range-thumb{width:26px;height:26px;border-radius:50%;background:var(--accent);cursor:pointer;border:3px solid var(--bg-secondary);box-shadow:0 2px 8px #7b8ff266}.rpg-slider::-moz-range-track{height:6px;border-radius:3px;background:var(--bg-tertiary)}.rpg-slider-ticks{display:flex;justify-content:space-between;margin-top:6px;font-size:10px;color:var(--text-muted);padding:0 2px}.rpg-generate-btn{display:flex;align-items:center;justify-content:center;gap:var(--space-2);width:100%;height:52px;border:none;border-radius:var(--radius-md);background:var(--accent-gradient);color:#fff;font-family:inherit;font-size:var(--text-base);font-weight:var(--font-bold);cursor:pointer;transition:transform var(--duration-normal),box-shadow var(--duration-normal);box-shadow:0 4px 15px #7b8ff24d;position:relative;overflow:hidden}.rpg-generate-btn:hover{transform:scale(1.02);box-shadow:0 6px 20px #7b8ff266}.rpg-generate-btn:active{transform:scale(.97)}.rpg-generate-btn__dice{font-size:20px;display:inline-block;transition:transform .4s}.rpg-generate-btn--shaking{animation:rpg-dice-shake .5s ease-out}.rpg-generate-btn--shaking .rpg-generate-btn__dice{animation:rpg-dice-spin .5s ease-out}@keyframes rpg-dice-shake{0%,to{transform:translate(0)}10%{transform:translate(-4px) rotate(-2deg)}20%{transform:translate(4px) rotate(2deg)}30%{transform:translate(-3px) rotate(-1deg)}40%{transform:translate(3px) rotate(1deg)}50%{transform:translate(-2px)}60%{transform:translate(2px)}70%{transform:translate(-1px)}80%{transform:translate(1px)}}@keyframes rpg-dice-spin{0%{transform:rotate(0) scale(1)}25%{transform:rotate(180deg) scale(1.2)}50%{transform:rotate(360deg) scale(1)}75%{transform:rotate(540deg) scale(1.1)}to{transform:rotate(720deg) scale(1)}}.rpg-results{display:flex;flex-direction:column;gap:6px}.rpg-result-row{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);opacity:0;transform:translate(-20px);transition:opacity .3s ease-out,transform .4s cubic-bezier(.34,1.56,.64,1)}.rpg-result-row--visible{opacity:1;transform:translate(0)}.rpg-result-label{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;min-width:72px;flex-shrink:0}.rpg-result-value{font-size:14px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rpg-result--settled{animation:rpg-settle .3s cubic-bezier(.34,1.56,.64,1)}@keyframes rpg-settle{0%{transform:scale(1.12)}50%{transform:scale(.95)}to{transform:scale(1)}}.rpg-prompt-card{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-md);padding:14px 16px;opacity:0;transform:translateY(20px);transition:opacity .4s,transform .5s cubic-bezier(.34,1.56,.64,1)}.rpg-prompt-card--appear{opacity:1;transform:translateY(0)}.rpg-prompt-card__title{font-size:10px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:8px}.rpg-prompt-card__text{font-size:13px;line-height:1.6;color:var(--text-secondary);word-break:break-word}.rpg-actions{display:flex;gap:10px;opacity:0;transform:translateY(10px);transition:opacity .3s .1s,transform .4s .1s cubic-bezier(.34,1.56,.64,1)}.rpg-actions--appear{opacity:1;transform:translateY(0)}.rpg-actions__create{flex:1;height:48px;border:none;border-radius:var(--radius-md);background:var(--accent);color:#fff;font-family:inherit;font-size:15px;font-weight:var(--font-bold);cursor:pointer;transition:transform var(--duration-normal),box-shadow var(--duration-normal);box-shadow:0 4px 12px #7b8ff240}.rpg-actions__create:hover{transform:scale(1.02)}.rpg-actions__create:active{transform:scale(.97)}.rpg-actions__copy{height:48px;padding:0 var(--space-5);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-secondary);color:var(--text-secondary);font-family:inherit;font-size:var(--text-sm);font-weight:var(--font-semibold);cursor:pointer;transition:transform var(--duration-normal),border-color var(--duration-normal),color var(--duration-normal)}.rpg-actions__copy:hover{border-color:var(--accent);color:var(--accent)}.rpg-actions__copy:active{transform:scale(.95)}.rpg-hidden{display:none!important}.rpg-popup{position:fixed;inset:0;z-index:10000;display:flex;align-items:flex-end;justify-content:center}.rpg-popup.hidden{display:none}.rpg-popup-backdrop{position:absolute;inset:0;background:#0009;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.rpg-popup-content{position:relative;width:100%;max-width:420px;max-height:85vh;overflow-y:auto;-webkit-overflow-scrolling:touch;background:var(--bg-secondary);border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:var(--space-5) var(--space-4) var(--space-6);animation:slideUp var(--duration-slow) var(--ease-out)}.rpg-popup-close{position:absolute;top:12px;right:16px;background:none;border:none;color:var(--text-muted);font-size:24px;cursor:pointer;padding:4px;z-index:1}.purchase-modal{position:fixed;inset:0;z-index:10000;display:flex;align-items:flex-end;justify-content:center}.purchase-modal.hidden{display:none}.purchase-modal-backdrop{position:absolute;inset:0;background:#0009;backdrop-filter:blur(4px)}.purchase-modal-content{position:relative;width:100%;max-width:420px;background:var(--bg-secondary);border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:var(--space-6) var(--space-5) var(--space-8);animation:slideUpSimple var(--duration-slow) var(--ease-out)}@keyframes slideUpSimple{0%{transform:translateY(100%)}to{transform:translateY(0)}}.purchase-modal-close{position:absolute;top:12px;right:16px;background:none;border:none;color:var(--text-muted);font-size:24px;cursor:pointer;padding:4px}.purchase-modal-title{font-size:var(--text-lg);font-weight:var(--font-bold);color:var(--text-primary);margin:0 0 var(--space-1)}.purchase-modal-subtitle{font-size:var(--text-sm);color:var(--text-secondary);margin:0 0 var(--space-4)}.purchase-modal-options{display:flex;flex-direction:column;gap:10px}.purchase-option{display:flex;align-items:center;gap:var(--space-3);padding:14px var(--space-4);border-radius:14px;border:1px solid var(--border);background:var(--bg-tertiary);cursor:pointer;transition:transform var(--duration-normal),background var(--duration-normal)}.purchase-option:active{transform:scale(.97);background:#7b8ff21a}.purchase-option-emoji{font-size:24px;flex-shrink:0}.purchase-option-label{font-size:15px;font-weight:var(--font-semibold);color:var(--text-primary);flex:1}.purchase-option-desc{font-size:var(--text-xs);color:var(--text-secondary);white-space:nowrap}.purchase-option--premium{border-color:#a855f766;background:linear-gradient(135deg,#a855f714,#7b8ff214)}.purchase-option--ad{border-color:#22c55e4d}.profile-modal{position:fixed;inset:0;z-index:10000;display:flex;align-items:flex-end;justify-content:center}.profile-modal.hidden{display:none}.profile-modal-backdrop{position:absolute;inset:0;background:#000000b3;backdrop-filter:blur(4px);animation:fadeIn .2s ease-out}.profile-modal-content{position:relative;width:100%;max-width:480px;max-height:80vh;background:var(--bg-primary);border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:var(--space-6);box-shadow:var(--shadow-lg);animation:slideUpModal .3s cubic-bezier(.34,1.56,.64,1);overflow-y:auto}.profile-modal-close{position:absolute;top:var(--space-4);right:var(--space-4);background:var(--bg-secondary);color:var(--text-primary);border:none;border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-size:var(--text-2xl);line-height:1;cursor:pointer;transition:all .2s}.profile-modal-close:hover{background:var(--bg-tertiary);transform:scale(1.1)}.profile-modal-title{font-size:var(--text-xl);font-weight:700;margin:0 0 var(--space-6) 0;color:var(--text-primary)}.profile-card{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4);background:var(--bg-secondary);border-radius:var(--radius-lg);margin-bottom:var(--space-6)}.profile-avatar{width:60px;height:60px;border-radius:50%;background:linear-gradient(135deg,#7b8ff2,#a855f7);display:flex;align-items:center;justify-content:center;font-size:var(--text-2xl);font-weight:700;color:#fff;border:2px solid var(--primary-purple);overflow:hidden;flex-shrink:0}.profile-avatar img{width:100%;height:100%;object-fit:cover}.profile-info{flex:1;min-width:0}.profile-name{font-size:var(--text-lg);font-weight:600;color:var(--text-primary);margin-bottom:var(--space-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-username{font-size:var(--text-sm);color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-details{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-6)}.profile-detail-row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3);background:var(--bg-secondary);border-radius:var(--radius-md)}.profile-detail-label{font-size:var(--text-sm);color:var(--text-muted);font-weight:500}.profile-detail-value{font-size:var(--text-sm);color:var(--text-primary);font-weight:600}.profile-detail-mono{font-family:SF Mono,Menlo,Consolas,Monaco,monospace;font-size:var(--text-xs);color:var(--text-muted);letter-spacing:.5px;background:var(--bg-tertiary);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm)}.profile-gdpr{display:flex;flex-direction:column;gap:var(--space-3)}.profile-gdpr-btn{width:100%;padding:var(--space-3);border:none;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:all .2s;background:var(--bg-secondary);color:var(--text-primary)}.profile-gdpr-btn:hover{background:var(--bg-tertiary);transform:translateY(-1px)}.profile-gdpr-btn-danger{background:#ef44441a;color:#ef4444}.profile-gdpr-btn-danger:hover{background:#ef444433}.quality-picker{position:fixed;inset:0;z-index:10000;display:flex;align-items:flex-end;justify-content:center}.quality-picker.hidden{display:none}.quality-picker-backdrop{position:absolute;inset:0;background:#0009;backdrop-filter:blur(4px)}.quality-picker-content{position:relative;width:100%;max-width:420px;background:var(--bg-secondary);border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:var(--space-6) var(--space-5) var(--space-8);animation:slideUp var(--duration-slow) var(--ease-out)}.quality-picker-close{position:absolute;top:12px;right:16px;background:none;border:none;color:var(--text-muted);font-size:24px;cursor:pointer;padding:4px}.quality-picker-title{font-size:var(--text-lg);font-weight:var(--font-bold);color:var(--text-primary);margin:0 0 var(--space-1)}.quality-picker-subtitle{font-size:var(--text-sm);color:var(--text-secondary);margin:0 0 var(--space-4)}.quality-picker-options{display:flex;flex-direction:column;gap:10px}.quality-option{display:flex;align-items:center;gap:var(--space-3);padding:14px var(--space-4);border-radius:14px;border:1px solid var(--border);background:var(--bg-tertiary);cursor:pointer;transition:transform var(--duration-normal),background var(--duration-normal)}.quality-option:active{transform:scale(.97);background:#7b8ff21a}.quality-option:disabled{opacity:.5;pointer-events:none}.quality-option-emoji{font-size:22px;flex-shrink:0;width:36px;text-align:center}.quality-option-text{flex:1;display:flex;flex-direction:column;gap:2px}.quality-option-label{font-size:15px;font-weight:var(--font-semibold);color:var(--text-primary)}.quality-option-desc{font-size:var(--text-xs);color:var(--text-secondary)}.quality-option-price{font-size:11px;font-weight:600;color:var(--text-muted);white-space:nowrap;padding:3px 8px;border-radius:8px;background:#ffffff0f}.quality-option--premium{border-color:#a855f766;background:linear-gradient(135deg,#a855f714,#7b8ff214)}.quality-option--premium .quality-option-price{background:linear-gradient(135deg,#a855f733,#7b8ff233);color:var(--color-premium)}.quality-option--standard{border-color:#3b82f64d}.quality-option--standard .quality-option-price{color:var(--color-info)}.quality-option--basic{border-color:#22c55e4d}.quality-option--basic .quality-option-price{color:var(--color-basic)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}*:focus{outline:none}*:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button:focus-visible,.mode-pill:focus-visible,.catalog-tab:focus-visible,.tab:focus-visible{outline:2px solid var(--accent);outline-offset:2px;box-shadow:0 0 0 4px #7b8ff226}.input-bar__textarea:focus-visible{outline:none}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.loading-ring{animation:spin 2.5s linear infinite!important}.loading-ring__progress{animation:ring-fill 45s ease-in-out forwards!important}.code-particle{display:none!important}}.consent-overlay{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:#000000b3;backdrop-filter:blur(8px);padding:16px}.consent-overlay.hidden{display:none}.consent-content{background:#fff;border-radius:20px;padding:32px 24px;max-width:360px;width:100%;text-align:center;box-shadow:0 8px 32px #0000004d}.consent-title{font-size:24px;font-weight:700;margin:0 0 16px;color:#1a1a2e}.consent-age-question{font-size:16px;color:#555;margin:0 0 12px}.consent-age-buttons{display:flex;gap:8px;justify-content:center;margin-bottom:20px}.consent-age-btn{flex:1;padding:10px 8px;border-radius:12px;border:2px solid #ddd;background:transparent;color:#1a1a2e;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.consent-age-btn:hover,.consent-age-btn.selected{border-color:#7c5ce0;background:#7c5ce01a;color:#7c5ce0}.consent-notice{font-size:13px;color:#777;line-height:1.5;margin:0 0 20px}.consent-agree-btn{width:100%;padding:14px;border-radius:14px;border:none;background:#7c5ce0;color:#fff;font-size:16px;font-weight:700;cursor:pointer;transition:opacity .2s}.consent-agree-btn:disabled{opacity:.4;cursor:not-allowed}.consent-links{margin-top:12px;text-align:center;font-size:12px}.consent-links a{color:#7c5ce0;text-decoration:underline}.consent-links-sep{color:#999;margin:0 6px}
