/* Forest / fairy-tale overrides for ALL sub-pages — ink theme only */

html[data-evo-theme="ink"] {
    --forest-fairy: #d4b8ff;
    --forest-fairy-dim: rgba(212, 184, 255, 0.18);
    --forest-rose: #efb6c4;
    --forest-page-veil: rgba(80, 56, 30, 0.2);
    --forest-ink-strong: #3e2e21;
    --forest-ink-soft: #5a4c38;
    --forest-ink-muted: #74644f;
    --forest-surface-top: #fff9ec;
    --forest-surface-bottom: #f4e6c8;
    --forest-surface-solid: linear-gradient(165deg, #fff9ec 0%, #f4e6c8 100%);
    --forest-shell-decor-opacity: 0.12;
}

/* ── Standalone dock (topbar / shared pages, excludes My Room) ── */
.forest-chrome--standalone {
    display: none;
}

html[data-evo-theme="ink"] body:not(.myroom-body) .forest-chrome--standalone {
    display: block;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 70;
    pointer-events: none;
}

html[data-evo-theme="ink"] .forest-chrome--standalone .forest-dock {
    pointer-events: auto;
    background:
        linear-gradient(180deg, rgba(8, 18, 12, 0.78), rgba(8, 18, 12, 0.96)),
        url('/images/themes/forest/fairy-dock-wood.svg?v=3') center / cover;
    border-top: 2px solid var(--forest-border-soft);
    border-radius: 22px 22px 0 0;
    box-shadow: 0 -12px 36px rgba(0, 0, 0, 0.42);
    padding: 0.45rem 0.75rem max(0.55rem, env(safe-area-inset-bottom));
}

html[data-evo-theme="ink"] .forest-chrome--standalone .forest-bubbles:not([hidden]) {
    pointer-events: auto;
}

/* Page bottom clearance for dock */
html[data-evo-theme="ink"] body.evo-body:not(.myroom-body):not(.play-shell):not(.replay-page):not(.puzzle-page):not(.nx-play-body):not(.pa-body) {
    padding-bottom: calc(var(--forest-dock-h) + max(1.2rem, env(safe-area-inset-bottom)));
}

html[data-evo-theme="ink"] body.dojo-shell .forest-chrome--standalone {
    position: fixed !important;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 70;
    pointer-events: none;
}

html[data-evo-theme="ink"] body.play-shell,
html[data-evo-theme="ink"] body.replay-page,
html[data-evo-theme="ink"] body.puzzle-page,
html[data-evo-theme="ink"] body.nx-play-body {
    padding-bottom: 0;
}

html[data-evo-theme="ink"] body.puzzle-page .puzzle-status {
    background: rgba(255, 248, 228, 0.92);
    border-color: rgba(126, 88, 47, 0.38);
    color: #3e2d20;
    box-shadow: 0 12px 26px rgba(42, 31, 16, 0.16);
}

html[data-evo-theme="ink"] body.puzzle-page .puzzle-status .msg-normal,
html[data-evo-theme="ink"] body.puzzle-page .puzzle-status .msg-win,
html[data-evo-theme="ink"] body.puzzle-page .puzzle-status .puzzle-reward-line,
html[data-evo-theme="ink"] body.puzzle-page .puzzle-status .puzzle-bond-line {
    color: #3e2d20;
}

html[data-evo-theme="ink"] body.puzzle-page .puzzle-status .msg-err {
    color: #8d241b;
}

html[data-evo-theme="ink"] body.play-shell .forest-chrome--standalone,
html[data-evo-theme="ink"] body.replay-page .forest-chrome--standalone,
html[data-evo-theme="ink"] body.puzzle-page .forest-chrome--standalone,
html[data-evo-theme="ink"] body.nx-play-body .forest-chrome--standalone {
    display: none;
}

/* Forest Page Shell V2.1: richer cards for School / Store / Stats */
html[data-evo-theme="ink"] body.school-page .school-hall-banner {
    position: relative;
    min-height: 168px;
    display: grid;
    align-content: end;
    padding: 1.4rem;
    border: 1px solid rgba(131, 93, 49, 0.34);
    background:
        linear-gradient(180deg, rgba(19, 45, 24, 0.12), rgba(37, 73, 35, 0.62)),
        url('/images/themes/forest/pages-v2/school-bg.png?v=1') center 55% / cover;
    color: #fff9de;
    box-shadow: 0 18px 38px rgba(42, 31, 16, 0.22);
}

html[data-evo-theme="ink"] body.school-page .school-hall-banner h2 {
    width: fit-content;
    margin: 0;
    padding: 0.42rem 0.75rem;
    border-radius: 999px;
    background: rgba(41, 55, 30, 0.72);
    color: #fff3c8;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.35);
}

html[data-evo-theme="ink"] body.school-page .school-entry-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

html[data-evo-theme="ink"] body.school-page .school-entry-card,
html[data-evo-theme="ink"] body.school-page .school-video-level-card,
html[data-evo-theme="ink"] body.school-page .school-video-lesson-card,
html[data-evo-theme="ink"] body.school-page .puzzle-card-wrap {
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(133, 92, 48, 0.34);
    border-radius: 22px;
    background:
        radial-gradient(circle at 88% 8%, rgba(255, 226, 151, 0.32), transparent 24%),
        linear-gradient(180deg, rgba(255, 250, 236, 0.92), rgba(235, 213, 171, 0.88));
    box-shadow: 0 16px 30px rgba(59, 39, 18, 0.18), inset 0 1px 0 rgba(255, 255, 255, 0.76);
}

html[data-evo-theme="ink"] body.school-page .school-entry-card::after,
html[data-evo-theme="ink"] body.school-page .school-video-level-card::after,
html[data-evo-theme="ink"] body.school-page .school-video-lesson-card::after {
    content: '';
    position: absolute;
    right: -24px;
    bottom: -24px;
    width: 96px;
    height: 96px;
    border-radius: 50%;
    background:
        radial-gradient(circle, rgba(116, 153, 74, 0.22), transparent 64%),
        radial-gradient(circle at 35% 35%, rgba(255, 255, 255, 0.35), transparent 28%);
    pointer-events: none;
}

html[data-evo-theme="ink"] body.school-page .school-entry-icon {
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    margin-bottom: 0.5rem;
    border-radius: 16px;
    background: linear-gradient(180deg, #7fa65a, #3f6c34);
    color: #fff8d9;
    box-shadow: 0 8px 16px rgba(43, 64, 28, 0.24), inset 0 1px 0 rgba(255, 255, 255, 0.36);
}

html[data-evo-theme="ink"] body.school-page .school-entry-title,
html[data-evo-theme="ink"] body.school-page .school-video-level-card__title,
html[data-evo-theme="ink"] body.school-page .school-video-lesson-card strong {
    color: #3d2a1a;
    font-weight: 900;
}

html[data-evo-theme="ink"] body.school-page .school-entry-desc,
html[data-evo-theme="ink"] body.school-page .school-video-level-card__desc,
html[data-evo-theme="ink"] body.school-page .school-video-lesson-card p {
    color: #6b5638;
}

html[data-evo-theme="ink"] body.school-page .school-rank-panel,
html[data-evo-theme="ink"] body.school-page .school-homework-panel {
    border: 1px solid rgba(132, 93, 48, 0.32);
    background:
        linear-gradient(180deg, rgba(255, 252, 240, 0.9), rgba(235, 214, 174, 0.84)),
        radial-gradient(ellipse at 50% 0%, rgba(129, 168, 82, 0.16), transparent 55%);
}

html[data-evo-theme="ink"] body.school-page .level-tile,
html[data-evo-theme="ink"] body.school-page .category-card {
    border: 1px solid rgba(132, 93, 48, 0.22);
    border-radius: 16px;
    background: rgba(255, 249, 232, 0.76);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.64);
}

html[data-evo-theme="ink"] body.store-page .store-vip-hero--panel {
    min-height: 170px;
    border-radius: 28px;
    border: 1px solid rgba(132, 93, 48, 0.34);
    background:
        linear-gradient(90deg, rgba(41, 28, 16, 0.82), rgba(41, 28, 16, 0.16)),
        url('/images/themes/forest/pages-v2/store-bg.png?v=1') center / cover;
}

html[data-evo-theme="ink"] body.store-page .store-vip-hero--panel img {
    opacity: 0;
}

html[data-evo-theme="ink"] body.store-page .store-grid--vip,
html[data-evo-theme="ink"] body.store-page .store-grid--tokens,
html[data-evo-theme="ink"] body.store-page .store-grid--mentors,
html[data-evo-theme="ink"] body.store-page .store-grid--album {
    gap: 1rem;
}

html[data-evo-theme="ink"] body.store-page .store-item {
    position: relative;
    overflow: hidden;
    border-radius: 24px;
    border: 1px solid rgba(128, 88, 45, 0.34);
    background:
        radial-gradient(circle at 82% 12%, rgba(255, 226, 145, 0.35), transparent 24%),
        linear-gradient(180deg, rgba(255, 250, 235, 0.92), rgba(232, 204, 154, 0.88));
}

html[data-evo-theme="ink"] body.store-page .store-item::before {
    content: '';
    position: absolute;
    inset: 8px;
    border-radius: 18px;
    border: 1px dashed rgba(139, 96, 47, 0.2);
    pointer-events: none;
}

html[data-evo-theme="ink"] body.store-page .store-item--vip-featured {
    border-color: rgba(220, 163, 70, 0.72);
    box-shadow: 0 20px 42px rgba(83, 54, 19, 0.26), 0 0 0 3px rgba(238, 196, 105, 0.18);
}

html[data-evo-theme="ink"] body.store-page .store-price,
html[data-evo-theme="ink"] body.store-page .store-price-usd {
    color: #3d2a1a;
    text-shadow: 0 1px 0 rgba(255, 249, 229, 0.85);
}

html[data-evo-theme="ink"] body.store-page .store-vip-tier-icon,
html[data-evo-theme="ink"] body.store-page .store-item--token-visual::after {
    filter: drop-shadow(0 8px 14px rgba(65, 41, 16, 0.22));
}

html[data-evo-theme="ink"] body.store-page .evo-btn-primary,
html[data-evo-theme="ink"] body.store-page .store-vip-cta,
html[data-evo-theme="ink"] body.store-page .store-btn-spaced {
    border: 1px solid rgba(114, 73, 34, 0.38);
    background: linear-gradient(180deg, #edc186, #c98446);
    color: #3a2412;
    box-shadow: 0 10px 18px rgba(75, 43, 14, 0.18), inset 0 1px 0 rgba(255, 247, 224, 0.62);
}

html[data-evo-theme="ink"] body.stats-page .page-hero {
    min-height: 170px;
    display: grid;
    align-content: end;
    background:
        linear-gradient(90deg, rgba(38, 28, 16, 0.8), rgba(38, 28, 16, 0.08)),
        url('/images/themes/forest/pages-v2/stats-bg.png?v=1') center / cover;
    color: #fff5cf;
}

html[data-evo-theme="ink"] body.stats-page .stats-summary-card {
    position: relative;
    overflow: hidden;
    padding: 1.4rem;
    background:
        radial-gradient(circle at 84% 18%, rgba(255, 225, 142, 0.28), transparent 30%),
        linear-gradient(180deg, rgba(255, 252, 240, 0.92), rgba(236, 215, 174, 0.86));
}

html[data-evo-theme="ink"] body.stats-page .stats-summary-card::after {
    content: '🏆';
    position: absolute;
    right: 1.1rem;
    top: 0.9rem;
    font-size: 2.8rem;
    opacity: 0.18;
}

html[data-evo-theme="ink"] body.stats-page #statsRankElo {
    color: #3b2919;
    font-size: clamp(1.25rem, 2vw, 1.8rem);
}

html[data-evo-theme="ink"] body.stats-page .stats-match-row {
    border: 1px solid rgba(132, 93, 48, 0.24);
    border-radius: 18px;
    background:
        linear-gradient(90deg, rgba(255, 252, 240, 0.92), rgba(238, 218, 181, 0.86));
    box-shadow: 0 10px 20px rgba(52, 35, 17, 0.12);
}

html[data-evo-theme="ink"] body.stats-page .stats-match-row__actions .evo-btn,
html[data-evo-theme="ink"] body.stats-page .stats-match-row__actions button {
    border-radius: 999px;
}

@media (max-width: 760px) {
    html[data-evo-theme="ink"] body.school-page .school-entry-grid,
    html[data-evo-theme="ink"] body.store-page .store-grid--vip,
    html[data-evo-theme="ink"] body.store-page .store-grid--tokens {
        grid-template-columns: 1fr;
    }

    html[data-evo-theme="ink"] body.school-page .school-hall-banner,
    html[data-evo-theme="ink"] body.store-page .store-vip-hero--panel,
    html[data-evo-theme="ink"] body.stats-page .page-hero {
        min-height: 130px;
    }
}

/* Forest Page Shell V2.2: Dojo mentor grove polish */
html[data-evo-theme="ink"] body.dojo-page .dojo-toolbar {
    gap: 0.75rem;
    padding: 0.85rem 1rem;
    background:
        linear-gradient(180deg, rgba(255, 246, 220, 0.88), rgba(228, 196, 142, 0.78)),
        radial-gradient(circle at 50% 0%, rgba(255, 255, 255, 0.32), transparent 52%);
}

html[data-evo-theme="ink"] body.dojo-page .dojo-toolbar .btn-action,
html[data-evo-theme="ink"] body.dojo-page .btn-action {
    border: 1px solid rgba(114, 75, 36, 0.42);
    border-radius: 999px;
    background: linear-gradient(180deg, #f2d39a, #bf7e42);
    color: #3a2412;
    box-shadow: 0 10px 18px rgba(58, 36, 16, 0.16), inset 0 1px 0 rgba(255, 247, 224, 0.62);
}

html[data-evo-theme="ink"] body.dojo-page .btn-action--blue,
html[data-evo-theme="ink"] body.dojo-page .btn-action--purple {
    background: linear-gradient(180deg, #dcefb4, #7ca34f);
    color: #243719;
}

html[data-evo-theme="ink"] body.dojo-page .fusion-container {
    width: min(calc(100% - 1.25rem), 1240px);
    margin: 1rem auto calc(var(--forest-dock-h) + 1rem);
    padding: clamp(0.85rem, 1.5vw, 1.25rem);
    border: 1px solid rgba(150, 108, 60, 0.32);
    border-radius: 32px;
    background:
        linear-gradient(180deg, rgba(255, 249, 232, 0.76), rgba(232, 207, 158, 0.66)),
        radial-gradient(ellipse at 35% 0%, rgba(129, 168, 82, 0.18), transparent 58%);
    box-shadow: 0 24px 56px rgba(38, 28, 14, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.58);
    backdrop-filter: blur(8px);
}

html[data-evo-theme="ink"] body.dojo-page .board-area {
    max-width: 680px;
}

html[data-evo-theme="ink"] body.dojo-page .canvas-wrapper {
    border: 8px solid rgba(95, 61, 29, 0.78);
    border-radius: 26px;
    background:
        radial-gradient(ellipse at 50% 50%, rgba(255, 229, 151, 0.18), transparent 64%),
        linear-gradient(145deg, #d5a663, #8a5b2f);
    box-shadow:
        0 22px 42px rgba(42, 26, 12, 0.3),
        0 0 0 2px rgba(255, 234, 168, 0.22),
        inset 0 2px 0 rgba(255, 246, 215, 0.48);
}

html[data-evo-theme="ink"] body.dojo-page .canvas-wrapper::before {
    content: '';
    position: absolute;
    inset: -18px;
    z-index: 0;
    border-radius: 34px;
    pointer-events: none;
    background:
        radial-gradient(ellipse at 50% 50%, rgba(255, 224, 126, 0.28), transparent 68%),
        radial-gradient(circle at 12% 16%, rgba(255, 244, 180, 0.18), transparent 18%),
        radial-gradient(circle at 88% 18%, rgba(196, 236, 158, 0.16), transparent 20%);
}

html[data-evo-theme="ink"] body.dojo-page .replay-controls {
    border: 1px solid rgba(131, 93, 48, 0.28);
    border-radius: 22px;
    background:
        linear-gradient(180deg, rgba(255, 250, 236, 0.88), rgba(233, 207, 160, 0.82));
    color: #3d2b1b;
    box-shadow: 0 12px 24px rgba(47, 31, 14, 0.16);
}

html[data-evo-theme="ink"] body.dojo-page .evo-move-counter {
    color: #4b3522;
    font-weight: 900;
}

html[data-evo-theme="ink"] body.dojo-page .mentor-area {
    border: 1px solid rgba(131, 93, 48, 0.34);
    border-radius: 28px;
    background:
        linear-gradient(180deg, rgba(255, 248, 226, 0.9), rgba(231, 205, 157, 0.84));
    box-shadow: 0 22px 44px rgba(42, 28, 14, 0.24), inset 0 1px 0 rgba(255, 255, 255, 0.62);
}

/* Forest Friends: readable social parchment layer */
html[data-evo-theme="ink"] body.friends-page .evo-wrap {
    width: min(100%, 1040px);
}

html[data-evo-theme="ink"] body.friends-page .page-hero {
    min-height: 128px;
    border: 1px solid rgba(127, 91, 48, 0.34);
    border-radius: 28px;
    background:
        linear-gradient(180deg, rgba(57, 38, 22, 0.76), rgba(42, 31, 20, 0.68)),
        var(--forest-shell-banner-current) center / cover;
    color: #fff7de;
    box-shadow: 0 18px 38px rgba(42, 28, 14, 0.24);
}

html[data-evo-theme="ink"] body.friends-page .page-hero h1,
html[data-evo-theme="ink"] body.friends-page .page-hero p {
    color: #fff7de;
    text-shadow: 0 2px 12px rgba(0, 0, 0, 0.34);
}

html[data-evo-theme="ink"] body.friends-page .friends-add-card,
html[data-evo-theme="ink"] body.friends-page .friends-grid > div,
html[data-evo-theme="ink"] body.friends-page .friends-pending-card,
html[data-evo-theme="ink"] body.friends-page .evo-empty-state {
    border-color: rgba(126, 88, 47, 0.32);
    background:
        linear-gradient(160deg, rgba(255, 252, 241, 0.96), rgba(239, 220, 185, 0.92)),
        var(--forest-shell-panel-trim-asset) center / cover;
    color: #3e2d20;
    box-shadow: 0 14px 30px rgba(45, 31, 16, 0.18);
}

html[data-evo-theme="ink"] body.friends-page .friends-add-label,
html[data-evo-theme="ink"] body.friends-page .meta-section-title,
html[data-evo-theme="ink"] body.friends-page .friends-list-row strong {
    color: #3e2d20;
}

html[data-evo-theme="ink"] body.friends-page .friends-list-row {
    border-bottom-color: rgba(126, 88, 47, 0.22);
}

html[data-evo-theme="ink"] body.friends-page .friends-list-row:hover {
    color: #5f7f38;
    background: rgba(255, 248, 225, 0.54);
}

html[data-evo-theme="ink"] body.friends-page .friends-chat-log {
    border-color: rgba(126, 88, 47, 0.28);
    background: rgba(255, 250, 236, 0.72);
    color: #3e2d20;
}

html[data-evo-theme="ink"] body.friends-page .evo-muted,
html[data-evo-theme="ink"] body.friends-page .friends-chat-log .evo-muted {
    color: #6b573c;
}

@media (max-width: 768px) {
    html[data-evo-theme="ink"] body.friends-page .evo-wrap {
        padding-bottom: calc(var(--forest-dock-h) + 1.25rem);
    }

    html[data-evo-theme="ink"] body.friends-page .friends-add-card,
    html[data-evo-theme="ink"] body.friends-page .friends-grid > div {
        padding: 0.9rem;
        border-radius: 20px;
    }
}

html[data-evo-theme="ink"] body.dojo-page .mentor-stage {
    border-bottom-color: rgba(131, 93, 48, 0.32);
    background:
        linear-gradient(180deg, rgba(35, 55, 35, 0.2), rgba(35, 55, 35, 0.02)),
        url('/images/themes/forest/pages-v2/dojo-bg.png?v=1') center / cover;
}

html[data-evo-theme="ink"] body.dojo-page .portrait-wrapper {
    border-radius: 22px 22px 0 0;
    background:
        radial-gradient(ellipse at 50% 15%, rgba(255, 235, 164, 0.16), transparent 42%),
        #182515;
}

html[data-evo-theme="ink"] body.dojo-page .stage-gradient {
    background: linear-gradient(to top, rgba(33, 25, 15, 0.88), rgba(33, 25, 15, 0.2), transparent);
}

html[data-evo-theme="ink"] body.dojo-page .dojo-subtitle-panel {
    background: linear-gradient(180deg, rgba(255, 249, 231, 0.72), rgba(236, 211, 166, 0.88));
    border-top: 1px solid rgba(132, 93, 48, 0.34);
}

html[data-evo-theme="ink"] body.dojo-page .galgame-box {
    border: 1px solid rgba(132, 93, 48, 0.22);
    border-radius: 18px;
    background: rgba(255, 252, 241, 0.86);
    color: #3d2a1a;
    box-shadow: 0 12px 22px rgba(43, 28, 12, 0.14);
}

html[data-evo-theme="ink"] body.dojo-page .galgame-name,
html[data-evo-theme="ink"] body.dojo-page .galgame-text {
    color: #3d2a1a;
}

html[data-evo-theme="ink"] body.dojo-page .dojo-coach-avatar {
    border: 2px solid rgba(255, 223, 143, 0.9);
    box-shadow: 0 6px 12px rgba(59, 39, 18, 0.2);
}

html[data-evo-theme="ink"] body.dojo-page .chat-history,
html[data-evo-theme="ink"] body.dojo-page .dojo-chat-input {
    border-color: rgba(132, 93, 48, 0.26);
    background: rgba(255, 248, 230, 0.82);
    color: #3d2a1a;
}

html[data-evo-theme="ink"] body.dojo-page .h-msg-ai,
html[data-evo-theme="ink"] body.dojo-page .h-msg-user {
    border-radius: 14px;
}

html[data-evo-theme="ink"] body.dojo-page .h-msg-ai {
    background: rgba(117, 151, 73, 0.16);
    color: #3d2a1a;
}

html[data-evo-theme="ink"] body.dojo-page .h-msg-user {
    background: rgba(203, 144, 74, 0.18);
    color: #3d2a1a;
}

html[data-evo-theme="ink"] body.dojo-page .dojo-chat-input input {
    background: rgba(255, 253, 242, 0.86);
    color: #3d2a1a;
}

html[data-evo-theme="ink"] body.dojo-page .dojo-review-row {
    border: 1px solid rgba(132, 93, 48, 0.24);
    border-radius: 16px;
    background: rgba(255, 250, 236, 0.78);
}

html[data-evo-theme="ink"] body.dojo-page .dojo-review-row__title,
html[data-evo-theme="ink"] body.dojo-page .dojo-h-card-title {
    color: #3d2a1a;
}

html[data-evo-theme="ink"] body.dojo-page .dojo-review-row__meta,
html[data-evo-theme="ink"] body.dojo-page .dojo-h-card-meta,
html[data-evo-theme="ink"] body.dojo-page .dojo-h-card-date {
    color: #6b5638;
}

@media (max-width: 900px) {
    html[data-evo-theme="ink"] body.dojo-page .fusion-container {
        width: calc(100% - 0.75rem);
        border-radius: 24px;
        gap: 1rem;
    }

    html[data-evo-theme="ink"] body.dojo-page .mentor-area {
        border-radius: 24px;
    }
}

/* Fairy atmosphere on shared pages (My Room keeps its own art direction) */
html[data-evo-theme="ink"] body.evo-body:not(.myroom-body):not(.pa-body):not(.hub-page):not(.stats-page):not(.school-page):not(.dojo-page):not(.store-page):not(.lounge-page):not(.go-nexus-page):not(.games-page):not(.album-page):not(.friends-page):not(.guild-page):not(.profile-shell):not(.onboarding-page):not(.legal-page):not(.arena-shell):not(.evo-auth-page):not(.admin-shell):not(.supervisor-page) {
    background-color: var(--forest-bg);
    background-image:
        url('/images/themes/forest/fairy-depth-bg.svg?v=3'),
        radial-gradient(ellipse 100% 55% at 50% -8%, rgba(212, 184, 255, 0.12), transparent 58%),
        radial-gradient(ellipse 50% 38% at 92% 88%, rgba(240, 200, 120, 0.1), transparent 52%);
    background-size: cover, auto, auto;
    background-position: center top, center, center;
    background-attachment: fixed, scroll, scroll;
}

html[data-evo-theme="ink"] body.evo-body:not(.myroom-body):not(.pa-body):not(.hub-page):not(.stats-page):not(.school-page):not(.dojo-page):not(.store-page):not(.lounge-page):not(.go-nexus-page):not(.games-page):not(.album-page):not(.friends-page):not(.guild-page):not(.profile-shell):not(.onboarding-page):not(.legal-page):not(.arena-shell):not(.evo-auth-page):not(.admin-shell):not(.supervisor-page)::before {
    content: '';
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    background:
        radial-gradient(circle at 12% 22%, rgba(212, 184, 255, 0.08) 0, transparent 28%),
        radial-gradient(circle at 88% 18%, rgba(158, 217, 154, 0.1) 0, transparent 24%),
        radial-gradient(circle at 70% 78%, rgba(240, 184, 208, 0.06) 0, transparent 30%);
    animation: forest-fairy-drift 18s ease-in-out infinite alternate;
}

@keyframes forest-fairy-drift {
    from { opacity: 0.65; transform: translateY(0); }
    to { opacity: 1; transform: translateY(-8px); }
}

html[data-evo-theme="ink"] .evo-topbar,
html[data-evo-theme="ink"] .lounge-forest-shell,
html[data-evo-theme="ink"] .page-content,
html[data-evo-theme="ink"] .arena-view-container,
html[data-evo-theme="ink"] .dojo-shell > :not(.fusion-container):not(.board-area):not(.canvas-wrapper):not(.forest-bubbles):not(.forest-chrome--standalone):not(.evo-modal):not(.dojo-archive-modal) {
    position: relative;
    z-index: 1;
}

/* Forest Page Shell V2: vivid storybook pages with clean art backgrounds */
html[data-evo-theme="ink"] body.stats-page,
html[data-evo-theme="ink"] body.school-page,
html[data-evo-theme="ink"] body.dojo-page,
html[data-evo-theme="ink"] body.store-page,
html[data-evo-theme="ink"] body.lounge-page,
html[data-evo-theme="ink"] body.go-nexus-page {
    min-height: 100dvh;
    color: #3e2d1c;
    background-color: #20321f;
    background-image:
        linear-gradient(180deg, rgba(255, 247, 225, 0.12), rgba(14, 29, 17, 0.24)),
        var(--forest-page-bg);
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
}

html[data-evo-theme="ink"] body.stats-page { --forest-page-bg: url('/images/themes/forest/pages-v2/stats-bg.png?v=1'); }
html[data-evo-theme="ink"] body.school-page { --forest-page-bg: url('/images/themes/forest/pages-v2/school-bg.png?v=1'); }
html[data-evo-theme="ink"] body.dojo-page { --forest-page-bg: url('/images/themes/forest/pages-v2/dojo-bg.png?v=1'); }
html[data-evo-theme="ink"] body.store-page { --forest-page-bg: url('/images/themes/forest/pages-v2/store-bg.png?v=1'); }
html[data-evo-theme="ink"] body.lounge-page,
html[data-evo-theme="ink"] body.go-nexus-page { --forest-page-bg: url('/images/themes/forest/pages-v2/lounge-bg.jpg?v=1'); }

html[data-evo-theme="ink"] body.stats-page::before,
html[data-evo-theme="ink"] body.school-page::before,
html[data-evo-theme="ink"] body.dojo-page::before,
html[data-evo-theme="ink"] body.store-page::before,
html[data-evo-theme="ink"] body.lounge-page::before,
html[data-evo-theme="ink"] body.go-nexus-page::before {
    content: '';
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background:
        radial-gradient(ellipse 56% 48% at 50% 42%, rgba(255, 246, 210, 0.38), transparent 68%),
        linear-gradient(90deg, rgba(10, 25, 13, 0.28), transparent 18%, transparent 82%, rgba(10, 25, 13, 0.28));
}

html[data-evo-theme="ink"] body.stats-page::after,
html[data-evo-theme="ink"] body.school-page::after,
html[data-evo-theme="ink"] body.dojo-page::after,
html[data-evo-theme="ink"] body.store-page::after,
html[data-evo-theme="ink"] body.lounge-page::after,
html[data-evo-theme="ink"] body.go-nexus-page::after {
    content: '';
    position: fixed;
    inset: auto 0 0;
    height: 26vh;
    z-index: 0;
    pointer-events: none;
    background: linear-gradient(180deg, transparent, rgba(20, 37, 18, 0.42));
}

html[data-evo-theme="ink"] body.stats-page .evo-topbar,
html[data-evo-theme="ink"] body.school-page .evo-topbar,
html[data-evo-theme="ink"] body.dojo-page .evo-topbar,
html[data-evo-theme="ink"] body.store-page .evo-topbar {
    width: min(calc(100% - 1rem), 1180px);
    margin: 0.5rem auto 0;
    border: 1px solid rgba(126, 91, 48, 0.3);
    border-radius: 999px;
    background:
        linear-gradient(180deg, rgba(255, 246, 222, 0.9), rgba(228, 198, 145, 0.78)),
        radial-gradient(circle at 50% 0, rgba(255, 255, 255, 0.28), transparent 56%);
    box-shadow: 0 14px 28px rgba(51, 35, 18, 0.2);
    color: #3d2a1a;
}

html[data-evo-theme="ink"] body.stats-page .evo-main,
html[data-evo-theme="ink"] body.store-page .page-content,
html[data-evo-theme="ink"] body.school-page .page-content,
html[data-evo-theme="ink"] body.dojo-page > :not(.evo-topbar):not(.forest-chrome--standalone):not(.forest-bubbles):not(.evo-modal):not(script) {
    position: relative;
    z-index: 1;
}

html[data-evo-theme="ink"] body.stats-page .evo-wrap,
html[data-evo-theme="ink"] body.store-page .page-content,
html[data-evo-theme="ink"] body.school-page .page-content {
    width: min(calc(100% - 1.25rem), 980px);
    margin: 1rem auto calc(var(--forest-dock-h) + 1rem);
}

html[data-evo-theme="ink"] body.stats-page .evo-wrap,
html[data-evo-theme="ink"] body.store-page .page-content,
html[data-evo-theme="ink"] body.school-page .page-content,
html[data-evo-theme="ink"] body.dojo-page .dojo-review-boards,
html[data-evo-theme="ink"] body.dojo-page .dojo-toolbar,
html[data-evo-theme="ink"] body.dojo-page .dojo-locale-banner,
html[data-evo-theme="ink"] body.dojo-page .dojo-main,
html[data-evo-theme="ink"] body.dojo-page .mentor-coach-strip {
    border: 1px solid rgba(150, 108, 60, 0.32);
    border-radius: 28px;
    background:
        linear-gradient(180deg, rgba(255, 249, 232, 0.86), rgba(238, 217, 177, 0.78)),
        radial-gradient(circle at 50% 0, rgba(255, 255, 255, 0.34), transparent 48%);
    box-shadow:
        0 22px 50px rgba(45, 31, 16, 0.26),
        inset 0 1px 0 rgba(255, 255, 255, 0.66);
    backdrop-filter: blur(8px);
}

html[data-evo-theme="ink"] body.store-page .page-content,
html[data-evo-theme="ink"] body.school-page .page-content,
html[data-evo-theme="ink"] body.stats-page .evo-wrap {
    padding: clamp(1rem, 2vw, 1.55rem);
}

html[data-evo-theme="ink"] body.dojo-page .dojo-toolbar,
html[data-evo-theme="ink"] body.dojo-page .dojo-review-boards,
html[data-evo-theme="ink"] body.dojo-page .dojo-locale-banner,
html[data-evo-theme="ink"] body.dojo-page .mentor-coach-strip {
    width: min(calc(100% - 1.25rem), 1100px);
    margin-left: auto;
    margin-right: auto;
}

html[data-evo-theme="ink"] body.dojo-page .dojo-toolbar {
    margin-top: 1rem;
    padding: 0.8rem;
    justify-content: center;
}

html[data-evo-theme="ink"] body.dojo-page .dojo-review-boards {
    padding: 1rem;
}

html[data-evo-theme="ink"] body.stats-page .page-hero,
html[data-evo-theme="ink"] body.school-page .school-hall-banner,
html[data-evo-theme="ink"] body.store-page .store-vip-hero {
    border-radius: 24px;
    border: 1px solid rgba(132, 93, 48, 0.26);
    box-shadow: 0 14px 28px rgba(53, 34, 16, 0.18);
    overflow: hidden;
}

html[data-evo-theme="ink"] body.store-page .store-vip-hero {
    background: rgba(29, 48, 31, 0.75);
}

html[data-evo-theme="ink"] body.stats-page .evo-card,
html[data-evo-theme="ink"] body.school-page .evo-panel,
html[data-evo-theme="ink"] body.school-page .school-entry-card,
html[data-evo-theme="ink"] body.school-page .school-rank-panel,
html[data-evo-theme="ink"] body.school-page .school-video-level-card,
html[data-evo-theme="ink"] body.school-page .school-video-lesson-card,
html[data-evo-theme="ink"] body.school-page .puzzle-card,
html[data-evo-theme="ink"] body.store-page .evo-panel,
html[data-evo-theme="ink"] body.store-page .store-item,
html[data-evo-theme="ink"] body.store-page .store-vip-compare,
html[data-evo-theme="ink"] body.dojo-page .dojo-review-panel {
    border: 1px solid rgba(141, 100, 54, 0.28);
    border-radius: 22px;
    background:
        linear-gradient(180deg, rgba(255, 252, 239, 0.9), rgba(244, 229, 196, 0.84));
    color: #3e2d1c;
    box-shadow: 0 14px 28px rgba(54, 36, 18, 0.14), inset 0 1px 0 rgba(255, 255, 255, 0.72);
}

html[data-evo-theme="ink"] body.school-page .school-entry-card,
html[data-evo-theme="ink"] body.store-page .store-item,
html[data-evo-theme="ink"] body.stats-page .stats-match-row,
html[data-evo-theme="ink"] body.dojo-page .dojo-review-panel {
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}

html[data-evo-theme="ink"] body.school-page .school-entry-card:hover,
html[data-evo-theme="ink"] body.store-page .store-item:hover,
html[data-evo-theme="ink"] body.stats-page .stats-match-row:hover,
html[data-evo-theme="ink"] body.dojo-page .dojo-review-panel:hover {
    transform: translateY(-3px);
    border-color: rgba(129, 159, 74, 0.42);
    box-shadow: 0 18px 34px rgba(46, 34, 17, 0.2);
}

html[data-evo-theme="ink"] body.stats-page .meta-section-title,
html[data-evo-theme="ink"] body.school-page h2,
html[data-evo-theme="ink"] body.store-page .page-section-title,
html[data-evo-theme="ink"] body.dojo-page .dojo-review-panel__title {
    color: #3b291a;
    text-shadow: 0 1px 0 rgba(255, 249, 228, 0.8);
}

html[data-evo-theme="ink"] body.stats-page .stats-match-list,
html[data-evo-theme="ink"] body.school-page .level-grid,
html[data-evo-theme="ink"] body.school-page .school-entry-grid,
html[data-evo-theme="ink"] body.store-page .store-grid {
    gap: 0.85rem;
}

@media (max-width: 760px) {
    html[data-evo-theme="ink"] body.stats-page .evo-topbar,
    html[data-evo-theme="ink"] body.school-page .evo-topbar,
    html[data-evo-theme="ink"] body.dojo-page .evo-topbar,
    html[data-evo-theme="ink"] body.store-page .evo-topbar {
        width: calc(100% - 0.75rem);
        margin-top: 0.35rem;
        border-radius: 18px;
    }

    html[data-evo-theme="ink"] body.stats-page .evo-wrap,
    html[data-evo-theme="ink"] body.store-page .page-content,
    html[data-evo-theme="ink"] body.school-page .page-content,
    html[data-evo-theme="ink"] body.dojo-page .dojo-toolbar,
    html[data-evo-theme="ink"] body.dojo-page .dojo-review-boards,
    html[data-evo-theme="ink"] body.dojo-page .mentor-coach-strip {
        width: calc(100% - 0.75rem);
        border-radius: 22px;
    }
}

/* ── Topbar → fairy forest header strip ── */
html[data-evo-theme="ink"] .evo-topbar {
    background:
        linear-gradient(180deg, rgba(11, 23, 15, 0.96), rgba(7, 15, 10, 0.94)),
        url('/images/themes/forest/fairy-canopy-lights.svg?v=3') center top / cover;
    border: 1px solid rgba(255, 241, 210, 0.24);
    border-top: none;
    border-radius: 0 0 18px 18px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.34);
    padding-bottom: 0.65rem;
}

html[data-evo-theme="ink"] .evo-topbar-title {
    font-family: var(--forest-hand);
    font-size: 1.25rem;
    font-weight: 400;
    color: var(--forest-ink-strong);
    letter-spacing: 0.04em;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.42);
}

html[data-evo-theme="ink"] .evo-topbar .evo-btn-ghost {
    border-radius: var(--forest-radius-pill);
    border: 1px solid rgba(255, 241, 210, 0.32);
    background: rgba(10, 20, 14, 0.84);
    color: var(--forest-ink-strong);
    font-family: var(--forest-font);
    font-weight: 700;
}

html[data-evo-theme="ink"] .evo-hud-chip {
    border-radius: var(--forest-radius-pill);
    border: 1px solid rgba(255, 241, 210, 0.24);
    background: rgba(10, 20, 14, 0.8);
    color: var(--forest-ink-soft);
    font-family: var(--forest-font);
}

html[data-evo-theme="ink"] .evo-hud-chip.gold,
html[data-evo-theme="ink"] .evo-hud-chip .evo-gold {
    color: var(--forest-sun);
}

/* ── Global Evo components ── */
html[data-evo-theme="ink"] body:not(.myroom-body) .evo-btn {
    font-family: var(--forest-font);
    font-weight: 700;
    border-radius: var(--forest-radius-pill);
    letter-spacing: 0.01em;
    text-transform: none;
}

html[data-evo-theme="ink"] body:not(.myroom-body) .evo-btn-primary {
    color: var(--forest-bark-deep);
    background: linear-gradient(180deg, #d8f2d4, var(--forest-moss));
    border-color: rgba(158, 217, 154, 0.45);
}

html[data-evo-theme="ink"] body:not(.myroom-body) .evo-btn-solid {
    color: var(--forest-bark-deep);
    background: linear-gradient(180deg, #f0d49a, var(--forest-sun));
    border-color: transparent;
}

html[data-evo-theme="ink"] body:not(.myroom-body) .evo-btn-ghost {
    color: var(--forest-cream);
    border-color: var(--forest-border-soft);
    background: rgba(14, 26, 18, 0.55);
}

html[data-evo-theme="ink"] body:not(.myroom-body) .evo-panel,
html[data-evo-theme="ink"] body:not(.myroom-body) .evo-card {
    border-radius: var(--forest-radius);
    border: 2px solid var(--forest-border-soft);
    background: linear-gradient(165deg, rgba(28, 48, 34, 0.94), rgba(14, 26, 18, 0.96));
    box-shadow: var(--forest-shadow);
}

html[data-evo-theme="ink"] body:not(.myroom-body) .evo-alert {
    border-radius: var(--forest-radius-sm);
    border-width: 2px;
}

html[data-evo-theme="ink"] body:not(.myroom-body) .evo-alert-success {
    background: rgba(61, 122, 82, 0.35);
    border-color: var(--forest-moss);
    color: var(--forest-cream);
}

html[data-evo-theme="ink"] body:not(.myroom-body) .evo-alert-error {
    background: rgba(120, 48, 40, 0.35);
    border-color: rgba(224, 122, 106, 0.55);
    color: #ffd8d0;
}

html[data-evo-theme="ink"] body:not(.myroom-body) input,
html[data-evo-theme="ink"] body:not(.myroom-body) select,
html[data-evo-theme="ink"] body:not(.myroom-body) textarea {
    border-radius: var(--forest-radius-sm);
    border: 2px solid var(--forest-border-soft);
    background: rgba(8, 16, 11, 0.78);
    color: var(--forest-cream);
    font-family: var(--forest-font);
}

html[data-evo-theme="ink"] body:not(.myroom-body) input:focus,
html[data-evo-theme="ink"] body:not(.myroom-body) select:focus,
html[data-evo-theme="ink"] body:not(.myroom-body) textarea:focus {
    border-color: var(--forest-moss);
    box-shadow: 0 0 0 3px var(--forest-moss-dim);
    outline: none;
}

html[data-evo-theme="ink"] .page-content {
    padding: 1rem 1.15rem 1.25rem;
    max-width: 1100px;
    margin: 0 auto;
    color: var(--forest-ink-strong);
}

html[data-evo-theme="ink"] body.evo-body:not(.hub-page):not(.myroom-body) .page-content {
    border-radius: calc(var(--forest-radius) + 2px);
    border: 1px solid rgba(255, 241, 210, 0.22);
    background:
        linear-gradient(165deg, rgba(12, 25, 16, 0.86), rgba(8, 16, 11, 0.9)),
        radial-gradient(circle at 10% 0%, rgba(255, 224, 170, 0.14), transparent 42%);
    box-shadow: 0 18px 38px rgba(0, 0, 0, 0.3);
    backdrop-filter: blur(8px);
}

html[data-evo-theme="ink"] .page-desc,
html[data-evo-theme="ink"] .evo-muted {
    color: var(--forest-ink-soft);
}

html[data-evo-theme="ink"] .page-section-title {
    color: var(--forest-ink-strong);
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.35);
}

/* ── Mentor strips ── */
html[data-evo-theme="ink"] .mentor-hub-bar,
html[data-evo-theme="ink"] .mentor-coach-strip {
    border-radius: var(--forest-radius);
    border: 2px solid var(--forest-border-soft);
    background: linear-gradient(135deg, rgba(61, 122, 82, 0.28), rgba(212, 184, 255, 0.1));
    box-shadow: var(--forest-shadow);
}

html[data-evo-theme="ink"] .mentor-hub-bar__name,
html[data-evo-theme="ink"] .mentor-coach-strip__name {
    font-family: var(--forest-hand);
    color: var(--forest-cream);
}

html[data-evo-theme="ink"] .mentor-hub-bar__avatar,
html[data-evo-theme="ink"] .mentor-coach-strip__avatar {
    border-radius: 50%;
    border-color: var(--forest-sun);
}

/* ── Arena ── */
html[data-evo-theme="ink"] .arena-shell {
    height: auto;
    min-height: 100dvh;
    overflow: visible;
}

html[data-evo-theme="ink"] .arena-tabs,
html[data-evo-theme="ink"] .arena-section-tabs {
    gap: 0.45rem;
}

html[data-evo-theme="ink"] .arena-tab,
html[data-evo-theme="ink"] .arena-section-tab {
    border-radius: var(--forest-radius-pill);
    border: 2px solid var(--forest-border-soft);
    background: rgba(10, 20, 14, 0.72);
    color: var(--forest-muted);
    font-family: var(--forest-font);
    font-weight: 700;
}

html[data-evo-theme="ink"] .arena-tab.active,
html[data-evo-theme="ink"] .arena-section-tab.active {
    background: linear-gradient(180deg, rgba(158, 217, 154, 0.35), rgba(63, 122, 85, 0.55));
    border-color: var(--forest-moss);
    color: var(--forest-cream);
}

html[data-evo-theme="ink"] .arena-panel {
    border-radius: var(--forest-radius);
    border: 2px solid rgba(255, 236, 192, 0.28);
    background:
        linear-gradient(160deg, rgba(27, 44, 30, 0.9), rgba(17, 30, 20, 0.95)),
        radial-gradient(circle at 10% 0%, rgba(255, 222, 163, 0.12), transparent 48%);
    box-shadow:
        0 14px 28px rgba(0, 0, 0, 0.32),
        inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

html[data-evo-theme="ink"] .arena-panel-head {
    font-family: var(--forest-hand);
    font-size: 1rem;
    background:
        linear-gradient(90deg, rgba(45, 68, 48, 0.86), rgba(25, 43, 30, 0.78)),
        url('/images/themes/forest/fairy-panel-parchment.svg?v=3') center/cover;
    border-bottom-color: rgba(255, 236, 192, 0.24);
    color: var(--forest-cream);
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.35);
}

html[data-evo-theme="ink"] .arena-panel-head--green {
    background:
        linear-gradient(90deg, rgba(92, 150, 101, 0.6), rgba(30, 52, 33, 0.72)),
        url('/images/themes/forest/fairy-panel-parchment.svg?v=3') center/cover;
    color: #f4f2dc;
}

html[data-evo-theme="ink"] .arena-panel-head--gold {
    background:
        linear-gradient(90deg, rgba(176, 137, 79, 0.6), rgba(62, 53, 34, 0.72)),
        url('/images/themes/forest/fairy-panel-parchment.svg?v=3') center/cover;
}

html[data-evo-theme="ink"] .arena-panel-head--cyan,
html[data-evo-theme="ink"] .arena-panel-head--cyan-bottom {
    color: #d9f3e3;
    border-top-color: rgba(188, 240, 206, 0.24);
    border-bottom-color: rgba(188, 240, 206, 0.24);
}

html[data-evo-theme="ink"] .match-card,
html[data-evo-theme="ink"] .room-card {
    border-radius: var(--forest-radius-sm);
    border: 2px solid rgba(255, 236, 192, 0.22);
    background:
        linear-gradient(155deg, rgba(28, 46, 31, 0.86), rgba(16, 30, 20, 0.92)),
        radial-gradient(circle at 100% 0%, rgba(255, 214, 146, 0.12), transparent 40%);
}

html[data-evo-theme="ink"] .match-card:hover,
html[data-evo-theme="ink"] .room-card:hover {
    border-color: rgba(255, 220, 146, 0.46);
    box-shadow: 0 0 0 2px rgba(255, 220, 146, 0.2);
}

html[data-evo-theme="ink"] .mc-title,
html[data-evo-theme="ink"] .room-card-title {
    font-family: var(--forest-hand);
    color: var(--forest-cream);
}

html[data-evo-theme="ink"] .match-card-art {
    filter: saturate(0.95) brightness(1.04);
}

html[data-evo-theme="ink"] .match-card-body {
    background: linear-gradient(180deg, rgba(10, 18, 12, 0.22), rgba(10, 18, 12, 0.56));
}

html[data-evo-theme="ink"] .mc-sub {
    color: #d9e7d7;
}

html[data-evo-theme="ink"] .arena-modal__panel,
html[data-evo-theme="ink"] .arena-setup-modal {
    border-radius: var(--forest-radius);
    border: 2px solid var(--forest-border-soft);
    background: linear-gradient(165deg, rgba(28, 48, 34, 0.98), rgba(12, 22, 15, 0.98));
}

html[data-evo-theme="ink"] .chat-box,
html[data-evo-theme="ink"] .online-list {
    border-radius: var(--forest-radius-sm);
    border-color: rgba(255, 236, 192, 0.22);
    background: rgba(18, 30, 21, 0.72);
}

html[data-evo-theme="ink"] .radar-box--visual::before {
    background: url('/images/themes/forest/fairy-arena-radar.svg?v=1') center / cover no-repeat;
    opacity: 0.22;
}

html[data-evo-theme="ink"] .arena-stat-pill {
    color: #dff3cb;
}

html[data-evo-theme="ink"] .chat-input-area {
    border-top-color: rgba(255, 236, 192, 0.2);
    background: rgba(15, 26, 18, 0.7);
}

html[data-evo-theme="ink"] .chat-input-area button {
    border-left-color: rgba(255, 236, 192, 0.28);
    background: linear-gradient(180deg, rgba(219, 240, 175, 0.42), rgba(171, 209, 126, 0.38));
    color: #21341f;
}

html[data-evo-theme="ink"] .chat-input-area button:hover {
    background: linear-gradient(180deg, rgba(232, 248, 198, 0.66), rgba(183, 219, 136, 0.54));
    color: #152617;
}

html[data-evo-theme="ink"] .arena-bot-card {
    border-color: rgba(255, 236, 192, 0.26);
    background:
        linear-gradient(152deg, rgba(36, 56, 38, 0.82), rgba(21, 34, 24, 0.88)),
        radial-gradient(circle at 100% 0%, rgba(212, 184, 255, 0.16), transparent 42%);
}

html[data-evo-theme="ink"] .arena-bot-card:hover {
    border-color: rgba(255, 220, 146, 0.46);
    background:
        linear-gradient(152deg, rgba(48, 73, 50, 0.88), rgba(27, 44, 30, 0.92)),
        radial-gradient(circle at 100% 0%, rgba(212, 184, 255, 0.2), transparent 45%);
}

html[data-evo-theme="ink"] .arena-bot-avatar {
    border-color: rgba(255, 236, 192, 0.36);
    background: linear-gradient(180deg, rgba(240, 200, 120, 0.18), rgba(158, 217, 154, 0.18));
}

html[data-evo-theme="ink"] .arena-bot-strength-label {
    color: #f4dba5;
}

html[data-evo-theme="ink"] .arena-bot-strength-value {
    color: #f6f4df;
}

html[data-evo-theme="ink"] .arena-bot-note {
    color: #cfe2c8;
}

html[data-evo-theme="ink"] .arena-bot-state-pill--busy {
    border-color: rgba(255, 220, 146, 0.46);
    color: #ffe8b9;
    background: rgba(121, 88, 40, 0.3);
}

html[data-evo-theme="ink"] .arena-bot-challenge-btn {
    border-color: rgba(240, 200, 120, 0.6);
    background: linear-gradient(180deg, rgba(245, 222, 169, 0.42), rgba(215, 188, 125, 0.45));
    color: #2f2a18;
}

html[data-evo-theme="ink"] .arena-bot-challenge-btn:hover {
    border-color: rgba(255, 236, 192, 0.82);
    background: linear-gradient(180deg, rgba(255, 239, 198, 0.76), rgba(223, 200, 137, 0.62));
    color: #1f1a0f;
}

/* ── Dojo ── */
html[data-evo-theme="ink"] .dojo-toolbar {
    background: rgba(10, 20, 14, 0.82);
    border-bottom: 2px solid var(--forest-border-soft);
    backdrop-filter: blur(8px);
}

html[data-evo-theme="ink"] .btn-action {
    border-radius: var(--forest-radius-pill);
    border: 2px solid var(--forest-border-soft);
    font-family: var(--forest-font);
    font-weight: 700;
    background: rgba(14, 26, 18, 0.88);
    color: var(--forest-cream);
}

html[data-evo-theme="ink"] .btn-action--blue {
    background: linear-gradient(180deg, rgba(142, 200, 232, 0.35), rgba(90, 143, 191, 0.45));
    border-color: rgba(142, 200, 232, 0.45);
}

html[data-evo-theme="ink"] .btn-action--purple {
    background: linear-gradient(180deg, rgba(212, 184, 255, 0.28), rgba(155, 120, 200, 0.38));
    border-color: rgba(212, 184, 255, 0.4);
}

html[data-evo-theme="ink"] .dojo-review-panel {
    border-radius: var(--forest-radius);
    border: 2px dashed rgba(158, 217, 154, 0.35);
    background: rgba(12, 22, 15, 0.82);
}

html[data-evo-theme="ink"] .dojo-review-panel__title,
html[data-evo-theme="ink"] .dojo-purified-title {
    font-family: var(--forest-hand);
    color: var(--forest-cream);
}

html[data-evo-theme="ink"] .dojo-history-modal,
html[data-evo-theme="ink"] .dojo-modal,
html[data-evo-theme="ink"] .galgame-overlay {
    border-radius: var(--forest-radius);
}

html[data-evo-theme="ink"] .dojo-empty-mentor-panel {
    border-radius: var(--forest-radius);
    border-color: var(--forest-fairy-dim);
}

/* ── School / pages grid ── */
html[data-evo-theme="ink"] .school-hall-banner h2,
html[data-evo-theme="ink"] .school-breadcrumb {
    font-family: var(--forest-hand);
    color: var(--forest-cream);
}

html[data-evo-theme="ink"] .school-rank-panel {
    border-radius: var(--forest-radius);
}

html[data-evo-theme="ink"] .school-rank-section-title.kyu {
    color: var(--forest-sky);
}

html[data-evo-theme="ink"] .school-rank-section-title.dan {
    color: var(--forest-sun);
}

html[data-evo-theme="ink"] .level-node,
html[data-evo-theme="ink"] .kyu-node,
html[data-evo-theme="ink"] .dan-node {
    border-radius: var(--forest-radius-sm);
    border: 2px solid var(--forest-border-soft);
    background: rgba(10, 20, 14, 0.72);
    font-family: var(--forest-font);
}

html[data-evo-theme="ink"] .kyu-node {
    color: var(--forest-sky);
}

html[data-evo-theme="ink"] .kyu-node:hover {
    border-color: var(--forest-sky);
    background: rgba(142, 200, 232, 0.14);
}

html[data-evo-theme="ink"] .dan-node {
    color: var(--forest-sun);
}

html[data-evo-theme="ink"] .dan-node:hover {
    border-color: var(--forest-sun);
    background: rgba(240, 200, 120, 0.12);
}

/* ── Store / album ── */
html[data-evo-theme="ink"] .store-page-hero,
html[data-evo-theme="ink"] .store-vip-hero,
html[data-evo-theme="ink"] .album-shell .album-hero {
    border-radius: var(--forest-radius);
    overflow: hidden;
    border: 2px solid var(--forest-border-soft);
}

html[data-evo-theme="ink"] .store-card,
html[data-evo-theme="ink"] .album-card,
html[data-evo-theme="ink"] .mentor-card {
    border-radius: var(--forest-radius-sm);
    border: 2px solid var(--forest-border-soft);
    background: rgba(12, 22, 15, 0.82);
}

html[data-evo-theme="ink"] .store-card:hover,
html[data-evo-theme="ink"] .album-card:hover {
    border-color: var(--forest-moss);
}

html[data-evo-theme="ink"] .store-page .page-content {
    max-width: 980px;
    margin-top: 0.8rem;
    padding: 1.1rem clamp(0.9rem, 2.8vw, 1.4rem) calc(var(--forest-dock-h) + 1.75rem);
    border-radius: calc(var(--forest-radius) + 4px);
    border: 1px solid rgba(255, 239, 203, 0.32);
    background:
        linear-gradient(165deg, rgba(12, 25, 16, 0.92), rgba(8, 16, 11, 0.94)),
        radial-gradient(circle at 12% 0%, rgba(255, 224, 170, 0.16), transparent 40%);
    box-shadow:
        0 20px 42px rgba(0, 0, 0, 0.36),
        inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

html[data-evo-theme="ink"] .store-page .store-vip-hero--panel {
    border-color: rgba(255, 239, 203, 0.38);
    box-shadow: 0 16px 34px rgba(0, 0, 0, 0.36);
}

html[data-evo-theme="ink"] .store-page .store-page-hero-veil {
    background: linear-gradient(180deg, rgba(6, 12, 8, 0.12) 12%, rgba(6, 12, 8, 0.82) 100%);
}

html[data-evo-theme="ink"] .store-page .page-section-title {
    margin-top: 1.55rem;
    margin-bottom: 0.72rem;
}

html[data-evo-theme="ink"] .store-page .store-vip-hero--panel + .page-section-title {
    margin-top: 0.35rem;
}

html[data-evo-theme="ink"] .store-page .page-desc {
    margin-bottom: 0.85rem;
    line-height: 1.65;
}

html[data-evo-theme="ink"] .store-page .store-vip-perks {
    margin: 0.45rem auto 1.4rem;
    padding: 0.82rem 1rem;
    border-radius: 20px;
    border: 1px solid rgba(159, 116, 69, 0.28);
    background: linear-gradient(160deg, rgba(255, 252, 241, 0.94), rgba(241, 229, 200, 0.92));
}

html[data-evo-theme="ink"] .store-page .store-grid {
    gap: 0.95rem;
    margin-bottom: 1.25rem;
}

html[data-evo-theme="ink"] .store-page .store-item,
html[data-evo-theme="ink"] .store-page .store-vip-compare,
html[data-evo-theme="ink"] .store-page .store-featured-card,
html[data-evo-theme="ink"] .store-page .album-store-promo {
    border: 1px solid rgba(255, 239, 203, 0.24);
    background: linear-gradient(160deg, rgba(16, 31, 21, 0.9), rgba(8, 16, 11, 0.9));
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.28);
}

html[data-evo-theme="ink"] .store-page .store-item:hover,
html[data-evo-theme="ink"] .store-page .store-featured-card:hover,
html[data-evo-theme="ink"] .store-page .album-store-promo:hover {
    border-color: rgba(255, 220, 146, 0.42);
    box-shadow: 0 16px 30px rgba(0, 0, 0, 0.34);
}

html[data-evo-theme="ink"] .store-page .store-price {
    color: #f1d9a0;
    text-shadow: 0 2px 12px rgba(0, 0, 0, 0.35);
}

html[data-evo-theme="ink"] .store-page .store-vip-status,
html[data-evo-theme="ink"] .store-page .store-balance-line,
html[data-evo-theme="ink"] .store-page .store-note,
html[data-evo-theme="ink"] .store-page .store-note--sm,
html[data-evo-theme="ink"] .store-page .store-vip-duration,
html[data-evo-theme="ink"] .store-page .store-legal-note,
html[data-evo-theme="ink"] .store-page .album-promo-progress-text,
html[data-evo-theme="ink"] .store-page .album-promo-sub,
html[data-evo-theme="ink"] .store-page .store-vip-compare__table td {
    color: var(--forest-ink-soft);
}

html[data-evo-theme="ink"] .store-page .store-vip-compare__summary,
html[data-evo-theme="ink"] .store-page .store-vip-compare__table th,
html[data-evo-theme="ink"] .store-page .store-featured-card__body strong {
    color: var(--forest-ink-strong);
}

html[data-evo-theme="ink"] .store-page .store-vip-compare__table th,
html[data-evo-theme="ink"] .store-page .store-vip-compare__table td {
    border-bottom-color: rgba(255, 239, 203, 0.12);
}

html[data-evo-theme="ink"] .store-page .store-legal-note a {
    color: #ffe3b4;
}

html[data-evo-theme="ink"] .store-page .store-page-footer {
    margin-top: 0.7rem;
    padding-bottom: max(1.1rem, env(safe-area-inset-bottom));
}

/* ── Friends / guild / quests / stats / games ── */
html[data-evo-theme="ink"] .friend-card,
html[data-evo-theme="ink"] .guild-card,
html[data-evo-theme="ink"] .quest-card,
html[data-evo-theme="ink"] .stats-panel,
html[data-evo-theme="ink"] .game-row {
    border-radius: var(--forest-radius-sm);
    border: 2px solid var(--forest-border-soft);
    background: rgba(12, 22, 15, 0.82);
}

html[data-evo-theme="ink"] h1,
html[data-evo-theme="ink"] h2,
html[data-evo-theme="ink"] .page-heading {
    font-family: var(--forest-hand);
    color: var(--forest-cream);
    font-weight: 400;
}

/* ── Lounge / Nexus ── */
html[data-evo-theme="ink"] .lounge-page,
html[data-evo-theme="ink"] .nx-play-body {
    background-color: var(--forest-bg);
}

html[data-evo-theme="ink"] .nx-level-card,
html[data-evo-theme="ink"] .lounge-game-card {
    border-radius: var(--forest-radius-sm);
    border: 2px solid var(--forest-border-soft);
    background: rgba(12, 22, 15, 0.85);
}

/* ── Auth pages ── */
html[data-evo-theme="ink"] .evo-auth-page {
    background-image:
        url('/images/themes/forest/fairy-landing-gate.svg?v=3'),
        radial-gradient(ellipse 80% 50% at 50% 0%, rgba(212, 184, 255, 0.14), transparent 60%);
    background-size: cover;
}

html[data-evo-theme="ink"] .evo-auth-card,
html[data-evo-theme="ink"] .auth-form-card {
    border-radius: calc(var(--forest-radius) + 6px);
    border: 3px solid var(--forest-border-soft);
    background: rgba(14, 26, 18, 0.9);
    backdrop-filter: blur(10px);
    box-shadow: var(--forest-shadow);
}

html[data-evo-theme="ink"] .evo-auth-card h1,
html[data-evo-theme="ink"] .auth-form-card h1 {
    font-family: var(--forest-hand);
}

/* ── Modals / drawers (shared) ── */
html[data-evo-theme="ink"] .evo-modal,
html[data-evo-theme="ink"] .evo-hub-drawer-panel {
    border-radius: var(--forest-radius);
    border: 2px solid var(--forest-border-soft);
    background: linear-gradient(165deg, rgba(28, 48, 34, 0.98), rgba(12, 22, 15, 0.98));
}

html[data-evo-theme="ink"] .evo-hub-drawer-backdrop {
    background: rgba(4, 10, 7, 0.72);
}

/* Hide forest chrome outside forest world */
html:not([data-evo-theme="ink"]) .forest-chrome--standalone {
    display: none !important;
}

@media (max-width: 720px) {
    html[data-evo-theme="ink"] .evo-topbar {
        flex-wrap: wrap;
        gap: 0.45rem;
    }

    html[data-evo-theme="ink"] .evo-topbar-end .evo-hud {
        width: 100%;
        flex-wrap: wrap;
    }

    html[data-evo-theme="ink"] .store-page .page-content {
        margin-top: 0.55rem;
        padding: 0.9rem 0.82rem calc(var(--forest-dock-h) + 1.45rem);
    }

    html[data-evo-theme="ink"] .store-page .page-section-title {
        margin-top: 1.3rem;
    }

    html[data-evo-theme="ink"] .store-page .store-vip-perks {
        padding: 0.65rem 0.72rem;
        grid-template-columns: 1fr;
        gap: 0.3rem;
    }
}

/* ── Forest fairy-world overhaul (wave-4) ── */
html[data-evo-theme="ink"] .forest-chrome--standalone .forest-dock {
    background:
        linear-gradient(180deg, rgba(255, 240, 208, 0.9), rgba(228, 195, 147, 0.92)),
        var(--forest-dock-bg, url('/images/themes/forest/fairy-dock-wood.svg?v=3')) center / cover;
    border-top-color: rgba(118, 82, 44, 0.45);
    box-shadow: 0 -12px 34px rgba(76, 52, 27, 0.35);
}

html[data-evo-theme="ink"] body.evo-body:not(.myroom-body):not(.pa-body):not(.hub-page):not(.stats-page):not(.school-page):not(.dojo-page):not(.store-page):not(.lounge-page):not(.go-nexus-page):not(.games-page):not(.album-page):not(.friends-page):not(.guild-page):not(.profile-shell):not(.onboarding-page):not(.legal-page):not(.arena-shell):not(.evo-auth-page):not(.admin-shell):not(.supervisor-page) {
    background-color: var(--forest-bg);
    background-image:
        url('/images/themes/forest/fairy-depth-bg.svg?v=3'),
        radial-gradient(ellipse 88% 50% at 50% -8%, rgba(255, 233, 178, 0.32), transparent 58%),
        radial-gradient(ellipse 56% 40% at 88% 86%, rgba(216, 184, 255, 0.24), transparent 56%);
    background-size: cover, auto, auto;
    background-position: center top, center, center;
}

html[data-evo-theme="ink"] body.evo-body:not(.myroom-body):not(.pa-body):not(.hub-page):not(.stats-page):not(.school-page):not(.dojo-page):not(.store-page):not(.lounge-page):not(.go-nexus-page):not(.games-page):not(.album-page):not(.friends-page):not(.guild-page):not(.profile-shell):not(.onboarding-page):not(.legal-page):not(.arena-shell):not(.evo-auth-page):not(.admin-shell):not(.supervisor-page)::before {
    background:
        radial-gradient(circle at 12% 22%, rgba(255, 241, 186, 0.26) 0, transparent 30%),
        radial-gradient(circle at 88% 18%, rgba(158, 217, 154, 0.18) 0, transparent 28%),
        radial-gradient(circle at 70% 78%, rgba(240, 184, 208, 0.16) 0, transparent 34%);
}

html[data-evo-theme="ink"] .evo-topbar {
    background:
        linear-gradient(180deg, rgba(255, 246, 224, 0.9), rgba(238, 219, 183, 0.9)),
        url('/images/themes/forest/fairy-canopy-lights.svg?v=3') center top / cover;
    border-color: rgba(146, 106, 62, 0.34);
    box-shadow: 0 10px 24px rgba(70, 49, 25, 0.24);
}

html[data-evo-theme="ink"] .evo-topbar-title {
    color: #3a291b;
    text-shadow: 0 1px 0 rgba(255, 250, 238, 0.84);
}

html[data-evo-theme="ink"] .evo-topbar .evo-btn-ghost,
html[data-evo-theme="ink"] .evo-hud-chip {
    color: #4a3a2a;
    border-color: rgba(136, 97, 59, 0.3);
    background: rgba(255, 245, 222, 0.84);
}

html[data-evo-theme="ink"] .evo-hud-chip.gold,
html[data-evo-theme="ink"] .evo-hud-chip.gold strong,
html[data-evo-theme="ink"] .evo-hud-chip .evo-gold {
    color: #8a5410;
}

html[data-evo-theme="ink"] body:not(.myroom-body) .evo-btn-primary {
    color: #3f2818;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.14), rgba(90, 56, 24, 0.12)),
        url('/images/themes/forest/fairy-btn-wood-main.svg?v=3') center / cover;
    border-color: rgba(116, 77, 39, 0.56);
    box-shadow: 0 10px 20px rgba(88, 58, 29, 0.22);
}

html[data-evo-theme="ink"] body:not(.myroom-body) .evo-btn-solid {
    color: #2f3f24;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.2), rgba(80, 105, 52, 0.16)),
        url('/images/themes/forest/fairy-btn-vine-soft.svg?v=3') center / cover;
    border-color: rgba(89, 123, 57, 0.54);
}

html[data-evo-theme="ink"] body:not(.myroom-body) .evo-btn-ghost {
    color: #4a3a2a;
    border-color: rgba(136, 97, 59, 0.34);
    background: rgba(255, 245, 221, 0.74);
}

html[data-evo-theme="ink"] body:not(.myroom-body) .evo-panel,
html[data-evo-theme="ink"] body:not(.myroom-body) .evo-card {
    border-color: rgba(160, 118, 71, 0.34);
    background:
        linear-gradient(165deg, rgba(255, 249, 233, 0.88), rgba(239, 220, 183, 0.88)),
        url('/images/themes/forest/fairy-panel-parchment.svg?v=3') center / cover;
    box-shadow: 0 14px 30px rgba(80, 56, 29, 0.22);
    color: var(--forest-ink-strong);
}

html[data-evo-theme="ink"] body:not(.myroom-body) input,
html[data-evo-theme="ink"] body:not(.myroom-body) select,
html[data-evo-theme="ink"] body:not(.myroom-body) textarea {
    border-color: rgba(153, 112, 68, 0.35);
    background: rgba(255, 249, 233, 0.86);
    color: #3e2f22;
}

html[data-evo-theme="ink"] body:not(.myroom-body) input:focus,
html[data-evo-theme="ink"] body:not(.myroom-body) select:focus,
html[data-evo-theme="ink"] body:not(.myroom-body) textarea:focus {
    border-color: rgba(96, 139, 63, 0.62);
    box-shadow: 0 0 0 3px rgba(133, 180, 109, 0.24);
}

html[data-evo-theme="ink"] .page-content {
    color: var(--forest-ink-strong);
}

html[data-evo-theme="ink"] body.evo-body:not(.hub-page):not(.myroom-body) .page-content {
    border-color: rgba(162, 121, 74, 0.28);
    background:
        linear-gradient(165deg, rgba(255, 249, 233, 0.86), rgba(238, 218, 183, 0.86)),
        url('/images/themes/forest/fairy-panel-parchment.svg?v=3') center / cover;
    box-shadow: 0 18px 36px rgba(75, 53, 28, 0.24);
}

html[data-evo-theme="ink"] .page-desc,
html[data-evo-theme="ink"] .evo-muted,
html[data-evo-theme="ink"] .store-page .store-vip-status,
html[data-evo-theme="ink"] .store-page .store-balance-line,
html[data-evo-theme="ink"] .store-page .store-note,
html[data-evo-theme="ink"] .store-page .store-note--sm,
html[data-evo-theme="ink"] .store-page .store-vip-duration,
html[data-evo-theme="ink"] .store-page .store-legal-note,
html[data-evo-theme="ink"] .store-page .album-promo-progress-text,
html[data-evo-theme="ink"] .store-page .album-promo-sub,
html[data-evo-theme="ink"] .store-page .store-vip-compare__table td {
    color: var(--forest-ink-soft);
}

html[data-evo-theme="ink"] .page-section-title,
html[data-evo-theme="ink"] .store-page .store-vip-compare__summary,
html[data-evo-theme="ink"] .store-page .store-vip-compare__table th,
html[data-evo-theme="ink"] .store-page .store-featured-card__body strong {
    color: #3b2d20;
    text-shadow: 0 1px 0 rgba(255, 249, 236, 0.8);
}

html[data-evo-theme="ink"] .store-page .page-content {
    border-color: rgba(160, 116, 68, 0.34);
    background:
        linear-gradient(165deg, rgba(255, 249, 232, 0.9), rgba(235, 214, 177, 0.9)),
        url('/images/themes/forest/fairy-panel-parchment.svg?v=3') center / cover;
    box-shadow:
        0 20px 42px rgba(72, 50, 25, 0.28),
        inset 0 1px 0 rgba(255, 252, 246, 0.72);
}

html[data-evo-theme="ink"] .store-page .store-item,
html[data-evo-theme="ink"] .store-page .store-vip-compare,
html[data-evo-theme="ink"] .store-page .store-featured-card,
html[data-evo-theme="ink"] .store-page .album-store-promo,
html[data-evo-theme="ink"] .store-card,
html[data-evo-theme="ink"] .album-card,
html[data-evo-theme="ink"] .mentor-card {
    border-color: rgba(159, 116, 69, 0.28);
    background:
        linear-gradient(160deg, rgba(255, 252, 241, 0.92), rgba(241, 229, 200, 0.9));
    box-shadow: 0 12px 24px rgba(80, 56, 28, 0.2);
    color: #3e2e21;
}

html[data-evo-theme="ink"] .store-page .store-item:hover,
html[data-evo-theme="ink"] .store-page .store-featured-card:hover,
html[data-evo-theme="ink"] .store-page .album-store-promo:hover,
html[data-evo-theme="ink"] .store-card:hover,
html[data-evo-theme="ink"] .album-card:hover {
    border-color: rgba(169, 122, 72, 0.52);
    box-shadow: 0 14px 28px rgba(82, 56, 27, 0.26);
}

html[data-evo-theme="ink"] .store-page .store-price {
    color: #a96c2e;
    text-shadow: 0 1px 0 rgba(255, 246, 225, 0.86);
}

html[data-evo-theme="ink"] .store-page .store-vip-plan-label,
html[data-evo-theme="ink"] .store-page .store-price-usd,
html[data-evo-theme="ink"] .store-page .store-price-usd--lg,
html[data-evo-theme="ink"] .store-page .store-price-usd--sm {
    color: #8c5b2d;
    text-shadow: 0 1px 0 rgba(255, 246, 225, 0.7);
}

html[data-evo-theme="ink"] .store-page .store-vip-bonus {
    color: #2f6f57;
}

html[data-evo-theme="ink"] .store-page .store-vip-perks,
html[data-evo-theme="ink"] .store-page .store-vip-perks li,
html[data-evo-theme="ink"] .store-page .store-vip-duration {
    color: #5e4c38;
}

html[data-evo-theme="ink"] .store-page .store-legal-note a {
    color: #8c5b2d;
}

/* ── Forest cleanup pass: dojo / stats / school ── */
html[data-evo-theme="ink"] body.stats-page .page-hero {
    height: 8.25rem;
    border: 1px solid rgba(160, 117, 72, 0.48);
    background:
        linear-gradient(145deg, rgba(255, 248, 228, 0.22), rgba(72, 48, 24, 0.26)),
        url('/images/themes/forest/fairy-canopy-lights.svg?v=3') center / cover no-repeat,
        url('/images/themes/forest/fairy-play-focus.svg?v=3') center / cover no-repeat;
    box-shadow: 0 14px 30px rgba(73, 50, 25, 0.25);
}

html[data-evo-theme="ink"] body.stats-page .page-hero::after {
    background: linear-gradient(95deg, rgba(55, 36, 18, 0.74) 0%, rgba(55, 36, 18, 0.3) 62%, rgba(55, 36, 18, 0.1) 100%);
}

html[data-evo-theme="ink"] body.stats-page .page-hero-inner {
    width: fit-content;
    max-width: min(100%, 40rem);
    margin-left: 0.9rem;
    padding: 0.78rem 1rem;
    border-radius: 18px;
    border: 1px solid rgba(255, 236, 203, 0.62);
    background: rgba(255, 248, 232, 0.84);
    box-shadow: 0 6px 18px rgba(63, 42, 21, 0.26);
}

html[data-evo-theme="ink"] body.stats-page .page-hero-title {
    font-family: var(--forest-font);
    font-size: 1.3rem;
    font-weight: 800;
    letter-spacing: 0.01em;
    color: #352618;
    text-shadow: none;
}

html[data-evo-theme="ink"] body.stats-page .page-hero-sub {
    margin-top: 0.25rem;
    font-size: 0.86rem;
    line-height: 1.55;
    color: #5d4a37;
}

html[data-evo-theme="ink"] body.stats-page .stats-summary-card {
    border-color: rgba(160, 117, 72, 0.34);
    background:
        linear-gradient(165deg, rgba(255, 251, 241, 0.92), rgba(243, 229, 200, 0.9));
    box-shadow: 0 10px 22px rgba(80, 56, 28, 0.2);
}

html[data-evo-theme="ink"] body.stats-page .stats-summary-user {
    color: #6a543f;
    font-weight: 700;
}

html[data-evo-theme="ink"] body.stats-page .evo-stat-val,
html[data-evo-theme="ink"] body.stats-page .stats-summary-record strong {
    color: #332619;
}

html[data-evo-theme="ink"] body.stats-page .stats-summary-record,
html[data-evo-theme="ink"] body.stats-page .stats-summary-winrate,
html[data-evo-theme="ink"] body.stats-page .stats-match-list {
    color: #5f4d39;
}

html[data-evo-theme="ink"] body.stats-page .meta-section-title--purple {
    color: #825a2f;
}

html[data-evo-theme="ink"] body.stats-page .stats-match-row {
    border-color: rgba(157, 114, 69, 0.24);
    background: linear-gradient(160deg, rgba(255, 252, 241, 0.92), rgba(241, 228, 198, 0.86));
}

html[data-evo-theme="ink"] body.stats-page .stats-match-row__main {
    color: #453524;
}

html[data-evo-theme="ink"] body.stats-page .stats-match-row__date,
html[data-evo-theme="ink"] body.stats-page .stats-match-row__reason {
    color: #6a5844;
}

html[data-evo-theme="ink"] body.stats-page .stats-match-row__result--win {
    color: #2f6e45;
}

html[data-evo-theme="ink"] body.stats-page .stats-match-row__result--loss {
    color: #9d473f;
}

html[data-evo-theme="ink"] body.stats-page .stats-match-row__result--draw {
    color: #6f5b46;
}

html[data-evo-theme="ink"] body.school-page .school-breadcrumb {
    margin-bottom: 1.15rem;
    padding: 0.52rem 0.8rem;
    border-radius: var(--forest-radius-pill);
    border: 1px solid rgba(160, 117, 72, 0.3);
    background: rgba(255, 248, 231, 0.76);
    color: #624f3b;
}

html[data-evo-theme="ink"] body.school-page .school-breadcrumb .bc-active {
    color: #302317;
}

html[data-evo-theme="ink"] body.school-page .school-hall-banner {
    border: 1px solid rgba(168, 124, 77, 0.42);
    background:
        linear-gradient(150deg, rgba(255, 248, 228, 0.24), rgba(78, 52, 27, 0.34)),
        url('/images/themes/forest/fairy-play-focus.svg?v=3') center / cover no-repeat;
    box-shadow: 0 12px 25px rgba(77, 52, 27, 0.24);
}

html[data-evo-theme="ink"] body.school-page .school-hall-banner::after {
    background: linear-gradient(96deg, rgba(64, 43, 22, 0.72) 0%, rgba(64, 43, 22, 0.18) 66%, rgba(64, 43, 22, 0.06) 100%);
}

html[data-evo-theme="ink"] body.school-page .school-hall-banner h2 {
    color: #fff7e8;
    text-shadow: 0 2px 10px rgba(44, 28, 14, 0.48);
    letter-spacing: 0.03em;
}

html[data-evo-theme="ink"] body.school-page .school-rank-panel,
html[data-evo-theme="ink"] body.school-page .school-homework-panel,
html[data-evo-theme="ink"] body.school-page .school-puzzle-progress {
    border-color: rgba(160, 117, 72, 0.28);
    background:
        linear-gradient(160deg, rgba(255, 252, 241, 0.92), rgba(241, 229, 200, 0.88));
    box-shadow: 0 10px 22px rgba(80, 56, 28, 0.18);
}

html[data-evo-theme="ink"] body.school-page .page-desc,
html[data-evo-theme="ink"] body.school-page .school-homework-list {
    color: #5f4c38;
}

html[data-evo-theme="ink"] body.school-page .school-rank-section-title {
    font-family: var(--forest-font);
    font-size: 0.84rem;
    font-weight: 800;
}

html[data-evo-theme="ink"] body.school-page .school-rank-section-title.kyu {
    color: #2f6350;
}

html[data-evo-theme="ink"] body.school-page .school-rank-section-title.dan {
    color: #7f5428;
}

html[data-evo-theme="ink"] body.school-page .level-node,
html[data-evo-theme="ink"] body.school-page .kyu-node,
html[data-evo-theme="ink"] body.school-page .dan-node {
    min-height: 92px;
    border: 1px solid rgba(157, 114, 69, 0.28);
    background: linear-gradient(160deg, rgba(255, 252, 241, 0.94), rgba(245, 233, 208, 0.9));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7);
    color: #3b2d20;
}

html[data-evo-theme="ink"] body.school-page .level-node-rank {
    font-size: 1.02rem;
    font-weight: 800;
}

html[data-evo-theme="ink"] body.school-page .kyu-node .level-node-rank {
    color: #2f5f4f;
}

html[data-evo-theme="ink"] body.school-page .dan-node .level-node-rank {
    color: #744a25;
}

html[data-evo-theme="ink"] body.school-page .level-node-count {
    color: #675542;
    font-weight: 700;
}

html[data-evo-theme="ink"] body.school-page .level-node-solved {
    color: #2f6f46;
}

html[data-evo-theme="ink"] body.school-page .level-node-last {
    color: #7b5d37;
}

html[data-evo-theme="ink"] body.school-page .kyu-node:hover {
    border-color: rgba(86, 133, 116, 0.55);
    background: linear-gradient(160deg, rgba(233, 251, 244, 0.95), rgba(212, 240, 226, 0.92));
}

html[data-evo-theme="ink"] body.school-page .dan-node:hover {
    border-color: rgba(170, 122, 72, 0.58);
    background: linear-gradient(160deg, rgba(255, 242, 220, 0.95), rgba(244, 219, 178, 0.92));
    box-shadow: 0 0 0 2px rgba(170, 122, 72, 0.14);
}

html[data-evo-theme="ink"] body.school-page .school-homework-title,
html[data-evo-theme="ink"] body.school-page .p-title {
    color: #3a2b1d;
}

html[data-evo-theme="ink"] body.school-page .puzzle-card-wrap {
    border-color: rgba(157, 114, 69, 0.2);
    background: linear-gradient(160deg, rgba(255, 255, 250, 0.98), rgba(247, 240, 224, 0.96));
    box-shadow: 0 4px 14px rgba(80, 56, 28, 0.08);
}

html[data-evo-theme="ink"] body.school-page .puzzle-card-wrap::before {
    opacity: 0.07;
}

html[data-evo-theme="ink"] body.school-page .puzzle-card-wrap.is-solved {
    border-color: rgba(76, 140, 95, 0.58);
    background: linear-gradient(160deg, rgba(244, 255, 247, 0.98), rgba(226, 244, 232, 0.95));
    box-shadow: inset 4px 0 0 rgba(74, 155, 98, 0.88), 0 4px 14px rgba(56, 96, 68, 0.1);
}

html[data-evo-theme="ink"] body.school-page .puzzle-card-wrap.puzzle-card-last {
    border-color: rgba(196, 145, 58, 0.62);
    box-shadow: inset 0 0 0 2px rgba(196, 145, 58, 0.18);
}

html[data-evo-theme="ink"] body.school-page .puzzle-card-wrap.puzzle-card-next {
    border-color: rgba(196, 145, 58, 0.72);
    background: linear-gradient(160deg, rgba(255, 249, 232, 0.98), rgba(255, 241, 208, 0.95));
    box-shadow: inset 0 0 0 2px rgba(196, 145, 58, 0.24);
}

html[data-evo-theme="ink"] body.school-page .puzzle-card-wrap:hover {
    border-color: rgba(126, 166, 91, 0.52);
    background: linear-gradient(160deg, rgba(248, 255, 244, 0.94), rgba(226, 245, 212, 0.86));
}

html[data-evo-theme="ink"] body.school-page .p-reward {
    color: #7a552e;
}

html[data-evo-theme="ink"] body.school-page .p-solved {
    color: #2f6f46;
    background: rgba(226, 244, 232, 0.92);
    border-color: rgba(76, 140, 95, 0.42);
    font-weight: 800;
}

html[data-evo-theme="ink"] body.school-page .p-unsolved {
    color: #6a5845;
    background: rgba(255, 252, 245, 0.88);
    border-color: rgba(157, 114, 69, 0.18);
}

html[data-evo-theme="ink"] body.school-page .school-empty-rank {
    color: #675543;
    border-color: rgba(157, 114, 69, 0.3);
    background: rgba(255, 246, 225, 0.72);
}

html[data-evo-theme="ink"] body.dojo-page .dojo-toolbar {
    border-bottom: 1px solid rgba(157, 114, 69, 0.3);
    background: linear-gradient(180deg, rgba(255, 247, 226, 0.92), rgba(242, 224, 188, 0.9));
    box-shadow: 0 8px 18px rgba(77, 52, 27, 0.16);
}

html[data-evo-theme="ink"] body.dojo-page .btn-action {
    color: #3c2d20;
    border-color: rgba(150, 108, 63, 0.44);
    background: linear-gradient(180deg, rgba(255, 252, 242, 0.96), rgba(241, 224, 191, 0.94));
}

html[data-evo-theme="ink"] body.dojo-page .btn-action--blue {
    border-color: rgba(103, 147, 134, 0.44);
    background: linear-gradient(180deg, rgba(235, 252, 247, 0.98), rgba(208, 236, 225, 0.96));
}

html[data-evo-theme="ink"] body.dojo-page .btn-action--purple {
    border-color: rgba(164, 122, 173, 0.44);
    background: linear-gradient(180deg, rgba(247, 238, 252, 0.98), rgba(228, 208, 238, 0.96));
}

html[data-evo-theme="ink"] body.dojo-page .dojo-review-panel {
    border: 1px solid rgba(157, 114, 69, 0.28);
    background: linear-gradient(160deg, rgba(255, 252, 241, 0.92), rgba(241, 229, 200, 0.9));
}

html[data-evo-theme="ink"] body.dojo-page .dojo-review-panel__title {
    font-family: var(--forest-font);
    font-size: 0.88rem;
    color: #3a2b1d;
}

html[data-evo-theme="ink"] body.dojo-page .dojo-review-panel__hint,
html[data-evo-theme="ink"] body.dojo-page .dojo-review-empty,
html[data-evo-theme="ink"] body.dojo-page .dojo-weekly-insight {
    color: #5f4c38;
}

html[data-evo-theme="ink"] body.dojo-page .dojo-review-row {
    border-color: rgba(157, 114, 69, 0.24);
    background: rgba(255, 250, 236, 0.9);
}

html[data-evo-theme="ink"] body.dojo-page .dojo-review-row--ready {
    border-color: rgba(175, 128, 75, 0.42);
    background: rgba(255, 241, 211, 0.86);
}

html[data-evo-theme="ink"] body.dojo-page .dojo-review-row__title {
    color: #392b1e;
}

html[data-evo-theme="ink"] body.dojo-page .dojo-review-row__meta {
    color: #655340;
}

html[data-evo-theme="ink"] body.dojo-page .dojo-review-row__badge {
    border: 1px solid rgba(103, 147, 134, 0.34);
    background: rgba(207, 232, 221, 0.85);
    color: #365d4d;
}

html[data-evo-theme="ink"] body.dojo-page .dojo-review-row__badge--queued {
    border-color: rgba(157, 114, 69, 0.26);
    background: rgba(244, 230, 202, 0.8);
    color: #715b42;
}

html[data-evo-theme="ink"] body.dojo-page .replay-controls {
    border: 1px solid rgba(157, 114, 69, 0.26);
    background: linear-gradient(160deg, rgba(255, 250, 236, 0.92), rgba(242, 228, 196, 0.88));
}

html[data-evo-theme="ink"] body.dojo-page .evo-move-counter {
    color: #4c3b2a;
    font-weight: 700;
}

html[data-evo-theme="ink"] body.dojo-page .mentor-area {
    border-color: rgba(160, 117, 72, 0.34);
    background: linear-gradient(165deg, rgba(255, 251, 241, 0.93), rgba(241, 227, 196, 0.9));
    box-shadow: 0 14px 30px rgba(77, 52, 27, 0.2);
}

html[data-evo-theme="ink"] body.dojo-page .chat-history {
    background: rgba(255, 247, 227, 0.76);
}

html[data-evo-theme="ink"] body.dojo-page .galgame-box {
    border-color: rgba(157, 114, 69, 0.4);
    background: rgba(255, 251, 241, 0.9);
}

html[data-evo-theme="ink"] body.dojo-page .galgame-name {
    color: #654224;
}

html[data-evo-theme="ink"] body.dojo-page .galgame-text {
    color: #2f2418;
    font-size: 0.88rem;
    line-height: 1.58;
    font-weight: 700;
}

/* During a review the subtitle panel turns dark, so dark-brown comment text is
   unreadable — use light text on the dark review panel (desktop + mobile). */
html[data-evo-theme="ink"] body.dojo-page.dojo-has-game .galgame-text {
    color: #f1e7d4;
}

html[data-evo-theme="ink"] body.dojo-page .h-msg-ai {
    border-left-color: #a67845;
    background: rgba(255, 250, 238, 0.94);
    color: #3f3022;
}

html[data-evo-theme="ink"] body.dojo-page .dojo-chat-input {
    border-top-color: rgba(157, 114, 69, 0.26);
    background: rgba(248, 235, 206, 0.94);
}

html[data-evo-theme="ink"] body.dojo-page .dojo-chat-input input {
    border-color: rgba(157, 114, 69, 0.3);
    background: rgba(255, 252, 241, 0.96);
    color: #2f2418;
}

html[data-evo-theme="ink"] body.dojo-page .dojo-chat-input button {
    border: 1px solid rgba(117, 77, 40, 0.58);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.14), rgba(90, 56, 24, 0.12)),
        url('/images/themes/forest/fairy-btn-wood-main.svg?v=3') center / cover;
    color: #342417;
}

html[data-evo-theme="ink"] body.dojo-page .dojo-archive-modal__panel,
html[data-evo-theme="ink"] body.dojo-page .dojo-color-modal-panel {
    border-color: rgba(157, 114, 69, 0.4);
    background: linear-gradient(165deg, rgba(255, 250, 238, 0.95), rgba(241, 226, 194, 0.94));
    color: #3a2b1d;
}

html[data-evo-theme="ink"] body.dojo-page .dojo-archive-modal__title,
html[data-evo-theme="ink"] body.dojo-page .dojo-color-modal-title {
    color: #5b3f22;
}

html[data-evo-theme="ink"] body.dojo-page .dojo-archive-row {
    border-color: rgba(157, 114, 69, 0.24);
    background: rgba(255, 251, 241, 0.92);
}

html[data-evo-theme="ink"] body.dojo-page .dojo-archive-row__title,
html[data-evo-theme="ink"] body.dojo-page .dojo-archive-row__meta,
html[data-evo-theme="ink"] body.dojo-page .dojo-archive-row__date,
html[data-evo-theme="ink"] body.dojo-page .dojo-color-modal-desc {
    color: #5f4c38;
}

@media (max-width: 768px) {
    html[data-evo-theme="ink"] body.stats-page .page-hero {
        height: 6.7rem;
    }

    html[data-evo-theme="ink"] body.stats-page .page-hero-inner {
        margin-left: 0.65rem;
        padding: 0.58rem 0.75rem;
    }

    html[data-evo-theme="ink"] body.stats-page .page-hero-title {
        font-size: 1.08rem;
    }

    html[data-evo-theme="ink"] body.stats-page .page-hero-sub {
        font-size: 0.77rem;
    }

    html[data-evo-theme="ink"] body.school-page .school-hall-banner {
        height: 126px;
    }

    html[data-evo-theme="ink"] body.school-page .level-node,
    html[data-evo-theme="ink"] body.school-page .kyu-node,
    html[data-evo-theme="ink"] body.school-page .dan-node {
        min-height: 84px;
    }
}

/* Forest story RPG uplift (wave-6) */
html[data-evo-theme="ink"] body.evo-body:not(.myroom-body):not(.pa-body):not(.hub-page):not(.stats-page):not(.school-page):not(.dojo-page):not(.store-page):not(.lounge-page):not(.go-nexus-page):not(.games-page):not(.album-page):not(.friends-page):not(.guild-page):not(.profile-shell):not(.onboarding-page):not(.legal-page):not(.arena-shell):not(.evo-auth-page):not(.admin-shell):not(.supervisor-page) {
    background-image:
        url('/images/themes/forest/forest-rpg-sky-layer.svg?v=4'),
        url('/images/themes/forest/fairy-depth-bg.svg?v=4'),
        radial-gradient(ellipse 84% 50% at 50% -12%, rgba(255, 233, 182, 0.32), transparent 58%),
        radial-gradient(ellipse 62% 44% at 88% 90%, rgba(212, 184, 255, 0.22), transparent 58%);
}

html[data-evo-theme="ink"] .forest-chrome--standalone .forest-dock {
    background:
        linear-gradient(180deg, rgba(255, 240, 206, 0.92), rgba(227, 193, 146, 0.92)),
        url('/images/themes/forest/forest-rpg-dock-shell.svg?v=4') center / cover;
    border-top-color: rgba(130, 89, 48, 0.4);
}

html[data-evo-theme="ink"] .evo-topbar {
    background:
        linear-gradient(180deg, rgba(255, 249, 232, 0.9), rgba(237, 217, 178, 0.9)),
        url('/images/themes/forest/forest-rpg-page-ribbon.svg?v=4') center / cover;
    border-color: rgba(146, 105, 61, 0.32);
    box-shadow: 0 12px 24px rgba(71, 48, 22, 0.24);
}

html[data-evo-theme="ink"] .evo-topbar-title {
    color: #3c2a1c;
    text-shadow: 0 1px 0 rgba(255, 249, 236, 0.84);
}

html[data-evo-theme="ink"] .evo-topbar .evo-btn-ghost,
html[data-evo-theme="ink"] .evo-hud-chip {
    color: #4a3928;
    border-color: rgba(139, 98, 56, 0.3);
    background: rgba(255, 247, 227, 0.88);
}

html[data-evo-theme="ink"] body.evo-body:not(.hub-page):not(.myroom-body) .page-content {
    border-color: rgba(161, 116, 67, 0.3);
    background:
        linear-gradient(165deg, rgba(255, 250, 234, 0.9), rgba(236, 214, 176, 0.9)),
        url('/images/themes/forest/forest-rpg-panel-quest.svg?v=4') center / cover;
    box-shadow: 0 18px 34px rgba(78, 54, 26, 0.24);
    color: #3d2d1f;
}

html[data-evo-theme="ink"] body:not(.myroom-body) .evo-btn-primary {
    color: #3e2818;
    border-color: rgba(121, 80, 42, 0.54);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.16), rgba(90, 56, 24, 0.12)),
        url('/images/themes/forest/forest-rpg-button-main.svg?v=4') center / cover;
    box-shadow: 0 10px 20px rgba(86, 58, 29, 0.24);
}

html[data-evo-theme="ink"] body:not(.myroom-body) .evo-btn-solid {
    color: #2e4121;
    border-color: rgba(90, 124, 60, 0.48);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.2), rgba(80, 106, 52, 0.14)),
        url('/images/themes/forest/forest-rpg-button-soft.svg?v=4') center / cover;
}

html[data-evo-theme="ink"] .arena-panel,
html[data-evo-theme="ink"] .match-card,
html[data-evo-theme="ink"] .room-card,
html[data-evo-theme="ink"] .store-card,
html[data-evo-theme="ink"] .album-card,
html[data-evo-theme="ink"] .mentor-card,
html[data-evo-theme="ink"] .friend-card,
html[data-evo-theme="ink"] .guild-card,
html[data-evo-theme="ink"] .stats-panel,
html[data-evo-theme="ink"] .game-row {
    border-color: rgba(158, 113, 67, 0.3);
    background:
        linear-gradient(160deg, rgba(255, 252, 242, 0.93), rgba(242, 228, 199, 0.9));
    color: #3e2e21;
    box-shadow: 0 10px 22px rgba(81, 57, 28, 0.2);
}

html[data-evo-theme="ink"] .arena-panel-head {
    background:
        linear-gradient(90deg, rgba(255, 247, 227, 0.92), rgba(241, 224, 189, 0.9)),
        url('/images/themes/forest/forest-rpg-page-ribbon.svg?v=4') center / cover;
    color: #3c2b1d;
    text-shadow: 0 1px 0 rgba(255, 249, 236, 0.82);
}

html[data-evo-theme="ink"] .mc-title,
html[data-evo-theme="ink"] .room-card-title,
html[data-evo-theme="ink"] .page-section-title {
    color: #38291b;
    text-shadow: 0 1px 0 rgba(255, 249, 236, 0.8);
}

html[data-evo-theme="ink"] .mc-sub,
html[data-evo-theme="ink"] .page-desc,
html[data-evo-theme="ink"] .evo-muted {
    color: #5e4c38;
}

html[data-evo-theme="ink"] body.stats-page .page-hero {
    border-color: rgba(160, 116, 68, 0.46);
    background:
        linear-gradient(145deg, rgba(255, 248, 228, 0.28), rgba(75, 50, 24, 0.24)),
        url('/images/themes/forest/forest-rpg-page-ribbon.svg?v=4') center / cover no-repeat;
}

html[data-evo-theme="ink"] body.school-page .school-hall-banner {
    border-color: rgba(164, 118, 70, 0.44);
    background:
        linear-gradient(150deg, rgba(255, 248, 228, 0.3), rgba(78, 52, 26, 0.28)),
        url('/images/themes/forest/forest-rpg-page-ribbon.svg?v=4') center / cover no-repeat;
}

html[data-evo-theme="ink"] body.school-page .level-node,
html[data-evo-theme="ink"] body.school-page .kyu-node,
html[data-evo-theme="ink"] body.school-page .dan-node,
html[data-evo-theme="ink"] body.school-page .puzzle-card-wrap {
    border-color: rgba(156, 112, 65, 0.28);
    background: linear-gradient(160deg, rgba(255, 252, 241, 0.96), rgba(243, 231, 204, 0.92));
    color: #3d2d1f;
}

html[data-evo-theme="ink"] body.dojo-page .dojo-toolbar {
    border-bottom-color: rgba(155, 111, 64, 0.32);
    background:
        linear-gradient(180deg, rgba(255, 248, 229, 0.94), rgba(238, 218, 182, 0.92)),
        url('/images/themes/forest/forest-rpg-page-ribbon.svg?v=4') center / cover;
}

html[data-evo-theme="ink"] body.dojo-page .btn-action {
    color: #3c2d20;
    border-color: rgba(150, 108, 63, 0.42);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.18), rgba(90, 56, 24, 0.12)),
        url('/images/themes/forest/forest-rpg-button-main.svg?v=4') center / cover;
}

html[data-evo-theme="ink"] body.dojo-page .btn-action--blue,
html[data-evo-theme="ink"] body.dojo-page .btn-action--purple {
    border-color: rgba(88, 123, 58, 0.44);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.22), rgba(80, 106, 52, 0.14)),
        url('/images/themes/forest/forest-rpg-button-soft.svg?v=4') center / cover;
    color: #304121;
}

html[data-evo-theme="ink"] body.dojo-page .dojo-chat-input button {
    border-color: rgba(117, 77, 40, 0.56);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.16), rgba(90, 56, 24, 0.12)),
        url('/images/themes/forest/forest-rpg-button-main.svg?v=4') center / cover;
    color: #342417;
}

/* Forest wave-7 shell polish: store / arena / dojo / stats / school */
html[data-evo-theme="ink"] body.evo-body:not(.hub-page):not(.myroom-body):not(.pa-body)::after {
    content: '';
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background:
        url('/images/themes/forest/forest-rpg-clouds-drift.svg?v=5') center top / cover no-repeat,
        url('/images/themes/forest/forest-rpg-fireflies.svg?v=5') center / cover no-repeat;
    opacity: 0.34;
    mix-blend-mode: screen;
    animation: forest-shell-cloud-drift 38s linear infinite;
}

html[data-evo-theme="ink"] .evo-topbar {
    background:
        linear-gradient(180deg, rgba(255, 249, 232, 0.92), rgba(238, 218, 182, 0.9)),
        url('/images/themes/forest/forest-rpg-go-banner.svg?v=5') center / cover,
        url('/images/themes/forest/forest-rpg-page-ribbon.svg?v=5') center / cover;
}

html[data-evo-theme="ink"] body.evo-body:not(.hub-page):not(.myroom-body) .page-content {
    background:
        linear-gradient(165deg, rgba(255, 250, 234, 0.9), rgba(236, 214, 176, 0.9)),
        url('/images/themes/forest/forest-rpg-panel-trim.svg?v=5') center / cover,
        url('/images/themes/forest/forest-rpg-panel-quest.svg?v=5') center / cover;
}

html[data-evo-theme="ink"] .arena-panel,
html[data-evo-theme="ink"] .match-card,
html[data-evo-theme="ink"] .room-card,
html[data-evo-theme="ink"] .store-card,
html[data-evo-theme="ink"] .album-card,
html[data-evo-theme="ink"] .mentor-card,
html[data-evo-theme="ink"] .stats-summary-card,
html[data-evo-theme="ink"] .school-rank-panel,
html[data-evo-theme="ink"] .dojo-review-panel {
    background:
        linear-gradient(160deg, rgba(255, 252, 242, 0.93), rgba(242, 228, 199, 0.9)),
        url('/images/themes/forest/forest-rpg-panel-trim.svg?v=5') center / cover;
}

html[data-evo-theme="ink"] .arena-panel-head,
html[data-evo-theme="ink"] .dojo-toolbar,
html[data-evo-theme="ink"] body.stats-page .page-hero,
html[data-evo-theme="ink"] body.school-page .school-hall-banner {
    position: relative;
    overflow: hidden;
}

html[data-evo-theme="ink"] .arena-panel-head::after,
html[data-evo-theme="ink"] .dojo-toolbar::after,
html[data-evo-theme="ink"] body.stats-page .page-hero::before,
html[data-evo-theme="ink"] body.school-page .school-hall-banner::before {
    content: '';
    position: absolute;
    top: 10px;
    right: 12px;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: url('/images/themes/forest/forest-rpg-go-stamp.svg?v=5') center / cover no-repeat;
    opacity: 0.62;
    filter: drop-shadow(0 2px 5px rgba(86, 58, 30, 0.2));
    pointer-events: none;
}

html[data-evo-theme="ink"] .evo-btn-primary,
html[data-evo-theme="ink"] .btn-action,
html[data-evo-theme="ink"] .arena-bot-challenge-btn,
html[data-evo-theme="ink"] body.dojo-page .dojo-chat-input button {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.16), rgba(90, 56, 24, 0.12)),
        url('/images/themes/forest/forest-rpg-button-main-plus.svg?v=5') center / cover;
    animation: forest-shell-btn-breathe 4.8s ease-in-out infinite;
}

html[data-evo-theme="ink"] .evo-btn-solid,
html[data-evo-theme="ink"] .btn-action--blue,
html[data-evo-theme="ink"] .btn-action--purple {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.22), rgba(80, 106, 52, 0.14)),
        url('/images/themes/forest/forest-rpg-button-soft-plus.svg?v=5') center / cover;
    animation: forest-shell-btn-breathe 5.2s ease-in-out infinite;
    animation-delay: 0.3s;
}

@keyframes forest-shell-cloud-drift {
    from { transform: translateX(-2%); }
    to { transform: translateX(2%); }
}

@keyframes forest-shell-btn-breathe {
    0%, 100% { filter: saturate(1) brightness(1); }
    50% { filter: saturate(1.05) brightness(1.03); }
}

@media (prefers-reduced-motion: reduce) {
    html[data-evo-theme="ink"] body.evo-body:not(.hub-page):not(.myroom-body):not(.pa-body)::after,
    html[data-evo-theme="ink"] .evo-btn-primary,
    html[data-evo-theme="ink"] .evo-btn-solid,
    html[data-evo-theme="ink"] .btn-action,
    html[data-evo-theme="ink"] .btn-action--blue,
    html[data-evo-theme="ink"] .btn-action--purple,
    html[data-evo-theme="ink"] .arena-bot-challenge-btn,
    html[data-evo-theme="ink"] body.dojo-page .dojo-chat-input button {
        animation: none !important;
    }
}

/* Forest Page Shell V2.5: final Dojo overrides after legacy shell rules */
html[data-evo-theme="ink"] body.dojo-page {
    background:
        linear-gradient(180deg, rgba(7, 17, 9, 0.18), rgba(7, 17, 9, 0.38)),
        url('/images/themes/forest/pages-v2/dojo-bg.png?v=1') center / cover fixed !important;
}

html[data-evo-theme="ink"] body.dojo-page .dojo-review-boards {
    display: grid !important;
    grid-template-columns: 1fr 1.18fr !important;
    max-width: 1120px !important;
    margin-top: 0.55rem !important;
    padding: 0.55rem !important;
    border-radius: 22px !important;
    background:
        linear-gradient(180deg, rgba(255, 249, 232, 0.62), rgba(231, 202, 149, 0.5)),
        radial-gradient(ellipse at 50% 0%, rgba(255, 241, 184, 0.16), transparent 52%) !important;
    border-color: rgba(255, 230, 164, 0.32) !important;
    box-shadow: 0 16px 34px rgba(25, 18, 9, 0.2) !important;
}

html[data-evo-theme="ink"] body.dojo-page .dojo-review-panel {
    min-height: 0 !important;
    padding: 0.55rem 0.65rem !important;
    border-radius: 18px !important;
    background:
        linear-gradient(180deg, rgba(255, 252, 239, 0.82), rgba(237, 216, 176, 0.7)) !important;
}

html[data-evo-theme="ink"] body.dojo-page .dojo-review-list {
    max-height: 88px !important;
    overflow-y: auto !important;
    scrollbar-width: thin;
}

html[data-evo-theme="ink"] body.dojo-page .dojo-toolbar {
    position: sticky !important;
    top: 0.5rem !important;
    z-index: 8 !important;
    width: fit-content !important;
    min-width: min(520px, calc(100% - 1rem)) !important;
    max-width: calc(100% - 1rem) !important;
    padding: 0.45rem 0.65rem !important;
    margin-top: 0.45rem !important;
    border-radius: 999px !important;
    background:
        linear-gradient(180deg, rgba(70, 48, 25, 0.84), rgba(38, 27, 16, 0.86)) !important;
    border-color: rgba(255, 230, 164, 0.32) !important;
}

html[data-evo-theme="ink"] body.dojo-page .fusion-container {
    display: grid !important;
    grid-template-columns: minmax(430px, 1.16fr) minmax(320px, 0.78fr) !important;
    align-items: stretch !important;
    gap: clamp(1rem, 2vw, 1.6rem) !important;
    max-width: 1160px !important;
    margin-top: 0.55rem !important;
    margin-bottom: calc(var(--forest-dock-h) + 1.75rem) !important;
    padding: clamp(1rem, 2vw, 1.35rem) !important;
    border-radius: 34px !important;
    border-color: rgba(255, 228, 158, 0.3) !important;
    background:
        radial-gradient(ellipse 46% 38% at 36% 46%, rgba(255, 224, 137, 0.2), transparent 70%),
        linear-gradient(180deg, rgba(255, 247, 224, 0.24), rgba(54, 38, 20, 0.12)) !important;
    box-shadow:
        0 26px 64px rgba(6, 12, 7, 0.36),
        inset 0 1px 0 rgba(255, 250, 230, 0.45) !important;
}

html[data-evo-theme="ink"] body.dojo-page .board-area {
    max-width: none !important;
    justify-content: center !important;
}

html[data-evo-theme="ink"] body.dojo-page .canvas-wrapper {
    max-width: min(58dvh, 620px) !important;
    border-width: 10px !important;
    border-color: rgba(99, 60, 28, 0.88) !important;
    border-radius: 30px !important;
    box-shadow:
        0 26px 50px rgba(23, 14, 7, 0.38),
        0 0 0 2px rgba(255, 228, 148, 0.26),
        0 0 34px rgba(255, 219, 122, 0.24) !important;
}

html[data-evo-theme="ink"] body.dojo-page .replay-controls {
    max-width: min(58dvh, 620px) !important;
    border-radius: 22px !important;
    background: rgba(255, 247, 224, 0.76) !important;
    backdrop-filter: blur(8px);
}

html[data-evo-theme="ink"] body.dojo-page .mentor-area {
    max-height: min(66dvh, 660px) !important;
    border-radius: 30px !important;
    background:
        linear-gradient(180deg, rgba(255, 248, 226, 0.76), rgba(229, 201, 153, 0.72)) !important;
    backdrop-filter: blur(8px);
}

html[data-evo-theme="ink"] body.dojo-page .mentor-stage {
    max-height: 320px !important;
    background:
        linear-gradient(180deg, rgba(10, 20, 12, 0.04), rgba(10, 20, 12, 0.22)),
        url('/images/themes/forest/pages-v2/dojo-bg.png?v=1') 68% 44% / cover !important;
}

html[data-evo-theme="ink"] body.dojo-page .chat-history {
    flex: 1 1 auto !important;
    min-height: 120px !important;
    background: rgba(255, 250, 235, 0.68) !important;
}

html[data-evo-theme="ink"] body.dojo-page .forest-chrome--standalone {
    z-index: 120 !important;
}

html[data-evo-theme="ink"] body.dojo-page .forest-chrome--standalone .forest-dock {
    width: min(92%, 420px) !important;
    transform: translateY(0.2rem) scale(0.92) !important;
    transform-origin: center bottom;
}

@media (max-width: 980px) {
    html[data-evo-theme="ink"] body.dojo-page .dojo-toolbar {
        position: relative !important;
        top: auto !important;
        width: calc(100% - 0.8rem) !important;
    }

    html[data-evo-theme="ink"] body.dojo-page .dojo-review-boards {
        grid-template-columns: 1fr !important;
        max-height: none !important;
        overflow: visible !important;
        width: calc(100% - 0.8rem) !important;
    }

    html[data-evo-theme="ink"] body.dojo-page .fusion-container {
        grid-template-columns: 1fr !important;
        width: calc(100% - 0.8rem) !important;
        margin-bottom: calc(var(--forest-dock-h) + 1.25rem) !important;
    }

    html[data-evo-theme="ink"] body.dojo-page .mentor-area {
        max-height: none !important;
    }
}

/* Forest Page Shell V2.3: final Dojo scene composition */
html[data-evo-theme="ink"] body.dojo-page {
    background:
        linear-gradient(180deg, rgba(7, 17, 9, 0.18), rgba(7, 17, 9, 0.38)),
        url('/images/themes/forest/pages-v2/dojo-bg.png?v=1') center / cover fixed !important;
}

html[data-evo-theme="ink"] body.dojo-page::before {
    background:
        radial-gradient(ellipse 62% 55% at 42% 54%, rgba(255, 226, 154, 0.2), transparent 68%),
        linear-gradient(90deg, rgba(5, 12, 7, 0.48), transparent 20%, transparent 78%, rgba(5, 12, 7, 0.42)) !important;
}

html[data-evo-theme="ink"] body.dojo-page .evo-topbar {
    background:
        linear-gradient(180deg, rgba(255, 246, 221, 0.88), rgba(225, 190, 132, 0.78)) !important;
    backdrop-filter: blur(10px);
}

html[data-evo-theme="ink"] body.dojo-page .dojo-review-boards {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.85rem;
    max-width: 1160px;
    margin-top: 0.85rem;
    padding: 0.85rem;
    border-radius: 24px;
    background:
        linear-gradient(180deg, rgba(255, 249, 232, 0.62), rgba(231, 202, 149, 0.5)),
        radial-gradient(ellipse at 50% 0%, rgba(255, 241, 184, 0.16), transparent 52%) !important;
    border-color: rgba(255, 230, 164, 0.32) !important;
    box-shadow: 0 16px 34px rgba(25, 18, 9, 0.2) !important;
}

html[data-evo-theme="ink"] body.dojo-page .dojo-review-panel {
    border-radius: 18px !important;
    background:
        linear-gradient(180deg, rgba(255, 252, 239, 0.82), rgba(237, 216, 176, 0.7)) !important;
}

html[data-evo-theme="ink"] body.dojo-page .dojo-toolbar {
    max-width: 720px;
    margin-top: 0.75rem;
    border-radius: 999px !important;
    background:
        linear-gradient(180deg, rgba(70, 48, 25, 0.84), rgba(38, 27, 16, 0.86)) !important;
    border-color: rgba(255, 230, 164, 0.32) !important;
}

html[data-evo-theme="ink"] body.dojo-page .dojo-toolbar .btn-action {
    min-height: 40px;
    background: linear-gradient(180deg, #efd3a0, #bf7d43) !important;
}

html[data-evo-theme="ink"] body.dojo-page .fusion-container {
    display: grid !important;
    grid-template-columns: minmax(420px, 1.25fr) minmax(310px, 0.78fr);
    align-items: stretch;
    gap: clamp(1rem, 2vw, 1.6rem);
    max-width: 1160px;
    margin-top: 1rem;
    margin-bottom: calc(var(--forest-dock-h) + 1.1rem);
    padding: clamp(1rem, 2vw, 1.35rem);
    border-radius: 34px !important;
    border-color: rgba(255, 228, 158, 0.3) !important;
    background:
        radial-gradient(ellipse 44% 34% at 36% 48%, rgba(255, 218, 133, 0.16), transparent 70%),
        linear-gradient(180deg, rgba(255, 247, 224, 0.34), rgba(70, 48, 25, 0.18)) !important;
    box-shadow:
        0 26px 64px rgba(6, 12, 7, 0.36),
        inset 0 1px 0 rgba(255, 250, 230, 0.45) !important;
}

html[data-evo-theme="ink"] body.dojo-page .board-area {
    max-width: none;
    justify-content: center;
}

html[data-evo-theme="ink"] body.dojo-page .canvas-wrapper {
    max-width: min(62dvh, 650px);
    border-width: 10px !important;
    border-color: rgba(99, 60, 28, 0.88) !important;
    border-radius: 30px !important;
    box-shadow:
        0 26px 50px rgba(23, 14, 7, 0.38),
        0 0 0 2px rgba(255, 228, 148, 0.26),
        0 0 34px rgba(255, 219, 122, 0.24) !important;
}

html[data-evo-theme="ink"] body.dojo-page .overlay {
    background:
        radial-gradient(ellipse at 50% 45%, rgba(35, 44, 28, 0.72), rgba(12, 17, 14, 0.86)) !important;
    color: #fff5d0;
}

html[data-evo-theme="ink"] body.dojo-page .replay-controls {
    max-width: min(62dvh, 650px);
    border-radius: 22px !important;
    background: rgba(255, 247, 224, 0.76) !important;
    backdrop-filter: blur(8px);
}

html[data-evo-theme="ink"] body.dojo-page .mentor-area {
    min-height: 0;
    border-radius: 30px !important;
    background:
        linear-gradient(180deg, rgba(255, 248, 226, 0.76), rgba(229, 201, 153, 0.72)) !important;
    backdrop-filter: blur(8px);
}

html[data-evo-theme="ink"] body.dojo-page .mentor-stage {
    flex: 0 0 auto;
    background:
        linear-gradient(180deg, rgba(10, 20, 12, 0.04), rgba(10, 20, 12, 0.22)),
        url('/images/themes/forest/pages-v2/dojo-bg.png?v=1') 68% 44% / cover !important;
}

html[data-evo-theme="ink"] body.dojo-page .portrait-wrapper {
    border-radius: 28px 28px 0 0;
}

html[data-evo-theme="ink"] body.dojo-page .mentor-portrait-poster,
html[data-evo-theme="ink"] body.dojo-page .mentor-portrait-idle,
html[data-evo-theme="ink"] body.dojo-page .mentor-portrait-overlay {
    object-position: center top;
}

html[data-evo-theme="ink"] body.dojo-page .dojo-subtitle-panel {
    padding: 0.75rem;
    background: rgba(255, 246, 220, 0.68) !important;
}

html[data-evo-theme="ink"] body.dojo-page .galgame-box {
    background: rgba(255, 252, 239, 0.88) !important;
    border-color: rgba(128, 88, 45, 0.26) !important;
}

html[data-evo-theme="ink"] body.dojo-page .chat-history {
    flex: 1 1 auto;
    min-height: 160px;
    background: rgba(255, 250, 235, 0.68) !important;
}

html[data-evo-theme="ink"] body.dojo-page .dojo-chat-input {
    background: rgba(67, 45, 24, 0.74) !important;
}

html[data-evo-theme="ink"] body.dojo-page .dojo-chat-input input {
    background: rgba(255, 252, 240, 0.92) !important;
}

html[data-evo-theme="ink"] body.dojo-page .forest-chrome--standalone .forest-dock {
    opacity: 0.94;
}

@media (max-width: 980px) {
    html[data-evo-theme="ink"] body.dojo-page .fusion-container {
        grid-template-columns: 1fr;
        width: calc(100% - 0.8rem);
        border-radius: 26px !important;
    }

    html[data-evo-theme="ink"] body.dojo-page .canvas-wrapper,
    html[data-evo-theme="ink"] body.dojo-page .replay-controls {
        max-width: min(100%, 650px);
    }

    html[data-evo-theme="ink"] body.dojo-page .dojo-review-boards {
        grid-template-columns: 1fr;
        width: calc(100% - 0.8rem);
    }
}

/* Forest Page Shell V2.4: Dojo foreground priority */
html[data-evo-theme="ink"] body.dojo-page {
    overflow-x: hidden;
}

html[data-evo-theme="ink"] body.dojo-page .dojo-toolbar {
    position: sticky;
    top: 0.5rem;
    z-index: 8;
    width: fit-content;
    min-width: min(520px, calc(100% - 1rem));
    padding: 0.45rem 0.65rem;
    margin-top: 0.45rem;
}

html[data-evo-theme="ink"] body.dojo-page .dojo-review-boards {
    display: grid;
    grid-template-columns: 1fr 1.18fr;
    align-items: stretch;
    max-width: 1120px;
    max-height: 185px;
    overflow: hidden;
    margin-top: 0.55rem;
    padding: 0.55rem;
    border-radius: 22px;
}

html[data-evo-theme="ink"] body.dojo-page .dojo-review-panel {
    min-height: 0;
    padding: 0.55rem 0.65rem;
}

html[data-evo-theme="ink"] body.dojo-page .dojo-review-panel__head {
    margin-bottom: 0.28rem;
}

html[data-evo-theme="ink"] body.dojo-page .dojo-review-panel__title {
    font-size: 0.78rem;
}

html[data-evo-theme="ink"] body.dojo-page .dojo-review-panel__hint,
html[data-evo-theme="ink"] body.dojo-page .dojo-review-empty,
html[data-evo-theme="ink"] body.dojo-page .dojo-weekly-insight {
    font-size: 0.68rem;
    line-height: 1.32;
}

html[data-evo-theme="ink"] body.dojo-page .dojo-review-list {
    max-height: 88px;
    overflow-y: auto;
    scrollbar-width: thin;
}

html[data-evo-theme="ink"] body.dojo-page .dojo-review-row {
    padding: 0.42rem 0.5rem;
    gap: 0.3rem;
}

html[data-evo-theme="ink"] body.dojo-page .dojo-review-row__title {
    font-size: 0.72rem;
}

html[data-evo-theme="ink"] body.dojo-page .dojo-review-row__meta {
    font-size: 0.62rem;
}

html[data-evo-theme="ink"] body.dojo-page .dojo-review-row__cta,
html[data-evo-theme="ink"] body.dojo-page .dojo-review-row__badge {
    font-size: 0.62rem;
    padding: 0.28rem 0.46rem;
}

html[data-evo-theme="ink"] body.dojo-page .fusion-container {
    margin-top: 0.55rem;
    margin-bottom: calc(var(--forest-dock-h) + 1.75rem);
    grid-template-columns: minmax(430px, 1.16fr) minmax(320px, 0.78fr);
    background:
        radial-gradient(ellipse 46% 38% at 36% 46%, rgba(255, 224, 137, 0.2), transparent 70%),
        linear-gradient(180deg, rgba(255, 247, 224, 0.24), rgba(54, 38, 20, 0.12)) !important;
}

html[data-evo-theme="ink"] body.dojo-page .canvas-wrapper {
    max-width: min(58dvh, 620px);
}

html[data-evo-theme="ink"] body.dojo-page .mentor-area {
    max-height: min(66dvh, 660px);
}

html[data-evo-theme="ink"] body.dojo-page .mentor-stage {
    max-height: 320px;
}

html[data-evo-theme="ink"] body.dojo-page .chat-history {
    min-height: 120px;
}

html[data-evo-theme="ink"] body.dojo-page .forest-chrome--standalone {
    z-index: 120;
}

html[data-evo-theme="ink"] body.dojo-page .forest-chrome--standalone .forest-dock {
    width: min(92%, 420px);
    transform: translateY(0.2rem) scale(0.92);
    transform-origin: center bottom;
}

@media (max-width: 980px) {
    html[data-evo-theme="ink"] body.dojo-page .dojo-toolbar {
        position: relative;
        top: auto;
        width: calc(100% - 0.8rem);
    }

    html[data-evo-theme="ink"] body.dojo-page .dojo-review-boards {
        grid-template-columns: 1fr;
        max-height: none;
        overflow: visible;
    }

    html[data-evo-theme="ink"] body.dojo-page .fusion-container {
        grid-template-columns: 1fr;
        margin-bottom: calc(var(--forest-dock-h) + 1.25rem);
    }

    html[data-evo-theme="ink"] body.dojo-page .mentor-area {
        max-height: none;
    }
}

/* Forest Page Shell V2.3 final override: keep newest page art after legacy waves */
html[data-evo-theme="ink"] body.stats-page,
html[data-evo-theme="ink"] body.school-page,
html[data-evo-theme="ink"] body.dojo-page,
html[data-evo-theme="ink"] body.store-page,
html[data-evo-theme="ink"] body.lounge-page,
html[data-evo-theme="ink"] body.go-nexus-page {
    background-image:
        linear-gradient(180deg, rgba(255, 247, 225, 0.12), rgba(14, 29, 17, 0.24)),
        var(--forest-page-bg) !important;
    background-size: cover !important;
    background-position: center !important;
    background-attachment: fixed !important;
}

html[data-evo-theme="ink"] body.stats-page { --forest-page-bg: url('/images/themes/forest/pages-v2/stats-bg.png?v=1'); }
html[data-evo-theme="ink"] body.school-page { --forest-page-bg: url('/images/themes/forest/pages-v2/school-bg.png?v=1'); }
html[data-evo-theme="ink"] body.dojo-page { --forest-page-bg: url('/images/themes/forest/pages-v2/dojo-bg.png?v=1'); }
html[data-evo-theme="ink"] body.store-page { --forest-page-bg: url('/images/themes/forest/pages-v2/store-bg.png?v=1'); }
html[data-evo-theme="ink"] body.lounge-page,
html[data-evo-theme="ink"] body.go-nexus-page { --forest-page-bg: url('/images/themes/forest/pages-v2/lounge-bg.jpg?v=1'); }

html[data-evo-theme="ink"] body.stats-page .evo-wrap,
html[data-evo-theme="ink"] body.school-page .page-content,
html[data-evo-theme="ink"] body.store-page .page-content,
html[data-evo-theme="ink"] body.dojo-page .fusion-container,
html[data-evo-theme="ink"] body.dojo-page .dojo-review-boards,
html[data-evo-theme="ink"] body.dojo-page .dojo-toolbar,
html[data-evo-theme="ink"] body.dojo-page .mentor-coach-strip {
    border: 1px solid rgba(150, 108, 60, 0.32) !important;
    border-radius: 28px !important;
    background:
        linear-gradient(180deg, rgba(255, 249, 232, 0.86), rgba(238, 217, 177, 0.78)),
        radial-gradient(circle at 50% 0, rgba(255, 255, 255, 0.34), transparent 48%) !important;
    box-shadow:
        0 22px 50px rgba(45, 31, 16, 0.26),
        inset 0 1px 0 rgba(255, 255, 255, 0.66) !important;
    backdrop-filter: blur(8px);
}

html[data-evo-theme="ink"] body.school-page .school-hall-banner {
    min-height: 168px !important;
    background:
        linear-gradient(180deg, rgba(19, 45, 24, 0.12), rgba(37, 73, 35, 0.62)),
        url('/images/themes/forest/pages-v2/school-bg.png?v=1') center 55% / cover !important;
}

html[data-evo-theme="ink"] body.store-page .store-vip-hero--panel {
    min-height: 170px !important;
    background:
        linear-gradient(90deg, rgba(41, 28, 16, 0.82), rgba(41, 28, 16, 0.16)),
        url('/images/themes/forest/pages-v2/store-bg.png?v=1') center / cover !important;
}

html[data-evo-theme="ink"] body.store-page .store-vip-hero--panel img {
    opacity: 0 !important;
}

html[data-evo-theme="ink"] body.stats-page .page-hero {
    min-height: 170px !important;
    background:
        linear-gradient(90deg, rgba(38, 28, 16, 0.8), rgba(38, 28, 16, 0.08)),
        url('/images/themes/forest/pages-v2/stats-bg.png?v=1') center / cover !important;
}

html[data-evo-theme="ink"] body.dojo-page .mentor-stage {
    background:
        linear-gradient(180deg, rgba(35, 55, 35, 0.2), rgba(35, 55, 35, 0.02)),
        url('/images/themes/forest/pages-v2/dojo-bg.png?v=1') center / cover !important;
}

/* Forest school cute pass (wave-11) */
.school-cute-decor {
    display: none;
}

html[data-evo-theme="ink"] body.school-page .school-hall-banner--cute {
    position: relative;
    min-height: 146px;
    padding: 1.1rem 1.2rem;
    display: flex;
    align-items: flex-end;
    border-radius: 22px;
    border-color: rgba(161, 116, 67, 0.46);
    background:
        linear-gradient(128deg, rgba(255, 250, 238, 0.28), rgba(93, 62, 30, 0.34)),
        var(--forest-shell-banner-school-asset) center / cover no-repeat;
    box-shadow: 0 14px 28px rgba(74, 51, 27, 0.26);
    overflow: hidden;
}

html[data-evo-theme="ink"] body.school-page .school-hall-banner--cute::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        var(--forest-school-banner-asset) center / cover no-repeat,
        linear-gradient(92deg, rgba(62, 42, 22, 0.62) 0%, rgba(62, 42, 22, 0.2) 56%, rgba(62, 42, 22, 0.06) 100%);
    opacity: 0.94;
    z-index: 0;
    pointer-events: none;
}

html[data-evo-theme="ink"] body.school-page .school-hall-banner--cute::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    height: 58px;
    background: var(--forest-school-garland-asset) center top / cover no-repeat;
    opacity: 0.72;
    z-index: 1;
    pointer-events: none;
}

html[data-evo-theme="ink"] body.school-page .school-hall-banner--cute h2 {
    position: relative;
    z-index: 4;
    margin: 0;
    max-width: min(75%, 420px);
    color: #fff7e8;
    text-shadow: 0 2px 10px rgba(44, 28, 14, 0.5);
    letter-spacing: 0.04em;
}

html[data-evo-theme="ink"] body.school-page .school-cute-decor {
    display: block;
    position: absolute;
    width: 52px;
    height: 52px;
    z-index: 3;
    pointer-events: none;
    opacity: 0.96;
    filter: drop-shadow(0 4px 6px rgba(82, 56, 28, 0.22));
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
}

html[data-evo-theme="ink"] body.school-page .school-cute-decor--mushroom {
    left: 12px;
    bottom: 10px;
    background-image: var(--forest-school-sticker-mushroom-asset);
}

html[data-evo-theme="ink"] body.school-page .school-cute-decor--leaf {
    right: 14px;
    bottom: 10px;
    background-image: var(--forest-school-sticker-leaf-asset);
}

html[data-evo-theme="ink"] body.school-page .school-cute-decor--go {
    right: 94px;
    top: 10px;
    width: 44px;
    height: 44px;
    background-image: var(--forest-school-sticker-go-asset);
}

html[data-evo-theme="ink"] body.school-page .school-rank-panel--cute {
    position: relative;
    overflow: hidden;
    padding-top: 1.55rem;
    border-color: rgba(161, 116, 67, 0.32);
    background:
        linear-gradient(160deg, rgba(255, 252, 243, 0.96), rgba(241, 230, 202, 0.92)),
        var(--forest-shell-panel-asset) center / cover;
    box-shadow: 0 12px 25px rgba(80, 56, 28, 0.2);
}

html[data-evo-theme="ink"] body.school-page .school-rank-panel--cute::before {
    content: '';
    position: absolute;
    top: -2px;
    left: 10px;
    right: 10px;
    height: 46px;
    background: var(--forest-school-garland-asset) center top / cover no-repeat;
    opacity: 0.45;
    pointer-events: none;
}

html[data-evo-theme="ink"] body.school-page .school-rank-panel--cute::after {
    content: '';
    position: absolute;
    right: 10px;
    bottom: 8px;
    width: 48px;
    height: 48px;
    background: var(--forest-school-corner-asset) center / contain no-repeat;
    opacity: 0.82;
    pointer-events: none;
}

html[data-evo-theme="ink"] body.school-page .school-rank-panel--cute > * {
    position: relative;
    z-index: 1;
}

html[data-evo-theme="ink"] body.school-page .school-rank-section-title {
    letter-spacing: 0.09em;
    font-size: 0.82rem;
}

html[data-evo-theme="ink"] body.school-page .level-node--badge {
    background-image: none !important;
    background-size: auto !important;
    background-position: center !important;
    padding-top: 14px !important;
    min-height: 104px !important;
}

html[data-evo-theme="ink"] body.school-page .level-node,
html[data-evo-theme="ink"] body.school-page .kyu-node,
html[data-evo-theme="ink"] body.school-page .dan-node {
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(155, 111, 65, 0.34);
    background: linear-gradient(160deg, rgba(255, 253, 245, 0.98), rgba(245, 233, 209, 0.94));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.75);
    color: #3d2d1f;
    transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease, background-color 0.18s ease;
}

html[data-evo-theme="ink"] body.school-page .level-node::before {
    content: '';
    position: absolute;
    inset: 0;
    background: var(--forest-school-pattern-asset) center / cover no-repeat;
    opacity: 0.34;
    pointer-events: none;
}

html[data-evo-theme="ink"] body.school-page .level-node::after {
    content: '';
    position: absolute;
    top: 5px;
    right: 5px;
    width: 20px;
    height: 20px;
    background: var(--forest-school-corner-asset) center / contain no-repeat;
    opacity: 0.68;
    pointer-events: none;
}

html[data-evo-theme="ink"] body.school-page .level-node > * {
    position: relative;
    z-index: 1;
}

html[data-evo-theme="ink"] body.school-page .level-node-rank {
    color: #3b2d21;
    font-size: 1.04rem;
    font-weight: 800;
    text-shadow: none;
}

html[data-evo-theme="ink"] body.school-page .kyu-node .level-node-rank {
    color: #2d5f4e;
}

html[data-evo-theme="ink"] body.school-page .dan-node .level-node-rank {
    color: #724b29;
}

html[data-evo-theme="ink"] body.school-page .level-node-count {
    color: #61503d;
    font-weight: 700;
}

html[data-evo-theme="ink"] body.school-page .level-node-solved {
    color: #2f6b42;
    font-weight: 800;
}

html[data-evo-theme="ink"] body.school-page .level-node-last {
    color: #7a5d39;
    font-weight: 700;
}

html[data-evo-theme="ink"] body.school-page .level-node:hover,
html[data-evo-theme="ink"] body.school-page .level-node:focus-visible {
    transform: translateY(-2px);
    box-shadow:
        0 10px 18px rgba(78, 53, 26, 0.18),
        inset 0 1px 0 rgba(255, 255, 255, 0.75);
}

html[data-evo-theme="ink"] body.school-page .level-node:focus-visible {
    outline: none;
    border-color: rgba(98, 144, 85, 0.72);
    box-shadow:
        0 0 0 3px rgba(104, 154, 91, 0.2),
        0 10px 18px rgba(78, 53, 26, 0.18);
}

html[data-evo-theme="ink"] body.school-page .kyu-node:hover,
html[data-evo-theme="ink"] body.school-page .kyu-node:focus-visible {
    border-color: rgba(91, 138, 118, 0.72);
    background: linear-gradient(160deg, rgba(236, 251, 245, 0.98), rgba(216, 239, 229, 0.94));
}

html[data-evo-theme="ink"] body.school-page .dan-node:hover,
html[data-evo-theme="ink"] body.school-page .dan-node:focus-visible {
    border-color: rgba(169, 120, 71, 0.76);
    background: linear-gradient(160deg, rgba(255, 245, 225, 0.98), rgba(244, 221, 182, 0.94));
}

html[data-evo-theme="ink"] body.school-page .school-puzzle-progress {
    position: relative;
    overflow: hidden;
    border-color: rgba(140, 170, 105, 0.48);
    background: linear-gradient(160deg, rgba(249, 255, 243, 0.95), rgba(233, 247, 217, 0.9));
}

html[data-evo-theme="ink"] body.school-page .school-puzzle-progress::before {
    content: '';
    position: absolute;
    inset: 0;
    background: var(--forest-school-pattern-asset) center / cover no-repeat;
    opacity: 0.18;
    pointer-events: none;
}

html[data-evo-theme="ink"] body.school-page .school-progress-segments,
html[data-evo-theme="ink"] body.school-page .school-progress-label {
    position: relative;
    z-index: 1;
}

html[data-evo-theme="ink"] body.school-page .school-progress-label {
    color: #355f39;
    font-weight: 800;
}

html[data-evo-theme="ink"] body.school-page .puzzle-card-wrap {
    position: relative;
    overflow: hidden;
    border: 1px solid rgba(157, 114, 69, 0.2);
    background: linear-gradient(160deg, rgba(255, 255, 250, 0.98), rgba(247, 240, 224, 0.96));
    box-shadow: 0 4px 14px rgba(80, 56, 28, 0.08);
    transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}

html[data-evo-theme="ink"] body.school-page .puzzle-card-wrap::before {
    content: '';
    position: absolute;
    inset: 0;
    background: var(--forest-school-pattern-asset) center / cover no-repeat;
    opacity: 0.07;
    pointer-events: none;
}

html[data-evo-theme="ink"] body.school-page .puzzle-card-wrap.is-solved {
    border-color: rgba(76, 140, 95, 0.58);
    background: linear-gradient(160deg, rgba(244, 255, 247, 0.98), rgba(226, 244, 232, 0.95));
    box-shadow: inset 4px 0 0 rgba(74, 155, 98, 0.88), 0 4px 14px rgba(56, 96, 68, 0.1);
}

html[data-evo-theme="ink"] body.school-page .puzzle-card-wrap.is-solved::after {
    content: '';
    position: absolute;
    right: 30px;
    top: 10px;
    width: 22px;
    height: 22px;
    background: var(--forest-school-sticker-go-asset) center / contain no-repeat;
    opacity: 0.78;
    pointer-events: none;
}

html[data-evo-theme="ink"] body.school-page .puzzle-card-wrap.puzzle-card-last {
    border-color: rgba(196, 145, 58, 0.62);
    box-shadow: inset 0 0 0 2px rgba(196, 145, 58, 0.18);
}

html[data-evo-theme="ink"] body.school-page .puzzle-card-wrap.puzzle-card-next {
    border-color: rgba(196, 145, 58, 0.72);
    background: linear-gradient(160deg, rgba(255, 249, 232, 0.98), rgba(255, 241, 208, 0.95));
    box-shadow: inset 0 0 0 2px rgba(196, 145, 58, 0.24);
}

html[data-evo-theme="ink"] body.school-page .puzzle-card-wrap:hover,
html[data-evo-theme="ink"] body.school-page .puzzle-card-wrap:focus-within {
    border-color: rgba(109, 165, 94, 0.72);
    box-shadow:
        0 0 0 3px rgba(127, 178, 112, 0.18),
        0 11px 20px rgba(80, 56, 28, 0.18);
    transform: translateY(-1px);
}

html[data-evo-theme="ink"] body.school-page .puzzle-card-link {
    position: relative;
    z-index: 1;
}

html[data-evo-theme="ink"] body.school-page .puzzle-card-link:focus-visible {
    outline: none;
}

html[data-evo-theme="ink"] body.school-page .p-title {
    color: #352618;
}

html[data-evo-theme="ink"] body.school-page .p-reward {
    color: #7d562f;
}

html[data-evo-theme="ink"] body.school-page .p-solved {
    color: #2f6f46;
    background: rgba(226, 244, 232, 0.92);
    border-color: rgba(76, 140, 95, 0.42);
    font-weight: 800;
}

html[data-evo-theme="ink"] body.school-page .p-unsolved {
    color: #6a5845;
    border-color: rgba(157, 114, 69, 0.18);
    background: rgba(255, 252, 245, 0.88);
}

html[data-evo-theme="ink"] body.school-page .school-bc-link {
    color: #6d4d2f;
}

html[data-evo-theme="ink"] body.school-page .school-bc-link:hover {
    color: #3a6844;
}

html[data-evo-theme="ink"] body.school-page .school-bc-link:focus-visible {
    outline: 2px solid rgba(100, 151, 90, 0.58);
    outline-offset: 2px;
    border-radius: 999px;
}

@media (max-width: 768px) {
    html[data-evo-theme="ink"] body.school-page .school-hall-banner--cute {
        min-height: 132px;
        padding: 0.92rem 0.95rem;
    }

    html[data-evo-theme="ink"] body.school-page .school-hall-banner--cute h2 {
        max-width: 88%;
        font-size: 1.02rem;
    }

    html[data-evo-theme="ink"] body.school-page .school-cute-decor {
        width: 42px;
        height: 42px;
    }

    html[data-evo-theme="ink"] body.school-page .school-cute-decor--go {
        display: none;
    }

    html[data-evo-theme="ink"] body.school-page .school-rank-panel--cute::after {
        width: 40px;
        height: 40px;
        right: 8px;
        bottom: 8px;
    }
}

/* Forest wave-8 Gemini shell integration */
html[data-evo-theme="ink"] {
    --forest-shell-banner-current: var(--forest-shell-banner-default-asset, var(--forest-shell-ribbon-asset));
}

html[data-evo-theme="ink"] body.store-page {
    --forest-shell-banner-current: var(--forest-shell-banner-store-asset, var(--forest-shell-banner-default-asset));
}

html[data-evo-theme="ink"] body.arena-shell {
    --forest-shell-banner-current: var(--forest-shell-banner-arena-asset, var(--forest-shell-banner-default-asset));
}

html[data-evo-theme="ink"] body.dojo-page {
    --forest-shell-banner-current: var(--forest-shell-banner-dojo-asset, var(--forest-shell-banner-default-asset));
}

html[data-evo-theme="ink"] body.school-page {
    --forest-shell-banner-current: var(--forest-shell-banner-school-asset, var(--forest-shell-banner-default-asset));
}

html[data-evo-theme="ink"] body.stats-page {
    --forest-shell-banner-current: var(--forest-shell-banner-stats-asset, var(--forest-shell-banner-default-asset));
}

html[data-evo-theme="ink"] body.evo-body:not(.hub-page):not(.myroom-body):not(.pa-body)::after {
    background:
        var(--forest-shell-clouds-asset) center top / cover no-repeat,
        var(--forest-shell-fireflies-asset) center / cover no-repeat;
    opacity: 0.4;
    animation: forest-shell-cloud-drift-strong 32s linear infinite;
}

html[data-evo-theme="ink"] .evo-topbar {
    background:
        linear-gradient(180deg, rgba(255, 249, 232, 0.92), rgba(238, 218, 182, 0.9)),
        var(--forest-shell-banner-current) center / cover,
        var(--forest-shell-ribbon-asset) center / cover;
}

html[data-evo-theme="ink"] body.evo-body:not(.hub-page):not(.myroom-body) .page-content {
    background:
        linear-gradient(165deg, rgba(255, 250, 234, 0.9), rgba(236, 214, 176, 0.9)),
        var(--forest-shell-panel-trim-asset) center / cover,
        var(--forest-shell-panel-asset) center / cover;
}

html[data-evo-theme="ink"] .arena-panel,
html[data-evo-theme="ink"] .match-card,
html[data-evo-theme="ink"] .room-card,
html[data-evo-theme="ink"] .store-card,
html[data-evo-theme="ink"] .album-card,
html[data-evo-theme="ink"] .mentor-card,
html[data-evo-theme="ink"] .stats-summary-card,
html[data-evo-theme="ink"] .school-rank-panel,
html[data-evo-theme="ink"] .dojo-review-panel,
html[data-evo-theme="ink"] .puzzle-card-wrap {
    background:
        linear-gradient(160deg, rgba(255, 252, 242, 0.93), rgba(242, 228, 199, 0.9)),
        var(--forest-shell-panel-trim-asset) center / cover;
}

html[data-evo-theme="ink"] .arena-panel-head,
html[data-evo-theme="ink"] .dojo-toolbar,
html[data-evo-theme="ink"] .store-page .store-page-hero,
html[data-evo-theme="ink"] .store-page .store-vip-hero--panel {
    position: relative;
    overflow: hidden;
}

html[data-evo-theme="ink"] .arena-panel-head::before,
html[data-evo-theme="ink"] .dojo-toolbar::before,
html[data-evo-theme="ink"] .store-page .store-page-hero::before,
html[data-evo-theme="ink"] .store-page .store-vip-hero--panel::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        linear-gradient(120deg, rgba(255, 252, 243, 0.14), rgba(95, 62, 30, 0.18)),
        var(--forest-shell-banner-current) center / cover;
    opacity: 0.28;
    pointer-events: none;
}

html[data-evo-theme="ink"] .arena-panel-head::after,
html[data-evo-theme="ink"] .dojo-toolbar::after,
html[data-evo-theme="ink"] .store-page .store-page-hero::after,
html[data-evo-theme="ink"] .store-page .store-vip-hero--panel::after {
    content: '';
    position: absolute;
    top: 10px;
    right: 12px;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: var(--forest-shell-go-stamp-asset) center / cover no-repeat;
    opacity: 0.68;
    pointer-events: none;
    animation: forest-shell-stamp-pulse 5.8s ease-in-out infinite;
}

html[data-evo-theme="ink"] .store-page .store-page-hero::after,
html[data-evo-theme="ink"] .store-page .store-vip-hero--panel::after {
    top: 14px;
    right: 16px;
    width: 34px;
    height: 34px;
}

html[data-evo-theme="ink"] .evo-btn-primary,
html[data-evo-theme="ink"] .btn-action,
html[data-evo-theme="ink"] .arena-bot-challenge-btn,
html[data-evo-theme="ink"] body.dojo-page .dojo-chat-input button {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.16), rgba(90, 56, 24, 0.12)),
        var(--forest-cta-main-asset) center / cover;
    animation: forest-shell-btn-breathe-strong 4.2s ease-in-out infinite;
}

html[data-evo-theme="ink"] .evo-btn-solid,
html[data-evo-theme="ink"] .btn-action--blue,
html[data-evo-theme="ink"] .btn-action--purple {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.22), rgba(80, 106, 52, 0.14)),
        var(--forest-cta-soft-asset) center / cover;
    animation: forest-shell-btn-breathe-strong 4.9s ease-in-out infinite;
    animation-delay: 0.24s;
}

html[data-evo-theme="ink"] .forest-chrome--standalone .forest-dock {
    background:
        linear-gradient(180deg, rgba(255, 240, 206, 0.92), rgba(227, 193, 146, 0.92)),
        var(--forest-dock-shell-asset) center / cover;
}

html[data-evo-theme="ink"] .forest-chrome--standalone .forest-dock::before {
    background:
        linear-gradient(180deg, rgba(255, 242, 212, 0.9), rgba(229, 197, 151, 0.92)),
        var(--forest-dock-shell-alt-asset) center / cover;
}

html[data-evo-theme="ink"] .forest-chrome--standalone .forest-dock__trim {
    background: var(--forest-dock-trim-asset) center top / cover no-repeat;
}

html[data-evo-theme="ink"] .forest-chrome--standalone .forest-dock__fireflies {
    background: var(--forest-dock-fireflies-asset) center top / cover no-repeat;
    opacity: 0.38;
}

/* Forest Dojo V3/V4: calm mentor grove onboarding */
body.dojo-page .forest-dojo-guide {
    display: none;
}

html[data-evo-theme="ink"] body.dojo-page .forest-dojo-guide {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(360px, 0.95fr);
    grid-template-areas:
        "copy steps"
        "actions steps";
    gap: clamp(0.85rem, 2vw, 1.25rem);
    width: min(calc(100% - 1.25rem), 1100px);
    margin: 1rem auto 0;
    padding: clamp(1rem, 2.4vw, 1.55rem);
    border: 1px solid rgba(150, 108, 60, 0.36);
    border-radius: 30px;
    background:
        linear-gradient(135deg, rgba(255, 250, 236, 0.94), rgba(238, 218, 179, 0.84)),
        radial-gradient(ellipse at 12% 12%, rgba(255, 242, 184, 0.46), transparent 46%),
        radial-gradient(ellipse at 94% 20%, rgba(149, 190, 104, 0.2), transparent 38%);
    box-shadow:
        0 22px 52px rgba(46, 31, 15, 0.25),
        inset 0 1px 0 rgba(255, 255, 255, 0.72);
    color: #382817;
    overflow: hidden;
    backdrop-filter: blur(8px);
}

html[data-evo-theme="ink"] body.dojo-page .forest-dojo-guide::before {
    content: '';
    position: absolute;
    inset: auto -4% -42% 48%;
    height: 170px;
    background:
        linear-gradient(90deg, rgba(255, 250, 236, 0.54), rgba(255, 250, 236, 0)),
        var(--forest-go-board-slice-asset) center / cover no-repeat;
    opacity: 0.28;
    transform: rotate(-4deg);
    pointer-events: none;
}

html[data-evo-theme="ink"] body.dojo-page .forest-dojo-guide::after {
    content: '';
    position: absolute;
    right: 18px;
    top: 16px;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: var(--forest-shell-go-stamp-asset) center / cover no-repeat;
    opacity: 0.58;
    pointer-events: none;
}

html[data-evo-theme="ink"] body.dojo-page .forest-dojo-guide__copy {
    position: relative;
    z-index: 1;
    grid-area: copy;
    max-width: 560px;
}

html[data-evo-theme="ink"] body.dojo-page .forest-dojo-guide__kicker {
    margin: 0 0 0.32rem;
    color: #7a5a30;
    font-size: 0.76rem;
    font-weight: 900;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

html[data-evo-theme="ink"] body.dojo-page .forest-dojo-guide__title {
    margin: 0;
    color: #3a2817;
    font-family: var(--forest-hand);
    font-size: clamp(1.65rem, 3vw, 2.45rem);
    line-height: 1.02;
    text-shadow: 0 1px 0 rgba(255, 249, 230, 0.8);
}

html[data-evo-theme="ink"] body.dojo-page .forest-dojo-guide__body {
    max-width: 48rem;
    margin: 0.65rem 0 0;
    color: #5f4a31;
    font-size: clamp(0.95rem, 1.4vw, 1.06rem);
    line-height: 1.62;
    font-weight: 700;
}

html[data-evo-theme="ink"] body.dojo-page .forest-dojo-guide__steps {
    position: relative;
    z-index: 1;
    grid-area: steps;
    display: grid;
    gap: 0.7rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

html[data-evo-theme="ink"] body.dojo-page .forest-dojo-guide__step {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.18rem 0.72rem;
    align-items: center;
    padding: 0.72rem 0.8rem;
    border: 1px solid rgba(152, 111, 66, 0.24);
    border-radius: 18px;
    background: rgba(255, 252, 241, 0.7);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7);
}

html[data-evo-theme="ink"] body.dojo-page .forest-dojo-guide__step-no {
    grid-row: span 2;
    display: inline-grid;
    place-items: center;
    width: 2.35rem;
    height: 2.35rem;
    border-radius: 50%;
    border: 1px solid rgba(116, 82, 42, 0.28);
    background:
        radial-gradient(circle at 35% 30%, rgba(255, 255, 255, 0.62), transparent 42%),
        linear-gradient(180deg, #f0cf8b, #ba7e3f);
    color: #372414;
    font-size: 0.74rem;
    font-weight: 900;
}

html[data-evo-theme="ink"] body.dojo-page .forest-dojo-guide__step strong {
    color: #352719;
    font-size: 0.95rem;
}

html[data-evo-theme="ink"] body.dojo-page .forest-dojo-guide__step span:last-child {
    color: #6a553c;
    font-size: 0.86rem;
    font-weight: 700;
    line-height: 1.45;
}

html[data-evo-theme="ink"] body.dojo-page .forest-dojo-guide__actions {
    position: relative;
    z-index: 1;
    grid-area: actions;
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
    align-self: end;
}

html[data-evo-theme="ink"] body.dojo-page .forest-dojo-guide__action {
    border: 1px solid rgba(117, 77, 40, 0.42);
    border-radius: 999px;
    padding: 0.72rem 1rem;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.22), rgba(80, 106, 52, 0.14)),
        var(--forest-cta-soft-asset) center / cover;
    color: #2d2417;
    font: inherit;
    font-weight: 900;
    box-shadow: 0 10px 20px rgba(60, 39, 18, 0.14);
    cursor: pointer;
}

html[data-evo-theme="ink"] body.dojo-page .forest-dojo-guide__action--primary {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.18), rgba(90, 56, 24, 0.12)),
        var(--forest-cta-main-asset) center / cover;
}

html[data-evo-theme="ink"] body.dojo-page .forest-dojo-guide__action:focus-visible {
    outline: 3px solid rgba(91, 141, 70, 0.36);
    outline-offset: 3px;
}

html[data-evo-theme="ink"] body.dojo-page .forest-dojo-guide + .dojo-review-boards {
    margin-top: 0.85rem;
}

html[data-evo-theme="ink"] body.dojo-page .fusion-container {
    gap: clamp(1rem, 2vw, 1.6rem);
}

html[data-evo-theme="ink"] body.dojo-page .canvas-wrapper {
    background:
        radial-gradient(ellipse at 50% 50%, rgba(255, 232, 156, 0.22), transparent 64%),
        var(--forest-go-board-texture-main-asset) center / cover no-repeat,
        linear-gradient(145deg, #d5a663, #8a5b2f);
}

html[data-evo-theme="ink"] body.dojo-page .dojo-review-panel {
    border-color: rgba(152, 111, 66, 0.28);
    background: rgba(255, 252, 241, 0.72);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.62);
}

/* Forest Dojo V4 comfort pass: fewer floating layers, stronger main stage */
html[data-evo-theme="ink"] body.dojo-page .dojo-toolbar {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    overflow: hidden !important;
    clip-path: inset(50%) !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

html[data-evo-theme="ink"] body.dojo-page .forest-dojo-guide {
    max-width: 1040px;
    margin-top: 0.9rem;
    padding: clamp(1.05rem, 2.2vw, 1.45rem);
    grid-template-columns: minmax(0, 1.1fr) minmax(300px, 0.8fr);
    border-radius: 34px;
    background:
        linear-gradient(135deg, rgba(255, 252, 240, 0.96), rgba(235, 214, 174, 0.84)),
        radial-gradient(ellipse at 8% 0%, rgba(255, 239, 177, 0.5), transparent 45%),
        radial-gradient(ellipse at 100% 18%, rgba(117, 166, 91, 0.2), transparent 36%),
        var(--forest-shell-panel-asset) center / cover;
    box-shadow:
        0 18px 42px rgba(39, 27, 14, 0.22),
        0 0 0 1px rgba(255, 249, 226, 0.45) inset;
}

html[data-evo-theme="ink"] body.dojo-page .forest-dojo-guide__body {
    max-width: 40rem;
}

html[data-evo-theme="ink"] body.dojo-page .forest-dojo-guide__actions {
    margin-top: 0.1rem;
}

html[data-evo-theme="ink"] body.dojo-page .forest-dojo-guide__action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    min-width: 116px;
    text-decoration: none;
    transition: transform 0.16s ease, filter 0.16s ease, box-shadow 0.16s ease;
}

html[data-evo-theme="ink"] body.dojo-page .forest-dojo-guide__action:hover {
    transform: translateY(-1px);
    filter: brightness(1.04) saturate(1.05);
    box-shadow: 0 12px 22px rgba(60, 39, 18, 0.18);
}

html[data-evo-theme="ink"] body.dojo-page .dojo-review-boards {
    max-width: 1040px;
    margin-top: 0.62rem;
    padding: 0.75rem;
    gap: 0.72rem;
    background:
        linear-gradient(180deg, rgba(255, 250, 237, 0.78), rgba(235, 216, 179, 0.62)),
        var(--forest-shell-panel-trim-asset) center / cover !important;
    box-shadow: 0 12px 28px rgba(45, 31, 16, 0.18) !important;
}

html[data-evo-theme="ink"] body.dojo-page .fusion-container {
    position: relative;
    max-width: 1100px !important;
    width: min(calc(100% - 1.25rem), 1100px) !important;
    margin-top: 0.75rem;
    padding: clamp(1rem, 2.4vw, 1.55rem);
    border-radius: 36px !important;
    border-color: rgba(139, 96, 51, 0.34) !important;
    background:
        linear-gradient(180deg, rgba(255, 250, 235, 0.9), rgba(229, 203, 158, 0.82)),
        radial-gradient(ellipse 56% 44% at 33% 40%, rgba(255, 225, 143, 0.26), transparent 72%),
        radial-gradient(ellipse 48% 44% at 80% 20%, rgba(116, 156, 88, 0.16), transparent 60%),
        var(--forest-shell-panel-asset) center / cover !important;
    box-shadow:
        0 28px 60px rgba(36, 25, 13, 0.3),
        0 0 0 1px rgba(255, 248, 226, 0.54) inset !important;
}

html[data-evo-theme="ink"] body.dojo-page .fusion-container::before {
    content: '';
    position: absolute;
    inset: 12px;
    border-radius: 28px;
    border: 1px solid rgba(157, 114, 69, 0.16);
    background:
        linear-gradient(90deg, rgba(255, 250, 235, 0.1), rgba(103, 75, 38, 0.05)),
        var(--forest-go-board-slice-asset) left bottom / 42% auto no-repeat;
    opacity: 0.2;
    pointer-events: none;
}

html[data-evo-theme="ink"] body.dojo-page .board-area,
html[data-evo-theme="ink"] body.dojo-page .mentor-area {
    position: relative;
    z-index: 1;
}

html[data-evo-theme="ink"] body.dojo-page .board-area {
    max-width: 650px;
    padding: 0.35rem;
    border-radius: 30px;
    background:
        linear-gradient(180deg, rgba(255, 247, 224, 0.42), rgba(210, 177, 122, 0.22));
}

html[data-evo-theme="ink"] body.dojo-page .canvas-wrapper {
    max-width: min(60dvh, 630px) !important;
    border: 12px solid rgba(99, 60, 28, 0.88) !important;
    border-radius: 30px !important;
    background:
        radial-gradient(ellipse at 50% 50%, rgba(255, 236, 174, 0.34), transparent 62%),
        linear-gradient(180deg, rgba(255, 236, 182, 0.18), rgba(88, 61, 31, 0.14)),
        var(--forest-go-board-texture-main-asset) center / cover no-repeat,
        linear-gradient(145deg, #d9ad68, #936034) !important;
    box-shadow:
        0 20px 36px rgba(48, 31, 14, 0.28),
        0 0 0 1px rgba(255, 237, 178, 0.5),
        0 0 34px rgba(255, 214, 126, 0.18),
        inset 0 2px 0 rgba(255, 246, 215, 0.58) !important;
}

html[data-evo-theme="ink"] body.dojo-page .canvas-wrapper::after {
    content: '';
    position: absolute;
    inset: 10px;
    z-index: 4;
    border-radius: 18px;
    border: 1px solid rgba(255, 240, 183, 0.16);
    box-shadow: inset 0 0 26px rgba(255, 231, 151, 0.11);
    pointer-events: none;
}

html[data-evo-theme="ink"] body.dojo-page .overlay {
    background:
        radial-gradient(ellipse at 50% 45%, rgba(255, 238, 180, 0.1), transparent 58%),
        rgba(30, 37, 23, 0.72);
    backdrop-filter: blur(4px) saturate(1.05);
}

html[data-evo-theme="ink"] body.dojo-page .dojo-purified-title {
    color: #fff0bd;
    text-shadow: 0 2px 14px rgba(0, 0, 0, 0.36);
}

html[data-evo-theme="ink"] body.dojo-page .replay-controls {
    border-radius: 24px;
    background:
        linear-gradient(180deg, rgba(255, 250, 237, 0.94), rgba(233, 209, 164, 0.88)),
        var(--forest-shell-ribbon-asset) center / cover;
    box-shadow:
        0 12px 24px rgba(48, 31, 14, 0.18),
        inset 0 1px 0 rgba(255, 255, 255, 0.62);
}

html[data-evo-theme="ink"] body.dojo-page .replay-controls .btn-action {
    min-height: 34px;
    padding: 0.48rem 0.72rem;
    border-color: rgba(121, 82, 42, 0.28);
    box-shadow: 0 6px 12px rgba(57, 37, 17, 0.12);
}

html[data-evo-theme="ink"] body.dojo-page .dojo-inline-color-choice {
    border-color: rgba(145, 103, 56, 0.34);
    background:
        linear-gradient(180deg, rgba(255, 250, 236, 0.92), rgba(232, 206, 162, 0.84)),
        var(--forest-shell-ribbon-asset) center / cover;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.64);
}

html[data-evo-theme="ink"] body.dojo-page .dojo-inline-color-choice__label {
    color: #6a4321;
}

html[data-evo-theme="ink"] body.dojo-page .dojo-inline-color-choice__btn {
    border-color: rgba(113, 76, 38, 0.42);
    box-shadow: 0 8px 14px rgba(57, 37, 17, 0.14);
}

html[data-evo-theme="ink"] body.dojo-page .dojo-inline-color-choice__btn--black {
    background: linear-gradient(180deg, #2b241c, #0d0b08);
    color: #fff6dc;
}

html[data-evo-theme="ink"] body.dojo-page .dojo-inline-color-choice__btn--white {
    background: linear-gradient(180deg, #fffaf0, #e9d8ad);
    color: #392718;
}

html[data-evo-theme="ink"] body.dojo-page .mentor-area {
    border-radius: 32px !important;
    overflow: hidden;
    background:
        linear-gradient(180deg, rgba(255, 251, 240, 0.96), rgba(236, 216, 178, 0.91)),
        var(--forest-shell-panel-asset) center / cover !important;
    box-shadow:
        0 18px 38px rgba(45, 31, 16, 0.24),
        inset 0 1px 0 rgba(255, 255, 255, 0.72) !important;
}

html[data-evo-theme="ink"] body.dojo-page .mentor-stage {
    border-bottom-color: rgba(150, 108, 60, 0.2);
    background:
        linear-gradient(180deg, rgba(38, 53, 31, 0.08), rgba(235, 216, 178, 0.18)),
        var(--forest-shell-banner-dojo-asset) center / cover !important;
}

html[data-evo-theme="ink"] body.dojo-page .portrait-wrapper {
    margin: 0.72rem 0.72rem 0;
    width: auto;
    border: 1px solid rgba(255, 229, 166, 0.38);
    border-radius: 24px 24px 10px 10px;
    box-shadow:
        0 12px 24px rgba(35, 24, 12, 0.2),
        0 0 0 1px rgba(104, 68, 32, 0.16);
    background: #1e2b1b;
}

html[data-evo-theme="ink"] body.dojo-page .mentor-portrait-poster,
html[data-evo-theme="ink"] body.dojo-page .mentor-portrait-idle,
html[data-evo-theme="ink"] body.dojo-page .mentor-portrait-overlay {
    border-radius: inherit;
}

html[data-evo-theme="ink"] body.dojo-page .mentor-info-tag {
    border: 1px solid rgba(255, 239, 185, 0.5);
    background: rgba(44, 34, 22, 0.72);
    color: #fff4cf;
    box-shadow: 0 8px 16px rgba(20, 12, 6, 0.22);
}

html[data-evo-theme="ink"] body.dojo-page .dojo-subtitle-panel {
    padding: 0.72rem;
    background: linear-gradient(180deg, rgba(255, 250, 236, 0.08), rgba(218, 190, 142, 0.22));
}

html[data-evo-theme="ink"] body.dojo-page .galgame-box {
    border: 1px solid rgba(143, 101, 56, 0.26);
    border-radius: 20px;
    background:
        linear-gradient(180deg, rgba(255, 253, 244, 0.96), rgba(242, 226, 194, 0.94));
    box-shadow: 0 10px 20px rgba(49, 32, 14, 0.14);
}

html[data-evo-theme="ink"] body.dojo-page.dojo-has-game .dojo-subtitle-panel .galgame-box {
    background: rgba(43, 35, 24, 0.9);
    border-color: rgba(225, 188, 116, 0.42);
}

html[data-evo-theme="ink"] body.dojo-page .chat-history {
    border-top: 1px solid rgba(143, 101, 56, 0.18);
    background:
        linear-gradient(180deg, rgba(255, 250, 237, 0.78), rgba(238, 219, 184, 0.68));
}

html[data-evo-theme="ink"] body.dojo-page .dojo-chat-input {
    gap: 0.5rem;
    padding: 0.72rem;
    background:
        linear-gradient(180deg, rgba(246, 230, 199, 0.94), rgba(223, 196, 151, 0.9));
}

html[data-evo-theme="ink"] body.dojo-page .dojo-chat-input input {
    border-radius: 999px;
    border-color: rgba(132, 93, 48, 0.28);
}

html[data-evo-theme="ink"] body.dojo-page::after {
    content: none !important;
    display: none !important;
    background: none !important;
    animation: none !important;
}

/* Forest Dojo V4.1: keep the board in view and tuck the dock away */
html[data-evo-theme="ink"] body.dojo-page .forest-dojo-guide {
    max-width: 980px;
    margin-top: 0.62rem;
    padding: clamp(0.78rem, 1.6vw, 1.05rem);
    grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.78fr);
    gap: clamp(0.55rem, 1.4vw, 0.86rem);
    border-radius: 26px;
}

html[data-evo-theme="ink"] body.dojo-page .forest-dojo-guide::before {
    opacity: 0.16;
}

html[data-evo-theme="ink"] body.dojo-page .forest-dojo-guide::after {
    width: 32px;
    height: 32px;
    opacity: 0.46;
}

html[data-evo-theme="ink"] body.dojo-page .forest-dojo-guide__kicker {
    margin-bottom: 0.18rem;
    font-size: 0.68rem;
}

html[data-evo-theme="ink"] body.dojo-page .forest-dojo-guide__title {
    font-size: clamp(1.35rem, 2.25vw, 1.9rem);
}

html[data-evo-theme="ink"] body.dojo-page .forest-dojo-guide__body {
    margin-top: 0.42rem;
    max-width: 36rem;
    font-size: 0.9rem;
    line-height: 1.45;
}

html[data-evo-theme="ink"] body.dojo-page .forest-dojo-guide__steps {
    gap: 0.46rem;
}

html[data-evo-theme="ink"] body.dojo-page .forest-dojo-guide__step {
    padding: 0.5rem 0.62rem;
    border-radius: 15px;
}

html[data-evo-theme="ink"] body.dojo-page .forest-dojo-guide__step-no {
    width: 2rem;
    height: 2rem;
    font-size: 0.68rem;
}

html[data-evo-theme="ink"] body.dojo-page .forest-dojo-guide__step strong {
    font-size: 0.86rem;
}

html[data-evo-theme="ink"] body.dojo-page .forest-dojo-guide__step span:last-child {
    font-size: 0.76rem;
    line-height: 1.34;
}

html[data-evo-theme="ink"] body.dojo-page .forest-dojo-guide__action {
    min-height: 36px;
    min-width: 102px;
    padding: 0.56rem 0.82rem;
}

html[data-evo-theme="ink"] body.dojo-page .dojo-review-boards {
    max-width: 980px;
    margin-top: 0.48rem;
    padding: 0.55rem;
    gap: 0.5rem;
    border-radius: 22px !important;
}

html[data-evo-theme="ink"] body.dojo-page .dojo-review-panel {
    border-radius: 16px;
    padding: 0.58rem 0.68rem;
}

html[data-evo-theme="ink"] body.dojo-page .dojo-review-panel__head {
    gap: 0.18rem;
    margin-bottom: 0.34rem;
}

html[data-evo-theme="ink"] body.dojo-page .dojo-review-panel__title {
    font-size: 0.82rem;
}

html[data-evo-theme="ink"] body.dojo-page .dojo-review-panel__hint,
html[data-evo-theme="ink"] body.dojo-page .dojo-review-empty {
    font-size: 0.68rem;
    line-height: 1.35;
}

html[data-evo-theme="ink"] body.dojo-page .dojo-review-row {
    padding: 0.34rem 0.44rem;
}

html[data-evo-theme="ink"] body.dojo-page.dojo-has-game .forest-dojo-guide {
    display: none;
}

html[data-evo-theme="ink"] body.dojo-page.dojo-has-game .dojo-review-boards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-width: 1040px;
    padding: 0.42rem;
    margin-top: 0.45rem;
}

html[data-evo-theme="ink"] body.dojo-page.dojo-has-game .dojo-review-panel {
    padding: 0.44rem 0.58rem;
}

html[data-evo-theme="ink"] body.dojo-page.dojo-has-game .dojo-review-panel__hint {
    display: none;
}

html[data-evo-theme="ink"] body.dojo-page.dojo-has-game .dojo-review-list {
    max-height: 4.5rem;
}

html[data-evo-theme="ink"] body.dojo-page.dojo-has-game .galgame-name,
html[data-evo-theme="ink"] body.dojo-page.dojo-has-game .galgame-head-actions button {
    color: #f1e7d4;
}

html[data-evo-theme="ink"] body.dojo-page .dojo-archive-modal__close {
    border: 1px solid rgba(117, 77, 40, 0.24);
    background: rgba(91, 62, 31, 0.12);
    color: #3d2b1b;
}

html[data-evo-theme="ink"] body.dojo-page .dojo-archive-modal__close:hover {
    background: rgba(91, 62, 31, 0.2);
}

html[data-evo-theme="ink"] body.dojo-page .dojo-archive-modal {
    align-items: flex-start;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    padding: max(0.75rem, env(safe-area-inset-top)) 0.75rem max(1rem, env(safe-area-inset-bottom));
}

html[data-evo-theme="ink"] body.dojo-page .dojo-archive-modal__panel {
    width: min(600px, 100%);
    height: min(82dvh, 720px);
    max-height: calc(100dvh - 1.5rem);
    margin: auto 0;
    display: flex;
    flex-direction: column;
}

html[data-evo-theme="ink"] body.dojo-page .dojo-archive-modal__head,
html[data-evo-theme="ink"] body.dojo-page .dojo-archive-modal__toolbar,
html[data-evo-theme="ink"] body.dojo-page .dojo-archive-modal__foot {
    flex: 0 0 auto;
}

html[data-evo-theme="ink"] body.dojo-page .dojo-archive-modal__toolbar {
    padding: 0.68rem 0.82rem;
    gap: 0.42rem;
}

html[data-evo-theme="ink"] body.dojo-page .dojo-archive-modal__list {
    flex: 1 1 auto;
    min-height: 9rem;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
}

html[data-evo-theme="ink"] body.dojo-page .dojo-archive-row__title,
html[data-evo-theme="ink"] body.dojo-page .dojo-archive-row__meta {
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
}

html[data-evo-theme="ink"] body.dojo-page .fusion-container {
    max-width: 1040px !important;
    width: min(calc(100% - 1rem), 1040px) !important;
    margin-top: 0.55rem;
    margin-bottom: 7.25rem !important;
    padding: clamp(0.85rem, 1.8vw, 1.2rem);
    border-radius: 30px !important;
}

html[data-evo-theme="ink"] body.dojo-page .forest-chrome--standalone {
    bottom: -26px !important;
    z-index: 140 !important;
    opacity: 0.92;
    transition: bottom 0.18s ease, opacity 0.18s ease;
}

html[data-evo-theme="ink"] body.dojo-page .forest-chrome--standalone:hover,
html[data-evo-theme="ink"] body.dojo-page .forest-chrome--standalone:focus-within,
html[data-evo-theme="ink"] body.dojo-page.forest-library-open .forest-chrome--standalone {
    bottom: 0 !important;
    opacity: 1;
}

html[data-evo-theme="ink"] body.dojo-page .forest-chrome--standalone .forest-dock {
    width: min(82%, 380px) !important;
    transform: translateY(0) scale(0.86) !important;
    transform-origin: center bottom;
    opacity: 0.96;
    filter: drop-shadow(0 -4px 18px rgba(35, 24, 12, 0.24));
}

html[data-evo-theme="ink"] body.dojo-page .forest-chrome--standalone:hover .forest-dock,
html[data-evo-theme="ink"] body.dojo-page .forest-chrome--standalone:focus-within .forest-dock,
html[data-evo-theme="ink"] body.dojo-page.forest-library-open .forest-chrome--standalone .forest-dock {
    transform: translateY(0) scale(0.9) !important;
    opacity: 1;
}

@media (max-width: 900px) {
    html[data-evo-theme="ink"] body.dojo-page .forest-dojo-guide {
        grid-template-columns: 1fr;
        grid-template-areas:
            "copy"
            "steps"
            "actions";
        border-radius: 24px;
    }

    html[data-evo-theme="ink"] body.dojo-page .forest-dojo-guide__steps {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    html[data-evo-theme="ink"] body.dojo-page .fusion-container {
        max-width: calc(100% - 0.75rem) !important;
        margin-bottom: 7.5rem !important;
    }

    html[data-evo-theme="ink"] body.dojo-page .dojo-archive-modal__panel {
        height: min(88dvh, 720px);
        max-height: calc(100dvh - 1rem);
    }

    html[data-evo-theme="ink"] body.dojo-page.dojo-has-game .dojo-review-boards {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 640px) {
    html[data-evo-theme="ink"] body.dojo-page .forest-dojo-guide {
        width: calc(100% - 0.75rem);
        padding: 0.95rem;
    }

    html[data-evo-theme="ink"] body.dojo-page .forest-dojo-guide__steps {
        grid-template-columns: 1fr;
    }

    html[data-evo-theme="ink"] body.dojo-page .forest-dojo-guide__action {
        flex: 1 1 100%;
    }

    html[data-evo-theme="ink"] body.dojo-page .fusion-container {
        padding: 0.75rem;
        border-radius: 26px !important;
    }

    html[data-evo-theme="ink"] body.dojo-page .portrait-wrapper {
        margin: 0.55rem 0.55rem 0;
    }
}

@keyframes forest-shell-cloud-drift-strong {
    from { transform: translateX(-2.4%); }
    to { transform: translateX(2.4%); }
}

@keyframes forest-shell-btn-breathe-strong {
    0%, 100% {
        filter: saturate(1) brightness(1);
    }
    50% {
        filter: saturate(1.08) brightness(1.05);
    }
}

@keyframes forest-shell-stamp-pulse {
    0%, 100% { transform: scale(1); opacity: 0.64; }
    50% { transform: scale(1.08); opacity: 0.86; }
}

@media (prefers-reduced-motion: reduce) {
    html[data-evo-theme="ink"] body.evo-body:not(.hub-page):not(.myroom-body):not(.pa-body)::after,
    html[data-evo-theme="ink"] .evo-btn-primary,
    html[data-evo-theme="ink"] .evo-btn-solid,
    html[data-evo-theme="ink"] .btn-action,
    html[data-evo-theme="ink"] .btn-action--blue,
    html[data-evo-theme="ink"] .btn-action--purple,
    html[data-evo-theme="ink"] .arena-bot-challenge-btn,
    html[data-evo-theme="ink"] body.dojo-page .dojo-chat-input button,
    html[data-evo-theme="ink"] .arena-panel-head::after,
    html[data-evo-theme="ink"] .dojo-toolbar::after,
    html[data-evo-theme="ink"] .store-page .store-page-hero::after,
    html[data-evo-theme="ink"] .store-page .store-vip-hero--panel::after {
        animation: none !important;
    }
}

/* ── Readability pass: solid content surfaces (v33) ── */
html[data-evo-theme="ink"] body.evo-body:not(.hub-page):not(.myroom-body):not(.nxr-body):not(.pa-body):not(.play-shell):not(.replay-page):not(.puzzle-page):not(.nx-play-body)::after {
    opacity: var(--forest-shell-decor-opacity);
}

html[data-evo-theme="ink"] body.stats-page::before,
html[data-evo-theme="ink"] body.school-page::before,
html[data-evo-theme="ink"] body.dojo-page::before,
html[data-evo-theme="ink"] body.store-page::before {
    background:
        radial-gradient(ellipse 56% 48% at 50% 42%, rgba(255, 246, 210, 0.16), transparent 68%),
        linear-gradient(90deg, rgba(10, 25, 13, 0.14), transparent 18%, transparent 82%, rgba(10, 25, 13, 0.14));
}

html[data-evo-theme="ink"] body.stats-page::after,
html[data-evo-theme="ink"] body.school-page::after,
html[data-evo-theme="ink"] body.dojo-page::after,
html[data-evo-theme="ink"] body.store-page::after,
html[data-evo-theme="ink"] body.lounge-page::after,
html[data-evo-theme="ink"] body.go-nexus-page::after {
    background: linear-gradient(180deg, transparent, rgba(20, 37, 18, 0.2));
}

html[data-evo-theme="ink"] body.evo-body:not(.hub-page):not(.myroom-body) .page-content {
    border-color: rgba(162, 121, 74, 0.34);
    background:
        var(--forest-surface-solid),
        var(--forest-shell-panel-trim-asset, url('/images/themes/forest/forest-rpg-panel-trim.svg?v=5')) center / cover,
        var(--forest-shell-panel-asset, url('/images/themes/forest/forest-rpg-panel-quest.svg?v=5')) center / cover;
    box-shadow: 0 18px 36px rgba(75, 53, 28, 0.22);
    backdrop-filter: none;
}

html[data-evo-theme="ink"] .store-page .page-content {
    background:
        linear-gradient(165deg, #fff9ec 0%, #f0e0c0 100%),
        url('/images/themes/forest/fairy-panel-parchment.svg?v=3') center / cover;
}

html[data-evo-theme="ink"] body.stats-page .evo-wrap,
html[data-evo-theme="ink"] body.store-page .page-content,
html[data-evo-theme="ink"] body.school-page .page-content,
html[data-evo-theme="ink"] body.dojo-page .dojo-review-boards,
html[data-evo-theme="ink"] body.dojo-page .dojo-toolbar,
html[data-evo-theme="ink"] body.dojo-page .dojo-locale-banner,
html[data-evo-theme="ink"] body.dojo-page .dojo-main,
html[data-evo-theme="ink"] body.dojo-page .mentor-coach-strip {
    background:
        linear-gradient(180deg, #fff9ec 0%, #f2e2c4 100%),
        radial-gradient(circle at 50% 0, rgba(255, 255, 255, 0.42), transparent 48%);
    backdrop-filter: none;
}

html[data-evo-theme="ink"] body:not(.myroom-body) .evo-panel,
html[data-evo-theme="ink"] body:not(.myroom-body) .evo-card,
html[data-evo-theme="ink"] .arena-panel,
html[data-evo-theme="ink"] .match-card,
html[data-evo-theme="ink"] .room-card,
html[data-evo-theme="ink"] .store-card,
html[data-evo-theme="ink"] .album-card,
html[data-evo-theme="ink"] .mentor-card,
html[data-evo-theme="ink"] .friend-card,
html[data-evo-theme="ink"] .guild-card,
html[data-evo-theme="ink"] .stats-panel,
html[data-evo-theme="ink"] .stats-summary-card,
html[data-evo-theme="ink"] .quest-card,
html[data-evo-theme="ink"] .game-row,
html[data-evo-theme="ink"] body.stats-page .evo-card,
html[data-evo-theme="ink"] body.school-page .evo-panel,
html[data-evo-theme="ink"] body.school-page .school-entry-card,
html[data-evo-theme="ink"] body.school-page .school-rank-panel,
html[data-evo-theme="ink"] body.school-page .school-video-level-card,
html[data-evo-theme="ink"] body.school-page .school-video-lesson-card,
html[data-evo-theme="ink"] body.school-page .puzzle-card,
html[data-evo-theme="ink"] body.store-page .evo-panel,
html[data-evo-theme="ink"] body.store-page .store-item,
html[data-evo-theme="ink"] body.store-page .store-vip-compare,
html[data-evo-theme="ink"] body.store-page .store-featured-card,
html[data-evo-theme="ink"] body.store-page .album-store-promo,
html[data-evo-theme="ink"] body.dojo-page .dojo-review-panel,
html[data-evo-theme="ink"] body.school-page .level-node,
html[data-evo-theme="ink"] body.school-page .kyu-node,
html[data-evo-theme="ink"] body.school-page .dan-node,
html[data-evo-theme="ink"] body.school-page .puzzle-card-wrap {
    background: linear-gradient(160deg, #fffcf2 0%, #f4e8cc 100%);
    color: var(--forest-ink-strong);
}

html[data-evo-theme="ink"] body.friends-page .friends-add-card,
html[data-evo-theme="ink"] body.friends-page .friends-grid > div,
html[data-evo-theme="ink"] body.friends-page .friends-pending-card,
html[data-evo-theme="ink"] body.friends-page .evo-empty-state {
    background: linear-gradient(160deg, #fffcf2 0%, #f4e8cc 100%);
    color: var(--forest-ink-strong);
}

/* Game Hall — forest pavilion shell (wave lounge-v2) */
html[data-evo-theme="ink"] body.lounge-page,
html[data-evo-theme="ink"] body.go-nexus-page {
    color: #3e2d1c;
}

html[data-evo-theme="ink"] body.lounge-page .lounge-forest-panel,
html[data-evo-theme="ink"] body.go-nexus-page .lounge-forest-panel,
html[data-evo-theme="ink"] body.lounge-page .lounge-forest-card {
    border-color: rgba(141, 100, 54, 0.34);
}

html[data-evo-theme="ink"] body.lounge-page .lounge-forest-banner__title,
html[data-evo-theme="ink"] body.go-nexus-page .lounge-forest-banner__title,
html[data-evo-theme="ink"] body.lounge-page .lounge-forest-panel__title,
html[data-evo-theme="ink"] body.go-nexus-page .lounge-forest-panel__title,
html[data-evo-theme="ink"] body.lounge-page .lounge-forest-card__sign {
    font-family: var(--forest-hand);
}

html[data-evo-theme="ink"] body.lounge-page .nx-shell::before,
html[data-evo-theme="ink"] body.lounge-page .lounge-hero-banner {
    display: none !important;
}

html[data-evo-theme="ink"] .arena-panel-head::before,
html[data-evo-theme="ink"] body.evo-body.pa-body,
html[data-evo-theme="ink"] body.evo-body.pa-body::before {
    background-color: #060910 !important;
    background-image:
        radial-gradient(circle at 18% 0%, rgba(255, 120, 72, 0.12), transparent 38%),
        radial-gradient(circle at 82% 8%, rgba(93, 231, 255, 0.14), transparent 34%),
        linear-gradient(180deg, #0a1224 0%, #060910 100%) !important;
    background-size: auto !important;
    background-attachment: scroll !important;
    animation: none !important;
}

html[data-evo-theme="ink"] body.evo-body.pa-body::before {
    content: none !important;
    display: none !important;
}

html[data-evo-theme="ink"] body.nxr-body::after,
html[data-evo-theme="ink"] body.pa-body::after {
    display: none !important;
    content: none !important;
}

html[data-evo-theme="ink"] body.nxr-body .nxr-intro,
html[data-evo-theme="ink"] body.nxr-body .nxr-notes {
    background: linear-gradient(180deg, rgba(15, 28, 58, 0.97), rgba(5, 10, 24, 0.96));
    backdrop-filter: none;
}

html[data-evo-theme="ink"] body.pa-body .pa-team-picker,
html[data-evo-theme="ink"] body.pa-body .pa-battle-stage {
    background: rgba(8, 14, 28, 0.96);
}

html[data-evo-theme="ink"] body.pa-body .pa-rating-chip,
html[data-evo-theme="ink"] body.pa-body .pa-record-chip {
    background: rgba(255, 255, 255, 0.1);
}

html[data-evo-theme="ink"] .arena-panel-head::before,
html[data-evo-theme="ink"] .dojo-toolbar::before,
html[data-evo-theme="ink"] .store-page .store-page-hero::before,
html[data-evo-theme="ink"] .store-page .store-vip-hero--panel::before {
    opacity: 0.12;
}

/* Forest wave pages-v2: Game Library + Mentor Album */
html[data-evo-theme="ink"] body.games-page,
html[data-evo-theme="ink"] body.album-page,
html[data-evo-theme="ink"] body.friends-page {
    min-height: 100dvh;
    color: #3e2d1c;
    background-color: #20321f;
    background-image:
        linear-gradient(180deg, rgba(255, 247, 225, 0.12), rgba(14, 29, 17, 0.24)),
        var(--forest-page-bg);
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
}

html[data-evo-theme="ink"] body.games-page { --forest-page-bg: url('/images/themes/forest/pages-v2/games-bg.jpg?v=1'); }
html[data-evo-theme="ink"] body.album-page { --forest-page-bg: url('/images/themes/forest/pages-v2/album-bg.jpg?v=1'); }
html[data-evo-theme="ink"] body.friends-page { --forest-page-bg: url('/images/themes/forest/pages-v2/friends-bg.jpg?v=1'); }

html[data-evo-theme="ink"] body.games-page::before,
html[data-evo-theme="ink"] body.album-page::before,
html[data-evo-theme="ink"] body.friends-page::before {
    content: '';
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background:
        radial-gradient(ellipse 56% 48% at 50% 42%, rgba(255, 246, 210, 0.38), transparent 68%),
        linear-gradient(90deg, rgba(10, 25, 13, 0.28), transparent 18%, transparent 82%, rgba(10, 25, 13, 0.28));
}

html[data-evo-theme="ink"] body.games-page::after,
html[data-evo-theme="ink"] body.album-page::after,
html[data-evo-theme="ink"] body.friends-page::after {
    content: '';
    position: fixed;
    inset: auto 0 0;
    height: 26vh;
    z-index: 0;
    pointer-events: none;
    background: linear-gradient(180deg, transparent, rgba(20, 37, 18, 0.42));
}

html[data-evo-theme="ink"] body.games-page .evo-topbar,
html[data-evo-theme="ink"] body.album-page .evo-topbar,
html[data-evo-theme="ink"] body.friends-page .evo-topbar {
    width: min(calc(100% - 1rem), 1180px);
    margin: 0.5rem auto 0;
    border: 1px solid rgba(126, 91, 48, 0.3);
    border-radius: 999px;
    background:
        linear-gradient(180deg, rgba(255, 246, 222, 0.9), rgba(228, 198, 145, 0.78)),
        radial-gradient(circle at 50% 0, rgba(255, 255, 255, 0.28), transparent 56%);
    box-shadow: 0 14px 28px rgba(51, 35, 18, 0.2);
    color: #3d2a1a;
}

html[data-evo-theme="ink"] body.games-page .evo-main {
    position: relative;
    z-index: 1;
}

html[data-evo-theme="ink"] body.friends-page .evo-main {
    position: relative;
    z-index: 1;
}

html[data-evo-theme="ink"] body.games-page .evo-wrap {
    width: min(calc(100% - 1.25rem), 980px);
    margin: 1rem auto calc(var(--forest-dock-h) + 1rem);
    padding: clamp(1rem, 2vw, 1.55rem);
    border: 1px solid rgba(150, 108, 60, 0.32);
    border-radius: 28px;
    background:
        linear-gradient(180deg, rgba(255, 249, 232, 0.86), rgba(238, 217, 177, 0.78)),
        radial-gradient(circle at 50% 0, rgba(255, 255, 255, 0.34), transparent 48%);
    box-shadow:
        0 22px 50px rgba(45, 31, 16, 0.26),
        inset 0 1px 0 rgba(255, 255, 255, 0.66);
    backdrop-filter: blur(8px);
}

html[data-evo-theme="ink"] body.games-page .page-hero {
    height: 8.25rem;
    margin-bottom: 1rem;
    border: 1px solid rgba(160, 117, 72, 0.48);
    border-radius: 22px;
    background:
        linear-gradient(145deg, rgba(255, 248, 228, 0.22), rgba(72, 48, 24, 0.26)),
        url('/images/themes/forest/pages-v2/games-bg.jpg?v=1') center 42% / cover no-repeat;
    box-shadow: 0 14px 30px rgba(73, 50, 25, 0.25);
}

html[data-evo-theme="ink"] body.games-page .page-hero::after {
    background: linear-gradient(95deg, rgba(55, 36, 18, 0.74) 0%, rgba(55, 36, 18, 0.3) 62%, rgba(55, 36, 18, 0.1) 100%);
}

html[data-evo-theme="ink"] body.games-page .page-hero-inner {
    width: fit-content;
    max-width: min(100%, 40rem);
    margin-left: 0.9rem;
    padding: 0.78rem 1rem;
    border-radius: 18px;
    border: 1px solid rgba(255, 236, 203, 0.62);
    background: rgba(255, 248, 232, 0.84);
    box-shadow: 0 6px 18px rgba(63, 42, 21, 0.26);
}

html[data-evo-theme="ink"] body.games-page .page-hero-title {
    font-family: var(--forest-hand);
    font-size: 1.3rem;
    font-weight: 400;
    letter-spacing: 0.01em;
    color: #352618;
    text-shadow: none;
}

html[data-evo-theme="ink"] body.games-page .page-hero-sub {
    margin-top: 0.25rem;
    font-size: 0.86rem;
    line-height: 1.55;
    color: #5d4a37;
}

html[data-evo-theme="ink"] body.games-page .games-list-panel {
    padding: 0.35rem 0 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}

html[data-evo-theme="ink"] body.games-page .games-match-card,
html[data-evo-theme="ink"] body.games-page .game-row {
    border: 1px solid rgba(157, 114, 69, 0.28);
    border-radius: 18px;
    background: linear-gradient(160deg, rgba(255, 252, 241, 0.94), rgba(241, 228, 198, 0.9));
    box-shadow: 0 10px 22px rgba(80, 56, 28, 0.16);
    color: #453524;
}

html[data-evo-theme="ink"] body.games-page .games-match-card strong,
html[data-evo-theme="ink"] body.games-page .game-row strong {
    color: #332619;
}

html[data-evo-theme="ink"] body.games-page .games-match-date,
html[data-evo-theme="ink"] body.games-page .games-match-detail,
html[data-evo-theme="ink"] body.games-page .evo-muted {
    color: #6a5844;
}

html[data-evo-theme="ink"] body.album-page.album-shell {
    background: transparent;
}

html[data-evo-theme="ink"] body.album-page .album-wrap {
    position: relative;
    z-index: 1;
    width: min(calc(100% - 1.25rem), 1100px);
    margin: 0.75rem auto calc(var(--forest-dock-h) + 1rem);
    padding: clamp(1rem, 2vw, 1.45rem);
    border: 1px solid rgba(150, 108, 60, 0.32);
    border-radius: 28px;
    background:
        linear-gradient(180deg, rgba(255, 249, 232, 0.88), rgba(238, 217, 177, 0.8)),
        radial-gradient(circle at 50% 0, rgba(255, 255, 255, 0.34), transparent 48%);
    box-shadow:
        0 22px 50px rgba(45, 31, 16, 0.26),
        inset 0 1px 0 rgba(255, 255, 255, 0.66);
    backdrop-filter: blur(8px);
}

html[data-evo-theme="ink"] body.album-page .album-breadcrumb {
    color: #6a5844;
}

html[data-evo-theme="ink"] body.album-page .album-breadcrumb button {
    color: #8c5b2d;
}

html[data-evo-theme="ink"] body.album-page .album-hero {
    border: 1px solid rgba(160, 117, 72, 0.48);
    border-radius: 22px;
    padding: 1.55rem 1.35rem;
    background:
        linear-gradient(145deg, rgba(255, 248, 228, 0.18), rgba(72, 48, 24, 0.34)),
        url('/images/themes/forest/pages-v2/album-bg.jpg?v=1') center 38% / cover no-repeat;
    box-shadow: 0 14px 30px rgba(73, 50, 25, 0.22);
}

html[data-evo-theme="ink"] body.album-page .album-hero-title {
    font-family: var(--forest-hand);
    font-weight: 400;
    color: #fff8e8;
    text-shadow: 0 2px 10px rgba(20, 12, 4, 0.45);
}

html[data-evo-theme="ink"] body.album-page .album-hero-sub,
html[data-evo-theme="ink"] body.album-page .album-hero-milestone,
html[data-evo-theme="ink"] body.album-page .album-hero-mentor,
html[data-evo-theme="ink"] body.album-page .album-hub-hint,
html[data-evo-theme="ink"] body.album-page .evo-muted {
    color: rgba(255, 246, 224, 0.88);
}

html[data-evo-theme="ink"] body.album-page .album-stat-block .label {
    color: rgba(255, 246, 224, 0.72);
}

html[data-evo-theme="ink"] body.album-page .album-stat-block .value {
    font-family: var(--forest-font);
    color: #ffe7a8;
}

html[data-evo-theme="ink"] body.album-page .album-progress-bar {
    border-color: rgba(255, 236, 203, 0.35);
    background: rgba(32, 22, 12, 0.42);
}

html[data-evo-theme="ink"] body.album-page .album-progress-fill {
    background: linear-gradient(90deg, #c9a05a, #ffe7a8);
}

html[data-evo-theme="ink"] body.album-page .album-zodiac-card {
    border: 1px solid rgba(157, 114, 69, 0.34);
    border-radius: 18px;
    background: linear-gradient(165deg, rgba(255, 252, 241, 0.96), rgba(241, 228, 198, 0.92));
    box-shadow:
        0 12px 28px rgba(80, 56, 28, 0.2),
        inset 0 1px 0 rgba(255, 255, 255, 0.55);
}

html[data-evo-theme="ink"] body.album-page .album-zodiac-card:hover {
    transform: translateY(-4px) scale(1.01);
    border-color: rgba(180, 132, 72, 0.55);
    box-shadow:
        0 16px 34px rgba(80, 56, 28, 0.28),
        0 0 18px rgba(255, 220, 130, 0.18);
}

html[data-evo-theme="ink"] body.album-page .album-zodiac-card-foot {
    color: #3f2d18;
}

html[data-evo-theme="ink"] body.album-page .album-zodiac-name {
    font-family: var(--forest-hand);
    color: #3f2d18;
}

html[data-evo-theme="ink"] body.album-page .album-zodiac-progress {
    color: #6a5844;
}

html[data-evo-theme="ink"] body.album-page .album-zodiac-aura {
    background: radial-gradient(circle, rgba(255, 220, 130, 0.28), transparent 68%);
}

html[data-evo-theme="ink"] body.album-page .album-zodiac-veil {
    background: radial-gradient(circle at 50% 45%, rgba(255, 236, 180, 0.35), transparent 62%);
}

html[data-evo-theme="ink"] body.album-page .album-zodiac-banner {
    border: 1px solid rgba(157, 114, 69, 0.34);
    border-radius: 20px;
    background: linear-gradient(160deg, rgba(255, 252, 241, 0.94), rgba(241, 228, 198, 0.9));
    box-shadow: 0 12px 28px rgba(80, 56, 28, 0.18);
}

html[data-evo-theme="ink"] body.album-page .album-zodiac-banner h2 {
    font-family: var(--forest-hand);
    color: #3f2d18;
}

html[data-evo-theme="ink"] body.album-page .album-zodiac-banner p {
    color: #6a5844;
}

html[data-evo-theme="ink"] body.album-page .album-roster-card {
    border: 1px solid rgba(157, 114, 69, 0.28);
    border-radius: 18px;
    background: linear-gradient(160deg, rgba(255, 252, 241, 0.96), rgba(241, 228, 198, 0.9));
    box-shadow: 0 10px 24px rgba(80, 56, 28, 0.18);
}

html[data-evo-theme="ink"] body.album-page .album-roster-card:hover {
    border-color: rgba(180, 132, 72, 0.5);
    box-shadow: 0 14px 30px rgba(80, 56, 28, 0.24), 0 0 16px rgba(255, 220, 130, 0.14);
}

html[data-evo-theme="ink"] body.album-page .album-roster-card-body h3 {
    color: #332619;
}

html[data-evo-theme="ink"] body.album-page .album-roster-role,
html[data-evo-theme="ink"] body.album-page .album-roster-teaser,
html[data-evo-theme="ink"] body.album-page .album-roster-meta span {
    color: #6a5844;
}

html[data-evo-theme="ink"] body.album-page .album-roster-meta span {
    background: rgba(120, 82, 40, 0.1);
}

html[data-evo-theme="ink"] body.album-page .album-roster-badge {
    border-color: rgba(157, 114, 69, 0.45);
    background: rgba(255, 248, 232, 0.92);
    color: #5d4a37;
}

html[data-evo-theme="ink"] body.album-page .album-profile-panel {
    border: 1px solid rgba(157, 114, 69, 0.32);
    border-radius: 20px;
    background: linear-gradient(160deg, rgba(255, 252, 241, 0.96), rgba(241, 228, 198, 0.92));
    color: #3f2d18;
}

html[data-evo-theme="ink"] body.album-page .album-profile-visual {
    border: 1px solid rgba(157, 114, 69, 0.32);
    border-radius: 20px;
    background: #1a1410;
}

html[data-evo-theme="ink"] body.album-page .album-profile-glow {
    background: linear-gradient(transparent, rgba(32, 22, 12, 0.88));
}

html[data-evo-theme="ink"] body.album-page .album-profile h1,
html[data-evo-theme="ink"] body.album-page .album-profile h2,
html[data-evo-theme="ink"] body.album-page .album-profile-status-value {
    color: #332619;
}

html[data-evo-theme="ink"] body.album-page .album-profile-zodiac,
html[data-evo-theme="ink"] body.album-page .album-profile-role,
html[data-evo-theme="ink"] body.album-page .album-profile-desc,
html[data-evo-theme="ink"] body.album-page .album-profile-status-label,
html[data-evo-theme="ink"] body.album-page .album-profile-countdown {
    color: #6a5844;
}

html[data-evo-theme="ink"] body.album-page .album-store-promo {
    border: 1px solid rgba(157, 114, 69, 0.34);
    border-radius: 18px;
    background: linear-gradient(160deg, rgba(255, 252, 241, 0.96), rgba(241, 228, 198, 0.92));
    box-shadow: 0 10px 24px rgba(80, 56, 28, 0.18);
    color: #3f2d18;
}

html[data-evo-theme="ink"] body.album-page .album-store-promo h3 {
    font-family: var(--forest-hand);
    color: #3f2d18;
}

html[data-evo-theme="ink"] body.album-page .album-store-promo p {
    color: #6a5844;
}

@media (max-width: 760px) {
    html[data-evo-theme="ink"] body.games-page .evo-wrap,
    html[data-evo-theme="ink"] body.album-page .album-wrap {
        width: calc(100% - 0.75rem);
        margin-top: 0.55rem;
        border-radius: 22px;
    }

    html[data-evo-theme="ink"] body.games-page .page-hero {
        height: 7.25rem;
    }

    html[data-evo-theme="ink"] body.games-page .page-hero-inner {
        margin-left: 0.65rem;
        padding: 0.62rem 0.82rem;
    }
}

/* Forest wave pages-v2: Friends */
html[data-evo-theme="ink"] body.friends-page .evo-wrap {
    width: min(calc(100% - 1.25rem), 1040px);
    margin: 1rem auto calc(var(--forest-dock-h) + 1rem);
    padding: clamp(1rem, 2vw, 1.55rem);
    border: 1px solid rgba(150, 108, 60, 0.32);
    border-radius: 28px;
    background:
        linear-gradient(180deg, rgba(255, 249, 232, 0.88), rgba(238, 217, 177, 0.8)),
        radial-gradient(circle at 50% 0, rgba(255, 255, 255, 0.34), transparent 48%);
    box-shadow:
        0 22px 50px rgba(45, 31, 16, 0.26),
        inset 0 1px 0 rgba(255, 255, 255, 0.66);
    backdrop-filter: blur(8px);
}

html[data-evo-theme="ink"] body.friends-page .page-hero {
    min-height: 0;
    height: 8.25rem;
    margin-bottom: 1rem;
    border: 1px solid rgba(160, 117, 72, 0.48);
    border-radius: 22px;
    background:
        linear-gradient(145deg, rgba(255, 248, 228, 0.22), rgba(72, 48, 24, 0.26)),
        url('/images/themes/forest/pages-v2/friends-bg.jpg?v=1') center 40% / cover no-repeat;
    box-shadow: 0 14px 30px rgba(73, 50, 25, 0.25);
    color: #352618;
}

html[data-evo-theme="ink"] body.friends-page .page-hero::after {
    background: linear-gradient(95deg, rgba(55, 36, 18, 0.74) 0%, rgba(55, 36, 18, 0.3) 62%, rgba(55, 36, 18, 0.1) 100%);
}

html[data-evo-theme="ink"] body.friends-page .page-hero-inner {
    width: fit-content;
    max-width: min(100%, 40rem);
    margin-left: 0.9rem;
    padding: 0.78rem 1rem;
    border-radius: 18px;
    border: 1px solid rgba(255, 236, 203, 0.62);
    background: rgba(255, 248, 232, 0.84);
    box-shadow: 0 6px 18px rgba(63, 42, 21, 0.26);
}

html[data-evo-theme="ink"] body.friends-page .page-hero-title {
    font-family: var(--forest-hand);
    font-size: 1.3rem;
    font-weight: 400;
    letter-spacing: 0.01em;
    color: #352618;
    text-shadow: none;
}

html[data-evo-theme="ink"] body.friends-page .page-hero-sub {
    margin-top: 0.25rem;
    font-size: 0.86rem;
    line-height: 1.55;
    color: #5d4a37;
    text-shadow: none;
}

html[data-evo-theme="ink"] body.friends-page .friends-add-card,
html[data-evo-theme="ink"] body.friends-page .friends-grid > div,
html[data-evo-theme="ink"] body.friends-page .friends-pending-card,
html[data-evo-theme="ink"] body.friends-page .evo-empty-state,
html[data-evo-theme="ink"] body.friends-page .friends-challenges .evo-card {
    border: 1px solid rgba(157, 114, 69, 0.28);
    border-radius: 20px;
    background: linear-gradient(160deg, rgba(255, 252, 241, 0.96), rgba(241, 228, 198, 0.92));
    box-shadow: 0 10px 22px rgba(80, 56, 28, 0.16);
    color: #453524;
}

html[data-evo-theme="ink"] body.friends-page .meta-section-title {
    font-family: var(--forest-hand);
    font-weight: 400;
    color: #5a3f24;
    border-left-color: rgba(157, 114, 69, 0.55);
}

html[data-evo-theme="ink"] body.friends-page .meta-section-title--cyan,
html[data-evo-theme="ink"] body.friends-page .meta-section-title--purple {
    border-left-color: rgba(157, 114, 69, 0.55);
    color: #5a3f24;
}

html[data-evo-theme="ink"] body.friends-page .friends-add-label,
html[data-evo-theme="ink"] body.friends-page .friends-list-row strong {
    color: #332619;
}

html[data-evo-theme="ink"] body.friends-page .friends-list-row {
    border-bottom-color: rgba(157, 114, 69, 0.22);
}

html[data-evo-theme="ink"] body.friends-page .friends-list-row:hover {
    color: #3f5f2c;
    background: rgba(255, 248, 225, 0.72);
}

html[data-evo-theme="ink"] body.friends-page .friends-chat-log {
    border: 1px solid rgba(157, 114, 69, 0.24);
    border-radius: 16px;
    background: rgba(255, 250, 236, 0.88);
    color: #453524;
}

html[data-evo-theme="ink"] body.friends-page .friends-chat-select,
html[data-evo-theme="ink"] body.friends-page .friends-add-input,
html[data-evo-theme="ink"] body.friends-page .friends-chat-input,
html[data-evo-theme="ink"] body.friends-page .evo-input {
    border-color: rgba(157, 114, 69, 0.32);
    background: rgba(255, 252, 241, 0.96);
    color: #3f2d18;
}

html[data-evo-theme="ink"] body.friends-page .evo-muted,
html[data-evo-theme="ink"] body.friends-page .friends-chat-log .evo-muted {
    color: #6a5844;
}

@media (max-width: 760px) {
    html[data-evo-theme="ink"] body.friends-page .evo-wrap {
        width: calc(100% - 0.75rem);
        margin-top: 0.55rem;
        border-radius: 22px;
        padding-bottom: calc(var(--forest-dock-h) + 1rem);
    }

    html[data-evo-theme="ink"] body.friends-page .page-hero {
        height: 7.25rem;
    }

    html[data-evo-theme="ink"] body.friends-page .page-hero-inner {
        margin-left: 0.65rem;
        padding: 0.62rem 0.82rem;
    }
}

/* Forest wave-29: page coverage — profile, onboarding, legal + mobile polish */
html[data-evo-theme="ink"] body.profile-shell,
html[data-evo-theme="ink"] body.onboarding-page,
html[data-evo-theme="ink"] body.legal-page {
    min-height: 100dvh;
    color: #3e2d1c;
    background-color: #20321f;
    background-image:
        linear-gradient(180deg, rgba(255, 247, 225, 0.12), rgba(14, 29, 17, 0.24)),
        var(--forest-page-bg);
    background-size: cover;
    background-position: center;
    background-attachment: fixed;
}

html[data-evo-theme="ink"] body.profile-shell { --forest-page-bg: url('/images/themes/forest/pages-v2/stats-bg.png?v=1'); }
html[data-evo-theme="ink"] body.onboarding-page { --forest-page-bg: url('/images/themes/forest/pages-v2/school-bg.png?v=1'); }

/* Tester #002: onboarding headings/intro used evo-cyan / evo-muted (tuned for the
   dark theme), which rendered as near-white on the light parchment panel and was
   unreadable. Force readable dark ink on the onboarding panel. */
html[data-evo-theme="ink"] body.onboarding-page .onboarding-wrap h1,
html[data-evo-theme="ink"] body.onboarding-page .onboarding-wrap .evo-cyan,
html[data-evo-theme="ink"] body.onboarding-page .onboarding-step-body h3 {
    color: #103a2b;
    text-shadow: none;
}
html[data-evo-theme="ink"] body.onboarding-page .onboarding-wrap p,
html[data-evo-theme="ink"] body.onboarding-page .onboarding-wrap li,
html[data-evo-theme="ink"] body.onboarding-page .onboarding-wrap .evo-muted,
html[data-evo-theme="ink"] body.onboarding-page .onboarding-step-body p {
    color: #46331f;
}
html[data-evo-theme="ink"] body.legal-page { --forest-page-bg: url('/images/themes/forest/pages-v2/lounge-bg.jpg?v=1'); }

html[data-evo-theme="ink"] body.profile-shell::before,
html[data-evo-theme="ink"] body.onboarding-page::before,
html[data-evo-theme="ink"] body.legal-page::before {
    content: '';
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background:
        radial-gradient(ellipse 56% 48% at 50% 42%, rgba(255, 246, 210, 0.38), transparent 68%),
        linear-gradient(90deg, rgba(10, 25, 13, 0.28), transparent 18%, transparent 82%, rgba(10, 25, 13, 0.28));
}

html[data-evo-theme="ink"] body.profile-shell .evo-wrap,
html[data-evo-theme="ink"] body.profile-shell .profile-page,
html[data-evo-theme="ink"] body.onboarding-page .onboarding-wrap,
html[data-evo-theme="ink"] body.legal-page .page-content {
    position: relative;
    z-index: 1;
}

html[data-evo-theme="ink"] body.profile-shell .profile-hero,
html[data-evo-theme="ink"] body.profile-shell .profile-private,
html[data-evo-theme="ink"] body.profile-shell .profile-section,
html[data-evo-theme="ink"] body.onboarding-page .onboarding-wrap,
html[data-evo-theme="ink"] body.legal-page .legal-doc {
    border: 1px solid rgba(157, 114, 69, 0.32);
    border-radius: 22px;
    background:
        linear-gradient(180deg, rgba(255, 249, 232, 0.9), rgba(238, 217, 177, 0.84)),
        radial-gradient(circle at 50% 0, rgba(255, 255, 255, 0.28), transparent 48%);
    box-shadow:
        0 18px 42px rgba(45, 31, 16, 0.22),
        inset 0 1px 0 rgba(255, 255, 255, 0.58);
}

/* Tester #006: on the light parchment profile panel the name/headings/body text
   inherited the dark-theme near-white color and were unreadable. Force readable ink. */
html[data-evo-theme="ink"] body.profile-shell .profile-hero__name,
html[data-evo-theme="ink"] body.profile-shell .profile-hero__body,
html[data-evo-theme="ink"] body.profile-shell .profile-section h2,
html[data-evo-theme="ink"] body.profile-shell .profile-section h3,
html[data-evo-theme="ink"] body.profile-shell .profile-section p,
html[data-evo-theme="ink"] body.profile-shell .profile-section li {
    color: #2a1f12;
    text-shadow: none;
}

html[data-evo-theme="ink"] body.onboarding-page .onboarding-wrap {
    width: min(calc(100% - 1.25rem), 720px);
    margin: 0.85rem auto calc(var(--forest-dock-h) + 1rem);
    padding: clamp(1rem, 2.4vw, 1.5rem);
}

html[data-evo-theme="ink"] body.legal-page .page-content {
    width: min(calc(100% - 1.25rem), 860px);
    margin: 0.75rem auto calc(var(--forest-dock-h) + 1rem);
    padding: clamp(1rem, 2.4vw, 1.45rem);
}

html[data-evo-theme="ink"] body.profile-shell .evo-wrap {
    width: min(calc(100% - 1.25rem), 1100px);
    margin: 0.75rem auto calc(var(--forest-dock-h) + 1rem);
}

@media (min-width: 981px) {
    html[data-evo-theme="ink"] body.dojo-page .dojo-review-boards {
        max-height: 185px;
        overflow: hidden;
    }
}

@media (max-width: 760px) {
    html[data-evo-theme="ink"] body.lounge-page .evo-topbar,
    html[data-evo-theme="ink"] body.go-nexus-page .evo-topbar,
    html[data-evo-theme="ink"] body.profile-shell .evo-topbar,
    html[data-evo-theme="ink"] body.onboarding-page .evo-topbar {
        width: calc(100% - 0.75rem);
        margin-top: 0.35rem;
        border-radius: 18px;
    }

    html[data-evo-theme="ink"] body.lounge-page .evo-wrap,
    html[data-evo-theme="ink"] body.go-nexus-page .evo-wrap,
    html[data-evo-theme="ink"] body.profile-shell .evo-wrap,
    html[data-evo-theme="ink"] body.profile-shell .profile-page--guest,
    html[data-evo-theme="ink"] body.onboarding-page .onboarding-wrap,
    html[data-evo-theme="ink"] body.legal-page .page-content {
        width: calc(100% - 0.75rem);
        margin-top: 0.55rem;
        border-radius: 22px;
        padding-bottom: calc(var(--forest-dock-h) + 1rem);
    }

    html[data-evo-theme="ink"] body.stats-page .page-hero {
        height: 7.25rem;
    }

    html[data-evo-theme="ink"] body.lounge-page .lounge-forest-shell,
    html[data-evo-theme="ink"] body.go-nexus-page .lounge-forest-shell {
        width: calc(100% - 0.75rem);
        margin-inline: auto;
        border-radius: 22px;
    }

    html[data-evo-theme="ink"] body.dojo-page .dojo-review-boards {
        grid-template-columns: 1fr !important;
        max-height: none !important;
        overflow: visible !important;
        width: calc(100% - 0.75rem) !important;
    }
}

/* Forest wave-30: myroom purity, scroll/dock polish, tablet hub */
html[data-evo-theme="ink"] body.myroom-body {
    background-color: #000 !important;
    background-image: none !important;
}

html[data-evo-theme="ink"] body.myroom-body::before,
html[data-evo-theme="ink"] body.myroom-body::after {
    content: none !important;
    display: none !important;
}

html[data-evo-theme="ink"] body.evo-auth-page {
    overflow-x: hidden;
}

@media (max-width: 760px) {
    html[data-evo-theme="ink"] {
        scroll-padding-bottom: calc(var(--forest-dock-h) + env(safe-area-inset-bottom, 0px) + 1.25rem);
    }

    html[data-evo-theme="ink"] body.evo-body:not(.hub-page):not(.myroom-body):not(.pa-body):not(.play-shell):not(.arena-shell) .evo-main {
        padding-bottom: calc(var(--forest-dock-h) + env(safe-area-inset-bottom, 0px) + 0.35rem);
    }

    html[data-evo-theme="ink"] body.onboarding-page .onboarding-wrap {
        margin-bottom: calc(var(--forest-dock-h) + env(safe-area-inset-bottom, 0px) + 1.35rem);
    }

    html[data-evo-theme="ink"] body.legal-page .page-content {
        margin-bottom: calc(var(--forest-dock-h) + env(safe-area-inset-bottom, 0px) + 1.35rem);
    }

    html[data-evo-theme="ink"] body.evo-auth-page {
        padding-bottom: max(1.25rem, env(safe-area-inset-bottom));
    }

    html[data-evo-theme="ink"] body.evo-auth-page .forest-chrome--standalone {
        display: none !important;
    }
}

/* Forest wave-33: inner pages 390px pass (school/store/dojo/friends/stats) */
@media (max-width: 480px) {
    html[data-evo-theme="ink"] body.evo-body:not(.hub-page):not(.play-shell):not(.arena-shell) {
        overflow-x: clip;
    }

    html[data-evo-theme="ink"] body.evo-body:not(.hub-page):not(.myroom-body) .evo-wrap,
    html[data-evo-theme="ink"] body.evo-body:not(.hub-page):not(.myroom-body) .page-content {
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
    }

    html[data-evo-theme="ink"] body.school-page .evo-wrap,
    html[data-evo-theme="ink"] body.store-page .page-content,
    html[data-evo-theme="ink"] body.stats-page .evo-wrap,
    html[data-evo-theme="ink"] body.friends-page .evo-wrap,
    html[data-evo-theme="ink"] body.dojo-page .fusion-container {
        padding-left: max(0.72rem, env(safe-area-inset-left));
        padding-right: max(0.72rem, env(safe-area-inset-right));
    }

    html[data-evo-theme="ink"] body.stats-page .stats-match-row {
        flex-direction: column;
        align-items: stretch;
        gap: 0.65rem;
    }

    html[data-evo-theme="ink"] body.stats-page .stats-match-row__actions {
        display: flex;
        flex-wrap: wrap;
        gap: 0.45rem;
    }

    html[data-evo-theme="ink"] body.stats-page .stats-match-row__actions .evo-btn,
    html[data-evo-theme="ink"] body.stats-page .stats-match-row__actions button {
        flex: 1 1 calc(50% - 0.25rem);
        min-width: 0;
        justify-content: center;
    }

    html[data-evo-theme="ink"] body.store-page .store-vip-compare {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    html[data-evo-theme="ink"] body.store-page .store-vip-compare__table {
        min-width: 280px;
        font-size: 0.78rem;
    }

    html[data-evo-theme="ink"] body.store-page .store-vip-compare__table th,
    html[data-evo-theme="ink"] body.store-page .store-vip-compare__table td {
        padding: 0.3rem 0.35rem;
    }

    html[data-evo-theme="ink"] body.store-page .store-grid--vip .store-vip-plan-label,
    html[data-evo-theme="ink"] body.store-page .store-grid--tokens .evo-card {
        word-break: break-word;
    }

    html[data-evo-theme="ink"] body.friends-page .friends-list-row {
        gap: 0.55rem;
    }

    html[data-evo-theme="ink"] body.friends-page .friends-chat-log {
        max-height: min(42vh, 320px);
    }

    html[data-evo-theme="ink"] body.dojo-page .dojo-toolbar {
        flex-wrap: wrap;
        justify-content: center;
        border-radius: 20px !important;
        padding: 0.7rem 0.75rem;
    }

    html[data-evo-theme="ink"] body.dojo-page .dojo-toolbar .btn-action {
        flex: 1 1 calc(50% - 0.35rem);
        min-width: 7.5rem;
        text-align: center;
    }

    html[data-evo-theme="ink"] body.dojo-page .dojo-review-boards {
        padding: 0.65rem;
        gap: 0.65rem;
    }

    html[data-evo-theme="ink"] body.school-page .school-entry-card,
    html[data-evo-theme="ink"] body.school-page .school-video-level-card {
        padding: 0.85rem 0.9rem;
    }

    html[data-evo-theme="ink"] body.school-page .school-hall-banner {
        min-height: 112px;
        padding: 0.85rem 1rem;
    }

    html[data-evo-theme="ink"] .evo-topbar {
        padding-left: max(0.65rem, env(safe-area-inset-left));
        padding-right: max(0.65rem, env(safe-area-inset-right));
        gap: 0.45rem;
    }

    html[data-evo-theme="ink"] .evo-topbar-title {
        font-size: 0.92rem;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        min-width: 0;
    }

    html[data-evo-theme="ink"] .evo-topbar-end .evo-hud {
        gap: 0.35rem;
    }

    html[data-evo-theme="ink"] .evo-hud-chip {
        font-size: 0.72rem;
        padding: 0.28rem 0.45rem;
    }
}

/* Forest wave-34: onboarding/legal/album/profile/achievements 390px */
@media (max-width: 480px) {
    html[data-evo-theme="ink"] body.onboarding-page .onboarding-wrap,
    html[data-evo-theme="ink"] body.legal-page .page-content,
    html[data-evo-theme="ink"] body.legal-page .legal-doc {
        padding-left: max(0.85rem, env(safe-area-inset-left));
        padding-right: max(0.85rem, env(safe-area-inset-right));
        overflow-x: clip;
    }

    html[data-evo-theme="ink"] body.onboarding-page .onboarding-step-body,
    html[data-evo-theme="ink"] body.legal-page .legal-doc {
        font-size: 0.92rem;
        line-height: 1.55;
    }

    html[data-evo-theme="ink"] body.onboarding-page .onboarding-actions {
        flex-direction: column;
        align-items: stretch;
        gap: 0.55rem;
    }

    html[data-evo-theme="ink"] body.onboarding-page .onboarding-actions .evo-btn {
        width: 100%;
    }

    html[data-evo-theme="ink"] body.legal-page .legal-contact-form .evo-form-grid {
        grid-template-columns: 1fr;
    }

    html[data-evo-theme="ink"] body.album-page .evo-wrap {
        padding-left: max(0.72rem, env(safe-area-inset-left));
        padding-right: max(0.72rem, env(safe-area-inset-right));
    }

    html[data-evo-theme="ink"] body.profile-shell .profile-page,
    html[data-evo-theme="ink"] body.profile-shell .profile-compose {
        padding-left: max(0.72rem, env(safe-area-inset-left));
        padding-right: max(0.72rem, env(safe-area-inset-right));
    }

    html[data-evo-theme="ink"] body.profile-shell .profile-compose__actions {
        flex-direction: column;
        align-items: stretch;
    }

    html[data-evo-theme="ink"] body.profile-shell .profile-compose__actions .evo-btn {
        width: 100%;
    }

    html[data-evo-theme="ink"] body.evo-body .achievements-grid {
        grid-template-columns: 1fr;
    }
}

/* Forest wave-35: guild + season + replay narrow pass (390px) */
@media (max-width: 480px) {
    html[data-evo-theme="ink"] body.guild-page .evo-wrap,
    html[data-evo-theme="ink"] body.friends-page .evo-wrap {
        padding-left: max(0.72rem, env(safe-area-inset-left));
        padding-right: max(0.72rem, env(safe-area-inset-right));
    }

    html[data-evo-theme="ink"] body.guild-page .guild-section-nav {
        gap: 0.35rem;
        padding: 0.35rem;
    }

    html[data-evo-theme="ink"] body.guild-page .guild-section-btn {
        flex: 1 1 calc(50% - 0.2rem);
        min-width: 0;
        text-align: center;
        font-size: 0.72rem;
        padding: 0.38rem 0.55rem;
    }

    html[data-evo-theme="ink"] body.guild-page .guild-card,
    html[data-evo-theme="ink"] body.guild-page .guild-member-row {
        word-break: break-word;
    }

    html[data-evo-theme="ink"] body.friends-page .friends-add-card form {
        flex-direction: column;
        align-items: stretch;
    }

    html[data-evo-theme="ink"] body.friends-page .friends-add-card .evo-btn {
        width: 100%;
    }
}

/* Academy legal pages opt out of legacy Forest lounge backgrounds. */
html[data-evo-theme="ink"] body.legal-page.legal-page--academy {
    min-height: 100dvh;
    color: #24382f;
    background:
        radial-gradient(70% 48% at 50% 0%, rgba(63, 99, 80, 0.12), transparent 70%),
        linear-gradient(180deg, #fbfaf7 0%, #f9f7f3 46%, #eef2e9 100%);
    background-attachment: scroll;
}

html[data-evo-theme="ink"] body.legal-page.legal-page--academy::before,
html[data-evo-theme="ink"] body.legal-page.legal-page--academy::after {
    display: none;
}

html[data-evo-theme="ink"] body.legal-page.legal-page--academy .legal-academy-top,
html[data-evo-theme="ink"] body.legal-page.legal-page--academy .page-content {
    position: relative;
    z-index: 1;
}

html[data-evo-theme="ink"] body.legal-page.legal-page--academy .page-content {
    width: min(calc(100% - 2rem), 760px);
    margin: 0 auto;
    padding: 1rem 0 2.5rem;
}

html[data-evo-theme="ink"] body.legal-page.legal-page--academy .legal-doc {
    border: 1px solid rgba(63, 99, 80, 0.16);
    border-radius: 26px;
    background:
        linear-gradient(180deg, rgba(255, 253, 248, 0.97), rgba(249, 247, 243, 0.9)),
        radial-gradient(circle at 50% 0, rgba(63, 99, 80, 0.08), transparent 48%);
    box-shadow: 0 22px 54px -34px rgba(63, 99, 80, 0.42);
}

html[data-evo-theme="ink"] body.legal-page.legal-page--academy .legal-doc__title,
html[data-evo-theme="ink"] body.legal-page.legal-page--academy .legal-doc__heading {
    color: #3f6350;
    text-shadow: none;
}

html[data-evo-theme="ink"] body.legal-page.legal-page--academy .legal-doc__intro,
html[data-evo-theme="ink"] body.legal-page.legal-page--academy .legal-doc__p,
html[data-evo-theme="ink"] body.legal-page.legal-page--academy .evo-muted {
    color: #526257;
    text-shadow: none;
}
