body:has(#blockCavingContent:not([hidden])){height:auto;min-height:100dvh;overflow:auto;display:block}
body:has(#blockCavingContent:not([hidden])) header{height:56px;padding:0 20px}
body:has(#blockCavingContent:not([hidden])) .workspaceNav{padding:6px 20px}
body:has(#blockCavingContent:not([hidden])) .learnIntro{display:none}
body:has(#blockCavingContent:not([hidden])) .learnWorkspace{padding:12px 20px;overflow:visible;min-height:0}
#blockCavingContent{max-width:none;min-width:0;background:transparent;border:0;padding:0}
.caveHeading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}
.caveHeading h2{font-size:22px;letter-spacing:-.7px;margin:3px 0}.caveHeading .sectionLabel{font-size:8px;letter-spacing:1.3px}
.caveTopLinks{display:flex;gap:6px;flex-wrap:wrap}.caveTopLinks button{font-size:12px;min-height:44px}
.cavePlayArea{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:14px;align-items:start}
.caveControls{display:flex;flex-direction:column;gap:12px;min-width:0}
.caveToolbar{display:flex;flex-wrap:wrap;gap:8px;background:white;border:1px solid var(--line);border-radius:10px;padding:12px}
#caveSetup{flex:1 0 100%;border:0;padding:0;margin:0;display:grid;grid-template-columns:1fr 65px 15px;align-items:center;gap:8px;font-size:12px}#caveSetup label{grid-column:1/-1;font-weight:650}#caveSpacingRange{width:100%;accent-color:#147565;padding:0;min-height:44px}#caveSpacing{min-height:44px;font-size:16px;padding:8px}.caveToolbar button{min-height:44px;flex:1;font-weight:600}#caveSetupInfo{margin:0;font-size:11px;line-height:1.5;color:#748480;flex-basis:100%}
.caveControlHint{font-size:12px;line-height:1.5;color:#59756c;margin:0 2px}
.cavePublic{display:flex;flex-direction:column;gap:10px;padding:13px;background:#edf3ef;border-radius:9px;font-size:11px;color:#73847e}.cavePublic b{display:block;color:#166a5b;margin-top:4px;font-size:15px}.cavePublic small{font-size:10px;line-height:1.5}
.caveScene{background:#101c2a;border-radius:12px;overflow:hidden;position:relative;min-width:0}
.caveSceneBar{min-height:35px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 14px;color:#c6d4df;font-size:10px;font-weight:650;letter-spacing:.5px}
.caveSceneBar i{display:inline-block;width:9px;height:9px;border-radius:50%;margin:0 5px 0 12px}.caveSceneBar i:first-child{margin-left:0}.oreKey{background:radial-gradient(circle at 30% 20%,#fff8c5,#ffd13e 45%,#aa6a08);box-shadow:0 0 5px #f8cd4f66}.wasteKey{background:radial-gradient(circle at 28% 22%,#fff,#e6edf4 25%,#a4b1bf 62%,#47596b);box-shadow:0 0 3px #d3e0ef44}#cavePhase{color:#f0c368;white-space:nowrap}
.caveViewTools{display:flex;gap:6px;padding:0 12px 9px;flex-wrap:wrap}.caveViewTools button{min-height:44px;min-width:44px;border-color:#40576b;background:#203548;color:#e1edf4;font-size:12px;padding:8px 12px}.caveViewTools button:hover{background:#304e64}#caveZoomIn,#caveZoomOut{font-size:22px;padding:4px}#caveExpand{margin-left:auto}
#caveViewport{height:clamp(440px,calc(100dvh - 320px),820px);min-height:440px;overflow:hidden;touch-action:none;cursor:grab;overscroll-behavior:contain}#caveViewport:active{cursor:grabbing}
#caveSvg{display:block;width:100%;height:100%;touch-action:none;user-select:none;-webkit-user-select:none}#caveSvg:focus-visible{outline:2px solid #7ce3d2;outline-offset:-3px}
.caveCaption{padding:7px 12px;color:#a5b6c7;font-size:10px;line-height:1.6;text-align:center}
#caveNotice{color:#e2ebf4;background:#1a2b3c;font-size:12px;line-height:1.5;padding:10px 14px;min-height:55px;border-top:1px solid #314454}
.caveSvgPoint{cursor:pointer}.caveSvgPoint:hover circle,.caveSvgPoint:focus circle,.caveSvgPoint.selected circle{stroke:#fff3a1;stroke-width:4;filter:drop-shadow(0 0 5px #ffe29c)}.caveSvgPoint:focus{outline:none}.caveSvgPoint.selected path{stroke:#ffe29c;stroke-width:3}
.caveDrawpoints{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.caveDrawpoints button{min-height:54px;padding:7px 3px;text-align:center;border:1px solid #b7d4c8;background:#edf7f1}.caveDrawpoints button b{display:block;color:#195f50;font-size:13px}.caveDrawpoints button span{display:block;font-size:10px;color:#617e73;margin-top:4px}.caveDrawpoints .closed{background:#fff1e9;border-color:#e9c0ad}.caveDrawpoints .closed b{color:#914f38}.caveDrawpoints .selected{outline:3px solid #c79227;outline-offset:-3px;background:#fff7d9}.caveDrawpoints button:disabled{opacity:.6}
.caveStats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.caveStats>div{background:white;border:1px solid var(--line);padding:10px;border-radius:8px;min-width:0}.caveStats span{display:block;color:#73868a;font-size:10px;margin-bottom:6px}.caveStats b{font-size:17px;font-weight:650;color:#214844}.caveStats>.caveScoreMobile{display:none;grid-column:1/-1;background:#ecf6f0}.caveStats>.caveScoreMobile b{font-size:24px}
.caveSettings{background:#fff;border:1px solid var(--line);border-radius:9px;padding:0 12px}.caveSettings summary{min-height:48px;align-items:center;gap:8px;font-size:13px}.caveSettings summary span{font-size:10px;font-weight:400;color:#75877d}.caveSettings summary:after{display:none}.caveSettings summary:before{content:'▸';color:#147565}.caveSettings[open] summary:before{content:'▾'}.caveSettings .caveOverlayOptions{display:flex;flex-direction:column;gap:0;margin:0 0 8px}.caveSettings .caveOverlayOptions label{min-height:44px;display:flex;align-items:center;gap:8px;font-size:12px}.caveSettings input{width:19px;height:19px}.caveSettings button,.caveReplayControls button{min-height:44px}.caveReplayControls{display:flex;gap:6px;flex-wrap:wrap}.caveReplayControls:has(button[hidden]):not(:has(button:not([hidden]))){display:none}
#caveClosedWarning{position:absolute;z-index:5;top:105px;left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100% - 24px);display:flex;align-items:center;gap:12px;padding:14px;background:#fff1e8;color:#8f341e;border:2px solid #ef9469;border-radius:10px;box-shadow:0 8px 35px #0007;font-size:14px;line-height:1.5}#caveClosedWarning button{flex:none;background:transparent;border:0;color:#8f341e;font-size:24px;min-width:44px;min-height:44px;padding:4px}.caveLhd{pointer-events:none}
.caveScene.caveExpanded,.caveScene:fullscreen{position:fixed;inset:0;z-index:10000;width:100%;height:100dvh;border-radius:0;display:flex;flex-direction:column;padding:max(6px,env(safe-area-inset-top)) max(6px,env(safe-area-inset-right)) max(6px,env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left))}.caveScene.caveExpanded #caveViewport,.caveScene:fullscreen #caveViewport{height:auto;min-height:0;flex:1}.caveScene.caveExpanded>*:not(#caveViewport){flex-shrink:0}body.caveExpandedPage{overflow:hidden!important}.caveScene.caveExpanded #caveNotice{min-height:40px}
@media(max-width:700px) and (orientation:portrait){body:has(#blockCavingContent:not([hidden])) header{height:52px;padding:0 12px}body:has(#blockCavingContent:not([hidden])) .brand{gap:8px}body:has(#blockCavingContent:not([hidden])) .logo{width:30px;height:30px;flex-shrink:0;font-size:15px}body:has(#blockCavingContent:not([hidden])) .brand b{font-size:17px;letter-spacing:-.5px}body:has(#blockCavingContent:not([hidden])) .brand small{display:none}body:has(#blockCavingContent:not([hidden])) .workspaceNav{padding:6px 10px}body:has(#blockCavingContent:not([hidden])) .workspaceNav button{min-height:44px}body:has(#blockCavingContent:not([hidden])) .learnWorkspace{padding:10px 8px}.caveHeading{flex-wrap:wrap;gap:8px}.caveHeading h2{font-size:21px}.caveHeading .sectionLabel{display:none}.caveTopLinks{width:100%;gap:5px}.caveTopLinks button{font-size:11px;padding:7px 9px}.cavePlayArea{grid-template-columns:minmax(0,1fr);gap:14px}.caveSceneBar{padding:8px 10px;font-size:9px}.caveViewTools{padding:0 8px 8px;gap:5px}.caveViewTools button{padding:8px 10px}#caveViewport{height:clamp(440px,60dvh,600px);min-height:440px}.caveControls{padding:0 3px}.caveDrawpoints{grid-template-columns:repeat(4,minmax(0,1fr))}.caveStats{grid-template-columns:repeat(2,minmax(0,1fr))}.caveToolbar button{font-size:14px}.cavePublic{display:grid;grid-template-columns:1fr 1fr}.cavePublic small{grid-column:1/-1}.caveCaption{font-size:10px}#caveNotice{font-size:12px}#caveClosedWarning{font-size:12px;padding:10px;gap:5px}}
@media(orientation:landscape) and (max-height:600px){body:has(#blockCavingContent:not([hidden])) header{height:42px}body:has(#blockCavingContent:not([hidden])) .brand small{display:none}body:has(#blockCavingContent:not([hidden])) .brand b{font-size:18px}.caveHeading h2{font-size:19px}.caveHeading .sectionLabel{display:none}.cavePlayArea{grid-template-columns:minmax(0,1fr) 225px;gap:10px}#caveViewport{height:max(300px,calc(100dvh - 180px));min-height:300px}.caveControls{gap:8px}.caveToolbar{padding:10px}.caveHeading{gap:6px}.caveTopLinks button{font-size:10px;padding:6px}.cavePublic{gap:6px}}
#blockCavingContent dialog{max-height:85dvh;overflow:auto;width:min(620px,calc(100vw - 32px));padding:26px;border:1px solid #dae8df;border-radius:16px;color:var(--ink);box-shadow:0 20px 90px #09261d44}
#blockCavingContent dialog::backdrop{background:#071b24aa;backdrop-filter:blur(3px)}#blockCavingContent dialog p,#blockCavingContent dialog li{line-height:1.7;font-size:13px}#blockCavingContent dialog ol{padding-left:20px}
.caveOverlayOptions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0}.caveOverlayOptions label{font-size:12px}.caveOverlayOptions input{margin-right:5px}#caveVisualDialog>button{margin:5px}
#caveCompleteDialog{text-align:center;width:min(490px,calc(100vw - 32px))!important;padding:32px!important}#caveCompleteTitle{font-size:24px;line-height:1.35;margin:0 0 26px}.caveSkill{background:#f0f7f0;border:1px solid #d9e8d9;border-radius:12px;padding:24px}.caveSkill span{display:block;font-size:13px;color:#4e7064;font-weight:600}.caveSkill b{display:block;font-size:56px;color:#126b56;margin-top:8px;letter-spacing:-2px}.caveSkill small{font-size:19px;color:#6f8a7e;letter-spacing:0}.caveFinalPair{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0 24px}.caveFinalPair span{display:block;font-size:12px;color:#6b8078;margin-bottom:8px}.caveFinalPair b{font-size:24px;color:#234b40}#caveAgain{width:100%;padding:13px;font-size:15px;font-weight:650}#caveCSV{border:0;margin:10px 0 0;font-size:11px;color:#648377}#caveSubmit{font-size:10px!important;margin:8px 0 0}
.caveTableWrap{overflow:auto}#cavePersonalDialog table{border-collapse:collapse;width:100%;font-size:11px;margin:16px 0}#cavePersonalDialog th,#cavePersonalDialog td{padding:9px;text-align:left;border-bottom:1px solid #e3ece6;white-space:nowrap}

@media(max-width:700px),(max-height:600px){.caveStats>.caveScoreMobile{display:block}}
/* Primary setup and shared records stay above the mine at every screen size. */
.caveTopBar{display:flex;align-items:stretch;gap:12px;margin-bottom:12px;flex-wrap:wrap}
.caveTopBar .caveToolbar{flex:1;align-items:center;padding:8px 12px;gap:10px}
.caveTopBar #caveSetup{display:flex;flex:0 1 auto;gap:8px;min-width:0}
.caveTopBar #caveSetup label{white-space:nowrap}.caveTopBar #caveSpacingRange{width:100px}.caveTopBar #caveSpacing{width:60px}
.caveTopBar .caveToolbar button{flex:0 0 auto}.caveTopBar #caveSetupInfo{flex-basis:auto;font-size:10px}
.caveTopBar .cavePublic{flex-direction:row;display:flex;align-items:center;gap:22px;padding:10px 14px;flex-shrink:0}
.caveTopBar .cavePublic small{display:none}.caveTopBar .cavePublic b{font-size:14px}
@media(max-width:1100px){.caveTopBar #caveSetupInfo{display:none}.caveTopBar .cavePublic{gap:14px}}
@media(max-width:700px) and (orientation:portrait){.caveTopBar{display:flex;flex-direction:column;gap:7px;margin-bottom:10px}.caveTopBar .caveToolbar{gap:7px;padding:8px 10px}.caveTopBar #caveSetup{flex-basis:100%;justify-content:space-between;font-size:11px}.caveTopBar #caveSpacingRange{width:auto;flex:1;min-width:40px}.caveTopBar #caveSpacing{width:55px}.caveTopBar .caveToolbar button{flex:1}.caveTopBar .cavePublic{justify-content:space-between;padding:8px 12px;font-size:10px}.caveTopBar .cavePublic b{font-size:13px;margin-top:3px}#caveViewport{height:auto;aspect-ratio:1000/650;min-height:240px}.caveHeading{margin-bottom:8px}}
/* Compact top strip; the mine no longer shares its width with a sidebar. */
.cavePlayArea{display:block}
.caveTopBar{gap:8px;align-items:center;position:relative}
.caveTopBar .caveToolbar{flex:0 0 auto;width:max-content;max-width:100%;padding:7px 9px;gap:7px}
.caveTopBar #caveSetup{font-size:11px;gap:6px}.caveTopBar #caveSpacingRange{width:70px}.caveTopBar #caveSpacing{width:54px}
.caveTopBar .caveToolbar button{font-size:11px;padding:8px 10px}.caveTopBar #caveSetupInfo{display:none}
.caveTopBar .cavePublic{gap:12px;padding:8px 11px;font-size:10px}.caveTopBar .cavePublic b{font-size:13px}.caveTopBar .cavePublic span{white-space:nowrap}
.caveTopBar .caveStats{display:grid;grid-template-columns:repeat(4,minmax(72px,1fr));gap:5px;flex:1;min-width:320px}.caveTopBar .caveStats>div{padding:8px}.caveTopBar .caveStats span{font-size:9px;white-space:nowrap;margin-bottom:5px}.caveTopBar .caveStats b{font-size:14px}.caveTopBar .caveStats>.caveScoreMobile{display:none}
.caveTopBar .caveSettings{margin-left:auto;flex:0 0 auto;padding:0 12px;position:relative;align-self:stretch;display:flex;align-items:center}.caveTopBar .caveSettings summary{min-height:54px;gap:6px}.caveSettingsBody{position:absolute;right:0;top:calc(100% + 6px);z-index:20;width:280px;max-width:calc(100vw - 24px);max-height:65dvh;overflow:auto;background:white;border:1px solid #c8dcd0;border-radius:10px;padding:10px 14px;box-shadow:0 10px 35px #153e3429}.caveSettings:not([open]) .caveSettingsBody{display:none}
.caveViewTools{align-items:center;flex-wrap:nowrap}.caveViewTools .caveControlHint{flex:1;color:#c3d9dd;font-size:12px;margin:0 8px;line-height:1.4}.caveViewTools #caveExpand{margin-left:0;flex-shrink:0}.caveViewTools .caveReplayControls{flex:none}.caveViewTools .caveReplayControls button{font-size:11px;padding:6px}
@media(max-width:700px) and (orientation:portrait){#blockCavingContent{display:flex;flex-direction:column;gap:8px}.caveHeading{order:0}.caveTopBar{display:contents}.caveTopBar .caveToolbar{order:1;width:100%;padding:8px 10px;gap:7px}.caveTopBar #caveSetup{flex-basis:100%}.caveTopBar #caveSpacingRange{width:auto}.caveTopBar .caveToolbar button{flex:1;font-size:13px}.caveTopBar .cavePublic{order:2;justify-content:space-between;width:100%;margin:0}.caveTopBar .caveSettings{order:3;align-self:flex-end;margin:0;padding:0 10px}.caveTopBar .caveSettings summary{min-height:44px}.cavePlayArea{order:4}.caveTopBar .caveStats{order:5;width:100%;min-width:0;grid-template-columns:repeat(2,minmax(0,1fr));margin:0}.caveTopBar .caveStats>.caveScoreMobile{display:block}.caveTopBar .caveStats b{font-size:17px}.caveViewTools{gap:4px;padding:0 7px 8px}.caveViewTools button{padding:7px;min-width:36px;font-size:10px}.caveViewTools #caveZoomIn,.caveViewTools #caveZoomOut{min-width:30px;font-size:20px}.caveViewTools .caveControlHint{font-size:10px;margin:0 2px;min-width:0}.caveViewTools .caveReplayControls{position:absolute;top:92px;left:10px;z-index:4}.caveSettingsBody{right:0}.caveTopBar .cavePublic small{display:none}}
@media(max-width:700px) and (orientation:portrait){.caveViewTools button,.caveViewTools #caveZoomIn,.caveViewTools #caveZoomOut{min-width:44px;min-height:44px}}
@media(min-width:701px) and (min-height:601px){#caveViewport{height:clamp(360px,calc(100dvh - 390px),820px);min-height:360px}}
.cavePassRequirement{padding:10px;background:#fff6df;border:1px solid #ead7a0;border-radius:8px;font-size:14px!important}.caveRecordResult{padding:13px;background:#eff5f3;border-radius:8px}.caveRecordResult span{display:block;font-size:12px;color:#647d70;margin-bottom:7px}.caveRecordResult b{font-size:20px;color:#176651}
.caveLevelDescription{margin:5px 0 0;max-width:620px;font-size:12px;line-height:1.45;color:#687f75}.caveLevelPicker{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:600}.caveLevelPicker select{width:245px;max-width:50vw;min-height:44px;font-size:12px}.caveTopLinks{align-items:center}.caveTopBar .cavePublic #caveRecordLevel{white-space:normal}
.caveMobileRecoveryBar{position:relative;height:7px;background:#d2e5dc;border-radius:4px;margin:10px 3px 3px}.caveMobileRecoveryBar i{height:100%;display:block;background:#258b71;border-radius:4px}.caveMobileRecoveryBar span{position:absolute;left:70%;top:-4px;bottom:-4px;border-left:2px solid #a56b12;margin:0}.caveFailureTip{padding:12px;border-radius:9px;background:#fff3e5;color:#7b4a1b;font-size:14px!important}#caveNext{width:100%;min-height:48px;margin:0 0 9px;font-size:15px;font-weight:650}.caveCampaignResults{margin:14px 0;display:grid;gap:6px;text-align:left}.caveCampaignResults>div{display:flex;justify-content:space-between;gap:12px;padding:8px;background:#eff5f1;border-radius:6px;font-size:11px}.caveCampaignResults b{color:#126a54;white-space:nowrap}
#caveCompleteDialog{position:fixed;isolation:isolate}.caveCelebration{position:absolute;inset:0;pointer-events:none;overflow:hidden;border-radius:16px;z-index:2}.caveCelebration i{position:absolute;top:var(--top);left:var(--left);height:16px;width:7px;border-radius:4px;background:var(--color);box-shadow:0 0 10px 2px var(--color);animation:caveFirework 2.2s cubic-bezier(.15,.65,.3,1) var(--delay) 2 both}
@keyframes caveFirework{0%{opacity:0;transform:translate(0,0) scale(.25)}8%{opacity:1}65%{opacity:.9}100%{opacity:0;transform:translate(var(--dx),var(--dy)) rotate(180deg) scale(.5)}}
@media(prefers-reduced-motion:reduce){.caveCelebration i{animation:none;opacity:.3;box-shadow:none;transform:translate(var(--dx),var(--dy))}}

@media(max-width:700px) and (orientation:portrait){.caveLevelPicker{width:100%}.caveLevelPicker select{max-width:none;flex:1;width:0}.caveLevelDescription{font-size:11px}.caveTopLinks .caveLevelPicker{margin-bottom:2px}}
