:root{--paper:#f6f2ea;--paper-2:#efe9dd;--card:#fffdf8;--ink:#23201b;--ink-2:#5b554b;--ink-3:#8b8478;--line:#ddd5c6;--accent:#b5522a;--accent-dark:#8f3f1f;--accent-soft:#f3e0d6;--ok:#3a7d6c;--radius:10px;--shadow:0 1px 2px #23201b0f, 0 8px 24px #23201b12;--serif:Georgia, "Times New Roman", serif;--sans:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.55}h1,h2,h3{font-family:var(--serif);margin:0 0 .5em;font-weight:600;line-height:1.2}a{color:var(--accent)}button{font:inherit;cursor:pointer}input,select,textarea{font:inherit;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:8px;outline:none;padding:8px 10px}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #b5522a26}.muted{color:var(--ink-3)}.small{font-size:13px}.btn{border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:8px;align-items:center;gap:8px;padding:8px 16px;font-weight:500;text-decoration:none;transition:border-color .15s,background .15s,color .15s;display:inline-flex}.btn:hover{border-color:var(--ink-3)}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-dark);border-color:var(--accent-dark)}.btn-ghost{background:0 0;border-color:#0000}.btn-sm{padding:5px 10px;font-size:13px}.btn:disabled{opacity:.5;cursor:default}.demo-shell{flex-direction:column;min-height:100vh;display:flex}.topbar{z-index:30;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);background:#f6f2eaeb;align-items:center;gap:20px;height:58px;padding:0 24px;display:flex;position:sticky;top:0}.brand{font-family:var(--serif);color:var(--ink);letter-spacing:.02em;font-size:19px;font-weight:700;text-decoration:none}.brand .accent{color:var(--accent)}.topbar nav{flex:1;gap:4px;display:flex}.topbar nav a{color:var(--ink-2);border-radius:8px;padding:6px 12px;font-weight:500;text-decoration:none}.topbar nav a:hover{background:var(--paper-2)}.topbar nav a.active{background:var(--accent-soft);color:var(--accent-dark)}.demo-badge{letter-spacing:.06em;text-transform:uppercase;color:var(--accent-dark);background:var(--accent-soft);border:1px dashed var(--accent);white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600}.catalogue{flex:1;align-items:flex-start;display:flex}.filters{border-right:1px solid var(--line);flex-shrink:0;width:264px;max-height:calc(100vh - 58px);padding:20px 16px 40px 24px;position:sticky;top:58px;overflow-y:auto}.filters h3{font-family:var(--sans);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);margin:22px 0 8px;font-size:12px;font-weight:700}.filters h3:first-child{margin-top:0}.filter-search{width:100%}.check-row{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;padding:3px 0;display:flex}.check-row input{accent-color:var(--accent)}.check-row .count{color:var(--ink-3);margin-left:auto;font-size:12px}.year-range{align-items:center;gap:8px;display:flex}.year-range input{width:76px}.swatches{flex-wrap:wrap;gap:6px;display:flex}.swatch{border:2px solid var(--card);outline:1px solid var(--line);border-radius:50%;width:26px;height:26px;padding:0;transition:transform .1s}.swatch:hover{transform:scale(1.15)}.swatch.on{outline:2px solid var(--accent);outline-offset:1px}.filters-reset{justify-content:center;width:100%;margin-top:20px}.results{flex:1;min-width:0;padding:20px 24px 80px}.results-head{flex-wrap:wrap;align-items:baseline;gap:12px;margin-bottom:16px;display:flex}.results-head h2{margin:0;font-size:22px}.grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px;display:grid}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);transition:transform .12s,box-shadow .12s;position:relative;overflow:hidden}.card:hover{transform:translateY(-2px);box-shadow:0 4px 8px #23201b14,0 16px 32px #23201b1a}.card-link{color:inherit;text-decoration:none;display:block}.card svg.swatch-img{aspect-ratio:4/3;width:100%;height:auto;display:block}.card-body{padding:12px 14px 14px}.card-title{font-family:var(--serif);justify-content:space-between;align-items:baseline;gap:8px;margin:0 0 2px;font-size:16px;font-weight:600;display:flex}.card-title .year{color:var(--accent);flex-shrink:0;font-size:14px}.card-meta{color:var(--ink-3);justify-content:space-between;align-items:center;gap:8px;margin-top:6px;font-size:13px;display:flex}.card-check{z-index:2;width:22px;height:22px;accent-color:var(--accent);opacity:0;transition:opacity .12s;position:absolute;top:10px;left:10px}.card:hover .card-check,.card-check:checked,.selecting .card-check{opacity:1}.color-dots{display:inline-flex}.color-dot{border:2px solid var(--card);border-radius:50%;width:15px;height:15px;display:inline-block}.color-dots .color-dot+.color-dot{margin-left:-5px}.selection-bar{z-index:40;background:var(--ink);color:var(--paper);border-radius:999px;align-items:center;gap:12px;padding:10px 12px 10px 20px;display:flex;position:fixed;bottom:22px;left:50%;transform:translate(-50%);box-shadow:0 12px 32px #23201b59}.selection-bar .btn{border-color:#0000}.detail{grid-template-columns:minmax(0,1.2fr) minmax(280px,1fr);gap:32px;max-width:1060px;margin:0 auto;padding:28px 24px 80px;display:grid}.detail-img{border-radius:var(--radius);border:1px solid var(--line);box-shadow:var(--shadow);overflow:hidden}.detail-img svg{width:100%;height:auto;display:block}.detail-thumbs{gap:8px;margin-top:10px;display:flex}.detail-thumbs button{background:0 0;border:2px solid #0000;border-radius:8px;width:72px;padding:0;overflow:hidden}.detail-thumbs button.on{border-color:var(--accent)}.detail-thumbs svg{width:100%;height:54px;display:block}.detail h1{margin-bottom:4px;font-size:30px}.spec{border-collapse:collapse;width:100%;margin:18px 0;font-size:14px}.spec td{border-bottom:1px solid var(--line);vertical-align:top;padding:7px 0}.spec td:first-child{color:var(--ink-3);width:130px;padding-right:12px}.color-chips{flex-direction:column;gap:8px;display:flex}.color-chip{background:var(--card);border:1px solid var(--line);border-radius:8px;align-items:center;gap:10px;padding:7px 10px;display:flex}.color-chip .color-dot{outline:1px solid var(--line);flex-shrink:0;width:22px;height:22px}.color-chip-text{flex-direction:column;font-size:13px;line-height:1.3;display:flex}.chip-x{color:var(--ink-3);background:0 0;border:none;margin-left:auto;padding:2px 6px;font-size:18px;line-height:1}.chip-x:hover{color:var(--accent)}.page{max-width:1060px;margin:0 auto;padding:28px 24px 80px}.album-list{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px;display:grid}.album-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);color:inherit;padding:16px;text-decoration:none;display:block}.album-card:hover{border-color:var(--ink-3)}.album-covers{gap:6px;margin-bottom:12px;display:flex}.album-covers svg{border:1px solid var(--line);border-radius:6px;width:64px;height:48px}.album-covers .more{background:var(--paper-2);width:64px;height:48px;color:var(--ink-3);border-radius:6px;justify-content:center;align-items:center;font-size:13px;display:flex}.modal-backdrop{z-index:50;background:#23201b73;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:var(--card);border-radius:14px;width:440px;max-width:100%;padding:22px;box-shadow:0 24px 64px #0000004d}.modal h3{margin-top:0;font-size:20px}.modal .row{gap:10px;margin-top:14px;display:flex}.modal input[type=text],.modal input[type=password]{width:100%}.share-link{gap:8px;margin-top:10px;display:flex}.share-link input{color:var(--ink-2);flex:1;font-size:13px}.steps{color:var(--ink-3);flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 26px;font-size:13px;display:flex}.step{align-items:center;gap:8px;display:flex}.step .n{background:var(--paper-2);border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-weight:600;display:inline-flex}.step.on{color:var(--ink)}.step.on .n{background:var(--accent);color:#fff}.step-sep{background:var(--line);width:32px;height:1px}.dropzone{border:2px dashed var(--line);background:var(--card);text-align:center;cursor:pointer;border-radius:14px;padding:56px 24px;transition:border-color .15s,background .15s}.dropzone:hover,.dropzone.drag{border-color:var(--accent);background:var(--accent-soft)}.dropzone .icon{font-size:40px}.form-grid{grid-template-columns:1fr 1fr;gap:14px 18px;display:grid}.form-grid label,.field label{color:var(--ink-2);flex-direction:column;gap:5px;font-size:13px;font-weight:600;display:flex}.form-grid .full{grid-column:1/-1}.form-actions{align-items:center;gap:10px;margin-top:24px;display:flex}.analyzing{color:var(--ink-2);flex-direction:column;align-items:center;gap:14px;padding:60px 0;display:flex}.spinner{border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;width:34px;height:34px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.done-box{text-align:center;padding:48px 20px}.done-box .big{font-size:52px}.notice{background:var(--accent-soft);border:1px dashed var(--accent);color:var(--accent-dark);border-radius:10px;padding:10px 14px;font-size:13px}.uploaded-preview{border-radius:var(--radius);border:1px solid var(--line);overflow:hidden}.uploaded-preview img,.uploaded-preview svg{width:100%;height:auto;display:block}.landing header.hero{background:radial-gradient(1000px 500px at 80% -10%, #b5522a1f, transparent), var(--paper);border-bottom:1px solid var(--line)}.hero-inner{grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);align-items:center;gap:48px;max-width:1060px;margin:0 auto;padding:90px 24px 70px;display:grid}.hero h1{margin-bottom:18px;font-size:clamp(32px,5vw,52px)}.hero p.lead{color:var(--ink-2);margin:0 0 28px;font-size:18px}.hero-cta{flex-wrap:wrap;gap:12px;display:flex}.hero-art{grid-template-columns:1fr 1fr;gap:12px;display:grid;transform:rotate(2deg)}.hero-art svg{border:1px solid var(--line);width:100%;height:120px;box-shadow:var(--shadow);border-radius:10px}.hero-art svg:nth-child(2){transform:translateY(18px)}.hero-art svg:nth-child(3){transform:translateY(-10px)}.section{max-width:1060px;margin:0 auto;padding:64px 24px}.section h2{margin-bottom:8px;font-size:30px}.section>p.sub{color:var(--ink-2);max-width:640px;margin:0 0 32px}.features{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;display:grid}.feature{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.feature .icon{margin-bottom:10px;font-size:26px}.feature h3{margin-bottom:6px;font-size:17px}.feature p{color:var(--ink-2);margin:0;font-size:14px}.security{background:var(--ink);color:var(--paper)}.security .section h2{color:var(--paper)}.security .section>p.sub{color:#b9b2a5}.security .feature{box-shadow:none;background:#fffdf80d;border-color:#fffdf824}.security .feature p{color:#b9b2a5}.security .feature h3{color:var(--paper)}.cta-band{text-align:center;padding:72px 24px}.landing footer{border-top:1px solid var(--line);text-align:center;color:var(--ink-3);padding:24px;font-size:13px}@media (width<=900px){.hero-inner,.detail{grid-template-columns:1fr}.catalogue{flex-direction:column}.filters{border-right:none;border-bottom:1px solid var(--line);width:100%;max-height:none;position:static}}
