/*
 * TENZA MANUAL ART-DIRECTION LAYER
 *
 * This file is intentionally loaded after every core stylesheet. Keep layout,
 * state, and accessibility behavior in the existing component files; put
 * visual experiments here. Remove data-tenza-style="soft-clay" from <html>
 * to compare against the untouched base UI.
 */

/* 1. Global art-direction tokens: edit these before component selectors. */
:root[data-tenza-style="soft-clay"] {
    --art-canvas: #f5ecdc;
    --art-canvas-deep: #eadbc2;
    --art-panel: #fffaf0;
    --art-panel-strong: #fffdf7;
    --art-ink: #2e2d2a;
    --art-muted: #8f8372;
    --art-orange: #ffb52e;
    --art-orange-deep: #eb9415;
    --art-coral: #f36f7f;
    --art-blue: #7eace0;
    --art-green: #a6c45d;
    --art-border: rgba(107, 82, 48, .14);
    --art-shadow-color: rgba(102, 72, 36, .16);
    --art-shadow-soft: 0 10px 26px var(--art-shadow-color);
    --art-shadow-press: 0 4px 0 rgba(118, 76, 24, .16), 0 9px 20px var(--art-shadow-color);
    --art-radius-small: 14px;
    --art-radius-control: 18px;
    --art-radius-panel: 28px;
    --art-display-font: "Arial Rounded MT Bold", "Trebuchet MS", system-ui, sans-serif;
    --art-body-font: Inter, Avenir Next, Avenir, "Segoe UI", Arial, sans-serif;

    /* Bridge the art tokens into the existing functional token system. */
    --canvas: var(--art-canvas);
    --board-surface: var(--art-panel-strong);
    --grid-gray: #e4d7c3;
    --ink: var(--art-ink);
    --purple: var(--art-ink);
    --purple-soft: var(--art-panel);
    --purple-dark: #675b4c;
    --muted: var(--art-muted);
    --yellow-soft: #ffd36b;
    --green: #b6d56b;
    --green-dark: #87a543;
    --danger: var(--art-coral);
    --loss-blue: var(--art-blue);
    --tile-unlocked-bg: var(--art-panel-strong);
    --tile-unlocked-border: #dfd1bd;
    --tile-locked-bg: #f5b839;
    --tile-locked-ink: var(--art-ink);
    color-scheme: light;
}

/* Keep dark mode independently adjustable instead of letting it inherit light values. */
:root[data-tenza-style="soft-clay"].is-dark-theme {
    --art-canvas: #171612;
    --art-canvas-deep: #232019;
    --art-panel: #28251f;
    --art-panel-strong: #302c25;
    --art-ink: #fff7e8;
    --art-muted: #bbae9b;
    --art-border: rgba(255, 239, 211, .12);
    --art-shadow-color: rgba(0, 0, 0, .34);
    --canvas: var(--art-canvas);
    --board-surface: var(--art-panel-strong);
    --grid-gray: #484137;
    --ink: var(--art-ink);
    --purple: var(--art-ink);
    --purple-soft: var(--art-panel);
    --muted: var(--art-muted);
    --tile-unlocked-bg: #363129;
    --tile-unlocked-border: #5a5145;
    --tile-locked-bg: #b2781d;
    --tile-locked-ink: #fff7e8;
    color-scheme: dark;
}

/* 2. Page atmosphere and typography. */
:root[data-tenza-style="soft-clay"] body,
:root[data-tenza-style="soft-clay"] button,
:root[data-tenza-style="soft-clay"] input,
:root[data-tenza-style="soft-clay"] select,
:root[data-tenza-style="soft-clay"] textarea {
    font-family: var(--art-body-font);
}

:root[data-tenza-style="soft-clay"] body,
:root[data-tenza-style="soft-clay"] .start-overlay,
:root[data-tenza-style="soft-clay"] .level-map-page {
    background: var(--art-canvas);
}

:root[data-tenza-style="soft-clay"] :is(h1, h2, h3, strong, button) {
    font-family: var(--art-display-font);
}

/* 3. Shared soft-clay surfaces. Add or remove selectors as components evolve. */
:root[data-tenza-style="soft-clay"] :is(
    .settings-card,
    .qr-code-card,
    .daily-result-card,
    .level-intro-card,
    .shop-card,
    .daily-gift-card,
    .rules-card,
    .utility-menu-panel
) {
    border-color: var(--art-border);
    border-radius: var(--art-radius-panel);
    background: color-mix(in srgb, var(--art-panel) 96%, transparent);
    box-shadow: var(--art-shadow-soft);
}

/* 4. Homepage and primary controls. */
:root[data-tenza-style="soft-clay"] .start-content {
    gap: 14px;
}

:root[data-tenza-style="soft-clay"] .start-brand {
    width: min(92vw, 430px);
    max-width: 430px;
    gap: 12px;
    padding: 24px clamp(20px, 5vw, 42px) 22px;
    border: 1px solid var(--art-border);
    border-radius: var(--art-radius-panel);
    background: color-mix(in srgb, var(--art-panel) 94%, transparent);
    box-shadow: var(--art-shadow-soft);
}

:root[data-tenza-style="soft-clay"] .start-brand-lockup {
    gap: 10px;
}


:root[data-tenza-style="soft-clay"] .start-brand p {
    max-width: 330px;
    margin: 4px 0 0;
    color: var(--art-muted);
    font-size: 16px;
    line-height: 1.35;
}

:root[data-tenza-style="soft-clay"] :is(
    .start-game-button,
    .start-levels-button,
    .next-button,
    .rules-done
) {
    min-height: 54px;
    border: 1px solid color-mix(in srgb, var(--art-orange-deep) 45%, transparent);
    border-radius: var(--art-radius-control);
    color: var(--art-ink);
    background: linear-gradient(#ffc657, var(--art-orange));
    box-shadow: var(--art-shadow-press);
}

:root[data-tenza-style="soft-clay"] :is(
    .start-game-button,
    .start-levels-button,
    .next-button,
    .rules-done
):hover {
    filter: saturate(1.06) brightness(1.02);
    transform: translateY(-2px);
}

:root[data-tenza-style="soft-clay"] .icon-button {
    border: 1px solid var(--art-border);
    border-radius: var(--art-radius-small);
    background: color-mix(in srgb, var(--art-panel) 88%, transparent);
    box-shadow: 0 4px 10px rgba(102, 72, 36, .08);
}

/* 5. Journey map. */
:root[data-tenza-style="soft-clay"] .level-map-content {
    width: min(100%, 760px);
}

:root[data-tenza-style="soft-clay"] .level-map-scroll {
    width: calc(100% - 24px);
    margin-inline: auto;
    border: 1px solid var(--art-border);
    border-radius: var(--art-radius-panel);
    background:
        radial-gradient(circle at 24% 30%, rgba(255, 255, 255, .65) 0 2px, transparent 3px),
        radial-gradient(circle at 72% 68%, rgba(165, 133, 88, .16) 0 3px, transparent 4px),
        color-mix(in srgb, var(--art-panel) 78%, transparent);
    background-size: 86px 86px, 120px 120px, auto;
    box-shadow: var(--art-shadow-soft);
    mask-image: none;
}

:root[data-tenza-style="soft-clay"] .level-map-list {
    gap: 18px;
    padding-block: 38px 52px;
}

:root[data-tenza-style="soft-clay"] .level-map-path > path {
    stroke: color-mix(in srgb, var(--art-ink) 78%, transparent);
    stroke-width: 3;
    stroke-dasharray: 9 11;
    filter: none;
}

:root[data-tenza-style="soft-clay"] .level-map-node > button {
    border-color: var(--art-border);
    border-radius: 50%;
    background: var(--art-panel-strong);
    box-shadow: 0 5px 0 #ddcfba, 0 12px 22px var(--art-shadow-color);
}

:root[data-tenza-style="soft-clay"] .level-map-node.is-complete > button {
    border-color: color-mix(in srgb, var(--art-green) 72%, #6f8038);
    background: var(--art-panel-strong);
}


:root[data-tenza-style="soft-clay"] .level-map-node.is-current > button {
    border-color: #fff6df;
    border-radius: 50%;
    color: var(--art-ink);
    background: linear-gradient(#ffc95d, var(--art-orange));
    box-shadow: 0 0 0 5px rgba(255, 181, 46, .22), 0 6px 0 var(--art-orange-deep), 0 15px 25px var(--art-shadow-color);
}

:root[data-tenza-style="soft-clay"] .level-map-node.is-current > button::before {
    background: color-mix(in srgb, var(--art-orange) 72%, #fff4d7);
}

:root[data-tenza-style="soft-clay"] .level-map-star {
    color: var(--art-orange);
    text-shadow: 0 1px 0 #b86d06, 0 0 3px var(--art-panel), 0 0 3px var(--art-panel);
}


:root[data-tenza-style="soft-clay"] .level-map-node.is-locked > button {
    border-color: #dfd4c3;
    color: #9d9384;
    background: #eee6da;
}

:root[data-tenza-style="soft-clay"] .level-map-current-button {
    border-color: #fff6df;
    border-radius: var(--art-radius-control);
    color: var(--art-ink);
    background: linear-gradient(#ffc657, var(--art-orange));
    box-shadow: var(--art-shadow-press);
}

/* 6. Narrow-screen knobs. Keep manual experiments inside these breakpoints. */
@media (max-width: 620px) {
    :root[data-tenza-style="soft-clay"] {
    }

    :root[data-tenza-style="soft-clay"] .start-content {
        padding-inline: 14px;
    }

    :root[data-tenza-style="soft-clay"] .start-brand {
        padding: 18px 18px 16px;
    }

    :root[data-tenza-style="soft-clay"] .level-map-scroll {
        width: calc(100% - 14px);
        border-radius: 22px;
    }
}


/* 7. Builder casual-game pass: terrain map, tactile HUD, and one premium reward surface. */
:root[data-tenza-style="soft-clay"] .level-map-page[data-campaign-mode="builder"] {
    --builder-map-grass: #9fc95d;
    --builder-map-grass-deep: #6fa246;
    --builder-map-water: #73cbd8;
    background:
        radial-gradient(ellipse 62% 24% at 8% 18%, var(--builder-map-water) 0 43%, transparent 45%),
        radial-gradient(ellipse 56% 21% at 92% 72%, #62bdcf 0 42%, transparent 44%),
        linear-gradient(145deg, var(--builder-map-grass), var(--builder-map-grass-deep));
}

:root[data-tenza-style="soft-clay"].is-dark-theme .level-map-page[data-campaign-mode="builder"] {
    --builder-map-grass: #536f39;
    --builder-map-grass-deep: #2e4c31;
    --builder-map-water: #36788a;
}

:root[data-tenza-style="soft-clay"] .level-map-page[data-campaign-mode="builder"] .level-map-scroll {
    border: 3px solid rgba(255, 248, 220, .66);
    background:
        radial-gradient(circle at 14% 30%, rgba(255,255,255,.42) 0 3px, transparent 4px),
        radial-gradient(circle at 74% 64%, rgba(62,95,34,.2) 0 5px, transparent 6px),
        radial-gradient(ellipse 38% 15% at 5% 22%, var(--builder-map-water) 0 44%, transparent 46%),
        radial-gradient(ellipse 34% 13% at 98% 75%, #63bfd0 0 43%, transparent 45%),
        linear-gradient(155deg, color-mix(in srgb, var(--builder-map-grass) 88%, #e8f09e), var(--builder-map-grass-deep));
    background-size: 92px 92px, 136px 136px, auto, auto, auto;
    box-shadow: 0 14px 0 rgba(77, 91, 41, .24), 0 22px 38px rgba(35, 55, 25, .28), inset 0 2px rgba(255,255,255,.38);
}

:root[data-tenza-style="soft-clay"] .level-map-page[data-campaign-mode="builder"] .level-map-path > path {
    stroke: #f7edcf;
    stroke-width: 15;
    stroke-dasharray: none;
    filter: drop-shadow(0 4px 0 rgba(106, 82, 47, .22));
}

:root[data-tenza-style="soft-clay"] .level-map-page[data-campaign-mode="builder"] .level-map-node > button {
    border: 3px solid #f8efd6;
    background: linear-gradient(#fffdf4, #e9ddc4);
    box-shadow: 0 6px 0 #ad956d, 0 12px 20px rgba(49,65,31,.2);
}

:root[data-tenza-style="soft-clay"] .level-map-page[data-campaign-mode="builder"] .level-map-node.is-complete > button {
    border-color: #eaf3c5;
    background: linear-gradient(#ddef9e, #9abd58);
    box-shadow: 0 6px 0 #66883c, 0 12px 20px rgba(49,65,31,.24);
}

:root[data-tenza-style="soft-clay"] .level-map-page[data-campaign-mode="builder"] .level-map-node.is-current > button {
    border-color: #fff2c2;
    background: linear-gradient(#ffd765, #f4a526);
    box-shadow: 0 0 0 6px rgba(255,236,151,.3), 0 7px 0 #bd7314, 0 15px 24px rgba(71,50,20,.28);
}

:root[data-tenza-style="soft-clay"] .level-map-page[data-campaign-mode="builder"] .level-map-current-button {
    border-color: #eff7cc;
    color: #24301f;
    background: linear-gradient(#cce77f, #89b34c);
    box-shadow: 0 6px 0 #5d8035, 0 14px 28px rgba(42,66,29,.3), inset 0 2px rgba(255,255,255,.5);
}

:root[data-tenza-style="soft-clay"] .weave-app.is-builder-page :is(.builder-checkpoint-card, .builder-coin-card, .builder-life-card, .moves-card) {
    border: 2px solid #dac6a4;
    border-radius: 16px;
    background: linear-gradient(#fffdf6, #eadcc4);
    box-shadow: 0 5px 0 #b79a70, 0 10px 18px rgba(70,48,22,.14), inset 0 2px rgba(255,255,255,.75);
}

:root[data-tenza-style="soft-clay"].is-dark-theme .weave-app.is-builder-page :is(.builder-checkpoint-card, .builder-coin-card, .builder-life-card, .moves-card) {
    border-color: #655b4d;
    background: linear-gradient(#39342c, #26231e);
    box-shadow: 0 5px 0 #15130f, 0 10px 18px rgba(0,0,0,.3), inset 0 2px rgba(255,246,226,.08);
}

:root[data-tenza-style="soft-clay"].is-dark-theme .builder-checkpoint-stars i:not(.is-banked) {
    color: #8f877b;
    filter: grayscale(1) drop-shadow(0 1px 1px rgba(0,0,0,.55));
}

:root[data-tenza-style="soft-clay"].is-dark-theme .builder-coin-icon,
:root[data-tenza-style="soft-clay"].is-dark-theme .builder-coin-flight::before,
:root[data-tenza-style="soft-clay"].is-dark-theme .builder-coin-wave-particle::before {
    border-color: #ffd462;
    box-shadow: inset 0 0 0 2px rgba(255,250,187,.42), 0 0 0 1px rgba(78,44,0,.85), 0 3px 5px rgba(0,0,0,.46);
}

:root[data-tenza-style="soft-clay"].is-dark-theme :is(.builder-life-icon, .shop-life-icon) {
    color: #ff7485;
    filter: drop-shadow(0 2px 1px rgba(0,0,0,.6));
}

:root[data-tenza-style="soft-clay"].is-dark-theme .shop-balance img {
    filter: brightness(0) invert(1) drop-shadow(0 1px 1px rgba(0,0,0,.45));
}

:root[data-tenza-style="soft-clay"] :is(.builder-crash-card, .builder-lives-card) {
    border-color: #d7f5ff;
    color: #fff;
    background:
        radial-gradient(circle at 50% 12%, rgba(255,199,68,.3), transparent 30%),
        linear-gradient(180deg, #42cbe8, #238dcc 52%, #235fa9);
    box-shadow: 0 22px 54px rgba(0,9,31,.48), inset 0 2px 0 rgba(255,255,255,.42);
}

:root[data-tenza-style="soft-clay"] :is(.builder-crash-card, .builder-lives-card) :is(h2, p, strong, small) {
    color: inherit;
}

:root[data-tenza-style="soft-clay"] .weave-app.is-builder-page .board-canvas {
    border-radius: 24px;
    filter: drop-shadow(0 14px 20px rgba(65,47,25,.24));
}

:root[data-tenza-style="soft-clay"] .builder-reward-modal {
    background: rgba(17, 24, 33, .78);
    backdrop-filter: blur(8px) saturate(.8);
}

:root[data-tenza-style="soft-clay"] .builder-reward-card {
    width: min(calc(100vw - 28px), 390px);
    gap: 10px;
    padding: 108px 18px 20px;
    overflow: visible;
    border: 4px solid #e9f6ef;
    border-radius: 30px;
    color: #fff;
    background:
        repeating-conic-gradient(from -8deg at 50% 47%, rgba(255,255,255,.13) 0 8deg, transparent 8deg 20deg),
        linear-gradient(180deg, #67d9ec 0%, #35addd 52%, #2678bd 100%);
    box-shadow: 0 10px 0 #174d82, 0 28px 58px rgba(2,14,35,.48), inset 0 3px rgba(255,255,255,.5);
}

:root[data-tenza-style="soft-clay"] .builder-reward-card::before {
    inset: 8px;
    border: 2px solid rgba(13,74,132,.42);
    border-radius: 21px;
}

:root[data-tenza-style="soft-clay"] .builder-reward-ribbon {
    border-color: #0f4b87;
    background: linear-gradient(#28c7f2, #148bd7);
    box-shadow: 0 7px 0 #123f75, inset 0 3px rgba(255,255,255,.5);
}

:root[data-tenza-style="soft-clay"] .builder-reward-prize {
    border: 3px solid #1566a8;
    background:
        repeating-conic-gradient(from 0deg at 39% 50%, rgba(255,255,255,.22) 0 8deg, transparent 8deg 18deg),
        linear-gradient(#35bde8, #228dcc);
    box-shadow: inset 0 3px 10px rgba(3,65,119,.26), 0 4px 0 rgba(13,74,132,.4);
}

:root[data-tenza-style="soft-clay"] .builder-reward-actions button {
    border-width: 3px;
    border-radius: 19px;
    box-shadow: 0 6px 0 rgba(8,57,82,.68), inset 0 3px rgba(255,255,255,.52);
}

:root[data-tenza-style="soft-clay"] .builder-reward-continue {
    color: #1f321d;
    background: linear-gradient(#a9e96a, #61b83b);
}

:root[data-tenza-style="soft-clay"] .builder-reward-double {
    color: #3d2a13;
    background: linear-gradient(#ffe07a, #f0a42a);
}

:root[data-tenza-style="soft-clay"] .builder-reward-modal.is-modal-visible .builder-reward-card {
    animation: builder-casual-reward-pop 480ms cubic-bezier(.18,.84,.22,1.18) both;
}

@keyframes builder-casual-reward-pop {
    0% { opacity: 0; transform: translateY(24px) scale(.82); }
    68% { opacity: 1; transform: translateY(-4px) scale(1.025); }
    100% { opacity: 1; transform: translateY(0) scale(1); }
}

@media (max-height: 690px) {
    :root[data-tenza-style="soft-clay"] .builder-reward-card {
        padding-top: 86px;
        transform: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    :root[data-tenza-style="soft-clay"] .builder-reward-modal.is-modal-visible .builder-reward-card {
        animation-duration: 1ms;
    }
}
