/* Full viewport stage; the artwork and all world coordinates share one uniform scale. */
html,body{width:100%;height:100%;margin:0;overflow:hidden;overscroll-behavior:none}
.app-shell{position:fixed;inset:0;width:100%;height:100dvh;max-width:none;padding:0!important;margin:0;display:block}
.topbar,.map-heading,footer,.map-badge{display:none!important}
.game-layout{position:absolute;inset:0;display:block;height:100%;padding:0}
.play-area,body:not(.garden-mode) .play-area,.garden-mode .play-area{position:absolute;inset:0;display:block;width:100%;height:100%;overflow:hidden;background:#192c3b;isolation:isolate}
.play-area:before{content:'';position:absolute;inset:-24px;background:linear-gradient(#1d324d35,#152b4270),var(--scene-art) center/cover;filter:blur(15px);z-index:-1}
.world{position:absolute!important;left:calc((100vw - min(100vw,100dvh * 960 / 620)) / 2)!important;top:calc((100dvh - min(100dvh,100vw * 620 / 960)) / 2)!important;transform:none;width:min(100vw,calc(100dvh * 960 / 620))!important;height:min(100dvh,calc(100vw * 620 / 960))!important;min-height:0!important;max-width:none;aspect-ratio:960/620!important;overflow:visible!important;border:0!important;border-radius:0!important;box-shadow:0 0 80px #101f3060}
#game{width:100%;height:100%;display:block;object-fit:contain;border-radius:0}
.top-actions{position:fixed;top:max(10px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));display:flex;align-items:center;gap:6px;padding:7px;border-radius:19px;border:1px solid #ffffff45;background:linear-gradient(145deg,#c7dde148,#263e5269);box-shadow:inset 0 1px #ffffff50,0 7px 24px #0c192d30;backdrop-filter:blur(18px) saturate(1.2);z-index:14;margin:0!important}
.top-actions button{touch-action:manipulation}.top-actions #settings-btn{width:34px;min-width:34px;height:34px;padding:5px!important;background:linear-gradient(145deg,#f6f0d8,#cbdacb)!important;border:1px solid #fff8;box-shadow:inset 0 1px #fff9,0 2px 5px #11283d40}
.top-actions #settings-btn img{width:23px!important;height:23px!important}.top-actions #level-btn{margin:0}
.garden-mode .top-actions #speed,.garden-mode .top-actions #pause{display:none!important}
/* Fixed controls live outside the scaled world so they keep comfortable touch targets. */
.world>.squad-drawer,.world>.garden-glass{position:fixed!important;left:auto!important;right:auto!important;bottom:auto!important;top:auto!important;transform:none!important}
/* World is transformed, so actual viewport overlays are reparented to the play area. */
.world>.squad-drawer,.world>.garden-glass{position:fixed!important;left:max(12px,env(safe-area-inset-left))!important;bottom:max(12px,env(safe-area-inset-bottom))!important;right:112px!important;width:auto!important;max-width:none!important;z-index:12;box-sizing:border-box}
.world>.squad-drawer.collapsed{width:auto!important}.squad-head{display:flex;gap:10px;min-height:32px}.squad-capacity{display:none!important}.squad-head>.resource{margin-left:auto!important;order:9;flex:0 0 auto}.squad-head>.resource>span>small{display:none}.squad-tip{font-size:10px}
.squad-drawer .cat-cards{grid-template-columns:repeat(7,minmax(0,1fr))!important;grid-template-rows:1fr!important;height:100px!important;gap:7px}
.squad-drawer .cat-card,.squad-drawer .cat-card.active,#lamp-btn{height:100px!important;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:4px!important;border-radius:13px;box-sizing:border-box}
#lamp-btn{background:linear-gradient(140deg,#ffe7a43b,#2e405e66);border:1px solid #e8d09b80;color:#fff0cc;font-size:11px;box-shadow:inset 0 1px #fff3}
#lamp-btn>img{height:42px;width:42px;object-fit:contain}#lamp-btn>small{font-size:9px;color:#e6d6b3}.lamp-price{display:flex;align-items:center;gap:3px;height:17px}.lamp-price img{width:20px;height:17px;object-fit:contain}#lamp-btn:disabled{filter:grayscale(1);opacity:.5}
.world>.ultimate-button{position:fixed!important;right:max(14px,env(safe-area-inset-right))!important;bottom:max(14px,env(safe-area-inset-bottom))!important;width:84px!important;height:94px!important;z-index:13;touch-action:none}.ultimate-button.aiming{outline:2px dashed #ffe7ae;outline-offset:5px}.ultimate-button.aiming:after{content:'拖回取消';position:absolute;top:-47px;left:-6px;width:94px;color:#fff1cf;font-size:11px;text-shadow:0 2px 5px #182b3f}
.world>.quick-start{position:fixed;right:16px;top:72px;bottom:auto;z-index:12}.world>.tactical-tip,#tactical-tip{position:fixed!important;left:14px!important;top:14px!important;bottom:auto!important;max-width:min(39vw,330px)!important;z-index:10}
.world>.map-hint{position:absolute!important;bottom:160px!important}.map-hint:not(.action){display:none!important}.pause-cover{left:50%!important;top:50%!important;bottom:auto!important;right:auto!important;transform:translate(-50%,-50%)!important;width:230px!important;z-index:15}
#house-hud{left:min(var(--house-x),calc(100% - 62px))!important;width:122px!important;padding:5px 7px 5px 4px!important;display:flex;align-items:center;gap:5px!important;background:linear-gradient(155deg,#314857ef,#192c42f0)!important;border:1px solid #e5cb8fa8!important;box-shadow:inset 0 1px #fff5,0 3px 9px #07182a70!important;border-radius:14px!important}
#house-hud>img{display:block!important;width:27px;height:29px;object-fit:contain;filter:drop-shadow(0 2px 3px #0004)}#house-hud>div{min-width:0;flex:1}.house-label{font-size:9px!important;display:flex;justify-content:space-between}.house-health{height:7px!important;border:1px solid #182333;border-radius:7px;box-shadow:inset 0 1px 2px #0007}.house-health .health-fill{background:linear-gradient(#fff1ad,#e5bd60 45%,#d2944d)!important;box-shadow:inset 0 1px #fff8}#house-hud.critical .health-fill{background:linear-gradient(#ffc195,#d75f57)!important}
/* The garden drawer has its own rows: header, tools, optional snacks, cats. */
.world>.garden-glass{right:max(12px,env(safe-area-inset-right))!important;max-width:980px!important;margin:auto!important;padding:10px 14px!important}
.garden-drawer-head{height:auto!important;min-height:32px;display:flex;align-items:center;gap:12px;padding:0 0 10px!important;margin:0!important;border-bottom:1px solid #fff5}.garden-drawer-head>span{display:none}.garden-progression-actions{position:static!important;display:flex;align-items:center;gap:6px;flex-wrap:nowrap;margin:0 0 0 auto!important}.garden-progression-actions button{min-height:30px;padding:5px 11px;font-size:11px;white-space:nowrap}
.garden-mode .garden-dock>.garden-toolbar{height:auto!important;display:flex!important;flex-direction:column!important;gap:9px!important;padding:10px 0 0!important;background:none!important;border:0!important}
.garden-toolbar .garden-tool-row{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:9px!important}
.garden-tool-row button{min-height:48px!important;height:48px;display:flex!important;flex-direction:row!important;gap:8px!important;padding:3px 12px!important;background:linear-gradient(#fff9,#ecf2e680);border:1px solid #fff9;border-radius:13px;box-shadow:inset 0 1px #fff8,0 2px 5px #586c4b15}
.garden-tool-row button img{width:47px;height:47px;object-fit:contain;filter:drop-shadow(0 2px 2px #7c704f20)}.garden-tool-row button span{font-size:12px!important}.garden-tool-row button[aria-pressed=true]{background:linear-gradient(#f7f8d9,#dbe9ce);border-color:#6d9974;box-shadow:0 0 0 1px #6d997449}
.garden-picker{display:flex!important;gap:8px!important;margin:0!important;padding:4px 0 0!important;border-top:1px solid #8fa48333;overflow-x:auto;flex-wrap:nowrap!important}.garden-picker button{display:flex!important;flex-direction:row!important;min-height:38px;flex:0 0 auto;gap:5px!important;padding:2px 12px!important}.garden-picker img{width:33px!important;height:33px!important;object-fit:contain}.garden-picker span{font-size:11px}.snack-row{display:flex;flex-direction:row!important;gap:6px}.snack-row button{min-height:28px!important}.garden-glass.collapsed .garden-drawer-head{padding-bottom:0!important;border:0}
/* One continuous bound journal, with bookmark navigation on the outside edge. */
.info-dialog.diary-dialog{width:min(900px,calc(100vw - 62px))!important;height:min(560px,calc(100dvh - 28px));max-height:calc(100dvh - 28px);padding:0!important;background:transparent!important;border:0!important;overflow:visible!important;box-shadow:0 22px 60px #17202166;border-radius:15px}
.diary-dialog #modal-content{height:100%;padding:0}.diary-dialog .modal-close{right:10px;top:7px;z-index:3;background:#e9dbc3ba;color:#756047;width:28px;height:28px;min-width:28px}
.diary-book{position:relative;display:grid;grid-template-columns:1fr 1.12fr;height:100%;padding:10px;background:linear-gradient(140deg,#9d7052,#684c3c);border:1px solid #d1ad80;border-radius:14px;box-shadow:inset 0 0 0 3px #8a624a,inset 0 0 0 5px #c79b6e70,0 6px 0 #493d35}
.diary-leaf{position:relative;min-height:0;min-width:0;padding:25px 26px 30px;background:repeating-linear-gradient(0deg,#b79b6510 0 1px,transparent 1px 5px),radial-gradient(ellipse at 30% 20%,#fff9e9,#ecddbe);box-shadow:0 3px 0 #cbbc9f,0 5px 0 #e0d2b8,0 7px 0 #bfae92;border-radius:5px 0 0 6px}
.diary-left{background:linear-gradient(90deg,transparent 80%,#8a704a22),radial-gradient(ellipse at 30% 20%,#fff9e9,#ecddbe);text-align:center}.diary-right{border-radius:0 5px 6px 0;background:linear-gradient(90deg,#8a704a22,transparent 17%),radial-gradient(ellipse at 70% 20%,#fff9e9,#ecddbe)}
.paper-content{height:100%;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#baa17c transparent}.diary-book h2{font-size:25px;margin:8px 0 10px;color:#665442}.diary-book h3{font-size:16px;color:#7e664c;margin:7px 0 14px}.diary-book p{font-size:13px;line-height:1.9;color:#887153}.diary-book .eyebrow{font-size:9px;letter-spacing:.12em;color:#9e8866}.diary-portrait{display:block;object-fit:contain;width:80%;height:205px;margin:0 auto;filter:drop-shadow(0 8px 6px #9c7b3d23)}.diary-note{font-size:10px!important;color:#a18b6a!important}.folio{position:absolute;bottom:9px;left:12px;right:12px;text-align:center;font-size:8px;letter-spacing:.1em;color:#a08c6c}.book-binding{position:absolute;width:20px;top:10px;bottom:10px;left:calc(47.17% - 8px);pointer-events:none;background:linear-gradient(90deg,#81694400,#80654328,#fff8 45%,#80654320,#80654300)}
.bookmarks{position:absolute;left:-29px;top:31px;display:flex;flex-direction:column;gap:10px;z-index:2}.bookmarks button{writing-mode:vertical-rl;text-orientation:upright;padding:13px 8px 16px;min-width:32px;min-height:100px;border:1px solid #fff4;border-radius:6px 0 0 6px;background:linear-gradient(90deg,#839383,#a6b59c);color:#fff9e7;font-size:11px;letter-spacing:3px;box-shadow:-2px 3px 6px #51452a20}.bookmarks button:nth-child(2){background:linear-gradient(90deg,#ad866c,#caa386)}.bookmarks button:nth-child(3){background:linear-gradient(90deg,#8a849b,#afa7bb)}.bookmarks button[aria-current=true]{transform:translateX(-5px);filter:brightness(1.12);box-shadow:-2px 4px 9px #51452a30}
.diary-book .journal-entry{background:#fff9e943;border:0;border-bottom:1px dashed #bba58266;border-radius:0;padding:12px 2px}.diary-book .journal-entry strong{font-size:13px}.diary-book .journal-entry small{font-size:9px}.diary-book .journal-entry>b{font-size:14px}.diary-book .journal-pagination{margin:12px 0}.diary-book .journal-empty{background:none;border:1px dashed #c2ad88;padding:30px 14px;font-size:13px}.diary-book .story-collection{display:flex;flex-direction:column;gap:8px}.diary-book .story-collection button{background:#fff9e944;border:1px solid #bfa88466;padding:11px 14px;text-align:left;display:flex;flex-direction:column;gap:5px;border-radius:5px;color:#7c6248}.diary-book .story-collection b{font-size:13px}.diary-book .story-collection small,.diary-book .story-collection span{font-size:10px}.diary-cat-list article{display:flex;align-items:center;gap:10px;border-bottom:1px dashed #baa17b70;padding:8px 0}.diary-cat-list img{width:65px;height:65px;object-fit:contain}.diary-cat-list h3{font-size:14px;margin:0 0 5px}.diary-cat-list small{font-size:10px}.diary-cat-list p{font-size:10px;margin:3px 0;line-height:1.6}.diary-story{padding-top:26px}.diary-story p{font-size:16px;line-height:2.3;text-align:justify}.book-rating{font-size:90px;margin:15px 0;font-family:Georgia,serif;color:#a48650}.book-record .result-heading{display:none}.book-record .result-columns{display:flex;flex-direction:column}.book-record .result-buttons{flex-wrap:wrap}.book-record .result-buttons button{font-size:10px;padding:7px}.book-record .result-cats img{width:36px;height:36px}
/* Talent icons form a navigable tree; the selected node explains its actual gameplay effect. */
.talent-workbench{display:grid;grid-template-columns:1.1fr 1fr;gap:22px;margin-top:12px}.talent-workbench .talent-tree{padding:12px!important;margin:0;overflow:visible;max-height:none!important;min-height:0}.talent-root{display:flex;justify-content:center;margin:0 0 12px}.talent-routes{gap:20px}.talent-routes>div{display:flex;flex-direction:column;align-items:center}.talent-icon,.talent-root .talent-icon{display:grid!important;place-items:center;padding:3px!important;width:56px!important;height:56px!important;min-height:0!important;border-radius:15px!important;background:linear-gradient(#faf4e7,#e9e2d1);border:1px solid #c6b18c;box-shadow:inset 0 1px #fff,0 3px 7px #8d76471c;position:relative}.talent-icon img{width:48px!important;height:48px!important;object-fit:contain}.talent-icon.chosen{background:linear-gradient(#fff6c5,#dddab4);border-color:#a58b3b;box-shadow:0 0 12px #d5b95844}.talent-icon.chosen:after{content:'';width:6px;height:6px;background:#668b63;border:2px solid #f4efda;border-radius:50%;position:absolute;bottom:1px;right:1px}.talent-icon.unavailable img{filter:grayscale(.85);opacity:.55}.talent-icon.inspecting{outline:2px solid #6f8c81;outline-offset:3px}.talent-connector{height:12px!important;width:1px;background:#b5a782;display:block}.talent-detail{display:flex;align-items:center;flex-direction:column;justify-content:center;text-align:center;padding:16px;border-radius:16px;background:radial-gradient(ellipse at top,#fff9dc,#e8ebde);border:1px solid #d2c9ad}.talent-detail>img{width:85px;height:85px;object-fit:contain}.talent-detail h3{margin:5px 0;font-size:19px}.talent-detail p{font-size:13px;line-height:1.7}.talent-detail small{font-size:10px;color:#8e7d5f}.talent-detail button{margin-top:14px;font-size:12px;padding:10px}.talent-note{font-size:11px!important;margin:6px 0!important}.talent-heading h2{margin:0}.talent-tabs{margin:8px 0}.talent-workbench+.book-footer{margin-top:12px}
.story-logo{display:block;width:95%;height:125px;object-fit:contain;position:relative;z-index:1;margin:0 auto}.story-moon{display:none}.story-illustration h2{font-size:20px!important;text-align:center;margin:0!important}.story-visitors{display:none}.story-guardians{height:140px}.story-illustration>.eyebrow{display:none}
@media(max-height:500px){.top-actions{top:7px;padding:5px;border-radius:15px;gap:4px}.top-actions button{min-height:30px}.world>.quick-start{top:59px;font-size:11px}.squad-drawer .cat-cards,.squad-drawer .cat-card,.squad-drawer .cat-card.active,#lamp-btn{height:86px!important}.squad-drawer .cat-card img{height:37px}.squad-drawer .cat-card .currency-icon{height:15px}.squad-body{padding-bottom:12px!important}.squad-head{min-height:27px}.world>.garden-glass{padding:7px 10px!important;bottom:8px!important}.garden-drawer-head{padding-bottom:7px!important;min-height:26px}.garden-progression-actions button{min-height:27px;padding:4px 9px}.garden-mode .garden-dock>.garden-toolbar{padding-top:7px!important;gap:6px!important}.garden-tool-row button{height:40px;min-height:40px!important}.garden-tool-row button img{width:39px;height:39px}.garden-picker button{min-height:31px;padding:1px 10px!important}.garden-picker img{width:28px!important;height:28px!important}.diary-leaf{padding:16px 20px 25px}.diary-book h2{font-size:21px;margin:5px 0}.diary-book h3{font-size:13px;margin:5px 0 9px}.diary-portrait{height:125px}.diary-book p{font-size:11px;line-height:1.7}.bookmarks{top:20px;gap:7px}.bookmarks button{min-height:82px;padding:8px 6px;font-size:10px;letter-spacing:2px}.diary-book .journal-entry{padding:8px 1px}.diary-book .story-collection button{padding:7px 10px;gap:3px}.diary-cat-list img{width:46px;height:46px}.diary-story{padding-top:8px}.diary-story p{font-size:14px;line-height:2.1}.talent-workbench{margin-top:8px;gap:14px}.talent-workbench .talent-tree{padding:5px!important}.talent-icon,.talent-root .talent-icon{width:39px!important;height:39px!important;border-radius:11px!important}.talent-icon img{width:34px!important;height:34px!important}.talent-root{margin-bottom:8px}.talent-connector{height:8px!important}.talent-detail{padding:9px}.talent-detail>img{width:50px;height:50px}.talent-detail h3{font-size:15px}.talent-detail p{font-size:11px;margin:5px 0}.talent-detail button{margin-top:8px;min-height:30px;padding:6px 10px;font-size:11px}.talent-workbench+.book-footer{margin-top:8px}.talent-workbench+.book-footer button{min-height:30px;padding:6px 12px;font-size:11px}.story-logo{height:101px}.story-guardians{height:115px}.story-illustration h2{font-size:17px!important}}
@media(max-width:700px){.squad-tip{display:none}.squad-drawer .cat-cards{gap:3px}.squad-drawer .cat-card strong,#lamp-btn>span{font-size:10px}.squad-drawer .cat-card .role,#lamp-btn>small{font-size:8px}.world>.squad-drawer{right:95px!important;left:7px!important}.world>.ultimate-button{right:8px!important;width:76px!important}.garden-drawer-head{gap:5px}.garden-progression-actions{gap:3px}.garden-progression-actions button{font-size:10px;padding:4px 6px}.garden-drawer-head>button{font-size:11px}.garden-tool-row button span{font-size:10px!important}.diary-leaf{padding:18px 13px 25px}.diary-book .journal-entry>b{font-size:11px}.diary-book .journal-entry strong{font-size:11px}.diary-portrait{width:95%}}
@media(orientation:portrait){.squad-drawer .cat-cards{grid-template-columns:repeat(7,minmax(0,1fr))!important}.world>.squad-drawer{right:8px!important}.world>.ultimate-button{bottom:173px!important}.garden-drawer-head{flex-wrap:wrap}.garden-progression-actions{width:100%;justify-content:space-between}.diary-book{grid-template-columns:1fr}.diary-left{display:none}.book-binding{display:none}.diary-right{border-radius:5px}.diary-dialog{max-width:calc(100vw - 62px)}#tactical-tip{top:64px!important;max-width:65vw!important}.talent-workbench{grid-template-columns:1fr 1fr;gap:8px}.story-logo{height:88px}.story-guardians{left:0;height:90px}.story-guardians img,.story-guardians img:nth-child(2){height:90px}.story-illustration{min-height:220px}.story-illustration h2{font-size:16px!important}}

#tactical-tip{transform:none!important}#lamp-btn{width:auto!important;min-width:0!important}.world>.squad-drawer .squad-body.single-page{grid-template-columns:1fr!important}.squad-body.single-page .cat-cards{grid-column:1!important}.squad-body.single-page .squad-page{display:none!important}
.top-actions #settings-btn{background:linear-gradient(145deg,#8298a9,#425c74)!important;border-color:#e7e8d880!important}.top-actions #settings-btn img{filter:drop-shadow(0 1px 1px #263b4b55)}
#house-hud{z-index:13!important}.pause-cover{margin:0!important}.squad-drawer.collapsed{padding-left:7px!important;padding-right:7px!important}
