:root{color:#173f3a;font-synthesis:none;text-rendering:optimizelegibility;--ink:#173f3a;--muted:#66766f;--paper:#fffdf8;--cream:#f6f1e7;--green:#1b7569;--green-dark:#10564e;--coral:#ec6c52;--gold:#f2b94b;--line:#d9ded6;--shadow:0 18px 45px #1f433b1c;background:#f6f1e7;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at 12% 4%,#f2b94b24,#0000 26rem),linear-gradient(#fbf7ef,#f3eee4);min-width:320px;min-height:100vh;margin:0}button,fieldset{font:inherit}button{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline-offset:3px;outline:3px solid #f2b94b}.topbar{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffdf8d1;border-bottom:1px solid #173f3a1f;justify-content:space-between;align-items:center;min-height:76px;padding:12px clamp(18px,4vw,64px);display:flex}.brand{color:inherit;align-items:center;gap:11px;text-decoration:none;display:flex}.brand-mark{background:#eef6e8;border-radius:13px;width:45px;height:45px;display:block;position:relative;overflow:hidden;transform:rotate(-2deg);box-shadow:0 7px 17px #173f3a33}.brand-mark:before{content:"";background:url(/campus-coffee-market/art/sketches/coloured/customer-green-trousers-exact.png) 50%/contain no-repeat;position:absolute;inset:3px 6px 2px 3px}.brand-mark:after{content:"";background:url(/campus-coffee-market/art/sketches/coloured/cup-sold-exact.png) 50%/contain no-repeat;width:14px;height:11px;position:absolute;bottom:8px;right:2px}.brand strong{letter-spacing:-.02em;font-family:Georgia,serif;font-size:20px;display:block}.brand small{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-top:2px;font-size:11px;font-weight:700;display:block}.header-actions{gap:8px;display:flex}.icon-button{min-height:44px;color:var(--ink);cursor:pointer;background:#fff;border:1px solid #cfd7d1;border-radius:11px;padding:0 15px;font-weight:750}.icon-button:hover{background:#f1f6f3;border-color:#afc2b9}.icon-button:disabled{cursor:default;opacity:.6}.icon-button.reset{color:#7a4d35}.page-shell{width:min(1450px,100% - clamp(24px,6vw,88px));margin:0 auto;padding:27px 0 50px}.intro-row{justify-content:space-between;align-items:end;gap:20px;margin-bottom:20px;display:flex}.eyebrow,.control-kicker{color:#7c6b4f;letter-spacing:.16em;margin:0 0 7px;font-size:11px;font-weight:850}h1,h2{letter-spacing:-.035em;font-family:Georgia,Times New Roman,serif}h1{max-width:790px;color:var(--ink);margin:0;font-size:clamp(30px,3.3vw,48px);line-height:1.02}h2{margin:0;font-size:clamp(24px,2.2vw,34px)}.phase-pill{color:#146154;background:#e9f5ef;border:1px solid #b8d4ca;border-radius:100px;flex:none;margin-bottom:4px;padding:10px 14px;font-size:13px;font-weight:800}.phase-pill span{background:#2ca176;border-radius:50%;width:9px;height:9px;margin-right:6px;display:inline-block;box-shadow:0 0 0 4px #2ca17621}.phase-pill.shortage{color:#a43f2d;background:#fff0e7;border-color:#efbaa9}.phase-pill.shortage span{background:var(--coral);box-shadow:0 0 0 4px #ec6c5224}.phase-pill.surplus{color:#7a5a11;background:#fff7db;border-color:#e7ca73}.phase-pill.surplus span{background:#d89d23;box-shadow:0 0 0 4px #d89d2321}.metrics{grid-template-columns:1.15fr repeat(3,.85fr) 1.25fr;gap:9px;margin-bottom:12px;display:grid}.metric{background:#fffdf8d6;border:1px solid #d9ded7;grid-template-columns:auto auto;align-content:center;min-height:92px;padding:15px 18px;display:grid;box-shadow:0 6px 20px #1f433b0a}.metric:first-child{border-radius:15px 4px 4px 15px}.metric:last-child{border-radius:4px 15px 15px 4px}.metric>span{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;grid-column:1/-1;font-size:11px;font-weight:800}.metric strong{color:var(--ink);align-self:baseline;font-family:Georgia,serif;font-size:29px;line-height:1.15}.metric em{color:#85918c;place-self:end;margin-bottom:4px;font-size:11px;font-style:normal;font-weight:750}.price-metric strong{color:var(--coral);font-size:34px}.imbalance-metric{border-left:4px solid #36a37c}.imbalance-metric strong{font-family:inherit;font-size:20px}.imbalance-metric.shortage{border-left-color:var(--coral);background:#fff8f4}.imbalance-metric.shortage strong{color:#b9432d}.imbalance-metric.surplus{border-left-color:var(--gold);background:#fffaf0}.imbalance-metric.surplus strong{color:#8b6413}.game-layout{grid-template-columns:minmax(0,1fr) 350px;align-items:stretch;gap:12px;display:grid}.market-panel,.control-panel{background:var(--paper);box-shadow:var(--shadow);border:1px solid #d8ded6;border-radius:18px}.market-panel{min-width:0;overflow:hidden}.market-scene{isolation:isolate;background:linear-gradient(#dff2ec 0 44%,#b8d59f 44% 83%,#a9ca8e 83%);height:clamp(485px,57vh,650px);position:relative;overflow:hidden}.market-scene:before{content:"";z-index:-1;background:repeating-linear-gradient(86deg,#0000 0 45px,#43744c12 46px 48px);height:52%;position:absolute;inset:45% -10% auto;transform:skewY(-3deg)}.scene-sky{position:absolute;inset:0 0 56%;overflow:hidden}.sun{color:#674d12;background:#f8ca5f;border:0;border-radius:50%;place-content:center;gap:1px;width:76px;height:76px;padding:0;display:grid;position:absolute;top:11%;right:8%;box-shadow:0 0 0 13px #f8ca5f2e,0 7px 18px #6a4d1324}.sun-control{z-index:3;cursor:pointer;transition:transform .18s,box-shadow .18s,background .18s}.sun-control:hover:not(:disabled){transform:scale(1.06);box-shadow:0 0 0 16px #f8ca5f33,0 9px 22px #6a4d1333}.sun-control:active:not(:disabled){transform:scale(.96)}.sun-control span{letter-spacing:-4px;font-size:20px;font-weight:950;line-height:1;transform:translate(-2px)}.sun-control small{letter-spacing:.09em;font-size:8px;font-weight:950}.sun-control.paused{color:#fff;background:var(--coral);box-shadow:0 0 0 13px #ec6c522e,0 7px 18px #6a35272b}.sun-control.paused span{letter-spacing:0;transform:translate(1px)}.sun-control.next-round{color:#fff;background:var(--teal);animation:1.15s ease-in-out infinite alternate nextRoundPrompt;box-shadow:0 0 0 13px #18786d2e,0 7px 18px #28504833}.sun-control.next-round span{letter-spacing:0;transform:none}.sun-control.next-round small{max-width:58px;line-height:1.05}.sun-control:disabled{cursor:default;color:#4b462cb3;background:#efd681;box-shadow:0 0 0 10px #efd68126}body[data-art-style=sketches] .sun{color:#674d12;width:98px;height:98px;box-shadow:none;background-color:#0000;background-image:url(/campus-coffee-market/art/sketches/coloured/sun-exact.png);background-position:50%;background-repeat:no-repeat;background-size:contain;border-radius:0;top:4%;right:6%}body[data-art-style=sketches] .sun-control:hover:not(:disabled){box-shadow:none;filter:drop-shadow(0 7px 7px #6a4d132e)}body[data-art-style=sketches] .sun-control.paused,body[data-art-style=sketches] .sun-control.next-round,body[data-art-style=sketches] .sun-control:disabled{box-shadow:none;background-color:#0000;background-image:url(/campus-coffee-market/art/sketches/coloured/sun-exact.png)}body[data-art-style=sketches] .sun-control.paused{color:#a33f31}body[data-art-style=sketches] .sun-control.next-round{color:#176f64}body[data-art-style=sketches] .sun-control:disabled{opacity:.72}.policy-sign{z-index:6;color:#fff;text-align:center;background:#a7672f;border:3px solid #f7f0dc;border-radius:5px;outline:2px solid #704c2f;min-width:118px;padding:7px 10px;position:absolute;top:10%;left:32%;transform:rotate(-1deg);box-shadow:0 5px #57361f2e}.policy-sign[hidden]{display:none}.policy-sign small,.policy-sign strong{display:block}.policy-sign small{letter-spacing:.13em;opacity:.82;font-size:7px;font-weight:900}.policy-sign strong{margin-top:2px;font-size:12px;line-height:1}.policy-sign.price-cap{background:#b94f3d}.policy-sign.price-floor{background:#39786d}.cloud{background:#ffffffc2;border-radius:20px;width:85px;height:20px;position:absolute}.cloud:before,.cloud:after{content:"";background:inherit;border-radius:50%;position:absolute;bottom:0}.cloud:before{width:33px;height:33px;left:15px}.cloud:after{width:27px;height:27px;right:13px}.cloud-one{top:18%;left:40%}.cloud-two{opacity:.8;top:38%;left:69%;transform:scale(.7)}body[data-art-style=sketches] .cloud{background-color:#0000;background-image:url(/campus-coffee-market/art/sketches/coloured/cloud-exact.png);background-position:50%;background-repeat:no-repeat;background-size:contain;border-radius:0;width:96px;height:58px}body[data-art-style=sketches] .cloud:before,body[data-art-style=sketches] .cloud:after{display:none}body[data-art-style=sketches] .cloud-one{top:7%;left:37%}body[data-art-style=sketches] .cloud-two{top:43%;left:67%}@keyframes nextRoundPrompt{0%{transform:scale(1)}to{transform:scale(1.06)}}.campus-building{z-index:1;background:#d8b180;border-bottom:8px solid #b88960;border-radius:4px 4px 0 0;justify-content:center;align-items:center;gap:8%;width:27%;height:18%;display:flex;position:absolute;top:25.5%;left:3.5%;box-shadow:0 10px #d8b180,0 18px #b88960}.campus-building:before{content:"";border-bottom:20px solid #8e5b42;border-left:17px solid #0000;border-right:17px solid #0000;position:absolute;top:-19px;left:-7%;right:-7%}.campus-building i{background:#eef7ec;border-radius:50% 50% 0 0;width:9%;height:42%;box-shadow:inset 0 0 0 3px #7b654e}.campus-building .flag{background:var(--coral);color:#fff;letter-spacing:.1em;padding:3px 7px;font-size:8px;font-weight:900;position:absolute;top:-37px;left:50%}.campus-building .flag:before{content:"";background:#5b4d3c;width:2px;height:28px;position:absolute;top:-3px;left:-3px}body[data-art-style=sketches] .campus-building{width:28%;height:27%;box-shadow:none;background:url(/campus-coffee-market/art/sketches/coloured/university-building-exact.png) 0 100%/contain no-repeat;border:0;border-radius:0;display:block;top:18%;left:2.5%}body[data-art-style=sketches] .campus-building:before,body[data-art-style=sketches] .campus-building>*{display:none}.zone-label{z-index:3;color:#44655a;letter-spacing:.14em;background:#ffffffb8;border-radius:5px;padding:4px 8px;font-size:9px;font-weight:900;position:absolute}.students-label{top:46%;left:4%}.queue-label{top:42%;left:42%}.seating-area{z-index:2;background:#eff8e059;border:1px dashed #34695057;border-radius:13px;height:18%;position:absolute;top:43.5%;left:47%;right:2.5%}.seating-area>span{color:#47695c;letter-spacing:.11em;background:#f9fff2e6;border-radius:5px;padding:3px 7px;font-size:7px;font-weight:950;position:absolute;top:-11px;right:8px}.garden-table{background:#b77a4e;border-radius:5px;width:11%;height:8px;position:absolute;top:48%;box-shadow:0 3px #8f603f}.garden-table:before,.garden-table:after{content:"";background:#865a3f;border-radius:2px;width:5px;height:18px;position:absolute;top:-5px}.garden-table:before{left:18%;transform:rotate(10deg)}.garden-table:after{right:18%;transform:rotate(-10deg)}.garden-table.table-one{left:10%}.garden-table.table-two{left:44.5%}.garden-table.table-three{right:10%}body[data-art-style=sketches] .garden-table{width:13%;height:18px;box-shadow:none;background:url(/campus-coffee-market/art/sketches/coloured/market-table-exact.png) 50%/100% 100% no-repeat;border-radius:0;top:42%}body[data-art-style=sketches] .garden-table:before,body[data-art-style=sketches] .garden-table:after{height:13px;top:10px}.people-layer{z-index:5;pointer-events:none;position:absolute;inset:0}.person{left:var(--x);top:var(--y);width:14px;height:24px;transition:left .72s cubic-bezier(.2,.8,.3,1),top .72s cubic-bezier(.2,.8,.3,1),opacity .45s;transition-delay:var(--delay);position:absolute;transform:translate(-50%,-50%)}.person:before{content:"";background:#e3a879;border-radius:50%;width:9px;height:9px;position:absolute;top:0;left:3px;box-shadow:0 0 0 1px #4230241f}.person i{border-radius:5px 5px 2px 2px;width:11px;height:10px;position:absolute;top:9px;left:2px}.person b:before,.person b:after{content:"";background:#365b55;border-radius:2px;width:3px;height:6px;position:absolute;top:18px}.person b:before{left:3px;transform:rotate(5deg)}.person b:after{right:2px;transform:rotate(-5deg)}.person.willing-at-three i{background:#218263}.person.unwilling-at-three i{background:#d65348}.person.inactive{opacity:.62}.person.inactive:after{content:"×";color:#9e4136;font-size:11px;font-weight:900;position:absolute;top:-5px;left:10px}.agent-thought{color:#8b3829;text-align:center;background:#fff4ee;border:1px solid #e8a492;border-radius:6px;width:max-content;max-width:118px;padding:3px 6px;font-size:8px;font-weight:900;display:none;position:absolute;top:-22px;left:12px;box-shadow:0 3px 8px #4e30221f}.agent-thought:before{content:"";background:#fff4ee;border-bottom:1px solid #e8a492;border-right:1px solid #e8a492;width:6px;height:6px;position:absolute;bottom:-4px;left:5px;transform:rotate(45deg)}.person.turning-away{opacity:1;filter:none;z-index:8;transition-duration:1.15s}.person.turning-away i{transform:scaleX(-1)}.person.turning-away:after{content:"↙";color:#a03d2c;font-size:12px;top:3px;left:-9px}.person.turning-away .agent-thought{animation:.72s both thoughtPop;display:block}.person.satisfied{z-index:9}.person.satisfied .agent-thought{color:#1c6659;background:#f0fbf5;border-color:#7bbba8;animation:.72s both thoughtPop;display:block}.person.satisfied .agent-thought:before{background:#f0fbf5;border-color:#7bbba8}.person.queued{animation:.85s ease-in-out infinite alternate waiting;animation-delay:var(--delay)}.person.queued:after{content:"?";color:#9c432f;font-size:10px;font-weight:900;position:absolute;top:-7px;left:10px}.person.no-coffee:after{content:"!";color:#a03d2c;font-size:12px}.person.sold-out-speaker .agent-thought{animation:.72s both thoughtPop;display:block}.person.served{animation:1.1s ease-in-out infinite alternate happy;animation-delay:var(--delay)}.person.served:after{content:"";background:#35a08e;border:1px solid #225f57;border-radius:1px 1px 3px 3px;width:6px;height:5px;position:absolute;top:10px;right:-4px;box-shadow:2px 0 0 -1px #eef8f4,3px 0 0 -1px #225f57}.person.entrant i{box-shadow:0 0 0 3px var(--coral);outline:2px solid #fff}body[data-art-style=sketches] .person{width:20px;height:23px}body[data-art-style=sketches] .person:before,body[data-art-style=sketches] .person b{display:none}body[data-art-style=sketches] .person i{transform-origin:50%;background-color:#0000;background-position:50%;background-repeat:no-repeat;background-size:contain;border-radius:0;width:100%;height:100%;top:0;left:0}body[data-art-style=sketches] .person.willing-at-three i{background-image:url(/campus-coffee-market/art/sketches/coloured/customer-green-trousers-exact.png)}body[data-art-style=sketches] .person.unwilling-at-three i{background-image:url(/campus-coffee-market/art/sketches/coloured/customer-red-trousers-exact.png)}body[data-art-style=sketches] .person.skin-warm-tan.willing-at-three i{background-image:url(/campus-coffee-market/art/sketches/coloured/customer-warm-tan-green-trousers-exact.png)}body[data-art-style=sketches] .person.skin-warm-tan.unwilling-at-three i{background-image:url(/campus-coffee-market/art/sketches/coloured/customer-warm-tan-red-trousers-exact.png)}body[data-art-style=sketches] .person.skin-brown.willing-at-three i{background-image:url(/campus-coffee-market/art/sketches/coloured/customer-brown-green-trousers-exact.png)}body[data-art-style=sketches] .person.skin-brown.unwilling-at-three i{background-image:url(/campus-coffee-market/art/sketches/coloured/customer-brown-red-trousers-exact.png)}body[data-art-style=sketches] .person.skin-deep-brown.willing-at-three i{background-image:url(/campus-coffee-market/art/sketches/coloured/customer-deep-brown-green-trousers-exact.png)}body[data-art-style=sketches] .person.skin-deep-brown.unwilling-at-three i{background-image:url(/campus-coffee-market/art/sketches/coloured/customer-deep-brown-red-trousers-exact.png)}body[data-art-style=sketches] .person.inactive:after,body[data-art-style=sketches] .person.queued:after{top:-6px;left:16px}body[data-art-style=sketches] .person.turning-away:after{top:8px;left:-8px}body[data-art-style=sketches] .person.entrant i{box-shadow:none;filter:drop-shadow(0 0 2px white) drop-shadow(0 0 2px var(--coral));outline:0}body[data-art-style=sketches] .person.served:after{width:9px;height:7px;box-shadow:none;background:url(/campus-coffee-market/art/sketches/coloured/cup-sold-exact.png) 50%/contain no-repeat;border:0;border-radius:0;top:12px;right:-5px}@keyframes waiting{to{translate:0 -3px}}@keyframes happy{to{translate:0 -2px;rotate:2deg}}@keyframes thoughtPop{0%{opacity:0;transform:translateY(5px)scale(.9)}to{opacity:1;transform:translateY(0)scale(1)}}.shops-row{z-index:4;grid-template-columns:repeat(4,1fr);gap:7px;display:grid;position:absolute;bottom:12.5%;left:49.5%;right:2.5%}.shop{text-align:center;background:#fff8ea;border:2px solid #fff9ee;border-radius:7px 7px 3px 3px;min-width:0;height:118px;padding:29px 6px 6px;position:relative;box-shadow:0 8px #3454412e}.shop:before{content:"";background:#d6ebdf;border:2px solid #26584d29;border-radius:9px 9px 0 0;height:45px;position:absolute;bottom:0;left:10%;right:10%}.shop strong{z-index:2;color:#274e47;white-space:nowrap;text-overflow:ellipsis;font-family:Georgia,serif;font-size:clamp(10px,1.1vw,14px);display:block;position:relative;overflow:hidden}.shop>span{color:#31574f;font-size:9px;font-weight:800;position:absolute;bottom:-22px;left:4px;right:4px}.shop>span b{color:#a24531}.shop .shop-bubble{z-index:12;color:#843827;background:#fffaf5;border:1px solid #e7a38f;border-radius:10px;width:max-content;max-width:128px;padding:7px 9px;font-size:10px;font-weight:900;line-height:1.2;animation:.34s cubic-bezier(.2,.9,.35,1.25) both shopBubblePop;position:absolute;bottom:calc(100% + 10px);left:50%;right:auto;transform:translate(-50%);box-shadow:0 6px 16px #432f2229}.shop .shop-bubble:after{content:"";background:#fffaf5;border-bottom:1px solid #e7a38f;border-right:1px solid #e7a38f;width:8px;height:8px;position:absolute;bottom:-5px;left:50%;transform:translate(-50%)rotate(45deg)}@keyframes shopBubblePop{0%{opacity:0;transform:translate(-50%)translateY(6px)scale(.88)}to{opacity:1;transform:translate(-50%)translateY(0)scale(1)}}.awning{border-radius:6px 6px 2px 2px;height:22px;display:flex;position:absolute;top:0;left:-2px;right:-2px;overflow:hidden}.awning i{background:var(--coral);flex:1}.awning i:nth-child(2n){background:#fff5e3}.shop.gold .awning i:nth-child(odd){background:#e8a82c}.shop.mint .awning i:nth-child(odd){background:#3a9987}.shop.blue .awning i:nth-child(odd){background:#557fa2}.cup-rack{z-index:2;flex-wrap:wrap-reverse;justify-content:center;gap:3px;display:flex;position:absolute;bottom:13px;left:10%;right:10%}.mini-cup,.key-cup{background:#fff;border:1.5px solid #955933;border-radius:1px 1px 4px 4px;width:10px;height:8px;display:inline-block;position:relative}.mini-cup:after,.key-cup:after{content:"";border:1.5px solid #955933;border-left:0;border-radius:0 4px 4px 0;width:4px;height:4px;position:absolute;top:1px;right:-4px}.mini-cup.sold,.key-cup.sold{opacity:1;background:#35a08e;border-color:#1f675d;transform:translateY(1px)}.mini-cup.sold:after,.key-cup.sold:after{border-color:#1f675d}.mini-cup.unsold,.key-cup.available{background:#ffe2a4}.mini-cup.unsold{animation:.8s ease-in-out infinite alternate cupPulse}body[data-art-style=sketches] .mini-cup,body[data-art-style=sketches] .key-cup{background-color:#0000;background-position:50%;background-repeat:no-repeat;background-size:contain;border:0;border-radius:0;width:14px;height:11px}body[data-art-style=sketches] .mini-cup:after,body[data-art-style=sketches] .key-cup:after{display:none}body[data-art-style=sketches] .mini-cup.unsold,body[data-art-style=sketches] .key-cup.available{background-color:#0000;background-image:url(/campus-coffee-market/art/sketches/coloured/cup-available-exact.png)}body[data-art-style=sketches] .mini-cup.sold,body[data-art-style=sketches] .key-cup.sold{background-color:#0000;background-image:url(/campus-coffee-market/art/sketches/coloured/cup-sold-exact.png);border:0}@keyframes cupPulse{to{transform:translateY(-2px)}}body[data-art-style=sketches] .shop{height:100px;box-shadow:none;background-color:#0000;background-image:url(/campus-coffee-market/art/sketches/coloured/coffee-shop-exact.png);background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border:0;border-radius:0;padding:0}body[data-art-style=sketches] .shop:before,body[data-art-style=sketches] .shop .awning{display:none}body[data-art-style=sketches] .shop strong{z-index:3;color:#5b3520;font-family:Georgia,serif;font-size:clamp(8px,.9vw,11px);line-height:1;position:absolute;bottom:9%;left:8%;right:8%}body[data-art-style=sketches] .shop .cup-rack{align-content:flex-end;gap:1px;height:27%;inset:30% 12% auto}body[data-art-style=sketches] .shop>span:not(.shop-bubble){bottom:-20px}.scene-caption{z-index:7;color:#255e50;text-align:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#f7fffaeb;border:1px solid #47856c59;border-radius:11px;justify-content:center;align-items:center;gap:10px;min-height:48px;padding:9px 14px;font-size:13px;display:flex;position:absolute;bottom:2.7%;left:3%;right:50.5%;box-shadow:0 6px 20px #2c5c461f}.scene-caption.shortage{color:#8e3b2c;background:#fff4eff0;border-color:#e9a18e}.scene-caption.surplus{color:#76550d;background:#fffae7f0;border-color:#e6c166}.caption-copy{min-width:0}.caption-next{min-height:32px;color:inherit;font:inherit;cursor:pointer;background:#ffffffb8;border:1px solid;border-radius:8px;flex:none;padding:5px 9px;font-size:10px;font-weight:850}.caption-next:hover{background:#fff;transform:translateY(-1px)}.caption-next:focus-visible{outline-offset:2px;outline:3px solid #1e695d47}body[data-art-style=sketches] .shop-bubble,body[data-art-style=sketches] .agent-thought,body[data-art-style=sketches] .scene-caption{border:7px solid #0000;background-clip:padding-box;border-image-source:url(/campus-coffee-market/art/sketches/coloured/text-box-border-exact.png);border-image-slice:42 58;border-image-width:8px;border-image-repeat:stretch;border-radius:0}body[data-art-style=sketches] .shop-bubble:after,body[data-art-style=sketches] .agent-thought:before{border-color:#5b3520}.site-credit{width:min(1180px,100% - 34px);color:var(--muted);letter-spacing:.1em;text-align:center;text-transform:uppercase;margin:18px auto 28px;font-size:10px;font-weight:800}.site-credit span{margin:0 .45em}.site-credit a{color:inherit;text-underline-offset:.22em}.site-credit a:hover{color:var(--ink)}.caption-icon{color:#fff;background:#29906f;border-radius:50%;flex:none;place-items:center;width:27px;height:27px;font-weight:900;display:grid}.shortage .caption-icon{background:var(--coral)}.surplus .caption-icon{background:#d59b22}.scene-stats{z-index:8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffdf8f0;border:1px solid #47695e57;border-radius:11px;grid-template-columns:1.25fr repeat(3,1fr);min-height:48px;display:grid;position:absolute;bottom:2.7%;left:50.5%;right:3%;overflow:hidden;box-shadow:0 6px 20px #2c5c461f}.scene-stat{text-align:center;border-left:1px solid #dde4df;place-content:center;min-width:0;padding:7px 5px;display:grid}.scene-stat:first-child{border-left:0}.scene-stat small{color:#78857f;letter-spacing:.08em;font-size:7px;font-weight:900}.scene-stat strong{color:var(--ink);font-family:Georgia,serif;font-size:18px;line-height:1.1}.scene-stat.price strong{color:var(--coral);font-size:20px}.visual-key{color:#718079;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 24px;min-height:38px;padding:8px 16px;font-size:10px;font-weight:750;display:flex}.visual-key span{align-items:center;gap:6px;display:inline-flex}.key-shirt{border-radius:3px 3px 1px 1px;width:10px;height:9px;display:inline-block;position:relative}.key-shirt:before,.key-shirt:after{content:"";background:inherit;border-radius:1px;width:4px;height:4px;position:absolute;top:1px}.key-shirt:before{left:-3px;transform:rotate(25deg)}.key-shirt:after{right:-3px;transform:rotate(-25deg)}.key-shirt.willing{background:#218263}.key-shirt.unwilling{background:#d65348}.control-panel{background:linear-gradient(#fffdf9,#faf7ef);padding:20px}.step-marker{align-items:center;margin-bottom:21px;display:flex}.step-marker span{color:#87928d;background:#fff;border:1px solid #bdc9c3;border-radius:50%;place-items:center;width:27px;height:27px;font-size:11px;font-weight:850;display:grid}.step-marker span.active{color:#fff;border-color:var(--green);background:var(--green)}.step-marker i{background:#d5dcd7;flex:1;height:2px}.scenario-grid{grid-template-columns:1fr 1fr;gap:6px;margin-bottom:12px;display:grid}.policy-toggle{background:#e9eeea;border-radius:11px;grid-template-columns:1.15fr 1fr 1fr;gap:5px;margin-bottom:15px;padding:4px;display:grid}.policy-toggle button{color:#66756f;cursor:pointer;background:0 0;border:0;border-radius:8px;min-height:42px;padding:5px 6px;font-size:9px;font-weight:850;line-height:1.15}.policy-toggle button.selected{color:#fff;background:var(--green);box-shadow:0 3px 8px #1b756933}.secondary-kicker{margin-top:3px}.scenario-button{color:#526a63;cursor:pointer;background:#fff;border:1px solid #d2dbd5;border-radius:10px;min-height:47px;padding:7px 8px;font-size:11px;font-weight:800}.scenario-button span{color:var(--coral);margin-right:4px;font-size:15px}.scenario-button.selected{border:2px solid var(--green);color:var(--green-dark);background:#edf8f4;box-shadow:0 3px 10px #1b75691a}.shock-card,.shock-badge{border-radius:12px;align-items:center;gap:12px;display:flex}.shock-card{background:#fff8e8;border:1px solid #ecd8b8;margin-bottom:17px;padding:13px}.shock-card.policy-card{background:#f0f8f5;border-color:#c9ddd6}.shock-card.policy-card .shock-icon{background:#39786d}.shock-icon,.shock-badge>span{color:#fff;background:var(--coral);border-radius:11px;flex:none;place-items:center;width:43px;height:43px;font-size:22px;font-weight:850;display:grid}.shock-card small,.shock-badge small{color:#a7623b;letter-spacing:.13em;font-size:9px;font-weight:900;display:block}.shock-card strong{color:#493b2d;margin:3px 0;font-family:Georgia,serif;font-size:14px;line-height:1.15;display:block}.shock-card p{color:#776450;margin:0;font-size:10px;line-height:1.35}.prediction-field{border:0;margin:0 0 12px;padding:0}.prediction-field legend{color:var(--ink);margin-bottom:9px;font-family:Georgia,serif;font-size:15px;font-weight:700}.prediction-grid{grid-template-columns:1fr 1fr;gap:6px;display:grid}.prediction-button{color:#4b625b;cursor:pointer;background:#fff;border:1px solid #d2dad5;border-radius:9px;min-height:48px;padding:7px;font-size:11px;font-weight:800;line-height:1.25}.prediction-button:hover:not(:disabled){background:#f1f9f6;border-color:#75a99c}.prediction-button.selected{color:#fff;border-color:var(--green);background:var(--green)}.prediction-button:disabled{opacity:.48;cursor:default}.primary-button{color:#fff;background:var(--green);width:100%;min-height:53px;box-shadow:0 7px 0 var(--green-dark);cursor:pointer;border:0;border-radius:11px;padding:10px 16px;font-weight:850}.primary-button:hover:not(:disabled){background:#20877a;transform:translateY(-1px)}.primary-button:active:not(:disabled){box-shadow:0 3px 0 var(--green-dark);transform:translateY(4px)}.primary-button:disabled{color:#8c9792;cursor:default;background:#e0e5e1;box-shadow:0 5px #c6cec8}.hint{color:#8a958f;text-align:center;margin:12px 0 0;font-size:9px}.shock-badge{background:#eef7f3;padding:14px}.shock-badge strong{font-family:Georgia,serif;font-size:16px;display:block}.shock-badge small{color:#66766f;letter-spacing:0;margin-top:3px;line-height:1.35}.watch-list{margin-top:25px}.watch-list>p{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin:0 0 12px;font-size:11px;font-weight:800}.watch-list span{color:#9aa49f;border-bottom:1px solid #e6e9e6;align-items:center;gap:10px;min-height:45px;font-size:12px;font-weight:750;display:flex}.watch-list span i{background:#e6e9e6;border-radius:50%;place-items:center;width:24px;height:24px;font-size:10px;font-style:normal;display:grid}.watch-list span.seen{color:var(--green-dark)}.watch-list span.seen i{color:#fff;background:var(--green)}.waiting-copy{color:#687871;text-align:center;margin-top:26px;font-size:11px}.waiting-copy i{background:var(--coral);border-radius:50%;width:8px;height:8px;margin-right:6px;animation:.7s infinite alternate blink;display:inline-block}.round-lesson{color:#214f49;background:#edf8f5;border:1px solid #b9d9d2;border-radius:14px;margin-top:16px;padding:15px 16px}.round-lesson small{color:var(--teal);letter-spacing:.09em;margin-bottom:5px;font-size:10px;font-weight:900;display:block}.round-lesson strong{font-size:15px;line-height:1.25;display:block}.round-lesson p{color:#486962;margin:6px 0 0;font-size:12px;line-height:1.45}@keyframes blink{to{opacity:.25}}.result-mark{background:#e9f6ef;border-radius:12px;align-items:center;gap:12px;padding:14px;display:flex}.result-mark>span{color:#fff;background:#2a9a72;border-radius:50%;place-items:center;width:42px;height:42px;font-size:22px;font-weight:900;display:grid}.result-mark.try-again{background:#fff4df}.result-mark.try-again>span{background:#d89f2e}.result-mark strong,.result-mark small{display:block}.result-mark strong{font-family:Georgia,serif;font-size:18px}.result-mark small{color:var(--muted);margin-top:3px;font-size:10px;line-height:1.3}.result-numbers{grid-template-columns:1fr 1fr;gap:8px;margin:15px 0;display:grid}.result-numbers div{background:#fff;border:1px solid #dbe1dc;border-radius:10px;padding:11px}.result-numbers span,.result-numbers small{color:#7b8882;letter-spacing:.08em;font-size:8px;font-weight:800;display:block}.result-numbers strong{color:var(--coral);margin:2px 0;font-family:Georgia,serif;font-size:21px;display:block}.result-explanation{color:#53665f;font-size:12px;line-height:1.55}.economics-button{margin-top:6px}.text-button{width:100%;color:var(--green-dark);cursor:pointer;background:0 0;border:0;margin-top:13px;font-size:11px;font-weight:850}.economics-panel{background:var(--paper);box-shadow:var(--shadow);border:1px solid #d8ded6;border-radius:18px;grid-template-columns:.9fr 1.1fr;align-items:center;gap:30px;margin-top:13px;padding:25px;display:grid}.economics-panel[hidden]{display:none}.economics-panel p:not(.eyebrow){color:var(--muted);line-height:1.55}#economics-chart{background:#fbfaf6;border-radius:12px;width:100%;height:280px}.chart-legend{color:#66736e;flex-wrap:wrap;gap:8px 15px;margin-top:16px;font-size:11px;display:flex}.chart-legend span{align-items:center;gap:7px;display:inline-flex}.legend-line{border-top:3px solid #6f7773;width:25px;height:0}.legend-line.baseline{border-top-style:dashed;border-top-width:2px}.legend-line.shifted{border-color:var(--teal)}.legend-line.shifted.demand{border-color:var(--coral)}.legend-line.shifted.policy{border-color:#c17b18}@media (width<=1050px){.metrics{grid-template-columns:repeat(5,minmax(0,1fr))}.metric{padding:12px}.metric strong{font-size:24px}.game-layout{grid-template-columns:1fr 310px}.control-panel{padding:16px}}@media (width<=820px){.topbar{align-items:flex-start}.brand small{display:none}.header-actions{flex-wrap:wrap;justify-content:flex-end}.icon-button{min-height:40px;padding:0 10px;font-size:11px}.page-shell{width:min(100% - 20px,720px);padding-top:20px}.intro-row{align-items:flex-start}.phase-pill{display:none}.metrics{grid-template-columns:repeat(2,1fr)}.metric,.metric:first-child,.metric:last-child{border-radius:11px}.metric:last-child{grid-column:1/-1}.game-layout{grid-template-columns:1fr}.market-scene{height:510px}.scene-caption{font-size:11px;right:48%}.scene-stats{left:53%}.control-panel{order:-1}.economics-panel{grid-template-columns:1fr}}@media (width<=520px){.topbar{padding:10px 12px}.brand strong{font-size:16px}.brand-mark{width:38px;height:38px;font-size:19px}.header-actions .reset{display:none}h1{font-size:30px}.metric{min-height:78px}.metric strong{font-size:23px}.market-scene{height:430px}.seating-area{top:44%;left:40%;right:1.5%}.scene-caption{flex-wrap:wrap;gap:6px;min-height:44px;bottom:2%;left:2%;right:2%}.caption-copy{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.caption-next{min-height:28px;padding-block:3px}.scene-stats{min-height:42px;bottom:14%;left:31%;right:2%}.scene-stat{padding-inline:2px}.scene-stat small{font-size:6px}.scene-stat strong{font-size:14px}.scene-stat.price strong{font-size:15px}.shops-row{gap:3px;left:42%;right:1.5%}.shop{height:95px}.shop strong{font-size:8px}.shop>span{font-size:7px}.visual-key{gap:9px;padding-inline:8px;font-size:8px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
