/* Moonlit garden art direction. Gameplay geometry remains in the existing layout. */
html:has(body.moonlit){background:#123e3a}
body.moonlit{background:#123e3a;color:#f4edda;background-image:linear-gradient(#0d302d35,#0b2c2825),url('assets/moon-garden-v1.jpg');background-position:center;background-size:cover;background-attachment:fixed;min-height:100dvh;--muted:#c0d2c5;--line:#c6d8bf30}
.moonlit .site-header{border-color:#dfce9d25;background:#0b302a55}.moonlit .brand{color:#fff1d4;text-shadow:0 2px 10px #06231e}.moonlit .brand em{color:#dfbd70}.moonlit .brand small{color:#c0d2c5}.moonlit .brand-mark{background:linear-gradient(140deg,#d7bb77,#987034);color:#143e33;border:1px solid #f0dca4;box-shadow:0 3px 0 #5b4b29,0 5px 12px #001b1a55}.moonlit .brand-mark span{color:#fff3c9}
.moonlit .eyebrow{color:#d3bd85}.moonlit .intro h1{color:#fff3df;text-shadow:0 3px 25px #001e1c}.moonlit h1 em{color:#d4ba7f}.moonlit .intro p,.moonlit .small-note,.moonlit .play-tip,.moonlit .ritual-card p,.moonlit .session-stat small,.moonlit footer{color:#c5d5c8}.moonlit .nav-link{color:#cbd9c9}.moonlit .nav-link.active{color:#f5deb0}.moonlit .nav-link.active:after{background:#e2bc70}
.moonlit .icon-button{border-color:#a6c3b64d;background:#123c35b8;color:#f1e4c9;box-shadow:inset 0 1px #e6d3a325}.moonlit .mode{color:#e1eadd;background:#123b34c7;border:1px solid #9eb9a42e;box-shadow:inset 0 1px #e2d8b316}.moonlit .mode.active{background:linear-gradient(145deg,#416b4f,#244d3d);border-color:#baa4679c;box-shadow:inset 0 1px #f2dfa44d,0 3px 8px #001b193d}.moonlit .mode small,.moonlit .mode-icon{color:#b9cbb3}.moonlit .journey-link{color:#e6d5aa;background:#133d34d1;border-color:#d7c18b42}.moonlit .journey-link small{color:#b8cbb7}.moonlit .level-strip{color:#d7e0cc}.moonlit #level-reward{color:#edce85}
.moonlit .onboarding{background:#214b3ae8;color:#f0e7c9;border-color:#d4b7787a;box-shadow:0 3px 10px #001e1a30}.moonlit .onboarding button{color:#143c30;background:#dec791}
.moonlit .board-surround{background:linear-gradient(145deg,#0d3a3370,#072f2e9e);border:1px solid #d4bd7947;box-shadow:inset 0 1px #e7d6a526,inset 0 -1px #021c2280,0 15px 35px #001a1b38;border-radius:22px}.moonlit .board{background-image:none}.moonlit .scorebar{color:#fff0cb;border-bottom:1px solid #c9d6b91c;margin-bottom:5px}.moonlit .scorebar strong{text-shadow:0 2px 5px #001e18;font-weight:600}.moonlit .scorebar .stat-label,.moonlit .scorebar small{color:#b8ccba}.moonlit .points-stat strong{color:#f5d58b}.moonlit .board-bottom,.moonlit .board-bottom #available{color:#d1e0ca}.moonlit .empty-board{color:#f1dca8}
.moonlit .tile{border-radius:17%;padding:8%;padding:7px;border:1px solid #f7e9be;background:linear-gradient(140deg,#fffef4 5%,#f8f0d7 55%,#dfcf9e);box-shadow:inset 2px 2px 0 #ffffffed,inset -2px -3px 0 #d5be8399,0 3px 0 #c9ba8b,0 6px 0 #4a7866,0 7px 0 1px #183f36,0 10px 7px #001d2066;transition:transform .16s,filter .16s,box-shadow .16s;overflow:visible}
.moonlit .tile:before{content:'';position:absolute;inset:5%;border-radius:14%;border:1px solid #d2bd7e55;pointer-events:none}.moonlit .tile:after{content:'';position:absolute;left:13%;right:13%;top:5%;height:2px;border-radius:50%;background:#fffdf3;opacity:.9;pointer-events:none}.moonlit .tile-art{filter:drop-shadow(0 1px 0 #fff) drop-shadow(0 2px 1px #80652a33);width:100%;height:100%;max-width:none;position:relative;z-index:1}.moonlit .tile.free:hover{transform:translateY(-2px);box-shadow:inset 2px 2px #fff,inset -2px -3px #d5be8399,0 5px #c9ba8b,0 8px #4a7866,0 9px 0 1px #183f36,0 12px 10px #001d2070}.moonlit .tile.blocked{background:linear-gradient(140deg,#bcc8b4,#8ea69b);border-color:#c0c9ad;box-shadow:inset 1px 1px #d9dfc9,0 3px #8c9e86,0 6px #355d50,0 7px 0 1px #143b34,0 9px 5px #001d2055}.moonlit .tile.blocked .tile-art{opacity:.6;filter:grayscale(.35)}.moonlit .tile.selected{transform:translateY(-4px);outline:3px solid #f5cf72;outline-offset:1px;background:linear-gradient(145deg,#fffbea,#f8e8b2);box-shadow:inset 2px 2px #fff,0 5px #cbb67d,0 8px #659376,0 9px 0 1px #214d39,0 0 24px #e1c36575}.moonlit .tile.hinted,.moonlit .tile.teaching{outline:3px solid #f3cf7b;outline-offset:1px}.moonlit.high-contrast .tile.free{background:#fffdf0;border-color:white}.moonlit.high-contrast .tile.blocked{background:#789c90;border-color:#9bb5a4}.moonlit.high-contrast .tile.blocked .tile-art{opacity:.42}.moonlit.high-contrast .tile.selected{outline-color:#ffcf55;outline-width:4px}
.moonlit .game-tools .tool-button{background:linear-gradient(#315d4f,#20473e);color:#f5e6c5;border:1px solid #b5bc8755;box-shadow:inset 0 1px #e1d2a329,0 3px 0 #062b26,0 5px 10px #001e2026}.moonlit .game-tools kbd{color:#c7d4bb;border-color:#c6d4b44d}.moonlit .tool-button:active{transform:translateY(2px)}.moonlit .tool-button:disabled{opacity:.4}.moonlit .garden-card{background:#123c32d9;border:1px solid #c7b67d55;box-shadow:0 10px 30px #001d2035;overflow:hidden}.moonlit .garden-card p,.moonlit .garden-progress-label,.moonlit .garden-progress-label span:last-child{color:#d2dfc7}.moonlit .garden-card .text-button,.moonlit .ritual-card .text-button{color:#eed29a}.moonlit .garden-card h3{color:#f7e6c3}.moonlit progress,.moonlit progress::-webkit-progress-bar{background:#234b3e}.moonlit progress::-webkit-progress-value{background:linear-gradient(90deg,#b2b86c,#e0bb70)}
.moonlit dialog{--muted:#68745d;--line:#d9d7bf;color:#243d31;background:linear-gradient(145deg,#fff9e9,#eae7d3);border:1px solid #e7d5a3;box-shadow:inset 0 1px #fff,0 25px 100px #001e1ac9}.moonlit dialog::backdrop{background:#001c1c99;backdrop-filter:blur(7px)}.moonlit dialog .eyebrow{color:#8a6c30}.moonlit dialog .icon-button{background:#f3eddb;color:#335244;border-color:#d5cfb6}.moonlit dialog .primary-button{background:linear-gradient(#426b4b,#244d3b);border:1px solid #708459;box-shadow:inset 0 1px #d5e5a541,0 3px #153829;color:#fff2ca}.moonlit dialog .secondary-button{background:linear-gradient(#f5edda,#e4dbc0);border:1px solid #c6b58b;color:#375442;box-shadow:inset 0 1px #fff7e3,0 2px #c9bea3}.moonlit dialog .earned-stars{color:#bf8a23;filter:drop-shadow(0 2px 0 #fff5bc);letter-spacing:5px}.moonlit .win-rewards>strong{color:#2f5840}.moonlit .win-rewards{border-radius:16px;background:radial-gradient(ellipse at center,#fff8df,transparent 70%)}.moonlit .pause-cover{background:#123b34f5;color:#f4e8c9}.moonlit .pause-cover p{color:#c2d6c0}.moonlit .pause-cover .primary-button{background:#dac28c;color:#214635}
body.moonlit.native-app .site-header{background:#0a2f29b5;border-color:#d0bd8129}body.moonlit.native-app .site-header nav{background:linear-gradient(#183e33f7,#082c28);border-top:1px solid #d5b7755c;box-shadow:0 -5px 20px #03252266}body.moonlit.native-app .site-header .nav-link{color:#c5d7c7;background:transparent;border-radius:13px}body.moonlit.native-app .site-header .nav-link.active{background:linear-gradient(#527254,#33523d);color:#ffe4a7;border:1px solid #bba5687a;box-shadow:inset 0 1px #ffe8ac30}body.moonlit.native-app #club-nav{color:#edcd86;background:#d5b36a12}body.moonlit.native-app .board-surround{border-radius:20px}body.moonlit.native-app .board-bottom{color:#d8e4cd}body.moonlit.native-app .game-heading h2{text-shadow:0 2px 5px #062923}body.moonlit.native-app .scorebar{padding-bottom:5px}body.moonlit.native-app .game-tools{margin-bottom:3px}
.match-effects{position:fixed;inset:0;z-index:44;pointer-events:none;overflow:hidden}.match-ring{position:absolute;width:52px;height:52px;border:2px solid #f8dd8a;border-radius:50%;animation:match-ring .55s ease-out both}.match-spark{position:absolute;width:6px;height:6px;border-radius:2px;background:#ffe6a3;box-shadow:0 0 7px #ffd675;animation:match-spark .65s var(--delay) ease-out both}.match-points{position:absolute;color:#fff2be;font-size:24px;font-weight:700;white-space:nowrap;text-shadow:0 2px 3px #103c30,0 0 12px #d2b45a;animation:match-points 1s ease-out both}.moonlit .earned-stars{animation:reward-stars .6s ease-out both}@keyframes match-ring{from{opacity:1;transform:translate(-50%,-50%) scale(.3)}to{opacity:0;transform:translate(-50%,-50%) scale(1.7)}}@keyframes match-spark{from{opacity:1;transform:scale(.7)}to{opacity:0;transform:translate(var(--dx),var(--dy)) rotate(140deg) scale(.2)}}@keyframes match-points{0%{opacity:0;transform:translate(-50%,10px) scale(.7)}18%{opacity:1;transform:translate(-50%,-5px) scale(1.07)}65%{opacity:1}100%{opacity:0;transform:translate(-50%,-54px) scale(1)}}@keyframes reward-stars{from{opacity:0;transform:scale(.5) rotate(-8deg)}to{opacity:1;transform:scale(1)}}
@media(max-width:650px){.moonlit .tile{padding:6px}.moonlit .site-header{background:#0b302ad9}.moonlit .board-surround{border-radius:20px}}
@media(prefers-reduced-motion:reduce){.match-effects{display:none}.moonlit .earned-stars{animation:none}.moonlit .tile{transition:none}}
.moonlit.reduce-motion .match-effects{display:none}.moonlit.reduce-motion .earned-stars{animation:none}
