.app{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.template-picker{min-height:100vh;min-height:100dvh;padding:24px 16px;display:flex;flex-direction:column;background:#fff}.template-picker__header{text-align:center;margin-bottom:32px}.template-picker__brand{font-family:Space Mono,monospace;font-size:14px;letter-spacing:8px;text-transform:lowercase;color:#000;margin-bottom:24px}.template-picker__title{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:18px;font-weight:400;color:#666}.template-picker__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;flex:1}.template-picker__grid>*:last-child:nth-child(odd){grid-column:1 / -1;max-width:calc(50% - 6px);justify-self:center}.template-card{aspect-ratio:1;border:1px solid #e0e0e0;background:#000;display:flex;flex-direction:column;cursor:pointer;transition:transform .15s ease,border-color .15s ease;overflow:hidden}.template-card:hover,.template-card:focus{border-color:#000;transform:scale(1.02)}.template-card:active{transform:scale(.98)}.template-card__preview{flex:1;display:flex;align-items:center;justify-content:center;padding:16px;background:inherit}.template-card__preview-text{font-family:Bebas Neue,sans-serif;font-size:14px;color:#fff;text-align:center;letter-spacing:1px;line-height:1.2}.template-card--signal .template-card__preview-text{text-transform:uppercase}.template-card--firefly .template-card__preview-text{text-align:left;text-transform:lowercase;align-self:flex-start}.template-card--core .template-card__preview-text{text-transform:uppercase}.template-card__name{padding:12px;text-align:center;font-family:Space Mono,monospace;font-size:11px;letter-spacing:2px;text-transform:uppercase;background:#fff;color:#000;border-top:1px solid #e0e0e0}.editor{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:#f5f5f5}.editor__header{display:flex;align-items:center;justify-content:center;padding:16px;background:#fff;border-bottom:1px solid #e0e0e0;position:sticky;top:0;z-index:10}.editor__brand{font-family:Space Mono,monospace;font-size:14px;letter-spacing:6px;text-transform:lowercase;color:#000}.editor__content{flex:1;display:flex;flex-direction:column;padding:16px;gap:16px}.canvas-container{width:100%;max-width:400px;margin:0 auto;aspect-ratio:1;background:#000;box-shadow:0 4px 24px #00000026}.canvas-container canvas{width:100%;height:100%;display:block}.text-input{width:100%}.text-input__field{width:100%;padding:14px 16px;font-size:16px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;border:1px solid #e0e0e0;background:#fff;color:#000;outline:none;transition:border-color .15s ease}.text-input__field:focus{border-color:#000}.text-input__field::placeholder{color:#999}.text-input__author{margin-top:8px;font-family:Space Mono,monospace;font-size:12px;color:#666;text-align:right}.text-input--readonly .text-input__display{width:100%;padding:14px 16px;font-size:15px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;border:1px solid #e0e0e0;background:#f9f9f9;color:#000;line-height:1.4;min-height:48px}.random-quote-button{width:100%;padding:14px 20px;background:#fff;color:#000;border:1px solid #000;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .15s ease}.random-quote-button:hover{background:#000;color:#fff}.random-quote-button:active{transform:scale(.98)}.random-quote-button__icon{font-size:16px;animation:sparkle 2s ease-in-out infinite}@keyframes sparkle{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.1)}}.quote-mode-toggle{display:flex;gap:0;background:#fff;border:1px solid #e0e0e0;border-radius:0;overflow:hidden}.quote-mode-toggle__btn{flex:1;padding:12px 16px;background:#fff;color:#666;border:none;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;justify-content:center}.quote-mode-toggle__btn:first-child{border-right:1px solid #e0e0e0}.quote-mode-toggle__btn--active{background:#000;color:#fff}.quote-mode-toggle__btn:not(.quote-mode-toggle__btn--active):hover{background:#f5f5f5}.quote-mode-toggle__refresh{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;margin-left:8px;font-size:16px;border-radius:50%;background:#fff3;cursor:pointer;transition:all .15s ease}.quote-mode-toggle__refresh:hover{background:#ffffff4d;transform:rotate(180deg)}.quote-mode-toggle__refresh:active{transform:rotate(360deg)}.custom-quote-form{display:flex;flex-direction:column;gap:12px}.custom-quote-form__textarea{width:100%;padding:14px 16px;font-size:16px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;border:1px solid #e0e0e0;background:#fff;color:#000;outline:none;resize:none;transition:border-color .15s ease}.custom-quote-form__textarea:focus{border-color:#000}.custom-quote-form__textarea::placeholder{color:#999}.custom-quote-form__attribution{width:100%;padding:12px 16px;font-size:14px;font-family:Space Mono,monospace;border:1px solid #e0e0e0;background:#fff;color:#000;outline:none;transition:border-color .15s ease}.custom-quote-form__attribution:focus{border-color:#000}.custom-quote-form__attribution::placeholder{color:#999;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.custom-quote-form__submit{width:100%;padding:14px 20px;background:#000;color:#fff;border:none;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .15s ease}.custom-quote-form__submit:hover:not(:disabled){background:#222}.custom-quote-form__submit:active:not(:disabled){transform:scale(.98)}.custom-quote-form__submit:disabled{background:#ccc;cursor:not-allowed}.palette-selector{display:flex;flex-direction:column;gap:12px;padding:12px 0}.palette-selector__row{display:flex;justify-content:center;gap:24px}.palette-option{display:flex;align-items:center;gap:8px;background:none;border:none;cursor:pointer;padding:8px;margin:-8px}.palette-option__radio{width:20px;height:20px;border-radius:50%;border:2px solid #000;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.palette-option--selected .palette-option__radio{background:#000}.palette-option--selected .palette-option__radio:after{content:"";width:8px;height:8px;border-radius:50%;background:#fff}.palette-option__label{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px;color:#666;transition:color .15s ease}.palette-option--selected .palette-option__label{color:#000;font-weight:500}.palette-selector__neon{display:flex;align-items:center;justify-content:center;gap:16px}.palette-selector__neon-label{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px;color:#666}.neon-colors{display:flex;gap:12px}.neon-color{width:36px;height:36px;border-radius:50%;border:3px solid transparent;background:var(--neon-color);cursor:pointer;transition:all .15s ease;box-shadow:0 0 0 0 var(--neon-color)}.neon-color:hover{transform:scale(1.1)}.neon-color--selected{border-color:#000;box-shadow:0 0 12px var(--neon-color)}.neon-color:active:not(:disabled){transform:scale(.95)}.palette-selector__neon--disabled{opacity:.4}.palette-selector__neon--disabled .palette-selector__neon-label{color:#bbb}.neon-color:disabled{cursor:not-allowed;opacity:.5}.neon-color:disabled:hover{transform:none}.download-button{width:100%;padding:18px 24px;background:#000;color:#fff;border:none;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:16px;font-weight:600;letter-spacing:1px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .15s ease;margin-top:auto}.download-button:hover{background:#222}.download-button:active{transform:scale(.98)}.download-button--success{background:#000;color:#39ff14}.download-button__icon{font-size:18px}.share-popup-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:flex-end;justify-content:center;z-index:1000;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.share-popup{width:100%;max-width:500px;background:#fff;border-radius:24px 24px 0 0;padding:24px 20px 32px;animation:slideUp .3s ease;box-shadow:0 -4px 30px #00000026}@keyframes slideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.share-popup__header{text-align:center;margin-bottom:24px}.share-popup__emoji{font-size:40px;display:block;margin-bottom:12px;animation:bounce .6s ease}@keyframes bounce{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}.share-popup__title{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:22px;font-weight:600;color:#000;margin:0 0 6px}.share-popup__subtitle{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:15px;color:#666;margin:0}.share-popup__actions{display:flex;flex-direction:column;gap:12px}.share-popup__btn{width:100%;padding:16px 24px;border:none;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:16px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;transition:all .15s ease;border-radius:12px}.share-popup__btn--share{background:#000;color:#fff}.share-popup__btn--share:hover{background:#222;transform:scale(1.02)}.share-popup__btn--share:active{transform:scale(.98)}.share-popup__btn--dismiss{background:#f5f5f5;color:#666}.share-popup__btn--dismiss:hover{background:#eee}.share-popup__btn--dismiss:active{transform:scale(.98)}@media (min-width: 768px){.template-picker{padding:48px 24px;max-width:600px;margin:0 auto}.template-picker__grid{gap:16px}.editor__content{max-width:500px;margin:0 auto;padding:24px}.canvas-container{max-width:450px}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:#fff;color:#000;min-height:100vh;min-height:100dvh;line-height:1.4;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100vh;min-height:100dvh}input,textarea,select{font-size:16px}button,a,input{-webkit-tap-highlight-color:transparent}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ccc;border-radius:2px}
