/* M26 · A candlelit brass instrument. Everything is scoped to this puzzle. */
.fl26{--fl-ink:#f3e7d0;--fl-muted:#c3b49a;--fl-gold:#e6c37d;--fl-line:#786440;--fl-dark:#171c1c;color:var(--fl-ink);font-family:var(--font-body,system-ui,sans-serif);line-height:1.55;color-scheme:dark}
.fl26 *{box-sizing:border-box}.fl26 button{font:inherit;color:inherit;min-height:44px;min-width:44px;border:1px solid #927748;border-radius:8px;background:#2c302a;cursor:pointer;padding:.65rem 1rem;touch-action:manipulation;transition:background .15s,box-shadow .15s,transform .15s}.fl26 button:hover{background:#414231}.fl26 button:focus-visible,.fl26 summary:focus-visible{outline:3px solid #ffe2a1;outline-offset:4px}.fl26 button[aria-pressed=true]{border-color:#ffe4a6;box-shadow:0 0 0 2px #e7c47f,inset 0 0 28px #c9913030;background:#403b29}.fl26 button:disabled{opacity:.45;cursor:default}.fl26 h2,.fl26 h3,.fl26 p{margin:0}.fl26-panel{border:1px solid #8a70424d;border-radius:16px;padding:clamp(18px,4vw,36px);background:radial-gradient(ellipse at 50% 28%,#86704427,transparent 63%),linear-gradient(150deg,#242b28,#131a1b 75%);box-shadow:0 22px 60px #0004,inset 0 1px #e5d09e17}.fl26-heading{max-width:660px;margin-bottom:1.8rem}.fl26-kicker{font-size:.72rem;letter-spacing:.17em;text-transform:uppercase;color:var(--fl-gold)}.fl26 h2{font-family:var(--font-display,Georgia,serif);font-weight:400;font-size:clamp(1.7rem,4vw,2.6rem);line-height:1.18;margin:.4rem 0 .7rem}.fl26-heading p{color:#d7cbb6;max-width:52ch}.fl26-work{display:grid;grid-template-columns:minmax(150px,.7fr) minmax(260px,1.3fr);gap:clamp(20px,4vw,50px);align-items:center;max-width:760px;margin:auto}.fl26-candidates{display:grid;gap:12px}.fl26-candidates button{display:flex;align-items:center;gap:12px;padding:5px 12px 5px 3px;text-align:left;min-height:90px;box-shadow:inset 0 1px #edd39712}.fl26-candidates strong{font-size:.9rem;font-weight:600}.fl26-candidates svg{width:80px;flex:none}.fl26-plate-svg{width:100%;height:auto;display:block;filter:drop-shadow(0 8px 5px #0004)}.fl26-rim{fill:#3b392d;stroke:#a58a52;stroke-width:2}.fl26-recess{fill:#101818;stroke:#79633e;stroke-width:3}.fl26-brass{fill:#b39355;stroke:#e0c487;stroke-width:2}.fl26-north{font:9px system-ui;fill:#d9cbae;letter-spacing:1px}.fl26-mechanism{text-align:center;max-width:380px;width:100%;justify-self:center}.fl26-facing,.fl26-clear{color:#c8ba9e;font-size:.75rem;letter-spacing:.035em}.fl26-main-plate{max-width:290px;margin:8px auto 0}.fl26-rim-key{display:flex;justify-content:space-between;gap:12px;color:#ddc99d;font-size:.73rem;margin-top:-8px}.fl26 .fl26-clear{margin-top:10px}.fl26-turns{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:18px 0 12px}.fl26-turns>span{font-variant-numeric:tabular-nums;color:#d9bc7c;font-size:.85rem}.fl26-turns button{display:flex;align-items:center;justify-content:center;gap:6px;flex:1;font-size:.9rem}.fl26-test{width:100%;border-color:#bf9a58!important;background:#403b2b!important}.fl26-bolt{width:100%;margin-top:15px;display:flex;flex-direction:column;align-items:center;gap:10px;background:#181f1e!important;padding:14px!important}.fl26-bolt-track{height:15px;width:88%;max-width:240px;border:1px solid #80704e;border-radius:10px;background:#0f1415;position:relative;box-shadow:inset 0 2px 5px #0008}.fl26-bolt-handle{display:block;position:absolute;top:-8px;left:0;width:53%;height:29px;border:1px solid #dac184;border-radius:5px;background:linear-gradient(#c2a064,#90703b);box-shadow:0 3px 5px #0007;transition:left .2s}.fl26-bolt-handle:after{content:"";position:absolute;right:10px;top:5px;width:5px;height:16px;border-left:1px solid #59451e;border-right:1px solid #ead5a1}.fl26-bolt-closed .fl26-bolt-handle{left:47%}.fl26-bolt strong{font-size:.82rem;font-weight:500;letter-spacing:.025em}.fl26-status{padding:17px 18px;background:#0e1718;border-left:2px solid #c2a05a;margin:1.7rem 0 .9rem!important;min-height:68px;display:flex;align-items:center;color:#e9ddc1}.fl26-success{border-color:#e9d09a;background:#353923;color:#fff0c8;box-shadow:inset 0 0 28px #b7a55415}.fl26-fit-report{margin:.75rem 0;padding-left:1.4rem;color:#dec6ad;font-size:.86rem;display:grid;gap:5px}.fl26-fit-report .fl26-match{color:#b8d1a5}.fl26-rule{font-size:.83rem;color:var(--fl-muted);max-width:70ch}.fl26-help{border-top:1px solid #8b754238;margin-top:1.5rem;padding-top:1rem}.fl26 summary{min-height:44px;cursor:pointer;display:list-item;padding:.55rem .1rem;color:#e1c68b;font-size:.92rem}.fl26-help>p{font-size:.85rem;color:var(--fl-muted);margin:.4rem 0 .9rem}.fl26-hint-buttons{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.fl26 .fl26-hint{background:#e4cca50d;border:1px solid #a0864938;border-radius:7px;padding:12px 14px;margin:10px 0;font-size:.88rem;color:#e7d7b8}.fl26-text-button{font-size:.82rem!important;background:transparent!important;border-color:transparent!important;text-decoration:underline;text-underline-offset:4px;padding-left:0!important}.fl26-warning{border:1px solid #b69b63;border-radius:8px;padding:15px;margin:.8rem 0;background:#59452229;font-size:.88rem}.fl26-warning p{margin-bottom:12px}.fl26-warning button{margin:0 8px 8px 0}.fl26-reduced *{transition:none!important;animation:none!important}
@media(max-width:560px){.fl26-work{grid-template-columns:1fr;gap:23px}.fl26-candidates{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.fl26-candidates button{display:flex;flex-direction:column;text-align:center;gap:2px;padding:5px 5px 10px;min-height:120px}.fl26-candidates svg{width:100%;max-width:90px}.fl26-candidates strong{font-size:.73rem}.fl26-main-plate{max-width:260px}.fl26-rim-key{max-width:320px;margin:0 auto}.fl26-status{font-size:.9rem}.fl26 h2{font-size:1.8rem}.fl26-turns{margin-top:14px}}
@media(prefers-reduced-motion:reduce){.fl26 *{transition:none!important;animation:none!important}}

.fl26 .fl26-drive-note{font-size:.82rem;color:#c8bb9d;margin-top:.7rem;max-width:60ch}.fl26-bolt-label{font-size:.7rem;color:#d4c092;letter-spacing:.1em;text-transform:uppercase}

/* The photograph is the material of the working housing, not a second scene.
   Source housing center (639,343), radius 190 maps to SVG (120,120), radius 110.
   The photograph and all authored marks share one explicitly sized SVG viewport. */
.fl26-main-plate{overflow:hidden;border-radius:13px;background:#171d1b;box-shadow:0 0 0 5px #60452e,0 0 0 7px #b18e5b70,0 10px 24px #0006}
.fl26-main-plate>.fl26-plate-svg{display:block;width:100%;height:auto;aspect-ratio:1;overflow:hidden;filter:none}
.fl26-main-plate .fl26-rim{fill:transparent;stroke:#ddc58c;stroke-width:1.5}
.fl26-main-plate .fl26-recess{fill:#111b1a2e;stroke:#614e32a6;stroke-width:2}

/* M29: six competing plates, simultaneous front/rear observations. */
.fl26 .fl26-panel{padding:18px}.fl26 .fl26-heading{max-width:none;margin-bottom:12px}.fl26 .fl26-heading h2{font-size:1.8rem}.fl26 .fl26-heading p{max-width:none}.fl26 .fl26-work{max-width:100%;grid-template-columns:minmax(230px,1fr) minmax(340px,1.4fr);gap:18px;align-items:start}
.fl26 .fl26-candidates{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.fl26 .fl26-candidates button{display:flex;flex-direction:column;gap:4px;text-align:center;padding:5px;min-height:110px}.fl26 .fl26-mini-observations{display:grid;grid-template-columns:1fr 1fr;width:100%;gap:4px}.fl26 .fl26-mini-observations svg{width:100%;max-width:86px;filter:none}.fl26 .fl26-candidates strong{font-size:.8rem}.fl26 .fl26-mechanism{max-width:none}.fl26 .fl26-observations{display:grid;grid-template-columns:1fr 1fr;gap:12px}.fl26 .fl26-main-rear svg{width:100%;height:auto;display:block}.fl26 .fl26-main-plate{margin:0 auto;max-width:230px}.fl26 .fl26-facing{font-size:.72rem;min-height:2em}.fl26 .fl26-turns{margin:8px 0}.fl26 .fl26-bolt{margin-top:8px;gap:7px;padding:10px!important}.fl26 .fl26-status{margin:12px 0!important;min-height:50px;padding:12px}.fl26 .fl26-drive-note{display:none}.fl26 .fl26-help>summary{color:#f7e7c5}.fl26 .fl26-help>summary:hover{color:#ffe4a1}
@media(max-width:800px){.fl26 .fl26-work{grid-template-columns:1fr}.fl26 .fl26-candidates{grid-template-columns:repeat(3,minmax(0,1fr))}.fl26 .fl26-candidates button{min-height:100px}.fl26 .fl26-observations{max-width:480px;margin:auto}}
@media(max-width:420px){.fl26 .fl26-candidates{grid-template-columns:repeat(2,minmax(0,1fr))}.fl26 .fl26-candidates strong{font-size:.75rem}.fl26 .fl26-observations{gap:8px}}
/* M37: short teaching sequence; the six competing plates and both constraints stay intact. */
.fl26 .fl37-steps{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:8px 0 12px;color:#f4e7cd;font-size:.8rem}.fl26 .fl37-steps li{display:flex;align-items:center;gap:7px;padding:8px;background:#26342f;border:1px solid #8e79524d;border-radius:7px}.fl26 .fl37-steps li>span{display:grid;place-items:center;flex:none;width:23px;height:23px;border:1px solid #bca26a;border-radius:50%;color:#ffdfa2}.fl26 .fl37-key{border-block:1px solid #92794b55;margin:8px 0 15px;padding:0 8px}.fl26 .fl37-key summary{font-size:.85rem}.fl26 .fl37-key p{font-size:.86rem;color:#e4d6bc;margin:8px 0 12px}.fl26 .fl37-key-list{display:flex;gap:15px;flex-wrap:wrap}.fl26 .fl37-key-list>span{display:flex;align-items:center;gap:5px;font-size:.85rem}.fl26 .fl37-key-list svg{width:30px;height:30px;flex:none}@media(max-width:480px){.fl26 .fl37-steps{font-size:.74rem;gap:5px}.fl26 .fl37-steps li{padding:7px 5px;gap:4px}.fl26 .fl37-steps li>span{width:19px;height:19px}.fl26 .fl37-key-list{gap:8px}}

/* M48: current action precedes the bench; geometry/rules unchanged. */
.fl48-next{padding:12px 16px;background:#edf5f0;color:#193f36;border-left:4px solid #8c2e43;font-weight:650;line-height:1.5;margin:12px 0}.fl26-candidates button[aria-pressed=true]{outline:3px solid #8c2e43;outline-offset:2px}.fl26-candidates button[aria-pressed=true] strong{text-decoration:underline;text-underline-offset:4px}
