: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-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%);mix-blend-mode:difference;transition:width .3s ease,height .3s ease,background-color .3s ease}body.hovering #custom-cursor{width:60px;height:60px;background-color:#fff}@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}.campaign-period-text{font-size:.9rem;color:#666;margin-bottom:2.5rem;letter-spacing:.02em}.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-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}
