@import "https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,500;0,600;0,700;1,500&family=Inter:wght@400;500;600;700&display=swap";:root{--bg:#0d0a08;--surface:#1a1512;--surface-2:#241e1a;--border:#3a3028;--text:#f5f0eb;--text-muted:#a89888;--accent:#c49a6c;--accent-hover:#d4aa7c;--star:#e8c878;--star-empty:#4a4038;--error:#e85c5c;--success:#6cc49a;--radius:12px;--radius-sm:8px;--shadow:0 4px 24px #0006;--font-display:"Playfair Display", Georgia, serif;--font-body:"Inter", system-ui, sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg);min-height:100%;color:var(--text);font-family:var(--font-body)}a{color:inherit;text-decoration:none}.shell{flex-direction:column;min-height:100dvh;display:flex}.top{background:var(--surface);border-bottom:1px solid var(--border);z-index:100;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);justify-content:space-between;align-items:center;padding:16px 24px;display:flex;position:sticky;top:0}.brand{font-family:var(--font-display);letter-spacing:.04em;color:var(--accent);font-size:22px;font-weight:700}.nav{align-items:center;gap:12px;font-size:14px;display:flex}.nav a{color:var(--text-muted);transition:color .2s}.nav a:hover{color:var(--text)}.user-badge{color:var(--text-muted);background:var(--surface-2);border-radius:var(--radius-sm);padding:6px 12px;font-size:13px}.btn{background:var(--accent);color:var(--bg);border-radius:var(--radius-sm);font:600 14px var(--font-body);cursor:pointer;border:none;align-items:center;gap:8px;padding:10px 20px;transition:background .2s,transform .1s;display:inline-flex}.btn:hover{background:var(--accent-hover);transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.ghost{color:var(--text);border:1px solid var(--border);background:0 0}.btn.ghost:hover{background:var(--surface-2);border-color:var(--accent)}.hero{grid-template-columns:1.2fr .8fr;align-items:center;gap:40px;width:100%;max-width:1080px;margin:0 auto;padding:56px 24px 40px;display:grid}.hero h1{font-family:var(--font-display);color:var(--text);margin-bottom:16px;font-size:clamp(36px,5.5vw,56px);font-weight:700;line-height:1.1}.hero .lead{color:var(--text-muted);max-width:32em;margin-bottom:24px;font-size:17px;line-height:1.6}.hero-actions{flex-wrap:wrap;gap:12px;display:flex}.label-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:28px 24px}.label-card p{letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:8px;font-size:11px}.label-card h2{font-family:var(--font-display);margin-bottom:16px;font-size:24px;font-weight:600}.label-card ul{gap:10px;list-style:none;display:grid}.label-card li{background:var(--surface-2);border-radius:var(--radius-sm);color:var(--text-muted);padding:10px 12px;font-size:14px;line-height:1.4}.feed{max-width:1080px;margin:0 auto 64px;padding:0 24px}.section-title{font-family:var(--font-display);margin-bottom:20px;font-size:28px;font-weight:600}.search-form{gap:10px;margin-bottom:24px;display:flex}.search-form input{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font:15px var(--font-body);outline:none;flex:1;padding:12px 16px;transition:border-color .2s}.search-form input:focus{border-color:var(--accent)}.cards{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);transition:transform .2s,box-shadow .2s;overflow:hidden}.card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.card-photo{width:100%;height:180px;overflow:hidden}.card-photo img{object-fit:cover;width:100%;height:100%}.card-body{padding:16px}.card-text{color:var(--text-muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:10px 0;font-size:14px;line-height:1.5;display:-webkit-box;overflow:hidden}.card-meta{color:var(--text-muted);justify-content:space-between;font-size:12px;display:flex}.card-wine{color:var(--accent);cursor:pointer;margin-top:10px;font-size:13px;font-weight:600;display:inline-block}.card-wine:hover{text-decoration:underline}.card-unrecognized{color:var(--text-muted);margin-top:8px;font-size:12px;font-style:italic;display:block}.stars-row{align-items:center;gap:4px;display:flex}.star-btn{cursor:pointer;font-size:inherit;color:var(--star-empty);background:0 0;border:none;padding:2px;transition:color .15s,transform .1s}.star-btn.active{color:var(--star)}.star-btn:hover{transform:scale(1.15)}.star-zero{color:var(--text-muted);margin-left:4px;font-size:12px}.pagination{justify-content:center;gap:8px;margin-top:24px;display:flex}.page-btn{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);width:36px;height:36px;color:var(--text-muted);font:14px var(--font-body);cursor:pointer;justify-content:center;align-items:center;transition:all .2s;display:flex}.page-btn:hover{border-color:var(--accent);color:var(--text)}.page-btn.active{background:var(--accent);color:var(--bg);border-color:var(--accent)}.total-info{text-align:center;color:var(--text-muted);margin-top:16px;font-size:13px}.empty{text-align:center;background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius);padding:48px 24px}.empty p{color:var(--text-muted);margin-bottom:16px;font-size:15px}.page{max-width:720px;margin:0 auto;padding:32px 20px 80px}.page h1{font-family:var(--font-display);margin-bottom:8px;font-size:clamp(28px,4.5vw,42px);font-weight:700}.page .meta{color:var(--text-muted);margin-bottom:24px;font-size:13px}.review-form{gap:20px;display:grid}.form-group{gap:8px;display:grid}.form-group label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:13px;font-weight:600}.file-input{align-items:center;gap:16px;display:flex}.file-input input[type=file]{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font:14px var(--font-body);flex:1;padding:10px}.file-input input[type=file]::file-selector-button{background:var(--accent);color:var(--bg);border-radius:var(--radius-sm);font:600 13px var(--font-body);cursor:pointer;border:none;margin-right:12px;padding:8px 16px}.preview{object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--border);width:80px;height:80px}.form-group textarea{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text);font:15px/1.5 var(--font-body);resize:vertical;outline:none;min-height:100px;padding:14px;transition:border-color .2s}.form-group textarea:focus{border-color:var(--accent)}.form-group input[type=text]{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text);font:15px var(--font-body);outline:none;padding:12px 14px;transition:border-color .2s}.form-group input[type=text]:focus{border-color:var(--accent)}.dictation{gap:8px;margin-top:8px;display:flex}.wine-page{max-width:800px}.back{margin-bottom:20px}.wine-header{align-items:flex-start;gap:24px;margin-bottom:32px;display:flex}.wine-cover{object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--border);width:120px;height:160px}.wine-meta{color:var(--text-muted);flex-wrap:wrap;gap:8px 16px;margin:8px 0;font-size:14px;display:flex}.wine-tags{flex-wrap:wrap;gap:8px;margin:12px 0;display:flex}.tag{background:var(--surface-2);border:1px solid var(--border);color:var(--text-muted);border-radius:20px;padding:4px 10px;font-size:12px}.wine-rating{align-items:center;gap:12px;margin-top:12px;display:flex}.wine-rating span{color:var(--text-muted);font-size:14px}.review-list{gap:16px;display:grid}.review-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);gap:16px;padding:16px;display:flex}.review-photo{object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--border);flex-shrink:0;width:64px;height:64px}.review-item p{color:var(--text-muted);margin:8px 0;font-size:14px;line-height:1.5}.review-meta{color:var(--text-muted);gap:12px;font-size:12px;display:flex}.err{color:var(--error);border-radius:var(--radius-sm);background:#e85c5c1a;padding:12px;font-size:14px}.loading{color:var(--text-muted);text-align:center;padding:24px;font-size:14px}@media (width<=900px){.hero{grid-template-columns:1fr;gap:24px;padding:32px 16px}.cards{grid-template-columns:1fr 1fr}.wine-header{flex-direction:column}.wine-cover{width:100px;height:130px}}@media (width<=600px){.cards{grid-template-columns:1fr}.top{padding:12px 16px}.nav{gap:8px;font-size:13px}.hero{padding:24px 16px}.feed{padding:0 16px}.page{padding:24px 16px 60px}.search-form{flex-direction:column}}
