/* Playful additions keep the calendar poster clear and all drawings on-device. */
.play-garage-open{border:1px solid #aeb7a6;background:#fff9e9;color:var(--green);font:700 11px Arial,sans-serif;padding:9px 12px;border-radius:3px;white-space:nowrap}
.play-garage-open:hover{background:#e9eadc}.rally-garage{max-width:1040px;width:calc(100% - 40px);padding:28px;max-height:calc(100svh - 40px);border-top:5px solid var(--green)}
.garage-header{display:flex;justify-content:space-between;gap:20px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:18px}.garage-header h2{font-size:36px;margin:4px 0 0}.garage-header .tool{white-space:nowrap}
.garage-summary{font:12px/1.7 Arial,sans-serif;color:var(--muted);margin:16px 0}.garage-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.garage-card{background:#fffdf6;border:1px solid #c7cbbd;border-radius:3px;overflow:hidden}.garage-picture{display:block;width:100%;height:230px;object-fit:contain;background:#e4e7dd;padding:12px}.garage-card-info{padding:15px}.garage-card-day{font:700 9px Arial,sans-serif!important;letter-spacing:1.3px;color:var(--red);margin:0}.garage-card-info h3{font:26px Impact,'Arial Narrow',Arial,sans-serif;text-transform:uppercase;margin:7px 0}.garage-version{font:10px/1.5 Arial,sans-serif!important;color:var(--muted);margin:5px 0}.garage-card-info .action{margin-top:10px;padding:12px;font-size:11px}.garage-local-note{font:11px/1.7 Arial,sans-serif;color:var(--muted);margin:22px 0 0}.garage-empty{grid-column:1/-1;padding:28px 20px;text-align:center;background:#e7eadf;border:1px dashed #bcc6b1}.garage-empty img{width:105px;height:120px;object-fit:contain}.garage-empty h3{font:29px Impact,'Arial Narrow',Arial,sans-serif;text-transform:uppercase;margin:12px 0}.garage-empty p{max-width:400px;margin:auto;font:13px/1.8 Arial,sans-serif}
.play-studio-helpers{height:34px;flex-shrink:0;display:flex;justify-content:center;gap:12px;align-items:center;padding:2px 12px;background:#edeede;border-bottom:1px solid #ccd1c1}.play-helper-button{display:flex;align-items:center;gap:5px;padding:2px 9px;height:29px;border:0;background:transparent;color:#315340;font:700 10px Arial,sans-serif;border-radius:3px}.play-helper-button:hover,.play-helper-button[aria-expanded=true]{background:#dce3cf}.play-helper-button img{width:24px;height:28px;object-fit:contain}
.rally-coach{position:absolute;left:18px;bottom:18px;display:flex;gap:8px;align-items:flex-end;max-width:390px;filter:drop-shadow(0 7px 18px #142c2640);z-index:4}.coach-mascot{width:86px;height:100px;object-fit:contain;flex-shrink:0}.coach-body{background:#fff8e9;border:1px solid #a9b59d;border-top:3px solid #c9ab5e;border-radius:5px;padding:16px}.coach-tag{font:700 8px/1.5 Arial,sans-serif!important;letter-spacing:1px;color:var(--red);margin:0 0 6px}.coach-body h3{font:23px/1.1 Impact,'Arial Narrow',Arial,sans-serif;text-transform:uppercase;margin:0 0 8px}.coach-text{font:12px/1.65 Arial,sans-serif!important;margin:0}.coach-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}.coach-actions .tool{font-size:10px;padding:8px;min-height:34px}.coach-skip{font:10px Arial,sans-serif;color:var(--muted);border:0;background:transparent;padding:7px}.rally-quest{position:absolute;top:12px;right:12px;max-width:300px;background:#fff7df;border:1px solid #c7b475;border-radius:4px;padding:14px 16px;box-shadow:0 5px 18px #132d2630;z-index:3}.quest-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.quest-top .kicker{font-size:8px;margin:0}.quest-close{border:0;background:transparent;font-size:23px;color:var(--ink);width:26px;height:27px;padding:0}.quest-text{font:21px/1.2 Georgia,serif!important;margin:10px 0}.quest-note{font:10px/1.6 Arial,sans-serif!important;color:var(--muted);margin:0}
.calendar-board{position:relative}.play-discoveries{display:flex;align-items:center;gap:7px;white-space:nowrap}.discovery-label{font:9px Arial,sans-serif;color:var(--muted)}.discovery-button{display:flex;align-items:center;justify-content:center;width:30px;height:27px;border:1px solid transparent;border-radius:3px;background:transparent;padding:2px}.discovery-button svg{width:23px;height:24px;display:block}.discovery-button:hover{background:#e3e5d6;border-color:#c6cdbb}.play-secret-effect{position:absolute;bottom:42px;left:50%;transform:translateX(-50%);width:196px;pointer-events:none;background:#fff9ecf5;border:1px solid #b5bca8;border-bottom:4px solid #d1b66e;box-shadow:0 7px 24px #153a2d40;border-radius:7px;text-align:center;padding:12px 14px;z-index:5;animation:secret-arrival .25s ease-out}.secret-art{height:92px;position:relative;width:110px;margin:auto;overflow:hidden}.secret-art>svg{height:90px;width:86px;position:relative;z-index:2}.play-secret-effect>p{font:700 12px/1.5 Arial,sans-serif;margin:8px 0 0}.secret-snowman .play-snowman-arm{transform-box:fill-box;transform-origin:left bottom;animation:snowman-hello .6s ease-in-out 4 alternate}.secret-tree .play-tree-lights{animation:tree-glow 1.2s ease-in-out 3 alternate}.secret-garage .play-garage-shutter{transform-box:fill-box;transform-origin:top;animation:garage-open 1.6s ease-in-out forwards}.secret-santa{position:absolute;width:38px;height:51px;left:36px;bottom:3px;z-index:3;animation:santa-peek 1.8s ease-out forwards}
@keyframes secret-arrival{from{opacity:0;translate:0 7px}to{opacity:1;translate:0 0}}@keyframes snowman-hello{from{rotate:-16deg}to{rotate:16deg}}@keyframes tree-glow{from{opacity:.65;filter:brightness(.9)}to{opacity:1;filter:brightness(1.5)}}@keyframes garage-open{0%,20%{transform:scaleY(1)}65%,100%{transform:scaleY(.08)}}@keyframes santa-peek{0%,35%{transform:translateY(50px);opacity:0}70%,100%{transform:translateY(0);opacity:1}}
@media(max-width:800px){.calendar-page .masthead-right{gap:6px}.play-garage-open{font-size:10px;padding:7px 9px}.rally-garage{padding:18px;width:calc(100% - 24px);max-height:calc(100svh - 24px)}.garage-header h2{font-size:29px}.garage-header{gap:10px;padding-bottom:12px}.garage-header .tool{font-size:10px;padding:8px;min-height:34px}.garage-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.garage-picture{height:210px;padding:9px}.garage-card-info{padding:12px}.garage-card-info h3{font-size:23px}.garage-card-day{font-size:8px!important}.garage-card-info .action{font-size:10px;gap:5px;padding:10px}.play-studio-helpers{height:31px;gap:10px;padding:0 7px}.play-helper-button{font-size:9px;height:27px;padding:1px 7px}.play-helper-button img{height:26px;width:22px}.rally-coach{left:8px;bottom:8px;right:8px;max-width:340px;gap:0}.coach-mascot{width:56px;height:77px;margin-right:-3px}.coach-body{padding:12px}.coach-body h3{font-size:20px}.coach-text{font-size:10px!important}.coach-actions{margin-top:9px;gap:4px}.coach-actions .tool{font-size:9px;padding:7px;min-height:31px}.coach-tag{font-size:7px!important}.rally-quest{top:8px;right:8px;max-width:250px;padding:10px 12px}.quest-text{font-size:18px!important}.quest-note{font-size:9px!important}.board-footer{height:30px}.board-footer>span:first-child{display:none}.play-discoveries{gap:5px}.discovery-label{font-size:8px}.discovery-button{height:27px;width:30px}.play-secret-effect{width:180px;bottom:40px;padding:10px}.play-secret-effect>p{font-size:11px}.secret-art{height:80px}.secret-art>svg{height:79px}}
@media(max-width:420px){.calendar-page .wordmark{font-size:21px;gap:7px}.calendar-page .wordmark small{font-size:6.5px;letter-spacing:1.3px}.calendar-page .masthead-right{gap:4px}.calendar-page .masthead .text-button{font-size:8px;padding:10px 0}.play-garage-open{font-size:9px;padding:7px 6px}.calendar-page .snow-toggle{font-size:7px;padding:6px 5px}.garage-grid{gap:9px}.garage-picture{height:173px;padding:7px}.garage-card-info{padding:9px}.garage-header h2{font-size:26px}.garage-header .kicker{font-size:7px}.garage-card-info h3{font-size:21px}.garage-summary{font-size:11px}.garage-local-note{font-size:10px}.garage-card-info .action{padding:9px 6px;font-size:9px}.garage-empty{padding:20px 12px}.garage-empty h3{font-size:24px}.garage-empty p{font-size:12px}}
@media(max-height:650px){.rally-coach{max-width:325px}.coach-mascot{width:45px;height:60px}.coach-body{padding:9px 11px}.coach-body h3{font-size:19px}.coach-text{font-size:10px!important}.coach-tag{font-size:7px!important}.coach-actions{margin-top:8px}}
@media(prefers-reduced-motion:reduce){.play-secret-effect,.play-secret-effect *{animation:none!important;transition:none!important}.secret-garage .play-garage-shutter{transform:scaleY(.08)}.secret-santa{transform:none;opacity:1}}
/* Stamp tray (studio). Shown only while the stamp tool is selected. */
.stamp-tray{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;padding:7px 12px;border-bottom:1px solid var(--line);background:var(--paper);flex-shrink:0}
.stamp-tray[hidden]{display:none}
.stamp-tray .stamp-choice{min-height:36px;padding:6px 10px;font-size:11px}
@media(max-width:600px){.stamp-tray{gap:4px;padding:5px 8px}.stamp-tray .stamp-choice{font-size:10px;padding:5px 7px;min-height:32px}}
/* Rainbow and glitter pens, driver plate fields. */
.studio .swatch.special-pen{padding:0;overflow:hidden;background:#fffdf5}.studio .swatch.special-pen svg{display:block;width:100%;height:100%}
.driver-fields{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;width:100%;font-size:11px;font-weight:700}.driver-fields[hidden]{display:none}.driver-fields label{display:flex;align-items:center;gap:5px}.driver-fields input{width:62px;min-height:32px;padding:5px 7px;border:1px solid var(--line);border-radius:3px;background:#fff;font-size:13px}.driver-fields input#driver-name{width:130px}
/* Celebration after save/print: confetti stays inside the picture area and never blocks painting. */
.rally-party{position:absolute;inset:0;z-index:30;pointer-events:none;display:flex;align-items:center;justify-content:center}.rally-party[hidden]{display:none}.party-confetti{position:absolute;inset:0;width:100%;height:100%}
.party-card{position:relative;background:var(--white);border:3px solid var(--gold);border-radius:14px;padding:14px 22px;text-align:center;box-shadow:0 12px 40px #0d241f55;max-width:min(90%,420px)}.party-card.pop{animation:party-pop .45s cubic-bezier(.2,1.6,.4,1)}
.party-title{margin:0;font:400 clamp(22px,4vw,34px)/1.1 Impact,'Arial Narrow',Arial,sans-serif;text-transform:uppercase;color:var(--red)}.party-text{margin:6px 0 0;font-size:14px;font-weight:700}
@keyframes party-pop{from{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}
.badge-toast{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);z-index:31;pointer-events:none;background:#153d32;color:#fff8df;border:2px solid var(--gold);border-radius:999px;padding:9px 16px;font-size:13px;font-weight:700;white-space:nowrap;max-width:calc(100% - 20px);overflow:hidden;text-overflow:ellipsis;box-shadow:0 8px 24px #0006}.badge-toast[hidden]{display:none}
/* Sleeps left until Christmas Eve (desktop pit wall). */
.sleeps-left{margin:0 0 0 auto;padding:9px 14px;background:#153d32;color:#fff8df;border:2px solid var(--gold);border-radius:999px;font-size:13px;font-weight:700;line-height:1.2;white-space:nowrap;flex-shrink:0}
@media(max-width:800px){.sleeps-left{font-size:11px;padding:6px 10px;border-width:1px;align-self:center}.sleeps-left .sleeps-long{display:none}}
/* Badges and diploma in Mitt garage. */
.garage-badges{border:1px solid var(--line);background:var(--white);border-radius:6px;padding:12px 14px;margin:0 0 14px}.badge-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.badge-head h3{margin:0;font:400 22px Impact,'Arial Narrow',Arial,sans-serif;text-transform:uppercase}.badge-count{margin:0;font-weight:700;color:var(--red)}
.badge-row{list-style:none;margin:10px 0;padding:0;display:grid;grid-template-columns:repeat(12,minmax(0,40px));justify-content:start;gap:6px}.badge{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#eef0e8;border:2px dashed #c7cbbd;color:#a0a69c;font:700 12px Arial,sans-serif}.badge.earned{background:radial-gradient(circle at 35% 30%,#ffe9a0,#dcae35 60%,#a8790f);border:2px solid #a8790f;color:#3d2c05}
.diploma-box{display:grid;grid-template-columns:1fr auto;gap:6px 12px;align-items:center;border-top:1px solid var(--line);padding-top:10px}.diploma-text{grid-column:1/-1;margin:0;font-size:12px!important;line-height:1.5!important}.diploma-name{font-size:11px;font-weight:700;display:flex;flex-direction:column;gap:4px}.diploma-box input{min-height:36px;padding:6px 9px;border:1px solid var(--line);border-radius:3px;background:#fff;font-size:14px;max-width:220px}
.diploma-actions{display:flex;gap:8px;flex-wrap:wrap;align-self:end}.diploma-actions .action{width:auto;margin:0;padding:10px 14px}.diploma-actions button:disabled{opacity:.45;cursor:not-allowed}.diploma-box:not(.is-open) .diploma-name,.diploma-box:not(.is-open) input{opacity:.6}
.garage-replay{margin-top:8px;width:100%}
@media(max-width:600px){.badge-row{grid-template-columns:repeat(8,minmax(0,1fr));gap:5px}.diploma-box{grid-template-columns:1fr}.diploma-box input{max-width:none;width:100%}}
/* Replay viewer. */
.rally-replay{max-width:min(760px,calc(100% - 24px));padding:18px 20px}.replay-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.replay-head h2{margin:0;font-size:28px}
.replay-stage{margin:12px 0 8px;display:flex;justify-content:center;background:#e5e9db;border-radius:6px;padding:8px}.replay-canvas{display:block;max-width:100%;max-height:calc(100svh - 230px);background:#fff;box-shadow:0 4px 16px #0003}
.replay-info{margin:0 0 8px;text-align:center;font-weight:700;font-size:13px}.replay-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.replay-actions .action{width:auto;margin:0;padding:11px 16px}
@media(prefers-reduced-motion:reduce){.party-card.pop{animation:none}}
