@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+Thai:wght@400;500;600;700&family=Quicksand:wght@400;500;600;700&display=swap');
:root{font-family:'Quicksand','Noto Sans Thai',sans-serif;color:#42594e;--paper:#fffdf4;--green:#527c63;--line:#dfe4d3}*{box-sizing:border-box}body{margin:0;overflow:hidden;background:#bfd8aa}button,input{font:inherit}button{cursor:pointer;color:inherit;border:1px solid var(--line);background:var(--paper);border-radius:12px;padding:10px 16px;transition:.18s}button:hover{background:#eaf1dc;transform:translateY(-2px)}button:focus-visible{outline:3px solid #a982bf}button:disabled{opacity:.5;cursor:default}#world{width:100vw;height:100dvh;display:block;touch-action:none}header{position:absolute;top:22px;left:28px;right:28px;display:flex;align-items:center;gap:14px;pointer-events:none}header>*{pointer-events:auto}.brand{display:flex;align-items:center;gap:10px;color:#436c55;text-decoration:none;font-size:36px;font-weight:700;letter-spacing:3px;text-shadow:0 1px #fff}.brand span{font-size:23px}.brand small{display:block;font-size:10px;letter-spacing:1px;font-weight:500}.season{margin-left:auto;background:#fffdf2eb;border:1px solid #fff;border-radius:16px;padding:12px 24px;box-shadow:0 4px 20px #46683e10;font-size:14px}.season small{display:block;text-align:center;color:#8b9985;font-size:10px}.wallet{background:#fffdf2ee;border:1px solid white;border-radius:16px;padding:10px 22px;color:#ad8750;font-size:20px}.wallet small{font-size:10px;display:block;text-align:right}.profile{position:absolute;top:110px;left:28px;display:flex;align-items:center;gap:12px;padding:10px 18px 10px 8px;border-radius:18px;background:#fffdf2eb;min-width:260px;box-shadow:0 4px 20px #496b3b10}.portrait{width:54px;height:60px;background-image:none;background-size:contain;background-position:0 0}.profile small{display:block;font-size:10px;color:#839181;margin-top:3px}.bar{height:4px;background:#e3e6d6;border-radius:4px;margin-top:7px;width:115px}.bar i{display:block;background:#a7ba80;height:100%;border-radius:4px}.energy{font-size:14px;color:#b49b58;margin-left:10px}.side{position:absolute;left:28px;top:220px;display:flex;flex-direction:column;gap:12px}.side button{position:relative;width:64px;height:65px;font-size:23px;padding:7px;box-shadow:0 3px 10px #496b3b0b;background:#fffdf2ed}.side span{display:block;font-size:10px}.side i{position:absolute;right:-5px;top:-5px;font-size:10px;font-style:normal;background:#b191b7;color:white;width:19px;height:19px;border-radius:50%;padding:2px}.location{position:absolute;right:28px;top:120px;font-size:14px;text-align:right;color:#56705a}.location span{display:block;font-size:10px;color:#7c9375}.mapbox{position:absolute;right:28px;bottom:180px;padding:7px;background:#fffdf0df;border:1px solid white;border-radius:18px;box-shadow:0 4px 25px #385d3c15}.mapbox canvas{display:block;border-radius:12px;width:140px;height:140px}.mapbox small{display:block;text-align:center;font-size:9px;margin:6px 0 0}.bottom{position:absolute;bottom:17px;left:50%;transform:translateX(-50%);max-width:90vw}.hint{text-align:center;color:#536e53;font-size:11px;margin-bottom:10px;text-shadow:0 1px #ffffffb0}.bottomline{display:flex;align-items:center;gap:12px;font-size:9px;margin-top:12px;white-space:nowrap}.bottomline button{padding:5px 10px;font-size:10px;background:#fffdf2c9}.bottomline>span:first-child{margin-right:auto;color:#738567}#saved{color:#7f9273}#toast{position:absolute;top:200px;left:50%;transform:translateX(-50%);background:#fffdf5f2;border-radius:12px;padding:12px 24px;box-shadow:0 5px 30px #56734722;font-size:13px;opacity:0;transition:.2s;pointer-events:none}#toast.show{opacity:1}dialog{background:#fffdf5;color:#42594e;border:1px solid white;border-radius:24px;box-shadow:0 25px 100px #24443144;padding:28px;width:min(570px,92vw);max-height:85dvh;overflow:auto}dialog::backdrop{background:#24463155;backdrop-filter:blur(5px)}.panelhead{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);margin-bottom:20px;padding-bottom:16px}.panelhead small{font-size:9px;letter-spacing:3px;color:#9aab8a}.panelhead h2{margin:6px 0 0;font-size:24px}.panelhead button{border:0;background:transparent}.row{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid #e8eadf}.row .icon{font-size:28px;width:44px;text-align:center}.row .info{flex:1}.row small{display:block;font-size:11px;color:#8a9885}.row button{padding:7px 10px;font-size:11px}.row b{font-size:14px}.primary{background:#65836a;color:#fff;border-color:#65836a}.primary:hover{background:#526d58}.note{font-size:12px;line-height:1.8;color:#89947f}.tabs{display:flex;gap:8px;margin:12px 0}.empty{padding:25px;text-align:center;color:#96a18b}.intro{text-align:center}.intro>small{font-size:9px;letter-spacing:3px;color:#9ca88b}.intro h1{font-size:48px;letter-spacing:-2px;color:#5c7c62;margin:14px 0}.intro h1 span{display:block;font-size:15px;letter-spacing:2px;margin-top:4px}.intro p{font-size:12px;color:#8d9985;line-height:1.9}.characters{display:flex;gap:14px;margin:22px 0}.characters button{flex:1;background:#f4f3e9;padding:10px}.characters button.selected{border:2px solid #92ab80;background:#edf0df}.characters b,.characters small{display:block}.characters small{font-size:9px;color:#8c9883;margin-top:5px}.character{height:145px;width:145px;margin:auto;background-image:none;background-size:contain;background-repeat:no-repeat}.female{background-position:0 0}.male{background-position:33.333% 0}.namelabel{display:block;font-size:11px}.namelabel input{display:block;width:100%;border:1px solid var(--line);border-radius:10px;background:#fffefa;padding:12px;margin:6px 0 14px;color:#506751}.start{width:100%;padding:14px}.localnote{display:block;text-align:center;font-size:9px;color:#a2ac95;margin-top:13px}.saveactions{display:flex;flex-wrap:wrap;gap:10px}.danger{color:#ae7265}#welcome{width:540px} @media(max-width:700px){header{top:12px;left:12px;right:12px;gap:6px}.brand{font-size:24px;gap:4px}.brand span{font-size:15px}.brand small{display:none}.season{padding:8px;font-size:10px}.wallet{padding:8px;font-size:15px}.wallet small{display:none}header>button{padding:7px}.profile{top:82px;left:12px;min-width:210px;transform:scale(.85);transform-origin:left top}.side{left:12px;top:170px;gap:8px}.side button{width:51px;height:52px;font-size:18px}.location{right:12px;top:90px;font-size:11px}.mapbox{right:12px;bottom:177px}.mapbox canvas{width:88px;height:88px}.mapbox small{font-size:7px}.bottom{bottom:12px;max-width:97vw}.bottomline{gap:5px;justify-content:center}.bottomline>span:first-child{display:none}.hint{font-size:9px}.character{height:110px;width:110px}.intro h1{font-size:38px}dialog{padding:20px}.row{gap:7px}.row button{padding:7px}.row .icon{width:30px}}
.welcomeactions{justify-content:center;margin-top:12px}.welcomeactions button{font-size:11px}.row:has([data-action="delete-slot"]){flex-wrap:wrap}.row:has([data-action="delete-slot"]) .info{min-width:150px}.row [data-action="delete-slot"]{color:#aa635a}button[hidden]{display:none}
body{background:#d9c3a3}.waterstock{font-size:10px;color:#689998;white-space:nowrap}.profile{flex-wrap:wrap}.bottom{max-width:96vw}@media(max-width:700px){.profile{max-width:265px}.bottomline{white-space:normal}}
/* Context action wheel: the centre stays transparent so the object remains visible. */
.object-menu{position:fixed;width:270px;height:270px;z-index:12;pointer-events:none;isolation:isolate;animation:wheel-in .16s ease-out}.object-menu[hidden]{display:none}.radial-guide{position:absolute;inset:40px;border:1px dashed #fff9;border-radius:50%;background:radial-gradient(circle,transparent 56%,#eadcf228 100%);pointer-events:none}.radial-caption{position:absolute;left:50%;top:50%;transform:translate(-50%,14px);min-width:112px;max-width:165px;padding:8px 14px;background:#5f94abbf;border:1px solid #d8eef1d9;color:#fff;border-radius:22px;box-shadow:0 4px 12px #61798717;text-align:center;backdrop-filter:blur(5px);pointer-events:none}.radial-caption b{display:block;font-size:12px;font-weight:600;white-space:nowrap}.radial-caption small{display:block;font-size:9px;color:#eef6e8;margin-top:2px}#contextClose{position:absolute;left:50%;top:50%;transform:translate(-50%,65px);width:25px;height:25px;border-radius:50%;padding:0;background:#fffdf3e6;border:1px solid #fff;font-size:12px;pointer-events:auto;box-shadow:0 2px 6px #6b665210}#contextClose:hover{background:#e7ddef;transform:translate(-50%,65px) scale(1.1)}#contextButtons{position:absolute;inset:0;pointer-events:none}#contextButtons button{position:absolute;left:50%;top:50%;width:66px;height:66px;margin:-33px 0 0 -33px;transform:translate(var(--rx),var(--ry));border-radius:50%;padding:0;border:2px solid #f6f0ff;background:linear-gradient(150deg,#eee5f8,#d9c8e8);color:#526557;box-shadow:0 5px 13px #79648b29,inset 0 1px 1px #fff9;pointer-events:auto;display:flex;align-items:center;justify-content:center;transition:transform .15s,background .15s,box-shadow .15s;touch-action:manipulation}#contextButtons span{font-size:31px;line-height:1;filter:drop-shadow(0 2px 1px #69577d24)}#contextButtons b{position:absolute;left:50%;top:100%;transform:translate(-50%,4px);font-size:10px;font-weight:600;white-space:nowrap;background:#fffdf2d9;padding:2px 7px;border-radius:8px;color:#66775d;opacity:0;transition:opacity .12s;pointer-events:none}#contextButtons button:hover,#contextButtons button:focus-visible{transform:translate(var(--rx),var(--ry)) scale(1.12);background:linear-gradient(150deg,#c9e7ee,#a5d1dd);border-color:#fff;box-shadow:0 0 0 4px #fff5,0 7px 16px #638d9b38;outline:none}#contextButtons button:hover b,#contextButtons button:focus-visible b{opacity:1}#contextButtons button:disabled{opacity:.45;cursor:default;transform:translate(var(--rx),var(--ry));box-shadow:none}.bottom{width:max-content;max-width:calc(100vw - 24px)}.bottomline{margin-top:6px;justify-content:center}.hint{font-size:10px;margin-bottom:4px;color:#7a806a}.mapbox{bottom:86px}@keyframes wheel-in{from{opacity:0;scale:.92}to{opacity:1;scale:1}}@media(max-width:700px){.object-menu{width:270px;height:270px}#contextButtons button{width:64px;height:64px;margin:-32px 0 0 -32px}#contextButtons span{font-size:29px}.bottom{bottom:10px;width:calc(100vw - 24px)}.hint{font-size:9px}.mapbox{bottom:85px}.radial-caption b{font-size:11px}#contextButtons b{font-size:9px}}
#contextButtons b{display:none}
.object-menu{animation:none}.primary-tools{display:flex;justify-content:center;gap:8px;margin:8px auto 0;padding:6px;width:max-content;border:1px solid #fff;background:#fffdf0e8;border-radius:17px;box-shadow:0 4px 18px #6e644918}.primary-tools button{display:flex;align-items:center;gap:9px;padding:9px 17px;background:#f2f0e4;border-color:transparent;font-size:12px}.primary-tools button span{font-size:23px}.primary-tools button.active{background:#e0ebd5;border-color:#89a77b;box-shadow:inset 0 0 0 1px #fff8}.primary-tools button:hover{background:#e6ecd9;transform:none}.mapbox{bottom:130px}@media(max-width:700px){.primary-tools button{padding:8px 16px;font-size:11px}.primary-tools button span{font-size:22px}.mapbox{bottom:132px}}
.radial-caption small{white-space:pre-line;line-height:1.55}.radial-caption{max-width:180px}
#contextClose{transform:translate(-50%,108px)}#contextClose:hover{transform:translate(-50%,108px) scale(1.1)}

#contextTrigger{position:fixed;z-index:13;width:30px;height:30px;padding:0;transform:translate(-50%,-50%);border-radius:50%;border:1px solid #fffdf4;background:#fff9e9ed;color:#587263;font-size:23px;line-height:20px;box-shadow:0 3px 10px #4b56332b;cursor:pointer;touch-action:manipulation}#contextTrigger[hidden]{display:none}#contextTrigger:hover,#contextTrigger:focus-visible{background:#e2efdc;outline:2px solid #9ab68b;outline-offset:2px}@media(pointer:coarse){#contextTrigger{width:40px;height:40px}}
#calendarButton{text-align:center}#weatherLabel{margin-top:3px;color:#687e76}.calendar-panel{width:min(960px,95vw)}.calendar-nav{display:flex;align-items:center;gap:10px}.calendar-nav b{font-size:21px;flex:1;text-align:center}.calendar-nav button{padding:7px 12px}.calendar-year{display:grid;grid-template-columns:1fr 1fr;gap:16px}.season-card{border:1px solid var(--season-color);border-radius:18px;padding:14px;background:linear-gradient(155deg,var(--season-color),#fffdf8 65%)}.season-card h3{margin:0 0 5px;font-size:17px}.season-card p{font-size:10px;min-height:30px;line-height:1.6;margin:0 0 10px;color:#76836e}.calendar-week,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.calendar-week{font-size:10px;text-align:center;margin-bottom:5px;color:#85927b}.calendar-grid button{position:relative;min-width:0;padding:5px 0;border-radius:9px;background:#fffdf7c9;font-size:11px;display:flex;flex-direction:column;align-items:center;gap:2px}.calendar-grid button span{font-size:17px}.calendar-grid button.today{box-shadow:inset 0 0 0 2px #65836a}.calendar-grid button.selected{background:#dce9d2;outline:2px solid #839c78;outline-offset:0}.calendar-grid i{position:absolute;right:3px;top:0;color:#b26d50;font-size:10px;font-style:normal;font-weight:700}.calendar-detail{margin-top:16px;padding:16px;background:#eff2e7;border-radius:16px;font-size:13px}.calendar-detail p{line-height:1.8;margin:8px 0}.calendar-detail small{font-size:10px;line-height:1.8;color:#7b8b71}@media(max-width:600px){.calendar-year{grid-template-columns:1fr}.calendar-panel{padding:18px}.calendar-grid button{padding:7px 0}.season-card p{min-height:0}#calendarButton{padding:8px 10px;font-size:10px}.season small{font-size:9px}}
.season-card .season-crops{min-height:0;color:#5d765a;font-size:10px;line-height:1.8;margin-bottom:12px}
/* Shared pastel illustrated icon language; product icons use the game's own art. */
.game-icon{display:inline-flex;width:40px;height:40px;flex:none;align-items:center;justify-content:center;vertical-align:middle;filter:drop-shadow(0 2px 1px #8a75551c)}.game-icon svg{display:block;width:100%;height:100%;overflow:visible}.crop-icon{background-repeat:no-repeat;background-size:400% 500%}.animal-icon{background-repeat:no-repeat;background-size:400% 300%;background-position:0 0}.side button{width:70px;height:76px;border-radius:18px;border-color:#e0d9bd;background:linear-gradient(145deg,#fffef6,#f5f0df);box-shadow:0 3px 0 #cdbd9a30,0 5px 16px #6e745611;padding:6px 7px}.side button>[data-icon]{display:flex;justify-content:center;margin:0 auto 3px}.side button>span:last-of-type{font-size:10px;letter-spacing:.2px}.side .game-icon{width:35px;height:35px}.side button:hover{background:#f2f4e5;box-shadow:0 0 0 3px #eee5cd,0 5px 16px #6e745620}.side{gap:9px}.row .icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:#f1eedf80;border:1px solid #e9e5d63d;border-radius:14px;flex:none}.row .icon .game-icon{width:46px;height:46px}.row{gap:14px}.row .info b{color:#496353}.row button{border-color:#dddcc7;background:#faf9ed}.primary-tools [data-icon]{display:inline-flex!important;align-items:center}.primary-tools .game-icon{width:27px;height:27px}#contextButtons .game-icon{width:44px;height:44px;filter:drop-shadow(0 2px 2px #69577d24)}.brand{gap:9px;text-shadow:none;letter-spacing:0}.brand .brand-emblem{display:flex;width:48px;height:54px;align-items:center;justify-content:center;background:#fff7d9cc;border:1px solid #fbf9e9;border-radius:18px 18px 22px 22px;box-shadow:0 3px 10px #5d785d1a}.brand-emblem .game-icon{width:43px;height:43px}.brand .brand-wordmark{display:block;font-size:23px;line-height:1.05}.brand-wordmark em{display:block;font-family:Georgia,serif;font-size:17px;letter-spacing:1px;color:#82976e;font-weight:500;margin-bottom:1px}.brand-wordmark strong{font-size:24px;letter-spacing:-.8px;font-weight:700;color:#4e7056}.brand .brand-wordmark small{font-size:9px;letter-spacing:.5px;color:#708766;margin-top:7px}.wallet{position:relative;padding-left:43px}.wallet>[data-icon]{position:absolute;left:9px;top:12px}.wallet .game-icon{width:27px;height:27px}#settings{padding:7px;border-radius:15px}#settings .game-icon{width:28px;height:28px}#calendarButton>[data-icon]{display:inline-flex;vertical-align:middle}#calendarButton .game-icon{width:19px;height:19px}.waterstock>[data-icon] .game-icon{width:17px;height:20px}.panelhead small{letter-spacing:2px;color:#8b9e79}.welcome-emblem{margin:10px auto 0;width:64px;height:64px;border-radius:23px;background:linear-gradient(150deg,#edf2da,#f7ebcb);border:1px solid #e4e9cf;display:flex;align-items:center;justify-content:center}.welcome-emblem .game-icon{width:55px;height:55px}.intro .game-title{margin:8px 0 18px;line-height:1.1;letter-spacing:-1px}.game-title em{display:block;font-family:Georgia,serif;font-size:27px;letter-spacing:3px;font-weight:400;color:#8b9e74}.game-title strong{display:block;font-size:48px;font-weight:700;color:#597b5e;letter-spacing:-2px}.intro .game-title>span{font-size:12px;letter-spacing:1px;margin-top:13px;color:#839875}.intro>small{letter-spacing:2px}.characters{margin-top:16px}@media(max-width:700px){.brand{display:none}.side button{width:55px;height:61px;border-radius:14px;padding:4px}.side .game-icon{width:27px;height:27px}.side button>span:last-of-type{font-size:8px}.side{gap:7px}.row .icon{width:40px;height:40px}.row .icon .game-icon{width:39px;height:39px}.row{gap:9px}.game-title strong{font-size:36px}.game-title em{font-size:23px}.welcome-emblem{width:52px;height:52px}.welcome-emblem .game-icon{width:46px;height:46px}.wallet{padding-left:30px}.wallet>[data-icon]{left:6px;top:9px}.wallet .game-icon{width:20px;height:20px}.panelhead small{font-size:8px;letter-spacing:1px}}
.row{padding:10px 0}.row .icon{width:40px;height:40px}.row .icon .game-icon{width:40px;height:40px}.welcome-emblem{width:48px;height:48px;margin-top:6px;border-radius:17px}.welcome-emblem .game-icon{width:42px;height:42px}.intro .game-title{margin:6px 0 12px}.game-title strong{font-size:42px}.game-title em{font-size:24px}.intro .game-title>span{margin-top:9px}.intro p{font-size:11px;line-height:1.7;margin:12px 0}.characters{margin:12px 0}.character{height:125px;width:125px}@media(max-width:700px){.character{height:110px;width:110px}.game-title strong{font-size:36px}.row .icon{width:36px;height:36px}.row .icon .game-icon{width:36px;height:36px}}
.shop-section{margin:0 0 22px;border:1px solid #e2e5d4;border-radius:17px;background:#fffef8;overflow:hidden}.shop-section:last-child{margin-bottom:0}.shop-section-heading{display:flex;gap:11px;align-items:flex-start;padding:14px 16px;background:linear-gradient(120deg,#edf1e2,#f8f5e9);border-bottom:1px solid #e5e7d9}.shop-section-heading>.game-icon{width:30px;height:30px;margin-top:1px}.shop-section-heading h3{font-size:14px;margin:0 0 4px;color:#536e55}.shop-section-heading p{font-size:11px;line-height:1.8;margin:0;color:#859079}.shop-section-items{padding:0 15px}.shop-section-items .row:last-child{border-bottom:0}@media(max-width:700px){.shop-section-heading{padding:12px;gap:9px}.shop-section-heading h3{font-size:13px}.shop-section-heading p{font-size:10px}.shop-section-items{padding:0 10px}.shop-section{margin-bottom:16px}}
#railwayGuide{display:flex;align-items:center;gap:4px;margin:9px 0 0 auto;font-size:10px;padding:5px 9px;border-color:#e1d9c4;background:#fff9e6df;color:#6f836d}#railwayGuide .game-icon{width:20px;height:20px}.location #railwayGuide>span{display:inline-flex}.station-dialogue{display:flex;align-items:center;gap:18px;padding:6px 0 20px}.station-portrait{width:110px;height:135px;flex:none;background-image:url('assets/stationmaster.png');background-size:400% 100%;background-position:0 0;background-repeat:no-repeat;border-radius:20px;background-color:#edf0df}.station-dialogue small{color:#8b9d7d;font-size:11px}.station-dialogue h3{margin:3px 0 10px;color:#58755d;font-size:24px}.station-dialogue p{font-size:12px;line-height:1.9;color:#829078;margin:0}.station-destination{display:flex;align-items:center;gap:12px;background:#eff2e6;border:1px solid #dfe5cf;border-radius:16px;padding:16px}.station-destination>div{flex:1}.station-destination b{font-size:13px}.station-destination small{display:block;font-size:10px;color:#89977b;margin-top:5px}.station-destination>span:last-child{background:#e1d9eb;border-radius:10px;padding:6px 9px;color:#9481a6;font-size:11px}.station-coming{width:100%;margin-top:16px;background:#e6e9dc;padding:13px;opacity:1!important;color:#96a18c;border-color:#dce1cf}@media(max-width:700px){.station-dialogue{gap:12px}.station-portrait{width:80px;height:110px}.station-dialogue p{font-size:11px}.station-destination{gap:8px;padding:12px}.station-destination b{font-size:11px}.station-destination small{font-size:9px}.station-destination>.game-icon{width:30px;height:30px}#railwayGuide{font-size:9px}.location{top:123px}}
.station-portrait{background-size:400% auto;background-position:0 center}
