:root {
            --ink: #101820;
            --paper: #f5f3ed;
            --muted: #aab5b7;
            --lime: #c4f26b;
            --line: rgba(255, 255, 255, .15);
            --white: #f8f8f3
        }

        * {
            box-sizing: border-box
        }

        html {
            scroll-behavior: smooth
        }

        body {
            margin: 0;
            background: var(--ink);
            color: var(--white);
            font-family: Inter, "Noto Sans JP", "Yu Gothic", Meiryo, sans-serif;
            line-height: 1.75
        }

        a {
            color: inherit;
            text-decoration: none
        }

        .wrap {
            width: min(1160px, calc(100% - 48px));
            margin: auto
        }

        .topbar {
            height: 78px;
            display: flex;
            align-items: center;
            justify-content: space-between;
            border-bottom: 1px solid var(--line)
        }

        .brand {
            font-size: 14px;
            font-weight: 750;
            letter-spacing: .08em
        }

        .brand span {
            color: var(--lime)
        }

        nav {
            display: flex;
            gap: 28px;
            font-size: 12px;
            color: #d4dcdb
        }

        nav a:hover {
            color: var(--lime)
        }

        .hero {
            min-height: 640px;
            display: grid;
            grid-template-columns: 1.15fr .85fr;
            align-items: center;
            gap: 50px;
            padding: 72px 0 92px
        }

        .eyebrow {
            color: var(--lime);
            font-size: 11px;
            font-weight: 700;
            letter-spacing: .22em;
            text-transform: uppercase
        }

        .hero h1 {
            font-size: clamp(42px, 6.4vw, 82px);
            line-height: 1.13;
            letter-spacing: -.055em;
            margin: 20px 0 24px
        }

        .hero h1 em {
            font-style: normal;
            color: var(--lime)
        }

        .intro {
            max-width: 560px;
            color: #c1ccca;
            font-size: 16px
        }

        .hero-note {
            display: flex;
            gap: 14px;
            align-items: flex-start;
            color: var(--muted);
            font-size: 12px;
            margin-top: 36px;
            max-width: 500px
        }

        .hero-note b {
            color: var(--lime);
            font-size: 18px;
            line-height: 1
        }

        .mark {
            display: grid;
            place-items: center;
            min-height: 360px;
            position: relative;
            background: radial-gradient(ellipse at center, rgba(196, 242, 107, .12), transparent 58%);
            border: 1px solid var(--line);
            overflow: hidden
        }

        .mark:before,
        .mark:after {
            content: "";
            position: absolute;
            border: 1px solid rgba(196, 242, 107, .22);
            border-radius: 50%;
            width: 290px;
            height: 290px
        }

        .mark:after {
            width: 220px;
            height: 220px
        }

        .placeholder {
            width: 132px;
            height: 132px;
            z-index: 1;
            display: grid;
            place-items: center
        }

        .placeholder svg {
            width: 100%;
            height: 100%
        }

        .mark-caption {
            position: absolute;
            bottom: 18px;
            color: #9ba9a6;
            font-size: 10px;
            letter-spacing: .16em
        }

        .section {
            padding: 96px 0;
            border-top: 1px solid var(--line)
        }

        .section-head {
            display: flex;
            justify-content: space-between;
            align-items: end;
            gap: 30px;
            margin-bottom: 42px
        }

        .section-head h2 {
            font-size: clamp(30px, 4vw, 48px);
            line-height: 1.2;
            margin: 12px 0 0;
            letter-spacing: -.04em
        }

        .section-head p {
            color: var(--muted);
            max-width: 430px;
            margin: 0;
            font-size: 14px
        }

        .cards {
            display: grid;
            grid-template-columns: repeat(2, 1fr);
            gap: 16px
        }

        .card {
            padding: 30px;
            border: 1px solid var(--line);
            background: rgba(255, 255, 255, .025);
            min-height: 245px
        }

        .card .num {
            color: var(--lime);
            font-size: 12px;
            letter-spacing: .12em
        }

        .card h3 {
            font-size: 23px;
            margin: 22px 0 10px
        }

        .card p {
            color: #b4c0bd;
            font-size: 14px;
            margin: 0
        }

        .tag {
            display: inline-block;
            border: 1px solid rgba(196, 242, 107, .5);
            color: var(--lime);
            font-size: 10px;
            padding: 3px 9px;
            margin-top: 22px;
            letter-spacing: .1em
        }

        .steps {
            display: grid;
            grid-template-columns: repeat(5, 1fr);
            gap: 0
        }

        .step {
            padding: 22px 18px 20px 0;
            border-top: 1px solid var(--lime);
            position: relative
        }

        .step:not(:last-child):after {
            content: "→";
            position: absolute;
            right: 16px;
            top: -15px;
            background: var(--ink);
            color: var(--lime);
            padding: 0 6px
        }

        .step small {
            color: var(--lime);
            font-size: 11px;
            letter-spacing: .1em
        }

        .step h3 {
            font-size: 16px;
            margin: 14px 0 8px
        }

        .step p {
            font-size: 12px;
            color: var(--muted);
            margin: 0;
            padding-right: 12px
        }

        .roadmap {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 14px
        }

        .phase {
            border: 1px solid var(--line);
            padding: 26px;
            min-height: 195px
        }

        .phase.active {
            border-color: var(--lime);
            background: rgba(196, 242, 107, .055)
        }

        .phase small {
            color: var(--lime);
            letter-spacing: .1em
        }

        .phase h3 {
            font-size: 19px;
            margin: 14px 0
        }

        .phase p {
            font-size: 13px;
            color: #b4c0bd;
            margin: 0
        }

        .vision {
            background: var(--paper);
            color: var(--ink);
            padding: 88px 0
        }

        .vision .eyebrow {
            color: #597a20
        }

        .vision-grid {
            display: grid;
            grid-template-columns: .85fr 1.15fr;
            gap: 70px;
            align-items: start
        }

        .vision h2 {
            font-size: clamp(34px, 4.2vw, 54px);
            line-height: 1.2;
            letter-spacing: -.045em;
            margin: 12px 0
        }

        .vision p {
            color: #475152
        }

        .vision ul {
            list-style: none;
            padding: 0;
            margin: 0;
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 12px
        }

        .vision li {
            padding: 17px;
            border-top: 1px solid #c6cbc4;
            font-size: 14px
        }

        .vision li:before {
            content: "↗";
            color: #789b35;
            margin-right: 10px
        }

        .foot {
            padding: 32px 0;
            color: var(--muted);
            font-size: 11px;
            display: flex;
            justify-content: space-between;
            gap: 20px
        }

        .foot strong {
            color: var(--white);
            letter-spacing: .08em
        }

        .notice {
            font-size: 11px;
            color: #8e9b98;
            margin-top: 18px
        }

        @media(max-width:760px) {
            .wrap {
                width: min(100% - 36px, 560px)
            }

            nav {
                gap: 14px;
                font-size: 10px
            }

            .topbar {
                height: 68px
            }

            .hero {
                grid-template-columns: 1fr;
                padding: 62px 0 70px;
                gap: 36px
            }

            .hero h1 {
                font-size: clamp(42px, 12vw, 68px)
            }

            .mark {
                min-height: 270px
            }

            .section {
                padding: 70px 0
            }

            .section-head {
                display: block
            }

            .section-head p {
                margin-top: 18px
            }

            .cards,
            .roadmap {
                grid-template-columns: 1fr
            }

            .steps {
                grid-template-columns: 1fr
            }

            .step {
                padding: 15px 0;
                border-top: 1px solid var(--line);
                display: grid;
                grid-template-columns: 44px 1fr;
                column-gap: 8px
            }

            .step h3 {
                margin: 0
            }

            .step p {
                grid-column: 2
            }

            .step:not(:last-child):after {
                display: none
            }

            .vision {
                padding: 68px 0
            }

            .vision-grid {
                grid-template-columns: 1fr;
                gap: 24px
            }

            .vision ul {
                grid-template-columns: 1fr
            }

            .foot {
                display: block
            }

            .foot span {
                display: block;
                margin-top: 8px
            }
        }

        @media(prefers-reduced-motion:reduce) {
            html {
                scroll-behavior: auto
            }
        }


/* Bootstrap navigation refinements */
.topbar.navbar {
    padding-top: 0;
    padding-bottom: 0;
}
.topbar .navbar-brand {
    margin-right: 0;
}
.topbar .navbar-nav {
    gap: 18px;
}
.topbar .nav-link {
    color: #d4dcdb;
    font-size: 12px;
    padding-left: 0;
    padding-right: 0;
}
.topbar .nav-link:hover,
.topbar .nav-link:focus {
    color: var(--lime);
}
.navbar-toggler {
    border-color: rgba(255,255,255,.35);
}
.navbar-toggler-icon {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(248,248,243,0.9)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}
@media (max-width: 767.98px) {
    .topbar.navbar {
        min-height: 68px;
        height: auto;
        flex-wrap: wrap;
    }
    .topbar .navbar-collapse {
        flex-basis: 100%;
        padding: 6px 0 14px;
    }
    .topbar .navbar-nav {
        gap: 0;
    }
    .topbar .nav-link {
        padding: 8px 0;
        font-size: 13px;
    }
}
@media (max-width: 380px) {
    .brand {
        font-size: 12px;
    }
}
