:root{font-family:SF Pro Rounded,Avenir Next,PingFang SC,Microsoft YaHei,sans-serif;color:#4b5744;background:#fcf7ec;font-synthesis:none;font-weight:500;--pink:#e96d92;--green:#48694e;--cream:#fcf7ec;--muted:#929785}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 100% 0%,#ffe9dd88,transparent 42%),#fcf7ec}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;border:0;color:inherit;touch-action:manipulation}button:focus-visible,a:focus-visible,#game:focus-visible{outline:3px solid #477c65;outline-offset:4px}button:disabled{opacity:.42;cursor:default}svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.svg-library{position:absolute;width:0;height:0;overflow:hidden}.app{max-width:1280px;margin:auto;padding:0 42px}.header{height:112px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e9e4d7}.brand{display:flex;gap:14px;align-items:center;text-decoration:none;color:#465b42}.brand-icon{height:62px;width:62px;border-radius:21px;background:#ffe0e3;border:1px solid #f9c7d1;display:block;overflow:hidden;transform:rotate(-7deg)}.brand-icon img{width:90px;height:68px;object-fit:contain;position:relative;left:-14px;top:1px;transform:rotate(7deg)}.brand-title{display:block;font-family:Avenir Next,Georgia,serif;font-weight:800;font-size:28px;letter-spacing:-1.3px}.brand-title em{font-style:normal;color:#dc7c8b}.brand-spark{font-size:18px;margin-left:9px;color:#dfb553;vertical-align:top}.brand-subtitle{display:block;font-size:11px;letter-spacing:2px;margin-top:4px;color:#93947e}.brand-subtitle>span{margin:0 5px}.sound-button{display:flex;align-items:center;gap:9px;background:#fffdf7;border:1px solid #e6e2d5;border-radius:30px;padding:12px 17px;font-size:12px;box-shadow:0 3px #ece8dc}.sound-button svg{width:18px;height:18px}.intro-line{display:flex;justify-content:space-between;align-items:center;margin-top:27px}.eyebrow{font-size:10px;letter-spacing:1.8px;display:flex;align-items:center;gap:7px;color:#93917a;font-weight:700}.eyebrow svg{width:16px;height:16px;color:#c9a34b}.intro-note{font-size:11px;color:#a39d86;letter-spacing:.7px}.game-heading{display:flex;align-items:center;justify-content:space-between;margin-top:7px}h1{font-size:29px;letter-spacing:1px;margin:0;font-weight:800;color:#4b6248}h1>span{color:#e58a96}.ranch-badge{font-size:10px;letter-spacing:.7px;color:#8c967e;display:flex;gap:7px;align-items:center}.ranch-badge>span{width:6px;height:6px;background:#9bbf83;border-radius:50%}.dashboard{margin:23px 0 18px;display:flex;justify-content:space-between;align-items:center}.score-group{display:flex;gap:12px}.stat{background:#fffdf8;border:1px solid #e9e4d8;border-radius:17px;padding:12px 19px 11px 13px;display:flex;align-items:center;gap:11px;min-width:157px;box-shadow:0 3px #f0eade}.stat-icon{width:42px;height:42px;background:#ffeaec;border-radius:13px;display:flex;align-items:center;justify-content:center;font-size:23px}.stat-icon.trophy{background:#fbefd5;color:#c69b43}.stat-icon svg{width:25px;height:25px}.stat-label{display:block;font-size:10px;color:#9c9885;letter-spacing:.6px}.stat strong{font-size:25px;line-height:1.25;color:#4d654e;font-weight:800;font-variant-numeric:tabular-nums}.score-stat strong{color:#dc7891}.speed-setting{display:flex;align-items:center;gap:13px}.speed-label{font-size:11px;color:#999880}.speed-tabs{display:flex;gap:4px;padding:5px;border-radius:14px;background:#eeeede;border:1px solid #e5e5d4}.speed-tabs button{background:transparent;padding:10px 17px;border-radius:10px;font-size:12px;color:#8c927a;transition:background .15s,box-shadow .15s}.speed-tabs button.selected{background:#fffdf4;color:#58704a;box-shadow:0 2px 5px #8d987425}.play-layout{display:grid;grid-template-columns:minmax(0,1fr) 224px;gap:23px}.game-section{min-width:0}.game-frame{position:relative;border:7px solid #f5ecd5;border-radius:24px;overflow:hidden;background:#b7d970;box-shadow:0 0 0 1px #e2d8be,0 7px #dfd5b9,0 14px 25px #786b3b12;isolation:isolate;aspect-ratio:1.46}#game{width:100%;height:100%;touch-action:none;outline:none}#game canvas{display:block}.field-label,.weather{position:absolute;top:16px;display:flex;align-items:center;pointer-events:none;gap:6px;font-size:10px;z-index:2;color:#4a6443;background:#fffbedec;border:1px solid #fff9;border-radius:9px;padding:8px 11px;box-shadow:0 2px 5px #5a703315}.field-label{left:16px}.field-label svg{width:14px;height:14px}.field-label>span:first-of-type{color:#b0b59b}.weather{right:16px;gap:6px;color:#9a833a}.weather svg{width:17px;height:17px}.game-toolbar{display:flex;align-items:center;justify-content:space-between;gap:7px;margin-top:24px;min-height:33px}.control-tip{font-size:10px;color:#a09f88}.keyboard-tip{display:flex;align-items:center;gap:4px}.keyboard-tip>span{margin-left:3px}kbd{font-family:inherit;background:#fffdf7;border:1px solid #e5e0d0;box-shadow:0 2px #e5e0d0;padding:3px 5px;border-radius:5px;min-width:21px;text-align:center;color:#8a927a;font-size:10px}.tip-dot{padding:0 5px}.touch-tip{display:none}.toolbar-actions{display:flex;gap:8px}.tool-button{display:flex;align-items:center;gap:6px;border:1px solid #e3dfcf;border-radius:10px;background:#fffdf6;padding:8px 11px;font-size:11px;white-space:nowrap;box-shadow:0 2px #e9e3d3}.tool-button svg{width:15px;height:15px}.tool-button:hover:not(:disabled),.sound-button:hover{background:#f4f6e7}.sidebar{display:flex;flex-direction:column;gap:17px}.buddy-card{background:#f9e5de;border:1px solid #f0d9d1;border-radius:19px;text-align:center;padding:19px 15px 0;overflow:hidden;position:relative}.paper-tag{font-size:8px;letter-spacing:1.5px;color:#ad8a78;font-weight:700}.buddy-portrait{height:128px;position:relative;margin-top:7px}.buddy-portrait:before{content:"";position:absolute;inset:6px 25px 0;border-radius:50%;background:#fff3dc}.buddy-portrait img{width:174px;height:139px;object-fit:contain;position:relative;top:-4px;filter:drop-shadow(0 5px 3px #c77c6d16)}.buddy-sun{position:absolute;right:7px;top:25px;color:#ceac58;font-size:20px;transform:rotate(16deg)}.buddy-flower{position:absolute;left:8px;bottom:12px;color:#df9c8d;font-size:22px}.buddy-card h2{font-size:19px;margin:12px 0 8px;color:#8b6859;letter-spacing:.3px}.buddy-card p{font-size:12px;line-height:1.9;color:#a0836d;margin:0 0 18px}.buddy-caption{font-size:9px;letter-spacing:.6px;border-top:1px dashed #debeb0;padding:13px 0;color:#ad8c78}.buddy-caption>span{margin-left:10px;color:#d98b93}.picnic-card{padding:19px 17px;background:#f0f2de;border:1px solid #e4e7cf;border-radius:17px}.card-title{display:flex;gap:7px;align-items:center}.card-title>span{font-size:20px}.card-title h2{font-size:13px;margin:0;color:#6f7b51}.picnic-card p{font-size:10px;color:#989b79;margin:10px 0 13px}.fruit-goal{display:flex;justify-content:space-between}.fruit-goal>span{font-size:27px;color:#d9dfb9;transition:color .3s,transform .3s}.fruit-goal>span.collected{color:#e59a91;transform:rotate(15deg)}.goal-bottom{display:flex;justify-content:space-between;align-items:center;font-size:9px;color:#a2a184;margin-top:8px}.goal-bottom strong{font-size:11px;color:#7e885e}.gentle-note{display:flex;align-items:center;gap:10px;justify-content:center;padding:0 5px}.gentle-note>span{font-size:28px;color:#c7bfa2}.gentle-note p{font-size:10px;line-height:1.9;color:#a8a086;letter-spacing:.5px;margin:0}.bottom-note{display:flex;align-items:center;gap:7px;margin:27px 0 26px;color:#a1a187;font-size:10px;letter-spacing:.5px}.bottom-right{margin-left:auto;font-size:8px;letter-spacing:1.6px;color:#b7ad96}.bottom-right>span{color:#d1ad5e;margin-left:7px}footer{border-top:1px solid #e8e3d5;padding:20px 0 23px;display:flex;gap:17px;font-size:9px;color:#b1ad98;letter-spacing:.5px}footer>span:first-child{font-family:Georgia,serif;color:#8d967d;font-weight:700}.footer-heart{margin-left:auto;font-size:8px;letter-spacing:1.4px}.overlay{position:absolute;inset:0;z-index:5;display:flex;align-items:center;justify-content:center;background:#35552a26;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);padding:16px}.dialog{position:relative;width:320px;text-align:center;background:#fffdf2;border:2px solid #fff;box-shadow:0 6px #ddcbb4,0 16px 38px #314b3330;border-radius:24px;padding:0 25px 22px;animation:pop .25s ease-out}.dialog-art{position:relative;height:97px;width:135px;margin:-27px auto 6px;background:#ffe3d9;border-radius:50%}.dialog-art img{position:relative;width:165px;height:116px;object-fit:contain;left:-15px;top:-9px}.dialog-art>span:first-child{font-size:70px}.art-spark{position:absolute;right:-9px;top:15px;color:#c99736;font-size:30px}.dialog-kicker{font-size:8px;letter-spacing:2px;color:#c2a86e;font-weight:700}.dialog h2{font-size:23px;color:#57704c;letter-spacing:1px;margin:10px 0}.dialog p{font-size:12px;line-height:1.9;color:#a0957e;margin:0 0 18px}.primary-button{background:#e9829e;color:#fffdf6;min-height:48px;width:100%;border:1px solid #da7592;border-radius:14px;display:flex;justify-content:center;align-items:center;gap:9px;font-size:15px;letter-spacing:1px;font-weight:700;box-shadow:0 5px #c66384;transition:transform .12s,box-shadow .12s}.primary-button svg{width:16px;height:16px;fill:currentColor;stroke-width:1}.primary-button:hover{background:#e87596}.primary-button:active{transform:translateY(3px);box-shadow:0 2px #c66384}.dialog-hint{display:block;font-size:9px;color:#b6ad94;margin-top:19px;letter-spacing:.5px}.text-button{background:transparent;color:#8d9772;text-decoration:underline;text-underline-offset:4px;padding:14px 6px 0;font-size:11px}.hidden{display:none!important}.toast{pointer-events:none;position:absolute;z-index:7;left:50%;top:62px;transform:translate(-50%,-10px);background:#fffbecef;color:#6f8152;padding:10px 17px;border:1px solid #f7efd2;border-radius:25px;white-space:nowrap;font-size:12px;opacity:0;transition:opacity .2s,transform .2s;box-shadow:0 4px 10px #4c6d2520}.toast.visible{opacity:1;transform:translate(-50%)}.loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#eef2d8;color:#769062;z-index:9;font-size:18px;gap:12px}.loading span{font-size:11px;color:#a5ab8a}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.touch-controls{display:none}@keyframes pop{0%{transform:translateY(8px) scale(.96);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}@media(min-width:1450px){.app{padding-top:12px}.header{height:116px}.intro-line{margin-top:35px}.game-frame{aspect-ratio:1.43}}@media(max-width:1000px){.app{padding:0 25px}.play-layout{grid-template-columns:minmax(0,1fr) 195px;gap:17px}.game-frame{aspect-ratio:1.23}.buddy-portrait img{width:153px}.buddy-card{padding-left:10px;padding-right:10px}.buddy-card h2{font-size:17px}.game-toolbar{flex-wrap:wrap}.keyboard-tip{font-size:9px}.weather span{display:none}.weather{padding:7px}.field-label{left:10px;top:10px}.weather{right:10px;top:10px}.stat{min-width:140px}.speed-tabs button{padding:10px 12px}}@media(max-width:760px){.app{max-width:560px;padding:0 17px}.header{height:88px}.brand{gap:9px}.brand-icon{width:46px;height:46px;border-radius:16px}.brand-icon img{width:69px;height:52px;left:-12px;top:0}.brand-title{font-size:21px;letter-spacing:-1px}.brand-spark{font-size:12px;margin-left:4px}.brand-subtitle{font-size:8px;letter-spacing:1.1px}.sound-button{padding:10px;box-shadow:0 2px #ece8dc}.sound-button>span{display:none}.intro-line{margin-top:19px}.eyebrow{font-size:8px;letter-spacing:1.3px}.intro-note{display:none}.game-heading{margin-top:6px}h1{font-size:23px;letter-spacing:.3px}.ranch-badge{display:none}.dashboard{margin:16px 0 15px;gap:8px;align-items:stretch}.score-group{gap:7px}.stat{min-width:0;padding:9px 11px 8px 8px;gap:7px;border-radius:12px}.stat-icon{width:30px;height:34px;font-size:19px;border-radius:9px}.stat-icon svg{width:20px;height:20px}.stat-label{font-size:8px;letter-spacing:0}.stat strong{font-size:21px}.speed-setting{display:flex;flex-direction:column;justify-content:center;gap:4px;margin-left:auto}.speed-label{font-size:8px}.speed-tabs{padding:3px;gap:1px;border-radius:10px}.speed-tabs button{font-size:10px;padding:7px;white-space:nowrap;border-radius:7px}.play-layout{display:block}.game-frame{aspect-ratio:.74;border-width:5px;border-radius:20px}.field-label{font-size:9px;top:11px;left:10px;padding:7px 8px}.weather{top:11px;right:10px;padding:6px}.game-toolbar{margin-top:19px;flex-wrap:nowrap}.keyboard-tip{display:none}.touch-tip{display:inline;font-size:9px;letter-spacing:0}.toolbar-actions{gap:6px}.tool-button{font-size:10px;padding:8px;gap:4px;border-radius:9px}.tool-button svg{width:14px;height:14px}.touch-controls{display:flex;justify-content:center;gap:12px;margin-top:16px}.touch-controls button{width:48px;height:44px;background:#fffdf6;border:1px solid #dfdfc8;border-radius:13px;box-shadow:0 3px #e1dfc7;color:#81916b;display:flex;align-items:center;justify-content:center}.touch-controls button:active{background:#e6edcf;transform:translateY(2px);box-shadow:0 1px #e1dfc7}.sidebar{margin-top:23px}.buddy-card,.gentle-note{display:none}.picnic-card{padding:13px 15px;display:grid;grid-template-columns:1fr 1fr;column-gap:12px;border-radius:14px}.card-title h2{font-size:12px}.card-title>span{font-size:17px}.picnic-card p{grid-column:1;grid-row:2;margin:5px 0;font-size:9px}.fruit-goal{grid-column:2;grid-row:1;align-items:center}.fruit-goal>span{font-size:22px}.goal-bottom{grid-column:2;grid-row:2;margin:4px 0}.goal-bottom>span{font-size:8px}.bottom-note{font-size:9px;margin:18px 0 20px}.bottom-right{display:none}footer{font-size:8px;gap:12px;justify-content:space-between;padding:16px 0 20px}.footer-heart{display:none}.dialog{width:281px;max-width:100%;padding:0 21px 20px}.dialog h2{font-size:21px}.dialog p{font-size:11px}.dialog-art{height:89px;width:120px;margin-top:-21px}.dialog-art img{width:150px;height:107px}.dialog-hint{font-size:8px}.toast{font-size:10px;padding:9px 12px}.overlay{padding:16px}}@media(max-width:359px){.app{padding:0 11px}.brand-title{font-size:18px}.brand-subtitle{font-size:7px}.stat{padding-right:7px;gap:5px}.stat-icon{width:25px}.speed-tabs button{font-size:9px;padding:7px 5px}.touch-tip{font-size:8px}.tool-button{font-size:9px;padding:7px}.game-frame{aspect-ratio:.69}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
