*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-dark: #0a0a0f;--glass-bg: rgba(255, 255, 255, .08);--glass-border: rgba(255, 255, 255, .15);--glass-shadow: 0 8px 32px rgba(0, 0, 0, .3);--text-primary: #ffffff;--text-secondary: rgba(255, 255, 255, .87);--text-muted: rgba(255, 255, 255, .7);--accent-purple: #a855f7;--accent-blue: #3b82f6;--accent-pink: #ec4899;--essential: #ef4444;--high: #f97316;--medium: #eab308;--success: #22c55e;--blur-amount: 20px;--transition-fast: .2s ease;--transition-normal: .3s ease;--transition-slow: .5s ease}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background-color:var(--bg-dark);color:var(--text-primary);min-height:100vh;line-height:1.5;overflow-x:hidden}.app{min-height:100vh;position:relative}.background{position:fixed;top:0;left:0;width:100%;height:100%;overflow:hidden;z-index:-1}.blob{position:absolute;border-radius:50%;filter:blur(80px);opacity:.6;animation:float 20s infinite ease-in-out}.blob-1{width:600px;height:600px;background:linear-gradient(135deg,var(--accent-purple),var(--accent-blue));top:-200px;left:-100px;animation-delay:0s}.blob-2{width:500px;height:500px;background:linear-gradient(135deg,var(--accent-pink),var(--accent-purple));bottom:-150px;right:-100px;animation-delay:-7s}.blob-3{width:400px;height:400px;background:linear-gradient(135deg,var(--accent-blue),var(--accent-pink));top:50%;left:50%;transform:translate(-50%,-50%);animation-delay:-14s}@keyframes float{0%,to{transform:translate(0) scale(1)}25%{transform:translate(50px,-50px) scale(1.1)}50%{transform:translate(-30px,30px) scale(.95)}75%{transform:translate(-50px,-30px) scale(1.05)}}.container{max-width:1200px;margin:0 auto;padding:2rem;min-height:100vh;display:flex;flex-direction:column}.glass-card{background:var(--glass-bg);backdrop-filter:blur(var(--blur-amount));-webkit-backdrop-filter:blur(var(--blur-amount));border:1px solid var(--glass-border);border-radius:24px;box-shadow:var(--glass-shadow);transition:transform var(--transition-normal),box-shadow var(--transition-normal)}.glass-card:hover{box-shadow:0 12px 40px #0006}.step{animation:fadeIn var(--transition-slow) ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.welcome-step{display:flex;justify-content:center;align-items:center;flex:1;padding:2rem 0}.welcome-card{text-align:center;padding:4rem 3rem;max-width:500px;width:100%}.welcome-icon{font-size:5rem;margin-bottom:1.5rem;animation:pulse 2s infinite ease-in-out}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.welcome-title{font-size:3rem;font-weight:700;margin-bottom:.5rem;background:linear-gradient(135deg,var(--text-primary),var(--accent-purple));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.welcome-subtitle{font-size:1.25rem;color:var(--text-secondary);margin-bottom:1.5rem}.welcome-description{color:var(--text-muted);margin-bottom:2.5rem;line-height:1.7}.primary-button{display:inline-flex;align-items:center;justify-content:center;gap:.75rem;padding:1rem 2rem;font-size:1.1rem;font-weight:600;color:#fff;background:linear-gradient(135deg,var(--accent-purple),var(--accent-blue));border:none;border-radius:16px;cursor:pointer;transition:all var(--transition-normal);box-shadow:0 4px 20px #a855f766}.primary-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 30px #a855f780}.primary-button:active:not(:disabled){transform:translateY(0)}.primary-button:disabled{opacity:.5;cursor:not-allowed}.primary-button:focus-visible{outline:2px solid var(--accent-purple);outline-offset:2px}.button-arrow{transition:transform var(--transition-fast)}.primary-button:hover .button-arrow{transform:translate(4px)}.back-button{background:transparent;border:none;color:var(--text-secondary);font-size:1rem;cursor:pointer;padding:.5rem 1rem;border-radius:8px;transition:all var(--transition-fast)}.back-button:hover{color:var(--text-primary);background:#ffffff1a}.back-button:focus-visible{outline:2px solid var(--accent-purple);outline-offset:2px}.zipcode-step{display:flex;justify-content:center;align-items:center;flex:1;padding:2rem 0}.zipcode-card{text-align:center;padding:3rem;max-width:480px;width:100%;position:relative}.zipcode-card .back-button{position:absolute;top:1.5rem;left:1.5rem}.zipcode-icon{font-size:4rem;margin-bottom:1.5rem}.step-title{font-size:2rem;font-weight:600;margin-bottom:.75rem}.step-description{color:var(--text-secondary);margin-bottom:2rem}.zipcode-form{display:flex;flex-direction:column;gap:1.5rem}.input-wrapper{position:relative}.zipcode-input{width:100%;padding:1.25rem 1.5rem;font-size:1.5rem;font-weight:500;text-align:center;letter-spacing:.5rem;color:var(--text-primary);background:#ffffff0d;border:2px solid var(--glass-border);border-radius:16px;outline:none;transition:all var(--transition-normal)}.zipcode-input::placeholder{letter-spacing:normal;color:var(--text-muted)}.zipcode-input:focus{border-color:var(--accent-purple);background:#ffffff14;box-shadow:0 0 0 4px #a855f733}.zipcode-input.input-error{border-color:var(--essential)}.error-message{display:block;color:var(--essential);font-size:.875rem;margin-top:.5rem}.privacy-note{margin-top:1.5rem;font-size:.875rem;color:var(--text-muted)}.loading-step{display:flex;justify-content:center;align-items:center;flex:1;padding:2rem 0}.loading-card{text-align:center;padding:4rem 3rem;max-width:500px;width:100%}.loading-spinner{position:relative;width:100px;height:100px;margin:0 auto 2rem}.spinner-ring{position:absolute;width:100%;height:100%;border-radius:50%;border:3px solid transparent;animation:spin 1.5s linear infinite}.spinner-ring:nth-child(1){border-top-color:var(--accent-purple);animation-delay:0s}.spinner-ring:nth-child(2){width:80%;height:80%;top:10%;left:10%;border-top-color:var(--accent-blue);animation-delay:-.3s;animation-direction:reverse}.spinner-ring:nth-child(3){width:60%;height:60%;top:20%;left:20%;border-top-color:var(--accent-pink);animation-delay:-.6s}@keyframes spin{to{transform:rotate(360deg)}}.loading-title{font-size:1.5rem;font-weight:500;margin-bottom:2rem;min-height:2rem}.progress-container{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.progress-bar{flex:1;height:8px;background:#ffffff1a;border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--accent-purple),var(--accent-blue));border-radius:4px;transition:width .1s linear}.progress-text{font-size:.875rem;color:var(--text-secondary);min-width:3rem}.loading-zip{color:var(--text-muted)}.checklist-step{padding:1rem 0 4rem}.checklist-header{display:flex;flex-direction:column;gap:1rem;margin-bottom:2rem}.header-back{align-self:flex-start}.location-info{text-align:center}.checklist-title{font-size:2.5rem;font-weight:700;margin-bottom:.5rem}.location-text{color:var(--text-secondary);font-size:1.1rem}.risks-section{padding:1.5rem 2rem;margin-bottom:2rem}.risks-title{font-size:1rem;font-weight:500;color:var(--text-secondary);margin-bottom:1rem}.risk-tags{display:flex;flex-wrap:wrap;gap:.75rem}.risk-tag{padding:.5rem 1rem;background:linear-gradient(135deg,#a855f74d,#3b82f64d);border:1px solid rgba(168,85,247,.5);border-radius:20px;font-size:.875rem;font-weight:500}.stats-section{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:2rem}.stat-card{padding:1.25rem;text-align:center}.stat-number{display:block;font-size:2rem;font-weight:700;margin-bottom:.25rem}.stat-essential{color:var(--essential)}.stat-high{color:var(--high)}.stat-medium{color:var(--medium)}.stat-label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.filter-section{display:flex;align-items:center;gap:1rem;margin-bottom:2rem;flex-wrap:wrap}.filter-label{color:var(--text-secondary);font-size:.875rem}.filter-buttons{display:flex;gap:.5rem;flex-wrap:wrap}.filter-button{padding:.625rem 1rem;min-height:44px;background:#ffffff0d;border:1px solid var(--glass-border);border-radius:10px;color:var(--text-secondary);font-size:.875rem;cursor:pointer;transition:all var(--transition-fast)}.filter-button:hover{background:#ffffff1a;color:var(--text-primary)}.filter-button.filter-active{background:linear-gradient(135deg,var(--accent-purple),var(--accent-blue));border-color:transparent;color:#fff}.filter-button:focus-visible{outline:2px solid var(--accent-purple);outline-offset:2px}.categories-list{display:flex;flex-direction:column;gap:1.5rem;margin-bottom:2rem}.category-section{overflow:hidden}.category-section.regional-category{border:1px solid rgba(168,85,247,.4);background:#a855f70d}.category-header{display:flex;justify-content:space-between;align-items:center;width:100%;padding:1.25rem 1.5rem;background:transparent;border:none;color:var(--text-primary);cursor:pointer;transition:background var(--transition-fast)}.category-header:hover{background:#ffffff0d}.category-header:focus-visible{outline:2px solid var(--accent-purple);outline-offset:-2px}.category-title-group{display:flex;align-items:center;gap:1rem}.category-icon{font-size:1.5rem}.category-title{font-size:1.25rem;font-weight:600}.regional-badge{padding:.25rem .75rem;background:linear-gradient(135deg,var(--accent-purple),var(--accent-pink));border-radius:12px;font-size:.75rem;font-weight:600;text-transform:uppercase}.category-meta{display:flex;align-items:center;gap:1rem}.item-count{color:var(--text-muted);font-size:.875rem}.expand-icon{color:var(--text-muted);font-size:.75rem;transition:transform var(--transition-fast)}.expand-icon.expanded{transform:rotate(180deg)}.category-items{padding:0 1rem 1rem;display:flex;flex-direction:column;gap:.75rem}.checklist-item{display:flex;align-items:center;gap:1rem;padding:1rem 1.25rem;background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:12px;transition:all var(--transition-fast)}.checklist-item:hover{background:#ffffff0f;border-color:#ffffff26}.checklist-item.item-checked{opacity:.6}.checklist-item.item-checked .item-name{text-decoration:line-through}.item-checkbox{position:relative;display:flex;align-items:center;justify-content:center;cursor:pointer}.item-checkbox input{position:absolute;opacity:0;width:0;height:0}.checkmark{width:24px;height:24px;border:2px solid var(--glass-border);border-radius:6px;transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center}.item-checkbox input:checked+.checkmark{background:linear-gradient(135deg,var(--accent-purple),var(--accent-blue));border-color:transparent}.item-checkbox input:checked+.checkmark:after{content:"✓";color:#fff;font-size:.875rem;font-weight:700}.item-content{flex:1;min-width:0}.item-header{display:flex;align-items:center;gap:.75rem;margin-bottom:.25rem;flex-wrap:wrap}.item-name{font-size:1rem;font-weight:500}.priority-badge{padding:.2rem .6rem;border-radius:6px;font-size:.7rem;font-weight:600;text-transform:uppercase;color:#fff}.item-description{color:var(--text-muted);font-size:.875rem}.buy-buttons{display:flex;flex-direction:row;gap:.5rem}.buy-button{display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:8px;border-radius:10px;color:#fff;text-decoration:none;transition:all var(--transition-fast)}.store-logo{width:20px;height:20px;object-fit:contain}.amazon-button{background:linear-gradient(135deg,#f90,#f60)}.amazon-button:hover{transform:translateY(-2px);box-shadow:0 4px 15px #f906}.walmart-button{background:linear-gradient(135deg,#0071dc,#004c91)}.walmart-button:hover{transform:translateY(-2px);box-shadow:0 4px 15px #0071dc66}.buy-button:active{transform:scale(.95)}.checklist-footer{padding:2rem;text-align:center}.footer-note{color:var(--text-secondary);margin-bottom:1.5rem}@media (max-width: 768px){.container{padding:1rem}.welcome-card,.zipcode-card,.loading-card{padding:2rem 1.5rem}.welcome-title{font-size:2.25rem}.welcome-icon{font-size:4rem}.zipcode-input{font-size:1.25rem;letter-spacing:.3rem}.checklist-title{font-size:1.75rem}.stats-section{grid-template-columns:repeat(2,1fr)}.stat-number{font-size:1.5rem}.checklist-item{flex-wrap:wrap;padding:.75rem}.item-content{flex:1 1 100%;order:2;padding-left:2.5rem}.buy-buttons{order:3;margin-left:auto}.category-title-group{flex-wrap:wrap}.regional-badge{order:3;width:100%;text-align:center;margin-top:.5rem}}@media (max-width: 480px){.checklist-item{padding:.5rem}.item-name{font-size:.9rem}.item-description{font-size:.75rem}.buy-button{width:36px;height:36px}.store-logo{width:18px;height:18px}.stats-section{grid-template-columns:repeat(2,1fr);gap:.75rem}.stat-card{padding:1rem}.filter-section{flex-direction:column;align-items:flex-start}.filter-buttons{width:100%;justify-content:flex-start}.blob{opacity:.4}.blob-1{width:300px;height:300px}.blob-2{width:250px;height:250px}.blob-3{width:200px;height:200px}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{position:relative;max-width:500px;width:100%;max-height:90vh;overflow-y:auto;padding:2rem;animation:modalSlideIn .3s ease-out}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.modal-close{position:absolute;top:1rem;right:1rem;width:36px;height:36px;border:none;background:#ffffff1a;color:var(--text-primary);font-size:1.5rem;border-radius:50%;cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center}.modal-close:hover{background:#fff3}.modal-close:focus-visible{outline:2px solid var(--accent-purple);outline-offset:2px}.modal-title{font-size:1.5rem;font-weight:600;margin-bottom:.5rem}.modal-description{color:var(--text-secondary);margin-bottom:1.5rem}.suggestion-form{display:flex;flex-direction:column;gap:1.25rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-size:.875rem;font-weight:500;color:var(--text-secondary)}.form-group input,.form-group select,.form-group textarea{padding:.875rem 1rem;background:#ffffff0d;border:1px solid var(--glass-border);border-radius:10px;color:var(--text-primary);font-size:1rem;font-family:inherit;transition:all var(--transition-fast)}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--text-muted)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--accent-purple);box-shadow:0 0 0 3px #a855f733}.form-group select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='white'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'%3E%3C/path%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;background-size:1.25rem;padding-right:2.5rem}.form-group select option{background:#1a1a2e;color:var(--text-primary)}.form-group textarea{resize:vertical;min-height:80px}.form-status{padding:.875rem 1rem;border-radius:10px;font-size:.875rem;text-align:center}.form-status.success{background:#22c55e33;border:1px solid rgba(34,197,94,.5);color:var(--success)}.form-status.error{background:#ef444433;border:1px solid rgba(239,68,68,.5);color:var(--essential)}.submit-button{width:100%;margin-top:.5rem}.suggest-button{background:transparent;border:1px solid var(--glass-border);color:var(--text-secondary);margin-left:1rem}.suggest-button:hover{background:#ffffff1a;color:var(--text-primary);box-shadow:none;transform:none}.footer-buttons{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media print{.background,.back-button,.filter-section,.buy-buttons,.checklist-footer .primary-button{display:none!important}.glass-card{background:#fff!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;border:1px solid #ddd!important;box-shadow:none!important}body{background:#fff!important;color:#000!important}.checklist-item,.category-section{break-inside:avoid}*{color:#000!important}.stat-essential{color:#dc2626!important}.stat-high{color:#ea580c!important}.stat-medium{color:#ca8a04!important}}
