/* FPS JAPAN canonical front page — 0.4.77-beta */
:where(.fpsj-theme .fpsj-front-v4) { margin:0; background:#050b14; overflow:hidden; }
:where(.fpsj-theme .fpsj-front-v4 > .wp-block-template-part) { margin:0; }
:where(.fpsj-theme .fpsj-front-v4 > .wp-block-template-part > *) { margin-block-start:0; margin-block-end:0; }

/* Hero */
:where(.fpsj-theme .fpsj-front-hero) {
  position:relative; padding:4.6rem 0 2.2rem; overflow:hidden; isolation:isolate;
  background:#050b14;
}
:where(.fpsj-theme .fpsj-front-hero)::before {
  content:""; position:absolute; z-index:0; inset:0; pointer-events:none;
  background-image:
    radial-gradient(circle at 50% -10%,rgba(52,120,255,.22),transparent 34rem),
    radial-gradient(circle at 78% 20%,rgba(49,215,255,.075),transparent 21rem),
    linear-gradient(rgba(91,128,180,.12) 1px,transparent 1px),
    linear-gradient(90deg,rgba(91,128,180,.12) 1px,transparent 1px);
  background-size:auto,auto,36px 36px,36px 36px;
  background-repeat:no-repeat,no-repeat,repeat,repeat;
  -webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 30%,rgba(0,0,0,.88) 40%,rgba(0,0,0,.58) 50%,rgba(0,0,0,.24) 59%,rgba(0,0,0,.06) 65%,transparent 69%,transparent 100%);
  mask-image:linear-gradient(to bottom,#000 0%,#000 30%,rgba(0,0,0,.88) 40%,rgba(0,0,0,.58) 50%,rgba(0,0,0,.24) 59%,rgba(0,0,0,.06) 65%,transparent 69%,transparent 100%);
}
:where(.fpsj-theme .fpsj-front-hero)::after { content:none; display:none; }
:where(.fpsj-theme .fpsj-front-hero__inner) { position:relative; z-index:1; text-align:center; }
:where(.fpsj-theme .fpsj-front-hero__kicker) {
  display:inline-flex; margin:0 auto .95rem; padding:.42rem .72rem; border:1px solid rgba(49,215,255,.28); border-radius:999px;
  background:rgba(8,23,40,.74); color:#78e6ff; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:.66rem; letter-spacing:.12em;
}
:where(.fpsj-theme .fpsj-front-hero__title) { margin:0!important; color:#f6f9ff; font-size:clamp(1.3rem,5vw,4.9rem)!important; line-height:1.03; letter-spacing:-.045em; white-space:nowrap; }
:where(.fpsj-theme .fpsj-front-hero__lead) { max-width:760px; margin:1.15rem auto 0; color:#9db0ca; font-size:clamp(.9rem,1.25vw,1.08rem); line-height:1.85; }
:where(.fpsj-theme .fpsj-front-hero__search) { max-width:820px; margin:1.8rem auto 0; }
:where(.fpsj-theme .fpsj-front-hero__search .wp-block-search__inside-wrapper) { min-height:58px; padding:5px; border:1px solid rgba(89,127,182,.34); border-radius:13px; background:#0d1b2f; box-shadow:0 16px 54px rgba(0,0,0,.22); }
:where(.fpsj-theme .fpsj-front-hero__search .wp-block-search__input) { padding:0 1rem; border:0!important; outline:0; background:#0d1b2f!important; color:#eef5ff; font-size:.9rem; }


/* Quick access */
:where(.fpsj-theme .fpsj-front-quick-access) { padding:0 0 3.35rem; background:#050b14; }
:where(.fpsj-theme .fpsj-front-access-grid) { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:.68rem; }
:where(.fpsj-theme .fpsj-front-card) { box-sizing:border-box; color:#f4f8ff; text-decoration:none; }
:where(.fpsj-theme .fpsj-front-card--access) {
  position:relative; min-height:112px; padding:1rem 1rem .92rem; border:1px solid rgba(66,103,157,.28); border-radius:11px; background:linear-gradient(145deg,#0a1525,#08111e); overflow:hidden;
  transition:transform .18s ease,border-color .18s ease,background .18s ease;
}
:where(.fpsj-theme .fpsj-front-card--access)::after { content:""; position:absolute; right:-34px; bottom:-44px; width:100px; height:100px; border-radius:50%; background:rgba(52,120,255,.08); }
:where(.fpsj-theme .fpsj-front-card--access:hover) { transform:translateY(-2px); border-color:rgba(49,215,255,.44); background:linear-gradient(145deg,#0d1b2e,#091522); }
:where(.fpsj-theme .fpsj-front-card--access .fpsj-front-card__label) { display:block; margin-bottom:.55rem; color:#738cac; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:.58rem; letter-spacing:.09em; }
:where(.fpsj-theme .fpsj-front-card--access strong) { display:block; font-size:1rem; }
:where(.fpsj-theme .fpsj-front-card--access small) { display:block; max-width:90%; margin-top:.28rem; color:#7f92ae; font-size:.66rem; line-height:1.45; }
:where(.fpsj-theme .fpsj-front-card--access b) { position:absolute; right:.8rem; top:.8rem; color:#5e7698; font-size:.9rem; }

/* Shared section tightening */
:where(.fpsj-theme .fpsj-front-v4 .fpsj-v3-section) { padding-block:3.5rem; }
:where(.fpsj-theme .fpsj-front-v4 .fpsj-v3-section + .fpsj-v3-section) { border-top:1px solid rgba(55,88,134,.12); }

/* Featured tools */
:where(.fpsj-theme .fpsj-front-tools) { position:relative; background:linear-gradient(180deg,#08111e,#060d18); }
:where(.fpsj-theme .fpsj-front-tool-stage) { gap:1rem; }
:where(.fpsj-theme .fpsj-front-tools .fpsj-v3-tool-card) { min-height:310px; border-color:rgba(74,124,196,.34); box-shadow:0 18px 56px rgba(0,0,0,.18); }
:where(.fpsj-theme .fpsj-front-tools .fpsj-v3-tool-card__copy > strong) { font-size:clamp(2.35rem,3.6vw,3.55rem); }
:where(.fpsj-theme .fpsj-front-tools .fpsj-v3-tool-card__copy p) { max-width:32rem; font-size:.79rem; line-height:1.72; }
:where(.fpsj-theme .fpsj-front-tool-subgrid) { margin-top:.8rem; opacity:.86; }

/* Game hub */
:where(.fpsj-theme .fpsj-front-games) { background:#050b14; }
:where(.fpsj-theme .fpsj-front-game-grid) { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:.74rem; }
:where(.fpsj-theme .fpsj-front-card--game) { position:relative; display:flex; flex-direction:column; justify-content:space-between; min-height:226px; padding:0; overflow:hidden; border:1px solid rgba(79,115,165,.28); border-radius:12px; background:#0a1423; transition:transform .2s ease,border-color .2s ease; }
:where(.fpsj-theme .fpsj-front-card--game:hover) { transform:translateY(-3px); border-color:rgba(255,255,255,.28); }
:where(.fpsj-theme .fpsj-front-game-card__visual) { position:relative; display:grid; place-items:center; height:165px; overflow:hidden; background:linear-gradient(145deg,#162741,#0b1421); }
:where(.fpsj-theme .fpsj-front-game-card__visual)::before { content:""; position:absolute; inset:0; background:radial-gradient(circle at 70% 20%,rgba(255,255,255,.15),transparent 7rem),linear-gradient(135deg,transparent,rgba(255,255,255,.04)); }
:where(.fpsj-theme .fpsj-front-game-card__visual i) { position:relative; z-index:1; color:rgba(245,249,255,.92); font-style:normal; font-size:clamp(2rem,3vw,3rem); font-weight:950; letter-spacing:-.08em; text-shadow:0 10px 40px rgba(0,0,0,.35); }
:where(.fpsj-theme .fpsj-front-game-card__copy) { display:block; padding:.82rem .9rem .9rem; }
:where(.fpsj-theme .fpsj-front-game-card__copy strong) { display:block; color:#eef5ff; font-size:.88rem; }
:where(.fpsj-theme .fpsj-front-game-card__copy small) { display:block; margin-top:.22rem; color:#697f9f; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:.53rem; letter-spacing:.06em; }
:where(.fpsj-theme .fpsj-front-card--game > b) { position:absolute; right:.75rem; bottom:.78rem; color:#657b9c; }
:where(.fpsj-theme .fpsj-front-game-card--valorant .fpsj-front-game-card__visual) { background:linear-gradient(145deg,#763842,#171522 62%,#0c1320); }
:where(.fpsj-theme .fpsj-front-game-card--apex .fpsj-front-game-card__visual) { background:linear-gradient(145deg,#7b3126,#2a1718 58%,#0c1320); }
:where(.fpsj-theme .fpsj-front-game-card--cs2 .fpsj-front-game-card__visual) { background:linear-gradient(145deg,#72542a,#1d2025 62%,#0c1320); }
:where(.fpsj-theme .fpsj-front-game-card--ow2 .fpsj-front-game-card__visual) { background:linear-gradient(145deg,#b3c1cc,#465467 54%,#152033); }
:where(.fpsj-theme .fpsj-front-game-card--fortnite .fpsj-front-game-card__visual) { background:linear-gradient(145deg,#405cb7,#272954 56%,#0c1320); }

/* Database live-data showcase / v0.4.97 */
:where(.fpsj-theme .fpsj-front-database) {
  position:relative;
  background:
    radial-gradient(circle at 16% 8%,rgba(52,120,255,.075),transparent 22rem),
    radial-gradient(circle at 84% 75%,rgba(140,99,255,.055),transparent 24rem),
    linear-gradient(180deg,#07101c,#06101a);
}
:where(.fpsj-theme .fpsj-front-database-grid) {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.9rem;
  align-items:stretch;
}
:where(.fpsj-theme .fpsj-front-database-panel) {
  --fpsj-db-accent:#3478ff;
  position:relative;
  display:flex;
  flex-direction:column;
  min-width:0;
  min-height:468px;
  padding:1rem;
  overflow:hidden;
  border:1px solid rgba(69,109,167,.34);
  border-radius:14px;
  background:linear-gradient(155deg,rgba(14,29,50,.98),rgba(7,16,29,.98));
  box-shadow:0 18px 46px rgba(0,0,0,.12);
}
:where(.fpsj-theme .fpsj-front-database-panel)::before {
  content:"";
  position:absolute;
  inset:0 auto auto 0;
  width:100%;
  height:2px;
  background:linear-gradient(90deg,var(--fpsj-db-accent),transparent 72%);
  opacity:.92;
}
:where(.fpsj-theme .fpsj-front-database-panel--setting) { --fpsj-db-accent:#31d7ff; }
:where(.fpsj-theme .fpsj-front-database-panel--device) { --fpsj-db-accent:#8c63ff; }

:where(.fpsj-theme .fpsj-front-database-panel__head) {
  display:flex;
  align-items:center;
  gap:.78rem;
}
:where(.fpsj-theme .fpsj-front-database-panel__mark) {
  flex:0 0 42px;
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  border:1px solid color-mix(in srgb,var(--fpsj-db-accent) 42%,transparent);
  border-radius:10px;
  background:color-mix(in srgb,var(--fpsj-db-accent) 8%,transparent);
  color:color-mix(in srgb,var(--fpsj-db-accent) 72%,#f7faff);
}
:where(.fpsj-theme .fpsj-front-database-panel__mark svg),
:where(.fpsj-theme .fpsj-front-database-owner-pending svg) {
  width:18px;
  height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.75;
  stroke-linecap:round;
  stroke-linejoin:round;
}
:where(.fpsj-theme .fpsj-front-database-panel__identity) { min-width:0; }
:where(.fpsj-theme .fpsj-front-database-panel__eyebrow) {
  display:block;
  color:#7e93b1;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.54rem;
  font-weight:800;
  letter-spacing:.1em;
}
:where(.fpsj-theme .fpsj-front-database-panel__head h3) {
  margin:.18rem 0 0;
  color:#f2f6fc;
  font-size:1.05rem;
  line-height:1.2;
  letter-spacing:-.02em;
}
:where(.fpsj-theme .fpsj-front-database-panel__description) {
  min-height:2.55rem;
  margin:.72rem 0 .85rem;
  color:#8295b0;
  font-size:.68rem;
  line-height:1.62;
}

:where(.fpsj-theme .fpsj-front-database-panel__dataset) {
  padding-top:.76rem;
  border-top:1px solid rgba(66,103,157,.2);
}
:where(.fpsj-theme .fpsj-front-database-panel__dataset-head) {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:.8rem;
  margin-bottom:.52rem;
}
:where(.fpsj-theme .fpsj-front-database-panel__dataset-head > span) {
  color:#7f96b4;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.51rem;
  font-weight:850;
  letter-spacing:.105em;
}
:where(.fpsj-theme .fpsj-front-database-panel__dataset-head > small) {
  color:#58718f;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.47rem;
  letter-spacing:.04em;
  white-space:nowrap;
}
:where(.fpsj-theme .fpsj-front-database-panel__dataset-head > small b) {
  margin-right:.18rem;
  color:color-mix(in srgb,var(--fpsj-db-accent) 72%,#f7faff);
  font-size:.62rem;
}

:where(.fpsj-theme .fpsj-front-database-metrics) {
  display:grid;
  gap:.38rem;
}
:where(.fpsj-theme .fpsj-front-database-metric-row) {
  min-width:0;
  padding:.6rem .65rem .55rem;
  border:1px solid rgba(61,95,145,.2);
  border-radius:8px;
  background:rgba(5,12,22,.43);
}
:where(.fpsj-theme .fpsj-front-database-metric-row__top) {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:.65rem;
}
:where(.fpsj-theme .fpsj-front-database-metric-row__top > strong) {
  min-width:0;
  overflow:hidden;
  color:#c8d5e6;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.57rem;
  font-weight:800;
  letter-spacing:.035em;
  text-overflow:ellipsis;
  white-space:nowrap;
}
:where(.fpsj-theme .fpsj-front-database-metric-row__value),
:where(.fpsj-theme .fpsj-front-database-metric-row__pending) {
  display:flex;
  align-items:baseline;
  justify-content:flex-end;
  gap:.3rem;
  flex:0 0 auto;
}
:where(.fpsj-theme .fpsj-front-database-metric-row__value b) {
  color:#f5f9ff;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.92rem;
  line-height:1;
}
:where(.fpsj-theme .fpsj-front-database-metric-row__value small),
:where(.fpsj-theme .fpsj-front-database-metric-row__pending small) {
  color:#617b9d;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.42rem;
  font-weight:750;
  letter-spacing:.06em;
}
:where(.fpsj-theme .fpsj-front-database-metric-row__pending b) {
  color:#536c8d;
  font-size:.88rem;
}
:where(.fpsj-theme .fpsj-front-database-metric-row__track) {
  display:block;
  height:3px;
  margin-top:.48rem;
  overflow:hidden;
  border-radius:99px;
  background:rgba(65,99,148,.16);
}
:where(.fpsj-theme .fpsj-front-database-metric-row__track > i) {
  display:block;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg,var(--fpsj-db-accent),color-mix(in srgb,var(--fpsj-db-accent) 42%,transparent));
  box-shadow:0 0 12px color-mix(in srgb,var(--fpsj-db-accent) 24%,transparent);
}
:where(.fpsj-theme .fpsj-front-database-metric-row.is-unavailable) {
  opacity:.72;
}
:where(.fpsj-theme .fpsj-front-database-metric-row.is-unavailable .fpsj-front-database-metric-row__track > i) {
  width:0!important;
}

:where(.fpsj-theme .fpsj-front-database-device-list) {
  display:grid;
  gap:.38rem;
}
:where(.fpsj-theme .fpsj-front-database-device-row) {
  display:grid;
  grid-template-columns:28px minmax(0,1fr) auto;
  align-items:center;
  gap:.5rem;
  min-height:54px;
  padding:.5rem .58rem;
  border:1px solid rgba(61,95,145,.2);
  border-radius:8px;
  background:rgba(5,12,22,.43);
  text-decoration:none;
  transition:border-color .18s ease,transform .18s ease,background .18s ease;
}
:where(.fpsj-theme .fpsj-front-database-device-row:hover) {
  transform:translateX(2px);
  border-color:color-mix(in srgb,var(--fpsj-db-accent) 42%,transparent);
  background:rgba(8,18,32,.72);
}
:where(.fpsj-theme .fpsj-front-database-device-row__rank) {
  display:grid;
  place-items:center;
  width:28px;
  height:28px;
  border:1px solid color-mix(in srgb,var(--fpsj-db-accent) 22%,transparent);
  border-radius:7px;
  color:color-mix(in srgb,var(--fpsj-db-accent) 68%,#f7faff);
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.5rem;
  font-weight:900;
}
:where(.fpsj-theme .fpsj-front-database-device-row__name) {
  display:block;
  min-width:0;
}
:where(.fpsj-theme .fpsj-front-database-device-row__name small) {
  display:block;
  margin-bottom:.08rem;
  overflow:hidden;
  color:#617a9c;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.42rem;
  font-weight:750;
  letter-spacing:.055em;
  text-overflow:ellipsis;
  white-space:nowrap;
}
:where(.fpsj-theme .fpsj-front-database-device-row__name strong) {
  display:-webkit-box;
  overflow:hidden;
  color:#cbd8e9;
  font-size:.62rem;
  line-height:1.3;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}
:where(.fpsj-theme .fpsj-front-database-device-row__usage) {
  display:grid;
  justify-items:end;
  gap:.03rem;
}
:where(.fpsj-theme .fpsj-front-database-device-row__usage b) {
  color:#f5f9ff;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.78rem;
  line-height:1;
}
:where(.fpsj-theme .fpsj-front-database-device-row__usage small) {
  color:#617a9c;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.39rem;
  font-weight:800;
  letter-spacing:.055em;
}

:where(.fpsj-theme .fpsj-front-database-owner-pending) {
  display:grid;
  place-items:center;
  min-height:244px;
  padding:1rem;
  border:1px dashed rgba(83,116,163,.28);
  border-radius:9px;
  background:rgba(5,12,22,.26);
  color:#5e7799;
  text-align:center;
}
:where(.fpsj-theme .fpsj-front-database-owner-pending svg) {
  width:24px;
  height:24px;
  margin-bottom:.5rem;
  color:color-mix(in srgb,var(--fpsj-db-accent) 60%,#8ca2c0);
}
:where(.fpsj-theme .fpsj-front-database-owner-pending strong) {
  color:#8ca0bc;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.58rem;
  letter-spacing:.08em;
}
:where(.fpsj-theme .fpsj-front-database-owner-pending span) {
  max-width:15rem;
  margin-top:.28rem;
  color:#657d9c;
  font-size:.58rem;
  line-height:1.55;
}
:where(.fpsj-theme .fpsj-front-database-owner-pending small) {
  margin-top:.45rem;
  color:#4e6583;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.42rem;
  font-weight:800;
  letter-spacing:.08em;
}

:where(.fpsj-theme .fpsj-front-database-panel__all) {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:.75rem;
  margin-top:auto;
  padding:.88rem .15rem .05rem;
  color:#eef5ff;
  text-decoration:none;
}
:where(.fpsj-theme .fpsj-front-database-panel__all > span) {
  display:grid;
  gap:.12rem;
}
:where(.fpsj-theme .fpsj-front-database-panel__all small) {
  color:#647e9f;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.48rem;
  font-weight:800;
  letter-spacing:.09em;
}
:where(.fpsj-theme .fpsj-front-database-panel__all strong) {
  color:#aebfd4;
  font-size:.68rem;
  font-weight:800;
}
:where(.fpsj-theme .fpsj-front-database-panel__all i) {
  display:grid;
  place-items:center;
  flex:0 0 30px;
  width:30px;
  height:30px;
  border:1px solid color-mix(in srgb,var(--fpsj-db-accent) 30%,transparent);
  border-radius:8px;
  color:var(--fpsj-db-accent);
  font-style:normal;
}
:where(.fpsj-theme .fpsj-front-database-panel__all:hover strong) { color:#f7faff; }

/* Pro Device Data — tabbed image-led usage ranking / v0.4.98 */
:where(.fpsj-theme .fpsj-front-device-ranking) {
  position:relative;
  background:
    radial-gradient(circle at 78% 20%,rgba(49,215,255,.055),transparent 26rem),
    linear-gradient(180deg,#050b14,#06101a);
}
:where(.fpsj-theme .fpsj-front-device-data) { min-width:0; }

:where(.fpsj-theme .fpsj-front-device-tabs) {
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:.45rem;
  margin-bottom:.82rem;
  padding:.32rem;
  border:1px solid rgba(65,102,153,.22);
  border-radius:12px;
  background:rgba(4,10,18,.5);
}
:where(.fpsj-theme .fpsj-front-device-tab) {
  display:flex;
  align-items:center;
  gap:.58rem;
  min-width:0;
  min-height:48px;
  padding:.52rem .62rem;
  border:1px solid transparent;
  border-radius:9px;
  background:transparent;
  color:#7188a8;
  cursor:pointer;
  text-align:left;
  transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease;
}
:where(.fpsj-theme .fpsj-front-device-tab:hover) {
  background:rgba(11,26,44,.72);
  color:#b8c8dc;
}
:where(.fpsj-theme .fpsj-front-device-tab.is-active) {
  border-color:rgba(49,215,255,.28);
  background:linear-gradient(135deg,rgba(20,52,78,.82),rgba(9,24,42,.88));
  color:#f1f7ff;
  box-shadow:inset 0 0 0 1px rgba(49,215,255,.045),0 8px 24px rgba(0,0,0,.12);
}
:where(.fpsj-theme .fpsj-front-device-tab__icon) {
  flex:0 0 30px;
  display:grid;
  place-items:center;
  width:30px;
  height:30px;
  border:1px solid rgba(49,215,255,.18);
  border-radius:8px;
  color:#69dbf5;
}
:where(.fpsj-theme .fpsj-front-device-tab__icon svg) {
  width:16px;
  height:16px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}
:where(.fpsj-theme .fpsj-front-device-tab__copy) {
  display:grid;
  gap:.04rem;
  min-width:0;
}
:where(.fpsj-theme .fpsj-front-device-tab__copy small) {
  color:#536c8d;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.39rem;
  font-weight:800;
  letter-spacing:.08em;
}
:where(.fpsj-theme .fpsj-front-device-tab__copy strong) {
  overflow:hidden;
  color:inherit;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.55rem;
  font-weight:850;
  letter-spacing:.045em;
  text-overflow:ellipsis;
  white-space:nowrap;
}

:where(.fpsj-theme .fpsj-front-device-panel[hidden]) { display:none!important; }
:where(.fpsj-theme .fpsj-front-device-panel) {
  min-width:0;
  padding:.92rem;
  border:1px solid rgba(66,102,153,.24);
  border-radius:13px;
  background:linear-gradient(155deg,rgba(10,23,39,.97),rgba(6,15,27,.98));
}
:where(.fpsj-theme .fpsj-front-device-panel__head) {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:1rem;
  margin-bottom:.7rem;
}
:where(.fpsj-theme .fpsj-front-device-panel__head > div) {
  display:grid;
  gap:.08rem;
}
:where(.fpsj-theme .fpsj-front-device-panel__head > div small) {
  color:#647e9f;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.45rem;
  font-weight:800;
  letter-spacing:.1em;
}
:where(.fpsj-theme .fpsj-front-device-panel__head > div strong) {
  color:#eef5ff;
  font-size:.78rem;
}
:where(.fpsj-theme .fpsj-front-device-panel__head > span) {
  color:#536c8c;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.43rem;
  font-weight:750;
  letter-spacing:.055em;
}
:where(.fpsj-theme .fpsj-front-device-panel__head > span b) {
  margin-right:.16rem;
  color:#31d7ff;
  font-size:.62rem;
}

:where(.fpsj-theme .fpsj-front-device-ranking-grid) {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:.68rem;
}
:where(.fpsj-theme .fpsj-front-device-card) {
  position:relative;
  display:flex;
  flex-direction:column;
  min-width:0;
  min-height:288px;
  overflow:hidden;
  border:1px solid rgba(70,106,157,.27);
  border-radius:11px;
  background:linear-gradient(180deg,#0a1626,#08121f);
  color:#edf4ff;
  text-decoration:none;
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;
}
:where(.fpsj-theme a.fpsj-front-device-card:hover) {
  transform:translateY(-2px);
  border-color:rgba(49,215,255,.34);
  box-shadow:0 16px 34px rgba(0,0,0,.18);
}
:where(.fpsj-theme .fpsj-front-device-card__rank) {
  position:absolute;
  z-index:2;
  left:.55rem;
  top:.55rem;
  display:grid;
  gap:0;
  min-width:36px;
  padding:.3rem .38rem;
  border:1px solid rgba(49,215,255,.26);
  border-radius:7px;
  background:rgba(6,18,32,.9);
  box-shadow:0 6px 16px rgba(0,0,0,.18);
}
:where(.fpsj-theme .fpsj-front-device-card__rank small) {
  color:#617d9e;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.34rem;
  font-weight:800;
  letter-spacing:.08em;
}
:where(.fpsj-theme .fpsj-front-device-card__rank b) {
  color:#f4f9ff;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.7rem;
  line-height:1.05;
}
:where(.fpsj-theme .fpsj-front-device-card__media) {
  position:relative;
  display:grid;
  place-items:center;
  height:164px;
  padding:.6rem;
  overflow:hidden;
  border-bottom:1px solid rgba(63,99,149,.18);
  background:linear-gradient(145deg,#f8fafc,#e8edf4);
}
:where(.fpsj-theme .fpsj-front-device-card__media img) {
  width:100%;
  height:100%;
  object-fit:contain;
  filter:drop-shadow(0 12px 15px rgba(23,34,48,.16));
}
:where(.fpsj-theme .fpsj-front-device-card__media--fallback),
:where(.fpsj-theme .fpsj-front-device-card__media--pending) {
  align-content:center;
  gap:.48rem;
  background:
    radial-gradient(circle at 50% 42%,rgba(49,215,255,.08),transparent 5rem),
    linear-gradient(145deg,#101d30,#09131f);
  color:#5d7596;
}
:where(.fpsj-theme .fpsj-front-device-card__media--fallback svg),
:where(.fpsj-theme .fpsj-front-device-card__media--pending svg) {
  width:34px;
  height:34px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.35;
  stroke-linecap:round;
  stroke-linejoin:round;
}
:where(.fpsj-theme .fpsj-front-device-card__media--fallback small),
:where(.fpsj-theme .fpsj-front-device-card__media--pending small) {
  color:#4e6686;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.42rem;
  font-weight:800;
  letter-spacing:.08em;
}
:where(.fpsj-theme .fpsj-front-device-card__body) {
  display:flex;
  flex:1;
  flex-direction:column;
  min-width:0;
  padding:.7rem .72rem .65rem;
}
:where(.fpsj-theme .fpsj-front-device-card__maker) {
  display:block;
  overflow:hidden;
  color:#5f7b9f;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.46rem;
  font-weight:850;
  letter-spacing:.075em;
  text-overflow:ellipsis;
  white-space:nowrap;
}
:where(.fpsj-theme .fpsj-front-device-card__body > strong) {
  display:-webkit-box;
  min-height:2.35rem;
  margin-top:.22rem;
  overflow:hidden;
  color:#dbe6f4;
  font-size:.73rem;
  line-height:1.45;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}
:where(.fpsj-theme .fpsj-front-device-card__footer) {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:.55rem;
  margin-top:auto;
  padding-top:.55rem;
}
:where(.fpsj-theme .fpsj-front-device-card__usage) {
  display:flex;
  align-items:baseline;
  gap:.28rem;
}
:where(.fpsj-theme .fpsj-front-device-card__usage b) {
  color:#f5f9ff;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.94rem;
  line-height:1;
}
:where(.fpsj-theme .fpsj-front-device-card__usage small) {
  color:#647d9e;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.39rem;
  font-weight:800;
  letter-spacing:.06em;
}
:where(.fpsj-theme .fpsj-front-device-card__footer > i) {
  display:grid;
  place-items:center;
  width:27px;
  height:27px;
  border:1px solid rgba(49,215,255,.19);
  border-radius:7px;
  color:#54d5f5;
  font-size:.58rem;
  font-style:normal;
}

:where(.fpsj-theme .fpsj-front-device-card--pending) {
  border-style:dashed;
  opacity:.78;
}
:where(.fpsj-theme .fpsj-front-device-card__pending-mark) {
  position:absolute;
  z-index:2;
  left:.55rem;
  top:.55rem;
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border:1px solid rgba(83,116,163,.25);
  border-radius:7px;
  background:rgba(6,18,32,.82);
  color:#5b7495;
}
:where(.fpsj-theme .fpsj-front-device-card__pending-mark svg) {
  width:16px;
  height:16px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.6;
  stroke-linecap:round;
  stroke-linejoin:round;
}
:where(.fpsj-theme .fpsj-front-device-card--pending .fpsj-front-device-card__body > strong) {
  color:#788da8;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.59rem;
  letter-spacing:.045em;
}
:where(.fpsj-theme .fpsj-front-device-card--pending .fpsj-front-device-card__usage b) {
  color:#536b8a;
}

:where(.fpsj-theme .fpsj-front-device-ranking-footer) {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1rem;
  margin-top:.78rem;
  padding:.72rem .78rem;
  border:1px solid rgba(64,100,150,.2);
  border-radius:10px;
  background:rgba(7,17,30,.5);
}
:where(.fpsj-theme .fpsj-front-device-ranking-footer > span) {
  display:grid;
  gap:.08rem;
}
:where(.fpsj-theme .fpsj-front-device-ranking-footer > span small) {
  color:#5b7698;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.43rem;
  font-weight:800;
  letter-spacing:.09em;
}
:where(.fpsj-theme .fpsj-front-device-ranking-footer > span strong) {
  color:#aebfd4;
  font-size:.68rem;
}
:where(.fpsj-theme .fpsj-front-device-ranking-footer > a) {
  display:inline-flex;
  align-items:center;
  gap:.42rem;
  min-height:34px;
  padding:.42rem .62rem;
  border:1px solid rgba(49,215,255,.25);
  border-radius:8px;
  color:#89e9ff;
  font-size:.59rem;
  font-weight:800;
  text-decoration:none;
}
:where(.fpsj-theme .fpsj-front-device-ranking-footer > a:hover) {
  background:rgba(49,215,255,.055);
  color:#e8fbff;
}

/* Content — editorial media showcase / v0.4.99 */
:where(.fpsj-theme .fpsj-front-content) {
  position:relative;
  background:radial-gradient(circle at 18% 12%,rgba(52,120,255,.055),transparent 28rem),radial-gradient(circle at 82% 65%,rgba(140,99,255,.045),transparent 24rem),linear-gradient(180deg,#07101c,#050b14);
}
:where(.fpsj-theme .fpsj-front-content-showcase) { display:grid; gap:1rem; }
:where(.fpsj-theme .fpsj-front-content-subhead) { display:flex; justify-content:space-between; align-items:flex-end; gap:1rem; margin-bottom:.58rem; }
:where(.fpsj-theme .fpsj-front-content-subhead > div) { display:grid; gap:.06rem; }
:where(.fpsj-theme .fpsj-front-content-subhead small) { color:#627e9f; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:.46rem; font-weight:850; letter-spacing:.1em; }
:where(.fpsj-theme .fpsj-front-content-subhead h3) { margin:0!important; color:#edf4ff; font-size:.87rem; line-height:1.25; }
:where(.fpsj-theme .fpsj-front-content-subhead > a) { color:#6bdcf7; font-size:.57rem; font-weight:800; text-decoration:none; }

:where(.fpsj-theme .fpsj-front-content-featured-grid) { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(280px,.85fr); gap:.72rem; min-height:340px; }
:where(.fpsj-theme .fpsj-front-content-featured-main) { position:relative; display:block; min-width:0; min-height:340px; overflow:hidden; border:1px solid rgba(71,107,160,.3); border-radius:13px; background:#0a1626; color:#f5f9ff; text-decoration:none; }
:where(.fpsj-theme .fpsj-front-content-featured-main__media) { position:absolute; inset:0; display:block; overflow:hidden; background:radial-gradient(circle at 50% 42%,rgba(52,120,255,.11),transparent 58%),linear-gradient(145deg,#0c1829,#07111e); }
:where(.fpsj-theme .fpsj-front-content-featured-main__media > img) { width:100%; height:100%; object-fit:contain; object-position:center; transition:filter .28s ease; }
:where(.fpsj-theme .fpsj-front-content-featured-main:hover .fpsj-front-content-featured-main__media > img) { transform:none; filter:saturate(1.025); }
:where(.fpsj-theme .fpsj-front-content-featured-main__shade) { position:absolute; inset:0; background:linear-gradient(180deg,rgba(4,10,18,.04) 20%,rgba(4,10,18,.22) 50%,rgba(4,10,18,.93) 100%),linear-gradient(90deg,rgba(4,10,18,.2),transparent 45%); }
:where(.fpsj-theme .fpsj-front-content-featured-main__copy) { position:absolute; z-index:2; left:1rem; right:3rem; bottom:1rem; display:grid; gap:.26rem; }
:where(.fpsj-theme .fpsj-front-content-featured-main__copy > small) { color:#56dcfa; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:.48rem; font-weight:850; letter-spacing:.085em; }
:where(.fpsj-theme .fpsj-front-content-featured-main__copy > strong) { display:-webkit-box; overflow:hidden; color:#f7faff; font-size:clamp(1rem,1.55vw,1.36rem); line-height:1.35; letter-spacing:-.018em; text-shadow:0 2px 12px rgba(0,0,0,.42); -webkit-box-orient:vertical; -webkit-line-clamp:2; }
:where(.fpsj-theme .fpsj-front-content-featured-main__copy > time) { color:#8ea3bf; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:.48rem; }
:where(.fpsj-theme .fpsj-front-content-featured-main > i) { position:absolute; z-index:2; right:1rem; bottom:1rem; display:grid; place-items:center; width:30px; height:30px; border:1px solid rgba(49,215,255,.3); border-radius:8px; background:rgba(5,15,27,.66); color:#74e4ff; font-size:.64rem; font-style:normal; }

:where(.fpsj-theme .fpsj-front-content-featured-side) { display:grid; grid-template-rows:repeat(3,minmax(0,1fr)); gap:.48rem; }
:where(.fpsj-theme .fpsj-front-content-compact-post) { position:relative; display:grid; grid-template-columns:112px minmax(0,1fr) auto; align-items:center; gap:.62rem; min-width:0; min-height:96px; padding:.38rem .45rem; overflow:hidden; border:1px solid rgba(65,100,150,.22); border-radius:9px; background:rgba(7,17,30,.66); color:#eaf2fe; text-decoration:none; transition:border-color .18s ease,transform .18s ease,background .18s ease; }
:where(.fpsj-theme a.fpsj-front-content-compact-post:hover) { transform:translateX(2px); border-color:rgba(49,215,255,.3); background:rgba(10,25,43,.8); }
:where(.fpsj-theme .fpsj-front-content-compact-post__media) { display:block; width:112px; height:72px; overflow:hidden; border-radius:7px; background:radial-gradient(circle at 50% 42%,rgba(49,215,255,.08),transparent 72%),#101c2e; }
:where(.fpsj-theme .fpsj-front-content-compact-post__media > img) { width:100%; height:100%; object-fit:contain; object-position:center; }
:where(.fpsj-theme .fpsj-front-content-compact-post__copy) { display:grid; gap:.12rem; min-width:0; }
:where(.fpsj-theme .fpsj-front-content-compact-post__copy > small) { overflow:hidden; color:#5e7899; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:.4rem; font-weight:850; letter-spacing:.07em; text-overflow:ellipsis; white-space:nowrap; }
:where(.fpsj-theme .fpsj-front-content-compact-post__copy > strong) { display:-webkit-box; overflow:hidden; color:#cfdbeb; font-size:.63rem; line-height:1.42; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
:where(.fpsj-theme .fpsj-front-content-compact-post__copy > time) { color:#587291; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:.42rem; }
:where(.fpsj-theme .fpsj-front-content-compact-post > i) { color:#587796; font-size:.56rem; font-style:normal; }
:where(.fpsj-theme .fpsj-front-content-compact-post--pending) { border-style:dashed; opacity:.67; }
:where(.fpsj-theme .fpsj-front-content-compact-post--pending .fpsj-front-content-compact-post__copy > strong) { color:#7087a5; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:.54rem; letter-spacing:.045em; }

:where(.fpsj-theme .fpsj-front-content-media-fallback) { display:grid; place-items:center; align-content:center; gap:.24rem; width:100%; height:100%; background:radial-gradient(circle at 50% 42%,rgba(49,215,255,.08),transparent 4rem),linear-gradient(145deg,#101e31,#09131f); color:#507091; }
:where(.fpsj-theme .fpsj-front-content-media-fallback > i) { display:grid; place-items:center; width:30px; height:30px; border:1px solid rgba(49,215,255,.2); border-radius:8px; color:#69dff8; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:.58rem; font-style:normal; font-weight:900; }
:where(.fpsj-theme .fpsj-front-content-media-fallback > small) { max-width:90%; overflow:hidden; color:#526d8e; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:.38rem; font-weight:800; letter-spacing:.07em; text-overflow:ellipsis; white-space:nowrap; }
:where(.fpsj-theme .fpsj-front-content-featured-main .fpsj-front-content-media-fallback > i) { width:50px; height:50px; font-size:.84rem; }

:where(.fpsj-theme .fpsj-front-content-explore-grid) { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.56rem; }
:where(.fpsj-theme .fpsj-front-content-explore-card) { position:relative; display:grid; grid-template-columns:42px minmax(0,1fr) auto; align-items:center; gap:.72rem; min-height:82px; padding:.7rem .78rem; border:1px solid rgba(66,102,153,.24); border-radius:10px; background:linear-gradient(145deg,rgba(10,24,41,.95),rgba(7,17,30,.96)); color:#eef5ff; text-decoration:none; transition:border-color .18s ease,transform .18s ease; }
:where(.fpsj-theme .fpsj-front-content-explore-card:hover) { transform:translateY(-1px); border-color:rgba(49,215,255,.3); }
:where(.fpsj-theme .fpsj-front-content-explore-card__icon) { display:grid; place-items:center; width:42px; height:42px; border:1px solid rgba(49,215,255,.21); border-radius:10px; background:rgba(49,215,255,.045); color:#69def8; }
:where(.fpsj-theme .fpsj-front-content-explore-card__icon svg) { width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
:where(.fpsj-theme .fpsj-front-content-explore-card__copy) { display:grid; gap:.06rem; min-width:0; }
:where(.fpsj-theme .fpsj-front-content-explore-card__copy > small) { color:#5b7697; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:.41rem; font-weight:850; letter-spacing:.08em; }
:where(.fpsj-theme .fpsj-front-content-explore-card__copy > strong) { color:#dbe6f4; font-size:.7rem; }
:where(.fpsj-theme .fpsj-front-content-explore-card__copy > span) { margin-top:.04rem; overflow:hidden; color:#6f86a4; font-size:.52rem; text-overflow:ellipsis; white-space:nowrap; }
:where(.fpsj-theme .fpsj-front-content-explore-card > i) { color:#5b7799; font-size:.61rem; font-style:normal; }

:where(.fpsj-theme .fpsj-front-content-grid) { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.68rem; }
:where(.fpsj-theme .fpsj-front-content-editorial-lane) { min-width:0; padding:.78rem; border:1px solid rgba(65,101,151,.24); border-radius:11px; background:linear-gradient(145deg,rgba(9,22,38,.96),rgba(6,16,28,.97)); }
:where(.fpsj-theme .fpsj-front-content-editorial-lane__head) { display:flex; justify-content:space-between; align-items:flex-end; gap:.8rem; margin-bottom:.52rem; padding-bottom:.52rem; border-bottom:1px solid rgba(65,100,150,.18); }
:where(.fpsj-theme .fpsj-front-content-editorial-lane__head > div) { display:grid; gap:.04rem; }
:where(.fpsj-theme .fpsj-front-content-editorial-lane__head small) { color:#617c9e; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:.41rem; font-weight:850; letter-spacing:.09em; }
:where(.fpsj-theme .fpsj-front-content-editorial-lane__head h4) { margin:0!important; color:#e8f0fb; font-size:.76rem; }
:where(.fpsj-theme .fpsj-front-content-editorial-lane__head > a) { color:#60d8f5; font-size:.5rem; font-weight:800; text-decoration:none; }
:where(.fpsj-theme .fpsj-front-content-editorial-list) { display:grid; gap:.4rem; }
:where(.fpsj-theme .fpsj-front-content-editorial-post) { grid-template-columns:104px minmax(0,1fr) auto; min-height:88px; }
:where(.fpsj-theme .fpsj-front-content-editorial-post .fpsj-front-content-compact-post__media) { width:104px; height:66px; }

:where(.fpsj-theme .fpsj-front-content-footer) { display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:.8rem .88rem; border:1px solid rgba(66,102,153,.22); border-radius:11px; background:linear-gradient(90deg,rgba(10,26,44,.76),rgba(8,17,30,.68)); }
:where(.fpsj-theme .fpsj-front-content-footer > span) { display:grid; gap:.08rem; }
:where(.fpsj-theme .fpsj-front-content-footer > span small) { color:#5e7a9d; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:.42rem; font-weight:850; letter-spacing:.1em; }
:where(.fpsj-theme .fpsj-front-content-footer > span strong) { color:#b8c8db; font-size:.69rem; }
:where(.fpsj-theme .fpsj-front-content-footer > a) { display:inline-flex; align-items:center; gap:.42rem; min-height:36px; padding:.44rem .68rem; border:1px solid rgba(49,215,255,.26); border-radius:8px; color:#8ceaff; font-size:.59rem; font-weight:850; text-decoration:none; }

:where(.fpsj-theme .fpsj-front-content-featured-empty) { display:grid; place-items:center; min-height:260px; padding:1rem; border:1px dashed rgba(70,105,155,.28); border-radius:12px; color:#617a99; text-align:center; }
:where(.fpsj-theme .fpsj-front-content-featured-empty .fpsj-front-content-media-fallback) { width:180px; height:110px; border-radius:9px; }
:where(.fpsj-theme .fpsj-front-content-featured-empty > strong) { margin-top:.65rem; color:#8194ad; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:.62rem; }
:where(.fpsj-theme .fpsj-front-content-featured-empty > span) { margin-top:.2rem; color:#637b99; font-size:.56rem; }





@media (max-width:1050px) {
  :where(.fpsj-theme .fpsj-front-content-featured-grid) { grid-template-columns:minmax(0,1.25fr) minmax(250px,.9fr); }
}
@media (max-width:520px) {
  :where(.fpsj-theme .fpsj-front-content-featured-main) { min-height:250px; }
  :where(.fpsj-theme .fpsj-front-content-compact-post),
  :where(.fpsj-theme .fpsj-front-content-editorial-post) { grid-template-columns:88px minmax(0,1fr); }
  :where(.fpsj-theme .fpsj-front-content-compact-post__media),
  :where(.fpsj-theme .fpsj-front-content-editorial-post .fpsj-front-content-compact-post__media) { width:88px; height:60px; }
  :where(.fpsj-theme .fpsj-front-content-compact-post > i) { display:none; }
  :where(.fpsj-theme .fpsj-front-content-subhead) { align-items:flex-start; flex-direction:column; gap:.25rem; }
  :where(.fpsj-theme .fpsj-front-content-explore-card__copy > span) { white-space:normal; }
}

@media (max-width:1050px) {
  :where(.fpsj-theme .fpsj-front-database-grid) { grid-template-columns:1fr; }
  :where(.fpsj-theme .fpsj-front-database-panel) { min-height:0; }
  :where(.fpsj-theme .fpsj-front-database-panel__description) { min-height:0; }
  :where(.fpsj-theme .fpsj-front-database-owner-pending) { min-height:180px; }
}
@media (max-width:680px) {
  :where(.fpsj-theme .fpsj-front-database-panel) { padding:.82rem; }
  :where(.fpsj-theme .fpsj-front-database-device-row) { grid-template-columns:26px minmax(0,1fr) auto; }
  :where(.fpsj-theme .fpsj-front-database-metric-row__pending small) { display:none; }
}

@media (max-width:1050px) {
  :where(.fpsj-theme .fpsj-front-access-grid), :where(.fpsj-theme .fpsj-front-game-grid) { grid-template-columns:repeat(3,minmax(0,1fr)); }
  :where(.fpsj-theme .fpsj-front-database-grid) { grid-template-columns:1fr; }
  :where(.fpsj-theme .fpsj-front-database-panel) { min-height:0; }
  :where(.fpsj-theme .fpsj-front-device-tabs) { grid-template-columns:repeat(5,minmax(128px,1fr)); overflow-x:auto; }
  :where(.fpsj-theme .fpsj-front-device-ranking-grid) { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:680px) {
  :where(.fpsj-theme .fpsj-front-hero) { padding:3.2rem 0 1.6rem; }
  :where(.fpsj-theme .fpsj-front-hero__title) { font-size:clamp(2.35rem,12vw,3.5rem)!important; }
  :where(.fpsj-theme .fpsj-front-hero__lead br) { display:none; }
  :where(.fpsj-theme .fpsj-front-hero__hint) { display:none; }
  :where(.fpsj-theme .fpsj-front-access-grid) { grid-template-columns:repeat(2,minmax(0,1fr)); }
  :where(.fpsj-theme .fpsj-front-card--access:last-child) { grid-column:1/-1; }
  :where(.fpsj-theme .fpsj-front-game-grid) { grid-template-columns:repeat(2,minmax(0,1fr)); }
  :where(.fpsj-theme .fpsj-front-card--game) { min-height:184px; }
  :where(.fpsj-theme .fpsj-front-game-card__visual) { height:126px; }
  :where(.fpsj-theme .fpsj-front-device-tabs) { display:flex; overflow-x:auto; padding-bottom:.38rem; scroll-snap-type:x proximity; }
  :where(.fpsj-theme .fpsj-front-device-tab) { flex:0 0 132px; scroll-snap-align:start; }
  :where(.fpsj-theme .fpsj-front-device-ranking-grid) { grid-template-columns:repeat(2,minmax(0,1fr)); }
  :where(.fpsj-theme .fpsj-front-device-card) { min-height:260px; }
  :where(.fpsj-theme .fpsj-front-device-card__media) { height:142px; }
  :where(.fpsj-theme .fpsj-front-device-ranking-footer) { align-items:flex-start; flex-direction:column; }
  :where(.fpsj-theme .fpsj-front-content-featured-grid) { grid-template-columns:1fr; min-height:0; }
  :where(.fpsj-theme .fpsj-front-content-featured-main) { min-height:300px; }
  :where(.fpsj-theme .fpsj-front-content-featured-side) { grid-template-rows:none; }
  :where(.fpsj-theme .fpsj-front-content-explore-grid) { grid-template-columns:1fr; }
  :where(.fpsj-theme .fpsj-front-content-grid) { grid-template-columns:1fr; }
  :where(.fpsj-theme .fpsj-front-content-footer) { align-items:flex-start; flex-direction:column; }
}
@media (max-width:420px) {
  :where(.fpsj-theme .fpsj-front-access-grid), :where(.fpsj-theme .fpsj-front-game-grid), :where(.fpsj-theme .fpsj-front-device-ranking-grid) { grid-template-columns:1fr; }
  :where(.fpsj-theme .fpsj-front-card--access:last-child) { grid-column:auto; }
}

/* Hero search public rendering:
 * - user-entered query text stays bright
 * - browser placeholder guidance stays subdued
 */
:where(.fpsj-theme .fpsj-front-hero__search input.wp-block-search__input) {
  color:#eef5ff!important;
  -webkit-text-fill-color:#eef5ff!important;
}
:where(.fpsj-theme .fpsj-front-hero__search input.wp-block-search__input::placeholder) {
  color:#63758d!important;
  -webkit-text-fill-color:#63758d!important;
  opacity:1!important;
}
:where(.fpsj-theme .fpsj-front-hero__search input.wp-block-search__input::-webkit-input-placeholder) {
  color:#63758d!important;
  -webkit-text-fill-color:#63758d!important;
  opacity:1!important;
}
:where(.fpsj-theme .fpsj-front-hero__search input.wp-block-search__input::-moz-placeholder) {
  color:#63758d!important;
  opacity:1!important;
}

/* Hero search button — restored subdued integrated appearance. */
:where(.fpsj-theme .fpsj-front-hero__search .wp-block-search__button) {
  min-width:58px;
  padding-inline:.9rem;
  display:grid;
  place-items:center;
  margin:0;
  border:0;
  border-radius:9px;
  background:rgba(13,27,47,.88)!important;
  color:#b7c6da!important;
  box-shadow:none!important;
  font-weight:700;
}
:where(.fpsj-theme .fpsj-front-hero__search .wp-block-search__button:hover) {
  background:rgba(13,27,47,.96)!important;
  color:#e8f1ff!important;
}
:where(.fpsj-theme .fpsj-front-hero__search .wp-block-search__button svg) {
  width:18px;
  height:18px;
  fill:currentColor;
}

/* Quick Access — compact navigation grid */
:where(.fpsj-theme .fpsj-front-quick-access) {
  padding:1rem 0 3rem;
  background:#050b14;
}
:where(.fpsj-theme .fpsj-front-access-shell) {
  width:min(1040px,calc(100% - 2rem));
  max-width:1040px;
  margin-inline:auto;
}
:where(.fpsj-theme .fpsj-front-access-grid) {
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:.7rem;
}
:where(.fpsj-theme .fpsj-front-card--access) {
  position:relative;
  min-height:108px;
  padding:.9rem .95rem .85rem;
  border:1px solid rgba(66,103,157,.28);
  border-radius:11px;
  background:linear-gradient(145deg,#0a1525,#08111e);
  overflow:hidden;
  transition:transform .18s ease,border-color .18s ease,background .18s ease;
}
:where(.fpsj-theme .fpsj-front-card--access:hover) {
  transform:translateY(-2px);
  border-color:rgba(49,215,255,.44);
  background:linear-gradient(145deg,#0d1b2e,#091522);
}
:where(.fpsj-theme .fpsj-front-card--access .fpsj-front-card__label) {
  display:block;
  margin-bottom:.48rem;
  color:#738cac;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.56rem;
  letter-spacing:.09em;
}
:where(.fpsj-theme .fpsj-front-card--access strong) {
  display:block;
  color:#f4f8ff;
  font-size:.98rem;
  line-height:1.3;
}
:where(.fpsj-theme .fpsj-front-card--access small) {
  display:block;
  max-width:88%;
  margin-top:.26rem;
  color:#7f92ae;
  font-size:.64rem;
  line-height:1.45;
}
:where(.fpsj-theme .fpsj-front-card--access b) {
  position:absolute;
  right:.78rem;
  top:.76rem;
  color:#5e7698;
  font-size:.88rem;
}
@media (max-width:1050px) {
  :where(.fpsj-theme .fpsj-front-access-grid) {
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}
@media (max-width:640px) {
  :where(.fpsj-theme .fpsj-front-quick-access) {
    padding-top:.8rem;
    padding-bottom:2.35rem;
  }
  :where(.fpsj-theme .fpsj-front-access-shell) {
    width:min(1040px,calc(100% - 1rem));
  }
  :where(.fpsj-theme .fpsj-front-access-grid) {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.55rem;
  }
  :where(.fpsj-theme .fpsj-front-card--access) {
    min-height:100px;
    padding:.82rem .8rem .78rem;
  }
  :where(.fpsj-theme .fpsj-front-access-grid > :last-child:nth-child(odd)) {
    grid-column:1 / -1;
  }
}

/* Quick Access live count */
:where(.fpsj-theme .fpsj-front-card--access .fpsj-front-card__title-row) {
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:.45rem;
  min-width:0;
}
:where(.fpsj-theme .fpsj-front-card--access .fpsj-front-card__title-row strong) {
  min-width:0;
}
:where(.fpsj-theme .fpsj-front-card--access .fpsj-front-card__count) {
  flex:0 0 auto;
  color:#c9d7ea;
  font-size:1.04rem;
  font-weight:850;
  line-height:1;
  letter-spacing:-.025em;
  font-variant-numeric:tabular-nums;
}

/* FPS JAPAN Tools showcase-first composition — 0.4.77 */
:where(.fpsj-theme .fpsj-front-tool-showcase-grid) {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem;
  align-items:start;
}

:where(.fpsj-theme .fpsj-tool-showcase) {
  min-width:0;
  padding:1rem;
  border:1px solid rgba(70,112,173,.30);
  border-radius:16px;
  background:
    radial-gradient(circle at 88% 8%,rgba(52,120,255,.12),transparent 14rem),
    linear-gradient(145deg,#0b1729,#08111f);
  box-shadow:0 18px 50px rgba(0,0,0,.16);
}

:where(.fpsj-theme .fpsj-tool-showcase--skin) {
  background:
    radial-gradient(circle at 88% 8%,rgba(140,99,255,.14),transparent 14rem),
    linear-gradient(145deg,#10172b,#08111f);
}

:where(.fpsj-theme .fpsj-tool-showcase__head) {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:1rem;
  margin-bottom:.75rem;
}

:where(.fpsj-theme .fpsj-tool-showcase__head > div) { min-width:0; }

:where(.fpsj-theme .fpsj-tool-showcase__head span) {
  display:block;
  margin-bottom:.2rem;
  color:#31d7ff;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.56rem;
  font-weight:800;
  letter-spacing:.11em;
}

:where(.fpsj-theme .fpsj-tool-showcase--skin .fpsj-tool-showcase__head span) { color:#a98cff; }

:where(.fpsj-theme .fpsj-tool-showcase__head h3) {
  margin:0;
  color:#f7faff;
  font-size:1.12rem;
  line-height:1.2;
  letter-spacing:-.02em;
}

:where(.fpsj-theme .fpsj-tool-showcase__head > a) {
  flex:0 0 auto;
  color:#8399b9;
  font-size:.68rem;
  text-decoration:none;
}

:where(.fpsj-theme .fpsj-tool-showcase__head > a:hover) { color:#f7faff; }

:where(.fpsj-theme .fpsj-tool-showcase__viewport) {
  position:relative;
  aspect-ratio:16/10;
  overflow:hidden;
  border:1px solid rgba(67,105,160,.28);
  border-radius:12px;
  background:#050b14;
}

:where(.fpsj-theme .fpsj-tool-showcase__track) {
  position:absolute;
  inset:0;
}

:where(.fpsj-theme .fpsj-tool-showcase__slide) {
  position:absolute;
  inset:0;
  display:block;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  color:#f7faff;
  text-decoration:none;
  transition:opacity .45s ease, visibility .45s ease;
}

:where(.fpsj-theme .fpsj-tool-showcase__slide.is-active) {
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}

:where(.fpsj-theme .fpsj-tool-showcase__image) {
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
  background:#050b14;
}

:where(.fpsj-theme .fpsj-tool-showcase__shade) {
  position:absolute;
  inset:auto 0 0;
  height:44%;
  pointer-events:none;
  background:linear-gradient(180deg,transparent,rgba(4,9,17,.92));
}

:where(.fpsj-theme .fpsj-tool-showcase__meta) {
  position:absolute;
  left:.9rem;
  right:5.8rem;
  bottom:.78rem;
  z-index:2;
}

:where(.fpsj-theme .fpsj-tool-showcase__meta small) {
  display:block;
  margin-bottom:.16rem;
  color:#31d7ff;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.52rem;
  font-weight:800;
  letter-spacing:.1em;
}

:where(.fpsj-theme .fpsj-tool-showcase--skin .fpsj-tool-showcase__meta small) { color:#a98cff; }

:where(.fpsj-theme .fpsj-tool-showcase__meta strong) {
  display:block;
  overflow:hidden;
  color:#f7faff;
  font-size:.8rem;
  line-height:1.3;
  text-overflow:ellipsis;
  white-space:nowrap;
}

:where(.fpsj-theme .fpsj-tool-showcase__controls) {
  position:absolute;
  right:.7rem;
  bottom:.65rem;
  z-index:4;
  display:flex;
  align-items:center;
  gap:.42rem;
}

:where(.fpsj-theme .fpsj-tool-showcase__nav) {
  display:grid;
  width:28px;
  height:28px;
  padding:0;
  place-items:center;
  border:1px solid rgba(137,161,195,.28);
  border-radius:8px;
  background:rgba(6,14,25,.82);
  color:#c7d5e9;
  font-size:1rem;
  line-height:1;
  cursor:pointer;
}

:where(.fpsj-theme .fpsj-tool-showcase__nav:hover) {
  border-color:rgba(49,215,255,.5);
  color:#fff;
}

:where(.fpsj-theme .fpsj-tool-showcase__dots) {
  display:flex;
  align-items:center;
  gap:.28rem;
}

:where(.fpsj-theme .fpsj-tool-showcase__dot) {
  width:5px;
  height:5px;
  min-width:0;
  padding:0;
  border:0;
  border-radius:999px;
  background:#45607f;
  cursor:pointer;
  transition:width .2s ease, background .2s ease;
}

:where(.fpsj-theme .fpsj-tool-showcase__dot.is-active) {
  width:14px;
  background:#31d7ff;
}

:where(.fpsj-theme .fpsj-tool-showcase--skin .fpsj-tool-showcase__dot.is-active) { background:#8c63ff; }

:where(.fpsj-theme .fpsj-tool-showcase__cta) {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  min-height:54px;
  margin-top:.72rem;
  padding:.7rem .85rem;
  border:1px solid rgba(73,112,170,.28);
  border-radius:10px;
  background:#0a1524;
  color:#f7faff;
  text-decoration:none;
  transition:border-color .18s ease, background .18s ease, transform .18s ease;
}

:where(.fpsj-theme .fpsj-tool-showcase__cta:hover) {
  transform:translateY(-1px);
  border-color:rgba(49,215,255,.45);
  background:#0d1b2e;
}

:where(.fpsj-theme .fpsj-tool-showcase__cta small) {
  display:block;
  margin-bottom:.08rem;
  color:#637a9c;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.5rem;
  letter-spacing:.1em;
}

:where(.fpsj-theme .fpsj-tool-showcase__cta strong) {
  display:block;
  color:#f7faff;
  font-size:.8rem;
}

:where(.fpsj-theme .fpsj-tool-showcase__cta > b) {
  flex:0 0 auto;
  color:#31d7ff;
  font-size:.85rem;
}

:where(.fpsj-theme .fpsj-tool-showcase--skin .fpsj-tool-showcase__cta > b) { color:#a98cff; }

:where(.fpsj-theme .fpsj-tool-showcase__empty) {
  position:absolute;
  inset:0;
  display:grid;
  place-content:center;
  gap:.2rem;
  text-align:center;
  background:#050b14;
}

:where(.fpsj-theme .fpsj-tool-showcase__empty span) {
  color:#31d7ff;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:.58rem;
  letter-spacing:.12em;
}

:where(.fpsj-theme .fpsj-tool-showcase__empty strong) {
  color:#f7faff;
  font-size:1rem;
}

:where(.fpsj-theme .fpsj-tool-showcase__empty small) {
  color:#7186a4;
  font-size:.68rem;
}

:where(.fpsj-theme .fpsj-front-tools .fpsj-front-tool-subgrid) { margin-top:.9rem; }

@media (max-width:760px) {
  :where(.fpsj-theme .fpsj-front-tool-showcase-grid) {
    grid-template-columns:minmax(0,1fr);
  }

  :where(.fpsj-theme .fpsj-tool-showcase__viewport) {
    aspect-ratio:16/9;
  }
}

@media (prefers-reduced-motion:reduce) {
  :where(.fpsj-theme .fpsj-tool-showcase__slide),
  :where(.fpsj-theme .fpsj-tool-showcase__dot),
  :where(.fpsj-theme .fpsj-tool-showcase__cta) {
    transition:none;
  }
}


/* =========================================================
   FPS JAPAN Tools — owner shortcode integration / 0.4.79
   Generator plugins own creation data. Theme owns composition.
   ========================================================= */

.fpsj-theme .fpsj-tool-showcase__head {
  align-items:center;
}

.fpsj-theme .fpsj-tool-showcase__head-actions {
  display:flex;
  align-items:center;
  gap:.58rem;
  flex:0 0 auto;
}

.fpsj-theme .fpsj-tool-showcase__all {
  color:#8399b9;
  font-size:.68rem;
  text-decoration:none;
  white-space:nowrap;
}

.fpsj-theme .fpsj-tool-showcase__all:hover {
  color:#f7faff;
}

.fpsj-theme .fpsj-tool-showcase__navset {
  display:flex;
  align-items:center;
  gap:.28rem;
}

.fpsj-theme .fpsj-tool-showcase__navset[hidden] {
  display:none !important;
}

.fpsj-theme .fpsj-tool-showcase__nav {
  display:grid;
  width:28px;
  height:28px;
  min-width:28px;
  padding:0;
  place-items:center;
  border:1px solid rgba(137,161,195,.28);
  border-radius:8px;
  background:#0a1524;
  color:#c7d5e9;
  font-size:1rem;
  line-height:1;
  cursor:pointer;
  transition:border-color .18s ease,color .18s ease,opacity .18s ease;
}

.fpsj-theme .fpsj-tool-showcase__nav:hover:not(:disabled) {
  border-color:rgba(49,215,255,.5);
  color:#fff;
}

.fpsj-theme .fpsj-tool-showcase--skin .fpsj-tool-showcase__nav:hover:not(:disabled) {
  border-color:rgba(140,99,255,.55);
}

.fpsj-theme .fpsj-tool-showcase__nav:disabled {
  opacity:.28;
  cursor:default;
}

.fpsj-theme .fpsj-tool-showcase__viewport {
  position:relative;
  aspect-ratio:auto;
  min-height:238px;
  overflow:hidden;
  border:1px solid rgba(67,105,160,.28);
  border-radius:12px;
  background:#050b14;
}

.fpsj-theme .fpsj-tool-showcase__owner {
  width:100%;
  min-width:0;
  height:100%;
  padding:.72rem;
  box-sizing:border-box;
}

/* Owner shortcode contract:
 * .fpsj-creations-showcase
 *   .fpsj-creations-track
 *     .fpsj-creation-card
 */
.fpsj-theme .fpsj-tool-showcase__owner .fpsj-creations-showcase,
.fpsj-theme .fpsj-tool-showcase__owner .fpsj-agent-creations-showcase,
.fpsj-theme .fpsj-tool-showcase__owner .fpsj-skin-creations-showcase {
  width:100%;
  min-width:0;
  margin:0;
  padding:0;
  background:transparent;
  border:0;
  box-shadow:none;
}

.fpsj-theme .fpsj-tool-showcase__owner .fpsj-creations-track {
  display:flex;
  gap:.62rem;
  width:100%;
  min-width:0;
  margin:0;
  padding:0 0 .28rem;
  overflow-x:auto;
  overflow-y:hidden;
  scroll-snap-type:x mandatory;
  scroll-padding-inline:0;
  overscroll-behavior-inline:contain;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
}

.fpsj-theme .fpsj-tool-showcase__owner .fpsj-creations-track::-webkit-scrollbar {
  display:none;
}

.fpsj-theme .fpsj-tool-showcase__owner .fpsj-creation-card {
  flex:0 0 clamp(150px,43%,200px);
  min-width:0;
  margin:0;
  scroll-snap-align:start;
  overflow:hidden;
  border:1px solid rgba(68,108,165,.28);
  border-radius:10px;
  background:#091321;
  box-shadow:none;
  transition:transform .18s ease,border-color .18s ease,background .18s ease;
}

.fpsj-theme .fpsj-tool-showcase--agent .fpsj-creation-card:hover {
  transform:translateY(-2px);
  border-color:rgba(49,215,255,.42);
  background:#0b1828;
}

.fpsj-theme .fpsj-tool-showcase--skin .fpsj-creation-card:hover {
  transform:translateY(-2px);
  border-color:rgba(140,99,255,.46);
  background:#0d1729;
}

.fpsj-theme .fpsj-tool-showcase__owner .fpsj-creation-card__link {
  display:block;
  height:100%;
  color:#f7faff;
  text-decoration:none;
}

.fpsj-theme .fpsj-tool-showcase__owner .fpsj-creation-card__media {
  position:relative;
  display:block;
  width:100%;
  aspect-ratio:16/10;
  overflow:hidden;
  background:#060d18;
}

.fpsj-theme .fpsj-tool-showcase__owner .fpsj-creation-card__media img {
  display:block;
  width:100%;
  height:100%;
  margin:0;
  object-fit:contain;
  object-position:center;
  transition:filter .24s ease;
}

.fpsj-theme .fpsj-tool-showcase__owner .fpsj-creation-card:hover .fpsj-creation-card__media img {
  transform:none;
}

.fpsj-theme .fpsj-tool-showcase__owner .fpsj-creation-card__body {
  min-height:46px;
  padding:.55rem .62rem .58rem;
  box-sizing:border-box;
}

.fpsj-theme .fpsj-tool-showcase__owner .fpsj-creation-card__title {
  display:-webkit-box;
  overflow:hidden;
  color:#f7faff;
  font-size:.72rem;
  font-weight:750;
  line-height:1.38;
  letter-spacing:-.01em;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}

.fpsj-theme .fpsj-tool-showcase__empty {
  position:relative;
  inset:auto;
  display:grid;
  min-height:236px;
  padding:1.2rem;
  place-content:center;
  gap:.2rem;
  text-align:center;
  box-sizing:border-box;
}

.fpsj-theme .fpsj-tool-showcase--skin .fpsj-tool-showcase__empty span {
  color:#a98cff;
}

@media (max-width:760px) {
  .fpsj-theme .fpsj-tool-showcase__viewport {
    min-height:210px;
  }

  .fpsj-theme .fpsj-tool-showcase__owner .fpsj-creation-card {
    flex-basis:min(76%,220px);
  }

  .fpsj-theme .fpsj-tool-showcase__empty {
    min-height:208px;
  }
}

@media (max-width:420px) {
  .fpsj-theme .fpsj-tool-showcase__head-actions {
    gap:.38rem;
  }

  .fpsj-theme .fpsj-tool-showcase__all {
    font-size:.62rem;
  }

  .fpsj-theme .fpsj-tool-showcase__nav {
    width:26px;
    height:26px;
    min-width:26px;
  }
}

@media (prefers-reduced-motion:reduce) {
  .fpsj-theme .fpsj-tool-showcase__owner .fpsj-creation-card,
  .fpsj-theme .fpsj-tool-showcase__owner .fpsj-creation-card__media img,
  .fpsj-theme .fpsj-tool-showcase__nav {
    transition:none;
  }
}


/* =========================================================
   FPS JAPAN Tools — gallery emphasis / 0.4.81
   Creation artwork is the visual hero; owner data remains intact.
   ========================================================= */

.fpsj-theme .fpsj-tool-showcase {
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}

.fpsj-theme .fpsj-tool-showcase--skin {
  background:transparent;
}

.fpsj-theme .fpsj-tool-showcase__owner .fpsj-creation-card {
  flex-basis:min(88%,420px);
}

.fpsj-theme .fpsj-tool-showcase__owner .fpsj-creation-card__media {
  aspect-ratio:16/9;
}

.fpsj-theme .fpsj-tool-showcase__owner .fpsj-creation-card__body {
  display:none;
}

@media (max-width:760px) {
  .fpsj-theme .fpsj-tool-showcase__owner .fpsj-creation-card {
    flex-basis:min(92%,360px);
  }
}


/* =========================================================
   FPS JAPAN Tools — unified gallery surface / 0.4.82
   Remove the remaining showcase viewport "box" so Agent and
   Skin creations read as one continuous gallery surface.
   ========================================================= */

.fpsj-theme .fpsj-tool-showcase__viewport {
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}

.fpsj-theme .fpsj-tool-showcase__owner {
  padding:0;
  background:transparent;
}

.fpsj-theme .fpsj-tool-showcase--agent .fpsj-tool-showcase__viewport,
.fpsj-theme .fpsj-tool-showcase--skin .fpsj-tool-showcase__viewport,
.fpsj-theme .fpsj-tool-showcase--agent .fpsj-tool-showcase__owner,
.fpsj-theme .fpsj-tool-showcase--skin .fpsj-tool-showcase__owner {
  background:transparent;
}


/* =========================================================
   FPS JAPAN Tools — copy + gallery surface refinement / 0.4.83
   Restore the previous artwork-area tone without bringing back
   the old bordered panel treatment.
   ========================================================= */

.fpsj-theme .fpsj-tool-showcase__viewport,
.fpsj-theme .fpsj-tool-showcase--agent .fpsj-tool-showcase__viewport,
.fpsj-theme .fpsj-tool-showcase--skin .fpsj-tool-showcase__viewport {
  border:0;
  border-radius:0;
  background:#050b14;
  box-shadow:none;
}

.fpsj-theme .fpsj-tool-showcase__owner,
.fpsj-theme .fpsj-tool-showcase--agent .fpsj-tool-showcase__owner,
.fpsj-theme .fpsj-tool-showcase--skin .fpsj-tool-showcase__owner {
  background:transparent;
}


/* =========================================================
   FPS JAPAN Tools — artwork surface gradient blend / 0.4.84
   Keep #050B14 as the gallery core tone, but soften its top
   and bottom seams into the surrounding Tools background.
   ========================================================= */

.fpsj-theme .fpsj-tool-showcase__viewport,
.fpsj-theme .fpsj-tool-showcase--agent .fpsj-tool-showcase__viewport,
.fpsj-theme .fpsj-tool-showcase--skin .fpsj-tool-showcase__viewport {
  border:0;
  border-radius:0;
  background:
    linear-gradient(
      180deg,
      rgba(5,11,20,0) 0%,
      rgba(5,11,20,.72) 10%,
      #050b14 22%,
      #050b14 78%,
      rgba(5,11,20,.72) 90%,
      rgba(5,11,20,0) 100%
    );
  box-shadow:none;
}


/* =========================================================
   FPS JAPAN Tools — supporting links title + CTA / 0.4.85
   ========================================================= */

.fpsj-theme .fpsj-front-tools .fpsj-front-card--tool-sub {
  grid-template-columns:minmax(0,1fr) auto;
}

.fpsj-theme .fpsj-front-tools .fpsj-front-card--tool-sub > strong {
  min-width:0;
}

.fpsj-theme .fpsj-front-tools .fpsj-front-card--tool-sub > small {
  justify-self:end;
  white-space:nowrap;
}


/* =========================================================
   FPS JAPAN Game Hub — package artwork cards / 0.4.86
   ========================================================= */

:where(.fpsj-theme .fpsj-front-games .fpsj-front-game-grid) {
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:.86rem;
}

:where(.fpsj-theme .fpsj-front-games .fpsj-front-card--game) {
  min-height:0;
  border-color:rgba(79,115,165,.25);
  border-radius:12px;
  background:#081321;
}

:where(.fpsj-theme .fpsj-front-games .fpsj-front-game-card__visual) {
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:3/4;
  overflow:hidden;
  background:#08111d;
}

:where(.fpsj-theme .fpsj-front-games .fpsj-front-game-card__visual)::before {
  display:none;
}

:where(.fpsj-theme .fpsj-front-games .fpsj-front-game-card__visual img) {
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
  transition:transform .28s ease;
}

:where(.fpsj-theme .fpsj-front-games .fpsj-front-card--game:hover .fpsj-front-game-card__visual img) {
  transform:scale(1.025);
}

:where(.fpsj-theme .fpsj-front-games .fpsj-front-game-card__copy) {
  min-height:58px;
  padding:.72rem 2rem .76rem .78rem;
}

:where(.fpsj-theme .fpsj-front-games .fpsj-front-game-card__copy strong) {
  font-size:.78rem;
  line-height:1.3;
}

:where(.fpsj-theme .fpsj-front-games .fpsj-front-game-card__copy small) {
  margin-top:.18rem;
  font-size:.49rem;
}

:where(.fpsj-theme .fpsj-front-games .fpsj-front-card--game > b) {
  right:.72rem;
  bottom:.78rem;
}

@media (max-width:1050px) {
  :where(.fpsj-theme .fpsj-front-games .fpsj-front-game-grid) {
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}

@media (max-width:680px) {
  :where(.fpsj-theme .fpsj-front-games .fpsj-front-game-grid) {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.7rem;
  }

  :where(.fpsj-theme .fpsj-front-games .fpsj-front-card--game) {
    min-height:0;
  }

  :where(.fpsj-theme .fpsj-front-games .fpsj-front-game-card__visual) {
    height:auto;
  }
}

@media (max-width:420px) {
  :where(.fpsj-theme .fpsj-front-games .fpsj-front-game-grid) {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}


/* =========================================================
   FPS JAPAN Game Hub — availability-aware compact shelf / 0.4.90
   ========================================================= */

:where(.fpsj-theme .fpsj-front-games .fpsj-front-game-grid) {
  grid-template-columns:repeat(auto-fill,minmax(164px,176px));
  justify-content:start;
  align-items:start;
  gap:1rem;
}

:where(.fpsj-theme .fpsj-front-games .fpsj-front-card--game) {
  width:100%;
  max-width:176px;
}

:where(.fpsj-theme .fpsj-front-games .fpsj-front-game-card__copy) {
  min-height:54px;
  padding:.66rem 1.8rem .7rem .72rem;
}

@media (max-width:820px) {
  :where(.fpsj-theme .fpsj-front-games .fpsj-front-game-grid) {
    grid-template-columns:repeat(auto-fill,minmax(150px,168px));
    gap:.82rem;
  }

  :where(.fpsj-theme .fpsj-front-games .fpsj-front-card--game) {
    max-width:168px;
  }
}

@media (max-width:520px) {
  :where(.fpsj-theme .fpsj-front-games .fpsj-front-game-grid) {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.7rem;
  }

  :where(.fpsj-theme .fpsj-front-games .fpsj-front-card--game) {
    max-width:none;
  }
}


/* =========================================================
   FPS JAPAN Game Hub — centered compact shelf / 0.4.91
   auto-fit collapses unused tracks so the visible package group
   is centered instead of retaining empty columns on the right.
   ========================================================= */

:where(.fpsj-theme .fpsj-front-games .fpsj-front-game-grid) {
  grid-template-columns:repeat(auto-fit,minmax(164px,176px));
  justify-content:center;
}

@media (max-width:820px) {
  :where(.fpsj-theme .fpsj-front-games .fpsj-front-game-grid) {
    grid-template-columns:repeat(auto-fit,minmax(150px,168px));
    justify-content:center;
  }
}

@media (max-width:520px) {
  :where(.fpsj-theme .fpsj-front-games .fpsj-front-game-grid) {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

/* =========================================================
   Front Page Design System normalization / v0.4.101
   Final polish only: rhythm, radius, borders, type hierarchy.
   Approved section structures remain unchanged.
   ========================================================= */
:where(.fpsj-theme .fpsj-front-v4) {
  --fpsj-front-section-pad:clamp(3.35rem,4vw,4rem);
  --fpsj-front-head-gap:1.25rem;
  --fpsj-front-radius-lg:13px;
  --fpsj-front-radius-sm:9px;
  --fpsj-front-border:rgba(66,103,157,.24);
  --fpsj-front-border-strong:rgba(72,111,169,.30);
  --fpsj-front-label-size:.46rem;
  --fpsj-front-label-spacing:.095em;
  --fpsj-front-meta-size:.42rem;
}

/* 1. Shared vertical rhythm. HERO / Quick Access keep their bespoke spacing. */
:where(.fpsj-theme .fpsj-front-v4 .fpsj-v3-section) {
  padding-block:var(--fpsj-front-section-pad);
}

/* 2. Shared Section Heading geometry. */
:where(.fpsj-theme .fpsj-front-v4 .fpsj-v3-section-head) {
  margin-bottom:var(--fpsj-front-head-gap);
  padding-bottom:.78rem;
  border-bottom-color:rgba(73,115,177,.27);
}
:where(.fpsj-theme .fpsj-front-v4 .fpsj-v3-section-head span) {
  margin-bottom:.3rem;
  font-size:.64rem;
  font-weight:800;
  letter-spacing:.115em;
}
:where(.fpsj-theme .fpsj-front-v4 .fpsj-v3-section-head p) {
  font-size:.76rem;
  line-height:1.45;
}

/* 3. Large surface radius / border normalization. */
:where(.fpsj-theme .fpsj-front-games .fpsj-front-card--game),
:where(.fpsj-theme .fpsj-front-database-panel),
:where(.fpsj-theme .fpsj-front-device-tabs),
:where(.fpsj-theme .fpsj-front-device-panel),
:where(.fpsj-theme .fpsj-front-content-featured-main),
:where(.fpsj-theme .fpsj-front-content-editorial-lane),
:where(.fpsj-theme .fpsj-front-content-footer) {
  border-radius:var(--fpsj-front-radius-lg);
}
:where(.fpsj-theme .fpsj-front-games .fpsj-front-card--game),
:where(.fpsj-theme .fpsj-front-device-tabs),
:where(.fpsj-theme .fpsj-front-device-panel),
:where(.fpsj-theme .fpsj-front-content-featured-main),
:where(.fpsj-theme .fpsj-front-content-editorial-lane),
:where(.fpsj-theme .fpsj-front-content-footer) {
  border-color:var(--fpsj-front-border);
}
:where(.fpsj-theme .fpsj-front-database-panel) {
  border-color:var(--fpsj-front-border-strong);
}

/* Tools keep the intentionally more expressive 16px showcase cards. */

/* 4. Small interactive/card radius normalization. */
:where(.fpsj-theme .fpsj-front-database-metric-row),
:where(.fpsj-theme .fpsj-front-database-device-row),
:where(.fpsj-theme .fpsj-front-database-panel__mark),
:where(.fpsj-theme .fpsj-front-device-tab),
:where(.fpsj-theme .fpsj-front-device-tab__icon),
:where(.fpsj-theme .fpsj-front-device-card),
:where(.fpsj-theme .fpsj-front-device-ranking-footer),
:where(.fpsj-theme .fpsj-front-content-compact-post),
:where(.fpsj-theme .fpsj-front-content-explore-card),
:where(.fpsj-theme .fpsj-front-content-explore-card__icon) {
  border-radius:var(--fpsj-front-radius-sm);
}

/* 5. Component eyebrow / label hierarchy. */
:where(.fpsj-theme .fpsj-front-database-panel__eyebrow),
:where(.fpsj-theme .fpsj-front-database-panel__dataset-head > span),
:where(.fpsj-theme .fpsj-front-device-panel__head > div small),
:where(.fpsj-theme .fpsj-front-content-subhead small),
:where(.fpsj-theme .fpsj-front-content-editorial-lane__head small),
:where(.fpsj-theme .fpsj-front-content-explore-card__copy > small) {
  font-size:var(--fpsj-front-label-size);
  font-weight:850;
  letter-spacing:var(--fpsj-front-label-spacing);
}

/* Metadata is deliberately quieter than component labels. */
:where(.fpsj-theme .fpsj-front-database-panel__dataset-head > small),
:where(.fpsj-theme .fpsj-front-device-panel__head > span),
:where(.fpsj-theme .fpsj-front-device-tab__copy small),
:where(.fpsj-theme .fpsj-front-device-card__maker),
:where(.fpsj-theme .fpsj-front-content-compact-post__copy > small),
:where(.fpsj-theme .fpsj-front-content-compact-post__copy > time),
:where(.fpsj-theme .fpsj-front-content-footer > span small),
:where(.fpsj-theme .fpsj-front-device-ranking-footer > span small) {
  font-size:var(--fpsj-front-meta-size);
}

/* Keep content groups consistently separated after the shared heading. */
:where(.fpsj-theme .fpsj-front-tools .fpsj-front-tool-showcase-grid),
:where(.fpsj-theme .fpsj-front-games .fpsj-front-game-grid),
:where(.fpsj-theme .fpsj-front-database .fpsj-front-database-grid),
:where(.fpsj-theme .fpsj-front-device-ranking .fpsj-front-device-data),
:where(.fpsj-theme .fpsj-front-content .fpsj-front-content-showcase) {
  margin-top:0;
}

@media (max-width:680px) {
  :where(.fpsj-theme .fpsj-front-v4) {
    --fpsj-front-section-pad:2.7rem;
    --fpsj-front-head-gap:1rem;
  }
}

/* =========================================================
   Canonical Front Page Assembly / v0.4.103
   Composition-only guard. Section designs remain owned by parts.
   ========================================================= */
:where(.fpsj-theme .fpsj-front-template) {
  width:100%;
  max-width:none;
}
:where(.fpsj-theme .fpsj-front-template > .wp-block-template-part) {
  width:100%;
  max-width:none;
  margin-block:0;
}
:where(.fpsj-theme .fpsj-front-template > .wp-block-template-part > section) {
  width:100%;
  max-width:none;
}

/* =========================================================
   Front Page continuity refinement / v0.4.103
   Goal: reduce stitched-section feeling and keep a continuous body canvas.
   ========================================================= */
:where(.fpsj-theme .fpsj-front-v4) {
  background:#050b14;
}
:where(.fpsj-theme .fpsj-front-tools),
:where(.fpsj-theme .fpsj-front-games),
:where(.fpsj-theme .fpsj-front-database),
:where(.fpsj-theme .fpsj-front-device-ranking),
:where(.fpsj-theme .fpsj-front-content) {
  background:transparent;
}

/* =========================================================
   Front Page canonical axis alignment / v0.4.104
   Full-page integration fix after continuous public review.
   ========================================================= */

/* Canonical Hero is a full-width opening, not a framed panel. */
:where(.fpsj-theme .fpsj-front-hero) {
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
}

/*
 * Canonical public content axis.
 * Quick Access and approved Site Editor previews already use 1040px.
 */
:where(.fpsj-theme .fpsj-front-tools > .fpsj-v3-shell),
:where(.fpsj-theme .fpsj-front-games > .fpsj-v3-shell),
:where(.fpsj-theme .fpsj-front-database > .fpsj-v3-shell),
:where(.fpsj-theme .fpsj-front-device-ranking > .fpsj-v3-shell),
:where(.fpsj-theme .fpsj-front-content > .fpsj-v3-shell),
:where(.fpsj-theme .fpsj-front-access-shell) {
  width:min(1040px,calc(100% - 2rem))!important;
  max-width:1040px!important;
  margin-inline:auto!important;
}

/*
 * Game Hub previously used a centered fixed-width shelf.
 * Use the common axis so the first card aligns with the Section Heading.
 */
:where(.fpsj-theme .fpsj-front-games .fpsj-front-game-grid) {
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  justify-content:stretch!important;
  width:100%;
}

:where(.fpsj-theme .fpsj-front-games .fpsj-front-card--game) {
  width:100%;
  min-width:0;
  max-width:none;
}

@media (max-width:1050px) {
  :where(.fpsj-theme .fpsj-front-games .fpsj-front-game-grid) {
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
}

@media (max-width:680px) {
  :where(.fpsj-theme .fpsj-front-tools > .fpsj-v3-shell),
  :where(.fpsj-theme .fpsj-front-games > .fpsj-v3-shell),
  :where(.fpsj-theme .fpsj-front-database > .fpsj-v3-shell),
  :where(.fpsj-theme .fpsj-front-device-ranking > .fpsj-v3-shell),
  :where(.fpsj-theme .fpsj-front-content > .fpsj-v3-shell),
  :where(.fpsj-theme .fpsj-front-access-shell) {
    width:min(1040px,calc(100% - 1rem))!important;
  }

  :where(.fpsj-theme .fpsj-front-games .fpsj-front-game-grid) {
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}


/* =========================================================
   Front Page public / Site Editor parity ownership lock / v0.4.105
   Root cause fixed:
   - theme.json gives generic links the cyan palette and generic buttons
     the signal-blue surface.
   - legacy public component rules mostly use :where(), which has zero
     specificity.
   - Site Editor rules are component-scoped + !important.
   As a result, editor-approved colors/cards/buttons could be overridden
   only on the public canvas. These scoped rules restore component
   ownership without changing site-wide generic link/button defaults.
   ========================================================= */

/* Shared heading palette. */
.fpsj-theme.fpsj-front-page .fpsj-front-v4 .fpsj-v3-section-head {
  color:#f7faff!important;
}
.fpsj-theme.fpsj-front-page .fpsj-front-v4 .fpsj-v3-section-head span {
  color:#31d7ff!important;
}
.fpsj-theme.fpsj-front-page .fpsj-front-v4 .fpsj-v3-section-head h2 {
  color:#f7faff!important;
}
.fpsj-theme.fpsj-front-page .fpsj-front-v4 .fpsj-v3-section-head p {
  color:#9aabc4!important;
}

/* HERO search: keep the approved integrated dark button, not theme.json blue. */
.fpsj-theme.fpsj-front-page .fpsj-front-hero__search .wp-block-search__button,
.fpsj-theme.fpsj-front-page .fpsj-front-hero__search .wp-element-button {
  border:0!important;
  border-radius:9px!important;
  background:#0d1b2f!important;
  background-color:#0d1b2f!important;
  color:#b7c6da!important;
  box-shadow:none!important;
}
.fpsj-theme.fpsj-front-page .fpsj-front-hero__search .wp-block-search__button:hover,
.fpsj-theme.fpsj-front-page .fpsj-front-hero__search .wp-element-button:hover {
  background:#102139!important;
  background-color:#102139!important;
  color:#e8f1ff!important;
  box-shadow:none!important;
}

/* Quick Access cards are self-contained dark cards, not generic cyan links. */
.fpsj-theme.fpsj-front-page .fpsj-front-card--access {
  border-color:rgba(66,103,157,.28)!important;
  background:linear-gradient(145deg,#0a1525,#08111e)!important;
  color:#f4f8ff!important;
  text-decoration:none!important;
}
.fpsj-theme.fpsj-front-page .fpsj-front-card--access:hover {
  border-color:rgba(49,215,255,.44)!important;
  background:linear-gradient(145deg,#0d1b2e,#091522)!important;
  color:#f4f8ff!important;
}
.fpsj-theme.fpsj-front-page .fpsj-front-card--access strong {
  color:#f4f8ff!important;
}
.fpsj-theme.fpsj-front-page .fpsj-front-card--access .fpsj-front-card__label {
  color:#738cac!important;
}
.fpsj-theme.fpsj-front-page .fpsj-front-card--access small {
  color:#7f92ae!important;
}
.fpsj-theme.fpsj-front-page .fpsj-front-card--access b {
  color:#5e7698!important;
}
.fpsj-theme.fpsj-front-page .fpsj-front-card--access .fpsj-front-card__count {
  color:#c9d7ea!important;
}

/* Tools: creation CTAs / nav controls / supporting cards keep their dark surfaces. */
.fpsj-theme.fpsj-front-page .fpsj-front-tools .fpsj-tool-showcase__cta {
  border-color:rgba(73,112,170,.28)!important;
  background:#0a1524!important;
  background-color:#0a1524!important;
  color:#f7faff!important;
  box-shadow:none!important;
  text-decoration:none!important;
}
.fpsj-theme.fpsj-front-page .fpsj-front-tools .fpsj-tool-showcase__cta:hover {
  border-color:rgba(49,215,255,.45)!important;
  background:#0d1b2e!important;
  background-color:#0d1b2e!important;
  color:#f7faff!important;
}
.fpsj-theme.fpsj-front-page .fpsj-front-tools .fpsj-tool-showcase__nav {
  border-color:rgba(137,161,195,.28)!important;
  background:#0a1524!important;
  background-color:#0a1524!important;
  color:#c7d5e9!important;
  box-shadow:none!important;
}
.fpsj-theme.fpsj-front-page .fpsj-front-tools .fpsj-tool-showcase__nav:hover:not(:disabled) {
  color:#ffffff!important;
}
.fpsj-theme.fpsj-front-page .fpsj-front-tools .fpsj-front-card--tool-sub {
  color:#f7faff!important;
  text-decoration:none!important;
}
.fpsj-theme.fpsj-front-page .fpsj-front-tools .fpsj-front-card--tool-sub > strong {
  color:#f7faff!important;
}
.fpsj-theme.fpsj-front-page .fpsj-front-tools .fpsj-front-card--tool-sub > small {
  color:#829bbf!important;
}
.fpsj-theme.fpsj-front-page .fpsj-front-tools .fpsj-tool-showcase__all {
  color:#8399b9!important;
}

/* Game Hub cards keep the package-card palette. */
.fpsj-theme.fpsj-front-page .fpsj-front-games .fpsj-front-card--game {
  border-color:var(--fpsj-front-border)!important;
  border-radius:var(--fpsj-front-radius-lg)!important;
  background:#081321!important;
  color:#f4f8ff!important;
  text-decoration:none!important;
}
.fpsj-theme.fpsj-front-page .fpsj-front-games .fpsj-front-game-card__copy strong {
  color:#eef5ff!important;
}
.fpsj-theme.fpsj-front-page .fpsj-front-games .fpsj-front-game-card__copy small {
  color:#697f9f!important;
}

/* Database links/cards keep analytical colors instead of generic link cyan. */
.fpsj-theme.fpsj-front-page .fpsj-front-database .fpsj-front-database-panel {
  border-color:var(--fpsj-front-border-strong)!important;
  border-radius:var(--fpsj-front-radius-lg)!important;
}
.fpsj-theme.fpsj-front-page .fpsj-front-database .fpsj-front-database-device-row {
  color:#eef5ff!important;
  text-decoration:none!important;
}
.fpsj-theme.fpsj-front-page .fpsj-front-database .fpsj-front-database-device-row__name strong {
  color:#cbd8e9!important;
}
.fpsj-theme.fpsj-front-page .fpsj-front-database .fpsj-front-database-panel__all {
  color:#eef5ff!important;
  text-decoration:none!important;
}
.fpsj-theme.fpsj-front-page .fpsj-front-database .fpsj-front-database-panel__all strong {
  color:#aebfd4!important;
}

/* Pro Device: tabs are controls, device cards are dark product links. */
.fpsj-theme.fpsj-front-page .fpsj-front-device-ranking .fpsj-front-device-tab {
  border-color:transparent!important;
  background:transparent!important;
  background-color:transparent!important;
  color:#7188a8!important;
  box-shadow:none!important;
}
.fpsj-theme.fpsj-front-page .fpsj-front-device-ranking .fpsj-front-device-tab:hover {
  background:rgba(11,26,44,.72)!important;
  background-color:rgba(11,26,44,.72)!important;
  color:#b8c8dc!important;
}
.fpsj-theme.fpsj-front-page .fpsj-front-device-ranking .fpsj-front-device-tab.is-active {
  border-color:rgba(49,215,255,.28)!important;
  background:linear-gradient(135deg,rgba(20,52,78,.82),rgba(9,24,42,.88))!important;
  color:#f1f7ff!important;
  box-shadow:inset 0 0 0 1px rgba(49,215,255,.045),0 8px 24px rgba(0,0,0,.12)!important;
}
.fpsj-theme.fpsj-front-page .fpsj-front-device-ranking a.fpsj-front-device-card {
  border-color:rgba(70,106,157,.27)!important;
  background:linear-gradient(180deg,#0a1626,#08121f)!important;
  color:#edf4ff!important;
  text-decoration:none!important;
}
.fpsj-theme.fpsj-front-page .fpsj-front-device-ranking .fpsj-front-device-card__body > strong {
  color:#dbe6f4!important;
}
.fpsj-theme.fpsj-front-page .fpsj-front-device-ranking .fpsj-front-device-ranking-footer > a {
  color:#89e9ff!important;
  text-decoration:none!important;
}

/* Content cards/CTAs keep their component-owned hierarchy. */
.fpsj-theme.fpsj-front-page .fpsj-front-content a.fpsj-front-content-featured-main {
  color:#f5f9ff!important;
  text-decoration:none!important;
}
.fpsj-theme.fpsj-front-page .fpsj-front-content a.fpsj-front-content-explore-card {
  color:#eef5ff!important;
  text-decoration:none!important;
}
.fpsj-theme.fpsj-front-page .fpsj-front-content .fpsj-front-content-explore-card__copy > strong {
  color:#dbe6f4!important;
}
.fpsj-theme.fpsj-front-page .fpsj-front-content .fpsj-front-content-footer > a {
  border-color:rgba(49,215,255,.26)!important;
  background:transparent!important;
  background-color:transparent!important;
  color:#8ceaff!important;
  box-shadow:none!important;
  text-decoration:none!important;
}

/* =========================================================
   Front Page public / Site Editor geometry ownership lock / v0.4.106
   The Site Editor uses strong component-owned geometry while WordPress
   global blockGap / element styles can otherwise repaint public spacing.
   This layer owns only the canonical front-page composition.
   ========================================================= */

/* 0. Canonical assembly: template parts must not inherit WordPress group gaps. */
body.fpsj-theme.fpsj-front-page main.fpsj-front-template {
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  gap:0!important;
}
body.fpsj-theme.fpsj-front-page main.fpsj-front-template > .wp-block-template-part {
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
}
body.fpsj-theme.fpsj-front-page main.fpsj-front-template > .wp-block-template-part > * {
  margin-block-start:0!important;
  margin-block-end:0!important;
}

/* 1. Shared 1040px axis and section stack ownership. */
body.fpsj-theme.fpsj-front-page .fpsj-front-tools > .fpsj-v3-shell,
body.fpsj-theme.fpsj-front-page .fpsj-front-games > .fpsj-v3-shell,
body.fpsj-theme.fpsj-front-page .fpsj-front-database > .fpsj-v3-shell,
body.fpsj-theme.fpsj-front-page .fpsj-front-device-ranking > .fpsj-v3-shell,
body.fpsj-theme.fpsj-front-page .fpsj-front-content > .fpsj-v3-shell,
body.fpsj-theme.fpsj-front-page .fpsj-front-access-shell {
  width:min(1040px,calc(100% - 2rem))!important;
  max-width:1040px!important;
  margin-inline:auto!important;
}
body.fpsj-theme.fpsj-front-page .fpsj-v3-section > .fpsj-v3-shell > *,
body.fpsj-theme.fpsj-front-page .fpsj-front-access-shell > *,
body.fpsj-theme.fpsj-front-page .fpsj-front-hero__inner > * {
  margin-block-start:0!important;
  margin-block-end:0!important;
}
body.fpsj-theme.fpsj-front-page .fpsj-front-v4 .fpsj-v3-section-head {
  margin:0 0 var(--fpsj-front-head-gap,1.25rem)!important;
  padding:0 0 .78rem!important;
}

/* 2. HERO — mirror the approved Site Editor geometry and placeholder tone. */
body.fpsj-theme.fpsj-front-page .fpsj-front-hero {
  padding:4rem 0 2rem!important;
}
body.fpsj-theme.fpsj-front-page .fpsj-front-hero__inner {
  width:min(840px,calc(100% - 2rem))!important;
  max-width:840px!important;
  margin-inline:auto!important;
  text-align:center!important;
}
body.fpsj-theme.fpsj-front-page .fpsj-front-hero__kicker {
  margin:0 auto .9rem!important;
  padding:.4rem .7rem!important;
}
body.fpsj-theme.fpsj-front-page .fpsj-front-hero__title {
  margin:0!important;
}
body.fpsj-theme.fpsj-front-page .fpsj-front-hero__lead {
  margin:1rem auto 0!important;
}
body.fpsj-theme.fpsj-front-page .fpsj-front-hero__search {
  width:100%!important;
  max-width:820px!important;
  margin:1.6rem auto 0!important;
}
body.fpsj-theme.fpsj-front-page .fpsj-front-hero__search .wp-block-search__inside-wrapper {
  min-height:56px!important;
  margin:0!important;
  padding:5px!important;
  border:1px solid #29415f!important;
  border-radius:13px!important;
  background:#0d1b2f!important;
  box-shadow:none!important;
}
body.fpsj-theme.fpsj-front-page .fpsj-front-hero__search input.wp-block-search__input {
  min-width:0!important;
  margin:0!important;
  padding:0 1rem!important;
  border:0!important;
  outline:0!important;
  background:transparent!important;
  color:#eef5ff!important;
  -webkit-text-fill-color:#eef5ff!important;
  box-shadow:none!important;
}
body.fpsj-theme.fpsj-front-page .fpsj-front-hero__search input.wp-block-search__input::placeholder,
body.fpsj-theme.fpsj-front-page .fpsj-front-hero__search input.wp-block-search__input::-webkit-input-placeholder {
  color:#63758d!important;
  -webkit-text-fill-color:#63758d!important;
  opacity:1!important;
}
body.fpsj-theme.fpsj-front-page .fpsj-front-hero__search input.wp-block-search__input::-moz-placeholder {
  color:#63758d!important;
  opacity:1!important;
}
body.fpsj-theme.fpsj-front-page .fpsj-front-hero__search .wp-block-search__button,
body.fpsj-theme.fpsj-front-page .fpsj-front-hero__search .wp-element-button {
  display:grid!important;
  place-items:center!important;
  flex:0 0 58px!important;
  width:58px!important;
  min-width:58px!important;
  min-height:46px!important;
  margin:0!important;
  padding:0 .9rem!important;
  border:0!important;
  border-radius:9px!important;
  background:#0d1b2f!important;
  background-color:#0d1b2f!important;
  color:#b7c6da!important;
  box-shadow:none!important;
}
body.fpsj-theme.fpsj-front-page .fpsj-front-hero__search .wp-block-search__button svg,
body.fpsj-theme.fpsj-front-page .fpsj-front-hero__search .wp-element-button svg {
  width:18px!important;
  height:18px!important;
  fill:currentColor!important;
}
body.fpsj-theme.fpsj-front-page .fpsj-front-hero__hint {
  margin:1.05rem auto 0!important;
}

/* 3. Quick Access — own the grid and every card box, not only its palette. */
body.fpsj-theme.fpsj-front-page .fpsj-front-quick-access {
  padding:1rem 0 3rem!important;
}
body.fpsj-theme.fpsj-front-page .fpsj-front-access-grid {
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:.7rem!important;
  align-items:stretch!important;
  width:100%!important;
  margin:0!important;
}
body.fpsj-theme.fpsj-front-page .fpsj-front-access-grid > * {
  min-width:0!important;
  margin:0!important;
  align-self:stretch!important;
}
body.fpsj-theme.fpsj-front-page .fpsj-front-card--access {
  position:relative!important;
  display:block!important;
  width:100%!important;
  min-width:0!important;
  min-height:108px!important;
  height:100%!important;
  margin:0!important;
  padding:.9rem .95rem .85rem!important;
  border:1px solid #29415f!important;
  border-radius:11px!important;
  background:#0a1525!important;
  box-sizing:border-box!important;
}
body.fpsj-theme.fpsj-front-page .fpsj-front-card--access::after {
  display:none!important;
}
body.fpsj-theme.fpsj-front-page .fpsj-front-card--access .fpsj-front-card__label {
  margin:0 0 .48rem!important;
  font-size:9px!important;
}
body.fpsj-theme.fpsj-front-page .fpsj-front-card--access .fpsj-front-card__title-row {
  display:flex!important;
  align-items:baseline!important;
  justify-content:space-between!important;
  gap:7px!important;
  min-width:0!important;
  margin:0!important;
}
body.fpsj-theme.fpsj-front-page .fpsj-front-card--access strong {
  margin:0!important;
  font-size:16px!important;
}
body.fpsj-theme.fpsj-front-page .fpsj-front-card--access small {
  max-width:88%!important;
  margin:.26rem 0 0!important;
  font-size:10px!important;
}
body.fpsj-theme.fpsj-front-page .fpsj-front-card--access b {
  right:.78rem!important;
  top:.76rem!important;
  margin:0!important;
}
body.fpsj-theme.fpsj-front-page .fpsj-front-card--access .fpsj-front-card__count {
  flex:0 0 auto!important;
  font-size:16px!important;
  line-height:1!important;
}

/* 4. Tools — lock the two showcases, CTA rows, and three support cards. */
body.fpsj-theme.fpsj-front-page .fpsj-front-tool-showcase-grid {
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:1rem!important;
  align-items:start!important;
  width:100%!important;
  margin:0!important;
}
body.fpsj-theme.fpsj-front-page .fpsj-front-tool-showcase-grid > * {
  min-width:0!important;
  margin:0!important;
}
body.fpsj-theme.fpsj-front-page .fpsj-tool-showcase {
  width:100%!important;
  min-width:0!important;
  margin:0!important;
  padding:1rem!important;
  box-sizing:border-box!important;
}
body.fpsj-theme.fpsj-front-page .fpsj-tool-showcase__head {
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:1rem!important;
  margin:0 0 .75rem!important;
}
body.fpsj-theme.fpsj-front-page .fpsj-tool-showcase__head h3,
body.fpsj-theme.fpsj-front-page .fpsj-tool-showcase__head span,
body.fpsj-theme.fpsj-front-page .fpsj-tool-showcase__head > a {
  margin-block-start:0!important;
  margin-block-end:0!important;
}
body.fpsj-theme.fpsj-front-page .fpsj-tool-showcase__viewport {
  margin:0!important;
}
body.fpsj-theme.fpsj-front-page .fpsj-tool-showcase__cta {
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:1rem!important;
  width:100%!important;
  min-height:54px!important;
  margin:.72rem 0 0!important;
  padding:.7rem .85rem!important;
  box-sizing:border-box!important;
}
body.fpsj-theme.fpsj-front-page .fpsj-tool-showcase__cta small,
body.fpsj-theme.fpsj-front-page .fpsj-tool-showcase__cta strong,
body.fpsj-theme.fpsj-front-page .fpsj-tool-showcase__cta b {
  margin:0!important;
}
body.fpsj-theme.fpsj-front-page .fpsj-front-tool-subgrid {
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:.72rem!important;
  width:100%!important;
  margin:.9rem 0 0!important;
}
body.fpsj-theme.fpsj-front-page .fpsj-front-tool-subgrid > * {
  min-width:0!important;
  margin:0!important;
  align-self:stretch!important;
}
body.fpsj-theme.fpsj-front-page .fpsj-front-tools .fpsj-front-card--tool-sub {
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:.7rem!important;
  width:100%!important;
  min-width:0!important;
  min-height:64px!important;
  height:100%!important;
  margin:0!important;
  padding:.8rem .9rem!important;
  box-sizing:border-box!important;
}
body.fpsj-theme.fpsj-front-page .fpsj-front-tools .fpsj-front-card--tool-sub > strong,
body.fpsj-theme.fpsj-front-page .fpsj-front-tools .fpsj-front-card--tool-sub > small {
  margin:0!important;
}

/* 5. Game Hub — card tracks and cards share one component-owned grid. */
body.fpsj-theme.fpsj-front-page .fpsj-front-games .fpsj-front-game-grid {
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:.86rem!important;
  align-items:stretch!important;
  justify-content:stretch!important;
  width:100%!important;
  margin:0!important;
}
body.fpsj-theme.fpsj-front-page .fpsj-front-games .fpsj-front-game-grid > * {
  min-width:0!important;
  margin:0!important;
  align-self:stretch!important;
}
body.fpsj-theme.fpsj-front-page .fpsj-front-games .fpsj-front-card--game {
  display:flex!important;
  flex-direction:column!important;
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  height:100%!important;
  margin:0!important;
  padding:0!important;
  box-sizing:border-box!important;
}
body.fpsj-theme.fpsj-front-page .fpsj-front-games .fpsj-front-game-card__visual,
body.fpsj-theme.fpsj-front-page .fpsj-front-games .fpsj-front-game-card__copy {
  margin:0!important;
}

/* 6. Database — prevent global block gaps from shifting the three analytical panels. */
body.fpsj-theme.fpsj-front-page .fpsj-front-database-grid {
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:.9rem!important;
  align-items:stretch!important;
  width:100%!important;
  margin:0!important;
}
body.fpsj-theme.fpsj-front-page .fpsj-front-database-grid > * {
  min-width:0!important;
  margin:0!important;
  align-self:stretch!important;
}
body.fpsj-theme.fpsj-front-page .fpsj-front-database-panel {
  width:100%!important;
  height:100%!important;
  margin:0!important;
  box-sizing:border-box!important;
}
body.fpsj-theme.fpsj-front-page .fpsj-front-database-panel > * {
  margin-block-start:0!important;
}

/* 7. Pro Device Data — tabs, card grid, cards, and footer own their tracks. */
body.fpsj-theme.fpsj-front-page .fpsj-front-device-data {
  width:100%!important;
  margin:0!important;
}
body.fpsj-theme.fpsj-front-page .fpsj-front-device-tabs {
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:.45rem!important;
  width:100%!important;
  margin:0 0 .82rem!important;
  box-sizing:border-box!important;
}
body.fpsj-theme.fpsj-front-page .fpsj-front-device-tab {
  width:100%!important;
  min-width:0!important;
  margin:0!important;
  box-sizing:border-box!important;
}
body.fpsj-theme.fpsj-front-page .fpsj-front-device-ranking-grid {
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:.68rem!important;
  align-items:stretch!important;
  width:100%!important;
  margin:0!important;
}
body.fpsj-theme.fpsj-front-page .fpsj-front-device-ranking-grid > * {
  min-width:0!important;
  margin:0!important;
  align-self:stretch!important;
}
body.fpsj-theme.fpsj-front-page a.fpsj-front-device-card {
  width:100%!important;
  min-width:0!important;
  height:100%!important;
  margin:0!important;
  box-sizing:border-box!important;
}
body.fpsj-theme.fpsj-front-page .fpsj-front-device-ranking-footer {
  width:100%!important;
  margin:.82rem 0 0!important;
  box-sizing:border-box!important;
}

/* 8. Content — all editorial cards and the final CTA are grid-owned. */
body.fpsj-theme.fpsj-front-page .fpsj-front-content-showcase {
  width:100%!important;
  margin:0!important;
}
body.fpsj-theme.fpsj-front-page .fpsj-front-content-featured-grid {
  display:grid!important;
  grid-template-columns:minmax(0,1.45fr) minmax(280px,.85fr)!important;
  gap:.72rem!important;
  width:100%!important;
  margin:0!important;
}
body.fpsj-theme.fpsj-front-page .fpsj-front-content-featured-grid > *,
body.fpsj-theme.fpsj-front-page .fpsj-front-content-featured-side > *,
body.fpsj-theme.fpsj-front-page .fpsj-front-content-explore-grid > *,
body.fpsj-theme.fpsj-front-page .fpsj-front-content-grid > * {
  min-width:0!important;
  margin:0!important;
}
body.fpsj-theme.fpsj-front-page .fpsj-front-content-explore-grid {
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:.56rem!important;
  width:100%!important;
  margin:0!important;
}
body.fpsj-theme.fpsj-front-page .fpsj-front-content-grid {
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:.68rem!important;
  width:100%!important;
  margin:0!important;
}
body.fpsj-theme.fpsj-front-page .fpsj-front-content-footer {
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:1rem!important;
  width:100%!important;
  margin:0!important;
  box-sizing:border-box!important;
}
body.fpsj-theme.fpsj-front-page .fpsj-front-content-footer > a {
  flex:0 0 auto!important;
  margin:0!important;
}

/* 9. Responsive parity follows the approved Site Editor breakpoints. */
@media (max-width:1050px) {
  body.fpsj-theme.fpsj-front-page .fpsj-front-access-grid,
  body.fpsj-theme.fpsj-front-page .fpsj-front-games .fpsj-front-game-grid {
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
  body.fpsj-theme.fpsj-front-page .fpsj-front-database-grid {
    grid-template-columns:1fr!important;
  }
  body.fpsj-theme.fpsj-front-page .fpsj-front-device-tabs {
    grid-template-columns:repeat(5,minmax(128px,1fr))!important;
    overflow-x:auto!important;
  }
  body.fpsj-theme.fpsj-front-page .fpsj-front-device-ranking-grid {
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}
@media (max-width:760px) {
  body.fpsj-theme.fpsj-front-page .fpsj-front-tool-showcase-grid {
    grid-template-columns:minmax(0,1fr)!important;
  }
}
@media (max-width:680px) {
  body.fpsj-theme.fpsj-front-page .fpsj-front-hero {
    padding:3.2rem 0 1.6rem!important;
  }
  body.fpsj-theme.fpsj-front-page .fpsj-front-tools > .fpsj-v3-shell,
  body.fpsj-theme.fpsj-front-page .fpsj-front-games > .fpsj-v3-shell,
  body.fpsj-theme.fpsj-front-page .fpsj-front-database > .fpsj-v3-shell,
  body.fpsj-theme.fpsj-front-page .fpsj-front-device-ranking > .fpsj-v3-shell,
  body.fpsj-theme.fpsj-front-page .fpsj-front-content > .fpsj-v3-shell,
  body.fpsj-theme.fpsj-front-page .fpsj-front-access-shell {
    width:min(1040px,calc(100% - 1rem))!important;
  }
  body.fpsj-theme.fpsj-front-page .fpsj-front-games .fpsj-front-game-grid,
  body.fpsj-theme.fpsj-front-page .fpsj-front-access-grid {
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  body.fpsj-theme.fpsj-front-page .fpsj-front-device-tabs {
    display:flex!important;
  }
  body.fpsj-theme.fpsj-front-page .fpsj-front-device-tab {
    flex:0 0 132px!important;
  }
  body.fpsj-theme.fpsj-front-page .fpsj-front-content-featured-grid,
  body.fpsj-theme.fpsj-front-page .fpsj-front-content-explore-grid,
  body.fpsj-theme.fpsj-front-page .fpsj-front-content-grid {
    grid-template-columns:1fr!important;
  }
  body.fpsj-theme.fpsj-front-page .fpsj-front-content-footer {
    align-items:flex-start!important;
    flex-direction:column!important;
  }
}
@media (max-width:420px) {
  body.fpsj-theme.fpsj-front-page .fpsj-front-access-grid,
  body.fpsj-theme.fpsj-front-page .fpsj-front-games .fpsj-front-game-grid,
  body.fpsj-theme.fpsj-front-page .fpsj-front-device-ranking-grid {
    grid-template-columns:1fr!important;
  }
}

/* =========================================================
   Open-surface continuity refinement / v0.4.109
   Remove only the requested large outer frames while preserving
   the internal data/article cards and their structural separators.
   ========================================================= */

/* 2. FPS JAPAN Database: three analytical lanes stay separate, but no hard outer frame. */
body.fpsj-theme.fpsj-front-page .fpsj-front-database .fpsj-front-database-panel {
  border:0!important;
  box-shadow:none!important;
  background:
    radial-gradient(
      ellipse at 46% 14%,
      color-mix(in srgb,var(--fpsj-db-accent) 5%,transparent) 0%,
      rgba(10,23,40,.46) 34%,
      rgba(7,16,29,.20) 64%,
      rgba(5,11,20,0) 88%
    )!important;
}
body.fpsj-theme.fpsj-front-page .fpsj-front-database .fpsj-front-database-panel::before {
  display:none!important;
}

/* 3. Pro Device: open the PRO USAGE RANKING wrapper; keep all four ranking cards intact. */
body.fpsj-theme.fpsj-front-page .fpsj-front-device-ranking .fpsj-front-device-panel {
  border:0!important;
  box-shadow:none!important;
  background:
    radial-gradient(
      ellipse at 50% 10%,
      rgba(49,215,255,.035) 0%,
      rgba(9,22,38,.44) 34%,
      rgba(6,15,27,.18) 66%,
      rgba(5,11,20,0) 90%
    )!important;
}

/* 4. Content: open DEVICE REVIEWS / SETTING-GUIDE lane wrappers.
      The three compact article cards inside each lane retain their own borders. */
body.fpsj-theme.fpsj-front-page .fpsj-front-content .fpsj-front-content-editorial-lane {
  border:0!important;
  box-shadow:none!important;
  background:
    radial-gradient(
      ellipse at 50% 8%,
      rgba(52,120,255,.04) 0%,
      rgba(9,22,38,.43) 34%,
      rgba(6,16,28,.17) 66%,
      rgba(5,11,20,0) 92%
    )!important;
}

/* =========================================================
   Background dissolution refinement / v0.4.110
   Fade decorative texture itself before the HERO handoff and
   let open analytical/editorial surfaces emerge from page tone
   instead of beginning as a visible top band.
   ========================================================= */

/* 2. Database: transparent at the top edge, with tone growing only inside the panel. */
body.fpsj-theme.fpsj-front-page .fpsj-front-database .fpsj-front-database-panel {
  background:
    linear-gradient(
      180deg,
      rgba(5,11,20,0) 0%,
      rgba(8,19,33,.06) 16%,
      rgba(9,22,38,.16) 38%,
      rgba(8,18,32,.12) 66%,
      rgba(5,11,20,0) 100%
    ),
    radial-gradient(
      ellipse at 50% 48%,
      color-mix(in srgb,var(--fpsj-db-accent) 4%,transparent) 0%,
      rgba(10,23,40,.12) 42%,
      rgba(5,11,20,0) 78%
    )!important;
}

/* 3. PRO USAGE RANKING: wrapper tone starts transparent; four inner cards stay unchanged. */
body.fpsj-theme.fpsj-front-page .fpsj-front-device-ranking .fpsj-front-device-panel {
  background:
    linear-gradient(
      180deg,
      rgba(5,11,20,0) 0%,
      rgba(8,19,33,.055) 17%,
      rgba(9,22,38,.15) 40%,
      rgba(7,17,30,.11) 68%,
      rgba(5,11,20,0) 100%
    ),
    radial-gradient(
      ellipse at 50% 50%,
      rgba(49,215,255,.028) 0%,
      rgba(9,22,38,.10) 43%,
      rgba(5,11,20,0) 80%
    )!important;
}

/* 4. DEVICE REVIEWS / SETTING-GUIDE: dissolve each lane into the page before its content field. */
body.fpsj-theme.fpsj-front-page .fpsj-front-content .fpsj-front-content-editorial-lane {
  background:
    linear-gradient(
      180deg,
      rgba(5,11,20,0) 0%,
      rgba(8,19,33,.05) 16%,
      rgba(9,22,38,.14) 39%,
      rgba(7,17,30,.10) 69%,
      rgba(5,11,20,0) 100%
    ),
    radial-gradient(
      ellipse at 50% 49%,
      rgba(52,120,255,.03) 0%,
      rgba(9,22,38,.095) 44%,
      rgba(5,11,20,0) 80%
    )!important;
}


/* =========================================================
   HERO / Quick Access single-layer continuity — v0.4.113
   Structural cleanup: the HERO itself owns the neutral page tone.
   All visual decoration lives on one fading pseudo layer; no dark
   cover/bridge layer is used, so there is no synthetic seam.
   ========================================================= */
body.fpsj-theme.fpsj-front-page .fpsj-front-hero {
  position:relative!important;
  isolation:isolate!important;
  overflow:hidden!important;
  padding-bottom:1.8rem!important;
  background:#050b14!important;
  background-color:#050b14!important;
}

body.fpsj-theme.fpsj-front-page .fpsj-front-hero::before {
  content:""!important;
  position:absolute!important;
  z-index:0!important;
  inset:0!important;
  display:block!important;
  pointer-events:none!important;
  opacity:1!important;
  background-image:
    radial-gradient(circle at 50% -10%,rgba(52,120,255,.22),transparent 34rem),
    radial-gradient(circle at 78% 20%,rgba(49,215,255,.075),transparent 21rem),
    linear-gradient(rgba(91,128,180,.12) 1px,transparent 1px),
    linear-gradient(90deg,rgba(91,128,180,.12) 1px,transparent 1px)!important;
  background-size:auto,auto,36px 36px,36px 36px!important;
  background-repeat:no-repeat,no-repeat,repeat,repeat!important;
  -webkit-mask-image:linear-gradient(
    to bottom,
    #000 0%,
    #000 30%,
    rgba(0,0,0,.88) 40%,
    rgba(0,0,0,.58) 50%,
    rgba(0,0,0,.24) 59%,
    rgba(0,0,0,.06) 65%,
    transparent 69%,
    transparent 100%
  )!important;
  mask-image:linear-gradient(
    to bottom,
    #000 0%,
    #000 30%,
    rgba(0,0,0,.88) 40%,
    rgba(0,0,0,.58) 50%,
    rgba(0,0,0,.24) 59%,
    rgba(0,0,0,.06) 65%,
    transparent 69%,
    transparent 100%
  )!important;
}

body.fpsj-theme.fpsj-front-page .fpsj-front-hero::after {
  content:none!important;
  display:none!important;
  background:none!important;
}

body.fpsj-theme.fpsj-front-page .fpsj-front-hero__inner {
  position:relative!important;
  z-index:1!important;
}

/* Search remains a genuinely opaque component surface above HERO decoration. */
body.fpsj-theme.fpsj-front-page .fpsj-front-hero__search,
body.fpsj-theme.fpsj-front-page .fpsj-front-hero__search .wp-block-search__inside-wrapper {
  position:relative!important;
  z-index:2!important;
  isolation:isolate!important;
}
body.fpsj-theme.fpsj-front-page .fpsj-front-hero__search .wp-block-search__inside-wrapper,
body.fpsj-theme.fpsj-front-page .fpsj-front-hero__search input.wp-block-search__input,
body.fpsj-theme.fpsj-front-page .fpsj-front-hero__search .wp-block-search__button,
body.fpsj-theme.fpsj-front-page .fpsj-front-hero__search .wp-element-button {
  background:#0d1b2f!important;
  background-color:#0d1b2f!important;
  opacity:1!important;
}

/* Quick Access uses exactly the HERO base tone from its first pixel. */
body.fpsj-theme.fpsj-front-page .fpsj-front-quick-access {
  position:relative!important;
  background:#050b14!important;
  background-color:#050b14!important;
}
body.fpsj-theme.fpsj-front-page .fpsj-front-quick-access::before {
  content:none!important;
  display:none!important;
  background:none!important;
}


/* =========================================================
   Mobile front-page polish — v0.4.114
   HERO title fit + five-up compact Game Hub package shelf.
   Desktop/tablet geometry remains unchanged.
   ========================================================= */
@media (max-width:680px) {
  body.fpsj-theme.fpsj-front-page .fpsj-front-hero__title {
    width:100%!important;
    max-width:100%!important;
    margin-inline:auto!important;
    font-size:clamp(1.35rem,6.8vw,2.05rem)!important;
    line-height:1.05!important;
    letter-spacing:-.035em!important;
    white-space:nowrap!important;
    overflow:visible!important;
    text-wrap:nowrap!important;
  }

  body.fpsj-theme.fpsj-front-page .fpsj-front-games .fpsj-front-game-grid {
    display:grid!important;
    grid-template-columns:repeat(5,minmax(0,1fr))!important;
    gap:clamp(.18rem,1vw,.34rem)!important;
    align-items:stretch!important;
    justify-content:stretch!important;
    width:100%!important;
  }

  body.fpsj-theme.fpsj-front-page .fpsj-front-games .fpsj-front-card--game {
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    min-height:0!important;
    height:auto!important;
    border-radius:7px!important;
  }

  body.fpsj-theme.fpsj-front-page .fpsj-front-games .fpsj-front-game-card__visual {
    width:100%!important;
    height:auto!important;
    aspect-ratio:3/4!important;
  }

  body.fpsj-theme.fpsj-front-page .fpsj-front-games .fpsj-front-game-card__copy {
    min-height:30px!important;
    padding:.3rem .18rem .32rem!important;
    text-align:center!important;
  }

  body.fpsj-theme.fpsj-front-page .fpsj-front-games .fpsj-front-game-card__copy strong {
    display:block!important;
    margin:0!important;
    font-size:clamp(.42rem,1.85vw,.56rem)!important;
    line-height:1.15!important;
    letter-spacing:-.02em!important;
    overflow-wrap:anywhere!important;
  }

  body.fpsj-theme.fpsj-front-page .fpsj-front-games .fpsj-front-game-card__copy small,
  body.fpsj-theme.fpsj-front-page .fpsj-front-games .fpsj-front-card--game > b {
    display:none!important;
  }
}

@media (max-width:360px) {
  body.fpsj-theme.fpsj-front-page .fpsj-front-hero__title {
    font-size:clamp(1.28rem,6.65vw,1.5rem)!important;
  }

  body.fpsj-theme.fpsj-front-page .fpsj-front-games .fpsj-front-game-grid {
    gap:.16rem!important;
  }

  body.fpsj-theme.fpsj-front-page .fpsj-front-games .fpsj-front-game-card__copy {
    min-height:27px!important;
    padding:.26rem .12rem .28rem!important;
  }

  body.fpsj-theme.fpsj-front-page .fpsj-front-games .fpsj-front-game-card__copy strong {
    font-size:.42rem!important;
  }
}


/* Theme Management: typed Front Page responsive visibility. */
@media (min-width:681px){
  .fpsj-managed-front-section.is-desktop-hidden{display:none!important}
}
@media (max-width:680px){
  .fpsj-managed-front-section.is-mobile-hidden{display:none!important}
}

/* =========================================================
   Agent creation independent portrait art stage / 0.4.149
   Keep the outer showcase media landscape, but present the
   portrait artwork as its own framed 3:4 visual component.
   ========================================================= */
.fpsj-theme .fpsj-tool-showcase--agent .fpsj-creation-card__media {
  display:grid;
  place-items:center;
  box-sizing:border-box;
  padding:10px;
  background:
    radial-gradient(circle at 50% 44%,rgba(49,215,255,.11),transparent 62%),
    linear-gradient(145deg,#081523,#050b14);
}

.fpsj-theme .fpsj-tool-showcase--agent .fpsj-creation-card__media img {
  display:block;
  width:auto;
  max-width:52%;
  height:100%;
  max-height:100%;
  aspect-ratio:3/4;
  box-sizing:border-box;
  margin:0 auto;
  object-fit:contain;
  object-position:center;
  border:1px solid rgba(77,124,188,.34);
  border-radius:8px;
  background:#081321;
  box-shadow:0 12px 30px rgba(0,0,0,.24);
  transform:none;
}

.fpsj-theme .fpsj-tool-showcase--agent .fpsj-creation-card:hover .fpsj-creation-card__media img {
  transform:none;
}

@media (max-width:680px) {
  .fpsj-theme .fpsj-tool-showcase--agent .fpsj-creation-card__media {
    padding:8px;
  }

  .fpsj-theme .fpsj-tool-showcase--agent .fpsj-creation-card__media img {
    max-width:58%;
    border-radius:7px;
  }
}

/* =========================================================
   Agent creation portrait hard-containment override / 0.4.150
   Generator-owned public CSS may load after the Theme. These
   declarations therefore win the final cascade and keep the
   complete portrait artwork inside the independent 3:4 stage.
   ========================================================= */
.fpsj-theme .fpsj-tool-showcase--agent .fpsj-creation-card__media {
  position:relative;
}

.fpsj-theme .fpsj-tool-showcase--agent .fpsj-creation-card__media::before {
  content:"";
  position:absolute;
  z-index:0;
  top:10px;
  bottom:10px;
  left:50%;
  width:auto;
  max-width:calc(100% - 20px);
  aspect-ratio:3/4;
  box-sizing:border-box;
  border:1px solid rgba(77,124,188,.36);
  border-radius:8px;
  background:#081321;
  box-shadow:0 12px 30px rgba(0,0,0,.24);
  transform:translateX(-50%);
  pointer-events:none;
}

.fpsj-theme .fpsj-tool-showcase--agent .fpsj-creation-card__media img {
  position:relative!important;
  z-index:1!important;
  display:block!important;
  width:auto!important;
  min-width:0!important;
  max-width:calc(100% - 22px)!important;
  height:calc(100% - 22px)!important;
  min-height:0!important;
  max-height:calc(100% - 22px)!important;
  aspect-ratio:auto!important;
  box-sizing:border-box!important;
  margin:auto!important;
  object-fit:contain!important;
  object-position:center!important;
  border:0!important;
  border-radius:6px!important;
  background:transparent!important;
  box-shadow:none!important;
  transform:none!important;
}

.fpsj-theme .fpsj-tool-showcase--agent .fpsj-creation-card:hover .fpsj-creation-card__media img {
  transform:none!important;
}

@media (max-width:680px) {
  .fpsj-theme .fpsj-tool-showcase--agent .fpsj-creation-card__media::before {
    top:8px;
    bottom:8px;
    max-width:calc(100% - 16px);
    border-radius:7px;
  }

  .fpsj-theme .fpsj-tool-showcase--agent .fpsj-creation-card__media img {
    max-width:calc(100% - 18px)!important;
    height:calc(100% - 18px)!important;
    max-height:calc(100% - 18px)!important;
    border-radius:5px!important;
  }
}

