:root{--bg:#000;--bg-surface:#0a0a0a;--bg-card:#111;--bg-hover:#1a1a1a;--text:#e8e8e8;--text-muted:#888;--text-dim:#555;--accent:#037968;--accent-hover:#3f6e66;--accent-light:rgba(3,121,104,.15);--border:#222;--border-light:#333;--error:#e74c3c;--error-bg:rgba(231,76,60,.1);--success:#037968;--font-display:Georgia,"Times New Roman",serif;--font-body:system-ui,-apple-system,"Segoe UI",sans-serif;--note-bg:rgba(3,121,104,.08);--note-border:#037968;--note-text:#5aada0;--radius:8px;--radius-lg:12px;--shadow:0 2px 8px rgba(0,0,0,.4)}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body,html{height:100%;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}.app-layout{display:flex;min-height:100vh}.easter-egg-overlay{position:fixed;inset:0;pointer-events:none;z-index:200;display:flex;justify-content:center;align-items:flex-start}.easter-egg-message{margin-top:72px;font-family:var(--font-display);font-size:28px;letter-spacing:.08em;background:linear-gradient(120deg,#fff1c9,#f1c558,#f9e9b6,#d7a447);background-size:220% 100%;color:transparent;-webkit-background-clip:text;text-shadow:0 0 12px rgba(241,197,88,.45);animation:shimmer-text 2.6s linear infinite;z-index:2}.easter-egg-confetti{position:absolute;inset:0;pointer-events:none;z-index:1}.easter-egg-confetti canvas{width:100%;height:100%;display:block}@keyframes shimmer-text{0%{background-position:0 50%}to{background-position:200% 50%}}.sidebar{width:260px;background:var(--bg-surface);border-right:1px solid var(--border);padding:20px 0;display:flex;flex-direction:column;position:fixed;top:0;left:0;height:100vh;overflow-y:auto;z-index:10}.sidebar-header{padding:0 20px 20px;border-bottom:1px solid var(--border);margin-bottom:16px}.logo{font-family:var(--font-display);font-size:22px;font-weight:700;color:var(--accent);letter-spacing:1px}.logo span{color:var(--text)}.sidebar-nav{flex:1 1;padding:0 12px;position:relative;border-radius:12px;transition:box-shadow .2s ease,outline-color .2s ease}.nav-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--radius);color:var(--text-muted);cursor:pointer;transition:all .15s;font-size:14px}.nav-item:hover{background:var(--bg-hover);color:var(--text)}.nav-item.active{background:var(--accent-light);color:var(--accent)}.nav-item .count{margin-left:auto;font-size:12px;color:var(--text-dim)}.board-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.sidebar-user{padding:16px 20px;border-top:1px solid var(--border);display:flex;align-items:center;gap:10px}.user-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover}.user-name{font-size:13px;color:var(--text-muted)}.main-content{flex:1 1;margin-left:260px;padding:0;display:flex;flex-direction:column;min-height:100vh}.capture-bar{position:-webkit-sticky;position:sticky;top:0;z-index:5;background:var(--bg-surface);border-bottom:1px solid var(--border);padding:16px 24px;display:flex;gap:12px;align-items:center}.capture-input{flex:1 1;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:10px 16px;color:var(--text);font-size:14px;font-family:var(--font-body);outline:none;transition:border-color .15s}.capture-input::placeholder{color:var(--text-dim)}.capture-input:focus{border-color:var(--accent)}.btn{padding:10px 20px;border-radius:var(--radius);border:none;font-size:14px;font-weight:600;cursor:pointer;transition:all .15s;font-family:var(--font-body)}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-secondary{background:var(--bg-card);color:var(--text-muted);border:1px solid var(--border)}.btn-secondary:hover{background:var(--bg-hover);color:var(--text)}.btn-danger{background:var(--error-bg);color:var(--error)}.btn-danger:hover{background:var(--error);color:#fff}.btn-sm{padding:6px 12px;font-size:12px}.btn-icon{padding:6px;background:transparent;border:none;color:var(--text-dim);cursor:pointer;border-radius:var(--radius);display:flex;align-items:center;justify-content:center}.btn-icon:hover{background:var(--bg-hover);color:var(--text)}.board-header{padding:24px 24px 0}.board-header h1{font-family:var(--font-display);font-size:28px;font-weight:400;color:var(--text);letter-spacing:.5px}.snap-grid{padding:20px 24px}.main-footer{margin-top:auto;padding:8px 16px 12px;border-top:1px solid var(--border);color:var(--text-dim);font-size:11px;text-align:right}.my-masonry-grid{display:flex;width:auto;margin-left:-16px}.my-masonry-grid_column{padding-left:16px;background-clip:padding-box}.snap-card{position:relative;margin-bottom:16px}.snap-card-shell{position:relative;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:visible;transition:all .2s}.snap-card-content{border-radius:var(--radius-lg);overflow:hidden}.snap-card:hover .snap-card-shell{border-color:var(--border-light);box-shadow:var(--shadow)}.snap-confetti{position:absolute;inset:-12px;pointer-events:none;z-index:2}.snap-confetti canvas{width:100%;height:100%;display:block;pointer-events:none}.snap-card.confetti-active .snap-card-shell{border-left:3px solid #f1c558;box-shadow:0 0 0 1px rgba(241,197,88,.35),0 0 18px rgba(241,197,88,.25);animation:confetti-border-pulse 1.6s ease-in-out infinite}.snap-card.confetti-reduced .snap-card-shell{border-left:3px solid #f1c558;box-shadow:0 0 0 1px rgba(241,197,88,.4),0 0 16px rgba(241,197,88,.2)}@keyframes confetti-border-pulse{0%{box-shadow:0 0 0 1px rgba(241,197,88,.25),0 0 10px rgba(241,197,88,.18)}50%{box-shadow:0 0 0 1px rgba(241,197,88,.45),0 0 22px rgba(241,197,88,.3)}to{box-shadow:0 0 0 1px rgba(241,197,88,.25),0 0 10px rgba(241,197,88,.18)}}@media (prefers-reduced-motion:reduce){.snap-card.confetti-active .snap-card-shell{animation:none}}.snap-card.version-capturing .snap-card-shell{border-left:3px solid var(--accent);box-shadow:0 0 0 1px rgba(3,121,104,.35),0 0 18px rgba(3,121,104,.25);animation:version-capture-pulse 1.8s ease-in-out infinite}.snap-card.version-capturing .snap-card-content{opacity:.68}@keyframes version-capture-pulse{0%{box-shadow:0 0 0 1px rgba(3,121,104,.25),0 0 10px rgba(3,121,104,.18)}50%{box-shadow:0 0 0 1px rgba(3,121,104,.5),0 0 24px rgba(3,121,104,.32)}to{box-shadow:0 0 0 1px rgba(3,121,104,.25),0 0 10px rgba(3,121,104,.18)}}@media (prefers-reduced-motion:reduce){.snap-card.version-capturing .snap-card-shell{animation:none}}.snap-card-thumb{width:100%;aspect-ratio:16/9;object-fit:cover;display:block;background:#1a1a1a}.snap-card-body{padding:14px;position:relative;z-index:3}.snap-card-title{font-family:var(--font-display);font-size:15px;color:var(--text);margin-bottom:4px;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.snap-card-domain{font-size:12px;color:var(--text-dim);margin-bottom:8px}.snap-card-status{display:inline-block;font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;text-transform:uppercase;letter-spacing:.5px}.status-preserved{background:var(--accent-light);color:var(--accent)}.status-capturing{background:rgba(255,193,7,.15);color:#ffc107}.status-error{background:var(--error-bg);color:var(--error)}.status-pending{background:rgba(255,193,7,.12);color:#ffc107}.status-ready{background:var(--accent-light);color:var(--accent)}.status-failed{background:var(--error-bg);color:var(--error)}.snap-card-note{margin-top:10px;padding:8px 10px;background:var(--note-bg);border-left:3px solid var(--note-border);border-radius:0 var(--radius) var(--radius) 0;font-family:var(--font-display);font-style:italic;font-size:13px;color:var(--note-text);line-height:1.4}.snap-card-note-link{border:0;background:none;color:inherit;cursor:pointer;font:inherit;font-style:inherit;line-height:inherit;padding:0;text-align:left;text-decoration:none}.snap-card-note-link:hover{text-decoration:underline}.snap-card-actions{display:flex;gap:4px;margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}.snap-share{display:inline-flex;align-items:center;gap:6px}.snap-share-toast{font-size:11px;color:var(--text-dim);opacity:0;transform:translateY(2px);transition:opacity .45s ease,transform .45s ease;white-space:nowrap}.snap-share-toast.is-visible{opacity:1;transform:translateY(0)}.snap-share-toast.is-fading{opacity:0;transform:translateY(2px)}.snap-versions{margin-top:12px;padding:12px;border-top:1px solid var(--border);background:var(--bg-surface);border-radius:var(--radius)}.snap-versions-header{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.snap-versions-loading{font-size:11px;color:var(--text-dim)}.snap-versions-empty,.snap-versions-error{font-size:12px;color:var(--text-dim);display:flex;align-items:center;gap:8px}.snap-versions-list{display:flex;flex-direction:column;gap:10px}.snap-version-row{display:flex;flex-direction:column;gap:8px;padding:10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card)}.snap-version-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.snap-version-title{font-size:13px;font-weight:600;color:var(--text)}.snap-version-status{font-size:11px;font-weight:600;padding:2px 6px;border-radius:999px;text-transform:uppercase;letter-spacing:.4px}.snap-version-current{font-size:11px;color:var(--accent);font-weight:600}.snap-version-actions{display:flex;flex-wrap:wrap;gap:6px}.snap-versions-warning{margin-top:8px;font-size:12px;color:var(--text-dim)}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:var(--bg)}.login-card{text-align:center;padding:48px}.login-card h1{font-family:var(--font-display);font-size:48px;color:var(--accent);margin-bottom:8px}.login-card h1 span{color:var(--text)}.login-card p{color:var(--text-muted);margin-bottom:32px;font-size:16px}.btn-google{display:inline-flex;align-items:center;gap:10px;padding:12px 24px;background:#fff;color:#333;border:none;border-radius:var(--radius);font-size:15px;font-weight:500;cursor:pointer;transition:all .15s}.btn-google:hover{background:#f1f1f1;box-shadow:0 2px 8px rgba(0,0,0,.2)}.empty-state{text-align:center;padding:80px 20px;color:var(--text-muted)}.empty-state h2{font-family:var(--font-display);font-size:24px;color:var(--text);margin-bottom:8px;font-weight:400}.empty-state p{font-size:15px;max-width:400px;margin:0 auto}@media (max-width:1199px){.sidebar{width:220px}.main-content{margin-left:220px}}@media (max-width:767px){.sidebar{position:fixed;left:-280px;transition:left .3s;width:280px;z-index:100}.sidebar.open{left:0}.main-content{margin-left:0}.hamburger{display:flex}.snap-card-actions{flex-wrap:wrap}}@media (min-width:768px){.hamburger{display:none}.sidebar-overlay{display:none!important}}@keyframes spin{to{transform:rotate(1turn)}}.spinner{width:16px;height:16px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .6s linear infinite}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.7);display:flex;align-items:center;justify-content:center;z-index:200}.modal{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px;width:400px;max-width:90vw}.modal h2{font-family:var(--font-display);font-size:20px;margin-bottom:16px;font-weight:400}.modal input,.modal textarea{width:100%;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;color:var(--text);font-size:14px;font-family:var(--font-body);outline:none;margin-bottom:12px}.modal input:focus,.modal textarea:focus{border-color:var(--accent)}.modal-actions{display:flex;gap:8px;justify-content:flex-end}.replay-layout{height:100vh;height:100dvh;background:#fff;display:flex;flex-direction:column;overflow-x:hidden;overflow-y:auto}.replay-header{position:-webkit-sticky;position:sticky;top:0;background:var(--bg-surface);color:var(--text);border-bottom:1px solid var(--border);z-index:20}.replay-header-inner{max-width:1200px;margin:0 auto;padding:16px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px}.replay-title{font-family:var(--font-display);font-size:20px;font-weight:400}.replay-domain{font-size:13px;color:var(--text-muted)}.replay-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.replay-status{font-size:11px;font-weight:600;padding:4px 8px;border-radius:999px;text-transform:uppercase;letter-spacing:.4px;background:var(--accent-light);color:var(--accent)}.replay-warning{border-top:1px solid var(--border);background:var(--error-bg);color:var(--error);padding:8px 24px;font-size:13px}.replay-content{flex:1 1;min-height:0;display:flex;overflow:hidden}.replay-tabs{display:flex;gap:4px;padding:0 24px 12px;border-bottom:1px solid var(--border)}.replay-tab{padding:8px 12px;background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;color:var(--text-secondary);font-size:13px;font-weight:500;transition:all .2s ease}.replay-tab:hover{color:var(--text)}.replay-tab.active{color:var(--text);border-bottom-color:var(--accent)}.replay-note-panel{flex:1 1;overflow-y:auto;width:100%;padding:16px 24px}.replay-iframe{flex:1 1;width:100%;height:100%;border:none;display:block;background:#fff}.replay-empty,.replay-error,.replay-loading{padding:60px 24px;text-align:center;color:var(--text-muted)}.replay-error h1{font-family:var(--font-display);font-size:28px;font-weight:400;color:var(--text);margin-bottom:8px}.snap-card{cursor:-webkit-grab;cursor:grab;transition:opacity .2s ease}.snap-card:active{cursor:-webkit-grabbing;cursor:grabbing}.snap-card.dragging{opacity:.5}.snap-card.deleting{pointer-events:none;cursor:default}.snap-card.deleting .snap-card-shell{transform-origin:center;animation:snap-delete-crumble .56s cubic-bezier(.22,.7,.2,1) forwards}.snap-card.deleting .snap-card-content{animation:snap-delete-shards .56s ease-in forwards}@keyframes snap-delete-crumble{0%{transform:translateY(0) rotate(0deg) scale(1);opacity:1;filter:none}35%{transform:translateY(2px) rotate(1.8deg) scale(.985);filter:contrast(1.06)}68%{transform:translateY(18px) rotate(-4.5deg) scale(.93);opacity:.65;filter:blur(.4px)}to{transform:translateY(46px) rotate(-8deg) scale(.86);opacity:0;filter:blur(1px)}}@keyframes snap-delete-shards{0%{-webkit-clip-path:inset(0 0 0 0 round 12px);clip-path:inset(0 0 0 0 round 12px)}35%{-webkit-clip-path:polygon(0 0,100% 0,100% 84%,86% 100%,16% 100%,0 90%);clip-path:polygon(0 0,100% 0,100% 84%,86% 100%,16% 100%,0 90%)}to{-webkit-clip-path:polygon(4% 18%,24% 0,52% 14%,75% 0,96% 22%,100% 58%,84% 100%,40% 90%,10% 100%,0 68%);clip-path:polygon(4% 18%,24% 0,52% 14%,75% 0,96% 22%,100% 58%,84% 100%,40% 90%,10% 100%,0 68%)}}@media (prefers-reduced-motion:reduce){.snap-card.deleting .snap-card-content,.snap-card.deleting .snap-card-shell{animation:none;opacity:0}}.nav-item{transition:background-color .2s ease,box-shadow .2s ease}.sidebar-nav.drop-active{outline:2px dashed rgba(59,198,183,.65);outline-offset:8px;box-shadow:inset 0 0 0 1px rgba(59,198,183,.26),0 0 18px rgba(59,198,183,.35)}.nav-item.drag-over{background-color:rgba(3,121,104,.22);box-shadow:inset 0 0 0 2px rgba(3,121,104,.5),0 0 14px rgba(59,198,183,.35);border-radius:10px}.move-snap-toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:12px 20px;color:var(--text);font-size:14px;box-shadow:var(--shadow);z-index:1000;animation:slideUp .3s ease}.move-snap-toast.visible{border-color:var(--success);color:var(--success)}.move-snap-toast.error{border-color:var(--error);color:var(--error)}.snap-move-flight{position:fixed;pointer-events:none;z-index:1200;border-radius:var(--radius-lg);border:2px solid rgba(59,198,183,.75);background:linear-gradient(145deg,hsla(0,0%,7%,.95),rgba(3,121,104,.42));box-shadow:0 18px 36px rgba(0,0,0,.5),0 0 22px rgba(59,198,183,.45);transform-origin:center;transition:transform .46s cubic-bezier(.2,.78,.22,1),background .34s ease,border-color .34s ease,box-shadow .34s ease;opacity:.96}.snap-move-flight:before{content:"📌";position:absolute;inset:0;display:grid;place-items:center;font-size:clamp(16px,2.4vw,24px);opacity:0;transition:opacity .2s ease}.snap-move-flight.flying{background:transparent;border-color:transparent;box-shadow:none}.snap-move-flight.flying:before{opacity:.95}@keyframes slideUp{0%{opacity:0;transform:translateX(-50%) translateY(10px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}