
/* The night-study palette extends into the companion games. */
.little-players{margin-top:2.5rem;padding-top:1.8rem;border-top:1px solid var(--line)}.little-heading h2{font-size:1.6rem;margin-bottom:.5rem}.little-heading p{margin-bottom:0}.little-players .companion-shelf{margin-top:1.2rem}.little-players h3{font-size:1.4rem;margin-bottom:.65rem}.puzzle-preview{display:grid;grid-template-columns:repeat(2,60px);gap:5px;transform:rotate(-5deg)}.puzzle-preview span{width:60px;height:60px;background-image:url('../assets/optimized/little-cat.webp?v=d87f4192f3');background-size:120px 120px;border:1px solid #776888}.puzzle-preview span:nth-child(1){background-position:100% 0}.puzzle-preview span:nth-child(2){background-position:0 100%}.puzzle-preview span:nth-child(3){background-position:0 0}.puzzle-preview span:nth-child(4){background-position:100% 100%}.colors-preview{max-width:100%;display:grid;place-items:center}.colors-preview svg{max-width:100%;height:auto}
@media(max-width:480px){.puzzle-preview{grid-template-columns:repeat(2,34px);gap:4px}.puzzle-preview span{width:34px;height:34px;background-size:68px 68px}.colors-preview svg{width:80px}.little-players h3{font-size:1.3rem}}
.memory-difficulty{display:flex;flex-wrap:wrap;gap:.65rem;margin:0 0 1.1rem}.memory-difficulty .game-button{font-size:.875rem}.memory-difficulty .game-button[aria-pressed=true]{border-color:var(--purple);background:#39304f;color:var(--text)}.memory-board[data-pair-count="3"]{grid-template-columns:repeat(3,minmax(0,1fr));max-width:440px}.memory-board[data-pair-count="3"] .memory-tile{aspect-ratio:1;min-height:90px}
:root{--game-ground:#0c1124;--game-border:#514d70;--game-ease:cubic-bezier(.18,.8,.2,1)}
.arcade-main{max-width:1100px}.arcade-nav a{min-height:44px;display:inline-flex;align-items:center}.arcade-header .arcade-bar{padding-block:.7rem}.game-intro h1{font-size:clamp(1.6rem,3vw,2.2rem)}.game-intro{margin-bottom:1.25rem}.arcade-footer{font-size:.875rem}.game-button{min-height:44px;transition:background .15s,border-color .15s,transform .15s}.game-button:active{transform:translateY(1px)}.game-button[hidden]{display:none}
.hub-heading{margin:1.8rem 0}.hub-heading h1{font-size:clamp(1.7rem,3vw,2.35rem)}.hub-heading p{margin:0}.featured-game{position:relative;display:block;min-height:355px;overflow:hidden;border:1px solid var(--game-border);background:#0c1124}.featured-scene{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 40%;opacity:.85}.featured-game:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#090d22f5,transparent 90%);pointer-events:none}.featured-copy{position:relative;z-index:1;padding:2.6rem;max-width:63%}.game-duration{display:block;font:.875rem/1.5 var(--mono);color:var(--purple);margin-bottom:.7rem}.featured-copy h2{font-size:clamp(1.6rem,3vw,2.2rem);color:var(--text);margin-bottom:.8rem}.featured-copy p{color:#d5d7e5;line-height:1.9}.featured-cat{position:absolute;z-index:1;width:215px;height:215px;object-fit:contain;right:12%;bottom:13%;filter:drop-shadow(0 12px 10px #050915aa);transition:transform .35s var(--game-ease)}.featured-game:hover .featured-cat{transform:translateY(-5px)}.play-link{display:inline-block;padding:.65rem 1.1rem;background:#29243e;color:var(--amber);border:1px solid #8f7890;font-size:1rem;min-height:44px}.featured-game:hover .play-link,.companion-game:hover .play-link{background:#42334a;border-color:var(--amber)}.hub-award{font-size:.875rem;color:var(--muted);display:block}.featured-game>.hub-award{position:absolute;right:1.25rem;bottom:1rem;z-index:2}.hub-award.is-earned{color:var(--amber)}.companion-shelf{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:1.5rem}.companion-game{display:grid;grid-template-columns:160px minmax(0,1fr);align-items:center;border:1px solid var(--game-border);background:#11152a;overflow:hidden}.companion-game-copy{padding:1.5rem 1.5rem 1.5rem 0}.companion-game-copy h2{font-size:1.4rem;margin-bottom:.65rem}.companion-game-copy p{font-size:1rem;line-height:1.8;margin-bottom:1.2rem}.companion-game-copy .hub-award{margin-top:.8rem}.game-mini-scene{position:relative;height:100%;min-height:280px;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#18172d,#11152a);overflow:hidden}.kaka-still{display:block;width:120px;height:130px;flex-shrink:0;background:url('../assets/optimized/kaka.webp?v=40287c3f48') 0 0/960px auto no-repeat;filter:drop-shadow(0 7px 6px #03071480)}.game-mini-scene>.kaka-still{position:absolute;top:24px;z-index:1}.memory-preview{display:grid;grid-template-columns:repeat(2,40px);gap:8px;position:absolute;bottom:24px;transform:rotate(-8deg)}.memory-preview span{height:45px;display:grid;place-items:center;background:#24213a;border:1px solid #8b789f;color:var(--purple);font:1.1rem var(--mono)}.mini-lizard{position:absolute;width:150px;height:150px;object-fit:contain;top:9px;z-index:1}.lights-preview{display:grid;grid-template-columns:repeat(3,22px);gap:7px;position:absolute;bottom:29px;transform:rotate(5deg)}.lights-preview span{height:25px;background:#151b30;border:1px solid #65637b}.lights-preview span.on{background:#f5c78a;border-color:#ffe5bc}.classic-shelf{margin-top:2.8rem}.classic-shelf h2{font-size:1.125rem;color:var(--muted)}.classic-links{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.classic-links>a{display:grid;grid-template-columns:1fr auto;padding:1.1rem 0;border-block:1px solid var(--line);gap:.3rem 1rem}.classic-links>a>span:first-child{font-size:1.125rem;color:var(--text)}.classic-links>a>span:nth-child(2){font-size:.875rem;color:var(--muted);grid-row:2}.classic-links .hub-award{grid-column:2;grid-row:1/3;align-self:center}.classic-links>a:hover{border-color:var(--amber)}
.puzzle-layout{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:2.5rem;align-items:start}.puzzle-surface{padding:1.5rem;border:1px solid var(--game-border);background:var(--game-ground)}.puzzle-stats{display:flex;gap:1rem;justify-content:space-between;margin:0 0 1.35rem;padding-bottom:1rem;border-bottom:1px solid var(--line)}.puzzle-stats dt{font-size:.875rem;color:var(--muted)}.puzzle-stats dd{font:600 1.2rem/1.6 var(--mono);margin:.25rem 0 0;color:var(--text)}.puzzle-actions{display:flex;gap:.7rem;flex-wrap:wrap;margin-top:1.35rem}.puzzle-message{min-height:3.4em;font-size:1rem;line-height:1.8;margin:1.2rem 0 0;color:var(--purple)}.puzzle-companion{padding-top:1rem}.puzzle-companion>.kaka-still{width:168px;height:182px;background-size:1344px auto;margin:0 auto 1rem}.puzzle-companion>img{display:block;width:200px;height:200px;object-fit:contain;margin:0 auto 1rem}.puzzle-companion h2{font-size:1.2rem}.puzzle-companion p{font-size:1rem}.puzzle-help{padding-top:1rem;border-top:1px solid var(--line);font-size:.875rem!important}.memory-board{max-width:500px;margin-inline:auto;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.memory-tile{position:relative;aspect-ratio:1/1.04;min-width:0;min-height:70px;border:1px solid #655977;background:#201d36;color:var(--text);padding:0;overflow:hidden;transition:background .18s,transform .18s var(--game-ease),border-color .18s}.memory-tile:before{content:'';position:absolute;inset:7px;border:1px solid #49425f;pointer-events:none}.memory-tile:hover:not([aria-disabled=true]){border-color:var(--amber);background:#302741}.memory-back{font:1.8rem var(--mono);color:var(--purple)}.memory-face{display:none;position:absolute;inset:0;align-items:center;justify-content:flex-end;flex-direction:column;padding:.4rem;gap:.2rem}.memory-face img{width:80%;height:74%;object-fit:contain;min-height:0;filter:drop-shadow(0 5px 4px #0005)}.memory-face img.room-memory{object-fit:cover;height:58%;margin-block:auto}.memory-face .kaka-still{width:76px;height:82.333px;background-size:608px auto;max-height:74%}.memory-face>span:last-child{font-size:.875rem;line-height:1.4}.memory-tile.is-open{background:#131b30;border-color:var(--cyan)}.memory-tile.is-open .memory-face{display:flex}.memory-tile.is-open .memory-back{display:none}.memory-tile.is-matched{background:#1f2930;border-color:#91b9a8}.memory-tile.is-matched:after{content:'已找到';position:absolute;top:5px;right:5px;color:#bedfcf;font-size:.75rem;background:#14241feb;padding:1px 3px}.memory-tile[aria-disabled=true]{cursor:default}.lights-board{display:grid;grid-template-columns:repeat(var(--lights-size,3),minmax(0,1fr));gap:13px;max-width:320px;margin:auto;padding:15px;background:#0a0e1c;border:1px solid #464663}.light-tile{position:relative;aspect-ratio:1;min-height:70px;border:2px solid #4b4d67;background:#141b2e;color:#c5cadf;font-size:1rem;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:7px;transition:background .18s,border-color .18s}.light-tile .light-mark{display:block;width:19px;height:19px;border:2px solid #8b91aa;background:transparent;transform:rotate(45deg)}.light-tile[aria-pressed=true]{background:#e9bd80;color:#332d3b;border-color:#ffddb0}.light-tile[aria-pressed=true] .light-mark{background:#fff4d1;border-color:#8b623e}.light-tile:hover{border-color:var(--cyan)}.light-tile.is-hint{outline:3px solid var(--cyan);outline-offset:3px}.light-tile.is-hint:after{content:'这里';position:absolute;top:3px;right:4px;font-size:.75rem;color:inherit}.light-tile[aria-disabled=true]{cursor:default}.light-tile[aria-disabled=true]:hover{border-color:#ffddb0}
.stars-page .side-panel{border:1px solid var(--game-border);padding:1.2rem;background:#101529}.stars-page .game-layout{grid-template-columns:minmax(0,1fr) 270px;gap:1.75rem}.stars-page .board-shell{border-color:#65628d;max-width:100%!important;box-shadow:0 14px 30px #03071580}.stars-page .game-canvas{image-rendering:auto}.stars-page .board-overlay{background:#080c21b5}.stars-page .overlay-kicker{font-size:.875rem;letter-spacing:0}.stars-page .overlay-title{font-size:1.8rem}.stars-page .game-actions{margin-top:1rem}.stars-page .score-grid{gap:.75rem}.stars-page .score-grid dd{font-size:1.4rem}.stars-page .instructions{font-size:.9375rem}.stars-page .instructions li{margin-bottom:.7rem}.constellation-strip{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;font-size:.875rem;color:var(--muted);margin-bottom:.8rem;min-height:24px}.constellation-strip>span:nth-child(2){font-family:var(--mono);color:var(--amber)}.constellation-track{display:block;margin-left:auto;width:230px;height:38px}.constellation-track svg{display:block;width:100%;height:100%}.constellation-track line{stroke:#353e60;stroke-width:1.5}.constellation-track line.is-lit{stroke:#c3b6e8}.constellation-track circle{fill:#444b69;stroke:#151c36;stroke-width:1.5}.constellation-track circle.is-lit{fill:#ffe0a2;stroke:#ffefc4}.stars-page .game-message{color:var(--purple)}
@media(min-width:801px){.stars-page .play-column{width:100%;max-width:min(100%,max(350px,calc((100svh - 260px)*1.25)));justify-self:center}.memory-board{max-width:min(500px,max(350px,calc((100svh - 390px)*1.33)))}.memory-tile{aspect-ratio:1.1}.puzzle-layout{grid-template-columns:minmax(0,1fr) 240px;max-width:1000px;margin:auto}.puzzle-message{margin-top:.8rem}.puzzle-stats{margin-bottom:1rem;padding-bottom:.75rem}}
@media(max-width:950px){.companion-game{grid-template-columns:125px minmax(0,1fr)}.companion-game-copy{padding:1.25rem 1rem 1.25rem 0}.game-mini-scene>.kaka-still{transform:scale(.9)}.puzzle-layout{gap:1.5rem;grid-template-columns:minmax(0,1fr) 200px}.puzzle-surface{padding:1rem}.puzzle-stats dd{font-size:1.05rem}}
@media(max-width:800px){.stars-page .game-layout{grid-template-columns:1fr}.stars-page .side-panel{display:block}.stars-page .score-grid{grid-template-columns:repeat(3,1fr);margin-bottom:1.2rem}.stars-page .board-shell{max-width:min(100%,640px)!important}.companion-shelf{grid-template-columns:1fr}.companion-game{grid-template-columns:170px minmax(0,1fr)}.game-mini-scene{min-height:240px}.companion-game-copy{padding:1.5rem 1.5rem 1.5rem 0}.featured-copy{padding:2rem;max-width:70%}.featured-cat{right:3%;width:180px;height:180px}.puzzle-layout{grid-template-columns:1fr}.puzzle-companion{display:grid;grid-template-columns:110px 1fr;gap:0 1.2rem;padding-top:0}.puzzle-companion>.kaka-still{grid-row:1/5;width:110px;height:119.16px;background-size:880px auto;margin:0}.puzzle-companion>img{grid-row:1/5;width:110px;height:110px;margin:0}.puzzle-companion h2,.puzzle-companion p{grid-column:2}.puzzle-help{grid-column:1/-1!important}.puzzle-main{max-width:680px}.memory-tile{aspect-ratio:1.04}.puzzle-stats dd{font-size:1.2rem}.puzzle-surface{padding:1.25rem}.classic-links{grid-template-columns:1fr;gap:0}.classic-links>a+a{border-top:0}}
@media(max-width:480px){.arcade-bar{padding-inline:1rem}.arcade-nav{font-size:.875rem;gap:0 1rem}.arcade-main{width:calc(100% - 2rem);margin-top:1.25rem}.hub-heading{margin:1rem 0 1.5rem}.featured-game{min-height:365px}.featured-copy{padding:1.5rem;max-width:100%}.featured-copy p{max-width:65%;font-size:.9375rem}.featured-copy h2{font-size:1.7rem}.featured-scene{object-position:57% center}.featured-cat{width:150px;height:150px;right:0;bottom:33px}.featured-game>.hub-award{right:1rem;bottom:.65rem;font-size:.8125rem}.companion-game{grid-template-columns:92px minmax(0,1fr)}.game-mini-scene{min-height:285px}.game-mini-scene>.kaka-still{transform:scale(.78);top:28px}.mini-lizard{width:120px;height:120px;top:22px}.memory-preview{grid-template-columns:repeat(2,28px);gap:6px;bottom:34px}.memory-preview span{height:37px}.lights-preview{grid-template-columns:repeat(3,18px);gap:4px;bottom:48px}.lights-preview span{height:22px}.companion-game-copy{padding:1.3rem .9rem 1.3rem .4rem}.companion-game-copy h2{font-size:1.3rem}.companion-game-copy p{font-size:.9375rem}.game-duration{font-size:.8125rem}.play-link{font-size:.9375rem;padding:.55rem .7rem}.classic-links>a{grid-template-columns:1fr auto}.puzzle-surface{padding:.85rem}.puzzle-stats{gap:.5rem}.puzzle-stats dt{font-size:.8125rem}.puzzle-stats dd{font-size:1rem}.memory-board{gap:7px}.memory-tile{aspect-ratio:.72;min-height:90px}.memory-face{padding:.2rem;gap:.1rem}.memory-face>span:last-child{font-size:.8125rem}.memory-face .kaka-still{width:54px;height:58.5px;background-size:432px auto}.memory-tile.is-matched:after{font-size:.75rem;top:2px;right:1px;padding:0}.memory-tile.is-matched .memory-face{padding-top:13px}.memory-tile:before{inset:5px}.puzzle-actions{gap:.6rem}.puzzle-actions .game-button{font-size:.875rem;padding:.55rem .6rem}.lights-board{gap:9px;padding:10px}.light-tile{min-height:65px;font-size:.9375rem}.puzzle-companion{grid-template-columns:80px 1fr;gap:0 1rem}.puzzle-companion>.kaka-still{width:80px;height:86.66px;background-size:640px auto}.puzzle-companion>img{width:85px;height:85px}.stars-page .overlay-title{font-size:1.4rem}.stars-page .overlay-description{font-size:.875rem}.constellation-strip{gap:.5rem}.constellation-track{width:150px;height:28px}.stars-page .score-grid dd{font-size:1.25rem}.stars-page .side-panel{padding:1rem}.stars-page .game-intro h1{font-size:1.6rem}.stars-page .game-intro p{font-size:.9375rem}.stars-page .touch-controls{margin-top:1rem}.stars-page .control-button{flex:1;min-height:50px}.stars-page .game-message{min-height:3.2em}}
@media(prefers-reduced-motion:reduce){.featured-cat,.memory-tile,.light-tile,.game-button{transition:none}.featured-game:hover .featured-cat{transform:none}}

/* Optional progression keeps the small boards as the initial play surface. */
.lights-difficulty{display:flex;flex-wrap:wrap;gap:.65rem;margin:0 0 1.1rem}.lights-difficulty .game-button{font-size:.875rem;min-height:44px}.lights-difficulty .game-button[aria-pressed=true]{border-color:var(--amber);background:#3b293b;color:var(--amber)}
.memory-board[data-pair-count="8"]{grid-template-columns:repeat(4,minmax(0,1fr));max-width:560px}.memory-board[data-pair-count="8"] .memory-tile{aspect-ratio:1}
.lights-board[data-size="4"]{max-width:430px}.lights-board[data-size="5"]{max-width:500px}.lights-board[data-size="4"] .light-tile,.lights-board[data-size="5"] .light-tile{min-width:44px;min-height:44px;font-size:.8125rem;line-height:1.3;gap:3px;padding:3px}.lights-board[data-size="4"] .light-mark,.lights-board[data-size="5"] .light-mark{width:14px;height:14px}
@media(max-width:480px){.lights-board[data-size="4"]{gap:7px;padding:8px}.lights-board[data-size="5"]{gap:5px;padding:6px}.lights-difficulty{gap:.5rem}.lights-difficulty .game-button{font-size:.8125rem;padding:.55rem .6rem}.memory-difficulty{gap:.5rem}.memory-difficulty .game-button{font-size:.8125rem;padding:.55rem .6rem}}
