.intro{position:absolute;inset:0;z-index:15;overflow:auto;display:grid;place-items:center;background:#b7d4e8 url('assets/room.webp') center/cover}.intro:before{content:'';position:absolute;inset:0;background:#173c504f;backdrop-filter:blur(2px)}.intro-window{position:relative;width:min(690px,calc(100% - 32px));margin:24px 0;padding:22px 30px 18px;text-align:center;background:#fff3dbf5;border:10px solid #bc8951;border-radius:25px 28px 18px 20px;box-shadow:0 12px 0 #6c492955,0 30px 90px #173c5060}.intro-wordmark{font-weight:700;font-size:16px;color:#7f6043}.intro h1{font-size:clamp(38px,7vw,70px);font-weight:900;margin:0;line-height:1.35;color:#254e70;text-shadow:2px 3px #e4bc6b}.intro h2{font-size:21px;margin:12px 0}.intro-goal{display:flex;align-items:center;justify-content:center;gap:15px}.intro-goal img{width:90px;height:94px;transform:rotate(-9deg)}.intro-goal p{font-size:19px;line-height:1.55;text-align:right}.intro-goal b{font-weight:700}#characters{display:flex;justify-content:center;gap:14px}.character-card{border:2px solid transparent;background:transparent!important;width:30%;max-width:152px;padding:6px 8px!important;display:flex;flex-direction:column;align-items:center;color:#254e70;box-shadow:none!important}.character-card img{height:140px;max-width:100%;transition:transform .2s}.character-card b{font-size:20px}.character-card small{font-size:14px;line-height:1.3}.character-card[aria-pressed=true]{border:2px dashed #cc923f;border-radius:18px;background:#f6dfaa88!important}.character-card[aria-pressed=true] img{transform:translateY(-6px) rotate(-3deg)}#game #start-play{font-size:22px;font-weight:700;color:#fff7e1!important;background:#254e70!important;border:0;border-radius:10px 15px 8px 14px;padding:12px 42px;box-shadow:0 4px #162f44;margin-top:18px;min-height:54px}#load-status{font-size:14px;margin:14px 0 0;min-height:20px}.playroom-scene #room-help{position:absolute;z-index:5;bottom:95px;left:50%;transform:translateX(-50%);max-width:calc(100vw - 24px);width:max-content;padding:7px 18px;color:#254e70;background:#fff2d5e8;border-radius:7px 12px;text-align:center;pointer-events:none;font-size:16px}.playroom-playing #room-help,.stamp-album-open #room-help{display:none!important}.stamp-bookmarks{display:none!important}.stamp-cover{max-width:110px}.play-head>div{direction:rtl}.new-toy-hotspot{z-index:2}.new-toy-hotspot:focus-visible,.new-toy-hotspot:hover{filter:drop-shadow(0 0 7px #ffe18c)}#game .painted-control .control-label{font-size:14px}.cat-frame{display:block;border:0;width:100%;height:100%;min-height:380px;background:#dce8ff}.activity-cat #play-stage{width:100%!important;height:100%!important;max-width:1300px;padding:0;overflow:auto}.activity-cat #play-feedback,.activity-cat #play-tools{display:none}.activity-cat{grid-template-rows:auto minmax(0,1fr)!important}.activity-cat .play-head p{display:none}.activity-cat .play-save{font-size:12px}.rail-board{width:min(100%,650px);display:grid;grid-template-columns:repeat(4,1fr);gap:7px;padding:16px;background:#cfac77 url('assets/playroom/painted/surfaces.webp') left top/200% 200%;border:9px solid #a77b4a;border-radius:18px}.rail-cell{position:relative;aspect-ratio:1;padding:0!important;background:#e7cd96!important;border:1px solid #a78653!important;min-width:44px}.rail-cell svg{width:100%;height:100%;display:block;pointer-events:none}.rail-cell:disabled{opacity:1!important}.rail-cell.start:after,.rail-cell.finish:after{position:absolute;inset:auto 0 3px;font:14px Thmanyah;color:#2e5367;content:'البداية'}.rail-cell.finish:after{content:'المحطة'}.rail-cell.visited{background:#bad3b6!important}.rail-cell img{position:absolute;inset:12%;width:76%;height:76%;pointer-events:none}.rhythm-board{position:relative;width:min(100%,600px);aspect-ratio:1.25}.rhythm-board>img{width:100%;height:100%}.note-key{position:absolute;border:0!important;background:transparent!important;box-shadow:none!important;min-height:44px;min-width:44px;border-radius:12px!important;padding:0!important}.note-key span{position:absolute;bottom:-30px;left:0;right:0;text-align:center;white-space:nowrap;font-size:15px}.note-key.flash{box-shadow:0 0 0 6px #fff5ad,0 0 25px 13px #fff6b0!important;background:#fff3ad55!important}.note-key:focus-visible{outline:4px solid #254e70!important}.rhythm-progress{display:flex;gap:9px;justify-content:center;flex-wrap:wrap;width:100%;min-height:32px}.rhythm-progress i{width:23px;height:23px;border:2px solid #927951;border-radius:50%;background:#ffeed0}.rhythm-progress i.done{background:#698f76}.activity-rhythm #play-stage{flex-direction:column;gap:18px;overflow:visible}.fishing-board{position:relative;width:min(100%,620px);aspect-ratio:1.15}.fishing-board>img{width:100%;height:100%}.fish-target{position:absolute;border:3px solid transparent!important;min-width:44px;min-height:44px;border-radius:50%!important;background:transparent!important;box-shadow:none!important;padding:0!important}.fish-target.ready{border-color:#fff3b5!important;box-shadow:0 0 0 5px #dd9c4977!important}.fish-target:focus-visible{outline:4px solid #254e70!important}.fish-target.requested:after{content:'★';position:absolute;top:-25px;left:0;right:0;font-size:26px;color:#fff0a9;text-shadow:0 2px 3px #6d4e32}.fish-target.caught{opacity:.35}.activity-fishing #play-stage{flex-direction:column;gap:10px}.game-counter{font-size:20px;font-weight:700;text-align:center}.playroom-scene #collection-count{display:block!important}#game #playroom-nav{bottom:24px}#game #back .control-label{display:block}.playroom-scene #room-canvas{background:#b9d8e7}.win-burst{animation:winpop .65s ease-out}@keyframes winpop{0%{transform:scale(.85)}55%{transform:scale(1.07)}100%{transform:scale(1)}}@media(max-width:650px){.intro-window{padding:15px 12px;border-width:7px}.intro h1{font-size:42px}.intro-goal img{width:70px;height:75px}.intro-goal p{font-size:17px}.intro h2{font-size:19px;margin:8px 0}#characters{gap:4px}.character-card img{height:110px}.character-card b{font-size:18px}.character-card small{font-size:13px}#game #start-play{font-size:20px;margin-top:13px;padding:11px 30px}.intro-goal{gap:8px}.playroom-scene #room-help{font-size:14px;bottom:95px;padding:6px 10px}.place-name b{font-size:17px}.place-name span{font-size:14px}.rail-board{padding:8px;gap:4px;border-width:6px}.activity-railway #play-stage{min-height:260px}.activity-rhythm #play-stage,.activity-fishing #play-stage{min-height:280px}.note-key span{font-size:14px;bottom:-27px}#playroom-focus.activity-railway,#playroom-focus.activity-rhythm,#playroom-focus.activity-fishing{display:flex;flex-direction:column;overflow-y:auto}.activity-rhythm #play-stage,.activity-fishing #play-stage,.activity-railway #play-stage{flex:1;min-height:300px;overflow:visible}.activity-cat #play-stage{min-height:430px}.activity-cat{overflow-y:auto!important}.cat-frame{min-height:600px}#game .play-audio .painted-control{width:60px;min-width:54px}.play-head h1{font-size:20px}#all-stamps h1{font-size:25px}}@media(max-height:620px){.intro-window{margin:14px 0}.intro h1{font-size:36px}.intro-goal img{height:60px}.intro-goal p{margin:6px 0}.character-card img{height:85px}.intro h2{margin:4px 0}#game #start-play{margin-top:8px}#load-status{margin-top:9px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.character-card img{transition:none}.win-burst{animation:none}}
/* Activity art and its hit map share one undistorted coordinate system. */
.fishing-board{aspect-ratio:606/658;width:min(100%,620px,calc((100dvh - 260px)*606/658));flex:none}.rhythm-board{aspect-ratio:598/596;width:min(100%,600px,calc((100dvh - 280px)*598/596));flex:none}.activity-fishing #play-stage,.activity-rhythm #play-stage{justify-content:flex-start}.rail-board{flex:none;width:min(100%,650px,calc((100dvh - 290px)*4/3))}@media(max-width:650px){.fishing-board,.rhythm-board,.rail-board{width:100%}}
/* Short landscape keeps targets physical; the activity scrolls instead of shrinking them. */
@media(max-height:600px){#playroom-focus.activity-fishing,#playroom-focus.activity-rhythm,#playroom-focus.activity-railway{display:flex;flex-direction:column;overflow-y:auto;align-items:center}#game .activity-fishing .play-head,#game .activity-rhythm .play-head,#game .activity-railway .play-head{flex:none}.activity-fishing #play-stage,.activity-rhythm #play-stage,.activity-railway #play-stage{flex:none;height:auto;min-height:0;overflow:visible;width:100%;justify-content:flex-start}.fishing-board{width:min(100%,440px);min-width:270px}.rhythm-board{width:min(100%,460px);min-width:290px}.rail-board{width:min(100%,500px);min-width:270px}.activity-fishing #play-tools,.activity-rhythm #play-tools,.activity-railway #play-tools{flex:none}}
/* Landscape toy controls stay beside the toy, never below a hidden timed sequence. */
@media(orientation:landscape) and (max-height:600px){.activity-fishing #play-stage,.activity-rhythm #play-stage,.activity-railway #play-stage{padding-right:105px;padding-left:10px}.fishing-board{width:min(100%,max(270px,calc((100dvh - 75px)*606/658)))}.rhythm-board{width:min(100%,max(290px,calc(100dvh - 80px)))}.rail-board{width:min(100%,430px)}#game .activity-fishing #play-tools,#game .activity-rhythm #play-tools,#game .activity-railway #play-tools{position:fixed;z-index:12;right:8px;top:50%;transform:translateY(-50%);width:86px;max-height:calc(100dvh - 24px);overflow:auto;padding:7px 3px;border-radius:12px;background:#f5e3bfee;display:flex;flex-direction:column;flex-wrap:nowrap}#game .activity-fishing #play-tools .painted-control,#game .activity-rhythm #play-tools .painted-control,#game .activity-railway #play-tools .painted-control{min-height:64px}#game .activity-fishing #play-tools .control-label,#game .activity-rhythm #play-tools .control-label,#game .activity-railway #play-tools .control-label{display:block}.activity-fishing #play-feedback,.activity-rhythm #play-feedback,.activity-railway #play-feedback{padding-right:100px}}
/* The cat's document owns its sole scroll surface; the room's return stays outside it. */
#playroom-focus.activity-cat{display:grid!important;grid-template-rows:auto minmax(0,1fr)!important;overflow:hidden!important}.activity-cat #play-stage{min-height:0!important;height:100%!important;overflow:hidden!important}.activity-cat .cat-frame{min-height:0!important;height:100%}.activity-cat .play-head{grid-template-columns:54px minmax(0,1fr) auto!important;grid-template-rows:auto;gap:8px}.activity-cat .play-head>div{grid-column:2;grid-row:1}.activity-cat .play-head .play-audio{grid-column:3;grid-row:1}.activity-cat #play-music,.activity-cat #play-effects,.activity-cat #control-help{display:none!important}.activity-cat .play-head h1{font-size:20px}.activity-cat .play-head .play-save{display:block;font-size:12px}
#game .activity-cat .play-head>.back-to-room{grid-column:1;grid-row:1}#game .activity-cat .play-head>div{grid-column:2;grid-row:1;min-width:0}#game .activity-cat .play-head>.play-audio{grid-column:3;grid-row:1;align-self:center;justify-self:end}#game .activity-cat .play-head>#control-help{display:none!important}
@media(orientation:landscape) and (max-height:600px){#game .activity-fishing .play-head,#game .activity-rhythm .play-head,#game .activity-railway .play-head{width:calc(100% - 105px)!important;margin-left:0!important;margin-right:105px!important}.rail-board{width:min(100%,430px,calc((100dvh - 48px)*4/3))}}
#playroom-focus.activity-cat{padding:8px max(8px,env(safe-area-inset-left)) max(8px,env(safe-area-inset-bottom))!important;gap:4px}

/* The site return belongs only to the character chooser, not the room's door. */
.intro{align-items:start;align-items:safe center;overscroll-behavior:contain;scroll-padding-block:16px}
.intro-site-nav{display:flex;justify-content:flex-start;margin:0 0 4px}
.intro-home{display:inline-flex;align-items:center;justify-content:center;min-height:44px;max-width:100%;padding:7px 12px;border:1px solid #254e7040;border-radius:10px;color:#254e70;background:transparent;font-size:15px;font-weight:700;line-height:1.5;text-decoration:none;touch-action:manipulation}
.intro-home:hover{background:#254e700c;border-color:#254e7080}
.intro-home:focus-visible{outline:3px solid #254e70;outline-offset:3px;background:#fff7e1}
