:root{--ink:#182024;--cream:#f7e7bd;--paper:#fffaf0;--red:#ef5b3f;--rust:#a73926;--teal:#1d6f73;--line:#d8caa7;--shadow:0 18px 45px rgba(24,32,36,.15);--ui-font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--display-font-family:Georgia,serif;--chart-font-family:Inter,ui-sans-serif,system-ui,sans-serif;--chart-font-color:var(--ink);--chart-title-weight:700;--chart-axis-size:18;--chart-tick-size:15;--chart-data-size:16}
.theme-gallery{padding:clamp(28px,4vw,52px);background:linear-gradient(145deg,#fffaf0 0%,#f4e6c5 100%);border-bottom:1px solid var(--line)}.gallery-heading{max-width:1380px;margin:0 auto 24px;display:flex;align-items:end;justify-content:space-between;gap:32px}.gallery-heading h1{font:700 clamp(2rem,4vw,3.7rem)/1 Georgia,serif;margin:7px 0 0;max-width:700px}.gallery-heading>p{max-width:460px;margin:0;color:#596164;line-height:1.55}.theme-table-wrap{max-width:1380px;margin:0 auto;overflow-x:auto;padding:2px 2px 12px}.theme-table{width:100%;min-width:1000px;border-collapse:separate;border-spacing:10px;table-layout:fixed}.theme-table th,.theme-table td{padding:0;text-align:left}.theme-table thead th{padding:0 10px 6px;color:#687072;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}.theme-table thead th:first-child{width:132px}.theme-table tbody>tr>th{padding:14px 10px;vertical-align:top}.theme-name{display:block;font:700 1.25rem Georgia,serif;color:var(--ink)}.theme-table tbody>tr>th small{display:block;margin-top:4px;color:#747b7c;font-weight:500}.preview-card{position:relative;display:flex;width:100%;height:150px;overflow:hidden;border-radius:13px;border:1px solid rgba(24,32,36,.24);padding:16px;flex-direction:column;align-items:flex-start;justify-content:flex-end;text-align:left;color:white;background:#596164;box-shadow:0 7px 20px rgba(24,32,36,.12)}button.preview-card{font:inherit;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}button.preview-card:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,18,20,.03) 25%,rgba(12,18,20,.88) 100%);z-index:0}button.preview-card>*{position:relative;z-index:1}button.preview-card:hover{transform:translateY(-4px);box-shadow:0 14px 28px rgba(24,32,36,.22);border-color:var(--red)}button.preview-card.selected{border:3px solid var(--red);box-shadow:0 0 0 3px rgba(239,91,63,.2),0 14px 28px rgba(24,32,36,.22)}button.preview-card:focus-visible{outline:4px solid rgba(239,91,63,.36);outline-offset:2px}.preview-card strong{font:700 1.05rem Georgia,serif}.preview-card small{margin-top:4px;font-size:.74rem;opacity:.84}.preview-badge{position:absolute!important;left:12px;top:12px;background:rgba(255,250,240,.92);color:var(--ink);border-radius:100px;padding:5px 9px;font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.desert-preview{background:url('assets/desert-background-v2.png') center/cover}.balloon-preview{background:url('assets/carnival-balloon-booth-v1.png') center/cover}.wheel-preview,.striker-preview{background:url('assets/carnival-prize-booth-v1.png') center/cover}.city-preview{background:url('assets/city-construction-v1.png') center/cover}.placeholder{align-items:center;justify-content:center;text-align:center;color:#776f60;background:repeating-linear-gradient(135deg,#f6eedc,#f6eedc 10px,#eee2c8 10px,#eee2c8 20px);border:1px dashed #b9aa86;box-shadow:none}.placeholder-mark{display:grid;place-items:center;width:34px;height:34px;margin-bottom:10px;border:1px solid #b9aa86;border-radius:50%;font-size:1.35rem;color:var(--rust)}.placeholder strong{font-family:Georgia,serif}.placeholder small{opacity:.78}.workspace{border-top:5px solid var(--ink);scroll-margin-top:12px}@media(max-width:900px){.gallery-heading{align-items:flex-start;flex-direction:column;gap:12px}.theme-gallery{padding:28px 18px}.theme-table{min-width:880px}.preview-card{height:135px}}
@media(max-width:520px){.carnival-worker{left:0;width:35%}}
.scene-select{width:100%;border:1px solid var(--line);background:white;color:var(--ink);border-radius:9px;padding:12px;font:700 .9rem system-ui;cursor:pointer}.stage [hidden]{display:none!important}
.crew{position:absolute;inset:0;z-index:4;pointer-events:none}.crew img{position:absolute;width:clamp(30px,5.2%,56px);height:auto;filter:drop-shadow(0 4px 3px rgba(0,0,0,.42));transform-origin:48% 92%;transition:left .12s linear,top .12s linear;will-change:left,top,transform}.crew img:nth-child(1){animation:hammer .3s cubic-bezier(.45,0,.55,1) infinite alternate}.crew img:nth-child(2){animation:hammer .36s cubic-bezier(.45,0,.55,1) infinite alternate-reverse}.crew img:nth-child(3){animation:hammer .4s cubic-bezier(.45,0,.55,1) infinite alternate}@keyframes hammer{from{transform:rotate(-8deg) translateY(2px)}to{transform:rotate(11deg) translateY(-4px)}}
.city-worker{position:absolute;left:43%;top:16%;z-index:2;width:23%;height:55%;overflow:hidden;pointer-events:none;filter:drop-shadow(0 8px 6px rgba(12,17,20,.42));opacity:var(--worker-opacity,0);will-change:opacity}.city-worker img{display:block;width:100%;height:92%;object-fit:contain;object-position:center bottom;transform:translateY(calc(var(--worker-descend,1)*72%)) rotate(-3deg);transform-origin:50% 90%;will-change:transform}
.carnival-worker{position:absolute;left:4%;bottom:-10%;z-index:4;width:32%;height:91%;pointer-events:none;transform-origin:48% 84%;filter:drop-shadow(0 12px 8px rgba(30,14,8,.38));will-change:transform}.carnival-worker img{width:100%;height:100%;object-fit:contain;object-position:center bottom}.carnival-worker.ready{transform:translateX(-5%) rotate(-2deg)}.carnival-worker.push{animation:carnival-push .52s cubic-bezier(.22,.75,.28,1) both}.carnival-worker.recoil{animation:carnival-recoil .65s cubic-bezier(.2,.9,.25,1) both}@keyframes carnival-push{0%{transform:translateX(-5%) rotate(-2deg)}55%{transform:translateX(19%) rotate(7deg) scale(.98,1.02)}100%{transform:translateX(23%) rotate(9deg) scale(.97,1.03)}}@keyframes carnival-recoil{0%{transform:translateX(23%) rotate(9deg)}38%{transform:translateX(-11%) rotate(-10deg)}70%{transform:translateX(-5%) rotate(4deg)}100%{transform:translateX(-7%) rotate(-2deg)}}
.striker-contestant{position:absolute;left:2%;bottom:-13%;z-index:4;width:25%;height:70%;pointer-events:none;transform-origin:48% 88%;filter:drop-shadow(0 9px 6px rgba(25,12,8,.38));transition:left .32s cubic-bezier(.2,.75,.3,1);will-change:left,transform}.striker-pose{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center bottom}.striker-impact{opacity:0}.striker-contestant.ready{transform:rotate(-4deg) translateY(-7px)}.striker-contestant.ready .striker-windup{opacity:1}.striker-contestant.ready .striker-impact{opacity:0}.striker-contestant.swing{animation:striker-swing .54s cubic-bezier(.18,.78,.25,1) both}.striker-contestant.swing .striker-windup{animation:windup-pose .54s steps(1,end) both}.striker-contestant.swing .striker-impact{animation:impact-pose .54s steps(1,end) both}@keyframes windup-pose{0%,34%{opacity:1}35%,100%{opacity:0}}@keyframes impact-pose{0%,34%{opacity:0}35%,100%{opacity:1}}@keyframes striker-swing{0%{transform:rotate(-6deg) translate(-4px,-10px)}28%{transform:rotate(-10deg) translate(-7px,-14px)}48%{transform:rotate(8deg) translate(14px,9px) scale(1.03,.96)}62%{transform:rotate(2deg) translate(7px,3px) scale(.99,1.02)}78%{transform:rotate(5deg) translate(10px,6px)}100%{transform:rotate(3deg) translate(8px,5px)}}
.balloon-players{position:absolute;inset:0;z-index:4;pointer-events:none;transform-origin:50% 100%;will-change:transform;overflow:hidden}.balloon-players img{width:100%;height:100%;object-fit:contain;object-position:center bottom;transform:translateY(23%) scale(.62);transform-origin:50% 100%;filter:drop-shadow(0 8px 7px rgba(31,14,8,.28))}.balloon-players.throwing{animation:dart-throwers .58s cubic-bezier(.25,.7,.3,1) infinite alternate}@keyframes dart-throwers{0%{transform:translateY(2px) rotate(-.25deg)}45%{transform:translateY(-1px) rotate(.2deg)}100%{transform:translateY(1px) rotate(-.1deg)}}
.desert-chase-preview{background:url('assets/desert-background-v2.png') center/cover}.chase-duo{position:absolute;left:7%;top:24%;z-index:4;width:31%;height:20%;pointer-events:none;will-change:left,top,transform;filter:drop-shadow(0 7px 5px rgba(45,25,12,.25));transition:top .18s ease}.chase-duo img{width:100%;height:100%;object-fit:contain;object-position:center}.chase-duo.running{animation:desert-chase-bounce .18s ease-in-out infinite alternate}@keyframes desert-chase-bounce{from{transform:translateY(2px) rotate(-1deg)}to{transform:translateY(-4px) rotate(1deg)}}
.stage>.scene-bg{width:100%;height:100%;object-fit:cover;display:block}.stage canvas{z-index:3}.character{position:absolute;z-index:2;pointer-events:none;will-change:transform,left,top}.character img{display:block;width:100%;height:100%;object-fit:contain}.hunter{left:-1.5%;bottom:-6%;width:29%;height:76%;transform-origin:27% 72%;transition:transform .22s ease}.hunter.tracking{transform:rotate(var(--aim-angle,0deg))}.hunter.recoil{animation:recoil .28s cubic-bezier(.2,.9,.3,1)}.hare{left:72%;top:55%;width:18%;height:27%;transform-origin:center bottom;filter:drop-shadow(0 7px 5px rgba(24,32,36,.3));transition:left .32s cubic-bezier(.2,.7,.3,1),top .32s cubic-bezier(.2,.7,.3,1),transform .18s ease}.hare.running{animation:bound .28s ease-in-out infinite alternate}.hare.dodge{animation:dodge .36s cubic-bezier(.2,.9,.3,1)}.caption{z-index:5}.flash{z-index:4}@keyframes bound{from{transform:translateY(0) rotate(-2deg)}to{transform:translateY(-12px) rotate(3deg)}}@keyframes dodge{0%{transform:translate(0,0) rotate(0)}45%{transform:translate(42px,-32px) rotate(-7deg)}100%{transform:translate(76px,4px) rotate(3deg)}}@keyframes recoil{0%{transform:rotate(var(--aim-angle,0deg)) translate(0,0)}40%{transform:rotate(var(--aim-angle,0deg)) translate(-12px,4px)}100%{transform:rotate(var(--aim-angle,0deg)) translate(0,0)}}
*{box-sizing:border-box}body{margin:0;background:#ede5d2;color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;min-height:100vh}.topbar{height:68px;background:var(--ink);color:var(--cream);display:flex;align-items:center;justify-content:space-between;padding:0 28px;border-bottom:4px solid var(--red)}.brand{display:flex;gap:12px;align-items:center;font-family:Georgia,serif;font-weight:700;font-size:1.35rem}.brand-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--red);color:white}.status{font-size:.85rem;opacity:.75}.workspace{display:grid;grid-template-columns:minmax(280px,360px) 1fr;min-height:calc(100vh - 68px)}.panel{padding:32px;background:var(--paper);border-right:1px solid var(--line);display:flex;flex-direction:column;gap:28px}.eyebrow,.kicker,.section-label{font-size:.72rem;letter-spacing:.14em;font-weight:800;color:var(--rust);text-transform:uppercase}.controls h1{font-family:Georgia,serif;font-size:clamp(2rem,3vw,3rem);line-height:.98;margin:8px 0 12px}.lede{color:#596164;line-height:1.55;margin:0}.section-label{display:block;margin-bottom:10px}.dropzone{border:2px dashed #b8a985;background:#fffdf7;border-radius:12px;min-height:118px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;transition:.2s}.dropzone:hover,.dropzone.drag{border-color:var(--red);background:#fff5e2;transform:translateY(-1px)}.dropzone input{display:none}.upload-icon{font-size:1.5rem;color:var(--red)}.dropzone small{color:#747b7c}.text-button{border:0;background:none;color:var(--teal);padding:10px 0 0;font-weight:700;cursor:pointer}.settings{display:grid;gap:12px}.settings label{font-size:.78rem;font-weight:700;color:#596164}.settings input:not([type=range]){display:block;width:100%;border:1px solid var(--line);background:white;border-radius:8px;padding:10px;margin-top:6px;font:inherit;color:var(--ink)}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.settings input[type=range]{width:100%;accent-color:var(--red);margin-top:10px}.primary,.secondary,.stage-actions button{border-radius:9px;padding:12px 16px;font:inherit;font-weight:800;cursor:pointer}.primary{border:0;background:var(--red);color:white;box-shadow:0 5px 0 var(--rust)}.primary:active{transform:translateY(3px);box-shadow:0 2px 0 var(--rust)}.secondary{border:1px solid var(--line);background:transparent;color:var(--ink)}.stage-wrap{padding:clamp(22px,4vw,48px);min-width:0}.stage-header{display:flex;justify-content:space-between;align-items:end;margin-bottom:16px}.stage-header h2{font-family:Georgia,serif;font-size:clamp(1.5rem,3vw,2.5rem);margin:4px 0 0}.point-count{display:flex;align-items:baseline;gap:8px}.point-count strong{font:700 2rem Georgia,serif}.point-count span{font-size:.78rem;color:#687072}.stage{position:relative;overflow:hidden;border:8px solid var(--ink);border-radius:14px;box-shadow:var(--shadow);aspect-ratio:16/9;background:#91cbea}.stage>img{width:100%;height:100%;object-fit:cover;display:block}.stage canvas{position:absolute;inset:0;width:100%;height:100%}.caption{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);background:rgba(24,32,36,.88);color:var(--cream);padding:8px 16px;border-radius:100px;font:700 .88rem Georgia,serif;white-space:nowrap}.flash{position:absolute;width:20px;height:20px;border-radius:50%;background:#fff7a8;box-shadow:0 0 0 12px rgba(255,206,73,.35),0 0 30px 15px #fff;opacity:0;pointer-events:none}.flash.pop{animation:pop .18s ease-out}.timeline{height:7px;background:#d0c5aa;margin-top:16px;border-radius:10px;overflow:hidden}.timeline-fill{width:0;height:100%;background:var(--red);transition:width .2s}.stage-actions{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:12px;color:#687072;font-size:.82rem}.export-actions{display:flex;gap:8px}.stage-actions button{padding:8px 12px;background:transparent;border:1px solid #b8a985;color:var(--ink)}.stage-actions button:hover{border-color:var(--red);color:var(--rust)}.stage-actions button:disabled{cursor:wait;opacity:.58}dialog{width:min(580px,calc(100% - 32px));border:0;border-radius:16px;padding:0;background:var(--paper);box-shadow:0 30px 80px rgba(0,0,0,.35)}dialog::backdrop{background:rgba(24,32,36,.65)}dialog form{padding:26px}.dialog-head{display:flex;justify-content:space-between}.dialog-head h2{font:700 1.6rem Georgia,serif;margin:4px 0 16px}.close{border:0;background:none;font-size:2rem;cursor:pointer}textarea{width:100%;height:240px;resize:vertical;border:1px solid var(--line);border-radius:10px;padding:14px;font:500 .9rem ui-monospace,monospace}.hint{font-size:.8rem;color:#687072}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}@keyframes pop{0%{opacity:0;transform:scale(.2)}45%{opacity:1;transform:scale(1.8)}100%{opacity:0;transform:scale(.5)}}@media(max-width:900px){.workspace{grid-template-columns:1fr}.panel{border-right:0;border-bottom:1px solid var(--line)}.stage-wrap{padding:22px}.controls h1{font-size:2.25rem}}@media(max-width:520px){.topbar{padding:0 16px}.status{display:none}.panel{padding:24px 18px}.stage-wrap{padding:16px}.stage{border-width:5px}.caption{font-size:.72rem;bottom:9px}.point-count span{display:none}.stage-actions{align-items:flex-start;flex-direction:column}.export-actions{width:100%}.export-actions button{flex:1}.brand{font-size:1.12rem}}
.balloon-thrower{position:absolute;z-index:4;bottom:-1%;width:18%;height:45%;pointer-events:none;transform-origin:50% 100%;filter:drop-shadow(0 7px 6px rgba(38,18,10,.28))}.balloon-thrower img{display:block;width:100%;height:100%;object-fit:contain;object-position:center bottom}.balloon-thrower-left{left:1%}.balloon-thrower-right{right:1%}.balloon-thrower.throwing{animation:balloon-throw .46s cubic-bezier(.25,.76,.32,1)}.balloon-thrower-right.throwing{animation-name:balloon-throw-right}@keyframes balloon-throw{0%{transform:translateX(-3px) rotate(-3deg)}45%{transform:translateX(5px) rotate(4deg)}100%{transform:translateX(0) rotate(0)}}@keyframes balloon-throw-right{0%{transform:translateX(3px) rotate(3deg)}45%{transform:translateX(-5px) rotate(-4deg)}100%{transform:translateX(0) rotate(0)}}@media(max-width:760px){.balloon-thrower{width:21%;height:37%}}
.balloon-thrower{bottom:-4%;width:20%;height:53%}.balloon-thrower-left{left:0}.balloon-thrower-right{right:0}@media(max-width:760px){.balloon-thrower{width:22%;height:44%}}
.theme-table{min-width:1180px}.night-preview{background:url('assets/night-sky-constellation-v1.png') center/cover}
.city-grid-preview{background:url('assets/city-blocks-overhead-v1.png') center/cover}
.whiteboard-preview{background:linear-gradient(165deg,#fff 0%,#edf1ee 100%);color:#25313a!important}.whiteboard-preview:after{content:"";position:absolute;left:18%;right:12%;top:30%;bottom:28%;border-left:3px solid #25313a;border-bottom:3px solid #25313a;opacity:.72}.whiteboard-bg{position:absolute;inset:0;background:linear-gradient(160deg,#fff 0%,#f8faf8 55%,#e8ece9 100%);box-shadow:inset 0 0 55px rgba(68,78,72,.16);z-index:0}.whiteboard-bg:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,rgba(38,50,58,.018) 0,rgba(38,50,58,.018) 1px,transparent 1px,transparent 5px)}.whiteboard-hand{position:absolute;z-index:5;height:116%;width:auto;transform:translate(var(--hand-offset-x,-30.5%),var(--hand-offset-y,-2%)) rotate(var(--hand-tilt,0deg));transform-origin:var(--hand-tip-x,30.5%) var(--hand-tip-y,2%);pointer-events:none;filter:drop-shadow(0 7px 6px rgba(30,36,32,.22));will-change:left,top,transform;transition:transform 90ms linear}.whiteboard-hand img{display:block;width:auto;height:100%}.whiteboard-hand.scribbling{animation:whiteboard-wrist 220ms ease-in-out infinite alternate}@keyframes whiteboard-wrist{from{transform:translate(var(--hand-offset-x,-30.5%),var(--hand-offset-y,-2%)) rotate(calc(var(--hand-tilt,0deg) - .18deg))}to{transform:translate(var(--hand-offset-x,-30.5%),var(--hand-offset-y,-2%)) rotate(calc(var(--hand-tilt,0deg) + .22deg))}}
body button.preview-card:before{background:linear-gradient(180deg,rgba(12,18,20,.01) 22%,rgba(12,18,20,.82) 100%);z-index:1;pointer-events:none}body button.preview-card>*{z-index:2}body button.preview-card>.preview-chart{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}button.whiteboard-preview:before{background:linear-gradient(180deg,rgba(255,255,255,0) 24%,rgba(255,255,255,.92) 100%)!important}button.whiteboard-preview:after{display:none}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.ai-editor{padding:17px;border:1px solid #c8b98f;border-radius:14px;background:linear-gradient(145deg,#fffdf8,#f3ead5);box-shadow:inset 0 1px #fff}.ai-editor-heading{display:flex;align-items:start;justify-content:space-between;gap:12px}.ai-editor-heading h2{font:700 1.1rem Georgia,serif;margin:5px 0 12px}.ai-badge{font-size:.66rem;letter-spacing:.13em;font-weight:900;color:var(--rust)}.ai-undo{border:0;background:transparent;color:var(--teal);font-weight:800;cursor:pointer;padding:2px}.ai-undo:disabled{opacity:.35;cursor:default}.ai-prompt{height:92px;min-height:92px;resize:vertical;background:#fff;font:500 .85rem/1.45 var(--ui-font-family);border-color:#c8b98f}.ai-prompt:focus{outline:3px solid rgba(29,111,115,.17);border-color:var(--teal)}.ai-suggestions{display:flex;gap:6px;flex-wrap:wrap;margin:9px 0}.ai-suggestions button{border:1px solid #c8b98f;background:#fffaf0;border-radius:999px;padding:6px 9px;color:#596164;font:700 .7rem var(--ui-font-family);cursor:pointer}.ai-suggestions button:hover{border-color:var(--teal);color:var(--teal)}.ai-apply{width:100%;border:0;border-radius:9px;padding:10px 14px;background:var(--ink);color:var(--cream);font:800 .86rem var(--ui-font-family);cursor:pointer}.ai-apply:disabled{opacity:.6;cursor:wait}.ai-feedback{margin:9px 0 0;color:#687072;font-size:.75rem;line-height:1.35}.ai-feedback.error{color:#9b2f22}.stage-header h2{font-size:calc(clamp(1.5rem,3vw,2.5rem)*var(--chart-title-size,1))}@media(min-width:901px){.workspace{grid-template-columns:minmax(300px,380px) 1fr}}
.stage-header h2{color:var(--chart-font-color);font-family:var(--display-font-family);font-weight:var(--chart-title-weight)}

/* Manual data entry uses the studio's existing controls and palette. */
.manual-data{display:grid;gap:8px;margin-bottom:16px}
.manual-data>label{font-size:.875rem;font-weight:700;color:#596164}
.manual-data .hint{font-size:.875rem;line-height:1.45;margin:0}
.manual-data textarea{height:150px;min-height:120px;max-height:440px;font-size:1rem;line-height:1.4;padding:10px;color:var(--ink);background:white}
.manual-data textarea:focus-visible{outline:2px solid var(--teal);outline-offset:2px}
.manual-data textarea[aria-invalid="true"]{border-color:var(--rust)}
.manual-data .secondary{font-size:.875rem;justify-self:start;padding:9px 12px}
.data-feedback{font-size:.875rem;line-height:1.4;margin:0;color:var(--teal);overflow-wrap:anywhere}
.data-feedback:empty{display:none}.data-feedback.error{color:var(--rust)}
.data-upload{min-height:80px;padding:12px;text-align:center}.data-upload .upload-icon{display:none}
.data-upload small{font-size:.875rem}.data-upload:focus-within{outline:2px solid var(--teal);outline-offset:2px}
.data-upload input{display:block;position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}

.gallery-preview{background:url('assets/carnival-gallery-booth-v1.png') center/cover}

.city-windows-preview{background:url('assets/city-window-skyline-v2.png') center/cover}

.clothesline-preview{background:url('assets/city-clothesline-sunset-v1.png') center/cover}

.carnival-derby-preview{background:url('assets/carnival-derby-booth-v1.png') center/cover}

/* Chalkboard art and hand placement are scoped to the chart theme. */
.chalkboard-preview{background:#193b30 url('assets/school-chalkboard-v1.png') center/100% 100%;color:#fffaf0}
.stage>.chalkboard-bg{object-fit:fill;background:#193b30}
.whiteboard-hand.chalk-hand{--hand-offset-x:-31.8%;--hand-offset-y:-1.9%;--hand-tip-x:31.8%;--hand-tip-y:1.9%}
#chalkboardCharts{scroll-margin-top:24px}
