
.site-footer { background: var(--primary-color); color: #d5dcec; border-top: 4px solid var(--accent-color); }
.site-footer :focus-visible { outline-color: var(--accent-color); }
.footer-grid { display: grid; grid-template-columns: 1.3fr 0.8fr 1.2fr 1.2fr; gap: 2rem; padding-top: 3rem; padding-bottom: 2.5rem; }
.site-footer h2, .site-footer h3 { color: var(--secondary-color); }
.footer-brand { font-size: 1.3rem; }
.site-footer h3 { font-size: 1rem; letter-spacing: 0.05em; margin-top: 1.25rem; }
.footer-column h3:first-child { margin-top: 0; }
.site-footer a { color: var(--accent-color); text-decoration: none; }
.site-footer a:hover { text-decoration: underline; }
.footer-list { list-style: none; padding: 0; margin: 0; }
.footer-list li { margin-bottom: 0.5rem; }
.footer-news span { display: block; font-size: 0.85rem; color: #aab5cf; }
.footer-emails a { display: block; word-break: break-all; }
.footer-emails strong { display: block; }
.footer-visitor-stat { display: grid; justify-items: start; gap: .12rem; width: fit-content; margin-top: 1.8rem; padding: .4rem 0 .4rem .75rem; border-left: 2px solid var(--accent-color); background: transparent; }
.footer-visitor-stat span { color: #e9d58e; font-size: .72rem; font-weight: 750; letter-spacing: .13em; line-height: 1.25; }
.footer-visitor-stat strong { color: #fff; font-size: 1.45rem; font-weight: 750; line-height: 1.15; font-variant-numeric: tabular-nums; }
.footer-bottom { position: relative; background: #000a1f; padding: 1rem 0; font-size: 0.9rem; }
.footer-bottom::before {
    content: "";
    position: absolute;
    top: -14px;
    left: 0;
    width: 100%;
    height: 16px;
    pointer-events: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='72' height='18' viewBox='0 0 72 18'%3E%3Cpath fill='%233e7139' d='M3 18Q7 11 6 5q5 7 5 13Q14 8 18 3q-1 8-1 15Q22 9 27 7q-3 6-3 11Q30 10 36 4q-2 8-4 14Q38 10 44 8q-2 5-4 10Q47 11 54 5q-2 7-5 13Q55 12 62 9q-3 5-5 9Z'/%3E%3Cpath fill='%237ca34d' d='M8 18Q10 11 9 7q4 6 4 11Q18 9 22 6q-2 6-2 12Q27 11 32 8q-2 5-2 10Q36 9 41 6q-1 6-3 12Q44 12 49 9q-1 5-2 9Q53 12 58 8q-2 5-3 10Z'/%3E%3Cpath fill='%23a5b85a' d='M14 18q2-5 2-8 3 4 2 8m12 0q2-6 6-9-1 5-2 9m12 0q2-5 5-7-1 4-2 7'/%3E%3Cpath fill='%23345d32' d='M2 17q17-3 34 0 17-3 34 0v1H2Z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: 7% bottom, 38% bottom, 70% bottom, 94% bottom;
    background-size: 58px 15px, 48px 13px, 64px 16px, 52px 14px;
}
.footer-bottom-inner { position: relative; }
.footer-copyright { display: block; }
.footer-cat { --cat-width: 60px; position: absolute; top: -55px; left: 0; z-index: 2; display: block; width: var(--cat-width); height: 42px; padding: 0; border: 0; background: transparent; color: inherit; cursor: pointer; perspective: 140px; animation: footer-cat-route 24s linear infinite; }
.footer-cat:focus-visible { outline: 2px solid #d8ad42; outline-offset: 2px; border-radius: 4px; }
.footer-cat.is-following { animation: none; transform: rotateY(var(--cat-turn, 0deg)); transition: transform .24s ease; }
.footer-cat svg { display: block; width: var(--cat-width); height: 42px; overflow: visible; }
.footer-cat-walking,.footer-cat-sitting { fill: #f2e5d2; stroke: #49332f; stroke-width: .8; stroke-linecap: round; stroke-linejoin: round; }
.footer-cat .cat-body,.footer-cat .cat-head { fill: #f2e5d2; }
.footer-cat .cat-point,.footer-cat .cat-mask { fill: #49332f; stroke: #49332f; }
.footer-cat .cat-ear-inner { fill: #b9857c; stroke: #49332f; stroke-width: .65; }
.footer-cat .cat-tail,.footer-cat .cat-sit-tail { fill: none; stroke: #49332f; stroke-width: 3; }
.footer-cat .cat-tail-tip,.footer-cat .cat-sit-tail-tip { fill: none; stroke: #49332f; stroke-width: 3; stroke-linecap: round; }
.footer-cat-walking { animation: footer-cat-walk-pose 24s linear infinite; }
.footer-cat-sitting { opacity: 0; animation: footer-cat-sit-pose 24s linear infinite; }
.footer-cat-walking .cat-body { animation: cat-walk-bob .42s ease-in-out infinite alternate; transform-box: fill-box; transform-origin: center bottom; }
.footer-cat-walking .cat-head { animation: cat-head-bob .42s ease-in-out infinite alternate; transform-box: fill-box; transform-origin: center bottom; }
.footer-cat-walking .cat-tail { animation: cat-tail-sway 1.4s ease-in-out infinite alternate; transform-box: fill-box; transform-origin: right bottom; }
.footer-cat-sitting .cat-body { animation: cat-breathe 3s ease-in-out infinite alternate; transform-box: fill-box; transform-origin: center bottom; }
.footer-cat-sitting .cat-tail { animation: cat-sit-tail-sway 2.8s ease-in-out infinite alternate; transform-box: fill-box; transform-origin: right bottom; }
.footer-cat .cat-eye { fill: #73c5e8; stroke: #d7f3ff; stroke-width: .35; }
.footer-cat .cat-pupil { fill: #17313a; stroke: none; }
.footer-cat .cat-nose { fill: #bd7774; stroke: #49332f; stroke-width: .45; }
.footer-cat .cat-whisker { fill: none; stroke: #f2e5d2; stroke-width: .35; }
.footer-cat .cat-collar { fill: none; stroke: #b68b37; stroke-width: 1; }
.footer-cat .cat-bell { fill: #d8ad42; stroke: #fff0bd; stroke-width: .45; }
.footer-cat .cat-leg { fill: #f2e5d2; stroke-width: .8; transform-box: fill-box; transform-origin: 50% 0; }
.footer-cat .cat-sit-leg { stroke-width: .8; }
.footer-cat-walking .cat-leg-one,.footer-cat-walking .cat-leg-three { animation: footer-cat-step .42s ease-in-out infinite alternate; }
.footer-cat-walking .cat-leg-two,.footer-cat-walking .cat-leg-four { animation: footer-cat-step .42s ease-in-out infinite alternate-reverse; }
.footer-cat .cat-sleep { fill: #d8ad42; stroke: none; font: 700 7px var(--body-font); opacity: 0; animation: footer-cat-snooze 24s linear infinite; }
.footer-cat { --cat-width: 60px; }
.footer-cat-walking.rice-farmer { opacity: 1; animation: none; }
.footer-cat .rice-water { fill: none; stroke: #83c7d1; stroke-width: 1; stroke-linecap: round; }
.footer-cat .rice-shoot,.footer-cat .farmer-seedling { fill: none; stroke: #93c65d; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.footer-cat .farmer-body { fill: #39865a; stroke: #244c3b; stroke-width: 1; }
.footer-cat .farmer-leg,.footer-cat .farmer-arm { fill: none; stroke: #e5bd8c; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
.footer-cat .farmer-head { fill: #bd815d; stroke: #684b3b; stroke-width: .8; }
.footer-cat .farmer-hat { fill: #d6a949; stroke: #755a2e; stroke-width: .8; }
.footer-cat { --cat-width: 80px; height: 52px; top: -64px; }
.footer-cat svg { height: 52px; }
.footer-cat .farmer-body { fill: #34734e; stroke-width: 1.2; }
.footer-cat .farmer-trousers { fill: #6b5544; stroke: #49392f; stroke-width: 1.2; stroke-linejoin: round; }
.footer-cat .farmer-arm { stroke-width: 2.6; }
.footer-cat .farmer-head { stroke-width: 1; }
.footer-cat .farmer-hat { stroke-width: 1; }
.footer-cat .planting-arm { transform-box: view-box; transform-origin: 31px 22px; animation: rice-plant-reach 7.2s ease-in-out infinite; }
.footer-cat .carried-seedling { transform-box: view-box; transform-origin: 13px 43px; animation: rice-seed-place 7.2s ease-in-out infinite; }
.footer-cat .new-seedling { opacity: 0; }
.footer-cat .new-seedling { animation: rice-seed-plant 7.2s linear infinite; }
@keyframes rice-plant-reach { 0%,8%,25%,38%,51%,64%,77%,100% {transform:rotate(0)} 14%,20%,44%,46%,70%,72% {transform:rotate(28deg)} }
@keyframes rice-seed-place { 0%,17%,39%,61%,83%,100% {transform:translate(0,0);opacity:1} 20%,42%,64%,86% {transform:translate(2px,1px);opacity:0} }
@keyframes rice-seed-plant { 0%,23% {opacity:0} 24%,100% {opacity:1} }
.footer-cat .seedling-two { animation-name: rice-seed-plant-two; }
.footer-cat .seedling-three { animation-name: rice-seed-plant-three; }
@keyframes rice-seed-plant-two { 0%,47% {opacity:0} 48%,100% {opacity:1} }
@keyframes rice-seed-plant-three { 0%,71% {opacity:0} 72%,100% {opacity:1} }
.footer-field { position:absolute; z-index:1; top:-16px; left:0; right:0; height:16px; pointer-events:none; }
.footer-rice { position:absolute; bottom:8px; width:12px; height:0; opacity:0; border-left:1px solid #83b65a; transform-origin:bottom center; transition:height .5s ease,opacity .5s ease; }
.footer-rice::before,.footer-rice::after { content:""; position:absolute; bottom:3px; width:5px; height:7px; border-top:1px solid #9dc968; }
.footer-rice::before { right:0; transform:rotate(-38deg); }
.footer-rice::after { left:0; transform:rotate(38deg); }
.footer-rice.is-planted { height:10px; opacity:1; }
.footer-rice.is-ripe { height:17px; border-color:#b5aa58; }
.footer-rice.is-ripe::before,.footer-rice.is-ripe::after { border-color:#d2bd64; }
.footer-rice.is-harvested { height:0; opacity:0; }
.footer-cat { --cat-width:44px; position:absolute; z-index:2; top:-64px; left:0; width:44px; height:56px; cursor:default; perspective:none; animation:none; transform:scaleX(1); transform-origin:center bottom; transition:none; }
.footer-cat svg { width:44px; height:56px; overflow:visible; }
.footer-cat .farmer-body,.footer-cat .farmer-trousers { stroke-linejoin:round; stroke-linecap:round; }
.footer-cat .farmer-arm { fill:none; stroke:#e5bd8c; stroke-width:2.3; stroke-linecap:round; stroke-linejoin:round; }
.footer-cat .farmer-body { fill:#28794d; stroke:#244c3b; stroke-width:1; }
.footer-cat .farmer-trousers { fill:#625044; stroke:#49392f; stroke-width:1; }
.footer-cat .farmer-head { fill:#bd815d; stroke:#684b3b; stroke-width:.8; }
.footer-cat .farmer-hat { fill:#d6a949; stroke:#755a2e; stroke-width:.8; }
.footer-cat .basket-strap { fill:none; stroke:#b78a58; stroke-width:1.6; stroke-linecap:round; }
.footer-cat .farmer-basket { fill:#9b673b; stroke:#523c2e; stroke-width:1; stroke-linejoin:round; }
.footer-cat .basket-rim { fill:none; stroke:#d0a261; stroke-width:1.5; stroke-linecap:round; }
.footer-cat .basket-seed { fill:none; stroke:#9fca62; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; opacity:0; transition:opacity .25s ease; }
.footer-cat .basket-seed.is-in-basket { opacity:1; }
.farmer-reward { position:absolute; top:-8px; left:-8px; z-index:3; color:#ffdb63; font-size:12px; font-weight:800; line-height:1; white-space:nowrap; opacity:0; text-shadow:0 1px 3px #000; }
.footer-cat.is-celebrating { animation:farmer-happy-jump .65s ease-in-out infinite alternate; }
.footer-cat.is-celebrating .farmer-reward { opacity:1; animation:farmer-reward-pop .65s ease-in-out infinite alternate; }
.footer-cat .leg-front,.footer-cat .leg-back { transform-box:fill-box; transform-origin:top center; animation:farmer-step .48s ease-in-out infinite alternate; }
.footer-cat .leg-back { animation-direction:alternate-reverse; }
.footer-cat .arm-front,.footer-cat .arm-back { transform-box:fill-box; transform-origin:top center; animation:farmer-swing .48s ease-in-out infinite alternate; }
.footer-cat .arm-back { animation-direction:alternate-reverse; }
.footer-cat.is-returning { transform:scaleX(-1); }
.footer-cat.is-working .arm-front { animation:farmer-plant .75s ease-in-out infinite alternate; }
.footer-cat.is-working .leg-front,.footer-cat.is-working .leg-back,.footer-cat.is-resting .leg-front,.footer-cat.is-resting .leg-back { animation:none; }
.footer-cat.is-resting .arm-front { animation:farmer-plant .75s ease-in-out infinite alternate; }
@keyframes farmer-step { to {transform:rotate(18deg)} }
@keyframes farmer-swing { to {transform:rotate(-14deg)} }
@keyframes farmer-plant { to {transform:rotate(36deg) translateY(2px)} }
@keyframes farmer-happy-jump { to {translate:0 -10px} }
@keyframes farmer-reward-pop { to {translate:0 -5px;scale:1.08} }
@keyframes footer-cat-route {0%,8% {left:0;transform:rotateY(0)}38% {left:calc(100% - var(--cat-width));transform:rotateY(0)}43% {left:calc(100% - var(--cat-width));transform:rotateY(90deg)}48%,50% {left:calc(100% - var(--cat-width));transform:rotateY(180deg)}80% {left:0;transform:rotateY(180deg)}84% {left:0;transform:rotateY(270deg)}88%,100% {left:0;transform:rotateY(360deg)}}
@keyframes footer-cat-walk-pose {0%,8%,38%,50%,80%,88%,100% {opacity:0}9%,37%,51%,79% {opacity:1}}
@keyframes footer-cat-sit-pose {0%,8%,38%,50%,80%,88%,100% {opacity:1}9%,37%,51%,79% {opacity:0}}
@keyframes footer-cat-step {to {transform:rotate(13deg)}}
@keyframes cat-walk-bob {to {transform:translateY(-1px) scaleY(.985)}}
@keyframes cat-head-bob {to {transform:translateY(.7px)}}
@keyframes cat-tail-sway {to {transform:rotate(12deg)}}
@keyframes cat-breathe {to {transform:scaleY(1.025)}}
@keyframes cat-sit-tail-sway {to {transform:rotate(-8deg)}}
@keyframes footer-cat-snooze {0%,39%,48%,100% {opacity:0}42%,46% {opacity:1}}

@media (max-width: 900px) { .footer-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .footer-grid { grid-template-columns: 1fr; } }
@media (max-width: 560px) {.footer-cat {--cat-width:48px;animation-duration:28s;}}
@media (max-width: 560px) {.footer-cat {--cat-width:64px;}}
@media (max-width:560px) {.footer-cat {width:40px;height:56px}.footer-cat svg {width:40px}}
@media (prefers-reduced-motion: reduce) {.footer-cat .leg-front,.footer-cat .leg-back,.footer-cat .arm-front,.footer-cat .arm-back,.footer-cat.is-working .arm-front,.footer-cat.is-resting .arm-front,.footer-cat.is-celebrating,.footer-cat.is-celebrating .farmer-reward {animation:none;}.footer-rice,.footer-cat .basket-seed {transition:none;}}
@media (prefers-reduced-motion: reduce) {.footer-cat,.footer-cat-walking,.footer-cat-sitting,.footer-cat .cat-leg,.footer-cat .cat-sleep,.footer-cat .cat-body,.footer-cat .cat-head,.footer-cat .cat-tail,.footer-cat .planting-arm,.footer-cat .carried-seedling,.footer-cat .new-seedling {animation:none;transition:none;}.footer-cat-walking {opacity:1;}.footer-cat-sitting {opacity:0;}.footer-cat .cat-sleep,.footer-cat .carried-seedling {opacity:0;}.footer-cat .new-seedling {opacity:1;}}

.back-to-top {position: fixed;right: 1.5rem;bottom: 1.5rem;z-index: 100;display: grid;place-items: center;width: 48px;height: 48px;padding: 0;border: 1px solid rgba(255,255,255,0.4);border-radius: 50%;background: var(--primary-color);color: #fff;box-shadow: 0 6px 20px rgba(107,15,26,0.25);cursor: pointer;transition: background 0.2s, transform 0.2s;}
.back-to-top[hidden] {display: none;}
.back-to-top:hover {background: var(--primary-light);transform: translateY(-3px);}
@media (max-width: 600px) {.back-to-top {right: 1rem;bottom: 1rem;}}
@media (prefers-reduced-motion: reduce) {.back-to-top {transition: none;}}
