:root {
            --mini-tabbar-offset: 0px;
            --mini-bottom-safe: calc(var(--mini-tabbar-offset) + env(safe-area-inset-bottom));
        }

        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
            font-family: var(--h5-font-family-base);
        }
        html {
            min-height: 100%;
            background: #ea6047;
        }
        body {
            min-height: 100vh;
            min-height: 100svh;
            background:
                radial-gradient(circle at 18% 0%, rgba(255, 232, 180, 0.42), transparent 24%),
                url('../../../homeImg/background.png') no-repeat center top / cover;
            color: #fff;
            overflow-x: hidden;
            -webkit-overflow-scrolling: touch;
        }
        a,
        button {
            -webkit-tap-highlight-color: transparent;
        }
        .page {
            width: min(100%, 31.25rem);
            min-height: 100vh;
            min-height: 100svh;
            margin: 0 auto;
            padding: env(safe-area-inset-top) 0 calc(1rem + var(--mini-bottom-safe));
        }
        .banner {
            width: 100vw;
            max-width: none;
            margin-left: calc(50% - 50vw);
            margin-right: calc(50% - 50vw);
            position: relative;
            overflow: hidden;
            touch-action: pan-y;
        }
        .banner-slider {
            position: relative;
            width: 100%;
            display: flex;
            align-items: flex-start;
            transition: transform 0.8s ease;
        }
        .banner-slide {
            min-width: 100%;
            position: relative;
        }
        .banner-slide.is-clickable {
            cursor: pointer;
        }
        .banner-slide-link {
            display: block;
            width: 100%;
        }
        .slide-img {
            width: 100%;
            height: auto;
            display: block;
        }
        .banner-dots {
            position: absolute;
            left: 50%;
            bottom: 0.65rem;
            transform: translateX(-50%);
            display: flex;
            align-items: center;
            gap: 0.42rem;
            z-index: 2;
        }
        .banner-dot {
            width: 0.42rem;
            height: 0.42rem;
            border-radius: 999px;
            background: rgba(255, 255, 255, 0.42);
            transition: width 0.25s ease, background-color 0.25s ease;
        }
        .banner-dot.active {
            width: 1rem;
            background: rgba(255, 255, 255, 0.95);
        }
        
        .content {
            padding: 0.25rem clamp(0.7rem, 3.4vw, 0.98rem) 0;
            background: transparent;
            width: 100%;
            min-height: auto;
        }
        .diagnosis-section {
            display: grid;
            grid-template-columns: 1fr 1.5fr;
            gap: 16px;
            margin-bottom: 24px;
        }
        .diagnosis-card {
            background-color: rgba(249, 224, 144, 0.9);
            border-radius: 12px;
            padding: 16px;
            display: flex;
            flex-direction: column;
            justify-content: flex-end;
            align-items: center;
            color: #c82323;
        }
        .diagnosis-card.large {
            grid-row: span 2;
        }
        .diagnosis-btn {
            background-color: #f2a922;
            border: none;
            color: #fff;
            padding: 8px 24px;
            border-radius: 8px;
            font-size: 16px;
            font-weight: bold;
            margin-top: 12px;
            cursor: pointer;
            transition: background-color 0.3s;
        }
        .diagnosis-btn:hover {
            background-color: #e09810;
        }
        .diagnosis-card.small {
            min-height: 80px;
        }
        .container {
            width: 100%;
            max-width: 42rem;
            margin: 0 auto 1.5rem;
            display: grid;
            grid-template-columns: minmax(0, 1.2556fr) minmax(0, 1fr);
            column-gap: clamp(0.65rem, 3.8vw, 0.95rem);
            align-items: start;
        }
        .container > * {
            min-width: 0;
        }
        .feature-link {
            display: block;
            width: 100%;
            text-decoration: none;
            line-height: 0;
            border-radius: 0.72rem;
            overflow: hidden;
            box-shadow: 0 0.45rem 1.1rem rgba(126, 48, 8, 0.14);
        }
        .feature-link img {
            display: block;
            width: 100%;
            height: 100%;
            margin: 0;
            object-fit: cover;
        }
        .feature-link-main {
            aspect-ratio: 560 / 492;
            position: relative;
            overflow: visible;
            isolation: isolate;
            z-index: 2;
            --finger-target-left: 51.7%;
            --finger-target-top: 78.3%;
            --finger-size: 60%;
            --finger-shift-x: -27%;
            --finger-shift-y: -24%;
        }
        .feature-link-main > img:not(.feature-finger-gif) {
            position: relative;
            z-index: 0;
            border-radius: 0.72rem;
        }
        .feature-link-main .feature-finger-gif {
            position: absolute;
            left: var(--finger-target-left);
            top: var(--finger-target-top);
            width: var(--finger-size);
            height: auto;
            z-index: 6;
            pointer-events: none;
            user-select: none;
            object-fit: contain;
            transform: translate(var(--finger-shift-x), var(--finger-shift-y));
            transform-origin: top left;
            filter: drop-shadow(0 8px 18px rgba(255, 112, 86, 0.24));
        }
        .feature-column {
            display: grid;
            gap: clamp(0.65rem, 3.8vw, 0.95rem);
            align-content: start;
            min-width: 0;
        }
        .feature-link-butler {
            aspect-ratio: 446 / 188;
        }
        .feature-link-report {
            aspect-ratio: 446 / 264;
        }

        @media (min-width: 768px) {
            .page {
                width: min(100%, 48rem);
            }
            .content {
                padding-left: 1.2rem;
                padding-right: 1.2rem;
            }
            .container {
                max-width: 42rem;
                margin-bottom: 1.6rem;
            }
            .feature-link-main {
                --finger-target-left: 51.1%;
                --finger-target-top: 78%;
                --finger-size: 66%;
            }
            .sandbox-section {
                max-width: 42rem;
                margin-left: auto;
                margin-right: auto;
            }
        }

        @media (min-width: 1024px) {
            .page {
                width: min(100%, 56rem);
            }
            .content {
                padding-left: 1.4rem;
                padding-right: 1.4rem;
            }
            .container,
            .sandbox-section {
                max-width: 46rem;
            }
            .feature-link-main {
                --finger-target-left: 50.8%;
                --finger-target-top: 77.7%;
                --finger-size: 64%;
            }
        }

        @media (max-width: 390px) {
            .banner-dots {
                bottom: 0.5rem;
            }
            .content {
                padding-left: 0.65rem;
                padding-right: 0.65rem;
            }
            .container {
                column-gap: 0.58rem;
            }
            .feature-column {
                gap: 0.58rem;
            }
            .feature-link-main {
                --finger-target-left: 52.2%;
                --finger-target-top: 78.6%;
                --finger-size: 70%;
            }
        }

        @media (max-width: 360px) {
            .content {
                padding-left: 0.5rem;
                padding-right: 0.5rem;
            }
            .container {
                column-gap: 0.5rem;
            }
            .feature-column {
                gap: 0.5rem;
            }
            .feature-link-main {
                --finger-target-left: 52.6%;
                --finger-target-top: 78.9%;
                --finger-size: 72%;
            }
        }
