@import"https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;500;600;700;800;900&display=swap";:root{font-family:Inter,Segoe UI,Roboto,system-ui,-apple-system,sans-serif;line-height:1.6;font-weight:400;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;padding:0;min-height:100vh;color:#333}button{font-family:inherit}:root{--color-white: #ffffff;--color-lavender: #e5e6e9;--color-white-smoke: #efeff3;--color-light-gray: #cccccc;--color-light-gray-rgb: 204, 204, 204;--color-light-gray-1: #d0d0d0;--color-gainsboro: #d9d9d9;--color-black: #000000;--color-black-1: #0d0d0d;--color-black-2: #0d0d11;--color-black-3: #101010;--color-black-4: #121212;--color-black-5: #101915;--color-black-6: #171717;--color-dark-gray: #191919;--color-dark-gray-1: #191a21;--color-dark-gray-2: #132c21;--color-dark-gray-3: #1e1e1e;--color-dark-gray-4: #1f1f1f;--color-dark-gray-5: #222222;--color-dark-gray-6: #212121;--color-dark-gray-7: #292929;--color-dark-gray-8: #2e2e2e;--color-dark-gray-9: #9596ae;--color-char-coal: #515151;--color-dim-gray: #555555;--color-dim-gray-1: #55556f;--color-gray: #777779;--color-light-slate-gray: #838396;--color-light-slate-gray-1: #939393;--color-slate-gray: #666786;--color-slate-gray-1: #76768b;--color-royal-blue: #5a57f2;--color-steel-blue: #295db1;--color-steel-blue-1: #337ab7;--color-medium-spring-green: #1ff08c;--color-bg-primary: #121212;--color-bg-secondary: #171717;--color-bg-tertiary: #1f1f1f;--color-bg-quaternary: #101010;--color-primary: #1ff08c;--color-primary-dark: #0d0d0d;--color-bg-accent: #295db1;--color-bg-light: #efeff3;--color-bg-darker: #0d0d0d;--color-text-primary: #d0d0d0;--color-text-secondary: #838396;--color-text-muted: #515151;--color-text-light: #d9d9d9;--color-text-dark: #333;--color-border-primary: #333;--color-border-secondary: #3a3a3a;--color-border-dark: #333;--color-border-light: #d9d9d9;--color-border-muted: #222222;--color-accent-primary: #5a57f2;--color-accent-rgb: 90, 87, 242;--color-danger: linear-gradient(135deg, #e74c3c 0%, #c0392b 100%);--color-warning: linear-gradient(135deg, #f39c12 0%, #e67e22 100%);--color-success: #1ff08c;--color-shadow-dark: rgba(0, 0, 0, .2);--color-shadow-darker: rgba(0, 0, 0, .3);--color-bg-dark: #191919;--color-border-input: rgba(217, 217, 217, .08);--color-skeleton-mid: #2a2a2a;--btn-plain-color: var(--color-lavender);--btn-plain-border: var(--color-dim-gray);--btn-plain-hover-bg: var(--color-dim-gray);--btn-color: #ffffff;--btn-tab-bg: #101010;--btn-tab-border: #292929;--btn-tab-color: #d0d0d0;--btn-tab-hover-bg: #2d2d2d;--btn-tab-hover-border: #484848;--btn-tab-active-color: #1ff08c;--btn-tab-active-bg: #101915;--btn-tab-active-border: #132c21;--btn-tab-active-hover-bg: #12231b;--btn-tab-active-hover-border: #14422b;--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 20px;--space-2xl: 24px;--space-3xl: 28px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 10px;--radius-2xl: 12px;--radius-3xl: 16px;--radius-full: 32px;--radius-circle: 50%;--font-family: "Open Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-family-mono: "Courier New", monospace;--font-family-serif: "Times New Roman", serif;--font-size-xs: .75rem;--font-size-sm: .85rem;--font-size-base: .95rem;--font-size-lg: 1rem;--font-size-xl: 1.1rem;--font-size-2xl: 1.25rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-weight-extra-bold: 900;--transition-fast: .2s ease;--transition-smooth: .3s cubic-bezier(.4, 0, .2, 1);--transition-normal: .3s ease;--transition-slow: .5s ease;--shadow-sm: 0 2px 6px var(--color-shadow-dark);--shadow-md: 0 4px 15px var(--color-shadow-darker);--shadow-lg: 0 6px 20px var(--color-shadow-darker);--shadow-danger: 0 4px 15px rgba(231, 76, 60, .3);--shadow-danger-hover: 0 6px 20px rgba(231, 76, 60, .5);--shadow-warning: 0 4px 15px rgba(243, 156, 18, .3);--shadow-warning-hover: 0 6px 20px rgba(243, 156, 18, .5);--shadow-accent: 0 4px 15px rgba(var(--color-accent-rgb), .4);--input-padding: var(--space-md) var(--space-lg);--input-padding-sm: var(--space-sm) var(--space-md);--input-padding-lg: var(--space-lg) var(--space-2xl);--input-border-width: 2px;--input-border-radius: var(--radius-full);--input-focus-outline-width: 3px;--layout-gap-sm: 8px;--layout-gap-md: 12px;--layout-gap-lg: 16px;--layout-gap-xl: 20px;--dropdown-padding: var(--space-xl);--dropdown-border-radius: var(--radius-3xl);--dropdown-shadow: var(--shadow-md)}[data-theme=light]{--color-bg-primary: #f5f5f7;--color-bg-secondary: #ffffff;--color-bg-tertiary: #ececf0;--color-bg-quaternary: #e8e8ec;--color-bg-darker: #dcdce4;--color-bg-dark: #ececf0;--color-bg-light: #efeff3;--color-primary-dark: #f0f0f4;--color-text-primary: #1a1a1a;--color-text-secondary: #55556f;--color-text-muted: #777790;--color-text-light: #333333;--color-text-dark: #111111;--color-border-primary: #c8c8d4;--color-border-secondary: #c0c0cc;--color-border-dark: #c8c8d4;--color-border-light: #d9d9d9;--color-border-muted: #e0e0e8;--color-border-input: rgba(0, 0, 0, .1);--color-shadow-dark: rgba(0, 0, 0, .08);--color-shadow-darker: rgba(0, 0, 0, .12);--color-skeleton-mid: #d8d8e0;--btn-plain-color: #333344;--btn-plain-border: #a0a0b0;--btn-plain-hover-bg: #d8d8e4;--btn-color: #111111;--btn-tab-bg: #f0f0f4;--btn-tab-border: #d0d0d8;--btn-tab-color: #1a1a1a;--btn-tab-hover-bg: #e4e4ec;--btn-tab-hover-border: #b8b8c8;--btn-tab-active-color: #0d7a49;--btn-tab-active-bg: #e8f5ef;--btn-tab-active-border: #b8e4cc;--btn-tab-active-hover-bg: #dcf0e7;--btn-tab-active-hover-border: #a8dcbc}*{box-sizing:border-box;margin:0;padding:0;font-family:var(--font-family)}html,body{width:100%;background:var(--color-bg-primary);font-family:var(--font-family)}#root{width:100%;min-height:100vh;background:var(--color-bg-primary)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.scrollbar-dark{scrollbar-width:thin;scrollbar-color:var(--color-border-secondary) var(--color-bg-secondary)}.scrollbar-dark::-webkit-scrollbar{width:6px}.scrollbar-dark::-webkit-scrollbar-track{background:var(--color-bg-secondary);border-radius:var(--radius-xl)}.scrollbar-dark::-webkit-scrollbar-thumb{background:var(--color-border-secondary);border-radius:var(--radius-xl);border:2px solid var(--color-bg-secondary)}.scrollbar-dark::-webkit-scrollbar-thumb:hover{background:var(--color-border-secondary)}.scrollbar-light{scrollbar-width:thin;scrollbar-color:var(--color-text-dark) var(--color-border-light)}.scrollbar-light::-webkit-scrollbar{width:5px}.scrollbar-light::-webkit-scrollbar-track{background:var(--color-border-light);border-radius:var(--radius-xl)}.scrollbar-light::-webkit-scrollbar-thumb{background:var(--color-text-dark);border-radius:var(--radius-xl)}.text-input{width:100%;padding:var(--input-padding);border-radius:var(--radius-lg);font-size:var(--font-size-lg);transition:all var(--transition-normal);outline:none;background:var(--color-bg-tertiary);color:var(--color-text-primary);border:none}.text-input::placeholder{color:var(--color-text-muted)}.range-input{width:100%;height:6px;border-radius:var(--radius-md);background:var(--color-border-primary);outline:none;appearance:none}.range-input::-webkit-slider-thumb{appearance:none;width:18px;height:18px;border-radius:var(--radius-circle);background:var(--color-bg-tertiary);cursor:pointer;box-shadow:var(--shadow-sm)}.range-input::-moz-range-thumb{width:18px;height:18px;border-radius:var(--radius-circle);background:var(--color-bg-tertiary);cursor:pointer;border:none;box-shadow:var(--shadow-sm)}.color-picker-group{display:flex;gap:var(--layout-gap-md);align-items:center}.color-input{width:60px;height:42px;border:var(--input-border-width) solid var(--color-border-primary);border-radius:var(--radius-lg);cursor:pointer;outline:none;padding:2px}.color-input::-webkit-color-swatch-wrapper{padding:0}.color-input::-webkit-color-swatch{border:none;border-radius:var(--radius-md)}.color-text-input{flex:1;padding:var(--input-padding-sm);border:none;border-radius:var(--radius-lg);font-size:var(--font-size-base);font-family:var(--font-family-mono);outline:none;transition:all var(--transition-normal);background:var(--color-bg-tertiary);color:var(--color-text-primary);padding:12px}.w-100{width:100%}.meme-editor-container{width:100%;height:100vh;height:100dvh}.meme-editor-layout{display:flex;width:100%;height:100vh;height:100dvh;position:relative}.home-page{text-align:center;padding:clamp(24px,8vh,80px) clamp(16px,4vw,40px) calc(clamp(24px,6vh,48px) + env(safe-area-inset-bottom,0px));max-width:1100px;margin:0 auto}.home-logo{height:80px;margin-bottom:var(--space-xs)}.home-subtitle{color:var(--color-text-secondary);font-size:clamp(.9rem,2.5vw,1rem);margin-bottom:var(--space-xl)}.generate-error-message{margin-top:var(--space-md)}.canvas-area{position:relative;padding:0;margin:0;overflow:hidden;width:calc(100% - 360px)}.sidebar{width:360px;background:var(--color-bg-secondary);padding:var(--space-2xl);overflow-y:auto;height:100vh;scrollbar-width:0}.sidebar-toggle{display:none}.sidebar-header{display:flex;align-items:center;justify-content:center;position:relative;margin-bottom:0}.sidebar-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-extra-bold);color:var(--color-text-primary);text-align:center}.theme-toggle-btn{position:absolute;right:0;background:none;border:1px solid var(--color-border-secondary);border-radius:var(--radius-full);color:var(--color-text-secondary);cursor:pointer;width:32px;height:32px;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.theme-toggle-btn:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary);border-color:var(--color-border-primary)}.theme-toggle-fixed{position:fixed;top:16px;right:16px;z-index:100}.sidebar-subtitle{font-size:var(--font-size-sm);color:var(--color-text-secondary);text-align:center;margin-bottom:var(--space-md)}.sidebar-info{font-size:var(--font-size-sm);color:var(--color-text-secondary);text-align:center;padding:var(--space-md);background:var(--color-primary);border-radius:var(--radius-lg);margin-bottom:var(--space-md)}.selected-indicator{font-size:var(--font-size-sm);color:#1ff08c;background:#0f4d2c;padding:var(--space-md);border-radius:var(--radius-lg);text-align:center;font-weight:var(--btn-font-weight);margin-bottom:var(--space-lg);border:2px solid #1ff08c}.sidebar-section{padding-bottom:var(--space-2xl);margin-bottom:var(--space-2xl);border-bottom:1px solid var(--color-dark-gray-7)}.sidebar-section:last-child{border-bottom:none;padding-bottom:0}.section-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-dark);margin:0}.space-xs{margin-bottom:var(--space-xs)}.space-sm{margin-bottom:var(--space-sm)}.space-md{margin-bottom:var(--space-md)}.space-lg{margin-bottom:var(--space-lg)}.space-xl{margin-bottom:var(--space-xl)}.space-2xl{margin-bottom:var(--space-2xl)}.btn{border-width:1px;border-style:solid;border-radius:var(--radius-lg);display:inline-block;font-weight:400;cursor:pointer;white-space:nowrap;transition:all .25s;color:var(--btn-color)}.btn.btn-primary{background-color:var(--color-light-gray);color:#121212}.btn.btn-primary:hover{background-color:var(--color-lavender)}.btn.btn-plain{background-color:transparent;color:var(--btn-plain-color);border:1px solid var(--btn-plain-border)}.btn.btn-plain:hover{background-color:var(--btn-plain-hover-bg)}.btn.btn-plain.active{background-color:rgba(var(--color-light-gray-rgb),.2)}.btn.btn-plain.active:hover{background-color:var(--btn-plain-hover-bg)}.btn.btn-tab{background-color:var(--btn-tab-bg);border:1px solid var(--btn-tab-border);color:var(--btn-tab-color)}.btn.btn-tab:hover{background-color:var(--btn-tab-hover-bg);border-color:var(--btn-tab-hover-border)}.btn.btn-tab.active{color:var(--btn-tab-active-color);background-color:var(--btn-tab-active-bg);border-color:var(--btn-tab-active-border)}.btn.btn-tab.active:hover{background-color:var(--btn-tab-active-hover-bg);border-color:var(--btn-tab-active-hover-border)}.btn:disabled{cursor:not-allowed}.btn.btn-lg{padding:1rem 2rem;font-size:20px}.btn.btn-md{padding:.75rem 1.5rem;font-size:16px}.btn.btn-sm{padding:.5rem 1rem;font-size:14px}.btn.btn-xs{padding:.25rem .5rem;font-size:12px}.btn.btn-full{width:100%}.button-group{display:flex;flex-direction:column;gap:var(--layout-gap-md)}.toggle-group{display:flex;gap:var(--layout-gap-sm)}.btn-toggle{flex:1;background:#fff;border:var(--input-border-width) solid var(--color-border-light);border-radius:var(--radius-lg);color:var(--color-text-dark)}.btn-toggle:hover:not(.active):not(:disabled){border-color:var(--color-primary-dark);background:var(--color-bg-light)}.btn-toggle.active{background:var(--color-primary-dark);color:var(--color-text-light);border-color:var(--color-primary-dark)}.btn-toggle.toggle-icon{padding:var(--space-md);font-size:var(--font-size-xl);font-family:var(--font-family-serif)}.file-input{display:none}.file-input+label{text-align:center}.input-group{display:flex;flex-direction:column;gap:var(--layout-gap-sm)}.input-label{font-size:var(--font-size-sm);font-weight:var(--btn-font-weight);color:var(--color-text-muted);cursor:pointer;margin:0}.input-hint{font-size:var(--font-size-xs);color:var(--color-text-light);text-align:center;font-style:italic}.stickers-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:80px;gap:var(--layout-gap-md);padding:var(--space-xs) 0;max-height:220px;overflow-y:auto;padding-right:4px;scrollbar-width:none}.sticker-button{height:80px;border:1px solid var(--color-border-dark);border-radius:var(--radius-lg);background:var(--color-bg-dark);cursor:pointer;padding:var(--space-md);transition:all .15s;overflow:hidden;display:flex;align-items:center;justify-content:center}.sticker-button:hover{border-color:var(--color-dim-gray)}.sticker-button:disabled{cursor:not-allowed}.sticker-thumbnail{width:100%;height:100%;object-fit:contain}.balloons-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--layout-gap-md)}.font-select{width:100%;padding:var(--space-md) var(--space-lg);font-size:var(--font-size-md);border:1px solid var(--color-dim-gray);border-radius:var(--radius-lg);background:transparent;cursor:pointer;transition:var(--btn-transition);color:var(--color-text-light)}.font-select:focus{outline:none}.template-selector{margin-top:var(--space-lg);border:1px solid var(--color-border-muted);border-radius:var(--radius-lg);padding:var(--space-3xl);width:100%;box-sizing:border-box}.template-selector p{margin:0 0 var(--space-lg) 0;font-size:var(--font-size-md);font-weight:var(--btn-font-weight);color:var(--color-border-light)}.template-selector-content{margin-top:0}.template-search{width:100%;padding:var(--space-md) var(--space-lg);margin-bottom:var(--space-3xl);border-radius:var(--radius-lg);border:1px solid var(--color-border-muted);font-size:var(--font-size-base);font-family:inherit;font-weight:var(--font-weight-medium);color:var(--color-text-light);background-color:var(--color-bg-primary);transition:var(--transition-smooth)}.template-search:focus{outline:none;border-color:#525252}.template-search::placeholder{color:var(--color-text-light);font-weight:var(--font-weight-normal)}.category-filter{display:flex;gap:var(--layout-gap-md);justify-content:flex-start;margin-bottom:var(--space-3xl);flex-wrap:wrap;padding:var(--space-md);background:var(--color-bg-primary);border-radius:var(--radius-lg);border:1px solid var(--color-border-muted)}.template-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:minmax(150px,auto);gap:var(--layout-gap-md);margin:0 auto;max-height:420px;overflow-y:auto;overflow-x:hidden;scrollbar-width:none}.template-grid::-webkit-scrollbar{width:4px}.template-grid::-webkit-scrollbar-track{background:var(--color-bg-dark);border-radius:var(--radius-xl)}.template-grid::-webkit-scrollbar-thumb{background:var(--color-border-dark);border-radius:var(--radius-xl);border:2px solid var(--color-bg-dark)}.template-grid::-webkit-scrollbar-thumb:hover{background:var(--color-border-dark)}.template-grid>*{overflow:hidden;border-radius:var(--radius-sm);min-width:0;min-height:0}.template-item{position:relative;overflow:hidden;border-radius:var(--radius-sm);line-height:0}.skeleton-loader{position:absolute;inset:0;background:linear-gradient(90deg,var(--color-bg-darker) 25%,var(--color-skeleton-mid) 50%,var(--color-bg-darker) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;z-index:1}.template-image{width:100%;aspect-ratio:1;object-fit:cover;border-radius:var(--radius-sm);cursor:pointer;transition:transform .2s ease,box-shadow var(--transition-fast),opacity var(--transition-normal);opacity:0;position:relative;z-index:2}.template-image.loaded,.template-image-button.loaded .template-image{opacity:1}.template-image-button.loaded .template-image:hover,.template-image.loaded:hover{transform:scale(1.02);box-shadow:var(--shadow-md)}.template-empty{grid-column:1 / -1;text-align:center;padding:var(--space-lg);color:var(--color-text-light)}.separator{display:flex;align-items:center;margin:var(--space-3xl) 0;gap:var(--layout-gap-md);color:var(--color-text-muted);font-size:var(--font-size-sm)}.separator:before,.separator:after{content:"";flex:1;height:1px;background:var(--color-border-muted)}.generated-image-container{text-align:center;margin:0 auto;padding-bottom:var(--space-lg)}.generated-image-container img{max-height:460px;max-width:100%;height:auto;object-fit:contain;border-radius:var(--radius-lg)}.spinner{width:100%;text-align:center}.spinner>span{display:inline-block;width:24px;height:24px;border:3px solid #eee;border-top:3px solid #888;border-radius:50%;animation:spin 1s linear infinite;margin:12px auto}.icon-text{display:inline-block}.icon-text>svg{margin-right:var(--space-sm);position:relative;top:2px}.floating-text-toolbar{position:absolute;z-index:20;display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-sm);background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);transform:translate(-50%);white-space:nowrap;-webkit-user-select:none;user-select:none}.floating-toolbar-divider{width:1px;height:22px;background:var(--color-border-primary);flex-shrink:0}.floating-toolbar-font-select{max-width:132px;padding:var(--space-xs) var(--space-sm);font-size:var(--font-size-sm);border:none;border-radius:var(--radius-md);background:transparent;color:var(--color-text-primary);cursor:pointer}.floating-toolbar-font-select:focus{outline:none;background:var(--btn-plain-hover-bg)}.floating-toolbar-font-size{display:flex;align-items:center;gap:2px}.floating-toolbar-font-size-input{width:34px;padding:0;border:none;background:transparent;color:var(--color-text-primary);font-size:var(--font-size-sm);text-align:center;-moz-appearance:textfield}.floating-toolbar-font-size-input::-webkit-outer-spin-button,.floating-toolbar-font-size-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.floating-toolbar-font-size-input:focus{outline:none}.floating-toolbar-icon-btn{display:flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:none;border-radius:var(--radius-md);background:transparent;color:var(--color-text-primary);cursor:pointer;transition:background var(--transition-fast);flex-shrink:0}.floating-toolbar-icon-btn:hover{background:var(--btn-plain-hover-bg)}.floating-toolbar-icon-btn.active{color:var(--color-primary);background:rgba(var(--color-light-gray-rgb),.2)}.floating-toolbar-icon-btn.floating-toolbar-delete:hover{color:#e74c3c;background:#e74c3c26}.floating-toolbar-color-swatch{position:relative;display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--radius-md);cursor:pointer;flex-shrink:0}.floating-toolbar-color-swatch:hover{background:var(--btn-plain-hover-bg)}.floating-toolbar-color-swatch>span{width:18px;height:18px;border-radius:var(--radius-circle);border:1px solid var(--color-border-primary);pointer-events:none}.floating-toolbar-color-swatch>input[type=color]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;border:none;padding:0}.centered-modal{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#000000e6;display:flex;justify-content:center;align-items:center;z-index:999}.modal-content{padding:20px;text-align:center;max-width:800px;width:95%;background-color:var(--color-bg-primary);color:var(--color-text-primary);border-radius:16px;font-size:15px}.modal-header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--color-border-muted);padding-bottom:var(--space-lg)}.modal-header .modal-title{margin:0;font-size:1.4rem}.modal-header .modal-close-button{background:none;border:none;font-size:18px;cursor:pointer;color:var(--color-text-primary);padding:0;margin-left:auto;transition:color .2s ease}.modal-header .modal-close-button:hover{color:var(--color-text-secondary)}.modal-subheader{margin-bottom:16px}.modal-subheader .modal-subtitle{text-align:left;font-weight:500}.meme-maker-content{margin:auto;padding-bottom:2rem;text-align:center;max-width:960px;width:100%;background-color:var(--color-bg-primary);color:var(--color-text-primary);border-radius:16px;font-size:15px}.close-btn{position:absolute;top:8px;right:8px;background:none;border:none;font-size:1.5rem;cursor:pointer}.close-button{margin-top:18px;font-size:17px;font-weight:400;background:none;border:none;padding:0;outline:none;cursor:pointer;color:var(--color-text-primary)}.share-form{display:grid;gap:12px}.form-row{display:flex;flex-direction:column;position:relative}.label{font-weight:600;margin-bottom:6px;color:var(--color-text-primary);text-align:left}.input,.select{padding:14px;border:1px solid var(--color-border-input);border-radius:8px;font-size:14px;outline:none;background:var(--color-bg-secondary);color:var(--color-text-primary)}.file-chooser{display:block;padding:6px;border-radius:10px;border:1px solid var(--color-border-input);background:var(--color-bg-secondary)}.thumb{width:100%;max-height:240px;object-fit:contain;border-radius:8px;display:block}.modal-actions{display:flex;gap:var(--layout-gap-md);border-top:1px solid var(--color-border-muted);padding-top:var(--space-lg);margin-top:var(--space-lg);justify-content:flex-end}.generate-loading{margin-top:var(--space-lg);color:var(--color-text-primary);font-weight:var(--font-weight-medium);min-height:clamp(240px,50vh,520px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-lg)}.modal-textarea{width:100%;padding:10px;margin:12px 0;border-radius:8px;font-size:16px;resize:vertical;border:1px solid var(--color-border-input);background-color:var(--color-bg-secondary);color:var(--color-text-primary);box-shadow:none;outline:none}.modal-button{width:100%;border-radius:32px;background:#d9d9d9;border:1px solid #d9d9d9;color:#121212;font-size:17px;font-weight:400;padding:10px 17px;cursor:pointer;transition:all .3s ease}.modal-button:disabled{background:#d9d9d9;color:#888;opacity:.6;cursor:not-allowed}.modal-button:hover:not(:disabled){transform:translateY(-2px)}.link{cursor:pointer;color:#1ff08c!important;text-decoration:none;background:none;border:none;padding:0;margin:0;font:inherit;font-size:15px;display:inline}.link:hover{text-decoration:underline}.link:focus{outline:none}.link:active{transform:none}.error-message{color:#ff6b6b;margin-top:10px;font-weight:500}.tags-input{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:8px;border:1px solid var(--color-border-input);border-radius:8px;background:var(--color-bg-secondary)}.tag{background:var(--color-dark-gray-8);border-radius:8px;padding:4px 8px;display:flex;align-items:center;gap:6px;font-size:13px}.tag button{background:transparent;color:var(--color-text-primary);border:none;cursor:pointer;font-size:14px}.tag-input{flex:0 0 120px;min-width:80px;border:none;outline:none;background:transparent;padding:6px}.tag-input::placeholder{color:#999}.tag-suggestion-list{position:absolute;z-index:10;top:80px;background-color:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:8px;list-style:none;padding:0;max-height:150px;overflow-y:auto;width:100%}.tag-suggestion-list li{margin:0}.tag-suggestion-list button{width:100%;text-align:left;padding:10px 12px;background:transparent;border:none;cursor:pointer;font-size:14px;color:var(--color-text-primary);transition:background .2s}.tag-suggestion-list button:hover{background:var(--color-bg-tertiary)}.tag-loading{display:block;padding:10px 12px;color:#999;font-size:14px}.success-view{text-align:center;padding:16px}.success-view-img{width:100%;border-radius:12px;object-fit:cover;max-height:280px;margin-bottom:16px}.success-view h3{color:var(--color-text-primary);margin-bottom:10;font-weight:700}.success-view p{color:var(--color-text-secondary);margin-bottom:18}.success-view-actions{display:flex;gap:8px;justify-content:center}.upload-progress{width:100%;margin-top:6px}.upload-progress-bar{height:6px;background:#eee;border-radius:6px;overflow:hidden}.upload-progress-fill{height:100%;background:#6c63ff;transition:width .2s ease}.upload-progress-text{font-size:12px;color:#666;margin-top:6px}@media(max-width:1024px){.meme-editor-layout{flex-direction:column}.canvas-area{width:100%;flex:0 0 auto;background:var(--color-bg-primary)}.sidebar{position:fixed;left:0;right:0;bottom:0;z-index:400;width:100%;height:auto;max-height:40dvh;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:var(--space-lg) var(--space-2xl) calc(var(--space-2xl) + env(safe-area-inset-bottom,0px));border-radius:20px 20px 0 0;border-top:1px solid var(--color-border-muted);box-shadow:0 -8px 30px var(--color-shadow-darker);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--space-2xl);align-content:start;transition:transform .35s cubic-bezier(.32,.72,0,1);transform:translateY(0)}.sidebar.sidebar-collapsed{transform:translateY(calc(100% - 100px - env(safe-area-inset-bottom,0px)));overflow-y:hidden}.sidebar-toggle{display:flex;flex-direction:column;align-items:center;gap:2px;width:100%;padding:0 0 var(--space-sm);margin:0 auto var(--space-xs);background:transparent;border:none;cursor:pointer;color:var(--color-text-secondary);font-size:12px}.sidebar-toggle-handle{width:44px;height:4px;border-radius:999px;background:var(--color-border-secondary)}.sidebar-toggle svg{transition:transform .3s ease}.sidebar.sidebar-collapsed .sidebar-toggle svg{transform:rotate(180deg)}.sidebar-toggle,.sidebar-header,.sidebar-subtitle,.sidebar-info,.selected-indicator{grid-column:1 / -1}.sidebar-section{border-bottom:1px solid var(--color-dark-gray-7)}.floating-text-toolbar{position:fixed!important;top:calc(env(safe-area-inset-top,0px) + 10px)!important;left:50%!important;transform:translate(-50%);z-index:500;width:max-content;max-width:calc(100vw - 20px);overflow-x:auto;scrollbar-width:none;flex-wrap:nowrap;white-space:nowrap;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-full);box-shadow:0 8px 30px var(--color-shadow-darker)}.floating-text-toolbar::-webkit-scrollbar{display:none}.floating-text-toolbar .floating-toolbar-divider{display:none}.floating-text-toolbar .floating-toolbar-font-select{max-width:84px;flex:0 0 auto}.floating-text-toolbar .floating-toolbar-icon-btn,.floating-text-toolbar .floating-toolbar-color-swatch{width:34px;height:38px;flex:0 0 auto}.floating-text-toolbar .floating-toolbar-font-size-input{width:28px}.meme-maker-content{max-width:100%}.template-grid{grid-template-columns:repeat(3,1fr);max-height:420px}}@media(max-width:640px){.home-logo{height:60px}.sidebar{display:block;max-height:40dvh;padding:var(--space-md) var(--space-lg) calc(var(--space-2xl) + env(safe-area-inset-bottom,0px));border-radius:16px 16px 0 0}.sidebar-title{font-size:var(--font-size-xl)}.sidebar-section{padding-bottom:var(--space-lg);margin-bottom:var(--space-lg)}.input-group{flex-direction:column;gap:var(--space-sm)}.btn.btn-md,.btn.btn-sm{min-height:44px}.btn-block{width:100%}.stickers-grid{grid-template-columns:repeat(5,1fr);grid-auto-rows:56px;gap:var(--space-sm);max-height:190px}.sticker-button{height:56px;padding:var(--space-sm)}.balloons-grid{grid-template-columns:repeat(2,1fr);gap:var(--space-sm)}.floating-toolbar-font-select{max-width:96px}.home-page{padding-top:clamp(16px,5vh,40px)}.meme-maker-content{padding:var(--space-lg) 0}.meme-maker-content>.modal-textarea,.meme-maker-content>.btn-full{width:calc(100% - 2 * var(--space-lg));margin-inline:var(--space-lg)}.modal-textarea{font-size:16px;padding:var(--space-md)}.separator{margin:var(--space-xl) 0;gap:var(--space-sm);font-size:var(--font-size-xs)}.template-selector{padding:var(--space-lg);border-radius:var(--radius-2xl)}.template-search{padding:12px 14px;margin-bottom:var(--space-lg);font-size:16px}.category-filter{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:var(--space-sm);margin-bottom:var(--space-lg);gap:var(--space-sm);scroll-snap-type:x proximity}.category-filter::-webkit-scrollbar{display:none}.category-button{flex:0 0 auto;scroll-snap-align:start;padding:10px 16px;font-size:13px;border-radius:999px;min-height:40px}.template-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:minmax(120px,auto);gap:var(--space-sm);max-height:55vh}.template-grid>*{border-radius:var(--radius-md)}.centered-modal{align-items:center;padding:var(--space-lg)}.modal-content{width:100%;max-width:100%!important;max-height:90dvh;overflow-y:auto;-webkit-overflow-scrolling:touch;border-radius:var(--radius-3xl);padding:var(--space-lg);animation:modal-slide-up .28s cubic-bezier(.32,.72,0,1)}.modal-header .modal-title{font-size:1rem}.modal-subheader .modal-subtitle{font-size:var(--font-size-sm)}.generate-loading{min-height:clamp(200px,40vh,380px)}.generated-image-container img{max-height:55vh}.modal-actions{flex-direction:column-reverse;gap:var(--space-sm)}.modal-actions .btn{width:100%;min-height:48px}.success-view-actions{flex-direction:column}.success-view-actions .btn{width:100%;min-height:48px}}@keyframes modal-slide-up{0%{transform:translateY(24px);opacity:.6}to{transform:translateY(0);opacity:1}}@media(max-width:380px){.stickers-grid{grid-template-columns:repeat(4,1fr)}.home-logo{height:40px}.template-selector{padding:var(--space-md)}}@media(pointer:coarse){.floating-toolbar-icon-btn,.floating-toolbar-color-swatch{width:38px;height:38px}.theme-toggle-btn{width:40px;height:40px}}.loading-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:9999;-webkit-backdrop-filter:blur(var(--transition-fast));backdrop-filter:blur(var(--transition-fast))}.loading-overlay-content{display:flex;flex-direction:column;align-items:center;gap:var(--layout-gap-md);background:#fff;padding:var(--space-3xl);border-radius:var(--radius-2xl);box-shadow:var(--shadow-lg)}.loading-overlay-text{font-size:var(--font-size-md);color:var(--color-text-dark);margin:0;font-weight:var(--font-weight-medium);letter-spacing:.5px}@keyframes spin{to{transform:rotate(360deg)}}
