@charset "UTF-8";
.trial-pies{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin:0 0 22px;padding:16px 12px;background:#263d32;border:1px solid #62745c;border-radius:6px}.trial-pies figure{margin:0;text-align:center;min-width:0}.trial-pies figcaption{font-size:14px;font-weight:700;color:#e8ddbd;margin:0 0 4px}.trial-pies svg{display:block;width:100%;max-width:200px;margin:auto;font:15px "Malgun Gothic",sans-serif}.trial-pies>p{grid-column:1/-1;text-align:center;font-size:12px;line-height:1.7;color:#c8cdb9}.trial-data .trial-model{margin-bottom:20px;text-align:center}.trial-data .trial-model>div{display:block;margin:0 auto 14px}.trial-data .trial-model p{margin-top:14px;line-height:1.8;word-spacing:5px;overflow-wrap:anywhere}.trial-data .trial-model small{line-height:1.8;font-size:12px}.trial-sheet .trial-table{min-width:450px}.trial-sheet .trial-table td:last-child{min-width:110px}
:root{font-family:"Malgun Gothic","Apple SD Gothic Neo",system-ui,sans-serif;color:#e8eee3;background:#132221;font-synthesis:none;--mint:#b4e5ad;--gold:#ecc884;--border:#496155;--muted:#a6b8aa}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 20% 0,#2b4036,transparent 65%),#132221}button{font:inherit;cursor:pointer;color:inherit;font-weight:700;border:1px solid var(--border);padding:12px 16px;background:#304c3c;border-radius:5px;transition:background .12s,transform .12s}button:hover:not(:disabled){background:#42614b}button:active:not(:disabled){transform:translateY(2px)}button:disabled{opacity:.45;cursor:default}button:focus-visible,canvas:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.primary{background:#b4e5ad;color:#1a3526;border-color:#d6f4c5;box-shadow:0 3px 0 #5b865d}.primary:hover:not(:disabled){background:#c9efbf}.secondary{background:#273d32;border-color:#657a5e}.text-button{background:transparent;padding:9px;font-size:13px;border-color:transparent;color:#c7d4c4}.app{max-width:1130px;margin:auto;padding:18px 24px}header{display:flex;align-items:center;gap:22px;padding:6px 0 18px}.brand{margin-right:auto}.brand h1{font-size:22px;letter-spacing:-1px;margin:0 0 4px}.brand span{font-size:12px;color:#a6bfa6}.energy-hud{min-width:190px;background:#263e31;border:1px solid #779066;padding:10px 14px;border-radius:5px}.energy-hud>div:first-child{display:flex;justify-content:space-between;align-items:center;gap:24px;font-size:14px}.energy-hud strong{font:800 23px monospace;color:#d5efa0}.energy-hud small{font-size:14px;color:#b1c99f}.meter{height:10px;background:#14251c;border:1px solid #697b4b;margin-top:8px;padding:1px}.meter>div{height:100%;background:#b4df73;transition:width .15s}.energy-hud.low{border-color:#efad7f}.energy-hud.low strong{color:#ffbf8c}.energy-hud.low .meter>div{background:#eea267}.bag-button{display:flex;align-items:center;gap:13px;font-size:16px;background:#344a36;border:1px solid #a1a270;box-shadow:0 3px 0 #1d3020}.bag-button b{font:14px monospace;color:#e4dba9}.bag-button kbd{margin-left:3px}.wallet{font:16px monospace;color:var(--gold)}kbd{font:12px monospace;border:1px solid #64755d;background:#344c3c;padding:2px 5px;border-radius:3px}.scene{width:min(100%,calc((100dvh - 230px)*1.6));min-width:min(100%,580px);margin:auto}.map-frame{border:3px solid #8f8a60;border-radius:6px;overflow:hidden;box-shadow:0 5px 0 #0b1717,0 0 0 1px #1b2c25}.map-title{background:#263a31;border-bottom:2px solid #6a7653;display:flex;justify-content:space-between;padding:10px 14px;gap:12px;font-size:14px}.map-title>span:first-child{color:var(--gold);font-weight:800}.map-title>span:last-child{color:#afc1a8;font-size:12px}.canvas-wrap{position:relative;background:#425b34}canvas{display:block;width:100%;height:auto;image-rendering:pixelated;touch-action:manipulation;cursor:crosshair}#loading-art{position:absolute;inset:0;display:grid;place-items:center;background:#263d32;color:#e7dcae}.dialogue{padding:13px 3px 4px;min-height:53px}.dialogue p{margin:0;color:#c7d6bf;font-size:14px;line-height:1.6}.dialogue.error p{color:#ffc2a6}.under-map{display:flex;align-items:center;gap:18px;margin-top:8px}.movement{display:flex;flex-direction:column;align-items:center;gap:3px}.movement div{display:flex;gap:3px}.movement button{width:34px;height:29px;padding:0;background:#263c32;color:#d0ddc9}.action-buttons{display:flex;gap:9px;flex-wrap:wrap}.action-buttons button{font-size:14px}.controls-note{font-size:12px;color:#93aa98;margin-left:auto;line-height:1.9}.sprite{display:inline-block;width:40px;height:40px;background-image:url('assets/chemistry-atlas.webp');background-size:400% 400%;image-rendering:pixelated;flex-shrink:0}h2,h3,p{margin:0}h2{font-size:20px}h3{font-size:16px}p{line-height:1.7}.overline{font-size:11px;letter-spacing:2px;font-weight:800;color:var(--gold);margin:0 0 6px}.small{font-size:13px;line-height:1.7;margin-top:8px}.muted{color:var(--muted)}.empty-bag{text-align:center;padding:35px 15px;color:#bbcdb5}.bag-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.bag-item{display:flex;align-items:center;gap:12px;padding:15px;background:#162d24;border:1px solid #526b4f}.bag-item b{display:block;color:#f0dfb0;font-size:16px}.bag-item small{display:block;font-size:12px;margin-top:4px;color:#a7bd9c}.bag-item strong{margin-left:auto;font:20px monospace;color:var(--mint)}.bag-caption{margin:0 0 17px;font-size:14px;color:#bfd0b5}.bag-subtitle{margin:22px 0 12px;color:var(--gold)}.inspection-visual{display:flex;align-items:center;justify-content:center;padding:24px;background:#183027;border:1px solid #536b4c;margin-bottom:19px}.inspection-visual .sprite{width:85px;height:85px}.inspection-visual span{font:32px monospace;color:#e7d3a4;margin-left:20px}.inspection-question{font-size:17px;line-height:1.8}.answer-list{display:grid;gap:9px;margin:20px 0}.answer-list button{text-align:left;padding:14px 17px}.answer-result{font-size:14px;line-height:1.7;color:#f2cb9b;min-height:25px}.discovery{text-align:center;padding:15px 5px}.discovery .sprite{width:110px;height:110px}.discovery h3{font-size:26px;color:var(--gold);margin:15px 0 9px}.discovery p{font-size:16px}.discovery button{margin-top:22px}.prep-intro{font-size:14px;color:#b9cdb2;margin-bottom:20px}.prep-row{border:1px solid #5b7150;background:#182e24;padding:17px;margin:12px 0}.prep-row>div{display:flex;align-items:center;gap:13px}.prep-row .name{flex:1}.prep-row strong{font-size:17px;color:#f0deab}.prep-row small{display:block;font-size:13px;margin-top:6px;color:#b7cdb0}.prep-row .equation{font-size:14px;text-align:left;margin-top:13px;color:#a2cfae}.prep-row button{font-size:13px}.prep-bottom{border-top:1px solid #526847;margin-top:22px;padding-top:15px;display:flex;align-items:center;justify-content:space-between;gap:15px}.prep-bottom p{font-size:12px;color:#aebfa5}.phase-chip{font:12px monospace;color:#a8dce2}.prep-feedback{padding:12px;background:#2e4837;color:#dfddb0;font-size:14px;min-height:47px;line-height:1.6}.current-customer{padding:13px 0 5px;color:#e5d1a0;font-size:14px}
dialog{width:min(740px,calc(100% - 28px));max-height:90dvh;overflow:auto;background:#20372f;color:#e6eddf;border:3px solid #a2a374;border-radius:8px;padding:25px;box-shadow:0 10px 70px #07130dd9}dialog::backdrop{background:#071611c9;backdrop-filter:blur(3px)}.bench-heading{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #546c53;padding-bottom:17px;margin-bottom:20px}.bench-heading h2{font-size:25px}.bench-heading .overline{font-size:10px}.customer-request{display:flex;align-items:center;gap:15px;background:#2c4637;border:1px solid #5f7755;padding:14px;margin-bottom:19px}.customer-request .sprite{width:47px;height:57px}.customer-request p{font-size:15px}.customer-request small{font-size:12px;color:#bed1b2}.bench-note{font-size:12px;color:#b2c6ac;margin:10px 0 17px}.experiment{padding:20px;background:#142b24;border:1px solid #506c53;border-radius:5px}.particles{min-height:105px;display:flex;gap:7px;flex-wrap:wrap;align-content:flex-start;padding:13px;background:#1e3d36;border:1px solid #537a66}.particle{min-width:34px;height:34px;padding:0 5px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;font:700 12px monospace;background:#edb596;color:#302117}.particle.oh{background:#9bd2eb;color:#133245}.particle.spectator{background:transparent;border:1px dashed #9ab7aa;color:#b3c9ba}.water-count{padding:7px 10px;background:#31534a;color:#b5e7de;font-size:12px;margin-top:10px}.reaction-stats{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:14px;margin-top:15px}.reaction-stats b{color:#f0d59b}.button-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:19px}.button-row button{flex:1;min-width:100px;font-size:14px}.bench-feedback{font-size:14px;line-height:1.7;color:#e6dba9;min-height:26px;margin-top:17px}.bench-feedback.error{color:#ffc5ae}.equation{font:16px monospace;color:#b4e5ad;text-align:center;line-height:1.8;margin:15px 0 0}.electron-tray{display:flex;justify-content:center;align-items:center;gap:24px;min-height:155px}.donor,.acceptor{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-width:108px;min-height:122px;border:2px solid #92b8a1;background:#24443a;padding:15px}.donor strong,.acceptor strong{font:700 26px monospace}.donor small,.acceptor small{font-size:12px;color:#c3d6bd}.acceptor{border-color:#c6b381}.acceptor.selected{outline:3px solid #dced9a;outline-offset:3px;background:#4a6240}.acceptors{display:flex;gap:14px;flex-wrap:wrap}.transfer-arrow{font-size:29px;color:#a3c3a6}.electrons{font:15px monospace;letter-spacing:2px;color:#eee18a}.legend-text{font-size:12px;color:#9cb7a4;margin-top:10px;line-height:1.8}.summary{text-align:center}.summary .large-coin{width:75px;height:75px}.summary h3{font-size:23px;margin:13px 0}.receipt{max-width:380px;margin:20px auto;background:#30493a;border:1px solid #829567;padding:20px}.receipt div{display:flex;justify-content:space-between;font-size:14px;margin:10px 0}.receipt .total{border-top:1px dashed #91a173;padding-top:15px;color:#f2d492;font-size:19px;font-weight:800}.review-question{padding:17px;text-align:left;background:#142b24;border:1px solid #546e50;margin:15px 0}.review-question p{font-size:14px}.review-question .button-row{margin-top:10px}.review-question button{font-size:12px}.review-answer{margin-top:10px;color:var(--mint)}#restart-dialog{max-width:400px}#restart-dialog p{margin-top:14px;font-size:14px}body.modal-open{overflow:hidden}[hidden]{display:none!important}

@media(max-width:800px){.app{padding:12px}.brand h1{font-size:17px}.brand span{font-size:11px}header{gap:10px;flex-wrap:wrap;padding-bottom:12px}.energy-hud{min-width:150px;padding:8px 11px}.energy-hud strong{font-size:21px}.bag-button{padding:10px;font-size:14px;gap:8px}.scene{width:100%;min-width:0}.map-title{font-size:13px}.map-title>span:last-child{font-size:11px}.controls-note{display:none}.under-map{justify-content:center;gap:14px}.dialogue p{font-size:13px}.movement button{width:37px;height:31px}.action-buttons{max-width:230px}.bag-list{grid-template-columns:1fr}.prep-row>div{flex-wrap:wrap}.prep-row button{margin-left:auto}.prep-row .equation{font-size:12px}dialog{padding:18px}.bench-heading h2{font-size:21px}.electron-tray{gap:10px}.donor,.acceptor{min-width:85px;padding:10px}.acceptors{gap:9px}.donor strong,.acceptor strong{font-size:23px}.experiment{padding:13px}.button-row button{padding:11px 9px}.bench-note{font-size:12px}}
@media(max-width:460px){.brand{width:100%;display:flex;align-items:center;justify-content:space-between;margin:0 0 4px}.brand h1{margin:0}.energy-hud{flex:1;min-width:140px}.bag-button{height:55px}header{gap:8px}.scene{width:100%}.map-title>span:last-child{max-width:57%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dialogue{min-height:64px}.inspection-question{font-size:16px}.action-buttons button{font-size:13px;padding:11px}.prep-bottom{align-items:flex-start;flex-direction:column}.wallet{font-size:12px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
/* Front-facing shop */
#shop-scene{border:2px solid #79638e;border-radius:7px;overflow:hidden;box-shadow:0 12px 50px #080d1a99}.shop-stage{position:relative;aspect-ratio:16/10;background:#0c1224;isolation:isolate;overflow:hidden}.shop-background,.counter-mask{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.shop-background{z-index:-1}.counter-mask{z-index:3;clip-path:inset(80% 0 0 0);pointer-events:none}.shop-sign{position:absolute;top:4%;left:50%;transform:translateX(-50%);text-align:center;white-space:nowrap;z-index:4;background:#14172dd9;border:1px solid #b675db;padding:8px 25px;border-radius:8px;box-shadow:0 0 18px #c15bc04a}.shop-sign span{font:10px monospace;letter-spacing:3px;color:#99eaff}.shop-sign h2{font-size:clamp(17px,2.7vw,27px);color:#edb7ff;text-shadow:0 0 12px #c47fef;margin-top:3px}.shop-guest{position:absolute;left:42%;top:22%;width:32%;height:66%;border:0;background-color:transparent;background-size:300% 100%;background-repeat:no-repeat;z-index:2;filter:drop-shadow(0 0 16px #a26ac033);animation:customer-arrive .55s ease-out}.shop-guest:hover:not(:disabled){background-color:transparent;filter:drop-shadow(0 0 18px #a4ddfa77)}.shop-guest:active:not(:disabled){transform:none}.guest-dialogue{position:absolute;top:30%;left:4%;width:30%;padding:17px;background:#161c32ee;border:1px solid #797394;border-radius:8px;color:#e6e4f5;z-index:4;box-shadow:0 6px 16px #06091577}.guest-dialogue span{font-size:11px;color:#cba7e5}.guest-dialogue h3{font-size:18px;margin:6px 0 10px;color:#f1d8fc}.guest-dialogue p{font-size:15px;line-height:1.8}.shop-prep,.shop-order{position:absolute;z-index:4;bottom:6%;padding:13px 18px;box-shadow:0 4px 0 #080d1c}.shop-prep{left:5%;border-color:#6caec1;background:#162f42;color:#caeef6;text-align:left}.shop-prep small{display:block;font-size:11px;color:#91c6d2}.shop-prep strong{font-size:17px}.shop-order{right:7%;min-width:135px;background:#bdacf0;border-color:#e4cdff;color:#242039}.shop-tools{display:flex;align-items:center;gap:15px;padding:13px;background:#1b2134;color:#c9bfd8}.shop-tools>span{font-size:12px;flex:1}.shop-tools button{font-size:13px;background:#30304b;border-color:#66607b}.shop-empty{position:absolute;left:50%;top:45%;transform:translate(-50%,-50%);font-size:22px;color:#ece0f9;text-align:center;background:#14192ed9;padding:24px;width:70%;z-index:5}.inspection-energy{display:flex;justify-content:space-between;padding:10px 13px;border:1px solid #c4816c;background:#442a28;color:#ffd4a9;margin-bottom:17px;font-size:15px}.inspection-energy strong{font:800 23px monospace}.penalty-flash{animation:penalty-flash .4s ease-out}#exhaustion-dialog{max-width:530px;text-align:center;padding:48px 25px;border-color:#deaa87;background:#201f2b}#exhaustion-dialog span{font:12px monospace;letter-spacing:3px;color:#dfb59b}#exhaustion-dialog h2{font-size:33px;color:#ffe1c4;margin:19px 0}#exhaustion-dialog p{font-size:16px;color:#cac0c3;line-height:1.9}@keyframes customer-arrive{from{opacity:0;translate:25px 0}to{opacity:1;translate:0 0}}@keyframes penalty-flash{50%{background:#913e39}}
@media(max-width:680px){.guest-dialogue{padding:10px;left:3%;top:29%;width:34%}.guest-dialogue h3{font-size:14px;margin:3px 0 5px}.guest-dialogue p{font-size:12px;line-height:1.6}.guest-dialogue span{font-size:10px}.shop-sign{padding:6px 14px}.shop-sign span{font-size:8px}.shop-guest{left:43%;width:35%}.shop-prep,.shop-order{padding:9px 11px;bottom:5%}.shop-prep strong{font-size:13px}.shop-prep small{font-size:10px}.shop-order{font-size:13px;min-width:100px}.shop-tools{gap:8px;flex-wrap:wrap}.shop-tools>span{font-size:11px;min-width:110px}.shop-tools button{padding:9px;font-size:12px}.shop-empty{font-size:16px;padding:16px}}@media(prefers-reduced-motion:reduce){.shop-guest,.penalty-flash{animation:none}}

.equipment-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0}.equipment-card{text-align:left;border:1px solid #647666;background:#24372d;padding:16px;border-radius:7px;display:flex;flex-direction:column}.equipment-card h4{margin:8px 0;color:#e6d5ac;font-size:18px}.equipment-card p{font-size:13px;line-height:1.7;flex:1}.equipment-card button{width:100%;font-size:14px}.equipment-icon{font-size:30px}@media(max-width:420px){.equipment-grid{grid-template-columns:1fr}}

.gentle-lesson{text-align:center}.gentle-bottle{padding:24px;margin:15px 0;background:#20372f;border:2px solid #829a83;border-radius:12px;font-size:22px}.gentle-bottle p{font-size:19px}.gentle-stage{color:#edd8a0;font-weight:bold}.gentle-memory{background:#354c3f;padding:12px;font-size:14px}.sample-cups{display:flex;justify-content:center;gap:12px}.sample-cup{padding:25px 15px 12px;border:3px solid #b6d6d6;border-top:0;background:linear-gradient(transparent 25%,#dc9e8555 25%);font-size:16px}.gentle-reaction{color:#b7e6c6;font-size:20px;padding:10px}.gentle-lesson .button-row{justify-content:center}

.immersive-lab{text-align:center}.lab-animation{position:relative;display:flex;justify-content:center;align-items:center;gap:50px;min-height:245px;animation:lab-enter .4s ease-out}.lab-bottle{position:relative;width:210px;height:205px;border:5px solid #afd6d8;border-top:12px solid #738f91;border-radius:20px 20px 35px 35px;background:#192c30;overflow:hidden;box-shadow:inset 7px 0 #ffffff15}.lab-liquid{position:absolute;inset:40px 0 0;background:#86c9d52c;animation:liquid-sway 3s ease-in-out infinite alternate}.floating-ion{position:absolute;left:calc(18px + mod(var(--i), 4)*42px);top:calc(48px + var(--i)*13px);color:#ffe0ab;font:bold 18px monospace;animation:ion-float calc(3s + var(--i)*.2s) ease-in-out infinite alternate;animation-delay:calc(var(--i)*-.7s)}.floating-ion:nth-of-type(even){left:120px;color:#b5dbdd}.floating-ion:nth-of-type(3n){left:70px}.bottle-volume{position:absolute;bottom:10px;left:0;right:0;font-size:13px;background:#142729ba;padding:5px}.btb-station{display:grid;justify-items:center;gap:10px}.btb-tube{width:44px;height:120px;border:4px solid #c7e3e3;border-top:9px solid #7c999d;border-radius:4px 4px 22px 22px;box-shadow:inset 7px 0 #ffffff44;animation:btb-reveal .65s ease-out}.yellow{background:#f3d354}.green{background:#55b96b}.blue{background:#478ddd}.btb-swatches{display:flex;gap:5px}.btb-swatches i{width:12px;height:12px;border-radius:50%}.reagent-shelf{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:20px 0}.reagent-bottle{display:grid;justify-items:center;gap:6px;min-width:100px}.reagent-bottle .sprite{width:45px;height:45px}.reagent-bottle small{font-size:11px}.reagent-bottle.selected{outline:3px solid #dfc586;transform:translateY(-4px)}.dose-readout{padding:14px;font-size:17px}.dose-readout b{margin-left:20px;font:26px monospace;color:#edd398}.test-record{padding:12px;background:#314c40;font-size:14px}.record-green{display:inline-block;width:12px;height:12px;background:#55b96b;border-radius:50%}.pour-stream{display:none;position:absolute;width:5px;height:100px;background:#bce8f5;top:-5px;left:calc(50% - 70px);transform-origin:top}.pouring .pour-stream{display:block;animation:stream .55s both}.pouring .lab-liquid{animation:liquid-sway .25s 3 alternate}.inspect .floating-ion{animation:ion-reveal .5s,ion-float 3s ease-in-out infinite alternate}.rewind{animation:lab-enter .4s reverse}.shake{animation:lab-shake .3s}.delivery-animation{padding:70px;text-align:center;font-size:35px;color:#cce9b7;animation:lab-enter .6s}.delivery-animation p{font-size:22px}.immersive-lab button{transition:transform .18s,background .18s}.immersive-lab button:active{transform:scale(.94)}@keyframes ion-float{from{transform:translate(-9px,-12px) rotate(-8deg)}to{transform:translate(12px,10px) rotate(8deg)}}@keyframes liquid-sway{from{transform:skewY(-3deg)}to{transform:skewY(3deg)}}@keyframes lab-enter{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes ion-reveal{from{opacity:0;filter:blur(5px)}to{opacity:1;filter:blur(0)}}@keyframes btb-reveal{from{filter:saturate(.1)}to{filter:saturate(1)}}@keyframes stream{0%{transform:scaleY(0);opacity:0}30%{transform:scaleY(1);opacity:1}100%{transform:scaleY(1);opacity:0}}@keyframes lab-shake{25%{transform:translateX(-8px)}75%{transform:translateX(8px)}}@media(max-width:480px){.lab-animation{gap:22px}.lab-bottle{width:180px}.reagent-bottle{min-width:85px;padding:9px}}@media(prefers-reduced-motion:reduce){.lab-animation,.lab-liquid,.floating-ion,.btb-tube,.pouring .lab-liquid,.inspect .floating-ion,.delivery-animation{animation:none!important}.pour-stream{display:none!important}}
/* Pixel workshop and forge */
:root{--mint:#c4d6a3;--gold:#e3b97c;--border:#73664d}body{background:#141e20;font-family:'Malgun Gothic',monospace}button{border-width:2px;box-shadow:3px 3px 0 #101817;transition:transform .1s steps(2),background .1s}.app{max-width:1200px}.shop-stage{aspect-ratio:3/2;border:4px solid #aa865b;box-shadow:5px 5px #0b1216}.shop-background,.counter-mask,.shop-guest{image-rendering:pixelated}.shop-sign{left:4%;top:4%;transform:none;border-radius:0;border:2px solid #ae9268;background:#182327;box-shadow:4px 4px #111b20}.shop-sign h2{font-size:18px;text-shadow:none;color:#e7cea0}.shop-sign span{font-size:9px;color:#a7c3b2}.shop-guest{left:4%;top:15%;width:43%;height:68%;filter:none;animation:customer-arrive .4s steps(6)}.shop-guest:hover:not(:disabled){filter:brightness(1.1)}.guest-dialogue{left:auto;right:4%;top:26%;width:46%;border:3px solid #d0b687;border-radius:0;background:#18262dee;box-shadow:5px 5px #11191d;padding:20px}.guest-dialogue h3{color:#e3c999}.guest-dialogue p{font-size:17px;line-height:1.8}.counter-mask{clip-path:inset(80% 0 0);pointer-events:none}.shop-order{right:6%;bottom:7%;background:#c3dca5;border:2px solid #e1e8bd}.shop-prep{left:4%;bottom:6%;padding:10px 13px}.shop-forge{position:absolute;left:25%;bottom:6%;z-index:4;padding:16px 14px;background:#643e28;border-color:#d9a46c}.shop-tools{background:#202d2b;border:2px solid #665b47}.lab-bottle,.btb-tube{border-radius:0;box-shadow:6px 5px #122225}.lab-bottle{clip-path:polygon(10% 0,90% 0,90% 10%,100% 10%,100% 90%,90% 90%,90% 100%,10% 100%,10% 90%,0 90%,0 10%,10% 10%)}.floating-ion{border:1px solid #9fc3be;background:#142e35;padding:4px;animation-timing-function:steps(12)}.forge-room{display:flex;justify-content:center;align-items:center;gap:35px;padding:24px;background:#172423;border:3px solid #69523e}.pixel-furnace{position:relative;flex-shrink:0;width:110px;height:115px;background:repeating-linear-gradient(0deg,#655445 0 18px,#342b27 18px 21px);border:5px solid #94704f;box-shadow:5px 5px #102023}.pixel-furnace:before{content:'';position:absolute;width:45px;height:32px;left:25px;top:-35px;background:#716253;border:4px solid #9d8567}.forge-fire{position:absolute;inset:35px 17px 12px;background:#221c1b;border:5px solid #211b19}.hot .forge-fire,.pixel-furnace.hot .forge-fire{background:#ef793a;box-shadow:inset 0 -20px #efbd56,0 0 25px #ee873266;animation:forge-flicker .25s steps(2) 8 alternate}.forge-recipes{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:20px}.forge-recipes article{border:2px solid #8b7355;padding:18px;background:#25342c}.forge-recipes p{font-size:14px}.forge-equation{font-size:23px;text-align:center;color:#ecd19e;margin:20px 0}.forge-step{font-size:15px;color:#aacebb}.drag-tray{display:flex;gap:20px;justify-content:center;padding:15px;min-height:80px}.drag-token{cursor:grab;background:#d1bd8b;color:#202a29;border:3px solid #f0dcaa;touch-action:none;user-select:none}.drag-token:active{cursor:grabbing}.drag-token.picked{outline:3px solid #9edbe3;transform:translateY(-5px)}.drop-grid{display:flex;gap:18px;justify-content:center;align-items:center}.drop-column{flex:1;text-align:center}.drop-column h3{font-size:18px;color:#e5c995}.drop-slot{width:100%;min-height:85px;border:3px dashed #a3966b;background:#132826;color:#d8e3c0}.drop-slot:hover{border-color:#e9cd8f}.electron-arrow{color:#c1e6e8;font-size:23px}.smelting-puzzle{text-align:center}.smelting-puzzle .button-row{justify-content:center}.smelt-success{text-align:center;padding:35px}.smelt-success .pixel-furnace{margin:30px auto}.oxygen-flight{color:#e5bb7b;animation:oxygen-transfer 1s steps(8) both}.ingot{display:inline-grid;place-items:center;min-width:95px;height:50px;margin:20px;border:5px solid #825639;background:#db975c;color:#402b21;font:bold 24px monospace;clip-path:polygon(15% 0,85% 0,100% 100%,0 100%);box-shadow:inset 0 -10px #af7043}.ingot.ironMetal{background:#aebdc4;color:#2b3841;border-color:#6d828c;box-shadow:inset 0 -10px #7f949e}.smelt-success .ingot{animation:ingot-arrive 1.3s steps(8) both}.metal-delivery{text-align:center;padding:25px}.metal-delivery p{font-size:18px;line-height:1.8}@keyframes forge-flicker{to{filter:brightness(1.5);transform:scaleY(.92)}}@keyframes oxygen-transfer{from{opacity:0;transform:translateX(-80px)}to{opacity:1;transform:translateX(45px)}}@keyframes ingot-arrive{0%,60%{opacity:0;transform:translateY(-15px)}100%{opacity:1;transform:none}}@media(max-width:680px){.guest-dialogue{padding:10px;top:24%;width:47%}.guest-dialogue p{font-size:13px}.guest-dialogue h3{font-size:15px}.shop-prep{padding:8px;bottom:4%}.shop-forge{left:29%;padding:12px 8px;font-size:11px;bottom:4%}.shop-order{bottom:4%;font-size:12px;padding:12px}.shop-sign h2{font-size:13px}.shop-sign span{font-size:8px}.forge-room{gap:16px;padding:20px 10px}.forge-recipes{grid-template-columns:1fr}.forge-equation{font-size:18px}.drag-token{padding:12px 8px;font-size:13px}.electron-arrow{font-size:16px}.drop-grid{gap:8px}.drop-column h3{font-size:14px}}@media(prefers-reduced-motion:reduce){.shop-guest,.forge-fire,.oxygen-flight,.smelt-success .ingot{animation:none!important}}
/* Keep each 1:2 portrait cell undistorted behind the counter. */
.shop-guest{left:6%;top:0;width:34%;height:auto;aspect-ratio:1/2}.counter-mask{clip-path:inset(70% 0 0)}
@media(max-width:680px){.shop-guest{left:4%;top:1%;width:36%;height:auto}}

.shop-guest,.shop-guest:hover:not(:disabled),.shop-guest:active:not(:disabled){background:transparent!important;border:0;box-shadow:none;filter:none;transform:none}.shop-guest{aspect-ratio:2/3;width:39%;left:4%;height:76%;top:3%}.shop-guest img{display:block;width:100%;height:100%;object-fit:contain;object-position:center bottom;image-rendering:pixelated;pointer-events:none}.shop-guest:hover img{filter:brightness(1.08)}#name-dialog{max-width:510px;padding:35px}#workshop-name{display:block;width:100%;margin:15px 0;padding:14px;background:#152926;border:2px solid #be9d65;color:#f0dfb4;font:18px inherit}#name-error{color:#e9a184}.timing-game{text-align:center;padding:20px}.timing-game .pixel-furnace{margin:40px auto 20px}.timing-track{position:relative;height:42px;margin:24px 0;background:#15252a;border:3px solid #957754;overflow:hidden}.timing-zone{position:absolute;left:42%;width:16%;height:100%;background:#d7b651;box-shadow:0 0 12px #edd37c}.timing-marker{position:absolute;left:0;top:0;height:100%;width:4px;background:white;box-shadow:0 0 8px #fff;animation:forge-sweep 1600ms linear infinite alternate}.perfect{background:#494222;border:3px solid #e1c775}.perfect .ingot{filter:brightness(1.3);box-shadow:0 0 25px #f7dd75}.bag-item strong small{display:block;font-size:10px;color:#e2c270}.map-frame{background:#112630}@keyframes forge-sweep{from{left:0}to{left:100%}}@media(prefers-reduced-motion:reduce){.timing-marker{animation:forge-sweep 3200ms linear infinite alternate}}

/* Muted timber and slate workshop palette; indicator colors remain functional. */
:root{--mint:#b7c5b3;--gold:#c8b38b;--border:#5e625c;--muted:#a4aaa0;color:#e0ddd2;background:#1b2426}body{background:radial-gradient(ellipse at top,#35413e,transparent 70%),#1b2426}.primary{background:#b1bba4;color:#232e29;border-color:#cad0bd;box-shadow:0 3px 0 #59675b}.primary:hover:not(:disabled){background:#c5cbb8}.secondary,button,.bag-button,.energy-hud,.map-title{background:#34413d;border-color:#6b7064}button:hover:not(:disabled){background:#4a5850}.meter>div{background:#a4b495}.energy-hud strong{color:#d4ddc6}.map-frame,dialog{border-color:#8a806c}dialog{background:#293330}.prep-row,.bag-item,.equipment-card,.receipt,.inspection-visual,.prep-feedback{background:#303c35;border-color:#60695b}.shop-tools{background:#222c2b}.shop-background,.counter-mask{filter:saturate(.55)}.sprite{filter:saturate(.65)}.brand h1{color:#d9ceb5}.guest-dialogue{background:#202a29ed;border-color:#8a806c}.canvas-wrap{background:#203c43}

/* Illustrated glass frame preserves the live assay layer beneath it. */
.lab-bottle{width:250px;height:265px;border:0;background:transparent;box-shadow:none;clip-path:none;overflow:visible}.lab-bottle:after{content:'';position:absolute;inset:0;background:var(--prop-bottle) center/100% 100% no-repeat;pointer-events:none;z-index:3;image-rendering:pixelated}.lab-liquid{inset:85px 48px 40px;clip-path:polygon(12% 0,88% 0,100% 15%,100% 90%,90% 100%,10% 100%,0 90%,0 15%)}.floating-ion{left:55px!important;top:calc(100px + var(--i)*11px);font-size:12px;z-index:2}.floating-ion:nth-of-type(even){left:130px!important}.bottle-volume{bottom:-18px;z-index:4}.lab-animation{min-height:310px}.pixel-furnace{width:150px;height:165px;background:var(--prop-furnace) center/contain no-repeat;border:0;box-shadow:none}.pixel-furnace:before{display:none}.forge-fire{opacity:.3}.btb-tube{border:0;border-radius:0;box-shadow:none;position:relative;clip-path:polygon(35% 0,65% 0,65% 22%,88% 35%,88% 95%,12% 95%,12% 35%,35% 22%)}.btb-tube:after{content:'';position:absolute;inset:0;background:var(--prop-bottle) center/100% 100% no-repeat;pointer-events:none}.reagent-bottle{background-image:linear-gradient(#34413dd9,#34413dd9),var(--prop-bottle);background-position:center;background-size:contain;background-repeat:no-repeat}.canvas-wrap canvas{filter:saturate(.88)}
/* Brief failure feedback stays in the active dialog's top layer. */
.fail-a,.fail-b{position:relative}
.fail-a::after,.fail-b::after{content:'';position:absolute;inset:0;pointer-events:none;z-index:90;opacity:0;border:3px solid #ca785f;background:radial-gradient(ellipse,transparent 40%,#a94c3d55);animation:failure-flash-a .48s ease-out}
.fail-b::after{animation-name:failure-flash-b}
.fail-a::before,.fail-b::before{content:'';position:absolute;left:50%;top:45%;width:5px;height:5px;background:#edb78b;box-shadow:-22px -12px #cf795e,24px -18px #edb78b,-33px 14px #d79770,32px 18px #bd6556,4px -27px #e0a179;pointer-events:none;z-index:91;opacity:0;animation:failure-sparks-a .5s ease-out}
.fail-b::before{animation-name:failure-sparks-b}
@keyframes failure-flash-a{0%{opacity:.8}100%{opacity:0}}
@keyframes failure-flash-b{0%{opacity:.8}100%{opacity:0}}
@keyframes failure-sparks-a{0%{opacity:1;transform:scale(.4)}100%{opacity:0;transform:translateY(24px) scale(2)}}
@keyframes failure-sparks-b{0%{opacity:1;transform:scale(.4)}100%{opacity:0;transform:translateY(24px) scale(2)}}
@media(prefers-reduced-motion:reduce){.fail-a::before,.fail-b::before{display:none}.fail-a::after,.fail-b::after{animation-duration:.25s;background:transparent}}

.character-picker{display:flex;gap:16px;margin:18px 0}.character-picker button{flex:1;display:grid;justify-items:center;gap:8px;border:2px solid #596354;background:#26342e}.character-picker button[aria-pressed="true"]{border-color:#dac38c;background:#43513e}.character-preview{display:block;width:72px;height:90px;background-image:var(--prop-walk);background-size:400% 400%;background-position:0 0;background-repeat:no-repeat;image-rendering:pixelated}.character-preview.female{background-image:var(--prop-walk-female)}

.item-art{display:inline-block;width:64px;height:64px;flex-shrink:0;background-image:var(--prop-items);background-size:500% 400%;background-repeat:no-repeat;image-rendering:pixelated}.ingot{background-image:var(--prop-items)!important;background-size:500% 400%!important;border:0!important;box-shadow:none!important;clip-path:none!important;background-color:transparent!important;width:90px;height:80px;padding-top:65px;box-sizing:content-box}.ingot.copperMetal{background-position:0% 66.666%}.ingot.ironMetal{background-position:25% 66.666%}.ingot.tinMetal{background-position:50% 66.666%}.ingot.zincMetal{background-position:75% 66.666%}

#name-dialog{width:min(760px,94vw);max-width:760px;max-height:94dvh;padding:26px 32px;overflow:auto}#name-dialog h2{font-size:25px}#workshop-name{margin:8px 0 14px;padding:10px}.character-picker{gap:20px;margin:16px 0}.character-picker button{min-width:0;padding:8px 12px 12px;gap:4px;background:radial-gradient(ellipse at 50% 65%,#56614a55,transparent 70%),#26342e;overflow:hidden;transition:border-color .15s,background-color .15s}.hero-illustration{display:block;width:100%;height:clamp(190px,40vh,340px);object-fit:contain;object-position:center bottom;pointer-events:none}.chosen-mark{height:18px;font-size:12px;color:#e5cf95;visibility:hidden}.character-picker button[aria-pressed="true"] .chosen-mark{visibility:visible}.character-picker button[aria-pressed="true"]{box-shadow:inset 0 0 0 1px #dac38c;background-color:#43513e}#name-start{width:100%}@media(max-width:520px){#name-dialog{padding:20px 16px}.character-picker{gap:10px}.character-picker button{padding:6px}.hero-illustration{height:230px}#name-dialog h2{font-size:20px}}

.angry-dialogue{border-color:#ca846c!important;color:#ffe0c5!important}.shop-guest.guest-leaving{animation:angry-exit .65s ease-in forwards!important;pointer-events:none}@keyframes angry-exit{0%{opacity:1;translate:0 0}100%{opacity:1;translate:-125% 0}}@media(prefers-reduced-motion:reduce){.shop-guest.guest-leaving{animation:none!important;opacity:1;translate:-125% 0}}

.shop-guest:disabled{opacity:1;cursor:default}
button{border:2px solid #99805a;border-radius:4px;color:#efe0bc;background:linear-gradient(100deg,#ffffff06,transparent 45%),repeating-linear-gradient(0deg,#543f2b 0 3px,#59442e 3px 6px);box-shadow:inset 0 1px #d1b58466,inset 0 -3px #231c17aa,0 3px 0 #171b16;text-shadow:0 1px #1d1712;transition:filter .12s,box-shadow .12s}button:hover:not(:disabled){background-color:#695335;filter:brightness(1.1)}button:active:not(:disabled){translate:none;box-shadow:inset 0 2px 5px #17130fb0,0 1px 0 #171b16}.primary{background:linear-gradient(#a28b59,#7c693f);border-color:#cfb87e;color:#fff0c6}.secondary,.text-button{background:linear-gradient(#414b3b,#303b30);border-color:#827a5e;color:#eadcbb}.shop-guest,.shop-guest:disabled{box-shadow:none;translate:none}.shop-guest img,.shop-background,.counter-mask,.hero-illustration,.canvas-wrap canvas{image-rendering:auto}.canvas-wrap{max-width:1280px;margin:auto}.glass-art{display:inline-block;width:64px;height:64px;background:var(--prop-glasscraft) left center/200% 100% no-repeat}.glass-art.glass{background-position:right center}.ingot.glass{background-image:var(--prop-glasscraft)!important;background-size:200% 100%!important;background-position:right center}.glass-note{color:#d8c99d;text-align:center}.character-picker button{ text-shadow:none }@media(prefers-reduced-motion:reduce){button{transition:none}button:active:not(:disabled){translate:none}}
/* Reagent crystals and the displacement workbench share the workshop palette. */
.salt-icon{display:inline-grid;place-items:center;width:48px;height:48px;border:2px solid #827252;border-radius:8px 8px 16px 16px;background:linear-gradient(90deg,#213c3b,#466c70,#253e3d);box-shadow:inset 0 0 0 3px #182a2966;vertical-align:middle;color:#7bbbc7;font-size:27px}.salt-icon.zincSulfate{color:#c7d8cb;background:linear-gradient(90deg,#35453d,#697c6b,#35453d)}
.precip-lab{display:flex;align-items:center;justify-content:center;gap:30px;padding:20px;background:#162821;border:1px solid #6e6145;border-radius:8px}.precip-lab select{background:#2d392d;color:#e4d5ac;padding:8px;border:1px solid #8a7850;margin:6px}.precip-vessel{position:relative;width:125px;height:155px;border:5px solid #b3b29a;border-top:2px solid #c8c5ab;border-radius:4px 4px 26px 26px;overflow:hidden;flex-shrink:0}.precip-blue{position:absolute;inset:30px 0 0;background:#408ea9b0;transition:background 2s}.zinc-strip{position:absolute;left:30px;top:12px;width:24px;height:110px;background:linear-gradient(90deg,#6f8987,#becbc1,#78918b);color:#25342d;writing-mode:vertical-rl;text-align:center;transition:height 2s}.precip-vessel b{position:absolute;right:5px;bottom:35px;color:#d1e6d9;animation:ion-drift 3s ease-in-out infinite alternate}.copper-deposit{position:absolute;left:20px;right:20px;bottom:4px;height:18px;background:repeating-linear-gradient(135deg,#a9613d 0 4px,#d69a69 4px 7px);opacity:0;transform:translateY(20px);transition:opacity 1s,transform 2s}.reacted .precip-blue{background:#a6c7c12b}.reacted .zinc-strip,.reacted-partial .zinc-strip{height:28px}.reacted .copper-deposit,.reacted-partial .copper-deposit{opacity:1;transform:translateY(0)}.reacted b{opacity:0}.precip-cards,.precip-flow{display:flex;gap:12px;justify-content:center;align-items:center;margin:16px 0}.precip-flow button{min-width:115px;border-style:dashed}.precip-cards button{cursor:grab}#precip-feedback{min-height:45px;color:#dbc692}.prep-intro button{margin:6px}.precip-lab .small{max-width:260px}@keyframes ion-drift{to{transform:translate(-5px,-10px)}}@media(prefers-reduced-motion:reduce){.precip-vessel *{animation:none!important;transition:none!important}}

.reacted .zinc-strip,.reacted-partial .zinc-strip{height:var(--zinc-left,0px);overflow:hidden}
.harvest-effect{position:absolute;width:0;height:0;z-index:1000;pointer-events:none;--harvest-color:#abbf78;--harvest-light:#dce7a2}.harvest-water{--harvest-color:#79b8cd;--harvest-light:#d9f1ed}.harvest-wood{--harvest-color:#a88a5b;--harvest-light:#bdd087}.harvest-rock{--harvest-color:#a9a397;--harvest-light:#e5c896}.harvest-bit{position:absolute;left:-3px;top:-3px;width:6px;height:6px;background:var(--harvest-color);box-shadow:inset 2px 1px var(--harvest-light);animation:harvest-scatter 850ms ease-out both;animation-delay:var(--delay)}.harvest-water .harvest-bit{width:5px;height:9px;border-radius:60% 60% 40% 40%}.harvest-wood .harvest-bit:nth-child(2n){width:10px;height:5px;background:#80955c}.harvest-ring{position:absolute;left:-20px;top:-7px;width:40px;height:14px;border:2px solid var(--harvest-light);border-radius:50%;animation:harvest-ripple 700ms ease-out both}.harvest-gain{position:absolute;left:0;top:-26px;white-space:nowrap;color:#f1e6bd;font-size:16px;text-shadow:0 2px #17241d,2px 0 #17241d,-2px 0 #17241d;animation:harvest-gain 1050ms ease-out both}@keyframes harvest-scatter{0%{opacity:0;transform:translate(0,0) scale(.3)}15%{opacity:1}75%{opacity:1}100%{opacity:0;transform:translate(var(--dx),var(--dy)) rotate(var(--spin)) scale(.5)}}@keyframes harvest-ripple{from{opacity:.85;transform:scale(.4)}to{opacity:0;transform:scale(2.3)}}@keyframes harvest-gain{0%{opacity:0;transform:translate(-50%,5px)}15%,70%{opacity:1}100%{opacity:0;transform:translate(-50%,-42px)}}@media(prefers-reduced-motion:reduce){.harvest-bit,.harvest-ring{display:none}.harvest-gain{animation:none;transform:translateX(-50%)}}
#gather-glow{position:absolute;inset:0;pointer-events:none;overflow:hidden}.gather-shimmer{position:absolute;width:6%;height:11%;transform:translate(-50%,-50%);background:radial-gradient(ellipse,#e1edc328,transparent 68%);animation:gather-breathe 2.6s ease-in-out infinite}.gather-shimmer i{position:absolute;width:3px;height:3px;background:#dce9c4;box-shadow:0 0 5px 2px #dce9c430;opacity:0;animation:gather-twinkle 2.8s ease-in-out infinite}.gather-shimmer i:nth-child(1){left:15%;top:32%}.gather-shimmer i:nth-child(2){right:12%;top:15%;animation-delay:-.9s}.gather-shimmer i:nth-child(3){right:28%;bottom:12%;animation-delay:-1.8s}@keyframes gather-breathe{0%,100%{opacity:.3}50%{opacity:.8}}@keyframes gather-twinkle{0%,100%{opacity:0;transform:translateY(2px) scale(.6)}45%{opacity:.6;transform:translateY(-2px) scale(1)}75%{opacity:0;transform:translateY(-5px) scale(.6)}}@media(prefers-reduced-motion:reduce){.gather-shimmer{animation:none;opacity:.45}.gather-shimmer i{animation:none;opacity:.3}}
/* Three-day art direction: quiet sage controls, cream type, soft forest surfaces. */
:root{--mint:#aabb8c;--gold:#d7ddb4;--border:#687960;--muted:#aeb9a4;color:#e9ebdb;background:#1b2823}
body{background:radial-gradient(ellipse at 22% 0,#364539 0,transparent 65%),#1b2823}
button:not(.shop-guest){border:1px solid #7e8e70;border-radius:8px;background:#394638;color:#eef0de;box-shadow:inset 0 1px #f0f4dc0b,0 2px 0 #121d1855;text-shadow:none;transition:background .16s,border-color .16s,box-shadow .16s,transform .1s;translate:none}
button:not(.shop-guest):hover:not(:disabled){background:#4e6044;border-color:#bacb9d;filter:none;box-shadow:0 0 0 2px #b8ce8f12,0 0 12px #c5d7a312}
button:not(.shop-guest):active:not(:disabled){transform:translateY(1px);translate:none;box-shadow:inset 0 2px 4px #16221840}
button.primary{background:#64774e;border-color:#a4b58c;color:#f6f4df}
button.primary:hover:not(:disabled){background:#748758;border-color:#d3dfb5;box-shadow:0 0 10px #b9d39630}
button.secondary{background:#344337;border-color:#718169}
button.text-button{background:transparent;border-color:transparent;color:#c3ceba;box-shadow:none}
button:disabled{opacity:.42;box-shadow:none}
button:focus-visible,canvas:focus-visible{outline:2px solid #d1ddb3;outline-offset:3px}
.energy-hud,.bag-button{border:1px solid #718168;border-radius:9px;background:#2b3a30;box-shadow:inset 0 1px #e2ebc70b}
.energy-hud strong{color:#e2e9ca}.meter{background:#17251e}.meter>div{background:linear-gradient(90deg,#738d58,#b3c88e);border-radius:6px}
.brand h1{color:#e4e6cc;letter-spacing:.3px}.brand span{color:#afbaa2}
.map-frame{border:1px solid #788569;border-radius:12px;overflow:hidden;box-shadow:0 12px 32px #0e191c35}.map-title{background:#2d3b30;border-bottom:1px solid #5a6b52;color:#dce4c8;padding:12px 16px}.map-title span:last-child{color:#adbba1}
.canvas-wrap{position:relative;background:#34565a}.canvas-wrap canvas{filter:none;display:block}.canvas-wrap:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(135deg,#dfdda80a,transparent 42%,#11291b08);z-index:1}#gather-glow{z-index:2}
dialog{border:1px solid #849175;border-radius:14px;background:#28372e;color:#e8ecd9;box-shadow:0 18px 60px #07160e70;padding:24px}dialog::backdrop{background:#0b1913a6;backdrop-filter:blur(3px)}
.bench-heading{border-color:#54654c}.overline,.small.muted,.muted{color:#adbaa0}.dialogue{background:#28382e;border:1px solid #657759;border-radius:10px;color:#e5e9d7}
.guest-dialogue{background:#223128f2;border:1px solid #899a75;border-radius:12px;box-shadow:0 6px 18px #10211735}.guest-dialogue h3{color:#dce5c2}.guest-dialogue p{color:#eef0e0;line-height:1.8}
.shop-tools{background:#27362d;border-color:#586c50}.shop-background,.counter-mask{filter:saturate(.72) brightness(1.06)}
.shop-guest,.shop-guest:hover:not(:disabled),.shop-guest:active:not(:disabled),.shop-guest:disabled{background:transparent;border:0;box-shadow:none;filter:none;translate:none;transform:none}
.prep-row,.bag-item,.equipment-card,.receipt,.inspection-visual,.prep-feedback{background:#314333;border:1px solid #607454;border-radius:10px}.bag-item strong{color:#d5e2bd}.bag-item small{color:#b6c4a8}.prep-row span{color:#bdcbb0}
.reagent-bottle{border-radius:10px!important}.reagent-bottle.selected{outline:2px solid #b8cd99;outline-offset:2px}.precip-lab{background:#21382b;border-color:#637a56}.precip-lab select{background:#354b36;color:#edf0dc;border-color:#879975;border-radius:6px}
.gather-shimmer{background:radial-gradient(ellipse,#d4e8b920,transparent 70%)}.gather-shimmer i{background:#dae9c5;box-shadow:0 0 4px 1px #dae9c424}.harvest-gain{font-size:14px;color:#edf2d9}.harvest-bit{width:5px;height:5px}
@media(max-width:650px){dialog{padding:16px;border-radius:10px}.map-title{padding:9px 10px}.map-title span:last-child{font-size:10px}.precip-lab{gap:14px;padding:12px}.precip-flow{gap:6px}.precip-flow button{min-width:90px}}
@media(prefers-reduced-motion:reduce){button:not(.shop-guest){transition:none}button:not(.shop-guest):active:not(:disabled){transform:none}}
/* Newly drawn sprite assets used by the interaction and workshop surfaces. */
.drawn-harvest{position:absolute;left:-40px;top:-48px;width:80px;height:80px;background-image:var(--redraw-effects);background-size:400% 400%;background-position:0 calc(var(--effect-row)*100%/3);image-rendering:pixelated;animation:drawn-harvest-frames .85s steps(3) forwards,drawn-harvest-fade .95s linear forwards}
.harvest-effect:has(.drawn-harvest) .harvest-bit,.harvest-effect:has(.drawn-harvest) .harvest-ring{display:none}
@keyframes drawn-harvest-frames{to{background-position-x:100%}}@keyframes drawn-harvest-fade{0%,70%{opacity:1}100%{opacity:0}}
.glass-art{background-image:var(--redraw-utility);background-size:400% 200%;background-position:100% 0}.glass-art.glass{background-position:0 100%}.salt-icon{background:var(--redraw-utility) 66.6667% 0/400% 200% no-repeat;border:0;box-shadow:none}.salt-icon span{display:none}.salt-icon.zincSulfate{background:var(--redraw-utility) 33.333% 100%/400% 200% no-repeat}
.hero-illustration,.shop-guest img{image-rendering:pixelated}.shop-background,.counter-mask{filter:none;image-rendering:pixelated}.shop-stage{border:1px solid #82916b!important;box-shadow:none!important}.shop-guest{width:37%;height:66%;top:7%;left:5%}.shop-guest img{object-fit:contain;object-position:center bottom}.character-picker button{background:#30422e}.character-picker button[aria-pressed=true]{background:#506644;border-color:#baca96}.hero-illustration{background:radial-gradient(ellipse at bottom,#81966335,transparent 65%)}
@media(prefers-reduced-motion:reduce){.drawn-harvest{animation:none;background-position-x:66.6667%;opacity:.75}}
.gather-shimmer:after{content:'';position:absolute;inset:-10%;background:var(--redraw-effects) 100% 100%/400% 400% no-repeat;image-rendering:pixelated;opacity:.4;animation:gather-breathe 2.6s ease-in-out infinite}.gather-shimmer i{display:none}
@media(prefers-reduced-motion:reduce){.gather-shimmer:after{animation:none;opacity:.2}}
/* Shared interaction language: selection, press, focus and drop are distinct. */
button:not(.shop-guest){min-height:42px;padding:11px 17px;border:1px solid #839472;border-radius:9px;background:linear-gradient(#3c4c39,#344331);font-weight:650;line-height:1.35;box-shadow:inset 0 1px #f4f5dc12,0 2px 0 #13221680;transition:background .16s,border-color .16s,box-shadow .16s,transform .1s}
button.primary{background:linear-gradient(#6c8052,#586e43);border-color:#a9ba8c;box-shadow:inset 0 1px #e9efcb24,0 3px 0 #20301c;color:#f6f4de}
button.primary:before{content:'';display:inline-block;width:19px;height:19px;margin-right:8px;vertical-align:-4px;background:var(--redraw-utility) 100% 100%/400% 200% no-repeat;image-rendering:pixelated}
button:not(.shop-guest):hover:not(:disabled){background:#506344;border-color:#c0d3a2;box-shadow:0 0 0 2px #b9d79a12,0 0 12px #b8d69b1a;transform:translateY(-1px)}
button.primary:hover:not(:disabled){background:#738953;border-color:#d7e3b8;box-shadow:inset 0 1px #f0f4db22,0 0 13px #b4d68d30,0 3px 0 #26371d}
button:not(.shop-guest):active:not(:disabled){transform:translateY(1px);box-shadow:inset 0 2px 5px #17261860,0 1px 0 #142118}
button.secondary{background:#303f32;border-color:#6d8064;color:#dce6ce}button.text-button{background:transparent;border-color:transparent;box-shadow:none;color:#b6c5a7;min-height:36px;padding:8px 11px}
button:not(.shop-guest):disabled{background:#303b30!important;border-color:#58644f!important;color:#8b9981!important;opacity:.65;box-shadow:none!important;transform:none!important}
button:focus-visible{outline:2px solid #e4ebc7;outline-offset:4px}
.reagent-bottle,.drag-token,.precip-cards button{position:relative;background:#304231!important;border-color:#6d845e!important;box-shadow:inset 0 1px #c8d9b016!important}
.reagent-bottle.selected,.drag-token.picked,.precip-cards button.picked{background:#4b633c!important;border-color:#c2d3a0!important;outline:2px solid #9ebc782d;outline-offset:2px;box-shadow:inset 0 0 0 1px #d4e0b51a!important}
.reagent-bottle.selected:after,.drag-token.picked:after,.precip-cards button.picked:after{content:'✓';position:absolute;right:7px;top:5px;font-size:12px;color:#e5edce}
.reagent-bottle .item-art,.reagent-bottle .glass-art{transition:transform .18s}.reagent-bottle:hover .item-art,.reagent-bottle:hover .glass-art{transform:translateY(-3px)}
.drop-slot,#precip-from,#precip-to{background:#203427!important;border:1px dashed #839771!important;min-height:68px;color:#b5c6a4;transition:background .15s,border-color .15s,box-shadow .15s}
.drop-slot.drop-hover,#precip-from.drop-hover,#precip-to.drop-hover{background:#435b36!important;border-color:#d0e0af!important;box-shadow:inset 0 0 18px #a6cc721a,0 0 0 3px #b0cd871a!important;transform:none!important}
.slot-filled{border-style:solid!important;color:#eef0d8!important;background:#3c5031!important}.drag-token:active,.precip-cards button:active{cursor:grabbing}
.prep-row button,.equipment-card button{font-size:13px}.button-row{gap:12px}.guest-dialogue{padding:22px 24px}.guest-dialogue p{font-size:17px;line-height:1.8}.guest-dialogue:after{content:'▾';position:absolute;right:16px;bottom:9px;color:#b8c699;font-size:15px}
.discovery>.item-art,.discovery>.glass-art{animation:item-arrive .32s ease-out}.harvest-gain{padding:4px 9px;background:#213623dc;border:1px solid #94ad7060;border-radius:14px;font-size:13px;text-shadow:0 1px #142017;box-shadow:0 2px 6px #10200e30}.drawn-harvest{width:72px;height:72px;left:-36px;top:-43px}
@keyframes item-arrive{from{opacity:0;transform:translateY(8px) scale(.9)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){button:not(.shop-guest),.reagent-bottle .item-art,.reagent-bottle .glass-art{transition:none}.discovery>.item-art,.discovery>.glass-art{animation:none}button:not(.shop-guest):hover:not(:disabled),button:not(.shop-guest):active:not(:disabled),.reagent-bottle:hover .item-art,.reagent-bottle:hover .glass-art{transform:none}}
.inspection-visual{position:relative;display:grid;place-items:center;width:100%;min-height:172px;padding:18px;margin:14px auto 20px;isolation:isolate;background:radial-gradient(ellipse at center,#70835825,transparent 65%),#26382b;overflow:hidden}.inspection-visual:after{content:'';position:absolute;left:50%;bottom:20px;width:96px;height:12px;transform:translateX(-50%);border-radius:50%;background:#10201580;filter:blur(3px);z-index:-1}.inspection-silhouette{grid-area:1/1;width:128px;height:128px;display:grid;place-items:center;filter:brightness(0);opacity:.65}.inspection-silhouette img{width:128px;height:128px;object-fit:contain;image-rendering:pixelated}.inspection-silhouette .item-art,.inspection-silhouette .salt-icon{width:112px;height:112px}.inspection-visual .inspection-mark{grid-area:1/1;position:relative;margin:0;padding:0;width:48px;text-align:center;font:700 40px/1 system-ui;color:#e6eccc;text-shadow:0 2px 5px #0a190e;z-index:1}.inspection-question,.inspection-energy,.answer-result{text-align:center}.inspection-question{max-width:590px;margin:0 auto;word-break:keep-all;overflow-wrap:anywhere}.answer-list{max-width:590px;margin:20px auto}.answer-list button{text-align:center!important;line-height:1.6;white-space:normal}.answer-result{min-height:28px}.inspection-energy{font-size:13px;color:#b8c8a2}
.inspection-energy{display:block;justify-content:center;text-align:center;background:#2c4030;border-color:#6e845c;color:#d2dfbc}.inspection-visual{min-height:152px}#utility-dialog:has(.inspection-visual) .bench-heading{position:relative;justify-content:center;text-align:center;padding-left:36px;padding-right:36px}#utility-dialog:has(.inspection-visual) .bench-heading>div{width:100%}#utility-dialog:has(.inspection-visual) #close-utility{position:absolute;right:0;top:0}
/* B composition: same landscape proportions at every viewport width. */
#shop-scene{border:1px solid #9e8660;border-radius:6px}.shop-stage{aspect-ratio:16/9;container-type:inline-size;border:0!important}.shop-background,.counter-mask{height:125%;object-fit:fill;filter:none;image-rendering:auto}.counter-mask{clip-path:inset(70% 0 0);z-index:1}
.shop-guest{left:10%;top:6%;width:38%;height:85%;aspect-ratio:auto;z-index:2;animation:portrait-welcome .5s ease-out}.shop-guest img{height:100%;width:100%;object-fit:contain;object-position:center bottom;image-rendering:auto;filter:drop-shadow(0 4px 3px #251d2233)}.shop-guest:hover img{filter:drop-shadow(0 4px 3px #251d2233)}
.guest-dialogue{box-sizing:border-box;left:50%;right:auto;top:24%;width:44%;height:62%;padding:3% 2% 2%;border:3px double #b39261;border-radius:2cqw;background:radial-gradient(ellipse at 40% 35%,#fff7e7,#f1e4cc 75%,#e6d3af);box-shadow:inset 0 0 0 2px #fff6e1,0 4px 8px #291d2344;display:flex;flex-direction:column;gap:1.3cqw;color:#493a29}
.guest-dialogue[hidden]{display:none}.guest-dialogue h3{position:absolute;top:-5.5cqw;left:20%;width:60%;height:5.5cqw;display:flex;align-items:center;justify-content:center;margin:0;padding:0 1cqw;border:3px double #dfc491;border-radius:1.3cqw;background:linear-gradient(#848d68,#6f7d56);color:#fff7df;text-align:center;font-size:2.2cqw;box-shadow:0 2px #725b3a;font-weight:600}
.guest-dialogue #guest-number{display:block;color:#8b7a56;text-align:center;font-size:1.25cqw;letter-spacing:.05em;margin:-1cqw 0 0}.guest-dialogue p{flex:1;display:flex;align-items:center;margin:0;padding:1.4cqw 2cqw;border:1px solid #c4ab7d;border-radius:.5cqw;color:#483827;font-size:2cqw;font-weight:650;line-height:1.6;min-height:0;background:#fff9e520;overflow-wrap:anywhere}
.guest-reward{text-align:center;margin:0 3%;padding:.8cqw;border:1px solid #d3be96;color:#79603a;font-size:1.9cqw;font-weight:700}.guest-reward:before{content:'◉';color:#b98b35;margin-right:1cqw;text-shadow:1px 1px #80612f}.guest-actions{display:grid;grid-template-columns:1fr 1fr;gap:1cqw}.guest-actions button:not(.shop-guest){position:static;min-width:0;min-height:0;padding:1.25cqw .5cqw!important;font-size:1.7cqw;border:3px double #b8b38a;border-radius:.5cqw;line-height:1.25;white-space:nowrap}.guest-actions #shop-skip{background:linear-gradient(#f9ecd4,#e5d0aa);color:#665036;border-color:#ad946f}.guest-dialogue:after{content:none}.guest-dialogue.angry-dialogue{border-color:#ab775d!important}.angry-dialogue #guest-quote{color:#743e2b;border-color:#bb8c73}
.shop-prep,.shop-forge{position:static;align-self:center;font-size:12px;padding:9px 14px}.shop-prep strong{font-size:13px}.shop-prep small{display:none}.shop-tools{gap:10px;flex-wrap:wrap;padding:12px}.shop-tools>span{min-width:0}.shop-tools button{font-size:12px}
@keyframes portrait-welcome{from{translate:-18px 4px}to{translate:0 0}}
@media(prefers-reduced-motion:reduce){.shop-guest{animation:none}}
.shop-guest{left:7%;top:3%;width:42%;height:88%}
#shop-portrait.reaction-angry{animation:guest-refuse .65s ease-in-out;transform-origin:50% 95%}#shop-portrait.reaction-happy{animation:guest-cheer .9s ease-in-out;transform-origin:50% 95%}
@keyframes guest-refuse{0%,100%{transform:translateX(0)}20%{transform:translateX(-6px) rotate(-1deg)}45%{transform:translateX(5px) rotate(1deg)}70%{transform:translateX(-3px)}}
@keyframes guest-cheer{0%,100%{transform:translateY(0)}25%{transform:translateY(-10px) rotate(-1deg)}50%{transform:translateY(0)}75%{transform:translateY(-5px) rotate(1deg)}}
@media(prefers-reduced-motion:reduce){#shop-portrait.reaction-angry,#shop-portrait.reaction-happy{animation:none}}
/* Shared contact baseline; cropped alpha margins no longer lift guests off the desk. */
.shop-guest{top:auto;bottom:10.8%;height:68%;left:6%;width:42%}.shop-guest img{object-position:center bottom}
#bag-button,#bag-count{font-family:'Malgun Gothic','Apple SD Gothic Neo',sans-serif!important;font-style:normal!important;letter-spacing:0!important}#bag-count{font-size:13px;font-weight:600}
#energy-hud[hidden],#field-guide[hidden],#shop-guide[hidden],#guide-show[hidden]{display:none!important}
.shop-guide{position:absolute;top:2%;left:3%;width:43%;box-sizing:border-box;z-index:6;padding:10px 13px;border:1px solid #c3b68a;border-radius:12px;background:linear-gradient(120deg,#f8f0dbf7,#eee4c9f7);box-shadow:0 3px 12px #18251f44;color:#4d563e}.guide-heading{display:flex;justify-content:space-between;align-items:center;gap:8px}.guide-heading strong{font-size:12px;color:#66784e}.shop-guide p{margin:7px 0 0;font:12px/1.65 'Malgun Gothic',sans-serif;overflow-wrap:anywhere}.guide-heading #guide-hide{min-height:0;padding:3px 7px;font-size:10px;background:transparent;color:#717654;border:1px solid #c4c7a8;box-shadow:none}.shop-stage #guide-show{position:absolute;left:2%;top:2%;z-index:6;min-height:0;padding:7px 10px;font-size:12px;border-radius:20px;background:#eee5cdf2;color:#596344;border:1px solid #b7b98f}
@media(max-width:680px){.shop-guide{padding:7px 9px}.shop-guide p{font-size:10px;line-height:1.45;margin-top:4px}.guide-heading strong{font-size:10px}.guide-heading #guide-hide{font-size:9px;padding:2px 4px}}
/* Portrait button must not reserve the default button padding beneath the image. */
.shop-guest,.shop-guest:disabled{padding:0!important;line-height:0;min-height:0}
/* Counter lip covers the portrait seam, including reaction poses. */
.shop-guest{bottom:8%;background-image:none!important;overflow:hidden}.counter-mask{z-index:3;clip-path:inset(70% 0 0)}
#shop-portrait{display:block;background:none!important}#shop-portrait.reaction-happy{transform-origin:50% 100%;animation:guest-grounded-cheer .9s ease-in-out}#shop-portrait.reaction-angry{transform-origin:50% 100%;animation:guest-grounded-refuse .65s ease-in-out}
@keyframes guest-grounded-cheer{0%,100%{transform:scale(1)}25%{transform:scale(1.025,1.035)}50%{transform:scale(1)}75%{transform:scale(1.012,1.018)}}
@keyframes guest-grounded-refuse{0%,100%{transform:translateX(0)}25%{transform:translateX(-5px)}50%{transform:translateX(4px)}75%{transform:translateX(-2px)}}
@media(prefers-reduced-motion:reduce){#shop-portrait.reaction-happy,#shop-portrait.reaction-angry{animation:none}}
/* Reaction transforms need room for elbows outside the hit target. */
.shop-guest{overflow:visible!important}#shop-portrait{clip-path:none;overflow:visible}
/* Match mask start to the actual wooden counter edge, not the wall above it. */
.counter-mask{clip-path:inset(71.5% 0 0)}
.tendency{padding:14px 18px;border:1px solid #b2b487;border-radius:12px;background:#344235;margin:14px 0}.tendency p{font-size:24px;color:#f0df9b;margin:8px 0;letter-spacing:2px}.tendency small{color:#c6d0b5;line-height:1.6}.recovery-heading{display:flex;justify-content:space-between;gap:12px;color:#e6d8ad}.recovery-model{font-size:12px;line-height:1.7;padding:10px;background:#484334;border-radius:8px}.recovery-work{display:grid;grid-template-columns:180px 1fr;gap:24px;padding:20px 0}.recovery-vessel{position:relative;width:150px;height:210px;margin:auto;border:4px solid #b6c9bf;border-top:8px solid #d3ded0;border-radius:8px 8px 35px 35px;overflow:hidden;background:#c5dfd411}.recovery-liquid{position:absolute;bottom:0;width:100%;height:70%;background:var(--solution);opacity:.5}.recovery-ion{position:absolute;top:32%;left:6%;width:88%;text-align:center;color:#fff;line-height:1.6;font-size:16px}.recovery-vessel b{position:absolute;top:9%;width:100%;text-align:center;font-size:12px;color:#e8e7cb}.recovery-grains{position:absolute;bottom:14px;left:12%;color:var(--metal);font-size:23px;opacity:0}.recovery-grains.visible{opacity:1}.recover-animate .recovery-grains{animation:recovery-grow 1s ease-out}.recover-animate .recovery-liquid{animation:recovery-swirl 1s ease-out}.recovery-task label{display:block;margin:10px 0}.recovery-task select{margin-left:8px;background:#22382c;color:#eee6ce;padding:8px;border:1px solid #929a75;border-radius:6px}.recovery-tokens{display:flex;gap:10px;margin:16px 0}.recovery-record{background:#eee3c9;color:#504632;padding:14px;border-radius:10px;margin:14px 0}.recovery-record table{width:100%;border-collapse:collapse;font-size:13px;margin:10px 0}.recovery-record td,.recovery-record th{padding:8px;border-bottom:1px solid #bcad8c;text-align:center}.recovery-record small{font-size:11px}.noble-metal{display:inline-grid;place-items:center;width:48px;height:38px;background:linear-gradient(135deg,#e5edf0,#71838c);border:3px ridge #c9d3d5;clip-path:polygon(15% 0,85% 0,100% 100%,0 100%);color:#283b44;font:700 17px Georgia}.noble-metal.goldMetal{background:linear-gradient(135deg,#f6d572,#b78a23);border-color:#e6c562;color:#604517}@keyframes recovery-grow{from{transform:translateY(-30px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes recovery-swirl{50%{transform:skewX(4deg)}}@media(max-width:600px){.recovery-work{grid-template-columns:1fr}.recovery-vessel{height:150px;width:120px}.tendency p{font-size:18px}.recovery-record{overflow:auto}}@media(prefers-reduced-motion:reduce){.recover-animate *{animation:none!important}}
/* Title and student entry share the forest's muted parchment palette. */
.title-screen{position:fixed;inset:0;max-width:none;max-height:none;width:100vw;height:100dvh;margin:0;padding:0;border:0;border-radius:0;color:#f0e5c9;background:radial-gradient(ellipse at 23% 38%,#4c655055,transparent 50%),linear-gradient(120deg,#142822,#243d32 48%,#101e1b);overflow:auto;box-shadow:none}
.title-screen[open]{display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:5vw;padding:5vh 9vw;box-sizing:border-box}
.title-screen::backdrop{background:#11241f}.title-art{height:70vh;position:relative;border-radius:48% 48% 4px 4px;border:1px solid #b6a26a66;background:linear-gradient(0deg,#12261ba8,#21342d18),url('assets/redraw-shop.webp') center/cover;box-shadow:0 0 0 10px #162920,0 0 0 11px #a1946944,inset 0 0 90px #10221d;display:grid;place-items:center}
.title-orbit{font-size:180px;color:#dbc88955;text-shadow:0 0 40px #dfc885;position:absolute;top:14%;animation:title-breathe 7s ease-in-out infinite}.title-flask{font-size:110px;color:#efe0b8;text-shadow:0 0 25px #bdcc99;position:absolute;bottom:18%}.title-panel{max-width:430px;width:100%;margin:auto}.title-eyebrow{font:11px Georgia,serif;letter-spacing:4px;color:#c3b487}.title-panel h1{font-size:clamp(42px,6vw,78px);line-height:1.1;letter-spacing:-3px;margin:18px 0;color:#e9dec0;text-shadow:0 4px 0 #11221b}.title-panel h1 span{color:#c7ba85}.title-story{color:#b6c3ac;line-height:1.8;font-size:14px;margin-bottom:25px}.title-panel label{display:block;font-size:14px;margin:15px 0 7px}.title-panel label small{color:#a1b09c;margin-left:8px;font-size:11px}.title-panel input{box-sizing:border-box;width:100%;background:#101f1bcc;color:#f0e5c9;border:1px solid #7c8564;border-radius:6px;padding:13px 15px;font-size:16px}.title-panel input:focus{outline:2px solid #c4b786;outline-offset:3px}.title-panel button{width:100%;padding:15px;font-size:15px;border:1px solid #b5aa77;background:linear-gradient(#67784e,#405333);color:#fff2cc;box-shadow:0 4px 0 #0d1d16}.title-panel button:active{transform:translateY(2px);box-shadow:0 2px 0 #0d1d16}.title-footnote{font-size:11px;color:#9aa78e;text-align:center;margin-top:18px}#login-error{min-height:22px;color:#f0b7a0;font-size:13px;margin:8px 0}.title-panel input::placeholder{color:#829180}@keyframes title-breathe{50%{opacity:.45;transform:scale(.95)}}@media(max-width:700px){.title-screen[open]{grid-template-columns:1fr;padding:35px 24px}.title-art{display:none}.title-panel{max-width:400px}.title-panel h1{font-size:52px}}@media(prefers-reduced-motion:reduce){.title-orbit{animation:none}}
.title-flask{font-size:0;display:block;box-sizing:border-box;width:96px;height:112px;border:3px solid #d6c391;border-radius:20px 20px 38px 38px;background:linear-gradient(transparent 40%,#90ab7977 41%,#486645aa);box-shadow:inset 10px 0 15px #f8e7bb18,0 0 40px #bac18a25}.title-flask:before{content:'';position:absolute;left:28px;top:-36px;width:34px;height:34px;border:3px solid #d6c391;border-bottom:0;background:#253e30}.title-flask:after{content:'';position:absolute;left:23px;top:-42px;width:44px;height:10px;border:2px solid #d6c391;border-radius:3px;background:#776243}
.clearance-code{display:block;margin:24px 0;padding:20px;border:1px solid #b9a474;border-radius:8px;background:#14271f;color:#eee0a8;font:700 clamp(15px,3vw,22px) monospace;text-align:center;letter-spacing:2px;overflow-wrap:anywhere;user-select:all}#clearance-dialog{max-width:560px}#clearance-status{line-height:1.8;color:#b9c8ad}#clearance-feedback{min-height:24px}
.sanctuary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:20px 0}.relic-card{padding:16px;border:1px solid #627358;border-radius:10px;background:#23362c}.relic-card.obtained{border-color:#c4b879;background:#35452e}.relic-card h3{margin:5px 0}.relic-symbol{font-size:30px;color:#d8c88a}.sanctuary-note{background:#eee4cb;color:#443e31;padding:18px;border-radius:8px;line-height:1.8}.sanctuary-map{display:grid;grid-template-columns:repeat(3,44px);gap:4px;margin:12px}.sanctuary-map span{text-align:center;border:1px solid #867d61;padding:9px;background:#d0d2b2}.sanctuary-map .target{background:#526b49;color:#fff0ba;font-weight:bold}.relic-customer{display:flex;gap:24px;align-items:center;margin-bottom:22px}.relic-customer img{width:140px;height:170px;object-fit:contain;object-position:bottom}.relic-customer p{line-height:1.8}.electron-cards,.electron-slots{display:flex;gap:14px;align-items:center;margin:18px 0}.electron-slots button{min-width:115px;min-height:70px;border:2px dashed #b9af7c}.sanctuary-locked{padding:22px;background:#493c31;color:#f0d9ad;border-radius:8px;line-height:1.8}.trial-table-wrap{overflow-x:auto}.trial-table{width:100%;border-collapse:collapse;margin:20px 0;background:#efe5cf;color:#383b2e}.trial-table th,.trial-table td{padding:12px;border:1px solid #b3aa8a;text-align:center}.trial-assumptions{font-size:12px;line-height:1.8;color:#b8c6b0}.sanctuary-chart{display:block;width:100%;max-width:540px;max-height:260px;margin:20px auto;color:#d7d6b6}.sanctuary-chart text{fill:currentColor;font:11px sans-serif}#trial-answer,#quest-answer,#sanctuary-lens{max-width:100%;padding:12px;font-size:17px;background:#1a3026;color:#eee2bf;border:1px solid #879575;border-radius:5px}#trial-feedback,#quest-feedback{line-height:1.8;min-height:30px;color:#e5cc8e}@media(max-width:550px){.sanctuary-grid{grid-template-columns:1fr}.relic-customer img{width:90px;height:125px}.trial-table th,.trial-table td{padding:7px;font-size:12px}}

.trial-model{padding:18px;background:#efe5cf;color:#28382c;border:1px solid #998e70;border-radius:10px}.trial-model>div{display:inline-block;margin:8px 20px}.trial-model p{font-size:21px;letter-spacing:2px}.trial-model small{display:block}.trial-pie{display:flex;align-items:center;justify-content:center;gap:20px;flex-wrap:wrap}.trial-pie svg{width:220px;max-width:100%;font-size:14px}.trial-pie ul{list-style:none;padding:0}.trial-pie li{margin:8px}.trial-pie li span{display:inline-block;width:15px;height:15px;margin-right:10px;border:1px solid #39483d}

/* Sanctuary reading layout: scoped to the final question only. */
#utility-dialog:has(.trial-sheet){width:min(780px,calc(100vw - 32px));max-height:calc(100dvh - 32px);padding:24px;box-sizing:border-box;overflow-y:auto}
#utility-dialog:has(.trial-sheet) .bench-heading{margin-bottom:20px;padding-bottom:18px}
.trial-sheet{font-family:"Malgun Gothic","Apple SD Gothic Neo",sans-serif;font-size:15px;line-height:1.75;color:#e7e9dd;word-break:keep-all;overflow-wrap:anywhere}
.trial-sheet p,.trial-sheet h3,.trial-sheet h4{margin:0}
.trial-header{margin-bottom:18px}.trial-badge{display:inline-block;font-size:12px;line-height:1.4;letter-spacing:.04em;color:#bdcba9;margin-bottom:9px}
.trial-header h3{font:700 22px/1.4 "Malgun Gothic",sans-serif;color:#f2ead5}
.trial-description{margin-bottom:22px}.trial-description p{font-size:15px;line-height:1.85;font-weight:400}
.trial-data{margin-bottom:20px}.trial-sheet .trial-table{margin:0;width:100%;font-size:14px;line-height:1.65;background:#eee6d3}.trial-sheet .trial-table th{background:#d9d3bb;font-size:13px;font-weight:700}.trial-sheet .trial-table th,.trial-sheet .trial-table td{padding:12px 10px;vertical-align:middle}.trial-sheet .trial-table td:last-child{min-width:140px}.trial-sheet .trial-table-wrap{border-radius:6px}
.trial-conditions{padding:14px 16px;border-left:3px solid #77856b;background:#20372c;border-radius:0 6px 6px 0;color:#c0cbb7;font-size:12px;line-height:1.8;margin-bottom:24px}.trial-conditions strong{display:block;font-size:12px;margin-bottom:5px;color:#dce1cb}.trial-conditions p+p{margin-top:5px}
.trial-response{border-top:1px solid #56664e;padding-top:22px}.trial-response h4{font-size:17px;line-height:1.7;font-weight:700;margin-bottom:18px;color:#f3ead7}.trial-response label{display:block;font-size:13px;margin-bottom:7px;color:#cbd4bc}
.trial-sheet #trial-answer{display:block;box-sizing:border-box;width:100%;max-width:340px;height:48px;font-size:17px;padding:10px 14px;border-radius:6px}.trial-sheet #trial-answer:focus{outline:2px solid #c7b17c;outline-offset:2px}
.trial-sheet #trial-input-help{font-size:12px;line-height:1.6;color:#b5c1ab;margin-top:9px}.trial-sheet #trial-feedback{font-size:14px;line-height:1.7;min-height:0;margin:12px 0 0}.trial-sheet #trial-feedback:empty{display:none}
.trial-actions{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:10px;border-top:1px solid #56664e;padding-top:18px;margin-top:24px}.trial-actions button{margin:0;min-height:44px;font-family:inherit;font-size:14px;line-height:1.4;padding:10px 12px}
@media(max-width:560px){#utility-dialog:has(.trial-sheet){padding:18px;width:calc(100vw - 20px)}.trial-header h3{font-size:20px}.trial-description p{font-size:14px}.trial-sheet .trial-table th,.trial-sheet .trial-table td{padding:9px 7px;font-size:12px}.trial-actions{grid-template-columns:1fr 1fr}.trial-actions #trial-submit{grid-column:1/-1}.trial-response h4{font-size:16px}.trial-sheet #trial-answer{max-width:none}}
/* Illustrated title cover; HTML text keeps Korean typography sharp. */
.title-screen{background:#14251e url('assets/title-forest-alchemist.webp') center/cover no-repeat}
.title-screen[open]{display:flex;align-items:center;justify-content:flex-start;padding:40px clamp(24px,7vw,110px);gap:0;isolation:isolate}
.title-screen::before{content:'';position:fixed;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,#081b16dc 0%,#0c20178c 31%,#0b191622 54%,transparent 75%)}
.title-panel{margin:0;max-width:360px;padding:24px 26px;border:1px solid #c5b17a55;border-radius:14px;background:#12241bd9;box-shadow:0 18px 60px #07120e77;backdrop-filter:blur(3px)}
.title-panel h1{font-size:clamp(40px,5vw,64px);line-height:1.15;margin:14px 0}.title-story{color:#c8cfba;margin-bottom:18px}.title-panel input{background:#13251de8}.title-eyebrow{letter-spacing:3px}.title-footnote{color:#bbc6aa}
@media(max-width:700px){.title-screen{background-position:65% center}.title-screen[open]{padding:24px 18px;align-items:center;justify-content:center}.title-panel{max-width:360px;width:100%;padding:22px;box-sizing:border-box;background:#12241bee}.title-screen::before{background:#0c1b1655}.title-panel h1{font-size:44px}}
@media(max-height:680px){.title-screen[open]{align-items:flex-start;padding-top:20px;padding-bottom:20px}.title-panel{padding-top:16px;padding-bottom:16px}.title-panel h1{font-size:40px}.title-story{margin-bottom:10px}.title-panel label{margin-top:9px}}
.return-scroll{font-size:12px;line-height:1.4;padding:9px 13px;min-height:44px;white-space:nowrap}.return-scroll small{display:block;color:#d9c998;font-size:11px;margin-top:3px}.return-scroll[hidden]{display:none}
.bag-wallet{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;margin:10px 0 20px;border:1px solid #8c8862;border-radius:8px;background:#243c2d}.bag-wallet strong{font-size:23px;color:#eddaa2}.bag-wallet span{font-size:14px}
/* Static vessels: no drifting particles, liquid overlays or pouring effects. */
.lab-animation,.lab-animation *,.recovery-work,.recovery-work *{animation:none!important;transition:none!important}
.lab-static .lab-liquid,.lab-static .floating-ion,.lab-static .pour-stream{display:none!important}
.lab-sample{display:grid;justify-items:center;gap:8px}.lab-static .lab-bottle{margin:0;transform:none!important}.sample-volume{display:block;font-size:13px;color:#dbe3ce;padding:3px 10px}.sample-observation{display:flex;gap:8px;justify-content:center}.sample-observation span{font-family:inherit;font-size:15px;padding:4px 12px;border:1px solid #8d9d87;background:#253f32;border-radius:6px;color:#e6ebdb}
#exhaustion-message{line-height:1.8;margin:18px 0 24px}#exhaustion-continue{min-width:180px}

.relic-image{display:block;width:104px;height:104px;object-fit:contain;border-radius:14px;margin:0 auto 12px}.relic-card{text-align:center}.relic-reward{display:flex;align-items:center;gap:12px}.relic-reward .relic-image{width:64px;height:64px;margin:0;flex:none}

.special-visitor{outline:2px solid #d7c18a;box-shadow:0 0 24px #dbc28170;animation:specialArrival 1.4s ease-out}#shop-guest.special-visitor{outline:0;box-shadow:none;filter:drop-shadow(0 0 13px #dfd092)}@keyframes specialArrival{0%{filter:brightness(1.5);box-shadow:0 0 40px #e8d8a2}100%{filter:brightness(1)}}@media(prefers-reduced-motion:reduce){.special-visitor{animation:none}}

.quest-conditions{padding:12px 16px;border-left:3px solid #aca980;color:#c6cfb6;font-size:13px;line-height:1.75;margin:18px 0}.quest-prompt{font-weight:600;line-height:1.8}

/* Shared dialog rhythm: text, conditions, status and actions remain separate. */
#utility-dialog,#bench-dialog{padding:26px;scroll-padding:24px}
#utility-content,#bench-content{display:flow-root;min-width:0;line-height:1.8;word-break:keep-all;overflow-wrap:anywhere}
#utility-content>*,#bench-content>*{min-width:0;max-width:100%}
#utility-content>*+*,#bench-content>*+*{margin-block-start:18px}
#utility-content>button,#bench-content>button{display:block;margin-top:22px}
#utility-content>label,#bench-content>label{display:grid;gap:8px;margin-top:18px}
#utility-content :is(input,select),#bench-content :is(input,select){max-width:100%;min-width:0;font:inherit}
#utility-content :is(.prep-feedback,.status-note,#quest-feedback):empty,#bench-content .bench-feedback:empty{display:none}
#utility-content :is(.prep-feedback,.status-note):not(:empty){padding:14px 16px;border:1px solid #728468;border-radius:10px;margin:20px 0;line-height:1.8}
.bench-heading{gap:16px;align-items:flex-start}.bench-heading>div{min-width:0;flex:1}.bench-heading h2{line-height:1.4}.bench-heading .text-button{flex:none}
.dialog-actions{display:flex;gap:12px;flex-wrap:wrap;padding-top:20px;margin-top:24px!important;border-top:1px solid #71816666;clear:both}
.dialog-actions>button{flex:1;min-height:46px}
.prep-intro{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.prep-row>div{gap:16px;flex-wrap:wrap}.prep-row>div>span{line-height:1.7}.prep-bottom{gap:16px;flex-wrap:wrap;padding-top:22px;margin-top:24px}
:is(.immersive-lab,.metal-delivery,.smelting-puzzle)>p+*,.metal-delivery>.ingot+p{margin-top:16px}
.button-row{gap:12px;margin-top:22px}.button-row button{min-height:44px}.relic-customer{gap:22px;align-items:center}.relic-customer>div{min-width:0}.relic-customer h3+p{margin-top:10px}.relic-customer .relic-reward{margin-top:16px}
#name-dialog>label{display:block;margin:24px 0 8px}#name-dialog>#name-start{margin-top:22px}#restart-dialog .button-row,#exhaustion-dialog button{margin-top:24px}
.tendency{padding:18px 20px;margin:22px 0}.tendency strong,.tendency small{display:block}.tendency p{margin:12px 0}.tendency small{line-height:1.85}
.recovery-order-card{position:relative;background:#eee4cb;color:#394533;border:1px solid #c3b987;border-radius:14px;padding:22px;display:grid;gap:10px}
.recovery-order-card h3{font-size:21px;line-height:1.5}.recovery-order-card h3 strong{font-size:30px;margin-left:8px;color:#557140}.recovery-order-card .overline{color:#6f7350;margin:0}.recovery-pay{font-size:14px;font-weight:700;color:#6a673e}
.target-recovery{grid-template-columns:150px minmax(0,1fr);gap:28px;align-items:center;padding:12px 0}
.target-recovery .recovery-vessel{width:130px;height:190px}.target-recovery .recovery-task{display:flex;flex-direction:column;gap:18px;min-width:0}.target-recovery .recovery-task>*{margin:0}
.recovery-form{display:grid;gap:20px}.recovery-form label{display:grid;gap:9px;margin:0}.recovery-form select{display:block;width:100%;margin:0;padding:12px;min-height:46px}.recovery-task>button{align-self:stretch;min-height:48px}
.recovery-comparison{margin:0;display:grid;gap:12px}.recovery-comparison>div{padding:14px;background:#1e3027;border-radius:9px;display:flex;justify-content:space-between;align-items:center;gap:18px}.recovery-comparison dt{font-size:14px}.recovery-comparison dd{margin:0;font-size:23px;font-weight:700;color:#e8d195;white-space:nowrap}
#utility-dialog[data-kind="relic-reward"]{max-width:560px;background:radial-gradient(circle at 50% 44%,#536044,#24362b 67%);border-color:#c6b67c}
.relic-reveal{position:relative;isolation:isolate;text-align:center;overflow:hidden;padding:24px 18px;border:1px solid #e4ce8b55;border-radius:18px;background:#25382a77}
.relic-reveal .overline{color:#ead19b;letter-spacing:3px}.relic-prize{position:relative;width:min(220px,32vh);height:min(220px,32vh);object-fit:contain;border-radius:50%;margin:22px auto 18px;display:block;box-shadow:0 0 50px #e9d29255;animation:prize-reveal .7s cubic-bezier(.2,.8,.2,1)}
.relic-reveal h3{font-size:27px;line-height:1.5;color:#f5e3ae}.relic-reveal h3+p{margin-top:12px;font-size:14px;color:#d8dfcc}.relic-coins{display:inline-block;padding:8px 22px;border:1px solid #c4b37e;border-radius:30px;background:#4c5334;color:#f3dea1;font-size:21px;font-weight:800;margin-top:20px}
.relic-rays{position:absolute;z-index:-1;inset:-30%;background:repeating-conic-gradient(from 0deg,transparent 0deg 16deg,#e9d29b15 16deg 22deg,transparent 22deg 40deg);animation:prize-rays 24s linear infinite;mask-image:radial-gradient(circle,#000,transparent 66%)}
.relic-spark{position:absolute;color:#f2dda8;animation:prize-spark 1.8s ease-in-out infinite}.spark-one{left:16%;top:25%;font-size:26px}.spark-two{right:16%;top:44%;font-size:32px;animation-delay:.4s}.spark-three{left:22%;top:60%;font-size:17px;animation-delay:.8s}
@keyframes prize-reveal{from{opacity:0;transform:translateY(22px) scale(.65)}to{opacity:1;transform:none}}@keyframes prize-rays{to{transform:rotate(360deg)}}@keyframes prize-spark{50%{opacity:.3;transform:scale(.6)}}
@media(max-width:600px){#utility-dialog,#bench-dialog{padding:18px}.target-recovery{grid-template-columns:1fr;gap:24px}.target-recovery .recovery-vessel{width:115px;height:140px}.recovery-order-card{padding:18px}.bench-heading{gap:10px}.bench-heading h2{font-size:21px}.relic-customer{gap:14px}.recovery-comparison>div{padding:12px}.relic-reveal{padding:22px 12px}.dialog-actions{padding-top:18px}.tendency{padding:16px}}
@media(prefers-reduced-motion:reduce){.relic-prize,.relic-rays,.relic-spark{animation:none}}

.answer-result:empty,#name-error:empty,#login-error:empty{display:none}.summary>p+*,.summary>.equipment-grid+p{margin-top:20px}.guest-actions{gap:12px}.guest-dialogue .guest-reward{margin-top:14px}.guest-dialogue .guest-actions{margin-top:14px}

/* Startup spacing is independent of whether validation messages are visible. */
#student-login-form{display:grid;gap:20px;margin-top:24px}
#student-login-form .login-field{display:grid;gap:8px;min-width:0}
#student-login-form label{margin:0;line-height:1.5}
#student-login-form input{display:block;min-width:0;min-height:46px;margin:0}
#student-login-form #login-error{min-height:0;margin:0;line-height:1.7}
#student-login-submit{margin:4px 0 0;min-height:50px;line-height:1.5}
.title-panel .title-footnote{margin:22px 0 0;line-height:1.7}
#name-dialog .character-picker{margin:22px 0 0}
#name-dialog #name-error:not(:empty){margin:18px 0 0;line-height:1.7}

/* Equal cards and trimmed illustrations keep the visible characters centered. */
#name-dialog>h2,#name-dialog>.overline{text-align:center}
#name-dialog .character-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;max-width:620px;margin:22px auto 0;gap:20px}
#name-dialog .character-picker button{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) 22px;place-items:center;gap:12px;padding:18px 16px 12px;min-width:0}
#name-dialog .hero-illustration{width:100%;height:clamp(190px,38dvh,320px);object-fit:contain;object-position:center center;margin:0 auto;background:none}
#name-dialog .chosen-mark{height:22px;line-height:22px;text-align:center}
.day-transition{position:fixed;inset:0;z-index:90;display:grid;place-items:center;padding:24px;pointer-events:none}
.day-card{width:min(340px,100%);padding:28px 24px 24px;text-align:center;border:3px double #baa774;border-radius:16px;background:radial-gradient(ellipse at top,#536546,#26392ded 75%);color:#f4e9cb;box-shadow:0 16px 60px #08181077,inset 0 0 0 5px #13291b44;animation:day-announcement 2.4s ease both}
.day-sun{display:block;font-size:26px;line-height:1;color:#e5c783;margin-bottom:14px}.day-caption{font-size:13px;color:#d3d8c0;letter-spacing:.5px}.day-card strong{display:block;font-size:42px;line-height:1.3;margin:10px 0;font-weight:800;letter-spacing:2px}.day-card>p:last-child{font-size:13px;color:#c7d1b9}.day-divider{display:block;font-size:13px;color:#d6bd84;margin:10px 0}
@keyframes day-announcement{0%{opacity:0;transform:translateY(12px) scale(.97)}15%,78%{opacity:1;transform:none}100%{opacity:0;transform:translateY(-8px)}}
@media(max-width:520px){#name-dialog .character-picker{gap:12px}#name-dialog .character-picker button{padding:14px 8px 10px;gap:8px}#name-dialog .hero-illustration{height:clamp(160px,32dvh,250px)}}
@media(prefers-reduced-motion:reduce){.day-card{animation:none}}
.relic-thanks{margin:22px 0 0;padding:16px 14px;border-top:1px solid #c4b37e55;font-size:14px;line-height:1.85;color:#e1dfc9;word-break:keep-all}.relic-thanks cite{display:block;margin-top:8px;font-size:12px;font-style:normal;color:#cbbd92}

/* Drawn assay: the glass, liquid and pouring path share one coordinate system. */
.assay-stage{display:flex;justify-content:center;align-items:center;gap:36px;padding:16px 12px 24px;margin:18px 0 22px;background:radial-gradient(ellipse at center,#49654f33,transparent 75%);border-bottom:1px solid #8c9b7044}
.assay-vessel{width:240px;max-width:55%;margin:0;text-align:center;flex-shrink:1}.assay-beaker{display:block;width:100%;height:auto;overflow:visible}.assay-vessel figcaption{font-size:15px;color:#e3e6d3;line-height:1.65}.assay-vessel figcaption small{display:block;margin-top:4px;font-size:12px;color:#b4c5b4}.assay-vessel .sample-observation{margin-top:14px}
.assay-outline{fill:none;stroke:#bfd2c3;stroke-width:3;stroke-linejoin:round;stroke-linecap:round}.assay-glint{fill:none;stroke:#e7f2e3;stroke-opacity:.3;stroke-width:3;stroke-linecap:round}.assay-marks{fill:none;stroke:#bed0bd;stroke-opacity:.75;stroke-width:2}
.assay-liquid{transform-box:view-box;transform-origin:120px 234px;transform:scaleY(var(--fill-now))}.assay-liquid-moving{animation:assay-fill .8s ease-in-out both}
.assay-stream{fill:none;stroke:#c0e0d3;stroke-width:5;stroke-linecap:round;stroke-dasharray:7 4;animation:assay-flow .8s linear both}
.assay-pour-action{animation:assay-dose .85s ease both}.assay-pour-action text{fill:#efe1ac;font:700 13px 'Malgun Gothic',sans-serif}.assay-ripple{fill:none;stroke:#e4eee0;stroke-width:2;animation:assay-ripple .8s ease both;transform-box:fill-box;transform-origin:center}
.btb-indicator{width:150px;flex-shrink:0;display:grid;justify-items:center;gap:14px;padding:20px 12px;border:1px solid #8c9b7066;border-radius:14px;background:#18322799}.btb-label{font-size:13px;font-weight:700;letter-spacing:2px;color:#d7d7b8}.btb-color-disc{width:74px;height:74px;border:3px solid #ece7c5aa;border-radius:50%;background-color:var(--btb-to);background-image:linear-gradient(135deg,#ffffff38,transparent 70%);box-shadow:0 4px 16px #0d1e1b44;animation:assay-btb-color .8s ease-in-out both}.btb-indicator p{font-size:12px;line-height:1.6;color:#bdccb9}.btb-indicator strong{display:block;font-size:21px;font-weight:800;color:#eef0de;margin-top:3px}
.drawn-assay .test-record{display:grid;gap:5px;border:1px solid #7c8b6366;border-radius:9px;padding:15px;line-height:1.6}.drawn-assay .test-record strong{font-size:12px;color:#d9d1a5}.drawn-assay .test-record small{font-size:12px;color:#c1cfba}.drawn-assay>.button-row{margin-bottom:20px}.drawn-assay>#serve{margin-top:8px;min-height:48px}
@keyframes assay-fill{from{transform:scaleY(var(--fill-before))}to{transform:scaleY(var(--fill-now))}}
@keyframes assay-btb-color{from{background-color:var(--btb-from)}to{background-color:var(--btb-to)}}
@keyframes assay-flow{0%{opacity:0;stroke-dashoffset:22}15%,65%{opacity:1}100%{opacity:0;stroke-dashoffset:0}}
@keyframes assay-dose{0%{opacity:0}12%,70%{opacity:1}100%{opacity:0}}
@keyframes assay-ripple{0%{opacity:0;transform:scaleX(.3)}30%{opacity:.8}100%{opacity:0;transform:scaleX(1.6)}}
@media(max-width:480px){.assay-stage{gap:16px;padding:12px 0 20px}.assay-vessel{width:200px;max-width:58%}.btb-indicator{width:112px;gap:10px;padding:16px 8px}.btb-color-disc{width:62px;height:62px}.btb-indicator strong{font-size:19px}.assay-vessel figcaption{font-size:13px}}
@media(prefers-reduced-motion:reduce){.assay-liquid-moving,.btb-color-disc{animation:none}.assay-pour-action,.assay-stream,.assay-ripple{display:none}}
.quiz-outcome{display:grid;justify-items:center;gap:18px;padding:28px 20px;text-align:center}.quiz-outcome-mark{font-size:44px;line-height:1;color:#c8b886}.quiz-outcome h3{margin:0;font-size:23px;color:#eee6c8}.quiz-outcome p{margin:0;max-width:440px;line-height:1.8;color:#d3dac7;word-break:keep-all}.quiz-outcome button{margin-top:10px;min-width:200px;min-height:46px}

/* Align shared controls without changing the portrait/counter coordinate system. */
.bench-heading{align-items:center}
#close-utility,#close-bench{display:grid;place-items:center;width:40px;height:40px;min-height:40px;padding:0;line-height:1}
.button-row>button,.dialog-actions>button,.trial-actions>button{min-width:0;white-space:normal;word-break:keep-all;overflow-wrap:anywhere;text-align:center}
#name-dialog>#name-start{display:block;width:100%;text-align:center}
.bag-item>div{min-width:0;flex:1}
.bag-item>i,.bag-item>.sprite{flex:none}
.bag-item>strong{flex:none;margin-left:auto;text-align:right;white-space:nowrap}
.prep-row>div{display:grid;grid-template-columns:64px minmax(75px,.6fr) minmax(0,1fr) auto;gap:12px;align-items:center}
.prep-row>div>strong,.prep-row>div>span{min-width:0}
.prep-row button{margin-left:0;min-width:0;text-align:center;white-space:normal}
.prep-bottom>button{flex:1;min-width:0;text-align:center}
.forge-recipes article{display:flex;flex-direction:column;min-width:0}
.forge-recipes article>button{width:100%;margin-top:auto;text-align:center}
.forge-recipes article>p:last-of-type{margin-bottom:18px}
.charcoal-station{min-width:0;text-align:center}
.charcoal-station>button{max-width:100%;text-align:center}
@media(max-width:640px){
  .prep-row>div{grid-template-columns:64px minmax(0,1fr);gap:10px 12px}
  .prep-row>div>span{grid-column:2}
  .prep-row>div>button{grid-column:1/-1;width:100%;margin-top:4px}
  .prep-bottom{align-items:stretch}
  .prep-bottom>button{width:100%}
  .bench-heading{flex-wrap:wrap}
  .bench-heading>div{flex:1 1 calc(100% - 60px)}
  .bench-heading #bench-skip{order:1;flex-basis:100%}
}
