/* Cell environments and tactile controls, scoped to the protein game. */
.gb-protein-game { --pg-ink:#244e4d; --pg-line:#bed6d0; }
.gb-protein-game :is(.gb0__stage,.gr2__stage,.gb-dna-builder__stage,.gb2__stage) {
  background:linear-gradient(110deg,rgba(248,249,255,.65),rgba(247,251,249,.48)),url('assets/protein-game/nucleus-interior-v1.webp') center/cover;
}
.gb-protein-game :is(.gti__stage,.gt3__stage) {
  background:linear-gradient(110deg,rgba(246,253,250,.75),rgba(241,248,248,.55)),url('assets/protein-game/cytoplasm-interior-v1.webp') center/cover;
}
.gb-protein-game :is(.gb0__cabinet,.gr2__cabinet,.gb-dna-builder__cabinet,.gb2__cabinet,.gti__cabinet,.gt3__cabinet) {border-radius:26px;box-shadow:0 15px 45px #244e4d12;overflow:hidden;}
.gb-protein-game button:not([data-gti-codon]):not([data-gt3-codon]):not(.gti__frame-base) {
  border-radius:24px 24px 20px 20px;
  transition:box-shadow .18s ease,background .18s ease,translate .18s ease;
}
.gb-protein-game :is(.gb-dna-builder__overlay-actions,.gb2__overlay-panel,.gt3__result-actions,.gti__protein-ready,.gti__direction-check) button,
.gb-protein-game :is(.gt3__primary,.gb0__primary,.gr2__primary) {
  min-height:46px;padding:12px 22px;border:1px solid #abcac0;
  background:linear-gradient(155deg,#fff,#e8f2ec);color:#254f45;
  box-shadow:inset 0 1px 0 #fff,0 3px 0 #aac4bb,0 7px 14px #274f4410;
  font-weight:700;line-height:1.3;
}
.gb-protein-game :is(.gt3__primary,.gb0__primary,.gr2__primary,[data-gb-action="start-mission"],[data-gb2-action="start-standard"],.gti__protein-ready button) {
  background:linear-gradient(145deg,#407c70,#20584f);color:#fff;border-color:#356a5d;
  box-shadow:inset 0 1px 0 #ffffff35,0 3px 0 #173f38,0 8px 20px #244e4d24;
}
.gb-protein-game :is([data-gb-base],[data-gb2-base]) {
  border-radius:32% 28% 30% 24% / 35% 35% 25% 25%!important;
  border:1px solid #ffffffa0;box-shadow:inset 0 2px 0 #ffffff9a,inset 0 -5px 0 #00000012,0 7px 15px #264e4c18;
  min-height:68px;
}
.gb-protein-game :is([data-gb-base],[data-gb2-base]) strong {text-shadow:0 1px 0 #ffffff80;}
.gb-protein-game [data-gti-amino-build] {border-radius:22px 30px 22px 16px!important;background:linear-gradient(145deg,#fffffff5,#f2f8f3e8);border-color:#c9dbd3;box-shadow:0 3px 0 #d6e5dd;min-height:58px;}
.gb-protein-game .gti__trna-choice {border-radius:30px 30px 22px 22px!important;box-shadow:inset 0 1px 0 white,0 5px 15px #244e4d10;}
.gb-protein-game :is(.gti__copy,.gti__protein-fact,.gti__frame-explanation,.gt3__explain) {border-radius:22px;}
.gb-protein-game .gti__copy {padding:20px 24px;background:#ffffffdb;border:1px solid #ffffffc9;}
.gb-protein-game .gti__copy p {max-width:75ch;line-height:1.65!important;}
.gb-protein-game .gti__termination {font-size:.65rem;color:#675078;line-height:1.2;padding:5px;}
.gb-protein-game .gt3__explain {margin-top:24px;padding:22px;background:#eef5f1;text-align:left;border:1px solid #c8ddd3;}
.gb-protein-game .gt3__explain h4 {margin:5px 0 12px;color:#234d43;font-size:1.2rem;}
.gb-protein-game .gt3__explain details {border-top:1px solid #ccdfd5;padding:12px 0;}
.gb-protein-game .gt3__explain summary {cursor:pointer;color:#2f5b4e;font-weight:650;line-height:1.45;min-height:30px;}
.gb-protein-game .gt3__explain p {font-size:.86rem!important;line-height:1.6!important;color:#36574b!important;}
.gb-protein-game button:disabled {box-shadow:none;cursor:default;}
@media(hover:hover) {
  .gb-protein-game button:not(:disabled):not([data-gti-codon]):not([data-gt3-codon]):hover {translate:0 -2px;box-shadow:inset 0 1px 0 #ffffff70,0 6px 16px #244e4d25;}
}
.gb-protein-game button:not(:disabled):active {translate:0 1px;}
/* The illustration carries the film; compact captions stay readable. */
.gb-protein-game :is(.gb-protein-game__intro,.gb-protein-game__outro,.gb-protein-game__finale) {scroll-margin-top:92px;}
.gb-protein-game .gb-protein-game__outro.is-running .gb-protein-game__outro-progress span {animation-duration:32s;}
.gb-protein-game .gb-protein-game__finale.is-running .gb-protein-game__finale-progress span {animation-duration:42s;}
.gb-protein-game :is(.gb0__base-button,.gr2__base-button) {border-radius:28% 28% 24% 24%!important;box-shadow:inset 0 2px 0 #ffffff95,inset 0 -4px 0 #00000012,0 5px 12px #264e4c15;}
.gb-protein-game :is([data-gb0-action],[data-rna2-action]) {border-radius:24px!important;box-shadow:inset 0 1px 0 white,0 3px 0 #d2e2db;}
.gb-protein-game .gb-protein-game__intro-crawl-window {display:none!important;}
.gb-protein-game .gb-protein-game__intro[data-state="playing"] .gb-protein-game__intro-copy {opacity:1;visibility:visible;pointer-events:auto;}
.gb-protein-game :is(.gb-protein-game__intro-copy,.gb-protein-game__outro-copy,.gb-protein-game__finale-copy) {
  background:linear-gradient(125deg,#153d40ec,#254e53e6)!important;border:1px solid #ffffff35!important;
  border-radius:22px!important;padding:22px 26px!important;box-shadow:0 12px 30px #113d4020!important;
  max-width:740px!important;backdrop-filter:blur(8px);text-align:left!important;
}
.gb-protein-game :is(.gb-protein-game__intro-copy,.gb-protein-game__outro-copy,.gb-protein-game__finale-copy) h3 {font-size:clamp(1.2rem,2.3vw,1.9rem)!important;color:#f4fcf9!important;margin:5px 0 10px!important;text-shadow:none!important;}
.gb-protein-game :is(.gb-protein-game__intro-copy,.gb-protein-game__outro-copy,.gb-protein-game__finale-copy) p {color:#e0efec!important;font-size:clamp(.82rem,1.2vw,.98rem)!important;line-height:1.6!important;text-shadow:none!important;}
.gb-protein-game :is(.gb-protein-game__intro-video,.gb-protein-game__outro-video,.gb-protein-game__finale-video) {filter:none!important;opacity:1!important;object-fit:cover;}
@media(max-width:600px) {
 .gb-protein-game .gti__copy {padding:16px;}
 .gb-protein-game .gt3__explain {padding:16px;}
 .gb-protein-game :is(.gb-protein-game__intro-copy,.gb-protein-game__outro-copy,.gb-protein-game__finale-copy) {padding:16px!important;max-width:calc(100% - 24px)!important;}
 .gb-protein-game :is([data-gb-base],[data-gb2-base]) {min-height:58px;}
}
@media(prefers-reduced-motion:reduce) { .gb-protein-game button {transition:none!important;translate:none!important;} }
