:root{font-family:"Segoe UI",system-ui,sans-serif;color:#162b29;background:#f4f3ed;font-synthesis:none;--ink:#162b29;--muted:#61716c;--line:#dce1d8;--green:#d6f57a;--paper:#fffefa;--orange:#f17451;--red:#a9392d}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer;border:0;border-radius:9px;font-weight:700;padding:12px 17px;background:var(--ink);color:#fff}button:hover{filter:brightness(1.12)}button:disabled{opacity:.5;cursor:wait}button.secondary{background:#e9eee4;color:var(--ink)}button.danger{background:#f8e5dc;color:#923f2d}button.small{padding:8px 12px;font-size:13px}input,select{min-width:0;width:100%;border:1px solid #c7d0c5;border-radius:8px;padding:11px 12px;background:#fff;color:var(--ink)}input:focus,button:focus-visible,a:focus-visible,select:focus{outline:3px solid #9cbf55;outline-offset:2px}
.topbar{height:77px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1420px)/2));gap:16px;background:#f4f3ed}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);font-size:18px;font-weight:850;letter-spacing:1px}.brand-light{font-weight:400;margin-left:4px}.brand-mark{position:relative;background:var(--ink);color:var(--green);width:40px;height:40px;border-radius:10px;display:grid;place-items:center;font-size:24px}.brand-mark span{font-size:14px;position:absolute;right:3px;top:1px}.connection{font-size:12px;font-weight:700;color:var(--muted);display:flex;align-items:center;gap:7px;text-align:right}.connection:before{content:"";width:8px;height:8px;background:#c0c8bc;border-radius:100%}.connection.live:before{background:#34855e}.connection.offline{color:#a4442e}.connection.offline:before{background:var(--orange)}
main{max-width:1420px;margin:0 auto;padding:28px 24px 40px}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(26px,3vw,39px);letter-spacing:-1.3px;line-height:1.1;margin-bottom:9px}h2{font-size:19px;letter-spacing:-.4px;margin-bottom:16px}h3{font-size:15px;margin-bottom:7px}p{line-height:1.55}.eyebrow{font-size:11px;font-weight:800;letter-spacing:1.6px;text-transform:uppercase;color:var(--muted);margin:0 0 10px}.subtle{font-size:13px;color:var(--muted)}.muted{color:var(--muted)}.intro{max-width:1060px}.hero{display:grid;grid-template-columns:1.2fr .85fr;gap:50px;align-items:center;min-height:65vh}.hero h1{font-size:clamp(42px,5vw,69px);line-height:1.01;max-width:650px}.hero-copy{font-size:18px;color:#52665d;max-width:540px}.hero-label{display:inline-block;padding:7px 10px;background:#e7eddc;border-radius:5px;font-size:12px;font-weight:700;margin-bottom:22px}.join-card{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:32px;box-shadow:0 14px 38px #162b2909}.join-card button{width:100%;margin:16px 0}.join-card label{display:block;font-weight:700;margin:20px 0 8px}.join-card h2{font-size:24px}.rules-list{display:grid;gap:14px;padding:0;list-style:none;margin:28px 0}.rules-list li{display:flex;gap:13px;line-height:1.5;font-size:14px}.rule-number{display:inline-grid;place-items:center;flex:0 0 27px;height:27px;background:#e7eddc;border-radius:7px;font-weight:800}
.page-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:22px}.page-heading p{margin:0}.badge{display:inline-block;white-space:nowrap;padding:7px 11px;border-radius:100px;background:#e3e8dc;font-size:11px;font-weight:800;letter-spacing:.6px;text-transform:uppercase}.badge.running{background:var(--green)}.badge.paused{background:#ffe4be}.badge.ended{background:#dce5ff}.card{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:22px}.card.dark{background:var(--ink);border-color:var(--ink);color:#fff}.dark .subtle,.dark .eyebrow{color:#b3c4b5}.balance-bar{position:sticky;top:0;z-index:10;display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr;gap:1px;background:#40544a;border:1px solid #162b29;border-radius:13px;overflow:hidden;box-shadow:0 7px 18px #162b2912;margin-bottom:20px}.balance-cell{background:var(--ink);color:#fff;padding:17px 20px}.balance-label{font-size:11px;color:#b9ccbc;text-transform:uppercase;letter-spacing:1.1px}.balance-value{font-size:clamp(23px,2.6vw,35px);font-weight:750;letter-spacing:-1px;font-variant-numeric:tabular-nums;margin:4px 0 0}.balance-value.lime{color:var(--green)}.balance-foot{color:#b9ccbc;font-size:11px;margin-top:3px}
.market-strip{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center;margin-bottom:22px;padding:17px 20px;border:1px solid var(--line);border-radius:12px;background:#e9eee0}.market-strip.rain{background:#e4ebf1}.market-strip.festival{background:#fff0cd}.weather-title{font-weight:800;font-size:15px}.weather-detail{font-size:13px;color:#536259;margin-top:4px}.clock{text-align:right;font-variant-numeric:tabular-nums;min-width:160px}.clock strong{font-size:20px}.clock small{display:block;color:var(--muted);margin-top:3px}.progress{height:4px;background:#cfd8c7;border-radius:4px;margin-top:10px;overflow:hidden}.progress div{height:100%;background:#56723d;transition:width .5s linear}.grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(310px,.85fr);gap:20px}.stack{display:grid;gap:20px;align-content:start}.decision-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.decision{display:flex;flex-direction:column;padding-right:17px;border-right:1px solid var(--line)}.decision:last-child{padding-right:0;border:0}.decision label{font-size:13px;font-weight:800;display:block;margin-bottom:7px}.decision form{display:flex;flex-direction:column;gap:9px}.decision p{font-size:12px;color:var(--muted);min-height:43px;margin-bottom:10px}.current-label{font-size:12px;color:#42694c;background:#edf3e6;padding:7px 9px;border-radius:6px;margin-bottom:12px}.delivery-list{display:grid;gap:8px}.delivery{display:flex;justify-content:space-between;gap:10px;font-size:13px;background:#f0f2e9;padding:10px 12px;border-radius:8px}.delivery strong{font-variant-numeric:tabular-nums}.empty{font-size:13px;color:var(--muted);line-height:1.6}.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.metric{border:1px solid var(--line);border-radius:10px;padding:12px}.metric span{font-size:11px;color:var(--muted);display:block}.metric strong{font-size:22px;font-variant-numeric:tabular-nums;display:block;margin-top:5px}.metric.positive strong{color:#2d7049}.reputation{display:flex;align-items:center;gap:15px}.reputation-score{font-size:35px;font-weight:800;letter-spacing:-1px}.rep-track{height:8px;border-radius:8px;background:#e8eddf;overflow:hidden;margin:10px 0}.rep-track div{height:100%;background:#83a94f}.inline-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:15px}.inline-heading h2{margin:0}.board-row{display:grid;grid-template-columns:minmax(0,1fr) 66px 62px;gap:10px;align-items:center;padding:13px 0;border-bottom:1px solid var(--line);transition:background .2s}.board-row:last-child{border-bottom:0}.board-row.sale{background:#f1f8e5}.stall-name{font-size:14px;font-weight:750;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stall-name small{font-size:10px;font-weight:650;margin-left:5px;background:#e6ebdf;padding:2px 4px;border-radius:4px}.stall-info{font-size:11px;color:var(--muted);margin-top:5px}.stall-price{text-align:right;font-size:18px;font-weight:800;font-variant-numeric:tabular-nums}.stall-stock{text-align:right;font-size:12px;font-weight:700}.stock-empty{color:#ac4b35}.board-head{font-size:10px;color:var(--muted);letter-spacing:1px;text-transform:uppercase;padding-top:0}.board-head .stall-price,.board-head .stall-stock{font:inherit}.profit-positive{color:#2c724d}.profit-negative{color:#af4635}.ledger{display:grid;gap:0}.ledger-row{display:grid;grid-template-columns:1fr auto;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);font-size:12px;line-height:1.4}.ledger-row:last-child{border-bottom:0}.ledger-row small{color:var(--muted);display:block;font-size:10px;margin-top:3px}.ledger-row strong{font-variant-numeric:tabular-nums;white-space:nowrap}.news{font-size:12px;line-height:1.5;border-left:3px solid #b5d17a;padding:2px 0 2px 12px;margin:10px 0}.history-wrap{overflow:auto}.history-wrap table{border-collapse:collapse;width:100%;font-size:12px;white-space:nowrap}.history-wrap th{text-align:left;font-size:10px;text-transform:uppercase;color:var(--muted);font-weight:700;letter-spacing:.6px;border-bottom:1px solid var(--line);padding:10px}.history-wrap td{padding:12px 10px;border-bottom:1px solid #e9ece4;font-variant-numeric:tabular-nums}.teacher-controls{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.teacher-controls select{width:auto}.teacher-top{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center}.teacher-layout{display:grid;grid-template-columns:1fr 320px;gap:20px}.teacher-table td:first-child{font-weight:750}.teacher-table .tiny{font-size:10px;font-weight:400;display:block;color:var(--muted)}.chart{width:100%;height:240px;display:block}.chart-labels{display:flex;gap:12px;flex-wrap:wrap;margin-top:14px;font-size:11px}.chart-key{display:flex;gap:5px;align-items:center}.chart-dot{width:8px;height:8px;border-radius:50%}.summary-banner{background:#d6f57a;border-radius:12px;padding:22px;margin-bottom:20px}.summary-banner h2{margin-bottom:6px}.summary-banner p{margin:0;font-size:14px}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%) translateY(140px);z-index:100;background:var(--ink);color:#fff;padding:14px 22px;border-radius:10px;font-size:14px;box-shadow:0 10px 25px #0002;max-width:min(90vw,680px);transition:transform .2s}.toast.visible{transform:translateX(-50%) translateY(0)}.toast.error{background:#923e30}.help{display:flex;gap:8px;align-items:flex-start;font-size:12px;color:var(--muted);line-height:1.55;border-top:1px solid var(--line);padding-top:15px;margin-top:18px}.help strong{color:var(--ink)}.error-text{color:var(--red);font-size:13px;min-height:20px}.teacher-link{font-size:12px;color:#476b51;text-align:center;display:block}.full{grid-column:1/-1}footer{text-align:center;font-size:11px;letter-spacing:.6px;color:#7c8b7e;padding:15px 20px 30px}.paused-banner{font-size:13px;color:#8b571d;background:#fff0d4;padding:11px 15px;border-radius:9px;margin-bottom:18px}.form-note{font-size:11px;line-height:1.5;color:var(--muted);margin:7px 0 0}.offline-banner{background:#ffe5dc;color:#8d3b29;padding:12px 16px;border-radius:9px;font-size:13px;margin-bottom:15px}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
@media(max-width:1050px){.grid{grid-template-columns:minmax(0,1fr) 320px}.decision-grid{grid-template-columns:1fr}.decision{border-right:0;border-bottom:1px solid var(--line);padding:0 0 16px}.decision:last-child{padding:0}.decision p{min-height:0}.decision form{display:grid;grid-template-columns:1fr auto}.teacher-layout{grid-template-columns:1fr}.teacher-layout>.stack:last-child{grid-template-columns:1fr 1fr}.hero{gap:25px}.topbar{padding:0 24px}.balance-cell{padding:15px}.balance-foot{font-size:10px}.teacher-top{grid-template-columns:1fr}}
@media(max-width:740px){main{padding:22px 15px}.topbar{height:65px;padding:0 15px}.brand{font-size:15px;gap:8px}.brand-mark{width:33px;height:33px;font-size:20px}.connection{font-size:10px}.hero{grid-template-columns:1fr;gap:25px;min-height:0}.hero h1{font-size:45px}.hero-copy{font-size:16px}.join-card{padding:23px}.grid{grid-template-columns:1fr}.balance-bar{grid-template-columns:1fr 1fr;gap:1px;top:0}.balance-cell{padding:12px 15px}.balance-value{font-size:27px}.balance-foot{display:none}.page-heading{gap:12px}.page-heading h1{font-size:28px}.card{padding:18px}.market-strip{padding:14px;gap:10px}.clock{min-width:110px}.clock strong{font-size:17px}.weather-detail{font-size:11px}.teacher-layout>.stack:last-child{grid-template-columns:1fr}.metric-grid{gap:7px}.metric{padding:10px}.metric strong{font-size:20px}.summary-banner{padding:18px}.chart{height:200px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

.preview-toolbar{max-width:1420px;margin:0 auto;padding:12px 24px;display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid #dce1d8}.preview-toolbar strong{display:block;font-size:10px;letter-spacing:1.2px}.preview-toolbar span{display:block;font-size:11px;color:#61716c;margin-top:3px}.preview-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.preview-actions a{font-size:12px;color:#365d45;font-weight:700}.preview-actions select{padding:7px;width:auto;font-size:12px}@media(max-width:740px){.preview-toolbar{align-items:flex-start;flex-direction:column;padding:12px 15px}.preview-actions{gap:10px}.preview-actions a{font-size:11px}}

.lesson-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;margin:20px 0}.lesson-option{padding:16px;border:1px solid var(--line);border-radius:10px;background:#f7f9f3}.lesson-option label,.lesson-option h3{font-size:14px;font-weight:750;margin:0}.lesson-option p{font-size:12px;line-height:1.5;min-height:36px;margin:8px 0 12px}.lesson-option select{width:100%;font-size:13px}.lesson-banner{font-size:12px;background:#eaf0df;padding:12px 16px;border-radius:9px}[hidden]{display:none!important}.lesson-panel .inline-heading{flex-wrap:wrap;gap:12px}

.forecast-card{border-color:#b1c681;background:#f4f8e9}.forecast-card .metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.forecast-card .subtle{font-size:13px;margin:14px 0 8px}

.trace-panel{border:1px solid #c7d5c1;background:#f9fbf6}.trace-panel .subtle{font-size:13px;line-height:1.6}.trace-metrics{grid-template-columns:repeat(4,minmax(0,1fr));margin:16px 0}.trace-metrics .metric{background:#eef3e8}.trace-observation{margin:20px 0}.trace-note-row{display:flex;gap:10px;margin-top:8px}.trace-note-row input,.trace-note-row select{min-width:0;flex:1}.trace-note-row button{white-space:nowrap}.trace-panel summary{font-size:13px;font-weight:700;cursor:pointer;padding:5px 0}.trace-panel details[open]{border-top:1px solid var(--line);padding-top:12px}@media(max-width:740px){.trace-note-row{flex-direction:column}.trace-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}

.teacher-layout>.stack{min-width:0}.teacher-layout .history-wrap{max-width:100%}@media(min-width:1051px){.teacher-layout{grid-template-columns:minmax(0,1fr) 320px}}
.recipe-row{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end;margin:14px 0}.recipe-row select{width:100%}.upgrade-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:18px}.upgrade-option{padding:16px;border:1px solid var(--line);border-radius:10px;background:#f6f8ee}.upgrade-option h3{font-size:14px}.upgrade-option p{font-size:12px;line-height:1.5;min-height:60px}.upgrade-option button{width:100%;font-size:12px;padding:12px 8px}.forecast-card .metric-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.trace-metrics{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}.balance-foot{white-space:normal}.stall-info{line-height:1.5}@media(max-width:1050px){.upgrade-grid{grid-template-columns:1fr}.upgrade-option p{min-height:0}.recipe-row{grid-template-columns:1fr 1fr}.recipe-row button{grid-column:1/-1}}@media(max-width:740px){.forecast-card .metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.stack{min-width:0;grid-template-columns:minmax(0,1fr)}.stack>.card{min-width:0}.recipe-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}.recipe-row>div{min-width:0}@media(max-width:1050px){.recipe-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}

.sticky-clock-row{grid-column:1/-1;display:flex;align-items:center;gap:16px;padding:9px 20px;background:#28493b;color:#eaf1df;font-size:12px;min-width:0}.sticky-clock-row strong{font-size:13px;color:#d6f57a}.sticky-clock-row span{white-space:nowrap}.sticky-clock-row #sticky-countdown{font-size:16px;font-weight:750;font-variant-numeric:tabular-nums}.sticky-clock-row.closing-soon #sticky-countdown{color:#ffdb8b}.sticky-day-track{height:4px;background:#ffffff22;flex:1;max-width:220px;border-radius:4px;overflow:hidden;margin-left:auto}.sticky-day-track>div{height:100%;background:#d6f57a}.sales-controls{display:flex;gap:8px;flex-wrap:wrap}.sales-controls select{width:auto;font-size:12px;padding:8px}.sales-headline{display:flex;gap:36px;margin:14px 0}.sales-headline strong{font-size:23px;display:block;font-variant-numeric:tabular-nums}.sales-headline span{font-size:11px;color:var(--muted)}.sales-chart{display:block;width:100%;height:auto;max-height:290px}.sales-card .subtle{font-size:12px;line-height:1.6}.unit-equation{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:16px;background:#eff5e5;border-radius:10px;margin:14px 0 8px}.unit-equation span{font-size:11px;display:block;color:var(--muted)}.unit-equation strong{font-size:26px;display:block;margin-top:6px;font-variant-numeric:tabular-nums}.unit-equation small{display:block;font-size:11px;margin-top:4px}.costs-card>.subtle{font-size:13px;margin:14px 0}.costs-tip{font-size:12px;line-height:1.6;border-left:3px solid #a0bd6c;padding-left:12px}.costs-card summary{font-weight:750;font-size:13px;cursor:pointer;padding:8px 0}.profit-lines{margin:8px 0 16px}.profit-lines>div{display:flex;justify-content:space-between;gap:15px;padding:7px 0;font-size:13px}.profit-lines dt{color:var(--muted)}.profit-lines dd{margin:0;font-variant-numeric:tabular-nums}.profit-lines .pnl-subtotal{border-top:1px solid var(--line);font-weight:700}.profit-lines .pnl-total{border-top:2px solid #c0d1aa;font-size:17px;font-weight:800;margin-top:6px;padding-top:12px}.profit-lines .pnl-total dt{color:var(--ink)}@media(max-width:740px){.sticky-clock-row{padding:8px 12px;gap:12px}.sticky-day-track{display:none}.sticky-clock-row #sticky-countdown{font-size:14px}.sales-controls{margin-top:10px}.sales-controls select{max-width:100%;min-width:0}.unit-equation{padding:12px;gap:7px}.unit-equation strong{font-size:21px}.sales-headline{gap:18px}.sales-headline strong{font-size:20px}}

.sales-card .inline-heading{flex-wrap:wrap;gap:12px}.sales-controls{max-width:100%}.sales-controls select{max-width:100%}

.interactive-chart{position:relative;min-width:0}.chart-tooltip{position:absolute;z-index:12;pointer-events:none;background:#17352b;color:#fff;border-radius:8px;padding:10px 13px;box-shadow:0 5px 18px #0003;font-size:12px;line-height:1.5;max-width:240px}.chart-tooltip strong{display:flex;gap:7px;align-items:center;font-size:13px;margin-bottom:3px;overflow-wrap:anywhere}.chart-tooltip>span{display:block;font-variant-numeric:tabular-nums;white-space:nowrap}.chart-line-target:focus{outline:none;stroke:#397b5820}.history-wrap .freeze-stall{border-collapse:separate;border-spacing:0}.freeze-stall th:first-child,.freeze-stall td:first-child{position:sticky;left:0;min-width:150px;max-width:220px;box-shadow:2px 0 0 #dce5d4}.freeze-stall td:first-child{background:#fff;z-index:2}.freeze-stall th:first-child{background:#edf3e5;z-index:3}.freeze-stall td:first-child>span{display:block;max-width:200px;overflow:hidden;text-overflow:ellipsis}

.history-wrap[tabindex]:focus-visible{outline:2px solid #88a96b;outline-offset:3px}

/* Classroom trial: action-first layout and optional detail. */
.page-heading{margin-bottom:16px}.page-heading h1{font-size:28px}
.polished-student .page-heading{padding:0}.polished-student .page-heading p{margin:4px 0}
.polished-student .balance-cell{padding:12px 18px}.polished-student .balance-value{font-size:29px}
.polished-student .market-strip{padding:12px 18px;margin-bottom:14px}
.polished-student .market-strip .clock{display:none}
.polished-student .lesson-banner{font-size:11px;margin:8px 0}
#decisions>.card{box-shadow:none;border:0;border-top:1px solid var(--line);border-radius:0;padding:14px 0 0;margin-top:16px}
#decisions>.help{font-size:11px}
.workspace-fold{border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden}
.workspace-fold>summary{cursor:pointer;padding:17px 20px;font-weight:750;color:var(--ink)}
.workspace-fold>summary:hover{background:#f1f5e9}
.workspace-fold>.card{border:0;box-shadow:none;margin:0!important;border-radius:0}
.workspace-fold:not([open])>section{display:none}
.workspace-fold:has(>#operations-card[hidden]){display:none}
.customer-breakdown select{width:auto;margin-bottom:14px}
.customer-equation{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.customer-equation>div{padding:12px;background:#f1f5eb;border-radius:8px}
.customer-equation>div:last-child{background:#173b30;color:#fff}
.customer-equation span{display:block;font-size:11px;line-height:1.4}
.customer-equation strong{display:block;font-size:25px;margin-top:6px}
.teacher-top{position:sticky;top:0;z-index:15}
@media(max-width:740px){.customer-equation{grid-template-columns:1fr 1fr}.teacher-top{position:static}.page-heading h1{font-size:24px}}
.spoilage-alert{border:1px solid #d5a153;border-left:5px solid #b77721;border-radius:10px;background:#fff3da;color:#613d15;padding:14px 18px;margin:12px 0}
.spoilage-alert strong{font-size:15px}.spoilage-alert p{font-size:13px;margin:6px 0 10px}
.planning-banner{background:#eaf2dc;border:2px solid #8fac59;border-radius:12px;padding:18px 22px;margin:14px 0}.planning-banner h2{margin:0 0 8px}.planning-banner p{font-size:14px;line-height:1.5}.teacher-overview{margin-bottom:32px;min-height:180px}

/* Teacher projector: stable storefronts with authoritative shopper journeys. */
.market-projector{margin-bottom:24px;padding:24px;background:#fffdf7;overflow:hidden}
.projector-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}
.projector-heading h2{margin:0}.projector-heading .eyebrow{color:#32766d;margin-bottom:6px}
.projector-status{color:#39534c;font-weight:650;margin:14px 0}
.market-scene{height:460px;position:relative;isolation:isolate;background:#e6eddf;border:1px solid #c9d5bf;border-radius:18px;overflow:hidden}
.market-lane{position:absolute;inset:36% 0;background:#f4e9d3;border-block:2px dashed #cbbf9f;display:flex;align-items:center;justify-content:center;color:#b0a488;font-size:15px;letter-spacing:.35em;font-weight:800}
.market-entry,.market-exit{position:absolute;top:58%;font-size:10px;font-weight:800;color:#687465}.market-entry{left:1%}.market-exit{right:1%}
.market-stall{position:absolute;padding:0 6px;text-align:center;height:24%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;z-index:2}
.market-stall::before{content:'';position:absolute;inset:0 6px;z-index:-1;background:#fffdf5;border:1px solid #c8d0c1;border-top:12px solid #378478;border-radius:9px 9px 5px 5px;box-shadow:0 4px 0 #00000009}
.market-stall:nth-of-type(3n)::before{border-top-color:#c88c4d}.market-stall:nth-of-type(3n+1)::before{border-top-color:#668bb1}
.stall-name{display:block;width:100%;padding:0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14px;color:#233b35}
.stall-price{font-size:23px;font-weight:800;color:#243e35;font-variant-numeric:tabular-nums}.stall-stock{font-size:11px;color:#42614d}
.market-stall.sold-out::before{background:#f5e8df;border-top-color:#ae705d}.sold-out .stall-stock{color:#9b422e;font-weight:800}
.market-stall.vacant{opacity:.48}.vacant::before{border-top-color:#9aa895;box-shadow:none}
.shopper-layer{position:absolute;inset:0;pointer-events:none;z-index:3}.shopper{position:absolute;width:14px;height:23px;transform:translate(-50%,-50%);filter:drop-shadow(1px 3px 1px #0002);color:#087e78}.shopper.switched{color:#c47b13}.shopper.no-sale{color:#77818b}
.shopper-head{position:absolute;width:9px;height:9px;left:2.5px;top:0;border-radius:50%;background:#e8b797;border:1px solid #715943}.shopper-body{position:absolute;left:1px;top:9px;width:12px;height:12px;background:currentColor;border-radius:5px 5px 2px 2px;border-bottom:3px solid #35454a}
.projector-legend{font-size:13px;color:#40544d;margin:14px 0 6px}.market-projector .form-note{max-width:900px;margin:0}
@media(min-width:1400px){.market-scene{height:520px}.stall-name{font-size:16px}.stall-price{font-size:28px}}
@media(max-width:700px){.market-projector{padding:12px}.market-scene{height:360px}.market-stall{padding:0 1px}.market-stall::before{inset:0 2px}.stall-name{font-size:10px;padding:0 3px}.stall-price{font-size:15px}.stall-stock{font-size:9px}.projector-heading{align-items:flex-start}.projector-legend{font-size:11px}}
.sale-pop{position:absolute;font-weight:900;text-shadow:0 1px white,0 0 5px white;white-space:nowrap;z-index:6;pointer-events:none}
.ad-draw{position:absolute;padding:3px 6px;border:2px dotted #b2790e;border-radius:12px;background:#fff4c7;color:#795000;font-size:10px;font-weight:800;white-space:nowrap;transform:translate(-50%,-50%)}
.market-sky{position:absolute;inset:0;pointer-events:none;z-index:4;overflow:hidden}.scene-weather{position:absolute;right:10px;bottom:8px;z-index:5;background:#fffc;padding:3px 8px;border-radius:12px;font-size:11px;color:#36554c}
.weather-sun{position:absolute;right:12px;top:29%;font-size:35px;color:#e8b521;text-shadow:0 0 16px #ffe68e}.market-scene[data-weather=clear]{background:linear-gradient(135deg,#eff2d5,#e3eddd)}
.market-scene[data-weather=rain]{background:linear-gradient(#bdcbd3,#d4e0df)}.market-scene[data-weather=rain] .market-lane{background:#d3d9dc;border-color:#a3b5bf}.weather-cloud{position:absolute;right:15px;top:28%;font-size:40px;color:#718896}
.rain-drop{position:absolute;top:-12%;height:15px;width:2px;background:#547d9b66;transform:rotate(15deg);animation:market-rain 1.6s linear infinite}.motion-held .rain-drop{animation-play-state:paused}@keyframes market-rain{to{top:110%;margin-left:-35px}}
.festival-flags{position:absolute;top:29%;left:8%;right:8%;color:#b8634f;letter-spacing:25px;white-space:nowrap;overflow:hidden}.shopper-thought{position:absolute;transform:translate(-50%,-130%);padding:4px 7px;border-radius:8px;background:#fffdf4;border:1px solid #c8af85;color:#694e2f;white-space:nowrap;font-size:10px;font-weight:700;z-index:7}
@media(prefers-reduced-motion:reduce){.rain-drop{animation:none;top:45%}}
.release-badge{display:inline-block;font-size:11px;font-weight:750;line-height:1.4;padding:5px 9px;border:1px solid #b8c8ba;border-radius:7px;background:#e9efdc;color:#28483c;white-space:nowrap;margin-left:auto;margin-right:14px}.topbar{flex-wrap:wrap;gap:8px}
