@font-face{font-family:TownPixel;src:url('/static/pixel/fonts/fusion-pixel-12.woff2') format('woff2');font-display:swap}
:root{color-scheme:light;--ink:#503019;--gold:#dda64d;--cream:#fff1ce;--town-night:0;--town-dusk:0}
*{box-sizing:border-box}body.login-town{margin:0;min-height:100svh;background:#234b3c;color:var(--ink);font-family:TownPixel,'Microsoft YaHei',sans-serif;font-size:16px;line-height:1.5;isolation:isolate}button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #21778d;outline-offset:5px}[hidden]{display:none!important}
.town-stage{position:fixed;inset:0;z-index:-1;overflow:hidden;background:linear-gradient(120deg,#315440,#789754 45%,#315440)}.town-world{position:absolute;left:50%;top:50%;width:min(100vw,150svh);height:min(66.6667vw,100svh);transform:translate(-50%,-50%);background:url('/static/pixel/town-climate-v9/summer.png') center/100% 100% no-repeat;image-rendering:pixelated;isolation:isolate}.town-world:before,.town-world:after{content:'';position:absolute;inset:0;pointer-events:none;z-index:1}.town-world:before{background:#fa883e;mix-blend-mode:multiply;opacity:calc(var(--town-dusk)*.38)}.town-world:after{background:#142653;mix-blend-mode:multiply;opacity:calc(var(--town-night)*.83)}#town-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;image-rendering:pixelated;z-index:2}#town-hotspots{position:absolute;inset:0;z-index:3;pointer-events:none}
.town-login-shell{position:relative;min-height:100svh;display:flex;align-items:center;padding:36px 3.4vw 72px;pointer-events:none}.town-panel{pointer-events:auto;position:relative;width:390px;max-width:calc(100vw - 32px);padding:27px 30px 23px;text-align:center;background:linear-gradient(120deg,#fff4d7,#f5e2b6);border:5px solid #76502c;box-shadow:0 0 0 3px #3c291a,inset 0 0 0 3px #e7b95f,inset 0 0 0 7px #f8daa0,7px 8px 0 #30281955}.town-panel:before,.town-panel:after{content:'◆';position:absolute;top:0;color:#f4c46f;text-shadow:1px 2px #694522;font-size:17px}.town-panel:before{left:3px}.town-panel:after{right:3px}.town-brand{display:inline-flex;align-items:center;gap:9px;text-decoration:none;font-size:18px;letter-spacing:2px}.town-brand img{width:26px;height:26px;image-rendering:pixelated}.town-panel h1{font-size:36px;font-weight:700;margin:20px 0 10px;letter-spacing:3px;line-height:1.25}.town-subtitle{font-size:14px;color:#836143;margin:0 0 25px}.town-identities{display:grid;grid-template-columns:1fr 1fr;gap:14px}.town-identity{display:flex;align-items:center;flex-direction:column;gap:5px;padding:17px 5px 13px;text-decoration:none;border:2px solid #b58c52;background:#fff7df;box-shadow:0 3px #cfab70;transition:transform .12s,background .12s}.town-identity:hover,.town-identity:focus-visible{transform:translateY(-4px);background:#fffbe9;border-color:#80653c}.town-player-avatar{display:block;width:100px;height:100px;object-fit:cover;image-rendering:pixelated;border:4px solid #91643b;outline:2px solid #d1a15d;box-shadow:0 3px #c3a173}.town-identity .town-player-avatar{width:92px;height:92px;margin-bottom:10px}.town-identity strong{font-size:22px}.town-identity>span{font-size:12px;color:#90704f}.town-identity .town-identity-enter{font-size:14px;color:#69411b;margin-top:10px}.town-blog{display:inline-block;margin-top:27px;font-size:14px;text-underline-offset:4px}.town-home-note{font-size:12px;margin:13px 0 0;color:#937651}.town-selected-person{display:flex;flex-direction:column;align-items:center;gap:10px;margin:21px 0 22px}.town-selected-person strong{font-size:20px}.town-login-form{text-align:left}.town-password-label{display:block;margin-bottom:8px}.town-password-wrap{display:flex;border:2px solid #aa885a;background:#fff8e6;box-shadow:inset 0 2px #dacba8}.town-password-wrap:focus-within{outline:2px solid #b47b36;outline-offset:2px}.town-password-wrap input{min-width:0;flex:1;width:100%;height:44px;background:none;border:0;padding:7px 12px;letter-spacing:4px;color:#503019;font-family:system-ui,sans-serif;font-size:20px;outline:none}.town-password-toggle{width:44px;border:0;background:transparent;color:#9c8058;font-size:21px}.town-remember{display:flex;align-items:center;gap:9px;margin-top:14px;font-size:14px;cursor:pointer}.town-remember input{accent-color:#9d7229;width:17px;height:17px}.town-remember small{font-size:11px;color:#907451}.town-login-error{color:#97392b;font-size:13px;min-height:18px;margin:6px 0}.town-submit{width:100%;padding:10px 15px;border:2px solid #83521d;background:linear-gradient(#f7ca6a,#e6a33c);box-shadow:inset 0 2px #ffe7aa,0 3px #b17b3c;color:#4e2b14;font-size:22px;font-weight:bold}.town-submit:hover{background:#f7ca6a}.town-submit:active{transform:translateY(2px);box-shadow:inset 0 2px #ffe7aa,0 1px #b17b3c}.town-submit span{float:right}.town-switch{display:inline-block;margin-top:21px;font-size:14px;text-underline-offset:4px}
.town-time-hud{position:fixed;top:23px;right:28px;z-index:6;display:grid;grid-template-columns:auto auto;column-gap:16px;align-items:center;padding:10px 20px;background:#71502e;color:#fff1cc;border:3px solid #36281d;box-shadow:inset 0 0 0 3px #a98045,3px 4px #20231f55}.town-time-hud:before,.town-time-hud:after{content:'';position:absolute;top:-26px;height:23px;width:3px;background:#694c2b}.town-time-hud:before{left:24px}.town-time-hud:after{right:24px}#town-clock{font-size:28px;letter-spacing:2px;grid-column:2;grid-row:1}#town-period{font-size:16px;grid-column:1;grid-row:1}#town-date{grid-column:1/3;text-align:center;font-size:11px;color:#ead4a7}.town-inventory{position:fixed;left:28px;bottom:20px;z-index:7}.town-basket{display:flex;align-items:center;gap:17px;padding:9px 14px;background:#fff1ce;border:2px solid #795336;box-shadow:2px 3px #5a3d2855;color:#69411b}.town-basket-title{font-weight:bold}.town-basket-item{font-size:12px}.town-basket-item b{display:inline-block;min-width:12px;font-size:16px;margin-left:5px}.town-footer{position:fixed;bottom:18px;right:23px;z-index:7;display:flex;align-items:center;gap:18px}.town-scene-hint{font-size:12px;color:#fff6df;text-shadow:1px 1px 3px #182c19,1px 0 #182c19;margin:0}.town-motion{display:flex;align-items:center;gap:3px;background:#fff1ce;border:1px solid #aa8051;padding:4px 6px;font-size:11px}.town-motion>span{margin-right:5px}.town-motion button{border:0;background:transparent;color:#775638;min-height:28px;padding:3px 7px}.town-motion button[aria-pressed=true]{background:#d3ddaf;color:#344c27}.town-toast{position:fixed;bottom:75px;left:50%;transform:translateX(-50%);z-index:12;max-width:min(500px,calc(100vw - 32px));padding:12px 22px;background:#fff3ce;border:2px solid #886138;box-shadow:3px 4px #33291f55;font-size:14px;text-align:center;pointer-events:none}.town-noscript{position:relative;z-index:8;background:#fff1ce;padding:15px;margin:0}
.town-hotspot{position:absolute;transform:translate(-50%,-50%);border:0;background:transparent;pointer-events:auto;padding:0;color:#54391d}.town-hotspot:before{content:'';position:absolute;inset:10%;border:2px dashed transparent;border-radius:50%}.town-hotspot:hover:before,.town-hotspot:focus-visible:before{border-color:#fff9c6;box-shadow:0 0 0 1px #4a633b}.town-hotspot-label{position:absolute;left:50%;bottom:100%;width:max-content;max-width:200px;transform:translateX(-50%) scale(var(--town-ui-scale,1));transform-origin:center bottom;background:#fff2ce;border:1px solid #795336;padding:3px 7px;font-size:11px;opacity:0;pointer-events:none}.town-hotspot:hover .town-hotspot-label,.town-hotspot:focus-visible .town-hotspot-label{opacity:1}.town-speech{position:absolute;z-index:10;transform:translate(-50%,-100%) scale(var(--town-ui-scale,1));transform-origin:bottom center;width:290px;max-width:calc(100vw - 32px);padding:15px 17px;background:#fff2ce;color:#54351f;border:3px solid #7a5737;box-shadow:3px 4px #3d2d2455;pointer-events:auto;image-rendering:auto;font-size:14px;line-height:1.6}.town-speech:after{content:'';position:absolute;bottom:-12px;left:50%;width:15px;height:15px;background:#fff2ce;border-right:3px solid #7a5737;border-bottom:3px solid #7a5737;transform:rotate(45deg)}.town-speech p{margin:8px 0 12px}.town-speech button,.town-speech a{display:inline-block;border:1px solid #aa8051;background:#f0d398;padding:5px 10px;font-size:12px;margin:3px 8px 0 0;text-decoration:none;color:#58391e}.town-speech small{display:block;font-size:11px;color:#92704b}.town-speech strong{font-size:14px}.town-speech-source{font-size:11px;color:#896748}
@media(min-width:761px) and (max-height:740px){.town-panel{padding:20px 28px 17px;width:350px}.town-panel h1{margin-top:12px;font-size:31px}.town-selected-person{margin:15px 0}.town-selected-person .town-player-avatar{width:80px;height:80px}.town-login-shell{padding-top:22px;padding-bottom:70px}.town-scene-hint{display:none}}
@media(max-width:1100px){.town-scene-hint{display:none}.town-panel{width:350px}.town-identities{gap:10px}.town-identity .town-player-avatar{width:80px;height:80px}}
@media(max-width:760px){body.login-town{display:flex;flex-direction:column;background:#d5dfb4;min-height:100svh}.town-time-hud{position:relative;order:0;top:auto;right:auto;margin:18px 18px 12px auto;padding:7px 15px;column-gap:12px}.town-time-hud:before,.town-time-hud:after{display:none}#town-clock{font-size:23px}.town-login-shell{order:1;min-height:0;padding:0 16px 24px;display:block;background:none}.town-panel{width:390px;max-width:100%;margin:0 auto;padding:24px 24px 23px}.town-panel h1{font-size:30px}.town-subtitle{font-size:12px;margin-bottom:22px}.town-identity .town-player-avatar{width:86px;height:86px}.town-stage{position:relative;order:2;z-index:0;inset:auto;width:100%;height:615px;overflow:auto;overscroll-behavior-x:contain;border-top:4px solid #766847;border-bottom:4px solid #766847;background:#2b553f}.town-world{position:relative;left:auto;top:auto;width:920px;height:613.333px;transform:none}.town-inventory{order:3;position:sticky;left:auto;bottom:0;z-index:11;background:#e7e5bd;padding:12px 16px}.town-basket{width:100%;justify-content:center;gap:24px}.town-footer{order:4;position:relative;bottom:auto;right:auto;padding:5px 16px 18px;display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.town-scene-hint{display:block;color:#665339;text-shadow:none;text-align:center;width:100%;font-size:11px}.town-motion{font-size:12px}.town-motion button{min-width:46px;min-height:32px}.town-toast{bottom:78px;min-width:240px}.town-hotspot:before{border-color:#fff5be55}.town-speech{width:265px}.town-noscript{order:5}.town-selected-person .town-player-avatar{width:88px;height:88px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}

/* Letterboxed scenery receives the same ambient light as the painted town. */
.town-stage:before,.town-stage:after{content:'';position:absolute;inset:0;z-index:0;pointer-events:none;mix-blend-mode:multiply}.town-stage:before{background:#fa883e;opacity:calc(var(--town-dusk)*.38)}.town-stage:after{background:#142653;opacity:calc(var(--town-night)*.83)}.town-world{z-index:1}
.town-panel{--lamp:clamp(0,calc(var(--town-night) + var(--town-dusk)*.75),1);background:radial-gradient(ellipse at 94% 3%,rgba(255,222,151,calc(var(--lamp)*.55)),transparent 66%),linear-gradient(120deg,rgb(calc(255 - var(--town-night)*30),calc(244 - var(--town-night)*33),calc(215 - var(--town-night)*32)),rgb(calc(245 - var(--town-night)*25),calc(226 - var(--town-night)*29),calc(182 - var(--town-night)*22)))}
.town-door-lamp{position:absolute;right:15px;top:-29px;width:32px;height:48px;pointer-events:none;z-index:2}.town-door-lamp svg{position:relative;width:32px;height:48px;image-rendering:pixelated}.town-lamp-flame{opacity:var(--lamp)}.town-lamp-halo{position:absolute;left:-58px;top:-34px;width:148px;height:148px;border-radius:50%;background:radial-gradient(circle,rgba(255,218,128,.5),rgba(255,211,112,.16) 35%,transparent 69%);opacity:var(--lamp);pointer-events:none}.town-player-avatar{filter:brightness(calc(1 - var(--town-night)*.12))}.town-password-wrap{background:rgb(calc(255 - var(--town-night)*15),calc(248 - var(--town-night)*16),calc(230 - var(--town-night)*20))}
/* The climate controls share the town's wooden signs and leave the mill visible. */
.town-time-hud{left:calc(50% - 92px);right:auto;top:18px;min-width:184px;padding:7px 16px;column-gap:12px}
#town-clock{font-size:26px}.town-weather-summary{grid-column:1/3;text-align:center;font-size:11px;border-top:1px solid #bb965c66;padding-top:4px;margin-top:4px;color:#fff0bf;max-width:230px}
.town-season-toggle{min-height:38px;display:flex;gap:5px;align-items:center;border:2px solid #886442;background:#fff0c8;padding:7px 12px;color:#654727;box-shadow:2px 3px #422a2344;font-size:12px}.town-season-toggle:hover,.town-season-toggle[aria-expanded=true]{background:#f6d899}.town-season-toggle span{font-weight:bold;color:#785327}
.town-climate-panel{position:fixed;right:23px;bottom:70px;width:355px;max-width:calc(100vw - 30px);max-height:calc(100svh - 110px);overflow:auto;z-index:14;background:#fff0d1;border:3px solid #825b37;box-shadow:4px 5px #33291b66;padding:21px;color:#634326;line-height:1.5}
.town-climate-panel h2{font-size:22px;margin:0 0 4px}.town-climate-panel p{margin:9px 0;font-size:12px}#town-season-mode{color:#826240;font-size:11px;margin-bottom:13px}.town-season-options{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.town-season-options button{min-height:36px;border:1px solid #be9b62;background:#fff9e7;color:#775533;box-shadow:0 2px #d7bc84}.town-season-options button[aria-pressed=true]{background:#d7dfae;border-color:#798447;color:#354d29}.town-season-options button:hover{background:#eddeb2}#town-season-description{min-height:38px;color:#765738}#town-follow-real{border:1px solid #8c713b;background:#dce6bc;min-height:36px;width:100%;color:#415432}.town-climate-panel .town-season-note{font-size:10px;color:#9e805c;margin:9px 0 16px}.town-weather-info{border-top:1px solid #d9bd8d;padding-top:13px}.town-weather-info strong{font-size:13px}.town-weather-info a{font-size:10px;color:#876d4e;text-underline-offset:3px}.town-weather-info p{font-size:11px}.town-footer{gap:9px}.town-footer .town-scene-hint{display:none}
.town-world[data-town-phase=early-spring]{background-color:#f3edc4;background-blend-mode:multiply}.town-world[data-town-phase=high-summer]{background-color:#e3eee0;background-blend-mode:multiply}.town-world[data-town-phase=late-summer]{background-color:#f4eed9;background-blend-mode:multiply}.town-world[data-town-phase=early-autumn]{background-color:#f0efdd;background-blend-mode:multiply}.town-world[data-town-phase=late-autumn]{background-color:#dfd6c4;background-blend-mode:multiply}.town-world[data-town-phase=mid-winter]{background-color:#dce2e7;background-blend-mode:multiply}.town-world[data-town-phase=late-winter]{background-color:#e3e7da;background-blend-mode:multiply}
@media(max-width:760px){.town-time-hud{left:auto;right:auto;top:auto;margin:16px auto 16px;min-width:220px;max-width:calc(100vw - 32px)}#town-clock{font-size:24px}.town-weather-summary{font-size:12px}.town-footer{display:grid;grid-template-columns:1fr;justify-items:center}.town-footer .town-scene-hint{display:block}.town-climate-panel{right:15px;bottom:78px;width:355px;max-height:70svh;padding:17px}.town-season-options button{min-height:41px}.town-season-toggle{min-height:44px}.town-weather-info a{font-size:11px}}

/* v13: continuous ambient colors for login UI; the town clock still owns both weights. */
body.login-town{--town-ui-dark:round(nearest,clamp(0,calc(var(--town-night,0) + var(--town-dusk,0)*.85),1),1);--town-ui-night:calc(var(--town-ui-dark)*clamp(0,var(--town-night,0),1)*100%);--town-ui-dusk:calc(var(--town-ui-dark)*100%);--town-ui-field:color-mix(in srgb,color-mix(in srgb,#fff8e6,#35333c var(--town-ui-dusk)),#202f3b var(--town-ui-night));--town-ui-text:color-mix(in srgb,color-mix(in srgb,#503019,#e0cfb5 var(--town-ui-dusk)),#ddcfb8 var(--town-ui-night));--town-ui-focus:color-mix(in srgb,color-mix(in srgb,#21778d,#b6b5ad var(--town-ui-dusk)),#94b8bd var(--town-ui-night));color:var(--town-ui-text);}
body.login-town button:focus-visible,body.login-town a:focus-visible,body.login-town input:focus-visible{outline-color:var(--town-ui-focus);}
body.login-town .town-panel{background:radial-gradient(ellipse 104px 80px at 94% 3%,rgba(255,218,145,calc(var(--lamp)*.12)),transparent 74%),linear-gradient(120deg,color-mix(in srgb,color-mix(in srgb,#fff4d7,#403d42 var(--town-ui-dusk)),#293744 var(--town-ui-night)),color-mix(in srgb,color-mix(in srgb,#f5e2b6,#35333c var(--town-ui-dusk)),#202f3b var(--town-ui-night)));border-color:color-mix(in srgb,color-mix(in srgb,#76502c,#87705d var(--town-ui-dusk)),#796c54 var(--town-ui-night));box-shadow:0 0 0 3px color-mix(in srgb,color-mix(in srgb,#3c291a,#302a34 var(--town-ui-dusk)),#111d2b var(--town-ui-night)),inset 0 0 0 3px color-mix(in srgb,color-mix(in srgb,#e7b95f,#655b5d var(--town-ui-dusk)),#4b5352 var(--town-ui-night)),inset 0 0 0 7px color-mix(in srgb,color-mix(in srgb,#f8daa0,#403d42 var(--town-ui-dusk)),#293744 var(--town-ui-night)),7px 8px 0 color-mix(in srgb,color-mix(in srgb,#30281955,#302a3480 var(--town-ui-dusk)),#111d2b99 var(--town-ui-night));}
body.login-town .town-panel:before,body.login-town .town-panel:after{color:color-mix(in srgb,color-mix(in srgb,#f4c46f,#c0a37a var(--town-ui-dusk)),#a99570 var(--town-ui-night));text-shadow:1px 2px color-mix(in srgb,color-mix(in srgb,#694522,#302a34 var(--town-ui-dusk)),#111d2b var(--town-ui-night));}
body.login-town .town-subtitle{color:color-mix(in srgb,color-mix(in srgb,#836143,#c3b5a2 var(--town-ui-dusk)),#bdb19d var(--town-ui-night));}
body.login-town .town-identity{background:color-mix(in srgb,color-mix(in srgb,#fff7df,#4a454a var(--town-ui-dusk)),#32424d var(--town-ui-night));border-color:color-mix(in srgb,color-mix(in srgb,#b58c52,#87705d var(--town-ui-dusk)),#796c54 var(--town-ui-night));box-shadow:0 3px color-mix(in srgb,color-mix(in srgb,#cfab70,#302a34 var(--town-ui-dusk)),#111d2b var(--town-ui-night));color:var(--town-ui-text);}
body.login-town .town-identity:hover,body.login-town .town-identity:focus-visible{background:color-mix(in srgb,color-mix(in srgb,#fffbe9,#554e50 var(--town-ui-dusk)),#394c58 var(--town-ui-night));border-color:color-mix(in srgb,color-mix(in srgb,#80653c,#ad9477 var(--town-ui-dusk)),#a18b65 var(--town-ui-night));}
body.login-town .town-player-avatar{border-color:color-mix(in srgb,color-mix(in srgb,#91643b,#87705d var(--town-ui-dusk)),#796c54 var(--town-ui-night));outline-color:color-mix(in srgb,color-mix(in srgb,#d1a15d,#655b5d var(--town-ui-dusk)),#4b5352 var(--town-ui-night));box-shadow:0 3px color-mix(in srgb,color-mix(in srgb,#c3a173,#302a34 var(--town-ui-dusk)),#111d2b var(--town-ui-night));filter:brightness(calc(1 - var(--town-night)*.26 - var(--town-dusk)*.1)) saturate(calc(1 - var(--town-night)*.12));}
body.login-town .town-identity>span{color:color-mix(in srgb,color-mix(in srgb,#90704f,#c3b5a2 var(--town-ui-dusk)),#bdb19d var(--town-ui-night));}
body.login-town .town-identity .town-identity-enter{color:color-mix(in srgb,color-mix(in srgb,#69411b,#e0cfb5 var(--town-ui-dusk)),#ddcfb8 var(--town-ui-night));}
body.login-town .town-home-note{color:color-mix(in srgb,color-mix(in srgb,#937651,#c3b5a2 var(--town-ui-dusk)),#bdb19d var(--town-ui-night));}
body.login-town .town-password-wrap{background:var(--town-ui-field);border-color:color-mix(in srgb,color-mix(in srgb,#aa885a,#ae967d var(--town-ui-dusk)),#9b8a70 var(--town-ui-night));box-shadow:inset 0 2px color-mix(in srgb,color-mix(in srgb,#dacba8,#302a34 var(--town-ui-dusk)),#111d2b var(--town-ui-night));}
body.login-town .town-password-wrap:focus-within{outline-color:color-mix(in srgb,color-mix(in srgb,#b47b36,#bfa581 var(--town-ui-dusk)),#b29c76 var(--town-ui-night));}
body.login-town .town-password-wrap input{color:var(--town-ui-text);caret-color:var(--town-ui-text);}
body.login-town .town-password-toggle{color:color-mix(in srgb,color-mix(in srgb,#9c8058,#c3b5a2 var(--town-ui-dusk)),#bdb19d var(--town-ui-night));}
body.login-town .town-password-toggle:hover,body.login-town .town-password-toggle:focus-visible{color:var(--town-ui-text);}
body.login-town .town-remember input{accent-color:color-mix(in srgb,color-mix(in srgb,#9d7229,#a09e78 var(--town-ui-dusk)),#8c9c74 var(--town-ui-night));filter:brightness(calc(1 - var(--town-night)*.23 - var(--town-dusk)*.08));}
body.login-town .town-remember small{color:color-mix(in srgb,color-mix(in srgb,#907451,#c3b5a2 var(--town-ui-dusk)),#bdb19d var(--town-ui-night));}
body.login-town .town-login-error{color:color-mix(in srgb,color-mix(in srgb,#97392b,#e5a793 var(--town-ui-dusk)),#e2a18c var(--town-ui-night));}
body.login-town .town-submit{background:linear-gradient(color-mix(in srgb,color-mix(in srgb,#f7ca6a,#65573f var(--town-ui-dusk)),#4a5d3e var(--town-ui-night)),color-mix(in srgb,color-mix(in srgb,#e6a33c,#564a38 var(--town-ui-dusk)),#3b4b35 var(--town-ui-night)));border-color:color-mix(in srgb,color-mix(in srgb,#83521d,#87705d var(--town-ui-dusk)),#796c54 var(--town-ui-night));box-shadow:inset 0 2px color-mix(in srgb,color-mix(in srgb,#ffe7aa,#928162 var(--town-ui-dusk)),#6d785b var(--town-ui-night)),0 3px color-mix(in srgb,color-mix(in srgb,#b17b3c,#302a34 var(--town-ui-dusk)),#111d2b var(--town-ui-night));color:color-mix(in srgb,color-mix(in srgb,#4e2b14,#e8d9be var(--town-ui-dusk)),#e0d4ba var(--town-ui-night));}
body.login-town .town-submit:hover{background:color-mix(in srgb,color-mix(in srgb,#f7ca6a,#6c5d46 var(--town-ui-dusk)),#4e6144 var(--town-ui-night));}
body.login-town .town-submit:active{box-shadow:inset 0 2px color-mix(in srgb,color-mix(in srgb,#ffe7aa,#928162 var(--town-ui-dusk)),#6d785b var(--town-ui-night)),0 1px color-mix(in srgb,color-mix(in srgb,#b17b3c,#302a34 var(--town-ui-dusk)),#111d2b var(--town-ui-night));}
body.login-town .town-password-wrap input:-webkit-autofill,body.login-town .town-password-wrap input:-webkit-autofill:hover,body.login-town .town-password-wrap input:-webkit-autofill:focus{-webkit-text-fill-color:var(--town-ui-text);-webkit-box-shadow:0 0 0 1000px var(--town-ui-field) inset;caret-color:var(--town-ui-text);}
body.login-town .town-password-wrap input:autofill{color:var(--town-ui-text);box-shadow:0 0 0 1000px var(--town-ui-field) inset;}
body.login-town .town-door-lamp .town-lamp-halo{left:-38px;top:-14px;width:108px;height:108px;background:radial-gradient(circle,rgba(255,218,128,.28),rgba(255,211,112,.08) 32%,transparent 68%);}
body.login-town .town-time-hud{background:color-mix(in srgb,color-mix(in srgb,#71502e,#443b38 var(--town-ui-dusk)),#263541 var(--town-ui-night));color:color-mix(in srgb,color-mix(in srgb,#fff1cc,#e0cfb5 var(--town-ui-dusk)),#ddcfb8 var(--town-ui-night));border-color:color-mix(in srgb,color-mix(in srgb,#36281d,#302a34 var(--town-ui-dusk)),#111d2b var(--town-ui-night));box-shadow:inset 0 0 0 3px color-mix(in srgb,color-mix(in srgb,#a98045,#655b5d var(--town-ui-dusk)),#4b5352 var(--town-ui-night)),3px 4px color-mix(in srgb,color-mix(in srgb,#20231f55,#302a3477 var(--town-ui-dusk)),#111d2b88 var(--town-ui-night));}
body.login-town .town-time-hud:before,body.login-town .town-time-hud:after{background:color-mix(in srgb,color-mix(in srgb,#694c2b,#87705d var(--town-ui-dusk)),#796c54 var(--town-ui-night));}
body.login-town #town-date{color:color-mix(in srgb,color-mix(in srgb,#ead4a7,#c3b5a2 var(--town-ui-dusk)),#bdb19d var(--town-ui-night));}
body.login-town .town-weather-summary{color:color-mix(in srgb,color-mix(in srgb,#fff0bf,#c3b5a2 var(--town-ui-dusk)),#bdb19d var(--town-ui-night));border-top-color:color-mix(in srgb,color-mix(in srgb,#bb965c66,#655b5d var(--town-ui-dusk)),#4b5352 var(--town-ui-night));}
body.login-town .town-basket{background:color-mix(in srgb,color-mix(in srgb,#fff1ce,#403d42 var(--town-ui-dusk)),#293744 var(--town-ui-night));border-color:color-mix(in srgb,color-mix(in srgb,#795336,#87705d var(--town-ui-dusk)),#796c54 var(--town-ui-night));box-shadow:2px 3px color-mix(in srgb,color-mix(in srgb,#5a3d2855,#302a3477 var(--town-ui-dusk)),#111d2b88 var(--town-ui-night));color:color-mix(in srgb,color-mix(in srgb,#69411b,#e0cfb5 var(--town-ui-dusk)),#ddcfb8 var(--town-ui-night));}
body.login-town .town-motion{background:color-mix(in srgb,color-mix(in srgb,#fff1ce,#403d42 var(--town-ui-dusk)),#293744 var(--town-ui-night));border-color:color-mix(in srgb,color-mix(in srgb,#aa8051,#87705d var(--town-ui-dusk)),#796c54 var(--town-ui-night));color:var(--town-ui-text);}
body.login-town .town-motion button{color:color-mix(in srgb,color-mix(in srgb,#775638,#c3b5a2 var(--town-ui-dusk)),#bdb19d var(--town-ui-night));}
body.login-town .town-motion button[aria-pressed=true]{background:color-mix(in srgb,color-mix(in srgb,#d3ddaf,#545b48 var(--town-ui-dusk)),#3d5543 var(--town-ui-night));color:color-mix(in srgb,color-mix(in srgb,#344c27,#d0d6b8 var(--town-ui-dusk)),#c7d4b3 var(--town-ui-night));}
body.login-town .town-toast{background:color-mix(in srgb,color-mix(in srgb,#fff3ce,#4a454a var(--town-ui-dusk)),#32424d var(--town-ui-night));border-color:color-mix(in srgb,color-mix(in srgb,#886138,#87705d var(--town-ui-dusk)),#796c54 var(--town-ui-night));box-shadow:3px 4px color-mix(in srgb,color-mix(in srgb,#33291f55,#302a3477 var(--town-ui-dusk)),#111d2b88 var(--town-ui-night));color:var(--town-ui-text);}
body.login-town .town-noscript{background:color-mix(in srgb,color-mix(in srgb,#fff1ce,#403d42 var(--town-ui-dusk)),#293744 var(--town-ui-night));color:var(--town-ui-text);}
body.login-town .town-hotspot-label{background:color-mix(in srgb,color-mix(in srgb,#fff2ce,#4a454a var(--town-ui-dusk)),#32424d var(--town-ui-night));border-color:color-mix(in srgb,color-mix(in srgb,#795336,#87705d var(--town-ui-dusk)),#796c54 var(--town-ui-night));color:color-mix(in srgb,color-mix(in srgb,#54391d,#e0cfb5 var(--town-ui-dusk)),#ddcfb8 var(--town-ui-night));}
body.login-town .town-hotspot:hover:before,body.login-town .town-hotspot:focus-visible:before{border-color:color-mix(in srgb,color-mix(in srgb,#fff9c6,#d5c29b var(--town-ui-dusk)),#c4bd98 var(--town-ui-night));}
body.login-town .town-speech{background:color-mix(in srgb,color-mix(in srgb,#fff2ce,#4a454a var(--town-ui-dusk)),#32424d var(--town-ui-night));color:color-mix(in srgb,color-mix(in srgb,#54351f,#e0cfb5 var(--town-ui-dusk)),#ddcfb8 var(--town-ui-night));border-color:color-mix(in srgb,color-mix(in srgb,#7a5737,#87705d var(--town-ui-dusk)),#796c54 var(--town-ui-night));box-shadow:3px 4px color-mix(in srgb,color-mix(in srgb,#3d2d2455,#302a3477 var(--town-ui-dusk)),#111d2b88 var(--town-ui-night));}
body.login-town .town-speech:after{background:color-mix(in srgb,color-mix(in srgb,#fff2ce,#4a454a var(--town-ui-dusk)),#32424d var(--town-ui-night));border-right-color:color-mix(in srgb,color-mix(in srgb,#7a5737,#87705d var(--town-ui-dusk)),#796c54 var(--town-ui-night));border-bottom-color:color-mix(in srgb,color-mix(in srgb,#7a5737,#87705d var(--town-ui-dusk)),#796c54 var(--town-ui-night));}
body.login-town .town-speech button,body.login-town .town-speech a{border-color:color-mix(in srgb,color-mix(in srgb,#aa8051,#87705d var(--town-ui-dusk)),#796c54 var(--town-ui-night));background:color-mix(in srgb,color-mix(in srgb,#f0d398,#35333c var(--town-ui-dusk)),#202f3b var(--town-ui-night));color:color-mix(in srgb,color-mix(in srgb,#58391e,#e0cfb5 var(--town-ui-dusk)),#ddcfb8 var(--town-ui-night));}
body.login-town .town-speech small{color:color-mix(in srgb,color-mix(in srgb,#92704b,#c3b5a2 var(--town-ui-dusk)),#bdb19d var(--town-ui-night));}
body.login-town .town-speech-source{color:color-mix(in srgb,color-mix(in srgb,#896748,#c3b5a2 var(--town-ui-dusk)),#bdb19d var(--town-ui-night));}
body.login-town .town-season-toggle{border-color:color-mix(in srgb,color-mix(in srgb,#886442,#87705d var(--town-ui-dusk)),#796c54 var(--town-ui-night));background:color-mix(in srgb,color-mix(in srgb,#fff0c8,#403d42 var(--town-ui-dusk)),#293744 var(--town-ui-night));color:color-mix(in srgb,color-mix(in srgb,#654727,#e0cfb5 var(--town-ui-dusk)),#ddcfb8 var(--town-ui-night));box-shadow:2px 3px color-mix(in srgb,color-mix(in srgb,#422a2344,#302a3477 var(--town-ui-dusk)),#111d2b88 var(--town-ui-night));}
body.login-town .town-season-toggle:hover,body.login-town .town-season-toggle[aria-expanded=true]{background:color-mix(in srgb,color-mix(in srgb,#f6d899,#4a454a var(--town-ui-dusk)),#32424d var(--town-ui-night));}
body.login-town .town-season-toggle span{color:color-mix(in srgb,color-mix(in srgb,#785327,#e0cfb5 var(--town-ui-dusk)),#ddcfb8 var(--town-ui-night));}
body.login-town .town-climate-panel{background:color-mix(in srgb,color-mix(in srgb,#fff0d1,#403d42 var(--town-ui-dusk)),#293744 var(--town-ui-night));border-color:color-mix(in srgb,color-mix(in srgb,#825b37,#87705d var(--town-ui-dusk)),#796c54 var(--town-ui-night));box-shadow:4px 5px color-mix(in srgb,color-mix(in srgb,#33291b66,#302a3488 var(--town-ui-dusk)),#111d2b99 var(--town-ui-night));color:color-mix(in srgb,color-mix(in srgb,#634326,#e0cfb5 var(--town-ui-dusk)),#ddcfb8 var(--town-ui-night));}
body.login-town #town-season-mode{color:color-mix(in srgb,color-mix(in srgb,#826240,#c3b5a2 var(--town-ui-dusk)),#bdb19d var(--town-ui-night));}
body.login-town .town-season-options button{border-color:color-mix(in srgb,color-mix(in srgb,#be9b62,#87705d var(--town-ui-dusk)),#796c54 var(--town-ui-night));background:color-mix(in srgb,color-mix(in srgb,#fff9e7,#4a454a var(--town-ui-dusk)),#32424d var(--town-ui-night));color:color-mix(in srgb,color-mix(in srgb,#775533,#e0cfb5 var(--town-ui-dusk)),#ddcfb8 var(--town-ui-night));box-shadow:0 2px color-mix(in srgb,color-mix(in srgb,#d7bc84,#302a34 var(--town-ui-dusk)),#111d2b var(--town-ui-night));}
body.login-town .town-season-options button[aria-pressed=true]{background:color-mix(in srgb,color-mix(in srgb,#d7dfae,#545b48 var(--town-ui-dusk)),#3d5543 var(--town-ui-night));border-color:color-mix(in srgb,color-mix(in srgb,#798447,#8f916e var(--town-ui-dusk)),#7d8b66 var(--town-ui-night));color:color-mix(in srgb,color-mix(in srgb,#354d29,#d0d6b8 var(--town-ui-dusk)),#c7d4b3 var(--town-ui-night));}
body.login-town .town-season-options button:hover{background:color-mix(in srgb,color-mix(in srgb,#eddeb2,#585055 var(--town-ui-dusk)),#3d4d55 var(--town-ui-night));}
body.login-town #town-season-description{color:color-mix(in srgb,color-mix(in srgb,#765738,#c3b5a2 var(--town-ui-dusk)),#bdb19d var(--town-ui-night));}
body.login-town #town-follow-real{border-color:color-mix(in srgb,color-mix(in srgb,#8c713b,#87705d var(--town-ui-dusk)),#796c54 var(--town-ui-night));background:color-mix(in srgb,color-mix(in srgb,#dce6bc,#545b48 var(--town-ui-dusk)),#3d5543 var(--town-ui-night));color:color-mix(in srgb,color-mix(in srgb,#415432,#d0d6b8 var(--town-ui-dusk)),#c7d4b3 var(--town-ui-night));}
body.login-town .town-climate-panel .town-season-note{color:color-mix(in srgb,color-mix(in srgb,#9e805c,#c3b5a2 var(--town-ui-dusk)),#bdb19d var(--town-ui-night));}
body.login-town .town-weather-info{border-top-color:color-mix(in srgb,color-mix(in srgb,#d9bd8d,#655b5d var(--town-ui-dusk)),#4b5352 var(--town-ui-night));}
body.login-town .town-weather-info a{color:color-mix(in srgb,color-mix(in srgb,#876d4e,#c3b5a2 var(--town-ui-dusk)),#bdb19d var(--town-ui-night));}
@media(max-width:760px){body.login-town{background:color-mix(in srgb,color-mix(in srgb,#d5dfb4,#35333b var(--town-ui-dusk)),#1b2834 var(--town-ui-night))}body.login-town .town-inventory{background:color-mix(in srgb,color-mix(in srgb,#e7e5bd,#35333c var(--town-ui-dusk)),#202f3b var(--town-ui-night))}body.login-town .town-scene-hint{color:color-mix(in srgb,color-mix(in srgb,#665339,#c3b5a2 var(--town-ui-dusk)),#bdb19d var(--town-ui-night))}body.login-town .town-stage{border-color:color-mix(in srgb,color-mix(in srgb,#766847,#655b5d var(--town-ui-dusk)),#4b5352 var(--town-ui-night))}}
/* Switch ink with its surface to avoid an unreadable gray-on-gray twilight; dusk to night remains continuous. */
@supports not (width:round(nearest,1px,1px)){body.login-town{--town-ui-dark:0}body.login-town[data-town-period="夜晚"],body.login-town[data-town-period="黄昏"]{--town-ui-dark:1}}
/* Speech lives above the scenery stacking context and avoids foreground controls. */
body.login-town .town-speech{position:fixed;z-index:9;transform:none;overflow-wrap:anywhere}
body.login-town .town-speech:after{left:var(--speech-tail-left,50%)}
body.login-town .town-speech[data-side=below]:after{bottom:auto;top:-12px;transform:rotate(225deg)}
body.login-town .town-speech[data-side=right]:after{bottom:auto;top:var(--speech-tail-top);left:-12px;transform:rotate(135deg)}
body.login-town .town-speech[data-side=left]:after{bottom:auto;top:var(--speech-tail-top);left:auto;right:-12px;transform:rotate(315deg)}
body.login-town .town-speech .town-speech-note{display:block;font-size:11px;line-height:1.55;margin:0 0 8px;color:inherit;overflow-wrap:anywhere}
/* Keep the decorative lamp halo inside narrow login viewports. */
@media(max-width:760px){body.login-town .town-door-lamp .town-lamp-halo{left:-32px;top:-8px;width:96px;height:96px}}
@media (min-width:761px) and (max-height:400px){body.login-town .town-speech{width:240px;padding:10px;font-size:13px}body.login-town .town-speech p{font-size:13px;line-height:1.5;margin:7px 0}body.login-town .town-speech .town-speech-note{font-size:11px;line-height:1.4;margin-bottom:6px}}
