@font-face{font-family:Garden;src:local('Avenir Next');font-weight:100 900}
*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden;overscroll-behavior:none}
body{font-family:Garden,'Trebuchet MS',sans-serif;color:#485642;background:#f5eddd;-webkit-tap-highlight-color:transparent;user-select:none}
.symbols{position:absolute;width:0;height:0;overflow:hidden}
button{font:inherit;border:0;cursor:pointer;color:inherit;touch-action:manipulation}
button:focus-visible,canvas:focus-visible{outline:3px solid #608e82;outline-offset:4px}
header{position:absolute;z-index:3;left:max(28px,env(safe-area-inset-left));right:max(28px,env(safe-area-inset-right));top:max(20px,env(safe-area-inset-top));display:flex;align-items:center;justify-content:space-between;gap:12px;pointer-events:none}
.wordmark,.utilities{pointer-events:auto}.wordmark{display:flex;flex-direction:column}.brand{font-weight:800;font-size:43px;line-height:1;letter-spacing:-2.8px}.brand-dot{color:#c88261}.tagline{font-size:11px;letter-spacing:.25px;margin-top:8px;color:#8b8f78;white-space:nowrap}.utilities{display:flex;gap:7px}
.utility{height:48px;width:48px;flex-shrink:0;background:#fff9ecce;border:1px solid #e4dbc580;border-radius:50%;display:grid;place-items:center;box-shadow:0 3px 8px #675c3b05}.utility svg{width:22px;height:22px;fill:currentColor}.utility:hover{background:#fffbf1}.utility:active{transform:scale(.94)}.utility[aria-pressed=true]{opacity:.45}.help{font-size:20px;font-weight:600}
#stage{position:absolute;top:92px;left:0;right:0;bottom:168px}canvas{display:block;width:100%;height:100%;touch-action:none}
footer{position:absolute;z-index:2;bottom:max(20px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100% - 24px)}
#hint{text-align:center;margin-bottom:15px;font-size:15px;color:#6a765f;letter-spacing:.1px;min-height:22px}
.tools{display:grid;grid-template-columns:repeat(8,64px);gap:7px;padding:10px 12px;border:1px solid #fffdf4;background:#fff9eced;box-shadow:0 9px 26px #6e633715,inset 0 -3px 0 #d9c8a525;border-radius:26px}
.tools button{width:64px;height:72px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:transparent;border-radius:17px;position:relative;transition:background .15s,transform .2s cubic-bezier(.2,1.5,.5,1)}
.tools button svg{width:43px;height:43px;transition:transform .2s}.tools button span{font-size:10px;letter-spacing:.2px;color:#8b8e79}
.tools button[aria-pressed=true]{background:#e4ecd1;box-shadow:inset 0 0 0 1px #cfddbd;transform:translateY(-3px)}.tools button[aria-pressed=true] svg{transform:rotate(-6deg) translateY(-1px)}.tools button[aria-pressed=true] span{color:#627d5c}.tools button:active{transform:scale(.91)}
.undertray{display:flex;align-items:center;gap:5px;font-size:9px;letter-spacing:1px;color:#aaa18b;padding:10px 14px 0}.tiny-dot{width:4px;height:4px;border-radius:50%;background:#97ac84}.undertray-right{margin-left:auto;font-size:9px;letter-spacing:.4px}
#guide{position:absolute;pointer-events:none;display:none;width:44px;height:44px;transform:translate(-50%,-100%);filter:drop-shadow(0 4px 2px #665b3020);animation:bob 2s ease-in-out infinite}#guide svg{width:44px;height:44px;background:#fff9e8df;border-radius:50%;padding:6px}.guide-ring{position:absolute;width:24px;height:10px;border:2px solid #fef5c5;border-radius:50%;left:10px;bottom:-6px;animation:pulse 2s ease-out infinite}
#loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#f5eddd;transition:opacity .5s;pointer-events:none}#loading p{font-size:13px}.loading-seed{width:15px;height:25px;background:#a5ba81;border-radius:80% 20% 80% 20%;animation:bob 1.5s infinite}
dialog{max-width:430px;width:calc(100% - 34px);max-height:90%;border:1px solid #fff8e4;background:#fbf4e6;color:#5b654e;padding:34px;border-radius:26px;box-shadow:0 20px 90px #414c3430;user-select:text}dialog::backdrop{background:#5a65483d;backdrop-filter:blur(5px)}dialog .utility{position:absolute;right:10px;top:10px}.eyebrow{font-size:9px;letter-spacing:1.8px;color:#9b977e}h1{font-size:28px;letter-spacing:-1px;font-weight:600;line-height:1.2;margin:22px 0 18px}dialog p{font-size:13px;line-height:1.65}.smallprint{font-size:11px!important;color:#96957e;border-top:1px solid #e4dcc6;padding-top:15px}
.fresh{animation:fresh .5s ease-out}@keyframes fresh{from{opacity:.4}to{opacity:1}}@keyframes bob{50%{transform:translate(-50%,-112%) rotate(-4deg)}}@keyframes pulse{from{opacity:.8;scale:.7}to{opacity:0;scale:1.7}}
@media(max-width:700px){header{left:18px;right:18px;top:max(18px,env(safe-area-inset-top))}.brand{font-size:37px}.tagline{font-size:9px;margin-top:6px}.utilities{gap:4px}#stage{top:92px;bottom:221px}footer{bottom:max(16px,env(safe-area-inset-bottom));max-width:calc(100% - 24px)}.tools{grid-template-columns:repeat(4,68px);gap:5px 10px;padding:10px 13px;border-radius:26px}.tools button{width:68px;height:65px}.tools button svg{width:40px;height:40px}.tools button span{font-size:9px}.undertray{font-size:8px;padding:9px 8px 0}.undertray-right{font-size:8px}#hint{font-size:13px;margin-bottom:10px}}
@media(max-width:350px){header{left:14px;right:14px;top:14px;gap:8px}.brand{font-size:31px}.tagline{font-size:8px}.utilities{gap:1px}.tools{grid-template-columns:repeat(4,60px);gap:4px 6px;padding:9px 10px}.tools button{width:60px;height:59px}.tools button svg{width:35px;height:35px}#stage{top:82px;bottom:205px}.undertray-right{display:none}.undertray{justify-content:center}}
@media(max-height:520px) and (orientation:landscape){header{top:10px;left:20px;right:20px}.brand{font-size:30px}.tagline{display:none}#stage{top:45px;bottom:122px;left:70px;right:70px}footer{bottom:9px}.tools{grid-template-columns:repeat(8,50px);gap:5px;padding:7px 10px;border-radius:21px}.tools button{width:50px;height:54px}.tools button svg{width:31px;height:31px}.tools button span{font-size:8px}.undertray{display:none}#hint{font-size:11px;margin-bottom:5px;min-height:16px}dialog{max-width:560px;padding:24px}h1{font-size:22px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

[hidden]{display:none!important}.tools.garden{grid-template-columns:repeat(4,64px)}
@media(max-width:700px){.brand{font-size:33px}.tagline{font-size:8px}.utilities{gap:2px}.tools.garden{grid-template-columns:repeat(4,68px)}}
@media(max-width:350px){header{left:12px;right:12px;gap:4px}.brand{font-size:26px}.tagline{display:none}.utilities{gap:1px}.tools.garden{grid-template-columns:repeat(4,60px)}}
@media(max-height:520px) and (orientation:landscape){.tools.garden{grid-template-columns:repeat(4,50px)}}

.travel-controls{position:absolute;inset:0;pointer-events:none}.travel{position:absolute;width:54px;height:54px;border-radius:50%;background:#fff9ecef;border:1px solid #dfdcc7;box-shadow:0 4px 12px #4b593315;display:grid;place-items:center;pointer-events:auto;transition:transform .16s,background .16s}.travel:active{transform:scale(.92)}.travel-icon{width:31px;height:31px}.travel-arrow{position:absolute;width:17px;height:17px;right:-7px;top:19px;color:#6e8661}.travel-label{position:absolute;top:59px;left:50%;transform:translateX(-50%);font-size:10px;white-space:nowrap;color:#738064}.travel[data-unexplored=true]{box-shadow:0 0 0 4px #e2eace80,0 4px 12px #4b593315}.travel.north{left:calc(50% - 27px);top:4px}.travel.north .travel-arrow{top:-8px;left:19px;transform:rotate(-90deg)}.travel.east{right:11px;top:20%}.travel.south{left:calc(50% - 27px);bottom:20px}.travel.south .travel-arrow{top:43px;left:19px;transform:rotate(90deg)}.travel.west{left:11px;top:20%}.travel.west .travel-arrow{right:43px;transform:rotate(180deg)}
.area-name{position:absolute;top:83px;left:50%;transform:translateX(-50%);display:flex;gap:5px;align-items:center;font-size:12px;color:#7c886c;pointer-events:none;white-space:nowrap}.area-name svg{width:18px;height:18px}.map-toggle{position:absolute;left:16px;bottom:24px;width:52px;height:52px}.map-toggle svg{width:24px;height:24px}.region-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.region-choice{height:82px;border-radius:17px;background:#e9ecd9;border:1px solid #d8dfc3;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:3px}.region-choice svg{width:38px;height:38px}.region-choice span{font-size:9px;color:#758069;max-width:100%;white-space:nowrap}.region-choice.current{background:#dbe8c7;box-shadow:inset 0 0 0 2px #99b27a}.region-choice:disabled{background:#eeefdf;border-style:dashed;cursor:default}.region-choice:disabled span{color:#a5ab98}.region-choice:active:not(:disabled){transform:scale(.95)}.map-note{color:#8a927c;font-size:12px;line-height:1.5;text-align:center;margin-bottom:0}#world-map{max-width:350px;padding:30px 22px 22px}#world-map h1{font-size:25px;margin-top:20px}
@media(max-width:350px){.travel{width:50px;height:50px}.travel.north,.travel.south{left:calc(50% - 25px)}.travel.east{right:8px}.travel.west{left:8px}.travel-label{font-size:8px;top:54px}.area-name{top:72px;font-size:10px}.travel.south{bottom:10px}.map-toggle{bottom:11px;left:11px}.travel-icon{width:28px;height:28px}}
@media(max-height:520px) and (orientation:landscape){.travel.north{left:auto;right:7px;top:2px}.travel.south{left:auto;right:7px;bottom:9px}.travel.east{right:-53px;top:38%}.travel.west{left:-53px;top:38%}.travel-label{display:none}.area-name{top:4px;left:0;transform:none;font-size:10px}.map-toggle{left:0;bottom:9px}.travel{width:48px;height:48px}.travel-icon{width:27px;height:27px}#world-map{max-height:96%;padding-top:18px}#world-map h1{margin:8px 0;font-size:20px}.region-choice{height:60px}.region-choice svg{height:29px;width:29px}.map-note{margin-top:8px}}

@media(orientation:portrait){.travel.south{bottom:36px}}
@media(max-width:350px) and (orientation:portrait){.travel.south{bottom:24px}.travel.west .travel-arrow{right:39px}}

.travel-label{background:#fff9eceb;padding:3px 6px;border-radius:8px;box-shadow:0 1px 4px #5b663c08}.area-name{background:#fff9ece8;border:1px solid #e7e6d6;padding:4px 10px;border-radius:18px;box-shadow:0 2px 7px #5b663c09}
@media(orientation:portrait){.area-name{top:92px}.travel.south{bottom:42px}}
@media(max-width:350px) and (orientation:portrait){.area-name{top:82px}.travel.south{bottom:30px}}

/* The hosted sandbox keeps a native return path and a touchable recovery. */
a.wordmark{color:inherit;text-decoration:none;min-height:48px;min-width:80px;justify-content:center}
a:focus-visible{outline:3px solid #608e82;outline-offset:4px}
#loading[data-failed]{pointer-events:auto;z-index:5;padding:20px;text-align:center;gap:12px}
#loading[data-failed] p{max-width:280px;font-size:16px;line-height:1.5}
.recovery-action{display:inline-flex;align-items:center;justify-content:center;min-width:140px;min-height:48px;padding:12px 18px;border-radius:16px;background:#e4ecd1;color:#485642;text-decoration:none;font:inherit;font-size:16px}
.no-script{position:fixed;inset:0;z-index:10;background:#f5eddd;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;text-align:center;padding:24px}
a.wordmark .tagline{display:block;font-size:10px;line-height:12px;margin-top:3px}
.brand-back{font-size:.8em;letter-spacing:0;margin-right:3px}
