/* The Keep is a place to browse. Gameplay and transaction sheets keep their controls. */
#screen-menu,#screen-sub{overflow-x:clip;background:radial-gradient(ellipse at 50% 12%,#35555440,transparent 65%),#102e35}
#screen-menu.screen,#screen-sub.screen{animation:none}
.keep-heading{display:flex;align-items:center;justify-content:space-between;margin:0 23px;height:49px}
.keep-heading h1{font:400 24px/1.1 Georgia,serif;color:#e9dcbf;letter-spacing:-.025em;margin:0}
.keep-heading .round-link{width:44px;height:44px;background:none;border:0;color:#b8c9be}
#screen-sub.is-hub #sub-content{padding:6px 0 0;overflow:hidden}
.hub-deck{position:relative;isolation:isolate;min-width:0;--scene-edge:#cbb987;--scene-glow:#b3d5a6}
.hub-topline{display:none}
.hub-viewport{position:relative;width:100%;height:clamp(280px,calc(100svh - 325px),500px);overflow:hidden;touch-action:pan-y pinch-zoom;cursor:grab;user-select:none;-webkit-user-select:none;perspective:900px}
#screen-menu .hub-viewport{height:clamp(230px,calc(100svh - 540px),330px)}
.hub-track{display:flex;width:100%;height:100%;padding:0 32px;box-sizing:border-box;will-change:transform;transition:transform .44s cubic-bezier(.22,.8,.2,1)}
.hub-track .hub-slide{flex:0 0 calc(100% - 0px);width:calc(100% - 0px);margin-right:12px;min-width:0;position:relative;background:none;border:0;box-shadow:none;transform:scale(.91) rotateY(8deg);transform-origin:center;opacity:.4;transition:transform .44s cubic-bezier(.22,.8,.2,1),opacity .3s;pointer-events:none}
.hub-track .hub-slide.is-current{transform:scale(1) rotateY(0);opacity:1;pointer-events:auto}
.hub-slide .hub-open{position:relative;display:block;width:100%;height:100%;min-height:0;padding:0;margin:0;background:none;border:0;border-radius:0;box-shadow:none;color:#f3e5c6;text-align:center;overflow:visible;transform:none!important;touch-action:pan-y pinch-zoom}
.hub-arch{display:block;position:absolute;inset:4px 0 100px;border:1px solid #c2b78688;border-radius:44% 44% 9px 9px / 27% 27% 9px 9px;overflow:hidden;isolation:isolate;box-shadow:0 9px 22px #001c2960,inset 0 0 0 4px #d4c49520;background:#2b4644;transition:border-color .25s}
.hub-slide .destination-art{position:absolute;inset:0;height:auto;border:0;display:block;background-image:linear-gradient(0deg,#102e3588,transparent 40%,#102e3500),linear-gradient(var(--destination-tint,transparent),var(--destination-tint,transparent)),var(--destination-image,url('../assets/remaster/keep.webp'));background-position:var(--destination-position,center);background-size:cover,cover,var(--destination-size,cover);transform:scale(1.035);transition:transform .65s ease}
.hub-slide.is-current .destination-art{transform:scale(1)}
.hub-arch:before{content:'';position:absolute;inset:7px;border:1px solid #efe0ae44;border-radius:inherit;z-index:1;pointer-events:none}
.hub-arch:after{content:'';position:absolute;inset:60% 0 0;background:linear-gradient(transparent,#153437);pointer-events:none}
.hub-site-mark{position:absolute;top:11px;left:calc(50% - 20px);width:40px;height:40px;border:1px solid #e2d1a57a;border-radius:50%;background:#173637d9;color:#eed5a0;display:grid;place-items:center;box-shadow:0 3px 12px #10252b80;z-index:2}
.hub-site-mark .game-icon{width:20px;height:20px}
.hub-light{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 90%,#b9edbc24,transparent 58%);animation:keep-light 5s ease-in-out infinite alternate}
.hub-light:after{content:'';position:absolute;left:22%;top:56%;width:3px;height:3px;border-radius:50%;background:#f8e4b6;box-shadow:110px -37px 0 #f7ebc075,46px 25px 0 #d1f0bd9e,145px 10px 0 #f7ebc091;animation:keep-motes 6s ease-in-out infinite alternate}
.hub-slide .destination-copy{position:absolute;bottom:0;left:-8px;right:-8px;display:flex;align-items:center;flex-direction:column;background:none;padding:0;height:93px;gap:5px}
.hub-slide .menu-title{font:400 clamp(25px,5vw,33px)/1.12 Georgia,serif;letter-spacing:-.035em;color:#f1e2bf;padding:0;margin:0}
.hub-slide .menu-sub{font:400 12px/1.4 var(--font-body);color:#b7ccc0;margin:0;padding:0;max-width:100%;white-space:normal}
.hub-enter{display:flex;align-items:center;gap:10px;color:#e6c78d;font:600 11px/1.2 var(--font-body);padding:7px 0 0}
.hub-enter .game-icon{width:15px;height:15px;transition:transform .2s}
.hub-open:hover .hub-enter .game-icon{transform:translateX(4px)}
.hub-open:hover .hub-arch{border-color:#ecd398}
.hub-company{position:absolute;bottom:99px;left:50%;width:min(100%,480px);height:auto;transform:translateX(-50%);pointer-events:none;filter:drop-shadow(0 4px 4px #06263275)}
.hub-controls{display:flex;align-items:center;justify-content:center;gap:22px;margin:0 0 5px;height:44px}
.hub-controls>button{display:grid;place-items:center;width:44px;height:44px;min-height:44px;border:0;background:none;color:#dec58c;border-radius:50%;transition:background .18s,transform .18s}
.hub-controls>button:hover:not(:disabled){background:#e3d2a316;transform:scale(1.06)}
.hub-controls>button:disabled{opacity:.2;cursor:default}
.hub-controls .game-icon{width:19px;height:19px}
.hub-counter{font:500 11px/1.2 var(--font-body);font-variant-numeric:tabular-nums;letter-spacing:.17em;color:#a3b7ae;min-width:52px;text-align:center}
.hub-shortcuts{display:flex;align-items:flex-start;justify-content:safe center;position:relative;gap:4px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;padding:5px 17px 8px;scroll-snap-type:x proximity;min-height:77px}
.hub-shortcuts::-webkit-scrollbar{display:none}
.hub-shortcuts button{flex:0 0 64px;display:flex;align-items:center;flex-direction:column;gap:7px;border:0;min-height:65px;padding:0 0 3px;background:none;color:#9bb8aa;font:500 10px/1.2 var(--font-body);scroll-snap-align:center}
.hub-token{display:grid;place-items:center;height:40px;width:40px;border:1px solid #82a59245;border-radius:50%;background:#8ea58c08;position:relative;transition:background .25s,border-color .25s,transform .3s}
.hub-token:before{content:'';position:absolute;left:calc(100% + 3px);width:20px;height:1px;top:50%;background:#8caf9844}
.hub-shortcuts button:last-child .hub-token:before{display:none}
.hub-token .game-icon{width:18px;height:18px}
.hub-shortcuts button[aria-pressed=true]{color:#ebd298}
.hub-shortcuts button[aria-pressed=true] .hub-token{border-color:#d8bf81;background:#bdac7623;transform:translateY(-3px);box-shadow:0 0 0 4px #b9c4930c}
.hub-shortcuts button:hover .hub-token{background:#bdac7628}
.hub-deck.is-dragging .hub-track{transition:none}.hub-deck.is-dragging .hub-viewport{cursor:grabbing}
.hub-open:focus-visible,.hub-viewport:focus-visible,.hub-controls button:focus-visible,.hub-shortcuts button:focus-visible{outline:2px solid #f1ce81;outline-offset:-3px;border-radius:8px}
.hub-links.menu-utilities{display:flex;flex-wrap:wrap;justify-content:center;gap:0 22px;margin:15px 22px 0;padding-top:6px;border-color:#829b8026}
.hub-links.menu-utilities>a,.hub-links.menu-utilities>button{width:auto;min-height:44px;font-size:12px;padding:6px 0;gap:8px}
#screen-menu .home-content{padding:0 20px}
.keep-loadout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:10px;border-top:1px solid #8d9e7c26;padding-top:13px;margin-top:4px}
#screen-menu .keep-loadout .party-summary{min-height:63px;padding:0;border:0;border-radius:0;background:none;gap:5px}
#screen-menu .keep-loadout .party-summary .remaster-hero{width:46px!important;height:54px!important}
#screen-menu .keep-loadout .party-summary-body{gap:6px;flex:1}
#screen-menu .keep-loadout .party-summary-body strong{font-size:12px;line-height:1.25;max-width:148px}
#screen-menu .keep-loadout .party-stats{gap:7px;flex-wrap:wrap}
#screen-menu .keep-loadout .party-stats>span{font-size:10px;gap:2px}
#screen-menu .keep-loadout .party-stats .game-icon{width:10px;height:10px}
.keep-loadout .party-chevron{display:none}
#screen-menu .keep-loadout .party-companions{min-height:63px;padding:0 0 0 12px;border:0;border-left:1px solid #8d9e7c26;border-radius:0;background:none;align-items:flex-start;justify-content:center;flex-direction:column;gap:5px}
#screen-menu .keep-loadout .party-companions .dim{font-size:10px;color:#d4c698}
#screen-menu .keep-loadout #party-pets img{width:28px;height:28px}
#screen-menu .keep-loadout #party-pets>span{font-size:10px;color:#b2c7b9}
#screen-menu .keep-progress{margin:5px 0 0}#screen-menu .keep-progress>summary{font-size:11px;min-height:36px;padding:8px 0}
#screen-menu .menu-footer{padding:4px 0 0;margin-top:0}
.game-nav{touch-action:pan-y pinch-zoom;border-radius:17px;padding:5px;background:#173a3ceF;backdrop-filter:blur(18px);box-shadow:0 6px 20px #00151f80}
.game-nav button{border-radius:11px;min-height:48px;transition:color .2s,background .2s}
.game-nav button[aria-current=page]{background:#b4c09c13}
.game-nav button[aria-current=page]:after{width:5px;height:5px;bottom:0;transform:rotate(45deg);border-radius:0}
[data-menu-back]{display:flex;align-items:center;gap:7px;min-width:64px}.topbar [data-menu-back] .game-icon{width:13px;height:13px}
#screen-sub:not(.is-hub) .sub-content>.card-list>.item-card{box-shadow:none;border-color:#91ac8d25;border-radius:10px}
@keyframes keep-light{from{opacity:.4}to{opacity:1}}
@keyframes keep-motes{from{transform:translateY(3px);opacity:.3}to{transform:translateY(-13px);opacity:.9}}
@media(min-width:760px){.hub-viewport{height:470px}#screen-menu .hub-viewport{height:330px}.hub-slide .menu-title{font-size:34px}.hub-slide .menu-sub{font-size:13px}.hub-company{width:430px}.hub-shortcuts{gap:12px}.hub-shortcuts button{flex-basis:72px;font-size:11px}.hub-controls{gap:28px}}
@media(max-width:359px){.keep-heading{height:45px;margin-inline:17px}.hub-shortcuts{justify-content:flex-start;padding-inline:15px;gap:3px}.hub-shortcuts button{flex-basis:57px}.hub-slide .menu-title{font-size:25px}.hub-slide .menu-sub{font-size:11px}#screen-menu .home-content{padding-inline:15px}.keep-loadout{gap:6px}#screen-menu .keep-loadout .party-summary-body strong{font-size:11px}#screen-menu .keep-loadout .party-summary .remaster-hero{width:35px!important;height:45px!important}#screen-menu .keep-loadout .party-stats{gap:4px}.hub-site-mark{width:32px;height:32px;left:calc(50% - 16px)}}
@media(max-height:550px) and (orientation:landscape){.hub-viewport,#screen-menu .hub-viewport{height:245px}.hub-shortcuts{min-height:74px}#screen-menu .keep-heading{height:38px}}
@media(prefers-reduced-motion:reduce){.hub-track,.hub-slide,.hub-token,.hub-enter .game-icon,.hub-slide .destination-art,.game-nav button{transition:none!important}.hub-light,.hub-light:after{animation:none}.hub-slide{transform:none!important}}

#screen-menu .hub-site-mark{display:none}

#keep-app-prompt .pwa-banner{position:static;transform:none;width:auto;min-height:44px;margin:12px 20px 0;padding:0;border:0;border-top:1px solid #8d9e7c26;border-radius:0;background:none;box-shadow:none;gap:10px}
#keep-app-prompt .pwa-txt{font-size:10px;color:#8cab9c}
#keep-app-prompt .pwa-go{background:none;border:0;box-shadow:none;color:#e3c78e;padding:5px;font-size:11px;min-width:44px}
#keep-app-prompt .pwa-x{font-size:14px;min-width:44px;min-height:44px}
