:root{--bg-color: #261b15;--card-bg: #36261f;--text-main: #f5f0e6;--text-muted: #bdae9c;--accent-color: #d4af37;--stamp-color: #dc2626;--border-color: #4a342a}*{margin:0;padding:0;box-sizing:border-box}body{background-color:var(--bg-color);color:var(--text-main);font-family:Outfit,sans-serif;line-height:1.6}h1,h2{font-family:Playfair Display,serif}.hidden{display:none!important}.app-header{text-align:center;padding:50px 20px 30px;background-color:#1a120e;border-bottom:2px solid var(--accent-color)}.app-header h1{font-size:2.8rem;font-weight:700;margin-bottom:10px;color:var(--accent-color)}.app-header p{color:var(--text-muted);font-size:1.1rem;max-width:600px;margin:0 auto}.progress-container{margin-top:30px;max-width:500px;margin-left:auto;margin-right:auto}.progress-text{font-size:1.2rem;font-weight:700;margin-bottom:10px;color:var(--text-main)}.progress-bar-bg{background-color:var(--card-bg);height:12px;border-radius:10px;overflow:hidden;border:1px solid var(--border-color);margin-bottom:15px}.progress-bar-fill{height:100%;background-color:var(--accent-color);width:0%;transition:width .5s cubic-bezier(.4,0,.2,1)}.btn-reset{background:transparent;color:var(--text-muted);border:1px solid var(--text-muted);padding:5px 15px;border-radius:20px;font-size:.8rem;cursor:pointer;transition:all .2s}.btn-reset:hover{background-color:#ffffff1a;color:var(--text-main)}.app-container{max-width:1000px;margin:0 auto;padding:40px 20px}.passport-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:25px;margin-bottom:50px}.cafe-card{background-color:var(--card-bg);border:1px dashed var(--border-color);border-radius:8px;padding:25px 20px;cursor:pointer;position:relative;overflow:hidden;transition:transform .2s ease,box-shadow .2s ease;min-height:220px;display:flex;flex-direction:column}.cafe-card:hover{transform:translateY(-5px);box-shadow:0 10px 20px #0000004d;border-color:var(--accent-color)}.cafe-card:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-image:radial-gradient(var(--border-color) 1px,transparent 1px);background-size:10px 10px;opacity:.2;pointer-events:none}.cafe-name{font-family:Playfair Display,serif;font-size:1.5rem;font-weight:700;color:var(--accent-color);margin-bottom:5px;z-index:1}.cafe-neighborhood{font-size:.85rem;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);margin-bottom:10px;z-index:1}.cafe-vibe{font-size:.9rem;font-style:italic;color:var(--text-main);margin-bottom:15px;border-left:3px solid var(--accent-color);padding-left:10px;z-index:1}.cafe-desc{font-size:.95rem;color:var(--text-muted);flex-grow:1;z-index:1}.cafe-address{font-size:.8rem;color:var(--text-muted);margin-top:15px;padding-top:10px;border-top:1px solid var(--border-color);z-index:1}.cafe-card.stamped:after{content:"VISITED";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(-15deg) scale(2);color:var(--stamp-color);font-family:Outfit,sans-serif;font-weight:900;font-size:2.5rem;letter-spacing:4px;border:5px solid var(--stamp-color);border-radius:10px;padding:5px 15px;opacity:0;pointer-events:none;z-index:10;mix-blend-mode:color-dodge;animation:stampDown .4s cubic-bezier(.175,.885,.32,1.275) forwards}.cafe-card.stamped.pre-stamped:after{animation:none;opacity:.8;transform:translate(-50%,-50%) rotate(-15deg) scale(1)}@keyframes stampDown{0%{opacity:0;transform:translate(-50%,-50%) rotate(-15deg) scale(3)}50%{opacity:1;transform:translate(-50%,-50%) rotate(-15deg) scale(.9)}to{opacity:.8;transform:translate(-50%,-50%) rotate(-15deg) scale(1)}}.cafe-card.stamped .cafe-name,.cafe-card.stamped .cafe-neighborhood,.cafe-card.stamped .cafe-vibe,.cafe-card.stamped .cafe-desc,.cafe-card.stamped .cafe-address{opacity:.5}.info-section{background-color:var(--card-bg);border-radius:12px;padding:30px;border:1px solid var(--border-color)}.info-section h2{font-size:1.8rem;margin-bottom:20px;border-bottom:1px solid var(--border-color);padding-bottom:10px;color:var(--accent-color)}.info-content p{margin-bottom:15px;color:var(--text-muted)}.info-content strong{color:var(--text-main)}.signature{text-align:center;margin-top:30px;font-weight:700;color:var(--text-muted);font-size:.9rem}
