/* Painted storybook characters and an accessible Home scene. */
.painted-elf{display:block;position:relative;isolation:isolate;width:100%;aspect-ratio:2/3;line-height:0;transition:transform .35s ease;filter:drop-shadow(0 10px 10px #36443816)}.painted-elf>img{width:100%;height:100%;display:block;object-fit:contain;position:relative;z-index:1}.painted-elf:before{content:'';position:absolute;inset:18% 8% 12%;background:radial-gradient(ellipse,#efce9270,transparent 68%);opacity:0;transition:opacity .4s;z-index:-1}.painted-elf .elf-sparkle{position:absolute;z-index:2;left:68%;top:38%;font:26px Georgia;color:#ad7529;opacity:0;transform:scale(.7);transition:opacity .3s,transform .4s}.painted-elf .elf-sparkle:nth-of-type(2){left:22%;top:22%;font-size:17px}.painted-elf .elf-sparkle:nth-of-type(3){left:79%;top:66%;font-size:18px}.elf-active .painted-elf:before{opacity:1}.elf-active .elf-sparkle{opacity:1;transform:scale(1)}.elf-active[data-elf=wave] .painted-elf{animation:painted-greeting .85s ease-in-out 2}.elf-character:hover .painted-elf,.home-elf:hover .painted-elf,.postroom-elf:hover .painted-elf{transform:translateY(-5px)}.elf-active[data-elf=lights] .painted-elf:before{inset:5% -10%;background:radial-gradient(ellipse,#efd386aa,transparent 67%)}.elf-cast{gap:34px;align-items:end}.elf-character:nth-child(2){padding-top:0}.elf-character .painted-elf{max-width:258px;margin:auto}.elf-name{margin-top:12px}.elf-action{font-size:11px}.home-elf>.painted-elf,.postroom-elf>.painted-elf{display:block;min-height:0;padding:0;line-height:0}.home-elf{width:52%;right:14%;max-width:260px}.home-story-scene{height:505px}.home-elf>span:last-child,.postroom-elf>span:last-child{line-height:1.45;min-height:44px}.postroom-art{height:370px}.postroom-elf{max-width:210px;left:4%}.elf-workshop{background:radial-gradient(ellipse at 50% 35%,#fff9ec 0,#f4eedd 58%,#e8ebdf 100%)}.workshop-heading h2{color:#213d32}.workshop-stage{padding-top:127px;padding-bottom:33px}.workshop-stage>.winter-trees{bottom:69px}
.home-page .hero{isolation:isolate;background:radial-gradient(ellipse at 73% 23%,#36544855,transparent 50%),linear-gradient(120deg,#183c31,#102823 58%,#1c3d34)}.hero-bough{position:absolute;left:0;top:-15px;width:100%;height:110px;pointer-events:none;z-index:0;opacity:.83}.hero-bough .drawn-garland{height:100%;opacity:.85}.hero-bough .workshop-bulb{fill:#cba572}.hero-bauble{position:absolute;width:72px;left:42%;top:-28px;pointer-events:none;z-index:0}.hero-bauble .closing-ornament{position:relative;width:100%;right:auto;top:auto;transform:rotate(-8deg);opacity:1}.hero-stars{position:absolute;inset:0;z-index:-1;pointer-events:none;color:#d8bd81}.hero-stars i{position:absolute;font-family:Georgia;font-style:normal;opacity:.36;font-size:21px;transition:opacity .3s,filter .3s}.hero-stars i:nth-child(1){left:39%;top:34%}.hero-stars i:nth-child(2){left:5%;top:68%;font-size:30px}.hero-stars i:nth-child(3){left:47%;top:81%;font-size:13px}.hero-stars i:nth-child(4){right:4%;top:67%;font-size:35px}.home-lights-on .hero-bough .workshop-bulb{fill:#ffe0a0;filter:drop-shadow(0 0 8px #ffd876)}.home-lights-on .festive-garland i{background:#ffe8af;box-shadow:0 0 15px #e6b65c}.home-lights-on .hero-media{box-shadow:0 0 65px #dcaf7015}.home-starlight .hero-stars i{opacity:1;filter:drop-shadow(0 0 8px #e9c273)}.home-flurry .festive-snow i{animation-duration:4s!important;opacity:.75!important}
.welcome-magic{position:relative;display:grid;grid-template-columns:164px minmax(250px,1fr) minmax(340px,1.05fr);gap:30px;align-items:center;background:linear-gradient(100deg,#ede3cc,#f8f0df 48%,#ede6d4);border-top:1px solid #e4cca0;border-bottom:1px solid #d3c9b0;min-height:260px;padding-top:26px;padding-bottom:26px;isolation:isolate}.welcome-helper{align-self:end;margin-top:-45px;margin-bottom:-26px;width:177px;pointer-events:none}.welcome-helper .painted-elf{filter:drop-shadow(0 8px 10px #554f3c20)}.welcome-magic-copy .eyebrow{font-size:8px;letter-spacing:1.35px;color:#80573d;margin-bottom:17px}.welcome-magic-copy h2{font:48px/1 var(--serif);letter-spacing:-1.5px;color:#213e32}.welcome-magic-copy h2 em{color:#99534e}.welcome-magic-copy>p:last-child{font-size:12px;line-height:1.8;color:#5c6350;margin-top:17px}.magic-buttons{display:flex;gap:8px;align-items:stretch}.magic-buttons button{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:95px;min-width:0;background:#fff8e680;border:1px solid #c6b68e;border-radius:40px 40px 7px 7px;color:#475443;font-size:10px;padding:12px 8px;box-shadow:0 3px 0 #b9a47922;transition:background .25s,transform .25s}.magic-buttons button:hover{transform:translateY(-3px);background:#fffaf0}.magic-buttons button[aria-pressed=true]{background:#264d3c;color:#fff0ca;border-color:#264d3c}.magic-buttons button>span{font:25px/1 Georgia;color:#96663f}.magic-buttons button[aria-pressed=true]>span{color:#f4d28b}.magic-buttons .mini-present{transform:scale(.85);margin:6px 0 0}.home-magic-status{font:italic 16px/1.4 var(--serif);color:#66573d;min-height:44px;margin:15px 0 0;text-align:center}.magic-paused .painted-elf,.magic-paused .elf-sparkle,.magic-paused .painted-elf:before,.magic-paused .magic-buttons button{animation:none!important;transition:none!important}.magic-paused .elf-character:hover .painted-elf,.magic-paused .home-elf:hover .painted-elf,.magic-paused .postroom-elf:hover .painted-elf,.magic-paused .magic-buttons button:hover{transform:none}.magic-paused.home-flurry .festive-snow i{animation-play-state:paused!important}
@keyframes painted-greeting{0%,100%{transform:rotate(0)}35%{transform:rotate(-3deg) translateY(-3px)}70%{transform:rotate(2deg)}}
@media(max-width:1150px){.welcome-magic{grid-template-columns:128px 1fr 1.1fr;gap:23px}.welcome-helper{width:145px}.welcome-magic-copy h2{font-size:40px}.welcome-magic-copy .eyebrow{font-size:7px}.magic-buttons button{font-size:9px}.elf-cast{gap:18px}.home-story-scene{height:450px}}
@media(max-width:950px){.welcome-magic{grid-template-columns:142px 1fr;gap:12px 24px;padding-top:25px;padding-bottom:21px}.welcome-helper{grid-row:1/3;align-self:center;margin:0;width:150px}.magic-controls{grid-column:2}.welcome-magic-copy h2{font-size:46px}.welcome-magic-copy>p:last-child{margin-top:10px}.magic-buttons{max-width:410px}.magic-buttons button{min-height:77px;gap:7px;font-size:10px}.home-magic-status{text-align:left;min-height:25px;margin-top:12px}.elf-action{font-size:10px}.workshop-stage{padding-top:103px}.elf-cast{gap:15px}.home-story-scene{height:470px}.home-elf{width:48%;right:15%}.postroom-art{height:337px}.postroom-elf{width:61%}.hero-bauble{left:43%;width:58px}}
@media(max-width:600px){.hero-bough{height:63px;top:-8px;opacity:.58}.hero-bauble{left:auto;right:4%;width:55px;top:-22px}.home-page .hero-copy{position:relative;z-index:1}.hero-stars i:nth-child(1){left:83%;top:27%}.hero-stars i:nth-child(2){left:3%;top:48%}.hero-stars i:nth-child(3){left:91%;top:67%}.welcome-magic{grid-template-columns:90px 1fr;gap:15px 8px;padding-top:25px;padding-bottom:24px;min-height:0}.welcome-helper{grid-row:1;align-self:center;width:118px;margin-left:-19px}.welcome-magic-copy .eyebrow{font-size:6px;letter-spacing:1px;max-width:180px;line-height:1.5;margin-bottom:11px}.welcome-magic-copy h2{font-size:38px;max-width:210px;line-height:1}.welcome-magic-copy>p:last-child{font-size:11px;line-height:1.65;margin-top:13px}.welcome-magic-copy>p:last-child br{display:none}.magic-controls{grid-column:1/-1}.magic-buttons{gap:9px;max-width:none}.magic-buttons button{font-size:10px;min-height:85px;gap:9px}.home-magic-status{text-align:center;min-height:43px;margin-top:16px;font-size:17px}.elf-cast{gap:28px 11px}.elf-character:nth-child(3){width:56%}.elf-name{font-size:31px;margin-top:8px}.elf-action{font-size:10px;line-height:1.5;flex-wrap:wrap;padding:3px 0}.workshop-stage{padding-top:80px}.workshop-stage>.winter-trees{height:730px}.home-story-scene{height:433px;margin-top:28px}.home-elf{width:61%;right:7%;bottom:7px}.home-elf>span:last-child{font-size:10px}.postroom-art{height:326px}.postroom-elf{width:62%;max-width:203px}.hero-media{position:relative;z-index:2}}
@media(max-width:360px){.welcome-magic{grid-template-columns:81px 1fr;gap:13px 6px}.welcome-helper{width:107px;margin-left:-18px}.welcome-magic-copy h2{font-size:34px}.welcome-magic-copy>p:last-child{font-size:10px}.magic-buttons button{font-size:9px;padding:10px 4px}.home-story-scene{height:381px}.elf-action{font-size:9px}.postroom-art{height:302px}}
@media(prefers-reduced-motion:reduce){.painted-elf,.elf-sparkle,.painted-elf:before,.magic-buttons button{animation:none!important;transition:none!important}.elf-character:hover .painted-elf,.home-elf:hover .painted-elf,.postroom-elf:hover .painted-elf,.magic-buttons button:hover{transform:none}}

/* Willy greets on activation; the shared Pause magic and reduced-motion rules suppress this. */
.elf-active[data-elf=lights] .elf-willy{transform-origin:50% 96%;animation:willy-greeting 1.65s ease-in-out 1}
@keyframes willy-greeting{0%,100%{transform:rotate(0) translateY(0)}24%{transform:rotate(-1.6deg) translateY(-2px)}48%{transform:rotate(1.2deg) translateY(-1px)}72%{transform:rotate(-.7deg) translateY(-1px)}}
