/* VILKO v4: a village-first interface, with readable action and construction states. */
.vilko-mark{display:block;width:100%;height:100%;object-fit:contain;border-radius:14%;filter:none}
.player-crest{transform:none;height:55px}.dock-game-item .vilko-mark{width:39px;height:39px;border-radius:8px}.modal-title-icon .vilko-mark{width:43px;height:43px}.loading-crest .vilko-mark{width:100%;height:100%;border-radius:22px}
#sync-dot{position:absolute;left:6px;bottom:2px;width:5px;height:5px;border-radius:50%;background:#e6c781}#sync-dot[data-status=cloud]{background:#a5cf8c}#sync-dot[data-status=reconnecting]{background:#dd8c61}
.build-summary{display:flex;align-items:center;flex-wrap:wrap;gap:10px 20px;padding:12px 16px;background:#e4dcc0;border:1px solid #cbb88d;border-radius:8px;color:#696b51;font-size:11px;margin-bottom:20px}.build-summary>span{display:inline-flex;align-items:center;gap:7px}.build-summary .game-art{width:28px;height:28px}.build-intro{color:#77735f;font-size:12px;line-height:1.8;margin-bottom:20px}
.catalog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.catalog-card{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;border:1px solid #d0bc92;border-bottom:3px solid #c9b185;border-radius:10px;background:#fff8e5;padding:18px 16px}.catalog-card>img{width:100%;height:145px;object-fit:contain;margin:4px 0 17px}.catalog-card>.section-label{font-size:7px;letter-spacing:.6px}.catalog-card h3{font-size:18px;font-weight:900;color:#3d5656;line-height:1.15;margin:8px 0}.catalog-card>p{font-size:10px;color:#8d8166;margin:0}.catalog-card .recipe-cost{margin:14px 0;gap:14px}.catalog-card .recipe-cost>span{font-size:12px}.catalog-card .recipe-cost .game-art{width:24px;height:24px}.catalog-card>.btn{margin-top:auto}.catalog-count{position:absolute;top:12px;right:12px;background:#e9dfc3;border-radius:5px;padding:4px 6px;font-size:9px;color:#887952;font-weight:800}.catalog-full{background:#eee5d0}.catalog-full>img{filter:saturate(.7)}
.level-comparison{display:flex;align-items:center;justify-content:center;gap:13px;background:radial-gradient(ellipse at 50% 85%,#dfd3b1a1,transparent 65%);margin-bottom:18px}.level-comparison>div{width:45%;text-align:center}.level-comparison>div:first-child:last-child{width:70%}.level-comparison img{width:100%;height:180px;object-fit:contain}.level-comparison small{display:block;letter-spacing:1px;font-size:8px;font-weight:900;color:#7b765d;margin:10px 0 4px}.level-comparison>span{width:20px;color:#b8985a}.level-comparison>span svg{width:20px}.next-stage{border:1px solid #c6b17d;border-radius:9px;background:#f7e9c85c;padding:9px}.upgrade-benefit{display:flex;align-items:center;justify-content:space-between;gap:15px;background:#e4e6cc;border:1px solid #c1c6a2;border-radius:7px;padding:15px;margin:20px 0;font-size:11px;color:#6f7357}.upgrade-benefit strong{font-size:21px;color:#3e5d57;white-space:nowrap}.upgrade-benefit small{font-size:10px;font-weight:500}.upgrade-benefit i{color:#9d8c5c;font-style:normal;font-size:15px;margin:0 5px}.upgrade-purchase{display:flex;flex-direction:column;align-items:stretch;margin-bottom:20px}.upgrade-purchase .recipe-cost{justify-content:center;font-size:13px}.upgrade-purchase .recipe-cost svg{width:18px;height:18px}.building-production{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:20px;font-size:11px;color:#82765a}.construction-label{position:absolute;bottom:7px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:7px;white-space:nowrap;background:#294b4b;color:#f5e9cb;border:1px solid #bdab7c;border-radius:6px;padding:8px 13px;font-size:10px}.construction-label .game-art{width:24px;height:24px}.building-sprite-panel{position:relative}
.theme-intro{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:24px}.theme-intro h3{font-size:25px;color:#3d5554;font-weight:900;margin:9px 0}.theme-intro p{font-size:12px;line-height:1.8;color:#81775f;max-width:530px}.theme-intro .tag{font-size:7px;white-space:nowrap;margin:0}.theme-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:24px}.theme-card{border:1px solid #cbb58c;border-bottom:3px solid #b8a275;border-radius:10px;overflow:hidden;background:#fff7e4}.theme-card>img{width:100%;aspect-ratio:1.65;object-fit:cover;display:block}.theme-card>div{padding:17px}.theme-card h3{font-size:18px;color:#3c5756;font-weight:900;margin:10px 0 8px}.theme-card p{font-size:10px;line-height:1.8;color:#88795b;min-height:36px;margin-bottom:17px}.theme-active{outline:2px solid #587d72;outline-offset:2px}.theme-swatches{display:flex;gap:4px}.theme-swatches i{width:19px;height:6px;border-radius:2px}
.control-session{text-align:center;padding:17px;border:1px solid #c5caab;border-radius:8px;background:#e6e8d0;margin-bottom:20px}.control-session>strong{font-size:32px;font-weight:900;color:#3b5b55;display:block;margin:12px 0 5px}.control-session>small{font-size:10px;color:#7c8066}.control-preview{display:flex;flex-direction:column;gap:9px;align-items:center;padding:18px;background:#e8dfc4;border:1px solid #ceb98f;border-radius:8px;margin:20px 0}.control-preview strong{font-size:25px;color:#3e5955}.control-preview span{font-size:11px;color:#807459}.control-choices{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:20px 0}.control-choices>.btn:last-child{grid-column:1/3}.control-dock{position:absolute;z-index:7;left:50%;bottom:135px;transform:translateX(-50%);width:max-content;max-width:calc(100vw - 28px);display:flex;align-items:center;gap:13px;padding:10px 12px;border:2px solid #b9a16c;border-bottom:4px solid #71613f;border-radius:12px;background:#233c3ef5;box-shadow:0 4px 15px #1a321e55;color:#fff0cc}.control-dock-person{display:flex;align-items:center;gap:9px;text-align:left;background:none;color:inherit}.control-dock-person .avatar{width:40px;height:40px}.control-dock-person small{display:block;font-size:6px;letter-spacing:1px;color:#b9c8b1;margin-bottom:5px}.control-dock-person strong{font-size:16px}.control-dock-time{font-size:11px;color:#e8cc89;min-width:50px;white-space:nowrap}.game-mode .control-dock .btn{min-height:35px;padding:7px 11px}.control-dock~.bottom-village-name{display:none}
.game-mode.saving-action .building-action.upgrade{opacity:.5;pointer-events:none}.game-mode .move-actions{min-width:300px}.move-actions #move-hint{max-width:320px;line-height:1.5;font-size:10px}.game-mode .building-actions h2{max-width:380px}.game-mode .building-actions h2 small{white-space:nowrap}.game-mode .modal-tabs{overflow-x:auto}.game-mode .recipe-cost{flex-wrap:wrap}
@media(max-width:760px){.player-crest{height:36px;width:36px}.catalog-grid{grid-template-columns:1fr 1fr;gap:11px}.catalog-card{padding:13px 10px}.catalog-card>img{height:113px;margin:5px 0 12px}.catalog-card h3{font-size:15px}.catalog-card .section-label{font-size:6px}.catalog-card>p{font-size:9px}.catalog-card .recipe-cost{gap:7px}.catalog-card .recipe-cost>span{font-size:10px}.catalog-card>.btn{font-size:9px;padding:8px 6px}.catalog-count{top:8px;right:8px;font-size:8px}.theme-grid{grid-template-columns:1fr;gap:15px}.theme-card{display:grid;grid-template-columns:42% 1fr}.theme-card>img{height:100%;aspect-ratio:auto;min-height:160px}.theme-card>div{padding:14px}.theme-card h3{font-size:17px}.theme-card p{font-size:9px;margin-bottom:11px}.theme-intro{display:block}.theme-intro>.tag{display:inline-block;margin-top:10px}.theme-intro h3{font-size:23px}.build-summary{font-size:9px;gap:8px 13px;padding:9px 11px}.level-comparison img{height:145px}.level-comparison small{font-size:7px;letter-spacing:.6px}.level-comparison{gap:8px}.upgrade-benefit{gap:8px;padding:12px;font-size:10px}.upgrade-benefit strong{font-size:18px}.upgrade-benefit strong small{display:block;text-align:right;font-size:9px;margin-top:4px}.control-dock{bottom:111px;padding:8px 9px;gap:8px;max-width:calc(100vw - 24px)}.control-dock-person .avatar{height:34px;width:34px}.control-dock-person strong{font-size:13px}.control-dock-person small{font-size:5px}.control-dock-time{font-size:10px;min-width:45px}.game-mode .control-dock .btn{font-size:9px;padding:6px 8px}.control-dock .btn[aria-label]{display:none}.game-mode .move-actions{min-width:0;width:calc(100vw - 42px)}.move-actions #move-hint{max-width:270px}.game-mode .building-actions h2{max-width:calc(100vw - 40px)}#sync-dot{left:0;bottom:1px;width:4px;height:4px}.game-mode .control-choices .btn{font-size:10px}.game-mode .modal-tabs button{padding-left:12px;padding-right:12px}}
@media(max-width:370px){.player-crest{width:30px;height:30px}.control-dock-person small{display:none}.control-dock-person .avatar{width:28px;height:28px}.control-dock{gap:6px}.control-dock-time{font-size:9px}.control-dock .btn.primary{font-size:8px}.catalog-card h3{font-size:13px}}
@media(max-height:540px) and (orientation:landscape){.control-dock{bottom:99px}.theme-grid{grid-template-columns:repeat(3,1fr)}.theme-card{display:block}.theme-card>img{height:100px;min-height:0}.theme-card>div{padding:12px}.control-dock-person .avatar{width:29px;height:29px}.game-mode .control-dock .btn{min-height:30px}}

#village-caption.controlled{display:none}

/* V5 village orders, workshop, conversations and transparent practice exchange. */
.board-intro{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.board-intro h3{font:700 27px Georgia,serif;margin:8px 0}.board-intro p{color:#78664b;line-height:1.6;margin:0}.order-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:10px 0 24px}.order-card{position:relative;padding:27px 20px 20px;border:1px solid #c6ae79;border-radius:8px;background:linear-gradient(150deg,#fcf1cf,#e9d6a4);box-shadow:0 4px 0 #b89d63,0 8px 18px #4a392712}.order-pin{position:absolute;top:9px;left:50%;width:9px;height:9px;border-radius:50%;background:#a05a35;box-shadow:1px 2px 2px #5c462688}.order-person{display:flex;align-items:center;gap:10px}.order-person>span:last-child{font-size:9px;letter-spacing:1px;color:#8b7552}.order-person b{font:700 15px Georgia,serif;color:#4e422e;letter-spacing:0;line-height:1.7}.order-card h3{font:700 21px/1.25 Georgia,serif;min-height:54px;color:#53422b}.order-goods{border-top:1px dashed #bca776;border-bottom:1px dashed #bca776;padding:16px 0}.order-goods>div{display:flex;justify-content:space-between;font-size:13px;gap:10px}.order-goods b{color:#a15e3d}.order-goods b.enough{color:#586c3c}.order-reward{display:flex;align-items:center;gap:8px;margin:18px 0;color:#6a5433}.order-reward .game-art{width:26px;height:26px}.order-reward>span:last-child{margin-left:auto;font-size:12px}.recipe-card>p{font-size:13px;line-height:1.6;color:#7b684c;min-height:42px}.recipe-ingredients{font-size:12px;line-height:1.7;color:#76603f}.exchange-quote{display:flex;align-items:center;gap:20px;justify-content:space-around;margin:26px 0}.exchange-quote>span{display:flex;flex-direction:column;gap:8px;font-size:12px;color:#756447}.exchange-quote b{font:700 34px Georgia,serif;color:#4d422c}.exchange-quote small{font-size:9px;letter-spacing:1px}.exchange-quote svg{width:24px}.practice-receipts{border:1px solid #cfbd94;border-radius:8px;padding:0 16px}.practice-receipts>div{display:flex;justify-content:space-between;gap:16px;padding:14px 0;font-size:12px;border-bottom:1px solid #d9cba9}.practice-receipts>div:last-child{border:0}.chat-person{display:flex;align-items:center;gap:20px;margin-bottom:20px}.chat-person h3{font:700 25px Georgia,serif;margin:0 0 8px}.chat-person p{color:#807052;font-size:13px}.chat-transcript{display:flex;flex-direction:column;gap:12px;min-height:120px;max-height:320px;overflow:auto;margin:22px 0}.chat-bubble{max-width:88%;background:#e8dfc5;padding:14px 18px;border-radius:12px 12px 12px 2px;color:#5c5038}.chat-bubble.from-player{align-self:flex-end;background:#40544b;color:#fff6dd;border-radius:12px 12px 2px 12px}.chat-bubble small{font-size:9px;letter-spacing:1px;opacity:.75}.chat-bubble p{font-size:14px;line-height:1.7;white-space:pre-wrap;margin:6px 0 0}.chat-compose{display:flex;flex-direction:column;gap:12px}.chat-compose textarea{resize:vertical;width:100%;box-sizing:border-box;border:1px solid #bdab83;border-radius:8px;background:#fff6dc;padding:13px;color:#4b402c;font:14px/1.6 inherit;min-height:90px}.chat-compose .btn{align-self:flex-end}.chat-compose textarea:focus{outline:2px solid #8c9d70;outline-offset:2px}@media(max-width:740px){.board-intro{align-items:flex-start;flex-direction:column}.order-grid{grid-template-columns:1fr}.order-card h3{min-height:0}.order-card{padding:24px 18px 18px}.practice-receipts>div{flex-direction:column;gap:5px}.chat-bubble{max-width:95%}.modal-tabs{overflow-x:auto}}

/* V6 launch screen: real completed assets + connected save, no looping percentage. */
.game-launch{background:#20392f;isolation:isolate;color:#fff1ca;padding:35px 24px;transition:opacity .35s,visibility .35s}.game-launch:before{content:'';position:absolute;inset:0;z-index:-2;background:linear-gradient(0deg,#122b29d9,#172c23b0),url('assets/portal/village.webp') center/cover no-repeat}.game-launch:after{content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 50% 40%,#142a1e20,#102c29bd)}.game-launch .launch-home{position:absolute;top:max(28px,env(safe-area-inset-top));left:35px;color:#d7d9b5;text-decoration:none;font:600 11px var(--sans);letter-spacing:.4px}.launch-card{width:min(400px,100%);text-align:center;display:flex;flex-direction:column;align-items:center}.game-launch .loading-crest{width:72px;height:72px;margin-bottom:22px}.game-launch .launch-eyebrow{font:800 7px var(--sans);letter-spacing:3.3px;color:#b7c09a;margin:0 0 16px}.game-launch h1{font:900 clamp(56px,10vw,80px)/1 var(--serif);letter-spacing:7px;color:#f8e5b5;text-shadow:0 4px #15352e;margin:0 0 14px;padding-left:7px}.game-launch .launch-tagline{font:italic 16px var(--serif);color:#c3c9a5;margin:0 0 38px}.game-launch .load-track{width:100%;height:13px;padding:2px;border:1px solid #b69b61;background:#122b26;border-radius:6px;box-shadow:0 3px 0 #10251e,0 0 0 3px #142c24}.game-launch .load-track i{height:100%;width:0;background:linear-gradient(#fae09b,#c99d4b);border-radius:3px;animation:none!important;transition:width .15s ease-out;box-shadow:inset 0 1px #fff2b8}.launch-progress-copy{display:flex;justify-content:space-between;align-items:center;gap:18px;width:100%;margin-top:16px;color:#bac9a6}.launch-progress-copy>span{font:500 10px/1.5 var(--sans);letter-spacing:.2px;text-align:left}.launch-progress-copy>b{font:700 12px var(--sans);color:#e1cc94}.game-launch .launch-tip{font:400 10px/1.8 var(--sans);font-style:normal;max-width:285px;color:#91a589;margin:38px 0 0}.launch-footer{position:absolute;bottom:max(30px,env(safe-area-inset-bottom));display:flex;gap:19px;align-items:center;color:#91a182;font:700 7px var(--sans);letter-spacing:2px}.launch-footer>i{width:3px;height:3px;background:#b29d6b;transform:rotate(45deg)}.launch-recovery{display:flex;justify-content:center;align-items:center;gap:22px;margin-top:23px;font:700 11px var(--sans)}.launch-recovery[hidden]{display:none}.launch-recovery>button{border:1px solid #cba954;border-bottom:3px solid #8e742d;border-radius:5px;padding:12px 20px;background:#e5c16b;color:#473c26;cursor:pointer;font:700 11px var(--sans)}.launch-recovery>a{color:#c8cfae}.load-error .load-track{border-color:#c38359}.load-error .launch-progress-copy{color:#e3b996}.return-home{text-decoration:none}.game-mode[inert]{visibility:hidden}@media(max-width:700px){.game-launch:before{background-image:linear-gradient(0deg,#122b29e0,#172c23b0),url('assets/portal/village-mobile.webp')}.game-launch .launch-home{left:23px;font-size:10px}.launch-card{max-width:310px}.game-launch .loading-crest{width:63px;height:63px}.game-launch .launch-tagline{font-size:14px}.game-launch .launch-tip{font-size:9px}.launch-footer{font-size:6px;gap:14px;letter-spacing:1.8px}}@media(prefers-reduced-motion:reduce){.game-launch,.game-launch .load-track i{transition:none}}

/* Building placement and resident controls share one action area. */
.game-mode.selecting .control-dock,.game-mode.moving .control-dock{display:none!important}
