/* Play surfaces: mint means an action; slate means a card being held. */
:root{--play-mint:#a6f0d6;--play-mint-dark:#173a35;--play-edge:#7bcab4;--play-slate:#8b9ca6;--play-panel:#132630;--play-ease:cubic-bezier(.18,.75,.3,1)}
.game-icon{display:inline-block;width:20px;height:20px;flex:0 0 20px;vertical-align:middle;pointer-events:none}
body.reaction-playing .site-header{padding-top:14px;padding-bottom:14px}body.reaction-playing .main-nav{padding-top:6px;padding-bottom:6px}body.reaction-playing main{padding-top:26px}
.lab-paths{margin-bottom:22px}.lab-paths button{display:inline-flex;align-items:center;justify-content:center;gap:8px}
.reaction-intro{max-width:none;display:grid;grid-template-columns:minmax(0,1fr) 260px;align-items:center;gap:28px;padding:12px 0 26px}.reaction-intro h1{font-size:clamp(28px,4vw,42px);line-height:1.5;margin:8px 0 18px}.reaction-intro p{max-width:620px;line-height:1.9}.reaction-intro>div>p>strong{display:block;margin-top:5px}.reaction-intro .draw-start{margin-top:12px;display:inline-flex;gap:12px;align-items:center;min-height:60px;font-size:18px}.draw-caption{font-size:13px;color:#b5e5d3;margin:12px 0 0!important}
.draw-sigil{width:240px;max-width:100%;color:var(--play-edge);overflow:visible}.draw-sigil-card{transform-origin:120px 94px;transform:translateX(calc(var(--card)*59px)) rotate(calc(var(--card)*12deg));animation:deal-sigil .65s var(--play-ease) both;animation-delay:calc(var(--delay)*90ms)}.draw-sigil rect{fill:#172d35;stroke:var(--play-mint);stroke-width:1.7}.draw-sigil path,.draw-sigil circle{stroke:#a3e0c8;stroke-width:1.4}.draw-sigil-line{opacity:.4}
.run-heading{align-items:center;margin-bottom:14px}.run-heading h1{font-size:clamp(23px,3vw,32px);line-height:1.55;margin:5px 0}.run-heading .eyebrow{margin:0;font-size:10px}.run-budget{background:#1d3338;border:1px solid #526860;border-radius:8px;padding:9px 14px;margin:0;font-size:13px}.run-budget strong{font:700 30px/1.2 var(--sans);color:#ebd7a1}.run-budget>span{font-size:12px}
.expedition-steps{display:flex;gap:14px;align-items:center;padding:0;list-style:none;margin:8px 0 22px;font:14px/1.6 var(--sans)}.expedition-steps li{display:flex;gap:8px;align-items:center;color:#9aabb4}.expedition-steps li:not(:last-child):after{content:'›';color:#6b868c;margin-left:8px}.expedition-steps li>span{display:grid;place-items:center;min-width:26px;height:26px;border:1px solid #597078;border-radius:50%;font-size:12px}.expedition-steps [aria-current=step]{color:var(--play-mint);font-weight:700}.expedition-steps [aria-current=step]>span{background:#24483f;border-color:var(--play-edge)}
.pick-cue{display:flex;gap:14px;align-items:center;padding:14px 18px;margin:18px 0;background:#244b432e;border-left:3px solid var(--play-mint)}.pick-cue>.game-icon{width:26px;height:26px;flex-basis:26px;transform:rotate(90deg);color:var(--play-mint);animation:tap-nudge .65s ease-out 2}.pick-cue p{margin:0;line-height:1.7}.pick-cue strong{display:block;font-size:17px;color:#edf8f0}.pick-cue p>span{font-size:13px;color:#b8d2cb}
.reaction-offers{gap:20px;align-items:stretch}.starter-card{border:2px solid var(--play-edge);background:linear-gradient(155deg,#1e3c42,#132832);border-radius:14px;box-shadow:0 6px 0 #06151c;padding:18px;display:flex;flex-direction:column;text-align:left;min-width:0;cursor:pointer;position:relative;transition:transform .16s var(--play-ease),box-shadow .16s,border-color .16s;animation:card-arrive .5s var(--play-ease) both;animation-delay:calc(var(--deal-order)*85ms)}.starter-card:hover:not(:disabled){transform:translateY(-5px) rotate(-.6deg);border-color:#dcffee;box-shadow:0 10px 0 #06151c,0 0 24px #9ef0c324}.starter-card:active:not(:disabled){transform:translateY(2px);box-shadow:0 2px 0 #06151c}.starter-card:focus-visible,.reaction-play:focus-visible{outline:3px solid #fff3bd;outline-offset:5px}.starter-top{display:flex;align-items:center;justify-content:space-between;gap:8px;font:12px/1.6 var(--sans);color:#b6d4ce}.ready-badge{display:inline-flex;gap:5px;align-items:center;justify-content:center;border:1px solid #a5e9c4;border-radius:4px;padding:3px 7px;font:700 12px/1.5 var(--sans);color:#d1ffe6;background:#224e3c}.ready-badge .game-icon{width:14px;height:14px;flex-basis:14px}.starter-picture{height:125px;display:flex;align-items:center;justify-content:center;margin:14px 0;pointer-events:none}.starter-picture svg{height:100%;width:100%;max-width:280px}.starter-name{font:700 21px/1.6 var(--sans);color:#f2faf5;margin-top:2px}.starter-hint{display:block;font:14px/1.85 var(--sans);color:#bcd3d3;margin:10px 0 18px;flex:1}.starter-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;border-radius:6px;padding:12px 14px;background:var(--play-mint);box-shadow:0 3px 0 #508775;color:#102c27;font:700 16px/1.6 var(--sans)}
.reaction-bench{grid-template-columns:minmax(180px,235px) minmax(0,1fr);gap:26px;margin-top:20px}.reaction-bench>.route-material{padding:16px;border:1px solid #57736b;border-radius:10px;background:#12252c;text-align:center}.current-label{display:inline-block;color:#d1e4de;font-size:12px;padding:3px 10px;border-radius:20px;background:#2a4448}.route-specimen{height:135px;margin:10px 0}.route-material h2{font:700 20px/1.6 var(--sans)}.route-material .formula{font-size:14px}.route-material .text-button{font-size:13px;color:#bbd6d4}
.hand-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px}.reaction-bench .hand-heading h2{font:700 19px/1.6 var(--sans);margin:0}.hand-heading>span{white-space:nowrap;font:12px/1.6 var(--sans);color:#d0ecdc;background:#1c4739;border:1px solid #5b977c;border-radius:4px;padding:4px 8px}.ready-hand{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:14px;align-items:start}.reaction-hand-card.is-usable{padding:0;background:none;border:0;min-width:0}.reaction-hand-card .reaction-play{display:flex;flex-direction:column;gap:13px;width:100%;text-align:left;white-space:normal;border:2px solid var(--play-edge);border-radius:11px;padding:18px;background:linear-gradient(135deg,#1d453b,#173b3f);box-shadow:0 5px 0 #06191c;cursor:pointer;transition:transform .16s var(--play-ease),box-shadow .16s;line-height:1.65}.reaction-play:hover:not(:disabled){transform:translateY(-3px);border-color:#c6ffe5;background:linear-gradient(135deg,#295c46,#204e4d);box-shadow:0 8px 0 #06191c,0 0 24px #9ef0c31a}.reaction-play .ready-badge{align-self:start}.reaction-play>strong{font:700 21px/1.6 var(--sans);color:#f0fff6}.card-description{font:14px/1.85 var(--sans);color:#c2ded6}.card-destination{display:flex;flex-wrap:wrap;gap:4px 10px;font:12px/1.7 var(--sans);color:#bad5cc}.card-destination b{font-size:15px;font-weight:700;color:#edf7e4}.card-use{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px;width:100%;border-radius:6px;background:var(--play-mint);color:#14382c;font:700 16px/1.6 var(--sans);box-shadow:0 3px 0 #508775}.card-use>span{display:inline-flex;align-items:center;gap:12px;font-size:13px}.card-science{margin-top:13px!important;font:13px/1.8 var(--sans)!important}.card-science summary{color:#b1c3c8;min-height:36px;cursor:pointer}.card-science p{font-size:13px}
.held-hand{margin:18px 0 0;padding-top:14px;border-top:1px solid #3c515c}.held-hand>h3{display:flex;gap:8px;align-items:center;margin:0 0 10px;font:700 13px/1.6 var(--sans);color:#b3c0c7}.held-hand>h3>span{font-weight:400;font-size:12px;margin-left:6px;color:#99aab3}.held-hand>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.reaction-hand-card.is-held{border:1px dashed #52616b;border-radius:7px;padding:13px;background:repeating-linear-gradient(135deg,#1a242b,#1a242b 10px,#172128 10px,#172128 20px);display:flex;flex-direction:column;gap:7px;cursor:default;box-shadow:none;min-width:0;user-select:text}.is-held:hover{transform:none!important;box-shadow:none!important;border-color:#52616b!important}.held-state{display:flex;align-items:center;gap:7px;font:700 11px/1.5 var(--sans);color:#c0c9ce}.held-state .game-icon{width:14px;height:14px;flex-basis:14px}.is-held>strong{font:500 14px/1.7 var(--sans);color:#bac5ca}.is-held>span:last-child{font:12px/1.6 var(--sans);color:#9eacb4}.is-held:before,.is-held:after{content:none!important}
.empty-hand{border:1px dashed #8c9ba5;border-radius:8px;padding:19px;background:#1c2d38}.empty-hand>.game-icon{color:#d8d8b9}.empty-hand h3{font:700 18px/1.7 var(--sans);margin:8px 0}.empty-hand p{font:14px/1.8 var(--sans);margin-bottom:0}.run-controls{margin:20px 0 0}.run-controls>p{font-size:13px;color:#9fb8ba;margin:0 0 10px}.run-controls .buttons{gap:10px}.run-controls button{display:inline-flex;gap:9px;align-items:center;justify-content:center;min-height:46px;font-size:14px}.run-controls small{font:700 11px/1.5 var(--sans);background:#061b2144;padding:2px 6px;border-radius:4px}.run-controls .text-button{margin-left:auto;font-size:13px;min-height:44px;padding:8px}
.reaction-receipt{margin:12px 0 18px;padding:12px 16px;border:1px solid #507b67;border-left:3px solid var(--play-mint);border-radius:5px;background:#203d3022}.reaction-receipt>summary{display:flex;flex-wrap:wrap;align-items:center;gap:7px 12px;width:max-content;max-width:100%;font:14px/1.7 var(--sans);cursor:pointer}.reaction-receipt>summary>.game-icon{width:18px;height:18px;color:#cbe8a6}.reaction-receipt>summary>span{margin:0;font-size:12px;color:#cce0a6}.reaction-receipt>summary>strong{font:700 15px/1.7 var(--sans)}.reaction-receipt[open]>summary{margin-bottom:14px}.run-summary .run-found button{min-height:48px}.run-found{animation:card-arrive .4s var(--play-ease) both}
/* Original sample lab shares the same draw / choose language. */
.sample-ticket.empty-ticket{border-style:dashed!important;border-color:#45545e!important;background:#121e27!important;box-shadow:none!important;pointer-events:none;opacity:.65}.sample-ticket.empty-ticket:after{border-style:dashed}.sample-ticket.empty-ticket .sample-code{color:#8b9aa7}.sample-ticket.empty-ticket .empty-sample{opacity:.5}button.sample-ticket .sample-open{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--play-mint);color:#15372e;border:0;border-radius:6px;padding:11px 14px;font:700 15px/1.6 var(--sans);margin-top:auto;box-shadow:0 3px 0 #508775}button.sample-ticket{animation:card-arrive .45s var(--play-ease) both;animation-delay:calc(var(--arrival)*80ms)}.sample-choice-cue{margin:14px 0}.sample-choice-cue strong{font-size:16px}.screening-controls .primary{display:inline-flex;align-items:center;gap:10px}.workbench .thinking-memo{margin-top:22px}.method-instruction{font:700 15px/1.8 var(--sans)!important;color:#c5f0dc!important}.game-action-fx{position:fixed;z-index:90;inset:0;display:flex;align-items:center;justify-content:center;gap:15px;background:#08151c88;pointer-events:none;color:#e2ffef;font:700 18px/1.7 var(--sans);backdrop-filter:blur(2px)}.game-action-fx>.game-icon{width:44px;height:44px;flex-basis:44px;animation:fx-pop .25s var(--play-ease) both}.game-card-picked{animation:pick-card .22s var(--play-ease) both!important}.game-transitioning button:not(.game-card-picked){filter:saturate(.65)}.game-just-arrived{animation:bench-arrive .45s var(--play-ease) both}.reaction-sigil{width:105px;height:92px;stroke:var(--play-mint);stroke-width:2}.flask-liquid{fill:#5fbca755;stroke:none}.flask-bubble{fill:#c9ffe5;stroke:none;animation:bubble-up .48s ease-out both}.flask-bubble.two{animation-delay:.06s}.flask-bubble.three{animation-delay:.1s}
@keyframes card-arrive{from{opacity:0;transform:translateY(20px) rotate(1.5deg)}to{opacity:1;transform:translateY(0) rotate(0)}}
@keyframes deal-sigil{from{opacity:0;transform:translateX(0) rotate(0)}to{opacity:1;transform:translateX(calc(var(--card)*59px)) rotate(calc(var(--card)*12deg))}}
@keyframes tap-nudge{0%,100%{translate:0 0}50%{translate:0 5px}}
@keyframes pick-card{to{transform:translateY(-9px) scale(1.025);box-shadow:0 0 28px #a6f0d655}}
@keyframes bench-arrive{from{opacity:.5;transform:translateY(8px);box-shadow:0 0 22px #a6f0d655}to{opacity:1;transform:translateY(0)}}
@keyframes bubble-up{from{opacity:0;transform:translateY(8px)}40%{opacity:1}to{opacity:0;transform:translateY(-34px)}}
@keyframes fx-pop{from{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}
@media(max-width:850px){.reaction-intro{grid-template-columns:minmax(0,1fr) 170px;gap:15px}.reaction-bench{grid-template-columns:minmax(150px,190px) minmax(0,1fr);gap:18px}.held-hand>div{grid-template-columns:1fr}.hand-heading{align-items:start;flex-wrap:wrap}.run-controls .text-button{margin-left:0}.reaction-play>strong{font-size:19px}.starter-picture{height:105px}.starter-name{font-size:18px}.starter-card{padding:14px}.starter-top{flex-wrap:wrap}}
@media(max-width:620px){body.reaction-playing .site-header{padding-top:12px;padding-bottom:12px}body.reaction-playing .main-nav{padding-block:6px}body.reaction-playing main{padding-top:18px}.lab-paths{margin-bottom:20px}.lab-paths button{font-size:12px;padding:9px 10px;min-height:44px}.reaction-intro{display:block;position:relative;padding:0 0 16px}.reaction-intro>.draw-sigil{position:absolute;right:0;top:3px;width:108px;opacity:.6}.reaction-intro .eyebrow{padding-right:90px;font-size:9px}.reaction-intro h1{font-size:27px;max-width:260px;line-height:1.5}.reaction-intro .draw-start{font-size:16px;width:100%;padding:12px;justify-content:center}.reaction-intro .draw-caption{font-size:12px}.expedition-steps{gap:6px;font-size:11px;margin:5px 0 18px}.expedition-steps li{gap:5px}.expedition-steps li>span{min-width:21px;height:21px;font-size:10px}.expedition-steps li:not(:last-child):after{margin-left:0}.run-heading{gap:10px;align-items:start}.run-heading h1{font-size:22px}.run-heading .eyebrow{font-size:8px;letter-spacing:.1em}.run-budget{padding:7px 9px;font-size:11px}.run-budget strong{font-size:24px}.run-budget>span{display:block;font-size:10px}.pick-cue{padding:11px 12px;gap:10px;margin:12px 0 16px}.pick-cue strong{font-size:15px}.pick-cue p>span{font-size:12px}.reaction-offers{gap:14px}.starter-card{display:grid;grid-template-columns:85px minmax(0,1fr);column-gap:13px;row-gap:0;padding:14px;box-shadow:0 4px 0 #06151c;border-radius:11px}.starter-top{grid-column:1/-1;flex-wrap:nowrap;margin-bottom:8px}.starter-picture{grid-column:1;grid-row:2/5;height:100px;margin:0}.starter-name{grid-column:2;font-size:18px;margin:3px 0 4px}.starter-hint{grid-column:2;font-size:12px;line-height:1.7;margin:0 0 10px}.starter-footer{grid-column:2;padding:8px 10px;font-size:14px;align-self:end}.starter-footer .game-icon{width:17px;height:17px}.reaction-bench{grid-template-columns:1fr;margin-top:16px;gap:18px}.reaction-bench>.route-material{display:grid;grid-template-columns:82px minmax(0,1fr);text-align:left;column-gap:13px;padding:12px 14px;align-items:center}.reaction-bench>.route-material>.current-label{grid-column:2;grid-row:1;width:max-content;font-size:11px;margin-bottom:3px}.reaction-bench>.route-material>.route-specimen{grid-column:1;grid-row:1/5;height:98px;margin:0}.reaction-bench>.route-material>h2{grid-column:2;grid-row:2;font-size:18px;margin:0}.reaction-bench>.route-material>.formula{grid-column:2;grid-row:3;font-size:12px;margin:0}.reaction-bench>.route-material>button{grid-column:2;grid-row:4;font-size:12px;padding:4px 0;min-height:32px}.hand-heading{align-items:center;gap:8px}.reaction-bench .hand-heading h2{font-size:17px}.hand-heading>span{font-size:10px;padding:4px 6px}.reaction-hand-card .reaction-play{padding:15px;gap:11px}.reaction-play>strong{font-size:19px}.card-description{font-size:13px}.card-use{font-size:16px;padding:10px 12px}.card-destination{font-size:11px}.card-destination b{font-size:14px}.held-hand>h3{font-size:12px;gap:5px;flex-wrap:wrap}.held-hand>h3>span{font-size:11px;margin:0}.held-hand>div{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.reaction-hand-card.is-held{padding:10px;gap:5px}.is-held>strong{font-size:12px}.is-held>span:last-child{font-size:10px}.run-controls{margin-top:18px}.run-controls .buttons{display:grid;grid-template-columns:1fr 1fr;gap:10px}.run-controls button{width:100%;font-size:12px;padding:9px 10px;min-height:46px;gap:5px}.run-controls button>.game-icon{width:16px;height:16px;flex-basis:16px}.run-controls .text-button{grid-column:1/-1;min-height:38px;justify-self:start;width:auto}.game-action-fx{flex-direction:column;font-size:16px;gap:8px}.reaction-receipt{padding:10px 12px}.reaction-receipt>summary{font-size:12px}.reaction-receipt>summary>strong{font-size:13px}.sample-choice-cue strong{font-size:14px}}
@media(prefers-reduced-motion:reduce){.starter-card,.sample-ticket,.draw-sigil-card,.pick-cue>.game-icon,.game-card-picked,.game-just-arrived,.run-found,.flask-bubble,.game-action-fx>.game-icon{animation:none!important;transition:none!important}.starter-card:hover:not(:disabled),.reaction-play:hover:not(:disabled){transform:none}}
@media(max-width:620px){body.reaction-playing .site-header{padding-block:10px;gap:8px}body.reaction-playing .brand-mark,body.reaction-playing .brand-type small{display:none}body.reaction-playing .brand-type{font-size:14px;line-height:1.4}body.reaction-playing .brand{min-height:0}body.reaction-playing .remote-trial{padding-block:6px;font-size:11px;line-height:1.6}}
