@font-face{font-family:Island;src:url('/art/font.ttf') format('truetype');font-display:swap}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{font:14px Island,'Microsoft YaHei',sans-serif;color:#24463f;background:#367c8c}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:0;border-radius:9px;padding:11px 16px;background:#285c4d;color:#fff9e9;transition:background .15s,transform .15s}button:hover{background:#39745d}button:active{transform:translateY(1px)}button:disabled{opacity:.5;cursor:wait}button.quiet,.secondary{background:#e8e7d9;color:#34554c}button.quiet:hover,.secondary:hover{background:#d9dfce}.danger{background:#a65545}.topbar{position:absolute;z-index:5;inset:0 0 auto;height:78px;background:#173e3e;color:#fff5dc;display:flex;align-items:center;padding:0 30px;gap:42px;box-shadow:0 2px 15px #15363720}.brand{display:flex;align-items:center;gap:12px;color:inherit;text-decoration:none;font-weight:700;font-size:23px;letter-spacing:3px}.brand small{display:block;font:9px Arial;letter-spacing:2.3px;margin-top:3px;color:#bbc8ad}.brand-icon{font-size:35px;color:#efd59a;border:1px solid #6c8675;width:44px;height:44px;line-height:36px;text-align:center;border-radius:10px}.island-tag{font-size:12px;color:#c6d0bd;display:flex;gap:12px;align-items:center}.island-tag i{width:5px;height:5px;background:#acbd9d;border-radius:50%}.top-actions{margin-left:auto;display:flex;gap:16px;align-items:center;font-size:12px}.top-actions .quiet{background:#294e4a;color:#e4e9d4;padding:8px 12px}#world{position:absolute;inset:78px 0 0}#game{border:0;width:100%;height:100%;position:absolute;inset:0;display:block}#game[hidden]{display:none}.floating{background:#fcf7e9f5;box-shadow:0 7px 28px #123b4021;border:1px solid #fff9ed;border-radius:13px;position:absolute;z-index:2}.identity{left:26px;top:24px;display:flex;align-items:center;padding:14px 18px 14px 10px;gap:10px;min-width:260px}.identity[hidden],.raid-chip[hidden],.quest-hint[hidden],#dock[hidden]{display:none}.identity small{display:block;color:#84917e;font-size:10px}.identity strong{font-size:16px;display:block;margin:1px 0 6px}.avatar{width:52px;height:52px;border-radius:10px;background-color:#dce2c8;background-image:url('/art/hero_blue_idle.png');background-size:832px 104px;background-position:-26px -27px;image-rendering:pixelated}.coin{margin-left:18px;border-left:1px solid #dfdecc;padding-left:20px;color:#947231;font-size:19px}.coin small{text-align:right;color:#9d956f}.hp-track{width:90px;height:5px;border-radius:4px;background:#dddccc}.hp-track i{display:block;height:100%;width:100%;background:#81a66b;border-radius:4px}.raid-chip{top:24px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:13px;padding:12px 18px;color:#365548;background:#fcf7e9f5;min-width:235px;text-align:left}.raid-chip:hover{background:#fff9ea}.raid-chip:active{transform:translateX(-50%)}.raid-chip small{display:block;font-size:10px;color:#7d8b73}.raid-chip strong{display:block;font-size:13px;margin-top:4px;font-weight:500}.beacon{font-size:32px;color:#a58f54}.chevron{margin-left:auto;font-size:22px}.quest-hint{right:26px;top:24px;width:226px;padding:20px}.eyebrow{font-size:10px;letter-spacing:1.8px;color:#88927c;margin:0 0 10px}.quest-hint h3{font-size:16px;margin:10px 0}.quest-hint p{font-size:12px;color:#788776;line-height:1.9}.quest-hint button{display:flex;justify-content:space-between;align-items:center;width:100%;padding:10px 13px;font-size:12px;margin-top:18px}#dock{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;z-index:3;gap:9px;width:max-content;max-width:95%}#dock nav{display:flex;padding:7px;background:#fcf7e9f5;box-shadow:0 7px 28px #14373738;border:1px solid #fff9ed;border-radius:14px;gap:5px}#dock nav button{background:transparent;color:#3f6153;padding:10px 20px;font-size:12px;display:flex;gap:8px;align-items:center}#dock nav button:hover{background:#e6ead8}#dock nav button span{font-size:21px;line-height:1;color:#71815c}.keys{color:#f3efd6;font-size:11px;text-shadow:0 1px 3px #22474a}.keys kbd{background:#1c55555c;border:1px solid #adc9b66e;padding:3px 5px;border-radius:4px;margin:0 4px 0 12px;font:10px Arial}.dock-note{font-size:9px;letter-spacing:2px;color:#f0edd3aa}.build-hint{position:absolute;bottom:140px;left:50%;transform:translateX(-50%);background:#f8dc96;padding:10px 15px;border-radius:10px;z-index:4;white-space:nowrap}.build-hint button{padding:6px 12px;margin-left:12px}dialog{border:1px solid #e7e0cb;border-radius:18px;background:#faf6e9;color:#294b42;box-shadow:0 25px 100px #0d302d55;padding:0;width:min(840px,94vw);max-height:86vh}dialog::backdrop{background:#163b3a5c;backdrop-filter:blur(4px)}.panel-head{display:flex;justify-content:space-between;align-items:center;padding:25px 30px 20px;border-bottom:1px solid #e4dfcd;position:sticky;top:0;background:#faf6e9;z-index:2}.panel-head h2{font-size:23px;margin:0;font-weight:600}.panel-head .eyebrow{margin-bottom:6px}.close{background:#e9e6d8;color:#64755e;font-size:25px;width:34px;height:34px;line-height:28px;padding:0}.close:hover{background:#dddcc9}#panelBody{padding:25px 30px 30px}h3{font-size:16px;margin:0 0 12px}p{line-height:1.8}.muted{color:#83917c;font-size:12px}.notice{border-left:3px solid #c5ad67;background:#f0e9cf;padding:12px 15px;color:#7c704c;font-size:12px;line-height:1.8;border-radius:0 6px 6px 0;margin:14px 0}.grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.stack{display:grid;gap:14px}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.row.between{justify-content:space-between}.field{display:flex;flex-direction:column;gap:7px;font-size:12px;color:#65775f}.field input,.field textarea,.field select,input,textarea,select{width:100%;border:1px solid #dcdcc8;background:#fffdf5;border-radius:8px;padding:11px 12px;color:#2e4e43;outline:none}input:focus,textarea:focus,select:focus{border-color:#83a283;box-shadow:0 0 0 3px #a5b68c20}textarea{resize:vertical;min-height:105px;line-height:1.7}.field small{color:#8f977f}.full{width:100%}.form-actions{display:flex;gap:10px;margin-top:17px;flex-wrap:wrap}.tabs{display:flex;gap:8px;margin-bottom:20px}.tabs button{background:#e8e8d9;color:#6b795f}.tabs button.active{background:#315e4e;color:#fff7dd}.card{border:1px solid #dedfcb;background:#fffdf4;border-radius:12px;padding:18px}.card+.card{margin-top:13px}.card.selected{border-color:#759779;background:#f2f3e4}.card p{margin:8px 0;white-space:pre-wrap;overflow-wrap:anywhere}.card .row button{font-size:11px;padding:6px 10px}.tag{background:#e7edda;color:#62815c;border-radius:5px;padding:4px 7px;font-size:10px;display:inline-block}.tag.gold{background:#f1e5bf;color:#9a7c37}.tag.red{background:#efded1;color:#a0624a}.rule{height:1px;background:#dfdfcb;margin:22px 0}.empty{padding:28px 18px;text-align:center;color:#8b967d;background:#efeedf;border-radius:10px;line-height:1.9}.images{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.images img{width:95px;height:95px;object-fit:cover;border-radius:7px;border:1px solid #e1dec8}.images a:hover{opacity:.8}.comment{border-top:1px solid #e8e5d7;padding:10px 0;font-size:12px}.comment p{margin:3px 0;color:#6b7968}.comment button{float:right;padding:2px 6px;background:transparent;color:#a68b6d}.mini-form{display:flex;gap:8px;margin-top:8px}.mini-form input{font-size:12px}.mini-form button{white-space:nowrap;padding:8px 12px}.preview{border-radius:15px;background:radial-gradient(ellipse at 50% 50%,#e0e8c4 0%,#c5d4b2 70%);min-height:215px;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;overflow:hidden}.preview .big-avatar{width:192px;height:192px;background-image:url('/art/hero_blue_idle.png');image-rendering:pixelated;animation:breathe 1.2s steps(8) infinite}.preview .preview-name{font-size:13px;position:absolute;bottom:22px;color:#527258}.preview-crest{position:absolute;top:60px;left:calc(50% - 11px);font-size:21px;color:#eac458}.swatches{display:flex;gap:9px}.swatch{width:34px;height:34px;border-radius:50%;border:3px solid #f5f1e3;padding:0;background:var(--color)}.swatch.selected{outline:2px solid #65816b}.swatch:hover{background:var(--color)}.equipment{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.equipment .card{margin:0;display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px}.sword-icon{font-size:38px;color:#b39a57;filter:drop-shadow(0 4px 4px #baaa6430)}.equipment .stat{font-size:23px;color:#60805e}.equipment h3{font-size:14px;margin:0}.equipment button{font-size:11px}.furniture-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.furniture-grid button{background:#ede9d7;color:#526d55;text-align:left;font-size:11px;padding:10px}.furniture-grid button.active{outline:2px solid #64876b;background:#e1e7cd}.furniture-grid button b{display:block;margin-bottom:3px}.room-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:2px;border:7px solid #8e7c5f;background:#8e7c5f;border-radius:5px;margin:15px 0;aspect-ratio:12/10}.room-grid button{padding:0;border-radius:0;background:#c8a77d;font-size:13px;overflow:hidden;min-width:0}.room-grid button:nth-child(even){background:#d2b48a}.room-grid button:hover{background:#efdaad}.room-grid button.broken{background:#986d5b}.auth-foot{text-align:center;margin-top:20px;font-size:12px;color:#84917b}.auth-foot button{background:none;color:#3e745e;padding:4px}.auth-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:26px}.auth-layout h3{font-size:21px;margin-top:0}.auth-layout .muted{line-height:1.9}.auth-preview{background:#e9ecd8;padding:18px;border-radius:12px;display:flex;flex-direction:column;justify-content:center}.auth-preview img{width:100%;image-rendering:pixelated}.auth-preview p{text-align:center;color:#869174;font-size:12px}.statline{display:flex;gap:24px;padding:18px 0}.statline b{font-size:25px;display:block}.statline small{font-size:11px;color:#809076}#toast{position:fixed;bottom:125px;left:50%;transform:translateX(-50%);background:#203f38;color:#faf2dc;padding:13px 24px;z-index:20;box-shadow:0 8px 25px #14352d33;border-radius:10px;max-width:90vw;font-size:13px}#welcome-scene{height:100%;position:relative;background:linear-gradient(160deg,#99bbb0,#4d9290 65%,#347b89);overflow:hidden}.welcome-copy{position:absolute;left:8%;top:19%;color:#f9f2d8}.welcome-copy .eyebrow{color:#d9e6cf;font-size:11px}.welcome-copy h1{font-size:clamp(35px,4vw,65px);font-weight:500;letter-spacing:3px;line-height:1.45}.welcome-copy p{color:#e2ead6;font-size:14px}.illustration-island{position:absolute;right:8%;top:28%;width:390px;height:240px;background:#adc18a;border:14px solid #d6c58b;border-radius:45%;box-shadow:0 17px #70ada5,0 25px #a6d0b945;transform:rotate(-3deg)}.welcome-castle{position:absolute;width:270px;left:40px;top:-140px;image-rendering:pixelated}.welcome-house{position:absolute;width:110px;right:0;top:-10px;image-rendering:pixelated}.welcome-tree{position:absolute;left:-30px;top:-70px;object-fit:none;object-position:0 0;width:192px;height:192px;image-rendering:pixelated}.sun{position:absolute;right:18%;top:8%;width:120px;height:120px;background:#e5dfb273;border-radius:50%;box-shadow:0 0 80px #e5dfb243}@keyframes breathe{to{background-position-x:-1536px}}@media(max-width:1100px){.quest-hint{display:none}.island-tag{display:none}.raid-chip{left:auto;right:25px;transform:none}.raid-chip:active{transform:none}.dock-note{display:none}#dock nav button{padding:10px 13px}}@media(max-width:650px){.topbar{height:65px;padding:0 16px}.brand{font-size:20px}#world{top:65px}.top-actions{gap:8px}.identity{left:10px;top:12px;padding:8px;min-width:195px}.avatar{width:40px}.coin{margin-left:4px;padding-left:10px}.raid-chip{right:10px;top:100px;min-width:180px}.keys{display:none}#dock nav{gap:0;padding:3px}#dock nav button{font-size:10px;padding:9px 7px;flex-direction:column;gap:5px}.panel-head{padding:18px 20px}#panelBody{padding:18px 20px}.grid,.auth-layout{grid-template-columns:1fr}.auth-preview{display:none}.equipment{grid-template-columns:1fr 1fr}.top-actions #online{font-size:10px}.illustration-island{opacity:.35;right:-90px}.welcome-copy{z-index:1;top:18%}.build-hint{white-space:normal;width:90%;font-size:12px}}

/* Castle noticeboard: quiet paper surfaces and distinct navigation levels. */
dialog.board-panel{width:min(960px,94vw);background:#f3efe3;border:1px solid #c8c3ae;border-radius:12px;max-height:88vh}
.board-panel .panel-head{padding:24px 32px;background:#203f37;color:#fff4d7;border-bottom:4px solid #bd9d5d}
.board-panel .panel-head .eyebrow{color:#b6c9b5;font-size:10px;letter-spacing:3px}
.board-panel .panel-head h2{font-size:22px;letter-spacing:1px}
.board-panel .close{background:#36564b;color:#f9efd3;border:1px solid #64776a}
.board-panel #panelBody{padding:0 32px 32px}
.board-navigation{display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid #d6d4c4;padding:16px 0}
.board-navigation .tabs{margin:0;gap:4px;flex-wrap:wrap}
.board-navigation .tabs button{background:transparent;color:#607166;padding:12px 18px;border-radius:6px}
.board-navigation .tabs button.active{background:#e2e6d6;color:#264c3c;box-shadow:inset 0 -3px #54765b;font-weight:600}
.board-navigation .publish-button{background:#315b47;white-space:nowrap;padding:11px 18px;font-size:13px}
.board-intro{display:flex;align-items:center;gap:17px;padding:26px 0 22px}
.board-seal{display:grid;place-items:center;width:52px;height:56px;flex-shrink:0;background:#e6ddc0;border:1px solid #cfc19b;box-shadow:inset 0 0 0 4px #f3ecd7;color:#89713d;font-size:27px;border-radius:4px}
.board-intro h3{font-size:20px;margin:0 0 5px;color:#294c3b}
.board-intro p{margin:0;color:#6c7a68;font-size:12px}
.board-panel .tabs[aria-label]{gap:8px;margin:0 0 20px;flex-wrap:wrap}
.board-panel .tabs[aria-label] button{border:1px solid #d8d8c8;background:transparent;font-size:12px;border-radius:20px;padding:7px 16px;color:#687565}
.board-panel .tabs[aria-label] button.active{background:#365b47;border-color:#365b47;color:#fff6dc}
.board-panel .card{padding:24px;background:#fffcf3;border:1px solid #ded9c6;border-radius:8px;box-shadow:0 3px 0 #e5dfcd66;position:relative}
.board-panel .card+.card{margin-top:18px}
.board-panel .card h3{font-size:18px;line-height:1.6;margin:0;overflow-wrap:anywhere;flex:1;min-width:160px}
.board-panel .card>.row:first-child{align-items:flex-start;gap:16px}
.board-panel .tag{padding:5px 10px;border-radius:4px;font-size:11px;white-space:nowrap;background:#ede7d2;color:#7a6a3f}
.board-panel .tag.gold{background:#e1ebd8;color:#46683c}
.board-panel .card>p.muted{color:#66745e;font-size:13px;line-height:1.9;margin:16px 0;max-width:70ch;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.board-panel .card>p:not(.muted){font-size:13px;line-height:1.9;color:#53654d;margin:16px 0}
.board-panel .card>.row:last-child{margin-top:20px;padding-top:16px;border-top:1px dashed #ddd7c1}
.board-panel .card .row button{padding:9px 14px;font-size:12px;border-radius:5px}
.board-panel .muted{color:#687960}
.board-panel .notice{background:#eeecde;border-color:#aab794;color:#526447;padding:16px 18px;white-space:pre-wrap;margin:18px 0}
.board-panel details{margin-top:8px;white-space:normal}
.board-panel summary{cursor:pointer;color:#6b7e5c;font-size:12px}
.board-panel #submissionForm,.board-panel #assignmentForm{padding:24px;background:#fffcf4;border:1px solid #ded9c6;border-radius:8px}
.board-panel .field{font-size:13px;color:#4e644e;gap:9px}
.board-panel .field input,.board-panel .field select,.board-panel textarea{background:#fffef9;border-radius:5px;border-color:#d7d7c4;padding:12px 14px}
.board-panel textarea{min-height:160px}
.board-panel input[type=checkbox]{width:17px;height:17px;accent-color:#365b47;margin:0 8px 0 0;vertical-align:middle;box-shadow:none}
.board-panel #assignmentForm>label:not(.field){display:flex;align-items:center;padding:12px;background:#f0f0e4;border-radius:5px;font-size:13px}
.board-panel #assignmentForm>h3{margin:14px 0 0;padding-top:20px;border-top:1px solid #e0dccb}
.board-panel #assignmentForm>button{justify-self:end;min-width:150px}
.board-panel input[type=file]{font-size:12px;border:1px dashed #b9c3a7;background:#f6f5e9;padding:18px}
.board-panel input::file-selector-button{background:#e0e7d4;color:#416043;border:0;padding:8px 12px;border-radius:4px;margin-right:12px;cursor:pointer}
.board-panel .images img{width:128px;height:128px;border-radius:5px}
.board-panel .comment{padding:16px 0}
.board-panel .empty{padding:46px 22px;background:#eae9db;border:1px dashed #c9ceba;color:#65765c}
.board-panel button:focus-visible,.board-panel summary:focus-visible{outline:3px solid #b59a58;outline-offset:3px}
@media(max-width:650px){.board-panel .panel-head{padding:18px 20px}.board-panel #panelBody{padding:0 16px 20px}.board-navigation{flex-wrap:wrap;gap:8px;padding:10px 0}.board-navigation .tabs button{padding:10px 12px;font-size:12px}.board-navigation .publish-button{margin-left:auto}.board-intro{padding:20px 0}.board-intro h3{font-size:18px}.board-panel .card{padding:18px}.board-panel .card h3{font-size:16px}.board-panel #assignmentForm,.board-panel #submissionForm{padding:16px}.board-panel .card>.row:last-child{align-items:stretch}.board-panel .card>.row:last-child>button{width:100%}.board-panel .images img{width:90px;height:90px}}

/* RPG inventory: item grid, quantity badges and a persistent details panel. */
.inventory-panel{width:min(940px,94vw)}.inventory-top{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:16px}.inventory-top b{color:#98753b;white-space:nowrap}.inventory-tabs{flex-wrap:wrap}.inventory-layout{display:grid;grid-template-columns:minmax(0,1fr) 235px;gap:22px}.inventory-slots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;align-content:start}.item-slot{position:relative;min-height:108px;min-width:0;border:1px solid #cdcdb9;background:#eeeedf;color:#456047;border-radius:7px;padding:12px 7px 24px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;box-shadow:inset 0 0 0 3px #faf6e966}.item-slot:hover{background:#e0e8d4}.item-slot.selected{border-color:#507650;background:#dfe9d2;box-shadow:inset 0 0 0 2px #6c8c5b}.item-slot.unused{background:#e7e7d966;min-height:105px;box-shadow:inset 0 1px 5px #43523908}.item-art{font-size:35px;line-height:1.2;color:#8f793f;display:block;text-align:center}.item-name{font-size:11px;overflow-wrap:anywhere;text-align:center}.item-count{position:absolute;right:8px;bottom:5px;font-size:11px;color:#536548}.item-detail{background:#fffcf1;border:1px solid #dedac7;border-radius:9px;padding:24px 18px;align-self:start;position:sticky;top:110px}.item-detail>.item-art{font-size:55px;background:#ececdb;padding:22px;margin-bottom:20px;border-radius:7px}.item-detail h3{line-height:1.7;margin-bottom:10px}.item-detail p{font-size:12px;color:#758068;line-height:1.9;white-space:pre-wrap}.item-detail button{width:100%;margin-top:15px}.item-detail button:disabled{cursor:not-allowed}.shop-goods{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.shop-goods .card{margin:0;text-align:center;padding:18px 10px;display:flex;flex-direction:column;gap:10px}.shop-goods h3{font-size:13px;margin:0}.shop-goods p{margin:0}.shop-goods button{font-size:11px;padding:10px 6px;margin-top:auto}.inventory-slots .empty{grid-column:1/-1}.inventory-panel button:focus-visible{outline:3px solid #b49351;outline-offset:3px}@media(max-width:650px){.inventory-layout{grid-template-columns:1fr}.inventory-slots{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.item-slot{min-height:94px}.item-detail{position:static}.item-detail>.item-art{float:left;width:80px;margin:0 16px 12px 0;padding:12px;font-size:40px}.shop-goods{grid-template-columns:repeat(2,minmax(0,1fr))}}
.purchase-total{padding:18px;border:1px solid #d8d4be;background:#e9eddb;border-radius:7px;font-size:17px;color:#315d43}.reward-history{margin-top:22px;border-top:1px solid #d9d6c3;padding-top:18px}.reward-history summary{cursor:pointer;color:#506b4a;font-size:13px}.reward-receipt{display:flex;justify-content:space-between;gap:18px;padding:15px 0;border-bottom:1px solid #e4dfcd;font-size:12px}.reward-receipt small{display:block;color:#7a846e;margin-top:5px}.reward-receipt>span{color:#88723e;max-width:50%;text-align:right;line-height:1.8}

.weapon-icon{display:block;width:32px;height:64px;object-fit:contain;image-rendering:pixelated;margin:auto}.item-detail .weapon-icon{width:48px;height:96px}.item-slot .item-art:has(.weapon-icon){min-height:64px}

.furniture-icon{display:inline-block;width:32px;height:48px;object-fit:contain;vertical-align:middle;image-rendering:pixelated}.item-art>.furniture-icon{display:block;margin:auto;width:48px;height:64px}.item-detail .furniture-icon{width:64px;height:96px}.furniture-grid button{display:flex;align-items:center;gap:8px}

.decoration-icon{display:block;width:40px;height:48px;object-fit:contain;image-rendering:pixelated;margin:auto}.item-detail .decoration-icon{width:60px;height:72px}

.house-icon{display:block;width:40px;height:56px;object-fit:contain;image-rendering:pixelated;margin:auto}.item-detail .house-icon{width:64px;height:96px}

.appearance-live{display:flex;flex-direction:column;align-items:center;background:#dce4ca;border:1px solid #b7c8a5;border-radius:12px;padding:8px}.appearance-live small{color:#587361;margin-bottom:10px}.character-preview{width:128px;height:128px;image-rendering:pixelated;animation:character-idle .8s steps(8) infinite;background-repeat:no-repeat}.avatar{background-size:512px 64px;background-position:0 0;animation:character-avatar .8s steps(8) infinite}@keyframes character-idle{to{background-position-x:-1024px}}@keyframes character-avatar{to{background-position-x:-512px}}@media(prefers-reduced-motion:reduce){.character-preview,.avatar{animation:none}}

.avatar{background-position:-6px -10px}@media(max-width:650px){.avatar{background-position:-12px -10px}}@keyframes character-avatar{to{background-position-x:-518px}}@media(max-width:650px){.avatar{animation-name:character-avatar-small}}@keyframes character-avatar-small{to{background-position-x:-524px}}

.character-preview{width:192px;height:144px;background-size:2048px 256px;background-position:-32px -64px}@keyframes character-idle{to{background-position-x:-2080px}}


.armor-paper{position:relative;width:192px;height:160px}.armor-paper img{position:absolute;width:288px;height:288px;left:-48px;top:-62px;image-rendering:pixelated}.armor-icon{display:block;width:64px;height:64px;object-fit:contain;image-rendering:pixelated}.item-detail .armor-icon{width:192px;height:192px}.armor-avatar{animation:none!important;background-size:contain!important;background-position:center!important;background-repeat:no-repeat;image-rendering:pixelated}

.armor-core{position:absolute;left:88px;top:86px;width:21px;height:27px;background:#182738}#armorForm{display:grid;grid-template-columns:220px 1fr;gap:16px}#armorForm>*{grid-column:2}#armorForm>#armorPreview{grid-column:1;grid-row:1/5;align-self:stretch;justify-content:center}#armorForm>.muted,#armorForm>button{grid-column:1/-1}@media(max-width:650px){#armorForm{grid-template-columns:1fr}#armorForm>*{grid-column:1!important}#armorForm>#armorPreview{grid-row:auto}}

#armorForm>#armorPreview{grid-row:1/4}@media(max-width:650px){#armorForm>#armorPreview{grid-row:auto}}

/* Duel UI keeps match actions separate from island navigation. */
.in-duel #questHint,.in-duel #raidChip,.in-duel #identity,.in-duel #dock,.in-duel #profileButton{display:none!important}
.duel-match{text-align:center;padding:22px 12px;background:#152e38;border:1px solid #5c797a;border-radius:14px;color:#edf3e8}
.duel-match h3{font-size:28px;margin:18px 0;color:#f5dc9c}.duel-score{display:flex;justify-content:center;align-items:center;gap:32px;margin:18px 0}.duel-score>div{min-width:100px;max-width:40%;overflow-wrap:anywhere}.duel-score strong{display:block;font-size:52px;line-height:1.3;color:#f5dc9c}.duel-score>span{font-size:30px}.duel-timer{font-size:20px;color:#a9dbc9}.duel-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin-top:24px}.duel-match .muted{color:#b8c9c8}

.team-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.team-column{border:1px solid #8abcc7;border-top:4px solid #568ebc;border-radius:12px;padding:14px}.team-1{border-color:#d6a19b;border-top-color:#b96a64}.team-column h3{display:flex;justify-content:space-between}.team-player{background:#fff9;margin:10px 0;padding:12px;border-radius:8px;min-height:96px;overflow-wrap:anywhere}.team-player p{margin:6px 0}.team-player.vacant{display:grid;place-items:center;opacity:.6;border:1px dashed #adb8aa}.team-room-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px}@media(max-width:600px){.team-columns{grid-template-columns:1fr}}
.farm-icon{display:inline-block;width:64px;height:64px;flex-shrink:0;background-image:url('/art/farm_radish_atlas_v1.png');background-size:400% 200%;image-rendering:pixelated;vertical-align:middle}.farm-shop-intro{display:flex;align-items:center;gap:20px;padding:16px;border-radius:10px;background:#e5ebcf;margin-bottom:18px}.farm-shop-intro h3{margin:0}

.crop-icon{background-image:url("/art/farm_corn_pumpkin_atlas_v1.png")}
.farm-catalog{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.farm-catalog .card{margin:0}.farm-catalog h3{margin:8px 0}.farm-catalog .decoration-icon{width:64px;height:64px;object-fit:contain}

.sheep-icon{display:inline-block;width:64px;height:64px;background:url("/art/pasture_sheep_idle.png") 0 0/600% 100%;image-rendering:pixelated}

.material-icon{display:inline-block;width:64px;height:64px;flex-shrink:0;background-image:url("/art/monster_materials_v1.png");background-size:500% 400%;background-repeat:no-repeat;image-rendering:pixelated;vertical-align:middle}.material-inline{display:inline-flex;align-items:center;gap:4px}.material-inline .material-icon{width:32px;height:32px}

.class-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}.class-card{background:#fff9e9;border:1px solid #c9b891;border-radius:10px;padding:18px;display:flex;flex-direction:column;gap:10px;text-align:center}.class-card img{width:100px;height:100px;object-fit:contain;image-rendering:pixelated;margin:auto}.class-card p{flex:1;line-height:1.7}.class-card.locked{opacity:.65}.mage-slot{height:100px;font-size:70px;color:#9176ac}

.forge-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.forge-card{display:flex;flex-direction:column;gap:10px;border-top:4px solid #759ca3}.forge-card.tier-2{border-top-color:#b79551;background:linear-gradient(135deg,#fff9e8,#efe3c7)}.forge-heading{display:flex;align-items:center;gap:12px}.forge-heading img{width:80px;height:96px;object-fit:contain;image-rendering:pixelated}.forge-description{min-height:60px}.forge-materials{display:grid;grid-template-columns:1fr 1fr;gap:10px}.forge-materials>span{display:flex;align-items:center;gap:5px;font-size:13px}.forge-materials .material-icon{width:32px;height:32px;flex-shrink:0}.forge-materials b{display:block}.forge-card>button{margin-top:auto}.missing{color:#a34534}.forge-paper{width:192px;height:192px;image-rendering:pixelated;background-size:600% 600%;background-position:0 calc(var(--row)*20%);animation:forge-idle .9s steps(5) infinite}@keyframes forge-idle{to{background-position:100% calc(var(--row)*20%)}}

.forge-grid>.card{margin:0}.forge-heading h3{margin:6px 0}.forge-paper{margin:auto}


.breeding-icon{width:64px;height:72px;object-fit:contain;image-rendering:pixelated}.breeding-plots{display:grid;gap:12px}.breeding-plot{display:flex;gap:18px;align-items:center}.breeding-plot .breeding-icon{width:96px;height:112px;flex-shrink:0}.breeding-plot small{font-weight:normal;color:#6b705b}.breeding-empty{font-size:48px;width:96px;text-align:center}.breeding-plot .row{flex-wrap:wrap;gap:8px}
.sky-dialog{width:min(850px,92vw);max-height:85vh;padding:0;border:3px solid #c6b27e;border-radius:10px;background:#f5eed9;color:#294341;box-shadow:0 18px 65px #071f29aa}.sky-dialog::backdrop{background:#10272a66}.sky-dialog .panel-head{padding:16px 24px;background:#173b42;color:#f0deb0;display:flex;justify-content:space-between;align-items:center}.sky-dialog-body{padding:24px 32px;font-size:19px;line-height:1.9}.sky-choices{display:flex;flex-direction:column;gap:10px;margin-top:25px}.sky-choices button{text-align:left}.sky-book{display:grid;grid-template-columns:45% 55%;min-height:430px;background:#dac9a0 url('/art/sky_notebook.png') center/cover no-repeat}.sky-book article{margin:20px 22px 20px 0;padding:16px;background:#f1e5c4e8;color:#544c3a;line-height:1.9}.sky-book aside{border-top:1px solid #b9a57e;padding-top:12px;font-size:14px}.sky-book h2{color:#5f5140}#skyPiano{position:fixed;z-index:45;bottom:18px;left:50%;transform:translateX(-50%);width:min(700px,90vw);padding:12px;border:1px solid #d8c59a;border-radius:12px;background:#173440a8;backdrop-filter:blur(3px);color:#f5ead0}.sky-piano-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:12px;margin-bottom:8px}.sky-key-row{display:grid;grid-template-columns:42px repeat(7,1fr);gap:6px;align-items:center;margin:6px 0}.sky-key-row>span{font-size:12px}.sky-key-row button{background:#fff3dce8;height:51px;border:1px solid #cbb78c;border-radius:6px;color:#655434;display:flex;align-items:center;justify-content:space-around}.sky-key-row b{font-size:19px}.sky-key-row small{font-size:12px;color:#77623c}.sky-key-row button.held{background:#efcf75;box-shadow:0 0 12px #efd591}.sky-transition::after{content:'';position:fixed;inset:0;background:#d3dae6;z-index:100;pointer-events:none;animation:sky-fade 1.4s ease both}@keyframes sky-fade{0%,100%{opacity:0}45%{opacity:1}}@media(max-width:600px){.sky-book{grid-template-columns:1fr}.sky-book-art{height:120px}.sky-book article{margin:0 12px 12px}.sky-dialog-body{font-size:16px;padding:18px}.sky-key-row{gap:3px}}
/* Notebook: ink directly on the illustrated paper, without interface panels. */
.sky-dialog.sky-notebook-dialog{width:min(1100px,96vw);max-height:94vh;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:auto;color:#60472e;padding:0}
.sky-notebook-dialog .sky-book{position:relative;display:grid;grid-template-columns:51% 49%;aspect-ratio:1200/780;min-height:0;background:transparent url('/art/sky_notebook.png') center/100% 100% no-repeat}
.sky-notebook-dialog .sky-book article{margin:0;padding:9% 12% 0 6%;background:none;border:0;box-shadow:none;color:#65492f;font-family:'STXingkai','华文行楷','KaiTi','楷体','STKaiti',serif;font-size:clamp(15px,1.55vw,20px);line-height:1.6;letter-spacing:.045em;transform:rotate(-.7deg);mix-blend-mode:multiply}
.sky-notebook-dialog .sky-book h2{font-family:inherit;font-weight:400;color:#573d27;font-size:1.75em;margin:0 0 .55em;letter-spacing:.13em}
.sky-notebook-dialog .sky-book p{margin:0 0 .55em;text-indent:2em;text-align:justify}
.sky-book-signature{display:block;text-align:right;margin-top:.4em;padding-right:1em;font-size:1.12em;transform:rotate(-2deg)}
.sky-book-close{position:absolute;right:1.5%;top:2%;z-index:2;width:32px;height:32px;padding:0;background:#ead8acdd;color:#60472e;border:1px solid #88704b;border-radius:50%;font-size:23px;line-height:28px}
@media(max-width:650px){.sky-notebook-dialog .sky-book{display:block;aspect-ratio:auto;min-height:690px;background-size:200% 100%;background-position:right center}.sky-notebook-dialog .sky-book-art{display:none}.sky-notebook-dialog .sky-book article{padding:65px 12% 140px 10%;font-size:19px;line-height:1.75}.sky-book-close{right:5%;top:20px}}
.sky-dialog.sky-notebook-dialog{width:min(1100px,96vw,138vh);overflow:hidden}
.sky-notebook-dialog .sky-book article{min-width:0;align-self:start;transform:none}
.sky-notebook-dialog .sky-book article p:nth-of-type(2){transform:rotate(-.4deg)}
@media(max-width:650px){.sky-dialog.sky-notebook-dialog{width:96vw;overflow-y:auto;overflow-x:hidden}}
@media(min-width:651px){.sky-notebook-dialog .sky-book article{padding-right:20%;padding-left:7%;font-size:clamp(14px,1.45vw,19px)}}
.sky-notebook-dialog .sky-book p{overflow-wrap:anywhere;text-align:left}

.toilet-board ol{padding-left:1.6rem}.toilet-board li{padding:9px 4px;border-bottom:1px solid #d8c69b}.toilet-board li strong{float:right;color:#6c5735}.toilet-board summary{font-weight:bold;cursor:pointer}

.bag-maintenance{margin-top:16px;padding-top:12px;border-top:1px solid #b39a67}.bag-maintenance>small{display:block;color:#7f735a;margin-bottom:8px}.bag-maintenance .row{gap:8px;flex-wrap:wrap}

.bag-maintenance{margin:12px 0;padding-top:10px}.bag-maintenance .row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.bag-maintenance .row button{padding:8px 5px!important;min-width:0!important;font-size:12px;white-space:normal;line-height:1.5}.bag-maintenance+.secondary{margin-top:10px}
