/*
Theme Name: Crater
Theme URI: https://crater.site
Author: CRATERTECH
Author URI: https://crater.site
Description: Apple-inspired WordPress theme for CraterTech. Fully self-contained stylesheet with all utility classes defined — no Tailwind CDN dependency. Features clean typography, smooth scroll-reveal animations, responsive grid layouts, and a refined dark/light card system.
Version: 3.1.6
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: crater
Tags: one-column, custom-colors, custom-logo, custom-menu, featured-images, translation-ready
*/

/* ═══════════════════════════════════════════
   1. BASE / RESET
   ═══════════════════════════════════════════ */

*, *::before, *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    scroll-behavior: smooth;
}

body {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    font-size: 16px;
    line-height: 1.5;
    color: #1d1d1f;
    background: #fff;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    overflow-x: hidden;
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

a {
    color: inherit;
    text-decoration: none;
}

button {
    border: none;
    background: none;
    cursor: pointer;
    font: inherit;
}

input, textarea, select {
    font: inherit;
}

::selection {
    background: #0071e3;
    color: white;
}

::-webkit-scrollbar {
    width: 8px;
}

::-webkit-scrollbar-track {
    background: transparent;
}

::-webkit-scrollbar-thumb {
    background: #d2d2d7;
    border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
    background: #86868b;
}

.antialiased {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* ═══════════════════════════════════════════
   2. CSS CUSTOM PROPERTIES
   ═══════════════════════════════════════════ */

:root {
    --crater-black: #1d1d1f;
    --crater-gray: #86868b;
    --crater-lgray: #f5f5f7;
    --crater-border: #d2d2d7;
    --crater-blue: #0071e3;
    --crater-blueh: #0077ed;
    --crater-white: #fff;
    --crater-radius: 20px;
    --crater-radius-sm: 12px;
    --crater-radius-pill: 980px;
    --crater-ease: cubic-bezier(0.25, 0.46, 0.45, 0.94);
    --crater-max-w: 1200px;
    --crater-nav-h: 56px;
}

/* ═══════════════════════════════════════════
   3. TYPOGRAPHY
   ═══════════════════════════════════════════ */

/* Font Families */
.font-sans {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

.font-mono {
    font-family: 'JetBrains Mono', monospace;
}

/* Font Sizes */
.text-\[9px\] {
    font-size: 9px;
}

.text-\[10px\] {
    font-size: 10px;
}

.text-\[11px\] {
    font-size: 11px;
}

.text-xs {
    font-size: 0.75rem;
    line-height: 1rem;
}

.text-sm {
    font-size: 0.875rem;
    line-height: 1.25rem;
}

.text-\[13px\] {
    font-size: 13px;
}

.text-\[15px\] {
    font-size: 0.9375rem;
}

.text-base {
    font-size: 1rem;
    line-height: 1.5rem;
}

.text-lg {
    font-size: 1.125rem;
    line-height: 1.75rem;
}

.text-xl {
    font-size: 1.25rem;
    line-height: 1.75rem;
}

.text-2xl {
    font-size: 1.5rem;
    line-height: 2rem;
}

.text-3xl {
    font-size: 1.875rem;
    line-height: 2.25rem;
}

.text-4xl {
    font-size: 2.25rem;
    line-height: 2.5rem;
}

.text-6xl {
    font-size: 3.75rem;
    line-height: 1;
}

/* Font Weights */
.font-normal {
    font-weight: 400;
}

.font-medium {
    font-weight: 500;
}

.font-semibold {
    font-weight: 600;
}

.font-bold {
    font-weight: 700;
}

.font-extrabold {
    font-weight: 800;
}

.font-black {
    font-weight: 900;
}

/* Font Style */
.italic {
    font-style: italic;
}

/* Text Transform */
.uppercase {
    text-transform: uppercase;
}

/* Letter Spacing */
.tracking-tight {
    letter-spacing: -0.025em;
}

.tracking-wider {
    letter-spacing: 0.05em;
}

/* Line Height */
.leading-none {
    line-height: 1;
}

.leading-snug {
    line-height: 1.375;
}

.leading-relaxed {
    line-height: 1.625;
}

/* Text Decoration */
.underline {
    text-decoration-line: underline;
}

.underline-offset-2 {
    text-underline-offset: 2px;
}

.decoration-a-blue\/30 {
    text-decoration-color: rgba(0, 113, 227, 0.3);
}

/* Text Alignment */
.text-center {
    text-align: center;
}

.text-left {
    text-align: left;
}

.text-right {
    text-align: right;
}

/* Whitespace */
.whitespace-nowrap {
    white-space: nowrap;
}

/* Line Clamp */
.line-clamp-2 {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.line-clamp-3 {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* ═══════════════════════════════════════════
   4. LAYOUT UTILITIES
   ═══════════════════════════════════════════ */

/* Display */
.flex {
    display: flex;
}

.grid {
    display: grid;
}

.block {
    display: block;
}

.inline-flex {
    display: inline-flex;
}

.inline-block {
    display: inline-block;
}

.inline {
    display: inline;
}

.hidden {
    display: none;
}

.none {
    display: none;
}

/* Position */
.relative {
    position: relative;
}

.absolute {
    position: absolute;
}

.fixed {
    position: fixed;
}

.sticky {
    position: sticky;
}

/* Inset */
.inset-0 {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}

.inset-\[28\%\] {
    top: 28%;
    right: 28%;
    bottom: 28%;
    left: 28%;
}

/* Top / Right / Bottom / Left */
.top-0 {
    top: 0;
}

.top-full {
    top: 100%;
}

.top-1\.5 {
    top: 0.375rem;
}

.-top-2 {
    top: -0.5rem;
}

.right-0 {
    right: 0;
}

.right-\[-2\%\] {
    right: -2%;
}

.-right-4 {
    right: -1rem;
}

.bottom-0 {
    bottom: 0;
}

.-bottom-2 {
    bottom: -0.5rem;
}

.left-0 {
    left: 0;
}

.left-1\/2 {
    left: 50%;
}

.-left-4 {
    left: -1rem;
}

.-left-\[7px\] {
    left: -7px;
}

/* Z-Index */
.z-10 {
    z-index: 10;
}

.z-20 {
    z-index: 20;
}

.z-50 {
    z-index: 50;
}

/* ═══════════════════════════════════════════
   5. FLEXBOX UTILITIES
   ═══════════════════════════════════════════ */

.flex-col {
    flex-direction: column;
}

.flex-row {
    flex-direction: row;
}

.flex-wrap {
    flex-wrap: wrap;
}

.flex-1 {
    flex: 1 1 0%;
}

.flex-shrink-0 {
    flex-shrink: 0;
}

.items-center {
    align-items: center;
}

.items-start {
    align-items: flex-start;
}

.items-end {
    align-items: flex-end;
}

.items-baseline {
    align-items: baseline;
}

.items-stretch {
    align-items: stretch;
}

.justify-center {
    justify-content: center;
}

.justify-between {
    justify-content: space-between;
}

.justify-end {
    justify-content: flex-end;
}

.justify-start {
    justify-content: flex-start;
}

.self-center {
    align-self: center;
}

.self-start {
    align-self: flex-start;
}

.self-end {
    align-self: flex-end;
}

.order-1 {
    order: 1;
}

.order-2 {
    order: 2;
}

.order-3 {
    order: 3;
}

/* ═══════════════════════════════════════════
   6. GRID UTILITIES
   ═══════════════════════════════════════════ */

.grid-cols-1 {
    grid-template-columns: repeat(1, minmax(0, 1fr));
}

.grid-cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.grid-cols-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.col-span-2 {
    grid-column: span 2 / span 2;
}

.col-span-3 {
    grid-column: span 3 / span 3;
}

/* ═══════════════════════════════════════════
   7. SIZING UTILITIES
   ═══════════════════════════════════════════ */

/* Width */
.w-full {
    width: 100%;
}

.w-3 {
    width: 0.75rem;
}

.w-4 {
    width: 1rem;
}

.w-5 {
    width: 1.25rem;
}

.w-6 {
    width: 1.5rem;
}

.w-7 {
    width: 1.75rem;
}

.w-8 {
    width: 2rem;
}

.w-9 {
    width: 2.25rem;
}

.w-10 {
    width: 2.5rem;
}

.w-12 {
    width: 3rem;
}

.w-14 {
    width: 3.5rem;
}

.w-16 {
    width: 4rem;
}

.w-20 {
    width: 5rem;
}

.w-24 {
    width: 6rem;
}

.w-\[58\%\] {
    width: 58%;
}

.w-\[360px\] {
    width: 360px;
}

.w-auto {
    width: auto;
}

.min-w-0 {
    min-width: 0;
}

.w-screen {
    width: 100vw;
}

/* Height */
.h-1\.5 {
    height: 0.375rem;
}

.h-2 {
    height: 0.5rem;
}

.h-3 {
    height: 0.75rem;
}

.h-4 {
    height: 1rem;
}

.h-5 {
    height: 1.25rem;
}

.h-6 {
    height: 1.5rem;
}

.h-7 {
    height: 1.75rem;
}

.h-8 {
    height: 2rem;
}

.h-9 {
    height: 2.25rem;
}

.h-10 {
    height: 2.5rem;
}

.h-12 {
    height: 3rem;
}

.h-14 {
    height: 3.5rem;
}

.h-16 {
    height: 4rem;
}

.h-20 {
    height: 5rem;
}

.h-24 {
    height: 6rem;
}

.h-\[360px\] {
    height: 360px;
}

.h-full {
    height: 100%;
}

.h-screen {
    height: 100vh;
}

.h-auto {
    height: auto;
}

/* Min-Width */
.min-w-\[110px\] {
    min-width: 110px;
}

.min-w-\[140px\] {
    min-width: 140px;
}

/* Min-Height */
.min-h-\[82vh\] {
    min-height: 82vh;
}

.min-h-screen {
    min-height: 100vh;
}

/* Max-Width */
.max-w-xs {
    max-width: 20rem;
}

.max-w-sm {
    max-width: 24rem;
}

.max-w-md {
    max-width: 28rem;
}

.max-w-lg {
    max-width: 32rem;
}

.max-w-xl {
    max-width: 36rem;
}

.max-w-2xl {
    max-width: 42rem;
}

.max-w-3xl {
    max-width: 48rem;
}

.max-w-4xl {
    max-width: 56rem;
}

.max-w-5xl {
    max-width: 64rem;
}

.max-w-6xl {
    max-width: 72rem;
}

.max-w-7xl {
    max-width: 80rem;
}

.max-w-full {
    max-width: 100%;
}

.max-w-none {
    max-width: none;
}

.max-w-\[640px\] {
    max-width: 640px;
}

.max-w-\[720px\] {
    max-width: 720px;
}

.max-w-\[760px\] {
    max-width: 760px;
}

.max-w-\[800px\] {
    max-width: 800px;
}

.max-w-\[900px\] {
    max-width: 900px;
}

.max-w-\[1100px\] {
    max-width: 1100px;
}

.max-w-\[1200px\] {
    max-width: 1200px;
}

/* Max-Height */
.max-h-\[500px\] {
    max-height: 500px;
}

/* ═══════════════════════════════════════════
   8. SPACING UTILITIES
   ═══════════════════════════════════════════ */

/* Padding - All sides */
.p-0 {
    padding: 0;
}

.p-0\.5 {
    padding: 0.125rem;
}

.p-1 {
    padding: 0.25rem;
}

.p-1\.5 {
    padding: 0.375rem;
}

.p-2 {
    padding: 0.5rem;
}

.p-2\.5 {
    padding: 0.625rem;
}

.p-3 {
    padding: 0.75rem;
}

.p-4 {
    padding: 1rem;
}

.p-5 {
    padding: 1.25rem;
}

.p-6 {
    padding: 1.5rem;
}

.p-8 {
    padding: 2rem;
}

.p-10 {
    padding: 2.5rem;
}

/* Padding X */
.px-0 {
    padding-left: 0;
    padding-right: 0;
}

.px-1 {
    padding-left: 0.25rem;
    padding-right: 0.25rem;
}

.px-1\.5 {
    padding-left: 0.375rem;
    padding-right: 0.375rem;
}

.px-2 {
    padding-left: 0.5rem;
    padding-right: 0.5rem;
}

.px-2\.5 {
    padding-left: 0.625rem;
    padding-right: 0.625rem;
}

.px-3 {
    padding-left: 0.75rem;
    padding-right: 0.75rem;
}

.px-4 {
    padding-left: 1rem;
    padding-right: 1rem;
}

.px-5 {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
}

.px-6 {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
}

.px-8 {
    padding-left: 2rem;
    padding-right: 2rem;
}

.px-10 {
    padding-left: 2.5rem;
    padding-right: 2.5rem;
}

/* Padding Y */
.py-0 {
    padding-top: 0;
    padding-bottom: 0;
}

.py-0\.5 {
    padding-top: 0.125rem;
    padding-bottom: 0.125rem;
}

.py-1 {
    padding-top: 0.25rem;
    padding-bottom: 0.25rem;
}

.py-1\.5 {
    padding-top: 0.375rem;
    padding-bottom: 0.375rem;
}

.py-2 {
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
}

.py-2\.5 {
    padding-top: 0.625rem;
    padding-bottom: 0.625rem;
}

.py-3 {
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
}

.py-4 {
    padding-top: 1rem;
    padding-bottom: 1rem;
}

.py-5 {
    padding-top: 1.25rem;
    padding-bottom: 1.25rem;
}

.py-6 {
    padding-top: 1.5rem;
    padding-bottom: 1.5rem;
}

.py-8 {
    padding-top: 2rem;
    padding-bottom: 2rem;
}

.py-10 {
    padding-top: 2.5rem;
    padding-bottom: 2.5rem;
}

.py-12 {
    padding-top: 3rem;
    padding-bottom: 3rem;
}

.py-14 {
    padding-top: 3.5rem;
    padding-bottom: 3.5rem;
}

.py-16 {
    padding-top: 4rem;
    padding-bottom: 4rem;
}

.py-18 {
    padding-top: 4.5rem;
    padding-bottom: 4.5rem;
}

.py-20 {
    padding-top: 5rem;
    padding-bottom: 5rem;
}

.py-24 {
    padding-top: 6rem;
    padding-bottom: 6rem;
}

.py-28 {
    padding-top: 7rem;
    padding-bottom: 7rem;
}

.py-32 {
    padding-top: 8rem;
    padding-bottom: 8rem;
}

/* Padding Top */
.pt-0 {
    padding-top: 0;
}

.pt-1 {
    padding-top: 0.25rem;
}

.pt-2 {
    padding-top: 0.5rem;
}

.pt-3 {
    padding-top: 0.75rem;
}

.pt-4 {
    padding-top: 1rem;
}

.pt-5 {
    padding-top: 1.25rem;
}

.pt-6 {
    padding-top: 1.5rem;
}

.pt-8 {
    padding-top: 2rem;
}

.pt-10 {
    padding-top: 2.5rem;
}

.pt-12 {
    padding-top: 3rem;
}

.pt-16 {
    padding-top: 4rem;
}

.pt-20 {
    padding-top: 5rem;
}

.pt-24 {
    padding-top: 6rem;
}

/* Padding Bottom */
.pb-0 {
    padding-bottom: 0;
}

.pb-1 {
    padding-bottom: 0.25rem;
}

.pb-2 {
    padding-bottom: 0.5rem;
}

.pb-3 {
    padding-bottom: 0.75rem;
}

.pb-4 {
    padding-bottom: 1rem;
}

.pb-5 {
    padding-bottom: 1.25rem;
}

.pb-6 {
    padding-bottom: 1.5rem;
}

.pb-8 {
    padding-bottom: 2rem;
}

.pb-10 {
    padding-bottom: 2.5rem;
}

.pb-12 {
    padding-bottom: 3rem;
}

.pb-16 {
    padding-bottom: 4rem;
}

.pb-20 {
    padding-bottom: 5rem;
}

.pb-24 {
    padding-bottom: 6rem;
}

.pb-28 {
    padding-bottom: 7rem;
}

.pb-36 {
    padding-bottom: 9rem;
}

/* Padding Left */
.pl-0 {
    padding-left: 0;
}

.pl-1 {
    padding-left: 0.25rem;
}

.pl-2 {
    padding-left: 0.5rem;
}

.pl-3 {
    padding-left: 0.75rem;
}

.pl-4 {
    padding-left: 1rem;
}

.pl-5 {
    padding-left: 1.25rem;
}

.pl-6 {
    padding-left: 1.5rem;
}

.pl-8 {
    padding-left: 2rem;
}

/* Padding Right */
.pr-0 {
    padding-right: 0;
}

.pr-1 {
    padding-right: 0.25rem;
}

.pr-2 {
    padding-right: 0.5rem;
}

.pr-3 {
    padding-right: 0.75rem;
}

.pr-4 {
    padding-right: 1rem;
}

.pr-5 {
    padding-right: 1.25rem;
}

.pr-6 {
    padding-right: 1.5rem;
}

.pr-8 {
    padding-right: 2rem;
}

/* Margin - All sides */
.m-0 {
    margin: 0;
}

.m-1 {
    margin: 0.25rem;
}

.m-2 {
    margin: 0.5rem;
}

.m-3 {
    margin: 0.75rem;
}

.m-4 {
    margin: 1rem;
}

.m-5 {
    margin: 1.25rem;
}

.m-6 {
    margin: 1.5rem;
}

.m-auto {
    margin: auto;
}

.mx-auto {
    margin-left: auto;
    margin-right: auto;
}

.mx-0 {
    margin-left: 0;
    margin-right: 0;
}

.mx-1 {
    margin-left: 0.25rem;
    margin-right: 0.25rem;
}

.mx-2 {
    margin-left: 0.5rem;
    margin-right: 0.5rem;
}

.mx-3 {
    margin-left: 0.75rem;
    margin-right: 0.75rem;
}

.mx-4 {
    margin-left: 1rem;
    margin-right: 1rem;
}

.mx-6 {
    margin-left: 1.5rem;
    margin-right: 1.5rem;
}

.my-0 {
    margin-top: 0;
    margin-bottom: 0;
}

.my-1 {
    margin-top: 0.25rem;
    margin-bottom: 0.25rem;
}

.my-2 {
    margin-top: 0.5rem;
    margin-bottom: 0.5rem;
}

.my-3 {
    margin-top: 0.75rem;
    margin-bottom: 0.75rem;
}

.my-4 {
    margin-top: 1rem;
    margin-bottom: 1rem;
}

.my-6 {
    margin-top: 1.5rem;
    margin-bottom: 1.5rem;
}

.my-8 {
    margin-top: 2rem;
    margin-bottom: 2rem;
}

/* Margin Top */
.mt-0 {
    margin-top: 0;
}

.mt-1 {
    margin-top: 0.25rem;
}

.mt-1\.5 {
    margin-top: 0.375rem;
}

.mt-2 {
    margin-top: 0.5rem;
}

.mt-3 {
    margin-top: 0.75rem;
}

.mt-4 {
    margin-top: 1rem;
}

.mt-5 {
    margin-top: 1.25rem;
}

.mt-6 {
    margin-top: 1.5rem;
}

.mt-8 {
    margin-top: 2rem;
}

.mt-10 {
    margin-top: 2.5rem;
}

.mt-12 {
    margin-top: 3rem;
}

.mt-14 {
    margin-top: 3.5rem;
}

.mt-16 {
    margin-top: 4rem;
}

.mt-20 {
    margin-top: 5rem;
}

/* Margin Bottom */
.mb-0 {
    margin-bottom: 0;
}

.mb-1 {
    margin-bottom: 0.25rem;
}

.mb-1\.5 {
    margin-bottom: 0.375rem;
}

.mb-2 {
    margin-bottom: 0.5rem;
}

.mb-3 {
    margin-bottom: 0.75rem;
}

.mb-4 {
    margin-bottom: 1rem;
}

.mb-5 {
    margin-bottom: 1.25rem;
}

.mb-6 {
    margin-bottom: 1.5rem;
}

.mb-8 {
    margin-bottom: 2rem;
}

.mb-10 {
    margin-bottom: 2.5rem;
}

.mb-12 {
    margin-bottom: 3rem;
}

.mb-14 {
    margin-bottom: 3.5rem;
}

.mb-16 {
    margin-bottom: 4rem;
}

.mb-20 {
    margin-bottom: 5rem;
}

/* Margin Left */
.ml-0 {
    margin-left: 0;
}

.ml-1 {
    margin-left: 0.25rem;
}

.ml-2 {
    margin-left: 0.5rem;
}

.ml-3 {
    margin-left: 0.75rem;
}

.ml-4 {
    margin-left: 1rem;
}

.ml-5 {
    margin-left: 1.25rem;
}

.ml-6 {
    margin-left: 1.5rem;
}

.ml-auto {
    margin-left: auto;
}

/* Margin Right */
.mr-0 {
    margin-right: 0;
}

.mr-1 {
    margin-right: 0.25rem;
}

.mr-2 {
    margin-right: 0.5rem;
}

.mr-3 {
    margin-right: 0.75rem;
}

.mr-4 {
    margin-right: 1rem;
}

.mr-5 {
    margin-right: 1.25rem;
}

.mr-6 {
    margin-right: 1.5rem;
}

.mr-auto {
    margin-right: auto;
}

/* Negative Margins */
.-mt-1 {
    margin-top: -0.25rem;
}

.-mt-2 {
    margin-top: -0.5rem;
}

.-mt-4 {
    margin-top: -1rem;
}

.-mb-1 {
    margin-bottom: -0.25rem;
}

.-ml-1 {
    margin-left: -0.25rem;
}

.-ml-2 {
    margin-left: -0.5rem;
}

.-mr-1 {
    margin-right: -0.25rem;
}

.-mr-2 {
    margin-right: -0.5rem;
}

/* Gap */
.gap-0 {
    gap: 0;
}

.gap-0\.5 {
    gap: 0.125rem;
}

.gap-1 {
    gap: 0.25rem;
}

.gap-1\.5 {
    gap: 0.375rem;
}

.gap-2 {
    gap: 0.5rem;
}

.gap-2\.5 {
    gap: 0.625rem;
}

.gap-3 {
    gap: 0.75rem;
}

.gap-4 {
    gap: 1rem;
}

.gap-5 {
    gap: 1.25rem;
}

.gap-6 {
    gap: 1.5rem;
}

.gap-8 {
    gap: 2rem;
}

.gap-10 {
    gap: 2.5rem;
}

.gap-12 {
    gap: 3rem;
}

.gap-14 {
    gap: 3.5rem;
}

.gap-16 {
    gap: 4rem;
}

/* Gap X */
.gap-x-1 {
    column-gap: 0.25rem;
}

.gap-x-2 {
    column-gap: 0.5rem;
}

.gap-x-3 {
    column-gap: 0.75rem;
}

.gap-x-4 {
    column-gap: 1rem;
}

.gap-x-5 {
    column-gap: 1.25rem;
}

.gap-x-6 {
    column-gap: 1.5rem;
}

.gap-x-8 {
    column-gap: 2rem;
}

/* Gap Y */
.gap-y-1 {
    row-gap: 0.25rem;
}

.gap-y-2 {
    row-gap: 0.5rem;
}

.gap-y-3 {
    row-gap: 0.75rem;
}

.gap-y-4 {
    row-gap: 1rem;
}

.gap-y-5 {
    row-gap: 1.25rem;
}

.gap-y-6 {
    row-gap: 1.5rem;
}

.gap-y-8 {
    row-gap: 2rem;
}

/* Space Y (children margin) */
.space-y-0\.5 > * + * {
    margin-top: 0.125rem;
}

.space-y-1 > * + * {
    margin-top: 0.25rem;
}

.space-y-1\.5 > * + * {
    margin-top: 0.375rem;
}

.space-y-2 > * + * {
    margin-top: 0.5rem;
}

.space-y-3 > * + * {
    margin-top: 0.75rem;
}

.space-y-4 > * + * {
    margin-top: 1rem;
}

.space-y-5 > * + * {
    margin-top: 1.25rem;
}

.space-y-6 > * + * {
    margin-top: 1.5rem;
}

.space-y-8 > * + * {
    margin-top: 2rem;
}

.space-y-10 > * + * {
    margin-top: 2.5rem;
}

.space-y-12 > * + * {
    margin-top: 3rem;
}

/* Space X (children margin) */
.space-x-1 > * + * {
    margin-left: 0.25rem;
}

.space-x-2 > * + * {
    margin-left: 0.5rem;
}

.space-x-3 > * + * {
    margin-left: 0.75rem;
}

.space-x-4 > * + * {
    margin-left: 1rem;
}

.space-x-6 > * + * {
    margin-left: 1.5rem;
}

/* ═══════════════════════════════════════════
   9. BORDER & RADIUS UTILITIES
   ═══════════════════════════════════════════ */

/* Border Width */
.border {
    border-width: 1px;
    border-style: solid;
}

.border-0 {
    border-width: 0;
}

.border-2 {
    border-width: 2px;
    border-style: solid;
}

.border-t {
    border-top-width: 1px;
    border-top-style: solid;
}

.border-b {
    border-bottom-width: 1px;
    border-bottom-style: solid;
}

.border-l-2 {
    border-left-width: 2px;
    border-left-style: solid;
}

.border-l-3 {
    border-left-width: 3px;
    border-left-style: solid;
}

/* Border Colors */
.border-a-border {
    border-color: #d2d2d7;
}

.border-a-border\/40 {
    border-color: rgba(210, 210, 215, 0.4);
}

.border-a-border\/30 {
    border-color: rgba(210, 210, 215, 0.3);
}

.border-a-border\/20 {
    border-color: rgba(210, 210, 215, 0.2);
}

.border-a-blue {
    border-color: #0071e3;
}

.border-a-blue\/15 {
    border-color: rgba(0, 113, 227, 0.15);
}

.border-a-blue\/10 {
    border-color: rgba(0, 113, 227, 0.1);
}

.border-a-blue\/30 {
    border-color: rgba(0, 113, 227, 0.3);
}

.border-black\/\[0\.04\] {
    border-color: rgba(0, 0, 0, 0.04);
}

.border-black\/\[0\.03\] {
    border-color: rgba(0, 0, 0, 0.03);
}

.border-black\/\[0\.06\] {
    border-color: rgba(0, 0, 0, 0.06);
}

.border-black\/10 {
    border-color: rgba(0, 0, 0, 0.1);
}

.border-white\/\[0\.06\] {
    border-color: rgba(255, 255, 255, 0.06);
}

.border-white\/20 {
    border-color: rgba(255, 255, 255, 0.2);
}

.border-white\/10 {
    border-color: rgba(255, 255, 255, 0.1);
}

.border-rose-200\/50 {
    border-color: rgba(254, 202, 202, 0.5);
}

.border-emerald-200\/50 {
    border-color: rgba(167, 243, 208, 0.5);
}

.border-transparent {
    border-color: transparent;
}

.border-white {
    border-color: #fff;
}

/* Border Radius */
.rounded-none {
    border-radius: 0;
}

.rounded-sm {
    border-radius: 0.125rem;
}

.rounded {
    border-radius: 0.25rem;
}

.rounded-md {
    border-radius: 0.375rem;
}

.rounded-lg {
    border-radius: 0.5rem;
}

.rounded-xl {
    border-radius: 0.75rem;
}

.rounded-2xl {
    border-radius: 1rem;
}

.rounded-3xl {
    border-radius: 1.5rem;
}

.rounded-full {
    border-radius: 9999px;
}

.rounded-bl-xl {
    border-bottom-left-radius: 0.75rem;
}

.rounded-br-xl {
    border-bottom-right-radius: 0.75rem;
}

.rounded-tl-xl {
    border-top-left-radius: 0.75rem;
}

.rounded-tr-xl {
    border-top-right-radius: 0.75rem;
}

.rounded-t-2xl {
    border-top-left-radius: 1rem;
    border-top-right-radius: 1rem;
}

.rounded-b-2xl {
    border-bottom-left-radius: 1rem;
    border-bottom-right-radius: 1rem;
}

/* ═══════════════════════════════════════════
   10. BACKGROUND UTILITIES
   ═══════════════════════════════════════════ */

.bg-white {
    background-color: #fff;
}

.bg-transparent {
    background-color: transparent;
}

.bg-a-black {
    background-color: #1d1d1f;
}

.bg-a-lgray {
    background-color: #f5f5f7;
}

.bg-a-lgray\/60 {
    background-color: rgba(245, 245, 247, 0.6);
}

.bg-a-lgray\/50 {
    background-color: rgba(245, 245, 247, 0.5);
}

.bg-a-lgray\/80 {
    background-color: rgba(245, 245, 247, 0.8);
}

.bg-a-lgray\/40 {
    background-color: rgba(245, 245, 247, 0.4);
}

.bg-a-lgray\/30 {
    background-color: rgba(245, 245, 247, 0.3);
}

.bg-a-blue {
    background-color: #0071e3;
}

.bg-a-blue\/10 {
    background-color: rgba(0, 113, 227, 0.1);
}

.bg-a-blue\/8 {
    background-color: rgba(0, 113, 227, 0.08);
}

.bg-a-blue\/15 {
    background-color: rgba(0, 113, 227, 0.15);
}

.bg-a-blue\/5 {
    background-color: rgba(0, 113, 227, 0.05);
}

.bg-a-blue\/40 {
    background-color: rgba(0, 113, 227, 0.4);
}

.bg-a-blue\/20 {
    background-color: rgba(0, 113, 227, 0.2);
}

.bg-white\/80 {
    background-color: rgba(255, 255, 255, 0.8);
}

.bg-white\/\[0\.06\] {
    background-color: rgba(255, 255, 255, 0.06);
}

.bg-white\/10 {
    background-color: rgba(255, 255, 255, 0.1);
}

.bg-white\/5 {
    background-color: rgba(255, 255, 255, 0.05);
}

.bg-a-border\/20 {
    background-color: rgba(210, 210, 215, 0.2);
}

.bg-a-border\/30 {
    background-color: rgba(210, 210, 215, 0.3);
}

.bg-a-border\/10 {
    background-color: rgba(210, 210, 215, 0.1);
}

.bg-rose-50 {
    background-color: #fff1f2;
}

.bg-rose-50\/50 {
    background-color: rgba(255, 241, 242, 0.5);
}

.bg-rose-50\/80 {
    background-color: rgba(255, 241, 242, 0.8);
}

.bg-amber-50 {
    background-color: #fffbeb;
}

.bg-emerald-50 {
    background-color: #ecfdf5;
}

.bg-emerald-50\/50 {
    background-color: rgba(236, 253, 245, 0.5);
}

.bg-emerald-50\/80 {
    background-color: rgba(236, 253, 245, 0.8);
}

.bg-purple-50 {
    background-color: #faf5ff;
}

.bg-green-50 {
    background-color: #f0fdf4;
}

/* ═══════════════════════════════════════════
   11. TEXT COLOR UTILITIES
   ═══════════════════════════════════════════ */

.text-white {
    color: #fff;
}

.text-a-black {
    color: #1d1d1f;
}

.text-a-gray {
    color: #86868b;
}

.text-a-blue {
    color: #0071e3;
}

.text-a-border {
    color: #d2d2d7;
}

.text-white\/30 {
    color: rgba(255, 255, 255, 0.3);
}

.text-white\/40 {
    color: rgba(255, 255, 255, 0.4);
}

.text-white\/50 {
    color: rgba(255, 255, 255, 0.5);
}

.text-white\/60 {
    color: rgba(255, 255, 255, 0.6);
}

.text-white\/70 {
    color: rgba(255, 255, 255, 0.7);
}

.text-white\/80 {
    color: rgba(255, 255, 255, 0.8);
}

.text-a-gray\/80 {
    color: rgba(134, 134, 139, 0.8);
}

.text-a-gray\/60 {
    color: rgba(134, 134, 139, 0.6);
}

.text-a-gray\/40 {
    color: rgba(134, 134, 139, 0.4);
}

.text-a-gray\/30 {
    color: rgba(134, 134, 139, 0.3);
}

.text-a-gray\/50 {
    color: rgba(134, 134, 139, 0.5);
}

/* Semantic Colors - Rose */
.text-rose-400 {
    color: #fb7185;
}

.text-rose-500 {
    color: #f43f5e;
}

.text-rose-600 {
    color: #e11d48;
}

.text-rose-700 {
    color: #be123c;
}

/* Semantic Colors - Amber */
.text-amber-500 {
    color: #f59e0b;
}

.text-amber-600 {
    color: #d97706;
}

.text-amber-700 {
    color: #b45309;
}

/* Semantic Colors - Emerald */
.text-emerald-400 {
    color: #34d399;
}

.text-emerald-500 {
    color: #10b981;
}

.text-emerald-600 {
    color: #059669;
}

.text-emerald-700 {
    color: #047857;
}

/* Semantic Colors - Purple */
.text-purple-500 {
    color: #a855f7;
}

.text-purple-600 {
    color: #9333ea;
}

.text-purple-700 {
    color: #7e22ce;
}

/* Semantic Colors - Green */
.text-green-500 {
    color: #22c55e;
}

.text-green-600 {
    color: #16a34a;
}

.text-green-700 {
    color: #15803d;
}

/* Semantic Colors - Blue */
.text-blue-500 {
    color: #3b82f6;
}

.text-blue-600 {
    color: #2563eb;
}

/* ═══════════════════════════════════════════
   12. EFFECTS & INTERACTION UTILITIES
   ═══════════════════════════════════════════ */

/* Opacity */
.opacity-0 {
    opacity: 0;
}

.opacity-\[0\.07\] {
    opacity: 0.07;
}

.opacity-10 {
    opacity: 0.1;
}

.opacity-20 {
    opacity: 0.2;
}

.opacity-30 {
    opacity: 0.3;
}

.opacity-40 {
    opacity: 0.4;
}

.opacity-50 {
    opacity: 0.5;
}

.opacity-60 {
    opacity: 0.6;
}

.opacity-70 {
    opacity: 0.7;
}

.opacity-80 {
    opacity: 0.8;
}

.opacity-90 {
    opacity: 0.9;
}

.opacity-100 {
    opacity: 1;
}

/* Backdrop */
.backdrop-blur-xl {
    backdrop-filter: blur(24px);
}

.backdrop-blur-lg {
    backdrop-filter: blur(16px);
}

.backdrop-blur-md {
    backdrop-filter: blur(12px);
}

/* Shadows */
.shadow-sm {
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
}

.shadow-md {
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);
}

.shadow-lg {
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
}

.shadow-xl {
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
}

.shadow-2xl {
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
}

.shadow-none {
    box-shadow: none;
}

.shadow-a-blue\/5 {
    box-shadow: 0 4px 16px rgba(0, 113, 227, 0.05);
}

.shadow-a-blue\/20 {
    box-shadow: 0 4px 16px rgba(0, 113, 227, 0.2);
}

/* Overflow */
.overflow-hidden {
    overflow: hidden;
}

.overflow-x-hidden {
    overflow-x: hidden;
}

.overflow-x-auto {
    overflow-x: auto;
}

.overflow-y-auto {
    overflow-y: auto;
}

.overflow-y-hidden {
    overflow-y: hidden;
}

/* Cursor */
.cursor-pointer {
    cursor: pointer;
}

.cursor-default {
    cursor: default;
}

.cursor-not-allowed {
    cursor: not-allowed;
}

/* User Select */
.select-none {
    user-select: none;
}

/* Pointer Events */
.pointer-events-none {
    pointer-events: none;
}

/* Resize */
.resize-none {
    resize: none;
}

/* Outline */
.outline-none {
    outline: none;
}

/* Transition */
.transition-all {
    transition-property: all;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
}

.transition-colors {
    transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
}

.transition-transform {
    transition-property: transform;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
}

.transition-opacity {
    transition-property: opacity;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
}

.transition {
    transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
}

/* Duration */
.duration-100 {
    transition-duration: 100ms;
}

.duration-150 {
    transition-duration: 150ms;
}

.duration-200 {
    transition-duration: 200ms;
}

.duration-300 {
    transition-duration: 300ms;
}

.duration-500 {
    transition-duration: 500ms;
}

.duration-700 {
    transition-duration: 700ms;
}

.duration-1000 {
    transition-duration: 1000ms;
}

/* Easing */
.ease-in {
    transition-timing-function: cubic-bezier(0.4, 0, 1, 1);
}

.ease-out {
    transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}

.ease-in-out {
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}

/* Visibility */
.visible {
    visibility: visible;
}

.invisible {
    visibility: hidden;
}

/* Accent */
.accent-a-blue {
    accent-color: #0071e3;
}

/* Aspect Ratio */
.aspect-\[16\/10\] {
    aspect-ratio: 16 / 10;
}

.aspect-\[16\/9\] {
    aspect-ratio: 16 / 9;
}

.aspect-square {
    aspect-ratio: 1 / 1;
}

/* Object Fit */
.object-cover {
    object-fit: cover;
}

.object-contain {
    object-fit: contain;
}

/* List Style */
.list-none {
    list-style: none;
}

.list-disc {
    list-style-type: disc;
}

.list-inside {
    list-style-position: inside;
}

/* ═══════════════════════════════════════════
   13. TRANSFORM UTILITIES
   ═══════════════════════════════════════════ */

.-translate-x-1\/2 {
    transform: translateX(-50%);
}

.-translate-y-1\/2 {
    transform: translateY(-50%);
}

.translate-x-0 {
    transform: translateX(0);
}

.translate-y-0 {
    transform: translateY(0);
}

.translate-x-1\/2 {
    transform: translateX(50%);
}

.translate-y-1\/2 {
    transform: translateY(50%);
}

.-translate-y-1 {
    transform: translateY(-0.25rem);
}

.translate-y-1 {
    transform: translateY(0.25rem);
}

.translate-y-2 {
    transform: translateY(0.5rem);
}

.scale-50 {
    transform: scale(0.5);
}

.scale-75 {
    transform: scale(0.75);
}

.scale-90 {
    transform: scale(0.9);
}

.scale-95 {
    transform: scale(0.95);
}

.scale-100 {
    transform: scale(1);
}

.scale-105 {
    transform: scale(1.05);
}

.scale-110 {
    transform: scale(1.1);
}

.scale-125 {
    transform: scale(1.25);
}

.rotate-0 {
    transform: rotate(0deg);
}

.rotate-45 {
    transform: rotate(45deg);
}

.rotate-90 {
    transform: rotate(90deg);
}

.rotate-180 {
    transform: rotate(180deg);
}

.-rotate-45 {
    transform: rotate(-45deg);
}

.-rotate-90 {
    transform: rotate(-90deg);
}

.transform {
    transform: translateX(var(--tw-translate-x, 0)) translateY(var(--tw-translate-y, 0)) rotate(var(--tw-rotate, 0)) skewX(var(--tw-skew-x, 0)) skewY(var(--tw-skew-y, 0)) scaleX(var(--tw-scale-x, 1)) scaleY(var(--tw-scale-y, 1));
}

.transform-none {
    transform: none;
}

/* ═══════════════════════════════════════════
   14. HOVER STATES
   ═══════════════════════════════════════════ */

/* Hover Text Colors */
.hover\:text-a-blue:hover {
    color: #0071e3;
}

.hover\:text-a-black:hover {
    color: #1d1d1f;
}

.hover\:text-white:hover {
    color: #fff;
}

.hover\:text-white\/60:hover {
    color: rgba(255, 255, 255, 0.6);
}

.hover\:text-white\/80:hover {
    color: rgba(255, 255, 255, 0.8);
}

.hover\:text-a-gray:hover {
    color: #86868b;
}

.hover\:text-a-blue\/80:hover {
    color: rgba(0, 113, 227, 0.8);
}

/* Hover Background Colors */
.hover\:bg-a-lgray:hover {
    background-color: #f5f5f7;
}

.hover\:bg-a-lgray\/50:hover {
    background-color: rgba(245, 245, 247, 0.5);
}

.hover\:bg-a-lgray\/80:hover {
    background-color: rgba(245, 245, 247, 0.8);
}

.hover\:bg-white\/10:hover {
    background-color: rgba(255, 255, 255, 0.1);
}

.hover\:bg-white\/\[0\.06\]:hover {
    background-color: rgba(255, 255, 255, 0.06);
}

.hover\:bg-white\/20:hover {
    background-color: rgba(255, 255, 255, 0.2);
}

.hover\:bg-a-blue:hover {
    background-color: #0071e3;
}

.hover\:bg-a-blue\/80:hover {
    background-color: rgba(0, 113, 227, 0.8);
}

.hover\:bg-a-border\/30:hover {
    background-color: rgba(210, 210, 215, 0.3);
}

.hover\:bg-a-black:hover {
    background-color: #1d1d1f;
}

.hover\:bg-a-lgray\/60:hover {
    background-color: rgba(245, 245, 247, 0.6);
}

/* Hover Text Decoration */
.hover\:underline:hover {
    text-decoration-line: underline;
}

.hover\:decoration-a-blue:hover {
    text-decoration-color: #0071e3;
}

/* Hover Border */
.hover\:border-a-blue\/30:hover {
    border-color: rgba(0, 113, 227, 0.3);
}

.hover\:border-a-blue:hover {
    border-color: #0071e3;
}

.hover\:border-a-border:hover {
    border-color: #d2d2d7;
}

.hover\:border-white\/20:hover {
    border-color: rgba(255, 255, 255, 0.2);
}

/* Hover Transform */
.hover\:translate-y-0:hover {
    transform: translateY(0);
}

.hover\:-translate-y-1:hover {
    transform: translateY(-0.25rem);
}

.hover\:scale-105:hover {
    transform: scale(1.05);
}

.hover\:scale-110:hover {
    transform: scale(1.1);
}

/* Hover Opacity */
.hover\:opacity-80:hover {
    opacity: 0.8;
}

.hover\:opacity-100:hover {
    opacity: 1;
}

/* Hover Shadow */
.hover\:shadow-lg:hover {
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
}

.hover\:shadow-xl:hover {
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
}

/* Group Hover States */
.group:hover .group-hover\:text-a-blue {
    color: #0071e3;
}

.group:hover .group-hover\:text-a-blue\/15 {
    color: rgba(0, 113, 227, 0.15);
}

.group:hover .group-hover\:text-white {
    color: #fff;
}

.group:hover .group-hover\:text-a-black {
    color: #1d1d1f;
}

.group:hover .group-hover\:bg-a-blue\/15 {
    background-color: rgba(0, 113, 227, 0.15);
}

.group:hover .group-hover\:bg-a-blue\/10 {
    background-color: rgba(0, 113, 227, 0.1);
}

.group:hover .group-hover\:bg-white\/10 {
    background-color: rgba(255, 255, 255, 0.1);
}

.group:hover .group-hover\:scale-110 {
    transform: scale(1.1);
}

.group:hover .group-hover\:scale-105 {
    transform: scale(1.05);
}

.group:hover .group-hover\:opacity-100 {
    opacity: 1;
}

.group:hover .group-hover\:visible {
    visibility: visible;
}

.group:hover .group-hover\:translate-y-0 {
    transform: translateY(0);
}

.group:hover .group-hover\:border-a-blue\/30 {
    border-color: rgba(0, 113, 227, 0.3);
}

/* Group Hover with named group (lang) */
.group\/lang:hover .group-hover\/lang\:opacity-100 {
    opacity: 1;
}

.group\/lang:hover .group-hover\/lang\:visible {
    visibility: visible;
}

/* ═══════════════════════════════════════════
   15. RESPONSIVE UTILITIES
   ═══════════════════════════════════════════ */

/* ---- SM Breakpoint (640px) ---- */
@media (min-width: 640px) {
    .sm\:flex {
        display: flex;
    }

    .sm\:grid {
        display: grid;
    }

    .sm\:block {
        display: block;
    }

    .sm\:inline-flex {
        display: inline-flex;
    }

    .sm\:hidden {
        display: none;
    }

    .sm\:grid-cols-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .sm\:grid-cols-3 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .sm\:flex-row {
        flex-direction: row;
    }

    .sm\:text-lg {
        font-size: 1.125rem;
        line-height: 1.75rem;
    }

    .sm\:text-xl {
        font-size: 1.25rem;
        line-height: 1.75rem;
    }

    .sm\:p-6 {
        padding: 1.5rem;
    }

    .sm\:p-8 {
        padding: 2rem;
    }

    .sm\:px-6 {
        padding-left: 1.5rem;
        padding-right: 1.5rem;
    }
}

/* ---- MD Breakpoint (768px) ---- */
@media (min-width: 768px) {
    /* Display */
    .md\:flex {
        display: flex;
    }

    .md\:grid {
        display: grid;
    }

    .md\:block {
        display: block;
    }

    .md\:inline-flex {
        display: inline-flex;
    }

    .md\:inline-block {
        display: inline-block;
    }

    .md\:hidden {
        display: none;
    }

    .md\:inline {
        display: inline;
    }

    /* Grid */
    .md\:grid-cols-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .md\:grid-cols-3 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .md\:grid-cols-4 {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .md\:grid-cols-5 {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }

    .md\:grid-cols-6 {
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }

    .md\:grid-cols-12 {
        grid-template-columns: repeat(12, minmax(0, 1fr));
    }

    /* Column Span */
    .md\:col-span-2 {
        grid-column: span 2 / span 2;
    }

    .md\:col-span-3 {
        grid-column: span 3 / span 3;
    }

    .md\:col-span-4 {
        grid-column: span 4 / span 4;
    }

    .md\:col-span-5 {
        grid-column: span 5 / span 5;
    }

    .md\:col-span-6 {
        grid-column: span 6 / span 6;
    }

    .md\:col-span-7 {
        grid-column: span 7 / span 7;
    }

    .md\:col-span-8 {
        grid-column: span 8 / span 8;
    }

    .md\:col-span-12 {
        grid-column: span 12 / span 12;
    }

    /* Flex */
    .md\:flex-row {
        flex-direction: row;
    }

    .md\:flex-col {
        flex-direction: column;
    }

    .md\:flex-wrap {
        flex-wrap: wrap;
    }

    .md\:flex-1 {
        flex: 1 1 0%;
    }

    .md\:shrink-0 {
        flex-shrink: 0;
    }

    .md\:grow-0 {
        flex-grow: 0;
    }

    .md\:basis-\[35\%\] {
        flex-basis: 35%;
    }

    .md\:w-auto {
        width: auto;
    }

    .md\:w-full {
        width: 100%;
    }

    .md\:min-w-\[120px\] {
        min-width: 120px;
    }

    .md\:min-w-0 {
        min-width: 0;
    }

    .md\:grid-cols-\[repeat\(auto-fit\2c minmax\(140px\2c 1fr\)\)\] {
        grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    }

    .md\:items-center {
        align-items: center;
    }

    .md\:items-start {
        align-items: flex-start;
    }

    .md\:justify-between {
        justify-content: space-between;
    }

    .md\:justify-center {
        justify-content: center;
    }

    .md\:justify-start {
        justify-content: flex-start;
    }

    /* Order */
    .md\:order-1 {
        order: 1;
    }

    .md\:order-2 {
        order: 2;
    }

    /* Gap */
    .md\:gap-6 {
        gap: 1.5rem;
    }

    .md\:gap-8 {
        gap: 2rem;
    }

    .md\:gap-10 {
        gap: 2.5rem;
    }

    .md\:gap-12 {
        gap: 3rem;
    }

    /* Padding */
    .md\:p-6 {
        padding: 1.5rem;
    }

    .md\:p-8 {
        padding: 2rem;
    }

    .md\:p-10 {
        padding: 2.5rem;
    }

    .md\:p-12 {
        padding: 3rem;
    }

    .md\:px-6 {
        padding-left: 1.5rem;
        padding-right: 1.5rem;
    }

    .md\:px-8 {
        padding-left: 2rem;
        padding-right: 2rem;
    }

    .md\:px-10 {
        padding-left: 2.5rem;
        padding-right: 2.5rem;
    }

    .md\:py-0 {
        padding-top: 0;
        padding-bottom: 0;
    }

    .md\:py-4 {
        padding-top: 1rem;
        padding-bottom: 1rem;
    }

    .md\:py-6 {
        padding-top: 1.5rem;
        padding-bottom: 1.5rem;
    }

    .md\:py-8 {
        padding-top: 2rem;
        padding-bottom: 2rem;
    }

    .md\:py-10 {
        padding-top: 2.5rem;
        padding-bottom: 2.5rem;
    }

    .md\:py-12 {
        padding-top: 3rem;
        padding-bottom: 3rem;
    }

    .md\:py-16 {
        padding-top: 4rem;
        padding-bottom: 4rem;
    }

    .md\:py-18 {
        padding-top: 4.5rem;
        padding-bottom: 4.5rem;
    }

    .md\:py-20 {
        padding-top: 5rem;
        padding-bottom: 5rem;
    }

    .md\:py-24 {
        padding-top: 6rem;
        padding-bottom: 6rem;
    }

    .md\:py-28 {
        padding-top: 7rem;
        padding-bottom: 7rem;
    }

    .md\:py-32 {
        padding-top: 8rem;
        padding-bottom: 8rem;
    }

    .md\:pt-8 {
        padding-top: 2rem;
    }

    .md\:pt-12 {
        padding-top: 3rem;
    }

    .md\:pt-16 {
        padding-top: 4rem;
    }

    .md\:pt-20 {
        padding-top: 5rem;
    }

    .md\:pb-8 {
        padding-bottom: 2rem;
    }

    .md\:pb-12 {
        padding-bottom: 3rem;
    }

    .md\:pb-16 {
        padding-bottom: 4rem;
    }

    .md\:pb-20 {
        padding-bottom: 5rem;
    }

    .md\:pb-28 {
        padding-bottom: 7rem;
    }

    .md\:pb-36 {
        padding-bottom: 9rem;
    }

    .md\:pl-8 {
        padding-left: 2rem;
    }

    .md\:pl-10 {
        padding-left: 2.5rem;
    }

    .md\:pr-8 {
        padding-right: 2rem;
    }

    .md\:pr-10 {
        padding-right: 2.5rem;
    }

    /* Margin */
    .md\:mt-0 {
        margin-top: 0;
    }

    .md\:mt-4 {
        margin-top: 1rem;
    }

    .md\:mt-6 {
        margin-top: 1.5rem;
    }

    .md\:mt-8 {
        margin-top: 2rem;
    }

    .md\:mt-10 {
        margin-top: 2.5rem;
    }

    .md\:mt-12 {
        margin-top: 3rem;
    }

    .md\:mb-0 {
        margin-bottom: 0;
    }

    .md\:mb-4 {
        margin-bottom: 1rem;
    }

    .md\:mb-6 {
        margin-bottom: 1.5rem;
    }

    .md\:mb-8 {
        margin-bottom: 2rem;
    }

    .md\:mb-10 {
        margin-bottom: 2.5rem;
    }

    .md\:mb-12 {
        margin-bottom: 3rem;
    }

    .md\:mb-14 {
        margin-bottom: 3.5rem;
    }

    .md\:mb-16 {
        margin-bottom: 4rem;
    }

    .md\:ml-4 {
        margin-left: 1rem;
    }

    .md\:ml-6 {
        margin-left: 1.5rem;
    }

    .md\:mr-4 {
        margin-right: 1rem;
    }

    .md\:mx-0 {
        margin-left: 0;
        margin-right: 0;
    }

    /* Text Sizes */
    .md\:text-sm {
        font-size: 0.875rem;
        line-height: 1.25rem;
    }

    .md\:text-base {
        font-size: 1rem;
        line-height: 1.5rem;
    }

    .md\:text-lg {
        font-size: 1.125rem;
        line-height: 1.75rem;
    }

    .md\:text-xl {
        font-size: 1.25rem;
        line-height: 1.75rem;
    }

    .md\:text-2xl {
        font-size: 1.5rem;
        line-height: 2rem;
    }

    .md\:text-3xl {
        font-size: 1.875rem;
        line-height: 2.25rem;
    }

    .md\:text-4xl {
        font-size: 2.25rem;
        line-height: 2.5rem;
    }

    .md\:text-5xl {
        font-size: 3rem;
        line-height: 1;
    }

    .md\:text-6xl {
        font-size: 3.75rem;
        line-height: 1;
    }

    /* Width */
    .md\:w-auto {
        width: auto;
    }

    .md\:w-1\/2 {
        width: 50%;
    }

    .md\:w-1\/3 {
        width: 33.333333%;
    }

    .md\:w-2\/3 {
        width: 66.666667%;
    }

    /* Max Width */
    .md\:max-w-xl {
        max-width: 36rem;
    }

    .md\:max-w-2xl {
        max-width: 42rem;
    }

    .md\:max-w-3xl {
        max-width: 48rem;
    }

    .md\:max-w-none {
        max-width: none;
    }

    /* Sizing */
    .md\:h-16 {
        height: 4rem;
    }

    .md\:h-20 {
        height: 5rem;
    }

    .md\:h-24 {
        height: 6rem;
    }

    .md\:min-h-\[82vh\] {
        min-height: 82vh;
    }

    /* Space */
    .md\:space-y-0 > * + * {
        margin-top: 0;
    }

    .md\:space-y-4 > * + * {
        margin-top: 1rem;
    }

    .md\:space-y-6 > * + * {
        margin-top: 1.5rem;
    }

    .md\:space-x-4 > * + * {
        margin-left: 1rem;
    }

    .md\:space-x-6 > * + * {
        margin-left: 1.5rem;
    }

    /* Border */
    .md\:border-0 {
        border-width: 0;
    }

    .md\:border-l {
        border-left-width: 1px;
        border-left-style: solid;
    }

    /* Position */
    .md\:relative {
        position: relative;
    }

    .md\:absolute {
        position: absolute;
    }

    /* Overflow */
    .md\:overflow-visible {
        overflow: visible;
    }

    /* Text alignment */
    .md\:text-left {
        text-align: left;
    }

    .md\:text-center {
        text-align: center;
    }

    .md\:text-right {
        text-align: right;
    }
}

/* ---- LG Breakpoint (1024px) ---- */
@media (min-width: 1024px) {
    /* Display */
    .lg\:flex {
        display: flex;
    }

    .lg\:grid {
        display: grid;
    }

    .lg\:block {
        display: block;
    }

    .lg\:inline-flex {
        display: inline-flex;
    }

    .lg\:inline-block {
        display: inline-block;
    }

    .lg\:hidden {
        display: none;
    }

    /* Grid */
    .lg\:grid-cols-2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .lg\:grid-cols-3 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .lg\:grid-cols-4 {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .lg\:grid-cols-5 {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }

    .lg\:grid-cols-6 {
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }

    .lg\:grid-cols-12 {
        grid-template-columns: repeat(12, minmax(0, 1fr));
    }

    /* Column Span */
    .lg\:col-span-2 {
        grid-column: span 2 / span 2;
    }

    .lg\:col-span-3 {
        grid-column: span 3 / span 3;
    }

    .lg\:col-span-4 {
        grid-column: span 4 / span 4;
    }

    .lg\:col-span-5 {
        grid-column: span 5 / span 5;
    }

    .lg\:col-span-6 {
        grid-column: span 6 / span 6;
    }

    .lg\:col-span-7 {
        grid-column: span 7 / span 7;
    }

    .lg\:col-span-8 {
        grid-column: span 8 / span 8;
    }

    /* Flex */
    .lg\:flex-row {
        flex-direction: row;
    }

    .lg\:flex-col {
        flex-direction: column;
    }

    .lg\:items-center {
        align-items: center;
    }

    .lg\:items-start {
        align-items: flex-start;
    }

    .lg\:justify-between {
        justify-content: space-between;
    }

    .lg\:justify-center {
        justify-content: center;
    }

    .lg\:justify-start {
        justify-content: flex-start;
    }

    /* Order */
    .lg\:order-1 {
        order: 1;
    }

    .lg\:order-2 {
        order: 2;
    }

    .lg\:order-3 {
        order: 3;
    }

    /* Gap */
    .lg\:gap-6 {
        gap: 1.5rem;
    }

    .lg\:gap-8 {
        gap: 2rem;
    }

    .lg\:gap-10 {
        gap: 2.5rem;
    }

    .lg\:gap-12 {
        gap: 3rem;
    }

    .lg\:gap-16 {
        gap: 4rem;
    }

    /* Padding */
    .lg\:p-8 {
        padding: 2rem;
    }

    .lg\:p-10 {
        padding: 2.5rem;
    }

    .lg\:p-12 {
        padding: 3rem;
    }

    .lg\:px-8 {
        padding-left: 2rem;
        padding-right: 2rem;
    }

    .lg\:px-10 {
        padding-left: 2.5rem;
        padding-right: 2.5rem;
    }

    .lg\:px-12 {
        padding-left: 3rem;
        padding-right: 3rem;
    }

    .lg\:py-8 {
        padding-top: 2rem;
        padding-bottom: 2rem;
    }

    .lg\:py-12 {
        padding-top: 3rem;
        padding-bottom: 3rem;
    }

    .lg\:py-16 {
        padding-top: 4rem;
        padding-bottom: 4rem;
    }

    .lg\:py-20 {
        padding-top: 5rem;
        padding-bottom: 5rem;
    }

    .lg\:py-24 {
        padding-top: 6rem;
        padding-bottom: 6rem;
    }

    .lg\:py-28 {
        padding-top: 7rem;
        padding-bottom: 7rem;
    }

    .lg\:py-32 {
        padding-top: 8rem;
        padding-bottom: 8rem;
    }

    .lg\:pt-12 {
        padding-top: 3rem;
    }

    .lg\:pt-16 {
        padding-top: 4rem;
    }

    .lg\:pt-20 {
        padding-top: 5rem;
    }

    .lg\:pb-12 {
        padding-bottom: 3rem;
    }

    .lg\:pb-16 {
        padding-bottom: 4rem;
    }

    .lg\:pb-20 {
        padding-bottom: 5rem;
    }

    .lg\:pb-28 {
        padding-bottom: 7rem;
    }

    .lg\:pb-36 {
        padding-bottom: 9rem;
    }

    .lg\:pl-10 {
        padding-left: 2.5rem;
    }

    .lg\:pl-12 {
        padding-left: 3rem;
    }

    .lg\:pr-10 {
        padding-right: 2.5rem;
    }

    .lg\:pr-12 {
        padding-right: 3rem;
    }

    /* Margin */
    .lg\:mt-0 {
        margin-top: 0;
    }

    .lg\:mt-6 {
        margin-top: 1.5rem;
    }

    .lg\:mt-8 {
        margin-top: 2rem;
    }

    .lg\:mt-12 {
        margin-top: 3rem;
    }

    .lg\:mb-0 {
        margin-bottom: 0;
    }

    .lg\:mb-6 {
        margin-bottom: 1.5rem;
    }

    .lg\:mb-8 {
        margin-bottom: 2rem;
    }

    .lg\:mb-10 {
        margin-bottom: 2.5rem;
    }

    .lg\:mb-12 {
        margin-bottom: 3rem;
    }

    .lg\:mb-14 {
        margin-bottom: 3.5rem;
    }

    .lg\:mb-16 {
        margin-bottom: 4rem;
    }

    .lg\:ml-6 {
        margin-left: 1.5rem;
    }

    .lg\:ml-8 {
        margin-left: 2rem;
    }

    .lg\:mr-6 {
        margin-right: 1.5rem;
    }

    /* Text Sizes */
    .lg\:text-base {
        font-size: 1rem;
        line-height: 1.5rem;
    }

    .lg\:text-lg {
        font-size: 1.125rem;
        line-height: 1.75rem;
    }

    .lg\:text-xl {
        font-size: 1.25rem;
        line-height: 1.75rem;
    }

    .lg\:text-2xl {
        font-size: 1.5rem;
        line-height: 2rem;
    }

    .lg\:text-3xl {
        font-size: 1.875rem;
        line-height: 2.25rem;
    }

    .lg\:text-4xl {
        font-size: 2.25rem;
        line-height: 2.5rem;
    }

    .lg\:text-5xl {
        font-size: 3rem;
        line-height: 1;
    }

    .lg\:text-6xl {
        font-size: 3.75rem;
        line-height: 1;
    }

    /* Width */
    .lg\:w-auto {
        width: auto;
    }

    .lg\:w-1\/2 {
        width: 50%;
    }

    .lg\:w-1\/3 {
        width: 33.333333%;
    }

    .lg\:w-2\/3 {
        width: 66.666667%;
    }

    .lg\:w-\[58\%\] {
        width: 58%;
    }

    /* Max Width */
    .lg\:max-w-xl {
        max-width: 36rem;
    }

    .lg\:max-w-2xl {
        max-width: 42rem;
    }

    .lg\:max-w-3xl {
        max-width: 48rem;
    }

    .lg\:max-w-4xl {
        max-width: 56rem;
    }

    .lg\:max-w-none {
        max-width: none;
    }

    /* Height */
    .lg\:h-20 {
        height: 5rem;
    }

    .lg\:h-24 {
        height: 6rem;
    }

    .lg\:min-h-\[82vh\] {
        min-height: 82vh;
    }

    /* Space */
    .lg\:space-y-0 > * + * {
        margin-top: 0;
    }

    .lg\:space-y-6 > * + * {
        margin-top: 1.5rem;
    }

    .lg\:space-x-6 > * + * {
        margin-left: 1.5rem;
    }

    .lg\:space-x-8 > * + * {
        margin-left: 2rem;
    }

    /* Position */
    .lg\:relative {
        position: relative;
    }

    .lg\:absolute {
        position: absolute;
    }

    /* Text alignment */
    .lg\:text-left {
        text-align: left;
    }

    .lg\:text-center {
        text-align: center;
    }

    .lg\:text-right {
        text-align: right;
    }
}

/* ---- XL Breakpoint (1280px) ---- */
@media (min-width: 1280px) {
    .xl\:grid-cols-3 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .xl\:grid-cols-4 {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .xl\:px-0 {
        padding-left: 0;
        padding-right: 0;
    }

    .xl\:text-5xl {
        font-size: 3rem;
        line-height: 1;
    }

    .xl\:text-6xl {
        font-size: 3.75rem;
        line-height: 1;
    }
}

/* ═══════════════════════════════════════════
   16. COMPONENT: Section Labels & Titles
   ═══════════════════════════════════════════ */

.section-label {
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--crater-blue);
}

.section-title {
    font-size: clamp(1.75rem, 4vw, 2.75rem);
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: -0.02em;
    color: var(--crater-black);
}

.section-desc {
    font-size: 1.0625rem;
    line-height: 1.7;
    color: var(--crater-gray);
    max-width: 640px;
}

.grad-text {
    background: linear-gradient(135deg, #0071e3 0%, #40a0ff 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}

/* ═══════════════════════════════════════════
   17. COMPONENT: Cards
   ═══════════════════════════════════════════ */

.card {
    background: #fff;
    border: 1px solid rgba(0, 0, 0, 0.04);
    border-radius: 20px;
    box-shadow: 0 2px 20px rgba(0, 0, 0, 0.02), 0 1px 3px rgba(0, 0, 0, 0.02);
    transition: all 0.5s var(--crater-ease);
}

.card:hover {
    transform: translateY(-6px);
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.06), 0 4px 12px rgba(0, 0, 0, 0.03);
    border-color: rgba(0, 113, 227, 0.12);
}

.card-dark {
    background: #1d1d1f;
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 20px;
    color: #f5f5f7;
    transition: all 0.5s var(--crater-ease);
}

.card-dark:hover {
    transform: translateY(-6px);
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.2);
    border-color: rgba(255, 255, 255, 0.1);
}

/* ═══════════════════════════════════════════
   18. COMPONENT: Buttons
   ═══════════════════════════════════════════ */

.btn-blue {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    background: #0071e3;
    color: #fff;
    border-radius: 980px;
    font-weight: 500;
    padding: 0.625rem 1.5rem;
    font-size: 0.875rem;
    transition: all 0.3s ease;
    border: none;
    cursor: pointer;
    text-decoration: none;
    white-space: nowrap;
}

.btn-blue:hover {
    background: #0077ed;
    transform: translateY(-1px);
    box-shadow: 0 4px 16px rgba(0, 113, 227, 0.25);
}

.btn-outline {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    color: #0071e3;
    border: 1.5px solid #0071e3;
    border-radius: 980px;
    font-weight: 500;
    padding: 0.625rem 1.5rem;
    font-size: 0.875rem;
    background: transparent;
    transition: all 0.3s ease;
    cursor: pointer;
    text-decoration: none;
    white-space: nowrap;
}

.btn-outline:hover {
    background: #0071e3;
    color: #fff;
    transform: translateY(-1px);
}

.btn-ghost {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    color: #1d1d1f;
    border: 1px solid #d2d2d7;
    border-radius: 980px;
    font-weight: 500;
    padding: 0.625rem 1.5rem;
    font-size: 0.875rem;
    background: transparent;
    transition: all 0.3s ease;
    cursor: pointer;
    text-decoration: none;
    white-space: nowrap;
}

.btn-ghost:hover {
    background: #f5f5f7;
    border-color: #86868b;
}

/* ═══════════════════════════════════════════
   19. COMPONENT: Pills / Tags
   ═══════════════════════════════════════════ */

.pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 14px;
    border-radius: 980px;
    font-size: 0.75rem;
    font-weight: 600;
}

/* ═══════════════════════════════════════════
   20. COMPONENT: Navigation
   ═══════════════════════════════════════════ */

#navbar {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 50;
    backdrop-filter: blur(24px);
    -webkit-backdrop-filter: blur(24px);
    background: rgba(255, 255, 255, 0.8);
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
    transition: all 0.3s ease;
}

.nav-link {
    position: relative;
    text-decoration: none;
    font-size: 0.875rem;
    font-weight: 500;
    color: #1d1d1f;
    transition: color 0.3s ease;
}

.nav-link::after {
    content: '';
    position: absolute;
    bottom: -4px;
    left: 50%;
    width: 0;
    height: 2px;
    background: #0071e3;
    transition: all 0.3s ease;
    transform: translateX(-50%);
    border-radius: 1px;
}

.nav-link:hover {
    color: #0071e3;
}

.nav-link:hover::after {
    width: 100%;
}

.nav-link.active,
.nav-link[aria-current="page"] {
    color: #0071e3;
}

.nav-link.active::after,
.nav-link[aria-current="page"]::after {
    width: 100%;
}

#mobile-menu {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s var(--crater-ease);
}

#mobile-menu.open {
    max-height: 500px;
}

/* ═══════════════════════════════════════════
   21. COMPONENT: Scroll Reveal
   ═══════════════════════════════════════════ */

.reveal {
    opacity: 0;
    transform: translateY(32px);
    transition: all 0.8s var(--crater-ease);
}

.reveal.vis {
    opacity: 1;
    transform: translateY(0);
}

/* ═══════════════════════════════════════════
   22. COMPONENT: Animations
   ═══════════════════════════════════════════ */

@keyframes pulse {
    0%, 100% {
        opacity: 1;
        transform: scale(1);
    }
    50% {
        opacity: 0.5;
        transform: scale(1.5);
    }
}

.pulse-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #0071e3;
    animation: pulse 2s infinite;
}

@keyframes flywheel-spin {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}

@keyframes flywheel-dash-flow {
    from {
        stroke-dashoffset: 0;
    }
    to {
        stroke-dashoffset: -40;
    }
}

@keyframes flywheel-node-pulse {
    0%, 100% {
        box-shadow: 0 0 0 0 rgba(0, 113, 227, 0.15);
    }
    50% {
        box-shadow: 0 0 0 8px rgba(0, 113, 227, 0);
    }
}

.flywheel-ring {
    animation: flywheel-spin 30s linear infinite;
}

.flywheel-node {
    animation: flywheel-node-pulse 3s ease-in-out infinite;
}

.flywheel-node:nth-child(2) {
    animation-delay: 1s;
}

.flywheel-node:nth-child(3) {
    animation-delay: 2s;
}

@keyframes fade-in-up {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.sandbox-animate {
    animation: fade-in-up 0.6s ease-out both;
}

.sandbox-animate-delay {
    animation: fade-in-up 0.6s ease-out 0.3s both;
}

/* Animated pulse rings (for world map SVG) */
@keyframes ping-ring {
    0% {
        transform: scale(1);
        opacity: 0.6;
    }
    100% {
        transform: scale(2.5);
        opacity: 0;
    }
}

.animate-ping {
    animation: ping-ring 2s cubic-bezier(0, 0, 0.2, 1) infinite;
}

.animate-ping-delayed {
    animation: ping-ring 2s cubic-bezier(0, 0, 0.2, 1) infinite;
    animation-delay: 1s;
}

/* ═══════════════════════════════════════════
   23. COMPONENT: Hero Gradient
   ═══════════════════════════════════════════ */

.hero-gradient {
    background:
        radial-gradient(ellipse 80% 60% at 70% 40%, rgba(0, 113, 227, 0.04) 0%, transparent 70%),
        radial-gradient(ellipse 50% 50% at 20% 80%, rgba(0, 113, 227, 0.02) 0%, transparent 70%);
}

/* ═══════════════════════════════════════════
   24. COMPONENT: Code Block
   ═══════════════════════════════════════════ */

.code-block {
    background: #1d1d1f;
    border-radius: 16px;
    padding: 1.5rem;
    font-family: 'JetBrains Mono', monospace;
    font-size: 0.8125rem;
    line-height: 1.7;
    color: #f5f5f7;
    overflow-x: auto;
}

.code-block .cm {
    color: #6a737d;
}

.code-block .kw {
    color: #79c0ff;
}

.code-block .str {
    color: #a5d6ff;
}

.code-block .num {
    color: #56d364;
}

.code-block .fn {
    color: #d2a8ff;
}

/* ═══════════════════════════════════════════
   25. COMPONENT: Range Slider
   ═══════════════════════════════════════════ */

input[type="range"] {
    -webkit-appearance: none;
    appearance: none;
    width: 100%;
    height: 4px;
    background: #d2d2d7;
    border-radius: 2px;
    outline: none;
}

input[type="range"]::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: #0071e3;
    cursor: pointer;
    box-shadow: 0 2px 8px rgba(0, 113, 227, 0.3);
    transition: transform 0.15s ease;
}

input[type="range"]::-webkit-slider-thumb:hover {
    transform: scale(1.15);
}

input[type="range"]::-moz-range-thumb {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: #0071e3;
    cursor: pointer;
    border: none;
    box-shadow: 0 2px 8px rgba(0, 113, 227, 0.3);
    transition: transform 0.15s ease;
}

input[type="range"]::-moz-range-thumb:hover {
    transform: scale(1.15);
}

input[type="range"]::-moz-range-track {
    height: 4px;
    background: #d2d2d7;
    border-radius: 2px;
}

/* ═══════════════════════════════════════════
   26. COMPONENT: Step Numbers
   ═══════════════════════════════════════════ */

.step-num {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: #0071e3;
    color: #fff;
    font-weight: 700;
    font-size: 0.875rem;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

/* ═══════════════════════════════════════════
   27. COMPONENT: Toast
   ═══════════════════════════════════════════ */

.toast {
    position: fixed;
    top: 24px;
    left: 50%;
    transform: translateX(-50%) translateY(-100px);
    background: #1d1d1f;
    color: #fff;
    padding: 14px 28px;
    border-radius: 980px;
    font-size: 0.875rem;
    font-weight: 500;
    z-index: 100;
    transition: transform 0.5s var(--crater-ease);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15);
    display: flex;
    align-items: center;
    gap: 8px;
    white-space: nowrap;
}

.toast.show {
    transform: translateX(-50%) translateY(0);
}

/* ═══════════════════════════════════════════
   28. COMPONENT: Flow Line
   ═══════════════════════════════════════════ */

.flow-line {
    position: relative;
}

.flow-line::after {
    content: '';
    position: absolute;
    top: 50%;
    right: -2rem;
    width: 2rem;
    height: 2px;
    background: linear-gradient(90deg, #d2d2d7, transparent);
}

/* ═══════════════════════════════════════════
   29. COMPONENT: Prose (Article Content)
   ═══════════════════════════════════════════ */

.prose h2 {
    font-size: 1.5rem;
    font-weight: 700;
    color: #1d1d1f;
    margin-top: 2.5rem;
    margin-bottom: 1rem;
    letter-spacing: -0.02em;
}

.prose h3 {
    font-size: 1.25rem;
    font-weight: 700;
    color: #1d1d1f;
    margin-top: 2rem;
    margin-bottom: 0.75rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid #d2d2d7;
}

.prose h4 {
    font-size: 1.125rem;
    font-weight: 600;
    color: #1d1d1f;
    margin-top: 1.5rem;
    margin-bottom: 0.5rem;
}

.prose p {
    font-size: 0.9375rem;
    line-height: 1.8;
    color: #1d1d1f;
    margin-bottom: 1rem;
}

.prose ul {
    list-style: disc;
    padding-left: 1.25rem;
    margin-bottom: 1rem;
}

.prose ol {
    list-style: decimal;
    padding-left: 1.25rem;
    margin-bottom: 1rem;
}

.prose li {
    font-size: 0.9375rem;
    line-height: 1.8;
    color: #1d1d1f;
    margin-bottom: 0.5rem;
}

.prose strong {
    font-weight: 700;
}

.prose em {
    font-style: italic;
}

.prose a {
    color: #0071e3;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.prose a:hover {
    color: #0077ed;
}

.prose blockquote {
    background: #f5f5f7;
    border-left: 3px solid #0071e3;
    padding: 1rem 1.25rem;
    border-radius: 0 12px 12px 0;
    margin: 1.5rem 0;
    font-style: italic;
    color: #86868b;
    font-size: 0.875rem;
}

.prose img {
    border-radius: 12px;
    margin: 1.5rem 0;
}

.prose code {
    background: #f5f5f7;
    padding: 0.125rem 0.375rem;
    border-radius: 4px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 0.85em;
}

.prose pre {
    background: #1d1d1f;
    color: #f5f5f7;
    padding: 1.5rem;
    border-radius: 16px;
    overflow-x: auto;
    margin: 1.5rem 0;
    font-family: 'JetBrains Mono', monospace;
    font-size: 0.8125rem;
    line-height: 1.7;
}

.prose hr {
    border: none;
    border-top: 1px solid #d2d2d7;
    margin: 2rem 0;
}

/* ═══════════════════════════════════════════
   30. COMPONENT: Accessibility
   ═══════════════════════════════════════════ */

.skip-link {
    position: absolute;
    top: -40px;
    left: 0;
    background: #0071e3;
    color: #fff;
    padding: 8px 16px;
    z-index: 100;
    font-size: 0.875rem;
    border-radius: 0 0 12px 0;
    transition: top 0.3s;
}

.skip-link:focus {
    top: 0;
}

/* Screen reader only */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border-width: 0;
}

/* ═══════════════════════════════════════════
   31. WORDPRESS SPECIFIC
   ═══════════════════════════════════════════ */

/* Admin bar fix - offset fixed navbar */
body.admin-bar #navbar {
    top: 32px;
}

@media screen and (max-width: 782px) {
    body.admin-bar #navbar {
        top: 46px;
    }
}

/* WP pagination */
.nav-links {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.nav-links .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.5rem;
    height: 2.5rem;
    padding: 0 0.75rem;
    border-radius: 980px;
    font-size: 0.875rem;
    font-weight: 500;
    background: #f5f5f7;
    color: #1d1d1f;
    transition: all 0.3s ease;
    text-decoration: none;
}

.nav-links .page-numbers.current,
.nav-links .page-numbers:hover {
    background: #0071e3;
    color: #fff;
}

.nav-links .page-numbers.dots {
    background: transparent;
    min-width: auto;
    padding: 0 0.25rem;
}

/* WP nav menu cleanup */
.menu li {
    list-style: none;
}

.menu a {
    text-decoration: none;
}

/* WP post navigation */
.post-navigation {
    display: flex;
    justify-content: space-between;
    padding: 2rem 0;
    border-top: 1px solid #d2d2d7;
    margin-top: 2rem;
}

.post-navigation .nav-previous a,
.post-navigation .nav-next a {
    color: #0071e3;
    font-weight: 500;
    font-size: 0.875rem;
    transition: color 0.3s ease;
}

.post-navigation .nav-previous a:hover,
.post-navigation .nav-next a:hover {
    color: #0077ed;
}

/* WP tag cloud */
.tagcloud {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.tagcloud a {
    display: inline-flex;
    align-items: center;
    padding: 6px 14px;
    border-radius: 980px;
    font-size: 0.75rem !important;
    font-weight: 600;
    background: #f5f5f7;
    color: #86868b;
    transition: all 0.3s ease;
    text-decoration: none;
}

.tagcloud a:hover {
    background: #0071e3;
    color: #fff;
}

/* WP search form */
.search-form {
    display: flex;
    gap: 0.5rem;
}

.search-form .search-field {
    flex: 1;
    padding: 0.625rem 1rem;
    border: 1px solid #d2d2d7;
    border-radius: 980px;
    font-size: 0.875rem;
    outline: none;
    transition: border-color 0.3s ease;
}

.search-form .search-field:focus {
    border-color: #0071e3;
}

.search-form .search-submit {
    background: #0071e3;
    color: #fff;
    border: none;
    border-radius: 980px;
    padding: 0.625rem 1.5rem;
    font-weight: 500;
    font-size: 0.875rem;
    cursor: pointer;
    transition: background 0.3s ease;
}

.search-form .search-submit:hover {
    background: #0077ed;
}

/* WP comments */
.comment-list {
    list-style: none;
    padding: 0;
}

.comment-list .comment {
    padding: 1.5rem 0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

.comment-list .comment:last-child {
    border-bottom: none;
}

.comment-author {
    font-weight: 600;
    color: #1d1d1f;
}

.comment-metadata {
    font-size: 0.75rem;
    color: #86868b;
    margin-top: 0.25rem;
}

.comment-content {
    font-size: 0.9375rem;
    line-height: 1.7;
    color: #1d1d1f;
    margin-top: 0.75rem;
}

/* WP widgets */
.widget {
    margin-bottom: 2rem;
}

.widget-title {
    font-size: 0.875rem;
    font-weight: 700;
    color: #1d1d1f;
    margin-bottom: 1rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

/* WP gallery */
.wp-block-gallery {
    display: grid;
    gap: 1rem;
}

/* Alignments */
.alignwide {
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
}

.alignfull {
    max-width: 100%;
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
}

.aligncenter {
    display: block;
    margin-left: auto;
    margin-right: auto;
}

/* Line clamp fallbacks */
.line-clamp-2 {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.line-clamp-3 {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* WP embed */
.wp-block-embed {
    margin: 1.5rem 0;
}

/* WP image caption */
.wp-caption {
    max-width: 100%;
}

.wp-caption-text {
    font-size: 0.75rem;
    color: #86868b;
    text-align: center;
    margin-top: 0.5rem;
}

/* Body class spacing for fixed nav */
body:not(.home) .crater-main,
body.page .crater-main {
    padding-top: var(--crater-nav-h);
}

body.home .crater-main {
    padding-top: var(--crater-nav-h);
}

/* ═══════════════════════════════════════════
   32. RADIAL GRADIENT HELPERS
   ═══════════════════════════════════════════ */

.bg-radial-subtle-1 {
    background: radial-gradient(ellipse 70% 50% at 50% 100%, rgba(0, 113, 227, 0.03) 0%, transparent 70%);
}

.bg-radial-subtle-2 {
    background: radial-gradient(ellipse 60% 50% at 80% 30%, rgba(0, 113, 227, 0.03) 0%, transparent 70%);
}

.bg-radial-subtle-3 {
    background: radial-gradient(ellipse 60% 50% at 20% 40%, rgba(0, 113, 227, 0.03) 0%, transparent 70%);
}

.bg-radial-dark {
    background: radial-gradient(ellipse 60% 50% at 80% 20%, rgba(0, 113, 227, 0.08) 0%, transparent 70%);
}

/* Additional radial helpers for various pages */
.bg-radial-subtle-4 {
    background: radial-gradient(ellipse 50% 50% at 50% 50%, rgba(0, 113, 227, 0.03) 0%, transparent 70%);
}

.bg-radial-subtle-5 {
    background: radial-gradient(ellipse 80% 60% at 50% 0%, rgba(0, 113, 227, 0.04) 0%, transparent 70%);
}

/* ═══════════════════════════════════════════
   33. ARBITRARY-VALUE UTILITIES (补全)
   ═══════════════════════════════════════════ */

/* ── Position ── */
.top-1\/2 { top: 50%; }
.-left-\[7px\] { left: -7px; }
.right-\[-2\%\] { right: -2%; }
.inset-\[28\%\] { inset: 28%; }

/* ── Sizing ── */
.w-\[58\%\] { width: 58%; }
.w-\[360px\] { width: 360px; }
.h-\[360px\] { height: 360px; }
.min-h-\[82vh\] { min-height: 82vh; }
.min-w-\[110px\] { min-width: 110px; }
.min-w-\[140px\] { min-width: 140px; }
.max-w-\[640px\] { max-width: 640px; }
.max-w-\[720px\] { max-width: 720px; }
.max-w-\[760px\] { max-width: 760px; }
.max-w-\[800px\] { max-width: 800px; }
.max-w-\[900px\] { max-width: 900px; }
.max-w-\[1100px\] { max-width: 1100px; }
.max-w-\[1200px\] { max-width: 1200px; }

/* ── Aspect Ratio ── */
.aspect-\[16\/10\] { aspect-ratio: 16 / 10; }

/* ── Typography ── */
.text-\[8px\] { font-size: 8px; }
.text-\[9px\] { font-size: 9px; }
.text-\[10px\] { font-size: 10px; }
.text-\[11px\] { font-size: 11px; }
.text-\[12px\] { font-size: 12px; }
.text-\[13px\] { font-size: 13px; }
.text-\[15px\] { font-size: 15px; }

.text-\[clamp\(1\.25rem\,3vw\,1\.75rem\)\] { font-size: clamp(1.25rem, 3vw, 1.75rem); }
.text-\[clamp\(1\.5rem\,4vw\,2\.25rem\)\] { font-size: clamp(1.5rem, 4vw, 2.25rem); }
.text-\[clamp\(1\.75rem\,4vw\,2\.5rem\)\] { font-size: clamp(1.75rem, 4vw, 2.5rem); }
.text-\[clamp\(1\.75rem\,4vw\,2\.75rem\)\] { font-size: clamp(1.75rem, 4vw, 2.75rem); }
.text-\[clamp\(2rem\,5vw\,3rem\)\] { font-size: clamp(2rem, 5vw, 3rem); }
.text-\[clamp\(2rem\,5vw\,3\.25rem\)\] { font-size: clamp(2rem, 5vw, 3.25rem); }
.text-\[clamp\(2rem\,5vw\,3\.5rem\)\] { font-size: clamp(2rem, 5vw, 3.5rem); }
.text-\[clamp\(2\.5rem\,6vw\,4\.5rem\)\] { font-size: clamp(2.5rem, 6vw, 4.5rem); }
.text-\[clamp\(3\.5rem\,8vw\,6rem\)\] { font-size: clamp(3.5rem, 8vw, 6rem); }
.text-\[clamp\(6rem\,20vw\,12rem\)\] { font-size: clamp(6rem, 20vw, 12rem); }

/* ── Line Height ── */
.leading-\[1\.05\] { line-height: 1.05; }
.leading-\[1\.1\] { line-height: 1.1; }
.leading-\[1\.12\] { line-height: 1.12; }
.leading-\[1\.15\] { line-height: 1.15; }
.leading-\[1\.8\] { line-height: 1.8; }
.leading-\[1\.9\] { line-height: 1.9; }

/* ── Letter Spacing ── */
.tracking-\[-0\.02em\] { letter-spacing: -0.02em; }
.tracking-\[-0\.025em\] { letter-spacing: -0.025em; }
.tracking-\[-0\.03em\] { letter-spacing: -0.03em; }
.tracking-\[-0\.04em\] { letter-spacing: -0.04em; }

/* ── Opacity ── */
.opacity-\[0\.07\] { opacity: 0.07; }

/* ── Borders ── */
.border-black\/\[0\.03\] { border-color: rgba(0, 0, 0, 0.03); }
.border-black\/\[0\.04\] { border-color: rgba(0, 0, 0, 0.04); }
.border-black\/\[0\.06\] { border-color: rgba(0, 0, 0, 0.06); }
.border-white\/\[0\.06\] { border-color: rgba(255, 255, 255, 0.06); }
.border-a-blue\/20 { border-color: rgba(0, 113, 227, 0.2); }
.border-emerald-100 { border-color: #a7f3d0; }
.border-rose-100 { border-color: #fecdd3; }
.border-y { border-top-width: 1px; border-bottom-width: 1px; }

/* ── Backgrounds ── */
.bg-white\/\[0\.06\] { background-color: rgba(255, 255, 255, 0.06); }
.bg-a-blue\/\[0\.08\] { background-color: rgba(0, 113, 227, 0.08); }
.bg-amber-500\/10 { background-color: rgba(245, 158, 11, 0.1); }
.bg-amber-500\/40 { background-color: rgba(245, 158, 11, 0.4); }
.bg-emerald-500 { background-color: #10b981; }
.bg-emerald-500\/10 { background-color: rgba(16, 185, 129, 0.1); }
.bg-emerald-500\/40 { background-color: rgba(16, 185, 129, 0.4); }
.bg-purple-500\/10 { background-color: rgba(168, 85, 247, 0.1); }
.bg-purple-500\/40 { background-color: rgba(168, 85, 247, 0.4); }
.bg-rose-500 { background-color: #f43f5e; }
.bg-a-gray { background-color: #86868b; }

/* ── Hover ── */
.hover\:bg-white\/\[0\.06\]:hover { background-color: rgba(255, 255, 255, 0.06); }

/* ═══════════════════════════════════════════
   34. MISSING UTILITY CLASSES (FINAL BATCH)
   ═══════════════════════════════════════════ */

/* ── Padding ── */
.pt-14 { padding-top: 3.5rem; }
.py-3\.5 { padding-top: 0.875rem; padding-bottom: 0.875rem; }

/* ── Margin ── */
.mt-0\.5 { margin-top: 0.125rem; }
.mt-auto { margin-top: auto; }
.mr-1\.5 { margin-right: 0.375rem; }
.ml-0\.5 { margin-left: 0.125rem; }
.ml-1\.5 { margin-left: 0.375rem; }
.mb-24 { margin-bottom: 6rem; }
.mb-28 { margin-bottom: 7rem; }

/* ── Space ── */
.space-y-0 > * + * { margin-top: 0; }
.space-y-2\.5 > * + * { margin-top: 0.625rem; }
.space-y-16 > * + * { margin-top: 4rem; }

/* ── Text Color ── */
.text-a-lgray { color: #f5f5f7; }
.text-a-blue\/50 { color: rgba(0, 113, 227, 0.5); }
.text-emerald-500\/50 { color: rgba(16, 185, 129, 0.5); }

/* ── Focus States ── */
.focus\:border-a-blue:focus { border-color: #0071e3; }
.focus\:ring-2:focus { box-shadow: 0 0 0 2px rgba(0, 113, 227, 0.1); }
.focus\:ring-a-blue\/10:focus { --tw-ring-color: rgba(0, 113, 227, 0.1); }

/* ── SM Breakpoint (640px) ── */
@media (min-width: 640px) {
    .sm\:w-auto { width: auto; }
}

/* ── MD Breakpoint (768px) ── */
@media (min-width: 768px) {
    .md\:pt-4 { padding-top: 1rem; }
    .md\:mt-28 { margin-top: 7rem; }
}

/* ── Card + Background Color Overrides ── */
/* .card uses shorthand `background` which overrides bg-* utilities at equal specificity.
   These compound selectors (.card.bg-*) have higher specificity (0,2,0 > 0,1,0). */
.card.bg-a-black { background: #1d1d1f; }
.card.bg-a-lgray { background: #f5f5f7; }
.card.bg-a-lgray\/60 { background: rgba(245, 245, 247, 0.6); }
.card.bg-a-lgray\/50 { background: rgba(245, 245, 247, 0.5); }
.card.bg-a-lgray\/80 { background: rgba(245, 245, 247, 0.8); }
.card.bg-a-blue { background: #0071e3; }
.card.bg-a-blue\/10 { background: rgba(0, 113, 227, 0.1); }
.card.bg-a-blue\/5 { background: rgba(0, 113, 227, 0.05); }
.card.bg-emerald-500 { background: #10b981; }
.card.bg-emerald-500\/10 { background: rgba(16, 185, 129, 0.1); }
.card.bg-rose-500 { background: #f43f5e; }
