:root{--font-display: "Syne", sans-serif;--font-body: "DM Sans", sans-serif;--font-mono: "JetBrains Mono", monospace;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 2rem;--font-size-4xl: 3rem;--font-size-5xl: 4rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 16px;--radius-xl: 24px;--radius-full: 9999px;--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--ease-out-back: cubic-bezier(.34, 1.56, .64, 1);--duration-fast: .2s;--duration-base: .4s;--duration-slow: .6s}[data-theme=light]{--color-bg: #fefefe;--color-bg-elevated: #ffffff;--color-surface: rgba(255, 255, 255, .9);--color-text: #0d0d0d;--color-text-secondary: #525252;--color-text-muted: #a3a3a3;--color-border: rgba(0, 0, 0, .08);--color-border-strong: rgba(0, 0, 0, .15);--color-accent: #ff3b5c;--color-accent-soft: rgba(255, 59, 92, .1);--color-success: #00c853;--color-like: #ff3b5c;--color-pass: #525252;--gradient-scrim: linear-gradient( to top, rgba(0, 0, 0, .7) 0%, rgba(0, 0, 0, .3) 30%, transparent 60% );--shadow-elevated: 0 8px 32px rgba(0, 0, 0, .12);--shadow-button: 0 2px 8px rgba(0, 0, 0, .15)}[data-theme=dark]{--color-bg: #0a0a0a;--color-bg-elevated: #141414;--color-surface: rgba(20, 20, 20, .95);--color-text: #fafafa;--color-text-secondary: #a3a3a3;--color-text-muted: #525252;--color-border: rgba(255, 255, 255, .08);--color-border-strong: rgba(255, 255, 255, .15);--color-accent: #ff4d6d;--color-accent-soft: rgba(255, 77, 109, .15);--color-success: #00e676;--color-like: #ff4d6d;--color-pass: #a3a3a3;--gradient-scrim: linear-gradient( to top, rgba(0, 0, 0, .85) 0%, rgba(0, 0, 0, .4) 30%, transparent 60% );--shadow-elevated: 0 8px 32px rgba(0, 0, 0, .4);--shadow-button: 0 2px 8px rgba(0, 0, 0, .3)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font-body);font-size:var(--font-size-base);background:var(--color-bg);color:var(--color-text);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}#root{min-height:100vh;min-height:100dvh}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--color-bg)}::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}button{font-family:inherit;cursor:pointer;border:none;background:none;outline:none;-webkit-tap-highlight-color:transparent}img{max-width:100%;display:block;-webkit-user-drag:none;-webkit-user-select:none;user-select:none}@keyframes flipIn{0%{transform:rotateX(90deg);opacity:0}to{transform:rotateX(0);opacity:1}}@keyframes flipOut{0%{transform:rotateX(0);opacity:1}to{transform:rotateX(-90deg);opacity:0}}@keyframes slideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.onboarding{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:var(--space-6);background:var(--color-bg)}.onboarding-inner{width:100%;max-width:560px;display:flex;flex-direction:column;gap:var(--space-10)}.onboarding-header{text-align:center}.brand{font-family:var(--font-display);font-size:var(--font-size-4xl);font-weight:800;letter-spacing:-.02em;color:var(--color-text);display:flex;align-items:center;justify-content:center;gap:var(--space-3)}.brand-icon{font-size:.8em}.subtitle{font-size:var(--font-size-lg);color:var(--color-text-secondary);margin-top:var(--space-2)}.onboarding-tags{flex:1}.tags-container{display:flex;flex-wrap:wrap;gap:var(--space-3);justify-content:center}.tag-btn{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);background:var(--color-bg-elevated);border:1.5px solid var(--color-border);border-radius:var(--radius-full);font-family:var(--font-body);font-size:var(--font-size-sm);font-weight:500;color:var(--color-text);transition:all .2s var(--ease-out-expo)}.tag-btn:hover{border-color:var(--color-text-muted);background:var(--color-surface)}.tag-btn.selected{background:var(--color-text);border-color:var(--color-text);color:var(--color-bg)}.tag-emoji{font-size:var(--font-size-lg)}.tag-name{font-weight:500}.onboarding-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--color-border)}.selection-status{display:flex;align-items:center;gap:var(--space-3)}.status-count{font-family:var(--font-mono);font-size:var(--font-size-2xl);font-weight:700;color:var(--color-text-muted);transition:color .2s;min-width:2ch}.status-count.ready{color:var(--color-success)}.status-text{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.start-btn{display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-4) var(--space-8);background:var(--color-text);color:var(--color-bg);font-family:var(--font-body);font-size:var(--font-size-base);font-weight:600;border-radius:var(--radius-full);transition:all .2s var(--ease-out-expo);min-width:140px;min-height:52px}.start-btn svg{width:18px;height:18px}.start-btn:hover{opacity:.9}.start-btn:disabled{opacity:.7;cursor:wait}.btn-loader{width:20px;height:20px;border:2px solid transparent;border-top-color:currentColor;border-radius:50%;animation:spin .6s linear infinite}@media(max-width:640px){.onboarding{padding:var(--space-4)}.brand{font-size:var(--font-size-3xl)}.tags-container{gap:var(--space-2)}.tag-btn{padding:var(--space-2) var(--space-4);font-size:var(--font-size-xs)}.tag-emoji{font-size:var(--font-size-base)}.onboarding-footer{flex-direction:column;gap:var(--space-4)}.start-btn{width:100%}}.toast{position:fixed;bottom:var(--space-6);left:50%;transform:translate(-50%);z-index:2000;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:0 8px 32px #0003;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.toast.boost{border-color:var(--color-like)}.toast.reduce{border-color:var(--color-pass)}.toast-icon{width:24px;height:24px;flex-shrink:0}.toast.boost .toast-icon{color:var(--color-like)}.toast.reduce .toast-icon{color:var(--color-pass)}.toast-icon svg{width:100%;height:100%}.toast-content{display:flex;flex-direction:column;gap:var(--space-1)}.toast-label{font-family:var(--font-mono);font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary)}.toast-tags{display:flex;flex-wrap:wrap;gap:var(--space-1)}.toast-tag{font-family:var(--font-mono);font-size:var(--font-size-sm);font-weight:500;padding:var(--space-1) var(--space-2);background:var(--color-surface);border-radius:var(--radius-sm)}.toast.boost .toast-tag{color:var(--color-like);background:#ef44441a}.toast.reduce .toast-tag{color:var(--color-pass);background:#9ca3af1a}.feed{height:100vh;height:100dvh;overflow-y:scroll;scroll-snap-type:y mandatory;scroll-behavior:smooth;background:var(--color-bg)}.feed::-webkit-scrollbar{display:none}.feed{-ms-overflow-style:none;scrollbar-width:none}.feed-header{position:fixed;top:0;left:0;right:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:var(--space-4) var(--space-6);background:linear-gradient(to bottom,var(--color-bg),transparent);pointer-events:none}.feed-header>*{pointer-events:auto}.brand-mark{position:absolute;left:var(--space-6);font-family:var(--font-display);font-size:var(--font-size-xl);font-weight:700}.feed-counter{font-family:var(--font-mono);font-size:var(--font-size-sm);display:flex;align-items:baseline;gap:2px;background:var(--color-surface);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:var(--space-2) var(--space-3);border-radius:var(--radius-full);border:1px solid var(--color-border)}.feed-counter .count{font-weight:700;color:var(--color-accent)}.feed-counter .divider{color:var(--color-text-muted)}.feed-counter .total{color:var(--color-text-secondary)}.feed-loading{height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4)}.feed-loading p{font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.1em}.loader{width:36px;height:36px;border:3px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:spin .7s linear infinite}.loader-small{width:24px;height:24px;border:2px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:spin .7s linear infinite}.update-banner{position:fixed;top:70px;left:50%;transform:translate(-50%);z-index:200;background:var(--color-bg-elevated);border:1px solid var(--color-accent);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-6);box-shadow:0 8px 32px #0003}.update-content{display:flex;flex-direction:column;align-items:center;gap:var(--space-1)}.update-sub{font-size:var(--font-size-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.feed-content{display:contents}.card-slide{height:100vh;height:100dvh;scroll-snap-align:start;scroll-snap-stop:always;display:flex;align-items:center;justify-content:center;padding:var(--space-8);padding-top:80px;padding-bottom:40px}.image-card{width:100%;max-width:400px;height:100%;max-height:700px;background:var(--color-bg-elevated);border-radius:var(--radius-xl);overflow:hidden;border:1px solid var(--color-border);display:flex;flex-direction:column;box-shadow:0 20px 60px #00000026}.card-image{flex:1;overflow:hidden;position:relative}.card-image img{width:100%;height:100%;object-fit:cover}.card-content{padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-4);background:var(--color-bg-elevated)}.card-tags{display:flex;flex-wrap:wrap;gap:var(--space-2)}.tag{font-family:var(--font-mono);font-size:var(--font-size-xs);font-weight:500;text-transform:uppercase;letter-spacing:.03em;padding:var(--space-1) var(--space-3);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-full);color:var(--color-text-secondary)}.card-actions{display:flex;justify-content:center;gap:var(--space-6)}.btn-action{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .2s var(--ease-out-expo)}.btn-action svg{width:24px;height:24px}.btn-action.pass{background:var(--color-bg);border:2px solid var(--color-border);color:var(--color-text-muted)}.btn-action.pass:hover{border-color:var(--color-pass);color:var(--color-pass);transform:scale(1.05)}.btn-action.pass.active{background:var(--color-pass);border-color:var(--color-pass);color:#fff}.btn-action.like{background:var(--color-like);border:2px solid var(--color-like);color:#fff;box-shadow:0 4px 16px #ff3b5c4d}.btn-action.like:hover{transform:scale(1.05);box-shadow:0 6px 20px #ff3b5c66}.btn-action.like.active{background:var(--color-like)}.btn-action:disabled{opacity:.6;cursor:default;transform:none!important}.prefetch-section{min-height:100vh;min-height:100dvh;scroll-snap-align:start;padding:var(--space-8);padding-top:calc(var(--space-6) + 60px);padding-bottom:var(--space-10);display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--color-bg)}.section-title{font-family:var(--font-display);font-size:var(--font-size-xl);font-weight:700;margin-bottom:var(--space-6);display:flex;align-items:center;gap:var(--space-2)}.section-badge{font-family:var(--font-mono);font-size:var(--font-size-xs);font-weight:600;padding:var(--space-1) var(--space-2);background:var(--color-accent-soft);color:var(--color-accent);border-radius:var(--radius-sm)}.prefetch-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:var(--space-3);width:100%;max-width:600px}.prefetch-card{position:relative;aspect-ratio:1;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--color-border);transition:all .3s var(--ease-out-expo)}.prefetch-card img{width:100%;height:100%;object-fit:cover;filter:saturate(.8);transition:filter .3s}.prefetch-card:hover img{filter:saturate(1)}.prefetch-card.newly-updated{border-color:var(--color-accent);animation:pulse-border 1s ease-in-out 3}@keyframes pulse-border{0%,to{box-shadow:0 0 #ff3b5c66}50%{box-shadow:0 0 0 6px #ff3b5c00}}.new-badge{position:absolute;top:var(--space-2);right:var(--space-2);font-family:var(--font-mono);font-size:10px;font-weight:700;padding:2px 6px;background:var(--color-accent);color:#fff;border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.05em}.section-subtitle{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-bottom:var(--space-4);text-align:center}.continue-button{display:flex;align-items:center;justify-content:center;gap:var(--space-3);width:100%;max-width:400px;margin-top:var(--space-6);padding:var(--space-4) var(--space-6);background:linear-gradient(135deg,var(--color-accent),#ff6b9d);color:#fff;font-family:var(--font-display);font-size:var(--font-size-md);font-weight:600;border:none;border-radius:var(--radius-lg);cursor:pointer;box-shadow:0 4px 20px #ff3b5c4d;transition:all .3s var(--ease-out-expo)}.continue-button:hover{box-shadow:0 6px 30px #ff3b5c66}.continue-button svg{width:20px;height:20px}.load-more{height:100vh;scroll-snap-align:start;display:flex;align-items:center;justify-content:center}.loading-indicator{display:flex;flex-direction:column;align-items:center;gap:var(--space-3)}.loading-indicator p{font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--color-text-muted)}.end-slide{height:100vh;scroll-snap-align:start;display:flex;align-items:center;justify-content:center}.feed-end{text-align:center;padding:var(--space-8)}.end-emoji{font-size:64px;display:block;margin-bottom:var(--space-4)}.feed-end h3{font-family:var(--font-display);font-size:var(--font-size-3xl);font-weight:700;margin-bottom:var(--space-2)}.feed-end p{color:var(--color-text-secondary);margin-bottom:var(--space-6)}.btn-restart{font-family:var(--font-body);font-size:var(--font-size-base);font-weight:600;padding:var(--space-4) var(--space-8);background:var(--color-text);color:var(--color-bg);border-radius:var(--radius-full);transition:opacity .2s}.btn-restart:hover{opacity:.9}.scroll-hint{position:absolute;bottom:var(--space-6);left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:var(--space-2);color:var(--color-text-muted);font-size:var(--font-size-sm);animation:bounce 2s infinite}.scroll-hint svg{width:20px;height:20px}@keyframes bounce{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(6px)}}.live-activity{position:fixed;right:var(--space-4);top:50%;transform:translateY(-50%);z-index:500;display:flex;flex-direction:column;gap:var(--space-2);max-height:60vh;overflow:hidden}.activity-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);font-family:var(--font-mono);font-size:var(--font-size-xs);white-space:nowrap;box-shadow:0 4px 12px #0000001a}.activity-item.added{border-color:var(--color-like);color:var(--color-like)}.activity-item.removed{border-color:var(--color-pass);color:var(--color-pass)}.activity-item .icon{width:16px;height:16px;flex-shrink:0}.activity-item .thumb{width:28px;height:28px;border-radius:var(--radius-sm);object-fit:cover}.activity-item .label{font-weight:600;text-transform:uppercase;letter-spacing:.03em}.changes-panel{position:fixed;right:var(--space-4);top:50%;transform:translateY(-50%);z-index:800;background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4);min-width:200px;max-width:280px;box-shadow:0 8px 32px #0003;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.changes-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}.changes-title{font-family:var(--font-mono);font-size:var(--font-size-sm);font-weight:700;text-transform:uppercase;letter-spacing:.05em}.changes-close{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border:none;background:var(--color-surface);border-radius:var(--radius-full);cursor:pointer;font-size:16px;color:var(--color-text-secondary);transition:all .2s}.changes-close:hover{background:var(--color-border);color:var(--color-text)}.changes-section{margin-top:var(--space-3)}.changes-label{display:block;font-family:var(--font-mono);font-size:var(--font-size-xs);font-weight:600;margin-bottom:var(--space-2)}.changes-section.added .changes-label{color:var(--color-like)}.changes-section.removed .changes-label{color:var(--color-pass)}.changes-thumbs{display:flex;gap:var(--space-1)}.changes-thumbs img{width:48px;height:48px;object-fit:cover;border-radius:var(--radius-sm);border:2px solid transparent}.changes-section.added .changes-thumbs img{border-color:var(--color-like)}.changes-section.removed .changes-thumbs img{border-color:var(--color-pass);opacity:.6}@media(max-width:480px){.card-slide{padding:var(--space-4);padding-top:70px;padding-bottom:20px}.image-card{max-width:100%;max-height:none;border-radius:var(--radius-lg)}.card-content{padding:var(--space-4)}.btn-action{width:52px;height:52px}.feed-header{padding:var(--space-3) var(--space-4)}}.theme-toggle{position:fixed;top:var(--space-6);right:var(--space-6);z-index:150;padding:0}.toggle-track{width:52px;height:32px;border-radius:var(--radius-full);padding:4px;transition:background-color .3s}.toggle-thumb{width:24px;height:24px;border-radius:50%;background:var(--color-bg);display:flex;align-items:center;justify-content:center;box-shadow:0 2px 4px #0003}.toggle-icon{font-size:14px;line-height:1}@media(max-width:768px){.theme-toggle{top:var(--space-4);right:var(--space-4)}.toggle-track{width:48px;height:28px}.toggle-thumb{width:20px;height:20px}.toggle-icon{font-size:12px}}.app{min-height:100vh;min-height:100dvh}.app-loading{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--color-bg)}.loader{width:40px;height:40px;border:3px solid var(--color-border-strong);border-top-color:var(--color-accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
