:root {
    color-scheme: dark;
    --night: #07110c;
    --night-soft: #0d1a12;
    --panel: #112019;
    --panel-strong: #15271d;
    --lime: #c9f05b;
    --lime-deep: #94c532;
    --cream: #f5efdc;
    --muted: #a8ad9c;
    --line: rgba(223, 239, 204, 0.15);
    --danger: #ff907b;
    --display: "Cinzel", Georgia, serif;
    --body: "Inter", system-ui, sans-serif;
}

* { box-sizing: border-box; }

html {
    min-height: 100%;
    background: var(--night);
    scroll-behavior: smooth;
}

body {
    min-width: 320px;
    min-height: 100svh;
    margin: 0;
    color: var(--cream);
    font-family: var(--body);
    background:
        radial-gradient(circle at 12% 18%, rgba(122, 168, 64, 0.1), transparent 28%),
        radial-gradient(circle at 88% 9%, rgba(67, 110, 61, 0.12), transparent 25%),
        var(--night);
    overflow-x: hidden;
}

body::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    opacity: 0.18;
    background-image:
        radial-gradient(circle, rgba(224, 240, 201, 0.28) 0 1px, transparent 1.3px),
        radial-gradient(circle, rgba(224, 240, 201, 0.17) 0 1px, transparent 1.3px);
    background-position: 0 0, 29px 24px;
    background-size: 54px 54px;
    mask-image: linear-gradient(to bottom, black, transparent 78%);
}

button,
input { font: inherit; }

button,
a { -webkit-tap-highlight-color: transparent; }

a { color: inherit; }

.site-header {
    width: min(1220px, calc(100% - 48px));
    min-height: 84px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    border-bottom: 1px solid rgba(225, 239, 204, 0.1);
}

.mini-brand {
    display: inline-flex;
    align-items: center;
    gap: 11px;
    color: var(--cream);
    text-decoration: none;
}

.mini-brand__mark,
.modal-brand > span {
    width: 39px;
    height: 39px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(201, 240, 91, 0.38);
    border-radius: 11px 4px 11px 4px;
    color: var(--lime);
    background: linear-gradient(145deg, rgba(201, 240, 91, 0.14), rgba(201, 240, 91, 0.02));
    font-family: var(--display);
    font-size: 1.35rem;
    font-weight: 800;
    box-shadow: inset 0 1px rgba(255, 255, 255, 0.08);
}

.mini-brand > span:last-child,
.modal-brand p {
    display: flex;
    flex-direction: column;
    line-height: 1;
}

.mini-brand strong,
.modal-brand strong {
    font-family: var(--display);
    font-size: 0.95rem;
    letter-spacing: 0.09em;
}

.mini-brand small,
.modal-brand small {
    margin-top: 4px;
    color: var(--lime);
    font-size: 0.57rem;
    font-weight: 800;
    letter-spacing: 0.25em;
}

.site-header nav,
.site-footer nav {
    display: flex;
    align-items: center;
    gap: clamp(15px, 3vw, 34px);
}

.site-header nav a,
.site-footer nav a {
    color: rgba(235, 234, 217, 0.65);
    font-size: 0.74rem;
    font-weight: 700;
    text-decoration: none;
    transition: color 150ms ease;
}

.site-header nav a:hover,
.site-header nav a:focus-visible,
.site-footer nav a:hover,
.site-footer nav a:focus-visible { color: var(--lime); }

.site-header nav a i {
    width: 6px;
    height: 6px;
    margin-right: 7px;
    display: inline-block;
    border-radius: 50%;
    background: var(--lime);
    box-shadow: 0 0 12px rgba(201, 240, 91, 0.72);
}

.header-login {
    min-height: 41px;
    padding: 0 19px;
    border: 1px solid rgba(225, 239, 204, 0.21);
    border-radius: 9px;
    color: var(--cream);
    background: rgba(255, 255, 255, 0.035);
    font-size: 0.75rem;
    font-weight: 800;
    cursor: pointer;
}

.header-login:hover,
.header-login:focus-visible {
    border-color: rgba(201, 240, 91, 0.55);
    color: var(--lime);
    outline: none;
}

main { overflow: hidden; }

.hero {
    width: min(1220px, calc(100% - 48px));
    min-height: calc(100svh - 84px);
    margin: 0 auto;
    padding: clamp(58px, 7vw, 100px) 0 72px;
    display: grid;
    grid-template-columns: minmax(360px, 0.84fr) minmax(460px, 1.16fr);
    align-items: center;
    gap: clamp(48px, 7vw, 92px);
}

.hero-copy { position: relative; z-index: 3; }

.eyebrow,
.access-eyebrow {
    margin: 0 0 18px;
    color: var(--lime);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.eyebrow {
    display: flex;
    align-items: center;
    gap: 11px;
}

.eyebrow span {
    width: 24px;
    height: 1px;
    background: var(--lime);
    box-shadow: 0 0 10px rgba(201, 240, 91, 0.48);
}

.hero h1,
.section-heading h2 {
    margin: 0;
    font-family: var(--display);
    font-weight: 700;
    letter-spacing: -0.045em;
}

.hero h1 {
    font-size: clamp(3.4rem, 6.3vw, 6.1rem);
    line-height: 0.9;
}

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

.hero-lead {
    max-width: 580px;
    margin: 26px 0 0;
    color: rgba(226, 226, 207, 0.7);
    font-size: clamp(0.92rem, 1.4vw, 1.04rem);
    line-height: 1.75;
}

.hero-actions {
    margin-top: 34px;
    display: flex;
    align-items: center;
    gap: 12px;
}

.cta-primary,
.cta-guest,
.primary-action,
.secondary-action,
.campaign-callout button {
    min-height: 55px;
    border-radius: 11px;
    font-weight: 800;
    cursor: pointer;
    transition: transform 150ms ease, filter 150ms ease, border-color 150ms ease, background 150ms ease;
}

.cta-primary {
    min-width: 194px;
    padding: 0 18px 0 22px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border: 1px solid rgba(231, 255, 165, 0.42);
    color: #111c0c;
    background: linear-gradient(135deg, #dbfa78, #a5d73e);
    box-shadow: 0 15px 36px rgba(143, 193, 52, 0.18), inset 0 1px rgba(255, 255, 255, 0.46);
    font-size: 0.82rem;
}

.cta-primary b { font-size: 1.15rem; }

.cta-guest {
    padding: 0 20px;
    border: 1px solid rgba(225, 239, 204, 0.18);
    color: rgba(244, 241, 223, 0.82);
    background: rgba(255, 255, 255, 0.035);
    font-size: 0.78rem;
}

.cta-guest span { margin-right: 7px; color: var(--lime); }

.cta-primary:hover,
.primary-action:hover,
.campaign-callout button:hover { transform: translateY(-2px); filter: brightness(1.07); }

.cta-guest:hover { border-color: rgba(201, 240, 91, 0.45); background: rgba(201, 240, 91, 0.06); }

.cta-primary:focus-visible,
.cta-guest:focus-visible,
.primary-action:focus-visible,
.secondary-action:focus-visible,
.campaign-callout button:focus-visible {
    outline: 3px solid rgba(201, 240, 91, 0.3);
    outline-offset: 3px;
}

button:disabled { opacity: 0.62; cursor: wait; transform: none !important; }

.guest-status {
    min-height: 20px;
    margin: 9px 0 -4px;
    color: var(--danger);
    font-size: 0.72rem;
}

.hero-proof {
    margin-top: 32px;
    padding-top: 24px;
    display: flex;
    flex-wrap: wrap;
    gap: 17px 24px;
    border-top: 1px solid rgba(225, 239, 204, 0.11);
}

.hero-proof span {
    color: rgba(205, 207, 189, 0.56);
    font-size: 0.68rem;
    font-weight: 700;
    white-space: nowrap;
}

.hero-proof strong {
    margin-right: 5px;
    color: var(--cream);
    font-family: var(--display);
    font-size: 1rem;
}

.combat-showcase {
    position: relative;
    min-height: clamp(530px, 65vw, 690px);
    border: 1px solid rgba(221, 239, 195, 0.18);
    border-radius: 120px 22px 120px 22px;
    isolation: isolate;
    overflow: hidden;
    box-shadow: 0 35px 100px rgba(0, 0, 0, 0.48), inset 0 0 80px rgba(0, 0, 0, 0.16);
    transform: perspective(1200px) rotateY(-2deg);
}

.combat-showcase::before {
    content: "";
    position: absolute;
    inset: -8%;
    z-index: 4;
    pointer-events: none;
    border: 1px solid rgba(201, 240, 91, 0.12);
    border-radius: 50%;
}

.combat-showcase__map,
.combat-showcase__vignette {
    position: absolute;
    inset: 0;
    z-index: -2;
}

.combat-showcase__map {
    background: url("/assets/sprites/generated/map_fungal_marsh.png") center / cover no-repeat;
    filter: saturate(0.82) brightness(0.65) contrast(1.1);
    transform: scale(1.035);
    animation: map-drift 12s ease-in-out infinite alternate;
}

.combat-showcase__vignette {
    z-index: -1;
    background:
        radial-gradient(circle at 51% 48%, transparent 24%, rgba(3, 10, 6, 0.18) 58%, rgba(3, 10, 6, 0.68)),
        linear-gradient(180deg, rgba(3, 9, 5, 0.16), transparent 55%, rgba(3, 9, 5, 0.8));
}

.combat-hud {
    position: absolute;
    z-index: 7;
    border: 1px solid rgba(228, 239, 209, 0.18);
    color: rgba(248, 244, 226, 0.88);
    background: rgba(6, 14, 8, 0.67);
    box-shadow: inset 0 1px rgba(255, 255, 255, 0.05);
    backdrop-filter: blur(10px);
}

.combat-hud--wave {
    top: 28px;
    left: 29px;
    min-width: 100px;
    padding: 12px 15px;
    border-radius: 12px;
}

.combat-hud--wave small {
    display: block;
    color: var(--lime);
    font-size: 0.55rem;
    font-weight: 800;
    letter-spacing: 0.18em;
}

.combat-hud--wave strong {
    display: block;
    margin-top: 3px;
    font-family: var(--display);
    font-size: 1.35rem;
}

.combat-hud--wave span { color: rgba(233, 235, 217, 0.42); font-size: 0.7rem; }

.combat-hud--core {
    top: 34px;
    right: 28px;
    padding: 10px 13px;
    display: flex;
    align-items: center;
    gap: 8px;
    border-radius: 999px;
    font-size: 0.56rem;
    font-weight: 800;
    letter-spacing: 0.11em;
}

.combat-hud--core i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--lime);
    box-shadow: 0 0 12px var(--lime);
    animation: signal 1.8s ease-in-out infinite;
}

.combat-path {
    position: absolute;
    left: -18%;
    right: -20%;
    top: 47%;
    height: 27%;
    border-top: 2px solid rgba(211, 238, 164, 0.21);
    border-radius: 50%;
    transform: rotate(-13deg);
}

.combat-actor {
    position: absolute;
    z-index: 3;
    transform-origin: 50% 78%;
    will-change: transform;
}

.combat-unit {
    position: relative;
    z-index: 2;
    width: 100%;
    height: auto;
    display: block;
    object-fit: contain;
    filter: drop-shadow(0 18px 15px rgba(0, 0, 0, 0.55));
    will-change: filter, transform;
}

.combat-shadow {
    position: absolute;
    left: 15%;
    right: 15%;
    bottom: 10%;
    z-index: 1;
    height: 13%;
    border-radius: 50%;
    background: rgba(0, 0, 0, 0.48);
    filter: blur(8px);
    transform: scaleY(0.48);
}

.combat-tower--one { left: 15%; bottom: 17%; width: 28%; }
.combat-tower--two { right: 15%; top: 21%; width: 23%; transform: rotate(7deg); }
.combat-tower--two .combat-unit { transform: scaleX(-1); }
.combat-enemy--one { right: 11%; bottom: 22%; width: 23%; animation: spider-march 1.48s ease-in-out infinite; }
.combat-enemy--two { left: 43%; top: 33%; width: 18%; animation: beetle-march 2.32s 0.18s ease-in-out infinite; }
.combat-enemy .combat-shadow { bottom: 12%; height: 17%; opacity: 0.75; }

.combat-projectile {
    position: absolute;
    z-index: 6;
    pointer-events: none;
    opacity: 0;
    will-change: transform, opacity;
}

.combat-projectile--arrow {
    width: 38px;
    height: 3px;
    margin-top: -2px;
    border-radius: 999px;
    background: linear-gradient(90deg, #6e3e1f 0 67%, #f4e8bd 68% 100%);
    box-shadow: 0 0 7px rgba(227, 255, 128, 0.6);
    transform-origin: 0 50%;
}

.combat-projectile--arrow::before {
    content: "";
    position: absolute;
    top: 50%;
    right: -7px;
    width: 0;
    height: 0;
    border-top: 4px solid transparent;
    border-bottom: 4px solid transparent;
    border-left: 9px solid #d9e6c6;
    transform: translateY(-50%);
    filter: drop-shadow(0 0 3px rgba(228, 255, 139, 0.7));
}

.combat-projectile--arrow::after {
    content: "";
    position: absolute;
    left: -5px;
    top: -4px;
    width: 10px;
    height: 10px;
    border-left: 5px solid #adcf58;
    border-top: 3px solid transparent;
    border-bottom: 3px solid transparent;
    transform: skewX(-24deg);
}

.combat-projectile--bomb {
    width: 24px;
    height: 24px;
    margin: -12px 0 0 -12px;
    border: 2px solid #754119;
    border-radius: 48% 52% 46% 54%;
    background: radial-gradient(circle at 34% 28%, #f3bd52 0 7%, #8b5224 10% 34%, #352016 62%, #110d0b 100%);
    box-shadow: inset -3px -4px 5px rgba(0, 0, 0, 0.52), 0 3px 7px rgba(0, 0, 0, 0.45);
}

.combat-projectile--bomb::before {
    content: "";
    position: absolute;
    left: 7px;
    top: -10px;
    width: 11px;
    height: 10px;
    border-top: 3px solid #7b4b21;
    border-radius: 70% 25% 0 0;
    transform: rotate(-28deg);
}

.combat-projectile--bomb i {
    position: absolute;
    left: 14px;
    top: -11px;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: #fff5a8;
    box-shadow: 0 0 5px #ffd24d, 0 0 11px #ff7525;
}

.combat-impact {
    position: absolute;
    z-index: 5;
    pointer-events: none;
    opacity: 0;
    transform: translate(-50%, -50%);
    will-change: transform, opacity;
}

.combat-impact--arrow {
    width: 25px;
    height: 25px;
    border: 2px solid rgba(227, 255, 137, 0.92);
    border-radius: 50%;
    box-shadow: 0 0 8px #e5ff8e, inset 0 0 8px rgba(229, 255, 142, 0.62);
}

.combat-impact--arrow::before,
.combat-impact--arrow::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 38px;
    height: 2px;
    background: linear-gradient(90deg, transparent, #f4ffbe, transparent);
    transform: translate(-50%, -50%) rotate(28deg);
}

.combat-impact--arrow::after { transform: translate(-50%, -50%) rotate(-48deg); }

.combat-impact--bomb {
    width: 58px;
    height: 58px;
    border-radius: 50%;
    background: radial-gradient(circle, #fffbd0 0 8%, #ffd44f 10% 25%, #ff762d 35%, rgba(181, 45, 14, 0.48) 55%, transparent 72%);
    box-shadow: 0 0 22px rgba(255, 133, 42, 0.92), 0 0 48px rgba(255, 83, 30, 0.46);
}

.combat-impact--bomb::before {
    content: "";
    position: absolute;
    inset: -9px;
    border: 2px solid rgba(255, 180, 70, 0.7);
    border-radius: 50%;
}

.combat-impact--bomb i,
.combat-impact--bomb i::before,
.combat-impact--bomb i::after {
    position: absolute;
    width: 19px;
    height: 19px;
    border-radius: 50%;
    background: rgba(81, 72, 62, 0.78);
    filter: blur(3px);
}

.combat-impact--bomb i { content: ""; left: 4px; top: -12px; }
.combat-impact--bomb i::before { content: ""; left: 25px; top: 0; }
.combat-impact--bomb i::after { content: ""; left: 10px; top: -13px; }
}

.combat-caption {
    position: absolute;
    left: 31px;
    right: 31px;
    bottom: 27px;
    z-index: 7;
    padding: 16px 18px;
    display: flex;
    align-items: center;
    gap: 18px;
    border: 1px solid rgba(228, 239, 209, 0.15);
    border-radius: 12px;
    background: rgba(6, 14, 8, 0.69);
    backdrop-filter: blur(12px);
}

.combat-caption span {
    flex: 0 0 auto;
    color: var(--lime);
    font-size: 0.56rem;
    font-weight: 800;
    letter-spacing: 0.14em;
}

.combat-caption p {
    margin: 0;
    padding-left: 18px;
    border-left: 1px solid rgba(225, 239, 204, 0.16);
    color: rgba(236, 234, 216, 0.7);
    font-size: 0.68rem;
    line-height: 1.55;
}

.difference {
    padding: clamp(82px, 9vw, 130px) max(24px, calc((100% - 1220px) / 2));
    background:
        linear-gradient(rgba(7, 17, 12, 0.91), rgba(7, 17, 12, 0.97)),
        url("/assets/sprites/generated/map_amber_canyon.png") center / cover fixed;
    border-top: 1px solid rgba(225, 239, 204, 0.1);
}

.section-heading { max-width: 700px; }
.section-heading h2 { font-size: clamp(2.4rem, 5vw, 4.6rem); line-height: 1.02; }

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

.feature-grid article {
    position: relative;
    min-height: 270px;
    padding: 29px;
    border: 1px solid rgba(225, 239, 204, 0.13);
    border-radius: 16px;
    background: linear-gradient(145deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0.012));
    overflow: hidden;
}

.feature-number {
    position: absolute;
    top: 24px;
    right: 25px;
    color: rgba(232, 237, 215, 0.19);
    font-family: var(--display);
    font-size: 1rem;
}

.feature-icon {
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(201, 240, 91, 0.25);
    border-radius: 13px;
    color: var(--lime);
    background: rgba(201, 240, 91, 0.07);
    font-size: 1.25rem;
}

.feature-grid h3 {
    margin: 27px 0 12px;
    font-family: var(--display);
    font-size: 1.18rem;
}

.feature-grid p {
    margin: 0;
    color: rgba(214, 216, 198, 0.6);
    font-size: 0.79rem;
    line-height: 1.72;
}

.campaign-callout {
    margin-top: 16px;
    padding: 30px 34px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    border: 1px solid rgba(201, 240, 91, 0.2);
    border-radius: 16px;
    background: linear-gradient(110deg, rgba(201, 240, 91, 0.09), rgba(201, 240, 91, 0.02));
}

.campaign-callout small { color: var(--lime); font-size: 0.58rem; font-weight: 800; letter-spacing: 0.16em; }
.campaign-callout h3 { margin: 8px 0 0; font-family: var(--display); font-size: clamp(1.15rem, 2.3vw, 1.65rem); }
.campaign-callout button { min-width: 190px; padding: 0 20px; border: 0; color: #12200d; background: var(--lime); font-size: 0.75rem; }
.campaign-callout button span { margin-left: 17px; }

.site-footer {
    width: min(1220px, calc(100% - 48px));
    min-height: 112px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 24px;
    color: rgba(210, 213, 193, 0.42);
    font-size: 0.65rem;
}

.footer-brand strong { color: rgba(245, 239, 220, 0.7); font-family: var(--display); letter-spacing: 0.08em; }
.footer-brand span { margin-left: 9px; padding: 4px 7px; border: 1px solid rgba(201, 240, 91, 0.22); border-radius: 999px; color: var(--lime); font-size: 0.52rem; text-transform: uppercase; }
.site-footer p { margin: 0; text-align: right; }

.modal {
    width: min(470px, calc(100% - 28px));
    max-height: calc(100svh - 28px);
    padding: 0;
    border: 1px solid rgba(225, 239, 204, 0.2);
    border-radius: 20px;
    color: var(--cream);
    background: transparent;
    box-shadow: 0 35px 100px rgba(0, 0, 0, 0.72);
    overflow: auto;
}

.modal::backdrop {
    background: rgba(2, 8, 4, 0.78);
    backdrop-filter: blur(9px);
}

.modal-card {
    position: relative;
    padding: 38px;
    background:
        radial-gradient(circle at 100% 0, rgba(201, 240, 91, 0.09), transparent 31%),
        #101d16;
}

.modal-close {
    position: absolute;
    top: 15px;
    right: 15px;
    width: 39px;
    height: 39px;
    border: 0;
    border-radius: 9px;
    color: rgba(239, 237, 219, 0.62);
    background: rgba(255, 255, 255, 0.04);
    font-size: 1.25rem;
    cursor: pointer;
}

.modal-close:hover { color: var(--lime); background: rgba(201, 240, 91, 0.08); }

.modal-brand { margin-bottom: 30px; display: flex; align-items: center; gap: 10px; }
.modal-brand p { margin: 0; }
.access-heading h2,
.recovery-modal h2,
.code-modal h2 { margin: 0; font-family: var(--display); font-size: 2rem; line-height: 1.16; }
.access-heading > p:last-child,
.modal-description { margin: 10px 0 0; color: var(--muted); font-size: 0.8rem; line-height: 1.6; }
.access-eyebrow { margin-bottom: 9px; }

.auth-form { margin-top: 27px; }
.field-group + .field-group { margin-top: 17px; }
.field-group label { display: block; margin-bottom: 8px; color: rgba(248, 244, 227, 0.82); font-size: 0.72rem; font-weight: 700; }
.label-row { display: flex; align-items: center; justify-content: space-between; }
.label-row button { min-height: 31px; padding: 0; border: 0; color: var(--lime); background: transparent; font-size: 0.67rem; font-weight: 700; cursor: pointer; }
.label-row button:hover { text-decoration: underline; text-underline-offset: 3px; }
.field-group small { display: none; margin: 6px 2px 0; color: rgba(193, 197, 178, 0.6); font-size: 0.65rem; }
.auth-form.is-registering .field-group small { display: block; }
.field-control { position: relative; }
.field-icon { position: absolute; left: 15px; top: 50%; transform: translateY(-50%); color: rgba(201, 240, 91, 0.48); pointer-events: none; }
.field-control input {
    width: 100%;
    min-height: 53px;
    padding: 0 55px 0 42px;
    border: 1px solid rgba(225, 239, 204, 0.16);
    border-radius: 11px;
    outline: none;
    color: var(--cream);
    background: rgba(3, 9, 5, 0.38);
    transition: border-color 150ms ease, box-shadow 150ms ease;
}

.recovery-modal .field-control input { padding-left: 15px; }
.field-control input::placeholder { color: rgba(199, 201, 181, 0.36); }
.field-control input:focus { border-color: var(--lime); box-shadow: 0 0 0 3px rgba(201, 240, 91, 0.11); }
.password-toggle { position: absolute; right: 8px; top: 50%; min-height: 35px; padding: 0 8px; border: 0; border-radius: 7px; transform: translateY(-50%); color: var(--lime); background: transparent; font-size: 0.68rem; font-weight: 800; cursor: pointer; }

.form-status { min-height: 21px; margin: 12px 2px 4px; color: var(--danger); font-size: 0.7rem; line-height: 1.45; }
.form-status[data-state="success"] { color: var(--lime); }
.primary-action {
    width: 100%;
    padding: 0 18px 0 21px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border: 1px solid rgba(231, 255, 165, 0.35);
    color: #12200d;
    background: linear-gradient(135deg, #dafa75, #a2d43c);
    box-shadow: 0 11px 26px rgba(141, 191, 53, 0.16);
    font-size: 0.78rem;
}

.access-switch { margin-top: 18px; display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 5px; color: rgba(198, 199, 181, 0.62); font-size: 0.7rem; }
.access-switch button,
.text-action { min-height: 38px; padding: 0 6px; border: 0; color: var(--lime); background: transparent; font-size: inherit; font-weight: 800; cursor: pointer; }
.access-switch button:hover,
.text-action:hover { text-decoration: underline; text-underline-offset: 3px; }
.modal-legal { margin: 22px 0 0; padding-top: 17px; border-top: 1px solid var(--line); color: rgba(193, 196, 177, 0.47); font-size: 0.61rem; line-height: 1.55; text-align: center; }
.modal-legal a { color: rgba(220, 232, 194, 0.7); }
.text-action { margin-top: 12px; padding-left: 0; }

.code-card { text-align: center; }
.code-icon { width: 58px; height: 58px; margin: 0 auto 20px; display: grid; place-items: center; border: 1px solid rgba(201, 240, 91, 0.3); border-radius: 50%; color: var(--lime); background: rgba(201, 240, 91, 0.08); font-size: 1.25rem; box-shadow: 0 0 35px rgba(201, 240, 91, 0.09); }
.code-card output { margin: 24px 0 10px; padding: 17px 13px; display: block; border: 1px dashed rgba(201, 240, 91, 0.35); border-radius: 11px; color: var(--lime); background: rgba(2, 8, 4, 0.35); font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: clamp(1rem, 5vw, 1.35rem); font-weight: 800; letter-spacing: 0.1em; }
.secondary-action { width: 100%; border: 1px solid rgba(225, 239, 204, 0.17); color: var(--cream); background: rgba(255, 255, 255, 0.035); font-size: 0.74rem; }
.copy-status { min-height: 18px; margin: 7px 0; color: var(--lime); font-size: 0.67rem; }

@keyframes map-drift { from { transform: scale(1.035) translate3d(-3px, -2px, 0); } to { transform: scale(1.065) translate3d(5px, 3px, 0); } }
@keyframes signal { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: 0.5; transform: scale(0.72); } }
@keyframes spider-march {
    0%, 100% { transform: translate3d(7px, 1px, 0) rotate(0.6deg); }
    50% { transform: translate3d(-8px, -2px, 0) rotate(-1.2deg); }
}

@keyframes beetle-march {
    0%, 100% { transform: translate3d(5px, 0, 0) rotate(0.4deg); }
    50% { transform: translate3d(-6px, -1px, 0) rotate(-0.7deg); }
}

@media (max-width: 980px) {
    .hero { grid-template-columns: minmax(330px, 0.9fr) minmax(390px, 1.1fr); gap: 36px; }
    .combat-showcase { min-height: 560px; }
    .site-footer { grid-template-columns: 1fr auto; }
    .site-footer p { display: none; }
}

@media (max-width: 820px) {
    .site-header { width: min(100% - 32px, 680px); min-height: 72px; }
    .site-header nav > a { display: none; }
    .hero { width: 100%; min-height: auto; padding: 50px 20px 70px; display: flex; flex-direction: column; gap: 48px; }
    .hero-copy { width: min(100%, 620px); text-align: center; }
    .eyebrow { justify-content: center; }
    .hero h1 { font-size: clamp(3.15rem, 13vw, 5rem); }
    .hero-lead { margin-inline: auto; }
    .hero-actions { justify-content: center; }
    .hero-proof { justify-content: center; }
    .combat-showcase { width: min(100%, 620px); min-height: 600px; border-radius: 80px 18px 80px 18px; transform: none; }
    .difference { padding-inline: 20px; }
    .section-heading { text-align: center; margin-inline: auto; }
    .section-heading .eyebrow { justify-content: center; }
    .feature-grid { grid-template-columns: 1fr; }
    .feature-grid article { min-height: 220px; }
    .campaign-callout { align-items: stretch; flex-direction: column; text-align: center; }
    .site-footer { width: min(100% - 40px, 620px); padding: 28px 0; display: flex; flex-direction: column; }
    .site-footer nav { flex-wrap: wrap; justify-content: center; }
}

@media (max-width: 520px) {
    .site-header nav { gap: 8px; }
    .mini-brand__mark { width: 35px; height: 35px; }
    .header-login { padding: 0 14px; }
    .hero { padding-top: 42px; }
    .eyebrow { font-size: 0.59rem; letter-spacing: 0.14em; }
    .hero h1 { font-size: clamp(2.75rem, 15vw, 4rem); }
    .hero-lead { font-size: 0.86rem; line-height: 1.65; }
    .hero-actions { align-items: stretch; flex-direction: column; }
    .cta-primary,
    .cta-guest { width: 100%; }
    .hero-proof { gap: 10px; }
    .hero-proof span { width: calc(50% - 8px); white-space: normal; }
    .hero-proof span:last-child { width: 100%; }
    .combat-showcase { min-height: 505px; border-radius: 60px 15px 60px 15px; }
    .combat-hud--wave { top: 20px; left: 19px; }
    .combat-hud--core { top: 25px; right: 18px; }
    .combat-tower--one { left: 9%; width: 34%; }
    .combat-tower--two { right: 9%; width: 29%; }
    .combat-enemy--one { right: 6%; width: 28%; }
    .combat-enemy--two { left: 39%; width: 22%; }
    .combat-caption { left: 18px; right: 18px; bottom: 18px; align-items: flex-start; flex-direction: column; gap: 7px; }
    .combat-caption p { padding: 0; border-left: 0; }
    .feature-grid { margin-top: 36px; }
    .campaign-callout { padding: 25px 20px; }
    .site-footer nav { gap: 14px 20px; }
    .modal-card { padding: 34px 23px 28px; }
    .modal-brand { margin-bottom: 25px; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        scroll-behavior: auto !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}
