*{margin:0;padding:0;box-sizing:border-box}body{font-family:'Quicksand',sans-serif;overflow:hidden;background:#1a1a2e;color:#2d3436}.screen{position:fixed;inset:0;display:none;z-index:1}.screen.active{display:flex}[hidden],.hidden{display:none!important}button,input,select{font-family:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:default}.btn-primary,.btn-small{border:0;border-radius:30px;background:#58785d;color:white;font-weight:600;padding:14px 40px;box-shadow:0 4px 12px #354e4020}.btn-primary{font-size:1.2rem}.btn-small{padding:8px 20px;font-size:.9rem}.btn-primary:hover,.btn-small:hover{filter:brightness(1.08)}
#title-screen{justify-content:center;align-items:center;background:radial-gradient(ellipse at 50% 25%,#f8efd9,transparent 65%),linear-gradient(165deg,#dbe4cf,#98b49a)}.title-content{text-align:center;z-index:2;padding:0 16px}.title-logo h1{font-size:4.5rem;color:#354e40;letter-spacing:-2px;margin-bottom:.5rem}.subtitle{font-size:1.3rem;color:#63765d;margin-bottom:3rem}.floating-clouds{position:absolute;inset:0;pointer-events:none;overflow:hidden}.cloud{position:absolute;width:180px;height:45px;border-radius:50px;background:#ffffff70;left:-200px;animation:cloudFloat 30s linear infinite}.cloud:before,.cloud:after{content:'';position:absolute;background:inherit;border-radius:50%;width:70px;height:70px;top:-35px;left:30px}.cloud:after{width:55px;height:55px;left:90px;top:-25px}.cloud-1{top:10%}.cloud-2{top:25%;animation-delay:8s}.cloud-3{top:15%;animation-delay:15s}@keyframes cloudFloat{to{transform:translateX(calc(100vw + 400px))}}
.color-options,.style-options{display:flex;gap:8px;flex-wrap:wrap}
#game-canvas{width:100%;height:100%;display:block}#game-ui{position:absolute;inset:0;pointer-events:none}#game-ui>*{pointer-events:auto}#player-info,#mini-map,#chat-container{position:absolute;background:#faf6eae6;border:1px solid #756c4e33;box-shadow:0 5px 24px #35412b1f;border-radius:12px;backdrop-filter:blur(8px)}#player-info{top:20px;left:20px;padding:12px 14px 12px 20px;border-left:4px solid #65856a;display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:16px;row-gap:2px;align-items:center;min-width:230px;max-width:300px}#coin-count{grid-column:1;grid-row:1;justify-self:start}#ui-clock{grid-column:2;grid-row:2;justify-self:end;font-size:.8rem;color:#756e59;font-variant-numeric:tabular-nums;white-space:nowrap}#ui-location{grid-column:1;grid-row:2;font-size:.85rem;color:#756e59;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#chat-container{bottom:20px;left:20px;width:310px;overflow:hidden}#chat-messages{height:172px;overflow-y:auto;padding:28px 16px 12px;display:flex;flex-direction:column;gap:6px;-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 34px,#000 100%);mask-image:linear-gradient(to bottom,transparent 0,#000 34px,#000 100%);scrollbar-width:none}#chat-messages::-webkit-scrollbar{display:none}.chat-msg{font-size:.85rem;line-height:1.4}.msg-name{font-weight:700;color:#5d4037}.msg-text{color:#4a4a4a}.chat-msg.system{color:#526d4e;font-size:.8rem}#chat-input-area{display:flex;border-top:1px solid #e8e0d8;padding:8px;gap:8px}#chat-input{flex:1;min-width:0;padding:8px 14px;border:2px solid #e0d5c7;border-radius:20px;background:#faf7f3}#btn-send{padding:8px 18px;border:0;border-radius:20px;background:#58785d;color:white;font-weight:600}#mini-map{top:20px;right:20px;padding:4px;border-radius:50%}#minimap-canvas{border-radius:50%;display:block}#debug-label{display:none!important}#interaction-popup{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#fffffff0;padding:24px 32px;border-radius:20px;text-align:center;z-index:10}#popup-name{font-weight:700;font-size:1.2rem}#popup-message{margin:12px 0}
#journey-card{position:absolute;top:130px;left:20px;width:290px;padding:18px;border-radius:14px;background:#faf6eaf2;box-shadow:0 5px 24px #354e4020}.journey-heading{display:flex;gap:12px;align-items:center;color:#354e40}#coin-count{display:flex;align-items:center;gap:7px;white-space:nowrap;font-weight:700;font-size:1.1rem;color:#7a5a1c;font-variant-numeric:tabular-nums}#coin-count::before{content:'';flex:none;width:18px;height:18px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff3b8 0 18%,#f2c94c 19% 58%,#d49a1f 59%);box-shadow:inset 0 0 0 1.5px #b07d0a,0 1px 2px #7a5a1c55}#journey-text{font-size:13px;line-height:1.6;margin:12px 0}#guide-controls{position:absolute;left:50%;bottom:24px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;z-index:11;pointer-events:none}#journey-action{pointer-events:auto;white-space:nowrap;box-shadow:0 4px 14px #172d4230}#destination-marker{position:static;background:#58785d;color:white;padding:8px 14px;border:2px solid #f6efd9;border-radius:22px;pointer-events:none;font-size:13px}#npc-dialogue-caption{position:absolute;left:50%;bottom:28px;transform:translateX(-50%);z-index:30;width:min(620px,calc(100vw - 40px));padding:18px 22px 16px;border:1px solid #aebca6;border-radius:16px;background:#faf6eaf5;color:#354e40;box-shadow:0 8px 32px #172d4240;text-align:left}#npc-dialogue-speaker{display:block;margin-bottom:6px;color:#4d7058;font-size:14px}#npc-dialogue-text{font-size:16px;line-height:1.55;margin:0}#npc-dialogue-caption.has-next #npc-dialogue-text{padding-right:118px}#npc-dialogue-next{position:absolute;right:16px;bottom:16px;padding:8px 14px;font-size:12px}
#shop-dialog{margin:auto;width:100vw;max-width:none;height:100vh;max-height:none;border:0;border-radius:0;padding:24px;overflow:hidden;background:#e9dfd0;color:#473e38}#shop-dialog::backdrop{background:#21332980;backdrop-filter:blur(5px)}#shop-dialog header{position:relative;z-index:2;display:flex;align-items:center;gap:22px;background:#faf5ebf0;padding:14px 20px;border-radius:16px}#shop-dialog h2{font:500 40px Georgia,serif;color:#614761;margin:3px 0}#shop-dialog .shop-logo{display:block;height:50px;width:auto;margin-top:4px}#shop-dialog small{font-size:10px;letter-spacing:1.5px}#shop-balance{background:#eee1bd;padding:9px 14px;border-radius:20px}#shop-close{border:0;background:transparent;font-size:24px}#shop-camera{margin-left:auto;font-size:12px}#shop-message{position:relative;z-index:2;max-width:430px;min-height:40px;margin:14px 0;line-height:1.5;font-size:14px;background:#faf5ebf0;padding:12px 18px;border-radius:12px}.shop-layout{display:contents}.shop-mirror{position:absolute;inset:0;text-align:center}#shop-preview{width:100%;height:100%;display:block}.shop-mirror span{position:absolute;bottom:24px;left:24px;background:#faf5ebdb;padding:10px 16px;border-radius:20px;color:#79665c;font-size:12px}.shop-browse{position:absolute;z-index:2;right:24px;top:155px;bottom:24px;width:340px;padding:20px;background:#faf5ebf2;border-radius:18px;overflow:auto}.shop-browse nav{display:flex;gap:6px;margin-bottom:16px}.shop-browse nav button{padding:10px;border:1px solid #d6caba;border-radius:18px;background:transparent;font-size:12px}.shop-browse nav button[aria-pressed=true]{background:#614761;color:white}.shop-item{display:grid;grid-template-columns:34px 1fr;gap:8px 12px;width:100%;padding:16px;text-align:left;margin:8px 0;background:#fffcf7;border:1px solid #d9cbb8;border-radius:12px;font:inherit}.shop-item.chosen{border:2px solid #614761}.fabric-dot{grid-row:span 2;width:32px;height:40px;border-radius:18px 18px 6px 6px}.shop-item small{letter-spacing:0!important}#shop-buy{width:100%;font-size:14px;padding:14px;margin-top:18px}#free-wardrobe label{display:block;font-size:12px;margin:10px 0}#free-wardrobe select{display:block;width:100%;padding:8px;margin-top:4px;border:1px solid #d9cbb8;border-radius:8px;background:#fffcf7}
#menu-open{grid-column:2;grid-row:1;justify-self:end;align-self:center;padding:7px 14px;font-size:11px;background:transparent;color:#58785d;border:1.5px solid #58785d66;box-shadow:none}#menu-open:hover{background:#58785d14;filter:none}#nearby-shop{padding:5px 9px;font-size:10px}
@media(max-width:768px){.title-logo h1{font-size:2.8rem}}
@media(max-width:650px){#player-info{left:12px;top:12px;min-width:0;max-width:calc(100vw - 196px);column-gap:8px;padding-right:10px}#chat-container{left:12px;bottom:12px;width:240px}#chat-messages{height:128px;padding-top:24px}#mini-map{transform:scale(.8);transform-origin:top right;right:12px;top:12px}#journey-card{top:130px;left:12px;width:225px;padding:12px}#shop-dialog{padding:10px}#shop-dialog header{padding:10px;gap:8px}#shop-dialog h2{font-size:28px}#shop-dialog .shop-logo{height:34px}#shop-dialog header small{display:none}#shop-camera{padding:8px;font-size:10px}#shop-balance{padding:8px;white-space:nowrap;font-size:11px}#shop-message{max-width:100%;font-size:12px}.shop-browse{right:10px;left:10px;top:auto;bottom:10px;height:32vh;width:auto;padding:12px}.shop-mirror{bottom:27vh}.shop-mirror span{display:none}}
#bakery-dialog,#florist-dialog{margin:0;width:100vw;max-width:none;height:100vh;max-height:none;border:0;background:#f4e4d3;color:#654b3b;overflow:hidden}#bakery-preview,#florist-preview{position:absolute;inset:0;width:100%;height:100%;display:block}#bakery-dialog header,#florist-dialog header{position:absolute;top:24px;left:24px;background:#fff6e9ed;padding:20px 26px;border-radius:20px}#bakery-dialog small,#florist-dialog small{font-size:10px;letter-spacing:2px}#bakery-dialog h2,#florist-dialog h2{font:36px Georgia,serif;margin:8px 0 16px}.bakery-conversation{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);width:min(540px,calc(100% - 32px));padding:20px 26px;border-radius:20px;background:#fff6e9f5;box-shadow:0 8px 30px #654b3b20}.bakery-conversation p{font-size:14px;line-height:1.6;margin:8px 0 14px}.bakery-conversation button{font-size:14px;padding:12px 22px;background:#a76665}#nearby-bakery,#nearby-shop{grid-column:1/-1;grid-row:3;justify-self:start;margin-top:8px;font-size:11px;padding:6px 12px}@media(max-width:650px){#bakery-dialog header,#florist-dialog header{top:12px;left:12px;padding:12px 18px}#bakery-dialog h2,#florist-dialog h2{font-size:26px}.bakery-conversation{bottom:12px;padding:14px 18px}}

#florist-dialog{background:#f6ece9;color:#3f5a4c}#florist-dialog .bakery-conversation button{background:#5f8f76}
#flower-progress{display:flex;gap:4px;margin:6px 0 10px}#flower-progress span{flex:1;height:8px;border-radius:4px;background:#e6dccf}#flower-progress span.on{background:#e57f95}
#look-prompt{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);padding:14px 22px;border:0;border-radius:24px;background:#354e40e6;color:white;font:600 14px Quicksand,sans-serif;cursor:pointer}
#dev-map{margin:auto;width:min(1120px,calc(100vw - 32px));max-width:none;max-height:calc(100vh - 32px);padding:16px 18px;border:0;border-radius:18px;background:#faf6eaf7;color:#354e40;box-shadow:0 20px 60px #0004}#dev-map::backdrop{background:#1b261f88}#dev-map header{display:flex;align-items:center;gap:14px;margin-bottom:12px}#dev-map h2{margin:0;font-size:20px}#dev-map header span{flex:1;font-size:12px;color:#756e59}.dev-body{display:flex;gap:16px;align-items:flex-start}#dev-canvas{width:min(720px,calc(100vh - 120px));aspect-ratio:1;border-radius:12px;cursor:crosshair;box-shadow:inset 0 0 0 1px #0002}#dev-jumps{flex:1;min-width:180px;max-height:min(720px,calc(100vh - 120px));overflow:auto;display:flex;flex-wrap:wrap;gap:6px;align-content:flex-start}#dev-jumps h3{width:100%;margin:8px 0 2px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#756e59}#dev-jumps button{border:1px solid #58785d55;background:#fff;color:#354e40;border-radius:14px;padding:5px 10px;font:600 12px Quicksand,sans-serif;cursor:pointer}#dev-jumps button:hover{background:#58785d;color:#fff}#dev-sounds{position:absolute;z-index:5;right:16px;top:250px;padding:6px 12px;border-radius:10px;background:#1b261fcc;color:#e8f2e9;font:12px/1.5 ui-monospace,monospace;pointer-events:none;white-space:pre}#dev-hud{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);padding:6px 12px;border-radius:10px;background:#1b261fcc;color:#e8f2e9;font:12px ui-monospace,monospace;pointer-events:none;white-space:nowrap}@media(max-width:800px){.dev-body{flex-direction:column}#dev-canvas{width:100%}}

#lift-panel,#train-panel,#district-panel,#pony-panel,#home-panel,#office-panel{position:absolute;left:50%;bottom:76px;transform:translateX(-50%);width:min(370px,calc(100vw - 32px));box-sizing:border-box;padding:16px 20px;border-radius:18px;background:#faf6eaf5;color:#365957;box-shadow:0 6px 26px #142b3226;text-align:center;z-index:12}#lift-panel strong,#train-panel strong,#district-panel strong,#pony-panel strong,#home-panel strong,#office-panel strong{font-size:17px}#lift-panel p,#train-panel p,#district-panel p,#pony-panel p,#home-panel p,#office-panel p{font-size:13px;line-height:1.5;margin:7px 0 10px}#lift-panel button,#train-panel button,#district-panel button,#pony-panel button,#home-panel button,#office-panel button{background:#426d70;color:#fff}#lift-panel button:disabled,#train-panel button:disabled{opacity:.72;cursor:default}
#archery-hud{position:absolute;inset:0;pointer-events:none;color:#f8edcd}#archery-hud header{position:absolute;left:24px;top:24px;padding:18px 24px;background:#263e32ed;border:1px solid #c8b27a77;border-radius:12px}#archery-hud h2{font:32px Georgia,serif;margin:5px 0 14px}#archery-hud small{font-size:10px;letter-spacing:3px;color:#dcc693}#archery-hud button{pointer-events:auto}.archery-readout{position:absolute;right:24px;bottom:24px;width:min(340px,calc(100vw - 32px));padding:20px;background:#263e32ed;border:1px solid #c8b27a77;border-radius:12px}.archery-readout p{font-size:13px;line-height:1.5;margin:10px 0}.archery-readout label{font-size:11px;text-transform:uppercase;letter-spacing:1px;display:block;margin:14px 0}.archery-readout progress{display:block;width:100%;height:9px;margin-top:8px;accent-color:#dcb860}#archery-fire{width:100%;background:#c4a763;color:#233e30;font-size:13px}#archery-message{min-height:58px;color:#e4dbc2}#archery-prompt{position:absolute;left:50%;bottom:76px;transform:translateX(-50%);width:min(360px,calc(100vw - 32px));padding:16px 20px;border-radius:16px;background:#faf6eaf5;color:#365957;text-align:center}#archery-prompt p{font-size:13px;line-height:1.5;margin:9px 0 12px}.archery-active #game-ui,.archery-active #journey-card,.archery-active #guide-controls,.archery-active #look-prompt,.archery-active #dev-hud,.archery-active #dev-sounds,.archery-active #interaction-popup{display:none!important}.archery-active #game-canvas{cursor:none}@media(max-width:650px){#archery-hud header{top:12px;left:12px;padding:12px}#archery-hud h2{font-size:24px}.archery-readout{right:12px;bottom:12px;width:260px;padding:14px}.archery-readout p{font-size:11px}}
#world-gate{width:min(340px,100%);margin:14px auto 0;padding:18px 22px 14px;border-radius:18px;background:#faf6eaf7;color:#354e40;box-shadow:0 14px 34px #0000002e;text-align:center;opacity:0;transform:translateY(-10px) scale(.98);transform-origin:top center;transition:opacity .18s ease,transform .18s cubic-bezier(.2,.9,.3,1.2)}#world-gate.open{opacity:1;transform:none}#world-gate[hidden]{display:none}#world-gate.floating{position:fixed;inset:auto 0 0;top:50%;margin:0 auto;transform:translateY(calc(-50% - 10px)) scale(.98);z-index:60;box-shadow:0 20px 60px #0005}#world-gate.floating.open{transform:translateY(-50%)}#world-gate h2{margin:0 0 6px;font-size:20px}#world-gate p{margin:0 0 12px;font-size:14px;color:#6a6552;min-height:1.2em}#world-gate form{display:flex;gap:8px;justify-content:center}#gate-password{flex:1;min-width:0;padding:10px 14px;border:2px solid #cfc3ad;border-radius:12px;background:#fff;font:600 16px ui-monospace,monospace;letter-spacing:.14em;text-align:center;text-transform:uppercase}#world-gate small{display:block;margin-top:10px;font-size:12px;color:#8a836d}#gate-cancel{margin-top:8px;padding:4px 10px;border:0;border-radius:8px;background:none;color:#6f6a56;font:inherit;font-size:13px;cursor:pointer;text-decoration:underline}#gate-cancel:hover{color:#354e40}@media(prefers-reduced-motion:reduce){#world-gate{transition:none}}
.title-choices{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.btn-secondary{background:#fff;color:#3d6350;border:2px solid #58785d55}.btn-secondary:hover{background:#eef4ee}#title-note{margin-top:14px;font-size:.85rem;color:#6f6a56}#title-screen.needs-sign-in .title-choices,#title-screen.needs-sign-in #title-note{display:none}#title-screen.needs-sign-in .subtitle{margin-bottom:1.8rem}
#touch-controls{display:none}.touch-device #touch-controls{display:block;position:absolute;inset:auto 0 0 0;height:0;z-index:5;pointer-events:none}.touch-device #chat-container{bottom:180px}.touch-device #game-canvas{touch-action:none}#touch-stick{position:absolute;left:28px;bottom:28px;width:132px;height:132px;border-radius:50%;background:#faf6ea99;border:2px solid #756c4e40;box-shadow:0 5px 24px #35412b2e;backdrop-filter:blur(6px);pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none}#touch-stick-knob{position:absolute;left:50%;top:50%;width:56px;height:56px;margin:-28px 0 0 -28px;border-radius:50%;background:#58785d;box-shadow:0 3px 10px #0004;pointer-events:none}#touch-buttons{position:absolute;right:24px;bottom:28px;display:flex;flex-direction:column;align-items:stretch;gap:10px;pointer-events:auto}#touch-buttons button{min-width:132px;min-height:48px;font-size:15px;touch-action:manipulation;-webkit-user-select:none;user-select:none}#touch-rotate,#touch-view{background:#faf6eaee;color:#354e40;border:1px solid #756c4e33}.archery-active #touch-controls,.playing-activity #touch-controls{display:none!important}@media(max-width:650px){.touch-device #chat-container{bottom:150px}#touch-stick{left:16px;bottom:16px;width:112px;height:112px}#touch-buttons{right:12px;bottom:16px;gap:8px}#touch-buttons button{min-width:110px;min-height:40px;font-size:13px}}
@media(max-width:650px){.touch-device #guide-controls{bottom:164px}.touch-device #chat-container{bottom:236px}.touch-device #npc-dialogue-caption{bottom:164px}#npc-dialogue-caption{padding:14px 16px 54px}#npc-dialogue-text{padding-right:0;font-size:14px}}

#game-menu{margin:auto;width:min(1040px,calc(100vw - 32px));height:min(640px,calc(100vh - 32px));padding:0;border:0;border-radius:18px;background:#faf5eb;color:#354e40;overflow:hidden}#game-menu[open]{display:flex;flex-direction:column}#game-menu::backdrop{background:#21332980;backdrop-filter:blur(4px)}#game-menu h2{margin:0;font-size:22px}#game-menu h3{margin:0 0 12px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#756e59}#game-menu kbd{min-width:22px;padding:2px 7px;border:1px solid #756c4e44;border-bottom-width:2px;border-radius:6px;background:#faf6ea;color:#58785d;font:700 12px ui-monospace,monospace;text-align:center}
.menu-head{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;padding:18px 26px}.menu-head #menu-close{justify-self:end}
.menu-tabs{display:flex;align-items:center;gap:6px;padding:5px;border-radius:999px}.menu-tab{padding:9px 26px;border:0;background:transparent;color:#756e59;font:600 16px Quicksand,sans-serif;cursor:pointer;white-space:nowrap}.menu-tab-hint{margin:0 4px}
.menu-page{flex:1;min-height:0;overflow:auto;padding:24px 26px 28px;display:grid;gap:20px;align-content:start}.menu-page[hidden]{display:none}
#menu-page-valley{grid-template-columns:minmax(0,1.5fr) minmax(260px,1fr)}.menu-side{display:grid;gap:16px;align-content:start}.menu-facts{display:grid;grid-template-columns:max-content 1fr;gap:6px 16px;margin:0;font-size:14px}.menu-facts dt{font-weight:700;color:#756e59}.menu-facts dd{margin:0;font-weight:600}#menu-status-goal{margin:14px 0 0;padding-top:12px;border-top:2px dashed #f1dfcc;font-size:14px;line-height:1.45}#menu-status-goal strong{display:block;margin-bottom:2px}#menu-page-settings{grid-template-columns:1fr 1fr;align-items:start}
.menu-tiles{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-content:start}
.menu-tile{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:10px;min-height:132px;padding:18px 20px;text-align:left;cursor:pointer;color:#354e40}.menu-tile strong{display:block;font:600 19px Quicksand,sans-serif}.menu-tile small{display:block;margin-top:3px;font:500 13px Quicksand,sans-serif;opacity:.75}.menu-tile-icon{font-size:30px;line-height:1}.menu-tile kbd{position:absolute;top:16px;right:16px}
.menu-card{padding:20px 22px;border-radius:22px;align-self:start}
#menu-keys{display:grid;grid-template-columns:repeat(2,max-content minmax(0,1fr));gap:10px 18px;margin:0;font-size:14px;align-items:center}#menu-keys dt{font:700 12px ui-monospace,monospace;color:#58785d}#menu-keys dd{margin:0;color:#5c5a48}
.menu-tools{display:flex;flex-wrap:wrap;align-items:center;gap:14px;font-size:13px;color:#756e59}.menu-tools label{display:flex;align-items:center;gap:6px;cursor:pointer}
.menu-settings label{display:block;margin:0 0 18px;font-size:14px}.menu-settings label.menu-check{display:flex;align-items:center;gap:8px;cursor:pointer}.menu-settings input[type=range]{display:block;width:100%;margin-top:8px}.menu-row{display:flex;flex-wrap:wrap;gap:10px}#audio-status{font-size:12px;line-height:1.5;margin:14px 0 0}
@media(max-width:760px){.menu-head{grid-template-columns:1fr auto;padding:14px 16px}.menu-tabs{grid-column:1/-1;grid-row:2;justify-self:stretch;justify-content:center}.menu-tab{padding:8px 14px;font-size:14px}.menu-tab-hint{display:none}.menu-page{padding:16px}#menu-page-valley,#menu-page-settings{grid-template-columns:1fr}.menu-tile{min-height:0;padding:14px 16px}#menu-keys{grid-template-columns:max-content 1fr}}
@media(max-height:500px){#game-menu{height:calc(100vh - 16px);width:calc(100vw - 16px)}.menu-head{padding:10px 16px}.menu-page{padding:12px 16px 16px}.menu-tile{min-height:0;padding:12px 16px;gap:6px}.menu-tile-icon{font-size:22px}}
/* Phones held sideways: too short for the stacked desktop HUD. Coins, menu and journey keep the left column above the joystick, chat moves to the top centre and the guide sits between the joystick and the buttons. */
@media(max-height:500px) and (orientation:landscape){#player-info{top:8px;left:8px;min-width:0;width:220px;padding:6px 8px 6px 12px;column-gap:10px}#coin-count{font-size:1rem}#ui-location,#ui-clock{font-size:.75rem}#menu-open{padding:5px 11px}#nearby-bakery,#nearby-shop{margin-top:5px;padding:5px 10px}#chat-container,.touch-device #chat-container{top:8px;bottom:auto;left:50%;transform:translateX(-50%);width:clamp(180px,calc(100vw - 480px),340px)}#chat-messages{height:52px;padding:12px 12px 4px;gap:2px;-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 14px);mask-image:linear-gradient(to bottom,transparent 0,#000 14px)}.chat-msg{font-size:.75rem;line-height:1.3}.chat-msg.system{font-size:.72rem}#chat-input-area{padding:4px;gap:4px}#chat-input{padding:3px 10px;font-size:16px}#btn-send{padding:4px 12px}#mini-map{transform:scale(.56);transform-origin:top right;right:8px;top:8px}#journey-card{left:8px;width:220px;max-height:calc(100vh - var(--life-journey-top,80px) - 136px);overflow:auto;padding:8px 12px}#journey-card.on-mission{padding-left:38px}#journey-card.on-mission #journal-open{left:10px;top:9px}.journey-heading{font-size:14px}#journey-text{font-size:12px;line-height:1.4;margin:4px 0}#journal-open{margin-top:2px;padding:2px 0;font-size:12px}#guide-controls,.touch-device #guide-controls{bottom:10px;max-width:calc(100vw - 300px)}#guide-controls #destination-marker{max-width:100%!important;padding:7px 12px!important;gap:10px}.nav-arrow{font-size:24px;width:24px}#npc-dialogue-caption,.touch-device #npc-dialogue-caption{bottom:10px;width:calc(100vw - 300px);max-height:calc(100vh - 110px);overflow:auto;padding:10px 14px 46px}#adventure-notice{bottom:10px;width:calc(100vw - 300px);padding:9px 14px;font-size:12px}body #life-nearby{bottom:70px}#touch-stick{left:16px;bottom:12px;width:104px;height:104px}#touch-stick-knob{width:46px;height:46px;margin:-23px 0 0 -23px}#touch-buttons{right:12px;bottom:12px;gap:6px}#touch-buttons button{min-width:112px;min-height:38px;font-size:13px;padding:6px 12px}}
#pickleball-prompt{position:absolute;left:50%;bottom:76px;transform:translateX(-50%);width:min(380px,calc(100vw - 32px));padding:16px 20px;border-radius:16px;background:#faf6eaf5;color:#365957;text-align:center;z-index:4}#pickleball-prompt p{font-size:13px;line-height:1.5;margin:9px 0 12px}#pickleball-prompt div{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}#pickleball-hud{position:absolute;inset:0;pointer-events:none;color:#f8edcd;z-index:4}#pickleball-hud button{pointer-events:auto}#pickleball-hud header{position:absolute;left:50%;top:16px;transform:translateX(-50%);display:flex;align-items:center;gap:18px;padding:10px 18px;background:#2f4d45ed;border:1px solid #e8c98977;border-radius:14px}#pickleball-hud small{font-size:10px;letter-spacing:3px;color:#e8c989}#pickleball-score{display:flex;align-items:center;gap:12px;font-size:13px}#pickleball-score span{display:flex;flex-direction:column;align-items:center;min-width:64px}#pickleball-score b{font:700 30px Georgia,serif;line-height:1}#pickleball-score span.serving b{color:#ffd976}#pickleball-score span.serving::after{content:'serving';font-size:9px;letter-spacing:2px;text-transform:uppercase;color:#ffd976}#pickleball-score i{font-style:normal;opacity:.6}.pickleball-readout{position:absolute;left:50%;bottom:24px;transform:translateX(-50%);width:min(440px,calc(100vw - 32px));padding:12px 16px;background:#2f4d45ed;border:1px solid #e8c98977;border-radius:12px;text-align:center}.pickleball-readout p{font-size:14px;line-height:1.45;margin:0 0 8px;min-height:20px}#pickleball-serve,#pickleball-drive{background:#e8c989;color:#2f4d45;font-size:14px;min-width:140px;touch-action:none;-webkit-user-select:none;user-select:none}#pickleball-drive.on{background:#ffd976}.pickleball-active #journey-card,.pickleball-active #guide-controls,.pickleball-active #look-prompt,.pickleball-active #interaction-popup,.pickleball-active #touch-buttons,.pickleball-active #mini-map,.pickleball-active #nav-card{display:none!important}.touch-device.pickleball-active .pickleball-readout,.touch-device .pickleball-active .pickleball-readout{left:auto;right:12px;transform:none;width:min(300px,calc(100vw - 170px))}@media(max-width:650px){#pickleball-hud header{top:8px;padding:6px 12px;gap:10px}#pickleball-hud small{display:none}#pickleball-score b{font-size:22px}.pickleball-readout{bottom:12px;padding:10px}.pickleball-readout p{font-size:12px}}
.pickleball-active #chat-container,.pickleball-active #nearby-shop,.pickleball-active #nearby-bakery{display:none!important}.pickleball-active #pickleball-hud header{left:auto;right:16px;transform:none}@media(max-width:650px){.pickleball-active #player-info{display:none!important}}

#bronco-panel{position:absolute;left:50%;bottom:76px;transform:translateX(-50%);width:min(400px,calc(100vw - 32px));padding:14px 20px;box-sizing:border-box;border-radius:18px;background:#faf6eaf5;color:#365957;box-shadow:0 6px 26px #142b3226;text-align:center;z-index:12}#bronco-panel p{font-size:13px;line-height:1.5;margin:7px 0 10px}#bronco-panel button{background:#426d70;color:white}

.touch-device #bronco-panel{bottom:190px;width:min(360px,calc(100vw - 24px));padding:10px 14px}

.bronco-driving #pony-panel,.bronco-driving #train-panel,.bronco-driving #lift-panel,.bronco-driving #district-panel{display:none!important}
.bronco-driving #bronco-panel{background:transparent;box-shadow:none;padding:0;width:auto;bottom:28px}
.bronco-driving #bronco-panel strong,.bronco-driving #bronco-panel p{display:none}
#carpentry-panel,#ski-panel{position:absolute;left:50%;bottom:100px;transform:translateX(-50%);width:min(370px,calc(100vw - 32px));box-sizing:border-box;padding:16px 20px;border-radius:18px;background:#faf6eaf5;color:#5b3b23;box-shadow:0 6px 26px #142b3226;text-align:center;z-index:12}#carpentry-panel strong,#ski-panel strong{font-size:17px}#carpentry-panel p,#ski-panel p{font-size:13px;line-height:1.5;margin:7px 0 10px}#carpentry-panel button,#ski-panel button{background:#9a5b35;color:#fff}
#carpentry-dialog{margin:0;width:100vw;max-width:none;height:100vh;max-height:none;border:0;background:#dfe8d6;color:#5b3b23;overflow:hidden}#carpentry-preview{position:absolute;inset:0;width:100%;height:100%;display:block}#carpentry-dialog header{position:absolute;top:24px;left:24px;background:#fff6e9ed;padding:20px 26px;border-radius:20px}#carpentry-dialog small{font-size:10px;letter-spacing:2px}#carpentry-dialog h2{font:36px Georgia,serif;margin:8px 0 16px}
.carpentry-conversation{width:min(600px,calc(100% - 32px))}.carpentry-conversation>strong{color:#8a4a2a}#carpentry-logs{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:700;margin:-4px 0 12px}#carpentry-logs .life-item-icon{width:34px;height:34px;margin:0}#carpentry-logs svg{width:27px;height:27px}
#carpentry-recipes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.carpentry-recipe{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 8px;border-radius:14px;border:1px solid #e3d2b3;background:#fffcf6!important;color:#5b3b23!important;font:inherit;cursor:pointer;box-shadow:0 3px 10px #5b3b2314;transition:transform .12s ease,box-shadow .12s ease}.carpentry-recipe:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #5b3b2322;border-color:#9a5b35}.carpentry-recipe strong{font-size:13px;text-align:center}.carpentry-recipe small{font-size:11px!important;letter-spacing:0!important;color:#9a5b35}.carpentry-recipe:disabled{opacity:.55;cursor:default}.carpentry-recipe .life-item-icon{margin:0}
.life-item-icon[data-kind=Gear]{background:#d6ebe9;color:#2f6f70;border-radius:12px}.life-item-icon[data-kind=Timber]{background:repeating-linear-gradient(90deg,#efdcc0 0 5px,#e6cfae 5px 10px);color:#8a5d3d;border-radius:10px}.carpentry-recipe .life-item-icon{width:52px;height:52px}.carpentry-recipe svg{width:40px;height:40px}
@media(max-width:650px){#carpentry-dialog header{top:12px;left:12px;padding:12px 18px}#carpentry-dialog h2{font-size:26px}.carpentry-recipe{padding:9px 5px}.carpentry-recipe strong{font-size:11px}}
.touch-device #carpentry-panel,.touch-device #ski-panel{bottom:190px;width:min(360px,calc(100vw - 24px));padding:10px 14px}
#drive-panel{position:absolute;right:20px;top:222px;width:220px;box-sizing:border-box;padding:10px 16px;border-radius:18px;background:#faf6eae0;color:#365957;box-shadow:0 6px 26px #142b3226;text-align:center;z-index:12}#drive-panel strong{display:block;font-size:1.15rem;font-variant-numeric:tabular-nums}#drive-panel p{margin:4px 0 8px;font-size:13px;line-height:1.45}#drive-panel p.drive-stuck{color:#a5493f;font-weight:700}#drive-panel button{background:#426d70;color:#fff}#drive-panel .drive-recover-button{margin-left:6px;background:#e9dfc8;color:#5b3b23;touch-action:none;user-select:none}
.drive-recover{--held:0;height:8px;margin:0 0 9px;border-radius:5px;background:#d9e5df;overflow:hidden;position:relative}.drive-recover::after{content:'';position:absolute;inset:0;width:calc(var(--held)*100%);background:#e0a64c;border-radius:5px}
.driving #look-prompt,.driving #dev-sounds,.driving #interaction-popup,.driving #pony-panel,.driving #home-panel,.driving #office-panel,.driving #train-panel,.driving #lift-panel,.driving #district-panel,.driving #bronco-panel,.driving #carpentry-panel,.driving #ski-panel{display:none!important}
@media(max-width:650px){#drive-panel{top:112px;left:12px;right:auto;width:min(220px,calc(100vw - 150px));padding:8px 12px}}
.skiing #pony-panel,.skiing #train-panel,.skiing #lift-panel,.skiing #district-panel,.skiing #bronco-panel,.skiing #carpentry-panel{display:none!important}
.skiing #ski-panel{background:#faf6eacc;padding:8px 16px;width:200px;left:auto;right:20px;transform:none;top:222px;bottom:auto}
@media(max-width:1099px){#carpentry-panel,#ski-panel{bottom:206px}}.skiing #ski-panel p{margin:4px 0 6px}
.venue-row{display:flex;flex-wrap:wrap;gap:8px}.venue-row .venue-adventures{display:contents}.bakery-conversation .venue-row button{margin:0;font-size:13px;padding:10px 18px}.bakery-conversation .venue-row .venue-secondary{background:transparent;color:#8a4f4e;border:1.5px solid #c99a98}.bakery-conversation .venue-row .venue-secondary:hover{background:#f3e3dc}
#kayak-hud{position:absolute;right:20px;top:222px;width:230px;box-sizing:border-box;padding:10px 16px;border-radius:18px;background:#faf6eae0;color:#365957;box-shadow:0 6px 26px #142b3226;text-align:center;z-index:12}#kayak-hud strong{display:block;font-size:1.15rem;font-variant-numeric:tabular-nums}#kayak-hud p{margin:4px 0 8px;font-size:13px;font-variant-numeric:tabular-nums}.kayak-breath{height:8px;margin:0 0 9px;border-radius:5px;background:#d9e5df;overflow:hidden}.kayak-breath i{display:block;height:100%;width:100%;background:#5f9ea0;transition:width .15s}.kayak-breath.low i{background:#d88f8a}
#kayak-banner{position:absolute;left:50%;top:22%;transform:translateX(-50%);padding:10px 34px;border-radius:24px;background:#fff6dcf2;border:3px solid #f3dc9c;color:#5b3b23;font:700 46px Quicksand,system-ui,sans-serif;box-shadow:0 6px 26px #142b3230;z-index:13;pointer-events:none}
.kayaking #guide-controls,.kayaking #look-prompt,.kayaking #interaction-popup{display:none!important}
#slalom-hud{position:absolute;right:20px;top:352px;width:200px;box-sizing:border-box;padding:10px 16px;border-radius:18px;background:#faf6eae6;color:#365957;box-shadow:0 6px 26px #142b3226;text-align:center;z-index:12;font-variant-numeric:tabular-nums}#slalom-hud strong{display:block;font-size:2rem;line-height:1.1;color:#2f4a5a}#slalom-hud p{margin:3px 0 0;font-size:13px}#slalom-hud .gap{display:inline-block;margin-top:6px;padding:2px 10px;border-radius:12px;font-weight:700;font-size:14px;background:#dcebd8;color:#3f6b45}#slalom-hud .gap.behind{background:#f4dcd8;color:#9a4a42}#slalom-hud .penalty{color:#c0564c;font-weight:700}
#slalom-banner{position:absolute;left:50%;top:22%;transform:translateX(-50%);padding:10px 34px;border-radius:24px;background:#fff6dcf2;border:3px solid #f3dc9c;color:#5b3b23;font:700 46px Quicksand,system-ui,sans-serif;box-shadow:0 6px 26px #142b3230;z-index:13;pointer-events:none;text-align:center}
#cave-hud{position:absolute;right:20px;top:352px;width:200px;box-sizing:border-box;padding:10px 16px;border-radius:18px;background:#2a1a12e6;color:#f6dcb4;box-shadow:0 6px 26px #0006;text-align:center;z-index:12;font-variant-numeric:tabular-nums}#cave-hud p{margin:0;font-size:12px;letter-spacing:.08em;text-transform:uppercase;opacity:.8}#cave-hud strong{display:block;font-size:2rem;line-height:1.1;color:#ffd27a}#cave-hud strong.low{color:#ff8a5c;animation:cave-low .6s ease-in-out infinite alternate}#cave-hud .oil{height:7px;margin:6px 4px 8px;border-radius:4px;background:#ffffff1f;overflow:hidden}#cave-hud .oil i{display:block;height:100%;background:linear-gradient(90deg,#ff9a4a,#ffd27a)}#cave-hud .seams{display:flex;justify-content:center;gap:8px}#cave-hud .seam{width:18px;height:18px;border-radius:50%;border:2px solid var(--c);box-sizing:border-box;opacity:.55}#cave-hud .seam.got{background:var(--c);opacity:1}#cave-hud .seam.bonus{border-style:dashed}@keyframes cave-low{to{opacity:.55}}
@media(max-width:650px){#slalom-hud,#cave-hud{top:112px;left:12px;right:auto;width:min(200px,calc(100vw - 170px));padding:8px 12px}#slalom-hud strong{font-size:1.5rem}#slalom-banner{font-size:34px;top:30%}}
@media(max-width:650px){#kayak-hud{top:112px;left:12px;right:auto;width:min(220px,calc(100vw - 150px));padding:8px 12px}#kayak-hud p{font-size:12px}.kayaking #journey-card{display:none!important}#kayak-banner{font-size:34px;top:30%}}

/* account: sign-in card and signed-in pill on the title screen */
#account-slot{margin:14px auto 0;color:#5f6a55}#account-slot[hidden]{display:none}
.account-card{width:min(380px,calc(100vw - 32px));margin:0 auto;padding:26px 26px 20px;border-radius:26px;background:linear-gradient(180deg,#fffdf7e6,#fbf5e8d9);border:1px solid #ffffffb0;box-shadow:0 18px 44px #2e45351f,0 2px 6px #2e453512;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);animation:accountRise .45s cubic-bezier(.2,.9,.3,1.1) both}
.account-card h2{font:600 1.45rem 'Fredoka',sans-serif;color:#354e40;letter-spacing:-.2px}
.account-card .account-lead{margin:6px auto 18px;max-width:290px;font-size:.92rem;line-height:1.45;color:#6a7262}
#account-google{display:flex;justify-content:center;min-height:44px}
.account-error{margin-top:10px;font-size:.82rem;color:#a2553f}.account-error:empty{display:none}
.account-divider{height:1px;margin:20px 8px 16px;background:linear-gradient(90deg,transparent,#d8ccb2,transparent)}
.account-perk{display:flex;gap:12px;align-items:center;text-align:left;padding:12px 14px;border-radius:16px;background:#f3ead7;border:1px solid #e7dbc0}
.account-perk svg{flex:none;width:38px;height:38px}
.account-perk strong{display:block;font:600 .92rem 'Fredoka',sans-serif;color:#6b4d2e}
.account-perk span{display:block;margin-top:2px;font-size:.8rem;line-height:1.4;color:#7e6c55}
.account-status{font-size:.88rem;color:#6a7262;min-height:44px;display:flex;align-items:center;justify-content:center}
.account-pill{display:inline-flex;align-items:center;gap:10px;padding:6px 6px 6px 7px;border-radius:999px;background:#fffdf7cc;border:1px solid #ffffffb0;box-shadow:0 6px 18px #2e453514;font-size:.85rem;color:#4f5a48;animation:accountRise .35s ease both}
.account-avatar{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#58785d;color:#fff;font:600 .85rem 'Fredoka',sans-serif}
.account-pill b{color:#354e40;font-weight:600}
#account-slot .account-pill button,#account-slot .account-choice button{padding:5px 12px;border:1.5px solid #58785d40;border-radius:999px;background:#fff;color:#3d6350;font:600 .78rem 'Quicksand',sans-serif}
#account-slot .account-pill button:hover,#account-slot .account-choice button:hover{background:#eef4ee}
.account-choice{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:14px}
#account-slot .account-choice button.primary{background:#58785d;color:#fff;border-color:#58785d}
@keyframes accountRise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.account-card,.account-pill{animation:none}}


/* Character creator wizard: preview beside the panel on desktop, above it on phones. */
#creator-screen{background:radial-gradient(circle at 70% 30%,#fbefdc,#f1dcc0 70%);flex-direction:row}
.creator-panel{width:440px;flex-shrink:0;height:100%;display:flex;flex-direction:column;background:#fffdf9f2;padding:28px 28px 20px;box-shadow:6px 0 30px #5d403714;z-index:2}
.creator-panel h2{font-size:1.75rem;color:#5d4037;margin-bottom:18px;text-align:center}
.creator-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:16px}
.creator-tab{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 4px 8px;border:2px solid #eadfce;border-radius:18px;background:#faf5ec;color:#8d6e63;font-weight:700;font-size:.82rem;transition:transform .15s,background .15s,border-color .15s}
.creator-tab .tab-icon{font-size:1.5rem;line-height:1}
.tone-dot{width:1.5rem;height:1.5rem;border-radius:50%;background:linear-gradient(135deg,#FDEBD0,#F5CBA7,#E0AC69,#C68642,#8D5524,#6B3A2A,#4A2511,#3B1E0E);box-shadow:0 0 0 2px #fff,0 1px 4px #5d403744}
.creator-tab:hover{transform:translateY(-2px)}
.creator-tab.active{border-color:#58785d;background:#e8f3e6;color:#2e5a38;box-shadow:0 4px 0 #58785d33}
.creator-tab.done:not(.active)::after{content:"✓";position:absolute;top:-6px;right:-4px;width:20px;height:20px;border-radius:50%;background:#7fb685;color:#fff;font-size:.72rem;line-height:20px;text-align:center}
.creator-steps{flex:1;min-height:0;overflow-y:auto;padding:2px 4px 8px}
.creator-step{display:none;animation:stepIn .25s ease}.creator-step.active{display:block}
@keyframes stepIn{from{opacity:0;transform:translateX(14px)}to{opacity:1;transform:none}}
.step-lead{margin-bottom:16px;color:#8d6e63;font-weight:600;text-align:center}
.creator-section{margin-bottom:20px;padding:14px;border-radius:18px;background:#fbf6ee}
.creator-section label{display:block;font-size:.92rem;font-weight:700;color:#795548;margin-bottom:10px}
.creator-section input{width:100%;padding:11px 16px;border:2px solid #e6d9c6;border-radius:14px;font-size:1rem;background:#fff;color:#4e342e}
.creator-section input:focus{outline:0;border-color:#7fb685}
.color-swatch{width:38px;height:38px;border-radius:50%;border:3px solid #fff;box-shadow:0 1px 4px #5d403733;cursor:pointer;transition:transform .12s}
.color-swatch:hover{transform:scale(1.1)}
.color-swatch.selected{border-color:#fff;box-shadow:0 0 0 3px #58785d}
.style-option{padding:9px 16px;border:2px solid #e6d9c6;border-radius:20px;cursor:pointer;font-size:.88rem;font-weight:700;color:#795548;background:#fff;transition:transform .12s}
.style-option:hover{transform:translateY(-1px)}
.style-option.selected{border-color:#66bb6a;background:#e8f5e9;color:#2e7d32}
.creator-nav{display:flex;gap:10px;padding-top:12px;border-top:2px dashed #eadfce}
.creator-nav .btn-primary{flex:1;padding:13px 20px;font-size:1.1rem}
.btn-ghost{border:2px solid #e0d2bd;border-radius:30px;background:#fff;color:#795548;font-weight:700;font-size:1rem;padding:11px 20px}
.btn-ghost:disabled{visibility:hidden}
.creator-preview{flex:1;min-width:0;display:flex;align-items:center;justify-content:center}
#preview-canvas{width:100%;height:100%}
@media(max-width:768px){
  #creator-screen.active{flex-direction:column}
  .creator-preview{order:-1;flex:none;height:42%}
  .creator-panel{width:100%;height:58%;flex:1;min-height:0;padding:14px 14px calc(12px + env(safe-area-inset-bottom));border-radius:26px 26px 0 0;box-shadow:0 -6px 24px #5d403720;margin-top:-18px}
  .creator-panel h2{font-size:1.3rem;margin-bottom:10px}
  .creator-tabs{gap:6px;margin-bottom:10px}
  .creator-tab{flex-direction:row;justify-content:center;gap:5px;padding:8px 2px;font-size:.78rem;border-radius:14px}
  .creator-tab .tab-icon{font-size:1.15rem}.tone-dot{width:1.15rem;height:1.15rem}
  .step-lead{margin-bottom:10px;font-size:.9rem}
  .creator-section{padding:12px;margin-bottom:12px}
  .color-swatch{width:40px;height:40px}
}
@media(max-width:330px){.creator-tab .tab-label{display:none}.creator-tab{padding:10px 2px}.creator-tab .tab-icon{font-size:1.4rem}}

/* Gamepad menu navigation: show which button the controller has selected. */
body.gamepad-ui :focus { outline: 3px solid #f5c542; outline-offset: 2px; }
/* The right stick looks around, so a controller never needs the click-to-lock prompt. */
body.gamepad #look-prompt { display: none; }
/* PlayStation glyphs (✕ ○ □ △) are tiny in the monospace key font. */
#menu-home p{margin:0 0 8px;font-size:14px;line-height:1.45;color:#5c5a48}#menu-home-now{font-weight:700;color:#354e40!important}
body.gamepad #game-menu kbd, body.gamepad #menu-keys dt { font: 700 13px Quicksand, "Apple Symbols", "Segoe UI Symbol", "Noto Sans Symbols 2", sans-serif; }

/* Valley map (M): the whole world, zoomable. */
#valley-map{margin:auto;width:min(1180px,calc(100vw - 32px));max-width:none;height:min(860px,calc(100vh - 32px));max-height:none;padding:16px 18px;border:0;border-radius:18px;background:#faf6eaf7;color:#354e40;box-shadow:0 20px 60px #0004}
#valley-map[open]{display:flex;flex-direction:column}
#valley-map::backdrop{background:#1b261f88}
#valley-map header{display:flex;align-items:center;gap:10px;margin-bottom:12px}
#valley-map h2{margin:0;font-size:20px}
#valley-map header span{flex:1;font-size:12px;color:#756e59}
.valley-map-frame{position:relative;flex:1;min-height:0}
#valley-canvas{display:block;width:100%;height:100%;border-radius:12px;cursor:grab;touch-action:none;box-shadow:inset 0 0 0 1px #0002}
#valley-canvas.dragging{cursor:grabbing}
.valley-map-tools{position:absolute;right:12px;top:12px;display:flex;flex-direction:column;gap:6px}
.valley-map-tools button{width:40px;height:40px;padding:0;font-size:22px;line-height:1}
.valley-map-tools button:disabled{opacity:.45;cursor:default}
@media(max-width:650px){#valley-map{padding:12px}#valley-map header span{display:none}}
#guide-controls{left:0;right:0;margin:0 auto;width:max-content;transform:none}
#journey-action{position:fixed;left:20px;top:50%;transform:translateY(-50%)}
.touch-device #journey-action{display:none}
/* Nura's bunting: the 3D knot puzzle at Tassel Tide Dock */
#knot-dialog{margin:auto;width:min(700px,calc(100vw - 24px));max-height:calc(100vh - 24px);padding:18px 22px 20px;border:0;border-radius:18px;background:#faf5eb;color:#354e40;outline:none;overflow:auto}
#knot-dialog::backdrop{background:#21332990;backdrop-filter:blur(4px)}
#knot-dialog h2{margin:0 0 6px;font-size:21px}
#knot-text{margin-bottom:10px;line-height:1.4;font-size:15px}
#knot-stage{position:relative;width:100%;aspect-ratio:3/2;border-radius:14px;overflow:hidden;background:radial-gradient(circle at 50% 40%,#fff6df,#d9e6da);border:2px solid #cdb98a;touch-action:none;cursor:none}
#knot-stage canvas{display:block;width:100%;height:100%}
#knot-cursor{position:absolute;width:34px;height:34px;margin:-17px 0 0 -17px;border:3px solid #354e40;border-radius:50%;pointer-events:none;transition:transform .08s,border-color .08s,background .08s}
#knot-cursor::after{content:"";position:absolute;inset:11px;border-radius:50%;background:#354e40}
#knot-cursor[data-on=node]{transform:scale(1.35);border-color:#e08a2c;background:#e08a2c33}
#knot-cursor[data-on=node]::after{background:#e08a2c}
#knot-cursor[data-on=fray]{transform:scale(1.35);border-color:#d0506f;background:#d0506f33}
#knot-cursor[data-on=fray]::after{background:#d0506f}
#knot-status{min-height:1.5em;margin:8px 0 6px;font-weight:700;color:#4f8584}
#knot-status[data-tone=bad]{color:#c0405f}
#knot-status[data-tone=good]{color:#3e8a5a}
#knot-controls{display:flex;flex-wrap:wrap;gap:6px 14px;margin-bottom:10px;font-size:13px;color:#6a6a54}
#knot-controls kbd{display:inline-block;min-width:1.6em;padding:1px 7px;border:1px solid #b9ad8a;border-bottom-width:3px;border-radius:7px;background:#fff;font:700 12px system-ui;text-align:center;color:#354e40}
.knot-buttons{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.knot-buttons .btn-primary{margin-left:auto}

/* Purl Pond (skating.js): the speed panel sits top right like skiing's; the pond HUD under it; the banner for countdowns and catches. */
#skate-panel{position:absolute;right:20px;top:222px;width:220px;box-sizing:border-box;padding:8px 16px;border-radius:18px;background:#f4f9fbe6;color:#2f4a5a;box-shadow:0 6px 26px #142b3226;text-align:center;z-index:12}
#skate-panel strong{font-size:17px}#skate-panel p{font-size:12px;line-height:1.35;margin:4px 0 6px}#skate-panel button[hidden]{display:none}
#skate-hud{position:absolute;right:20px;top:372px;width:220px;box-sizing:border-box;padding:10px 16px;border-radius:18px;background:#f4f9fbe6;color:#365957;box-shadow:0 6px 26px #142b3226;text-align:center;z-index:12;font-variant-numeric:tabular-nums}
#skate-hud strong{display:block;font-size:1.8rem;line-height:1.1;color:#2f4a5a}#skate-hud p{margin:3px 0 0;font-size:13px}#skate-hud .gap{color:#2f7f6a;font-weight:600}#skate-hud .penalty{color:#b0503f;font-weight:600}
#skate-banner{position:absolute;left:50%;top:38%;transform:translateX(-50%);padding:10px 34px;border-radius:24px;background:#f4fbffef;border:3px solid #bfe1ee;color:#2f4a5a;font:700 38px Quicksand,system-ui,sans-serif;box-shadow:0 6px 26px #142b3230;z-index:13;pointer-events:none;text-align:center;white-space:nowrap}
@media(max-width:650px){#skate-panel{top:auto;bottom:190px;left:50%;right:auto;transform:translateX(-50%);width:min(300px,calc(100vw - 32px))}#skate-hud{top:112px;left:12px;right:auto;width:min(200px,calc(100vw - 170px));padding:8px 12px}#skate-hud strong{font-size:1.4rem}#skate-banner{font-size:30px;top:30%}}
.skating #ski-panel,.skating #carpentry-panel{display:none!important}
/* Rukhsana's land office (land-office.js): the tier's menu as a row of framed cards. */
.office-later{list-style:none;margin:0 26px 8px;padding:0;display:grid;gap:6px;opacity:.62}.office-later li{padding:8px 12px;border:1px dashed #8c6b4a66;border-radius:10px;font-size:13px;line-height:1.4}.office-later strong{display:block;color:#4b3826}.office-later span{color:#6b604c}
#land-office-dialog{margin:auto;overflow:auto;width:min(980px,calc(100vw - 32px));max-height:calc(100vh - 48px);border:0;border-radius:22px;padding:0;background:#fbf4e6;color:#4b3826;box-shadow:0 24px 60px #0005}
#land-office-dialog::backdrop{background:#2a1f1680}
#land-office-dialog header{padding:22px 26px 10px;display:flex;gap:16px;align-items:flex-start;justify-content:space-between}
#land-office-dialog header small{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:#7f8f5e}
#land-office-dialog h2{font:30px Georgia,serif;margin:4px 0 6px}
#land-office-dialog .office-line{margin:0;font-style:italic;max-width:62ch;line-height:1.45}
#land-office-dialog .office-home{padding:0 26px 6px;font-size:13px;color:#6e5038}
#land-office-dialog h3{font:600 12px system-ui;letter-spacing:.08em;text-transform:uppercase;color:#7f8f5e;margin:14px 26px 8px}
#land-office-dialog .office-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;padding:0 26px 8px}
#land-office-dialog .office-card{border:6px solid #8c6b4a;outline:2px solid #c9a66b;outline-offset:-10px;border-radius:6px;background:#fffaf0;padding:16px 16px 14px;display:flex;flex-direction:column;gap:6px}
#land-office-dialog .office-card strong{font:20px Georgia,serif}
#land-office-dialog .office-card p{margin:0;font-size:13px;line-height:1.4}
#land-office-dialog .office-cost{font-weight:600;color:#5f7350}
#land-office-dialog .office-needs{color:#a8754f;font-size:12px}
#land-office-dialog .office-card button{margin-top:auto}
#land-office-dialog footer{padding:10px 26px 22px;display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:12px;color:#6e5038}
@media(max-width:650px){#land-office-dialog header{padding:16px 16px 6px}#land-office-dialog h2{font-size:24px}#land-office-dialog .office-cards,#land-office-dialog .office-home{padding-left:16px;padding-right:16px}#land-office-dialog h3{margin-left:16px}.office-later{margin-left:16px;margin-right:16px}#land-office-dialog footer{padding:8px 16px 16px}}
#btn-multiplayer.selected{background:#eef4ee;border-color:#58785d}#mp-choices{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin:14px auto 0;max-width:560px}.mp-choice{--from-x:0px;--from-y:0px;display:flex;flex-direction:column;gap:3px;width:min(250px,100%);padding:14px 20px;border:2px solid #58785d44;border-radius:18px;background:#faf6eaf7;color:#354e40;text-align:left;box-shadow:0 10px 24px #0000001f;opacity:0;transform:translate(var(--from-x),var(--from-y)) scale(.4);transition:opacity .22s ease,transform .38s cubic-bezier(.2,.9,.3,1.25),border-color .15s,background .15s}#mp-choices.open .mp-choice{opacity:1;transform:none}#mp-choices.open .mp-choice:nth-child(2){transition-delay:.06s}.mp-choice strong{font-size:1.1rem}.mp-choice span{font-size:.82rem;color:#6a6552}.mp-choice:hover,.mp-choice.selected{border-color:#58785d;background:#fff}
#private-panel{width:min(440px,100%);margin:14px auto 0;padding:18px 22px 14px;border-radius:18px;background:#faf6eaf7;color:#354e40;box-shadow:0 14px 34px #0000002e;text-align:center;opacity:0;transform:translateY(-10px) scale(.98);transform-origin:top center;transition:opacity .18s ease,transform .18s cubic-bezier(.2,.9,.3,1.2)}#private-panel.open{opacity:1;transform:none}#private-panel h2{margin:0 0 6px;font-size:20px}#private-when{margin:0 0 12px;font-size:14px;line-height:1.4;color:#6a6552}.private-row{display:flex;gap:8px;margin-bottom:12px}#private-url{flex:1;min-width:0;padding:11px 12px;border-radius:12px;background:#ece5d3;color:#354e40;font:600 13px ui-monospace,monospace;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;user-select:all;cursor:default}#private-copy{padding:0 16px;border:2px solid #58785d55;border-radius:12px;background:#fff;color:#3d6350;font-weight:700}#private-copy:hover{background:#eef4ee}#private-enter{font-size:1rem;padding:11px 28px}#private-have-code{display:block;margin:8px auto 0;padding:4px 10px;border:0;background:none;color:#6f6a56;font-size:13px;text-decoration:underline}#private-have-code:hover{color:#354e40}
@media(prefers-reduced-motion:reduce){.mp-choice,#private-panel{transition:none}}
#title-screen{overflow-y:auto}.title-choices{position:relative}#mp-pop{position:absolute;top:100%;left:50%;z-index:5;width:min(560px,calc(100vw - 32px));transform:translateX(-50%);padding-bottom:16px}#mp-pop #world-gate{margin-top:14px}#title-screen:has(#mp-pop>:not([hidden])) :is(#title-note,#account-slot){visibility:hidden}
#loading-screen{position:fixed;inset:0;z-index:1000;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;background:radial-gradient(ellipse at 50% 25%,#f8efd9,transparent 65%),linear-gradient(165deg,#dbe4cf,#98b49a);color:#354e40;font:500 1.25rem Fredoka,Quicksand,sans-serif;transition:opacity .35s ease}#loading-screen[hidden]{display:none}#loading-screen.done{opacity:0;pointer-events:none}#loading-screen p{margin:0}.loading-spinner{width:54px;height:54px;border-radius:50%;border:6px solid #58785d33;border-top-color:#58785d;will-change:transform;animation:loadingSpin .9s linear infinite}@keyframes loadingSpin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.loading-spinner{animation-duration:2.4s}}
/* Home: the chest and the paint pots (home.js), in the settings dialog's look; the wardrobe at home is SilkPath's dialog on your own clothes only. */
.home-dialog{margin:auto;width:min(480px,calc(100vw - 32px));max-height:calc(100vh - 32px);padding:22px 24px;border:0;border-radius:18px;background:#faf5eb;color:#354e40;overflow:auto}.home-dialog::backdrop{background:#21332980;backdrop-filter:blur(4px)}.home-dialog header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.home-dialog h2{margin:0;font-size:22px}.home-dialog h3{margin:16px 0 8px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#756e59}.home-dialog p{margin:0;font-size:13px;line-height:1.5;color:#5c5a48}.home-dialog-note{min-height:20px}.home-dialog-row{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid #756c4e1f;font-size:14px}.home-dialog-row span{flex:1;min-width:0}.home-swatches{display:flex;flex-wrap:wrap;gap:8px}.home-swatch{width:34px;height:34px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px #756c4e55;cursor:pointer;padding:0}.home-swatch[aria-pressed=true]{box-shadow:0 0 0 3px #354e40}
#shop-dialog.home-wardrobe .shop-browse nav,#shop-dialog.home-wardrobe #shop-buy{display:none}
