/* The game desk keeps the original room, characters, and square controls. */
.hub-craft { --hub-ease:cubic-bezier(.16,1,.3,1); }
.hub-craft-main { margin-top:clamp(2rem,5vw,4.5rem); }
.hub-craft h1,.hub-craft h2,.hub-craft h3,.hub-browser-controls button { font-family:var(--display-cjk,var(--sans)); }
.hub-craft .brand-mark { box-shadow:none; }
.hub-brand-sub { color:var(--muted);font-weight:400; }
.hub-craft .arcade-nav a { display:inline-flex;align-items:center;min-height:44px; }
.hub-craft [hidden] { display:none!important; }
.hub-arrow { width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0; }
.hub-sr-only { position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap; }
.hub-arrival { display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.4fr);gap:clamp(2rem,4vw,3.5rem);align-items:center; }
.hub-arrival-copy { padding-block:1rem; }
.hub-arrival h1 { font-size:clamp(2.5rem,4.3vw,3.7rem);font-weight:700;line-height:1.3;letter-spacing:-.025em;text-wrap:balance;margin-bottom:1.5rem; }
.hub-arrival-copy>p { font-size:1.0625rem;line-height:1.9;margin-bottom:1.25rem; }
.hub-text-link { display:inline-flex;gap:1rem;align-items:center;min-height:46px;color:var(--amber);border-bottom:1px solid var(--amber);padding:.35rem 0; }
.hub-text-link:hover { color:var(--text);border-color:var(--text); }
.hub-arrival-copy .hub-arrival-note { font-size:.875rem;line-height:1.8;color:var(--muted);margin-top:2rem;margin-bottom:0; }
.hub-room { position:relative;min-height:460px;overflow:hidden;background:var(--panel); }
.hub-room-scene { position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:58% 50%; }
.hub-room-kaka { position:absolute;right:9%;bottom:160px;width:144px;height:156px;background-size:1152px auto;filter:drop-shadow(0 10px 8px #040714b3); }
.hub-recommendation { position:absolute;bottom:0;left:0;right:0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1.5rem;padding:1.4rem 1.6rem;background:#101426f5; }
.hub-recommend-intro { font-size:.8125rem;color:var(--muted);line-height:1.7;margin:.8rem 0 0; }
.hub-recommend-link { display:block;min-height:104px; }
.hub-recommend-link h2 { font-size:1.55rem;color:var(--text);line-height:1.4;margin:0 0 .45rem; }
.hub-recommend-link p { font-size:.9375rem;line-height:1.6;max-width:36ch;margin:0 0 .75rem; }
.hub-recommend-action { display:flex;align-items:center;gap:1rem;color:var(--amber);font-size:.9375rem; }
.hub-recommend-link:hover h2,.hub-recommend-link:hover .hub-recommend-action { color:var(--cyan); }
.hub-shuffle { align-self:end;display:flex;align-items:center;justify-content:center;gap:.5rem;border:1px solid var(--line);background:var(--panel);color:var(--text);min-height:46px;padding:.55rem .8rem;font-size:.875rem;white-space:nowrap; }
.hub-shuffle svg { width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round; }
.hub-shuffle:hover { border-color:var(--amber);color:var(--amber); }
.hub-shuffle:active { background:#282237; }
.hub-recommend-link.is-changing { animation:hub-reveal .3s var(--hub-ease); }
@keyframes hub-reveal { from { clip-path:inset(0 15% 0 0);opacity:.45; } to { clip-path:inset(0);opacity:1; } }
.hub-browser { padding-top:clamp(3rem,6vw,5rem);scroll-margin-top:2rem; }
.hub-browser-heading { display:flex;align-items:baseline;justify-content:space-between;gap:1.5rem;margin-bottom:1.2rem; }
.hub-browser-heading h2 { font-size:clamp(1.55rem,2.5vw,2rem);line-height:1.4;margin:0; }
.hub-browser-heading p { font-size:.875rem;margin:0; }
.hub-browser-controls { display:flex;flex-wrap:wrap;gap:.65rem; }
.hub-browser-controls button { min-height:46px;padding:.65rem 1.2rem;border:1px solid var(--line);background:transparent;color:var(--muted);font-size:.9375rem;line-height:1.4; }
.hub-browser-controls button[aria-pressed=true] { color:var(--amber);border-color:var(--amber);background:#292033; }
.hub-browser-controls button:hover { color:var(--text);border-color:var(--purple); }
.hub-browser-controls button[aria-pressed=true]:hover { color:var(--amber);border-color:var(--amber); }
.hub-section { margin-top:clamp(2.5rem,5vw,4rem);scroll-margin-top:2rem; }
.hub-section-heading { display:flex;gap:1.5rem;justify-content:space-between;align-items:baseline;margin-bottom:1.6rem; }
.hub-section-heading h2 { font-size:clamp(1.5rem,2.5vw,1.85rem);line-height:1.4;margin:0;letter-spacing:-.02em; }
.hub-section-heading p { max-width:43ch;font-size:.9375rem;line-height:1.7;margin:0; }
.hub-first-games { display:grid;grid-template-columns:1fr 1fr;gap:1.5rem; }
.hub-first-game { display:grid;grid-template-columns:130px minmax(0,1fr);min-height:250px;background:var(--panel);overflow:hidden; }
.hub-first-art { position:relative;align-self:stretch;display:flex;align-items:center;justify-content:center; }
.hub-first-kaka { position:absolute;top:28px;left:14px;width:96px;height:104px;background-size:768px auto; }
.hub-memory-pair { display:flex;gap:8px;position:absolute;bottom:34px;left:18px; }
.hub-memory-pair img { width:43px;height:56px;object-fit:contain;background:#201d36;border:1px solid #655977;padding:3px; }
.hub-first-copy { display:flex;flex-direction:column;justify-content:center;padding:1.5rem 1.5rem 1.5rem 0; }
.hub-first-copy h3 { font-size:1.45rem;line-height:1.4;color:var(--text);margin:0 0 .7rem; }
.hub-first-copy p { font-size:.9375rem;line-height:1.8;margin:0 0 1rem; }
.hub-entry-action { display:flex;align-items:center;gap:1rem;color:var(--amber);font-size:.9375rem; }
.hub-award,.hub-item-note { display:block;color:var(--muted);font-size:.8125rem;line-height:1.6;margin-top:.75rem; }
.hub-first-game:hover h3,.hub-first-game:hover .hub-entry-action,.hub-story-entry:hover h3,.hub-stars-entry:hover h3 { color:var(--cyan); }
.hub-puzzle-preview { position:relative;width:106px;height:124px;background:#161b2c; }
.hub-puzzle-preview img { width:100%;height:100%;object-fit:contain; }
.hub-puzzle-preview>span { position:absolute;background:var(--night); }
.hub-puzzle-preview>span:nth-child(2) { top:0;bottom:0;left:50%;width:3px; }
.hub-puzzle-preview>span:nth-child(3) { left:0;right:0;top:50%;height:3px; }
.hub-learning-list { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:2rem;margin-top:1.5rem; }
.hub-learning-entry { display:grid;grid-template-columns:56px minmax(0,1fr) 22px;gap:.9rem;align-items:center;padding:1.3rem 0;min-height:120px;border-bottom:1px solid var(--line); }
.hub-learning-art { display:flex;align-items:center;justify-content:center;width:56px;height:64px; }
.hub-learning-art .learning-picture { width:64px;flex-shrink:0; }
.hub-entry-copy h3 { font-size:1.0625rem;line-height:1.6;color:var(--text);margin:0 0 .3rem; }
.hub-entry-copy p { font-size:.875rem;line-height:1.75;margin:0; }
.hub-learning-entry>.hub-arrow,.hub-creation-entry>.hub-arrow,.hub-challenge-list>a>.hub-arrow { color:var(--amber); }
.hub-learning-entry:hover h3,.hub-creation-entry:hover h3,.hub-challenge-list>a:hover h3 { color:var(--amber); }
.hub-learning-entry:hover,.hub-creation-entry:hover,.hub-challenge-list>a:hover { border-color:var(--purple); }
.hub-color-art svg { display:block;width:56px;height:56px; }
.hub-sum-art { color:var(--cyan);font:600 .9375rem var(--mono);white-space:nowrap; }
.hub-key-art { display:grid;grid-template-columns:repeat(3,20px);gap:2px; }
.hub-key-art span { display:grid;place-items:center;height:26px;border:1px solid #625a77;font:.8125rem var(--mono);color:var(--purple);background:#1b1a30; }
.hub-pointer-art svg { width:52px;height:52px;fill:none;stroke:var(--cyan);stroke-width:1.6;stroke-linejoin:round; }
.hub-creation-layout { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:2.5rem; }
.hub-story-entry { display:block;background:var(--panel);overflow:hidden; }
.hub-story-stage { position:relative;height:242px;overflow:hidden; }
.hub-story-stage>img:first-child { width:100%;height:100%;object-fit:cover;object-position:50% 65%; }
.hub-story-stage>.kaka-still { position:absolute;left:22%;bottom:18px; }
.hub-story-stage>.hub-story-cat { position:absolute;right:15%;bottom:15px;width:105px;height:105px;object-fit:contain;filter:drop-shadow(0 8px 7px #03071480); }
.hub-story-copy { padding:1.6rem 1.8rem 1.8rem; }
.hub-story-copy h3 { color:var(--text);font-size:1.5rem;line-height:1.45;margin-bottom:.7rem; }
.hub-story-copy p { line-height:1.8;font-size:.9375rem;margin-bottom:1.1rem; }
.hub-creation-list { display:flex;flex-direction:column; }
.hub-creation-entry { display:grid;grid-template-columns:104px minmax(0,1fr) 22px;gap:1.3rem;align-items:center;flex:1;min-height:108px;padding:1rem 0;border-bottom:1px solid var(--line); }
.hub-creation-entry:first-child { border-top:1px solid var(--line); }
.hub-creation-art { display:flex;align-items:center;justify-content:center;width:104px;min-height:76px; }
.hub-creation-art .learning-picture { width:65px;flex-shrink:0; }
.hub-creation-art .learning-picture+.learning-picture { margin-left:-15px; }
.hub-road-art svg { width:78px;height:64px;fill:none;stroke:var(--cyan);stroke-width:7; }
.hub-road-art svg rect { stroke:var(--purple);stroke-width:1.5; }
.hub-local-note { margin:1.25rem 0 0;max-width:65ch;font-size:.875rem;line-height:1.8;color:var(--muted); }
.hub-challenge-layout { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:2.5rem; }
.hub-stars-entry { display:block;position:relative;min-height:365px;overflow:hidden;background:var(--panel); }
.hub-stars-scene { position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:38% 48%;opacity:.55; }
.hub-stars-cat { position:absolute;right:5%;top:18px;width:140px;height:140px;object-fit:contain; }
.hub-stars-copy { position:relative;z-index:1;padding:10rem 1.8rem 1.6rem;background:linear-gradient(0deg,#0c1124 0%,#0c1124db 58%,#0c112400 100%); }
.hub-stars-copy h3 { color:var(--text);font-size:1.45rem;line-height:1.4;margin-bottom:.7rem; }
.hub-stars-copy p { max-width:28ch;font-size:.9375rem;line-height:1.8;margin-bottom:1rem; }
.hub-challenge-list { display:flex;flex-direction:column; }
.hub-challenge-list>a { display:flex;flex:1;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.2rem 0;border-bottom:1px solid var(--line); }
.hub-challenge-list>a:first-child { border-top:1px solid var(--line); }
.hub-challenge-list h3 { color:var(--text);font-size:1.125rem;line-height:1.5;margin:0 0 .45rem; }
.hub-challenge-list p { margin:0;font-size:.875rem;line-height:1.75;max-width:43ch; }
.hub-challenge-list .hub-award { margin-top:.4rem; }
.hub-afterword { display:flex;justify-content:space-between;align-items:center;gap:3rem;margin-top:4rem;padding:2rem 0;border-top:1px solid var(--line); }
.hub-afterword p { max-width:65ch;font-size:.875rem;line-height:1.8;margin:0; }
.hub-afterword a { font-size:.9375rem;flex-shrink:0; }
.hub-craft .arcade-footer { padding-block:1.5rem;margin-top:0; }
.hub-craft .arcade-footer a { display:inline-flex;align-items:center;min-height:44px; }
@media(max-width:1000px) {
  .hub-arrival { grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:2rem; }
  .hub-arrival h1 { font-size:clamp(2.4rem,4.3vw,3.2rem); }
  .hub-room { min-height:455px; }
  .hub-recommendation { grid-template-columns:1fr;gap:1rem;padding:1.25rem; }
  .hub-recommend-link { min-height:100px; }
  .hub-shuffle { justify-self:start; }
  .hub-room-kaka { bottom:224px;right:12%;width:120px;height:130px;background-size:960px auto; }
  .hub-first-game { grid-template-columns:105px minmax(0,1fr); }
  .hub-first-copy { padding-right:1.2rem; }
  .hub-first-kaka { left:5px;width:90px;height:97.5px;background-size:720px auto; }
  .hub-memory-pair { left:8px; }
  .hub-puzzle-preview { width:88px;height:106px; }
  .hub-learning-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .hub-creation-layout,.hub-challenge-layout { gap:1.7rem; }
  .hub-creation-entry { grid-template-columns:80px minmax(0,1fr) 22px;gap:1rem; }
  .hub-creation-art { width:80px; }
  .hub-creation-art .learning-picture { width:55px; }
  .hub-story-copy { padding:1.4rem; }
  .hub-story-stage>.kaka-still { left:15%; }
  .hub-story-stage>.hub-story-cat { right:8%; }
}
@media(max-width:760px) {
  .hub-craft-main { margin-top:2rem; }
  .hub-arrival { grid-template-columns:1fr;gap:1.6rem; }
  .hub-arrival-copy { padding:0; }
  .hub-arrival h1 { font-size:clamp(2.5rem,7vw,3.7rem);margin-bottom:1rem; }
  .hub-arrival-copy>p { font-size:1rem;line-height:1.8;max-width:38ch; }
  .hub-arrival-copy .hub-arrival-note { display:none; }
  .hub-room { min-height:390px; }
  .hub-recommendation { grid-template-columns:minmax(0,1fr) auto;gap:1rem; }
  .hub-room-kaka { bottom:158px;right:10%; }
  .hub-recommend-link { min-height:94px; }
  .hub-recommend-link h2 { font-size:1.4rem; }
  .hub-recommend-link p { max-width:29ch; }
  .hub-browser { padding-top:2.5rem; }
  .hub-browser-heading { flex-wrap:wrap;gap:.5rem; }
  .hub-section-heading { display:block; }
  .hub-section-heading h2 { margin-bottom:.65rem; }
  .hub-section-heading p { max-width:46ch; }
  .hub-first-games { gap:1rem; }
  .hub-first-game { grid-template-columns:88px minmax(0,1fr);min-height:245px; }
  .hub-first-copy { padding:1.1rem 1rem 1.1rem 0; }
  .hub-first-copy h3 { font-size:1.25rem; }
  .hub-first-copy p { font-size:.875rem; }
  .hub-first-kaka { width:80px;height:86.667px;background-size:640px auto; }
  .hub-memory-pair { left:6px;gap:5px; }
  .hub-memory-pair img { width:35px;height:47px; }
  .hub-puzzle-preview { width:70px;height:92px; }
  .hub-creation-layout { grid-template-columns:1fr 1fr;gap:1.4rem; }
  .hub-story-stage { height:225px; }
  .hub-story-stage>.kaka-still { left:6%;width:98px;height:106.167px;background-size:784px auto; }
  .hub-story-stage>.hub-story-cat { width:85px;height:85px;right:4%; }
  .hub-creation-entry { grid-template-columns:65px minmax(0,1fr) 22px;gap:.6rem; }
  .hub-creation-art { width:65px; }
  .hub-creation-art .learning-picture { width:47px; }
  .hub-challenge-layout { gap:1.4rem;grid-template-columns:1fr 1fr; }
  .hub-stars-copy { padding-inline:1.3rem; }
  .hub-stars-cat { width:120px;height:120px; }
  .hub-afterword { display:block;margin-top:3rem; }
  .hub-afterword a { margin-top:1rem; }
}
@media(max-width:520px) {
  .hub-craft-main { width:calc(100% - 2rem);margin-top:1.6rem; }
  .hub-craft .arcade-bar { gap:.5rem; }
  .hub-craft .arcade-nav { gap:0 1.1rem; }
  .hub-arrival h1 { font-size:2.55rem;line-height:1.3; }
  .hub-desktop-break { display:none; }
  .hub-arrival-copy>p { max-width:28ch; }
  .hub-room { min-height:355px; }
  .hub-room-scene { object-position:60% 50%; }
  .hub-room-kaka { right:8%;bottom:176px;width:96px;height:104px;background-size:768px auto; }
  .hub-recommendation { padding:1.1rem;gap:.75rem;grid-template-columns:minmax(0,1fr) 44px; }
  .hub-recommend-intro { font-size:.8125rem; }
  .hub-recommend-link h2 { font-size:1.3rem; }
  .hub-recommend-link p { font-size:.875rem;line-height:1.75; }
  .hub-shuffle { width:44px;min-height:72px;padding:.4rem;flex-direction:column;gap:.2rem;white-space:normal;font-size:.8125rem;line-height:1.4; }
  .hub-shuffle span { text-align:center; }
  .hub-browser-controls { display:grid;grid-template-columns:1fr 1fr;gap:.6rem; }
  .hub-browser-controls button { padding:.65rem .7rem;min-height:46px; }
  .hub-section { margin-top:2.5rem; }
  .hub-section-heading { margin-bottom:1.2rem; }
  .hub-first-games { grid-template-columns:1fr; }
  .hub-first-game { grid-template-columns:108px minmax(0,1fr);min-height:216px; }
  .hub-first-copy { padding:1.25rem 1.2rem 1.25rem 0; }
  .hub-first-copy h3 { font-size:1.35rem; }
  .hub-first-copy p { font-size:.9375rem; }
  .hub-first-kaka { left:10px;top:23px;width:88px;height:95.333px;background-size:704px auto; }
  .hub-memory-pair { bottom:26px;left:13px; }
  .hub-memory-pair img { width:38px;height:48px; }
  .hub-puzzle-preview { width:85px;height:112px; }
  .hub-learning-list { grid-template-columns:1fr;margin-top:.7rem; }
  .hub-learning-entry { grid-template-columns:66px minmax(0,1fr) 22px;gap:1rem;min-height:106px;padding:1.1rem 0; }
  .hub-entry-copy h3 { font-size:1.125rem; }
  .hub-entry-copy p { font-size:.875rem; }
  .hub-learning-art { width:66px; }
  .hub-creation-layout,.hub-challenge-layout { grid-template-columns:1fr;gap:1.4rem; }
  .hub-story-stage { height:230px; }
  .hub-story-stage>.kaka-still { left:23%;width:120px;height:130px;background-size:960px auto; }
  .hub-story-stage>.hub-story-cat { right:16%;width:95px;height:95px; }
  .hub-story-copy { padding:1.3rem 1.4rem 1.5rem; }
  .hub-story-copy h3 { font-size:1.4rem; }
  .hub-creation-entry { grid-template-columns:79px minmax(0,1fr) 22px;gap:.85rem;min-height:110px;padding:1rem 0; }
  .hub-creation-art { width:79px; }
  .hub-creation-art .learning-picture { width:55px; }
  .hub-stars-entry { min-height:325px; }
  .hub-stars-copy { padding-top:8rem;padding-inline:1.4rem; }
  .hub-stars-cat { width:135px;height:135px;right:9%;top:10px; }
  .hub-challenge-list>a { padding:1.2rem 0; }
  .hub-local-note { margin-top:1rem; }
  .hub-afterword { margin-top:2.5rem; }
}
@media(prefers-reduced-motion:reduce) {
  .hub-recommend-link.is-changing { animation:none; }
}

/* Real-copy corrections from the combined desktop/phone inspection. */
.hub-arrival h1{font-size:clamp(2.4rem,3.6vw,3.25rem);font-weight:600}
@media(min-width:761px) and (max-width:1000px){.hub-arrival h1{font-size:2.5rem}}
@media(max-width:760px){.hub-arrival h1{font-size:clamp(2.3rem,9vw,3rem)}}
@media(max-width:480px){.hub-recommendation{grid-template-columns:minmax(0,1fr);gap:10px;padding:18px 20px}.hub-shuffle{width:auto;min-width:105px;min-height:44px;justify-self:start;flex-direction:row;white-space:nowrap;gap:8px}.hub-shuffle span{white-space:nowrap}.hub-room{min-height:440px}.hub-room-kaka{bottom:235px}.hub-recommend-link{min-height:96px}.hub-recommend-intro{max-width:30ch}}
