:root{--lol-bg-deep:#0a0e0c;--lol-bg-dark:#0f1411;--lol-bg-panel:#0f1411e0;--lol-bg-card:#121814d1;--lol-bg-input:#0a0e0ce6;--lol-gold:#c89b3c;--lol-gold-bright:#f0d28c;--lol-gold-light:#d4b45a;--lol-gold-dark:#8b6914;--lol-gold-glow:#c89b3c33;--lol-gold-bg:#c89b3c0f;--lol-gold-border:#c89b3c4d;--lol-steel:#5b7a6e;--lol-steel-light:#7a9b8e;--lol-steel-dark:#3d5a4e;--lol-steel-glow:#5b7a6e33;--lol-steel-bg:#5b7a6e14;--lol-text:#c8c9c0;--lol-text-bright:#edeee8;--lol-text-muted:#8a8e86;--lol-text-sub:#5a6059;--lol-border:#c8c9c00f;--lol-border-hover:#c8c9c026;--lol-success:#3b8b5b;--lol-success-bg:#3b8b5b1a;--lol-destructive:#b83a2a;--lol-destructive-bg:#b83a2a1a;--radius:.5rem;--radius-sm:.25rem;--radius-xs:.1875rem;--shadow-sm:0 2px 8px #0006;--shadow-md:0 4px 20px #00000080;--shadow-lg:0 8px 40px #0009;--shadow-gold:0 0 16px #c89b3c1f;--font-display:"Cinzel Decorative", "Cinzel", serif;--font-heading:"Cinzel", "Georgia", serif;--font-body:"Plus Jakarta Sans", "Segoe UI", sans-serif;--font-mono:"Courier New", monospace}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}body{font-family:var(--font-body);color:var(--lol-text);background-color:var(--lol-bg-deep);background-image:radial-gradient(ellipse at 50% 0%, #5b7a6e0f 0%, transparent 55%), radial-gradient(ellipse at 85% 15%, #c89b3c08 0%, transparent 45%), linear-gradient(180deg, var(--lol-bg-deep) 0%, #0c110e 40%, var(--lol-bg-dark) 100%);background-attachment:fixed;min-height:100vh;font-size:1rem;font-weight:400;line-height:1.6}body:before{content:"";pointer-events:none;z-index:0;background-image:linear-gradient(#c8c8c005 1px,#0000 1px),linear-gradient(90deg,#c8c8c005 1px,#0000 1px);background-size:80px 80px;position:fixed;inset:0}#root{z-index:1;flex-direction:column;width:100%;max-width:100%;min-height:100vh;display:flex;position:relative}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--lol-bg-deep)}::-webkit-scrollbar-thumb{background:var(--lol-steel-dark);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--lol-steel)}::selection{background:var(--lol-gold-glow);color:var(--lol-gold-bright)}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);color:var(--lol-text-bright);font-weight:700;line-height:1.2}a{color:var(--lol-gold-light);text-decoration:none;transition:color .2s}a:hover{color:var(--lol-gold-bright);text-shadow:0 0 8px var(--lol-gold-glow)}.app-container{flex-direction:column;align-items:center;max-width:48rem;min-height:100vh;margin:0 auto;padding:2rem 1rem 3rem;display:flex}header{text-align:center;width:100%;margin-bottom:3rem;position:relative}header:before{content:"";background:linear-gradient(90deg, transparent, var(--lol-gold), transparent);width:4rem;height:2px;margin:0 auto 1.5rem;display:block}header h1{font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;color:var(--lol-gold-bright);text-shadow:0 0 30px var(--lol-gold-glow), 0 2px 4px #00000080;margin-bottom:.5rem;font-size:2rem;font-weight:700}header h1 .accent{color:var(--lol-text-bright)}header p{font-family:var(--font-body);color:var(--lol-text-muted);letter-spacing:.04em;font-size:.9rem;font-weight:300}header:after{content:"";background:linear-gradient(90deg, transparent, var(--lol-gold-dark), transparent);width:8rem;height:1px;margin:1.25rem auto 0;display:block}button{font-family:var(--font-heading);cursor:pointer;white-space:nowrap;border:1px solid var(--lol-border);border-radius:var(--radius-sm);color:var(--lol-text);text-transform:uppercase;letter-spacing:.08em;background-color:#0000;justify-content:center;align-items:center;gap:.5rem;padding:.6rem 1.2rem;font-size:.8rem;font-weight:600;line-height:1;transition:all .25s;display:inline-flex;position:relative;overflow:hidden}button:before{content:"";pointer-events:none;background:linear-gradient(135deg,#0000 40%,#ffffff05 100%);position:absolute;inset:0}button:hover{border-color:var(--lol-gold-border);color:var(--lol-gold-bright);box-shadow:var(--shadow-gold);transform:translateY(-1px)}button:focus-visible{outline:2px solid var(--lol-gold);outline-offset:2px}button:active{transform:translateY(0)}.generate-btn,.restart-btn,.new-story-btn{background:linear-gradient(135deg, var(--lol-gold-dark) 0%, var(--lol-gold) 50%, var(--lol-gold-dark) 100%);border-color:var(--lol-gold);color:#0a0e0c;letter-spacing:.1em;text-shadow:0 1px 1px #ffffff26;background-size:200% 200%;padding:.75rem 1.75rem;font-weight:700;box-shadow:0 0 15px #c89b3c1f}.generate-btn:hover,.restart-btn:hover,.new-story-btn:hover{border-color:var(--lol-gold-bright);color:#000;background-position:100% 100%;transform:translateY(-2px);box-shadow:0 0 25px #c89b3c4d}.generate-btn:active,.restart-btn:active,.new-story-btn:active{transform:translateY(0);box-shadow:0 0 10px #c89b3c26}.home-btn,.reset-btn{border:1px solid var(--lol-border-hover);color:var(--lol-text-muted);text-transform:none;letter-spacing:.04em;background:0 0;font-weight:500}.home-btn:hover,.reset-btn:hover{background:var(--lol-steel-bg);border-color:var(--lol-steel);color:var(--lol-steel-light);box-shadow:0 0 12px var(--lol-steel-glow)}.option-btn{text-align:left;background:var(--lol-bg-card);border:1px solid var(--lol-border-hover);color:var(--lol-text);text-transform:none;letter-spacing:normal;font-weight:400;font-family:var(--font-body);border-radius:var(--radius-xs);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);justify-content:flex-start;padding:.85rem 1.25rem;font-size:.925rem}.option-btn:hover{background:var(--lol-steel-bg);border-color:var(--lol-steel);color:var(--lol-text-bright);box-shadow:0 0 16px var(--lol-steel-glow);transform:translate(4px)}.option-btn:before{content:"▸";color:var(--lol-gold);opacity:.6;margin-right:.5rem;font-size:.75rem;transition:opacity .2s}.option-btn:hover:before{opacity:1}.share-btn,.view-btn{color:var(--lol-text-muted);text-transform:none;letter-spacing:normal;font-size:.7rem;font-family:var(--font-body);background:0 0;border:none;padding:.25rem .5rem}.share-btn:hover,.view-btn:hover{color:var(--lol-gold-light);box-shadow:none;transform:none}.theme-input-container,.loading-container,.story-container,.story-loader,.story-game{background:var(--lol-bg-card);border:1px solid var(--lol-border);border-radius:var(--radius);box-shadow:var(--shadow-md);-webkit-backdrop-filter:blur(8px);width:100%}.theme-input-container,.loading-container{padding:2.5rem 2rem}.theme-input-container{text-align:center;position:relative}.theme-input-container:before,.theme-input-container:after{content:"◇";color:var(--lol-gold-dark);opacity:.3;font-size:.6rem;position:absolute}.theme-input-container:before{top:.75rem;left:.75rem}.theme-input-container:after{bottom:.75rem;right:.75rem}.theme-input-container h2{font-family:var(--font-heading);letter-spacing:.08em;text-transform:uppercase;color:var(--lol-gold-light);margin-bottom:.5rem;font-size:1.15rem;font-weight:700}.theme-input-container p{font-family:var(--font-body);color:var(--lol-text-muted);margin-bottom:1.75rem;font-size:.875rem;font-weight:300}.input-group{margin-bottom:1.25rem}.input-group input{width:100%;font-size:.9rem;font-family:var(--font-body);border:1px solid var(--lol-border);border-radius:var(--radius-xs);background:var(--lol-bg-input);color:var(--lol-text-bright);letter-spacing:.02em;padding:.8rem 1rem;font-weight:400;transition:all .25s}.input-group input::placeholder{color:var(--lol-text-sub);font-style:italic;font-weight:300}.input-group input:focus{border-color:var(--lol-gold);box-shadow:0 0 12px var(--lol-gold-glow), inset 0 0 8px #c89b3c0a;background:#0a0e0cf2;outline:none}.input-group input.error{border-color:var(--lol-destructive);box-shadow:0 0 12px #b83a2a33}.input-group input.error:focus{box-shadow:0 0 12px #b83a2a4d}.error-text{color:var(--lol-destructive);text-align:left;font-size:.75rem;font-family:var(--font-heading);letter-spacing:.04em;margin-top:.5rem;font-weight:500}.examples{text-align:left;margin-top:1.75rem}.examples h3{font-family:var(--font-heading);color:var(--lol-text-sub);text-transform:uppercase;letter-spacing:.12em;margin-bottom:.75rem;font-size:.65rem;font-weight:600}.examples ul{flex-wrap:wrap;gap:.5rem;list-style:none;display:flex}.examples li{font-size:.75rem;font-family:var(--font-heading);background:var(--lol-steel-bg);color:var(--lol-steel-light);border-radius:var(--radius-xs);cursor:default;letter-spacing:.04em;border:1px solid #5b7a6e26;padding:.3rem .75rem;font-weight:500;transition:all .2s}.examples li:hover{border-color:var(--lol-steel);background:#5b7a6e26;transform:translateY(-1px)}.loading-container{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:14rem;display:flex;position:relative}.loading-container:before,.loading-container:after{content:"◇";color:var(--lol-gold-dark);opacity:.3;font-size:.6rem;position:absolute}.loading-container:before{top:.75rem;left:.75rem}.loading-container:after{bottom:.75rem;right:.75rem}.loading-container h2{font-family:var(--font-heading);letter-spacing:.06em;text-transform:uppercase;color:var(--lol-gold-light);margin-bottom:.35rem;font-size:1.05rem;font-weight:700}.loading-container .theme-name{color:var(--lol-steel-light);font-family:var(--font-display);letter-spacing:.1em;margin-bottom:1.5rem;font-size:.85rem}.loading-animation{margin:1rem 0 1.5rem}.spinner{border:2px solid #c89b3c14;border-top-color:var(--lol-gold);border-right-color:var(--lol-steel);border-radius:50%;width:3rem;height:3rem;margin:0 auto;animation:.9s cubic-bezier(.6,0,.4,1) infinite spin;box-shadow:0 0 20px #c89b3c0f}@keyframes spin{to{transform:rotate(360deg)}}.loading-info{color:var(--lol-text-muted);font-size:.8rem;font-family:var(--font-body);letter-spacing:.04em;max-width:20rem;font-weight:300;line-height:1.5}.loading-info:after{content:"";animation:1.5s steps(4,end) infinite dots}@keyframes dots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}to{content:""}}.story-container{position:relative;overflow:hidden}.story-container:before,.story-container:after{content:"◆";color:var(--lol-gold-dark);opacity:.25;z-index:1;font-size:.5rem;position:absolute}.story-container:before{top:.5rem;left:.5rem}.story-container:after{bottom:.5rem;right:.5rem}.story-actions{border-bottom:1px solid var(--lol-border);justify-content:flex-end;gap:.5rem;padding:.75rem 1.5rem;display:flex}.story-loader{position:relative;overflow:hidden}.story-loader:before,.story-loader:after{content:"◆";color:var(--lol-gold-dark);opacity:.25;z-index:1;font-size:.5rem;position:absolute}.story-loader:before{top:.5rem;left:.5rem}.story-loader:after{bottom:.5rem;right:.5rem}.story-nav{border-bottom:1px solid var(--lol-border);padding:.75rem 1.5rem}.story-game{padding:2rem 1.75rem;position:relative}.story-header{text-align:center;border-bottom:1px solid var(--lol-border);margin-bottom:1.75rem;padding-bottom:1.25rem;position:relative}.story-header:after{content:"";background:var(--lol-gold);opacity:.4;width:3rem;height:1px;margin:1rem auto 0;display:block}.story-header h2{font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;color:var(--lol-gold-light);text-shadow:0 0 15px #c89b3c1f;font-size:1.15rem;font-weight:700}.story-content{margin-bottom:.5rem}.story-node p{font-family:var(--font-body);color:var(--lol-text);text-shadow:0 1px 2px #0000004d;letter-spacing:.01em;margin-bottom:1.5rem;font-size:1.025rem;font-weight:300;line-height:1.75}.story-node p:first-letter{font-size:2.5em;font-family:var(--font-display);color:var(--lol-gold);float:left;text-shadow:0 0 15px var(--lol-gold-glow);margin-top:.1rem;margin-right:.5rem;line-height:.85}.story-options{margin-top:1rem}.story-options h3{font-family:var(--font-heading);color:var(--lol-text-muted);text-transform:uppercase;letter-spacing:.12em;margin-bottom:.85rem;padding-left:1rem;font-size:.75rem;font-weight:600;position:relative}.story-options h3:before{content:"";background:var(--lol-gold);border-radius:1px;width:3px;height:1em;position:absolute;top:50%;left:0;transform:translateY(-50%)}.options-list{flex-direction:column;gap:.625rem;display:flex}.story-ending{text-align:center;border:1px solid var(--lol-border);border-radius:var(--radius-sm);background:var(--lol-steel-bg);margin-top:2rem;padding:1.5rem}.story-ending h3{font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--lol-gold-bright);text-shadow:0 0 20px var(--lol-gold-glow);margin-bottom:.75rem;font-size:1.05rem;font-weight:700}.winning-message{color:var(--lol-success);letter-spacing:.04em;margin-bottom:.5rem;font-size:.9rem;font-weight:600}.ending-message{color:var(--lol-text-muted);margin-bottom:.5rem;font-size:.85rem;font-weight:300}.story-controls{border-top:1px solid var(--lol-border);justify-content:center;gap:.75rem;margin-top:2rem;padding-top:1.25rem;display:flex}.error-message{border-radius:var(--radius-sm);text-align:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#b83a2a0f;border:1px solid #b83a2a33;margin-bottom:2rem;padding:1.5rem}.error-message h2{font-family:var(--font-heading);color:var(--lol-destructive);letter-spacing:.06em;text-transform:uppercase;margin-bottom:.5rem;font-size:1rem;font-weight:700}.error-message p{font-family:var(--font-body);color:var(--lol-text-muted);margin-bottom:1rem;font-size:.85rem;font-weight:300}.error-message button{background:var(--lol-destructive);color:var(--lol-text-bright);border-color:#0000;font-weight:600}.error-message button:hover{background:#c94a3a;box-shadow:0 0 15px #b83a2a40}footer{text-align:center;color:var(--lol-text-sub);font-size:.7rem;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;margin-top:3rem;padding:1.5rem 1rem;position:relative}footer:before{content:"";background:linear-gradient(90deg, transparent, var(--lol-gold-dark), transparent);opacity:.4;width:6rem;height:1px;margin:0 auto 1rem;display:block}@keyframes fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.theme-input-container,.loading-container,.story-game,.story-loader{animation:.5s ease-out fadeIn}@media (width<=640px){.app-container{padding:1rem .75rem 2rem}header h1{font-size:1.4rem}.theme-input-container,.loading-container{padding:1.75rem 1.25rem}.story-game{padding:1.25rem 1rem}.story-node p{font-size:.925rem}.story-controls{flex-direction:column;align-items:center}.story-controls button{width:100%;max-width:16rem}}
