.footer{padding-top:0}
.puzzle-footer{background:#edf3f8;color:#122c46;border-bottom:1px solid #cadce8;padding:64px 0}
.puzzle-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,440px);grid-template-areas:"intro visual" "controls visual";column-gap:80px;row-gap:32px;align-items:center}
.puzzle-intro{grid-area:intro;align-self:end}
.puzzle-eyebrow{font-size:10px;letter-spacing:1.4px;text-transform:uppercase;color:#536b80;margin-bottom:23px}
.puzzle-intro h2{font-family:Georgia,'Times New Roman',serif;font-size:clamp(40px,4.5vw,62px);letter-spacing:-2px;line-height:1.08}
.puzzle-intro h2 span{color:#217db1}
.puzzle-tagline{margin-top:22px;font-size:20px;line-height:1.4}
.puzzle-description{max-width:400px;margin-top:16px;font-size:14px;line-height:1.75;color:#536b80}
.puzzle-visual{grid-area:visual;position:relative;margin:0;width:100%;overflow:hidden;border-radius:5px;background:#f2e9d9;box-shadow:0 15px 48px #40281318}
.puzzle-art{width:100%;height:auto;aspect-ratio:948/1249}
.puzzle-art [data-puzzle-rank]{transition:fill .55s ease}
.puzzle-image-value{position:absolute;top:15px;right:15px;padding:9px 12px;background:#122c46;color:#ffffff;font-size:18px;font-weight:600;border-radius:3px;font-variant-numeric:tabular-nums;min-width:64px;text-align:center}
.puzzle-controls{grid-area:controls;align-self:start;max-width:480px;min-width:0}
.puzzle-caption{display:flex;align-items:center;justify-content:space-between;gap:15px;font-size:12px;line-height:1.5;color:#536b80;margin-bottom:15px}
.puzzle-caption output{font-size:27px;color:#217db1;font-weight:600;font-variant-numeric:tabular-nums}
.puzzle-stages{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:6px}
.puzzle-stages button{min-height:46px;padding:10px 3px;background:#dbe7f1;border-radius:3px;font-size:12px;color:#36566f;font-variant-numeric:tabular-nums;transition:background .2s,color .2s}
.puzzle-stages button:hover{background:#cadce8}
.puzzle-stages button[aria-pressed="true"]{background:#217db1;color:#ffffff}
.puzzle-play-row{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:22px}
.puzzle-play{display:inline-flex;align-items:center;justify-content:space-between;gap:24px;min-height:48px;padding:14px 18px;background:#122c46;color:#ffffff;border-radius:3px;font-size:13px;min-width:185px}
.puzzle-play:hover{background:#245c86}
.puzzle-status{font-size:11px;line-height:1.6;color:#536b80;max-width:120px}
.footer-main{padding-top:38px}
@media(max-width:1050px){.puzzle-layout{column-gap:40px;grid-template-columns:minmax(0,1fr) minmax(0,370px)}.puzzle-intro h2{font-size:46px}.puzzle-stages{gap:4px}.puzzle-stages button{font-size:11px}.puzzle-play-row{gap:14px}.puzzle-tagline{font-size:18px}}
@media(max-width:800px){.puzzle-layout{grid-template-columns:minmax(0,1fr) minmax(0,320px);column-gap:28px;row-gap:24px}.puzzle-intro h2{font-size:41px}.puzzle-description{font-size:12px}.puzzle-eyebrow{font-size:9px;letter-spacing:1px}.puzzle-stages{grid-template-columns:repeat(4,minmax(0,1fr))}.puzzle-tagline{font-size:17px}.puzzle-caption output{font-size:23px}.puzzle-play-row{margin-top:16px}.puzzle-play{font-size:12px;min-width:176px}}
@media(max-width:620px){.puzzle-footer{padding:43px 0 40px}.puzzle-layout{grid-template-columns:minmax(0,1fr);grid-template-areas:"intro" "visual" "controls";gap:25px}.puzzle-intro,.puzzle-controls{max-width:440px;width:100%;justify-self:center}.puzzle-eyebrow{margin-bottom:15px}.puzzle-intro h2{font-size:43px;letter-spacing:-1.7px}.puzzle-tagline{margin-top:15px;font-size:18px}.puzzle-description{font-size:13px;line-height:1.65;margin-top:10px}.puzzle-visual{max-width:380px;justify-self:center}.puzzle-stages{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.puzzle-stages button{font-size:13px;min-height:44px}.puzzle-play-row{justify-content:space-between;gap:14px}.puzzle-caption{margin-bottom:11px}.puzzle-status{max-width:110px;font-size:11px}.puzzle-play{min-width:170px;padding:13px 15px}.puzzle-image-value{top:12px;right:12px;font-size:16px}}
@media(max-width:350px){.puzzle-intro h2{font-size:38px}.puzzle-play-row{gap:10px}.puzzle-play{min-width:160px}.puzzle-status{max-width:100px;font-size:10px}}
@media(prefers-reduced-motion:reduce){.puzzle-art [data-puzzle-rank]{transition:none}}
@media(max-width:620px){.budget-section .section-heading p{min-width:0}}
