/* October reference: a framed portrait farm and a full-height landscape cockpit. */
.fm-wallet,.fm-orbit,.fm-header-mode,.fm-worlds,.fm-stage-ui,.fm-status,.fm-dock-tools,.fm-nav-rail,.fm-action-copy {display:none}
.fm-dock {display:contents}
.hp-farm-action>.fm-count {display:none}
.fm-count[hidden] {display:none!important}
.fm-count {display:inline-grid;place-items:center;min-width:19px;height:21px;padding:0 4px;border-radius:20px;background:#ff3c76;border:1px solid #ff9cba;color:white;font-size:13px;font-weight:800;line-height:1;box-shadow:0 2px 9px #ff29766b}
.fm-inventory {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.fm-inventory button {border:1px solid #598be077;border-radius:14px;background:#123276;padding:14px 8px;color:#fff;display:grid;gap:7px;justify-items:center;cursor:pointer}
.fm-inventory .hp-art {width:45px;height:45px}
.fm-inventory small {color:#c0d6ff;font-size:12px}
.fm-inventory .hp-empty {grid-column:1/-1}
body.fm-mobile {background:#06236e url('./assets/homepage/sky.webp') center top/cover fixed no-repeat}
.fm-mobile::before {background:radial-gradient(ellipse at 75% 5%,#2444ca35,transparent 40%),linear-gradient(#00144788,transparent 32%,#244aa400);z-index:-1}
.fm-mobile .hp-shell {padding-bottom:calc(92px + env(safe-area-inset-bottom,0px));background-image:radial-gradient(circle at 12% 5%,#e5ffffb3 0 1px,transparent 1.6px),radial-gradient(circle at 68% 18%,#98caff 0 .7px,transparent 1.4px),radial-gradient(circle at 42% 65%,#bdbdff 0 .8px,transparent 1.5px);background-size:173px 151px,113px 191px,211px 127px}
.fm-mobile .hp-header {display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:48px 38px;gap:12px 8px;padding:max(12px,env(safe-area-inset-top,0px)) 14px 10px;min-height:0;height:auto;position:relative}
.fm-mobile .hp-brand {max-width:calc(100% - 30px);gap:8px;grid-column:1;grid-row:1}
.fm-mobile .hp-brand strong {font-size:clamp(16px,4.7vw,21px);white-space:nowrap;letter-spacing:0}
.fm-mobile .hp-brand small {font-size:clamp(8px,2.35vw,11px);white-space:nowrap}
.fm-mobile .hp-logo {width:36px;height:38px;border-radius:11px;gap:6px;box-shadow:0 0 15px #306bfe,inset 0 0 7px #c8feff}
.fm-mobile .hp-logo i {height:22px;width:5px}
.fm-mobile .hp-logo i:first-child {height:18px}
.fm-mobile .hp-header-actions {grid-row:1;grid-column:2;z-index:2}
.fm-mobile .hp-header-actions>[data-command="help"],.fm-mobile .hp-header-actions>.hp-avatar-button,.fm-mobile .hp-header-actions>.hp-logout {display:none}
.fm-mobile .hp-header-actions .hp-icon-button {min-width:38px;height:38px;border-radius:11px;background:linear-gradient(130deg,#064284bb,#152c9de8);box-shadow:inset 0 0 10px #609aff21}
.fm-mobile .hp-header-actions .hp-icon-button .hp-icon {width:25px;height:25px}
.fm-mobile .hp-header #hpResources {display:none}
.fm-mobile .fm-wallet {display:grid;grid-column:1/-1;grid-row:2;grid-template-columns:minmax(108px,1.8fr) repeat(3,minmax(0,1fr));gap:6px;min-width:0}
.fm-wallet button {min-width:0;border:1px solid #598cee90;border-radius:12px;background:linear-gradient(120deg,#0c3d96bf,#122d8ce6);box-shadow:inset 0 1px 7px #689aff29;color:#fff;cursor:pointer}
.fm-owner {display:flex;align-items:center;padding:3px 5px;gap:5px;text-align:left}
.fm-owner img {width:27px;height:29px;object-fit:cover;border-radius:50%;background:radial-gradient(circle,#459cff,#36278f);border:1px solid #84b7ff}
.fm-owner>span {min-width:0;flex:1}
.fm-owner strong {display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px;line-height:1.5}
.fm-owner small {display:block;color:#00f2b5;font-size:9px}
.fm-owner>.hp-icon {width:10px;height:13px;color:#a4cdff}
.fm-balance {display:flex;justify-content:center;align-items:center;padding:3px;gap:3px;font-variant-numeric:tabular-nums}
.fm-balance .hp-art {width:19px;height:19px}
.fm-balance strong {font-size:clamp(10px,2.8vw,13px);white-space:nowrap}
.fm-balance>.hp-icon {width:7px;height:12px;color:#afd9ff}
.fm-mobile .fm-orbit {display:block;position:absolute;right:61px;top:18px;color:#e2e4ff;font-family:KaiTi,STKaiti,serif;font-size:10px;line-height:1.5;transform:rotate(-12deg);text-shadow:0 0 7px #a087ff;pointer-events:none;opacity:.86}
.fm-orbit::before {content:"";position:absolute;inset:-5px -8px;border:1px solid #8268ff55;border-radius:50%;transform:rotate(-10deg);box-shadow:0 0 12px #8745fd55}
.fm-orbit i {color:#ffe48d;font-style:normal}
.fm-mobile .hp-layout,.fm-mobile .hp-shell[data-page="farm"] .hp-layout {display:block;padding:0 13px 12px;max-width:none;width:100%}
.fm-mobile .hp-farm-page {display:flex;flex-direction:column;gap:10px;min-height:0;height:auto}
.fm-mobile .hp-mobile-intro,.fm-mobile #hpMaps,.fm-mobile .hp-farm-right,.fm-mobile .hp-tip,.fm-mobile .hp-sidebar {display:none}
.fm-mobile .fm-worlds {display:grid;grid-template-columns:1.18fr 1fr 1fr;gap:6px;height:54px;min-width:0;margin:0 1px}
.fm-worlds button {min-width:0;padding:4px;display:flex;align-items:center;gap:3px;text-align:left;color:#fff;border:1px solid #689cf080;border-radius:13px;background:linear-gradient(125deg,#144796e6,#142b84e6);cursor:pointer}
.fm-worlds img {width:38%;height:43px;object-fit:contain;flex-shrink:0}
.fm-worlds span {min-width:0;flex:1}
.fm-worlds strong {display:block;font-size:clamp(9px,2.7vw,13px);white-space:nowrap;letter-spacing:0}
.fm-worlds small {display:block;margin-top:4px;font-size:clamp(8px,2.2vw,10px);color:#c8d9ff;white-space:nowrap}
.fm-worlds .hp-icon {width:10px;height:14px;flex-shrink:0}
.fm-worlds button.selected {border-color:#a7ffff;background:linear-gradient(120deg,#13baf4d9,#134dffe8);box-shadow:inset 0 0 12px #55efffbd,0 0 7px #18ceffc2}
.fm-mobile .hp-farm-stage {height:clamp(326px,calc(100dvh - 422px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px)),740px);min-height:0;margin:0 -1px;position:relative;overflow:visible;border:1px solid #a8eaff;border-radius:23px;background:linear-gradient(160deg,#086bef42,#487aff19 65%,#9ed5ff00);box-shadow:inset 0 2px 13px #96ddff5c,0 0 13px #488aff66}
.fm-mobile .hp-farm-stage #sceneWrap {position:absolute!important;inset:0!important;width:100%;height:100%;min-height:0;border-radius:23px;overflow:hidden;touch-action:none}
.fm-mobile .hp-farm-stage .camera-controls,.fm-mobile .three-character-name,.fm-mobile .hp-farm-stage .scene-status,.fm-mobile .hp-farm-stage .map-hint {display:none}
.fm-mobile .fm-stage-ui {display:block;position:absolute;inset:0;pointer-events:none;z-index:10}
.fm-motto {position:absolute;top:19px;left:18px;margin:0;font-family:KaiTi,STKaiti,serif;font-size:clamp(14px,4vw,24px);font-style:italic;line-height:1.5;transform:rotate(-12deg);color:white;text-shadow:0 0 9px #267bff}
.fm-motto::after {content:"";display:block;width:80%;height:9px;border-top:1px solid #deefff;border-radius:50%;margin-top:3px;transform:rotate(-8deg)}
.fm-stage-tools {position:absolute;right:8px;top:9px;display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:auto}
.fm-stage-tools button,.fm-header-mode button {color:#fff;border:1px solid #6c9ceeaa;background:linear-gradient(120deg,#08438bcc,#14318cdd);border-radius:13px;box-shadow:inset 0 0 12px #4c8bdf2e;cursor:pointer}
.fm-stage-tools .fm-orientation {width:62px;min-height:47px;padding:6px 2px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:3px;font-size:10px}
.fm-orientation .hp-icon {width:25px;height:20px}
.fm-stage-tools .fm-orientation small {display:none}
.fm-zoom {width:45px;padding:4px;border:1px solid #6899ef80;border-radius:15px;background:linear-gradient(135deg,#084ca2e8,#102c7fe8)}
.fm-zoom button {border:0;border-radius:0;background:none;box-shadow:none;display:block;width:100%;min-height:37px;font-size:26px;line-height:1;padding:0}
.fm-zoom .fm-zoom-value {font-size:11px;min-height:32px;border-top:1px solid #86aaff44;border-bottom:1px solid #86aaff44}
.fm-rotate {width:45px;min-height:46px;padding:6px 2px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:10px}
.fm-rotate .hp-icon {width:23px;height:21px}
.fm-scene-hint {position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:#f6fcfff0;color:#17428b;border-radius:17px;padding:7px 12px;font-size:11px;font-weight:700;white-space:nowrap;box-shadow:0 3px 15px #1865bd35;opacity:0;animation:fm-hint 8s ease 1s both}
@keyframes fm-hint {0%,85%,100%{opacity:0}8%,70%{opacity:1}}
.fm-mobile .fm-status {display:grid;grid-template-columns:1.04fr 1fr;gap:14px;z-index:12;margin:-22px 6px 0;position:relative}
.fm-status button {display:flex;align-items:center;gap:7px;min-width:0;min-height:48px;padding:7px 9px;text-align:left;border:1px solid #a0cfff;border-radius:17px;background:linear-gradient(120deg,#0f65bce8,#203999ed);box-shadow:inset 0 0 10px #71a3f62e;color:#fff;cursor:pointer}
.fm-status .hp-art {width:30px;height:30px}
.fm-status button>span:not(.hp-art) {min-width:0;flex:1}
.fm-status strong {display:flex;align-items:center;gap:3px;font-size:12px;white-space:nowrap}
.fm-status small {display:block;margin-top:4px;font-size:10px;color:#deedff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fm-status button>.hp-icon {width:12px;height:16px}
.fm-status .fm-count {height:17px;min-width:17px;font-size:11px}
.fm-mobile .fm-dock {display:block}
.fm-mobile .hp-farm-actions {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;min-height:0;height:85px;padding:0;margin:0}
.fm-mobile .hp-farm-action {position:relative;display:flex;min-height:0;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:7px 2px;border:1px solid #e6ffff;border-radius:20px;box-shadow:inset 0 0 12px #bcefff94,0 0 12px #448fff75}
.fm-mobile .hp-farm-action>span:not(.hp-art):not(.fm-action-copy) {display:none}
.fm-mobile .hp-farm-action>.fm-action-copy {display:block;text-align:center}
.fm-mobile .hp-farm-action>.hp-art {width:30px;height:30px}
.fm-mobile .hp-farm-action strong {font-size:16px;line-height:1.1}
.fm-mobile .hp-farm-action small {display:block;font-size:10px;margin-top:5px;white-space:nowrap;font-weight:400}
.fm-mobile .hp-farm-action>.fm-count {display:inline-grid;position:absolute;top:3px;right:5px}
.fm-mobile .hp-farm-action.plant {background:linear-gradient(135deg,#36ffc1,#00b783 64%,#039fbb)}
.fm-mobile .hp-farm-action.water {background:linear-gradient(135deg,#12dfff,#0871fe 58%,#1927e7)}
.fm-mobile .hp-farm-action.harvest {background:linear-gradient(135deg,#fff16a,#ffb320 58%,#ff8421)}
.fm-mobile .hp-farm-action.visit {background:linear-gradient(135deg,#da89ff,#8b32fa 58%,#4d22df)}
.fm-mobile .hp-bottom-nav {height:calc(76px + env(safe-area-inset-bottom,0px));padding:6px 16px calc(8px + env(safe-area-inset-bottom,0px));border-radius:27px 27px 0 0;border-color:#709efa8c;background:linear-gradient(110deg,#063977f5,#072578f5 50%,#091e67f5);box-shadow:inset 0 1px 8px #74a4ff20}
.fm-mobile .hp-bottom-nav button {font-size:13px;gap:4px;border-radius:17px;position:relative}
.fm-mobile .hp-bottom-nav .hp-icon {width:25px;height:25px}
.fm-mobile .hp-bottom-nav button.active {background:linear-gradient(130deg,#1b7aff,#4827f9);box-shadow:inset 0 0 11px #84a9ff,0 0 12px #6270ffa0;border-color:#8ab7ff}
.fm-unread {position:relative}
.fm-unread::after,.fm-has-tasks .hp-bottom-nav [data-view="tasks"]::after,.fm-has-tasks .fm-nav-rail [data-view="tasks"]::after {content:"";position:absolute;right:3px;top:1px;width:9px;height:9px;border-radius:50%;background:#ff4382;box-shadow:0 0 5px #f473bb}
.fm-has-tasks .hp-bottom-nav [data-view="tasks"]::after {right:calc(50% - 19px);top:1px}
.fm-mobile .hp-footer {display:none}
body.fm-landscape {overflow:hidden}
.fm-landscape .hp-shell {height:100dvh;min-height:0;padding:0;overflow:hidden}
.fm-landscape .hp-header {height:57px;min-height:0;padding:7px max(10px,env(safe-area-inset-right,0px)) 5px max(10px,env(safe-area-inset-left,0px));display:flex;flex-wrap:nowrap;gap:10px;align-items:center;max-width:none}
.fm-landscape .hp-brand {flex:0 0 25%;max-width:none;gap:8px;min-width:0}
.fm-landscape .hp-brand strong {font-size:clamp(13px,1.8vw,22px)}
.fm-landscape .hp-brand small {font-size:clamp(7px,.92vw,11px)}
.fm-landscape .hp-logo {width:33px;height:37px;flex-shrink:0}
.fm-landscape .fm-wallet {display:flex;gap:6px;flex:1;height:35px;min-width:0}
.fm-landscape .fm-balance {flex:1;gap:5px;padding:4px;order:0}
.fm-landscape .fm-balance strong {font-size:clamp(10px,1.55vw,17px)}
.fm-landscape .fm-balance .hp-art {width:22px;height:22px}
.fm-landscape .fm-owner {order:1;flex:1.35;margin-left:4px}
.fm-landscape .fm-owner strong {font-size:9px}
.fm-landscape .fm-owner .hp-icon {display:none}
.fm-landscape .hp-header-actions {order:2;flex:0 0 auto}
.fm-landscape .fm-header-mode {display:block;order:3;flex:0 0 auto}
.fm-header-mode .fm-orientation {display:flex;align-items:center;gap:7px;padding:6px 8px;font-size:10px;min-height:36px;background:linear-gradient(130deg,#064da0,#4f2bf4)}
.fm-header-mode .fm-orientation small {display:block;color:#d0dfff;font-size:8px;margin-top:2px}
.fm-landscape .fm-orbit {top:83px;right:6%;font-size:15px;opacity:1;z-index:12}
.fm-landscape .fm-orbit::before {inset:-21px -28px;transform:rotate(-12deg);background:radial-gradient(ellipse,#1025969c,#051c6b00 70%);border-color:#9185ff69;box-shadow:0 0 20px #496bff6b}
.fm-landscape .hp-layout,.fm-landscape .hp-shell[data-page="farm"] .hp-layout {padding:0;position:relative;height:calc(100dvh - 57px)}
.fm-landscape .hp-farm-page {position:relative;display:block;height:100%;margin:0}
.fm-landscape .fm-worlds {position:absolute;left:26%;right:26%;top:1px;height:48px;z-index:15;gap:5px}
.fm-landscape .fm-worlds button {border-radius:12px;padding:4px}
.fm-landscape .fm-worlds img {height:37px}
.fm-landscape .fm-worlds strong {font-size:clamp(9px,1.2vw,14px)}
.fm-landscape .fm-worlds small {font-size:clamp(8px,1vw,11px);margin-top:3px}
.fm-landscape .hp-farm-stage {position:absolute;left:1%;top:7px;width:73%;height:calc(100% - 7px);margin:0;border:0;box-shadow:none;background:none;border-radius:0}
.fm-landscape .hp-farm-stage #sceneWrap {border-radius:0}
.fm-landscape .fm-stage-tools {display:none}
.fm-landscape .fm-motto {left:3%;top:24px;font-size:clamp(15px,2.5vw,26px)}
.fm-landscape .fm-scene-hint {top:44%;font-size:10px;padding:7px 12px}
.fm-landscape .fm-dock {position:absolute;right:max(12px,env(safe-area-inset-right,0px));top:82px;bottom:15px;width:24%;display:flex;flex-direction:column;gap:10px;z-index:20;padding:10px;border:1px solid #8ee9ff;border-radius:20px;background:linear-gradient(130deg,#0b78cbe0,#06368cea);box-shadow:inset 0 0 13px #58caff7d,0 0 14px #458dff99}
.fm-landscape .hp-farm-actions {height:auto;min-height:0;flex:1;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:7px}
.fm-landscape .hp-farm-action {border-radius:17px;gap:3px;padding:5px 1px}
.fm-landscape .hp-farm-action>.hp-art {width:clamp(23px,4vw,43px);height:clamp(23px,4vw,43px)}
.fm-landscape .hp-farm-action strong {font-size:clamp(13px,1.9vw,21px)}
.fm-landscape .hp-farm-action small {font-size:clamp(8px,1.1vw,12px);margin-top:3px}
.fm-landscape .fm-dock-tools {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;flex:0 0 44px}
.fm-landscape-zoom {display:none}
.fm-landscape .fm-landscape-zoom {display:flex;position:absolute;bottom:68px;left:8px;right:8px;border:1px solid #96ceff;border-radius:14px;background:#08266df5;box-shadow:0 4px 15px #001134aa;z-index:2;padding:4px}
.fm-landscape-zoom button {flex:1;min-height:40px;border:0;border-radius:10px;background:transparent;color:#fff;font-size:20px}
.fm-landscape-zoom .fm-zoom-value {font-size:13px}
.fm-dock-tools button {min-width:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px;background:none;border:0;color:#d9e8ff;font-size:9px;padding:0;cursor:pointer}
.fm-dock-tools .hp-icon {width:29px;height:29px;border:1px solid #81aaff60;border-radius:9px;padding:5px;box-sizing:content-box;background:#082b82aa}
.fm-landscape .fm-status {position:absolute;left:9%;bottom:15px;display:flex;margin:0;width:24%;z-index:15}
.fm-landscape .fm-status .fm-storage-status {display:none}
.fm-landscape .fm-status .fm-harvest-status {width:100%;min-height:45px;padding:6px 10px}
.fm-landscape .fm-status strong {font-size:11px}
.fm-landscape .fm-status small {font-size:10px}
.fm-landscape .fm-nav-rail {position:absolute;left:max(12px,env(safe-area-inset-left,0px));bottom:15px;display:grid;gap:7px;z-index:20}
.fm-nav-rail button {display:grid;justify-items:center;gap:3px;width:43px;min-height:45px;position:relative;padding:6px 3px;border:1px solid #82b4ef;border-radius:12px;background:linear-gradient(120deg,#194b9f,#18308ddd);color:white;font-size:10px;cursor:pointer}
.fm-nav-rail .hp-icon {width:21px;height:21px}
.fm-landscape .hp-bottom-nav {display:none}
.fm-landscape .hp-toast {bottom:15px;z-index:160;font-size:12px;max-width:60vw}
@media(max-width:370px) and (orientation:portrait) {
  .fm-mobile .hp-header {padding-left:10px;padding-right:10px}
  .fm-mobile .fm-orbit {display:none}
  .fm-mobile .hp-brand {max-width:none}
  .fm-mobile .fm-wallet {grid-template-columns:minmax(97px,1.6fr) repeat(3,minmax(0,1fr));gap:4px}
  .fm-wallet .fm-balance>.hp-icon {display:none}
  .fm-owner img {width:24px;height:26px}
  .fm-owner strong {font-size:8px}
  .fm-mobile .hp-layout,.fm-mobile .hp-shell[data-page="farm"] .hp-layout {padding-left:10px;padding-right:10px}
  .fm-worlds .hp-icon {display:none}
  .fm-worlds strong {font-size:9px}
  .fm-worlds small {font-size:8px}
  .fm-mobile .hp-farm-stage {height:326px}
  .fm-status .hp-art {width:24px;height:26px}
  .fm-status button {gap:4px;padding:6px}
  .fm-status strong {font-size:11px}
  .fm-mobile .hp-farm-action small {font-size:9px}
}
@media(orientation:landscape) and (max-height:380px) {
  .fm-landscape .hp-header {height:49px;padding-top:5px;gap:7px}
  .fm-landscape .hp-layout,.fm-landscape .hp-shell[data-page="farm"] .hp-layout {height:calc(100dvh - 49px)}
  .fm-landscape .fm-dock {top:64px;bottom:9px;padding:8px;gap:7px}
  .fm-landscape .fm-orbit {top:70px;font-size:12px}
  .fm-landscape .fm-dock-tools {flex-basis:36px;gap:3px}
  .fm-dock-tools .hp-icon {width:22px;height:22px;padding:4px}
  .fm-landscape .hp-farm-action>.hp-art {width:23px;height:23px}
  .fm-landscape .hp-farm-action small {font-size:8px;margin-top:2px}
}
@media(prefers-reduced-motion:reduce) {.fm-scene-hint{animation:none}}
