:root{--font-main: "Montserrat", "Noto Sans JP", sans-serif;--color-bg: #f8f8f8;--color-text: #111;--color-text-sub: #555;--color-accent: #000;--spacing-base: 24px;--spacing-lg: 96px;--transition-smooth: .6s cubic-bezier(.16, 1, .3, 1)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-main);background-color:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;overflow-x:hidden;cursor:none}a{color:inherit;text-decoration:none}.menu-toggle{position:fixed;top:1.5rem;right:1.5rem;width:44px;height:44px;background:#ffffffe6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:none;border-radius:50%;cursor:pointer;z-index:1000;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;transition:transform .3s ease,box-shadow .3s ease;box-shadow:0 2px 10px #0000001a}.menu-toggle:hover{transform:scale(1.05);box-shadow:0 4px 15px #00000026}.menu-bar{width:18px;height:2px;background-color:#333;border-radius:2px;transition:transform .3s ease,opacity .3s ease}.menu-toggle.active .menu-bar:nth-child(1){transform:translateY(7px) rotate(45deg)}.menu-toggle.active .menu-bar:nth-child(2){opacity:0}.menu-toggle.active .menu-bar:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.menu-overlay{position:fixed;inset:0;background:#fff9;backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px);z-index:999;display:flex;justify-content:center;align-items:center;opacity:0;visibility:hidden;transition:opacity .4s ease,visibility .4s ease}.menu-overlay.active{opacity:1;visibility:visible}.menu-list{list-style:none;text-align:left}.menu-list li{margin-bottom:2rem;opacity:0;transform:translateY(20px);transition:opacity .4s ease,transform .4s ease}.menu-overlay.active .menu-list li{opacity:1;transform:translateY(0)}.menu-overlay.active .menu-list li:nth-child(1){transition-delay:.1s}.menu-overlay.active .menu-list li:nth-child(2){transition-delay:.15s}.menu-overlay.active .menu-list li:nth-child(3){transition-delay:.2s}.menu-overlay.active .menu-list li:nth-child(4){transition-delay:.25s}.menu-overlay.active .menu-list li:nth-child(5){transition-delay:.3s}.menu-link{font-size:1.2rem;font-weight:500;letter-spacing:.1em;color:#333;padding:.5rem 1rem;transition:color .3s ease}.menu-link:hover{color:#888}@media(min-width:768px){.menu-toggle{top:2rem;right:2rem}.menu-link{font-size:1.5rem}}.loader{position:fixed;inset:0;background-color:#000;z-index:9999;display:flex;justify-content:center;align-items:center;transition:opacity 1s ease,visibility 1s ease}.loader.hidden{opacity:0;visibility:hidden;pointer-events:none}.loader-content{display:flex;flex-direction:column;align-items:center;justify-content:center}.loader-text{color:#fff;font-size:2rem;font-weight:300;letter-spacing:.2em;opacity:0;animation:loaderFadeIn 2.5s ease forwards}@keyframes loaderFadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.fade-in{opacity:0;transform:translateY(30px);transition:opacity 1.2s ease,transform 1.2s ease}.fade-in.visible{opacity:1;transform:translateY(0)}.shimmer{display:inline-block}.shimmer.animate-shimmer{background:linear-gradient(90deg,#111 0% 40%,#c864ff 48%,#ff64c8,#c864ff 52%,#111 60% 100%);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shimmerMove 1.2s ease-out forwards}@keyframes shimmerMove{0%{background-position:100% 0}to{background-position:0% 0}}.campaign-section .shimmer.animate-shimmer{background:linear-gradient(90deg,#111 0% 40%,#ff64c8 48%,#c864ff,#ff64c8 52%,#111 60% 100%);background-size:250% 100%;-webkit-background-clip:text;background-clip:text}.contact-section .shimmer.animate-shimmer{background:linear-gradient(90deg,#fff 0% 40%,#c896ff 48%,#ff96c8,#c896ff 52%,#fff 60% 100%);background-size:250% 100%;-webkit-background-clip:text;background-clip:text}#custom-cursor{position:fixed;top:0;left:0;width:20px;height:20px;border:1px solid #fff;border-radius:50%;pointer-events:none;z-index:10000;transform:translate(-50%,-50%);transition:width .3s ease,height .3s ease,background-color .3s ease}body.hovering #custom-cursor{width:36px;height:36px;background-color:#fff3;border-width:2px}@media(hover:none)and (pointer:coarse){body{cursor:auto}#custom-cursor{display:none}}.noise-gradient{position:absolute;top:0;right:0;width:60%;height:100%;background:linear-gradient(135deg,#b43cff59,#50a0ff4d,#32dcb440);filter:blur(70px);opacity:1;pointer-events:none;z-index:0}.noise-gradient:before{content:"";position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 400 400' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");opacity:.3;mix-blend-mode:overlay}.campaign-noise{width:100%;height:100%;top:0;left:0;background:radial-gradient(ellipse at 20% 30%,rgba(255,80,150,.6) 0%,transparent 45%),radial-gradient(ellipse at 80% 20%,rgba(80,180,255,.55) 0%,transparent 40%),radial-gradient(ellipse at 60% 80%,rgba(160,60,255,.55) 0%,transparent 45%),radial-gradient(ellipse at 25% 75%,rgba(255,180,50,.5) 0%,transparent 40%),radial-gradient(ellipse at center,rgba(255,150,200,.4) 0%,transparent 60%);filter:blur(50px)}.section-number{display:block;font-size:.75rem;letter-spacing:.15em;color:#999;margin-bottom:.5rem}.wave-schedule{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-bottom:2.5rem;max-width:600px;margin-left:auto;margin-right:auto}@media(min-width:768px){.wave-schedule{grid-template-columns:repeat(4,1fr)}}.wave-item{background:#ffffffb3;border-radius:12px;padding:1rem;position:relative;border:2px solid transparent;transition:all .3s ease}.wave-item.wave-current{border-color:#333;background:#fff}.wave-badge{position:absolute;top:-10px;left:50%;transform:translate(-50%);background:linear-gradient(135deg,#333,#555);color:#fff;font-size:.65rem;font-weight:600;padding:.25rem .6rem;border-radius:50px;white-space:nowrap}.wave-item h4{font-size:.9rem;font-weight:700;color:#333;margin-bottom:.5rem;margin-top:.5rem}.wave-date{font-size:.75rem;color:#666;margin-bottom:.25rem}.wave-count{font-size:.8rem;font-weight:600;color:#333}.campaign-faq{margin-top:2rem;margin-bottom:2rem;text-align:left;max-width:500px;margin-left:auto;margin-right:auto;background:#fff9;border-radius:16px;padding:0}.campaign-faq summary{font-size:1rem;font-weight:700;color:#333;padding:1.5rem 2rem;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center}.campaign-faq summary::-webkit-details-marker{display:none}.campaign-faq summary:after{content:"+";font-size:1.5rem;font-weight:300;transition:transform .3s ease}.campaign-faq[open] summary:after{transform:rotate(45deg)}.faq-content{padding:0 2rem 2rem}.faq-item{margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid rgba(0,0,0,.08)}.faq-item:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.faq-q{font-size:.9rem;font-weight:600;color:#333;margin-bottom:.5rem}.faq-a{font-size:.85rem;color:#666;line-height:1.7}.campaign-how-to{margin-top:2.5rem;margin-bottom:2rem;text-align:left;max-width:500px;margin-left:auto;margin-right:auto;background:#fff9;border-radius:16px;padding:2rem}.campaign-how-to h3{font-size:1rem;font-weight:700;color:#333;margin-bottom:1.5rem;text-align:center}.how-to-steps{list-style:none;padding:0}.how-to-steps li{display:flex;align-items:flex-start;gap:1rem;margin-bottom:1rem;font-size:.9rem;color:#333;line-height:1.6}.how-to-steps li:last-child{margin-bottom:0}.step-num{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:linear-gradient(135deg,#333,#555);color:#fff;font-size:.75rem;font-weight:700;border-radius:50%;flex-shrink:0}.how-to-steps a{color:#333;font-weight:600;text-decoration:underline}.how-to-steps a:hover{color:#666}.app-container{opacity:0;transition:opacity 1s ease}.app-container.visible{opacity:1}section,header,footer{padding:4rem var(--spacing-base)}@media(min-width:768px){section,header{padding:6rem var(--spacing-lg)}footer{padding:6rem var(--spacing-lg) 2rem var(--spacing-lg)}}.hero-section{min-height:100vh;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}.parallax-bg{position:absolute;top:10%;right:-5%;font-size:25vw;font-weight:800;color:#00000008;line-height:.8;pointer-events:none;z-index:0}@media(min-width:768px){.parallax-bg{font-size:15vw}}.hero-content{position:relative;z-index:1}.hero-role{font-size:.8rem;letter-spacing:.15em;color:var(--color-text-sub);margin-bottom:1.5rem}.hero-title{font-size:3.5rem;font-weight:800;line-height:1.1;margin-bottom:2rem}@media(min-width:768px){.hero-title{font-size:6rem}}.hero-line{width:60px;height:2px;background-color:var(--color-accent);margin-bottom:2rem}.hero-bio{font-size:1rem;line-height:1.8;color:var(--color-text-sub);max-width:600px}.scroll-indicator{position:absolute;bottom:4rem;left:var(--spacing-base);display:flex;align-items:center;gap:1rem;font-size:.7rem;letter-spacing:.2em}@media(min-width:768px){.scroll-indicator{left:var(--spacing-lg)}}.scroll-indicator .line{width:1px;height:40px;background-color:var(--color-text)}.section-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:4rem;border-bottom:1px solid #eee;padding-bottom:1rem}.section-header h2{font-size:2rem;font-weight:700}.section-header span{font-size:.8rem;letter-spacing:.1em;color:#999}.gallery-grid{display:grid;grid-template-columns:1fr;gap:1rem}.coming-soon{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:6rem 0;background-color:#f0f0f0;border-radius:4px}.coming-soon p{font-size:2rem;font-weight:700;letter-spacing:.1em;color:#ccc;margin-bottom:1rem}.coming-soon-sub{font-size:.9rem;color:#999}@media(min-width:768px){.gallery-grid{grid-template-columns:repeat(2,1fr);gap:2rem}}@media(min-width:1024px){.gallery-grid{grid-template-columns:repeat(3,1fr)}}.gallery-item{aspect-ratio:1;background-color:#eee;overflow:hidden;position:relative;cursor:pointer}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .8s ease}.gallery-item:hover img{transform:scale(1.05)}.info-content{max-width:800px;margin:0 auto;color:var(--color-text-sub)}.info-content p{font-size:1rem;line-height:1.5;white-space:pre-line;margin-bottom:1.5rem}.info-quote{font-size:1.8rem;font-weight:700;color:var(--color-text);margin-bottom:2.5rem;line-height:1.4}@media(min-width:768px){.info-quote{font-size:2.2rem}}.campaign-section{background:linear-gradient(135deg,#eee,#f8f8f8);color:#111;text-align:center;padding:6rem 1.5rem;position:relative;overflow:hidden}.campaign-container{max-width:800px;margin:0 auto;position:relative;z-index:10}.campaign-label{display:inline-block;font-size:.75rem;font-weight:600;letter-spacing:.2em;color:#fff;margin-bottom:1.5rem;background:linear-gradient(135deg,#333,#555);padding:.6rem 1.2rem;border-radius:50px;border:none}.campaign-title{font-size:2rem;font-weight:800;line-height:1.4;margin-bottom:2rem;color:#111}@media(min-width:768px){.campaign-title{font-size:3rem}}.campaign-desc{font-size:1rem;line-height:1.8;color:#555;margin-bottom:3rem}.campaign-btn{display:inline-flex;align-items:center;gap:1rem;background-color:#fff;color:#111;padding:1.2rem 3rem;border-radius:50px;text-decoration:none;font-weight:700;transition:transform .3s ease,box-shadow .3s ease}.campaign-btn:hover{transform:translateY(-5px);box-shadow:0 10px 20px #00000026}.btn-arrow{transition:transform .3s ease}.campaign-btn:hover .btn-arrow{transform:translate(5px)}.campaign-btn-primary{background:linear-gradient(135deg,#333,#111);color:#fff;font-size:1.1rem;padding:1.4rem 3.5rem;box-shadow:0 6px 25px #00000040;animation:pulse-glow 2s ease-in-out infinite;position:relative;transition:all .4s ease;z-index:1}.campaign-btn-primary:before{content:"";position:absolute;inset:-3px;background:linear-gradient(135deg,#ff6b9d,#c44cff,#6b8bff,#4cd9ff,#ff6b9d);border-radius:53px;opacity:0;transition:opacity .4s ease;z-index:-2}.campaign-btn-primary:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#ff6b9d,#c44cff,#6b8bff,#4cd9ff,#ff6b9d);border-radius:50px;opacity:0;transition:opacity .4s ease;z-index:-1}@keyframes pulse-glow{0%,to{box-shadow:0 6px 25px #00000040}50%{box-shadow:0 8px 35px #00000059}}.campaign-btn-primary:hover{transform:translateY(-5px) scale(1.02);box-shadow:0 0 20px #ff6b9d99,0 0 40px #c44cff66,0 0 60px #6b8bff4d;animation:none}.campaign-btn-primary:hover:before{opacity:1}.campaign-btn-primary:hover:after{opacity:1}.campaign-note{font-size:.8rem;color:#666;margin-top:1rem}.contact-section{background-color:#111;color:#fff}.contact-container{display:grid;gap:4rem}@media(min-width:768px){.contact-container{grid-template-columns:1fr 1fr}}.contact-left{display:flex;flex-direction:column}.contact-left span{font-size:.8rem;letter-spacing:.1em;color:#999;margin-bottom:1rem}.contact-left h2{font-size:3rem;line-height:1.2}.contact-links{list-style:none;display:flex;flex-direction:column;gap:1.5rem}.contact-links a{font-size:1.5rem;font-weight:300;display:block;border-bottom:1px solid #333;padding-bottom:.5rem;color:#fff;transition:padding-left .3s ease,color .3s ease}.contact-links a:hover{padding-left:1rem;color:#aaa}.footer-bottom{margin-top:2rem;padding-top:2rem;border-top:1px solid #333;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;font-size:.8rem;color:#666;text-transform:uppercase;letter-spacing:.1em;text-align:center}.footer-link{color:#888;text-decoration:none;transition:color .3s ease;cursor:pointer}.footer-link:hover{color:#fff}.policy-page{cursor:auto}.policy-page a{cursor:pointer}
