/* System fonts keep the game independent of external font services. */
:root{font-family:'Noto Sans TC',sans-serif;color:#394d43;--paper:rgba(255,253,242,.92);--line:rgba(94,113,83,.17);--green:#476849}*{box-sizing:border-box}body{margin:0;overflow:hidden;background:#bfd8cd}button,input{font:inherit}button{cursor:pointer;color:inherit;border:0;background:none}button:hover{filter:brightness(1.06);color:#9c6439}button:focus-visible,input:focus-visible{outline:2px solid #c68d4f;outline-offset:4px}#world{position:fixed;inset:0;width:100%;height:100%;touch-action:none}header{position:absolute;top:27px;left:34px;right:34px;display:flex;align-items:center;justify-content:space-between;pointer-events:none}header>*{pointer-events:auto}.brand{display:flex;gap:12px;align-items:center}.brand-mark{font-size:37px;width:51px;height:51px;border:1px solid #536b4f;border-radius:50%;text-align:center;line-height:46px;background:#f4f1daca}.brand h1{font-family:'Noto Serif TC',serif;font-size:24px;letter-spacing:5px;margin:0}.brand h1 span{font-family:sans-serif;font-size:8px;letter-spacing:1px;border:1px solid #73816b;border-radius:3px;padding:2px 3px;vertical-align:middle}.brand small{font-size:8px;letter-spacing:2.5px}.day,.profile{display:flex;align-items:center;gap:13px;background:var(--paper);border:1px solid #fff8;border-radius:30px;padding:10px 19px;box-shadow:0 4px 20px #36524809;font-size:11px}.day span{font-size:20px;color:#b28a43}.day i{height:13px;border-left:1px solid #afbaab}.profile{gap:11px;padding:8px 11px 8px 18px;font-size:12px}.coin{color:#c79e49;font-size:20px}.divider{height:17px;border-left:1px solid #d7ddca;margin:0 3px}.avatar{display:grid;place-items:center;background:#e4e8c9;border-radius:50%;width:31px;height:31px;font-size:23px}.location{position:absolute;left:38px;top:120px;pointer-events:none;text-shadow:0 1px 12px #eff8df}.eyebrow{font-size:9px;letter-spacing:2.5px;font-weight:600;color:#7a8872}.location h2{font-family:'Noto Serif TC',serif;font-size:31px;font-weight:600;letter-spacing:4px;margin:8px 0 11px}.location h2 span{font-size:23px;color:#9a7a3f;margin-left:13px}.location p{font-size:10px;letter-spacing:.4px;margin:0}.online-dot{display:inline-block;width:6px;height:6px;background:#6e975b;border-radius:50%;margin-right:6px}.loc-divider{margin:0 8px;opacity:.4}.right-rail{position:absolute;right:33px;top:104px;width:240px;display:flex;align-items:flex-end;flex-direction:column;gap:20px}.map-shell{width:156px;height:156px;border-radius:50%;border:6px solid #fff8;outline:1px solid #73816b44;position:relative;overflow:hidden;box-shadow:0 5px 20px #29402c16}#minimap{width:100%;height:100%;background:#b2d4b2}.north{position:absolute;top:7px;left:calc(50% - 4px);font-size:9px;color:#6f7758}.map-label{position:absolute;bottom:12px;left:0;right:0;text-align:center;font-size:6px;letter-spacing:2px}.quest{width:240px;background:var(--paper);border:1px solid #fff9;padding:19px 19px 0;border-radius:5px 17px 5px 17px;box-shadow:0 8px 35px #39513913;font-size:10px}.quest-head{display:flex;justify-content:space-between;align-items:center;color:#9b7948}.quest-head span{font-size:12px;font-weight:600}.quest-head small{font-size:8px;color:#8b927e}.quest h3{font-size:13px;font-weight:500;margin:17px 0 6px}.quest p{font-size:9px;color:#8e9886;margin:0 0 17px}.quest>div:not(.quest-head):not(.quest-footer){margin:13px 0;color:#758466;font-size:10px}.quest-footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;margin-top:19px;padding:11px 0;font-size:8px;color:#a2a58b}.chat{position:absolute;bottom:94px;left:30px;width:310px;background:rgba(250,251,231,.78);backdrop-filter:blur(12px);border:1px solid #ffffff65;border-radius:12px;overflow:hidden;box-shadow:0 4px 22px #37513609}.chat-header{display:flex;align-items:center;gap:12px;padding:11px 13px 7px;font-size:10px}.chat-header strong{font-size:11px}.chat-header span{color:#95a186;font-size:9px}.chat-header button{margin-left:auto;font-size:19px;line-height:16px}#messages{height:84px;overflow:auto;padding:0 13px;font-size:10px;line-height:1.7;scrollbar-width:thin}#messages p{margin:4px 0;overflow-wrap:anywhere}.system{color:#889575;font-size:9px}#messages b{font-weight:500;color:#607a56}#messages button{font-size:9px;opacity:.5;padding:0 3px}#chat-form{display:flex;border-top:1px solid var(--line);margin:8px 10px 0;padding:7px 0}#chat-input{border:0;background:none;width:100%;font-size:10px;color:#435b46;outline:none}#chat-input::placeholder{color:#97a58d}#chat-form button{font-size:20px;color:#778d60}.chat.collapsed #messages,.chat.collapsed #chat-form{display:none}footer{position:absolute;bottom:27px;left:50%;transform:translateX(-50%);display:flex;align-items:center;flex-direction:column;gap:14px}.controls{display:flex;gap:13px;font-size:9px;white-space:nowrap;text-shadow:0 1px 5px #ffffdc}.controls kbd{font-size:8px;font-family:inherit;color:#596c53;border-bottom:1px solid #7b90716b;padding:2px;margin-right:3px}.actions{display:flex;gap:9px;background:#f9f5df4d;padding:7px;border:1px solid #fff6;border-radius:18px;backdrop-filter:blur(8px)}.actions button{width:59px;height:61px;display:flex;position:relative;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:var(--paper);border-radius:10px;box-shadow:0 3px 0 #566b4521}.actions button>span{font-size:25px;line-height:25px}.actions small{font-size:9px}.actions kbd{position:absolute;right:3px;top:2px;font-family:inherit;font-size:7px;opacity:.6}.actions .primary{background:#557a58;color:#fff8dc;outline:1px solid #fff7;outline-offset:2px}.actions button.active{background:#d7ad62;color:#fff}.collection-nav{position:absolute;right:32px;bottom:39px;display:flex;gap:11px}.collection-nav button{height:42px;display:flex;align-items:center;gap:9px;background:var(--paper);border:1px solid #fff8;border-radius:10px;padding:0 13px;font-size:11px}.collection-nav span{font-size:22px;color:#74855e}.collection-nav b{font-size:9px;font-weight:400;color:#8c947b;border-left:1px solid var(--line);padding-left:9px}.music{position:absolute;left:32px;bottom:35px;display:flex;align-items:center;gap:4px;font-size:10px;color:#556f55}.music button{padding:4px}.music #music-pick{max-width:195px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#music-name{margin-left:6px}#volume{width:49px;height:3px;accent-color:#6e8b62}.name-label{position:absolute;transform:translate(-50%,-100%);pointer-events:none;font-size:10px;background:#fff9dfd9;padding:4px 11px;border:1px solid #ffffff90;border-radius:20px;white-space:nowrap;box-shadow:0 2px 10px #38503612}.name-label .bubble{position:absolute;bottom:32px;left:50%;transform:translateX(-50%);padding:9px 12px;border-radius:10px;background:#fffbed;max-width:220px;white-space:normal;overflow-wrap:anywhere;box-shadow:0 3px 12px #3332}.name-label .bubble:empty{display:none}#prompt{position:absolute;bottom:166px;left:50%;transform:translateX(-50%);background:#fffce7ed;border:1px solid #fff9;padding:9px 16px;border-radius:30px;font-size:11px;pointer-events:none;white-space:nowrap}#prompt:empty{display:none}#toast{position:absolute;top:105px;left:50%;transform:translate(-50%,-12px);opacity:0;transition:.3s;background:#fffae9f2;border:1px solid #fff;padding:12px 23px;border-radius:30px;font-size:12px;pointer-events:none;box-shadow:0 5px 25px #364f3719;max-width:80vw}#toast.show{opacity:1;transform:translate(-50%,0)}dialog{border:1px solid #fff;background:#faf8eaf5;backdrop-filter:blur(22px);color:#405641;border-radius:22px;padding:32px;width:min(650px,90vw);max-height:80vh;box-shadow:0 20px 100px #23462b40}dialog::backdrop{background:#25433245;backdrop-filter:blur(5px)}dialog h2{font-family:'Noto Serif TC',serif;font-size:25px;margin:9px 0 22px}#panel-close{position:absolute;top:13px;right:18px;font-size:27px}#panel-body{font-size:12px;line-height:1.8}.item-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.item-card{border:1px solid #c9d1b97a;border-radius:12px;background:#fffaf0;padding:16px 8px;text-align:center}.item-card.locked{opacity:.45}.item-card .item-icon{font-size:37px;color:#a88b48;line-height:1.5}.item-card h4{font-weight:500;font-size:11px;margin:8px 0 4px}.item-card p{font-size:9px;margin:0;color:#8d967c}.panel-note{font-size:10px;color:#8a937d;margin-top:20px}.rank-row{display:flex;gap:20px;align-items:center;padding:13px 8px;border-bottom:1px solid var(--line)}.rank-row strong{flex:1}.rank-row small{color:#859376}.name-form{display:flex;gap:12px}.name-form input{min-width:0;flex:1;padding:10px;border:1px solid #cdd3b8;border-radius:8px;background:#fffdf3}.name-form button{padding:8px 18px;background:#587c56;color:white;border-radius:8px}#loading{position:fixed;inset:0;z-index:20;background:#e3e9d6;display:grid;place-content:center;text-align:center;transition:opacity .6s}.load-mark{font-size:80px;color:#6d8f6b}#loading h1{font-family:'Noto Serif TC',serif;font-size:24px;letter-spacing:4px}#loading p{font-size:12px;color:#7b8d6d}.mobile-move{display:none}
@media(min-width:1600px){.right-rail{right:45px;top:120px;width:260px}.quest{width:260px}.map-shell{width:180px;height:180px}.chat{width:345px}#messages{height:112px}}
@media(max-width:1050px){.day{display:none}.right-rail{right:20px;top:100px}.quest{display:none}.chat{width:250px;bottom:135px;left:20px}.collection-nav{right:20px;bottom:100px}.controls{font-size:8px;gap:5px}.location{left:25px}.music{left:20px;bottom:25px}.collection-nav button{padding:0 10px;font-size:10px}.collection-nav b{display:none}}
@media(max-width:650px){header{top:15px;left:16px;right:16px}.brand h1{font-size:20px}.brand-mark{width:39px;height:39px;font-size:29px;line-height:35px}.brand small{font-size:6px}.brand h1 span{display:none}.profile{padding:5px 8px;gap:6px;font-size:10px}.avatar{display:none}.location{top:86px;left:20px}.location h2{font-size:24px;margin:5px 0}.location .eyebrow{font-size:7px}.location p{font-size:8px}.right-rail{top:85px;right:18px;width:90px}.map-shell{width:90px;height:90px;border-width:3px}.map-label{display:none}.chat{left:15px;bottom:174px;width:220px}#messages{height:57px}.chat-header{padding:7px 12px}.collection-nav{bottom:179px;right:12px;flex-direction:column;gap:6px}.collection-nav button{height:34px}.collection-nav span{font-size:15px}footer{bottom:42px;left:auto;right:12px;transform:none}.controls{display:none}.actions{gap:5px;padding:5px}.actions button{width:43px;height:53px}.music{bottom:8px;left:16px;font-size:9px}#volume{width:35px}.mobile-move{position:absolute;bottom:44px;left:15px;display:grid;grid-template-columns:repeat(3,35px);gap:4px}.mobile-move button{background:#fffbdedb;border-radius:8px;height:35px;touch-action:none}.mobile-move button:first-child{grid-column:2}.mobile-move button:nth-child(2){grid-column:1}.item-grid{grid-template-columns:repeat(2,1fr)}#prompt{bottom:143px;font-size:9px}#toast{top:185px;font-size:10px;width:max-content}.profile #name-button{max-width:75px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}
/* Keep the language control available on both the login screen and in town. */
.language-picker{position:fixed;right:24px;top:76px;z-index:6;display:flex;align-items:center;gap:7px;padding:5px 9px;border:1px solid #fff9;border-radius:9px;background:var(--paper);font-size:10px;box-shadow:0 2px 10px #36524809}
.language-picker select{font:inherit;color:inherit;background:transparent;border:0;max-width:110px;cursor:pointer}.language-picker select:focus-visible{outline:2px solid #c68d4f;outline-offset:2px}
.signed-out .language-picker{top:22px}
html[lang=en] .brand h1{font-size:18px;letter-spacing:0}html[lang=en] .login-brand{letter-spacing:0;font-size:22px}html[lang=en] .login-story h1{font-size:clamp(30px,3.4vw,49px);letter-spacing:0;line-height:1.3;max-width:490px}html[lang=en] .login-story p{letter-spacing:0;max-width:440px}html[lang=en] .location h2{letter-spacing:0}html[lang=en] .login-card h2{font-size:22px;letter-spacing:0}html[lang=en] .login-tags{gap:12px;letter-spacing:0}
@media(max-width:1050px){html[lang=en] .login-story{max-width:40%}html[lang=en] .login-story h1{font-size:32px}html[lang=en] .login-tags{flex-direction:column}}
@media(max-width:650px){.language-picker{top:59px;right:16px;font-size:9px;padding:4px 7px}.signed-out .language-picker{top:70px}.language-picker label{display:none}html[lang=en] .brand h1{font-size:15px}html[lang=en] .brand small{letter-spacing:.5px}html[lang=en] .profile{gap:4px;padding:5px}html[lang=en] .profile #name-button{max-width:48px}html[lang=en] .location p{max-width:205px}html[lang=en] #prompt{white-space:normal;text-align:center;max-width:90vw;width:max-content}html[lang=en] .item-card h4{font-size:10px}}

.name-label .bubble{width:max-content;max-width:min(220px,70vw)}
.item-icon img{max-width:100%;height:auto;vertical-align:middle}.inventory-layout{display:grid;grid-template-columns:1fr 1fr;gap:20px}.inventory-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-content:start}.inventory-item{border:1px solid #d5dac6;background:#fffaf0;border-radius:12px;padding:9px;display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0}.inventory-item img{width:100%;height:90px;object-fit:contain}.inventory-item strong{font-size:11px;font-weight:500}.inventory-item small{font-size:9px}.inventory-item.selected{border-color:#638866;background:#e8efd9;box-shadow:0 0 0 1px #638866}.item-detail{min-width:0}.item-detail h3{font-size:18px;margin:12px 0 6px}.item-detail p{font-size:11px;line-height:1.8}.item-preview{height:210px;border-radius:16px;background:linear-gradient(150deg,#ecf1df,#d9e8df);overflow:hidden}.item-preview canvas,.cabin-preview canvas{display:block;touch-action:none;width:100%;height:100%}.soft-button{background:#587a59;color:#fffbe6;border-radius:9px;padding:9px 13px;font-size:11px;margin:4px 0}.soft-button:disabled{opacity:.45;cursor:default}.cabin-preview{height:310px;border-radius:16px;overflow:hidden;background:#e9e4ce}.display-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}.display-slot{border:1px solid #d4dac4;border-radius:10px;padding:10px;text-align:center;display:flex;flex-direction:column;justify-content:space-between;font-size:11px}.display-slot strong{font-weight:500}.panel-toolbar{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.invite-link{box-sizing:border-box;width:100%;padding:9px;border:1px solid #d0d8c0;border-radius:8px;background:#fffdf1;color:#50674e;font-size:10px}.empty-state{text-align:center;padding:35px 15px;color:#788770}.rank-row{gap:10px}.rank-row .soft-button{font-size:9px;padding:6px 9px}
@media(max-width:650px){dialog{box-sizing:border-box;padding:24px 16px;width:calc(100vw - 24px);max-height:85vh}.inventory-layout{grid-template-columns:1fr}.inventory-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.inventory-item{padding:5px}.inventory-item img{height:64px}.inventory-item small{font-size:8px}.item-preview{height:190px}.cabin-preview{height:220px}.display-slots{gap:6px}.display-slot{padding:7px;font-size:10px}.rank-row{flex-wrap:wrap}.collection-nav{gap:5px}.collection-nav button{font-size:9px;padding:0 8px}.collection-nav i18n-text{max-width:95px}.panel-toolbar .soft-button{font-size:10px}}
