@import url("https://fonts.googleapis.com/css2?family=Archivo:wght@400;600&family=Space+Grotesk:wght@400;500;600;700&display=swap");:root{color-scheme:dark;--bg:#070707;--bg-soft:#0f0f12;--card:#141416;--card-soft:#1a1a1e;--accent:#20c9b5;--accent-strong:#3adfd0;--text:#f4f1ee;--muted:#9b9aa1;--line:#26262c;--radius:18px;--shadow:0 16px 40px rgba(0,0,0,.35)}*{box-sizing:border-box}body,html{margin:0;padding:0;font-family:Space Grotesk,Archivo,sans-serif;background:var(--bg);color:var(--text);min-height:100%}body{display:flex;justify-content:center}p{margin:0}.app{width:min(100%,480px);min-height:100vh;display:flex;flex-direction:column;background:var(--bg)}.topbar{justify-content:space-between;padding:24px 20px 8px;position:-webkit-sticky;position:sticky;top:0;background:rgba(7,7,7,.9);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:10}.top-left,.topbar{display:flex;align-items:center}.top-left{min-width:120px}.impersonate{background:var(--card-soft);border:1px solid var(--line);color:var(--text);border-radius:999px;padding:6px 10px;font-size:.75rem}.brand{display:flex;gap:8px;align-items:center;font-size:1.2rem;font-weight:700;color:var(--accent)}.brand-icon{display:grid;place-items:center;width:32px;height:32px;background:rgba(32,201,181,.18);border-radius:50%}.brand-icon svg{width:18px;height:18px;fill:currentColor}.brand-mark{font-weight:700;font-size:.95rem;letter-spacing:-.02em}.top-actions{display:flex;gap:12px;align-items:center}.tabs{display:flex;justify-content:space-around;padding:10px 16px 4px;border-bottom:1px solid var(--line);position:-webkit-sticky;position:sticky;top:64px;background:rgba(7,7,7,.9);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:9}.tab{background:transparent;border:none;color:var(--muted);font-weight:600;font-size:.95rem;padding:10px 16px;position:relative;cursor:pointer}.tab.active{color:var(--text)}.tab.active:after{content:"";position:absolute;left:12px;right:12px;bottom:-4px;height:3px;background:var(--accent);border-radius:999px}.subtabs{display:flex;gap:8px;margin:0 0 20px}.subtabs button{background:transparent;border:1px solid var(--line);color:var(--muted);padding:6px 10px;border-radius:999px;font-size:.8rem;cursor:pointer}.subtabs button.active{border-color:rgba(32,201,181,.4);color:var(--text)}.feed{flex:1 1;padding:16px 16px 80px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow)}.notice h3{margin:0 0 8px}.notice p{margin:4px 0;color:var(--muted)}.notice{margin-bottom:16px}.primary{background:var(--accent);border:none;color:#042623;padding:12px 16px;border-radius:999px;font-weight:700;cursor:pointer}.ghost{border:1px solid var(--line);padding:8px 12px;border-radius:999px}.ghost,.icon-button{background:transparent;color:var(--text);cursor:pointer}.icon-button{display:inline-flex;align-items:center;gap:8px;border:none;font-weight:600}.icon-button svg{width:15px;height:15px;fill:currentColor}.icon-button svg.icon-outline{fill:none;stroke:currentColor}.icon-button.muted{color:var(--muted)}.composer{margin:12px 0 18px}.fab-footer{width:44px;height:44px;border-radius:50%;border:none;background:var(--accent);color:#042623;font-size:1.6rem;font-weight:700;display:grid;place-items:center;box-shadow:0 10px 24px rgba(32,201,181,.25);cursor:pointer;margin:0 auto}.fab-footer.muted{background:var(--card-soft);color:var(--muted);box-shadow:none;cursor:default}.bottom-nav .fab-footer{background:var(--accent);color:#042623}.fab-plus{display:inline-block;line-height:1;transform:translateY(-1px)}.post-list{display:flex;flex-direction:column;gap:18px}.post{display:grid;grid-template-columns:40px 1fr auto;grid-gap:12px;gap:12px;padding-bottom:18px;border-bottom:1px solid var(--line)}.post:last-child{border-bottom:none}.post-avatar{width:40px;height:40px;border-radius:50%;background:rgba(120,150,148,.55);display:grid;place-items:center;font-weight:700;color:#f8f9f9}.post-main{cursor:pointer}.post-main:focus{outline:2px solid rgba(32,201,181,.35);outline-offset:6px;border-radius:12px}.post-meta{display:flex;gap:8px;align-items:baseline;color:var(--muted);font-size:.85rem}.ghost-inline{padding:2px 8px;font-size:.7rem}.post-author{color:var(--text);font-weight:600}.tag{display:inline-flex;margin:8px 0 6px;padding:4px 10px;border-radius:999px;color:#fff;font-weight:700;font-size:.75rem;letter-spacing:.06em;text-transform:uppercase}.post-detail .tag{align-self:flex-start}.tag--question{background:#2d9cff}.tag--confession{background:#ff4d3d}.tag--crush{background:#ff5fc4}.tag--dm-me{background:#3e6f98}.tag--event{background:#ff9a2e}.tag--psa{background:#d50000}.tag--shoutout{background:#38d08a}.tag--dub{background:#ffc400;color:#1a1a1a}.tag--rip{background:#6d6d6d}.tag--meme{background:#6d2bff}.tag--lost-found{background:#a67843}.post-body{margin:0 0 10px;font-size:1.05rem;line-height:1.5}.post-image{width:100%;border-radius:12px;margin-bottom:10px;border:1px solid var(--line)}.post-actions{display:flex;gap:8px;margin-top:8px}.vote-rail{display:flex;flex-direction:column;align-items:center;gap:6px;color:var(--muted);font-weight:700}.vote-rail button{background:transparent;border:none;color:var(--muted);cursor:pointer;font-size:1.1rem}.vote-rail button.active{color:var(--accent)}.vote-rail span{color:var(--muted)}.vote-rail .delete{margin-top:8px;font-size:.7rem;color:#cfeeea;border:1px solid rgba(32,201,181,.35);border-radius:999px;padding:4px 6px}.quote{border:1px solid var(--line);background:hsla(0,0%,100%,.02);border-radius:14px;padding:12px;margin:10px 0}.quote-image{width:100%;border-radius:10px;margin-top:8px;border:1px solid var(--line)}.quote-meta{display:flex;gap:12px;font-size:.8rem;color:var(--muted)}.poll{display:flex;flex-direction:column;gap:8px;margin:12px 0}.poll-option{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-radius:12px;background:var(--card-soft);border:1px solid var(--line);color:var(--text);cursor:pointer;position:relative;overflow:hidden;z-index:0}.poll-option:before{content:"";position:absolute;inset:0;width:var(--pct,0);background:hsla(0,0%,78%,.18);z-index:-1}.poll-option.voted:before{background:hsla(0,0%,78%,.2)}.poll-option span{position:relative}.poll-option.selected{background:hsla(0,0%,100%,.06);border-color:hsla(0,0%,100%,.2)}.poll-option:disabled{cursor:default;opacity:.85}.poll-stats{font-weight:600;color:var(--muted)}.comments{margin-top:12px;border-top:1px solid var(--line);padding-top:12px;display:flex;flex-direction:column;gap:10px}.comment{background:hsla(0,0%,100%,.02);border-radius:12px;padding:10px 12px}.comment-header{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.comment-badge{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:rgba(32,201,181,.2);color:var(--text);font-weight:700;font-size:.7rem}.comment-author{font-weight:600;margin-right:8px}.comment-time{font-size:.75rem;color:var(--muted)}.comment p{margin:6px 0 8px}.comment-votes{display:flex;gap:8px;align-items:center;color:var(--muted)}.comment-votes button{background:transparent;border:none;color:var(--text);padding:2px 6px;cursor:pointer}.comment-votes button.active{color:var(--accent)}.comment-form{display:flex;gap:8px}.comment-form input{flex:1 1;background:var(--card-soft);border:1px solid var(--line);border-radius:10px;padding:8px 12px;color:var(--text)}.comment-form button{background:var(--accent);border:none;color:#042623;padding:8px 12px;border-radius:10px;font-weight:600;cursor:pointer}.post-detail{display:flex;flex-direction:column;gap:12px;padding-bottom:16px}.detail-actions{justify-content:space-between;gap:12px;margin-top:0}.detail-actions,.post-vote-row{display:flex;align-items:center}.post-vote-row{gap:10px;color:var(--muted);font-weight:700}.post-vote-row button{background:transparent;border:none;color:var(--muted);cursor:pointer;font-size:1.1rem}.post-vote-row button.active{color:var(--accent)}.detail-buttons{display:flex;gap:8px}.comments h3{margin:6px 0 10px}.modal{position:fixed;inset:0;background:rgba(4,4,6,.75);display:flex;justify-content:center;align-items:flex-end;padding:20px}.modal-card{width:100%;max-width:480px;background:var(--card);border-radius:20px;padding:18px;border:1px solid var(--line);display:flex;flex-direction:column;gap:12px;animation:slideUp .2s ease-out}.modal-header{display:flex;justify-content:space-between;align-items:center}input,textarea{font-family:inherit}textarea{background:var(--card-soft);border:1px solid var(--line);border-radius:12px;padding:12px;color:var(--text);resize:vertical}.composer-row{display:flex;gap:12px;flex-wrap:wrap}.composer-row label{display:flex;flex-direction:column;gap:6px;font-size:.85rem;color:var(--muted)}.composer-row input[type=text]{background:var(--card-soft);border:1px solid var(--line);border-radius:10px;padding:8px 10px;color:var(--text)}.select{display:flex;flex-direction:column;gap:6px;font-size:.85rem;color:var(--muted)}.select select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--card-soft);border:1px solid var(--line);border-radius:10px;padding:8px 36px 8px 10px;color:var(--text);font-size:.95rem;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 18px) calc(50% - 2px),calc(100% - 12px) calc(50% - 2px);background-size:6px 6px,6px 6px;background-repeat:no-repeat}.file-upload{display:flex;flex-direction:column;gap:6px;font-size:.85rem;color:var(--muted)}.file-upload input{background:var(--card-soft);border:1px solid var(--line);border-radius:10px;padding:8px 10px;color:var(--text)}.image-preview{display:grid;grid-gap:8px;gap:8px}.image-preview img{width:100%;border-radius:12px;border:1px solid var(--line)}.toggle{flex-direction:row;align-items:center;gap:8px;margin-bottom:8px}.poll-builder{display:flex;flex-direction:column;gap:8px}.poll-builder input{background:var(--card-soft);border:1px solid var(--line);border-radius:10px;padding:8px 10px;color:var(--text)}.poll-actions{display:flex;gap:8px}.poll-actions .ghost{flex:1 1}.poll-actions .ghost:disabled{opacity:.5;cursor:default}.consent-root{position:fixed;inset:0;z-index:999;display:grid;place-items:center}.consent-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.7);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.consent-modal{position:relative;width:min(520px,calc(100vw - 32px));max-height:calc(100vh - 64px);overflow:auto;background:rgba(18,18,20,.98);border:1px solid var(--line);border-radius:16px;padding:16px;display:grid;grid-gap:12px;gap:12px;color:var(--text)}.consent-modal h2{margin:0}.consent-modal h3{margin:0 0 6px}.consent-bullets ul{margin:0;padding-left:18px;display:grid;grid-gap:6px;gap:6px}.consent-links{display:flex;gap:12px;flex-wrap:wrap}.consent-links a{color:var(--accent);font-weight:700}.consent-check{display:flex;gap:10px;align-items:flex-start;font-weight:600}.consent-check input{margin-top:2px}.consent-actions{display:flex;justify-content:space-between;gap:12px;margin-top:4px}.bottom-nav{position:-webkit-sticky;position:sticky;bottom:0;background:rgba(12,12,14,.95);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(5,1fr);grid-gap:8px;gap:8px;padding:12px 18px 20px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.bottom-nav button{background:transparent;border:none;color:var(--muted);font-weight:600;cursor:pointer}.bottom-nav button.active{color:var(--accent)}.extras-card{display:grid;grid-gap:12px;gap:12px}.extras-links{display:grid;grid-gap:8px;gap:8px}.report-button svg{fill:transparent;stroke:currentColor;stroke-width:1.6;stroke-linejoin:round;fill:currentColor}.report-button.reported{color:#ff5b5b}.reports-card{margin-top:16px;display:grid;grid-gap:12px;gap:12px}.report-item{border-top:1px solid var(--line);padding-top:10px;display:grid;grid-gap:6px;gap:6px}.report-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.legal .card h2{margin:0 0 6px}.legal .card h3{margin:12px 0 6px}.legal .card ul{margin:0;padding-left:18px;display:grid;grid-gap:6px;gap:6px}.danger{background:transparent;border:1px solid rgba(255,80,80,.45);color:hsla(0,100%,83%,.95);padding:10px 12px;border-radius:12px;font-weight:700;cursor:pointer;margin-top:14px}.danger:hover{border-color:rgba(255,80,80,.8)}.transcripts-card{margin-top:16px}.transcript-block{border-top:1px solid var(--line);padding-top:12px;margin-top:12px;display:grid;grid-gap:8px;gap:8px}.transcript-header{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.transcript-messages{display:grid;grid-gap:6px;gap:6px}.transcript-line{display:grid;grid-template-columns:auto auto 1fr;grid-gap:6px;gap:6px;font-size:.85rem;word-break:break-word;overflow-wrap:anywhere}.account-switcher{margin-bottom:16px}.card h3{margin:0 0 12px}.thread-origin{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px;margin-bottom:16px}.thread-origin.button-like{width:100%;text-align:left;cursor:pointer;font:inherit;color:inherit;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--line);background:var(--card)}.thread-actions{display:flex;justify-content:flex-end;margin-bottom:12px}.thread-list{display:grid;grid-gap:12px;gap:12px}.thread-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px;text-align:left;display:grid;grid-gap:10px;gap:10px;color:var(--text);cursor:pointer}.thread-post p{margin:4px 0 0;word-break:break-word;overflow-wrap:anywhere}.thread-preview{display:flex;justify-content:space-between;gap:12px;font-size:.85rem}.thread-preview span:first-child{flex:1 1;min-width:0;word-break:break-word;overflow-wrap:anywhere}.message-list{gap:4px;margin-bottom:16px}.message-list,.message-row{display:flex;flex-direction:column}.message-row{gap:6px}.message-row.mine{align-items:flex-end}.message-row.theirs{align-items:flex-start}.message-bubble{max-width:80%;padding:12px;border-radius:14px;background:var(--card-soft);border:1px solid var(--line);word-break:break-word;overflow-wrap:anywhere}.message-row.mine .message-bubble{background:rgba(32,201,181,.2);border-color:rgba(32,201,181,.4)}.message-time{font-size:.75rem;color:var(--muted);padding:0 4px}.message-row.mine .message-time{align-self:flex-end}.message-row.theirs .message-time{align-self:flex-start}.message-composer{display:flex;gap:8px}.message-composer.sticky{position:fixed;left:0;right:0;bottom:0;background:var(--bg);padding:12px 16px 18px;border-top:1px solid var(--line);z-index:8}.message-composer input{flex:1 1;background:var(--card-soft);border:1px solid var(--line);border-radius:12px;padding:10px 12px;color:var(--text)}.submit-button{margin-top:10px}.admin-panel{position:-webkit-sticky;position:sticky;bottom:76px;margin:12px 16px 24px;padding:14px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);display:grid;grid-gap:10px;gap:10px;box-shadow:var(--shadow)}.admin-panel h4{margin:0;font-size:.9rem}.admin-panel input{background:var(--card-soft);border:1px solid var(--line);border-radius:10px;padding:8px 10px;color:var(--text)}.admin-actions{display:flex;gap:8px}.ban-form{display:grid;grid-gap:10px;gap:10px;margin-top:12px}.ban-form input{background:var(--card-soft);border:1px solid var(--line);border-radius:10px;padding:8px 10px;color:var(--text)}.ban-list{display:grid;grid-gap:12px;gap:12px;margin-top:16px}.ban-item{display:flex;justify-content:space-between;align-items:center;background:var(--card);border:1px solid var(--line);padding:12px;border-radius:12px}.search-panel{display:flex;flex-direction:column;gap:16px}.search-row{display:grid;grid-template-columns:1fr auto;grid-gap:10px;gap:10px}.search-row input{background:var(--card-soft);border:1px solid var(--line);border-radius:12px;padding:10px 12px;color:var(--text)}.profile-card{display:grid;grid-gap:12px;gap:12px}.karma{display:flex;justify-content:space-between;align-items:center;padding:12px;border-radius:12px;background:var(--card-soft);border:1px solid var(--line);font-weight:700}.form-stack{display:grid;grid-gap:14px;gap:14px}.loading,.muted{color:var(--muted)}.loading{text-align:center}@keyframes slideUp{0%{transform:translateY(40px);opacity:0}to{transform:translateY(0);opacity:1}}@media (min-width:768px){.app{border:1px solid var(--line);border-radius:24px;margin:24px 0;overflow:hidden}}