/* landprice analytics */

:root {
            --pika-pink: #ffdae9;
            --pika-text: #6d4c41;
            --accent: #ff77aa;
            --white: #ffffff;
            --border: #ffb3d9;
        }

        * { margin: 0; padding: 0; box-sizing: border-box; }

        html {
            -webkit-text-size-adjust: 100%;
        }

        body {
            font-family: 'M PLUS Rounded 1c', sans-serif;
            background: linear-gradient(135deg, #fff5f8 0%, #f0f4ff 100%);
            color: var(--pika-text);
            min-height: 100vh;
            font-size: 16px;
        }

        .header {
            background: rgba(255,255,255,0.6);
            backdrop-filter: blur(10px);
            padding: 0 40px;
            height: 70px;
            display: flex;
            align-items: center;
            justify-content: space-between;
            position: sticky;
            top: 0;
            z-index: 100;
            border-bottom: 2px solid var(--border);
        }

        .logo-mark {
            font-family: 'Noto Serif JP', serif;
            font-size: 20px;
            font-weight: 700;
            color: var(--accent);
        }

        .header-meta {
            font-family: 'DM Mono', monospace;
            font-size: 11px;
            color: var(--accent);
            background: white;
            padding: 4px 12px;
            border-radius: 20px;
            border: 1px solid var(--border);
        }

        .hero {
            padding: 60px 40px;
            text-align: center;
        }

        .hero-eyebrow {
            font-family: 'DM Mono', monospace;
            font-size: 12px;
            color: var(--accent);
            letter-spacing: 0.15em;
            margin-bottom: 16px;
            font-weight: 700;
        }

        .hero-title {
            font-size: 32px;
            font-weight: 700;
            color: var(--pika-text);
            line-height: 1.4;
            margin-bottom: 24px;
        }

        .hero-title em {
            color: var(--accent);
            font-style: normal;
            text-decoration: underline wavy var(--border);
        }

        .hero-desc {
            font-size: 14px;
            color: var(--pika-text);
            line-height: 1.8;
            max-width: 700px;
            margin: 0 auto;
            background: rgba(255,255,255,0.4);
            padding: 20px;
            border-radius: 30px;
        }

        .content {
            padding: 0 40px 40px;
            max-width: 1200px;
            margin: 0 auto;
            display: flex;
            flex-direction: column;
            gap: 40px;
        }

        .card {
            background: rgba(255,255,255,0.8);
            border: 4px solid white;
            border-radius: 40px;
            padding: 30px;
            box-shadow: 0 10px 20px rgba(255,182,193,0.2);
        }

        .card-wide { width: 100%; }

        .card-title {
            font-weight: 700;
            font-size: 18px;
            color: var(--accent);
            margin-bottom: 20px;
            display: block;
        }

        .double-desc {
            font-size: 13px;
            line-height: 1.9;
            color: var(--pika-text);
            background: rgba(255,200,220,0.1);
            border-radius: 20px;
            padding: 16px 20px;
            margin-bottom: 20px;
        }

        .land-scatter-wrap {
            width: 100%;
            max-width: 100%;
            min-width: 0;
            overflow-x: clip;
        }

        .land-scatter-svg {
            display: block;
            width: 100%;
            max-width: 100%;
            height: auto;
            font-family: 'M PLUS Rounded 1c', sans-serif;
        }

        .land-scatter-axis {
            font-size: 11px;
            fill: var(--pika-text);
            opacity: 0.85;
        }

        .land-scatter-tick {
            font-size: 10px;
            fill: var(--pika-text);
            opacity: 0.65;
            font-family: 'DM Mono', monospace;
        }

        .land-scatter-point {
            fill: var(--accent);
            stroke: #fff;
            stroke-width: 2;
        }

        .land-scatter-point-cad {
            fill: #9b59b6;
            stroke: #fff;
            stroke-width: 2;
        }

        .cad-timeline-svg {
            display: block;
            width: 100%;
            max-width: 100%;
            height: auto;
            font-family: 'M PLUS Rounded 1c', sans-serif;
        }

        .cad-timeline-line {
            fill: none;
            stroke: #9b59b6;
            stroke-width: 2.75;
            stroke-linejoin: round;
            stroke-linecap: round;
        }

        .cad-timeline-anno-line {
            stroke: #9b59b6;
            stroke-opacity: 0.42;
            stroke-dasharray: 5 5;
            stroke-width: 1.25;
        }

        .cad-timeline-anno-text {
            font-size: 10px;
            font-weight: 700;
            fill: #9b59b6;
        }

        .cad-timeline-dot {
            fill: #9b59b6;
            stroke: #fff;
            stroke-width: 1.5;
        }

        .gaizabe-bar-svg {
            display: block;
            width: 100%;
            max-width: 100%;
            height: auto;
            font-family: 'M PLUS Rounded 1c', sans-serif;
        }

        .gaizabe-bar-rect {
            fill: #ff77aa;
        }

        .gaizabe-bar-anno-line {
            stroke: #ff77aa;
            stroke-opacity: 0.45;
            stroke-dasharray: 5 5;
            stroke-width: 1.25;
        }

        .gaizabe-bar-anno-text {
            font-size: 9px;
            font-weight: 700;
            fill: #ff77aa;
        }

        .land-scatter-label {
            font-size: 10px;
            font-weight: 700;
            fill: var(--pika-text);
            paint-order: stroke fill;
            stroke: rgba(255, 255, 255, 0.92);
            stroke-width: 3px;
            stroke-linejoin: round;
        }

        .data-note {
            margin-top: 16px;
            padding-top: 14px;
            border-top: 1px dashed var(--border);
            font-size: 12px;
            color: var(--pika-text);
            opacity: 0.7;
            line-height: 1.8;
        }

        .footer {
            background: white;
            padding: 30px;
            text-align: center;
            font-size: 12px;
            border-top: 2px solid var(--border);
        }

        .back-row {
            text-align: center;
            margin-bottom: 8px;
        }

        .back-row a {
            font-size: 13px;
            font-weight: 700;
            color: var(--accent);
            text-decoration: none;
        }

        .back-row a:hover { text-decoration: underline; }

        @keyframes spin { to { transform: rotate(360deg); } }

        @media (max-width: 768px) {
            .header {
                height: auto;
                min-height: 52px;
                padding: 8px 12px;
                flex-wrap: wrap;
                gap: 8px;
            }

            .logo-mark { font-size: clamp(16px, 4.2vw, 19px); }

            .header nav a {
                font-size: 13px !important;
                padding: 6px 4px;
                min-height: 40px;
                display: inline-flex;
                align-items: center;
            }

            .header-meta { font-size: 10px; padding: 3px 8px; }

            .hero { padding: 32px 14px 24px; }

            .hero-eyebrow { font-size: 11px; }

            .hero-title {
                font-size: clamp(1.2rem, 5.2vw, 1.65rem);
            }

            .hero-desc { font-size: 15px; padding: 16px 14px; }

            .content {
                padding: 0 14px 28px;
                gap: 28px;
            }

            .card {
                padding: 18px 14px;
                border-radius: 28px;
                min-width: 0;
            }

            .card-title { font-size: 16px; }

            .double-desc {
                font-size: 15px;
                padding: 14px 14px;
            }

            .back-row a { font-size: 14px; }

            .footer { padding: 22px 12px; font-size: 13px; }

            .land-scatter-svg .land-scatter-tick,
            .cad-timeline-svg .land-scatter-tick,
            .gaizabe-bar-svg .land-scatter-tick {
                font-size: 11px;
            }

            .land-scatter-svg .land-scatter-axis,
            .cad-timeline-svg .land-scatter-axis,
            .gaizabe-bar-svg .land-scatter-axis {
                font-size: 12px;
            }

            .land-scatter-label { font-size: 11px; }

            .cad-timeline-anno-text,
            .gaizabe-bar-anno-text {
                font-size: 10px;
            }
        }
