.lp{--ink:#183f34;--line:#ccd6ca;--paper:#faf9f3;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:clamp(10px,2vw,24px);font:16px/1.65 system-ui,sans-serif;max-width:1100px;margin:20px auto;box-sizing:border-box;overflow-wrap:anywhere}.lp *{box-sizing:border-box}.lp [hidden]{display:none!important}.lp h2,.lp h3{all:revert;font-family:inherit;color:var(--ink);line-height:1.4}.lp h2{font-size:clamp(21px,3vw,30px);margin:0 0 8px}.lp h3{font-size:18px;margin:10px 0}.lp p{margin:8px 0}.lp .lp-kicker{font-size:11px;letter-spacing:.17em;font-weight:700;margin:0 0 8px}.lp button,.lp select,.lp input{font:inherit;color:var(--ink);max-width:100%;border:1px solid #b7c5b8;border-radius:8px;background:#fff;padding:9px 12px;min-height:44px}.lp button{cursor:pointer;line-height:1.3;transition:background .12s}.lp button:hover{background:#edf2e8}.lp button[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink)}.lp button:disabled{opacity:.4;cursor:default}.lp :focus-visible{outline:3px solid #276da5;outline-offset:3px}.lp-toolbar,.lp-selection,.lp-options,.lp-nudge{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:12px 0}.lp-toolbar button{flex:0 1 auto}.lp-stage{position:relative;min-width:0;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#eeeede}.lp-stage>svg{width:100%;height:clamp(270px,45vw,500px);display:block;touch-action:none;user-select:none}.lp-stage [data-item]{cursor:grab}.lp-stage [data-resize]{cursor:nwse-resize}.lp-three{min-height:270px}.lp-three canvas{display:block;max-width:100%}.lp-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:12px 0}.lp-stats>div{display:flex;align-items:center;gap:9px;padding:10px;border:1px solid var(--line);border-radius:9px;background:#fff}.lp-stats strong{font-size:26px;font-weight:650}.lp-stats span{font-size:12px;line-height:1.5}.lp .lp-live{font-size:13px;min-height:20px;margin:5px 0}.lp-selection{border-bottom:1px solid var(--line);padding-bottom:14px}.lp-selection select{flex:1 1 160px}.lp-palette-items{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.lp-palette-items button{font-size:13px;padding:8px 5px;min-height:48px}.lp .lp-note{font-size:12px;color:#4d6358;line-height:1.7;margin:10px 0}.lp details{border-top:1px solid var(--line);padding:12px 0}.lp summary{font-size:15px;font-weight:600;min-height:44px;cursor:pointer;padding:10px 0}.lp-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.lp label{display:flex;flex-direction:column;gap:5px;font-size:13px}.lp label:has(input[type=checkbox]){flex-direction:row;align-items:center;gap:8px;padding:8px 0}.lp input[type=checkbox]{min-height:22px;width:22px;height:22px;accent-color:var(--ink);flex:0 0 22px}.lp input[aria-invalid=true]{border-color:#9d3444;background:#fff2f0}.lp-tutorial{padding:14px;background:#e4eee4;border-radius:8px;margin-bottom:12px}.lp-comparison{margin:16px 0}.lp table{border-collapse:collapse;width:100%;table-layout:fixed;margin:12px 0;font-size:13px}.lp th,.lp td{padding:9px 4px;text-align:center;border-bottom:1px solid var(--line);background:transparent;color:var(--ink)}.lp ul{padding-left:22px;font-size:14px}.lp a{color:#195b76}.lp button:active{background:#d6e4d5}
@media(max-width:600px){.lp{font-size:14px}.lp-heading>p:not(.lp-kicker){font-size:12px}.lp-toolbar{gap:5px}.lp-toolbar button{font-size:12px;padding:8px}.lp-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.lp-stats>div{padding:6px}.lp-stats strong{font-size:21px}.lp-stats span{font-size:11px}.lp-palette-items{grid-template-columns:repeat(3,minmax(0,1fr))}.lp-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.lp-selection button,.lp-selection select{font-size:13px}.lp-selection{gap:5px}.lp-nudge{margin:0}.lp-nudge button{min-width:44px}.lp-stage>svg{height:300px}.lp table{font-size:11px}}
@media(prefers-reduced-motion:reduce){.lp *{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
/* The theme loads its chapter margins later. Scope this stronger reset to Play,
   keeping Main article headings and legacy Tool interfaces unchanged. */
body.lens-interactive-tool-page .lp h2{margin:0 0 8px}
body.lens-interactive-tool-page .lp h3{margin:10px 0}
/* Keep the initial scene and live counts together at narrow/desktop widths. */
body.lens-interactive-tool-page .lp-stage>svg{height:clamp(270px,40vw,420px)}
@media(max-width:600px){body.lens-interactive-tool-page .lp-stage>svg{height:280px}}
@media(max-width:360px){body.lens-interactive-tool-page .lp-stage>svg{height:220px}}
/* The fixed theme TOP control otherwise intercepts touch on the room diagram. */
body.lens-interactive-tool-page:has([data-lens-tool][data-play="room"]) .return-top{display:none}
/* Bag packing and entrance cross-section are distinct surfaces, not Room3D. */
.lp-bag{--ink:#514332;--line:#d7d0c1;--paper:#fbf8f1}.lp-bag .lp-palette-items{grid-template-columns:repeat(3,minmax(0,1fr))}.lp-bag .lp-palette-items button{touch-action:none}.lp-bag-opening{margin:14px 0}.lp-bag-opening>svg{display:block;width:100%;height:200px;background:#f2eee3;border-radius:10px}.lp-bag-opening>p{font-size:13px}
body.lens-interactive-tool-page:has([data-lens-tool][data-play="bag"]) .return-top{display:none}
@media(max-width:600px){.lp-bag-opening>svg{height:155px}body.lens-interactive-tool-page .lp-bag .lp-stage>svg{height:230px}}
@media(max-width:360px){body.lens-interactive-tool-page .lp-bag .lp-stage>svg{height:190px}}
/* Utility diagrams share history, but retain their own dimensions and controls. */
.lp-utility .lp-utility-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.lp-utility-stats>div{flex-direction:column;align-items:flex-start;gap:2px}.lp-utility-stats strong{font-size:clamp(16px,2vw,23px);line-height:1.4}.lp-utility .lp-utility-quick{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0}.lp-utility input[type=range]{width:100%;padding:6px;accent-color:var(--ink);touch-action:pan-y}.lp-utility output{font-variant-numeric:tabular-nums}.lp-utility .lp-comparison>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.lp-utility .lp-comparison>div>div{padding:10px;border:1px solid var(--line);border-radius:8px;font-size:13px}.lp-utility .lp-comparison h4{all:revert;font:600 16px/1.5 system-ui,sans-serif;color:var(--ink);margin:0 0 6px}.lp-utility .lp-utility-error:not(:empty){border-left:4px solid #9d3444;background:#fff2f0;padding:10px;margin:10px 0;font-size:14px}.lp-utility dl{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;font-size:13px}.lp-utility dd{margin:0}.lp-utility [data-handle]{cursor:grab}.lp-utility [data-handle]:active{cursor:grabbing}.lp-utility .lp-stage>svg{height:clamp(240px,35vw,370px)}
body.lens-interactive-tool-page:has([data-lens-tool][data-play="utility"]) .return-top{display:none}
body.lens-interactive-tool-page .lp-utility .lp-stage>svg{height:clamp(240px,35vw,370px)}
@media(max-width:600px){.lp-utility .lp-utility-quick{grid-template-columns:1fr}.lp-utility .lp-stats>div{padding:6px}.lp-utility .lp-stats strong{font-size:16px}.lp-utility .lp-stage>svg,body.lens-interactive-tool-page .lp-utility .lp-stage>svg{height:240px}}
@media(max-width:360px){.lp-utility .lp-stage>svg,body.lens-interactive-tool-page .lp-utility .lp-stage>svg{height:210px}.lp-utility .lp-utility-stats{gap:4px}.lp-utility .lp-stats strong{font-size:14px}.lp-utility .lp-stats span{font-size:10px}}
/* Purpose-specific comparison/calendar controls; never applied to Main articles. */
.lp-planner-context>label{flex:1 1 180px}.lp-planner .lp-day-details{font-size:13px}.lp-planner .lp-calendar{padding:10px}.lp-planner .lp-calendar-week{margin:0 0 12px}.lp-planner .lp-calendar-week>p{font-size:12px;margin:0 0 5px}.lp-planner .lp-calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.lp-planner .lp-calendar-days button{min-width:0;min-height:60px;padding:6px 3px;background:linear-gradient(to right,#bad3bf var(--used),#e6a6ad var(--used));border:1px solid #8b9b89;color:#183f34;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}.lp-planner .lp-calendar-days button[aria-pressed=true]{outline:2px solid #a06b20;outline-offset:-3px}.lp-planner .lp-calendar-days button:focus-visible{outline:3px solid #276da5;outline-offset:2px}.lp-planner .lp-calendar-days button strong{font-size:14px}.lp-planner .lp-calendar-days button span{font-size:11px}.lp-planner .lp-calendar-days button:active{filter:brightness(.92)}
body.lens-interactive-tool-page:has([data-lens-tool][data-play="planner"]) .return-top{display:none}
.lp-planner .lp-selection>label{flex:1 1 150px}.lp-planner .lp-selection label>select{flex:0 0 auto;width:100%}
@media(max-width:600px){.lp-planner .lp-calendar-days{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.lp-planner-context{margin:6px 0}.lp-planner-context>label{flex:1 1 100px}.lp-planner-context select{font-size:12px;padding:7px 4px}.lp-planner .lp-calendar{padding:7px}}
