:root{color-scheme:dark;font-family:"Microsoft YaHei","PingFang SC",sans-serif;color:#eee5cd;background:#101615;font-synthesis:none;letter-spacing:0;--gold:#d8b873;--muted:#b2b4a3;--line:#726548;--green:#263d32}
*{box-sizing:border-box}body{margin:0;min-height:100dvh;display:grid;place-items:center;overflow:hidden;background:radial-gradient(ellipse at center,#29352e 0,#141b18 55%,#0d1110 100%)}button,input{font:inherit}button{color:inherit;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:disabled{cursor:default}button:focus-visible,input:focus-visible{outline:2px solid #e7d39d;outline-offset:4px}button{border:0;background:none}button svg{flex:none}img{display:block;user-select:none}#viewport{position:relative;flex-shrink:0}#game-shell{width:450px;height:800px;position:absolute;inset:0;transform-origin:top left;background:#18201c url('assets/camp.webp') center/100% 100% no-repeat;overflow:hidden;box-shadow:0 0 100px #060c0a99}#game-shell:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#08110fe6 0,transparent 31%,transparent 73%,#0a1411a6 100%)}#app{position:relative;height:100%}.loading{position:absolute;top:45%;width:100%;text-align:center;color:var(--gold)}
.topbar{position:absolute;top:17px;left:20px;right:18px;height:57px;display:flex;justify-content:space-between;align-items:center}.profile{display:flex;align-items:center;gap:9px;padding:0;text-align:left;max-width:256px}.avatar{width:49px;height:49px;display:inline-block;flex:none;position:relative;border:2px solid #9d9b86;outline:1px solid #343a31;outline-offset:2px;background:#18221c;padding:3px;box-shadow:0 3px 7px #0008;clip-path:polygon(14% 0,86% 0,100% 14%,100% 86%,86% 100%,14% 100%,0 86%,0 14%)}.avatar img{width:100%;height:100%;object-fit:cover;object-position:center 20%}.profile b{display:block;max-width:181px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:500}.profile small{font-size:9px;color:#b9b6a0;display:block;margin-top:6px}.top-actions{display:flex;gap:15px}.round-link{padding:0;display:flex;flex-direction:column;align-items:center;gap:4px;color:#e2c889;font-size:10px;min-width:39px}.round-link svg{width:35px;height:35px;border:1px solid #968255;border-radius:50%;padding:6px;background:linear-gradient(140deg,#26382f,#121c18);box-shadow:0 0 0 2px #1b201b,0 0 0 3px #564c35}.round-link:hover svg{background:#3d4934}
.game-title{position:absolute;top:82px;left:105px;width:240px;text-align:center;text-shadow:0 3px 5px #000}.game-title>span{font-family:"STKaiti","KaiTi",serif;font-size:13px;color:#bdb995;display:block}.game-title h1{font-family:"STKaiti","KaiTi","Microsoft YaHei",serif;font-size:36px;line-height:42px;margin:0;color:#efd69b;font-weight:800}.game-title i{display:block;height:1px;width:132px;margin:3px auto;background:linear-gradient(90deg,transparent,#baa36a,transparent)}.challenge-line{position:absolute;top:154px;left:23px;right:23px;height:26px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #74644480;color:#d4c194;font-size:11px}.challenge-line span{display:flex;align-items:center;gap:6px}.challenge-line span:last-child{font-size:10px;color:#a6aa96;font-variant-numeric:tabular-nums}.challenge-line svg{width:15px;height:15px}.stage-banner{position:absolute;top:175px;left:163px;width:124px;height:80px;text-align:center;background:linear-gradient(100deg,#192920,#2b3729,#192920);border:1px solid #998251;box-shadow:inset 0 0 0 3px #15231a,0 6px 15px #0008;clip-path:polygon(0 0,100% 0,100% 82%,50% 100%,0 82%);z-index:12}.banner-label{font-family:"KaiTi",serif;margin-top:8px;font-size:19px;color:#ebd497}.banner-label b{font-family:Georgia,serif;font-size:22px;margin:0 4px}.stage-track{height:18px;display:flex;justify-content:center;align-items:center;gap:6px;margin-top:4px}.stage-track>span{border:1px solid #74725a;background:#15241c;font:9px Georgia,serif;width:15px;height:15px;display:grid;place-items:center;color:#9c9c85}.stage-track svg{width:10px;height:10px}.stage-track .current{color:#fbdf9f;border-color:#dbb976;background:#745a2c}.stage-track .complete{color:#9ac59a;border-color:#83a685}.stage-track .hard{background:#663d39;border-color:#cb9075}.stage-track i{height:1px;width:10px;background:#746c50}.stage-banner small{font-size:8px;color:#b7bca2;display:block;margin-top:3px}.board-meta{position:absolute;left:29px;right:29px;top:264px;display:flex;align-items:center;justify-content:space-between;height:20px;font-size:10px;color:#bec1ac;font-variant-numeric:tabular-nums}.board-meta #progress{position:absolute;left:50%;transform:translateX(-50%);font-size:9px;color:#dfd6b8}.level-tag{border-left:2px solid #8cae82;padding-left:6px;color:#c2d2b2}.level-tag.difficult{border-color:#d19885;color:#e1b0a0}
.board{position:absolute;left:25px;top:287px;width:400px;height:363px;isolation:isolate}.board.tutorial{top:276px}.board-tile{position:absolute;padding:0;border:1px solid #d3b36a;border-radius:4px;background:#b6a17b;box-shadow:0 3px 0 #574b30,0 4px 0 1px #25281e,0 5px 3px #000b;transition:filter .16s,box-shadow .16s;overflow:hidden;will-change:auto}.board-tile img{width:100%;height:100%;object-fit:fill}.board-tile.covered{filter:brightness(.48) saturate(.65);border-color:#837449}.board-tile.available:hover{filter:brightness(1.22);box-shadow:0 2px 0 #665b3c,0 0 8px #e2c77799}.board-tile.available:active{filter:brightness(1.4)}.tile-id{position:absolute;bottom:2px;right:2px;font:8px Georgia,serif;color:#f5e8b9;text-shadow:0 1px 2px #000;background:#1c221bce;min-width:11px;height:10px;line-height:10px;text-align:center;border-radius:2px;pointer-events:none}.tutorial .tile-id{font-size:9px;height:11px;line-height:11px;min-width:13px}.clear-symbol{position:absolute;inset:55px 0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px;color:#e3cb89;text-shadow:0 2px 5px #000}.clear-symbol svg{width:58px;height:58px}.reserve-area{position:absolute;top:598px;left:28px;right:28px;height:36px;display:flex;align-items:center;gap:6px;pointer-events:none;z-index:11}.reserve-area>span{font-size:9px;color:#c0c6b2;background:#18241fd9;padding:5px}.reserve-tile{position:relative;width:33px;height:33px;padding:0;pointer-events:auto;border:1px solid #b49a60;border-radius:3px;box-shadow:0 2px 4px #0008}.reserve-tile img{width:100%;height:100%;border-radius:2px}.reserve-tile .tile-id{font-size:7px}
.tray-area{position:absolute;left:20px;right:20px;top:641px;height:65px}.tray-caption{display:flex;justify-content:space-between;padding:0 5px 5px;font-size:9px;color:#d2c59f}.tray-caption b{font:10px Georgia,serif;color:#ddd0ac}.tray{height:58px;padding:5px;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;background:linear-gradient(180deg,#1a2119,#2c3020);border:2px solid #b49a5f;outline:1px solid #201b10;outline-offset:2px;border-radius:7px;box-shadow:inset 0 0 0 2px #51452a,0 4px 5px #000a;transition:border-color .2s}.tray-slot{position:relative;min-width:0;height:44px;border:1px solid #6a613c;background:#151c15b8;border-radius:4px;box-shadow:inset 0 2px 4px #000a;overflow:hidden}.tray-slot img{width:100%;height:100%;object-fit:fill}.tray-slot.filled{border-color:#d2b370}.tray.warning{border-color:#c08b6e}.tray.warning .tray-slot:not(.filled){background:#653c3180;border-color:#bd886f}.tray.matched{animation:match-flash .42s}.tool-row{position:absolute;top:723px;left:19px;right:19px;height:58px;display:flex;justify-content:space-between;align-items:flex-end}.game-tool{padding:0;display:flex;flex-direction:column;align-items:center;gap:3px;width:68px;font-size:12px;color:#e4cf99;text-shadow:0 2px 3px #000}.tool-medal{width:45px;height:45px;border:2px solid #b7a26a;outline:1px solid #48412d;outline-offset:2px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#3b4937,#15231d);box-shadow:inset 0 0 0 3px #283023,0 3px 5px #0008;position:relative}.tool-medal svg{width:24px;height:24px}.tool-medal b{position:absolute;right:-5px;top:-4px;background:#813e35;border:1px solid #c39971;border-radius:50%;width:16px;height:16px;text-align:center;font-size:10px;line-height:14px;color:#f2dcaa;font-weight:400}.game-tool:disabled{opacity:.42}.game-tool:not(:disabled):hover .tool-medal{background:#43533b}.side-tool{padding:0;width:45px;height:46px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:#b8bb9f;font-size:9px}.side-tool svg{width:22px;height:22px}.game-footer{position:absolute;top:789px;left:25px;right:25px;font-size:7px;color:#999f89;display:flex;align-items:center;justify-content:space-between;height:8px}.game-footer b{font-weight:400;color:#c5baa0;font-variant-numeric:tabular-nums}.game-footer button{padding:0;width:18px;height:13px}.game-footer svg{width:12px;height:12px}
.modal-backdrop{position:absolute;inset:0;background:#07100ccc;display:flex;align-items:center;justify-content:center;z-index:100;padding:22px;animation:fade-in .16s}.modal{width:100%;max-height:740px;background:linear-gradient(125deg,#273a2d,#162920 70%,#1e3026);border:1px solid #b09963;outline:1px solid #4e5036;outline-offset:3px;box-shadow:0 12px 50px #000a,inset 0 0 0 4px #16251d;position:relative;border-radius:6px;overflow:hidden;display:flex;flex-direction:column}.modal-header{display:flex;align-items:center;min-height:61px;padding:0 22px;border-bottom:1px solid #68704b66;gap:10px;position:relative;background:linear-gradient(90deg,#31423388,transparent)}.modal-header h2{font-family:"KaiTi","Microsoft YaHei",serif;color:#ead5a0;font-size:21px;font-weight:500;margin:0}.heading-icon{color:#c9b67d;display:flex}.heading-icon svg{width:20px;height:20px}.icon-button{width:32px;height:32px;display:grid;place-items:center;padding:4px;color:#c1c3a9}.icon-button svg{width:20px;height:20px}.icon-button:hover{color:#ffdfa0}.close{margin-left:auto}.modal-content{padding:22px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#6a7452 #1a2b21}.large .modal-content{padding:17px 18px}.large{height:657px}.primary,.secondary{display:flex;align-items:center;justify-content:center;gap:8px;border-radius:4px;height:43px;padding:0 16px;min-width:0;font-size:14px}.primary{width:100%;background:linear-gradient(180deg,#dbbf7c,#b0965a);border:1px solid #f0d59c;box-shadow:inset 0 0 0 2px #b59a5d,0 3px 0 #665631;color:#273221;font-weight:700}.primary:hover{filter:brightness(1.08)}.primary svg{width:18px;height:18px}.primary:disabled{opacity:.55}.secondary{border:1px solid #9d9864;background:#334837;color:#e3dab5;font-size:12px}.secondary svg{width:17px;height:17px}.wide{width:100%}.text-button{display:flex;align-items:center;justify-content:center;gap:7px;color:#c0c6a4;font-size:12px;min-height:38px;padding:8px}.text-button svg{width:15px;height:15px}.context-note{font-size:10px;color:#a7b496;text-align:center;line-height:1.7;margin:12px 0 0}.profile-summary{display:flex;flex-direction:column;align-items:center;gap:8px;margin-bottom:20px}.large-avatar{width:82px;height:82px;padding:5px}.profile-summary>b{font-size:15px;color:#e2d5af;max-width:100%;overflow-wrap:anywhere}.profile-summary>span:last-child{font-size:11px;color:#9aa88e}form{display:flex;flex-direction:column;gap:14px}form label{font-size:11px;display:flex;flex-direction:column;gap:7px;color:#c1caab}input:not([type=checkbox]){width:100%;height:40px;padding:9px 11px;background:#101f17;border:1px solid #62754f;border-radius:3px;color:#e9e3c9;font-size:12px}input::placeholder{color:#8a9c81}.profile-stats{display:flex;justify-content:center;gap:65px;margin:22px 0;border-block:1px solid #65744755;padding:15px 0}.profile-stats>span{display:flex;flex-direction:column;text-align:center;gap:5px;font-size:10px;color:#afbc9b}.profile-stats b{font:26px Georgia,serif;color:#e5d3a0}.profile-stats+.secondary{margin-top:8px}.tabs{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid #71815b;margin-bottom:18px}.tabs.three{grid-template-columns:repeat(3,1fr)}.tabs button{height:37px;color:#a9b89a;font-size:12px;position:relative}.tabs button.selected{color:#f0d79c;background:#6d745020}.tabs button.selected:after{content:"";position:absolute;bottom:-1px;left:25%;right:25%;height:2px;background:#d4b875}.form-error{font-size:11px;line-height:1.5;color:#e9a08e;margin:0;min-height:0}.form-error:empty{display:none}.setting-row{display:flex;justify-content:space-between;align-items:center;height:61px;border-bottom:1px solid #63734c55;font-size:12px;color:#d0d4ba}.setting-row>span{display:flex;align-items:center;gap:9px}.setting-row svg{width:19px;height:19px;color:#bdca9a}.setting-row b{font-size:11px;font-weight:400;color:#a8b999}.setting-row input{appearance:none;width:37px;height:20px;border-radius:12px;background:#17291e;border:1px solid #728160;position:relative;cursor:pointer}.setting-row input:before{content:"";position:absolute;top:3px;left:3px;width:12px;height:12px;background:#8b9a79;border-radius:50%;transition:transform .18s}.setting-row input:checked{background:#718458}.setting-row input:checked:before{transform:translateX(16px);background:#e7dfb5}.setting-row+.secondary{margin-top:24px}
.collection-summary{display:flex;gap:12px;align-items:center;margin:0 1px 16px}.collection-summary>div{display:flex;flex-direction:column;gap:7px;min-width:0}.collection-summary b{font-size:12px;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.collection-summary span{font-size:10px;color:#adbe9f}.collection-summary>strong{margin-left:auto;display:flex;flex-direction:column;text-align:center;gap:4px;font:26px Georgia,serif;color:#e1d197}.collection-summary small{font:9px "Microsoft YaHei",sans-serif;color:#a9b994}.cosmetic-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 9px}.cosmetic-item{display:flex;flex-direction:column;align-items:center;position:relative;min-width:0;border:1px solid #71805c;padding:14px 4px 10px;border-radius:4px;background:#34473855;gap:9px;min-height:146px}.collection-avatar{width:67px;height:67px}.cosmetic-item>b{font-size:11px;font-weight:400;color:#e2d4a8}.cosmetic-item>span:last-of-type{font-size:10px;color:#b1c49b}.cosmetic-item.equipped{border-color:#c4aa6b;box-shadow:inset 0 0 0 2px #a0874633}.cosmetic-item.locked .avatar{filter:saturate(.5) brightness(.7)}.cosmetic-item.locked>b{color:#a9b199}.cosmetic-item i{position:absolute;right:6px;top:5px;color:#b9c2a1}.cosmetic-item i svg{width:11px;height:11px}.frame-laurel{border-color:#92be78;box-shadow:inset 0 0 0 1px #405e30,0 0 0 3px #769455}.frame-silver{border-color:#cce3df;outline-color:#5f8d84;box-shadow:inset 0 0 0 2px #91aea8}.frame-gold{border:3px double #ffdf7e;padding:5px;box-shadow:inset 0 0 0 1px #aa873a,0 0 9px #c0a46055}.frame-royal{border:3px double #ceaccb;padding:5px;outline-color:#9a6585;box-shadow:inset 0 0 0 1px #bf9274}.collection-progress{margin-top:20px;border-top:1px solid #61714f55;padding-top:15px;display:flex;justify-content:space-between;font-size:9px;color:#a9b991}.empty-goose{height:337px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#98ad8b}.empty-goose>svg{width:63px;height:63px;stroke-width:1}.empty-goose h3{font-family:"KaiTi",serif;font-size:24px;color:#cbbd8b;margin:18px 0 10px}.empty-goose>span{font-size:12px}.empty-outfit-slots{display:flex;gap:12px;margin-top:30px}.empty-outfit-slots>span{width:54px;height:63px;border:1px dashed #667853;border-radius:4px;display:grid;place-items:center}.empty-outfit-slots svg{width:17px;height:17px}.album-heading{display:flex;justify-content:space-between;font-size:11px;color:#bcc99f;margin-bottom:18px}.album-heading b{color:#e0cea0;font-weight:400}.album-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px 12px}.album-item{display:flex;flex-direction:column;align-items:center;min-width:0;gap:7px}.album-item>div{width:100%;aspect-ratio:1;position:relative;border:1px solid #98814c;border-radius:3px;overflow:hidden;box-shadow:0 3px 0 #111e15}.album-item img{width:100%;height:100%}.album-item>span{font-size:9px;white-space:nowrap;color:#c8caaa}.rank-heading{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#b6c59e;margin-bottom:5px}.rank-head{display:flex;justify-content:space-between;font-size:10px;color:#8fa77b;padding:0 4px 12px}.rank-list{height:380px;overflow-y:auto;scrollbar-width:thin}.rank-row{display:flex;align-items:center;gap:9px;min-height:66px;border-bottom:1px solid #6b80513b;padding:8px 4px}.rank-number{width:21px;font:16px Georgia,serif;color:#d4bd76;text-align:center}.rank-number svg{width:18px;height:18px}.rank-row .avatar{width:35px;height:35px;padding:2px}.rank-name{flex:1;min-width:0;font-size:11px;overflow-wrap:anywhere}.rank-name small{font-size:8px;background:#6e825136;color:#c6daaa;margin-left:5px;padding:2px}.rank-score{display:flex;flex-direction:column;gap:5px;text-align:right;flex:none}.rank-score b{font:15px Georgia,serif;color:#e2cf91}.rank-score small{font:10px Georgia,serif;color:#a3b58c}.rank-row.is-me{background:#80935e16}.empty-ranking{height:320px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#7d956d}.empty-ranking svg{width:61px;height:61px;stroke-width:1}.empty-ranking h3{font-family:"KaiTi",serif;font-size:24px;font-weight:400;color:#cfca9f;margin-bottom:0}.empty-ranking p{font-size:12px;color:#a6b890}.my-rank{display:flex;justify-content:space-between;border-top:1px solid #7d8d5b;padding-top:16px;font-size:11px;color:#b4c69a}.my-rank b{color:#e0d2a1;font-weight:400}.empty-message{text-align:center;padding:50px 10px;font-size:12px;line-height:1.8;color:#b9c79e}
.result-modal .modal-header{justify-content:center;gap:9px}.result-modal .modal-content{text-align:center;padding:24px}.result-mark{margin:0 auto 15px;width:85px;height:85px;display:grid;place-items:center;border:1px solid #b9a670;border-radius:50%;color:#edd399;background:radial-gradient(circle,#6e774244,transparent)}.result-mark svg{width:45px;height:45px;stroke-width:1.2}.result-mark.failed{color:#b5bea0;border-color:#79926d}.result-copy{font-size:13px;color:#bccba5;line-height:1.8;margin:14px 0 20px}.result-progress{display:flex;flex-direction:column;gap:6px;color:#bac79e;margin:20px 0;font-size:11px}.result-progress b{font:48px Georgia,serif;color:#e0d49f}.result-progress small{font-size:20px}.rescue-buttons{display:flex;gap:10px;margin-bottom:14px}.rescue-buttons .secondary{flex:1}.result-stats{display:flex;justify-content:center;gap:53px;margin:25px 0}.result-stats>span{display:flex;flex-direction:column;gap:9px;font-size:10px;color:#b0c099}.result-stats b{font:25px Georgia,serif;color:#e1d39f}.next-stage{margin:25px 0;padding:16px 0;border-block:1px solid #85925855;color:#b3c193;font-size:11px;display:flex;align-items:center;justify-content:space-between}.next-stage b{font-family:"KaiTi",serif;font-size:22px;color:#e4d3a2;font-weight:400}.next-stage>span{border:1px solid #bb8c77;color:#e7aa90;padding:2px 6px;font-size:9px}.result-score{font:48px Georgia,serif;color:#e8d290}.result-score small{display:block;font:10px "Microsoft YaHei",sans-serif;color:#bec89f;margin-top:5px}.new-rewards{display:flex;gap:12px;align-items:center;justify-content:center;padding:14px;margin:0 0 20px;border-block:1px solid #70835888;font-size:12px;color:#ead49a}.new-rewards>span{font-size:10px;color:#b9c89d}.result-modal .context-note{margin-bottom:20px}.connection-error{padding:250px 60px 0;text-align:center;color:#d6c697}.connection-error>svg{width:43px;height:43px}.connection-error h1{font-size:20px}.connection-error p{font-size:12px;line-height:1.8;margin-bottom:25px}
#toast{position:absolute;bottom:112px;left:50%;transform:translate(-50%,8px);opacity:0;pointer-events:none;z-index:200;width:max-content;max-width:365px;padding:11px 17px;background:#112018f2;border:1px solid #9caa70;color:#e5d9b0;font-size:12px;line-height:1.6;text-align:center;border-radius:4px;box-shadow:0 6px 20px #0009;transition:opacity .18s,transform .18s}#toast.show{opacity:1;transform:translate(-50%,0)}.flying-tile{position:absolute;z-index:20;pointer-events:none;border-radius:4px}.match-word{position:absolute;top:607px;left:0;width:100%;text-align:center;z-index:25;font-family:"KaiTi",serif;font-size:22px;color:#efe0a2;text-shadow:0 2px 4px #1a2b18,0 0 7px #435b32;pointer-events:none;animation:match-word .7s forwards}.reduce-motion *{animation:none!important;transition:none!important}.reduce-motion .match-word{display:none}@keyframes fade-in{from{opacity:0}to{opacity:1}}@keyframes match-flash{50%{border-color:#f2df95;box-shadow:0 0 13px #c4db7866}}@keyframes match-word{0%{opacity:0;transform:translateY(5px)}30%{opacity:1}100%{opacity:0;transform:translateY(-21px)}}
@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}
#viewport{overflow:hidden}
.tile-id{display:none!important}
.board-tile{box-shadow:0 4px 0 #574b30,0 7px 0 #393727,0 8px 0 1px #25281e,0 10px 5px #000b}
.board-tile.available:hover{transform:translateY(-2px);box-shadow:0 5px 0 #665b3c,0 8px 0 #3d3c2c,0 0 8px #e2c77799}
.tray-slot.filled{box-shadow:inset 0 0 0 1px #d0ac5d,0 2px 0 #3d3322}
body{width:100vw;height:100dvh}
html{width:100%;height:100%;overflow:hidden}
.equipped-goose{margin:0 auto 14px;width:112px;text-align:center}.equipped-goose img{width:112px;height:112px;object-fit:contain;border:1px solid #899366;border-radius:4px;background:#f1f2ed}.equipped-goose figcaption{font-size:10px;color:#c4cead;margin-top:7px}.profile-summary .equipped-goose{margin-top:8px;margin-bottom:0}
.board.daily{top:275px}
.board-tile.available:hover{transform:none;box-shadow:0 4px 0 #8c8058,0 7px 0 #5b543e,0 8px 0 1px #25281e,0 10px 5px #000b}
.board-tile{box-shadow:0 2px 0 #c2b17d,0 5px 0 #8c8058,0 8px 0 #5b543e,0 9px 0 1px #25281e,0 11px 5px #000b}
.tray-area{top:636px;height:80px}.tray{height:65px;padding:5px;gap:3px}.tray-slot{height:51px;display:grid;place-items:start center;overflow:visible;padding-top:1px}
.tray-piece{display:block;position:relative;width:44px;height:44px;border:1px solid #bda05e;border-radius:4px;overflow:hidden;box-shadow:0 2px 0 #968556,0 4px 0 #574f37,0 5px 0 #191e15;transform-origin:top left}.tray-piece img{width:100%;height:100%;object-fit:contain}
.tool-row{top:725px}.reserve-area{top:610px;height:26px}.reserve-tile{width:26px;height:26px}
.moving-piece{transform-origin:top left;border:1px solid #bda05e;border-radius:4px;box-shadow:0 2px 0 #c2b17d,0 5px 0 #8c8058,0 8px 0 #5b543e;overflow:hidden}
.moving-piece{position:absolute;z-index:180;pointer-events:none;display:block;filter:drop-shadow(0 3px 3px #0009)}.moving-piece img{width:100%;height:100%;object-fit:fill;border-radius:4px}.goose-skin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.goose-skin-card{min-height:190px;position:relative;border:1px solid #677b59;border-radius:4px;background:#33473866;padding:8px;display:flex;flex-direction:column;align-items:center;gap:6px}.goose-skin-card img{width:100%;height:130px;object-fit:contain;background:#f2f1e9;border-radius:3px}.goose-skin-card b{font-size:11px;color:#e2d4a8;font-weight:400}.goose-skin-card span{font-size:9px;color:#aebf99}.goose-skin-card.locked img{filter:brightness(.5) saturate(.4)}.goose-skin-card i{position:absolute;right:7px;top:7px;color:#ddd4ad}.skin-note{font-size:10px;color:#aebe9b;text-align:center;margin-top:16px;border-top:1px solid #71825b55;padding-top:13px}
.reserve-area{top:612px;height:27px}.reserve-tile{width:27px;height:27px}.reserve-area>span{font-size:8px;padding:4px}.clear-symbol{width:100%;background:none}.clear-symbol small{font:10px "Microsoft YaHei",sans-serif;color:#c7c9a4}

/* Home and puzzle play use separate artwork and controls. */
#game-shell.at-home { background: #1c2821 url('assets/camp.webp') center / cover no-repeat; }
#game-shell.playing { background: #241d1b url('assets/game-bg.webp') center / cover no-repeat; }
body:has(#game-shell.playing) { background: #242326; }
#game-shell.playing::before { display: block; background: linear-gradient(180deg, #08090d14, transparent 25%, transparent 78%, #0e090b24); }
.play-header { position: absolute; top: 11px; left: 15px; right: 15px; height: 95px; display: flex; justify-content: space-between; align-items: flex-start; }
.play-icon { display: grid; place-items: center; width: 54px; height: 54px; border: 0; border-radius: 50%; color: #dcc49a; background: url('assets/play-medallion.webp') center / 100% 100% no-repeat; filter: drop-shadow(0 2px 2px #0009); }
.play-icon svg { width: 25px; height: 25px; stroke-width: 2.6; filter: drop-shadow(0 2px 1px #0c0907); }
.play-icon:hover { filter: brightness(1.15) drop-shadow(0 2px 2px #0009); }
.play-time { position: relative; display: flex; flex-direction: column; align-items: center; gap: 5px; padding-top: 20px; color: #d9bc87; font-variant-numeric: tabular-nums; text-shadow: 0 2px 3px #000; }
.play-time::before { content: ''; position: absolute; top: -2px; left: 50%; width: 58px; height: 25px; transform: translateX(-50%); background: url('assets/play-crest.webp') center / contain no-repeat; }
.play-time time { position: relative; font-size: 22px; line-height: 29px; font-weight: 500; }
.play-time time::before, .play-time time::after { content: ''; position: absolute; top: 15px; width: 30px; height: 1px; background: linear-gradient(90deg, transparent, #9d764a); }
.play-time time::before { right: calc(100% + 12px); }
.play-time time::after { left: calc(100% + 12px); transform: rotate(180deg); }
.play-time #elapsed { font: 16px/20px Georgia, serif; }
.stage-dots { position: relative; display: flex; gap: 20px; align-items: center; margin-top: 7px; }
.stage-dots::before { content: ''; position: absolute; left: -17px; right: -17px; top: 4px; height: 1px; background: linear-gradient(90deg, transparent, #aa8550 30%, #aa8550 70%, transparent); }
.stage-dots i { width: 8px; height: 8px; border: 1px solid #b18a50; background: #241c18; border-radius: 50%; box-shadow: 0 0 0 1px #5a442c; z-index: 1; }
.stage-dots i.active { background: #b69664; }
.playing .board { top: 176px; height: 390px; }
.playing .board.tutorial { top: 176px; }
.playing .board-tile.covered { filter: brightness(.66) saturate(.8); }
.stone-tile[data-color="red"] { --stone-edge: #e9a19e; --stone-face: #9c424e; --stone-bevel: #c96370; --stone-side: #8e394b; --stone-foot: #592734; }
.stone-tile[data-color="blue"] { --stone-edge: #b0c7e9; --stone-face: #4f6d97; --stone-bevel: #8aa7d5; --stone-side: #516e9b; --stone-foot: #30435e; }
.stone-tile[data-color="yellow"] { --stone-edge: #f3d69a; --stone-face: #ac853f; --stone-bevel: #d5b261; --stone-side: #a48037; --stone-foot: #645020; }
.stone-tile[data-color="purple"] { --stone-edge: #d8b4ed; --stone-face: #805297; --stone-bevel: #b782cb; --stone-side: #87569f; --stone-foot: #523364; }
.playing .stone-tile { border: 2px solid var(--stone-edge); background: var(--stone-face); box-shadow: 0 2px 0 var(--stone-bevel), 0 5px 0 var(--stone-side), 0 8px 0 var(--stone-foot), 0 9px 0 1px #211f25, 0 11px 4px #17161b88; }
.playing .board-tile.available:hover { transform: none; filter: brightness(1.13); box-shadow: 0 2px 0 var(--stone-bevel), 0 5px 0 var(--stone-side), 0 8px 0 var(--stone-foot), 0 9px 0 1px #211f25, 0 11px 4px #17161b88; }
.playing .board-tile.available:active { filter: brightness(1.2); }
.playing .tray-area { top: 605px; left: 13px; right: 13px; height: 84px; }
.playing .tray { height: 84px; background: url('assets/play-tray.webp') center / 100% 100% no-repeat; border: 0; outline: 0; box-shadow: none; border-radius: 0; padding: 17px 27px 13px; gap: 4px; }
.playing .tray-slot { height: 54px; background: transparent; border: 0; box-shadow: none; padding-top: 0; }
.playing .tray-piece { width: 48px; height: 48px; }
.playing .tray-piece.stone-tile { box-shadow: 0 1px 0 var(--stone-bevel), 0 3px 0 var(--stone-side), 0 5px 0 var(--stone-foot); }
.playing .tray.warning { filter: drop-shadow(0 0 3px #b96745); }
.playing .tray.warning .tray-slot:not(.filled) { background: #7d30243b; box-shadow: inset 0 0 0 1px #c2876177; }
.playing .tray.matched { animation: antique-match-flash .42s; }
.playing .tool-row { top: 704px; left: 57px; right: 57px; height: 80px; align-items: flex-start; }
.playing .game-tool { width: 72px; color: #ddc393; text-shadow: 0 2px 2px #100b08; font-size: 14px; line-height: 18px; gap: 1px; }
.playing .tool-medal { width: 64px; height: 64px; border-radius: 50%; background: url('assets/play-medallion.webp') center / 100% 100% no-repeat; border: 0; outline: 0; color: #dbc396; box-shadow: none; filter: drop-shadow(0 2px 2px #000b); }
.playing .tool-medal svg { width: 29px; height: 29px; stroke-width: 2.5; filter: drop-shadow(0 2px 1px #0c0907); }
.playing .game-tool:not(:disabled):hover .tool-medal { background: url('assets/play-medallion.webp') center / 100% 100% no-repeat; filter: brightness(1.18) drop-shadow(0 2px 2px #000b); }
.playing .game-tool:disabled { opacity: .62; }
.playing .tool-medal b { right: -1px; top: 0; width: 20px; height: 20px; font: 14px/18px Georgia, serif; background: #995430; border: 1px solid #c59863; color: #ffe1aa; box-shadow: inset 0 0 0 1px #643422, 0 2px 2px #130c08; }
.playing .reserve-area { top: 564px; height: 32px; justify-content: center; }
.playing .reserve-area>span { background: #241a14cc; color: #d6bb86; font-size: 10px; }
.playing .reserve-tile { width: 30px; height: 30px; }
.playing .reserve-tile.stone-tile { box-shadow: 0 1px 0 var(--stone-bevel), 0 2px 0 var(--stone-side), 0 4px 0 var(--stone-foot); }
.playing .clear-symbol { color: #e1c6a0; text-shadow: none; }
.playing .clear-symbol small { color: #c4b9bb; }
.playing .match-word { top: 583px; color: #f2d39a; text-shadow: 0 2px 3px #201d25; }
.playing .modal { background: linear-gradient(145deg, #2c2723, #141618); border-color: #a98b59; outline-color: #463c2c; }
.playing .modal-header { background: #aa835512; border-color: #89704b66; }
.playing .result-copy, .playing .result-stats>span, .playing .context-note, .playing .setting-row { color: #c4b7a0; }
.playing .secondary { background: #46382a55; border-color: #8f7954; color: #e3c799; }
.playing .setting-row input { background: #302a25; border-color: #8b795a; }
.playing .setting-row input:checked { background: #957449; }
.playing .setting-row input:checked::before { background: #f2dcae; }
@keyframes antique-match-flash { 50% { filter: drop-shadow(0 0 5px #d5b377); } }

.home-pen { position: absolute; inset: 0; pointer-events: none; }
.home-pen button { pointer-events: auto; }
.at-home .topbar { z-index: 3; top: 22px; }
.at-home .profile b { font-size: 12px; }
.pen-title { position: absolute; top: 99px; left: 70px; right: 70px; text-align: center; text-shadow: 0 2px 5px #000b; }
.pen-title>span { display: block; color: #c5caab; font: 15px 'KaiTi', serif; }
.pen-title h1 { font: 700 40px 'KaiTi', serif; color: #f0dda6; line-height: 47px; margin: 3px 0 7px; }
.pen-title>div { font-size: 10px; color: #bbbda2; display: flex; justify-content: center; gap: 9px; align-items: center; }
.pen-title i { width: 3px; height: 3px; border-radius: 50%; background: #adbf92; }
.camp-status { position: absolute; top: 208px; left: 31px; right: 27px; display: flex; align-items: center; justify-content: space-between; color: #d3d5b6; font-size: 11px; }
.camp-status button { width: 30px; height: 30px; display: grid; place-items: center; color: #afbe95; }
.camp-status svg { width: 16px; height: 16px; }
.flock-ground { position: absolute; top: 252px; left: 10px; right: 10px; height: 351px; }
.flock-goose { position: absolute; padding: 0; width: 100px; height: 131px; display: flex; flex-direction: column; align-items: center; color: #ebe9cf; z-index: 2; }
.flock-body { width: 96px; height: 99px; object-fit: contain; filter: drop-shadow(0 5px 2px #09140980); transform-origin: 50% 94%; animation: goose-idle 4.7s ease-in-out infinite; animation-delay: var(--delay, 0s); }
.flock-goose:hover .flock-body { filter: drop-shadow(0 4px 3px #d1d99666); }
.goose-name { display: block; max-width: 109px; min-height: 17px; padding: 3px 6px; border-radius: 3px; background: #14261bd6; font-size: 10px; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; line-height: 14px; }
.goose-rank { position: absolute; top: -8px; left: 37px; font: 10px Georgia, serif; color: #d8c279; z-index: 3; background: #1b2e21db; padding: 2px 4px; border-radius: 3px; }
.goose-rank svg { width: 16px; height: 16px; }
.my-goose { left: 141px; top: 181px; width: 150px; height: 162px; z-index: 5; }
.my-goose .flock-body { width: 137px; height: 133px; }
.my-goose .goose-name { max-width: 154px; color: #f1dc9f; }
.my-marker { position: absolute; top: -16px; color: #dbdaaa; background: #203626e0; font-size: 9px; padding: 3px 9px; border: 1px solid #7c895a; border-radius: 4px; }
.goose-skin-name { font-size: 9px; color: #c6c9aa; margin-top: 4px; text-shadow: 0 2px 3px #000; }
.pen-rail { position: absolute; height: 26px; border-block: 5px ridge #6d7554; background: repeating-linear-gradient(90deg, transparent 0 48px, #6c7455 48px 55px, transparent 55px 102px); box-shadow: 0 4px 4px #111b1477; pointer-events: none; }
.rail-back { top: 17px; left: 7px; right: 7px; opacity: .6; transform: rotate(-2deg); }
.rail-front { bottom: -16px; left: 8px; right: 8px; opacity: .9; z-index: 1; }
.flock-empty { position: absolute; top: 63px; width: 100%; display: flex; flex-direction: column; align-items: center; color: #c4cbb299; gap: 12px; font-size: 11px; }
.flock-empty svg { width: 34px; height: 34px; stroke-width: 1; }
.flock-pages { position: absolute; top: 605px; left: 167px; width: 116px; display: flex; align-items: center; justify-content: space-between; color: #b4c29a; font-size: 9px; }
.flock-pages button { width: 28px; height: 23px; padding: 3px; }
.flock-pages svg { width: 14px; height: 14px; }
.flock-pages button:disabled { opacity: .3; }
.camp-news { position: absolute; top: 630px; left: 34px; right: 34px; display: flex; align-items: center; gap: 8px; font-size: 10px; color: #bcc4a7; min-height: 17px; }
.camp-news>svg { width: 15px; height: 15px; color: #c8b273; }
.camp-news>span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.camp-news b { color: #e4d4a5; font-weight: 400; }
.home-actions { position: absolute; top: 662px; left: 62px; right: 62px; text-align: center; }
.start-challenge { height: 45px; font-size: 16px; }
.resume-challenge { display: flex; justify-content: center; align-items: center; gap: 8px; height: 29px; width: 100%; color: #d5d7b9; font-size: 11px; }
.resume-challenge svg { width: 13px; height: 13px; }
.daily-state { display: block; height: 29px; padding-top: 8px; font-size: 9px; color: #a9b397; }
.home-navigation { position: absolute; top: 742px; left: 50px; right: 50px; height: 29px; display: flex; justify-content: space-around; }
.home-navigation button { display: flex; align-items: center; gap: 7px; padding: 4px; color: #d1d5b7; font-size: 11px; }
.home-navigation svg { width: 18px; height: 18px; color: #b8c49d; }
.home-footer { position: absolute; top: 785px; left: 27px; right: 27px; display: flex; justify-content: space-between; font-size: 8px; color: #9da88b; }
.home-footer b { font-weight: 400; font-variant-numeric: tabular-nums; }
.resident-profile { display: flex; flex-direction: column; align-items: center; gap: 9px; }
.resident-profile h3 { margin: 3px 0 0; font-size: 17px; text-align: center; overflow-wrap: anywhere; }
.resident-profile>span { color: #bfcba6; font-size: 11px; }
.resident-skin { width: 171px; height: 185px; object-fit: contain; }
.resident-profile>b { color: #d8d3aa; font-size: 12px; font-weight: 400; }
.applaud { color: #e8c0a5; }
.applaud:disabled { opacity: .65; }
.applaud b { font-weight: 400; }
@keyframes goose-idle { 0%, 100% { transform: rotate(-1.5deg) translateY(0); } 45% { transform: rotate(1.5deg) translateY(-3px); } 65% { transform: rotate(0) translateY(0); } }
.drop-game{display:flex;flex-direction:column;align-items:center;gap:10px;margin:14px 0 6px}
.drop-card{width:120px;height:150px;border-radius:14px;border:2px solid #e8c15a;background:linear-gradient(160deg,#3a2a14,#1a120a);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;cursor:pointer;transition:transform .25s;box-shadow:0 6px 18px rgba(232,193,90,.15)}
.drop-card span{font-size:40px;color:#e8c15a;line-height:1}
.drop-card small{color:#c9a94f;font-size:12px}
.drop-card:hover{transform:translateY(-4px)}
.drop-card.revealed{pointer-events:none;background:linear-gradient(160deg,#2a2140,#141020);animation:dropPop .45s ease}
.drop-card.revealed img,.drop-card.revealed .drop-frame{width:84px;height:84px;object-fit:contain;border-radius:10px}
.drop-frame{display:inline-block;width:60px;height:60px;border:3px solid #e8c15a;border-radius:50%}
.drop-frame.laurel{border-color:#7dc95e}.drop-frame.silver{border-color:#c9d6e8}.drop-frame.gold{border-color:#e8c15a}.drop-frame.royal{border-color:#b48ae0;border-width:4px}
.drop-result{display:flex;flex-direction:column;align-items:center;gap:2px}
.drop-result b{font-size:16px}
.drop-result span{font-size:12px;color:#e8c15a}
@keyframes dropPop{0%{transform:rotateY(90deg) scale(.7);opacity:.4}100%{transform:rotateY(0) scale(1);opacity:1}}
