        :root {
            --bg: #F1F3F7;
            --ink: #0E1424;
            --mute: #566074;
            --card: #fff;
            --line: #D9DEE8;
            --acc: #1F5BFF;
            --accink: #fff;
            --hot: #FF8A1F;
            --r: 14px;
            --head: 'Sora', 'Arial Narrow', Arial, sans-serif;
            --body: 'Manrope', system-ui, Arial, sans-serif;
            box-sizing: border-box;
            padding-top: env(safe-area-inset-top, 0px);
            padding-bottom: env(safe-area-inset-bottom, 0px)
        }

        @media(prefers-color-scheme:dark) {
            :root:not([data-theme="light"]) {
                --bg: #090E1C;
                --ink: #E8EEFF;
                --mute: #9AA7C2;
                --card: #111A30;
                --line: #223055;
                --acc: #5B8CFF;
                --accink: #08122E
            }
        }

        :root[data-theme="dark"] {
            --bg: #090E1C;
            --ink: #E8EEFF;
            --mute: #9AA7C2;
            --card: #111A30;
            --line: #223055;
            --acc: #5B8CFF;
            --accink: #08122E
        }

        html {
            scroll-padding-top: env(safe-area-inset-top, 0px)
        }

        * {
            box-sizing: border-box
        }

        body {
            margin: 0;
            background: var(--bg);
            color: var(--ink);
            font: 400 16px/1.6 var(--body)
        }

        a {
            color: inherit
        }

        h1,
        h2,
        h3 {
            font-family: var(--head);
            line-height: 1.1;
            margin: 0 0 .5em;
            letter-spacing: -.025em
        }

        h1 {
            font-size: clamp(2.3rem, 6vw, 4.2rem);
            font-weight: 800
        }

        h2 {
            font-size: clamp(1.6rem, 3.3vw, 2.2rem);
            font-weight: 700
        }

        h3 {
            font-size: 1.05rem;
            font-weight: 700;
            letter-spacing: -.01em
        }

        p {
            margin: 0 0 1em
        }

        .wrap {
            max-width: 1160px;
            margin: 0 auto;
            padding: 0 20px
        }

        :focus-visible {
            outline: 3px solid var(--acc);
            outline-offset: 2px
        }

        header {
            position: sticky;
            top: env(safe-area-inset-top, 0px);
            z-index: 5;
            background: var(--bg);
            border-bottom: 1px solid var(--line)
        }

        header .wrap {
            display: flex;
            align-items: center;
            gap: 20px;
            height: 64px
        }

        .logo {
            font: 800 1.45rem var(--head);
            text-decoration: none;
            letter-spacing: -.04em;
            display: flex;
            align-items: center;
            gap: 8px
        }

        .logo i {
            width: 14px;
            height: 14px;
            border-radius: 4px;
            background: var(--acc);
            display: inline-block;
            box-shadow: inset 0 -5px 0 #0003
        }

        nav {
            display: flex;
            gap: 18px;
            margin-left: auto;
            align-items: center
        }

        nav a {
            text-decoration: none;
            font-weight: 600;
            color: var(--mute)
        }

        nav a:hover,
        nav a.on {
            color: var(--ink)
        }

        .cartl {
            background: var(--acc);
            color: var(--accink) !important;
            padding: 7px 15px;
            border-radius: 10px;
            font-weight: 700
        }

        @media(max-width:640px) {
            nav .hide {
                display: none
            }

            nav {
                gap: 12px
            }
        }

        .btn {
            display: inline-block;
            border: 0;
            cursor: pointer;
            font: 700 .98rem var(--body);
            padding: 12px 22px;
            border-radius: 10px;
            background: var(--acc);
            color: var(--accink);
            text-decoration: none
        }

        .btn.alt {
            background: transparent;
            color: var(--ink);
            box-shadow: inset 0 0 0 2px var(--ink)
        }

        .btn.sm {
            padding: 8px 14px;
            font-size: .88rem
        }

        .hero {
            display: grid;
            grid-template-columns: 1.05fr .95fr;
            gap: 40px;
            align-items: center;
            padding: 52px 0 36px
        }

        .hero p.lead {
            font-size: 1.15rem;
            color: var(--mute);
            max-width: 46ch
        }

        .hero .acts {
            display: flex;
            gap: 12px;
            flex-wrap: wrap;
            margin: 24px 0
        }

        .hero .perks {
            display: flex;
            gap: 22px;
            flex-wrap: wrap;
            font-weight: 600;
            font-size: .92rem;
            color: var(--mute)
        }

        .hero .perks span:before {
            content: "✓ ";
            color: var(--acc)
        }

        .stage {
            background: var(--card);
            border: 1px solid var(--line);
            border-radius: 24px;
            padding: 28px
        }

        .stage svg {
            width: 100%;
            display: block
        }

        @media(max-width:800px) {
            .hero {
                grid-template-columns: 1fr;
                padding: 30px 0
            }
        }

        .cur {
            animation: blink 1.1s steps(1) infinite
        }

        @keyframes blink {
            50% {
                opacity: 0
            }
        }

        @media(prefers-reduced-motion:reduce) {
            .cur {
                animation: none
            }
        }

        section {
            padding: 44px 0
        }

        .sh {
            display: flex;
            justify-content: space-between;
            align-items: end;
            gap: 12px;
            margin-bottom: 20px
        }

        .sh h2 {
            margin: 0
        }

        .sh a {
            font-weight: 700;
            color: var(--acc)
        }

        .grid {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(235px, 1fr));
            gap: 18px
        }

        .card {
            background: var(--card);
            border: 1px solid var(--line);
            border-radius: var(--r);
            padding: 16px;
            display: flex;
            flex-direction: column;
            gap: 5px;
            position: relative
        }

        .card a.pic {
            display: block;
            background: var(--bg);
            border-radius: 10px;
            padding: 12px
        }

        .card svg,
        .card img {
            width: 100%;
            display: block
        }

        .card img,
        .pd .big img,
        .line img {
            aspect-ratio: 4/3;
            object-fit: cover;
            border-radius: 8px
        }

        .card .cat {
            font-size: .85rem;
            color: var(--mute)
        }

        .card .row {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-top: auto;
            padding-top: 8px;
            gap: 8px
        }

        .price {
            font: 700 1.12rem var(--head)
        }

        .old {
            color: var(--mute);
            text-decoration: line-through;
            font-size: .88rem;
            margin-left: 6px;
            font-weight: 500
        }

        .badge {
            position: absolute;
            top: 24px;
            left: 24px;
            background: var(--hot);
            color: #1b1000;
            font: 700 .78rem var(--body);
            padding: 2px 8px;
            border-radius: 6px
        }

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

        .cats a {
            background: var(--card);
            border: 1px solid var(--line);
            border-radius: var(--r);
            padding: 14px;
            text-decoration: none;
            font: 700 1.05rem var(--head);
            display: flex;
            flex-direction: column;
            min-width: 0
        }

        .cats a svg,
        .cats a img {
            width: 100%;
            aspect-ratio: 4 / 3;
            background: var(--bg);
            border-radius: 10px;
            margin-bottom: 10px;
            display: block
        }

        .cats a img {
            object-fit: cover
        }

        .cats small {
            display: block;
            font: 500 .88rem var(--body);
            color: var(--mute)
        }

        @media(max-width:760px) {
            .cats {
                grid-template-columns: 1fr 1fr
            }
        }

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

        .fit a {
            border-radius: var(--r);
            padding: 22px;
            text-decoration: none;
            background: var(--ink);
            color: var(--bg);
            min-height: 150px;
            display: flex;
            flex-direction: column;
            justify-content: end
        }

        .fit a:nth-child(2) {
            background: var(--acc);
            color: var(--accink)
        }

        .fit a b {
            font: 700 1.25rem var(--head)
        }

        .fit a span {
            opacity: .8;
            font-size: .92rem
        }

        @media(max-width:860px) {
            .fit {
                grid-template-columns: 1fr 1fr
            }
        }

        .banner {
            background: var(--ink);
            color: var(--bg);
            border-radius: 20px;
            padding: 36px;
            display: grid;
            grid-template-columns: 1.4fr 1fr;
            gap: 24px;
            align-items: center
        }

        .banner h2 {
            color: var(--bg)
        }

        .banner p {
            opacity: .8;
            margin: 0
        }

        .banner .btn {
            background: var(--hot);
            color: #1b1000
        }

        @media(max-width:760px) {
            .banner {
                grid-template-columns: 1fr;
                padding: 26px
            }
        }

        .steps {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 24px;
            counter-reset: s
        }

        .steps div {
            counter-increment: s;
            border-left: 3px solid var(--acc);
            padding-left: 16px
        }

        .steps div:before {
            content: counter(s);
            font: 800 2rem var(--head);
            color: var(--acc)
        }

        .promise {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 22px
        }

        .promise div {
            background: var(--card);
            border: 1px solid var(--line);
            border-radius: var(--r);
            padding: 20px
        }

        @media(max-width:860px) {
            .promise {
                grid-template-columns: 1fr 1fr
            }

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

        @media(max-width:520px) {
            .promise {
                grid-template-columns: 1fr
            }
        }

        details {
            border-bottom: 1px solid var(--line);
            padding: 14px 0
        }

        summary {
            cursor: pointer;
            font-weight: 700
        }

        details p {
            margin: 8px 0 0;
            color: var(--mute)
        }

        .news {
            display: flex;
            gap: 10px;
            flex-wrap: wrap
        }

        .news input {
            max-width: 320px
        }

        .bar {
            display: flex;
            gap: 10px;
            flex-wrap: wrap;
            margin-bottom: 24px;
            align-items: center
        }

        .chip {
            border: 1px solid var(--line);
            background: var(--card);
            color: var(--ink);
            padding: 7px 15px;
            border-radius: 8px;
            cursor: pointer;
            font: 600 .92rem var(--body)
        }

        .chip.on {
            background: var(--acc);
            color: var(--accink);
            border-color: var(--acc)
        }

        input,
        select,
        textarea {
            font: inherit;
            color: var(--ink);
            background: var(--card);
            border: 1px solid var(--line);
            border-radius: 8px;
            padding: 10px 12px;
            width: 100%
        }

        .bar input {
            max-width: 200px
        }

        .bar select {
            width: auto
        }

        .pd {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 40px;
            padding: 40px 0
        }

        .pd .big {
            background: var(--card);
            border: 1px solid var(--line);
            border-radius: 20px;
            padding: 32px;
            align-self: start
        }

        .pd .big svg,
        .pd .big img {
            width: 100%;
            display: block
        }

        @media(max-width:760px) {
            .pd {
                grid-template-columns: 1fr
            }
        }

        dl {
            display: grid;
            grid-template-columns: auto 1fr;
            gap: 8px 20px;
            margin: 20px 0
        }

        dt {
            color: var(--mute)
        }

        dd {
            margin: 0;
            font-weight: 600
        }

        .qty {
            display: inline-flex;
            align-items: center;
            border: 1px solid var(--line);
            border-radius: 8px;
            background: var(--card)
        }

        .qty button {
            border: 0;
            background: none;
            color: var(--ink);
            font-size: 1.2rem;
            width: 34px;
            height: 34px;
            cursor: pointer
        }

        .qty span {
            min-width: 26px;
            text-align: center;
            font-weight: 700
        }

        .line {
            display: grid;
            grid-template-columns: 96px 1fr auto;
            gap: 16px;
            align-items: center;
            padding: 16px 0;
            border-bottom: 1px solid var(--line)
        }

        .line img {
            width: 96px
        }

        .line svg {
            width: 96px;
            background: var(--bg);
            border-radius: 8px;
            padding: 6px
        }

        .cols {
            display: grid;
            grid-template-columns: 1.4fr 1fr;
            gap: 40px;
            align-items: start
        }

        @media(max-width:800px) {
            .cols {
                grid-template-columns: 1fr
            }
        }

        .sum {
            background: var(--card);
            border: 1px solid var(--line);
            border-radius: var(--r);
            padding: 22px
        }

        .sum div {
            display: flex;
            justify-content: space-between;
            padding: 4px 0
        }

        .sum .t {
            border-top: 1px solid var(--line);
            margin-top: 8px;
            padding-top: 12px;
            font: 700 1.2rem var(--head)
        }

        form {
            display: grid;
            gap: 14px
        }

        form label {
            display: grid;
            gap: 4px;
            font-weight: 600;
            font-size: .95rem
        }

        .two {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 14px
        }

        @media(max-width:560px) {
            .two {
                grid-template-columns: 1fr
            }
        }

        .doc {
            max-width: 720px
        }

        .doc h3 {
            margin-top: 1.6em
        }

        .doc p,
        .doc li {
            color: var(--mute)
        }

        .note {
            background: var(--card);
            border-left: 4px solid var(--acc);
            padding: 12px 16px;
            border-radius: 0 8px 8px 0;
            font-size: .95rem
        }

        footer {
            border-top: 1px solid var(--line);
            margin-top: 40px;
            padding: 36px 0 28px;
            color: var(--mute);
            font-size: .95rem
        }

        footer .wrap {
            display: grid;
            grid-template-columns: 2fr 1fr 1fr 1fr;
            gap: 28px
        }

        @media(max-width:700px) {
            footer .wrap {
                grid-template-columns: 1fr 1fr
            }
        }

        footer a {
            display: block;
            text-decoration: none;
            padding: 2px 0
        }

        footer a:hover {
            color: var(--ink)
        }

        footer h4 {
            margin: 0 0 6px;
            color: var(--ink);
            font: 700 1rem var(--head)
        }

        .copy {
            grid-column: 1/-1;
            border-top: 1px solid var(--line);
            padding-top: 16px;
            margin-top: 6px
        }

        #toast {
            position: fixed;
            left: 50%;
            bottom: calc(24px + env(safe-area-inset-bottom, 0px));
            transform: translate(-50%, 120px);
            background: var(--ink);
            color: var(--bg);
            padding: 12px 20px;
            border-radius: 10px;
            transition: transform .25s;
            z-index: 9;
            font-weight: 600
        }

        #toast.show {
            transform: translate(-50%, 0)
        }

        .empty {
            text-align: center;
            padding: 48px 0;
            color: var(--mute)
        }
