:root { --glass-bg: rgba(255,255,255,0.25); --glass-bg-dark: rgba(24,24,32,0.45); --glass-border: rgba(255,255,255,0.18); --glass-border-dark: rgba(255,255,255,0.10); --glass-shadow: 0 8px 32px 0 rgba(31,38,135,0.18); --glass-shadow-dark: 0 8px 32px 0 rgba(0,0,0,0.35); --primary-color: #cc0044; --secondary-color: #01a15f; --danger-color: #ef4444; --text-color: #23272f; --radius-md: 16px; --radius-lg: 28px } body.dark-mode { --glass-bg: rgba(24,24,32,0.65); --glass-border: rgba(255,255,255,0.12); --glass-shadow: 0 8px 32px 0 rgba(0,0,0,0.35); --text-color: #f3f4f6 } body { font-family: Inter,sans-serif; background: linear-gradient(135deg,#e0e7ff 0,#f3f4f6 100%); color: var(--text-color); transition: background .5s,color .3s; background-repeat: no-repeat; background-attachment: fixed; position: relative } body::before { content: ""; position: fixed; inset: 0; pointer-events: none; z-index: 0; background: linear-gradient(120deg,rgba(255,255,255,.18) 0,rgba(204,0,68,.08) 60%,rgba(108,99,255,.1) 100%); mix-blend-mode: lighten; opacity: .7 } body.dark-mode { background: linear-gradient(135deg,#181a20 0,#23242a 100%) } body.dark-mode::before { background: linear-gradient(120deg,rgba(255,255,255,.08) 0,rgba(108,99,255,.1) 60%,rgba(204,0,68,.08) 100%); mix-blend-mode: lighten; opacity: .4 } .glassmorph { background: var(--glass-bg); border-radius: var(--radius-lg); box-shadow: var(--glass-shadow); backdrop-filter: blur(18px) saturate(180%); -webkit-backdrop-filter: blur(18px) saturate(180%); border: 1.5px solid var(--glass-border); animation: glass-fadein 1s cubic-bezier(.4,0,.2,1); transition: background .3s,box-shadow .3s,border .3s } body.dark-mode .glassmorph { background: var(--glass-bg-dark); border: 1.5px solid var(--glass-border-dark); box-shadow: var(--glass-shadow-dark) } .btn { display: flex; align-items: center; justify-content: center; width: 100%; padding-top: .75rem; padding-bottom: .75rem; font-weight: 700; border-radius: var(--radius-md); transition: all .3s; background: var(--glass-bg); box-shadow: 0 2px 8px 0 rgba(31,38,135,.1); border: 1.5px solid var(--glass-border); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); color: var(--primary-color) } .btn-primary { background: linear-gradient(90deg,#c04 60%,#6c63ff 100%); color: #fff; border: none; box-shadow: 0 4px 16px 0 rgba(204,0,68,.12) } .btn-primary:hover { background: linear-gradient(90deg,#6c63ff 0,#c04 100%); transform: translateY(-2px) scale(1.03) } .btn-primary:active { transform: scale(.98); box-shadow: 0 2px 8px 0 rgba(204,0,68,.18) } .btn-secondary { background: var(--glass-bg); color: var(--secondary-color); border: 1.5px solid var(--glass-border) } .btn-secondary:hover { color: #059669; background: rgba(1,161,95,.08); transform: translateY(-2px) scale(1.03) } .btn-danger { background: var(--glass-bg); color: var(--danger-color); border: 1.5px solid var(--glass-border) } .btn-danger:hover { color: #dc2626; background: rgba(239,68,68,.08); transform: translateY(-2px) scale(1.03) } .btn:disabled { opacity: .6; cursor: not-allowed; transform: none } .custom-select,input[type=number],input[type=text],textarea { appearance: none; -webkit-appearance: none; -moz-appearance: none; background: var(--glass-bg); border-radius: var(--radius-md); border: 1.5px solid var(--glass-border); box-shadow: 0 2px 8px 0 rgba(31,38,135,.08); color: var(--text-color); padding: .75rem 1rem; transition: background .3s,border .3s; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px) } .custom-select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23374151' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 1rem center; background-size: 1.2em; padding-right: 3rem } body.dark-mode .custom-select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23d1d5db' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E") } .custom-select:focus,input:focus,textarea:focus { outline: 0; border-color: #6c63ff; background: rgba(108,99,255,.08) } .neumorphic-inset,.neumorphic-outset { background: var(--glass-bg); border-radius: var(--radius-lg); box-shadow: var(--glass-shadow); border: 1.5px solid var(--glass-border); backdrop-filter: blur(18px) saturate(180%); -webkit-backdrop-filter: blur(18px) saturate(180%); animation: glass-fadein 1s cubic-bezier(.4,0,.2,1); transition: background .3s,box-shadow .3s,border .3s } body.dark-mode .neumorphic-inset,body.dark-mode .neumorphic-outset { background: var(--glass-bg-dark); border: 1.5px solid var(--glass-border-dark); box-shadow: var(--glass-shadow-dark) } .neumorphic-inset:hover,.neumorphic-outset-interactive:hover { box-shadow: 0 12px 32px 0 rgba(31,38,135,.2); background: rgba(255,255,255,.32) } .neumorphic-inset:active,.neumorphic-outset-interactive:active { box-shadow: 0 2px 8px 0 rgba(31,38,135,.1); background: rgba(255,255,255,.22) } .tool-btn { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .5rem; padding: 1rem; font-weight: 500; font-size: .875rem; background: var(--glass-bg); border-radius: var(--radius-md); box-shadow: var(--glass-shadow); border: 1.5px solid var(--glass-border); transition: all .2s; text-align: center; cursor: pointer; color: var(--primary-color); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px) } .tool-btn:hover { transform: translateY(-2px) scale(1.04); background: rgba(204,0,68,.08) } .tool-btn.active,.tool-btn:active { transform: scale(.98); box-shadow: 0 2px 8px 0 rgba(204,0,68,.18); color: #6c63ff } .tool-btn i { font-size: 1.75rem; color: var(--primary-color); pointer-events: none } .tool-btn span { pointer-events: none } .action-btn { padding-top: .5rem; padding-bottom: .5rem } .enhance-thumbnail { border: 3px solid transparent; border-radius: var(--radius-md); transition: border-color .2s; box-shadow: 0 2px 8px 0 rgba(31,38,135,.1) } .enhance-thumbnail.selected { border-color: #6c63ff } ::-webkit-scrollbar { width: 8px } ::-webkit-scrollbar-track { background: 0 0 } ::-webkit-scrollbar-thumb { background: rgba(108,99,255,.18); border-radius: 10px } ::-webkit-scrollbar-thumb:hover { background: #6c63ff } #donation-modal,#info-modal,#loading-indicator,#preview-modal { background: rgba(24,24,32,.25); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); animation: glass-fadein .7s } .btn,.custom-select,.glassmorph,.neumorphic-inset,.neumorphic-outset,.tool-btn,input[type=number],input[type=text],textarea { animation: glass-fadein .8s cubic-bezier(.4,0,.2,1) } .tool-content { display: none; animation: glass-fadein .7s; transition: all .5s } .tool-content.expanded { display: block } #setting-modal .inline-flex.relative { min-width: 44px } #setting-modal input[type=checkbox].sr-only+div { transition: background .3s; background: #9b9b9b!important } #setting-modal input[type=checkbox].sr-only:checked+div { transition: background .3s; background: #00d10a!important } #setting-modal input[type=checkbox].sr-only+div+div { transition: transform .3s; background: #dadada!important } body.neumorphic-3d { background: #e0e5ec!important; color: #23272f } body.neumorphic-3d .btn,body.neumorphic-3d .custom-select,body.neumorphic-3d .glassmorph,body.neumorphic-3d .neumorphic-inset,body.neumorphic-3d .neumorphic-outset,body.neumorphic-3d input[type=number],body.neumorphic-3d input[type=text],body.neumorphic-3d textarea { background: #e0e5ec!important; border-radius: 18px!important; box-shadow: 8px 8px 24px #b8bac0,-8px -8px 24px #fff; border: none!important; color: #23272f!important; transition: box-shadow .3s,background .3s } body.neumorphic-3d .neumorphic-inset { box-shadow: inset 8px 8px 24px #b8bac0,inset -8px -8px 24px #fff!important } body.neumorphic-3d .btn-primary { background: linear-gradient(90deg,#c04 60%,#6c63ff 100%)!important; color: #fff!important; box-shadow: 4px 4px 16px #b8bac0,-4px -4px 16px #fff!important } body.neumorphic-3d .btn-danger,body.neumorphic-3d .btn-secondary { background: #e0e5ec!important; color: #23272f!important } body.neumorphic-3d .tool-btn { background: #e0e5ec!important; color: #c04!important; box-shadow: 4px 4px 16px #b8bac0,-4px -4px 16px #fff!important } body.neumorphic-3d .tool-btn.active,body.neumorphic-3d .tool-btn:active { color: #6c63ff!important } body.neumorphic-3d .neumorphic-outset-interactive:hover,body.neumorphic-3d .tool-btn:hover { box-shadow: 2px 2px 8px #b8bac0,-2px -2px 8px #fff!important; background: #f5f6fa!important } body.neumorphic-3d .neumorphic-outset-interactive:active,body.neumorphic-3d .tool-btn:active { box-shadow: inset 2px 2px 8px #b8bac0,inset -2px -2px 8px #fff!important } body.neumorphic-3d #neumorphic-toggle,body.neumorphic-3d #theme-toggle { background: #e0e5ec!important; box-shadow: 2px 2px 8px #b8bac0,-2px -2px 8px #fff!important } body.neumorphic-3d #neumorphic-toggle:active,body.neumorphic-3d #theme-toggle:active { box-shadow: inset 2px 2px 8px #b8bac0,inset -2px -2px 8px #fff!important } body.neumorphic-3d.dark-mode { background: #23242a!important; color: #f3f4f6!important } body.neumorphic-3d.dark-mode .btn,body.neumorphic-3d.dark-mode .custom-select,body.neumorphic-3d.dark-mode .glassmorph,body.neumorphic-3d.dark-mode .neumorphic-inset,body.neumorphic-3d.dark-mode .neumorphic-outset,body.neumorphic-3d.dark-mode input[type=number],body.neumorphic-3d.dark-mode input[type=text],body.neumorphic-3d.dark-mode textarea { background: #23242a!important; border-radius: 18px!important; box-shadow: 8px 8px 24px #18191f,-8px -8px 24px #2e2f36; border: none!important; color: #f3f4f6!important; transition: box-shadow .3s,background .3s } body.neumorphic-3d.dark-mode .neumorphic-inset { box-shadow: inset 8px 8px 24px #18191f,inset -8px -8px 24px #2e2f36!important } body.neumorphic-3d.dark-mode .btn-primary { background: linear-gradient(90deg,#c04 60%,#6c63ff 100%)!important; color: #fff!important; box-shadow: 4px 4px 16px #18191f,-4px -4px 16px #2e2f36!important } body.neumorphic-3d.dark-mode .btn-danger,body.neumorphic-3d.dark-mode .btn-secondary { background: #23242a!important; color: #f3f4f6!important } body.neumorphic-3d.dark-mode .tool-btn { background: #23242a!important; color: #c04!important; box-shadow: 4px 4px 16px #18191f,-4px -4px 16px #2e2f36!important } body.neumorphic-3d.dark-mode .tool-btn.active,body.neumorphic-3d.dark-mode .tool-btn:active { color: #6c63ff!important } body.neumorphic-3d.dark-mode .neumorphic-outset-interactive:hover,body.neumorphic-3d.dark-mode .tool-btn:hover { box-shadow: 2px 2px 8px #18191f,-2px -2px 8px #2e2f36!important; background: #292a31!important } body.neumorphic-3d.dark-mode .neumorphic-outset-interactive:active,body.neumorphic-3d.dark-mode .tool-btn:active { box-shadow: inset 2px 2px 8px #18191f,inset -2px -2px 8px #2e2f36!important } body.neumorphic-3d.dark-mode #neumorphic-toggle,body.neumorphic-3d.dark-mode #theme-toggle { background: #23242a!important; box-shadow: 2px 2px 8px #18191f,-2px -2px 8px #2e2f36!important } body.neumorphic-3d.dark-mode #neumorphic-toggle:active,body.neumorphic-3d.dark-mode #theme-toggle:active { box-shadow: inset 2px 2px 8px #18191f,inset -2px -2px 8px #2e2f36!important } .ai-text-color { color: #23272f; transition: color .3s } body.dark-mode .ai-text-color,body.neumorphic-3d.dark-mode .ai-text-color { color: #f3f4f6 } body.neumorphic-3d .ai-text-color { color: #23272f }