:root{--vamp-red:#8b0000;--vamp-black:#0a0a0a;--bone-white:#e8e8e8;--blood-red:red;color:var(--bone-white);background:var(--vamp-black);font-family:Georgia,Times New Roman,serif;font-size:18px}body{margin:0;padding:0}#root{min-height:100vh}*{box-sizing:border-box}h1,h2,h3{margin:0;font-family:Georgia,serif}a{color:var(--vamp-red);text-decoration:none}a:hover{color:var(--blood-red)}img{max-width:100%}.app{color:#e8e8e8;background:linear-gradient(#0a0a0a 0%,#1a0a0a 50%,#0a0a0a 100%);flex-direction:column;min-height:100vh;font-family:Georgia,serif;display:flex}.app-main{flex:1 0 auto}.nav{z-index:50;background:#0a0a0a;border-bottom:3px solid #8b0000;justify-content:space-between;align-items:center;gap:20px;padding:18px 24px;display:flex;position:sticky;top:0}.nav-logo{color:#8b0000;text-shadow:0 0 10px #8b0000;letter-spacing:2px;flex-shrink:0;align-items:center;gap:10px;font-size:1.25rem;font-weight:700;display:flex}.nav-logo img{vertical-align:middle;width:auto;height:34px}.nav-logo span{vertical-align:middle}.home-logo{width:auto;height:120px;margin-bottom:20px}.nav-links{flex-wrap:wrap;gap:8px 14px;display:flex}.nav-links a{color:#888;white-space:nowrap;border:1px solid #0000;padding:8px 12px;font-size:1rem;transition:all .3s}.nav-links a:hover{color:red;text-shadow:0 0 10px red;border-color:#8b0000}.page{max-width:1200px;margin:0 auto;padding:40px 20px}.page h1{text-align:center;color:#8b0000;text-shadow:0 0 20px #8b0000;margin-bottom:10px;font-size:3rem}.page-desc{text-align:center;color:#888;margin-bottom:40px;font-size:1.2rem}.home-page{text-align:center}.home-page .title{letter-spacing:10px;margin-top:40px;font-size:5rem}.home-page .subtitle{color:#666;margin-bottom:40px;font-size:1.5rem;font-style:italic}.fart-button-wrapper{transition:transform .2s;display:inline-block}.fart-button-wrapper.farting{transform:scale(1.1)}.fart-button{color:#fff;cursor:pointer;text-shadow:0 0 10px red;background:linear-gradient(#8b0000 0%,#4a0000 100%);border:4px solid red;border-radius:15px;padding:25px 50px;font-family:Georgia,serif;font-size:1.8rem;transition:all .3s}.fart-button:hover{background:linear-gradient(#a00000 0%,#600000 100%);transform:scale(1.1);box-shadow:0 0 40px red}.popup-image{z-index:1000;background:#000000f2;justify-content:center;align-items:center;animation:.1s ease-in fadeIn;display:flex;position:fixed;inset:0}.popup-image img{object-fit:contain;border:5px solid #8b0000;border-radius:10px;max-width:90%;max-height:90%;animation:.3s ease-in-out infinite alternate pulse;box-shadow:0 0 50px red}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes pulse{0%{transform:scale(.98)}to{transform:scale(1.02)}}.fart-counter{color:#666;margin-top:20px;font-size:1.5rem}.featured-section{margin-top:60px}.featured-section h2{color:#8b0000;margin-bottom:30px;font-size:2rem}.featured-grid{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.featured-item{border:3px solid #2a1a1a;border-radius:10px;transition:all .3s;overflow:hidden}.featured-item:hover{border-color:#8b0000;box-shadow:0 0 20px #8b0000}.featured-item img{object-fit:cover;width:100%;height:250px}.featured-item span{color:#8b0000;text-align:center;background:#0a0a0a;padding:15px;font-weight:700;display:block}.characters-grid{grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:25px;display:grid}.character-card{background:#0a0a0a;border:3px solid #2a1a1a;border-radius:10px;transition:all .3s;overflow:hidden}.character-card:hover{border-color:#8b0000;transform:translateY(-5px)}.character-card img{object-fit:cover;width:100%;height:250px}.character-info{padding:20px}.character-info h3{color:#8b0000;margin-bottom:5px;font-size:1.5rem}.character-title{color:#666;margin-bottom:10px;font-style:italic;display:block}.character-info p{color:#aaa;line-height:1.6}.sound-grid{grid-template-columns:repeat(4,1fr);gap:15px;max-width:800px;margin:0 auto;display:grid}.sound-button{color:#fff;cursor:pointer;text-shadow:0 0 5px #000;border:3px solid red;border-radius:10px;padding:40px 20px;font-family:Georgia,serif;font-size:1.1rem;transition:all .2s}.sound-button:hover{transform:scale(1.05);box-shadow:0 0 20px red}.sound-button.playing{border-color:#fff;transform:scale(1.1);box-shadow:0 0 40px red}.vote-grid{gap:15px;max-width:600px;margin:0 auto;display:grid}.vote-button{cursor:pointer;text-align:left;background:#1a0a0a;border:2px solid #2a1a1a;border-radius:10px;align-items:center;gap:15px;padding:15px 20px;transition:all .3s;display:flex}.vote-button:hover{border-color:#8b0000}.vote-name{color:#8b0000;width:180px;font-size:1.1rem;font-weight:700}.vote-bar{background:#0a0a0a;border-radius:10px;flex:1;height:20px;overflow:hidden}.vote-fill{background:linear-gradient(90deg,#8b0000,red);height:100%;transition:width .5s}.vote-percent{color:#666;text-align:right;width:50px}.voted-message{text-align:center;background:#1a0a0a;border:3px solid #8b0000;border-radius:15px;max-width:500px;margin:0 auto;padding:60px 20px}.voted-message h3{color:#8b0000;margin-bottom:15px;font-size:2rem}.voted-message button{color:#fff;cursor:pointer;background:#8b0000;border:none;border-radius:8px;margin-top:20px;padding:15px 30px;font-size:1.1rem}.battle-arena{justify-content:center;align-items:center;gap:30px;margin:40px 0;display:flex}.battle-contender{text-align:center;background:#0a0a0a;border:3px solid #2a1a1a;border-radius:15px;width:200px;padding:20px;transition:all .3s}.battle-contender.voted{border-color:red;box-shadow:0 0 30px #8b000080}.battle-contender img{object-fit:cover;border-radius:10px;width:100%;height:150px}.battle-contender h3{color:#8b0000;margin:10px 0 5px}.vote-count{color:#666;margin-bottom:10px;font-size:1.5rem}.vote-btn{color:#8b0000;cursor:pointer;background:#1a0a0a;border:2px solid #8b0000;border-radius:8px;width:100%;padding:10px 25px;font-family:Georgia,serif;font-weight:700;transition:all .2s}.vote-btn:hover:not(:disabled){color:#fff;background:#8b0000}.vote-btn:disabled{opacity:.5;cursor:not-allowed}.vs{color:#8b0000;font-size:2rem;font-style:italic;font-weight:700}.total-votes{text-align:center;color:#666;margin-bottom:40px}.comments-section{text-align:center;max-width:500px;margin:0 auto}.comments-section h2{color:#8b0000;margin-bottom:20px;font-size:1.5rem}.comment-form{flex-direction:column;gap:10px;margin-bottom:20px;display:flex}.comment-form textarea{color:#e8e8e8;resize:none;background:#0a0a0a;border:2px solid #2a1a1a;border-radius:8px;min-height:80px;padding:12px;font-family:Georgia,serif}.comment-form textarea:focus{border-color:#8b0000;outline:none}.comment-form button{color:#fff;cursor:pointer;background:#8b0000;border:none;border-radius:5px;padding:10px 20px;font-family:Georgia,serif}.comment-form button:disabled{opacity:.5;cursor:not-allowed}.comments-list{text-align:left}.no-comments{color:#666;text-align:center;padding:20px;font-style:italic}.comment{background:#0a0a0a;border-left:3px solid #8b0000;border-radius:8px;margin-bottom:10px;padding:12px}.comment p{color:#e8e8e8;margin:0 0 5px}.comment-time{color:#666;font-size:.75rem}.view-more-btn{color:#8b0000;cursor:pointer;background:#1a0a0a;border:2px solid #8b0000;border-radius:8px;width:100%;margin-top:10px;padding:12px;font-family:Georgia,serif;transition:all .2s;display:block}.view-more-btn:hover{color:#fff;background:#8b0000}.posts-form{max-width:500px;margin:0 auto 30px}.posts-form textarea{color:#e8e8e8;resize:none;background:#0a0a0a;border:2px solid #2a1a1a;border-radius:8px;width:100%;min-height:100px;margin-bottom:10px;padding:12px;font-family:Georgia,serif}.posts-form textarea:focus{border-color:#8b0000;outline:none}.posts-form button{color:#fff;cursor:pointer;background:#8b0000;border:none;border-radius:8px;padding:12px 30px;font-family:Georgia,serif;font-size:1rem}.posts-list{max-width:500px;margin:0 auto}.post-item{background:#0a0a0a;border:2px solid #2a1a1a;border-radius:10px;margin-bottom:15px;padding:20px}.post-item p{color:#e8e8e8;white-space:pre-wrap;margin:0 0 10px;line-height:1.6}.post-item span{color:#666;font-size:.8rem}.total-votes{text-align:center;color:#666;margin-top:30px}.about-page h1{margin-bottom:40px}.about-section{background:#0a0a0a;border:2px solid #2a1a1a;border-radius:10px;margin-bottom:30px;padding:30px}.about-section h2{color:#8b0000;text-align:left;border-bottom:1px solid #2a1a1a;margin-bottom:20px;padding-bottom:10px;font-size:1.8rem}.about-section p{color:#aaa;margin-bottom:15px;line-height:1.8}.powered-by{font-style:italic;color:#666!important}.footer{text-align:center;color:#666;background:#0a0a0a;border-top:3px solid #8b0000;margin-top:40px;padding:20px}.footer p{margin:0}.about-section ul{padding:0;list-style:none}.about-section li{color:#aaa;border-bottom:1px solid #1a0a0a;padding:8px 0}.about-section li:last-child{color:#8b0000;border-bottom:none;font-style:italic}@media (width<=768px){.nav{flex-direction:column;gap:15px;padding:15px}.nav-links{flex-wrap:wrap;justify-content:center}.home-page .title{font-size:3rem}.featured-grid{grid-template-columns:1fr}.sound-grid{grid-template-columns:repeat(2,1fr)}.characters-grid{grid-template-columns:1fr}.vote-name{width:120px;font-size:.9rem}}.nav-links a.active{color:red;text-shadow:0 0 10px red;border-color:#8b0000}.home-quip{color:#b08c8c;min-height:1.5em;margin-top:18px;font-style:italic}.sound-hint{color:#4f4040;letter-spacing:.08em;margin-top:10px;font-size:.75rem}.popup-image{cursor:pointer}.footer-fine{color:#4f4040;font-size:.75rem;margin-top:6px!important}.notfound-page{text-align:center;padding-top:80px}.notfound-code{color:#8b0000;text-shadow:0 0 30px #8b0000;margin:0;font-size:8rem;line-height:1}.home-link-btn{color:#f55;border:2px solid #8b0000;border-radius:8px;margin-top:20px;padding:12px 26px;transition:all .2s;display:inline-block}.home-link-btn:hover{color:#fff;background:#8b0000}.empty-state{color:#9a8a8a;border:2px dashed #3a2222;border-radius:12px;max-width:520px;margin:0 auto;padding:40px 24px}.form-footer{justify-content:space-between;align-items:center;display:flex}.char-count{color:#5a4a4a;font-size:.75rem}.form-error{color:#f66;text-align:center;max-width:500px;margin:0 auto 18px;font-size:.9rem}@media (width<=768px){.nav{gap:10px;padding:14px 12px}.nav-links{gap:4px 6px}.nav-links a{padding:6px 10px;font-size:.9rem}}.synth-page{text-align:center;max-width:900px}.seq-panel{background:#0a0707;border:2px solid #2a1a1a;border-radius:12px;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px 18px;margin-bottom:14px;padding:14px 16px;display:flex}.play-btn,.clear-btn,.ghost-btn{cursor:pointer;letter-spacing:.04em;border-radius:6px;padding:10px 20px;font-family:Georgia,serif;font-size:.95rem;font-weight:700;transition:all .2s}.play-btn{color:#8b0000;background:#1a0a0a;border:2px solid #8b0000;min-width:116px}.play-btn:hover{color:#fff;background:#8b0000}.play-btn.playing{color:#fff;background:red;border-color:red;box-shadow:0 0 22px #ff00008c}.clear-btn{color:#777;background:#1a0a0a;border:2px solid #333}.clear-btn:hover{color:red;border-color:red}.ghost-btn{color:#9a8080;background:0 0;border:2px solid #3a2222;font-weight:400}.ghost-btn:hover{color:#f55;border-color:#8b0000}.seq-settings{gap:10px 28px}.seq-field{flex-direction:column;align-items:center;gap:6px;min-width:150px;display:flex}.seq-field span{letter-spacing:.14em;text-transform:uppercase;color:#7a6a6a;font-size:.72rem}.seq-field b{color:#d8c8c8;letter-spacing:0;margin-left:4px;font-weight:400}.seq-field input[type=range]{accent-color:#8b0000;cursor:pointer;width:100%}.seq-presets{gap:8px}.seq-caption{letter-spacing:.16em;text-transform:uppercase;color:#6a5a5a;margin-right:4px;font-size:.7rem}.preset-btn{color:#a08a8a;cursor:pointer;background:#120a0a;border:1px solid #322;border-radius:20px;padding:7px 13px;font-family:Georgia,serif;font-size:.78rem;transition:all .2s}.preset-btn:hover{color:#f55;border-color:#8b0000}.preset-btn.active{color:#fff;background:#8b0000;border-color:#f44}.visualizer-container{border:3px solid #8b0000;border-radius:10px;max-width:640px;margin:20px auto;overflow:hidden;box-shadow:inset 0 0 24px #8b000040}.visualizer{background:#080606;width:100%;height:160px;display:block}.sequencer{--cell:30px;--cell-gap:4px;--rowhead:148px;flex-direction:column;gap:5px;width:max-content;max-width:100%;margin:20px auto 0;display:flex}.seq-row{grid-template-columns:var(--rowhead) repeat(16, var(--cell));gap:var(--cell-gap);align-items:center;display:grid}.seq-head{margin-bottom:3px}.seq-rowhead{justify-content:flex-end;align-items:center;gap:6px;min-width:0;padding-right:6px;display:flex}.seq-step-label{letter-spacing:.16em;color:#4a3a3a;font-size:.62rem}.seq-preview{color:#9a8a8a;text-align:right;cursor:pointer;background:0 0;border:none;padding:0;font-family:Georgia,serif;font-size:.75rem;line-height:1.15;transition:color .15s}.seq-preview span{color:#5a4646;font-size:.62rem;display:block}.seq-preview:hover{color:#f44}.seq-preview:hover span{color:#a05050}.seq-mute{color:#544;cursor:pointer;background:#120a0a;border:1px solid #2a1a1a;border-radius:4px;flex:none;width:22px;height:22px;padding:0;font-family:Georgia,serif;font-size:.6rem;font-weight:700;transition:all .15s}.seq-mute:hover{color:#f66;border-color:#8b0000}.seq-mute.on{color:#fff;background:#8b0000;border-color:#f44}.seq-cell{width:var(--cell);height:var(--cell);cursor:pointer;background:#160c0c;border:2px solid #2a1a1a;border-radius:4px;padding:0;transition:background .1s,border-color .1s,box-shadow .1s}.seq-cell:hover{background:#241010;border-color:#8b0000}.seq-cell.active{background:linear-gradient(#c41010 0%,#6b0000 100%);border-color:#ff3030;box-shadow:0 0 10px #ff00008c}.seq-cell.muted{opacity:.35}.seq-cell.current{border-color:#fff}.seq-cell.current.active{box-shadow:0 0 16px red}.seq-dot{background:#160c0c;border:1px solid #2a1a1a;border-radius:3px;height:6px}.seq-dot.active{background:#ff2020;border-color:#ff2020;box-shadow:0 0 10px red}.seq-hint{color:#635353;margin:22px auto 0;font-size:.78rem;line-height:1.7}.special-note{color:#665656;border-top:1px solid #2a1a1a;margin-top:32px;padding:20px;font-size:.9rem;font-style:italic;line-height:1.6}@media (width<=760px){.sequencer{--cell:25px;--cell-gap:3px;--rowhead:120px}}@media (width<=620px){.sequencer{--cell:17px;--cell-gap:3px;--rowhead:92px}.seq-preview{font-size:.68rem}.seq-preview span{display:none}.seq-mute{width:18px;height:18px;font-size:.55rem}.seq-field{min-width:120px}.visualizer{height:120px}}@media (width<=400px){.sequencer{--cell:14px;--cell-gap:2px;--rowhead:78px}.seq-preview{font-size:.6rem}}
