html.series-board-open,html.series-board-open body{overflow:hidden;overscroll-behavior:none}
#gameShell.crystal-board{position:fixed;inset:0;z-index:1000;width:100%;max-width:none;height:100dvh;margin:0;border:0;border-radius:0;display:flex;flex-direction:column;background:#fffaf7;overflow:hidden}
.crystal-board .toolbar{flex:none;padding:8px 16px;gap:10px;flex-direction:row;align-items:center}
.crystal-board .stats span{min-width:60px;padding:4px 8px;font-size:11px}
.crystal-board .stats strong{font-size:23px}
.crystal-board .tools button{min-height:52px;font-size:18px}
.crystal-board .progress-track{flex:none}
.crystal-board .crystal-room{flex:1;min-height:0;display:flex}
.crystal-board .cave-art{background-size:cover}
.crystal-board .crystal-workspace{width:100%;min-height:0;flex:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(400px,.95fr);gap:20px;padding:20px}
.crystal-board .crystal-field{min-height:0;display:flex;flex-direction:column;padding:55px 45px}
.crystal-board .fragments{min-height:0;flex:1}
.crystal-board .fragment,.crystal-board .fragment.origin{width:120px;height:130px}
.crystal-board .fragment-number{font-size:38px}
.crystal-board .prime-mark{font-size:16px;bottom:20px}
.crystal-board .molecule-core{width:90px;height:90px;font-size:32px}
.crystal-board .split-trail{margin:40px -25px -35px;gap:6px}
.crystal-board .split-trail span{font-size:22px;padding:4px 10px}
.crystal-board .split-board{align-self:stretch;min-height:0;clip-path:none;border-radius:22px;background:#fffaf2;padding:20px;display:flex;flex-direction:column;justify-content:center;gap:12px}
.crystal-board .split-board::before,.crystal-board .board-kicker,.crystal-board .split-board h2{display:none}
.crystal-board #missionPrompt{font-size:32px;line-height:1.18}
.crystal-board .active-crystal{font-size:22px;line-height:1.2;margin:0 auto;padding:6px 12px;box-shadow:none}
.crystal-board .factor-equation{margin:0;gap:12px}
.crystal-board .factor-equation>b{font-size:30px}
.crystal-board .factor-input{min-height:76px}
.crystal-board .factor-input input{font-size:32px}
.crystal-board .factor-input small{font-size:18px}
.crystal-board .crack-btn,.crystal-board .next-btn{min-height:52px;font-size:24px;margin:0}
.crystal-board .feedback{margin:0;padding:10px;gap:8px}
.crystal-board .feedback p{font-size:22px;line-height:1.25}
.crystal-board .final-factorization{font-size:32px;margin:0;padding:8px}
.crystal-board.task-complete .factor-equation,.crystal-board.task-complete .crack-btn{display:none}
.crystal-board .number-pad{width:min(360px,calc(100vw - 24px))}
.crystal-board .pad-grid button{min-height:52px;font-size:28px}
.crystal-board .pad-head strong{font-size:22px}
.crystal-board .pad-error{font-size:18px}
.crystal-board .modal p{font-size:22px;line-height:1.3}
.crystal-board .start-btn{min-height:52px;font-size:24px}
@media(max-height:680px) and (min-width:901px){
 .crystal-board .crystal-workspace{padding:12px;gap:12px;grid-template-columns:minmax(0,1fr) minmax(440px,1fr)}
 .crystal-board .split-board{padding:14px;gap:8px}
 .crystal-board .crystal-field{padding:40px 42px}
 .crystal-board .fragment,.crystal-board .fragment.origin{width:100px;height:110px}
 .crystal-board .prime-mark{bottom:14px}
 .crystal-board .split-trail{margin-top:25px}
}
@media(max-width:900px){
 .crystal-board .crystal-workspace{grid-template-columns:1fr;grid-template-rows:minmax(230px,1fr) auto;gap:10px;padding:12px}
 .crystal-board .crystal-field{padding:50px 65px}
 .crystal-board .split-trail{display:none}
 .crystal-board .split-board{gap:8px;padding:14px}
 .crystal-board .stats span:not(:first-child){display:none}
 .crystal-board .toolbar{padding:6px 10px}
 .crystal-board .tools{flex:1;justify-content:flex-end}
 .crystal-board .tools button{font-size:16px}
 .crystal-board .fragment,.crystal-board .fragment.origin{width:100px;height:110px}
 .crystal-board .prime-mark{bottom:14px}
}
.crystal-board [hidden]{display:none!important}

/* Keep the crystal model prominent; the answer card only needs its content height. */
.crystal-board .crystal-workspace{grid-template-columns:minmax(0,1.65fr) minmax(400px,1fr)}
.crystal-board .split-board{align-self:center}
.crystal-board .crystal-field{padding:80px 75px}
.crystal-board .fragment{width:160px;height:175px}
.crystal-board .fragment.origin{width:220px;height:230px}
.crystal-board .fragment-number{font-size:46px}
.crystal-board .fragment.origin .fragment-number{font-size:60px}
.crystal-board .prime-mark{font-size:18px;bottom:29px}
.crystal-board .molecule-core{width:120px;height:120px;font-size:40px}
@media(max-height:680px) and (min-width:901px){
 .crystal-board .crystal-workspace{grid-template-columns:minmax(0,1.25fr) minmax(440px,1fr)}
 .crystal-board .crystal-field{padding:65px 65px}
 .crystal-board .fragment{width:135px;height:145px}
 .crystal-board .fragment.origin{width:190px;height:200px}
 .crystal-board .fragment-number{font-size:40px}
 .crystal-board .prime-mark{bottom:23px}
 .crystal-board .molecule-core{width:95px;height:95px;font-size:34px}
}
@media(max-width:900px){
 .crystal-board .crystal-workspace{grid-template-columns:1fr}
 .crystal-board .crystal-field{padding:70px 90px}
 .crystal-board .fragment{width:135px;height:145px}
 .crystal-board .fragment.origin{width:190px;height:200px}
 .crystal-board .fragment-number{font-size:40px}
 .crystal-board .prime-mark{bottom:23px}
 .crystal-board .molecule-core{width:95px;height:95px;font-size:34px}
}

/* Anchor the card independently of feedback length and completed-state controls. */
.crystal-board .split-board{align-self:start;margin-top:clamp(0px,12vh,130px);justify-content:flex-start}
.crystal-board .feedback{min-height:104px}
@media(max-height:680px) and (min-width:901px){.crystal-board .split-board{margin-top:0}.crystal-board .feedback{min-height:104px}}
@media(max-width:900px){
 .crystal-board .crystal-workspace{grid-template-rows:minmax(0,1fr) 440px}
 .crystal-board .split-board{margin-top:0;height:440px}
}
.crystal-board .split-board{height:min(500px,100%);max-height:calc(100% - clamp(0px,12vh,130px))}
@media(max-height:680px) and (min-width:901px){.crystal-board .split-board{max-height:100%}}
@media(max-width:900px){.crystal-board .split-board{height:440px;max-height:100%}}
