.puzzle-gallery{display:flex;gap:9px;justify-content:center;margin:0 0 12px}
.puzzle-gallery button{width:128px;border:2px solid transparent;border-radius:14px;background:#fff;padding:5px;color:var(--forest);font-weight:800;cursor:pointer;box-shadow:0 3px 10px #173f3a18}
.puzzle-gallery button.active{border-color:var(--gold);background:#fff8d9}
.puzzle-gallery img{display:block;width:100%;height:70px;object-fit:cover;border-radius:9px;margin-bottom:4px}
.knot-card{background:linear-gradient(145deg,#8db66c,#497d60);color:#fff}
.knot-card em,.mahjong-card em{color:#fff3bd}
.knot-board{position:relative;width:min(100%,390px);aspect-ratio:1;margin:12px auto;border-radius:22px;overflow:hidden;touch-action:none;background:linear-gradient(145deg,#dcedc9,#b8d79f);border:5px solid #315e49;box-shadow:inset 0 0 22px #173f3a20}
.ocean-mode .knot-board{background:linear-gradient(145deg,#aee4df,#62bdc1);border-color:#075867}
.knot-board svg,.knot-board #knotPoints{position:absolute;inset:0;width:100%;height:100%}
.knot-board line{stroke:#75613c;stroke-width:2.3;stroke-linecap:round}
.ocean-mode .knot-board line{stroke:#176f75}
.knot-point{position:absolute;transform:translate(-50%,-50%);display:grid;place-items:center;width:48px;height:48px;border:3px solid #fff;border-radius:50%;background:#f7d77b;font-size:1.45rem;cursor:grab;box-shadow:0 4px 10px #173f3a35;touch-action:none}
.knot-point:active{cursor:grabbing;transform:translate(-50%,-50%) scale(1.08)}
.mahjong-card{background:linear-gradient(145deg,#a987bd,#675681);color:#fff}
.mahjong-board{display:grid;gap:8px;width:min(100%,390px);margin:14px auto}
.mahjong-tile{aspect-ratio:1;border:0;border-radius:12px;background:#fff8df;font-size:clamp(1.35rem,6vw,2rem);box-shadow:0 5px 0 #c7aa75;cursor:pointer}
.mahjong-tile:disabled{filter:saturate(.45);opacity:.52;cursor:not-allowed}
.mahjong-tile.selected{outline:4px solid var(--gold);transform:translateY(-2px)}
.mahjong-tile.removed{visibility:hidden}
.tower-card{background:linear-gradient(145deg,#dfb84e,#b56c4d);color:#fff}
.tower-card em{color:#fff8cf}
.tower-wrap{position:relative;width:min(100%,360px);margin:12px auto;border-radius:20px;overflow:hidden;border:4px solid #315e49}
.tower-wrap canvas{display:block;width:100%;height:auto}
.tower-wrap .retro-overlay{border-radius:0}
@media(max-width:420px){.puzzle-gallery button{width:112px}.puzzle-gallery img{height:60px}.knot-point{width:42px;height:42px}.mahjong-board{gap:6px}}
.difficulty-picker{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:16px 0}.difficulty-picker button{display:flex;min-width:0;min-height:120px;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:2px solid #d3e2cf;border-radius:16px;background:#f6fbf3;color:var(--forest);padding:12px 7px;cursor:pointer}.difficulty-picker button.preferred{border-color:var(--gold);background:#fff8d9}.difficulty-picker span,.difficulty-picker b{font-weight:800}.difficulty-picker small{font-size:.75rem;line-height:1.25;color:var(--muted)}.in-game-levels{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:7px;margin:2px 0 13px}.in-game-levels span{font-weight:800;color:var(--forest);margin-right:2px}.in-game-levels button{border:1px solid #cbdcc9;border-radius:999px;background:#fff;color:var(--forest);padding:7px 10px;font-weight:800;cursor:pointer}.in-game-levels button.active{background:var(--pine);border-color:var(--pine);color:#fff}@media(max-width:420px){.difficulty-picker{grid-template-columns:1fr}.difficulty-picker button{min-height:82px}}
.difficulty-picker{grid-template-columns:repeat(2,minmax(0,1fr))}
.difficulty-picker button:last-child{grid-column:1/-1}
.counseling-link{display:inline-flex;align-items:center;gap:.4rem;margin-top:.55rem;padding:.55rem .85rem;border:1px solid #cbdcd0;border-radius:999px;background:#fff;text-decoration:none;font-weight:700;box-shadow:0 4px 12px #173f3a14}
.counseling-link span{font-size:1.25rem}
.reduced-prompts .skill-intro>p:last-child{display:none}
.minimal-prompts .retro-tip,.minimal-prompts .game-note{opacity:.78}
.panda-brand-icon{width:3.25rem;height:3.25rem;object-fit:cover;border-radius:15px;filter:drop-shadow(0 3px 5px #173f3a26)}
.header-site-link{display:flex;align-items:center;gap:.3rem;min-height:44px;padding:.42rem .58rem;border:1px solid #cbdcd0;border-radius:14px;background:#fff;color:var(--forest);text-decoration:none;font-size:.78rem;box-shadow:0 3px 10px #173f3a14;white-space:nowrap}
.header-site-link span{font-size:1.5rem}.header-site-link:hover{transform:translateY(-1px);border-color:var(--gold)}
@media(max-width:620px){.header-site-link b{display:none}.header-site-link{padding:.4rem}.panda-brand-icon{width:2.8rem;height:2.8rem}.brand strong{font-size:1.05rem}.wallet{gap:4px}.wallet span{padding:7px 6px}.sound-toggle span{display:none}}
@media(max-width:390px){.wallet span[title="Discovery Stars"]{display:none}}
.install-prompt{position:fixed;left:50%;bottom:92px;transform:translateX(-50%);z-index:35;width:min(calc(100% - 24px),620px);display:grid;grid-template-columns:52px 1fr auto 34px;align-items:center;gap:10px;padding:11px 10px;background:#fffdf7f7;border:1px solid #cbdcd0;border-radius:20px;box-shadow:0 12px 36px #173f3a38;backdrop-filter:blur(14px)}
.install-prompt[hidden]{display:none}.install-prompt img{width:52px;height:52px;border-radius:14px}.install-prompt b,.install-prompt small{display:block}.install-prompt b{font-family:'Fredoka';color:var(--pine)}.install-prompt small{color:var(--muted);margin-top:2px}.install-action{border:0;border-radius:13px;padding:10px 13px;background:var(--gold);color:#2f3c1f;font-weight:800;cursor:pointer}.install-dismiss{border:0;background:transparent;color:var(--muted);font-size:1.6rem;cursor:pointer}.install-help{text-align:center}.install-help img{width:96px;height:96px;border-radius:24px;margin:0 auto 8px}.install-help p{font-size:1rem}
@media(max-width:480px){.install-prompt{grid-template-columns:46px 1fr auto 28px;gap:7px}.install-prompt img{width:46px;height:46px}.install-prompt small{font-size:.72rem}.install-action{padding:9px 10px;font-size:.82rem}}
