@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/outfit-latin-ext-500-normal-zeox_O30.woff2)format("woff2"),url(/assets/outfit-latin-ext-500-normal-DrCvqoFD.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/outfit-latin-500-normal-DKnIMDSk.woff2)format("woff2"),url(/assets/outfit-latin-500-normal-ClnHRwRh.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/outfit-latin-ext-600-normal-B85nYjL1.woff2)format("woff2"),url(/assets/outfit-latin-ext-600-normal-CWJcPgd7.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/outfit-latin-600-normal-B7SfZ07L.woff2)format("woff2"),url(/assets/outfit-latin-600-normal-BEfTtDA7.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/figtree-latin-ext-400-normal-CXAzuTZb.woff2)format("woff2"),url(/assets/figtree-latin-ext-400-normal-Gbh-3PTk.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/figtree-latin-400-normal-g7Dtegnw.woff2)format("woff2"),url(/assets/figtree-latin-400-normal-BD4aNku5.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Figtree;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/figtree-latin-ext-400-italic-C_Hz7bSU.woff2)format("woff2"),url(/assets/figtree-latin-ext-400-italic-C-kB9AFN.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Figtree;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/figtree-latin-400-italic-BSc-2xHp.woff2)format("woff2"),url(/assets/figtree-latin-400-italic-B4hAvW4f.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/figtree-latin-ext-500-normal-Du0rIuHj.woff2)format("woff2"),url(/assets/figtree-latin-ext-500-normal-BOEJvrb_.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/figtree-latin-500-normal-BWnGEVsr.woff2)format("woff2"),url(/assets/figtree-latin-500-normal-B_yy1phn.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/figtree-latin-ext-600-normal-DJlfifZj.woff2)format("woff2"),url(/assets/figtree-latin-ext-600-normal-CQqsimlV.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/figtree-latin-600-normal-Cv_xCTDl.woff2)format("woff2"),url(/assets/figtree-latin-600-normal-BM_oTo4n.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--brand-plum:#2b1d4a;--brand-violet:#6b4fa8;--brand-lavender:#b9a1e8;--brand-rose:#e8a0a0;--brand-cream:#f8f3ec;--brand-mist:#efe8f6;--radius-input:6px;--radius-card:8px;--radius-modal:16px;--radius-chip:999px;--font-heading:"Outfit", system-ui, -apple-system, "Segoe UI", sans-serif;--font-body:"Figtree", system-ui, -apple-system, "Segoe UI", sans-serif;--type-headline:600 32px/1.15 var(--font-heading);--type-subhead:500 22px/1.25 var(--font-heading);--type-title:600 17px/1.35 var(--font-body);--type-body:400 15px/1.5 var(--font-body);--type-button:600 14px/1.2 var(--font-body);--type-label:500 13px/1.3 var(--font-body);--type-caption:400 12px/1.4 var(--font-body);--bg:#f8f3ec;--surface:#efe8f6;--card:#fff;--line:#e3dcef;--border:#8a82a0;--text:#2b1d4a;--text-subtle:#5c5470;--text-muted:#8a82a0;--primary:#6b4fa8;--on-primary:#fff;--primary-soft:#efe8f6;--accent:#e8a0a0;--status-want:#3d5bc4;--status-making:#a2611a;--status-made:#2f7d5b;--danger:#b3263e;--mark-ink:#2b1d4a;--shadow-card:0 4px 16px #2b1d4a1a}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#211d2f;--surface:#1b1726;--card:#343045;--line:#47435c;--border:#7f7d9e;--text:#cacaf7;--text-subtle:#a5a3cb;--text-muted:#7f7d9e;--primary:#b9a1e8;--on-primary:#211d2f;--primary-soft:#47435c;--accent:#e8a0a0;--status-want:#9db0f5;--status-making:#f0bf7a;--status-made:#8fd3b0;--danger:#f2a0ae;--mark-ink:#f8f3ec;--shadow-card:0 8px 24px #00000073}*,:before,:after{box-sizing:border-box}body{font:var(--type-body);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0}button,input,select,textarea{font-family:inherit}h1,h2,h3{font-family:var(--font-heading);font-weight:600}.shell{background:var(--bg);height:100vh;color:var(--text);display:flex;overflow:hidden}.sidebar{background:var(--surface);border-right:1px solid var(--line);flex-direction:column;flex-shrink:0;width:220px;padding:1.25rem .75rem;display:flex}.wordmark{color:var(--text);cursor:pointer;text-align:left;border-radius:var(--radius-input);background:0 0;border:none;width:100%;margin-bottom:1.25rem;padding:.25rem .5rem;font-size:1.2rem;transition:background .12s;display:flex}.wordmark:hover{background:var(--primary-soft)}.logo{font-family:var(--font-heading);letter-spacing:-.01em;color:var(--text);white-space:nowrap;align-items:center;gap:.4em;font-weight:600;line-height:1;display:inline-flex}.logo-mark{flex-shrink:0;width:1.25em;height:1.25em}.logo-swatch{color:var(--text)}.logo-trove{color:var(--primary)}.logo--loading{font-size:1.5rem}.sidebar-actions{flex-direction:column;gap:.1rem;padding:0 .5rem .25rem;display:flex}.btn-upload{border-radius:var(--radius-input);width:100%;color:var(--text-subtle);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:.65rem;padding:.5rem .85rem;font-size:.8rem;font-weight:500;transition:background .12s,color .12s;display:flex}.btn-upload:hover{background:var(--primary-soft);color:var(--text)}.btn-upload.primary{color:var(--primary);background:color-mix(in srgb, var(--primary) 10%, transparent)}.btn-upload.primary:hover{background:color-mix(in srgb, var(--primary) 18%, transparent);color:var(--primary)}.sidebar-divider{background:var(--line);height:1px;margin:.5rem .75rem}.sidebar-usage{color:var(--text-subtle);opacity:.75;flex-direction:column;gap:2px;padding:0 .75rem .75rem;font-size:.72rem;display:flex}.sidebar-feedback-btn{width:100%;color:var(--text-subtle);cursor:pointer;text-align:left;opacity:.75;background:0 0;border:none;align-items:center;gap:.4rem;padding:.5rem .75rem;font-size:.78rem;transition:opacity .15s,color .15s;display:flex}.sidebar-feedback-btn:hover{opacity:1;color:var(--primary)}.feedback-modal{max-width:480px}.feedback-type-pills{flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem;display:flex}.feedback-type-pill{border-radius:var(--radius-chip);border:1.5px solid var(--border);color:var(--text);cursor:pointer;background:0 0;padding:.3rem .75rem;font-size:.8rem;transition:border-color .15s,background .15s}.feedback-type-pill.active{border-color:var(--primary);background:color-mix(in srgb, var(--primary) 12%, transparent);color:var(--primary)}.feedback-textarea{border:1.5px solid var(--border);border-radius:var(--radius-card);background:var(--card);width:100%;min-height:120px;color:var(--text);resize:vertical;box-sizing:border-box;padding:.6rem .75rem;font-family:inherit;font-size:.9rem}.feedback-textarea:focus{border-color:var(--primary);outline:none}.feedback-screenshot-label{color:var(--text-subtle);cursor:pointer;margin-top:.5rem;font-size:.8rem;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;display:inline-block}.feedback-screenshot-label:hover{color:var(--primary)}.sidebar-nav{flex-direction:column;gap:.15rem;display:flex}.nav-item{border-radius:var(--radius-input);width:100%;color:var(--text-subtle);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:.65rem;padding:.55rem .85rem;font-size:.875rem;transition:background .12s,color .12s;display:flex}.nav-item:hover{background:var(--primary-soft);color:var(--text)}.nav-item.active{background:var(--primary-soft);color:var(--text);font-weight:500}.nav-item.drag-over{background:var(--primary-soft);color:var(--text);outline:1px dashed var(--text-subtle)}.nav-item.project-drag-over{border-top:2px solid var(--primary)}.nav-item-grip{opacity:0;color:var(--text-subtle);cursor:grab;flex-shrink:0;margin-left:-4px;transition:opacity .12s}.nav-item-project:hover .nav-item-grip{opacity:.5}.pattern-reorder-item{position:relative}.pattern-reorder-item.reorder-dragging{opacity:.4}.pattern-reorder-item.reorder-drag-target:before{content:"";border:2px solid var(--primary);border-radius:var(--radius-card);pointer-events:none;z-index:2;position:absolute;inset:0}.combine-source-list{background:var(--card);border-radius:var(--radius-card);flex-direction:column;gap:.35rem;max-height:320px;margin:.35rem 0 1rem;padding:.35rem;display:flex;overflow-y:auto}.combine-source-item{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-input);cursor:grab;-webkit-user-select:none;user-select:none;align-items:center;gap:.6rem;padding:.45rem .5rem;transition:background .12s,border-color .12s;display:flex}.combine-source-item:active{cursor:grabbing}.combine-source-item.ineligible{opacity:.55;cursor:default}.combine-source-note{color:var(--text-subtle);white-space:nowrap;flex-shrink:0;font-size:.72rem}.combine-skip-note{color:var(--text-subtle);margin:0 0 .75rem;font-size:.78rem}.combine-source-item.dragging{opacity:.4}.combine-source-item.drop-target{border-color:var(--primary);background:var(--card)}.combine-source-grip{color:var(--text-subtle);flex-shrink:0}.combine-source-index{text-align:center;min-width:1.4rem;color:var(--text-subtle);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:.8rem}.combine-source-thumb{object-fit:cover;background:var(--card);border-radius:3px;flex-shrink:0;width:32px;height:40px}.combine-source-thumb.placeholder{background:var(--card)}.combine-source-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:.85rem;overflow:hidden}.combine-source-pages{color:var(--text-subtle);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:.75rem}.combine-source-nudge{flex-direction:column;flex-shrink:0;gap:2px;display:flex}.combine-nudge-btn{border:1px solid var(--border);background:var(--card);width:20px;height:16px;color:var(--text-subtle);cursor:pointer;border-radius:3px;justify-content:center;align-items:center;display:flex}.combine-nudge-btn:hover:not(:disabled){color:var(--text);border-color:var(--text-subtle)}.combine-nudge-btn:disabled{opacity:.4;cursor:default}.unmerge-section{background:var(--card);border-radius:var(--radius-card);border:1px solid var(--line);flex-direction:column;gap:.5rem;padding:.75rem;display:flex}.unmerge-source-list{flex-direction:column;gap:.3rem;max-height:200px;display:flex;overflow-y:auto}.unmerge-source-row{border-radius:var(--radius-input);cursor:pointer;align-items:center;gap:.55rem;padding:.35rem .4rem;transition:background .1s;display:flex}.unmerge-source-row:hover{background:var(--primary-soft)}.unmerge-source-row input[type=checkbox]{accent-color:var(--primary);cursor:pointer;flex-shrink:0}.unmerge-source-thumb{object-fit:cover;background:var(--line);border-radius:3px;flex-shrink:0;width:28px;height:36px}.unmerge-source-thumb.placeholder{background:var(--line)}.unmerge-source-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:.83rem;overflow:hidden}.unmerge-source-pages{color:var(--text-subtle);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:.73rem}.unmerge-restore-btn{border-radius:var(--radius-input);border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;justify-content:center;align-self:flex-end;align-items:center;gap:.35rem;padding:.45rem .75rem;font-size:.82rem;font-weight:500;transition:background .12s,border-color .12s;display:flex}.unmerge-restore-btn:hover:not(:disabled){background:var(--primary-soft);border-color:var(--text-subtle)}.unmerge-restore-btn:disabled{opacity:.4;cursor:default}.main{flex-direction:column;flex:1;display:flex;overflow:hidden}.topbar{background:var(--surface);border-bottom:1px solid var(--line);align-items:center;gap:1rem;height:56px;padding:0 1.25rem;display:flex}.topbar-left,.topbar-right{flex:1;display:flex}.topbar-right{justify-content:flex-end}.search{border:1.5px solid var(--text-subtle);border-radius:var(--radius-card);background:var(--card);width:300px;color:var(--text);outline:none;flex-shrink:0;padding:.45rem 1rem;font-size:.875rem;transition:border-color .15s,background .15s}.search:focus{border-color:var(--primary);background:var(--surface)}.search::placeholder{color:var(--text-muted)}.user-menu{position:relative}.avatar-btn{border-radius:var(--radius-card);cursor:pointer;color:var(--text-subtle);background:0 0;border:none;align-items:center;gap:.4rem;padding:.25rem .4rem .25rem .25rem;transition:background .15s;display:flex}.avatar-btn:hover{background:var(--primary-soft)}.avatar-circle{object-fit:cover;border-radius:50%;flex-shrink:0;width:28px;height:28px}.avatar-initials{background:var(--card);border:1px solid var(--line);color:var(--text-subtle);letter-spacing:.03em;justify-content:center;align-items:center;font-size:.7rem;font-weight:600;display:flex}.dropdown{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--shadow-card);z-index:100;min-width:190px;padding:.35rem;position:absolute;top:calc(100% + 6px);right:0}.dropdown-item{border-radius:var(--radius-input);width:100%;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:.6rem;padding:.55rem .75rem;font-size:.85rem;transition:background .12s;display:flex}.dropdown-item:hover{background:var(--primary-soft)}.dropdown-item.danger{color:var(--danger)}.dropdown-item.danger:hover{background:var(--primary-soft)}.dropdown-divider{background:var(--line);height:1px;margin:.3rem 0}.content{flex-direction:column;flex:1;gap:2.5rem;padding:2rem 1.5rem;display:flex;overflow-y:auto}.section-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-subtle);margin:0 0 .85rem;font-size:.75rem;font-weight:600}.card-row{gap:1rem;padding-bottom:.5rem;display:flex;overflow-x:auto}.card-row::-webkit-scrollbar{height:4px}.card-row::-webkit-scrollbar-thumb{background:var(--line);border-radius:2px}.card{cursor:pointer;flex-shrink:0;width:148px;position:relative}.card-thumb{border-radius:var(--radius-input);background:linear-gradient(135deg, transparent 49%, var(--line) 49%, var(--line) 51%, transparent 51%), var(--card);width:148px;height:196px;margin-bottom:.5rem;transition:opacity .15s}.card:hover .card-thumb{opacity:.75}.card-title{color:var(--text-subtle);white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;display:block;overflow:hidden}.sidebar-section-header{justify-content:space-between;align-items:center;margin-bottom:.15rem;padding:0 .5rem;display:flex}.sidebar-section-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-subtle);font-size:.72rem;font-weight:600}.sidebar-section-label--link{border-radius:var(--radius-input);cursor:pointer;text-align:left;background:0 0;border:none;flex:1;padding:.4rem .6rem;transition:background .12s,color .12s}.sidebar-section-label--link:hover{background:var(--primary-soft);color:var(--text)}.sidebar-add-btn{cursor:pointer;color:var(--text-subtle);border-radius:var(--radius-input);background:0 0;border:none;align-items:center;padding:2px;display:flex}.sidebar-add-btn:hover{color:var(--text);background:var(--primary-soft)}.nav-item-label{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.nav-item-count{color:var(--text-subtle);flex-shrink:0;margin-left:auto;font-size:.72rem}.section-header{justify-content:space-between;align-items:center;margin-bottom:.85rem;display:flex}.section-header .section-label{margin:0}.section-action{color:var(--text-subtle);cursor:pointer;border-radius:var(--radius-input);background:0 0;border:none;align-items:center;gap:.3rem;padding:.25rem .5rem;font-size:.78rem;display:flex}.section-action:hover{background:var(--primary-soft);color:var(--text)}.pill-toggle{background:var(--card);border-radius:var(--radius-card);gap:2px;padding:3px;display:flex}.pill-option{border-radius:var(--radius-input);color:var(--text-subtle);cursor:pointer;background:0 0;border:none;padding:.25rem .85rem;font-size:.8rem;font-weight:500;transition:background .15s,color .15s}.pill-option:hover{color:var(--text)}.pill-option.active{background:var(--surface);color:var(--text)}.pill-count{font-variant-numeric:tabular-nums;opacity:.75;margin-left:.3rem}.project-thumb{border-radius:var(--radius-input);background:var(--card);border:1px solid var(--line);flex-direction:column;width:148px;height:196px;margin-bottom:.5rem;transition:opacity .15s;display:flex;position:relative;overflow:hidden}.project-card:hover .project-thumb{opacity:.82}.project-thumb-body{flex:1;justify-content:center;align-items:center;min-height:0;padding:10px;display:flex}.project-folder-empty{color:var(--text-subtle);opacity:.45}.project-thumb-footer{background:var(--primary-soft,var(--surface));border-top:1px solid var(--line);height:30px;color:var(--text-subtle);flex-shrink:0;justify-content:center;align-items:center;gap:.3rem;font-size:.72rem;font-weight:500;display:flex}.project-collage{gap:3px;width:100%;height:100%;display:grid}.project-collage--1{grid-template-columns:1fr}.project-collage--2{grid-template-rows:1fr;grid-template-columns:1fr 1fr}.project-collage--3,.project-collage--4{grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr}.collage-img{object-fit:cover;border-radius:3px;width:100%;height:100%}.project-count{color:var(--text-subtle);font-size:.72rem}.project-view-header{align-items:baseline;gap:1rem;margin-bottom:1.5rem;display:flex}.back-btn{cursor:pointer;color:var(--text-subtle);background:0 0;border:none;padding:0;font-size:.85rem}.back-btn:hover{color:var(--text)}.project-view-title{color:var(--text);margin:0;font-size:1.25rem;font-weight:600}.project-view-meta{color:var(--text-subtle);font-size:.85rem}.pattern-grid{grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:1rem;display:grid}.card-select-check{cursor:pointer;opacity:0;z-index:3;width:20px;height:20px;color:var(--brand-cream);background:#00000059;border:2px solid #ffffffbf;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:opacity .15s;display:flex;position:absolute;top:6px;left:6px}.card:hover .card-select-check,.select-mode .card-select-check,.card-select-check--checked{opacity:1}.card-select-check--checked{background:var(--primary);border-color:var(--primary)}.card--selected .card-thumb{outline:2px solid var(--primary);outline-offset:-2px}.card--selected{opacity:1}.bulk-action-bar{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-chip);z-index:500;white-space:nowrap;align-items:center;gap:.5rem;padding:.5rem .75rem;display:flex;position:fixed;bottom:1.25rem;left:50%;transform:translate(-50%);box-shadow:0 4px 24px #00000059}.bulk-action-close{color:var(--text-subtle);cursor:pointer;background:0 0;border:none;align-items:center;padding:2px;display:flex}.bulk-action-close:hover{color:var(--text)}.bulk-action-count{color:var(--text);padding:0 .25rem;font-size:.85rem;font-weight:600}.bulk-action-divider{background:var(--line);width:1px;height:18px;margin:0 .25rem}.bulk-action-btn{border-radius:var(--radius-card);color:var(--text);cursor:pointer;background:0 0;border:none;align-items:center;gap:.35rem;padding:.3rem .6rem;font-size:.8rem;transition:background .12s;display:flex}.bulk-action-btn:hover{background:var(--primary-soft,var(--card))}.bulk-action-btn.danger{color:var(--danger)}.bulk-action-btn.danger.armed{background:var(--danger);color:var(--on-primary)}.modal-overlay{z-index:500;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-modal);width:340px;box-shadow:var(--shadow-card);padding:1.5rem}.modal-title{color:var(--text);margin:0 0 1rem;font-size:1rem;font-weight:600}.modal-input{border:1px solid var(--border);border-radius:var(--radius-input);background:var(--bg);width:100%;color:var(--text);outline:none;margin-bottom:1rem;padding:.55rem .85rem;font-size:.9rem}.modal-input:focus{border-color:var(--text-subtle)}.modal-actions{justify-content:flex-end;gap:.5rem;display:flex}.modal-btn{border-radius:var(--radius-input);cursor:pointer;border:none;padding:.5rem 1rem;font-size:.875rem;font-weight:500;text-decoration:none}.modal-btn.primary{background:var(--text);color:var(--surface)}.modal-btn.primary:disabled{opacity:.4;cursor:default}.modal-btn.secondary{background:var(--card);color:var(--text)}.modal-btn.secondary:hover{background:var(--primary-soft)}.edit-overlay{z-index:9000;background:#000000a6;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.edit-modal{background:var(--surface);border-radius:var(--radius-modal);flex-direction:column;width:min(900px,92vw);height:80vh;display:flex;position:relative;overflow:hidden;box-shadow:0 24px 60px #0006}.edit-modal-close{background:var(--card);cursor:pointer;width:32px;height:32px;color:var(--text-subtle);z-index:1;border:none;border-radius:50%;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex;position:absolute;top:1rem;right:1rem}.edit-modal-close:hover{background:var(--primary-soft);color:var(--text)}.edit-modal-body{flex:1;min-height:0;display:flex;overflow:hidden}.edit-modal-thumb{background:var(--card);flex-shrink:0;justify-content:center;align-items:center;width:42%;padding:1rem;display:flex;overflow:hidden}.edit-modal-thumb img{object-fit:contain;border-radius:var(--radius-input);max-width:100%;max-height:100%}.edit-modal-thumb-placeholder{color:var(--text-subtle);justify-content:center;align-items:center;width:100%;height:100%;min-height:320px;display:flex}.edit-modal-fields{flex-direction:column;flex:1;gap:1.1rem;padding:2rem 1.75rem;display:flex;overflow-y:auto}.edit-field{flex-direction:column;gap:.35rem;display:flex}.edit-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-subtle);font-size:.75rem;font-weight:600}.edit-label-hint{text-transform:none;letter-spacing:0;font-size:.72rem;font-weight:400}.edit-input{background:var(--card);border-radius:var(--radius-card);color:var(--text);border:1px solid #0000;outline:none;padding:.55rem .75rem;font-size:.9rem;transition:border-color .15s}.edit-input:focus{border-color:var(--text-subtle)}.edit-meta-row{gap:1.5rem;padding-top:.25rem;display:flex}.edit-meta-item{flex-direction:column;gap:.15rem;font-size:.8rem;display:flex}.edit-meta-item span{color:var(--text-subtle)}.edit-meta-item strong{color:var(--text);font-weight:500}.edit-modal-actions{justify-content:flex-end;gap:.65rem;margin-top:auto;padding-top:.5rem;display:flex}.edit-btn-cancel{border-radius:var(--radius-card);background:var(--card);color:var(--text);cursor:pointer;border:none;padding:.5rem 1rem;font-size:.875rem;transition:background .15s}.edit-btn-cancel:hover{background:var(--primary-soft)}.edit-btn-save{border-radius:var(--radius-card);background:var(--text);color:var(--surface);cursor:pointer;border:none;padding:.5rem 1.25rem;font-size:.875rem;font-weight:500;transition:opacity .15s}.edit-btn-save:hover{opacity:.85}.edit-btn-save:disabled{opacity:.4;cursor:default}.edit-textarea{resize:vertical;min-height:70px;font-family:inherit;line-height:1.5}.tag-input-wrapper{border-radius:var(--radius-input);border:1px solid var(--border);background:var(--card);cursor:text;flex-wrap:wrap;align-items:center;gap:5px;min-height:38px;padding:5px 10px;transition:border-color .15s;display:flex}.tag-input-wrapper:focus-within{border-color:var(--text-subtle)}.tag-pill{background:color-mix(in srgb, var(--primary) 18%, transparent);border:1px solid color-mix(in srgb, var(--primary) 45%, transparent);border-radius:var(--radius-chip);align-items:center;gap:2px;padding:1px 6px 1px 9px;font-size:.75rem;display:inline-flex}.tag-pill-text{color:var(--primary);font-weight:500}.tag-pill-remove{color:var(--text-subtle);cursor:pointer;background:0 0;border:none;align-items:center;padding:0 1px;font-size:.85rem;line-height:1;display:flex}.tag-pill-remove:hover{color:var(--text)}.tag-pill-input{min-width:120px;color:var(--text);background:0 0;border:none;outline:none;flex:1;padding:0;font-size:.875rem}.tag-pill-input::placeholder{color:var(--text-muted)}.tag-autocomplete-wrap{flex:1;align-items:center;min-width:120px;display:flex;position:relative}.tag-autocomplete-wrap .tag-pill-input{width:100%;min-width:0}.tag-autocomplete-ghost{pointer-events:none;white-space:nowrap;align-items:center;font-size:.875rem;display:flex;position:absolute;inset:0;overflow:hidden}.tag-autocomplete-ghost-typed{visibility:hidden}.tag-autocomplete-ghost-suffix{color:var(--text-subtle);opacity:.55}.star-rating{align-items:center;gap:2px;display:flex}.star-btn{cursor:pointer;color:var(--border);background:0 0;border:none;padding:0 1px;font-size:1.35rem;line-height:1;transition:color .1s,transform .1s}.star-btn.filled{color:var(--status-making)}.star-btn:hover{transform:scale(1.15)}.star-clear{color:var(--text-subtle);cursor:pointer;border-radius:var(--radius-input);opacity:.6;background:0 0;border:none;margin-left:4px;padding:2px 4px;font-size:.7rem}.star-clear:hover{opacity:1;color:var(--text)}.difficulty-pills{flex-wrap:wrap;gap:.4rem;display:flex}.difficulty-pill{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-chip);color:var(--text-subtle);cursor:pointer;padding:.2rem .75rem;font-size:.75rem;transition:background .12s,color .12s,border-color .12s}.difficulty-pill:hover{background:var(--primary-soft);color:var(--text)}.difficulty-pill.active{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.status-pills{flex-wrap:wrap;gap:.4rem;display:flex}.status-pill{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-chip);color:var(--text-subtle);cursor:pointer;padding:.2rem .75rem;font-size:.75rem;transition:background .12s,color .12s,border-color .12s}.status-pill:hover:not(:disabled){background:var(--primary-soft);color:var(--text)}.status-pill:disabled{opacity:.5;cursor:default}.status-pill--none.active{background:var(--primary-soft);border-color:var(--text-subtle);color:var(--text)}.status-pill--want.active{background:color-mix(in srgb, var(--status-want) 22%, var(--card));border-color:var(--status-want);color:var(--status-want)}.status-pill--making.active{background:color-mix(in srgb, var(--status-making) 22%, var(--card));border-color:var(--status-making);color:var(--status-making)}.status-pill--made.active{background:color-mix(in srgb, var(--status-made) 22%, var(--card));border-color:var(--status-made);color:var(--status-made)}.cover-replace-row{align-items:center;gap:.5rem;display:flex}.cover-replace-hint{color:var(--text-subtle);font-size:.72rem;line-height:1.4}.card-status-chip{border-radius:var(--radius-chip);letter-spacing:.02em;pointer-events:none;padding:2px 8px;font-size:.62rem;font-weight:600;position:absolute;bottom:6px;right:6px}.card-status-chip--want{background:color-mix(in srgb, var(--status-want) 24%, var(--card));border:1px solid color-mix(in srgb, var(--status-want) 50%, transparent);color:var(--status-want)}.card-status-chip--making{background:color-mix(in srgb, var(--status-making) 24%, var(--card));border:1px solid color-mix(in srgb, var(--status-making) 50%, transparent);color:var(--status-making)}.card-status-chip--made{background:color-mix(in srgb, var(--status-made) 24%, var(--card));border:1px solid color-mix(in srgb, var(--status-made) 50%, transparent);color:var(--status-made)}.suggestion-pills{flex-wrap:wrap;align-items:center;gap:4px;margin-top:5px;display:flex}.suggestion-label{color:var(--text-subtle);margin-right:2px;font-size:.7rem}.suggestion-pill{background:color-mix(in srgb, var(--primary) 15%, transparent);border:1px solid color-mix(in srgb, var(--primary) 40%, transparent);border-radius:var(--radius-chip);align-items:center;font-size:.72rem;display:inline-flex;overflow:hidden}.suggestion-pill-apply{color:var(--primary);cursor:pointer;font-size:inherit;background:0 0;border:none;padding:2px 8px 2px 10px;font-weight:500}.suggestion-pill-apply:hover{text-decoration:underline}.suggestion-pill-dismiss{border:none;border-left:1px solid color-mix(in srgb, var(--primary) 30%, transparent);color:var(--text-subtle);cursor:pointer;background:0 0;padding:2px 7px;font-size:.75rem;line-height:1}.suggestion-pill-dismiss:hover{color:var(--text)}.suggestion-pill--own{background:var(--card);border-color:var(--border)}.suggestion-pill--own .suggestion-pill-apply{color:var(--text-subtle)}.suggestion-pill--own .suggestion-pill-apply:hover{color:var(--text)}.nav-item-project{cursor:pointer}.nav-item-delete{cursor:pointer;color:var(--text-subtle);border-radius:var(--radius-input);background:0 0;border:none;flex-shrink:0;margin-left:2px;padding:2px;display:none}.nav-item-project:hover .nav-item-delete{display:flex}.nav-item-delete:hover{color:var(--danger)}.project-delete-btn{cursor:pointer;color:var(--text-subtle);border-radius:var(--radius-input);background:0 0;border:none;align-items:center;margin-left:auto;padding:.3rem;display:flex}.project-delete-btn:hover{color:var(--danger);background:var(--primary-soft)}.modal-body{color:var(--text-subtle);margin:0 0 1.25rem;font-size:.875rem;line-height:1.5}.modal-btn.danger{background:var(--danger);color:var(--on-primary)}.modal-btn.danger:hover{background:color-mix(in srgb, var(--danger) 85%, black)}.dropdown-user{flex-direction:column;gap:.1rem;padding:.5rem .75rem .4rem;display:flex}.dropdown-user-name{color:var(--text);font-size:.85rem;font-weight:600}.dropdown-user-email{color:var(--text-subtle);font-size:.75rem}.card-thumb{position:relative;overflow:hidden}.card-thumb-img{object-fit:contain;border-radius:var(--radius-input);background:var(--brand-cream);width:100%;height:100%;display:block}.card-thumb-placeholder{width:100%;height:100%}.card-actions{flex-direction:column;gap:4px;display:none;position:absolute}.card:hover .card-actions{display:flex}.card-actions.right{top:6px;right:6px}.card-actions.bottom-left{bottom:6px;left:6px}.card-action-btn{border-radius:var(--radius-input);width:26px;height:26px;color:var(--brand-cream);cursor:pointer;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0000008c;border:none;flex-shrink:0;justify-content:center;align-items:center;transition:background .15s;display:flex}.card-action-btn:hover{background:#000000bf}.card-action-btn.favorited{color:var(--accent);background:#000000a6}.card-action-btn.danger:hover{background:#000000bf}.card-action-btn.confirm{background:var(--danger);letter-spacing:.02em;gap:5px;width:auto;padding:0 8px;font-size:.72rem;font-weight:600}.card-action-btn.confirm:hover{background:color-mix(in srgb, var(--danger) 85%, black)}.card-project-btn{border-radius:var(--radius-input);width:22px;height:22px;color:var(--brand-cream);cursor:pointer;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0000008c;border:none;justify-content:center;align-items:center;transition:background .15s;display:none;position:absolute;bottom:6px;left:6px}.card:hover .card-project-btn{display:flex}.card-project-btn:hover{background:#000c}.project-card-actions{flex-direction:column;gap:4px;display:none;position:absolute;top:6px;right:6px}.project-card:hover .project-card-actions{display:flex}.thumb-spinner{color:var(--text-subtle);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.project-toggle-btn{border:1px solid var(--border);border-radius:var(--radius-input);background:var(--bg);width:100%;color:var(--text);cursor:pointer;text-align:left;align-items:center;gap:.6rem;padding:.5rem .75rem;font-size:.875rem;transition:background .12s,border-color .12s;display:flex}.project-toggle-btn:hover{background:var(--primary-soft)}.project-toggle-btn.active{border-color:var(--text-subtle);background:var(--primary-soft)}.project-toggle-count{color:var(--text-subtle);margin-left:auto;font-size:.75rem}.project-toggle-check{color:var(--text-subtle);font-size:.8rem}.bulk-new-project-row{flex-direction:column;gap:.4rem;padding:.4rem 0;display:flex}.bulk-new-project-row .modal-input{margin:0}.bulk-new-project-actions{gap:.4rem;display:flex}.bulk-new-project-actions .modal-btn{flex:1;padding:.35rem .6rem;font-size:.82rem}.upload-progress{color:var(--text-subtle);margin:-.5rem 0 .75rem;font-size:.8rem}.ctx-menu{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--shadow-card);z-index:300;min-width:170px;padding:.3rem}.ctx-item{border-radius:var(--radius-input);width:100%;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:.55rem;padding:.5rem .65rem;font-size:.84rem;transition:background .1s;display:flex}.ctx-item:hover{background:var(--primary-soft)}.ctx-item.danger{color:var(--danger)}.ctx-item.danger:hover{background:var(--primary-soft)}.ctx-item.disabled{opacity:.4;cursor:default}.ctx-icon{color:var(--text-subtle);align-items:center;display:flex}.ctx-item.danger .ctx-icon{color:var(--danger)}.ctx-divider{background:var(--line);height:1px;margin:.3rem 0}.card-menu-anchor{z-index:300;position:absolute;top:calc(100% + 4px);right:0}.card-action-btn.active{background:#000000bf}.nav-item-menu{flex-shrink:0;margin-left:auto;display:none;position:relative}.nav-item-project:hover .nav-item-menu{display:flex}.nav-item-menu-btn{cursor:pointer;color:var(--text-subtle);border-radius:var(--radius-input);background:0 0;border:none;align-items:center;padding:2px 3px;display:flex}.nav-item-menu-btn:hover{color:var(--text);background:var(--primary-soft)}.nav-menu-anchor{z-index:300;margin-left:4px;position:absolute;top:0;left:100%}.nav-item-delete{display:none!important}.detail-view{z-index:400;background:var(--bg);flex-direction:column;display:flex;position:fixed;inset:0}.detail-toolbar{background:var(--surface);border-bottom:1px solid var(--line);flex-shrink:0;align-items:center;gap:.5rem;height:46px;padding:0 .75rem;display:flex}.detail-back-btn{border-radius:var(--radius-input);border:1px solid var(--border);background:var(--card);color:var(--text);cursor:pointer;flex-shrink:0;align-items:center;gap:.2rem;padding:.25rem .6rem;font-size:.78rem;display:flex}.detail-back-btn:hover{background:var(--primary-soft)}.detail-title{color:var(--text);text-overflow:ellipsis;white-space:nowrap;max-width:260px;font-size:.85rem;font-weight:600;overflow:hidden}.detail-panel-toggle-icon{align-items:center;display:flex}.detail-panel-toggle-label{display:none}.detail-body{flex:1;display:flex;overflow:hidden}.detail-panel{border-right:1px solid var(--line);background:var(--surface);flex:1;min-width:0;transition:flex .18s,opacity .15s;overflow-y:auto}.detail-panel--collapsed{opacity:0;pointer-events:none;flex:0;overflow:hidden}.detail-panel-inner{flex-direction:column;gap:.75rem;padding:1rem;display:flex}.detail-thumb{aspect-ratio:3/4;border-radius:var(--radius-input);background:var(--card);justify-content:center;align-items:center;width:100%;max-height:200px;display:flex;overflow:hidden}.detail-thumb img{object-fit:cover;width:100%;height:100%}.detail-thumb-placeholder{color:var(--text-subtle)}.detail-panel-actions{border-top:1px solid var(--line);flex-wrap:wrap;gap:.4rem;padding-top:.75rem;display:flex}.detail-fav-btn{border-radius:var(--radius-input);border:1px solid var(--border);color:var(--text-subtle);cursor:pointer;background:0 0;flex-shrink:0;align-items:center;gap:.3rem;padding:.3rem .6rem;font-size:.78rem;display:flex}.detail-fav-btn:hover{background:var(--card);color:var(--text)}.detail-fav-btn.favorited{color:var(--accent);border-color:var(--accent)}.detail-viewer{background:var(--brand-plum);flex-direction:column;flex:2;display:flex;position:relative;overflow:hidden}.viewer-resume-prompt{z-index:5;border-radius:var(--radius-chip);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-card);color:var(--text);white-space:nowrap;align-items:center;gap:.5rem;padding:.4rem .6rem .4rem .85rem;font-size:.82rem;display:flex;position:absolute;top:.75rem;left:50%;transform:translate(-50%)}.viewer-overlay{z-index:400;background:#000000e0;justify-content:center;align-items:stretch;display:flex;position:fixed;inset:0}.viewer-shell{flex-direction:column;width:min(920px,100vw);display:flex}.viewer-toolbar{background:var(--surface);border-bottom:1px solid var(--line);flex-shrink:0;align-items:center;gap:.5rem;height:46px;padding:0 .75rem;display:flex}.viewer-title{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;font-weight:600;overflow:hidden}.viewer-btn{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-input);color:var(--text-subtle);cursor:pointer;white-space:nowrap;flex-shrink:0;align-items:center;gap:.35rem;padding:.3rem .6rem;font-size:.78rem;transition:background .12s,color .12s;display:flex}.viewer-btn:hover{background:var(--primary-soft);color:var(--text)}.viewer-btn.icon{padding:.3rem .4rem}.viewer-btn:disabled{opacity:.35;cursor:default}.viewer-btn:disabled:hover{background:var(--card);color:var(--text-subtle)}.viewer-outline{align-items:center;display:flex;position:relative}.viewer-outline-backdrop{z-index:40;position:fixed;inset:0}.viewer-outline-menu{z-index:41;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-input);flex-direction:column;gap:.15rem;min-width:14rem;max-width:22rem;max-height:60vh;padding:.3rem;display:flex;position:absolute;top:calc(100% + .35rem);right:0;overflow-y:auto;box-shadow:0 6px 20px #00000040}.viewer-outline-item{color:var(--text);text-align:left;border-radius:var(--radius-input);cursor:pointer;background:0 0;border:none;justify-content:space-between;align-items:center;gap:.75rem;padding:.4rem .6rem;font-size:.82rem;display:flex}.viewer-outline-item:hover{background:var(--primary-soft)}.viewer-outline-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.viewer-outline-page{color:var(--text-subtle);flex-shrink:0;font-size:.72rem}.viewer-page-nav{align-items:center;gap:.25rem;display:flex}.viewer-page-input{text-align:center;background:var(--primary-soft);border:1px solid var(--border);border-radius:var(--radius-input);width:3rem;color:var(--text);outline:none;padding:.2rem .3rem;font-size:.78rem}.viewer-page-input:focus{border-color:var(--primary)}.viewer-page-label{color:var(--text-subtle);white-space:nowrap;padding:0 .25rem;font-size:.78rem}.viewer-zoom-nav{align-items:center;gap:.2rem;display:flex}.viewer-zoom-label{justify-content:center;min-width:3.5rem;font-size:.75rem}.viewer-body{flex:1;align-items:stretch;display:flex;position:relative;overflow:hidden}.viewer-canvas-container{background:var(--brand-plum);flex:1;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.viewer-canvas-container.zoomed{cursor:grab;justify-content:flex-start;align-items:flex-start;overflow:auto}.viewer-canvas-container.zoomed.dragging{cursor:grabbing;-webkit-user-select:none;user-select:none}.viewer-canvas{transition:opacity .15s;display:block;box-shadow:0 4px 24px #00000080}.viewer-canvas-loading{color:#fff9;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.viewer-nav{width:40px;height:40px;color:var(--brand-cream);cursor:pointer;z-index:10;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:0;pointer-events:none;background:#00000080;border:none;border-radius:50%;justify-content:center;align-items:center;transition:background .15s,opacity .2s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.viewer-body:hover .viewer-nav{opacity:1;pointer-events:all}.viewer-nav:hover{background:#000c}.viewer-nav.left{left:12px}.viewer-nav.right{right:12px}.viewer-scroll-container{background:var(--brand-plum);flex-direction:column;flex:1;align-items:center;gap:1rem;padding:1.5rem 0;display:flex;overflow-y:auto}.viewer-scroll-page{flex-shrink:0;position:relative}.viewer-page-spinner{color:#fff9;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.state-center{color:var(--text-subtle);flex-direction:column;justify-content:center;align-items:center;gap:.6rem;padding:3rem 0;font-size:.9rem;display:flex}.state-center.error{color:var(--danger)}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:.8s linear infinite spin}.page-loading{color:var(--text-muted);justify-content:center;align-items:center;padding:64px 16px;display:flex}.upload-drop{border:1.5px dashed var(--line);border-radius:var(--radius-card);cursor:pointer;color:var(--text-subtle);flex-direction:column;align-items:center;gap:.35rem;margin-bottom:.85rem;padding:1.5rem;font-size:.875rem;transition:border-color .15s,background .15s;display:flex}.upload-drop:hover,.upload-drop.has-file{border-color:var(--text-subtle);background:var(--primary-soft)}.upload-drop.dragging{border-color:var(--text);background:var(--primary-soft)}.upload-filename{color:var(--text);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-weight:500;overflow:hidden}.upload-hint{font-size:.78rem}.modal-error{color:var(--danger);margin:-.5rem 0 .75rem;font-size:.8rem}.upgrade-modal{text-align:center;max-width:360px}.upgrade-modal-icon{margin-bottom:.5rem;font-size:2rem}.upgrade-modal-sub{color:var(--text-subtle);margin:-.5rem 0 1rem;font-size:.82rem}.upload-duplicate-warning{background:color-mix(in srgb, var(--status-making) 12%, transparent);border:1px solid color-mix(in srgb, var(--status-making) 40%, transparent);border-radius:var(--radius-card);margin:.25rem 0 .75rem;padding:.6rem .75rem}.upload-duplicate-title{color:var(--status-making);margin:0 0 .25rem;font-size:.8rem;font-weight:600}.upload-duplicate-item{color:var(--text-subtle);margin:0;font-size:.78rem}.section-empty{color:var(--text-subtle);padding:.5rem 0;font-size:.85rem}.section-meta{color:var(--text-subtle);font-size:.78rem}.modal-btn{align-items:center;gap:.4rem;display:inline-flex}.upload-title-list{flex-direction:column;gap:.5rem;max-height:280px;margin-bottom:.85rem;display:flex;overflow-y:auto}.upload-title-row{flex-direction:column;gap:.2rem;display:flex}.upload-title-filename{color:var(--text-subtle);text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;overflow:hidden}.upload-title-input{margin-bottom:0}.upload-progress{color:var(--text-subtle);align-items:center;gap:.4rem;margin-bottom:.75rem;font-size:.82rem;display:flex}.combine-hint{background:var(--card);border:1px dashed var(--line);border-radius:var(--radius-input);color:var(--text-subtle);align-items:flex-start;gap:.5rem;margin-top:.85rem;padding:.55rem .65rem;font-size:.75rem;line-height:1.4;display:flex}.combine-hint-icon{flex-shrink:0;margin-top:1px}.combine-hint-body{flex:1;margin:0}.combine-hint-body strong{color:var(--text);font-weight:600}.combine-hint-dismiss{width:18px;height:18px;color:var(--text-subtle);cursor:pointer;background:0 0;border:none;border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.combine-hint-dismiss:hover{background:var(--primary-soft);color:var(--text)}.upload-combine-toggle{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-input);cursor:pointer;-webkit-user-select:none;user-select:none;grid-template-columns:auto 1fr;align-items:center;gap:.15rem .55rem;margin:.35rem 0 .65rem;padding:.55rem .6rem;font-size:.85rem;display:grid}.upload-combine-toggle input[type=checkbox]{grid-row:span 2;margin:0}.upload-combine-hint{color:var(--text-subtle);grid-column:2;font-size:.72rem;line-height:1.3}.empty-state{text-align:center;flex-direction:column;align-items:center;gap:.5rem;padding:3rem 1rem;display:flex}.empty-state-icon{color:var(--text-subtle);opacity:.4}.empty-state-title{color:var(--text);margin:0;font-size:1rem;font-weight:600}.empty-state-body{color:var(--text-subtle);margin:0;font-size:.85rem}.empty-state-action{border-radius:var(--radius-input);border:1px solid var(--primary);background:color-mix(in srgb, var(--primary) 10%, transparent);color:var(--primary);cursor:pointer;margin-top:.5rem;padding:.4rem .9rem;font-size:.82rem;font-weight:500}.empty-state-action:hover{background:color-mix(in srgb, var(--primary) 20%, transparent)}.welcome-screen{text-align:center;flex-direction:column;align-items:center;gap:0;max-width:560px;margin:0 auto;padding:64px 32px 48px;display:flex}.welcome-icon{color:var(--primary);margin-bottom:20px}.welcome-title{color:var(--text);margin:0 0 10px;font-size:1.5rem;font-weight:700}.welcome-subtitle{color:var(--text-subtle);margin:0 0 36px;font-size:.95rem;line-height:1.5}.welcome-features{text-align:left;flex-direction:column;gap:18px;width:100%;margin-bottom:32px;display:flex}.welcome-feature{align-items:flex-start;gap:14px;display:flex}.welcome-feature>svg{color:var(--primary);flex-shrink:0;margin-top:2px}.welcome-feature strong{color:var(--text);margin-bottom:2px;font-size:.9rem;display:block}.welcome-feature span{color:var(--text-subtle);font-size:.83rem;line-height:1.4}.welcome-tier-note{color:var(--text-subtle);background:var(--primary-soft);border-radius:var(--radius-card);margin-bottom:28px;padding:8px 16px;font-size:.82rem}.welcome-cta{border-radius:var(--radius-card);width:auto;padding:10px 24px;font-size:.9rem;font-weight:600}.thumb-failed{flex-direction:column;align-items:center;gap:.4rem;display:flex}.thumb-retry-btn{background:var(--primary-soft,var(--surface));border:1px solid var(--border);border-radius:var(--radius-input);color:var(--text-subtle);cursor:pointer;align-items:center;gap:.25rem;padding:.25rem .5rem;font-size:.7rem;display:flex}.thumb-retry-btn:hover{color:var(--text);border-color:var(--text-subtle)}.thumb-error-label{color:var(--text-subtle);text-align:center;padding:0 .5rem;font-size:.72rem}.thumb-slow-label{color:var(--text-subtle);text-align:center;white-space:nowrap;opacity:.85;font-size:.68rem;position:absolute;top:calc(50% + 1.35rem);left:50%;transform:translate(-50%)}.toast-container{z-index:10000;pointer-events:none;flex-direction:column;gap:.5rem;display:flex;position:fixed;bottom:1.5rem;right:1.5rem}.toast-item{border-radius:var(--radius-card);pointer-events:auto;max-width:320px;padding:.65rem 1rem;font-size:.85rem;font-weight:500;animation:.2s toast-in;box-shadow:0 4px 16px #0000004d}.toast-success{background:var(--status-made);color:var(--on-primary)}.toast-error{background:var(--danger);color:var(--on-primary)}.toast-info{background:var(--status-want);color:var(--on-primary)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.account-profile{border-bottom:1px solid var(--line);align-items:center;gap:.85rem;margin-bottom:1rem;padding:.75rem 0 1.25rem;display:flex}.account-avatar{object-fit:cover;border-radius:50%;flex-shrink:0;width:52px;height:52px}.account-avatar--initials{background:var(--card);border:1px solid var(--line);color:var(--text-subtle);justify-content:center;align-items:center;font-size:1.1rem;font-weight:600;display:flex}.account-info{flex-direction:column;gap:.2rem;min-width:0;display:flex}.account-name{color:var(--text);font-size:.95rem;font-weight:600}.account-email{color:var(--text-subtle);font-size:.8rem}.account-actions{margin-bottom:1.5rem}.account-danger{border:1px solid var(--danger);border-radius:var(--radius-card);margin-bottom:.5rem;padding:1rem}.account-danger-title{color:var(--danger);text-transform:uppercase;letter-spacing:.05em;margin:0 0 .75rem;font-size:.8rem;font-weight:600}.account-del-confirm{flex-direction:column;gap:.75rem;display:flex}.account-del-warning{color:var(--text-subtle);margin:0;font-size:.82rem;line-height:1.5}.section-header-right{align-items:center;gap:.75rem;display:flex}.sort-select{appearance:none;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-input);color:var(--text-subtle);cursor:pointer;outline:none;padding:.3rem .6rem;font-size:.78rem}.sort-select:hover{border-color:var(--text-subtle);color:var(--text)}.sort-select:focus{border-color:var(--primary)}.pagination{justify-content:center;align-items:center;gap:.75rem;margin-top:2rem;padding-bottom:1rem;display:flex}.page-btn{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-input);width:32px;height:32px;color:var(--text-subtle);cursor:pointer;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.page-btn:hover:not(:disabled){background:var(--primary-soft);color:var(--text)}.page-btn:disabled{opacity:.35;cursor:default}.page-info{color:var(--text-subtle);text-align:center;min-width:90px;font-size:.82rem}.page-size-select{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-input);color:var(--text-subtle);cursor:pointer;padding:.25rem .5rem;font-size:.78rem}.page-size-select:hover{border-color:var(--text-subtle);color:var(--text)}.page-size-select:focus{border-color:var(--primary);outline:none}.beta-banner{background:color-mix(in srgb, var(--status-making) 12%, var(--surface));border-bottom:1px solid color-mix(in srgb, var(--status-making) 35%, transparent);color:var(--text-subtle);flex-shrink:0;align-items:center;gap:.65rem;padding:.55rem 1rem;font-size:.8rem;display:flex}.beta-banner-icon{color:var(--status-making);flex-shrink:0}.beta-banner-text{flex:1}.beta-banner-link{color:var(--primary);white-space:nowrap;font-weight:500;text-decoration:none}.beta-banner-link:hover{text-decoration:underline}.beta-banner-dismiss{color:var(--text-subtle);cursor:pointer;background:0 0;border:none;flex-shrink:0;align-items:center;padding:2px;display:flex}.beta-banner-dismiss:hover{color:var(--text)}.invite-page{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex}.invite-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-modal);text-align:center;width:100%;max-width:420px;box-shadow:var(--shadow-card);padding:2.5rem 2rem}.invite-logo{justify-content:center;margin-bottom:1.5rem;font-size:1.5rem;display:flex}.invite-heading{margin:0 0 .75rem;font-size:1.2rem;font-weight:600}.invite-message{color:var(--text-subtle);margin:0 0 1rem;font-size:.9rem;line-height:1.5}.invite-email{color:var(--primary);margin:0 0 1.25rem;font-size:.95rem;font-weight:600}.invite-btn{border-radius:var(--radius-card);cursor:pointer;border:none;margin-bottom:.75rem;padding:.6rem 1.5rem;font-size:.9rem;font-weight:600;text-decoration:none;transition:opacity .15s;display:inline-block}.invite-btn.primary{background:var(--primary);color:var(--on-primary)}.invite-btn.secondary{background:var(--card);color:var(--text);border:1px solid var(--border)}.invite-btn.sso{background:var(--card);color:var(--text);border:1px solid var(--border);width:100%}.invite-btn:hover{opacity:.85}.invite-btn:disabled{opacity:.5;cursor:default}.invite-expiry{color:var(--text-subtle);margin:.25rem 0 0;font-size:.75rem}.invite-form{text-align:left;margin-bottom:.5rem}.invite-form-field{flex-direction:column;gap:.3rem;margin-bottom:.75rem;display:flex}.invite-form-field label{color:var(--text-subtle);font-size:.8rem;font-weight:600}.invite-form-field input{border-radius:var(--radius-input);border:1px solid var(--border);background:var(--bg);color:var(--text);padding:.5rem .75rem;font-size:.9rem}.invite-form-field input:focus{border-color:var(--primary);outline:none}.invite-form-error{color:var(--danger);margin:0 0 .75rem;font-size:.8rem}.invite-form .invite-btn{text-align:center;width:100%;display:block}.invite-divider{color:var(--text-subtle);align-items:center;gap:.75rem;margin:1rem 0;font-size:.75rem;display:flex}.invite-divider:before,.invite-divider:after{content:"";background:var(--line);flex:1;height:1px}.invite-footer{color:var(--text-subtle);margin-top:1.5rem;font-size:.72rem}.invite-footer a{color:var(--text-subtle);text-decoration:underline}.legal-page{background:var(--bg);min-height:100vh;padding:3rem 1.5rem}.legal-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-modal);max-width:680px;margin:0 auto;padding:2.5rem}.legal-back{color:var(--text-subtle);margin-bottom:1.5rem;font-size:.82rem;text-decoration:none;display:inline-block}.legal-back:hover{color:var(--text)}.legal-card h1{margin:0 0 .4rem;font-size:1.4rem;font-weight:700}.legal-card h2{margin:1.5rem 0 .5rem;font-size:1rem;font-weight:600}.legal-card p{color:var(--text-subtle);margin:0 0 .75rem;font-size:.875rem;line-height:1.7}.legal-card ul{color:var(--text-subtle);margin:0 0 .75rem;padding-left:1.25rem;font-size:.875rem;line-height:1.7}.legal-meta{font-size:.78rem;color:var(--text-subtle)!important;margin-bottom:1.5rem!important}.filter-bar{border-bottom:1px solid var(--line);margin-bottom:.75rem}.filter-bar-toggle{color:var(--text-subtle);cursor:pointer;background:0 0;border:none;align-items:center;gap:.4rem;width:100%;padding:.5rem 0;font-size:.8rem;display:flex}.filter-bar-toggle:hover{color:var(--text)}.filter-active-count{background:var(--primary);color:var(--on-primary);border-radius:var(--radius-chip);padding:.1rem .4rem;font-size:.7rem;font-weight:600}.filter-panel{flex-direction:column;gap:.6rem;padding:.75rem 0;display:flex}.filter-row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.filter-row--tags{align-items:flex-start}.filter-tags-body{flex-direction:column;flex:1;gap:.5rem;display:flex}.filter-tag-search{align-self:flex-start;width:auto}.filter-row--actions{margin-top:.25rem}.filter-label{color:var(--text-subtle);flex-shrink:0;min-width:5rem;font-size:.75rem}.filter-select{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-input);color:var(--text);padding:.3rem .6rem;font-size:.8rem}.filter-input{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-input);color:var(--text);width:14rem;padding:.3rem .6rem;font-size:.8rem}.filter-input::placeholder{color:var(--text-muted)}.filter-pills{gap:.35rem;display:flex}.filter-pills--wrap{flex-wrap:wrap}.filter-pill{border-radius:var(--radius-chip);border:1px solid var(--border);background:var(--card);color:var(--text-subtle);cursor:pointer;padding:.25rem .65rem;font-size:.75rem;transition:all .12s}.filter-pill:hover{border-color:var(--primary);color:var(--text)}.filter-pill.active{background:var(--primary);border-color:var(--primary);color:var(--on-primary);font-weight:600}.filter-clear-btn{color:var(--text-subtle);cursor:pointer;background:0 0;border:none;padding:0;font-size:.75rem;text-decoration:underline}.filter-clear-btn:hover{color:var(--text)}.active-pills{flex-wrap:wrap;gap:.4rem;margin-bottom:.75rem;display:flex}.active-pill{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-chip);color:var(--text-subtle);align-items:center;gap:.3rem;padding:.2rem .55rem;font-size:.75rem;display:flex}.active-pill-remove{cursor:pointer;color:var(--text-subtle);background:0 0;border:none;padding:0;font-size:.9rem;line-height:1}.active-pill-remove:hover{color:var(--text)}.settings-page{flex-direction:column;height:100%;display:flex;overflow-y:auto}.settings-header{border-bottom:1px solid var(--line);flex-shrink:0;align-items:center;gap:.75rem;padding:1.25rem 1.5rem .75rem;display:flex}.settings-back-btn{color:var(--text-subtle);cursor:pointer;background:0 0;border:none;align-items:center;gap:.25rem;padding:0;font-size:.82rem;display:flex}.settings-back-btn:hover{color:var(--text)}.settings-title{color:var(--text);margin:0;font-size:1rem;font-weight:700}.settings-body{flex-direction:column;gap:1.5rem;max-width:640px;padding:1.5rem;display:flex}.settings-section{flex-direction:column;gap:.75rem;display:flex}.settings-section-title{text-transform:uppercase;letter-spacing:.07em;color:var(--text-subtle);margin:0;font-size:.75rem;font-weight:700}.settings-section-title.danger{color:var(--danger)}.settings-profile{align-items:center;gap:.875rem;display:flex}.settings-avatar{object-fit:cover;border-radius:50%;flex-shrink:0;width:44px;height:44px}.settings-avatar--initials{background:var(--primary);color:var(--on-primary);justify-content:center;align-items:center;font-size:1rem;font-weight:700;display:flex}.settings-avatar-wrapper{flex-shrink:0;position:relative}.settings-avatar-overlay{opacity:0;cursor:pointer;color:var(--brand-cream);background:#0006;border:none;border-radius:50%;justify-content:center;align-items:center;transition:opacity .15s;display:flex;position:absolute;inset:0}.settings-avatar-wrapper:hover .settings-avatar-overlay{opacity:1}.settings-avatar-remove{background:var(--danger);width:20px;height:20px;color:var(--on-primary);border:2px solid var(--surface);cursor:pointer;opacity:0;border-radius:50%;justify-content:center;align-items:center;transition:opacity .15s;display:flex;position:absolute;top:-4px;right:-4px}.settings-avatar-wrapper:hover .settings-avatar-remove{opacity:1}.settings-profile-info{flex-direction:column;gap:.1rem;display:flex}.settings-profile-name{color:var(--text);align-items:center;gap:.4rem;font-size:.9rem;font-weight:600;display:inline-flex}.settings-profile-email{color:var(--text-subtle);font-size:.78rem}.settings-inline-edit{align-items:center;gap:.3rem;display:flex}.settings-input{border:1px solid var(--border);border-radius:var(--radius-input);background:var(--surface);color:var(--text);width:100%;max-width:260px;padding:.35rem .5rem;font-size:.85rem}.settings-input:focus{border-color:var(--primary);outline:none}.settings-icon-btn{cursor:pointer;color:var(--text-subtle);background:0 0;border:none;align-items:center;padding:.2rem;display:inline-flex}.settings-icon-btn:hover{color:var(--primary)}.settings-subsection{margin-top:.75rem}.settings-pw-form{flex-direction:column;gap:.5rem;max-width:300px;display:flex}.settings-pw-field{align-items:center;gap:.3rem;display:flex}.settings-pw-field .settings-input{flex:1}.settings-pw-actions{gap:.5rem;display:flex}.settings-btn-primary{border-radius:var(--radius-input);background:var(--primary);color:var(--on-primary);cursor:pointer;border:none;padding:.35rem .75rem;font-size:.8rem;text-decoration:none;display:inline-block}.settings-btn-primary:disabled{opacity:.5;cursor:not-allowed}.settings-billing-warning{color:var(--danger)}.settings-billing-badge{border-radius:var(--radius-chip);background:var(--surface);border:1px solid var(--line);color:var(--text-subtle);padding:.25rem .75rem;font-size:.78rem;font-weight:600;display:inline-block}.settings-providers{flex-wrap:wrap;gap:.4rem;margin-top:.3rem;display:flex}.settings-provider-badge{border-radius:var(--radius-chip);background:var(--surface);border:1px solid var(--line);color:var(--text-subtle);padding:.2rem .6rem;font-size:.75rem}.settings-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.settings-row-label{flex-direction:column;gap:.15rem;display:flex}.settings-row-label span:first-child{color:var(--text);font-size:.875rem}.settings-row-hint{color:var(--text-subtle);font-size:.75rem}.settings-stats-loading{color:var(--text-subtle);justify-content:center;padding:1rem 0;display:flex}.settings-stats-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:.75rem;display:grid}.settings-stat{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-card);flex-direction:column;gap:.15rem;padding:.6rem .75rem;display:flex}.settings-stat-value{color:var(--text);font-size:1.15rem;font-weight:600}.settings-stat-label{color:var(--text-subtle);font-size:.72rem}.settings-stat-tags{flex-direction:column;gap:.4rem;margin-top:.9rem;display:flex}.settings-stat-tag-pills{flex-wrap:wrap;gap:.4rem;display:flex}.settings-stat-tag-pill{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-chip);color:var(--text-subtle);padding:.2rem .75rem;font-size:.75rem}.settings-stat-tag-count{color:var(--text-subtle);margin-left:.25rem}.settings-pro-teaser{color:var(--text-subtle);margin:0;font-size:.85rem;line-height:1.5}.settings-pill-group{flex-wrap:wrap;gap:.35rem;display:flex}.settings-pill{border-radius:var(--radius-chip);border:1px solid var(--border);background:var(--card);color:var(--text-subtle);cursor:pointer;padding:.3rem .75rem;font-size:.78rem;transition:all .12s}.settings-pill:hover{border-color:var(--primary);color:var(--text)}.settings-pill.active{background:var(--primary);border-color:var(--primary);color:var(--on-primary);font-weight:600}.settings-select{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-input);color:var(--text);min-width:10rem;padding:.3rem .6rem;font-size:.8rem}.settings-section--danger{border-top:1px solid var(--line);padding-top:1.5rem}.settings-danger-btn{border:1px solid var(--danger);color:var(--danger);border-radius:var(--radius-input);cursor:pointer;background:0 0;width:fit-content;padding:.45rem 1rem;font-size:.82rem}.settings-danger-btn:hover{background:var(--danger);color:var(--on-primary)}.settings-danger-btn:disabled{opacity:.5;cursor:not-allowed}.settings-del-confirm{flex-direction:column;gap:.75rem;display:flex}.settings-del-warning{color:var(--text-subtle);margin:0;font-size:.82rem}.settings-del-actions{gap:.5rem;display:flex}.settings-btn-secondary{background:var(--card);border:1px solid var(--border);color:var(--text);border-radius:var(--radius-input);cursor:pointer;padding:.45rem 1rem;font-size:.82rem}.settings-btn-secondary:hover{border-color:var(--primary)}.tag-dropdown{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-card);z-index:200;min-width:160px;max-width:280px;max-height:200px;padding:.25rem 0;position:absolute;top:calc(100% + 4px);left:0;overflow-y:auto;box-shadow:0 4px 16px #00000040}.tag-dropdown-item{text-align:left;width:100%;color:var(--text);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:none;padding:.35rem .75rem;font-size:.8rem;display:block;overflow:hidden}.tag-dropdown-item:hover{background:var(--primary-soft,var(--surface));color:var(--primary)}.tag-dropdown-toggle{border-radius:var(--radius-input);width:22px;height:22px;color:var(--text-subtle);cursor:pointer;background:0 0;border:none;flex:none;justify-content:center;align-items:center;margin-left:4px;padding:0;display:inline-flex}.tag-dropdown-toggle:hover,.tag-dropdown-toggle[aria-expanded=true]{color:var(--text);background:var(--card)}.tag-dropdown-toggle svg{transition:transform .15s}.tag-dropdown-toggle[aria-expanded=true] svg{transform:rotate(180deg)}@media (pointer:coarse){.tag-dropdown-toggle{width:32px;height:32px}.tag-dropdown{max-width:min(280px,80vw)}}.tags-admin-list{grid-template-columns:repeat(2,1fr);gap:.35rem;display:grid}.tags-admin-row{border-radius:var(--radius-card);border:1px solid var(--line);background:var(--card);padding:.5rem .75rem}.tags-admin-display{align-items:center;gap:.5rem;display:flex}.tags-admin-name{color:var(--primary);flex:1;font-size:.875rem;font-weight:500}.tags-admin-count{color:var(--text-subtle);margin-right:.25rem;font-size:.78rem}.tags-admin-confirm-label{color:var(--text-subtle);font-size:.78rem}.tags-admin-action-btn{border-radius:var(--radius-input);border:1px solid var(--border);width:28px;height:28px;color:var(--text-subtle);cursor:pointer;background:0 0;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.tags-admin-action-btn:hover{border-color:var(--primary);color:var(--primary)}.tags-admin-action-btn.danger:hover{border-color:var(--danger);color:var(--danger)}.tags-admin-action-btn:disabled{opacity:.4;cursor:not-allowed}.tags-admin-edit{align-items:center;gap:.5rem;display:flex}.tags-admin-input{flex:1;padding:.3rem .5rem;font-size:.875rem}.tour-backdrop{z-index:800;background:#00000073;position:fixed;inset:0}.tour-tooltip{z-index:801;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-modal);width:320px;padding:1.25rem 1.5rem;box-shadow:0 8px 32px #00000059}.tour-tooltip--centered{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)!important}.tour-tooltip--anchored:before{content:"";background:var(--card);border:1px solid var(--line);border-bottom:none;border-right:none;width:10px;height:10px;position:absolute}.tour-tooltip.tour-arrow-left:before{border-bottom:none;border-right:none;border-left:1px solid var(--line);border-top:1px solid var(--line);top:50%;left:-6px;transform:translateY(-50%)rotate(-45deg)}.tour-step-count{color:var(--text-subtle);margin-bottom:.5rem;font-size:.72rem}.tour-title{color:var(--text);margin:0 0 .5rem;font-size:1rem;font-weight:600}.tour-body{color:var(--text-subtle);margin:0 0 1rem;font-size:.83rem;line-height:1.5}.tour-actions{justify-content:space-between;align-items:center;display:flex}.tour-skip{color:var(--text-subtle);cursor:pointer;background:0 0;border:none;padding:0;font-size:.78rem}.tour-skip:hover{color:var(--text)}.tour-next{border-radius:var(--radius-input);background:var(--primary);color:var(--on-primary);cursor:pointer;border:none;padding:.4rem 1rem;font-size:.82rem;font-weight:600}.landing{background:var(--bg);min-height:100vh;color:var(--text);flex-direction:column;display:flex}.landing-nav{border-bottom:1px solid var(--line);background:var(--surface);z-index:50;justify-content:space-between;align-items:center;padding:1.25rem 2rem;display:flex;position:sticky;top:0}.landing-wordmark{font-size:1.25rem;line-height:1}.landing-nav-right{align-items:center;gap:.75rem;display:flex}.landing-theme-btn{cursor:pointer;border-radius:var(--radius-input);background:0 0;border:none;padding:.25rem;font-size:1.1rem;line-height:1;transition:background .12s}.landing-theme-btn:hover{background:var(--primary-soft)}.landing-signin-link{border:1.5px solid var(--line);border-radius:var(--radius-card);color:var(--text);cursor:pointer;background:0 0;padding:.4rem 1rem;font-size:.875rem;font-weight:500;transition:border-color .15s,background .15s}.landing-signin-link:hover{border-color:var(--primary);background:color-mix(in srgb, var(--primary) 8%, transparent);color:var(--primary)}a.landing-wordmark{color:inherit;text-decoration:none}.landing-nav-tabs{align-items:center;gap:.25rem;display:flex}.landing-nav-tab{color:var(--text-subtle);border-radius:var(--radius-card);padding:.45rem .95rem;font-size:.9rem;font-weight:500;text-decoration:none;transition:color .15s,background .15s}.landing-nav-tab:hover{color:var(--text);background:var(--primary-soft)}.landing-nav-tab--active{color:var(--primary);background:color-mix(in srgb, var(--primary) 10%, transparent)}@media (width<=720px){.landing-nav{flex-wrap:wrap;gap:.5rem}.landing-nav-tabs{order:3;justify-content:center;width:100%}}.landing-hero{grid-template-columns:42fr 58fr;align-items:center;gap:4rem;width:100%;max-width:1440px;min-height:520px;margin:0 auto;padding:5rem 3rem;display:grid}.landing-hero-inner{flex-direction:column;gap:1.25rem;display:flex}.landing-eyebrow{text-transform:uppercase;letter-spacing:.1em;color:var(--primary);margin:0;font-size:.75rem;font-weight:700}.landing-headline{letter-spacing:-.02em;color:var(--text);margin:0;font-size:clamp(2rem,4vw,2.75rem);font-weight:800;line-height:1.15}.landing-headline-accent{color:var(--primary)}.landing-sub{color:var(--text-subtle);max-width:480px;margin:0;font-size:1.05rem;line-height:1.65}.landing-cta-row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.landing-btn-primary{border-radius:var(--radius-card);background:var(--primary);color:var(--on-primary);cursor:pointer;letter-spacing:.01em;border:none;padding:.75rem 1.75rem;font-size:.95rem;font-weight:600;transition:opacity .15s,transform .1s}.landing-btn-primary:hover{opacity:.88;transform:translateY(-1px)}.landing-btn-ghost{border-radius:var(--radius-card);border:1.5px solid var(--border);color:var(--text-subtle);cursor:pointer;background:0 0;padding:.7rem 1.25rem;font-size:.9rem;font-weight:500;text-decoration:none;transition:border-color .15s,color .15s}.landing-btn-ghost:hover{border-color:var(--text-subtle);color:var(--text)}.landing-invite-note{color:var(--text-subtle);margin:0;font-size:.8rem;line-height:1.5}.landing-quilt{border-radius:var(--radius-card);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-card);aspect-ratio:1;grid-template-columns:repeat(4,1fr);justify-self:center;gap:8px;max-width:340px;padding:1.5rem;display:grid}.landing-quilt-cell{border-radius:var(--radius-input);aspect-ratio:3/4;background:var(--card)}.landing-quilt-cell--0{background:color-mix(in srgb, var(--primary) 18%, var(--card))}.landing-quilt-cell--1{background:var(--primary-soft)}.landing-quilt-cell--2{background:var(--card)}.landing-quilt-cell--3{background:color-mix(in srgb, var(--primary) 10%, var(--primary-soft))}.landing-features{background:var(--surface);border-top:1px solid var(--line);padding:4rem 2rem}.landing-features-grid{grid-template-columns:repeat(4,1fr);gap:1.5rem;max-width:1100px;margin:0 auto;display:grid}.landing-feature-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-card);flex-direction:column;gap:.6rem;padding:1.5rem 1.25rem;display:flex}.landing-feature-icon{font-size:1.75rem;line-height:1}.landing-feature-title{color:var(--text);margin:0;font-size:.95rem;font-weight:700}.landing-feature-body{color:var(--text-subtle);margin:0;font-size:.85rem;line-height:1.6}.landing-plans{background:var(--bg);border-top:1px solid var(--line);padding:4rem 2rem}.landing-plans-grid{grid-template-columns:repeat(2,1fr);gap:1.5rem;max-width:880px;margin:0 auto;display:grid}.landing-plan-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-modal);flex-direction:column;gap:.75rem;padding:2rem 1.75rem;display:flex;position:relative}.landing-plan-card--highlight{border-color:var(--primary);box-shadow:0 8px 28px -16px var(--primary)}.landing-plan-badge{background:var(--primary);color:var(--on-primary);letter-spacing:.04em;text-transform:uppercase;border-radius:var(--radius-chip);padding:.25rem .7rem;font-size:.7rem;font-weight:700;position:absolute;top:-.6rem;right:1.25rem}.landing-plan-name{color:var(--text);margin:0;font-size:1.25rem;font-weight:800}.landing-plan-price{align-items:baseline;gap:.35rem;margin-top:.25rem;display:flex}.landing-plan-price-amount{color:var(--text);letter-spacing:-.02em;font-size:2.2rem;font-weight:800}.landing-plan-price-note{color:var(--text-subtle);font-size:.9rem;font-weight:500}.landing-plan-price-detail{color:var(--text-subtle);margin:.2rem 0 0;font-size:.78rem}.landing-plan-tagline{color:var(--text-subtle);margin:0 0 .5rem;font-size:.9rem;line-height:1.5}.landing-plan-inherits{color:var(--text-subtle);margin:.25rem 0 0;font-size:.85rem}.landing-plan-inherits strong{color:var(--text)}.landing-plan-features{flex-direction:column;gap:.55rem;margin:.5rem 0 0;padding:0;list-style:none;display:flex}.landing-plan-feature{color:var(--text);align-items:flex-start;gap:.6rem;font-size:.9rem;line-height:1.45;display:flex}.landing-plan-check{border-radius:var(--radius-chip);background:var(--primary);width:1.1rem;height:1.1rem;color:var(--on-primary);flex-shrink:0;justify-content:center;align-items:center;margin-top:.15rem;font-size:.7rem;font-weight:700;display:flex}.landing-plan-cta{text-align:center;width:100%;margin-top:.5rem}.landing-plan-cta:disabled{opacity:.6;cursor:default;transform:none}.landing-plan-status{color:var(--primary);text-align:center;margin:.5rem 0 0;font-size:.85rem;font-weight:600}@media (width<=720px){.landing-plans-grid{grid-template-columns:1fr}}.landing-plans-coming{background:var(--surface);border-top:1px solid var(--line);padding:4rem 2rem}.landing-plans-coming-grid{grid-template-columns:repeat(3,1fr);gap:1.25rem;max-width:1100px;margin:0 auto;display:grid}.landing-plans-coming-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-card);flex-direction:column;gap:.55rem;padding:1.5rem 1.25rem;display:flex}.landing-plans-coming-icon{font-size:1.6rem;line-height:1}.landing-plans-coming-card-title{color:var(--text);margin:0;font-size:.95rem;font-weight:700}.landing-plans-coming-desc{color:var(--text-subtle);margin:0;font-size:.85rem;line-height:1.55}@media (width<=960px){.landing-plans-coming-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=600px){.landing-plans-coming-grid{grid-template-columns:1fr}}.landing-plans-faq{background:var(--bg);border-top:1px solid var(--line);padding:4rem 2rem}.landing-plans-faq-list{flex-direction:column;gap:.75rem;max-width:760px;margin:0 auto;display:flex}.landing-plans-faq-item{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-card);padding:0;transition:border-color .15s;overflow:hidden}.landing-plans-faq-item[open]{border-color:color-mix(in srgb, var(--primary) 35%, var(--line))}.landing-plans-faq-q{color:var(--text);cursor:pointer;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.25rem;font-size:.95rem;font-weight:600;list-style:none;display:flex}.landing-plans-faq-q::-webkit-details-marker{display:none}.landing-plans-faq-q:after{content:"+";color:var(--text-subtle);font-size:1.25rem;font-weight:400;line-height:1;transition:transform .2s}.landing-plans-faq-item[open] .landing-plans-faq-q:after{color:var(--primary);transform:rotate(45deg)}.landing-plans-faq-a{color:var(--text-subtle);margin:0;padding:0 1.25rem 1.1rem;font-size:.9rem;line-height:1.6}.landing-footer{border-top:1px solid var(--line);color:var(--text-subtle);flex-wrap:wrap;align-items:center;gap:1.5rem;margin-top:auto;padding:1.5rem 2rem;font-size:.8rem;display:flex}.landing-footer-wordmark{font-size:.95rem}.landing-footer-links{gap:1rem;display:flex}.landing-footer-links a{color:var(--text-subtle);text-decoration:none;transition:color .12s}.landing-footer-links a:hover{color:var(--text)}.landing-footer-copy{margin:0 0 0 auto}.landing-screenshots{background:var(--bg);border-top:1px solid var(--line);padding:4rem 2rem}.landing-section-inner{width:100%;max-width:1100px;margin:0 auto}.landing-section-title{letter-spacing:-.02em;color:var(--text);text-align:center;margin:0 0 .4rem;font-size:clamp(1.4rem,3vw,1.9rem);font-weight:800}.landing-section-sub{color:var(--text-subtle);text-align:center;margin:0 0 2rem;font-size:1rem;line-height:1.6}.landing-shot-tabs{flex-wrap:wrap;justify-content:center;gap:.5rem;margin-bottom:1.25rem;display:flex}.landing-shot-tab{border-radius:var(--radius-chip);border:1.5px solid var(--line);color:var(--text-subtle);cursor:pointer;background:0 0;padding:.45rem 1rem;font-size:.85rem;font-weight:500;transition:border-color .15s,color .15s,background .15s}.landing-shot-tab:hover{border-color:var(--primary);color:var(--primary)}.landing-shot-tab.active{border-color:var(--primary);background:color-mix(in srgb, var(--primary) 10%, transparent);color:var(--primary);font-weight:600}.landing-shot-frame{border-radius:var(--radius-modal);border:1px solid var(--line);overflow:hidden;box-shadow:0 8px 40px #0000002e}.landing-shot-chrome{background:var(--card);border-bottom:1px solid var(--line);align-items:center;gap:6px;padding:10px 14px;display:flex}.landing-shot-dot{border-radius:50%;flex-shrink:0;width:12px;height:12px}.landing-shot-dot--red{background:var(--danger)}.landing-shot-dot--yellow{background:var(--status-making)}.landing-shot-dot--green{background:var(--status-made)}.landing-shot-img{object-fit:cover;width:100%;height:auto;display:block}.landing-demo-video{width:100%;height:auto;display:block}.landing-video-frame{margin-bottom:2.5rem}.landing-screenshots-sub{text-transform:uppercase;letter-spacing:.08em;color:var(--text-subtle);text-align:center;margin:0 0 1rem;font-size:.8rem;font-weight:700}.landing-shot-caption{text-align:center;color:var(--text-subtle);margin:1rem 0 0;font-size:.875rem;line-height:1.5}.landing-roadmap{background:var(--surface);border-top:1px solid var(--line);padding:4rem 2rem}.landing-roadmap-track{margin-top:3.25rem;padding-left:2.5rem;position:relative}.landing-roadmap-track:before{content:"";border-left:2px dashed color-mix(in srgb, var(--primary) 35%, var(--line));width:0;position:absolute;top:-1.25rem;bottom:0;left:.75rem}.landing-roadmap-scissors{color:var(--primary);transform-origin:50%;opacity:.85;font-size:2rem;line-height:1;position:absolute;top:-2.5rem;left:.75rem;transform:translate(-50%)rotate(90deg)}.landing-roadmap-items{flex-direction:column;gap:0;display:flex}.landing-roadmap-item{align-items:flex-start;gap:1.25rem;padding:1.25rem 0;display:flex;position:relative}.landing-roadmap-item+.landing-roadmap-item{border-top:none}.landing-roadmap-node{border:2px solid var(--line);background:var(--bg);z-index:1;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:1.75rem;height:1.75rem;margin-left:-2.5rem;margin-right:0;display:flex;position:relative}.landing-roadmap-item--shipped .landing-roadmap-node{background:var(--primary);border-color:var(--primary)}.landing-roadmap-item--current .landing-roadmap-node{background:var(--primary);border-color:var(--primary);box-shadow:0 0 0 4px color-mix(in srgb, var(--primary) 20%, transparent)}.landing-roadmap-item--soon .landing-roadmap-node{background:var(--card);border-color:var(--line)}.landing-roadmap-item--later .landing-roadmap-node{background:var(--surface);border-color:color-mix(in srgb, var(--line) 60%, transparent);opacity:.55}.landing-roadmap-check{color:var(--on-primary);font-size:.75rem;font-weight:700;line-height:1}.landing-roadmap-pulse{background:var(--on-primary);border-radius:50%;width:8px;height:8px}.landing-roadmap-content{flex-direction:column;gap:.2rem;padding-bottom:.25rem;display:flex}.landing-roadmap-item--later .landing-roadmap-content{opacity:.55}.landing-roadmap-badge{text-transform:uppercase;letter-spacing:.08em;border-radius:var(--radius-chip);width:fit-content;padding:.15rem .5rem;font-size:.7rem;font-weight:700}.landing-roadmap-badge--shipped{background:color-mix(in srgb, var(--primary) 15%, transparent);color:var(--primary)}.landing-roadmap-badge--current{background:color-mix(in srgb, var(--primary) 20%, transparent);color:var(--primary)}.landing-roadmap-badge--soon{background:var(--primary-soft);color:var(--text-subtle)}.landing-roadmap-badge--later{background:var(--card);color:var(--text-subtle)}.landing-roadmap-title{color:var(--text);margin:0;font-size:.95rem;font-weight:700}.landing-roadmap-desc{color:var(--text-subtle);margin:0;font-size:.85rem;line-height:1.5}.landing-waitlist{background:var(--bg);border-top:1px solid var(--line);padding:4rem 2rem}.landing-waitlist-inner{flex-direction:column;align-items:center;display:flex}.landing-waitlist-form{flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:.75rem;width:100%;max-width:520px;display:flex}.landing-waitlist-input{border-radius:var(--radius-card);border:1.5px solid var(--border);background:var(--surface);min-width:220px;color:var(--text);outline:none;flex:1;padding:.75rem 1rem;font-size:.95rem;transition:border-color .15s}.landing-waitlist-input:focus{border-color:var(--primary)}.landing-waitlist-input::placeholder{color:var(--text-muted)}.landing-waitlist-success{border-radius:var(--radius-card);background:color-mix(in srgb, var(--primary) 12%, var(--surface));border:1px solid color-mix(in srgb, var(--primary) 30%, transparent);color:var(--primary);text-align:center;max-width:480px;padding:1rem 1.5rem;font-size:.95rem;font-weight:500}.landing-waitlist-error{text-align:center;width:100%;color:var(--danger);margin:0;font-size:.85rem}@media (width<=768px){.landing-shot-tabs{gap:.4rem}.landing-shot-tab{padding:.4rem .75rem;font-size:.8rem}.landing-roadmap-track{padding-left:2rem}.landing-roadmap-node{width:1.5rem;height:1.5rem;margin-left:-2rem}}.topbar-hamburger{cursor:pointer;color:var(--text-subtle);border-radius:var(--radius-input);background:0 0;border:none;justify-content:center;align-items:center;padding:4px;transition:background .12s,color .12s;display:none}.topbar-hamburger:hover{background:var(--primary-soft);color:var(--text)}.sidebar-backdrop{display:none}@media (width<=768px){.topbar-hamburger{display:flex}.sidebar{z-index:400;height:100vh;transition:transform .22s;position:fixed;top:0;left:0;transform:translate(-100%);box-shadow:4px 0 24px #00000059}.sidebar--open{transform:translate(0)}.sidebar-backdrop{z-index:399;background:#0006;animation:.2s fadeIn;display:block;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.topbar{gap:.5rem;padding:0 .75rem}.search{flex:1;width:auto;min-width:0}.shell{flex-direction:column}.content{padding:1.25rem 1rem}.pattern-grid{grid-template-columns:repeat(2,1fr);gap:.75rem}.edit-modal{border-radius:0;width:100vw;height:100dvh}.detail-body{flex-direction:row}.detail-panel{opacity:0;pointer-events:none;border-right:none;flex:0;overflow:hidden}.detail-viewer{flex:1;min-width:0}.detail-body--edit .detail-panel{opacity:1;pointer-events:auto;border-bottom:none;border-right:none;flex:1;overflow-y:auto}.detail-body--edit .detail-viewer{flex:0;overflow:hidden}.detail-panel-toggle-icon{display:none}.detail-panel-toggle-label{font-size:.82rem;font-weight:600;display:inline}.viewer-zoom-nav{display:none}.modal{width:calc(100vw - 2rem)}.bulk-action-bar{border-radius:var(--radius-card);flex-wrap:wrap;justify-content:center;bottom:.75rem;left:1rem;right:1rem;transform:none}.landing-hero{text-align:center;grid-template-columns:1fr;justify-items:center;padding:3rem 1.25rem 2.5rem}.landing-hero-inner{align-items:center}.landing-cta-row{justify-content:center}.landing-hero-video-col{width:100%}.landing-features-grid{grid-template-columns:1fr 1fr}}@media (width<=480px){.landing-features-grid{grid-template-columns:1fr}.landing-headline{font-size:1.75rem}.landing-quilt{display:none}}@media (width<=768px){.tags-admin-list{grid-template-columns:1fr}.pattern-grid .card{width:100%;min-width:0}.pattern-grid .card-thumb{aspect-ratio:3/4;width:100%;height:auto}.pattern-grid .card-thumb-img{object-fit:contain;width:100%;height:100%;position:absolute;inset:0}}.tour-next:hover{opacity:.9}.card--locked .card-thumb img,.card--locked .card-thumb-placeholder,.card--locked .project-thumb-body{filter:grayscale();opacity:.45}.card--locked .card-title{color:var(--text-subtle)}.card--locked{cursor:pointer}.card-lock-badge{background:var(--card);width:32px;height:32px;color:var(--text-subtle);pointer-events:none;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 1px 3px #00000026}.nav-item--locked{color:var(--text-subtle)}.locked-modal{text-align:center;max-width:420px}.locked-modal-icon{background:var(--card);width:44px;height:44px;color:var(--primary);border-radius:50%;justify-content:center;align-items:center;margin-bottom:.5rem;display:inline-flex}.lapse-banner{background:color-mix(in srgb, var(--primary) 12%, var(--surface));border-bottom:1px solid color-mix(in srgb, var(--primary) 35%, transparent);color:var(--text);flex-shrink:0;align-items:center;gap:.65rem;padding:.55rem 1rem;font-size:.82rem;display:flex}.lapse-banner--collapsed{color:var(--text-subtle);padding:.3rem 1rem;font-size:.76rem}.lapse-banner-icon{color:var(--primary);flex-shrink:0}.lapse-banner-text{flex:1}.lapse-banner-cta{border-radius:var(--radius-input);background:var(--primary);color:var(--surface);white-space:nowrap;padding:.25rem .7rem;font-weight:600;text-decoration:none}.lapse-banner-cta:hover{opacity:.9}.lapse-banner-toggle{color:var(--text-subtle);cursor:pointer;background:0 0;border:none;align-items:center;padding:2px;display:flex}.lapse-banner-toggle:hover{color:var(--text)}.library-export{align-items:flex-start;gap:1rem}.library-export-actions{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;display:flex}.library-export-actions .settings-btn-primary{align-items:center;gap:.35rem;display:inline-flex}@media (width<=640px){.library-export{flex-direction:column}.library-export-actions{justify-content:flex-start}}
