@import"https://fonts.googleapis.com/css2?family=Press+Start+2P&family=Space+Grotesk:wght@300..700&family=Source+Sans+3:wght@200..900&display=swap";:root{--color-canvas: #f4fbf1;--color-card: #ffffff;--color-elevated: #e9f0e6;--color-product-surface: #ffffff;--color-accent-mint: #27ae60;--color-accent-magenta: #ba1a1a;--color-accent-cyan: #006d37;--color-accent-gradient: linear-gradient(135deg, var(--color-accent-magenta), var(--color-accent-cyan));--color-text-on-canvas: #4a3728;--color-text-muted: #8b7d6b;--color-text-inverse: #ffffff;--color-border: #4a3728;--color-border-focus: var(--color-accent-mint);--color-danger: #ba1a1a;--color-success: #27ae60;--color-warning: #e67e22;--shadow-green: #1e8449;--deep-brown: #4a3728;--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;--space-16: 64px;--radius-sm: 0px;--radius-md: 0px;--radius-lg: 0px;--radius-xl: 0px;--radius-2xl: 0px;--radius-pill: 0px;--radius-full: 9999px;--shadow-sm: 2px 2px 0px var(--deep-brown);--shadow-md: 4px 4px 0px var(--deep-brown);--shadow-lg: 6px 6px 0px var(--deep-brown);--shadow-glow: 0 0 12px rgba(39,174,96,.2);--shadow-subtle: 2px 2px 0px var(--deep-brown);--font-display: 2rem;--font-h1: 1.5rem;--font-h2: 1.25rem;--font-h3: 1.125rem;--font-h4: 1rem;--font-body: .875rem;--font-small: .75rem;--font-caption: .625rem;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--bg: var(--color-canvas);--surface: var(--color-card);--surface2: var(--color-elevated);--accent: var(--color-accent-mint);--text1: var(--color-text-on-canvas);--text2: var(--color-text-muted);--radius: var(--radius-md);--text: var(--color-text-on-canvas);--text-inverse: var(--color-text-inverse);--border: var(--deep-brown);--ease: var(--ease-out);--danger: var(--color-danger)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.container{max-width:1200px;margin:0 auto;padding:0 var(--space-4)}.stack{display:flex;flex-direction:column;gap:var(--space-4)}.stack-sm{gap:var(--space-2)}.stack-lg{gap:var(--space-8)}.cluster{display:flex;flex-wrap:wrap;gap:var(--space-2)}.center{display:grid;place-items:center}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:"Source Sans 3",sans-serif;background:var(--bg);color:var(--text);min-height:100vh;overflow-x:hidden}body:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;background-image:url(https://www.transparenttextures.com/patterns/natural-paper.png);opacity:.12;pointer-events:none;z-index:50}@keyframes fade-in-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse-opacity{0%,to{opacity:.4}50%{opacity:1}}.animate-fade-up{animation:fade-in-up .6s var(--ease-out) forwards;opacity:0}.animate-pulse-slow{animation:pulse-opacity 2s infinite ease-in-out}.pixel-shadow{box-shadow:4px 4px 0 0 var(--deep-brown)}.button-3d-shadow{box-shadow:4px 4px 0 0 var(--shadow-green);transition:transform .1s ease,box-shadow .1s ease}.button-3d-shadow:hover{transform:translate(-1px,-1px);box-shadow:6px 6px 0 0 var(--shadow-green)}.button-3d-shadow:active{transform:translate(2px,2px);box-shadow:2px 2px 0 0 var(--shadow-green)}.splash{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100dvh;position:relative;overflow:hidden}.splash:before,.splash:after{content:"";position:absolute;border:2px solid var(--deep-brown);opacity:.08;pointer-events:none}.splash:before{top:20%;left:5%;width:120px;height:120px;transform:rotate(12deg)}.splash:after{bottom:20%;right:5%;width:180px;height:180px;transform:rotate(-6deg)}.splash-card{background:var(--surface);border:2px solid var(--deep-brown);padding:3rem 2.5rem;max-width:480px;width:100%;text-align:center;display:flex;flex-direction:column;align-items:center;gap:1.5rem;box-shadow:4px 4px 0 0 var(--deep-brown);z-index:20}.splash .logo{font-size:3rem;animation:fade-in-up .6s var(--ease-out) forwards;animation-delay:.2s;opacity:0}.splash h1{font-family:"Press Start 2P",monospace;font-size:1.1rem;font-weight:400;letter-spacing:.02em;color:var(--deep-brown);text-transform:uppercase;line-height:1.6}.splash .tagline{color:var(--text2);line-height:1.6;font-size:1rem;font-family:"Source Sans 3",sans-serif}.splash .fine-print{color:var(--text2);font-size:.625rem;font-family:Space Grotesk,sans-serif;text-transform:uppercase;letter-spacing:.1em;opacity:.6}.splash .btn-connect{background:#27ae60;color:#fff;border:2px solid var(--deep-brown);padding:1rem 2rem;font-family:"Press Start 2P",monospace;font-size:.6rem;letter-spacing:.02em;cursor:pointer;width:100%;display:flex;align-items:center;justify-content:center;gap:.5rem;box-shadow:4px 4px 0 0 var(--shadow-green);transition:transform .1s ease,box-shadow .1s ease;text-transform:uppercase}.splash .btn-connect:hover{transform:translate(-1px,-1px);box-shadow:6px 6px 0 0 var(--shadow-green)}.splash .btn-connect:active{transform:translate(2px,2px);box-shadow:0 0 0 0 var(--shadow-green)}.splash-get-started{font-family:"Press Start 2P",monospace;font-size:.6rem;letter-spacing:.3em;text-transform:uppercase;color:var(--deep-brown);margin-top:1.5rem;animation:fade-in-up .6s var(--ease-out) forwards,pulse-opacity 2s .7s infinite ease-in-out;animation-delay:.7s;opacity:0;z-index:20}.app{min-height:100vh;position:relative}.topbar{display:flex;align-items:center;gap:1rem;padding:1rem 2rem;border-bottom:2px solid var(--border);background:transparent;position:sticky;top:0;z-index:50;max-width:1200px;margin:0 auto;width:100%}.brand{font-family:"Press Start 2P",monospace;font-size:.65rem;letter-spacing:.02em;white-space:nowrap}.topbar nav{display:flex;gap:.5rem;margin-left:auto}.hamburger{background:none;border:none;cursor:pointer;color:var(--accent);font-size:1.5rem;padding:4px;transition:transform .15s;flex-shrink:0}.hamburger:hover{transform:scale(1.1)}.sidebar-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#4a37284d;z-index:100;animation:fadeIn .2s ease}.sidebar{position:fixed;top:0;left:0;bottom:0;width:300px;max-width:80vw;background:var(--surface);border-right:2px solid var(--deep-brown);z-index:101;display:flex;flex-direction:column;animation:slideInLeft .25s var(--ease-out);box-shadow:4px 0 0 0 var(--deep-brown)}@keyframes slideInLeft{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:2px solid var(--deep-brown)}.sidebar-header h3{font-family:"Press Start 2P",monospace;font-size:.5rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text2)}.sidebar-close{background:none;border:none;font-size:1.25rem;cursor:pointer;color:var(--text2);padding:4px}.sidebar-close:hover{color:var(--text)}.sidebar-list{flex:1;overflow-y:auto;padding:.75rem}.sidebar-item{padding:.75rem;cursor:pointer;border:1px solid transparent;transition:background .15s;margin-bottom:4px;position:relative;display:flex;align-items:flex-start;gap:.5rem}.sidebar-item:hover{background:var(--surface2);border-color:var(--border)}.sidebar-item-content{flex:1;min-width:0}.sidebar-item-title{font-weight:600;font-size:.9rem;color:var(--text);margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-item-meta{font-size:.7rem;color:var(--text2)}.btn-sidebar-delete{background:none;border:none;color:var(--text2);font-size:1.1rem;cursor:pointer;padding:2px 6px;flex-shrink:0;opacity:0;transition:opacity .15s,color .15s}.sidebar-item:hover .btn-sidebar-delete{opacity:1}.btn-sidebar-delete:hover{color:var(--danger)}.sidebar-item-confirm{border-color:var(--danger)!important;background:#ba1a1a0d}.sidebar-item-actions{display:flex;gap:4px;flex-shrink:0}.btn-confirm-delete{background:var(--danger);color:#fff;border:none;padding:2px 8px;font-size:.7rem;cursor:pointer;font-family:"Press Start 2P",monospace}.btn-cancel-delete{background:none;border:1px solid var(--border);color:var(--text2);padding:2px 8px;font-size:.7rem;cursor:pointer}.sidebar-empty{padding:2rem 1rem;text-align:center;color:var(--text2);font-size:.85rem}.sidebar-footer{padding:.75rem 1.25rem;border-top:2px solid var(--deep-brown);display:flex;gap:.5rem}.btn-primary,.btn-magic{background:var(--accent);color:var(--text-inverse);border:2px solid var(--deep-brown);padding:.875rem 2rem;font-size:.9rem;font-weight:700;cursor:pointer;transition:transform .1s,box-shadow .1s;width:100%;font-family:Space Grotesk,sans-serif;box-shadow:4px 4px 0 0 var(--deep-brown)}.btn-primary:hover,.btn-magic:hover{transform:translate(-1px,-1px);box-shadow:6px 6px 0 0 var(--deep-brown)}.btn-primary:active,.btn-magic:active{transform:translate(2px,2px);box-shadow:2px 2px 0 0 var(--deep-brown)}.btn-primary:disabled,.btn-magic:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:4px 4px 0 0 var(--deep-brown)}.btn-ghost{background:transparent;color:var(--text2);border:2px solid var(--border);padding:.5rem 1rem;cursor:pointer;font-size:.8rem;transition:all .15s;font-family:Space Grotesk,sans-serif}.btn-ghost:hover{color:var(--text);border-color:var(--text);background:var(--surface2)}.btn-danger{background:var(--danger);color:#fff;border:2px solid var(--deep-brown);transition:opacity .15s}.btn-danger:hover{opacity:.85}.content{max-width:900px;margin:0 auto;padding:2rem}.hero{text-align:center;margin-bottom:2rem}.hero h2{font-family:"Press Start 2P",monospace;font-size:.85rem;font-weight:400;margin-bottom:.75rem;color:var(--deep-brown);line-height:1.8}.hero p{color:var(--text2);font-size:.95rem}.generate-form{background:var(--surface);border:2px solid var(--deep-brown);padding:1.5rem;margin-bottom:2rem;box-shadow:4px 4px 0 0 var(--deep-brown)}.input{width:100%;background:var(--color-product-surface);border:2px solid var(--deep-brown);color:var(--text);padding:.875rem 1rem;font-size:.9rem;margin-bottom:1rem;font-family:"Source Sans 3",sans-serif;transition:border-color .15s;box-shadow:inset 0 2px #4a372814}.input:focus{outline:none;border-color:var(--accent)}.input::placeholder{color:var(--text2);opacity:.7}.model-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}.model-group{display:flex;flex-direction:column;gap:.25rem}.model-group label{color:var(--text2);font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;font-family:Space Grotesk,sans-serif;font-weight:700}.search-wrap{position:relative;width:100%}.search-dropdown{position:absolute;top:100%;left:0;right:0;background:var(--surface);border:2px solid var(--deep-brown);border-top:none;max-height:240px;overflow-y:auto;z-index:10}.search-item{padding:.5rem .75rem;cursor:pointer;font-size:.85rem;color:var(--text);transition:background .1s}.search-item:hover{background:var(--surface2)}.search-item.active{background:var(--accent);color:var(--text-inverse)}.style-desc{font-size:.7rem;color:var(--text2);margin-top:2px;line-height:1.3}.add-custom-style{border-top:1px solid var(--border)}.custom-style-form{margin-top:8px;display:flex;flex-direction:column;gap:8px}.custom-style-form textarea{resize:vertical;min-height:60px}.custom-style-form-buttons{display:flex;gap:8px;align-items:center}.custom-styles-list{display:flex;flex-direction:column;gap:8px}.custom-styles-chips{display:flex;flex-wrap:wrap;gap:6px}.custom-styles-chips .search-item{display:inline-flex;align-items:center;gap:6px;padding:.3rem .6rem;background:var(--surface2);font-size:.8rem;width:auto;cursor:pointer}.custom-styles-chips .search-item:hover{background:var(--surface)}.chip-delete{background:none;border:none;color:var(--danger);cursor:pointer;font-size:1rem;padding:0;line-height:1}.audio-toggle{display:flex;align-items:center;gap:.5rem;color:var(--text2);font-size:.85rem;margin-bottom:1rem;cursor:pointer}.audio-toggle input{accent-color:var(--accent)}.page-audio{width:100%;margin-top:.75rem}.page-selector{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem}.page-selector label{color:var(--text2);font-size:.85rem}.page-options{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.btn-page{width:36px;height:36px;border:2px solid var(--deep-brown);background:transparent;color:var(--text2);cursor:pointer;font-weight:600;transition:all .15s;font-family:Space Grotesk,sans-serif}.btn-page.active{background:var(--accent);color:var(--text-inverse);border-color:var(--accent)}.page-custom-input{width:80px!important;text-align:center}.prompt-hint{font-family:Space Grotesk,sans-serif;font-size:.7rem;line-height:1.6;color:var(--text2);padding:.75rem 1rem;border:2px solid var(--border);margin-bottom:1rem;background:var(--color-product-surface)}.story-viewer .back{margin-bottom:1rem}.story-viewer h2{font-family:"Press Start 2P",monospace;font-size:.75rem;font-weight:400;margin-bottom:1.5rem;text-align:center;color:var(--deep-brown);line-height:1.8}.pages{display:flex;flex-direction:column;gap:1.5rem}.page{background:var(--surface);border:2px solid var(--deep-brown);overflow:hidden;box-shadow:4px 4px 0 0 var(--deep-brown)}.page-image{position:relative;width:100%;aspect-ratio:1;overflow:hidden;background:var(--surface2)}.page-image .page-img{width:100%;height:100%;object-fit:cover;display:block}.page-text{padding:1.25rem}.page-num{font-family:"Press Start 2P",monospace;font-size:.5rem;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);font-weight:400}.page-text p{margin-top:.5rem;line-height:1.7;color:var(--text)}.page-img{opacity:0;transition:opacity .5s ease;min-height:200px}.page-img.loaded{opacity:1}.page-img.error{opacity:.5;filter:grayscale(1)}.page-img:not(.loaded):not(.error){animation:pulse-opacity 1.5s ease-in-out infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);background:#f4fbf1eb;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.loading-overlay .spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.loading-overlay span{color:var(--text2);font-size:var(--font-small)}.image-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--surface2);gap:8px;z-index:2}.image-overlay .spinner{width:28px;height:28px;border:3px solid var(--surface);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.image-overlay span{font-size:.8rem;color:var(--text2)}.image-error{background:var(--surface);border:1px solid var(--danger)}.image-error span{color:var(--danger)}.btn-retry{background:var(--accent);color:var(--text-inverse);border:2px solid var(--deep-brown);padding:.4rem 1rem;cursor:pointer;font-size:.75rem}.btn-retry:hover{opacity:.85}.story-viewer-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.image-status{font-size:.8rem;color:var(--danger)}.history h3{margin-bottom:1rem;color:var(--text2);font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;font-family:Space Grotesk,sans-serif;font-weight:700}.story-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.story-card{background:var(--surface);border:2px solid var(--deep-brown);padding:1rem;cursor:pointer;transition:all .15s;position:relative}.story-card:hover{box-shadow:4px 4px 0 0 var(--deep-brown);transform:translate(-2px,-2px)}.story-card-title{font-weight:600;padding-right:1.5rem;font-size:.9rem}.story-card-meta{font-size:.7rem;color:var(--text2);margin-top:4px}.btn-delete{position:absolute;top:.5rem;right:.5rem;background:none;border:none;color:var(--text2);font-size:1.25rem;cursor:pointer;line-height:1}.btn-delete:hover{color:var(--danger)}.error{background:#ba1a1a14;border:2px solid var(--danger);color:var(--danger);padding:.75rem 1rem;margin-bottom:1rem;font-size:.85rem}.file-input{cursor:pointer}.progress-bar{width:100%;height:20px;background:var(--surface2);border:2px solid var(--deep-brown);overflow:hidden;position:relative;margin-top:12px}.progress-fill{height:100%;background:var(--accent);transition:width .3s ease}.progress-label{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:.6rem;color:var(--text);font-weight:700;white-space:nowrap;font-family:"Press Start 2P",monospace}.health-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-left:var(--space-1);vertical-align:middle}.health-dot.online{background:var(--color-success);box-shadow:0 0 4px var(--color-success)}.health-dot.offline{background:var(--danger)}.health-dot.degraded{background:var(--color-warning)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border)}.continue-section{display:flex;justify-content:center;padding:2rem 0}.btn-continue{width:56px;height:56px;border-radius:50%;border:2px solid var(--deep-brown);background:var(--accent);color:var(--text-inverse);font-family:"Press Start 2P",monospace;font-size:1.5rem;cursor:pointer;box-shadow:4px 4px 0 0 var(--deep-brown);transition:transform .1s,box-shadow .1s;display:flex;align-items:center;justify-content:center}.btn-continue:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 0 var(--deep-brown)}.btn-continue:active{transform:translate(2px,2px);box-shadow:2px 2px 0 0 var(--deep-brown)}.btn-continue:disabled{opacity:.5;cursor:not-allowed;transform:none}.continue-controls{display:flex;flex-direction:column;align-items:center;gap:12px;width:100%;max-width:400px}.continue-input{text-align:center;font-size:.85rem;margin-bottom:0}.continue-pages-row{display:flex;align-items:center;gap:8px}.continue-actions{display:flex;gap:8px}.continue-label{font-family:"Press Start 2P",monospace;font-size:.5rem;color:var(--text2);text-transform:uppercase;letter-spacing:.05em}.footer{border-top:2px solid var(--border);padding:2rem;display:flex;justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;width:100%}.footer-copy{font-family:Space Grotesk,sans-serif;font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--deep-brown)}.footer-links{display:flex;gap:1.5rem}.footer-links a{color:var(--text2);text-decoration:none;font-size:.85rem;transition:color .15s}.footer-links a:hover{color:var(--text)}@media(max-width:768px){.topbar{padding:var(--space-2) var(--space-3)}.generate-form{gap:var(--space-2)}.model-row{grid-template-columns:1fr}.hero h2{font-size:1.25rem}.content{padding:1rem}.splash h1{font-size:.85rem}.footer{flex-direction:column;gap:1rem;text-align:center}.footer-links{justify-content:center}}@media(max-width:480px){.sidebar{width:85vw}}
