:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}h1{font-size:3.2em;line-height:1.1}button{font-size:1em;font-weight:500;font-family:inherit;cursor:pointer;border:none}button:hover{border-color:#646cff}html{background-color:transparent!important}body{background:linear-gradient(340deg,#eddd53,#ff00d4 75%);min-height:100vh;margin:0}.rainbow-rain{position:fixed;top:0;left:0;height:100%;width:100vw;pointer-events:"none";overflow:visible}.otsikko-img{display:block;width:min(95vw,1000px);padding-block:30px;margin:0 auto}.infot{margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);text-align:center;column-gap:2em;row-gap:1em;max-width:98vw;font-size:1.15em;z-index:1}.infot>*{flex-grow:1;padding-inline:2em;background-color:#01aff326;border-radius:10px;z-index:1}.infot video{width:100%;height:auto;display:block;object-fit:cover;padding:0}.infot span{font-weight:700}a{color:#000}@media screen and (width < 600px){.infot{grid-template-columns:1fr}}.makoilu-logo{overflow:hidden;width:min(300px,80vw);margin:1em auto;padding:0;animation:pulse infinite 2s ease-in-out}@media screen and (width >= 1900px){.makoilu-logo{width:220px;position:fixed;right:10px;top:10px}}.rsvp{margin-inline:auto;text-align:center}.rsvp-buttons{position:relative;display:flex;justify-content:center;column-gap:2em}.rsvp-button{height:150px;aspect-ratio:1;border-radius:50%;z-index:10}.no-show-button{position:absolute;transform:translate(-50%,-50%);margin:auto 0;height:2em}.coming-button{display:inline-flex;align-items:center;justify-content:center;width:120px;height:120px;border-radius:50%;font-size:1.2rem;color:#fff;background:radial-gradient(circle at 30% 30%,#ffffffe6,#add8e699,#ffb6c199,#8a2be280);box-shadow:0 0 25px #add8e699,inset 0 0 10px #fff9;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);cursor:pointer;transition:transform .3s ease}.coming-button:hover{transform:scale(1.2)}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}@media (prefers-reduced-motion: no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em}.login{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:2rem}@media screen and (max-width: 1500px){.login{justify-content:flex-start;padding-top:3em}}.login h2{margin-top:0;font-size:2.5rem;text-align:center;margin-bottom:2rem;background:linear-gradient(45deg,#ff6b6b,#4ecdc4,#45b7d1,#f9ca24);background-size:300% 300%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:gradientShift 5s ease infinite;text-shadow:2px 2px 4px rgba(0,0,0,.3);font-weight:700}@keyframes gradientShift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.login input[type=password]{width:100%;max-width:400px;padding:1rem 1.5rem;font-size:1.2rem;border:none;border-radius:25px;background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 8px 25px #ff00d4,0 4px 15px #000;color:#000;margin-bottom:2rem;transition:all .3s ease;text-align:center;font-family:inherit}.login input[type=password]:focus{outline:none;transform:translateY(-2px);box-shadow:0 12px 40px #00000026,inset 0 2px 4px #fffc,0 0 0 3px #78dbff66;background:#ffffff4d}.login input[type=password]::placeholder{font-style:italic}.login button{display:inline-flex;align-items:center;justify-content:center;padding:1rem 2rem;font-size:1.4rem;font-weight:700;color:#fff;border:none;border-radius:25px;background:radial-gradient(circle at 30% 50%,#eddd53,#ff00d4);box-shadow:0 8px 25px #ff00d4,inset 0 2px 10px #eddd53,0 4px 15px #000;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);cursor:pointer;transition:all .3s ease;min-width:150px;text-transform:uppercase;letter-spacing:1px}.login button:hover{transform:translateY(-3px) scale(1.05);box-shadow:0 12px 35px #add8e6cc,inset 0 2px 10px #fffc,0 6px 20px #00000026}.login button:active{transform:translateY(-1px) scale(1.02);box-shadow:0 6px 15px #add8e699,inset 0 2px 10px #fff9,0 2px 8px #0000001a}.error-message{margin-top:2rem;padding:2rem;max-width:500px;background:linear-gradient(45deg,#ff416c,#ff4b2b,#ff6b6b,orange);background-size:400% 400%;border-radius:20px;text-align:center;color:#fff;font-weight:700;text-shadow:2px 2px 4px rgba(0,0,0,.5);box-shadow:0 10px 30px #ff4b2b66,0 0 0 3px #ffffff4d,inset 0 2px 10px #fff3;animation:errorShake .5s ease-in-out,errorGlow 2s ease-in-out infinite;border:3px solid rgba(255,255,255,.6)}.error-message h3{font-size:2rem;margin:0 0 1rem;animation:errorPulse 1s ease-in-out infinite}.error-message p{font-size:1.2rem;margin:.5rem 0;animation:errorBounce 2s ease-in-out infinite}@keyframes errorShake{0%,to{transform:translate(0)}25%{transform:translate(-10px) rotate(-2deg)}75%{transform:translate(10px) rotate(2deg)}}@keyframes errorGlow{0%,to{background-position:0% 50%;box-shadow:0 10px 30px #ff4b2b66,0 0 0 3px #ffffff4d,inset 0 2px 10px #fff3}50%{background-position:100% 50%;box-shadow:0 15px 40px #ff4b2b99,0 0 0 3px #ffffff80,inset 0 2px 10px #ffffff4d}}@keyframes errorPulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}@keyframes errorBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.modal-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#000000b3;z-index:99;animation:fadeIn .3s ease-out}.rsvp-form{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:min(600px,90vw);padding:min(2rem,3.5vw);text-align:center;background:linear-gradient(340deg,#eddd53,#ff00d4 75%);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:20px;box-shadow:8px 8px 25px #ff00d4;z-index:100;animation:formSlideIn .5s ease-out}.close-button{padding:0;position:absolute;top:15px;right:20px;width:1.5em;aspect-ratio:1;border-radius:50%;font-size:1.3em;font-weight:700;background:transparent;border:2px solid red;color:red;cursor:pointer;display:flex;align-items:center;justify-content:center;text-align:center;box-shadow:0 2px 10px #0000001a}.close-button:hover{border-color:red;transform:scale(1.05)}.rsvp-form h2{font-size:2rem;margin-bottom:1rem;background:linear-gradient(45deg,#ff6b6b,#4ecdc4,#45b7d1);background-size:300% 300%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:gradientShift 3s ease infinite}.rsvp-form h2 span{background:none;-webkit-background-clip:initial;background-clip:initial;-webkit-text-fill-color:initial;color:inherit}.rsvp-form p{font-size:1.2rem;margin-bottom:1.5rem;color:#333}.rsvp-form input{max-width:min(90%,350px);padding:1rem 1.5rem;font-size:1.2rem;border:none;border-radius:25px;background:#fffc;color:#ff00d4;box-shadow:0 4px 15px #0000001a;margin-bottom:1.5rem;margin-inline:.5rem;text-align:center;transition:all .3s ease}.rsvp-form input:focus{outline:none;box-shadow:0 8px 25px #add8e666;background:#fffffff2}.submit-button{padding:1rem 2rem;font-size:1.2rem;font-weight:700;color:#fff;border:none;border-radius:25px;background:radial-gradient(circle at 30% 50%,#eddd53,#ff00d4);box-shadow:0 8px 25px #ff00d4,inset 0 2px 10px #eddd53,0 4px 15px #000;color:#000;cursor:pointer;transition:all .3s ease;min-width:min(200px,90%);margin-inline:.5rem}.submit-button:hover:not(:disabled){transform:scale(1.05);box-shadow:0 10px 30px #add8e6cc}.submit-button:disabled{opacity:.5;cursor:not-allowed}.form-error{margin-top:1rem;padding:1rem;background:linear-gradient(45deg,#ff416c,#ff4b2b);color:#fff;border-radius:15px;font-weight:700;animation:errorShake .5s ease-in-out}@keyframes formSlideIn{0%{transform:translate(-50%,-50%) scale(.8);opacity:0}to{transform:translate(-50%,-50%) scale(1);opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.rsvp h1{font-size:3rem;margin-bottom:1rem;background:linear-gradient(45deg,#ff6b6b,#4ecdc4,#45b7d1,#f9ca24,#ff0fd4);background-size:400% 400%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:gradientShift 3s ease infinite;text-shadow:2px 2px 4px rgba(0,0,0,.3);font-weight:700;text-transform:uppercase;letter-spacing:2px}.rsvp h3{width:min(600px,95vw);overflow:hidden;margin:0 auto;margin-bottom:2rem;color:#333;padding-block:1rem;border-radius:25px;box-shadow:0 4px 15px #0006;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-weight:700;border:2px solid rgba(255,0,212,.3)}.ihku-boxi h1{font-size:2.5rem;margin-bottom:1.5rem;background:linear-gradient(45deg,#4caf50,#8bc34a,#cddc39,#ff9800);background-size:300% 300%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:gradientShift 4s ease infinite;text-shadow:2px 2px 4px rgba(0,0,0,.2);font-weight:700;text-transform:uppercase;letter-spacing:3px}.ihku-boxi{margin:2rem auto;max-width:min(92vw,800px);padding:min(2vw,2rem);padding-top:0;text-align:center;background:#ffffff4d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:20px;box-shadow:0 8px 25px #add8e64d}.loading,.error{font-size:1.2rem;padding:2rem;color:#333;font-weight:700}.error{color:#ff6b6b;background:#ff6b6b1a;border-radius:15px;padding:1rem}.no-attendees{font-size:1.3rem;color:#666;font-style:italic}.attendees-grid{display:flex;flex-wrap:wrap;gap:1rem}.attendee-card{background:radial-gradient(circle at 30% 30%,#ffffffe6,#add8e699,#ffb6c199,#8a2be280);padding:1rem 1.5rem;border-radius:25px;box-shadow:0 4px 15px #add8e666;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);transition:transform .3s ease;animation:cardSlideIn .5s ease-out forwards;opacity:0}.attendee-card:nth-child(odd){animation-delay:.1s}.attendee-card:nth-child(2n){animation-delay:.2s}.attendee-card:hover{transform:translateY(-5px) scale(1.05);box-shadow:0 8px 25px #add8e699}.attendee-name{font-size:1.1rem;font-weight:700;color:#333}.attendee-count{margin-top:2rem;padding-top:1rem}.attendee-count p{font-size:1.3rem;font-weight:700;background:linear-gradient(45deg,#4caf50,#8bc34a,#cddc39);background-size:300% 300%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:gradientShift 3s ease infinite;margin:0}@keyframes cardSlideIn{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@media screen and (width < 600px){.attendees-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}}
