@keyframes marching-ants{0%{background-position:0 0,0 100%,0 0,100% 0}to{background-position:20px 0,-20px 100%,0 -20px,100% 20px}}:root{--rc-drag-handle-size:12px;--rc-drag-handle-mobile-size:24px;--rc-drag-handle-bg-colour:#0003;--rc-drag-bar-size:6px;--rc-border-color:#ffffffb3;--rc-focus-color:#08f}.ReactCrop{cursor:crosshair;max-width:100%;display:inline-block;position:relative}.ReactCrop *,.ReactCrop :before,.ReactCrop :after{box-sizing:border-box}.ReactCrop--disabled,.ReactCrop--locked{cursor:inherit}.ReactCrop__child-wrapper{max-height:inherit;overflow:hidden}.ReactCrop__child-wrapper>img,.ReactCrop__child-wrapper>video{max-width:100%;max-height:inherit;display:block}.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>img,.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>video,.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__crop-selection{touch-action:none}.ReactCrop__crop-mask{pointer-events:none;width:calc(100% + .5px);height:calc(100% + .5px);position:absolute;top:0;right:0;bottom:0;left:0}.ReactCrop__crop-selection{cursor:move;position:absolute;top:0;left:0;transform:translate(0)}.ReactCrop--disabled .ReactCrop__crop-selection{cursor:inherit}.ReactCrop--circular-crop .ReactCrop__crop-selection{border-radius:50%}.ReactCrop--circular-crop .ReactCrop__crop-selection:after{pointer-events:none;content:"";border:1px solid var(--rc-border-color);opacity:.3;position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px}.ReactCrop--no-animate .ReactCrop__crop-selection{outline:1px dashed #fff}.ReactCrop__crop-selection:not(.ReactCrop--no-animate .ReactCrop__crop-selection){color:#fff;background-image:linear-gradient(90deg,#fff 50%,#444 50%),linear-gradient(90deg,#fff 50%,#444 50%),linear-gradient(#fff 50%,#444 50%),linear-gradient(#fff 50%,#444 50%);background-position:0 0,0 100%,0 0,100% 0;background-repeat:repeat-x,repeat-x,repeat-y,repeat-y;background-size:10px 1px,10px 1px,1px 10px,1px 10px;animation:1s linear infinite marching-ants}.ReactCrop__crop-selection:focus{outline:2px solid var(--rc-focus-color);outline-offset:-1px}.ReactCrop--invisible-crop .ReactCrop__crop-mask,.ReactCrop--invisible-crop .ReactCrop__crop-selection{display:none}.ReactCrop__rule-of-thirds-vt:before,.ReactCrop__rule-of-thirds-vt:after,.ReactCrop__rule-of-thirds-hz:before,.ReactCrop__rule-of-thirds-hz:after{content:"";background-color:#fff6;display:block;position:absolute}.ReactCrop__rule-of-thirds-vt:before,.ReactCrop__rule-of-thirds-vt:after{width:1px;height:100%}.ReactCrop__rule-of-thirds-vt:before{left:33.3333%}.ReactCrop__rule-of-thirds-vt:after{left:66.6667%}.ReactCrop__rule-of-thirds-hz:before,.ReactCrop__rule-of-thirds-hz:after{width:100%;height:1px}.ReactCrop__rule-of-thirds-hz:before{top:33.3333%}.ReactCrop__rule-of-thirds-hz:after{top:66.6667%}.ReactCrop__drag-handle{width:var(--rc-drag-handle-size);height:var(--rc-drag-handle-size);background-color:var(--rc-drag-handle-bg-colour);border:1px solid var(--rc-border-color);position:absolute}.ReactCrop__drag-handle:focus{background:var(--rc-focus-color)}.ReactCrop .ord-nw{cursor:nw-resize;top:0;left:0;transform:translate(-50%,-50%)}.ReactCrop .ord-n{cursor:n-resize;top:0;left:50%;transform:translate(-50%,-50%)}.ReactCrop .ord-ne{cursor:ne-resize;top:0;right:0;transform:translate(50%,-50%)}.ReactCrop .ord-e{cursor:e-resize;top:50%;right:0;transform:translate(50%,-50%)}.ReactCrop .ord-se{cursor:se-resize;bottom:0;right:0;transform:translate(50%,50%)}.ReactCrop .ord-s{cursor:s-resize;bottom:0;left:50%;transform:translate(-50%,50%)}.ReactCrop .ord-sw{cursor:sw-resize;bottom:0;left:0;transform:translate(-50%,50%)}.ReactCrop .ord-w{cursor:w-resize;top:50%;left:0;transform:translate(-50%,-50%)}.ReactCrop__disabled .ReactCrop__drag-handle{cursor:inherit}.ReactCrop__drag-bar{position:absolute}.ReactCrop__drag-bar.ord-n{width:100%;height:var(--rc-drag-bar-size);top:0;left:0;transform:translateY(-50%)}.ReactCrop__drag-bar.ord-e{width:var(--rc-drag-bar-size);height:100%;top:0;right:0;transform:translate(50%)}.ReactCrop__drag-bar.ord-s{width:100%;height:var(--rc-drag-bar-size);bottom:0;left:0;transform:translateY(50%)}.ReactCrop__drag-bar.ord-w{width:var(--rc-drag-bar-size);height:100%;top:0;left:0;transform:translate(-50%)}.ReactCrop--new-crop .ReactCrop__drag-bar,.ReactCrop--new-crop .ReactCrop__drag-handle,.ReactCrop--fixed-aspect .ReactCrop__drag-bar,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-n,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-e,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-s,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-w{display:none}@media (pointer:coarse){.ReactCrop .ord-n,.ReactCrop .ord-e,.ReactCrop .ord-s,.ReactCrop .ord-w{display:none}.ReactCrop__drag-handle{width:var(--rc-drag-handle-mobile-size);height:var(--rc-drag-handle-mobile-size)}}*{box-sizing:border-box;margin:0;padding:0}:root{color-scheme:light;--bg-primary: #f6f0eb;--bg-secondary: #F5F0EC;--surface: #ffffff;--accent: #697efe;--accent-hover: #5668e0;--accent-wash: rgba(105, 126, 254, .05);--accent-faint: rgba(105, 126, 254, .6);--on-accent: #ffffff;--text-primary: #2d2d2d;--text-secondary: #444;--logo-ink: #252525;--footer-bg: #0a0a0a;--white: #ffffff;--border: #ddd;--radius: 6px;--invert-bg: #2d2d2d;--invert-ink: #ffffff;--plate: #F5F0EC;--plate-ink: #2d2d2d;--ink-strong: #111;--ink: #444;--ink-muted: #888;--ink-faint: #aaa;--hairline: #f0f0f0;--panel-border: #e5e7eb;--hover-wash: #f7f7f7;--quiet-wash: rgba(0, 0, 0, .04);--overlay: rgba(0, 0, 0, .4);--shadow-panel: 0 8px 30px rgba(0, 0, 0, .12);--shadow-modal: 0 20px 60px rgba(0, 0, 0, .2);--g-blue: #4285F4;--g-red: #EA4335;--g-yellow: #FBBC05;--g-green: #34A853;--g-blue-ink: #4285F4;--g-red-ink: #EA4335;--g-yellow-ink: #b8960a;--g-green-ink: #34A853;--dropzone-hover-bg: #eef4ff;--danger-bg: #fef2f2;--danger-border: #fecaca;--danger-ink: #b91c1c;--note-bg: #fffbeb;--note-border: #fde68a;--note-ink: #92400e;--success-wash: #dcfce7;--success-border: #bbf7d0;--success-ink: #15803d;--highlight-bg: #fef08a;--highlight-ink: #2d2d2d;--select-wash: #f5f3ff;--violet: #8b5cf6;--violet-ink: #7c3aed;--violet-wash: #f5f3ff}:root[data-theme=dark]{color-scheme:dark;--bg-primary: #111318;--bg-secondary: #1b1f27;--surface: #1f2937;--accent: #8f9dff;--accent-hover: #a8b3ff;--accent-wash: rgba(143, 157, 255, .12);--accent-faint: rgba(143, 157, 255, .6);--on-accent: #111318;--text-primary: #f3f4f6;--text-secondary: #d1d5db;--logo-ink: #f9fafb;--border: #374151;--invert-bg: #374151;--invert-ink: #f3f4f6;--plate: #f0f2f5;--plate-ink: #111318;--ink-strong: #f3f4f6;--ink: #d1d5db;--ink-muted: #9ca3af;--ink-faint: #6b7280;--hairline: #374151;--panel-border: #374151;--hover-wash: #374151;--quiet-wash: rgba(255, 255, 255, .08);--overlay: rgba(0, 0, 0, .65);--shadow-panel: 0 8px 30px rgba(0, 0, 0, .55);--shadow-modal: 0 20px 60px rgba(0, 0, 0, .65);--g-blue-ink: #8ab4f8;--g-red-ink: #f28b82;--g-yellow-ink: #fdd663;--g-green-ink: #81c995;--dropzone-hover-bg: rgba(66, 133, 244, .14);--danger-bg: rgba(69, 10, 10, .5);--danger-border: #7f1d1d;--danger-ink: #fca5a5;--note-bg: rgba(113, 63, 18, .45);--note-border: #78350f;--note-ink: #fde68a;--success-wash: rgba(5, 46, 22, .5);--success-border: #14532d;--success-ink: #86efac;--highlight-bg: rgba(113, 63, 18, .6);--highlight-ink: #fde68a;--select-wash: rgba(143, 157, 255, .16);--violet: #a78bfa;--violet-ink: #d8b4fe;--violet-wash: #2e1065}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;background-color:var(--bg-primary);color:var(--text-primary);line-height:1.6;font-size:1.125rem}.app{min-height:100vh;display:flex;flex-direction:column}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.hero-section{text-align:center;padding:6rem 2rem 3rem;max-width:700px;margin:0 auto}.hero-logo{display:inline-block;font-family:Google Sans,sans-serif;font-weight:500;font-size:45.7px;line-height:1.284;color:var(--logo-ink);white-space:nowrap}.hero-section h1 a{color:inherit;text-decoration:none}.hero-logo-g{height:2.0504em;width:auto;vertical-align:-.6094em;margin-inline:-.2258em -.2115em}.hero-logo-br{display:none}.hero-section h1{margin-bottom:0}.hero-section p{font-size:1.25rem;color:var(--text-secondary)}.app-main{flex:1;max-width:750px;margin:0 auto;padding:0 2rem 3rem;width:100%}.app-footer{background:var(--footer-bg);padding:2rem}.login-hint{text-align:center}.login-button{display:inline-block;padding:.6rem 1.5rem;border:1.5px solid #81c995;border-radius:var(--radius);color:#81c995;text-decoration:none;font-size:.85rem;transition:all .2s}.login-button:hover{background:#81c995;color:var(--white)}.login-link{display:block;margin:.75rem auto 0;color:#f28b82;text-decoration:none;font-size:.85rem;transition:color .2s;border:none;background:none;cursor:pointer;padding:0;font-family:inherit}.login-link:hover{color:#ffaba3;text-decoration:underline}.footer-links{text-align:center;margin-top:.5rem;margin-bottom:1rem;font-size:.8rem}.footer-links a{color:#999;text-decoration:none}.footer-links a:hover{color:var(--accent);text-decoration:underline}.footer-sep{color:#555;margin:0 .5rem}.footer-legal{color:#aaa;font-size:.7rem;text-align:center;margin-top:1.5rem;line-height:1.5;max-width:500px;margin-left:auto;margin-right:auto}.image-upload-container{margin-bottom:2rem}.dropzone{border:2px dashed var(--border);border-radius:24px;padding:1.5rem 3rem 4rem;text-align:center;transition:border-color .3s ease,background .3s ease;background:var(--surface);cursor:pointer;width:min(810px,calc(100vw - 3rem));position:relative;left:50%;transform:translate(-50%)}.dropzone:hover,.dropzone.dragging{border-color:var(--g-blue);background:var(--dropzone-hover-bg)}.file-input{display:none}.dropzone-label{cursor:pointer;display:block}.dropzone-icon{font-size:3.25rem;line-height:1;color:var(--accent);margin-bottom:1.25rem}.dropzone-text{font-size:clamp(1.15rem,2.6vw,1.5rem);color:var(--text-primary);margin-bottom:.6rem}.dropzone-hint{color:var(--text-secondary);font-size:clamp(.95rem,1.8vw,1.15rem)}.preview-container{text-align:center;background:var(--surface);padding:1.5rem;border-radius:var(--radius);border:1px solid var(--border)}.preview-image{max-width:100%;max-height:300px;border-radius:var(--radius);margin-bottom:1rem}.clear-button{display:block;margin:0 auto;background:var(--invert-bg);color:var(--invert-ink);border:none;padding:.75rem 1.5rem;border-radius:var(--radius);cursor:pointer;font-size:1rem;transition:background .2s}.clear-button:hover{background:var(--accent)}.clear-button:disabled{opacity:.5;cursor:not-allowed}.preview-actions{display:flex;justify-content:center;gap:.75rem}.preview-actions .clear-button{display:inline-block;margin:0}.crop-container{text-align:center;background:var(--surface);padding:1.5rem;border-radius:var(--radius);border:1px solid var(--border)}.crop-hint{margin-bottom:1rem;color:var(--text-secondary)}.crop-container .ReactCrop{max-width:100%;background:none}.crop-image{max-width:100%;max-height:55vh;display:block}.crop-actions{display:flex;justify-content:center;gap:.75rem;margin-top:1.25rem}.crop-confirm-button,.crop-cancel-button{border:none;padding:.75rem 1.5rem;border-radius:var(--radius);cursor:pointer;font-size:1rem;transition:background .2s}.crop-confirm-button{background:var(--accent);color:var(--on-accent)}.crop-confirm-button:hover{background:var(--accent-hover)}.crop-confirm-key{display:inline-block;margin-left:.6em;padding:0 .4em;border:1px solid currentColor;border-radius:4px;font-family:inherit;font-size:.85em;line-height:1.4;opacity:.6}@media (hover: none){.crop-confirm-key{display:none}}.crop-cancel-button{background:none;border:1.5px solid var(--border);color:var(--text-secondary)}.crop-cancel-button:hover{border-color:var(--text-secondary)}.crop-confirm-button:disabled,.crop-cancel-button:disabled{opacity:.5;cursor:not-allowed}.paste-button.mobile-only{display:none}.paste-button{margin-top:.75rem;padding:.6rem 1.25rem;background:var(--accent);color:var(--on-accent);border:none;border-radius:var(--radius);font-size:.95rem;cursor:pointer;transition:background .2s}.paste-button:hover{background:var(--accent-hover)}.paste-button:disabled{opacity:.5;cursor:not-allowed}.url-error{color:var(--danger-ink);font-size:.85rem;margin-top:.5rem}.loading-state{text-align:center;padding:3rem}.spinner{width:40px;height:40px;border:3px solid var(--border);border-top:3px solid var(--accent);border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 1rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.error-state{background:var(--danger-bg);border:1px solid var(--danger-border);color:var(--danger-ink);padding:1rem;border-radius:var(--radius);text-align:center;margin-bottom:2rem}.menu-link{position:absolute;top:32px;left:32px;z-index:100}.menu-icon{width:72px;height:72px;background-image:url(https://texs.org/assets/tex-sound.avif);background-position:center;background-size:contain;background-repeat:no-repeat;border-radius:40px;box-shadow:0 2px 10px #0000001a;transition:transform .2s;cursor:pointer}.menu-icon:hover{transform:scale(1.1)}.about-author{display:flex;align-items:center;gap:1.25rem;margin:2.5rem 0 0;padding:1.5rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.author-photo{width:64px;height:auto;border-radius:var(--radius);flex-shrink:0}.about-author p{font-size:.95rem;color:var(--text-primary);line-height:1.6;margin:0}.about-author a{color:var(--accent);text-decoration:none}.about-author a:hover{text-decoration:underline}.author-socials{margin-top:.75rem;display:flex;flex-wrap:wrap;gap:.5rem}.social-btn{display:inline-block;padding:.35rem .75rem;font-size:.8rem;border:1.5px solid var(--border);border-radius:var(--radius);color:var(--text-secondary)!important;text-decoration:none!important;transition:all .2s}.social-btn:hover{border-color:var(--accent);color:var(--accent)!important}.how-it-works{margin:2rem 0}.how-it-works h2{font-size:1.5rem;font-weight:600;margin-bottom:1.5rem;text-align:center}.steps{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}.step{background:var(--surface);padding:1.5rem;border-radius:var(--radius);border:1px solid var(--border);text-align:center}.step-number{width:40px;height:40px;background:var(--accent);color:var(--on-accent);border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1.25rem;margin:0 auto 1rem}.step h3{font-size:1.1rem;font-weight:600;margin-bottom:.5rem}.step p{color:var(--text-secondary);font-size:.95rem}@media (max-width: 768px){.paste-button.mobile-only{display:inline-block}.menu-link{top:24px;left:24px}.hero-section h1{font-size:1.75rem}.hero-section{padding:3.5rem 1rem 2rem}.hero-logo{font-size:min(45.7px,calc((100vw - 4rem) / 9.6))}.app-main{padding:0 1.5rem 2rem}.steps{grid-template-columns:1fr}}.shared-menu-wrapper{position:absolute;top:16px;right:16px;direction:ltr;z-index:100}.shared-menu-cluster{display:flex;align-items:center;gap:4px}.shared-menu-icon-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:8px;border:none;border-radius:8px;background:none;color:var(--ink-muted);cursor:pointer;transition:color .15s,background .15s}.shared-menu-icon-btn:hover{color:var(--ink-strong);background:var(--quiet-wash)}.shared-menu-button{display:inline-flex;align-items:center;border-radius:8px;color:var(--ink-muted);transition:color .15s,background .15s}.shared-menu-button:hover{color:var(--ink-strong);background:var(--quiet-wash)}.shared-menu-flag{display:flex;align-items:center;gap:5px;padding:8px 4px 8px 8px;border:none;background:none;color:inherit;cursor:pointer;line-height:1}.shared-menu-flag-emoji{font-size:17px;line-height:1}.shared-menu-flag-code{font-size:12px;font-weight:600;color:var(--ink-muted)}.shared-menu-trigger{display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:8px;border:none;background:none;color:inherit;cursor:pointer}.shared-menu-dropdown{position:absolute;right:0;top:100%;margin-top:4px;width:288px;background:var(--surface);border-radius:12px;box-shadow:var(--shadow-panel);border:1px solid var(--panel-border);padding:8px 0;z-index:200}.shared-menu-user{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid var(--hairline)}.shared-menu-avatar{width:28px;height:28px;border-radius:50%;background:var(--accent);color:var(--on-accent);font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.shared-menu-name{font-size:14px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shared-menu-section{padding:4px 0}.shared-menu-divider{border-bottom:1px solid var(--hairline)}.shared-menu-label{padding:6px 16px 2px;font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint);font-weight:600}.shared-menu-version{display:flex;align-items:center;justify-content:space-between;padding:10px 16px}.shared-menu-version-main{display:flex;align-items:center;gap:8px}.shared-menu-version-text{display:flex;flex-direction:column}.shared-menu-info-btn{display:flex;align-items:center;padding:0;border:none;background:none;color:var(--violet);cursor:pointer;opacity:.75;transition:opacity .15s}.shared-menu-info-btn:hover{opacity:1}.shared-menu-version-label{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint);font-weight:600;line-height:1}.shared-menu-version-value{font-size:12px;color:var(--ink-muted)}.shared-menu-version-actions{display:flex;align-items:center;gap:12px}.shared-menu-lang-btn,.shared-menu-toggle-btn{display:flex;align-items:center;gap:6px;padding:0;border:none;background:none;color:var(--ink-muted);cursor:pointer;transition:color .15s}.shared-menu-lang-btn:hover,.shared-menu-toggle-btn:hover{color:var(--ink-strong)}.shared-menu-item{display:flex;align-items:center;gap:12px;width:100%;padding:10px 16px;border:none;background:none;font-size:14px;color:var(--ink);cursor:pointer;text-decoration:none;transition:background .15s;text-align:start}.shared-menu-item:hover{background:var(--hover-wash)}.shared-menu-item--current{color:var(--accent);font-weight:500;background:var(--accent-wash)}.shared-menu-icon{display:flex;align-items:center;flex-shrink:0}.shared-menu-item--muted{color:var(--ink-faint)}.shared-menu-item--muted:hover{color:var(--ink-muted)}.shared-menu-item-name{flex:1}.shared-menu-here{font-size:10px;color:var(--accent-faint)}.shared-menu-item--nested{padding-inline-start:44px}.shared-menu-blurb{margin:0;padding:0 16px 6px 44px;font-size:11px;color:var(--ink-faint)}.more-sites-icon{color:#ff1800}:root[data-theme=dark] .more-sites-icon{color:#5eead4}.more-sites-globe{flex-shrink:0;overflow:visible}.more-sites-globe-m{animation:more-sites-globe-turn 9s linear infinite,more-sites-globe-half 9s step-end infinite}@keyframes more-sites-globe-turn{0%{rx:.1px}12.5%{rx:4.018px}25%{rx:7.425px}37.5%{rx:9.701px}45%{rx:10.371px}50%{rx:10.5px}55%{rx:10.371px}62.5%{rx:9.701px}75%{rx:7.425px}87.5%{rx:4.018px}to{rx:.1px}}@keyframes more-sites-globe-half{0%,to{stroke-dashoffset:75px}50%{stroke-dashoffset:25px}}@media (prefers-reduced-motion: reduce){.more-sites-globe-m{animation:none}}.auth-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:500;display:flex;align-items:center;justify-content:center;background:var(--overlay)}.auth-modal{background:var(--surface);border-radius:20px;box-shadow:var(--shadow-modal);width:100%;max-width:380px;position:relative;margin:1rem}.auth-close{position:absolute;top:14px;inset-inline-end:16px;border:none;background:none;font-size:22px;color:var(--ink-faint);cursor:pointer;z-index:10;line-height:1;padding:4px}.auth-close:hover{color:var(--ink-muted)}.auth-body{padding:28px}.auth-body--center{text-align:center}.auth-icon-circle{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 16px}.auth-icon-green{background:var(--success-wash)}.auth-title{font-size:22px;font-weight:700;color:var(--ink-strong);margin:0 0 6px}.auth-subtitle{font-size:14px;color:var(--ink-muted);margin:0 0 4px}.auth-label{display:block;font-size:13px;font-weight:500;color:var(--ink);margin-bottom:6px}.auth-input{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:10px;font-size:14px;background:var(--surface);color:var(--text-primary);outline:none;transition:border-color .2s;box-sizing:border-box}.auth-input:focus{border-color:var(--accent)}.auth-code-input{text-align:center;letter-spacing:5px;font-size:22px}.auth-error{margin-top:10px;padding:10px 12px;background:var(--danger-bg);border:1px solid var(--danger-border);border-radius:8px;color:var(--danger-ink);font-size:13px}.auth-btn{display:block;width:100%;margin-top:14px;padding:10px 16px;border:none;border-radius:10px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s;background:var(--accent);color:var(--on-accent)}.auth-btn:hover{opacity:.9}.auth-btn:disabled{opacity:.5;cursor:not-allowed}.auth-btn--dark{background:var(--invert-bg);color:var(--invert-ink)}.auth-btn--icon{display:flex;align-items:center;justify-content:center;gap:8px}.auth-btn--lg{padding:12px 16px;font-size:16px;font-weight:600}.auth-btn--outline{background:transparent;color:var(--ink-strong);border:1px solid var(--border)}.auth-btn--outline:hover{opacity:1;background:var(--hover-wash)}.auth-or{display:flex;align-items:center;gap:12px;margin:16px 0 12px;font-size:12px;color:var(--ink-faint)}.auth-or span{flex:1;height:1px;background:var(--border)}.auth-body form>.auth-btn:first-child,.auth-or+.auth-btn{margin-top:0}.auth-icon-accent{background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent)}.auth-spinner{animation:auth-spin .8s linear infinite}@keyframes auth-spin{to{transform:rotate(360deg)}}.auth-note{margin-top:18px;padding:12px;background:var(--note-bg);border:1px solid var(--note-border);border-radius:10px;font-size:13px;color:var(--note-ink)}.auth-footer-links{display:flex;flex-direction:column;align-items:center;gap:4px;margin-top:14px}.auth-hint{font-size:12px;color:var(--ink-faint)}.auth-link{border:none;background:none;font-size:13px;color:var(--ink-muted);cursor:pointer;text-decoration:none}.auth-link:hover{color:var(--ink)}.auth-link:disabled{opacity:.5}@media (max-width: 768px){.shared-menu-wrapper{top:16px;right:16px}.shared-menu-dropdown{width:240px}}::selection{background:#ffe829bf;color:currentColor;text-shadow:none}:root[data-theme=dark] ::selection{background:#00ffb56b}:root{--shirt: #ec4899;--shirt-wash: rgba(236, 72, 153, .12);--shirt-ink: #be185d}:root[data-theme=dark]{--shirt-ink: #f9a8d4;--shirt-wash: rgba(236, 72, 153, .18)}.steps{grid-template-columns:repeat(3,1fr)}.hero-section--compact{padding-top:4.5rem;padding-bottom:1.5rem}.hero-section--compact .hero-logo{font-size:32px}.hero-shirt{position:relative;white-space:nowrap;background:linear-gradient(100deg,transparent 2%,var(--shirt-wash) 4%,var(--shirt-wash) 96%,transparent 98%) 0 72% / 100% 42% no-repeat;color:var(--shirt-ink)}.hero-nav{display:inline-flex;gap:4px;margin-top:1.25rem;padding:4px;border:1px solid var(--border);border-radius:999px;background:var(--surface)}.hero-nav a{padding:.3rem .95rem;border-radius:999px;font-size:.95rem;color:var(--ink);text-decoration:none;transition:background .15s,color .15s}.hero-nav a:hover{background:var(--quiet-wash);color:var(--ink-strong)}.hero-nav a.on{background:var(--invert-bg);color:var(--invert-ink)}.btn-primary,.btn-secondary,.btn-quiet{font:inherit;font-size:1rem;border-radius:var(--radius);padding:.7rem 1.3rem;cursor:pointer;transition:background .15s,border-color .15s,color .15s,opacity .15s}.btn-primary{background:var(--accent);color:var(--on-accent);border:none;font-weight:600}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-secondary{background:var(--surface);color:var(--ink-strong);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.btn-quiet{background:none;border:none;color:var(--ink);padding-inline:.6rem}.btn-quiet:hover:not(:disabled){color:var(--ink-strong);background:var(--quiet-wash)}.btn-danger{color:var(--danger-ink)}button:disabled{opacity:.55;cursor:default}.link-button{font:inherit;background:none;border:none;padding:0;color:var(--accent);cursor:pointer;text-decoration:underline}.field{display:block;margin-bottom:1.25rem}.field-label{display:flex;justify-content:space-between;font-size:.85rem;font-weight:600;color:var(--ink);margin-bottom:.45rem}.field-value{font-weight:400;color:var(--ink-muted)}.text-input{width:100%;font:inherit;font-size:1rem;padding:.6rem .75rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text-primary)}.text-input:focus{outline:2px solid var(--accent-faint);outline-offset:1px;border-color:var(--accent)}.range{width:100%;accent-color:var(--accent)}.note,.hint,.error-text,.fine-print{font-size:.85rem;line-height:1.45}.note{background:var(--note-bg);border:1px solid var(--note-border);color:var(--note-ink);padding:.6rem .75rem;border-radius:var(--radius);margin-bottom:.75rem}.hint,.fine-print{color:var(--ink-muted)}.error-text{color:var(--danger-ink);margin:.5rem 0}.chip{font:inherit;font-size:.8rem;padding:.3rem .7rem;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--ink);cursor:pointer}.chip:hover{border-color:var(--accent);color:var(--accent)}.badge{display:inline-block;padding:.15rem .55rem;border-radius:999px;font-size:.75rem;font-weight:700;letter-spacing:.02em;white-space:nowrap}.badge-member{background:var(--success-wash);border:1px solid var(--success-border);color:var(--success-ink)}.editor{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,1fr);gap:2rem;align-items:start;width:min(1000px,calc(100vw - 3rem));position:relative;left:50%;transform:translate(-50%);margin-bottom:2rem}.editor-stage{background:var(--surface);border:1px solid var(--border);border-radius:24px;padding:1rem}.editor-canvas{display:block;width:100%;touch-action:none;cursor:grab}.editor-canvas:active{cursor:grabbing}.editor-tip{text-align:center;font-size:.8rem;color:var(--ink-muted);margin-top:.5rem}.editor-panel{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:1.25rem}.editor-quick{display:flex;flex-wrap:wrap;gap:.4rem;margin:-.25rem 0 1rem}.editor-actions{display:flex;justify-content:flex-end;align-items:center;gap:.5rem;margin-top:.75rem;flex-wrap:wrap}.swatches{display:flex;flex-wrap:wrap;gap:6px}.swatch{width:26px;height:26px;border-radius:50%;border:1px solid rgba(0,0,0,.18);cursor:pointer;padding:0;transition:transform .12s}.swatch:hover{transform:scale(1.1)}.swatch--on{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--accent)}.design-page{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,1fr);gap:2rem;align-items:start;width:min(1000px,calc(100vw - 3rem));position:relative;left:50%;transform:translate(-50%);margin-bottom:2rem}.design-picture{border-radius:24px;overflow:hidden;background:#efebe6;border:1px solid var(--border);aspect-ratio:4 / 5;display:flex;align-items:center;justify-content:center}.design-picture img{width:100%;height:100%;object-fit:contain;display:block}.segmented{display:flex;justify-content:center;gap:4px;margin-top:.75rem}.segmented button{font:inherit;font-size:.85rem;padding:.3rem .9rem;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--ink);cursor:pointer}.segmented button.on{background:var(--invert-bg);color:var(--invert-ink);border-color:var(--invert-bg)}.design-title{font-family:Google Sans,sans-serif;font-weight:500;font-size:2rem;line-height:1.2;color:var(--logo-ink)}.design-byline{color:var(--ink-muted);font-size:.95rem;margin:.25rem 0 1.25rem}.design-make-own{margin-top:1.25rem}.buy-box,.owner-panel{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:1.25rem}.owner-panel{margin-top:1rem}.owner-panel h3{font-size:1rem;margin-bottom:.75rem}.price-row{display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap}.price{font-size:2rem;font-weight:700;color:var(--ink-strong);line-height:1.1}.price-was{color:var(--ink-muted);font-size:1.1rem}.price-note{font-size:.85rem;color:var(--ink-muted);margin:.25rem 0 1rem}.sizes{display:flex;flex-wrap:wrap;gap:6px}.size{font:inherit;font-size:.9rem;min-width:46px;padding:.45rem .6rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--ink-strong);cursor:pointer}.size:hover{border-color:var(--accent)}.size--on{border-color:var(--accent);background:var(--accent-wash);color:var(--accent);font-weight:600}.buy-row{display:flex;gap:.6rem;align-items:stretch}.btn-buy{flex:1;font-size:1.05rem}.qty{display:flex;align-items:center;border:1px solid var(--border);border-radius:var(--radius)}.qty button{font:inherit;width:36px;height:100%;border:none;background:none;color:var(--ink-strong);cursor:pointer;font-size:1.1rem}.qty span{min-width:1.5rem;text-align:center;font-variant-numeric:tabular-nums}.member-pitch{display:flex;gap:.6rem;align-items:center;margin-top:1rem;padding:.7rem .8rem;border-radius:var(--radius);background:var(--bg-secondary);font-size:.9rem;color:var(--ink)}.member-pitch a{color:var(--accent)}.fine-print{margin-top:.9rem}.owner-row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.publish-box{margin:1rem 0;padding:1rem;border-radius:var(--radius);background:var(--shirt-wash);font-size:.95rem}.publish-box p,.publish-box .field{margin-bottom:.75rem}.gallery-section{margin:2.5rem 0;text-align:center}.gallery-section h2{font-size:1.5rem;margin-bottom:.25rem}.section-sub{color:var(--text-secondary);margin-bottom:1.5rem;font-size:1rem}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:1rem;text-align:left;margin-top:1rem}.card{display:block;background:var(--surface);border:1px solid var(--border);border-radius:14px;overflow:hidden;color:inherit;text-decoration:none;transition:transform .15s,box-shadow .15s}.card:hover{transform:translateY(-2px);box-shadow:var(--shadow-panel)}.card-img{aspect-ratio:4 / 5;background:#efebe6}.card-img img{width:100%;height:100%;object-fit:contain;display:block}.card-body{padding:.6rem .75rem .75rem;display:flex;flex-direction:column;gap:.1rem}.card-title{font-size:.95rem;font-weight:600;color:var(--ink-strong);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-by,.card-status{font-size:.8rem;color:var(--ink-muted)}.card-status--live{color:var(--success-ink)}.empty{color:var(--ink-muted);margin:2rem 0}.load-more{margin-top:1.5rem}.order-page{text-align:center;max-width:520px;margin:1rem auto 3rem}.order-page h2{font-size:1.5rem;margin:1rem 0 .75rem}.order-page p{margin-bottom:.75rem;color:var(--text-secondary)}.order-detail{font-size:.95rem}.nav-count{display:inline-block;min-width:1.25rem;margin-left:.35rem;padding:0 .35rem;border-radius:999px;background:var(--shirt);color:#fff;font-size:.75rem;line-height:1.25rem;text-align:center;font-variant-numeric:tabular-nums}.added-note{margin-top:.75rem;font-size:.95rem;color:var(--text-secondary)}.added-note a{color:var(--accent);white-space:nowrap}.design-canvas{display:block}.cart-page{max-width:720px;margin:0 auto 3rem}.cart-page h2{font-size:1.5rem;margin-bottom:1rem}.cart-lines{list-style:none;padding:0;margin:0 0 1.25rem;border-top:1px solid var(--border)}.cart-line{display:grid;grid-template-columns:96px 1fr auto;gap:1rem;align-items:center;padding:.9rem 0;border-bottom:1px solid var(--border)}.cart-thumb{display:block;border-radius:12px;overflow:hidden;background:#efebe6;border:1px solid var(--border)}.cart-info{display:flex;flex-direction:column;gap:.2rem;min-width:0}.cart-title{color:var(--ink-strong);font-weight:500;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cart-title:hover{text-decoration:underline}.cart-meta{font-size:.9rem;color:var(--text-secondary)}.cart-controls{display:flex;align-items:center;gap:.5rem;margin-top:.35rem}.cart-controls .btn-quiet{padding:.3rem .6rem;font-size:.9rem}.qty--small{height:34px}.qty--small button{width:30px}.cart-line-total{font-variant-numeric:tabular-nums;font-weight:500}.cart-summary{padding:1.25rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.cart-summary-label{color:var(--text-secondary);margin-right:auto}.cart-summary .btn-buy{width:100%;margin-top:1rem}.order-items{list-style:none;padding:0;margin:1.25rem auto;display:flex;flex-direction:column;gap:.75rem;text-align:left}.order-items li{display:flex;align-items:center;gap:.9rem}.order-thumb{flex:0 0 88px;display:block;border-radius:12px;overflow:hidden;background:#efebe6;border:1px solid var(--border)}@media (max-width: 768px){.editor,.design-page{grid-template-columns:1fr;width:calc(100vw - 2rem)}.hero-section--compact{padding-top:4rem}.hero-section--compact .hero-logo{font-size:26px}.design-title{font-size:1.6rem}.cart-line{grid-template-columns:72px 1fr auto;gap:.75rem}}
