.demo-punch-card-container{width:100%;max-width:600px;margin:0 auto;padding:1rem}.demo-punch-card{background:#fff;border:4px solid #000;border-radius:16px;box-shadow:8px 8px #000;overflow:hidden;animation:slideUp .5s ease-out;transform:rotate(-.5deg);transition:all .3s ease}.demo-punch-card:hover{transform:rotate(0) translateY(-4px);box-shadow:10px 10px #000}.demo-punch-card:before{content:"";position:absolute;top:-6px;left:-6px;right:-6px;bottom:-6px;border:2px dotted #000;border-radius:18px;opacity:.4;pointer-events:none}.demo-punch-card-header{background:#000;color:#fff;padding:1.5rem;text-align:center;position:relative}.demo-punch-card-header:after{content:"";position:absolute;bottom:0;left:0;right:0;height:4px;background:repeating-linear-gradient(90deg,#fff,#fff 10px,transparent 10px,transparent 20px);opacity:.3}.demo-card-task{font-size:1.5rem;font-weight:900;letter-spacing:-.5px;margin:0 0 .5rem;text-decoration:underline;text-decoration-style:wavy;text-underline-offset:6px}.demo-card-reward{color:#f5f5f0;font-weight:700;font-size:.95rem;letter-spacing:.3px}.demo-punch-card-body{padding:2rem;display:flex;flex-direction:column;gap:1.5rem;align-items:center}.demo-week-duration{text-align:center;padding:.5rem 1rem;background:#f5f5f0;border:2px solid #000;border-radius:20px;font-size:.9rem;font-weight:800;color:#000;letter-spacing:.3px;box-shadow:2px 2px #000}.demo-punch-prompt{text-align:center;color:#000;font-weight:700;font-size:1rem;animation:pulse 2s ease-in-out infinite}.demo-punch-holes-container{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;padding:1rem 0}.demo-punch-hole{width:80px;height:80px;border-radius:50%;border:4px solid #000;background:#fff;cursor:pointer;transition:all .2s ease;position:relative;box-shadow:4px 4px #000;display:flex;align-items:center;justify-content:center;font-size:3rem;font-weight:900;color:#000}.demo-punch-hole:hover:not(:disabled){transform:translateY(-4px) scale(1.05);box-shadow:6px 6px #000;background:#f5f5f0}.demo-punch-hole:active:not(:disabled){transform:translateY(-2px) scale(1.02);box-shadow:3px 3px #000}.demo-punch-hole.punched{background:#000;cursor:not-allowed;animation:punchIn .4s ease-out}.demo-punch-hole.punched .demo-punch-mark{color:#fff;animation:markAppear .3s ease-out}.demo-punch-hole.next-punch{animation:bounce 1s ease-in-out infinite;border-color:#000;border-width:5px}.demo-punch-hole:disabled:not(.punched){cursor:not-allowed;opacity:.5}.demo-progress{width:100%;display:flex;flex-direction:column;gap:.75rem}.demo-progress-text{text-align:center;font-weight:800;font-size:1.1rem;color:#000;letter-spacing:.3px}.demo-progress-bar{background:#f5f5f0;border:3px solid #000;border-radius:20px;height:40px;overflow:hidden;position:relative;box-shadow:inset 2px 2px #0000001a}.demo-progress-fill{height:100%;background:#000;transition:width .5s ease;position:relative}.demo-progress-fill:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(45deg,transparent,transparent 10px,rgba(255,255,255,.1) 10px,rgba(255,255,255,.1) 20px)}.demo-success-message{background:#000;color:#fff;padding:1rem 1.5rem;border-radius:12px;text-align:center;font-weight:800;font-size:1.1rem;letter-spacing:.3px;box-shadow:4px 4px #0000004d;animation:slideInScale .5s ease-out}.demo-reset-btn{margin-top:1rem;padding:.75rem 2rem;background:#fff;color:#000;border:3px solid #000;border-radius:8px;font-weight:800;font-size:.95rem;cursor:pointer;transition:all .2s ease;box-shadow:3px 3px #000;letter-spacing:.3px;text-transform:uppercase}.demo-reset-btn:hover{background:#f5f5f0;transform:translateY(-2px);box-shadow:4px 4px #000}.demo-reset-btn:active{transform:translateY(0);box-shadow:2px 2px #000}@keyframes punchIn{0%{transform:scale(1)}50%{transform:scale(.9)}to{transform:scale(1)}}@keyframes markAppear{0%{opacity:0;transform:scale(0) rotate(0)}50%{transform:scale(1.2) rotate(180deg)}to{opacity:1;transform:scale(1) rotate(360deg)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes slideUp{0%{opacity:0;transform:translateY(30px) rotate(-.5deg)}to{opacity:1;transform:translateY(0) rotate(-.5deg)}}@keyframes slideInScale{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@media (max-width: 768px){.demo-punch-hole{width:60px;height:60px;font-size:2rem}.demo-punch-holes-container{gap:.75rem}.demo-punch-card-body{padding:1.5rem}.demo-card-task{font-size:1.3rem}}.landing{min-height:100vh;animation:fadeIn .5s ease-out;background:#f5f5f0}.hero{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem;text-align:center;position:relative}.hero:before{content:"";position:absolute;top:20px;left:20px;right:20px;bottom:20px;border:3px solid #000;border-radius:8px;transform:rotate(-.5deg);pointer-events:none;opacity:.1}.hero-content{max-width:900px;animation:slideUp .6s ease-out;position:relative;z-index:1}.hero-badge{display:inline-block;background:#fff;padding:.5rem 1.25rem;border-radius:20px;color:#000;font-size:.9rem;font-weight:700;margin-bottom:2rem;border:3px solid #000;box-shadow:4px 4px #000;animation:slideUp .5s ease-out;transform:rotate(-1deg);letter-spacing:.5px}.hero-title{font-size:4.5rem;font-weight:900;line-height:1.1;color:#000;margin-bottom:1.5rem;text-shadow:3px 3px 0 rgba(0,0,0,.1);animation:slideUp .6s ease-out;letter-spacing:-2px}.gradient-text{position:relative;display:inline-block;text-decoration:underline;text-decoration-style:wavy;text-decoration-thickness:3px;text-underline-offset:8px}.hero-subtitle{font-size:1.35rem;color:#333;margin-bottom:2.5rem;line-height:1.7;max-width:700px;margin-left:auto;margin-right:auto;animation:slideUp .7s ease-out;font-weight:500}.hero-cta{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-bottom:1.5rem;animation:slideUp .8s ease-out}.hero-trust{color:#666;font-size:.95rem;animation:fadeIn 1s ease-out;font-weight:600}.demo-section{padding:6rem 2rem;background:#fff;border-top:4px dashed #000;border-bottom:4px dashed #000;position:relative}.demo-section:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:90%;height:80%;border:2px dotted #000;border-radius:20px;opacity:.1;pointer-events:none}.demo-intro{text-align:center;font-size:1.2rem;color:#333;margin-bottom:3rem;max-width:600px;margin-left:auto;margin-right:auto;font-weight:600;line-height:1.6}.how-it-works{padding:6rem 2rem;background:#fff;border-top:4px dashed #000;border-bottom:4px dashed #000}.section-title{text-align:center;font-size:2.75rem;font-weight:900;color:#000;margin-bottom:4rem;text-decoration:underline;text-decoration-style:double;text-underline-offset:12px;letter-spacing:-1px}.steps{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:3rem}.step{text-align:center;position:relative;animation:slideUp .6s ease-out backwards;padding:2rem 1.5rem;background:#f5f5f0;border:3px solid #000;border-radius:12px;box-shadow:6px 6px #000;transform:rotate(0);transition:all .3s ease}.step:nth-child(1){animation-delay:.1s;transform:rotate(-1deg)}.step:nth-child(2){animation-delay:.2s;transform:rotate(.5deg)}.step:nth-child(3){animation-delay:.3s;transform:rotate(-.5deg)}.step:hover{transform:rotate(0) translateY(-4px);box-shadow:8px 8px #000}.step-number{position:absolute;top:-20px;left:50%;transform:translate(-50%);width:45px;height:45px;background:#fff;color:#000;border:3px solid #000;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:1.3rem;box-shadow:3px 3px #000}.step-icon{font-size:4rem;margin-bottom:1.5rem;filter:grayscale(100%)}.step h3{font-size:1.5rem;color:#000;margin-bottom:1rem;font-weight:800;letter-spacing:.5px}.step p{color:#333;line-height:1.6;font-size:1.05rem;font-weight:500}.features{padding:6rem 2rem;background:#f5f5f0}.features-grid{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:2rem}.feature-card{background:#fff;padding:2.5rem;border-radius:16px;border:3px solid #000;text-align:center;transition:all .3s cubic-bezier(.4,0,.2,1);animation:slideUp .6s ease-out backwards;box-shadow:5px 5px #000;position:relative}.feature-card:after{content:"";position:absolute;top:-3px;left:-3px;right:-3px;bottom:-3px;border:2px dotted #000;border-radius:16px;opacity:.3;pointer-events:none}.feature-card:nth-child(1){animation-delay:.1s;transform:rotate(-.5deg)}.feature-card:nth-child(2){animation-delay:.2s;transform:rotate(.5deg)}.feature-card:nth-child(3){animation-delay:.3s;transform:rotate(-.3deg)}.feature-card:nth-child(4){animation-delay:.4s;transform:rotate(.3deg)}.feature-card:hover{transform:translateY(-8px) rotate(0);box-shadow:8px 8px #000}.feature-icon-large{font-size:3.5rem;margin-bottom:1.5rem;transition:transform .3s ease;filter:grayscale(100%)}.feature-card:hover .feature-icon-large{transform:scale(1.15) rotate(5deg)}.feature-card h3{font-size:1.4rem;color:#000;margin-bottom:1rem;font-weight:800;letter-spacing:.5px}.feature-card p{color:#333;line-height:1.6;font-size:1.05rem;font-weight:500}.social-proof{padding:6rem 2rem;background:#fff;border-top:4px dashed #000}.testimonials{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem}.testimonial{background:#f5f5f0;padding:2.5rem;border-radius:16px;border:3px solid #000;animation:slideUp .6s ease-out backwards;box-shadow:6px 6px #000;position:relative}.testimonial:before{content:'"';position:absolute;top:-10px;left:15px;font-size:6rem;color:#000;opacity:.1;font-family:Georgia,serif;line-height:1}.testimonial:nth-child(1){animation-delay:.1s;transform:rotate(-.5deg)}.testimonial:nth-child(2){animation-delay:.2s;transform:rotate(.5deg)}.testimonial:nth-child(3){animation-delay:.3s;transform:rotate(-.3deg)}.testimonial-stars{font-size:1.2rem;margin-bottom:1rem;filter:grayscale(100%)}.testimonial p{color:#000;font-size:1.1rem;line-height:1.6;margin-bottom:1.5rem;font-style:italic;font-weight:500}.testimonial-author{color:#333;font-weight:700;font-size:.95rem;text-align:right}.final-cta{padding:8rem 2rem;text-align:center;background:#f5f5f0;border-top:4px dashed #000}.final-cta h2{font-size:3rem;color:#000;font-weight:900;margin-bottom:1rem;letter-spacing:-1px}.final-cta p{font-size:1.25rem;color:#333;margin-bottom:2.5rem;max-width:600px;margin-left:auto;margin-right:auto;font-weight:500}.btn{padding:1rem 2.5rem;font-size:1.1rem;border:3px solid #000;border-radius:12px;cursor:pointer;font-weight:800;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:visible;text-transform:none;letter-spacing:.5px;box-shadow:5px 5px #000}.btn:hover{transform:translateY(-3px);box-shadow:7px 7px #000}.btn:active{transform:translateY(1px);box-shadow:3px 3px #000}.btn-primary{background:#000;color:#fff}.btn-primary:hover{background:#222}.btn-large{padding:1.25rem 3rem;font-size:1.2rem}.btn-ghost{background:#fff;color:#000;border:3px solid #000}.btn-ghost:hover{background:#f5f5f0}@media (max-width: 768px){.hero-title{font-size:2.75rem}.hero-subtitle{font-size:1.15rem}.section-title{font-size:2rem}.final-cta h2{font-size:2.25rem}.steps,.features-grid,.testimonials{grid-template-columns:1fr}.hero-cta{flex-direction:column}.btn{width:100%;max-width:300px}}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem;animation:fadeIn .4s ease-out;background:#f5f5f0}.auth-card{background:#fff;border-radius:16px;padding:3rem;width:100%;max-width:450px;box-shadow:8px 8px #000;border:4px solid #000;animation:scaleIn .4s ease-out;position:relative;transform:rotate(-.5deg)}.auth-card:before{content:"";position:absolute;top:-6px;left:-6px;right:-6px;bottom:-6px;border:2px dotted #000;border-radius:18px;opacity:.4;pointer-events:none}.auth-title{font-size:2rem;color:#000;margin-bottom:.5rem;text-align:center;font-weight:900;letter-spacing:-1px;text-decoration:underline;text-decoration-style:wavy;text-underline-offset:8px}.auth-subtitle{color:#333;text-align:center;margin-bottom:2rem;font-weight:600}.auth-form{display:flex;flex-direction:column;gap:1.5rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-weight:800;color:#000;font-size:.9rem;letter-spacing:.3px;text-transform:uppercase}.form-group input{padding:.75rem 1rem;border:3px solid #000;border-radius:8px;font-size:1rem;transition:all .2s;background:#fff;font-family:Courier New,Courier,monospace;font-weight:600;box-shadow:3px 3px #000}.form-group input:focus{outline:none;border-color:#000;box-shadow:4px 4px #000;transform:translateY(-1px)}.error-message{background:#fff;color:#000;padding:.75rem;border-radius:8px;border:3px solid #000;font-size:.9rem;text-align:center;font-weight:700;box-shadow:3px 3px #ff00004d}.btn-full{width:100%;margin-top:.5rem}.auth-footer{text-align:center;margin-top:1.5rem;color:#333;font-weight:600}.auth-footer a{color:#000;text-decoration:underline;text-decoration-style:wavy;text-underline-offset:3px;font-weight:800}.auth-footer a:hover{text-decoration-thickness:2px}.auth-divider{display:flex;align-items:center;text-align:center;margin:1.5rem 0;color:#000}.auth-divider:before,.auth-divider:after{content:"";flex:1;border-bottom:3px dashed #000}.auth-divider span{padding:0 1rem;font-size:.9rem;font-weight:800;letter-spacing:.5px;text-transform:uppercase}.btn-google{background:#fff;color:#000;border:3px solid #000;display:flex;align-items:center;justify-content:center;gap:.75rem;font-weight:800;transition:all .2s;box-shadow:4px 4px #000}.btn-google:hover:not(:disabled){background:#f5f5f0;box-shadow:5px 5px #000;transform:translateY(-2px)}.btn-google:active:not(:disabled){box-shadow:2px 2px #000;transform:translateY(1px)}.btn-google:disabled{opacity:.5;cursor:not-allowed}.google-icon{flex-shrink:0}@media (max-width: 768px){.auth-card{padding:2rem}.auth-title{font-size:1.75rem}}@keyframes cardFadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes celebrate{0%,to{transform:rotate(0)}25%{transform:rotate(-5deg)}75%{transform:rotate(5deg)}}@keyframes stamp{0%{transform:scale(0) rotate(-10deg);opacity:0}50%{transform:scale(1.2) rotate(5deg)}to{transform:scale(1) rotate(0);opacity:1}}.punch-card{background:#fff;border-radius:12px;padding:2rem;box-shadow:6px 6px #000;transition:transform .3s cubic-bezier(.4,0,.2,1),box-shadow .3s cubic-bezier(.4,0,.2,1);animation:cardFadeIn .5s ease-out backwards;border:4px solid #000;position:relative;overflow:visible}.punch-card:before{content:"";position:absolute;top:-6px;left:-6px;right:-6px;bottom:-6px;border:2px dotted #000;border-radius:14px;opacity:.4;pointer-events:none}.punch-card:nth-child(1){animation-delay:.1s;transform:rotate(-.5deg)}.punch-card:nth-child(2){animation-delay:.2s;transform:rotate(.5deg)}.punch-card:nth-child(3){animation-delay:.3s;transform:rotate(-.3deg)}.punch-card:nth-child(4){animation-delay:.4s;transform:rotate(.3deg)}.punch-card:nth-child(5){animation-delay:.5s;transform:rotate(-.4deg)}.punch-card:nth-child(6){animation-delay:.6s;transform:rotate(.4deg)}.punch-card:hover{transform:translateY(-8px) rotate(0);box-shadow:8px 8px #000}.punch-card.completed{background:#f5f5f0;border-color:#000;border-width:5px;animation:cardFadeIn .5s ease-out backwards,celebrate .6s ease-in-out .5s}.punch-card.completed:after{content:"✓";position:absolute;top:10px;right:10px;width:50px;height:50px;background:#000;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:900;transform:rotate(12deg);box-shadow:3px 3px #0000004d}.punch-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem;gap:1rem;padding-bottom:1rem;border-bottom:3px dashed #000}.punch-card-header h3{color:#000;font-size:1.3rem;font-weight:900;flex:1;text-transform:capitalize;letter-spacing:.3px;text-decoration:underline;text-decoration-style:wavy;text-underline-offset:5px;text-decoration-thickness:2px}.delete-btn{background:#fff;border:2px solid #000;color:#000;font-size:1.5rem;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s;line-height:1;font-weight:900;box-shadow:2px 2px #000}.delete-btn:hover{background:#000;color:#fff;transform:rotate(90deg);box-shadow:3px 3px #00000080}.delete-btn:active{transform:rotate(90deg) scale(.9);box-shadow:1px 1px #000}.punch-card-body{display:flex;flex-direction:column;gap:1.5rem}.week-duration{text-align:center;padding:.5rem 1rem;background:#fff;border:2px solid #000;border-radius:20px;font-size:.9rem;font-weight:800;color:#000;letter-spacing:.3px;box-shadow:2px 2px #000;display:inline-block;margin:0 auto}.punch-prompt{text-align:center;padding:.75rem;background:#f5f5f0;border-radius:8px;border:2px dashed #000;color:#000;font-weight:700;font-size:1rem;animation:pulse 2s ease-in-out infinite;letter-spacing:.3px}.punched-message{text-align:center;padding:.75rem;background:#000;border-radius:8px;color:#fff;font-weight:700;font-size:1rem;box-shadow:3px 3px #0000004d;letter-spacing:.3px}.punch-holes-container{display:grid;grid-template-columns:repeat(auto-fit,minmax(70px,1fr));gap:1rem;padding:1rem 0;justify-items:center}.punch-hole{width:70px;height:70px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:900;transition:all .3s cubic-bezier(.4,0,.2,1);background:#fff;border:3px solid #000;color:#999;cursor:not-allowed;position:relative;box-shadow:3px 3px #000}.punch-hole:before{content:"";position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;border:2px dotted #000;border-radius:50%;opacity:.3}.punch-hole.punched{background:#000;border-color:#000;color:#fff;animation:stamp .4s cubic-bezier(.4,0,.2,1);box-shadow:4px 4px #0000004d;cursor:default}.punch-hole.punched:after{content:"";position:absolute;top:50%;left:50%;width:120%;height:120%;border:2px solid #000;border-radius:50%;transform:translate(-50%,-50%) rotate(15deg);opacity:.2}.punch-hole.next-punch{cursor:pointer;background:#f5f5f0;border-color:#000;border-width:4px;animation:pulse 2s ease-in-out infinite;box-shadow:0 0 0 3px #fff,0 0 0 6px #000;color:#000}.punch-hole.next-punch:hover{transform:scale(1.15);box-shadow:0 0 0 3px #fff,0 0 0 6px #000,4px 4px #0000004d;background:#000;color:#fff}.punch-hole.next-punch:active{transform:scale(.95)}.punch-hole:disabled:not(.punched):not(.next-punch){opacity:.4;box-shadow:2px 2px #ccc;border-color:#ccc}.progress-info{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:#f5f5f0;border-radius:8px;border:3px solid #000;box-shadow:3px 3px #000}.progress-text{font-size:.95rem;color:#000;font-weight:700;letter-spacing:.3px}.free-badge{background:#000;color:#fff;padding:.4rem 1rem;border-radius:20px;font-weight:800;font-size:.9rem;animation:pulse 1s ease-in-out infinite;border:2px solid #000;box-shadow:2px 2px #0000004d;letter-spacing:.5px}.reward-section{background:#f5f5f0;padding:1.25rem;border-radius:12px;text-align:center;border:3px dashed #000;position:relative}.reward-label{font-size:.9rem;color:#000;font-weight:800;margin-bottom:.5rem;letter-spacing:.5px;text-transform:uppercase}.reward-text{font-size:1.15rem;color:#000;font-weight:700;font-style:italic}.punch-section{display:flex;justify-content:center}.punch-btn{padding:1rem 2rem;border:none;border-radius:12px;font-size:1.05rem;font-weight:700;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);width:100%;position:relative;overflow:hidden;text-transform:uppercase;letter-spacing:.5px}.punch-btn:not(.punched){background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:3px solid #5568d3;box-shadow:0 4px #5568d3}.punch-btn:not(.punched):hover{transform:translateY(-2px);box-shadow:0 6px #5568d3,0 8px 20px #667eea66}.punch-btn:not(.punched):active{transform:translateY(2px);box-shadow:0 2px #5568d3}.punch-btn.punched{background:#4caf50;color:#fff;cursor:default;border:3px solid #45a049;box-shadow:0 4px #45a049;animation:pulse .5s ease-out}.punch-btn:disabled{opacity:1}@keyframes fadeInOverlay{0%{opacity:0}to{opacity:1}}@keyframes slideInScale{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:1000;animation:fadeInOverlay .3s ease-out}.modal-content{background:#fff;border-radius:16px;padding:2rem;width:100%;max-width:550px;max-height:90vh;overflow-y:auto;box-shadow:8px 8px #000;border:4px solid #000;animation:slideInScale .3s ease-out;position:relative}.modal-content:before{content:"";position:absolute;top:-6px;left:-6px;right:-6px;bottom:-6px;border:2px dotted #000;border-radius:18px;opacity:.4;pointer-events:none}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:3px dashed #000}.modal-header h2{color:#000;font-size:1.5rem;font-weight:900;letter-spacing:-.5px;text-decoration:underline;text-decoration-style:wavy;text-underline-offset:5px}.modal-close{background:#fff;border:2px solid #000;color:#000;font-size:1.8rem;cursor:pointer;padding:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s;line-height:1;font-weight:900;box-shadow:3px 3px #000}.modal-close:hover{background:#000;color:#fff;transform:rotate(90deg)}.modal-close:active{transform:rotate(90deg) scale(.9);box-shadow:2px 2px #000}.modal-form{display:flex;flex-direction:column;gap:1.5rem}.modal-form .form-group{display:flex;flex-direction:column;gap:.5rem}.modal-form label{font-weight:800;color:#000;font-size:.95rem;letter-spacing:.3px;text-transform:uppercase}.modal-form input,.modal-form select{padding:.75rem 1rem;border:3px solid #000;border-radius:8px;font-size:1rem;transition:all .2s;background:#fff;font-family:Courier New,Courier,monospace;font-weight:600;box-shadow:3px 3px #000}.modal-form select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L6 6L11 1' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;padding-right:3rem}.modal-form input:focus,.modal-form select:focus{outline:none;border-color:#000;box-shadow:4px 4px #000;transform:translateY(-1px)}.modal-form select:hover{background-color:#f9f9f9}.modal-form small{color:#666;font-size:.85rem;font-weight:600}.modal-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:.5rem}.modal-actions .btn{padding:.75rem 1.5rem}@media (max-width: 768px){.modal-content{padding:1.5rem}.modal-actions{flex-direction:column-reverse}.modal-actions .btn{width:100%}}@keyframes slideInUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideOutDown{0%{transform:translateY(0);opacity:1}to{transform:translateY(100%);opacity:0}}.snackbar{position:fixed;bottom:2rem;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:.75rem;padding:1rem 1.5rem;border-radius:12px;box-shadow:6px 6px #000;border:3px solid #000;z-index:2000;min-width:300px;max-width:500px;animation:slideInUp .3s ease-out;font-family:Courier New,Courier,monospace}.snackbar-success,.snackbar-error{background:#fff;color:#000}.snackbar-info{background:#f5f5f0;color:#000}.snackbar-icon{font-size:1.5rem;font-weight:900;flex-shrink:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#000;color:#fff;border-radius:50%;box-shadow:2px 2px #0000004d}.snackbar-message{font-size:1rem;font-weight:700;letter-spacing:.3px}@media (max-width: 768px){.snackbar{left:1rem;right:1rem;transform:none;min-width:auto}}.dashboard{min-height:100vh;animation:fadeIn .4s ease-out;background:#f5f5f0}.dashboard-header{background:#fff;border-bottom:4px solid #000;padding:1.5rem 2rem;animation:slideUp .5s ease-out;position:relative}.dashboard-header:after{content:"";position:absolute;bottom:-8px;left:0;right:0;height:4px;background:repeating-linear-gradient(90deg,#000,#000 10px,transparent 10px,transparent 20px)}.dashboard-header-content{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:center}.dashboard-header h1{color:#000;font-size:1.75rem;font-weight:900;letter-spacing:-.5px;text-decoration:underline;text-decoration-style:wavy;text-underline-offset:6px}.dashboard-content{max-width:1200px;margin:0 auto;padding:2rem;animation:slideUp .6s ease-out}.dashboard-actions{margin-bottom:2rem;display:flex;gap:1rem;flex-wrap:wrap}.punch-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:2rem}.dashboard .btn-secondary{background:#fff;color:#000;border:3px solid #000;padding:.75rem 1.5rem;font-size:1rem;border-radius:8px;font-weight:800;cursor:pointer;transition:all .3s ease;box-shadow:4px 4px #000;letter-spacing:.3px}.dashboard .btn-secondary:hover{transform:translateY(-2px);box-shadow:5px 5px #000}.dashboard .btn-secondary:active{transform:translateY(1px);box-shadow:2px 2px #000}@media (max-width: 768px){.dashboard-header-content{flex-direction:column;gap:1rem;text-align:center}.dashboard-content{padding:1rem}.punch-cards-grid{grid-template-columns:1fr}}.history-page{min-height:100vh;animation:fadeIn .4s ease-out;background:#f5f5f0}.history-header{background:#fff;border-bottom:4px solid #000;padding:1.5rem 2rem;animation:slideUp .5s ease-out;position:relative}.history-header:after{content:"";position:absolute;bottom:-8px;left:0;right:0;height:4px;background:repeating-linear-gradient(90deg,#000,#000 10px,transparent 10px,transparent 20px)}.history-header-content{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:center}.history-header h1{color:#000;font-size:1.75rem;font-weight:900;letter-spacing:-.5px;text-decoration:underline;text-decoration-style:wavy;text-underline-offset:6px}.header-spacer{width:140px}.history-content{max-width:900px;margin:0 auto;padding:2rem;animation:slideUp .6s ease-out}.empty-state{text-align:center;padding:4rem 2rem;color:#000;background:#fff;border:3px dashed #000;border-radius:16px;margin:2rem auto;max-width:600px}.empty-icon{font-size:4rem;margin-bottom:1rem;filter:grayscale(100%)}.empty-state h2{font-size:1.75rem;margin-bottom:.5rem;font-weight:800}.empty-state p{color:#333;font-size:1.1rem;font-weight:500}.card-groups{display:flex;flex-direction:column;gap:3rem}.card-group{background:#fff;border:4px solid #000;border-radius:16px;box-shadow:8px 8px #000;overflow:hidden;animation:slideUp .5s ease-out backwards}.card-group:nth-child(odd){transform:rotate(-.3deg)}.card-group:nth-child(2n){transform:rotate(.3deg)}.card-group-header{background:#000;color:#fff;padding:2rem;cursor:pointer;transition:all .3s ease;position:relative}.card-group-header:hover{background:#222}.card-group-header:after{content:"";position:absolute;bottom:0;left:0;right:0;height:4px;background:repeating-linear-gradient(90deg,#fff,#fff 10px,transparent 10px,transparent 20px);opacity:.3}.card-group-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.card-group-title h2{font-size:1.8rem;font-weight:900;letter-spacing:-.5px;text-decoration:underline;text-decoration-style:wavy;text-underline-offset:8px;margin:0}.expand-btn{background:#fff;color:#000;border:3px solid #fff;width:48px;height:48px;border-radius:50%;font-size:2rem;font-weight:900;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;line-height:1;box-shadow:3px 3px #0000004d}.expand-btn:hover{transform:scale(1.1) rotate(90deg);box-shadow:4px 4px #0000004d}.card-group-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1rem}.group-stat{text-align:center;padding:1rem;background:#ffffff1a;border:2px solid rgba(255,255,255,.3);border-radius:12px;transition:all .2s ease}.group-stat:hover{background:#fff3;transform:translateY(-2px)}.group-stat-value{display:block;font-size:2rem;font-weight:900;line-height:1;margin-bottom:.5rem;letter-spacing:-1px}.group-stat-label{display:block;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;opacity:.9}.history-timeline{display:flex;flex-direction:column;gap:2rem;position:relative;padding:2rem;background:#f5f5f0}.history-timeline:before{content:"";position:absolute;left:32px;top:60px;bottom:60px;width:4px;background:repeating-linear-gradient(0deg,#000,#000 10px,transparent 10px,transparent 20px);opacity:.3}.history-card{background:#fff;border:4px solid #000;border-radius:12px;padding:1.5rem;box-shadow:6px 6px #000;position:relative;margin-left:50px;transform:rotate(0);transition:all .3s ease;animation:slideUp .5s ease-out backwards}.history-card:nth-child(odd){transform:rotate(-.3deg)}.history-card:nth-child(2n){transform:rotate(.3deg)}.history-card:hover{transform:translateY(-4px) rotate(0);box-shadow:8px 8px #000}.history-card:before{content:"";position:absolute;top:-6px;left:-6px;right:-6px;bottom:-6px;border:2px dotted #000;border-radius:14px;opacity:.4;pointer-events:none}.history-card:after{content:"";position:absolute;left:-67px;top:20px;width:16px;height:16px;background:#fff;border:4px solid #000;border-radius:50%;box-shadow:0 0 0 4px #f5f5f0}.history-card.goal-met{background:#f5f5f0;border-width:5px}.history-card.goal-met:after{background:#000}.history-card-header{display:flex;justify-content:flex-start;align-items:center;margin-bottom:1rem;gap:1rem}.history-card-header h3{color:#000;font-size:1.3rem;font-weight:900;letter-spacing:.3px;text-decoration:underline;text-decoration-style:wavy;text-underline-offset:5px;text-decoration-thickness:2px;flex:1;min-width:200px}.week-badge{background:#000;color:#fff;padding:.4rem 1rem;border-radius:20px;font-weight:800;font-size:.85rem;letter-spacing:.3px;box-shadow:3px 3px #0000004d;white-space:nowrap}.history-card-body{display:flex;flex-direction:column;gap:1rem}.progress-bar-container{background:#f5f5f0;border:3px solid #000;border-radius:20px;height:40px;overflow:hidden;position:relative;box-shadow:inset 2px 2px #0000001a}.progress-bar-fill{height:100%;background:#000;transition:width .5s ease;display:flex;align-items:center;justify-content:flex-end;padding-right:12px;position:relative}.progress-bar-fill:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(45deg,transparent,transparent 10px,rgba(255,255,255,.1) 10px,rgba(255,255,255,.1) 20px)}.progress-percentage{color:#fff;font-weight:900;font-size:.9rem;letter-spacing:.5px;position:relative;z-index:1}.history-stats{display:flex;gap:1rem;flex-wrap:wrap}.stat{background:#fff;border:3px solid #000;border-radius:8px;padding:.75rem 1rem;flex:1;min-width:150px;box-shadow:3px 3px #000}.stat-label{display:block;font-size:.75rem;color:#666;font-weight:800;text-transform:uppercase;letter-spacing:.5px;margin-bottom:.25rem}.stat-value{display:block;font-size:1.2rem;color:#000;font-weight:900;letter-spacing:.3px}.reward-earned{background:#f5f5f0}.completion-badge{background:#000;color:#fff;padding:.75rem 1rem;border-radius:8px;text-align:center;font-weight:800;font-size:1rem;letter-spacing:.5px;box-shadow:4px 4px #0000004d;animation:pulse 1s ease-in-out}@media (max-width: 768px){.history-header-content{flex-direction:row;gap:1rem}.history-header h1{font-size:1.5rem}.header-spacer{display:none}.history-content{padding:1rem}.card-group-header{padding:1.5rem}.card-group-title h2{font-size:1.4rem}.card-group-stats{grid-template-columns:repeat(2,1fr)}.expand-btn{width:40px;height:40px;font-size:1.5rem}.history-timeline{padding:1rem}.history-timeline:before{left:20px}.history-card{margin-left:30px}.history-card:after{left:-47px}.history-card-header{flex-direction:column;align-items:flex-start}.week-badge{align-self:flex-start}.history-stats{flex-direction:column}.stat{min-width:auto}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Courier New,Courier,monospace,-apple-system,BlinkMacSystemFont,Segoe UI;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f5f5f0;background-image:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,0,0,.02) 2px,rgba(0,0,0,.02) 4px),repeating-linear-gradient(90deg,transparent,transparent 2px,rgba(0,0,0,.02) 2px,rgba(0,0,0,.02) 4px);min-height:100vh;position:relative}#root{min-height:100vh}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.page-enter{animation:fadeIn .4s ease-out}
