#game-room[hidden],#game-room [hidden]{display:none!important}#game-room{position:fixed;inset:0;z-index:35;overflow:auto;color:#193563}.in-game-room #puppy-back{display:none}.game-nav{display:flex;align-items:center;gap:20px;justify-content:space-between;padding:16px 90px 12px 20px;min-height:80px}.game-nav h1{position:static;font-size:clamp(20px,3vw,34px);letter-spacing:0;line-height:1.15;z-index:auto;text-shadow:0 1px white;margin:0}.game-back,.puzzle-toolbar button,.puzzle-finish button{border:0;border-radius:24px;background:white;color:#164db4;padding:12px 20px;min-height:46px;font-weight:bold;box-shadow:0 3px 12px #59380e22}.room-view{background:#b87628 url('assets/games/room.png') center/cover no-repeat}.room-view .game-nav h1{background:#fffdf3ec;padding:10px 22px;border-radius:24px}.room-shelves{position:absolute;inset:14% 14% 17%;display:grid;grid-template-rows:repeat(3,1fr);gap:22px}.room-shelf{position:relative;border-bottom:20px solid #d88a27;border-radius:8px;box-shadow:0 9px 10px #63350a55,0 3px 0 #ffe49c,inset 0 -6px #ffc463;display:flex;align-items:end;padding:0 5% 3px;gap:5%}.room-shelf:before,.room-shelf:after{content:'';position:absolute;bottom:-44px;width:22px;height:28px;background:linear-gradient(90deg,#8c4d18,#e8a640,#ad6420);border-radius:0 0 9px 9px;box-shadow:2px 4px 5px #63350a66}.room-shelf:before{left:3%}.room-shelf:after{right:3%}.game-box{display:block;height:100%;max-height:190px;width:25%;min-width:100px;border:0;background:none;padding:0;transition:transform .18s;filter:drop-shadow(4px 5px 3px #62350b55)}.game-box img{display:block;width:100%;height:100%;object-fit:contain;object-position:bottom}.game-box:hover{transform:translateY(-5px)}.room-instruction{position:absolute;bottom:3%;left:50%;transform:translateX(-50%);background:#fffdf5ed;padding:10px 25px;border-radius:25px;text-align:center;margin:0;white-space:nowrap}.puzzle-view{background:radial-gradient(ellipse at top,#fffdf4,#eaf4ff);padding-bottom:25px}.puzzle-options{display:grid;grid-template-columns:repeat(2,minmax(0,360px));justify-content:center;gap:30px;padding:35px 24px}.puzzle-option{border:3px solid white;background:white;padding:10px 10px 20px;border-radius:25px;box-shadow:0 12px 35px #315e9526;transition:transform .2s;color:#174da3}.puzzle-option:hover{transform:translateY(-5px)}.puzzle-option img{width:100%;display:block;aspect-ratio:1;object-fit:cover;border-radius:17px}.puzzle-option span{display:block;font-size:24px;font-weight:900;margin:15px 0 6px}.puzzle-option small{font-size:18px}.puzzle-play{max-width:1000px;margin:auto;padding:0 20px}.puzzle-toolbar{display:flex;gap:10px;align-items:center;justify-content:center;margin:0 0 14px}.puzzle-toolbar button{background:#e2edfb;padding:9px 15px}.puzzle-progress{font-size:21px;font-weight:bold;min-width:70px;text-align:center}.puzzle-board{--cols:3;--rows:2;position:relative;isolation:isolate;width:min(53svh,510px,100%);aspect-ratio:1;margin:auto;display:grid;grid-template-columns:repeat(var(--cols),1fr);grid-template-rows:repeat(var(--rows),1fr);border:8px solid white;border-radius:8px;box-shadow:0 4px 23px #365b9425;background:#dce8f2}.puzzle-board:before{content:'';position:absolute;inset:0;z-index:-1;background:var(--picture) center/100% 100%;opacity:0}.puzzle-board.show-hint:before{opacity:.35}.puzzle-slot{position:relative;border:1px dashed #9db6cd;background:transparent;padding:0;overflow:visible;min-width:0;min-height:0}.puzzle-slot svg{position:absolute;left:-16%;top:calc(-16% * var(--rows) / var(--cols));width:132%;height:calc(100% + 32% * var(--rows) / var(--cols));overflow:visible;pointer-events:none}.puzzle-slot.filled{border-color:transparent;z-index:2}.puzzle-board.complete{box-shadow:0 0 0 5px #78c99c,0 10px 30px #365b9425}.puzzle-status{text-align:center;min-height:24px;margin:17px 0 12px;font-size:17px}.puzzle-tray{display:flex;justify-content:center;gap:9px;flex-wrap:wrap;max-width:850px;margin:auto}.puzzle-piece{width:100px;height:100px;border:2px solid #c5d9ed;border-radius:12px;background:white;padding:3px;touch-action:manipulation}.puzzle-piece svg{width:100%;height:100%;pointer-events:none}.puzzle-piece[aria-pressed=true]{border:4px solid #e8a425;background:#fff5d9;transform:translateY(-4px)}.puzzle-finish{text-align:center;margin:20px 0;background:#edfaef;border-radius:20px;padding:20px}.puzzle-finish strong{display:block;font-size:25px;color:#257344;margin-bottom:14px}.puzzle-finish button{margin:5px;background:#145bc5;color:white}.music-toggle{z-index:45}@media(max-width:600px){.game-nav{padding:12px 72px 10px 12px;gap:10px;align-items:start;flex-direction:column}.game-nav h1{font-size:23px}.game-back{padding:10px 14px;font-size:14px}.puzzle-options{gap:15px;padding:18px 16px;grid-template-columns:minmax(0,330px)}.puzzle-option span{font-size:21px}.puzzle-option img{max-height:240px;object-fit:contain}.room-shelves{inset:21% 8% 18%;gap:24px}.room-shelf{border-bottom-width:16px}.game-box{width:43%;min-width:90px}.room-view .game-nav h1{font-size:22px}.room-instruction{font-size:14px;padding:8px 15px}.puzzle-play{padding:0 12px}.puzzle-board{width:min(44svh,100%)}.puzzle-piece{width:72px;height:76px}.puzzle-status{font-size:14px}.puzzle-toolbar{gap:6px}.puzzle-toolbar button{font-size:13px;padding:8px 10px}.puzzle-tray{gap:6px}}@media(prefers-reduced-motion:reduce){.game-box,.puzzle-option{transition:none}}
/* Each shelf and game box is an independent scene object. */
.room-view{background-size:100% 100%}.room-shelf{border:0;box-shadow:none;border-radius:0;padding-bottom:0}.room-shelf:before,.room-shelf:after{display:none}.shelf-plank{position:absolute;left:-2%;bottom:-45px;width:104%;height:86px;object-fit:fill;pointer-events:none}.memory-box{position:relative;height:auto;aspect-ratio:1.2;width:24%;max-height:none;min-width:110px;background:linear-gradient(120deg,#76bfff,#1256b8);border:7px solid #2876cc;border-radius:12px;box-shadow:inset 3px 3px #ffffff85,5px 4px #12458d;transform:translateY(-9px);padding:5px}.memory-box:hover{transform:translateY(-14px)}.memory-box .memory-sprite{border-radius:5px}.memory-sprite{display:block;width:100%;height:100%;background-repeat:no-repeat;background-color:white}.memory-play{max-width:1080px;margin:auto;padding:0 20px}.memory-instruction{text-align:center;margin:4px 0 18px;font-size:18px}.memory-board{display:grid;gap:12px;justify-content:center;margin:auto}.memory-board.easy{grid-template-columns:repeat(4,minmax(0,140px));max-width:620px}.memory-board.hard{grid-template-columns:repeat(6,minmax(0,128px));max-width:850px}.memory-card{position:relative;display:block;aspect-ratio:1;padding:0;border:3px solid white;background:white;border-radius:14px;box-shadow:0 4px 12px #254b7824;overflow:hidden;min-width:0;touch-action:manipulation;transition:transform .2s,box-shadow .2s}.memory-card:hover{box-shadow:0 5px 16px #254b7848;transform:translateY(-2px)}.memory-back,.memory-front{position:absolute;inset:0;display:block}.memory-front{visibility:hidden}.memory-card.turned .memory-back{visibility:hidden}.memory-card.turned .memory-front{visibility:visible}.memory-card.matched{border-color:#72bd88;box-shadow:0 0 0 2px #cbead3;cursor:default}.memory-card:disabled{opacity:1}.memory-card:focus-visible{outline:4px solid #ffb919;outline-offset:3px;z-index:1}@media(max-width:600px){.memory-board{gap:7px}.memory-board.easy,.memory-board.hard{grid-template-columns:repeat(4,minmax(0,1fr))}.memory-play{padding:0 12px}.memory-instruction{font-size:15px;margin-bottom:14px}.memory-card{border-width:2px;border-radius:9px}.memory-box{width:40%;min-width:95px;border-width:5px}.shelf-plank{bottom:-28px;height:58px}.puzzle-option img{max-height:225px}}@media(max-height:650px) and (min-width:601px){.memory-board.easy{max-width:480px;gap:8px}.memory-board.hard{max-width:660px;gap:8px}.memory-instruction{margin:0 0 10px}.game-nav{min-height:60px;padding-top:8px;padding-bottom:8px}.puzzle-toolbar{margin-bottom:8px}}@media(prefers-reduced-motion:reduce){.memory-card{transition:none}}
.room-shelves{container-type:inline-size}.shelf-plank{width:104%;height:auto;bottom:-17.5cqw}.memory-box{transform:translateY(-3.5cqw)}.memory-box:hover{transform:translateY(calc(-3.5cqw - 5px))}
#game-room.room-view{overflow:hidden}
.tic-box{background:linear-gradient(120deg,#8dcf42,#298214);border-color:#4b9c29;box-shadow:inset 3px 3px #e8ffa485,5px 4px #28691e;padding:8px 10px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}.tic-box strong{font-family:'SuperSkola Rounded','Trebuchet MS',sans-serif;font-size:clamp(12px,1.5vw,25px);color:white;text-shadow:0 2px #285b16}.tic-box-icon{width:68%;aspect-ratio:1;display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:#2871b9;border:4px solid #b6e6ff;border-radius:8px;overflow:hidden}.tic-box-icon i{display:flex;align-items:center;justify-content:center;background:white;font-style:normal;font-weight:900;font-size:clamp(13px,2.1vw,32px);line-height:1;color:#da3836}.tic-box-icon i:nth-child(2n){color:#1767c7}.tic-play{max-width:820px;margin:auto;padding:0 18px 30px;text-align:center}.tic-legend{display:flex;gap:28px;justify-content:center;font-weight:bold;font-size:19px;margin:15px 0 20px}.tic-x{color:#db4446}.tic-o{color:#156dc7}.tic-status{font-weight:bold;font-size:20px;color:#164c9f;min-height:30px;margin:17px 0}.tic-board{display:grid;grid-template-columns:repeat(var(--size),1fr);gap:10px;width:min(48svh,430px,100%);aspect-ratio:1;margin:0 auto}.tic-cell{aspect-ratio:1;border:2px solid #b5cfe7;border-radius:18px;background:#fff;box-shadow:0 4px 12px #1d4e7a13;font-size:clamp(30px,7svh,70px);font-weight:900;line-height:1;display:flex;align-items:center;justify-content:center;padding:0;min-width:0}.tic-cell:hover:enabled{background:#fff8df;border-color:#e9af3a}.tic-cell:disabled{opacity:1;cursor:default}.tic-cell.tic-winner{background:#e5f7dc;border-color:#5ca94b;box-shadow:0 0 0 2px #c5e9bc}.tic-controls{display:flex;gap:12px;justify-content:center;margin-top:25px}.tic-controls button{border:0;background:#145bc5;color:white;padding:13px 20px;border-radius:18px;font-weight:bold;min-height:46px}.tic-controls button+button{background:#e1edfa;color:#174fa0}.tic-result{margin-top:20px;color:#387941;font-size:17px}@media(max-width:600px){.tic-legend{gap:16px;font-size:15px}.tic-board{gap:7px;width:min(43svh,100%)}.tic-cell{border-radius:12px}.tic-controls button{padding:12px 15px;font-size:14px}.tic-status{font-size:17px}.tic-box{padding:6px;gap:4px}.tic-box strong{font-size:12px}.tic-box-icon{border-width:2px}.tic-box-icon i{font-size:18px}}
.jigsaw-box{background:none;border:0;box-shadow:none;border-radius:0;padding:0;aspect-ratio:1.2;transform:translateY(-1.5cqw)}.jigsaw-box:hover{transform:translateY(calc(-1.5cqw - 5px))}.puzzle-piece{cursor:grab}.puzzle-piece:active{cursor:grabbing}.puzzle-slot.filled{cursor:default}.puzzle-board:focus-within{z-index:1}
@media(max-width:600px){.room-shelf{gap:3%;padding-left:2%;padding-right:2%}.room-shelf .game-box{min-width:0;width:30%}.room-shelf .memory-box:not(.jigsaw-box){border-width:4px}.room-shelf .tic-box strong{font-size:9px}.room-shelf .tic-box-icon i{font-size:13px}.room-shelf .tic-box-icon{border-width:1px}.puzzle-tray .puzzle-piece{width:70px;height:78px}}
.room-shelf .game-box{width:21%;min-width:0}.room-shelf{gap:3%}.domino-box{background:linear-gradient(120deg,#fa7866,#bc2426);border-color:#d83d38;box-shadow:inset 3px 3px #ffd4b485,5px 4px #922420;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:10px}.domino-box strong{font-family:'SuperSkola Rounded',sans-serif;color:white;font-size:clamp(12px,1.7vw,26px)}.domino-box-icon{display:flex;transform:rotate(-8deg);background:#fff8e6;border-radius:7px;box-shadow:2px 3px #b99a75;color:#24272d;padding:7px;gap:6px}.domino-box-icon i{font-style:normal;font-size:clamp(9px,1.1vw,18px);line-height:1.3;padding:2px}.domino-box-icon i+i{border-left:1px solid #9b8970}.domino-play{max-width:1200px;margin:auto;padding:0 18px 30px;text-align:center}.domino-info{font-size:16px;color:#507095}.domino-status{min-height:44px;max-width:850px;margin:12px auto}.domino-table{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;background:#d5e9db;border:6px solid white;border-radius:24px;padding:20px 12px;box-shadow:0 5px 24px #24482615}.domino-rail{display:flex;gap:5px;overflow-x:auto;padding:8px 3px;min-height:95px;align-items:center}.domino-tile{display:flex;width:136px;height:70px;flex:none;background:white;border:3px solid #e5d7bb;border-radius:9px;box-shadow:1px 3px 3px #40533b25;overflow:hidden}.domino-half{width:50%;height:100%;padding:1px}.domino-half+.domino-half{border-left:1px solid #ae9d80}.domino-end{padding:12px 15px;background:#fffdf4;border:2px solid #aacdb5;border-radius:16px;min-height:50px;color:#265a39;font-weight:bold}.domino-end.domino-valid{background:#fff3b8;border-color:#deac22;box-shadow:0 0 0 3px #ffd44855}.domino-end:disabled{opacity:.65;cursor:default}.domino-play h2{font-size:22px;margin:25px 0 14px}.domino-hand{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}.domino-choice{border:3px solid transparent;background:transparent;padding:4px;border-radius:13px;touch-action:manipulation}.domino-choice[aria-pressed=true]{border-color:#e9aa29;background:#fff0bc;transform:translateY(-3px)}.domino-choice .domino-tile{width:160px;height:82px}.domino-choice:disabled{opacity:1;cursor:default}.domino-controls{flex-wrap:wrap}.domino-controls button:disabled{opacity:.45;cursor:default}.domino-rules{text-align:left;max-width:760px;margin:24px auto 0;background:#ffffff9c;border-radius:15px;padding:14px 18px;line-height:1.6}.domino-rules summary{cursor:pointer;font-weight:bold;color:#2456a2}@media(max-width:600px){.room-shelf .game-box{width:22%;min-width:0}.room-shelf{gap:3%}.room-shelf .tic-box strong{font-size:8px}.room-shelf .domino-box{padding:4px;gap:5px;border-width:4px}.room-shelf .domino-box strong{font-size:10px}.domino-box-icon{padding:3px;gap:3px}.domino-box-icon i{font-size:8px}.domino-play{padding:0 10px 25px}.domino-table{grid-template-columns:1fr 1fr;padding:10px;gap:8px}.domino-rail{grid-column:1/-1;grid-row:1;min-height:86px}.domino-end{font-size:13px;padding:9px}.domino-choice .domino-tile{width:128px;height:66px}.domino-hand{gap:6px}.domino-info{font-size:13px}.domino-play h2{font-size:20px}.domino-rules{font-size:14px}}
