/* 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;
}

/* ── 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) {
    padding-bottom: calc(var(--forest-dock-h) + max(1.2rem, env(safe-area-inset-bottom)));
}

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.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;
}

/* Fairy atmosphere on shared pages (My Room keeps its own art direction) */
html[data-evo-theme="ink"] body.evo-body:not(.myroom-body) {
    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)::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"] .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(.evo-modal):not(.dojo-archive-modal) {
    position: relative;
    z-index: 1;
}

/* ── 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,
html[data-evo-theme="ink"] .puzzle-card {
    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(255, 239, 203, 0.2);
    background: rgba(8, 17, 11, 0.62);
}

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) {
    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)::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 .evo-gold {
    color: #a56d2e;
}

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-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.24);
    background: linear-gradient(160deg, rgba(255, 252, 241, 0.9), rgba(242, 230, 202, 0.86));
}

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-unsolved {
    color: #655340;
    background: rgba(255, 249, 235, 0.76);
    border-color: rgba(157, 114, 69, 0.22);
}

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;
}

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) {
    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)::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)::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 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.28);
    background: linear-gradient(160deg, rgba(255, 252, 242, 0.95), rgba(244, 231, 203, 0.92));
    box-shadow: 0 8px 18px rgba(80, 56, 28, 0.14);
    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.21;
    pointer-events: none;
}

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: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;
}

html[data-evo-theme="ink"] body.school-page .p-unsolved {
    color: #5f4d39;
    border-color: rgba(157, 114, 69, 0.24);
    background: rgba(255, 250, 239, 0.82);
}

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)::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;
}

@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)::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;
    }
}
