@import"https://fonts.googleapis.com/css2?family=Spectral:ital,wght@0,300;0,400;0,500;1,300;1,400&family=JetBrains+Mono:wght@300;400;500&family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;1,300;1,400;1,500;1,600&family=Cormorant+SC:wght@300;400;500&family=Source+Serif+4:ital,opsz,wght@0,8..60,200;0,8..60,300;0,8..60,400;1,8..60,200;1,8..60,300;1,8..60,400&display=swap";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0b0b0b;--surface: #111111;--surface2: #161616;--border: #222222;--border2: #2a2a2a;--text: #e2ddd6;--text2: #7a756e;--text3: #636160;--green: #2c8243;--green-dim: #1E5C30;--green-glow: rgba(44, 130, 67, .08);--red: #c46060;--mono: "JetBrains Mono", monospace;--serif: "Spectral", Georgia, serif}html{font-size:14px}body{background:var(--bg);color:var(--text);font-family:var(--mono);min-height:100vh;overflow-x:hidden}body:before{content:"";position:fixed;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");pointer-events:none;z-index:0;opacity:.6}.auth-screen{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:100;background:var(--bg);gap:2rem}.auth-logo{width:6rem;height:6rem}.auth-title{font-family:var(--serif);font-size:2rem;font-weight:300;font-style:italic;color:var(--green);letter-spacing:.05em;text-align:center}.auth-subtitle{font-size:.7rem;color:var(--text3);letter-spacing:.15em;text-transform:uppercase;text-align:center;margin-top:-1.4rem}.auth-form{display:flex;flex-direction:column;gap:.6rem;width:280px}.auth-form input{background:var(--surface);border:1px solid var(--border);color:var(--text);font-family:var(--mono);font-size:.8rem;padding:.65rem .8rem;outline:none;transition:border-color .15s}.auth-form input:focus{border-color:var(--green-dim)}.auth-form input::placeholder{color:var(--text3)}.auth-form button{background:var(--green-dim);color:var(--bg);border:none;font-family:var(--mono);font-size:.75rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;padding:.7rem;cursor:pointer;transition:background .15s;margin-top:.3rem}.auth-form button:hover{background:var(--green)}.auth-form button:disabled{opacity:.6;cursor:default}.auth-error{font-size:.7rem;color:var(--red);text-align:center}#app{position:relative;z-index:1}.header{position:sticky;top:0;z-index:50;background:#0b0b0beb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);padding:.75rem 1.5rem;display:flex;align-items:center;gap:1.5rem}.header-title{display:flex;align-items:center;gap:.5rem;font-family:var(--serif);font-style:italic;font-weight:300;font-size:2rem;color:var(--green);white-space:nowrap;flex-shrink:0}.header-logo{width:2rem;height:2rem;flex-shrink:0}.search-wrap{flex:1;position:relative;max-width:480px}.search-wrap:before{content:"⌕";position:absolute;left:.7rem;top:50%;transform:translateY(-50%);color:var(--text3);font-size:1rem;pointer-events:none}#search{width:100%;background:var(--surface);border:1px solid var(--border);color:var(--text);font-family:var(--mono);font-size:.78rem;padding:.5rem .7rem .5rem 2rem;outline:none;transition:border-color .15s}#search:focus{border-color:var(--green-dim)}#search::placeholder{color:var(--text3)}.header-meta{font-size:.65rem;color:var(--text3);white-space:nowrap;letter-spacing:.05em;flex-shrink:0}.header-meta span{color:var(--text2)}.signout-btn{background:none;border:1px solid var(--border);color:var(--text3);font-family:var(--mono);font-size:.65rem;padding:.3rem .6rem;cursor:pointer;letter-spacing:.08em;transition:all .15s;flex-shrink:0}.signout-btn:hover{border-color:var(--border2);color:var(--text2)}.add-url-bar{display:flex;align-items:center;gap:.5rem;padding:.6rem 1.5rem;background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap}.add-url-bar input{flex:1;min-width:0;background:var(--bg);border:1px solid var(--border);color:var(--text);font-family:var(--mono);font-size:.8rem;padding:.5rem .7rem;outline:none;transition:border-color .15s}.add-url-bar input:focus{border-color:var(--green-dim)}.add-url-bar input::placeholder{color:var(--text3)}.add-url-bar input:disabled{opacity:.6}.add-url-bar button{background:var(--green-dim);color:var(--bg);border:none;font-family:var(--mono);font-size:.7rem;padding:.5rem .8rem;cursor:pointer;white-space:nowrap;transition:background .15s}.add-url-bar button:hover:not(:disabled){background:var(--green)}.add-url-bar button:disabled{opacity:.7;cursor:default}.add-url-msg{width:100%;font-size:.7rem;color:var(--green)}.add-url-msg.error{color:var(--red)}.grid-wrap{padding:1.5rem}.masonry{columns:4 280px;column-gap:.75rem}.card{break-inside:avoid;border-radius:3px;background:var(--surface);border:1px solid var(--border);margin-bottom:.75rem;padding:.9rem 1rem;transition:border-color .25s ease,transform .2s ease,box-shadow .25s ease;cursor:pointer;position:relative;overflow:hidden;animation:fadeUp .3s ease both;box-shadow:inset 0 1px #ffffff07,inset 0 -1px #0000004d,0 1px 4px #00000073}.card:before{content:"";position:absolute;top:0;left:0;width:2px;height:0;background:linear-gradient(to bottom,var(--green),var(--green-dim));transition:height .3s ease;z-index:1}.card:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 80% 40% at 50% 0%,rgba(255,255,255,.022) 0%,transparent 70%);pointer-events:none;border-radius:inherit;transition:opacity .3s ease;opacity:.7}.card:hover{border-color:#2c824347;transform:translateY(-1px);box-shadow:inset 0 1px #ffffff09,inset 0 -1px #0000004d,0 4px 20px #0000008c,0 0 0 1px #2c82431a,0 0 18px #2c82430d}.card:hover:before{height:100%}.card:hover:after{opacity:1}.card:has(.card-images){padding-bottom:0}.card:has(.card-images) .card-images{margin-left:-1rem;margin-right:-1rem;margin-bottom:0;border-radius:0}.card:has(.card-images) .card-footer{padding-bottom:.6rem}.card:not(:has(.card-images)):not(:has(.video-preview)){outline:1px dashed transparent;outline-offset:-5px;transition:border-color .25s ease,transform .2s ease,box-shadow .25s ease,outline-color .3s ease}.card:not(:has(.card-images)):not(:has(.video-preview)):hover{outline-color:#2c82431f}.card-author{display:flex;align-items:baseline;gap:.4rem;margin-bottom:.55rem}.card-name{font-family:"Cormorant Garamond",var(--serif);font-size:1.15rem;font-weight:500;color:var(--text);letter-spacing:.01em}.card-handle{font-family:"Cormorant SC",var(--serif);font-size:.82rem;font-weight:400;color:var(--text3);letter-spacing:.06em}.card-text{font-family:"Source Serif 4",var(--serif);font-size:1.08rem;font-weight:300;line-height:1.68;color:var(--text);white-space:pre-wrap;overflow-wrap:anywhere}.card-text-link{color:var(--text2);text-decoration:none;word-break:break-all;transition:color .15s}.card-text-link:hover{color:var(--green)}.card-images{display:flex;flex-direction:column;gap:3px;margin-top:.6rem;border-radius:2px;overflow:hidden}.card-images.multi{display:grid;grid-template-columns:1fr 1fr}.card-images img{width:100%;height:auto;object-fit:cover;filter:grayscale(10%);opacity:.88;transition:opacity .2s ease,filter .2s ease;display:block}.card-images img:hover{opacity:1;filter:none}.video-preview{margin-top:.6rem;display:flex;align-items:center;gap:.5rem;background:var(--surface2);border:1px solid var(--border);padding:.5rem .7rem;font-size:.68rem;color:var(--text2);letter-spacing:.05em}.video-preview a{color:var(--green-dim);text-decoration:none}.video-preview a:hover{color:var(--green)}.video-preview-thumb{width:64px;height:36px;object-fit:cover;flex-shrink:0;filter:grayscale(20%);opacity:.8}.video-play-icon{font-size:1rem;color:var(--green-dim);flex-shrink:0}.note-wrap{margin-top:.6rem}.note-input{width:100%;background:var(--surface2);border:1px solid var(--border);border-top:1px solid var(--green-dim);color:var(--text);font-family:var(--serif);font-size:.8rem;font-style:italic;line-height:1.5;padding:.55rem .65rem;resize:none;outline:none;min-height:60px;transition:border-color .15s}.note-input:focus{border-color:var(--green-dim)}.note-input::placeholder{color:var(--text3);font-style:italic}.note-save-btn{margin-top:.3rem;background:none;border:1px solid var(--green-dim);color:var(--green-dim);font-family:var(--mono);font-size:.62rem;padding:.25rem .6rem;cursor:pointer;letter-spacing:.08em;text-transform:uppercase;transition:all .15s}.note-save-btn:hover{background:var(--green-dim);color:var(--bg)}.card-footer{display:flex;align-items:center;justify-content:space-between;margin-top:.65rem;padding-top:.6rem;border-top:1px solid var(--border)}.card-date{font-size:.6rem;color:var(--text3);letter-spacing:.1em;text-transform:uppercase;font-family:var(--mono);opacity:.6}.card-actions{display:flex;gap:.4rem;align-items:center}.action-btn{background:none;border:1px solid transparent;color:var(--text3);font-family:var(--mono);font-size:.62rem;padding:.2rem .45rem;cursor:pointer;letter-spacing:.05em;transition:all .15s;line-height:1}.action-btn:hover{border-color:var(--border);color:var(--text2)}.action-btn.note-active{color:var(--green-dim);border-color:var(--green-dim)}.card-link{font-size:.62rem;color:var(--text3);text-decoration:none;letter-spacing:.04em;transition:color .15s}.card-link:hover{color:var(--green)}.state-msg{text-align:center;color:var(--text3);font-size:.75rem;letter-spacing:.1em;padding:4rem 0;font-style:italic;font-family:var(--serif);width:100%}.loading-dots:after{content:"";animation:dots 1.2s infinite}@keyframes dots{0%{content:"."}33%{content:".."}66%{content:"..."}to{content:""}}@keyframes fadeUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.detail-wrap{max-width:800px;margin:0 auto;padding:2rem 1.5rem}.detail-card{animation:fadeUp .3s ease both}.detail-card .card{cursor:default;margin-bottom:0}.back-btn{background:none;border:1px solid var(--border);color:var(--text3);font-family:var(--mono);font-size:.65rem;padding:.3rem .6rem;cursor:pointer;letter-spacing:.08em;transition:all .15s;flex-shrink:0}.back-btn:hover{border-color:var(--border2);color:var(--text2)}@media(max-width:600px){.masonry{columns:1}.header{flex-wrap:wrap}.header-meta{display:none}.detail-wrap{padding:1.5rem 1rem}}
