.town-atlas{position:absolute;inset:90px 18px 105px;pointer-events:auto}.tx-toolbar{position:absolute;z-index:3;left:10px;right:10px;top:0;display:flex;align-items:center;gap:10px;pointer-events:none}.tx-toolbar>*{pointer-events:auto}.tx-toolbar>span{display:flex;flex-direction:column;background:#fffaf0ec;border:1px solid #c8d2b8;padding:10px 15px;border-radius:14px;line-height:1.7}.tx-toolbar small{font-size:7px;letter-spacing:.1em;color:#849773}.tx-toolbar b{font-size:12px;font-weight:500}.tx-toolbar label{margin-left:auto}.tx-toolbar select,.tx-toolbar>button{font:inherit;font-size:10px;color:#526c43;background:#fffaf0ed;border:1px solid #c4d0b2;padding:9px 12px;border-radius:12px;max-width:230px}.tx-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.tx-viewport{position:absolute;inset:0;overflow:hidden;border-radius:24px;touch-action:none;cursor:grab;background:#e3e9d4;border:1px solid #c7d1b5;mask-image:linear-gradient(#000,#000)}.tx-viewport:active{cursor:grabbing}.tx-map{width:100%;height:100%;display:block;user-select:none}.tx-place{cursor:pointer;outline:none;transition:opacity .2s}.tx-place.tx-dim{opacity:.34}.tx-place.tx-locked .tx-lesson-dot{fill:#c1c9b2}.tx-place:hover .tx-label-bg,.tx-place:focus .tx-label-bg{fill:#dce8c9;stroke:#809b65;stroke-width:3}.tx-label-bg{fill:#fffaf0ef;stroke:#c7d1b5;stroke-width:1.5}.tx-label{font:17px HanweiVietnamese,'Segoe UI',sans-serif;fill:#47613c}.tx-lesson-dot{fill:#859e69;stroke:#fffaf0;stroke-width:3}.tx-order{fill:#fffaf0;font:18px HanweiVietnamese,sans-serif}.tx-area{font:15px HanweiVietnamese,sans-serif;fill:#839870;letter-spacing:3px}.tx-river-name{font:18px HanweiVietnamese,sans-serif;fill:#729b90;letter-spacing:4px}.tx-controls{position:absolute;z-index:3;bottom:18px;left:18px;display:flex;align-items:center;gap:7px;background:#fffaf0ed;border:1px solid #c3cfb2;border-radius:14px;padding:7px}.tx-controls button{width:29px;height:29px;background:#e8eedb;border-radius:8px;font-size:18px}.tx-controls button:last-of-type{width:auto;font-size:9px;padding:0 10px}.tx-controls>span{font-size:9px;min-width:30px;text-align:center}.tx-controls small{font-size:8px;color:#869970;margin:0 6px}.tx-legend{position:absolute;bottom:-24px;left:18px;font-size:8px;color:#718760;margin:0}.tx-legend span{margin-left:16px;font-size:7px;opacity:.8}.tx-card{position:absolute;right:18px;top:68px;z-index:4;background:#fffaf0f5;border:1px solid #b7c7a1;border-radius:18px;box-shadow:0 6px 0 #6c805414;width:285px;padding:20px;max-height:calc(100% - 90px);overflow:auto;font-size:10px;scrollbar-width:thin}.tx-card[hidden]{display:none}.tx-card>small{font-size:7px;color:#8a9a79;text-transform:uppercase;letter-spacing:.08em}.tx-card h2{font-size:18px;line-height:1.5;font-weight:600;margin:7px 0}.tx-cn{font:13px 'Microsoft YaHei',sans-serif;color:#8b9b75}.tx-card p{font-size:10px;color:#7a8e68;line-height:1.9}.tx-card .tx-resident{font-size:9px}.tx-card details{margin:12px 0;color:#80966c;font-size:9px}.tx-card details p{font-size:9px}.tx-card .g-btn{font-size:9px;display:block;width:100%;border-radius:11px;padding:9px;margin:8px 0;min-height:35px}.tx-card-close{position:absolute;right:10px;top:8px;border-radius:50%;background:#eaf0dd;width:26px;height:26px;font-size:17px;color:#71885d}.tx-plan{border-top:1px solid #e1e6d5;padding-top:10px;font-size:8px!important}.nv-window{max-width:960px}.nv-subtitle{color:#8b9b77;font-size:11px!important}.nv-tabs{display:flex;gap:8px;margin:17px 0 24px}.nv-tabs .g-btn{font-size:10px;padding:8px 13px;min-height:36px;border-radius:11px}.nv-premise{font-size:13px!important;line-height:2!important;color:#617b50;background:#edf2df;border-left:3px solid #a2b985;padding:17px 20px;border-radius:0 14px 14px 0}.nv-acts{display:grid;gap:12px;margin:24px 0}.nv-acts>details,.nv-weeks>details{border:1px solid #dce3cd;border-radius:13px;background:#f5f6eb;padding:15px 18px}.nv-acts summary{cursor:pointer;list-style:none}.nv-acts summary small{display:block;color:#8a9d74;font-size:8px;letter-spacing:.05em;margin-bottom:5px}.nv-acts summary b{font-size:16px;font-weight:500}.nv-acts details p{font-size:11px;line-height:1.95;color:#7a8e67}.nv-acts blockquote{font-size:12px;font-style:normal;color:#5a7648;margin:15px 0;padding:10px 15px;border-left:2px solid #a0b983;background:#eaf0dc}.nv-battery{font-size:9px!important;color:#8e9d7b!important}.nv-place-links{display:flex;gap:6px;flex-wrap:wrap}.nv-place-links button{background:#e9efdc;border:1px solid #d8e1c6;border-radius:8px;font-size:8px;padding:6px 10px}.nv-scenes{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin:20px 0}.nv-scenes article{border:1px solid #e0e6d3;border-radius:14px;padding:18px;background:#fffdf6}.nv-scenes small{font-size:7px;letter-spacing:.1em;color:#91a17d}.nv-scenes h3{font-size:14px;margin:8px 0;font-weight:500}.nv-scenes p{font-size:10px;line-height:1.9;color:#82956e}.nv-scenes .g-btn{font-size:9px;padding:7px 12px;min-height:34px}.nv-objective{font-size:9px!important;background:#eaf0dc;border-radius:9px;padding:11px;color:#6c8655!important}.nv-rules{font-size:10px;margin:25px 0;color:#7a8e66}.nv-rules li{margin:9px 0;line-height:1.9}.nv-people{display:grid;gap:15px}.nv-people article{display:grid;grid-template-columns:120px 1fr;gap:20px;border:1px solid #e0e5d1;border-radius:15px;padding:16px;background:#f2f5e7}.nv-portrait{background:#e5ecd4;border-radius:12px;display:grid;place-items:center}.nv-portrait svg,.nv-portrait img{width:100px;height:145px;object-fit:contain}.nv-people small{font-size:8px;color:#90a17b}.nv-people h3{font-size:15px;font-weight:500;margin:5px 0}.nv-people p{font-size:11px;line-height:1.9;color:#81946d}.nv-people .nv-arc{font-size:10px;color:#8c9b7b}.nv-people button{font-size:9px;padding:7px 12px;min-height:34px}.nv-weeks{display:grid;gap:9px;margin-top:20px}.nv-weeks summary{display:flex;gap:12px;align-items:center;list-style:none;cursor:pointer}.nv-week-number{display:grid;place-items:center;width:35px;height:35px;background:#e2ead1;border-radius:12px;font-size:13px;color:#718e56}.nv-weeks summary small{display:block;font-size:7px;color:#8c9c7a}.nv-weeks summary b{display:block;font-size:11px;font-weight:500;margin:3px 0}.nv-weeks summary em{display:block;font-size:9px;font-style:normal;color:#899b75}.nv-weeks dl{display:grid;grid-template-columns:40px 1fr;gap:7px;font-size:10px;color:#7b9167}.nv-weeks dt{font-weight:600}.nv-weeks dd{margin:0}.nv-grammar{font-size:10px;color:#7d9269;margin-top:17px}.nv-weeks .g-btn{font-size:9px;min-height:34px}.player-rig{overflow:visible!important}.player-rig .rig-facing{transform:scaleX(var(--motion-facing,1));transform-origin:300px 450px}.player-rig .rig-arm,.player-rig .rig-hip,.player-rig .rig-knee,.player-rig .rig-head,.player-rig .rig-bag{transform-box:view-box}.rig-arm-left{transform-origin:var(--rig-arm-left)}.rig-arm-right{transform-origin:var(--rig-arm-right)}.rig-hip-left{transform-origin:var(--rig-left-x) var(--rig-hip-y)}.rig-hip-right{transform-origin:var(--rig-right-x) var(--rig-hip-y)}.rig-knee-left{transform-origin:var(--rig-left-x) var(--rig-knee-y)}.rig-knee-right{transform-origin:var(--rig-right-x) var(--rig-knee-y)}.rig-head{transform-origin:300px 430px}.rig-bag{transform-origin:320px 470px}.motion-actor[data-pose=walk] .rig-arm-left{animation:rig-arm-walk .72s linear infinite}.motion-actor[data-pose=walk] .rig-arm-right{animation:rig-arm-walk .72s -.36s linear infinite}.motion-actor[data-pose=walk] .rig-hip-left{animation:rig-leg-walk .72s linear infinite}.motion-actor[data-pose=walk] .rig-hip-right{animation:rig-leg-walk .72s -.36s linear infinite}.motion-actor[data-pose=walk] .rig-knee-left{animation:rig-knee-walk .72s linear infinite}.motion-actor[data-pose=walk] .rig-knee-right{animation:rig-knee-walk .72s -.36s linear infinite}.motion-actor[data-pose=walk] .rig-head{animation:rig-head-walk .72s linear infinite}.motion-actor[data-pose=walk] .rig-bag{animation:rig-bag-walk .72s -.1s linear infinite}.motion-actor[data-pose=wave] .rig-arm-right{animation:rig-wave .7s ease-in-out infinite}.motion-actor[data-pose=bow] .rig-head{animation:rig-bow 1.6s ease-in-out infinite}.motion-actor[data-pose=write] .rig-arm-left{transform:rotate(-16deg)}.motion-actor[data-pose=write] .rig-arm-right{animation:rig-write .65s ease-in-out infinite}.motion-actor[data-pose=sit] .rig-hip-left{transform:rotate(53deg)}.motion-actor[data-pose=sit] .rig-hip-right{transform:rotate(-53deg)}.motion-actor[data-pose=sit] .rig-knee-left{transform:rotate(-80deg)}.motion-actor[data-pose=sit] .rig-knee-right{transform:rotate(80deg)}.motion-goat>.hanwei-motion{width:100%;height:100%;display:block;background-repeat:no-repeat;transform:scaleX(var(--motion-facing,1))}.hanwei-stand{background-image:url('assets/town/hanwei-wave-0.webp');background-size:100% 100%}.hanwei-walk{background-image:url('assets/town/hanwei-walk-strip.webp');background-size:800% 100%;animation:hanwei-step .72s steps(8,end) infinite}.hanwei-wave{background-image:url('assets/town/hanwei-wave-strip.webp');background-size:400% 100%;animation:hanwei-greet 1.2s steps(4,end) infinite}.g-npc>.motion-talk-mark{position:absolute;right:7px;left:auto;top:-6px}.cozy-world .g-player.walking svg,.cozy-world .g-player:not(.walking)>svg,.cozy-world .g-npc.escort img{animation:none!important}.cozy-world .g-player,.cozy-world .g-npc{transition:none}.cozy-world .g-player .rig-arm,.cozy-world .g-player .rig-hip,.cozy-world .g-player .rig-knee,.cozy-world .g-player .rig-head{will-change:transform}.motion-preview{display:flex;align-items:end;justify-content:center;gap:45px;background:#e8eedb;border-radius:20px;padding:25px;margin:25px 0;height:350px;overflow:hidden}.motion-preview>.motion-actor{width:190px;height:285px}.motion-preview .player-rig{width:100%;height:100%}.motion-preview>.motion-goat{width:170px;height:205px}.painted-bus{width:100%;height:auto}.bus-wheel{transform-box:view-box}.sr-arrival[data-bus-state=arriving] .bus-wheel,.sr-arrival[data-bus-state=departing] .bus-wheel{animation:bus-tire-roll .65s linear infinite}.door-open .bus-door-left{transform:translateX(-80px)}.door-open .bus-door-right{transform:translateX(80px)}.bus-door-panel{transition:transform .6s ease}.sr-arrival[data-bus-state=stopped] .bus-suspension{animation:bus-brake .7s ease-out}.cozy-arriving .sr-bus{animation:bus-enter 2.7s cubic-bezier(.18,.65,.2,1) both}.cozy-arriving[data-bus-state=departing] .sr-bus{animation:bus-leave 2.2s ease-in both}.motion-bus-tag{position:absolute;left:34%;top:4%;font-size:8px;background:#526f4c;color:#fff7dc;padding:3px 9px;border-radius:5px;letter-spacing:.1em}.story-replay-note{font-size:10px;color:#8c9c76}@keyframes rig-arm-walk{0%,100%{transform:rotate(-13deg)}50%{transform:rotate(13deg)}}@keyframes rig-leg-walk{0%,100%{transform:rotate(9deg)}50%{transform:rotate(-9deg)}}@keyframes rig-knee-walk{0%,50%,100%{transform:rotate(0)}18%{transform:rotate(23deg)}32%{transform:rotate(14deg)}}@keyframes rig-head-walk{0%,50%,100%{transform:rotate(-.8deg)}25%,75%{transform:rotate(.8deg)}}@keyframes rig-bag-walk{0%,100%{transform:rotate(-2deg)}50%{transform:rotate(2deg)}}@keyframes rig-wave{0%,100%{transform:rotate(-91deg)}50%{transform:rotate(-111deg)}}@keyframes rig-bow{0%,100%{transform:translateY(0) rotate(0)}35%,65%{transform:translateY(8px) rotate(7deg)}}@keyframes rig-write{0%,100%{transform:rotate(-38deg)}50%{transform:rotate(-31deg)}}@keyframes hanwei-step{to{background-position:114.285714% 0}}@keyframes hanwei-greet{to{background-position:133.333333% 0}}@keyframes bus-tire-roll{to{transform:rotate(360deg)}}@keyframes bus-brake{0%{transform:translateY(0) rotate(.15deg)}35%{transform:translateY(5px) rotate(-.2deg)}70%{transform:translateY(-2px)}100%{transform:none}}@keyframes bus-enter{from{left:-65%}to{left:13%}}@keyframes bus-leave{from{left:13%}to{left:110%}}
@media(max-width:850px){.tx-toolbar>span b{font-size:10px}.tx-controls small{display:none}.tx-card{width:260px}.nv-scenes{grid-template-columns:1fr}.nv-portrait svg,.nv-portrait img{width:83px;height:130px}.nv-people article{grid-template-columns:90px 1fr;gap:14px}.tx-legend span{display:none}}
@media(max-width:650px){.town-atlas{inset:105px 10px 113px}.tx-toolbar{left:8px;right:8px;top:8px;flex-wrap:wrap;gap:6px}.tx-toolbar>span{padding:7px 9px}.tx-toolbar>span small{font-size:6px}.tx-toolbar>span b{display:none}.tx-toolbar label{margin-left:auto}.tx-toolbar select,.tx-toolbar>button{font-size:8px;padding:7px;max-width:155px}.tx-card{width:calc(100% - 24px);left:12px;right:12px;top:auto;bottom:65px;max-height:245px;padding:14px}.tx-card h2{font-size:15px}.tx-card p{font-size:9px}.tx-card .g-btn{font-size:8px;padding:7px;min-height:32px}.tx-controls{bottom:15px;left:12px;padding:6px;gap:5px}.tx-controls button{width:27px;height:27px;font-size:16px}.tx-controls button:last-of-type{font-size:8px}.tx-legend{bottom:-26px;left:9px;font-size:7px}.tx-viewport{border-radius:18px}.nv-tabs{gap:5px}.nv-tabs .g-btn{font-size:9px;padding:7px 10px}.nv-premise{font-size:11px!important;padding:14px}.nv-acts>details,.nv-weeks>details{padding:12px}.nv-acts summary b{font-size:14px}.nv-acts details p{font-size:10px}.nv-acts blockquote{font-size:11px}.nv-people article{grid-template-columns:75px 1fr;padding:12px;gap:12px}.nv-portrait svg,.nv-portrait img{width:70px;height:110px}.nv-people h3{font-size:13px}.nv-people p{font-size:10px}.nv-weeks summary b{font-size:10px}.nv-weeks dl{font-size:9px}.motion-preview{height:260px;padding:14px;gap:20px}.motion-preview>.motion-actor{width:140px;height:220px}.motion-preview>.motion-goat{width:115px;height:145px}.cozy-arriving .sr-bus{animation-name:bus-enter-mobile}.cozy-arriving[data-bus-state=departing] .sr-bus{animation-name:bus-leave-mobile}@keyframes bus-enter-mobile{from{left:-95%}to{left:4%}}@keyframes bus-leave-mobile{from{left:4%}to{left:120%}}}
@media(prefers-reduced-motion:reduce){.motion-actor *,.hanwei-motion,.painted-bus *,.cozy-arriving .sr-bus{animation:none!important;transition:none!important}}

.cozy-world .g-dialog.story-new-beat .sr-narrator{display:block;font-size:10px!important;line-height:1.7}.cozy-arriving[data-bus-state=stopped] .sr-bus{animation:none;left:13%}@media(max-width:650px){.cozy-arriving[data-bus-state=stopped] .sr-bus{left:4%}.cozy-world .g-dialog.story-new-beat .sr-narrator{font-size:9px!important}}

.g-npc>.hanwei-motion{position:relative;left:0;top:0;border-radius:0;background-color:transparent;line-height:normal;font-size:0}.motion-goat>.hanwei-stand{background-image:url('assets/town/hanwei-wave-0.webp')}.motion-goat>.hanwei-walk{background-image:url('assets/town/hanwei-walk-strip.webp')}.motion-goat>.hanwei-wave{background-image:url('assets/town/hanwei-wave-strip.webp')}

.town-mini{position:absolute;left:22px;top:98px;width:155px;background:#fffaf0e8;border:1px solid #c9d4b6;border-radius:13px;padding:6px;color:#82936e;text-align:center;overflow:hidden}.town-mini svg{display:block;width:100%;height:84px;border-radius:8px}.town-mini span{display:block;font-size:7px;margin:3px 0}@media(max-width:650px){.town-mini{left:12px;top:193px;width:110px;padding:4px;border-radius:10px}.town-mini svg{height:55px}.town-mini span{font-size:6px}}

.nv-full-script{font-size:10px;color:#81966b;text-decoration:underline;text-underline-offset:3px}

.cozy-world.cozy-arriving #world-background{background-image:url('assets/town/arrival-forecourt.webp')!important;background-size:cover;background-position:center center}.cozy-arriving .sr-bus{top:42%}.cozy-world .g-npc.motion-goat>.hanwei-motion{position:relative;left:0;top:0;display:block;width:100%;height:100%;border:0;border-radius:0;background-color:transparent;background-repeat:no-repeat;line-height:normal;font-size:0}.cozy-world .g-npc.motion-goat>.hanwei-stand{background-image:url('assets/town/hanwei-wave-0.webp');background-size:contain;background-position:center bottom}.cozy-world .g-npc.motion-goat>.hanwei-walk{background-image:url('assets/town/hanwei-walk-strip.webp');background-size:800% 100%}.cozy-world .g-npc.motion-goat>.hanwei-wave{background-image:url('assets/town/hanwei-wave-strip.webp');background-size:400% 100%}@media(max-width:650px){.cozy-arriving .sr-bus{top:42%}.cozy-arriving .g-npc.motion-goat{width:85px;height:100px}}

.cozy-world:not(.cozy-home) #dialogue{z-index:22}@media(max-width:650px){.cozy-world:not(.cozy-home) .g-npc.motion-goat{width:85px;height:100px}}

@media(min-width:1100px){.cozy-world:not(.cozy-arriving):not(.cozy-home) #dialogue{width:320px;min-width:0;left:auto;right:22px;bottom:111px;transform:none;display:grid;grid-template-columns:1fr;align-items:start;gap:10px;padding:18px 20px}.cozy-world:not(.cozy-arriving):not(.cozy-home) #dialogue>img{display:none}.cozy-world:not(.cozy-arriving):not(.cozy-home) #dialogue>.g-btn{width:100%;margin:0}.cozy-world:not(.cozy-arriving):not(.cozy-home) #dialogue .sr-cn{font-size:20px}.cozy-world:not(.cozy-arriving):not(.cozy-home) #dialogue .sr-narrator{font-size:10px!important}.cozy-world:not(.cozy-arriving):not(.cozy-home) #sr-quest{top:235px;bottom:auto;width:155px}}
