/* M41 · Frost, evergreen and winter red. Presentation only: no puzzle rules change.
   Load after all engine styles. Brass, paper evidence and authored SVG geometry stay intact. */
:root{--ink:#193c45;--muted:#4b6670;--blue:#174d43;--paper:#edf4f6;--cream:#fbfdfd;--brass:#a17434;--line:#bacdd2;--soft:#e0edf1;--christmas-pine:#16483e;--christmas-red:#9a263d;--christmas-frost:#edf4f6;--christmas-ice:#c9e2ed;--christmas-ink:#193c45}
body{background:radial-gradient(ellipse at 95% 8%,#dceaf1 0,transparent 45%),#edf4f6;color:var(--christmas-ink)}
button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible,[role=button]:focus-visible{outline:3px solid #b6324c;outline-offset:4px}
.masthead{max-width:none;background:#153f37;color:#f7fbfa;border-bottom:3px solid #9a263d;box-shadow:0 5px 20px #1b434414}
.masthead .wordmark,.masthead nav button,.masthead .language-link{color:#f4fbfa}.masthead .brand-mark>span{color:#e5b96b}.masthead .preview-badge{background:#23564b;border-color:#638b7b;color:#e4f0ea}.masthead nav button:hover{background:#2b5e51;border-color:#88ad9e}.masthead .language-link:hover{color:#ffdbdf}
.hero{background:radial-gradient(ellipse at 85% 40%,#d2e5eeaa,transparent 60%)}.hero .eyebrow{color:#8d2539}.hero h1{color:#163f38}.hero-copy>p#subtitle{color:#4b6570}.story-note{color:#496570;border-color:#9b344c66}.story-note .note-star{color:#a62c45}.story-note>span:last-child{color:#7d2940}
button.primary,.puzzle-view .earned-parcel button{background:#98253c;color:#fff;border-color:#98253c;box-shadow:0 3px 0 #67142824}button.primary:hover,.puzzle-view .earned-parcel button:hover{background:#7d1b30;border-color:#7d1b30}
.scene-frame{padding-top:6px;background:#dceaf0;border-color:#9cb8c4;box-shadow:0 12px 32px #244c6015}.scene-caption{background:#dceaf0;color:#2d5261}.scene-caption button{color:#234d59}.section-line .eyebrow,.calendar-section .eyebrow{color:#8d2539}.districts button{background:#f9fcfc;border-color:#b2c9ce;color:#315660}.districts button:hover{background:#dcebe9}
.calendar-door{background:#f9fcfc;border-color:#b6cbd0;box-shadow:0 3px 11px #24495607}.calendar-door.ready:before{background:transparent;border-color:#7aa38d88}.calendar-door.ready:hover{background:#e3efec;border-color:#48776b}.calendar-door.ready .door-number{color:#214d43}.calendar-door.unwrapped{background:#deebe6;border-color:#86ac9b}.calendar-door.unwrapped .door-number{color:#356452}.calendar-door.final-door{background:#7e2034;color:#fff;border-color:#7e2034}.calendar-door.final-door .door-top,.calendar-door.final-door .door-caption,.calendar-door.final-door strong,.calendar-door.final-door .door-number{color:#fff0f1}.calendar-door.final-door:hover{background:#671c2c}.epilogue-link{background:#e1ece9;border-color:#a0bcb0;color:#224b40}.quiet-note{border-color:#bdcfd2;background:#e2edee}.quiet-note>span{color:#a42b44}footer{border-color:#bbccd1}footer .footer-snow{color:#9a263d}
dialog.experience,dialog#preferences,.story-theatre{background:#f4f8f9;color:#193c45;border-color:#8eaeb4;box-shadow:0 25px 90px #0e2f3855}dialog::backdrop{background:#112d38cc}.experience .dialog-top,.experience.puzzle-view.focus-mode .dialog-top{background:#e6f0f3;border-bottom-color:#bdd0d6}.dialog-top>.eyebrow{color:#7f2439}.close-button,.focus-button,.listen-button,.film-close{color:#234e4a;background:#fafdfe;border-color:#a4bec1}.door-heading h2,.recap-heading h2{color:#19483d}.door-heading>.door-lead{color:#3e5c68}.door-story>summary{color:#365e69}
/* The current goal is always legible, framed and close to the work surface. */
.puzzle-view .goal-card,.goal-card,.demo-page .demo-goal{margin:12px 0 16px;padding:13px 17px!important;border:1px solid #a8c3ba;border-left:5px solid #9b2942;border-radius:0 10px 10px 0;background:#e3eeea;color:#193f37;line-height:1.5;max-width:none;box-shadow:0 4px 12px #264d3c06}.puzzle-view .goal-card>span{color:#9b2942}.goal-card .eyebrow,.puzzle-view .goal-card .eyebrow{display:block;margin:0 0 3px;color:#743044;font-size:10px;letter-spacing:.13em}.goal-card p{margin:0!important;color:#193f37!important;font-size:15px!important}.demo-page .demo-goal:empty{display:none}
/* Frosted work surfaces; brass parts and warm lamp light remain earned highlights. */
:is(.mb20,.bal24,.br24,.mt24,.ww26,.tk28,.dl31,.mg31,.bn32,.tb32,.kp32,.mm32,.tr33,.ds33,.cm33,.ep33,.op31){--mb-ink:#203f48;--bal-paper:#edf5f5;--tk-paper:#edf5f5;color:#203f48;background:transparent}
:is(.puzzle-stage,#puzzle) :is(.mb20-panel,.bal24-panel,.br24-panel,.mt24-panel,.ww26-panel,.tk28-panel,.dl31-panel,.mg31-panel,.bn32-panel,.tb32-panel,.kp32-panel,.mm32-panel,.tr33-panel,.ds33-panel,.cm33-panel,.ep33-panel,.op31-panel){background:#edf5f5;border-color:#acc4ca;color:#203f48;box-shadow:0 5px 18px #2449560b}
:is(.puzzle-stage,#puzzle) :is(.fl26-panel,.fn26-panel,.lp26-panel,.st26-panel,.sh29-panel,.rg28-panel,.at28-panel){background:linear-gradient(140deg,#1a403b,#142e32);border-color:#60867d;color:#f1f7f3;box-shadow:0 8px 24px #173c3520}
.fl26{--fl-ink:#f1f7f3;--fl-muted:#c3d5cf;--fl-gold:#e6c581;--fl-dark:#142e32}.fn26{--fn-ink:#f1f7f3;--fn-muted:#c3d5cf;--fn-gold:#e6c581}.fl26 .fl26-heading p,.fl26 .fl26-rule,.fl26 .fl26-facing,.fl26 .fl26-clear{color:#d5e4de}.fl26 .fl37-steps li{background:#254c43;border-color:#547b6d}.fl26 .fl37-steps{color:#f1f7f3}
/* Selection uses a solid double edge, not colour alone. Placed parts keep a dashed
   edge and remain fully readable/selectable. No generated word can become a clue. */
:is(.puzzle-stage,#puzzle) :is(button,[role=button])[data-status=placed],:is(.puzzle-stage,#puzzle) :is(button,[role=button])[data-used=true]{opacity:1!important;border:2px dashed #648d80!important;box-shadow:inset 0 0 0 2px #e2efea!important}
:is(.puzzle-stage,#puzzle) button:is([aria-pressed=true],[aria-selected=true],[data-selected=true],.mb20-selected,.mt24-selected,.ww26-active,.ww26-selected,.tk28-selected,.sh29-selected,.st26-selected-pocket,.mm32-selected),:is(.puzzle-stage,#puzzle) .bal24-selected>.bal24-tin-button{opacity:1!important;outline:3px solid #b43651!important;outline-offset:2px;border:2px solid #f3fbf7!important;background:#214f43!important;color:#fff!important;box-shadow:inset 0 0 0 1px #86b39f,0 3px 10px #153e3920!important}
:is(.puzzle-stage,#puzzle) button[aria-pressed=true] :is(strong,small,span),:is(.puzzle-stage,#puzzle) .bal24-selected>.bal24-tin-button :is(strong,small){color:inherit!important}
:is(.puzzle-stage,#puzzle) :is(.fl26-candidates,.fn26-parts,.lp26-drawer,.st26-drawer,.sh29-bank,.rg28-cards,.at28-bank,.tk28-cards,.mb20-parts,.br24-card-bank,.bal24-bank) button:not([aria-pressed=true]):hover{outline:2px solid #8cb8aa;outline-offset:1px}
/* SVG selections retain their actual authored shape. */
.kp32 .kp32-selected>rect,.tb32 .tb32-selected rect,.op31 .op31-selected .op31-socket{stroke:#a22743!important;stroke-width:5!important;stroke-dasharray:8 3}.st26 .st26-selected-pocket{outline:3px solid #bd4a60;outline-offset:3px}
.earned-parcel,.earned-gift{background:#e1eeea;border-color:#96b9aa;color:#21483c}.earned-parcel h3,.earned-gift h3{color:#7f223a}.next-whisper{color:#435f6c}.reward-scene-caption{color:#395d67}.door-clue{background:#e5eff3;border-color:#8cacbd;color:#244a57}.story-theatre .film-transcript{color:#254953}
/* Snow is decorative, sparse and out of the way. It is never evidence. */
[data-winter-snow-host]{position:relative}.winter-snow{position:absolute;inset:0;z-index:3;overflow:hidden;pointer-events:none!important;border-radius:inherit;contain:layout paint;user-select:none}.winter-snow>i{position:absolute;top:-12px;left:var(--snow-x);width:var(--snow-size);height:var(--snow-size);border-radius:50%;background:#f4fbff;box-shadow:0 0 3px #f2fbff55;opacity:0;animation:winter-snowfall var(--snow-time) linear var(--snow-delay) infinite;pointer-events:none!important}.winter-snow-sides{z-index:1;mask-image:linear-gradient(90deg,#000,transparent 9%,transparent 91%,#000);-webkit-mask-image:linear-gradient(90deg,#000,transparent 9%,transparent 91%,#000)}.winter-snow-sides>i{background:#86adbf;box-shadow:none}.winter-snow[data-paused=true]>i{animation-play-state:paused}.winter-snow[data-reduced=true],html.reduced .winter-snow,.reduced .winter-snow{display:none!important}@keyframes winter-snowfall{0%{transform:translate3d(0,-8px,0);opacity:0}8%{opacity:var(--snow-opacity)}90%{opacity:var(--snow-opacity)}100%{transform:translate3d(var(--snow-drift),var(--snow-height,600px),0);opacity:0}}
@media(max-width:640px){.masthead{border-bottom-width:2px}.puzzle-view .goal-card{padding:11px 13px!important}.goal-card p{font-size:14px!important}.winter-snow-sides{display:none}.winter-snow>i:nth-child(n+31){display:none}}
@media(prefers-reduced-motion:reduce){.winter-snow{display:none!important}*,*:before,*:after{scroll-behavior:auto!important}}
@media(forced-colors:active){.winter-snow{display:none}:is(.puzzle-stage,#puzzle) button[aria-pressed=true]{outline:3px solid Highlight!important;border:2px solid ButtonText!important}.goal-card{border:2px solid CanvasText}}
/* D7 is a separate document: its index loads this file after its legacy styles. */
body:has(.workbench.v3){background:#142e32;color:#eff7f2}.workbench.v3{background:#142e32;color:#eff7f2}.workbench.v3 .bank-panel,.workbench.v3 .board-editor,.workbench.v3 .inspection{background:#1a4039;border-color:#648679;color:#e7f2eb}.workbench.v3 .pair-card{background:#17372f;border-color:#6b8c7c}.workbench.v3 .pair-card :is(.pair-current,.where,.part-name){color:#e1eee7}.workbench.v3 .gear-choice.placed{opacity:1;border:2px dashed #88b49b;color:#deeee1;background:#16352e}.workbench.v3 .pair-card.selected,.workbench.v3 .gear-choice.selected,.workbench.v3 .shaft-button.selected-mount{outline:3px solid #bd4a65;outline-offset:2px;border:2px solid #f3fbf7;background:#245446;color:#fff;box-shadow:inset 0 0 0 1px #86b39f}.workbench.v3 :is(.how,.goal-copy,.orientation-explanation,.track-key,.construction){color:#dcebe4}.workbench.v3 .pair-flip{border-color:#78998a;color:#eff7f2;background:#21463b}.workbench.v3 .feedback{background:#193b35;border-left-color:#c55870;color:#f1f8f2}.workbench.v3 .target-strip>span{background:#21483f;border-color:#608374;color:#e1eee8}.workbench.v3 .target-strip strong{color:#e6c589}
:is(.puzzle-stage,#puzzle) button[data-status=on-scale]{opacity:1!important;border:2px dashed #648d80!important;box-shadow:inset 0 0 0 2px #e2efea!important}
/* One purpose, one concrete task. The longer story stays in its disclosure. */
.door-heading:has(.mission-card)>.door-lead{display:none}.mission-card{margin:10px 0 8px;padding:0;max-width:80ch}.mission-card>strong{display:block;margin:0 0 3px;color:#7e2c40;font:600 11px/1.5 system-ui,sans-serif;letter-spacing:.04em}.mission-card>p{margin:0;color:#3c5d66;font-size:15px;line-height:1.5}.season-label{display:inline-block;padding:3px 10px;margin:6px 0;border:1px solid #aac6b9;border-radius:20px;color:#235a42;background:#e0eee5;font-size:11px;font-weight:600;letter-spacing:.04em}
dialog[data-tone=evergreen]{--chapter-accent:#245c43}dialog[data-tone=cranberry]{--chapter-accent:#a02c46}dialog[data-tone=frost]{--chapter-accent:#386c8a}dialog[data-tone=lucia]{--chapter-accent:#9b6530}dialog[data-tone=christmas]{--chapter-accent:#9b263e}dialog[data-tone] .goal-card{border-left-color:var(--chapter-accent)}dialog[data-tone=cranberry] .season-label,dialog[data-tone=christmas] .season-label{background:#f1e3e7;color:#84243c;border-color:#d3a6b0}dialog[data-tone=frost] .season-label{background:#deedf4;color:#2b5c77;border-color:#a3c5d6}dialog[data-tone=lucia] .season-label{background:#fcfcf6;color:#80532b;border-color:#d4bd91}
@media(max-width:640px){.mission-card>p{font-size:14px}.season-label{font-size:10px}}
