            /* ============================================================ RESET ============================================================ */
            * {
                box-sizing: border-box;
            }
            html {
                scroll-behavior: smooth;
            }
            html,
            body {
                margin: 0px 0px 0px 0px;
                padding: 0px 0px 0px 0px;
            }
            body {
                font-family: "Zen Maru Gothic", "M PLUS Rounded 1c", sans-serif;
                color: #5a3d27;
                background: #fdf3e7;
                overflow-x: hidden;
                line-height: 1.8;
                -webkit-font-smoothing: antialiased;
            }
            img {
                max-width: 100%;
                height: auto;
                vertical-align: bottom;
            }
            a {
                text-decoration: none;
                color: inherit;
            }
            button {
                font-family: inherit;
                cursor: pointer;
                border: 0px;
                background: transparent;
                padding: 0px 0px 0px 0px;
                margin: 0px 0px 0px 0px;
            }
            ul,
            ol,
            li {
                list-style: none;
                margin: 0px 0px 0px 0px;
                padding: 0px 0px 0px 0px;
            }
            p {
                margin: 0px 0px 0px 0px;
            }
            h1,
            h2,
            h3,
            h4 {
                margin: 0px 0px 0px 0px;
                font-weight: 400;
            }
            .sticker {
                object-fit: contain;
            }
            /* PC のみ改行（SP では無効） */
            .br-pc {
                display: none;
            }

            /* ============================================================ BASE ============================================================ */

            .progress-bar {
                position: fixed;
                top: 0px;
                left: 0px;
                height: 5px;
                width: 0%;
                background: linear-gradient(90deg, #e8946f, #f0b27a, #d2734c);
                z-index: 200;
                box-shadow: 0px 0px 12px rgba(232, 148, 111, 0.6);
            }

            .site-header {
                position: fixed;
                top: 0px;
                left: 0px;
                width: 100%;
                z-index: 150;
                display: flex;
                align-items: center;
                justify-content: space-between;
                background: rgba(253, 243, 231, 0);
                transition:
                    background 0.4s ease,
                    box-shadow 0.4s ease,
                    padding 0.4s ease;
            }
            .site-header.is-scrolled {
                background: rgba(253, 243, 231, 0.92);
                box-shadow: 0px 6px 24px rgba(150, 95, 55, 0.12);
            }
            .site-header__logo {
                font-family: "Mochiy Pop One", sans-serif;
                color: #6b4a2e;
                display: flex;
                align-items: center;
                gap: 8px;
                letter-spacing: 1px;
            }
            .site-header__paw {
                display: inline-block;
                transform: rotate(-12deg);
            }
            .site-header__paw svg {
                display: block;
                width: 24px;
                height: 24px;
            }
            .site-nav__list {
                display: flex;
                align-items: center;
            }
            .site-nav__link {
                position: relative;
                font-weight: 700;
                color: #6b4a2e;
                transition: color 0.3s ease;
            }
            .site-nav__link::after {
                content: "";
                position: absolute;
                left: 0px;
                bottom: -6px;
                width: 0%;
                height: 3px;
                background: #e8946f;
                border-radius: 999px;
                transition: width 0.3s ease;
            }
            .site-nav__link:hover {
                color: #e8946f;
            }
            .site-nav__link:hover::after {
                width: 100%;
            }
            @keyframes navLineFloat {
                0%, 100% { transform: translateY(0px); }
                50% { transform: translateY(-3px); }
            }
            .site-nav__line {
                display: inline-flex;
                align-items: center;
                gap: 8px;
                background: #06c755;
                color: #ffffff;
                font-family: "Mochiy Pop One", sans-serif;
                border-radius: 999px;
                transition:
                    transform 0.3s ease,
                    box-shadow 0.3s ease;
                box-shadow: 0px 6px 14px rgba(6, 199, 85, 0.32);
                animation: navLineFloat 2.6s ease-in-out infinite;
            }
            .site-nav__line:hover {
                animation: none;
                transform: translateY(-2px);
                box-shadow: 0px 10px 18px rgba(6, 199, 85, 0.42);
            }
            @media (prefers-reduced-motion: reduce) {
                .site-nav__line { animation: none; }
            }

            /* ===================== LINE ボタン共通 ===================== */
            .line-btn {
                display: inline-flex;
                align-items: center;
                gap: 12px;
                background: #06c755;
                color: #ffffff;
                font-family: "Mochiy Pop One", sans-serif;
                border-radius: 999px;
                box-shadow: 0px 14px 28px rgba(6, 199, 85, 0.38);
                transition:
                    transform 0.3s cubic-bezier(0.2, 0.8, 0.3, 1.4),
                    box-shadow 0.3s ease;
            }
            .line-btn:hover {
                transform: translateY(-4px) scale(1.04);
                box-shadow: 0px 20px 36px rgba(6, 199, 85, 0.5);
            }
            .line-btn__chip {
                font-family: "M PLUS Rounded 1c", sans-serif;
                font-weight: 800;
                letter-spacing: 1px;
                background: #ffffff;
                color: #06c755;
                border-radius: 8px;
            }
            .line-btn__arrow {
                display: inline-block;
                transition: transform 0.3s ease;
            }
            .line-btn:hover .line-btn__arrow {
                transform: translateX(6px);
            }
            .line-btn--invert {
                background: #ffffff;
                color: #06c755;
                box-shadow: 0px 14px 28px rgba(0, 0, 0, 0.16);
            }
            .line-btn--invert .line-btn__chip {
                background: #06c755;
                color: #ffffff;
            }
            .line-btn--invert:hover {
                box-shadow: 0px 22px 36px rgba(0, 0, 0, 0.2);
            }

            /* ===================== HERO ===================== */
            .section-hero {
                position: relative;
                background: radial-gradient(
                    120% 85% at 72% 22%,
                    #fff7ee 0%,
                    #ffe6d2 52%,
                    #f8cdb1 100%
                );
                color: #5a3d27;
                overflow: hidden;
                display: flex;
                flex-direction: column;
                align-items: center;
                justify-content: center;
                text-align: center;
            }
            .hero__blob {
                position: absolute;
                border-radius: 999px;
                background: radial-gradient(
                    circle,
                    rgba(240, 178, 122, 0.55),
                    rgba(240, 178, 122, 0) 70%
                );
                pointer-events: none;
            }
            .hero__eyebrow {
                display: inline-block;
                font-family: "M PLUS Rounded 1c", sans-serif;
                font-weight: 800;
                letter-spacing: 4px;
                color: #d2734c;
                border: 2px solid rgba(210, 115, 76, 0.4);
                border-radius: 999px;
                background: rgba(255, 255, 255, 0.5);
            }
            .hero__title {
                font-family: "Mochiy Pop One", sans-serif;
                line-height: 1.08;
                color: #5a3d27;
                text-shadow: 0px 3px 0px rgba(255, 255, 255, 0.7);
            }
            .hero__title .char {
                display: inline-block;
                will-change: transform, opacity;
            }
            .hero__title .accent {
                color: #e8946f;
            }
            .hero__lead {
                color: #6b5340;
                font-weight: 500;
            }
            .hero__cta {
                display: flex;
                flex-wrap: wrap;
                align-items: center;
                gap: 18px;
            }
            .hero__cta-note {
                color: #b07a4a;
                font-size: 13px;
                font-weight: 700;
                letter-spacing: 1px;
            }
            .hero__visual {
                position: relative;
            }
            .hero__img {
                position: relative;
                z-index: 3;
                will-change: transform;
                filter: drop-shadow(0px 22px 30px rgba(150, 90, 50, 0.38));
            }
            .hero__badge {
                position: absolute;
                z-index: 4;
                font-family: "Mochiy Pop One", sans-serif;
                color: #b3532f;
                background: #ffffff;
                border-radius: 999px;
                box-shadow: 0px 8px 18px rgba(150, 90, 50, 0.25);
                transform: rotate(-8deg);
            }
            .hero__badge--2 {
                transform: rotate(10deg);
                background: #ffe1cf;
                color: #c25a35;
            }
            .hero__badge--line {
                background: #06c755;
                color: #ffffff;
                font-family: "M PLUS Rounded 1c", sans-serif;
                font-weight: 800;
                box-shadow: 0px 10px 20px rgba(6, 199, 85, 0.35);
            }

            .floaty {
                position: absolute;
                pointer-events: none;
                will-change: transform;
                z-index: 2;
            }
            .heart {
                width: 26px;
                height: 26px;
                background: #f0816e;
                transform: rotate(45deg);
                border-radius: 6px;
            }
            .heart::before,
            .heart::after {
                content: "";
                position: absolute;
                width: 26px;
                height: 26px;
                background: #f0816e;
                border-radius: 999px;
            }
            .heart::before {
                top: -13px;
                left: 0px;
            }
            .heart::after {
                left: -13px;
                top: 0px;
            }
            .spark {
                width: 18px;
                height: 18px;
                background: #f4b06a;
                clip-path: polygon(
                    50% 0%,
                    60% 40%,
                    100% 50%,
                    60% 60%,
                    50% 100%,
                    40% 60%,
                    0% 50%,
                    40% 40%
                );
            }

            /* SCROLL（足跡が落ちるアニメ）===================== */
            .scroll-cue {
                position: absolute;
                left: 50%;
                transform: translateX(-50%);
                z-index: 5;
                display: flex;
                flex-direction: column;
                align-items: center;
                gap: 6px;
                color: #b07a4a;
                font-family: "M PLUS Rounded 1c", sans-serif;
                font-weight: 800;
                letter-spacing: 3px;
            }
            .scroll-cue__paws {
                position: relative;
                display: flex;
                flex-direction: column;
                align-items: center;
            }
            .scroll-cue__paw {
                display: block;
                line-height: 1;
                animation: pawFall 1.8s cubic-bezier(0.4, 0, 0.2, 1) infinite;
                opacity: 0;
            }
            .scroll-cue__paw:nth-child(1) {
                animation-delay: 0s;
            }
            .scroll-cue__paw:nth-child(2) {
                animation-delay: 0.45s;
            }
            .scroll-cue__paw:nth-child(3) {
                animation-delay: 0.9s;
            }
            @keyframes pawFall {
                0% {
                    opacity: 0;
                    transform: translateY(-14px) rotate(-12deg) scale(0.8);
                }
                25% {
                    opacity: 1;
                    transform: translateY(0px) rotate(-12deg) scale(1);
                }
                65% {
                    opacity: 1;
                    transform: translateY(14px) rotate(8deg) scale(1);
                }
                100% {
                    opacity: 0;
                    transform: translateY(28px) rotate(8deg) scale(0.8);
                }
            }
            .scroll-cue__label {
                font-size: 12px;
            }

            /* ===================== MARQUEE（リボン: 画像大きく ゆっくり） ===================== */
            .ribbon {
                background: #6b4a2e;
                overflow: hidden;
                position: relative;
            }
            .ribbon__track {
                display: flex;
                align-items: center;
                width: max-content;
                will-change: transform;
            }
            .ribbon__track--a {
                animation: marqueeA 140s linear infinite;
            }
            .ribbon__track--b {
                animation: marqueeB 120s linear infinite;
            }
            @keyframes marqueeA {
                from {
                    transform: translateX(0);
                }
                to {
                    transform: translateX(-50%);
                }
            }
            @keyframes marqueeB {
                from {
                    transform: translateX(-50%);
                }
                to {
                    transform: translateX(0);
                }
            }
            .ribbon__item {
                display: flex;
                align-items: center;
                font-family: "Mochiy Pop One", sans-serif;
                color: #ffe7c2;
                white-space: nowrap;
            }
            .ribbon__item img {
                object-fit: contain;
            }
            .ribbon__star {
                color: #f3b97f;
            }

            /* ===================== 見出し ===================== */
            .heading {
                text-align: center;
            }
            .heading__sub {
                display: inline-block;
                font-family: "M PLUS Rounded 1c", sans-serif;
                font-weight: 800;
                letter-spacing: 3px;
                color: #e8946f;
            }
            .heading__main {
                font-family: "Mochiy Pop One", sans-serif;
                color: #5a3d27;
                line-height: 1.3;
            }
            .heading__line {
                display: inline-block;
                height: 4px;
                width: 56px;
                background: #f0b27a;
                border-radius: 999px;
            }

            /* ===================== PROFILE ===================== */
            .section-profile {
                background: #fdf3e7;
                position: relative;
                overflow: hidden;
            }
            .profile__card {
                background: #ffffff;
                border-radius: 28px;
                box-shadow: 0px 24px 60px rgba(150, 95, 55, 0.14);
                display: flex;
                align-items: center;
            }
            .profile__photo {
                position: relative;
                flex-shrink: 0;
                border-radius: 24px;
                background: radial-gradient(circle at 50% 46%, #fff4e8 0%, #ffe3cd 100%);
            }
            .profile__photo img {
                object-fit: contain;
                filter: drop-shadow(0px 12px 18px rgba(150, 95, 55, 0.22));
            }
            .profile__photo-ring {
                position: absolute;
                inset: -10px;
                border: 3px dashed #f0b27a;
                border-radius: 32px;
                pointer-events: none;
            }
            .profile__name {
                font-family: "Mochiy Pop One", sans-serif;
                color: #5a3d27;
            }
            .profile__name span {
                color: #e8946f;
                font-size: 0.6em;
            }
            .profile__table {
                width: 100%;
                border-collapse: collapse;
            }
            .profile__table th,
            .profile__table td {
                text-align: left;
                vertical-align: top;
                padding: 14px 8px 14px 8px;
                border-bottom: 2px dotted #ecd9c2;
            }
            .profile__table th {
                width: 110px;
                color: #b07a4a;
                font-weight: 700;
                white-space: nowrap;
            }
            .profile__table td {
                color: #5a4334;
                font-weight: 500;
            }
            .tag {
                display: inline-block;
                background: #fde7d6;
                color: #d2734c;
                font-weight: 700;
                border-radius: 999px;
                padding: 4px 14px 4px 14px;
                margin: 0px 6px 6px 0px;
                font-size: 13px;
            }

            /* ===================== CHARM ===================== */
            .section-charm {
                background: linear-gradient(180deg, #fdf3e7 0%, #f7e1cb 100%);
                position: relative;
                overflow: hidden;
            }
            .charm__grid {
                display: grid;
            }
            .charm__card {
                background: #ffffff;
                border-radius: 24px;
                box-shadow: 0px 14px 34px rgba(150, 95, 55, 0.12);
                text-align: center;
                position: relative;
                overflow: hidden;
                transition:
                    transform 0.4s cubic-bezier(0.2, 0.8, 0.3, 1.2),
                    box-shadow 0.4s ease;
            }
            .charm__card:hover {
                transform: translateY(-10px);
                box-shadow: 0px 26px 48px rgba(150, 95, 55, 0.2);
            }
            .charm__card::before {
                content: "";
                position: absolute;
                top: -40px;
                right: -40px;
                width: 120px;
                height: 120px;
                background: radial-gradient(
                    circle,
                    rgba(240, 178, 122, 0.22),
                    rgba(240, 178, 122, 0)
                );
                border-radius: 999px;
            }
            .charm__img {
                object-fit: contain;
                display: block;
                background: radial-gradient(circle at 50% 42%, #fff4e8 0%, #ffe7d6 100%);
                border-radius: 18px;
                filter: drop-shadow(0px 8px 14px rgba(150, 95, 55, 0.18));
                transition: transform 0.4s cubic-bezier(0.2, 0.8, 0.3, 1.4);
            }
            .charm__card:hover .charm__img {
                transform: scale(1.04) rotate(-3deg);
            }
            .charm__no {
                font-family: "Mochiy Pop One", sans-serif;
                color: #f0b27a;
            }
            .charm__title {
                font-family: "Mochiy Pop One", sans-serif;
                color: #5a3d27;
            }
            .charm__text {
                color: #6b5340;
                font-weight: 500;
            }

            /* ===================== GALLERY ===================== */
            .section-gallery {
                position: relative;
                background: linear-gradient(180deg, #fef0e0 0%, #fbdcc2 100%);
                color: #5a3d27;
                overflow: hidden;
            }
            .gallery__grid {
                display: grid;
            }
            .gallery__item {
                position: relative;
                cursor: pointer;
                filter: drop-shadow(0px 8px 14px rgba(140, 85, 50, 0.28));
                will-change: transform;
            }
            .gallery__item img {
                display: block;
                width: 100%;
                height: 100%;
                object-fit: contain;
                transition: transform 0.35s cubic-bezier(0.2, 0.8, 0.3, 1.4);
            }
            .gallery__item:hover {
                z-index: 5;
            }
            .gallery__item:hover img {
                transform: translateY(-8px) rotate(-3deg) scale(1.08);
            }
            .gallery__count {
                display: inline-block;
                font-family: "M PLUS Rounded 1c", sans-serif;
                font-weight: 800;
                color: #ffffff;
                background: #e8946f;
                border-radius: 999px;
            }
            /* 「もっと見る」: SP のみ表示（PC では全件表示するので非表示） */
            .gallery__more-wrap {
                display: none;
                text-align: center;
                margin: 28px 0px 0px 0px;
            }
            .gallery__more {
                display: inline-flex;
                align-items: center;
                gap: 8px;
                font-family: "M PLUS Rounded 1c", sans-serif;
                font-weight: 800;
                font-size: 15px;
                color: #d2734c;
                background: #ffffff;
                padding: 13px 30px 13px 30px;
                border-radius: 999px;
                box-shadow: 0px 8px 18px rgba(140, 85, 50, 0.2);
                transition: transform 0.2s ease;
            }
            .gallery__more:hover {
                transform: translateY(-2px);
            }
            .gallery__more-ico {
                font-size: 12px;
                line-height: 1;
                transition: transform 0.3s ease;
            }
            .gallery__more.is-open .gallery__more-ico {
                transform: rotate(180deg);
            }

            /* ===================== LINE プロモ ===================== */
            .section-line {
                position: relative;
                overflow: hidden;
                text-align: center;
                background: linear-gradient(135deg, #06c755 0%, #04a548 60%, #028a3c 100%);
                color: #ffffff;
            }
            .section-line::before {
                content: "";
                position: absolute;
                top: -80px;
                right: -80px;
                width: 280px;
                height: 280px;
                background: radial-gradient(
                    circle,
                    rgba(255, 255, 255, 0.15),
                    rgba(255, 255, 255, 0)
                );
                border-radius: 999px;
                pointer-events: none;
            }
            .section-line::after {
                content: "";
                position: absolute;
                bottom: -100px;
                left: -60px;
                width: 320px;
                height: 320px;
                background: radial-gradient(
                    circle,
                    rgba(255, 255, 255, 0.12),
                    rgba(255, 255, 255, 0)
                );
                border-radius: 999px;
                pointer-events: none;
            }
            .line__bg-paw {
                position: absolute;
                pointer-events: none;
                color: #ffffff;
                fill: currentColor;
                opacity: 0.22;
                will-change: transform;
            }
            .line__bg-paw svg {
                display: block;
                width: 100%;
                height: auto;
            }
            /* 足型デコ（SVG・各セクション共通） */
            .paw-deco {
                position: absolute;
                z-index: -1; /* 常にコンテンツの背面（足あとデコ） */
                pointer-events: none;
                fill: currentColor;
                color: rgba(150, 100, 60, 0.1); /* 既定: 明るい背景用の薄茶 */
                will-change: transform;
            }
            .paw-deco svg {
                display: block;
                width: 100%;
                height: auto;
            }
            /* 足あとを背面に閉じ込めるため各セクションを独立スタッキングに */
            .section-daily,
            .section-cta {
                position: relative;
                overflow: hidden;
                isolation: isolate;
            }
            .section-daily .paw-deco {
                color: #e7d2bb;
            }
            .section-cta .paw-deco {
                color: rgba(255, 248, 239, 0.28);
            }
            .line__badge {
                display: inline-block;
                background: #ffe14b;
                color: #3d2d00;
                font-family: "Mochiy Pop One", sans-serif;
                border-radius: 999px;
                transform: rotate(-6deg);
                box-shadow: 0px 6px 14px rgba(0, 0, 0, 0.18);
            }
            .line__title {
                font-family: "Mochiy Pop One", sans-serif;
                line-height: 1.3;
                color: #ffffff;
                /* 立体感: 緑のエクストルード＋やわらかいドロップシャドウ */
                text-shadow:
                    0px 1px 0px #05b94f,
                    0px 2px 0px #04a548,
                    0px 3px 0px #04a548,
                    0px 4px 0px #039441,
                    0px 5px 0px #038139,
                    0px 6px 0px #027634,
                    0px 8px 10px rgba(0, 0, 0, 0.28);
                position: relative;
                z-index: 2;
                text-align: center;
            }
            .line__title-piece {
                position: static;
                display: inline-block;
                white-space: nowrap;
            }
            .line__lead {
                color: #eafff2;
                font-weight: 500;
            }
            /* 散らばったスタンプ群（LINEセクション全体） */
            .line__scatter {
                position: absolute;
                inset: 0px;
                pointer-events: none;
                z-index: 1;
            }
            .line__scatter-slot {
                position: absolute;
                display: block;
            }
            .line__scatter-slot img {
                display: block;
                width: 100%;
                height: auto;
                object-fit: contain;
                filter: drop-shadow(0px 14px 22px rgba(0, 0, 0, 0.38));
            }
            .line__content,
            .line__action {
                position: relative;
                z-index: 2;
            }
            /* LINE DL / CTA ボタンを目立たせる（常時グロー＋広がるリング） */
            .line__action .line-btn,
            .section-cta .line-btn {
                position: relative;
                animation: ctaGlow 1.7s ease-in-out infinite;
            }
            .line__action .line-btn::after,
            .section-cta .line-btn::after {
                content: "";
                position: absolute;
                inset: -7px;
                border-radius: 999px;
                border: 3px solid rgba(255, 255, 255, 0.9);
                opacity: 0;
                pointer-events: none;
                animation: ctaRing 1.7s ease-out infinite;
            }
            @keyframes ctaGlow {
                0%,
                100% {
                    box-shadow: 0px 14px 28px rgba(0, 0, 0, 0.16);
                }
                50% {
                    box-shadow:
                        0px 18px 34px rgba(0, 0, 0, 0.22),
                        0px 0px 30px rgba(255, 255, 255, 0.9);
                }
            }
            @keyframes ctaRing {
                0% {
                    opacity: 0.8;
                    transform: scale(1);
                }
                70%,
                100% {
                    opacity: 0;
                    transform: scale(1.2);
                }
            }
            .line__note {
                color: #d6ffe4;
                font-size: 13px;
                letter-spacing: 1px;
                font-weight: 700;
            }

            /* ===================== DAILY (タイムライン / ホバー追加) ===================== */
            .section-daily {
                background: #fdf3e7;
                position: relative;
                overflow: hidden;
            }
            .timeline {
                position: relative;
            }
            .timeline__spine {
                position: absolute;
                top: 0px;
                width: 5px;
                background: #ecd4b8;
                border-radius: 999px;
            }
            .timeline__progress {
                position: absolute;
                top: 0px;
                left: 0px;
                width: 100%;
                height: 0%;
                background: linear-gradient(180deg, #f0b27a, #e8946f);
                border-radius: 999px;
            }
            .tl-item {
                position: relative;
                display: flex;
                align-items: center;
            }
            .tl-item__dot {
                position: absolute;
                width: 22px;
                height: 22px;
                background: #ffffff;
                border: 5px solid #e8946f;
                border-radius: 999px;
                z-index: 3;
                transition:
                    box-shadow 0.4s ease,
                    border-color 0.4s ease;
            }
            .tl-item:hover .tl-item__dot {
                box-shadow: 0px 0px 0px 10px rgba(232, 148, 111, 0.32);
                border-color: #d2734c;
            }
            .tl-card {
                background: #ffffff;
                border-radius: 22px;
                box-shadow: 0px 14px 32px rgba(150, 95, 55, 0.14);
                display: flex;
                align-items: center;
                gap: 18px;
                cursor: pointer;
                transition:
                    transform 0.4s cubic-bezier(0.2, 0.8, 0.3, 1.2),
                    box-shadow 0.4s ease;
            }
            .tl-card:hover {
                transform: translateY(-6px);
                box-shadow: 0px 24px 44px rgba(150, 95, 55, 0.22);
            }
            .tl-card__img {
                flex-shrink: 0;
                object-fit: contain;
                background: radial-gradient(circle at 50% 46%, #fff4e8 0%, #ffe7d6 100%);
                border-radius: 16px;
                filter: drop-shadow(0px 6px 10px rgba(150, 95, 55, 0.18));
                transition: transform 0.4s cubic-bezier(0.2, 0.8, 0.3, 1.4);
            }
            .tl-card:hover .tl-card__img {
                animation: tlBounce 1.1s ease-in-out infinite;
            }
            @keyframes tlBounce {
                0%,
                100% {
                    transform: rotate(-5deg) scale(1.08) translateY(0px);
                }
                50% {
                    transform: rotate(6deg) scale(1.1) translateY(-4px);
                }
            }
            .tl-card__time {
                font-family: "Mochiy Pop One", sans-serif;
                color: #e8946f;
                transition: color 0.3s ease;
            }
            .tl-card:hover .tl-card__time {
                color: #d2734c;
            }
            .tl-card__title {
                font-family: "Mochiy Pop One", sans-serif;
                color: #5a3d27;
            }
            .tl-card__text {
                color: #6b5340;
                font-weight: 500;
            }

            /* ===================== MESSAGE（きもち / 自動スクロール） ===================== */
            .section-message {
                background: linear-gradient(180deg, #f7e1cb 0%, #f3d2b4 100%);
                position: relative;
                overflow: hidden;
                text-align: center;
            }
            .kimochi {
                position: relative;
                overflow: hidden;
                mask-image: linear-gradient(
                    90deg,
                    transparent 0%,
                    #000 8%,
                    #000 92%,
                    transparent 100%
                );
                -webkit-mask-image: linear-gradient(
                    90deg,
                    transparent 0%,
                    #000 8%,
                    #000 92%,
                    transparent 100%
                );
            }
            .kimochi__track {
                display: flex;
                align-items: center;
                width: max-content;
                will-change: transform;
                animation: kimochiMove 54s linear infinite;
            }
            @keyframes kimochiMove {
                from {
                    transform: translateX(0);
                }
                to {
                    transform: translateX(-50%);
                }
            }
            .kimochi__item {
                flex-shrink: 0;
                display: flex;
                flex-direction: column;
                align-items: center;
                cursor: pointer;
            }
            .kimochi__item img {
                object-fit: contain;
                filter: drop-shadow(0px 18px 28px rgba(150, 90, 50, 0.34));
                transition: transform 0.5s ease;
            }
            .kimochi__item:hover img {
                transform: translateY(-8px) scale(1.04);
            }
            .kimochi:hover .kimochi__track {
                animation-play-state: paused;
            }
            .message__quote {
                font-family: "Mochiy Pop One", sans-serif;
                color: #6b4a2e;
                line-height: 1.6;
            }
            .message__quote .hl {
                color: #d2734c;
            }

            /* ===================== CTA + FOOTER ===================== */
            .section-cta {
                position: relative;
                background: linear-gradient(155deg, #f6b98e 0%, #ee9b73 48%, #de7850 100%);
                color: #fff8ef;
                text-align: center;
                overflow: hidden;
            }
            .section-cta .heart,
            .section-cta .heart::before,
            .section-cta .heart::after {
                background: #fff3e2;
            }
            .section-cta .spark {
                background: #fff6e0;
            }
            .cta__title {
                font-family: "Mochiy Pop One", sans-serif;
                line-height: 1.4;
            }
            .cta__title .accent {
                color: #fff2d6;
            }
            .cta__sub {
                color: #ffeacf;
                font-weight: 700;
                letter-spacing: 2px;
            }
            .cta__paw {
                animation: pawWave 1.4s ease-in-out infinite;
                transform-origin: 70% 70%;
                display: inline-block;
            }
            @keyframes pawWave {
                0%,
                100% {
                    transform: rotate(-8deg);
                }
                50% {
                    transform: rotate(12deg);
                }
            }

            .site-footer {
                background: #2a1c12;
                color: #d8c3ac;
                text-align: center;
            }
            .site-footer__paw {
                color: #f3b97f;
            }
            .site-footer__small {
                color: #9a8268;
                font-size: 12px;
            }
            .site-footer__links {
                margin: 10px 0px 6px 0px;
                font-family: "M PLUS Rounded 1c", sans-serif;
                font-size: 14px;
            }
            .site-footer__links a {
                color: #f3b97f;
                text-decoration: none;
                white-space: nowrap;
            }
            .site-footer__links a:hover {
                text-decoration: underline;
            }
            .site-footer__links span {
                color: #6b5742;
                margin: 0px 8px 0px 8px;
            }

            .to-top {
                position: fixed;
                right: 20px;
                bottom: 20px;
                width: 52px;
                height: 52px;
                background: #e8946f;
                color: #fff;
                border-radius: 999px;
                display: flex;
                align-items: center;
                justify-content: center;
                box-shadow: 0px 8px 20px rgba(232, 148, 111, 0.5);
                opacity: 0;
                transform: translateY(20px);
                transition:
                    opacity 0.3s ease,
                    transform 0.3s ease,
                    background 0.3s ease;
                z-index: 140;
                pointer-events: none;
                font-size: 22px;
            }
            .to-top.is-show {
                opacity: 1;
                transform: translateY(0px);
                pointer-events: auto;
            }
            .to-top:hover {
                background: #d2734c;
            }

            /* ===================== MODAL ===================== */
            .modal {
                position: fixed;
                inset: 0px;
                z-index: 300;
                display: none;
            }
            .modal.is-open {
                display: block;
            }
            .modal__backdrop {
                position: absolute;
                inset: 0px;
                background: rgba(38, 24, 16, 0.82);
                animation: modalFadeIn 0.3s ease;
            }
            .modal__inner {
                position: relative;
                width: 100%;
                height: 100%;
                display: flex;
                flex-direction: column;
                align-items: center;
                justify-content: center;
            }
            .modal__close,
            .modal__nav {
                background: #ffffff;
                color: #5a3d27;
                border-radius: 999px;
                display: flex;
                align-items: center;
                justify-content: center;
                box-shadow: 0px 12px 28px rgba(0, 0, 0, 0.35);
                transition:
                    background 0.3s ease,
                    color 0.3s ease,
                    transform 0.3s cubic-bezier(0.2, 0.8, 0.3, 1.4);
                font-family: "Mochiy Pop One", sans-serif;
                z-index: 5;
            }
            .modal__close:hover,
            .modal__nav:hover {
                background: #e8946f;
                color: #ffffff;
            }
            .modal__close {
                position: absolute;
            }
            .modal__close:hover {
                transform: scale(1.08);
            }
            .modal__viewport {
                position: relative;
                width: 100%;
                display: flex;
                align-items: center;
                justify-content: center;
            }
            .modal__nav {
                position: absolute;
                top: 50%;
                transform: translateY(-50%);
            }
            .modal__nav:hover {
                transform: translateY(-50%) scale(1.08);
            }
            .modal__stage {
                position: relative;
                z-index: 2;
                overflow: hidden;
            }
            .modal__track {
                display: flex;
                align-items: center;
                will-change: transform;
                transition: transform 0.55s cubic-bezier(0.2, 0.8, 0.3, 1.15);
            }
            .modal__slide {
                flex-shrink: 0;
                width: 100%;
                display: flex;
                flex-direction: column;
                align-items: center;
            }
            .modal__slide img {
                object-fit: contain;
                filter: drop-shadow(0px 24px 38px rgba(0, 0, 0, 0.5));
            }
            .modal__caption {
                color: #ffffff;
                font-family: "Mochiy Pop One", sans-serif;
                text-shadow: 0px 2px 8px rgba(0, 0, 0, 0.4);
            }
            .modal__counter {
                position: absolute;
                left: 50%;
                transform: translateX(-50%);
                color: #ffe7c2;
                font-family: "M PLUS Rounded 1c", sans-serif;
                font-weight: 800;
                letter-spacing: 3px;
            }
            @keyframes modalFadeIn {
                from {
                    opacity: 0;
                }
                to {
                    opacity: 1;
                }
            }

            /* 「。」で分割した連続<p>の縦余白（margin-bottomのみ使用） */
            .hero__lead p:not(:last-child),
            .charm__text p:not(:last-child),
            .line__lead p:not(:last-child),
            .tl-card__text p:not(:last-child) {
                margin: 0px 0px 6px 0px;
            }
            .message__quote p:not(:last-child) {
                margin: 0px 0px 16px 0px;
            }

            .reveal {
                opacity: 0;
            }

            /* ===================== TALK（LINE風トーク使用例） ===================== */
            .section-talk {
                position: relative;
                overflow: hidden;
                background: linear-gradient(180deg, #f3d2b4 0%, #fdf3e7 100%);
                padding: 88px 20px 96px 20px;
            }
            .talk__phone {
                width: 100%;
                max-width: 420px;
                margin: 0px auto 0px auto;
                background: #ffffff;
                border: 6px solid #ffffff;
                border-radius: 28px;
                box-shadow: 0px 24px 50px rgba(140, 85, 50, 0.28);
                overflow: hidden;
            }
            .talk__bar {
                display: flex;
                align-items: center;
                gap: 10px;
                padding: 14px 18px 14px 14px;
                background: #06c755;
                color: #ffffff;
            }
            .talk__back {
                font-size: 22px;
                font-weight: 700;
                line-height: 1;
            }
            .talk__ava {
                width: 36px;
                height: 36px;
                border-radius: 999px;
                overflow: hidden;
                background: #ffffff;
                flex-shrink: 0;
            }
            .talk__ava img {
                width: 100%;
                height: 100%;
                object-fit: cover;
            }
            .talk__title {
                flex: 1;
                font-family: "Mochiy Pop One", sans-serif;
                font-size: 16px;
            }
            .talk__menu {
                font-size: 20px;
            }
            /* カードデッキ（よこに3枚・中央だけ大きく） */
            .talk__deck {
                position: relative;
                width: 100%;
                max-width: 760px;
                min-height: 520px;
                margin: 0px auto 0px auto;
                touch-action: pan-y;
                cursor: grab;
            }
            /* SP: talk セクションを1画面に収める。カード中身を縮小し、カードが矢印(.talk__nav)を覆わないようにする */
            @media (max-width: 767px) {
                .section-talk {
                    padding: 44px 16px 52px 16px;
                }
                .talk__deck {
                    min-height: 360px;
                }
                .talk__body {
                    gap: 6px;
                    padding: 10px 12px 14px 12px;
                }
                .talk__sticker {
                    width: 60px;
                    height: 60px;
                }
                .talk__avatar {
                    width: 28px;
                    height: 28px;
                }
                .talk__bubble {
                    font-size: 14px;
                    padding: 7px 11px 7px 11px;
                }
                .talk__nav {
                    margin: 12px 0px 0px 0px;
                }
            }
            .talk__card {
                position: absolute;
                top: 0px;
                left: 0px;
                right: 0px;
                margin: 0px auto 0px auto;
                width: 100%;
                max-width: 320px;
                background: #ffffff;
                border: 6px solid #ffffff;
                border-radius: 28px;
                box-shadow: 0px 24px 50px rgba(140, 85, 50, 0.28);
                overflow: hidden;
                transform-origin: center center;
                transition:
                    transform 0.85s cubic-bezier(0.34, 1.1, 0.4, 1),
                    opacity 0.7s ease;
                will-change: transform, opacity;
            }
            .talk__body {
                display: flex;
                flex-direction: column;
                gap: 14px;
                padding: 20px 16px 24px 16px;
                background: #a7cfe8; /* LINEっぽい青 */
            }
            .talk__row {
                display: flex;
                align-items: flex-end;
                gap: 8px;
            }
            .talk__row--in {
                justify-content: flex-start;
            }
            .talk__row--out {
                justify-content: flex-end;
            }
            .talk__avatar {
                width: 34px;
                height: 34px;
                border-radius: 999px;
                overflow: hidden;
                background: #ffffff;
                flex-shrink: 0;
            }
            .talk__avatar img {
                width: 100%;
                height: 100%;
                object-fit: cover;
            }
            .talk__bubble {
                max-width: 72%;
                padding: 10px 14px 10px 14px;
                background: #ffffff;
                color: #4a3c2e;
                border-radius: 16px;
                font-size: 15px;
                line-height: 1.6;
                box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.08);
            }
            .talk__bubble--me {
                background: #06c755;
                color: #ffffff;
            }
            .talk__sticker {
                width: 106px;
                height: 106px;
                object-fit: contain;
                filter: drop-shadow(0px 6px 10px rgba(0, 0, 0, 0.2));
            }
            .talk__nav {
                display: flex;
                align-items: center;
                justify-content: center;
                gap: 16px;
                margin: 20px 0px 0px 0px;
            }
            .talk__arrow {
                display: flex;
                align-items: center;
                justify-content: center;
                width: 40px;
                height: 40px;
                padding: 0px 0px 2px 0px; /* グリフを光学的に中央へ */
                border-radius: 999px;
                background: #ffffff;
                color: #06c755;
                font-size: 26px;
                line-height: 1;
                box-shadow: 0px 6px 14px rgba(140, 85, 50, 0.22);
                transition: transform 0.2s ease;
            }
            .talk__arrow:hover {
                transform: scale(1.1);
            }
            .talk__dots {
                display: flex;
                gap: 8px;
            }
            .talk__dot {
                width: 10px;
                height: 10px;
                border-radius: 999px;
                background: rgba(140, 85, 50, 0.3);
                transition:
                    background 0.25s ease,
                    transform 0.25s ease;
            }
            .talk__dot.is-on {
                background: #06c755;
                transform: scale(1.25);
            }
            .talk__hint {
                margin: 14px 0px 0px 0px;
                text-align: center;
                color: #b07a4a;
                font-size: 13px;
                font-weight: 700;
            }
            .talk__cta {
                margin: 40px 0px 0px 0px;
                text-align: center;
            }
            .talk__note {
                margin: 0px 0px 16px 0px;
                font-family: "Mochiy Pop One", sans-serif;
                color: #b3532f;
                font-size: 16px;
            }

            /* ===================== GOODS（準備中） ===================== */
            .section-goods {
                position: relative;
                overflow: hidden;
                background: linear-gradient(180deg, #fdf3e7 0%, #f7e1cb 100%);
                padding: 80px 20px 88px 20px;
            }
            /* 背景でゆらゆら浮かぶ小物 */
            .goods__bg-icon {
                position: absolute;
                font-size: 42px;
                line-height: 1;
                opacity: 0.18;
                pointer-events: none;
                user-select: none;
                animation: goodsFloat 7s ease-in-out infinite;
            }
            @keyframes goodsFloat {
                0%,
                100% {
                    transform: translateY(0px) rotate(var(--r, 0deg));
                }
                50% {
                    transform: translateY(-16px) rotate(var(--r, 0deg));
                }
            }
            .goods__card {
                position: relative;
                width: 100%;
                max-width: 560px;
                margin: 0px auto 0px auto;
                padding: 56px 32px 52px 32px;
                text-align: center;
                background: linear-gradient(180deg, #ffffff 0%, #fff7ef 100%);
                border: 1px solid rgba(232, 148, 111, 0.28);
                border-radius: 32px;
                box-shadow:
                    0px 30px 60px rgba(140, 85, 50, 0.2),
                    0px 2px 0px rgba(255, 255, 255, 0.9) inset;
                overflow: hidden;
            }
            /* 上部のふんわり光沢 */
            .goods__card::before {
                content: "";
                position: absolute;
                top: -46%;
                left: -10%;
                width: 120%;
                height: 80%;
                background: radial-gradient(ellipse at center, rgba(255, 220, 192, 0.55), transparent 62%);
                pointer-events: none;
            }
            .goods__card > * {
                position: relative;
            }
            .goods__emoji {
                display: flex;
                align-items: center;
                justify-content: center;
                width: 86px;
                height: 86px;
                margin: 0px auto 18px auto;
                font-size: 40px;
                line-height: 1;
                border-radius: 999px;
                background: linear-gradient(135deg, #ffe3cd 0%, #f6c8a4 100%);
                box-shadow:
                    0px 12px 26px rgba(210, 115, 76, 0.3),
                    0px 2px 0px rgba(255, 255, 255, 0.85) inset;
            }
            .goods__label {
                display: inline-block;
                font-family: "M PLUS Rounded 1c", sans-serif;
                font-weight: 800;
                letter-spacing: 4px;
                color: #ffffff;
                font-size: 12px;
                padding: 6px 18px 6px 18px;
                border-radius: 999px;
                background: linear-gradient(90deg, #e8946f, #d2734c);
                box-shadow: 0px 6px 14px rgba(210, 115, 76, 0.32);
                margin: 0px 0px 16px 0px;
            }
            .goods__title {
                font-family: "Mochiy Pop One", sans-serif;
                color: #5a3d27;
                font-size: 26px;
                margin: 0px 0px 22px 0px;
            }
            /* COMING SOON ＋ 両サイドの飾り線 */
            .goods__soon-wrap {
                display: flex;
                align-items: center;
                justify-content: center;
                gap: 14px;
                margin: 0px 0px 22px 0px;
            }
            .goods__line {
                width: 40px;
                height: 2px;
                border-radius: 2px;
                background: linear-gradient(90deg, transparent, #e8946f);
            }
            .goods__line--r {
                background: linear-gradient(90deg, #e8946f, transparent);
            }
            .goods__soon {
                font-family: "Mochiy Pop One", sans-serif;
                font-size: 38px;
                letter-spacing: 4px;
                margin: 0px;
                background: linear-gradient(
                    90deg,
                    #e8946f 0%,
                    #f0b27a 25%,
                    #fff3e6 50%,
                    #f0b27a 75%,
                    #d2734c 100%
                );
                background-size: 200% auto;
                -webkit-background-clip: text;
                background-clip: text;
                -webkit-text-fill-color: transparent;
                color: transparent;
                animation: goodsShine 3.6s linear infinite;
            }
            @keyframes goodsShine {
                0% {
                    background-position: 200% center;
                }
                100% {
                    background-position: -200% center;
                }
            }
            .goods__note {
                color: #6b5340;
                font-size: 13px;
                font-weight: 500;
                line-height: 1.8;
            }

            /* ============================================================ PC (min-width: 768px) ============================================================ */
            @media (min-width: 768px) {
                .br-pc {
                    display: inline;
                }
                .site-header {
                    padding: 22px 48px 22px 48px;
                }
                .site-header.is-scrolled {
                    padding: 14px 48px 14px 48px;
                }
                .site-header__logo {
                    font-size: 24px;
                }
                .site-nav__list {
                    gap: 28px;
                }
                .site-nav__link {
                    font-size: 15px;
                }
                .site-nav__line {
                    font-size: 14px;
                    padding: 10px 18px 10px 18px;
                }

                .line-btn {
                    font-size: 19px;
                    padding: 18px 32px 18px 32px;
                }
                .line-btn--big {
                    font-size: 22px;
                    padding: 22px 44px 22px 44px;
                    gap: 14px;
                }
                .line__action .line-btn--big {
                    font-size: 25px;
                    padding: 26px 58px 26px 58px;
                }
                .line-btn__chip {
                    font-size: 14px;
                    padding: 6px 12px 6px 12px;
                }

                .section-hero {
                    min-height: 100vh;
                    padding: 120px 48px 80px 48px;
                }
                .hero__inner {
                    display: flex;
                    align-items: center;
                    justify-content: space-between;
                    gap: 80px;
                    width: 100%;
                    max-width: 1440px;
                }
                .hero__copy {
                    text-align: left;
                    flex: 1;
                }
                .hero__eyebrow {
                    font-size: 14px;
                    padding: 8px 22px 8px 22px;
                    margin: 0px 0px 24px 0px;
                }
                .hero__title {
                    font-size: 96px;
                    margin: 0px 0px 24px 0px;
                }
                .hero__lead {
                    font-size: 18px;
                    max-width: 560px;
                    margin: 0px 0px 32px 0px;
                }
                .hero__cta-note {
                    margin: 0px 0px 0px 0px;
                }
                .hero__visual {
                    width: 500px;
                    height: 500px;
                    flex-shrink: 0;
                }
                .hero__img {
                    width: 500px;
                    height: 500px;
                }
                .hero__badge {
                    font-size: 20px;
                    padding: 12px 22px 12px 22px;
                    top: 8px;
                    right: -8px;
                }
                .hero__badge--2 {
                    font-size: 16px;
                    padding: 10px 18px 10px 18px;
                    top: auto;
                    bottom: 24px;
                    left: -16px;
                    right: auto;
                }
                .hero__badge--line {
                    font-size: 14px;
                    padding: 8px 16px 8px 16px;
                    top: auto;
                    bottom: -8px;
                    right: 12px;
                    left: auto;
                    transform: rotate(-4deg);
                }
                .hero__blob {
                    width: 480px;
                    height: 480px;
                    top: 14%;
                    left: 54%;
                }
                .scroll-cue {
                    bottom: 28px;
                }
                .scroll-cue__paw svg {
                    display: block;
                    width: 30px;
                    height: 30px;
                }

                .ribbon {
                    padding: 26px 0px 26px 0px;
                }
                .ribbon__item {
                    font-size: 32px;
                    gap: 16px;
                    padding: 0px 36px 0px 36px;
                }
                .ribbon__item img {
                    width: 104px;
                    height: 104px;
                }

                .heading {
                    margin: 0px 0px 56px 0px;
                }
                .heading__sub {
                    font-size: 15px;
                    margin: 0px 0px 12px 0px;
                }
                .heading__main {
                    font-size: 40px;
                }
                .heading__line {
                    margin: 18px 0px 0px 0px;
                }

                .section-profile {
                    padding: 100px 48px 100px 48px;
                }
                .profile__card {
                    max-width: 920px;
                    margin: 0px auto 0px auto;
                    padding: 48px 56px 48px 56px;
                    gap: 56px;
                }
                .profile__photo {
                    width: 300px;
                    height: 300px;
                }
                .profile__photo img {
                    width: 300px;
                    height: 300px;
                }
                .profile__body {
                    flex: 1;
                }
                .profile__name {
                    font-size: 40px;
                    margin: 0px 0px 24px 0px;
                }
                .profile__table {
                    font-size: 16px;
                }

                .section-charm {
                    padding: 100px 48px 100px 48px;
                }
                .charm__grid {
                    grid-template-columns: repeat(4, 1fr);
                    gap: 28px;
                    max-width: 1512px;
                    margin: 0px auto 0px auto;
                }
                .charm__card {
                    padding: 32px 24px 32px 24px;
                }
                .charm__img {
                    width: 170px;
                    height: 170px;
                    margin: 0px auto 20px auto;
                }
                .charm__no {
                    font-size: 14px;
                    margin: 0px 0px 4px 0px;
                }
                .charm__title {
                    font-size: 21px;
                    margin: 0px 0px 12px 0px;
                }
                .charm__text {
                    font-size: 14px;
                }

                .section-gallery {
                    padding: 100px 48px 110px 48px;
                }
                .gallery__count {
                    font-size: 14px;
                    padding: 6px 18px 6px 18px;
                    margin: 16px 0px 0px 0px;
                }
                .gallery__grid {
                    grid-template-columns: repeat(5, 1fr);
                    gap: 28px;
                    max-width: 1480px;
                    margin: 0px auto 0px auto;
                }
                .gallery__item {
                    height: 270px;
                }

                .section-line {
                    padding: 140px 48px 110px 48px;
                    min-height: 920px;
                }
                .line__badge {
                    font-size: 16px;
                    padding: 10px 22px 10px 22px;
                    margin: 0px 0px 24px 0px;
                }
                .line__title {
                    font-size: 48px;
                    max-width: 720px;
                    margin: 0px auto 24px auto;
                    line-height: 1.35;
                }
                .line__lead {
                    font-size: 18px;
                    margin: 0px auto 64px auto;
                    max-width: 540px;
                }
                .line__scatter-slot--01 {
                    top: 7%;
                    left: 13%;
                    width: 152px;
                    transform: rotate(-10deg);
                }
                .line__scatter-slot--02 {
                    top: 5%;
                    right: 13%;
                    width: 168px;
                    transform: rotate(12deg);
                }
                .line__scatter-slot--03 {
                    top: 34%;
                    left: 17%;
                    width: 134px;
                    transform: rotate(8deg);
                }
                .line__scatter-slot--04 {
                    top: 36%;
                    right: 17%;
                    width: 150px;
                    transform: rotate(-8deg);
                }
                .line__scatter-slot--05 {
                    top: 57%;
                    left: 28%;
                    width: 122px;
                    transform: rotate(14deg);
                }
                .line__scatter-slot--06 {
                    top: 59%;
                    right: 28%;
                    width: 130px;
                    transform: rotate(-14deg);
                }
                .line__scatter-slot--07 {
                    bottom: 6%;
                    left: 21%;
                    width: 140px;
                    transform: rotate(8deg);
                }
                .line__scatter-slot--08 {
                    bottom: 8%;
                    right: 21%;
                    width: 126px;
                    transform: rotate(-12deg);
                }
                .line__note {
                    margin: 18px 0px 0px 0px;
                }

                .section-daily {
                    padding: 100px 48px 100px 48px;
                }
                .timeline {
                    max-width: 880px;
                    margin: 0px auto 0px auto;
                }
                .timeline__spine {
                    left: 50%;
                    transform: translateX(-50%);
                    height: 100%;
                }
                .tl-item {
                    margin: 0px 0px 48px 0px;
                    min-height: 150px;
                }
                .tl-item:last-child {
                    margin: 0px 0px 0px 0px;
                }
                .tl-item--left {
                    justify-content: flex-start;
                }
                .tl-item--right {
                    justify-content: flex-end;
                }
                .tl-item__dot {
                    left: 50%;
                    transform: translateX(-50%);
                }
                .tl-card {
                    width: 46%;
                    padding: 22px 24px 22px 24px;
                }
                .tl-card__img {
                    width: 100px;
                    height: 100px;
                }
                .tl-card__time {
                    font-size: 18px;
                    margin: 0px 0px 6px 0px;
                }
                .tl-card__title {
                    font-size: 20px;
                    margin: 0px 0px 8px 0px;
                }
                .tl-card__text {
                    font-size: 14px;
                }

                .section-message {
                    padding: 100px 0px 110px 0px;
                }
                .section-message .heading {
                    padding: 0px 48px 0px 48px;
                }
                .section-message .message__quote-wrap {
                    padding: 0px 48px 0px 48px;
                    margin: 56px 0px 0px 0px;
                }
                .kimochi {
                    padding: 20px 0px 28px 0px;
                    margin: 0px 0px 0px 0px;
                }
                .kimochi__track {
                    gap: 40px;
                }
                .kimochi__item {
                    width: 240px;
                }
                .kimochi__item img {
                    width: 240px;
                    height: 260px;
                }
                .message__quote {
                    font-size: 28px;
                    max-width: 760px;
                    margin: 0px auto 0px auto;
                }

                .section-cta {
                    padding: 110px 48px 120px 48px;
                }
                .cta__title {
                    font-size: 40px;
                    margin: 0px 0px 18px 0px;
                }
                .cta__sub {
                    font-size: 14px;
                    margin: 0px 0px 36px 0px;
                }

                .modal__close {
                    top: 28px;
                    right: 28px;
                    width: 48px;
                    height: 48px;
                    font-size: 22px;
                }
                .modal__nav {
                    width: 56px;
                    height: 56px;
                    font-size: 32px;
                }
                .modal__nav svg {
                    width: 26px;
                    height: 26px;
                    display: block;
                }
                .modal__nav--prev {
                    left: 32px;
                }
                .modal__nav--next {
                    right: 32px;
                }
                .modal__stage {
                    width: 100%;
                    max-width: 560px;
                }
                .modal__slide img {
                    width: 380px;
                    height: 420px;
                }
                .modal__caption {
                    font-size: 26px;
                    margin: 18px 0px 0px 0px;
                }
                .modal__counter {
                    bottom: 36px;
                    font-size: 14px;
                }

                .site-footer {
                    padding: 40px 48px 40px 48px;
                }
                .site-footer__paw {
                    font-size: 24px;
                    margin: 0px 0px 12px 0px;
                }
            }

            /* ============================================================ SP (max-width: 767px) ============================================================ */
            @media (max-width: 767px) {
                .site-header {
                    padding: 16px 20px 16px 20px;
                }
                .site-header.is-scrolled {
                    padding: 12px 20px 12px 20px;
                }
                .site-header__logo {
                    font-size: 20px;
                }
                .site-nav__list {
                    gap: 0px;
                }
                .site-nav__list li:not(:last-child) {
                    display: none;
                }
                .site-nav__line {
                    font-size: 12px;
                    padding: 8px 14px 8px 14px;
                }

                .line-btn {
                    font-size: 16px;
                    padding: 14px 26px 14px 26px;
                    gap: 10px;
                }
                .line-btn--big {
                    font-size: 18px;
                    padding: 18px 30px 18px 30px;
                }
                .line__action .line-btn--big {
                    font-size: 16px;
                    padding: 20px 34px 20px 34px;
                }
                .line-btn__chip {
                    font-size: 12px;
                    padding: 5px 9px 5px 9px;
                }

                .section-hero {
                    min-height: 100vh;
                    padding: 100px 24px 80px 24px;
                }
                .hero__inner {
                    display: flex;
                    flex-direction: column-reverse;
                    align-items: center;
                    gap: 24px;
                }
                .hero__copy {
                    text-align: center;
                }
                .hero__eyebrow {
                    font-size: 12px;
                    padding: 7px 18px 7px 18px;
                    margin: 0px 0px 16px 0px;
                }
                .hero__title {
                    font-size: min(50px, 10.5vw);
                    white-space: nowrap;
                    margin: 0px 0px 16px 0px;
                }
                .hero__lead {
                    font-size: 17px;
                    margin: 0px auto 24px auto;
                    max-width: 320px;
                }
                .hero__cta {
                    justify-content: center;
                }
                .hero__visual {
                    width: 260px;
                    height: 260px;
                }
                .hero__img {
                    width: 260px;
                    height: 260px;
                }
                .hero__badge {
                    font-size: 15px;
                    padding: 9px 16px 9px 16px;
                    top: 0px;
                    right: -4px;
                }
                .hero__badge--2 {
                    font-size: 12px;
                    padding: 7px 12px 7px 12px;
                    top: auto;
                    bottom: 4px;
                    left: -8px;
                    right: auto;
                }
                .hero__badge--line {
                    font-size: 11px;
                    padding: 6px 12px 6px 12px;
                    top: auto;
                    bottom: -4px;
                    right: 8px;
                    left: auto;
                    transform: rotate(-4deg);
                }
                .hero__blob {
                    width: 300px;
                    height: 300px;
                    top: 6%;
                    left: 50%;
                    transform: translateX(-50%);
                }
                .scroll-cue {
                    bottom: 18px;
                    gap: 6px;
                }
                .scroll-cue__paw svg {
                    display: block;
                    width: 22px;
                    height: 22px;
                }

                .ribbon {
                    padding: 18px 0px 18px 0px;
                }
                .ribbon__item {
                    font-size: 22px;
                    gap: 12px;
                    padding: 0px 22px 0px 22px;
                }
                .ribbon__item img {
                    width: 76px;
                    height: 76px;
                }

                .heading {
                    margin: 0px 0px 40px 0px;
                }
                .heading__sub {
                    font-size: 13px;
                    margin: 0px 0px 10px 0px;
                }
                .heading__main {
                    font-size: 26px;
                }
                .heading__line {
                    margin: 14px 0px 0px 0px;
                }

                .section-profile {
                    padding: 72px 24px 72px 24px;
                }
                .profile__card {
                    flex-direction: column;
                    padding: 28px 22px 28px 22px;
                    gap: 24px;
                }
                .profile__photo {
                    width: 200px;
                    height: 200px;
                }
                .profile__photo img {
                    width: 200px;
                    height: 200px;
                }
                .profile__body {
                    width: 100%;
                }
                .profile__name {
                    font-size: 28px;
                    margin: 0px 0px 16px 0px;
                    text-align: center;
                }
                .profile__table {
                    font-size: 14px;
                }
                .profile__table th {
                    width: 88px;
                }

                .section-charm {
                    padding: 72px 20px 72px 20px;
                }
                .charm__grid {
                    grid-template-columns: repeat(2, 1fr);
                    gap: 14px;
                }
                .charm__card {
                    padding: 22px 14px 22px 14px;
                }
                .charm__img {
                    width: 110px;
                    height: 110px;
                    margin: 0px auto 12px auto;
                }
                .charm__no {
                    font-size: 12px;
                    margin: 0px 0px 4px 0px;
                }
                .charm__title {
                    font-size: 16px;
                    margin: 0px 0px 8px 0px;
                }
                .charm__text {
                    font-size: 12px;
                    line-height: 1.7;
                }

                .section-gallery {
                    padding: 72px 12px 84px 12px;
                }
                .gallery__count {
                    font-size: 12px;
                    padding: 6px 16px 6px 16px;
                    margin: 14px 0px 0px 0px;
                }
                .gallery__grid {
                    position: relative;
                    grid-template-columns: repeat(2, 1fr);
                }
                .gallery__item {
                    height: 210px;
                }
                /* まだ表示していないスタンプは隠す（タップで少しずつ追加） */
                .gallery__item--more {
                    display: none;
                }
                /* まだ続きがあるときは下端をふんわりフェード */
                .gallery__grid:not(.is-all)::after {
                    content: "";
                    position: absolute;
                    left: 0px;
                    right: 0px;
                    bottom: 0px;
                    height: 80px;
                    background: linear-gradient(180deg, rgba(251, 220, 194, 0), #fbdcc2);
                    pointer-events: none;
                }
                .gallery__more-wrap {
                    display: block;
                }

                .section-line {
                    padding: 168px 24px 84px 24px;
                    min-height: 740px;
                }
                .line__badge {
                    font-size: 13px;
                    padding: 8px 18px 8px 18px;
                    margin: 0px 0px 18px 0px;
                }
                .line__title {
                    font-size: 28px;
                    max-width: 320px;
                    margin: 0px auto 20px auto;
                    line-height: 1.45;
                }
                .line__lead {
                    font-size: 13px;
                    margin: 0px auto 40px auto;
                    max-width: 320px;
                }
                .line__scatter-slot--01 {
                    top: 5%;
                    left: 9%;
                    width: 92px;
                    transform: rotate(-10deg);
                }
                .line__scatter-slot--02 {
                    top: 7%;
                    right: 9%;
                    width: 104px;
                    transform: rotate(12deg);
                }
                .line__scatter-slot--03 {
                    top: 33%;
                    left: 8%;
                    width: 80px;
                    transform: rotate(8deg);
                }
                .line__scatter-slot--04 {
                    top: 35%;
                    right: 8%;
                    width: 88px;
                    transform: rotate(-8deg);
                }
                .line__scatter-slot--05 {
                    top: 57%;
                    left: 18%;
                    width: 72px;
                    transform: rotate(14deg);
                }
                .line__scatter-slot--06 {
                    top: 59%;
                    right: 18%;
                    width: 76px;
                    transform: rotate(-14deg);
                }
                .line__scatter-slot--07 {
                    bottom: 5%;
                    left: 11%;
                    width: 84px;
                    transform: rotate(8deg);
                }
                .line__scatter-slot--08 {
                    bottom: 7%;
                    right: 11%;
                    width: 76px;
                    transform: rotate(-12deg);
                }
                .line__note {
                    margin: 14px 0px 0px 0px;
                    font-size: 11px;
                }

                .section-daily {
                    padding: 72px 20px 72px 20px;
                }
                .timeline {
                    padding: 0px 0px 0px 8px;
                }
                .timeline__spine {
                    left: 16px;
                    height: 100%;
                }
                .tl-item {
                    margin: 0px 0px 24px 0px;
                    padding: 0px 0px 0px 44px;
                }
                .tl-item:last-child {
                    margin: 0px 0px 0px 0px;
                }
                .tl-item__dot {
                    left: 16px;
                    transform: translateX(-50%);
                }
                .tl-card {
                    width: 100%;
                    padding: 14px 14px 14px 14px;
                    gap: 12px;
                }
                .tl-card__img {
                    width: 70px;
                    height: 70px;
                }
                .tl-card__time {
                    font-size: 14px;
                    margin: 0px 0px 4px 0px;
                }
                .tl-card__title {
                    font-size: 15px;
                    margin: 0px 0px 4px 0px;
                }
                .tl-card__text {
                    font-size: 11px;
                    line-height: 1.7;
                }

                .section-message {
                    padding: 72px 0px 84px 0px;
                }
                .section-message .heading {
                    padding: 0px 20px 0px 20px;
                }
                .section-message .message__quote-wrap {
                    padding: 0px 20px 0px 20px;
                    margin: 36px 0px 0px 0px;
                }
                .kimochi {
                    padding: 12px 0px 16px 0px;
                }
                .kimochi__track {
                    gap: 22px;
                }
                .kimochi__item {
                    width: 150px;
                }
                .kimochi__item img {
                    width: 150px;
                    height: 168px;
                }
                .message__quote {
                    font-size: 18px;
                }

                .section-cta {
                    padding: 76px 24px 84px 24px;
                }
                .cta__title {
                    font-size: 24px;
                    margin: 0px 0px 14px 0px;
                }
                .cta__sub {
                    font-size: 12px;
                    margin: 0px 0px 28px 0px;
                }

                .modal__close {
                    top: 16px;
                    right: 16px;
                    width: 40px;
                    height: 40px;
                    font-size: 20px;
                }
                .modal__nav {
                    width: 42px;
                    height: 42px;
                    font-size: 24px;
                }
                .modal__nav svg {
                    width: 20px;
                    height: 20px;
                    display: block;
                }
                .modal__nav--prev {
                    left: 8px;
                }
                .modal__nav--next {
                    right: 8px;
                }
                .modal__stage {
                    width: 100%;
                    max-width: 320px;
                }
                .modal__slide img {
                    width: 240px;
                    height: 270px;
                }
                .modal__caption {
                    font-size: 20px;
                    margin: 14px 0px 0px 0px;
                }
                .modal__counter {
                    bottom: 20px;
                    font-size: 12px;
                }

                .site-footer {
                    padding: 32px 24px 32px 24px;
                }
                .site-footer__paw {
                    font-size: 20px;
                    margin: 0px 0px 10px 0px;
                }
            }

            /* PCでもスタンプ図鑑を「もっと見る」で段階表示（lp3.js: PC初期15個・15個ずつ） */
            @media (min-width: 768px) {
                .gallery__grid {
                    position: relative;
                }
                .gallery__more-wrap {
                    display: block;
                }
                .gallery__item--more {
                    display: none;
                }
                .gallery__grid:not(.is-all)::after {
                    content: "";
                    position: absolute;
                    left: 0px;
                    right: 0px;
                    bottom: 0px;
                    height: 90px;
                    background: linear-gradient(180deg, rgba(251, 220, 194, 0), #fbdcc2);
                    pointer-events: none;
                }
            }

            /* ===== ブログセクション（記事カード） ===== */
            .section-blog {
                position: relative;
                overflow: hidden;
                background: #fff6ec;
                padding: 84px 20px 84px 20px;
            }
            .section-blog--past {
                padding: 84px 20px 100px 20px;
            }
            /* ブログ背景の犬の足あとを少しはっきり見せる（ピーチ背景でも見えるよう濃度UP） */
            .section-blog .paw-deco {
                color: rgba(150, 100, 60, 0.2);
            }
            /* 見出し・グリッド・ボタンは装飾(足あと/スタンプ)より前面 */
            .section-blog .heading,
            .section-blog .blog__grid,
            .section-blog .blog__more {
                position: relative;
                z-index: 2;
            }
            .blog__grid {
                max-width: 1080px;
                margin: 40px auto 0px auto;
                display: grid;
                grid-template-columns: 1fr;
                gap: 24px;
            }
            .blog__empty {
                text-align: center;
                color: #8a7361;
                grid-column: 1 / -1;
            }
            .blog-card {
                display: flex;
                flex-direction: column;
                background: #ffffff;
                border-radius: 22px;
                overflow: hidden;
                text-decoration: none;
                color: inherit;
                box-shadow: 0px 10px 26px rgba(140, 85, 50, 0.14);
                transition: transform 0.3s cubic-bezier(0.2, 0.8, 0.3, 1.4),
                    box-shadow 0.3s ease;
                will-change: transform;
            }
            .blog-card:hover {
                transform: translateY(-6px);
                box-shadow: 0px 18px 36px rgba(140, 85, 50, 0.22);
            }
            .blog-card__thumb {
                display: block;
                aspect-ratio: 2 / 1;
                background: #f6e7d8;
                overflow: hidden;
            }
            .blog-card__thumb img {
                width: 100%;
                height: 100%;
                object-fit: cover;
                transition: transform 0.5s ease;
            }
            .blog-card:hover .blog-card__thumb img {
                transform: scale(1.05);
            }
            .blog-card__body {
                display: flex;
                flex-direction: column;
                gap: 8px;
                padding: 18px 20px 22px 20px;
            }
            .blog-card__date {
                font-family: "M PLUS Rounded 1c", sans-serif;
                font-size: 12px;
                letter-spacing: 0.08em;
                color: #b3825f;
            }
            .blog-card__title {
                font-family: "Zen Maru Gothic", sans-serif;
                font-weight: 700;
                font-size: 17px;
                line-height: 1.5;
                color: #5a3a26;
                display: -webkit-box;
                -webkit-line-clamp: 2;
                -webkit-box-orient: vertical;
                overflow: hidden;
            }
            .blog-card__excerpt {
                font-size: 13px;
                line-height: 1.7;
                color: #8a7361;
                display: -webkit-box;
                -webkit-line-clamp: 2;
                -webkit-box-orient: vertical;
                overflow: hidden;
            }
            .blog__more {
                text-align: center;
                margin: 40px 0px 0px 0px;
            }
            @media (min-width: 768px) {
                .blog__grid {
                    grid-template-columns: repeat(3, 1fr);
                    gap: 30px;
                }
                .blog-card__title {
                    font-size: 18px;
                }
            }

            /* 「もっと見る」ボタン（一覧へ） */
            .blog__more-btn {
                display: inline-flex;
                align-items: center;
                gap: 10px;
                font-family: "M PLUS Rounded 1c", sans-serif;
                font-weight: 700;
                font-size: 15px;
                color: #ffffff;
                text-decoration: none;
                background: linear-gradient(135deg, #e0905a 0%, #c0673c 100%);
                padding: 14px 30px 14px 30px;
                border-radius: 999px;
                box-shadow: 0px 10px 22px rgba(176, 103, 60, 0.32);
                transition: transform 0.25s ease, box-shadow 0.25s ease;
            }
            .blog__more-btn:hover {
                transform: translateY(-3px);
                box-shadow: 0px 16px 30px rgba(176, 103, 60, 0.42);
            }
            .blog__more-ico {
                transition: transform 0.25s ease;
            }
            .blog__more-btn:hover .blog__more-ico {
                transform: translateX(4px);
            }

            /* 背景に散らすスタンプ（本文より背面・余白で覗く／ホバーで動く） */
            .blog-deco {
                position: absolute;
                z-index: 1;
                pointer-events: auto;
                width: 92px;
                opacity: 0.85;
                filter: drop-shadow(0px 8px 12px rgba(140, 85, 50, 0.18));
                display: none;
                cursor: pointer;
            }
            .blog-deco img {
                width: 100%;
                height: auto;
                display: block;
                transition: transform 0.45s cubic-bezier(0.2, 0.8, 0.3, 1.4);
            }
            .blog-deco:hover {
                opacity: 1;
            }
            .blog-deco:hover img {
                transform: scale(1.25) rotate(-10deg);
            }
            .blog-deco--a {
                top: 60px;
                left: 1.5%;
                transform: rotate(-12deg);
            }
            .blog-deco--b {
                top: 44%;
                right: 1.5%;
                width: 82px;
                transform: rotate(10deg);
            }
            .blog-deco--c {
                top: 40px;
                right: 2%;
                transform: rotate(12deg);
            }
            .blog-deco--d {
                top: 40%;
                left: 1.5%;
                width: 82px;
                transform: rotate(-10deg);
            }
            .blog-deco--e {
                bottom: 96px;
                right: 3%;
                width: 76px;
                transform: rotate(8deg);
            }
            /* 横に余白ができる広い画面でのみ表示（カード一覧の邪魔をしない） */
            @media (min-width: 1024px) {
                .blog-deco {
                    display: block;
                }
            }
