/* The result uses reserved space; only the reading panel scrolls. */
.classicPieces{display:contents}
.cultureCard{display:flex;flex-direction:column;min-height:0;gap:12px;margin:12px 0 0;padding:18px 16px;background:linear-gradient(145deg,#f8edcf,#e8d4a8);border:1px solid #b18b4e;border-radius:8px;box-shadow:0 3px 12px #231b1933,inset 0 0 0 3px #fff7df66;color:#293b3c;text-align:left;overflow:hidden}
.cultureExcerpt{min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;padding-right:3px}
.cultureKicker{font:12px/1.4 var(--studioFont,serif)!important;letter-spacing:1.4px;color:#725127!important;margin:0 0 9px!important}
.cultureCard .cultureTitle{display:block!important;position:static!important;font:23px/1.25 var(--studioFont,serif)!important;color:#173e47;letter-spacing:0!important;margin:0 0 12px!important;text-align:left;white-space:normal}
.cultureCard .cultureSummary{font:16px/1.6 var(--studioFont,serif)!important;color:#293b3c!important;margin:0 0 16px!important}
.culturePoem{margin:16px 0 0;padding:12px 0 0;border-top:1px solid #b39a6c;color:#394a46}
.cultureOriginal{white-space:pre-line;font:19px/1.75 var(--studioFont,serif)!important;color:#173e47!important;margin:0 0 9px!important}
.cultureTranslation{white-space:pre-line;font:italic 15px/1.6 Georgia,serif!important;color:#47524a!important;margin:0 0 10px!important}
.cultureAttribution{display:block;font:12px/1.5 var(--studioFont,serif);font-style:normal;color:#775c35}
.cultureRead{flex:none;display:block;width:100%;min-height:44px;padding:9px 8px;border:1px solid #ad8b51;border-radius:5px;background:#224953;color:#fff0ca;font:15px/1.4 var(--studioFont,serif);box-shadow:0 2px 0 #15323a;cursor:pointer}
.cultureRead:focus-visible,.cultureClose:focus-visible,.cultureDialog summary:focus-visible{outline:3px solid #548a91;outline-offset:3px}
#classicResult[hidden],#result[hidden],#completion[hidden]{display:none!important}
#classicResultText,.rings-won #resultText,.swap-won .winPanel>p{display:none!important}
@media(min-width:601px){
 .arcade .tablebar{grid-column:1/-1;padding:0;display:flex;justify-content:space-between}
 .arcade .progressTrack{grid-column:1/-1;margin:0;width:100%}
 .arcade .classicPieces{display:grid;grid-row:3;grid-column:2;grid-template-rows:30px minmax(0,1fr);gap:6px;min-height:0}
 .arcade .classicPieces .trayHead{grid-column:1;grid-row:1}
 .arcade .classicPieces #tray{grid-column:1;grid-row:2}
 .arcade #classicResult{grid-column:2;grid-row:3;display:flex;flex-direction:column;justify-content:flex-start;align-self:stretch;height:100%;padding:12px 0 8px;overflow:hidden}
 .puzzle-complete .classicPieces{visibility:hidden;pointer-events:none}
 .arcade #classicResult .cultureCard{flex:0 1 auto}
 .bloomSwap.swap-won .swapSide{grid-template-rows:minmax(0,1fr) 32px 88px;align-content:stretch}
 .bloomSwap.swap-won .completion,.bloomSwap.swap-won .winPanel{height:100%;min-height:0;display:flex;flex-direction:column;justify-content:flex-start;overflow:hidden;padding:12px 0 0}
 .bloomSwap.swap-won .winPanel{padding:0}
 .bloomSwap.swap-won .cultureCard{flex:0 1 auto}
 .ringStudio.ringStudio .result:not([hidden]){max-width:100%}
 .rings-won .ringStudio .result:not([hidden]){display:flex;flex-direction:column;justify-content:flex-start;align-self:stretch;box-sizing:border-box;height:100%;padding:72px 0 104px;overflow:hidden}
 .rings-won .cultureCard{flex:0 1 auto}
 .cultureCard{max-width:100%}
}
.cultureDialog{box-sizing:border-box;width:min(680px,94vw);max-width:94vw;height:min(820px,calc(var(--play-height,100dvh) - 36px));max-height:calc(var(--play-height,100dvh) - 36px);padding:0!important;border:1px solid #bf9d60;border-radius:12px;background:#f5e9cc;color:#273d3e;box-shadow:0 20px 70px #101c22aa;overflow:hidden;user-select:text;-webkit-user-select:text;-webkit-touch-callout:default}
.cultureDialog::backdrop{background:#102f3bd9;backdrop-filter:blur(5px)}
.cultureClose{display:block;margin:0 0 0 auto;min-height:48px;padding:10px 20px;border:0;background:transparent;color:#173e47;font:16px/1.4 var(--studioFont,serif);cursor:pointer}
.cultureBody{height:calc(100% - 48px);overflow:auto;overscroll-behavior:contain;padding:2px 30px 30px;box-sizing:border-box;text-align:left;font:17px/1.75 var(--studioFont,serif);touch-action:pan-y}
.cultureBody h2{font:30px/1.25 var(--studioFont,serif);color:#173e47;margin:6px 0 12px;letter-spacing:0;text-align:left}
.cultureIntro{font-size:15px;line-height:1.6;color:#6a614e;margin:0 0 22px}
.cultureChapter{border-top:1px solid #c7b38b;padding:20px 0 10px}
.cultureChapter h3{font:24px/1.35 var(--studioFont,serif);color:#173e47;margin:0 0 12px}
.cultureChapter h4{font-size:14px;color:#725127;margin:22px 0 0;letter-spacing:1px}
.cultureChapter p{margin:10px 0;line-height:1.75}
.cultureDialog .cultureOriginal{font-size:21px!important;line-height:1.9!important}
.cultureDialog .cultureTranslation{font-size:17px!important}
.cultureDialog .cultureAttribution{font-size:15px}
.cultureTranslationNote,.cultureEditorial{font-size:13px;color:#71654e;line-height:1.6;margin:16px 0}
.cultureSources{list-style:none;padding:0;margin:20px 0 6px;font-size:12px;line-height:1.5;color:#71654e}
.cultureSources li{margin:6px 0}.cultureSources a{color:#38636c;text-decoration:underline;text-underline-offset:3px}
.cultureMore{border-top:1px solid #c7b38b;margin-top:16px;padding-top:12px}
.cultureDialog summary{min-height:44px;padding:8px 0;cursor:pointer;color:#173e47;font-size:17px;line-height:1.5}
.cultureLibraryItem{border-bottom:1px solid #d4c3a3}.cultureLibraryItem .cultureChapter{border:0;padding-top:4px}
@media(max-width:600px){
 .cultureCard{flex:none!important;height:44px;min-height:44px;margin:6px 0 0;padding:0;border:0;border-radius:5px;background:none;box-shadow:none;overflow:visible}
 .cultureExcerpt{display:none}.cultureRead{font-size:14px;min-height:44px;height:44px;padding:8px}
 .arcade #classicResult{display:flex;flex-direction:column;justify-content:flex-start;padding:0;height:104px;grid-row:4/6}
 .bloomSwap main{grid-template-rows:20px 32px 25px minmax(0,1fr) 104px 0 28px 80px}
 .bloomSwap .completion{height:104px}.bloomSwap .completion .winPanel{height:104px;padding:0}
 .ringStudio>main{grid-template-rows:28px 30px 26px minmax(0,1fr) 42px 104px 0 52px 16px 4px}
 .ringStudio .turnControls{height:104px;min-height:0}
 .ringStudio .result:not([hidden]){grid-row:6;height:104px;padding:0;margin:0}
 .cultureCard{max-width:320px;width:100%;align-self:center;margin-left:auto;margin-right:auto}
 .cultureDialog{height:calc(var(--play-height,100dvh) - 24px);max-height:calc(var(--play-height,100dvh) - 24px)}
 .cultureBody{padding:2px 20px 24px}.cultureBody h2{font-size:27px}
 .cultureChapter h3{font-size:22px}
}

.pbCollection>.cultureCard{max-width:560px;margin:20px auto;min-height:0;flex:none}.pbCollection>.cultureCard .cultureExcerpt{overflow:visible}

@media(min-width:601px) and (max-height:590px){
 .cultureCard{flex:none!important;padding:0;border:0;background:none;box-shadow:none;min-height:44px;height:44px;margin-top:10px;overflow:visible;gap:0}
 .cultureExcerpt{display:none}
}

@media(min-width:601px){.arcade .tablebar{align-items:baseline}.arcade .tablebar #timer,.arcade .tablebar #progress{font:14px/22px var(--studioFont,serif)}.arcade #classicResult{align-items:stretch}}

/* Classic: align the basket's outer border to the visible wood, including its alpha margins. */
@media(min-width:601px){
 .arcade.is-playing #game{grid-template-rows:24px 34px minmax(0,1fr)}
 .arcade .table{grid-template-rows:22px 3px minmax(0,1fr) 58px}
 .arcade .classicPieces{align-self:start;margin-top:var(--classic-frame-top,0px);height:var(--classic-frame-height,0px);grid-template-rows:36px minmax(0,1fr);gap:0;padding:6px 4px 8px;border:2px solid #987241;border-radius:12px;background:repeating-linear-gradient(0deg,#d7b47e99 0 3px,#b5905c88 3px 5px),#c29d68;box-shadow:inset 0 3px 7px #5a3c2e66,0 3px 0 #775632;overflow:hidden}
 .arcade .classicPieces .trayHead{padding:0 8px;color:#493521;text-shadow:none;gap:5px;min-width:0}
 .arcade .classicPieces .trayHead>span{font-size:13px;white-space:nowrap}.arcade .classicPieces .trayHead small{font-size:11px;margin-left:3px}
 .arcade .classicPieces .trayHead button{color:#493521;text-shadow:none;font-size:12px;padding:2px 4px}
 .arcade .classicPieces #tray{border:0;border-radius:0;background:none;box-shadow:none;padding:6px;scrollbar-color:#82603d transparent}
 .arcade .table>.unifiedToolbar{grid-column:1;grid-row:4;position:relative;top:calc(8px - var(--classic-below-frame,8px));left:var(--classic-frame-centre-shift,0px);width:var(--classic-frame-width,100%);max-width:none;height:58px;justify-self:center;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0}
 .arcade .table>.unifiedToolbar>button{min-width:0;min-height:54px;font-size:12px}
 .arcade #classicResult{margin-top:var(--classic-frame-top,0px);height:var(--classic-frame-height,0px);padding:0;align-self:start}
}
@media(max-width:600px){
 .arcade.is-playing #game{grid-template-rows:22px 30px minmax(0,1fr)}
 .arcade .table{grid-template-rows:20px 3px minmax(0,1fr) 25px 78px 56px}
 .arcade .table>.unifiedToolbar{grid-row:6;grid-column:1;min-height:0;margin:0;padding:0 5px;width:100%;max-width:none}
}
@media(max-width:600px){
 .arcade .table{grid-template-columns:minmax(0,1fr)}
 .arcade .classicPieces .trayHead,.arcade .classicPieces #tray{grid-column:1}
}
.classicViewport>.puzzleFrame{grid-area:1 / 1}

/* A quiet reading action, followed by a visibly larger continuation button. */
#classicResult>.cultureCard,.winPanel>.cultureCard,.rings-won #result>.cultureCard{margin:0 0 12px;gap:8px}
#classicResult .cultureRead,.winPanel .cultureRead,.rings-won #result .cultureRead{align-self:flex-start;display:inline-flex;align-items:center;justify-content:center;width:auto;max-width:100%;height:44px;min-height:44px;padding:8px 14px;background:transparent;color:#31545a;box-shadow:none;border:1px solid #a99976;font-size:14px;text-shadow:none}
.arcade #classicResult>.bloomNext,.bloomSwap .completion .winPanel>.bloomNext,.rings-won .ringStudio #result>#next{display:flex;align-items:center;justify-content:center;flex:none;width:100%;max-width:360px;height:64px;min-height:64px;margin:0 auto;padding:0 32px 2px;border:0;background-color:transparent;background-image:url('classic/assets/ui/studio-button.webp');background-size:100% 155%;background-position:center 42.8%;background-repeat:no-repeat;color:#fff4d8;font:600 24px/1.1 var(--studioFont,serif);text-align:center;letter-spacing:0;text-shadow:0 2px 2px #102b3f}
html[lang=en] .arcade #classicResult>.bloomNext,html[lang=en] .bloomSwap .completion .winPanel>.bloomNext,html[lang=en] .rings-won .ringStudio #result>#next{font-family:Georgia,serif;font-size:22px}
@media(max-width:600px){
 #classicResult>.cultureCard,.winPanel>.cultureCard,.rings-won #result>.cultureCard{margin:0 auto 8px;align-items:center}
 #classicResult .cultureRead,.winPanel .cultureRead,.rings-won #result .cultureRead{align-self:center;color:#fff0cf;border-color:#c4b183;background:#173b4466;min-width:160px;max-width:220px}
 .arcade #classicResult>.bloomNext,.bloomSwap .completion .winPanel>.bloomNext,.rings-won .ringStudio #result>#next{height:52px;min-height:52px;max-width:320px;font-size:22px}
 html[lang=en] .arcade #classicResult>.bloomNext,html[lang=en] .bloomSwap .completion .winPanel>.bloomNext,html[lang=en] .rings-won .ringStudio #result>#next{font-size:20px}
}
@media(min-width:601px) and (max-height:590px){
 #classicResult .cultureRead,.winPanel .cultureRead,.rings-won #result .cultureRead{color:#fff0cf;border-color:#c4b183;background:#173b4466;min-width:160px;align-self:center}
}
/* Reference images float over the studio, without a paper dialog or heavy frame. */
.arcade #imageModal,.ringPage #previewDialog{width:min(94vw,900px,calc(var(--play-height,100dvh) - 100px));max-width:94vw;max-height:calc(var(--play-height,100dvh) - 24px);height:auto;padding:56px 0 0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;overflow:visible}
.arcade #imageModal::backdrop,.ringPage #previewDialog::backdrop{background:#102731c9;backdrop-filter:blur(4px)}
.arcade #imageModal .close,.ringPage #previewDialog .dialogClose{position:absolute;right:0;top:0;width:44px;height:44px;min-height:44px;border:1px solid #c8af76;border-radius:50%;background:#183d46;color:#fff0cf;box-shadow:0 2px 8px #10212655}
.arcade #imageModal .referenceTools{position:absolute;left:50%;top:0;transform:translateX(-50%);height:44px;margin:0;gap:8px;white-space:nowrap}
.arcade #imageModal .referenceTools button{height:44px;min-height:44px;min-width:44px;padding:6px 10px;background:#183d46;color:#fff0cf;border:1px solid #c8af76;border-radius:5px;box-shadow:none;font-size:15px}
.arcade #imageModal #referenceViewport{width:100%;height:auto;aspect-ratio:1;max-height:none;background:transparent;border:0;border-radius:0;box-shadow:none}
.arcade #imageModal #largeImage,.ringPage #previewDialog #previewImage{border:1px solid #d3ba83;border-radius:0;box-shadow:none;object-fit:contain;background:transparent}
.ringPage #previewDialog #previewName{position:absolute;left:4px;right:52px;top:0;margin:0;font-size:18px;line-height:44px;color:#fff0cf;text-align:left;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.arcade #imageModal,.ringPage #previewDialog{position:fixed;inset:auto;left:50%;top:50%;transform:translate(-50%,-50%);margin:0}
