@font-face{font-family:Outfit;src:url('/public/fonts/Outfit-Variable.ttf') format('truetype');font-weight:100 900;font-display:swap}
:root{--ink:#263e32;--green:#294d3b;--muted:#627267;--line:#dce2d5;--surface:#fffef9;--radius:20px;font-family:Outfit,sans-serif;color:var(--ink);background:#f5f3e9}
body{background:#f5f3e9;background-image:none;font-family:Outfit,sans-serif;color:var(--ink)}
main{max-width:1500px;padding-inline:clamp(16px,3vw,44px)}.button:focus-visible,summary:focus-visible,a:focus-visible,button:focus-visible{outline:3px solid #628260;outline-offset:4px}.small-label{color:#65755d;font-size:10px;letter-spacing:1.3px}input:not([type=checkbox]):not([type=file]),select,textarea{background:#f8f9f3;border:1px solid #d8dfd2;border-radius:10px;color:#263e32;box-shadow:none;min-height:44px;padding:11px 12px}input::placeholder,textarea::placeholder{color:#70806b}dialog h2{font-size:32px;color:#263e32}.dialog-intro,.settings-note{color:#627267;line-height:1.6}.task-item,.quest-card,.field-card,.cafe-card{background:#f5f6ee;border-color:#d8dfd2;border-radius:12px;box-shadow:none}
.grove-preview-button{display:inline-flex;gap:7px;align-items:center;margin-top:12px;background:transparent;border:0;padding:0;color:#4f6e4d;font-size:12px;min-height:28px;text-decoration:underline;text-underline-offset:4px}.grove-preview-button:hover{color:#294d3b}.grove-preview-stage{position:relative;height:390px;border-radius:18px;background:#eef1e6;overflow:hidden;margin:20px 0}.grove-preview-stage img,.grove-preview-stage canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.grove-preview-stage canvas{opacity:0;transition:opacity .4s}.grove-preview-stage[data-ready=true] canvas{opacity:1}.grove-preview-stage[data-ready=true] img{visibility:hidden}.grove-preview-footer{display:flex;justify-content:space-between;align-items:center;gap:14px}.grove-preview-footer small{color:#627267;font-size:12px}.grove-preview-footer button{flex-shrink:0}
@media(max-width:850px){.grove-preview-stage{height:330px}}
@media(max-width:650px){main{padding-inline:12px}.grove-preview-stage{height:280px}.grove-preview-footer{align-items:flex-start;flex-direction:column}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
body.presentation-reduced *,body.presentation-reduced *::before,body.presentation-reduced *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
/* Match the legacy control specificity so menus share the same material. */
:root{--paper:#f5f3e9;--parchment:#fffef9;--soft:#eef1e7;--gold:#b39858;--wood:#65805d;--wood-dark:#294537}
.creator-preview,.pet-stage{border:1px solid #d5dece;border-radius:16px;background:#eef1e7}
.sprite-gallery button,dialog .activity-tile,dialog .shop-item,dialog .person-card{border:1px solid #d5dece;border-bottom-width:1px;border-radius:12px;background:#f4f6ec;box-shadow:none}
.character-offer,.wardrobe-item,.lobby-card{background:#f4f6ec;border:1px solid #d5dece;border-radius:14px}.grove-preview-button{border-radius:0!important}
/* Viewport-sized scroll regions: every timer action remains reachable. */
html{scroll-padding-block:18px}
