@import url('https://fonts.googleapis.com/css2?family=M+PLUS+1p&family=RocknRoll+One&display=swap');
        body {
            font-family: 'M PLUS 1p', sans-serif;
            font-weight: 600;
            background-color: #ffffff;
            margin: 0;
            overflow-x: hidden;
            overflow-y: auto;
            width: 100%;
            min-height: 100vh;
        }

        html { scroll-behavior: smooth; }

        :root{
            --slantCut: 68px;
        }
        @media (max-width: 640px){
            :root{ --slantCut: 42px; }
        }


        a{
            color: #FF0067!important;
        }

        .icon-wrap{
            position: absolute;
            transform-origin: 50% 60%;
            will-change: transform;
        }
        .icon-wrap.wobble{
            animation-name: floatWobble;
            animation-timing-function: ease-in-out;
            animation-iteration-count: infinite;
            animation-direction: alternate;
        }
        @keyframes floatWobble{
            0%{ transform: translateX(-10px) rotate(-7deg); }
            100%{ transform: translateX(10px) rotate(7deg); }
        }

        .illustration {
            opacity: 0;
            transition: opacity 0.8s ease;
            display: block;
            width: 100%;
            height: auto;
            pointer-events: none;
            user-select: none;
            transform: none;
        }
        .illustration.active {
            opacity: 1;
        }

:root{

            --hero-pad-top: 60px;
            --hero-pad-bottom: 0px;
            --logo-w: clamp(180px, 22vw, 560px);
            --char-w: clamp(260px, 34vw, 860px);

            --logo-char-gap: clamp(14px, 2.8vh, 34px);
        }

                .hero-stack{
            position: relative;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
        }

        #main-logo{
            opacity: 0;
            transform: translateY(65%);
            transition: opacity 1s ease, transform .9s cubic-bezier(0.34, 1.56, 0.64, 1);
            will-change: transform, opacity;
        }
        #main-logo img{
            width: 80vw;
			max-width: 640px;
            height: auto;
            max-height: calc(100svh - var(--hero-pad-top) - var(--hero-pad-bottom));
            object-fit: contain;
            display: block;
            filter: drop-shadow(0 20px 20px rgba(0,0,0,0.15));
        }
        #main-logo.active{
            opacity: 1;
            transform: translateY(55%);
        }
        #main-logo.to-top{
            transform: translateY(0%);
        }

        #character-container{
            pointer-events: none;
        }
        #character{
            opacity: 0;
            transform: translateY(40px);
            transition: opacity .9s ease, transform .9s cubic-bezier(0.34, 1.56, 0.64, 1);
            will-change: transform, opacity;
        }
        #character img{
            width: 80vw;
			max-width: 640px;
            height: auto;
            max-height: calc(100svh - var(--hero-pad-top) - var(--hero-pad-bottom) - 120px);
            object-fit: contain;
            display: block;
            filter: drop-shadow(0 20px 20px rgba(0,0,0,0.10));
        }
        #character.active{
            opacity: 1;
            transform: translateY(0) scale(1);
        }
        @media (max-height: 720px){
            :root{
                --logo-w: clamp(150px, 20vw, 440px);
                --char-w: clamp(220px, 32vw, 720px);
                --hero-pad-top: 74px;
                --hero-pad-bottom: 22px;
            }
		}
		@media (min-width: 1921px){
            #character img{
			max-width: 800px;
			}
            #main-logo img{
			max-width: 800px;
			}
		}

        @media (min-height: 1081px){
            #character img{
			max-width: 800px;
			}
            #main-logo img{
			max-width: 800px;
			}
		}
        @media (min-height: 1441px){
            #character img{
			max-width: 960px;
			}
            #main-logo img{
			max-width: 960px;
			}
		}


        #site-header{
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            z-index: 9999;
            pointer-events: none;
        }
        .header-inner{
            max-width: 1080px;
            margin: 0 auto;
            padding: 14px 16px;
            display: flex;
            align-items: center;
            justify-content: space-between;
            pointer-events: auto;
        }
        .header-logo img{
            width: 160px;
            height: auto;
            display: block;
            filter: drop-shadow(0 6px 16px rgba(0,0,0,.08));
        }

        .bubble-nav{
            display: flex;
            align-items: center;
            gap: 8px;
            padding: 8px;
            border-radius: 999px;
            background: rgba(255,255,255,.86);
            border: 1px solid rgba(0,0,0,.08);
            box-shadow: 0 10px 30px rgba(0,0,0,.10);
            backdrop-filter: blur(10px);
            -webkit-backdrop-filter: blur(10px);
        }

        .hamburger-btn{
            width: 46px;
            height: 46px;
            border-radius: 999px;
            border: 1px solid rgba(0,0,0,.08);
            background: rgba(255,255,255,.86);
            box-shadow: 0 10px 30px rgba(0,0,0,.10);
            backdrop-filter: blur(10px);
            -webkit-backdrop-filter: blur(10px);
            display: none;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            gap: 4px;
            padding: 0;
            cursor: pointer;
            user-select: none;
        }
        .hamburger-btn span{
            display: block;
            display: block;
            width: 20px;
            height: 2px;
            border-radius: 999px;
            background: rgba(15, 23, 42, .85);
            transition: transform .18s ease, opacity .18s ease;
        }
        .hamburger-btn.is-open span:nth-child(1){ transform: translateY(6px) rotate(45deg); }
        .hamburger-btn.is-open span:nth-child(2){ opacity: 0; }
        .hamburger-btn.is-open span:nth-child(3){ transform: translateY(-6px) rotate(-45deg); }

        .menu-backdrop{
            position: fixed;
            inset: 0;
            background: rgba(0,0,0,.18);
            opacity: 0;
            pointer-events: none;
            transition: opacity .18s ease;
            z-index: 9997;
        }
        .menu-backdrop.open{
            opacity: 1;
            pointer-events: auto;
        }
        .mobile-menu{
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            transform: translateY(-120%);
            transition: transform .26s cubic-bezier(0.2, 0.9, 0.2, 1);
            z-index: 9998;
            background: rgba(255,255,255,.86);
            border-bottom: 1px solid rgba(0,0,0,.08);
            box-shadow: 0 18px 50px rgba(0,0,0,.14);
            backdrop-filter: blur(14px);
            -webkit-backdrop-filter: blur(14px);
            padding: 78px 16px 18px;
        }
        .mobile-menu.open{ transform: translateY(0); }
        .mobile-menu .mobile-inner{
            max-width: 1080px;
            margin: 0 auto;
            display: grid;
            gap: 10px;
        }
        .mobile-item{
            display: flex;
            align-items: center;
            justify-content: center;
            height: 46px;
            border-radius: 999px;
            font-weight: 900;
            letter-spacing: .02em;
            text-decoration: none;
            color: rgba(30, 41, 59, 0.95);
            background: rgba(255,255,255,.92);
            border: 1px solid rgba(0,0,0,.06);
        }

        .bubble-item{
            display: inline-flex;
            align-items: center;
            justify-content: center;
            height: 40px;
            padding: 0 16px;
            border-radius: 999px;
            font-weight: 900;
            letter-spacing: .02em;
            text-decoration: none;
            color: rgba(30, 41, 59, 0.95);
            background: rgba(255,255,255,.92);
            border: 1px solid rgba(0,0,0,.06);
            transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
            user-select: none;
        }
        .bubble-item:hover{
            transform: translateY(-1px);
            background: rgba(255,255,255,1);
        }
        .bubble-item:active{
            transform: translateY(0);
        }

        .hero-stage{
            position: relative;
            z-index: 1;
            height: 100svh;
            min-height: 100svh;
            width: 100%;
            overflow: hidden;
        }
        .hero-content{
            position: relative;
            height: 100%;
            width: 100%;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            padding-top: var(--hero-pad-top);
            padding-bottom: var(--hero-pad-bottom);
            box-sizing: border-box;
        }

        section[id]{ scroll-margin-top: 96px; }

        .content-section{
            position: relative;
            z-index: 1;
            width: 100%;
            padding: 120px 16px 10px;
        }
        .content-section-bg{
            background: rgba(255,255,255,0.80);
            padding: 60px 16px 10px;
        }
        .content-inner{
            max-width: 1080px;
            margin: 0 auto;
        }
        .section-title{
            font-size: 28px;
            font-weight: 900;
            letter-spacing: .02em;
            margin: 0 0 12px 0;
			height: 100px;
        }
        .section-text{
            font-size: 16px;
            line-height: 1.9;
            margin: 0;
            color: rgba(15, 23, 42, 0.86);
        }


        .goods-carousel-shell{
            position: relative;
            width: 100vw;
            margin-left: calc(50% - 50vw);
            margin-right: calc(50% - 50vw);
            padding: 18px 0 6px;
        }

        .goods-carousel{
            position: relative;
            touch-action: pan-y;
            overflow-x: auto;
            overflow-y: hidden;
            scroll-snap-type: x proximity;
            -webkit-overflow-scrolling: touch;
            scrollbar-width: none;
                        scroll-behavior: smooth;
padding: 10px 0 18px;
            padding-left: max(16px, calc((100vw - 1080px) / 2));
            padding-right: max(16px, calc((100vw - 1080px) / 2));
        }
        .goods-carousel::-webkit-scrollbar{ display:none; }

        
.goods-carousel{
    cursor: grab;
    user-select: none;
}
.goods-carousel.is-dragging{
    cursor: grabbing;
    scroll-snap-type: none;
    scroll-behavior: auto;
}
.goods-carousel.is-momentum{
    cursor: grab;
    scroll-snap-type: none;
    scroll-behavior: auto;
}
.goods-carousel.is-dragging .goods-card{
    pointer-events: auto;
}
.goods-track{
            display: flex;
            gap: 18px;
            align-items: stretch;
            width: max-content;
        }

        .goods-card{
            flex: 0 0 auto;
            width: min(276px, 74vw);
            background: rgba(255,255,255,0.92);
            border: 1px solid rgba(15,23,42,0.10);
            border-radius: 18px;
            box-shadow: 0 16px 36px rgba(0,0,0,0.08);
            padding: 14px 14px 12px;
            scroll-snap-align: start;
            cursor: pointer;
            transition: transform .18s ease, box-shadow .18s ease;
        }
        .goods-card:hover{
            transform: translateY(-2px);
            box-shadow: 0 20px 44px rgba(0,0,0,0.10);
        }

        .goods-thumb{
            width: 100%;
            aspect-ratio: 1 / 1;
            border-radius: 14px;
            overflow: hidden;
            background: rgba(2,6,23,0.04);
            display: grid;
            place-items: center;
        }
        .goods-thumb img{
            width: 86%;
            height: 86%;
            object-fit: contain;
            filter: drop-shadow(0 10px 16px rgba(0,0,0,0.10));
                    -webkit-user-drag: none;
            user-drag: none;
            user-select: none;
            -webkit-user-select: none;
            -ms-user-select: none;
        }

        .goods-name{
            margin: 12px 2px 4px;
            font-size: 14px;
            line-height: 1.35;
            font-weight: 800;
            letter-spacing: 0.02em;
        }
        .goods-price{
            margin: 0 2px;
            font-size: 13px;
            font-weight: 900;
            opacity: 0.85;
        }

        .goods-side{
            position: absolute;
            top: 0;
            bottom: 0;
            width: clamp(0px, calc((100vw - 1080px)/2), 9999px);
            border: 0;
            padding: 0;
            background: transparent;
            backdrop-filter: blur(2px);
            -webkit-backdrop-filter: blur(2px);
            z-index: 3;
            cursor: pointer;
        }
        .goods-side-left{
            left: 0;
            background: linear-gradient(to right, rgba(240,240,240,0.78), rgba(240,240,240,0.0));
        }
        .goods-side-right{
            right: 0;
            background: linear-gradient(to left, rgba(240,240,240,0.78), rgba(240,240,240,0.0));
        }

        .goods-arrow{
            position: absolute;
            top: 50%;
            transform: translateY(-50%);
            z-index: 4;
            border: 0;
            width: 44px;
            height: 44px;
            border-radius: 999px;
            background: rgba(255,255,255,0.82);
            box-shadow: 0 16px 36px rgba(0,0,0,0.10);
            font-weight: 900;
            font-size: 20px;
            line-height: 44px;
            text-align: center;
            cursor: pointer;
            user-select: none;
        }
        .goods-arrow-left{ left: 12px; }
        .goods-arrow-right{ right: 12px; }

        @media (max-width: 640px){
            .goods-card{ width: min(252px, 82vw); }
        }

.about-inner{
    background: rgba(243, 244, 246, 0.92);
    border: 1px solid rgba(0,0,0,0.06);
    border-radius: 26px;
    padding: clamp(18px, 3.2vw, 34px);
    box-shadow: 0 18px 40px rgba(0,0,0,0.08);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    overflow: hidden;
    transform: translateY(44px) scale(0.985);
    opacity: 0;
    filter: blur(2px);
    transition:
        transform 0.9s cubic-bezier(0.34, 1.56, 0.64, 1),
        opacity 0.8s ease,
        filter 0.9s ease;
    will-change: transform, opacity, filter;
}
.about-inner.is-inview{
    transform: translateY(0) scale(1);
    opacity: 1;
    filter: blur(0);
}


        @media (max-width: 640px){
            .desktop-nav{ display: none; }
            .hamburger-btn{ display: inline-flex; }
        }

        @media (max-width: 520px){
            .header-logo img{ width: 120px; }
            .bubble-item{ height: 36px; padding: 0 12px; font-size: 13px; }
            .mobile-menu{ padding-top: 70px; }
        }



        .hero-stage{
            position: relative;
            z-index: 1;
            isolation: isolate;
        }
        .dream-bg{
            position: absolute;
            inset: 0;
            z-index: 0;
            pointer-events: none;
            overflow: hidden;
            background:
              radial-gradient(1200px 800px at 20% 30%, rgba(173, 216, 230, 0.70), rgba(173, 216, 230, 0.00) 60%),
              radial-gradient(1100px 900px at 80% 25%, rgba(255, 182, 193, 0.65), rgba(255, 182, 193, 0.00) 62%),
              radial-gradient(1200px 900px at 55% 85%, rgba(216, 191, 255, 0.65), rgba(216, 191, 255, 0.00) 62%),
              linear-gradient(120deg, rgba(170, 230, 255, 0.30), rgba(255, 200, 235, 0.26), rgba(210, 195, 255, 0.30));
            filter: blur(10px) saturate(1.15);
            transform: translateZ(0);
            animation: dreamDrift 14s ease-in-out infinite alternate;
        }
        @keyframes dreamDrift{
            0%{
                background-position: 0% 0%, 100% 0%, 50% 100%, 0% 50%;
                transform: scale(1.02);
            }
            100%{
                background-position: 10% 6%, 92% 12%, 54% 94%, 100% 40%;
                transform: scale(1.06);
            }
        }

        .dream-bg::before,
        .dream-bg::after{
            content:"";
            position:absolute;
            inset:-15%;
            background:
              radial-gradient(closest-side at 30% 40%, rgba(255,255,255,0.45), rgba(255,255,255,0) 65%),
              radial-gradient(closest-side at 70% 30%, rgba(255,255,255,0.35), rgba(255,255,255,0) 65%),
              radial-gradient(closest-side at 55% 75%, rgba(255,255,255,0.28), rgba(255,255,255,0) 68%);
            filter: blur(22px);
            opacity: 0.75;
            mix-blend-mode: soft-light;
            transform: translateZ(0);
            animation: glowFloat 9s ease-in-out infinite alternate;
        }
        .dream-bg::after{
            opacity: 0.55;
            filter: blur(34px);
            animation-duration: 12s;
            animation-direction: alternate-reverse;
        }
        @keyframes glowFloat{
            0%{ transform: translate3d(-1.5%, -1.0%, 0) scale(1.00); }
            100%{ transform: translate3d(1.5%, 1.2%, 0) scale(1.05); }
        }

        #background-layer{ z-index: 0; }
        .hero-content{ z-index: 2; }

        
        #main-logo img{
            transform: translate3d(var(--logo-x, 0px), var(--logo-y, 0px), 0px)
                       rotateX(var(--logo-rx, 0deg)) rotateY(var(--logo-ry, 0deg));
            transform-style: preserve-3d;
            will-change: transform;
            transition: none;
        }
        #character img{
            transform: translate3d(var(--char-x, 0px), var(--char-y, 0px), 0px)
                       rotateX(var(--char-rx, 0deg)) rotateY(var(--char-ry, 0deg));
            transform-style: preserve-3d;
            will-change: transform;
            transition: none;
        }

        @media (prefers-reduced-motion: reduce){
            .dream-bg, .dream-bg::before, .dream-bg::after{ animation: none !important; }
        }



        #top, #top *{
            -webkit-user-select: none;
            user-select: none;
        }
        #top img{
            -webkit-user-drag: none;
            user-drag: none;
            pointer-events: none;
        }
        #top{
            touch-action: pan-y;
            perspective: 900px;
            perspective-origin: 50% 40%;
        }
        .hero-stack{
            transform-style: preserve-3d;
        }
        #background-layer{
            position: fixed;
            inset: 0;
            width: 100vw;
            height: 100vh;
            overflow: hidden;
            pointer-events: none;
            z-index: 0;

            transform: translate3d(var(--bg-x, 0px), var(--bg-y, 0px), 0px)
                       rotateX(var(--bg-rx, 0deg)) rotateY(var(--bg-ry, 0deg));
            transform-style: preserve-3d;
            will-change: transform;
            transition: none;
			background: white;
        }
        @media (prefers-reduced-motion: reduce){
            #background-layer, #main-logo img, #character img{ transition: none !important; }
        }


        .icon-wrap{
            transform-style: preserve-3d;
            will-change: transform, filter, opacity;
        }
        #background-layer .icon-wrap{
            opacity: var(--d-op, 1);
            filter: blur(var(--d-blur, 0px));
            transform:
              translate3d(
                calc(var(--bg-x, 0px) * var(--d-move, 1)),
                calc(var(--bg-y, 0px) * var(--d-move, 1)),
                calc(var(--d-z, 0px))
              )
              rotateX(calc(var(--bg-rx, 0deg) * var(--d-rot, 1)))
              rotateY(calc(var(--bg-ry, 0deg) * var(--d-rot, 1)))
              rotateZ(var(--d-rz, 0deg))
              scale(var(--d-scale, 1));
            transition: none;
        }



        .hero-stage::after{
            content: "";
            position: absolute;
            left: 0;
            right: 0;
            bottom: 0;
            height: 160px;
            pointer-events: none;
            background: linear-gradient(
                to bottom,
                rgba(255,255,255,0) 0%,
                rgba(255,255,255,0.2) 40%,
                rgba(255,255,255,0.5) 70%,
                rgba(255,255,255,8) 100%
            );
            z-index: 3;
        }

        @media (max-width: 640px){
            .hero-stage::after{
                height: 120px;
            }
        }


#page-top {
  position: fixed;
  bottom: 20px;
  right: 20px;
  font-size: 14px;
  line-height: 1;
  z-index: 1000;
}
#page-top a {
  text-decoration: none;
  color: #fff;
  width: 100px;
  text-align: center;
  display: block;
  transition: all .3s ease;
}
#page-top a{
  will-change: transform;
  transition: all .3s ease;
}
#page-top:not(.is-launching) a:hover {
  transition: all .3s ease;
  transform: translateY(-10px);
}


@media (max-width: 640px){
#page-top {
    bottom: 10px;
    right: 10px;
    zoom: 0.8;
}
    
}

#rainbow-overlay{
  overflow: hidden;
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 9990;
  opacity: 0;
  transform: translateY(40px);
  background: linear-gradient(180deg,
    #ffb3d9 0%,
    #ffd6a5 6%,
    #fdffb6 12%,
    #caffbf 18%,
    #9bf6ff 24%,
    #a0c4ff 30%,
    #bdb2ff 36%,
    #ffb3d9 50%,
    #ffd6a5 56%,
    #fdffb6 62%,
    #caffbf 68%,
    #9bf6ff 74%,
    #a0c4ff 80%,
    #bdb2ff 86%,
    #ffb3d9 100%
  );
  background-size: 100% 400%;
  background-position: 0 100%;
  will-change: opacity, transform, background-position;
  transition: opacity 1.1s ease, transform 1.1s cubic-bezier(.2,.9,.2,1);
  mix-blend-mode: normal;
  filter: brightness(1.15) saturate(1.1);
  box-shadow: inset 0 0 120px rgba(255,255,255,0.6);

}

#rainbow-overlay::before,
#rainbow-overlay::after{
  content:"";
  position:absolute;
  inset:-10%;
  pointer-events:none;
  opacity:0;
  mix-blend-mode: screen;
  will-change: opacity, transform, background-position;
}

#rainbow-overlay::before{
  background-image:
    radial-gradient(circle at 12% 18%, rgba(255,255,255,.95) 0 1.2px, rgba(255,255,255,0) 2.6px),
    radial-gradient(circle at 28% 62%, rgba(255,255,255,.85) 0 1px, rgba(255,255,255,0) 2.4px),
    radial-gradient(circle at 44% 32%, rgba(255,255,255,.9) 0 1.4px, rgba(255,255,255,0) 2.8px),
    radial-gradient(circle at 63% 74%, rgba(255,255,255,.8) 0 1.1px, rgba(255,255,255,0) 2.5px),
    radial-gradient(circle at 78% 26%, rgba(255,255,255,.9) 0 1.3px, rgba(255,255,255,0) 2.7px),
    radial-gradient(circle at 90% 58%, rgba(255,255,255,.8) 0 1px, rgba(255,255,255,0) 2.4px),
    radial-gradient(circle at 8% 78%, rgba(255,255,255,.92) 0 1.1px, rgba(255,255,255,0) 2.5px),
    radial-gradient(circle at 36% 10%, rgba(255,255,255,.88) 0 1.2px, rgba(255,255,255,0) 2.6px),
    radial-gradient(circle at 58% 46%, rgba(255,255,255,.9) 0 1.3px, rgba(255,255,255,0) 2.7px),
    radial-gradient(circle at 82% 86%, rgba(255,255,255,.86) 0 1.15px, rgba(255,255,255,0) 2.55px);
  background-size: 340px 340px;
  animation: sparkleDrift 3.6s linear infinite, sparkleTwinkle 1.2s ease-in-out infinite;
  filter: blur(.12px) drop-shadow(0 0 10px rgba(255,255,255,.35));
}

#rainbow-overlay::after{
  background-image:
    radial-gradient(circle at 20% 40%, rgba(255,255,255,.95) 0 2.2px, rgba(255,255,255,0) 6px),
    radial-gradient(circle at 55% 20%, rgba(255,255,255,.9) 0 1.8px, rgba(255,255,255,0) 5.5px),
    radial-gradient(circle at 72% 55%, rgba(255,255,255,.85) 0 2px, rgba(255,255,255,0) 6.5px),
    radial-gradient(circle at 38% 78%, rgba(255,255,255,.9) 0 2.1px, rgba(255,255,255,0) 6.2px);
  background-size: 520px 520px;
  animation: sparkleDrift2 5.2s linear infinite, sparkleTwinkle2 1.8s ease-in-out infinite;
  filter: blur(.28px) drop-shadow(0 0 16px rgba(255,255,255,.32));
}

#rainbow-overlay.is-active::before,
#rainbow-overlay.is-active::after{
  opacity: 1;
}

@keyframes sparkleDrift{
  0%{ background-position: 0 0; transform: translate3d(0,0,0); }
  100%{ background-position: 260px -380px; transform: translate3d(0,-20px,0); }
}
@keyframes sparkleDrift2{
  0%{ background-position: 0 0; transform: translate3d(0,0,0); }
  100%{ background-position: -220px -520px; transform: translate3d(0,-35px,0); }
}
@keyframes sparkleTwinkle{
  0%,100%{ opacity:.42; }
  50%{ opacity:1; }
}
@keyframes sparkleTwinkle2{
  0%,100%{ opacity:.32; }
  50%{ opacity:1; }
}



#rainbow-overlay.is-active{
  opacity: 0.86;
  transform: translateY(0);
  animation: rainbowFlowUp 1.4s linear infinite, rainbowGlowPulse 2.4s ease-in-out infinite;
}

#rainbow-overlay.is-fading{
  opacity: 0;
  transform: translateY(0);
}


@keyframes rainbowGlowPulse{
  0%,100%{ filter: brightness(1.15) saturate(1.1); }
  50%{ filter: brightness(1.25) saturate(1.2); }
}

@keyframes rainbowFlowUp{
  0%{ background-position: 0 100%; }
  100%{ background-position: 0 0%; }
}

#page-top a{
  opacity: 1;
  transition: opacity .35s ease;
}
#page-top.is-launching a{
  animation: toTopLaunch 1.6s cubic-bezier(.2,.85,.2,1) forwards;
}
#page-top.is-launching a:hover{
  transform: none;
}
#page-top.is-vanishing a{
  opacity: 0;
}

@keyframes toTopLaunch{
  0%{ transform: translateY(0) rotate(0deg); }
  25%{ transform: translateY(18px) rotate(-30deg); }
  100%{ transform: translateY(-160px) rotate(-30deg); }
}




#menu2{
  position: relative;
  overflow: hidden;
  margin-top: -60px;
}
#menu2::before{
  content:"";
  position:absolute;
  inset:-2px 0;
  background: #E9F7FF;
  transform: translateX(100%);
  transition: transform 1.05s cubic-bezier(.22,.61,.36,1);
  z-index:0;
  clip-path: polygon(0 var(--slantCut), 100% 0, 100% calc(100% - var(--slantCut)), 0 100%);
}
#menu2.is-inview::before{
  transform: translateX(0);
}
#menu2 .content-inner{
  position: relative;
  z-index:1;
}

#menu3{
  position: relative;
  overflow: hidden;
}
#menu3::before{
  content:"";
  position:absolute;
  inset:-2px 0;
  background: #FFE9EF;
  transform: translateX(-100%);
  transition: transform 1.05s cubic-bezier(.22,.61,.36,1);
  z-index:0;
  clip-path: polygon(0 0, 100% var(--slantCut), 100% 100%, 0 calc(100% - var(--slantCut)));
}
#menu3.is-inview::before{
  transform: translateX(0);
}
#menu3 .content-inner{
  position: relative;
  z-index:1;
}

.news-inner{
    margin-top: clamp(14px, 2.6vw, 22px);
    position: relative;
	padding: 0 50px;
}

.news-grid{
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(12px, 2.5vw, 24px);
}

@media (max-width: 640px){
    .news-inner{
    	padding: 0 0px;
    }
    .news-grid{
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.news-card{
    border-radius: 22px;
    background: rgba(248, 250, 252, 0.92);
    border: 1px solid rgba(0,0,0,0.06);
    box-shadow: 0 14px 34px rgba(0,0,0,0.08);
    overflow: hidden;
    transform: translateY(18px);
    opacity: 0;
    transition: transform 650ms cubic-bezier(.2,.9,.2,1), opacity 650ms ease;
    will-change: transform, opacity;
}

.news-card.is-show{
    transform: translateY(0);
    opacity: 1;
}

.news-card-link{
    display: block;
    padding: 14px 14px 16px;
    color: inherit;
    text-decoration: none;
}

.news-card-link:focus-visible{
    outline: 3px solid rgba(59,130,246,0.55);
    outline-offset: 3px;
    border-radius: 18px;
}

.news-thumb{
    border-radius: 18px;
    overflow: hidden;
    aspect-ratio: 1 / 1;
    background: rgba(0,0,0,0.04);
    margin-bottom: 12px;
}

.news-thumb img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.news-date{
    display: inline-block;
    font-size: 12px;
    letter-spacing: .06em;
    color: rgba(15,23,42,0.62);
    margin-bottom: 6px;
}

.news-title{
    margin: 0 0 8px;
    font-size: 16px;
    line-height: 1.35;
    font-weight: 800;
    color: rgba(15,23,42,0.92);
}

.news-excerpt{
    margin: 0;
    font-size: 13px;
    line-height: 1.7;
    color: rgba(15,23,42,0.76);
}

.news-more-wrap{
    display: flex;
    justify-content: flex-end;
    margin-top: 14px;
}

.news-more{
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    border-radius: 999px;
    background: rgba(255,255,255,0.75);
    border: 1px solid rgba(0,0,0,0.08);
    box-shadow: 0 12px 28px rgba(0,0,0,0.08);
    text-decoration: none;
    font-weight: 800;
    color: rgba(15,23,42,0.86);
    transition: transform 180ms ease, background 180ms ease;
}

.news-more::after{
    content: "→";
    font-weight: 900;
}

.news-more:hover{
    transform: translateY(-1px);
    background: rgba(255,255,255,0.9);
}



.hero-stage{ position: relative; }
.hero-fuwa{
    position: absolute;
    right: clamp(14px, 2.2vw, 34px);
    bottom: clamp(14px, 2.2vw, 34px);
    width: clamp(72px, 10vw, 140px);
    z-index: 30;
    cursor: pointer;
    user-select: none;
    -webkit-tap-highlight-color: transparent;
}
.hero-fuwa img{
    width: 100%;
    height: auto;
    display: block;
    animation: heroFuwaPulse 2.2s ease-in-out infinite;
    transform-origin: 70% 70%;
    -webkit-user-drag: none;
    user-drag: none;
}
@keyframes heroFuwaPulse{
    0%, 100%{ transform: scale(1.15); }
    50%{ transform: scale(1.2); }
}

.about-section .content-inner{
    max-width: 1100px;
    margin: 0 auto;
}
.about-fuwa-inner{
    position: relative;
    width: 100%;
    max-width: none;
    padding: 0;
    background: transparent;
    border: none;
    box-shadow: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;

    aspect-ratio: 16 / 9;
    overflow: visible;
    transform: none;
    opacity: 1;
    filter: none;
}
.about-fuwa-stack{
    position: relative;
    width: 100%;
    height: 100%;
}
.about-fuwa{
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: auto;
    display: block;
    opacity: 0;
    transform: scale(0.35);
    pointer-events: none;
    -webkit-user-drag: none;
    user-drag: none;
    will-change: transform, opacity;
}
.about-fuwa-3{ z-index: 1; transform-origin: 92% 92%; }
.about-fuwa-2{ z-index: 2; transform-origin: 8% 92%; }
.about-fuwa-1{ z-index: 3; transform-origin: 50% 92%; }

.about-fuwa.is-show{
    animation: fuwaPop 700ms cubic-bezier(0.22, 1.4, 0.36, 1) forwards;
}

@keyframes fuwaPop{
    0%   { opacity: 0; transform: scale(0.18); }
    60%  { opacity: 1; transform: scale(1.06); }
    82%  { opacity: 1; transform: scale(0.98); }
    100% { opacity: 1; transform: scale(1.00); }
}


        main{ position: relative; z-index: 1; }

        #site-header{ z-index: 10000; }
        .header-inner{ position: relative; z-index: 10001; }
        .header-logo{ position: relative; z-index: 10002; }
        .hamburger-btn{ position: relative; z-index: 10002; }
        

    .collab-article{
      --ink:#2a2a2a;
      --muted:#666;
      --line:rgba(0,0,0,.08);
      --shadow:0 14px 40px rgba(0,0,0,.08);
      --shadow2:0 10px 26px rgba(0,0,0,.06);
      --radius:22px;
      color:var(--ink);
      line-height:1.9;
      letter-spacing:.02em;
    }

    .collab-wrap{
      max-width: 980px;
      margin: 0 auto;
      border-radius: var(--radius);
      backdrop-filter: blur(2px);
    }

    .collab-head{
      position: relative;
      padding: clamp(14px, 2.2vw, 22px) clamp(14px, 2.6vw, 26px);
      border-radius: calc(var(--radius) - 6px);
      box-shadow: var(--shadow2);
      overflow: hidden;
    }
    .collab-head > *{ position:relative; z-index:1; }

    .collab-title{
      margin: 0;
      font-weight: 800;
      font-size: clamp(18px, 2.4vw, 26px);
      line-height: 1.5;
    }
    .collab-kicker{
      margin-top: 10px;
      font-size: clamp(12px, 1.6vw, 14px);
      color: var(--muted);
    }
    .collab-divider{
      margin-top: 14px;
      height: 1px;
      background: linear-gradient(90deg, transparent, rgba(0,0,0,.12), transparent);
    }

    .collab-media{
      margin-top: clamp(16px, 2.6vw, 22px);
      display: grid;
      gap: 14px;
    }
    .collab-img{
      width: 100%;
      margin: 0 auto;
      height: auto;
      display: block;
      border-radius: 18px;
      filter:
        drop-shadow(0 10px 18px rgba(0,0,0,.16))
        drop-shadow(0 2px 4px rgba(0,0,0,.10));
        margin: 20px;
      transform-origin: center;
      user-select: none;
      -webkit-user-drag: none;
    }
    .cp{
        width: 60%;
        margin: 0 auto;
    }
    
        @media (max-width: 640px){

    .cp{
        width: 100%;
    }
    }
    
    .about-img{
    padding: 0 20px;
    }

    .collab-body{
      background:rgba(255,255,255,0.50);
    margin: 0 30px;
    padding: 20px;
    box-shadow: 0px 0px 10px rgba(0,0,0,0.0);
    border-radius: 20px;
    }
    .collab-body p{
      margin: 0;
      white-space: pre-wrap;
      margin: 20px 0;
    }
    
        @media (max-width: 640px){

    .collab-body{
    padding: 20px 0;
    }
        }

    span.under-grad{
    background: linear-gradient(to right, #E2FFFC 0%, #FFE2F3 100%);
    background-repeat: no-repeat;
    background-position: left bottom;
    background-size: 100% 50%;
    }
    
    
    .collab-body p + p{ margin-top: 14px; }

    .collab-voices{
      background:rgba(255,255,255,0.50);
      margin-top: 0;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: clamp(12px, 2.2vw, 18px);
    }
    .voice{
      border-radius: 18px;
      padding: 16px 16px 14px;
      position: relative;
      overflow: hidden;
    }
    .voice::before{
      content:"";
      position:absolute;
      inset: -2px;
      pointer-events:none;
      z-index:0;
    }
    .voice > *{ position:relative; z-index:1; }


    .voice-title-1,
    .voice-title-2{
  display:inline-block;
  padding:10px 18px;
  margin-bottom:10px;
  border-radius:999px;
  background:#fff;
  box-shadow:0 6px 18px rgba(0,0,0,.08);
  border:1px solid rgba(0,0,0,.06);

  /* グラデーション文字 */
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;

  letter-spacing:.04em;
  font-size:16px;
  font-weight: 900;
}

    .voice-title-1{
  background-image:linear-gradient(90deg,#FFC600,#FF1414);
  }
    .voice-title-2{
  background-image:linear-gradient(90deg,#00E3FF,#1369FF);
  }
  

    .voice p{
      margin: 0;
      white-space: pre-wrap;
      color: #333;
    }

    .reveal{
      opacity: 0;
      transform: translateY(12px) scale(.985);
      filter: blur(1px);
      transition: opacity .9s ease, transform .9s ease, filter .9s ease;
      will-change: opacity, transform, filter;
    }
    .reveal.is-in{
      opacity: 1;
      transform: translateY(0) scale(1);
      filter: blur(0);
    }

    .collab-footspace{
      margin-top: 10px;
    }
    .collab-info {
    margin-top: 60px;
    margin-bottom: 50px;
    background: #ffee0050;
    padding: 50px 30px;
    border-radius: 20px;
    }   
    .collab-info-title{
        background: #fff;
        padding: 10px;
        border-radius: 50px;
        color: #000;
    }

    .only-pc{ display:block; }
    .only-sp{ display:none; }





@media (max-width: 640px){
      .collab-wrap{ border-radius: 18px; }
      .collab-voices{ grid-template-columns: 1fr; }
      .only-pc{ display:none; }
      .only-sp{ display:block; }
      .collab-img{ border-radius: 16px; }
      
      
    .about-img{
    padding: 0 0px;
    }
    .collab-body{
    margin: 0;
    }
    
    .collab-info {
    margin-top: 60px;
    background: #ffee0050;
    padding: 50px 20px;
    border-radius: 20px;
    }   
    
    .collab-info-title{
        display: block;
        padding: 10px 20px;
    }

    .collab-img{
        margin: 20px 0;
    }
    

    .voice-title-1,
    .voice-title-2{
  display:block;
  padding:10px 18px;
  margin-bottom:30px;
  text-align: center;
}

    
}



.site-footer{
  position: relative;
  margin-top: 100px;
  background: #f3f4f6;
  text-align: center;
}

.footer-wave{
  position: absolute;
  top: -100px;
  left: 0;
  width: 100%;
  height: 100px;
  overflow: hidden;
  line-height: 0;
            background: rgba(255,255,255,0.80);
}

.footer-wave svg{
  display: block;
  width: 100%;
  height: 100%;
}

.footer-wave path{
  fill: #f3f4f6;
}

.footer-inner{
  padding: 20px 20px 60px;
}

.footer-link{
    margin: 20px;
}
.footer-copy{
  font-size: 14px;
  letter-spacing: .08em;
  color: rgba(0,0,0,.65);
  font-weight: 600;
}



