:root{--bg:#000;--bg2:#0a0a0a;--bg3:#121212;--border:#232323;--text:#f1f0f7;--text2:#8f8ea3;--text3:#5c5b6a;
 --accent:#ff4500;--accent2:#ff6534;--accent-dim:rgba(255,69,0,.14);--ghost-grad:linear-gradient(135deg,#ff4500 0%,#ff6534 50%,#ff8c69 100%);--radius:12px}
*{box-sizing:border-box}
body{margin:0;font-family:'Sora',sans-serif;background:var(--bg);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.45}
a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}
main{max-width:680px;margin:0 auto;padding:12px 16px 80px}

/* topbar */
.topbar{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:var(--bg);border-bottom:1px solid var(--border)}
.logo{display:flex;align-items:center;gap:8px;font-size:1.05rem;font-weight:700;letter-spacing:-.02em}.logo:hover{text-decoration:none}
.logo-dot{width:10px;height:10px;border-radius:50%;background:var(--accent);box-shadow:0 0 10px var(--accent)}
.topbar-right{display:flex;align-items:center;gap:14px}.toplink{font-size:.82rem;font-weight:600;color:var(--text2)}.toplink:hover{color:var(--accent);text-decoration:none}

/* hero search: big and centred on home, collapses to a bar at the top on results */
.hero-wrap{display:flex;flex-direction:column;align-items:center;text-align:center;padding:9vh 0 6px;transition:padding .45s cubic-bezier(.4,0,.2,1)}
body:not(.home) .hero-wrap{padding:6px 0 4px}
.fold{max-height:260px;opacity:1;overflow:hidden;transition:max-height .45s cubic-bezier(.4,0,.2,1),opacity .3s,margin .45s}
body:not(.home) .fold{max-height:0;opacity:0;margin-top:0!important;margin-bottom:0!important;pointer-events:none}
.hero-mark{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.ghost-emoji{font-size:2.1rem;filter:drop-shadow(0 0 14px var(--accent-dim))}
.hero-wordmark{font-size:2.3rem;font-weight:700;letter-spacing:-.04em;background:var(--ghost-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero-tagline{font-size:.88rem;color:var(--text2);margin:0 0 26px;max-width:420px}
.home-search{width:100%;max-width:560px;margin:0 auto}
.input-row{display:flex;gap:10px;align-items:stretch}
.input-wrap{flex:1;display:flex;align-items:center;background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;transition:border-color .2s}
.input-wrap:focus-within{border-color:var(--accent)}.input-wrap.bad{border-color:#ff5c5c}
.input-prefix{background:none;border:none;padding:0 6px 0 14px;align-self:stretch;font-family:'JetBrains Mono',monospace;font-size:.95rem;color:var(--accent);font-weight:500;cursor:pointer}
.username-input{flex:1;min-width:0;border:none;outline:none;background:transparent;color:var(--text);font-size:.95rem;font-family:'JetBrains Mono',monospace;padding:14px 14px 14px 0}
.username-input::placeholder{color:var(--text3)}
.search-btn{background:var(--accent);color:#fff;border:none;border-radius:var(--radius);padding:0 22px;font-family:inherit;font-size:.9rem;font-weight:600;cursor:pointer;min-height:50px;transition:background .2s,transform .1s}
.search-btn:hover{background:var(--accent2)}.search-btn:active{transform:scale(.97)}
.quick-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:18px auto 4px;max-width:560px}
.quick-btn,.recent-chip{display:inline-flex;align-items:center;background:var(--bg2);border:1px solid var(--border);color:var(--text2);border-radius:20px;padding:7px 15px;font-size:.8rem;font-weight:600;transition:all .18s;cursor:pointer}
.quick-btn:hover,.recent-chip:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim);text-decoration:none}
.recent-searches{margin:28px 0 4px;width:100%;max-width:560px}
.recent-head{font-size:.76rem;font-weight:700;color:var(--text2);text-transform:uppercase;letter-spacing:.04em;margin-bottom:10px}
.recent-list{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.recent-chip{padding:3px 3px 3px 14px;gap:2px}.recent-chip a{padding:4px 0}.recent-chip a:hover{text-decoration:none}
.rc-prefix{color:var(--text3);font-weight:500}.recent-chip:hover .rc-prefix{color:var(--accent)}
.rc-remove{background:none;border:none;color:var(--text3);font-size:.8rem;cursor:pointer;padding:5px 8px;border-radius:50%}.rc-remove:hover{color:#ff5c5c;background:rgba(255,92,92,.12)}

/* content */
.card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px;margin:10px 0}
.meta{color:var(--text3);font-size:.76rem}.title{font-size:1rem;font-weight:600;margin:3px 0;display:block}
.tabs{margin:14px 0 6px}.tabs a{margin-right:6px;padding:5px 14px;border:1px solid var(--border);border-radius:20px;color:var(--text2);font-size:.78rem;font-weight:500;display:inline-block}
.tabs a.on{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}
.cm{border-left:2px solid var(--border);padding-left:12px;margin:10px 0 10px 2px}.cm .body{margin:2px 0}.cm p,.card p{margin:.4em 0}
.more,button.more{color:var(--accent);background:var(--bg2);border:1px solid var(--accent);border-radius:var(--radius);padding:9px 26px;cursor:pointer;font:600 .85rem 'Sora',sans-serif;display:block;margin:18px auto}
.more:hover{background:var(--accent);color:#fff}
.sk{height:64px;background:var(--bg2);border-radius:var(--radius);margin:10px 0;animation:p 1s infinite alternate}@keyframes p{to{opacity:.4}}
.err{color:#ff5c5c}img.m{max-width:100%;border-radius:8px;margin-top:8px}
.nsfw{color:#ff5c5c;font-size:.68rem;border:1px solid #ff5c5c;border-radius:4px;padding:0 5px;vertical-align:middle}
.hero{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin:10px 0;padding-bottom:12px}
.ban{height:90px;background:var(--ghost-grad) center/cover}.hero>p,.hero>.meta{margin:6px 16px}
.hrow{display:flex;gap:12px;align-items:flex-start;padding:0 16px}.hrow .av{margin-top:-30px}.hrow>div:last-child{min-width:0;padding-top:8px}.hrow h2{margin:0;font-size:1.15rem;word-break:break-word}
.av{width:64px;height:64px;border-radius:50%;border:3px solid var(--bg2);background:var(--bg3);object-fit:cover;flex:none}
@media(max-width:600px){.hero-wrap{padding-top:6vh}.hero-wordmark{font-size:1.7rem}.ghost-emoji{font-size:1.6rem}.search-btn{min-height:46px;padding:0 16px}}

.flair{display:inline-block;font-size:.72rem;border:1px solid var(--border);color:var(--text2);border-radius:20px;padding:1px 10px;margin:3px 0}
.mw{margin:8px 0;border-radius:8px;overflow:hidden;background:var(--bg3);position:relative}
.mw img,.mw video{display:block;max-width:100%;max-height:540px;margin:0 auto;object-fit:contain}
.gal{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:6px}.gal img{flex:0 0 100%;scroll-snap-align:start;max-width:100%}
.gal-n{font-size:.72rem;color:var(--text3);padding:4px 8px}
.mw.blur{cursor:pointer}.mw.blur img,.mw.blur video{filter:blur(30px)}
.mw.blur::after{content:'NSFW / spoiler - tap to reveal';position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:600;color:#fff;text-shadow:0 1px 4px #000}
.snip{max-height:7.5em;overflow:hidden;color:var(--text2);font-size:.88rem;-webkit-mask-image:linear-gradient(#000 65%,transparent);mask-image:linear-gradient(#000 65%,transparent)}
.card>.meta:last-child{margin-top:6px}
/* search prefix + live warning */
.pfx{display:none;align-self:stretch;padding-left:12px}.pfx.set{display:flex}.pfx:not(.set)+.username-input{padding-left:14px}
.pfx button{background:none;border:none;font:500 .95rem 'JetBrains Mono',monospace;color:var(--accent);opacity:.55;cursor:pointer;padding:0 5px}
.pfx button:hover{opacity:1}.pfx.set button{display:none}.pfx.set button.sel{display:block;opacity:1}
.warn{max-height:0;overflow:hidden;opacity:0;text-align:left;color:#ff9b6b;font-size:.78rem;padding:0 6px;transition:max-height .25s,opacity .25s,padding .25s}
.warn.on{max-height:40px;opacity:1;padding-top:7px}

.bar{display:flex;gap:8px;margin-top:8px}
.vote{display:inline-flex;align-items:center;gap:5px;background:var(--bg3);border:1px solid var(--border);border-radius:20px;padding:3px 11px;font-size:.78rem;font-weight:600;color:var(--text2)}
.vote .ico{width:14px;height:14px;flex:none}

.card[data-href]{cursor:pointer}.card[data-href]:hover{border-color:#333}
.mw img{cursor:zoom-in}
#lb{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.5);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}
#lb[hidden]{display:none}#lb img{max-width:94vw;max-height:88vh;object-fit:contain;border-radius:8px;box-shadow:0 10px 50px rgba(0,0,0,.6)}
.lb-x,.lb-nav{position:absolute;background:rgba(255,255,255,.12);border:none;color:#fff;border-radius:50%;width:42px;height:42px;font-size:1.3rem;cursor:pointer}
.lb-x:hover,.lb-nav:hover{background:rgba(255,255,255,.25)}.lb-x{top:14px;right:14px}
.lb-nav{top:50%;transform:translateY(-50%);display:none;font-size:1.8rem;line-height:1}#lb.multi .lb-nav{display:block}.lb-prev{left:12px}.lb-next{right:12px}
.lb-n{position:absolute;bottom:14px;left:0;right:0;text-align:center;color:#fff;font-size:.8rem}
body.lb-open{overflow:hidden}

.mw{display:block}.cm .mw,.card .snip .mw{max-width:420px}
.mdh{margin:.5em 0 .2em;font-size:1rem}
.ban{overflow:hidden}.ban img{width:100%;height:100%;object-fit:cover;display:block;cursor:zoom-in}
img.av{cursor:zoom-in}

.gal{scrollbar-width:none}.gal::-webkit-scrollbar{display:none}
.gcount{position:absolute;top:8px;right:8px;z-index:2;background:rgba(0,0,0,.6);color:#fff;font-size:.72rem;font-weight:600;padding:2px 9px;border-radius:12px}
.gnav{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:34px;height:34px;border-radius:50%;border:none;background:rgba(0,0,0,.55);color:#fff;font-size:1.5rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0 0 3px}
.gnav:hover{background:rgba(0,0,0,.8)}.gnav[hidden]{display:none}.gprev{left:8px}.gnext{right:8px}
