/* Preserve the artwork's proportions. Extra experiences use document flow. */
body[data-room=keepsake]:has(#keepsake:not([data-experience=assembly])) { overflow-y:auto; }
#keepsake:not([data-experience=assembly]) { height:auto!important; min-height:calc(100svh - var(--museum-head))!important; padding:28px 5% 0; overflow:visible; }
#keepsake:not([data-experience=assembly]) .diy-heading { position:relative; inset:auto; width:auto; max-width:900px; margin:0 auto; }
#keepsake:not([data-experience=assembly]) .diy-heading h1 { font-size:clamp(29px,3vw,43px); }
#keepsake:not([data-experience=assembly]) .keepsake-experience-tabs { position:relative; inset:auto; margin:18px auto 26px; }
#keepsake:not([data-experience=assembly]) .keepsake-extra-panel { position:relative; inset:auto; overflow:visible; height:auto; max-width:1420px; margin:0 auto; padding:0; }
#keepsake:not([data-experience=assembly]) .room-bottom { position:relative; inset:auto; margin:28px -5.56% 0; }
#craft-panel .craft-room { grid-template-columns:minmax(0,1.3fr) minmax(340px,.85fr); height:auto; min-height:0; align-items:start; gap:28px; }
#craft-panel .craft-board { display:block; height:auto; position:sticky; top:calc(var(--museum-head) + 20px); }
#craft-panel .craft-board canvas { display:block; flex:none; width:100%; height:auto; aspect-ratio:auto; object-fit:contain; max-height:none; }
#craft-panel .craft-guide { height:auto; max-height:none; overflow:visible; padding:26px; }
#craft-panel .craft-chapters { margin-top:22px; }
#blessing-main { max-width:1100px; grid-template-columns:minmax(0, .85fr) minmax(0,1.15fr); gap:clamp(26px,5vw,72px); align-items:start; padding:0 0 26px; }
#blessing-main canvas { position:sticky; top:calc(var(--museum-head) + 22px); width:min(100%,380px); height:auto; max-width:100%; aspect-ratio:3/4; object-fit:contain; }
#blessing-main .controls { padding:25px 28px; }
#blessing-main .blessing-field-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
#blessing-main .blessing-custom { margin:0 0 20px; padding:12px 0 0; }
#blessing-main .blessing-custom summary { font:14px/1.8 var(--serif); color:#695032; }
#blessing-main .blessing-custom label { margin:8px 0 0; }
#blessing-main .choice { margin-bottom:17px; }
#blessing-main .choice button { flex:1; padding:7px; }
#blessing-main label { font-size:14px; }
#blessing-main .save { min-height:52px; }
#blessing-main [role=status] { min-height:0; margin:12px 0 18px; }
@media(max-width:1000px) {
 #craft-panel .craft-room { grid-template-columns:1fr; max-width:700px; margin:auto; }
 #craft-panel .craft-board { position:relative; top:auto; }
 #craft-panel .craft-guide { max-width:none; }
 #blessing-main { grid-template-columns:1fr 1.15fr; gap:25px; }
}
@media(max-width:600px) {
 #keepsake:not([data-experience=assembly]) { padding:26px 6% 0; }
 #keepsake:not([data-experience=assembly]) .diy-heading h1 { font-size:28px; line-height:1.55; }
 #keepsake:not([data-experience=assembly]) .room-bottom { margin:24px -6.82% 0; }
 #craft-panel .craft-guide { padding:23px 18px; }
 #craft-panel .craft-chapters { display:grid; grid-template-columns:1fr 1fr; }
 #craft-panel .craft-chapters button { justify-content:center; }
 #blessing-main { grid-template-columns:1fr; gap:24px; }
 #blessing-main canvas { position:relative; top:auto; width:min(100%,290px); }
 #blessing-main .controls { padding:23px 18px; }
 #blessing-main .blessing-field-row { grid-template-columns:1fr; gap:0; }
}
