:root{--background: oklch(.98 .007 60);--foreground: oklch(.25 .01 20);--card: oklch(1 0 0);--card-foreground: oklch(.25 .01 20);--primary: oklch(.42 .12 15);--primary-light: oklch(.55 .12 20);--primary-dark: oklch(.32 .12 15);--primary-foreground: oklch(.98 .007 60);--secondary: oklch(.92 .02 65);--secondary-foreground: oklch(.35 .01 20);--muted: oklch(.95 .01 60);--muted-foreground: oklch(.55 .01 20);--accent: oklch(.85 .04 40);--accent-foreground: oklch(.35 .01 20);--destructive: oklch(.577 .245 27.325);--accent-green: #175527;--accent-lime: #d9e367;--border: oklch(.9 .01 55);--input: oklch(.95 .01 60);--ring: oklch(.42 .12 15);--text: oklch(.25 .01 20);--text-light: oklch(.55 .01 20);--success: #4caf50;--warning: #ff9800;--error: oklch(.577 .245 27.325);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow: 0 1px 3px rgba(0, 0, 0, .1), 0 1px 2px rgba(0, 0, 0, .06);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--radius: .75rem;--radius-sm: .5rem;--radius-lg: 1rem;--font-sans: "League Spartan", "Inter", ui-sans-serif, system-ui, sans-serif;--font-serif: "Cormorant Garamond", ui-serif, Georgia, serif;--font-english: "League Spartan", ui-sans-serif, system-ui, sans-serif;--font-english-light: 300;--font-english-semibold: 600;--font-cjk: "Inter", ui-sans-serif, system-ui, sans-serif;--tracking-title: .02em;--tracking-body: .01em;--tracking-label: .05em}::selection{background:color-mix(in oklch,var(--primary) 20%,transparent);color:var(--foreground)}::-moz-selection{background:color-mix(in oklch,var(--primary) 20%,transparent);color:var(--foreground)}.dark{--background: oklch(.18 .01 20);--foreground: oklch(.95 .01 60);--card: oklch(.22 .01 20);--card-foreground: oklch(.95 .01 60);--primary: oklch(.65 .15 25);--primary-light: oklch(.72 .14 25);--primary-dark: oklch(.55 .15 25);--primary-foreground: oklch(.98 .007 60);--secondary: oklch(.28 .01 25);--secondary-foreground: oklch(.95 .01 60);--muted: oklch(.25 .01 20);--muted-foreground: oklch(.65 .01 30);--accent: oklch(.35 .02 25);--accent-foreground: oklch(.95 .01 60);--destructive: oklch(.396 .141 25.723);--accent-green: #1e6b33;--accent-lime: #e5ed8a;--border: oklch(.3 .01 20);--input: oklch(.28 .01 20);--ring: oklch(.65 .15 25);--text: oklch(.95 .01 60);--text-light: oklch(.65 .01 30)}*{box-sizing:border-box;margin:0;padding:0}html{font-size:110%}body{font-family:var(--font-sans);font-weight:300;letter-spacing:var(--tracking-body);background:var(--background);color:var(--foreground);min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-weight:600;letter-spacing:var(--tracking-title)}button{font-weight:600;cursor:pointer;font-family:inherit}strong,b{font-weight:600}.tracking-title{letter-spacing:var(--tracking-title)}.tracking-body{letter-spacing:var(--tracking-body)}.tracking-label{letter-spacing:var(--tracking-label)}.font-english{font-family:var(--font-english)}.font-english-light{font-family:var(--font-english);font-weight:var(--font-english-light)}.font-english-semibold{font-family:var(--font-english);font-weight:var(--font-english-semibold)}input,select,textarea{font-family:inherit;font-size:1rem}.app-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:1rem}.spinner{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.landing-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:2rem;text-align:center}.hero{margin-top:4rem;margin-bottom:3rem}.hero h1{font-family:var(--font-serif);font-size:3.5rem;font-weight:600;margin-bottom:.75rem;letter-spacing:-.025em;color:var(--foreground)}.tagline{font-size:1.25rem;color:var(--muted-foreground);text-wrap:balance}.features{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;max-width:800px;margin-bottom:3rem}.feature{background:var(--card);padding:1.5rem;border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow-sm);transition:all .2s}.feature:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.feature-emoji{font-size:2.5rem;display:block;margin-bottom:.75rem}.feature h3{margin-bottom:.5rem;font-weight:600;color:var(--primary)}.feature p{color:var(--muted-foreground);font-size:.875rem;line-height:1.5}.auth-section{margin-bottom:2rem}.privacy-note{margin-top:1rem;font-size:.8rem;color:var(--muted-foreground)}.landing-footer{margin-top:auto;color:var(--muted-foreground);font-size:.875rem}.auth-button{display:flex;align-items:center;gap:.75rem;padding:.875rem 1.75rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--card);font-size:1rem;font-weight:500;color:var(--foreground);transition:all .2s;box-shadow:var(--shadow-sm)}.auth-button.icon-only{width:40px;height:40px;padding:0;gap:0;border-radius:10px;justify-content:center}.auth-button:hover{background:var(--secondary);border-color:var(--primary);box-shadow:var(--shadow)}.auth-button.loading{opacity:.5;cursor:not-allowed}.google-icon{flex-shrink:0}.auth-button-text{white-space:nowrap}@media(max-width:480px){.auth-button.sign-in{padding:.75rem;gap:0}.auth-button.sign-in .auth-button-text{display:none}.auth-button.sign-in .google-icon{width:22px;height:22px}}.app{max-width:1024px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column}.app-header{display:flex;justify-content:space-between;align-items:center;padding:0 1rem;height:4rem;background:var(--card);background:color-mix(in oklch,var(--card) 95%,transparent);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.app-header h1{font-size:1.5rem;font-weight:600;letter-spacing:-.025em;color:var(--foreground)}.app-logo{display:flex;align-items:center;gap:.75rem}.app-logo-icon{width:1.75rem;height:1.75rem;color:var(--primary)}.user-menu{display:flex;align-items:center;gap:.75rem}.user-avatar{width:32px;height:32px;border-radius:50%}.sign-out-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border:none;border-radius:var(--radius-sm);background:var(--background);font-size:.875rem;font-weight:500;color:var(--muted-foreground);transition:all .2s}.sign-out-btn:hover{background:var(--muted);color:var(--foreground)}.app-nav{display:flex;height:3rem;background:var(--card);border-bottom:1px solid var(--border);position:sticky;top:4rem;z-index:99}.nav-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:0 1rem;border:none;background:none;font-size:.875rem;font-weight:500;color:var(--muted-foreground);border-bottom:2px solid transparent;transition:all .2s}.nav-btn.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:600}.nav-btn:hover:not(.active){color:var(--foreground);border-bottom-color:var(--border)}.nav-icon{width:1rem;height:1rem}.app-main{flex:1;padding:2rem 1rem}.app-main-inner{max-width:56rem;margin:0 auto}.add-checkin-btn{position:relative;width:100%;padding:1.5rem;border:2px dashed color-mix(in oklch,var(--primary) 30%,transparent);border-radius:var(--radius-lg);background:var(--card);color:var(--primary);font-size:1.125rem;font-weight:500;margin-bottom:1.5rem;transition:all .2s;overflow:hidden;display:flex;align-items:center;justify-content:center;gap:.75rem}.add-checkin-btn:hover{background:color-mix(in oklch,var(--primary) 5%,var(--card));border-color:var(--primary)}.add-checkin-btn .plus-icon{width:1.25rem;height:1.25rem;transition:transform .2s}.add-checkin-btn:hover .plus-icon{transform:scale(1.1)}.checkin-form{background:var(--card);padding:1.5rem;border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow)}.checkin-form h2{margin-bottom:1.5rem;text-align:center;font-weight:600;letter-spacing:-.025em}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-size:.875rem;font-weight:500;color:var(--foreground)}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.75rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--input);color:var(--foreground);transition:border-color .2s,box-shadow .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--ring);background:var(--card);box-shadow:0 0 0 2px color-mix(in oklch,var(--ring) 20%,transparent)}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--muted-foreground)}.wine-type-selector{display:flex;flex-wrap:wrap;gap:.5rem}.wine-type-btn{flex:1;min-width:calc(33% - .5rem);padding:.75rem .5rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card);display:flex;flex-direction:column;align-items:center;gap:.25rem;font-size:.85rem;color:var(--foreground);transition:all .2s}.wine-type-btn .emoji{font-size:1.25rem}.wine-type-btn.selected{border-color:var(--primary);background:var(--secondary);font-weight:600}.wine-type-btn:hover:not(.selected){border-color:var(--muted-foreground)}.rating-selector{display:flex;gap:.25rem}.star-btn{padding:.5rem;border:none;background:none;font-size:1.75rem;color:var(--muted);transition:all .15s}.star-btn.filled{color:#fbbf24}.star-btn:hover{transform:scale(1.15)}.location-type-selector{display:flex;gap:.5rem}.location-btn{flex:1;padding:.75rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card);font-size:.875rem;color:var(--foreground);transition:all .2s}.location-btn.selected{border-color:var(--primary);background:var(--secondary);font-weight:600}.location-btn:hover:not(.selected){border-color:var(--muted-foreground)}.form-actions{display:flex;gap:.75rem;margin-top:1.5rem}.btn-primary,.btn-secondary{flex:1;padding:.875rem;border-radius:var(--radius-sm);font-size:1rem;font-weight:600;transition:all .2s}.btn-primary{border:none;background:var(--primary);color:var(--primary-foreground)}.btn-primary:hover{background:var(--primary-dark)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{border:1px solid var(--border);background:var(--card);color:var(--foreground)}.btn-secondary:hover{background:var(--muted)}.form-error{color:var(--destructive);font-size:.875rem;margin-top:.5rem}.image-uploader{margin-bottom:1.5rem}.upload-button{width:100%;padding:2rem;border:2px dashed var(--border);border-radius:var(--radius);background:var(--muted);display:flex;flex-direction:column;align-items:center;gap:.5rem;color:var(--muted-foreground);transition:all .2s}.upload-button:hover{border-color:var(--primary);color:var(--primary);background:color-mix(in oklch,var(--primary) 5%,var(--muted))}.preview-container{position:relative;border-radius:var(--radius);overflow:hidden}.preview-image{width:100%;max-height:300px;object-fit:cover;display:block}.upload-overlay{position:absolute;inset:0;background:#00000080;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff;gap:.5rem;backdrop-filter:blur(4px)}.upload-spinner{width:32px;height:32px;border:3px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite}.remove-button{position:absolute;top:.75rem;right:.75rem;width:32px;height:32px;border:none;border-radius:50%;background:#0009;color:#fff;font-size:1.25rem;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(4px);transition:background .2s}.remove-button:hover{background:var(--destructive)}.upload-error{color:var(--destructive);font-size:.85rem;margin-top:.5rem}.checkins-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}.checkins-loading,.checkins-error,.checkins-empty{grid-column:1 / -1;text-align:center;padding:3rem 2rem;color:var(--muted-foreground)}.checkins-empty{display:flex;flex-direction:column;align-items:center;gap:1rem;border:2px dashed var(--border);border-radius:var(--radius-lg);background:var(--card)}.checkins-empty-icon{font-size:4rem;opacity:.5}.checkins-empty h3{font-size:1.25rem;font-weight:600;color:var(--foreground)}.checkins-empty p{font-size:.875rem}.checkin-card{background:var(--card);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow-sm);overflow:hidden;transition:all .2s ease}.checkin-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.checkin-images{position:relative;aspect-ratio:3 / 4;overflow:hidden;background:var(--muted)}.checkin-images .checkin-image{position:absolute;inset:0;overflow:hidden}.checkin-image img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.checkin-card:hover .checkin-image img{transform:scale(1.05)}.origin{position:absolute;top:.75rem;right:.75rem;background:color-mix(in oklch,var(--background) 90%,transparent);padding:.375rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:500;backdrop-filter:blur(8px);color:var(--foreground)}.checkin-content{padding:1.25rem}.checkin-header{display:flex;align-items:flex-start;gap:.5rem;margin-bottom:.25rem}.wine-type-emoji{font-size:1.25rem;flex-shrink:0}.wine-name{font-size:1.125rem;font-weight:600;line-height:1.3;color:var(--foreground);text-wrap:balance}.winery-name{color:var(--muted-foreground);font-size:.875rem;margin-bottom:.75rem}.checkin-details{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.rating{display:flex;align-items:center;gap:.125rem}.rating-star{width:1rem;height:1rem}.rating-star.filled{color:#fbbf24;fill:#fbbf24}.rating-star.empty{color:var(--muted);fill:var(--muted)}.notes{font-size:.875rem;color:var(--muted-foreground);margin-bottom:.75rem;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-wrap:pretty}.checkin-meta{display:flex;justify-content:space-between;align-items:center;font-size:.75rem;color:var(--muted-foreground);padding-top:.75rem;border-top:1px solid var(--border)}.purchase-store{font-size:.75rem;color:var(--muted-foreground);margin-top:.5rem}.view-details-link{color:var(--primary);font-weight:500;background:none;border:none;padding:0;cursor:pointer;transition:opacity .2s}.view-details-link:hover{opacity:.8;text-decoration:underline}.edit-checkin-btn{width:100%;margin-top:.75rem;padding:.625rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card);color:var(--muted-foreground);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s}.edit-checkin-btn:hover{border-color:var(--primary);color:var(--primary);background:var(--secondary)}.badges-container{background:var(--card);border-radius:var(--radius);padding:2rem}.badges-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.badges-header h3{font-size:1.5rem;font-weight:600;letter-spacing:-.025em}.badges-count{color:var(--muted-foreground);font-size:.875rem}.badges-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}@media(min-width:640px){.badges-grid{grid-template-columns:repeat(4,1fr)}}@media(min-width:768px){.badges-grid{grid-template-columns:repeat(6,1fr)}}.badge-item{position:relative;display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--card);text-align:center;transition:all .2s}.badge-item.earned{background:var(--secondary);border-color:transparent}.badge-item.locked{opacity:.5;filter:grayscale(1);background:color-mix(in oklch,var(--muted) 30%,transparent)}.badge-emoji{font-size:2.5rem}.badge-name{font-size:.75rem;font-weight:500;color:var(--foreground)}.badge-lock{position:absolute;top:.25rem;right:.25rem;font-size:.75rem}.badge-notification-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;backdrop-filter:blur(4px)}.badge-notification{background:var(--card);border-radius:var(--radius-lg);padding:2rem;text-align:center;max-width:400px;width:100%;box-shadow:var(--shadow-lg)}.badge-notification h3{font-size:1.5rem;font-weight:600;margin-bottom:1.5rem}.new-badges-list{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.new-badge-item{display:flex;flex-direction:column;align-items:center;gap:.25rem}.badge-emoji-large{font-size:3rem}.badge-description{color:var(--muted-foreground);font-size:.875rem}.streak-container{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}.streak-card{background:var(--card);border-radius:var(--radius);padding:1.5rem;border:1px solid var(--border);box-shadow:var(--shadow-sm);display:flex;align-items:center;gap:1rem}.streak-icon-wrapper{display:flex;align-items:center;justify-content:center;width:4rem;height:4rem;border-radius:50%;background:color-mix(in oklch,var(--primary) 10%,transparent);flex-shrink:0}.streak-icon-wrapper.accent{background:color-mix(in oklch,var(--accent) 50%,transparent)}.streak-icon{width:2rem;height:2rem;color:var(--primary)}.streak-icon-wrapper.accent .streak-icon{color:var(--accent-foreground)}.streak-emoji{font-size:2rem}.streak-info{display:flex;flex-direction:column}.streak-number{font-size:2.5rem;font-weight:700;color:var(--primary);line-height:1}.streak-card:nth-child(2) .streak-number{color:var(--foreground)}.streak-label{font-size:.875rem;color:var(--muted-foreground)}.map-container{position:relative;background:var(--card);border-radius:var(--radius);border:1px solid var(--border);overflow:hidden;box-shadow:var(--shadow-sm)}.map{width:100%;height:calc(100dvh - 280px);min-height:300px}.map-empty{background:var(--card);border-radius:var(--radius);padding:3rem 2rem;text-align:center;border:1px solid var(--border);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;align-items:center;gap:.5rem}.map-empty-icon{font-size:4rem;display:block;margin-bottom:.5rem;opacity:.5}.map-empty h3{font-size:1.25rem;font-weight:600}.map-empty-hint{font-size:.875rem;color:var(--muted-foreground)}.map-popup-overlay{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;backdrop-filter:blur(4px);animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.map-popup{position:relative;background:var(--card);border-radius:var(--radius-lg);box-shadow:0 25px 50px -12px #00000040;overflow:hidden;max-width:420px;width:100%;animation:slideUp .25s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.popup-close{position:absolute;top:.75rem;right:.75rem;width:32px;height:32px;border:none;border-radius:50%;background:color-mix(in oklch,var(--background) 80%,transparent);color:var(--foreground);display:flex;align-items:center;justify-content:center;z-index:10;transition:all .2s;backdrop-filter:blur(8px)}.popup-close:hover{background:var(--muted);transform:scale(1.05)}.popup-layout{display:flex;flex-direction:row;gap:1rem;padding:1rem}.popup-image-container{flex-shrink:0;width:100px;height:140px;border-radius:var(--radius);overflow:hidden;background:var(--muted)}.popup-image{width:100%;height:100%;object-fit:cover}.popup-content{flex:1;display:flex;flex-direction:column;justify-content:space-between;min-width:0;padding-right:1.5rem}.popup-header{margin-bottom:.75rem}.popup-title{font-size:1rem;font-weight:600;color:var(--foreground);line-height:1.3;margin-bottom:.25rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.popup-winery{font-size:.875rem;color:var(--muted-foreground)}.popup-details{display:flex;flex-direction:column;gap:.5rem}.popup-venue{display:flex;align-items:center;gap:.375rem;font-size:.8125rem;color:var(--muted-foreground)}.popup-venue svg{flex-shrink:0;color:var(--primary)}.popup-venue span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.popup-rating{display:flex;gap:.125rem}.popup-date{font-size:.75rem;color:var(--muted-foreground)}@media(max-width:400px){.popup-layout{flex-direction:column;align-items:center;text-align:center}.popup-image-container{width:120px;height:160px}.popup-content{padding-right:0;align-items:center}.popup-header{text-align:center}.popup-details{align-items:center}.popup-venue,.popup-rating{justify-content:center}}@media(min-width:640px){.map-popup{max-width:480px}.popup-layout{padding:1.25rem;gap:1.25rem}.popup-image-container{width:120px;height:160px}.popup-title{font-size:1.125rem}}.map-legend{position:absolute;top:.75rem;left:.75rem;background:var(--card);border-radius:var(--radius-sm);padding:.5rem;display:flex;flex-wrap:wrap;gap:.5rem;font-size:.75rem;box-shadow:var(--shadow)}.legend-item{display:flex;align-items:center;gap:.25rem}.legend-dot{width:12px;height:12px;border-radius:50%;border:2px solid var(--card);box-shadow:0 1px 2px #0003}.ai-assist-container{position:relative}.ai-assist-btn{position:absolute;right:.75rem;bottom:.75rem;padding:.5rem .875rem;border:1px solid var(--primary);border-radius:9999px;background:var(--card);color:var(--primary);font-size:.75rem;font-weight:500;display:flex;align-items:center;gap:.375rem;transition:all .2s;box-shadow:var(--shadow-sm)}.ai-assist-btn:hover{background:var(--primary);color:var(--primary-foreground)}.ai-assist-btn:disabled{opacity:.5;cursor:not-allowed}.ai-assist-btn .sparkle{font-size:.875rem}.location-picker{display:flex;gap:.5rem;margin-top:.5rem}.get-location-btn{padding:.5rem 1rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card);font-size:.875rem;display:flex;align-items:center;gap:.5rem;color:var(--foreground);transition:all .2s}.get-location-btn:hover{border-color:var(--primary);color:var(--primary)}.get-location-btn:disabled{opacity:.5;cursor:not-allowed}.location-status{font-size:.75rem;color:var(--muted-foreground);margin-top:.25rem}.location-status.success{color:var(--success)}.location-status.error{color:var(--destructive)}.guest-banner{background:linear-gradient(135deg,var(--primary-light),var(--primary));color:var(--primary-foreground);padding:.625rem 1rem;text-align:center;font-size:.875rem;font-weight:500}.guest-badge{margin-top:.5rem;padding:.25rem .5rem;background:var(--secondary);border-radius:var(--radius-sm);font-size:.75rem;color:var(--secondary-foreground);display:inline-block}.login-prompt-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;backdrop-filter:blur(4px)}.login-prompt{background:var(--card);border-radius:var(--radius-lg);padding:2rem;text-align:center;max-width:400px;width:100%;box-shadow:var(--shadow-lg)}.login-prompt h3{font-size:1.25rem;font-weight:600;margin-bottom:.75rem}.login-prompt p{color:var(--muted-foreground);margin-bottom:1.5rem}.close-prompt{display:block;margin-top:1rem;padding:.5rem 1rem;border:none;background:none;color:var(--muted-foreground);font-size:.875rem;cursor:pointer;transition:color .2s}.close-prompt:hover{color:var(--foreground)}.delete-checkin-btn{padding:.375rem .625rem;border:1px solid var(--destructive);border-radius:var(--radius-sm);background:var(--card);color:var(--destructive);font-size:.75rem;font-weight:500;cursor:pointer;transition:all .2s}.delete-checkin-btn:hover{background:var(--destructive);color:#fff}.checkin-actions{display:flex;gap:.5rem}@media(max-width:640px){.app-header{padding:0 1rem}.app-main{padding:1.5rem 1rem}.hero h1{font-size:2.5rem}.features,.streak-container,.checkins-list{grid-template-columns:1fr}.wine-type-btn{min-width:calc(50% - .25rem)}.map{height:calc(100dvh - 320px);min-height:250px}.nav-btn span{display:none}}@media(min-width:641px)and (max-width:1024px){.checkins-list{grid-template-columns:repeat(2,1fr)}}.landing-wrapper{display:flex;flex-direction:column}.landing-hero{height:100vh;height:100dvh;display:flex;flex-direction:column;background:var(--background);flex-shrink:0}.landing-container{flex:1;min-height:0;display:grid;grid-template-columns:1fr;gap:1rem;max-width:1200px;margin:0 auto;padding:1.5rem;padding-top:calc(1rem + env(safe-area-inset-top,0px));padding-bottom:1rem;align-items:center;align-content:center;width:100%}@media(min-width:900px){.landing-container{grid-template-columns:1fr 1fr;padding:2rem 4rem;gap:3rem;align-items:end;align-content:end}}.landing-left{display:flex;flex-direction:column;gap:1rem}@media(min-width:900px){.landing-left{gap:1.5rem;align-self:center}}.landing-brand{display:flex;align-items:center;gap:.25rem}.landing-logo-img{height:26px;width:auto;color:#231815}.landing-domain{font-family:var(--font-sans);font-size:1rem;font-weight:500;color:var(--muted-foreground)}@media(min-width:640px){.landing-logo-img{height:40px}.landing-domain{font-size:1.25rem}}.landing-tagline{font-size:1.25rem;font-weight:500;color:var(--foreground);line-height:1.3;letter-spacing:var(--tracking-title)}@media(min-width:900px){.landing-tagline{font-size:1.5rem}}.landing-description{font-size:.95rem;color:var(--muted-foreground);line-height:1.5}@media(min-width:900px){.landing-description{font-size:1.125rem;line-height:1.6}}.landing-features{list-style:none;display:flex;flex-direction:column;gap:.625rem;margin:.75rem 0}@media(min-width:900px){.landing-features{gap:.875rem;margin:1rem 0}}.landing-features li{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--foreground)}@media(min-width:900px){.landing-features li{gap:.75rem;font-size:1rem}}.feature-icon{width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;background:var(--primary);border-radius:.5rem;flex-shrink:0}@media(min-width:900px){.feature-icon{width:2.5rem;height:2.5rem}}.feature-icon svg{width:1rem;height:1rem;color:#ffffffb3}@media(min-width:900px){.feature-icon svg{width:1.25rem;height:1.25rem}}.landing-cta{display:flex;flex-direction:column;gap:1rem;margin-top:.75rem;min-height:auto;--cta-pad-y: .875rem;--cta-pad-x: 1.5rem}@media(min-width:900px){.landing-cta{flex-direction:row;flex-wrap:wrap;align-items:stretch;gap:1rem;margin-top:1rem;min-height:auto;--cta-pad-y: 1.125rem;--cta-pad-x: 2rem}.landing-cta .demo-btn.primary-cta{flex:1;min-width:0}.landing-cta .landing-auth{flex:1;min-height:auto;min-width:0;align-items:stretch}.landing-cta .landing-auth.secondary-cta .auth-button.sign-in{height:100%;width:100%;min-height:4.9rem}.landing-cta .install-section{flex:0 0 100%;width:100%;margin-top:.5rem}}.landing-auth{min-height:56px}.landing-auth.secondary-cta .auth-button.sign-in,.landing-auth.secondary-cta .auth-button.loading{width:100%;justify-content:center;padding:var(--cta-pad-y, .875rem) calc(var(--cta-pad-x, 1.5rem) + .75rem);background:var(--card);color:var(--foreground);border:1px solid var(--border);font-size:.95rem;font-weight:500;min-height:4.25rem}.landing-auth.secondary-cta .auth-button.sign-in:hover{background:var(--secondary);border-color:var(--primary);transform:translateY(-1px);box-shadow:var(--shadow)}@media(max-width:480px){.landing-auth .auth-button.sign-in{padding:var(--cta-pad-y, .875rem) calc(var(--cta-pad-x, 1.5rem) + .75rem);gap:.75rem}.landing-auth .auth-button.sign-in .auth-button-text{display:inline}.landing-auth .auth-button.sign-in .google-icon{width:20px;height:20px}}.demo-btn{display:flex;flex-direction:column;align-items:center;gap:.25rem;width:100%;padding:1rem 2rem;background:var(--card);color:var(--foreground);border:1px solid var(--border);border-radius:var(--radius);font-size:1.125rem;font-weight:600;cursor:pointer;transition:all .2s}.demo-btn.primary-cta{background:var(--primary);color:var(--primary-foreground);border:none;padding:var(--cta-pad-y, .875rem) var(--cta-pad-x, 1.5rem);justify-content:center;font-size:1.1rem}@media(min-width:900px){.demo-btn.primary-cta{font-size:1.25rem}}.demo-btn.primary-cta:hover{background:var(--primary-dark);transform:translateY(-2px);box-shadow:var(--shadow-md)}.demo-btn.primary-cta .demo-slots{color:#fffc;opacity:1}.demo-btn:hover{background:var(--secondary);border-color:var(--primary);transform:translateY(-1px);box-shadow:var(--shadow)}.demo-slots{font-size:.8rem;font-weight:400;opacity:.7;color:var(--muted-foreground)}.landing-divider{display:flex;align-items:center;gap:1rem}.landing-divider:before,.landing-divider:after{content:"";flex:1;height:1px;background:var(--border)}.landing-divider span{font-size:.875rem;color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.05em}.landing-auth{display:flex;flex-direction:column;align-items:center;gap:.5rem}.auth-hint{font-size:.8rem;color:var(--muted-foreground)}.landing-right{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:0;max-height:100%}@media(min-width:900px){.landing-right{display:flex;flex-direction:column;justify-content:center;align-items:flex-end;gap:1rem;align-self:center}}.demo-preview{position:relative;perspective:1000px;max-height:calc(100dvh - 12rem);display:flex;flex-direction:column;align-items:center}@media(min-width:900px){.demo-preview{display:flex;align-items:flex-start;justify-content:flex-end}}.demo-phone{width:min(280px,40vw);height:min(520px,calc(100dvh - 16rem));background:var(--card);border-radius:2.5rem;border:8px solid var(--foreground);box-shadow:var(--shadow-lg);overflow:hidden;transform:rotateY(-5deg) rotateX(5deg);transition:transform .3s ease;flex-shrink:0}.demo-phone:hover{transform:rotateY(0) rotateX(0)}.demo-screen{height:100%;display:flex;flex-direction:column;background:var(--background);position:relative}.demo-header{padding:1rem;background:var(--card);border-bottom:1px solid var(--border);text-align:center}.demo-title-logo{height:14px;width:auto;color:#231815}.demo-content{flex:1;padding:1rem 1rem .5rem;display:flex;flex-direction:column;gap:.75rem;overflow:hidden}.demo-footer{position:absolute;bottom:0;left:0;right:0;padding:1rem}.demo-card{display:flex;gap:.75rem;padding:.75rem;background:var(--muted);border-radius:var(--radius-sm);border:1px solid var(--border)}.demo-card-image{width:45px;height:60px;border-radius:var(--radius-sm);flex-shrink:0;object-fit:contain}.demo-card-info{display:flex;flex-direction:column;gap:.25rem;justify-content:center}.demo-wine-name{font-size:.875rem;font-weight:600;color:var(--foreground)}.demo-winery{font-size:.75rem;color:var(--muted-foreground)}.demo-rating{font-size:.75rem;color:#fbbf24}.demo-card-add{justify-content:center;align-items:center;border-style:dashed;border-color:var(--primary);color:var(--primary);font-weight:500}.landing-hero .landing-footer{padding:1.5rem;text-align:center;color:var(--muted-foreground);font-size:.875rem;border-top:1px solid var(--border)}.app-logo-text{font-family:var(--font-serif);font-size:1.5rem;font-weight:600;color:var(--primary);letter-spacing:-.02em}.back-to-landing-btn{padding:.5rem 1rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card);font-size:.875rem;font-weight:500;color:var(--muted-foreground);transition:all .2s}.back-to-landing-btn:hover{background:var(--muted);color:var(--foreground)}@media(max-width:899px){.landing-right{display:none}}.news-ticker{display:flex;align-items:center;background:linear-gradient(90deg,var(--primary-dark),var(--primary));color:var(--primary-foreground);padding:.75rem 1rem;overflow:hidden;font-size:.8125rem;margin:.5rem 1rem 1rem;border-radius:var(--radius-sm)}.news-ticker-loading{justify-content:center;gap:.5rem}.news-loading-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:news-spin .8s linear infinite}@keyframes news-spin{to{transform:rotate(360deg)}}.news-icon{flex-shrink:0;margin-right:.75rem;font-size:1rem}.news-loading-text{opacity:.9}.news-ticker-wrapper{flex:1;overflow:hidden;mask-image:linear-gradient(to right,transparent,black 5%,black 95%,transparent);-webkit-mask-image:linear-gradient(to right,transparent,black 5%,black 95%,transparent)}.news-ticker-content{display:flex;gap:3rem;animation:ticker-scroll 45s linear infinite;width:max-content}.news-ticker-content:hover{animation-play-state:paused}@media(min-width:768px){.news-ticker-content{animation-duration:30s}}@keyframes ticker-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.news-item{display:flex;align-items:center;gap:.5rem;background:none;border:none;color:inherit;cursor:pointer;padding:.25rem 0;white-space:nowrap;transition:opacity .2s}.news-item:hover{opacity:.8}.news-headline{font-weight:500}.news-source{opacity:.7;font-size:.75rem}.news-source:before{content:"—";margin-right:.375rem}
