/* Shared finishing layer: action games, touch targets and mobile typography. */
.arcade-launchpad{margin:15px 0 60px;padding:24px;border-radius:28px;background:#203f35;color:#fff6e2;box-shadow:0 20px 65px #203f3518}.launchpad-heading{font-size:10px;letter-spacing:1.4px;display:flex;align-items:center;gap:10px;padding:2px 0 23px}.launchpad-heading>span:last-child{margin-left:auto;color:#bdd0bb;font-size:9px}.live-dot{width:7px;height:7px;border-radius:50%;background:#dafa96;box-shadow:0 0 0 5px #dafa961a}.action-game-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.action-card{border:0;border-radius:16px;text-align:left;position:relative;overflow:hidden;padding:24px;color:#243e35;isolation:isolate;transition:transform .25s,box-shadow .25s}.action-card:hover{transform:translateY(-7px);box-shadow:0 14px 20px #0002}.action-number{font-size:10px;letter-spacing:1.5px;font-weight:800}.snow-card{background:#cdecef}.court-card{background:#e0efa7}.party-card{background:#ffc2a9}.action-art{height:135px;position:relative;display:grid;place-items:center;margin:12px 0}.character-face{display:block;width:60px;height:60px;border-radius:50%;border:3px solid #fff8e9;background-image:url(assets/director.webp);background-repeat:no-repeat;box-shadow:0 5px 0 #23403718;flex-shrink:0}.character-face.dasha{background-size:358px 239px;background-position:-125px -32px}.character-face.nikita{background-size:390px 260px;background-position:-259px -50px}.action-art .character-face{transform:scale(1.5) rotate(-8deg);z-index:2;animation:hero-bob 4s ease-in-out infinite}.court-card .character-face{animation-delay:-1.5s;transform:scale(1.5) rotate(8deg)}.mountain{position:absolute;font-size:165px;color:#6faab54d;bottom:-25px;left:0}.action-spark{position:absolute;right:14px;top:8px;font-size:36px;animation:hero-bob 3s ease-in-out infinite}.action-food{position:absolute;left:0;top:0;font-size:44px;transform:rotate(-22deg)}.court-line{position:absolute;inset:5px 0;border:2px solid #6896564d;transform:rotate(-8deg);border-radius:8px}.court-line:after{content:'';position:absolute;top:50%;width:100%;border-top:2px dashed #68965655}.action-ball{position:absolute;width:29px;height:29px;border:2px solid #fff9;border-radius:50%;background:#f8fcd6;right:5px;bottom:10px;box-shadow:0 8px 0 #2340371a;animation:ball-bob 2s ease-in-out infinite}.action-card h3{font-size:clamp(26px,3vw,42px);line-height:1.03;letter-spacing:-1.7px;margin:10px 0 14px;font-weight:800}.action-card p{font-size:12px;line-height:1.7;opacity:.8}.action-cta{border-top:1px solid #243e3526;margin-top:23px;padding-top:17px;display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:800}.action-cta b{font-size:25px}.launchpad-note{text-align:center;color:#c2d2ba;font-size:11px;margin:20px 0 0}.collection-heading{margin:0 0 26px}.collection-heading>span{font-size:10px;letter-spacing:1.4px;color:#8b7464}.collection-heading h3{font-size:23px;letter-spacing:-.8px;margin:8px 0}.arcade-menu{max-width:640px;margin:auto}.arcade-scene{height:190px;border-radius:20px;overflow:hidden;position:relative;background:#cdecef;margin:5px 0 20px}.arcade-scene img{height:100%;object-position:center 36%;filter:saturate(.8)}.scene-label{position:absolute;bottom:12px;left:12px;padding:7px 10px;background:#fbf3e5ed;border-radius:4px;font-size:8px;font-weight:800;letter-spacing:1.3px}.scene-orbit{position:absolute;z-index:1;right:14px;top:14px;background:#fff3d9;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;font-size:25px;transform:rotate(10deg)}.character-picker{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:23px 0 15px}.character-picker button{display:flex;align-items:center;gap:12px;border:2px solid #deddd0;border-radius:15px;padding:12px;background:#fff9ed;text-align:left;font-weight:800;font-size:15px}.character-picker button[aria-pressed=true]{border-color:#365849;background:#e4ead8;box-shadow:0 0 0 2px #36584912}.character-picker small{display:block;font-size:10px;font-weight:500;line-height:1.5;margin-top:3px}.arcade-instructions,.arcade-help{font-size:12px;line-height:1.7;color:#626857}.arcade-menu-bottom{display:flex;align-items:center;justify-content:space-between;margin:22px 0 8px;gap:20px}.arcade-menu-bottom>span{font-size:11px;text-align:right;color:#78816d}.arcade-menu-bottom b{font-size:19px;color:#283e32}.arcade-hud{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:12px 4px;max-width:480px;margin:auto}.arcade-hud small{display:block;font-size:8px;letter-spacing:1.5px;color:#778270}.arcade-hud b{font-size:22px;color:#2b493a;line-height:1.4}.arcade-hud>button{width:44px;height:44px;border:1px solid #cbd4bf;border-radius:50%;background:#e4ead8;font-size:20px}.arcade-arena{position:relative;max-width:480px;margin:auto;border-radius:22px;overflow:hidden;background:#254a41;box-shadow:0 12px 30px #17392b1f}.arcade-arena canvas{display:block;width:100%;height:auto;aspect-ratio:480/560;touch-action:none;outline-offset:-4px}.arcade-overlay{position:absolute;inset:0;background:#203b35df;backdrop-filter:blur(8px);display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff9e7;z-index:3;padding:20px;text-align:center}.arcade-overlay[hidden]{display:none}.arcade-overlay>b{font-size:45px;letter-spacing:-2px}.arcade-overlay p{margin:10px 0 25px}.arcade-pop{position:absolute;top:18px;left:15px;right:15px;max-width:max-content;margin:auto;border-radius:30px;background:#fff7eae8;box-shadow:0 4px 16px #0001;color:#244035;padding:9px 14px;font-size:12px;font-weight:800;pointer-events:none;opacity:0;transform:translateY(-8px);transition:opacity .2s,transform .2s}.arcade-pop.visible{opacity:1;transform:none}.arcade-bottom{max-width:480px;display:flex;align-items:center;justify-content:space-between;margin:12px auto 0;gap:10px}.arcade-bottom button{min-width:75px;min-height:49px;border:1px solid #cad2c0;background:#e4ead8;border-radius:14px;font-size:23px;touch-action:none}.arcade-bottom span{font-size:11px;font-weight:700;text-align:center}.arcade-help{max-width:480px;margin:12px auto}.arcade-result{background:#e3eacf;border-radius:18px;padding:22px;margin:25px 0}.arcade-result>span{font-size:42px;color:#cc6d34;letter-spacing:8px}.arcade-result p{font-size:14px}.game-dialog:has(.arcade-arena){width:620px}.game-dialog:has(.arcade-arena) .game-top{margin-bottom:4px}.game-dialog:has(.arcade-arena) .game-top h2{font-size:30px}.memory-tile{transition:transform .35s,box-shadow .35s}.memory-tile.open{transform:rotateY(0) scale(1.02);box-shadow:0 4px 12px #294a3525}.memory-tile.matched{animation:match-pop .45s ease-out}.game-card{transition:transform .25s,box-shadow .25s}.game-card:hover{box-shadow:0 10px 28px #294a3515}.button,.subtle-button,.circle-button,.text-button,.album-filters button{min-height:44px}.circle-button{min-width:44px}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:3px solid #e98b43;outline-offset:3px}.game-top{position:sticky;top:-28px;background:#fcf8ee;z-index:5;padding-bottom:12px}.game-top>div{min-width:0}.game-top .circle-button{flex-shrink:0}.photo-card>span{line-height:1.55}.photo-card small{display:block}.album-caption{overflow-wrap:anywhere}.arcade-poster{animation:hero-bob 7s ease-in-out infinite}@keyframes hero-bob{50%{translate:0 -9px;rotate:3deg}}@keyframes ball-bob{50%{translate:0 -28px}}@keyframes match-pop{50%{transform:scale(1.08)}}
@media(max-width:900px){.action-card{padding:18px}.launchpad-heading>span:last-child{display:none}.action-card h3{font-size:32px}.action-art{height:110px}}
@media(max-width:680px){
 body{font-size:16px}.site-header{height:auto;min-height:76px;padding:14px 20px;gap:14px;flex-wrap:wrap}.site-header nav{display:flex;gap:14px;flex:1;justify-content:flex-end;flex-wrap:wrap;font-size:12px;line-height:1.4}.site-header nav a,.site-header nav a:nth-child(2),.play-page .site-header nav a:last-child{display:inline-flex;align-items:center;min-height:44px}.site-header nav a[href*="#"]{display:none!important}.site-header .brand{font-size:22px}.section-wrap{padding:52px 20px}.hero-sub,.intro p:not(.eyebrow),.egypt-copy>p:not(.eyebrow),.letter p:not(.eyebrow),.wish-section>div>p:not(.eyebrow),.fun-heading>p,.side-note{font-size:15px;line-height:1.8}.eyebrow,.hero .eyebrow{font-size:10px;line-height:1.7;letter-spacing:1.4px}.button{font-size:14px;padding:16px 22px;min-height:52px}.tags span{font-size:11px}.photo-card>span{font-size:13px;padding:14px 4px}.photo-card small{font-size:9px;line-height:1.5;margin-bottom:6px}.memory-grid{grid-template-columns:1fr;gap:24px}.memory-grid .photo-card:nth-child(n){width:100%;margin:0;transform:none}.memory-grid .photo-card img{aspect-ratio:1.1;object-position:center 35%}.bonus-grid span{font-size:12px}.comic figcaption,.penguin-shot span,.generated-gallery figcaption{font-size:12px}.reason-stage{padding:24px 20px;min-height:350px}.reason-stage>p{font-size:26px;min-height:170px}#all-reasons{font-size:15px;line-height:1.9;columns:1;padding-left:24px}#all-reasons li{padding-bottom:12px}.more-memories summary{font-size:14px}.more-memories summary>span{float:none;display:block;margin-top:4px;font-size:11px}.letter .signature{font-size:23px!important}footer{gap:15px}footer p{font-size:12px}.story-timeline p,.couple-facts p,.play-invite p{font-size:14px!important;line-height:1.8}.arcade-hero{padding-top:36px;gap:28px}.arcade-hero h1{font-size:clamp(42px,11.8vw,64px)}.arcade-hero>div>p:not(.eyebrow){font-size:15px}.arcade-chips span{font-size:11px}.arcade-content{padding-top:18px}.arcade-launchpad{margin-left:-7px;margin-right:-7px;padding:15px;border-radius:23px;margin-bottom:40px}.launchpad-heading{font-size:9px;padding:4px 0 18px;letter-spacing:1px}.action-game-grid{grid-template-columns:1fr;gap:12px}.action-card{min-height:230px;padding:20px}.action-card h3{font-size:35px;max-width:65%;margin:22px 0 10px}.action-card p{font-size:12px;max-width:65%}.action-art{position:absolute;right:8px;top:37px;width:37%;height:115px;margin:0}.action-art .character-face{transform:scale(1.3) rotate(-8deg)}.action-spark{font-size:26px;right:3px;top:4px}.action-food{font-size:30px;left:-6px}.mountain{font-size:135px;bottom:-25px}.action-cta{margin-top:19px;padding-top:12px;font-size:12px}.launchpad-note{font-size:11px;line-height:1.8;padding:0 5px}.collection-heading h3{font-size:22px}.game-card h3{font-size:25px}.game-card p{font-size:14px;line-height:1.7}.game-card b{font-size:13px}.game-tag{font-size:9px;line-height:1.6}.game-card.featured{grid-column:auto}.game-card img{height:220px}.game-dialog,.game-dialog:has(.arcade-arena){width:100%;max-width:100%;height:100dvh;max-height:100dvh;margin:0;border:0;border-radius:0;padding:max(16px,env(safe-area-inset-top)) 16px max(20px,env(safe-area-inset-bottom));overscroll-behavior:contain}.game-top{top:calc(-1 * max(16px,env(safe-area-inset-top)));padding:12px 0;background:#fcf8ee;gap:12px}.game-top h2,.game-dialog:has(.arcade-arena) .game-top h2{font-size:27px;line-height:1.12}.game-top .game-tag{font-size:8px}.intro-copy,.choice,.feedback{font-size:15px;line-height:1.65}.choice{min-height:60px;padding:16px}.choice small{font-size:12px}.character-picker{gap:8px;margin:17px 0 12px}.character-picker button{padding:10px 8px;gap:8px;font-size:13px}.character-picker .character-face{width:47px;height:47px;border-width:2px;background-size:300px 200px;background-position:-106px -28px}.character-picker .character-face.nikita{background-size:320px 214px;background-position:-214px -42px}.character-picker small{font-size:9px}.arcade-scene{height:160px}.arcade-instructions{font-size:13px}.arcade-arena{width:min(100%,calc((100dvh - 240px)*.85714));min-width:245px;border-radius:17px}.arcade-hud,.arcade-bottom,.arcade-help{width:min(100%,480px)}.arcade-hud{padding-top:6px}.arcade-hud b{font-size:21px}.arcade-help{font-size:11px}.arcade-menu-bottom>span{font-size:10px}.arcade-pop{font-size:10px;top:12px;padding:8px 12px}.game-actions{gap:10px}.game-actions .button,.game-actions .subtle-button{flex:1;justify-content:center;font-size:13px}.memory-board[data-pairs="15"]{grid-template-columns:repeat(5,1fr)}.memory-board[data-pairs="10"]{grid-template-columns:repeat(4,1fr)}.memory-tile{min-height:68px}.field-select,.meme-controls select,.meme-controls textarea{font-size:16px;min-height:46px}.album-hero h1{font-size:clamp(39px,10.7vw,62px)}.album-hero>p{font-size:15px}.album-filters{gap:8px}.album-filters button{font-size:12px;padding:9px 14px}.album-card strong{font-size:13px}.album-card span{font-size:11px}.album-caption{font-size:14px!important;padding:12px 5px}.album-dialog{padding:20px 14px max(20px,env(safe-area-inset-bottom));max-height:100dvh}.lightbox-close{min-width:44px;min-height:44px}.game-status{font-size:11px}.badge{font-size:11px}.result-title{font-size:32px}.result-copy{font-size:15px}
}
@media(max-width:360px){.site-header{padding:10px 16px}.site-header nav{gap:9px;font-size:11px}.section-wrap{padding-left:16px;padding-right:16px}.character-picker button{flex-direction:column;align-items:flex-start}.action-card h3{font-size:31px}.game-top h2{font-size:24px}.arcade-hud{gap:7px}}
@media(max-height:600px) and (orientation:landscape){.arcade-arena{width:280px}.game-dialog:has(.arcade-arena){max-width:100%;height:100dvh;max-height:100dvh}.arcade-help{font-size:11px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}html{scroll-behavior:auto}}
@media(max-width:680px){.play-page .site-header nav a:nth-child(2){display:inline-flex}.album-hero>p.eyebrow{font-size:10px}.game-dialog #game-stage{padding:10px 0 20px}.album-hero h1{margin-bottom:22px}.album-grid button{overflow-wrap:anywhere}}
