@font-face{font-family:Noto Sans;src:url(/assets/fonts/noto-sans-regular.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Noto Sans;src:url(/assets/fonts/noto-sans-medium.woff2)format("woff2");font-weight:500;font-display:swap}@font-face{font-family:Noto Sans;src:url(/assets/fonts/noto-sans-semibold.woff2)format("woff2");font-weight:600;font-display:swap}@font-face{font-family:Noto Sans;src:url(/assets/fonts/noto-sans-bold.woff2)format("woff2");font-weight:700;font-display:swap}@font-face{font-family:Noto Sans Mono;src:url(/assets/fonts/noto-sans-mono-regular.woff2)format("woff2");font-display:swap}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#1f2933;--s1:#23282d;--s2:#272d36;--s3:#303842;--border:#3b4652;--border-strong:#53606d;--text:#fff;--muted:#e5e7eb;--subtle:#aeb7c2;--disabled:#7d8792;--accent:#2fa9c2;--accent-hover:#53b8cc;--accent-active:#238da4;--on-accent:#1f2933;--success:#50c878;--warning:#f1c75b;--danger:#f06a78;--info:#7aaef7;--r-sm:4px;--r-md:6px;--r-lg:8px;background:var(--bg);color:var(--text);font-family:Noto Sans,sans-serif;font-size:14px;line-height:1.45}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--bg)}button,input,select,textarea{font:inherit}button,a,input,select,textarea,[tabindex]{outline:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}a{color:var(--accent-hover)}button{border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--s2);min-height:40px;color:var(--text);cursor:pointer;padding:8px 12px}button:hover{background:var(--s3)}button:disabled{color:var(--disabled);cursor:not-allowed}.primary{border-color:var(--accent);background:var(--accent);color:var(--on-accent);font-weight:600}.primary:hover{background:var(--accent-hover)}.danger{border-color:var(--danger);color:var(--danger)}.icon-button{width:40px;padding:8px}.icon{vertical-align:middle;width:20px;height:20px}.skip-link{z-index:100;background:var(--accent);color:var(--on-accent);padding:8px;position:fixed;top:-60px;left:8px}.skip-link:focus{top:8px}.app-header{background:var(--s1);border-bottom:1px solid var(--border);align-items:center;gap:16px;height:56px;padding:0 16px;display:flex}.brand{color:var(--text);align-items:center;gap:8px;font-weight:700;text-decoration:none;display:flex}.brand img{width:auto;height:32px}.workspace-nav{align-self:stretch;display:flex}.workspace-nav a,.workspace-nav span{color:var(--muted);border-bottom:2px solid #0000;align-items:center;padding:0 12px;text-decoration:none;display:flex}.workspace-nav a[aria-current=page]{color:var(--text);border-color:var(--accent);font-weight:600}.workspace-nav span[aria-disabled=true]{color:var(--disabled)}.header-utils{align-items:center;gap:8px;margin-left:auto;display:flex}.mobile-menu{display:none}.page{max-width:1440px;margin:auto;padding:24px}.page-header,.toolbar,.editor-header{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.page-header{justify-content:space-between;margin-bottom:20px}.impersonation-banner{color:#1f2933;background:var(--warning);border-bottom:2px solid #fff;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;min-height:48px;padding:6px 16px;display:flex}.competition-columns{grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:24px;display:grid}.stack{gap:12px;display:grid}.button-link{border-radius:var(--r-md);justify-content:center;align-items:center;min-height:40px;padding:8px 12px;text-decoration:none;display:inline-flex}.section-nav{z-index:2;border:1px solid var(--border);background:var(--s1);gap:8px;padding:8px;display:flex;position:sticky;top:0;overflow-x:auto}.section-nav a{white-space:nowrap}.workspace-section{border:1px solid var(--border);border-radius:var(--r-md);background:var(--s1);margin-top:16px;padding:16px;scroll-margin-top:64px}.workspace-form{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));align-items:end;gap:12px;display:grid}.workspace-form .field:has(textarea){grid-column:1/-1}.competition-portal{gap:12px;display:grid}.detail-list{grid-template-columns:max-content minmax(0,1fr);gap:6px 16px;display:grid}.detail-list dd{margin:0}.round-card,.review-case,.replay-panel,.attempt-panel{border:1px solid var(--border);border-radius:var(--r-md);background:var(--s2);padding:12px}.team-icon{border-radius:50%;place-items:center;width:36px;height:36px;display:inline-grid}.checkbox-line{padding:6px 0;display:block}.table-scroll{overflow-x:auto}.table-scroll table{border-collapse:collapse;width:100%}.table-scroll th,.table-scroll td{text-align:left;border-bottom:1px solid var(--border);padding:8px}.judged-run{z-index:100;background:var(--bg);grid-template-rows:auto minmax(0,1fr) auto;display:grid;position:fixed;inset:0}.judged-run-header{color:var(--text);background:var(--s1);border-bottom:2px solid var(--warning);flex-wrap:wrap;justify-content:space-between;gap:16px;padding:12px 16px;display:flex}.judged-run-header p{margin:4px 0 0}.admin-user-list{gap:6px;margin-top:12px;display:grid}.admin-user-list button{text-align:left}.admin-actions-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-top:16px;display:grid}.compact{min-height:30px;padding:3px 7px}h1{margin:0;font-size:20px;line-height:28px}h2{margin:20px 0 8px;font-size:16px;line-height:24px}.field{gap:6px;display:grid}.field>span{font-weight:500}.field input,.field select,.field textarea,.search{border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--s1);min-height:40px;color:var(--text);padding:8px 10px}.field textarea{min-height:120px;font-family:Noto Sans Mono,monospace}.field-error,.field-hint{color:var(--subtle);font-size:12px}.field-error{color:var(--danger)}.form{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--s1);gap:16px;max-width:440px;margin:48px auto;padding:24px;display:grid}.form-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.notice,.error,.warning{border-radius:var(--r-md);background:var(--s1);border:1px solid;padding:12px}.notice{border-color:var(--info)}.error{border-color:var(--danger)}.warning{border-color:var(--warning)}.library-tools{flex-wrap:wrap;gap:8px;display:flex}.resource-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;display:grid}.resource-card{border:1px solid var(--border);border-radius:var(--r-md);background:var(--s2);gap:8px;min-width:0;padding:12px;display:grid}.resource-card img,.thumbnail{aspect-ratio:1;object-fit:cover;background:var(--s1);border-radius:var(--r-sm);width:100%}.resource-card h3{margin:0;font-size:16px}.resource-meta{color:var(--subtle);font-size:12px}.card-actions{flex-wrap:wrap;gap:8px;margin-top:auto;display:flex}.action-menu{position:relative}.action-menu summary{cursor:pointer;border:1px solid var(--border);border-radius:var(--radius);place-items:center;min-width:44px;min-height:40px;list-style:none;display:grid}.action-menu>div{z-index:10;background:var(--s2);border:1px solid var(--border);border-radius:var(--radius);min-width:160px;box-shadow:var(--shadow);gap:4px;padding:8px;display:grid;position:absolute;right:0}.action-menu a,.action-menu button{text-align:left;padding:8px}.empty-line{color:var(--subtle);margin:8px 0 16px}.editor{grid-template-rows:auto 1fr auto;height:calc(100vh - 56px);min-height:560px;display:grid}.editor-header{border-bottom:1px solid var(--border);background:var(--s1);padding:8px 12px}.editor-name{flex:1;min-width:180px;max-width:420px}.save-state{color:var(--subtle)}.mobile-authoring-warning{color:var(--warning);background:var(--s2);border-bottom:1px solid var(--border);margin:0;padding:8px 16px;display:none}.editor-workspace{grid-template-columns:240px minmax(320px,1fr) 280px;min-height:0;display:grid}.panel{background:var(--s2);border-right:1px solid var(--border);padding:12px;overflow:auto}.panel:last-child{border:0;border-left:1px solid var(--border)}.canvas-region{background:var(--bg);min-height:360px;position:relative;overflow:hidden}.canvas-region canvas{width:100%;height:100%;display:block}.canvas-capability-error{background:var(--s1);border:1px solid var(--danger);border-radius:var(--r-md);height:max-content;margin:auto;padding:12px;position:absolute;inset:16px}.tile-form{gap:16px;max-width:800px;display:grid}.tile-surface-preview{image-rendering:auto;background:var(--s2);border:1px solid var(--border);width:min(256px,100%)}.object-form{border:1px solid var(--border);border-radius:var(--radius);gap:12px;display:grid}.canvas-help{background:var(--s1);border:1px solid var(--border);border-radius:var(--r-sm);max-width:440px;color:var(--muted);padding:8px;position:absolute;bottom:12px;left:12px}.diagnostics{border-top:1px solid var(--border);background:var(--s1);min-height:40px;padding:8px 12px}.coordinate-fields{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.stack,.budget-meter{gap:8px;display:grid}.budget-meter progress{width:100%}.part-list,.cell-list{gap:6px;display:grid}.part-list button,.cell-list button{text-align:left}.selected{border-color:var(--accent);background:var(--s3)}.tabs{border-bottom:1px solid var(--border);gap:4px;display:flex}.tabs button{background:0 0;border:0;border-bottom:2px solid #0000;border-radius:0}.tabs button[aria-selected=true]{border-color:var(--accent);font-weight:600}.monaco-host,.blockly-layout{grid-template-columns:minmax(0,2fr) minmax(260px,1fr);min-height:0;display:grid}.blockly-host{height:100%;min-height:400px}.source-highlight{white-space:pre-wrap;background:var(--s2);border-left:1px solid var(--border);min-width:0;margin:0;padding:16px;overflow:auto}.source-highlight mark{color:var(--text);background:color-mix(in srgb, var(--warning) 45%, transparent)}.code-fallback{resize:none;width:100%;height:100%;min-height:400px;color:var(--text);background:#171c22;border:0;padding:16px;font:14px/1.5 Noto Sans Mono,monospace}.status{align-items:center;gap:6px;display:inline-flex}.status:before{content:"";background:var(--info);border-radius:50%;width:8px;height:8px}.status.success:before{background:var(--success)}.status.warning:before{background:var(--warning)}.status.error:before{background:var(--danger)}dialog{border:1px solid var(--border-strong);border-radius:var(--r-lg);background:var(--s2);max-width:min(520px,100% - 32px);color:var(--text);padding:20px}dialog::backdrop{background:#000a}.simulator{grid-template-rows:auto auto auto minmax(0,1fr);height:calc(100vh - 56px);display:grid}.simulator-header,.composition{background:var(--s1);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:12px;padding:8px 16px;display:flex}.simulator-header output{color:var(--muted);margin-left:auto}.composition .field{flex:1;min-width:180px}.speed-control{color:var(--muted);align-items:center;gap:6px;display:flex}.speed-control input{width:100px}.simulator>.error,.simulator>.warning{margin:8px 16px}.simulator-body{grid-template-columns:minmax(0,1fr);min-height:0;display:grid}.simulator-body.debug-open{grid-template-columns:minmax(0,1fr) minmax(320px,36%)}.debug-panel{background:var(--s2);border-left:1px solid var(--border);min-width:0;padding:12px;overflow:auto}.debug-panel pre,.debug-panel code{white-space:pre-wrap;overflow-wrap:anywhere;font-family:Noto Sans Mono,monospace}.debug-source{background:var(--bg);max-height:240px;padding:8px;overflow:auto}.debug-source span,.debug-source mark{display:block}.debug-source mark{color:var(--text);background:color-mix(in srgb, var(--warning) 35%, transparent)}.debug-panel table{border-collapse:collapse;width:100%}.camera-readout{justify-items:start;gap:6px;margin-top:8px;display:grid}.camera-readout img{image-rendering:pixelated;border:1px solid var(--border)}.debug-panel th,.debug-panel td{text-align:left;vertical-align:top;border-bottom:1px solid var(--border);padding:8px}.run-summary{grid-template-columns:1fr auto;gap:6px 12px;display:grid}.run-summary dd{margin:0;font-family:Noto Sans Mono,monospace}.history-entry{border:1px solid var(--border);border-radius:var(--r-sm);gap:6px;margin-top:8px;padding:8px;display:grid}.history-entry small{color:var(--subtle)}.replay-overlay{background:var(--s1);border:1px solid var(--info);border-radius:var(--r-sm);padding:8px;position:absolute;bottom:12px;left:12px}.toast-region{z-index:50;position:fixed;bottom:16px;right:16px}.public-site,.docs-site{background:radial-gradient(circle at 80% 10%, #2fa9c217, transparent 32rem), var(--bg);min-height:100vh}.public-header,.public-footer{background:var(--s1);border-bottom:1px solid var(--border);align-items:center;gap:24px;min-height:64px;padding:10px clamp(16px,5vw,72px);display:flex}.public-header nav,.public-actions,.public-footer{align-items:center;gap:18px;display:flex}.public-header nav{margin-inline:auto}.public-header a,.public-footer a{text-decoration:none}.locale-switch select{min-width:9rem}.landing-hero-section{grid-template-columns:minmax(18rem,.8fr) minmax(24rem,1.2fr);align-items:center;gap:clamp(32px,7vw,112px);min-height:min(860px,100vh - 64px);padding:clamp(56px,9vw,144px) clamp(20px,7vw,112px);display:grid}.landing-hero-copy h1{max-width:12ch;margin:8px 0 20px;font-size:clamp(2.6rem,6vw,5.6rem);line-height:.98}.landing-hero-copy>p:not(.eyebrow){max-width:38rem;color:var(--muted);font-size:1.2rem}.eyebrow{color:var(--accent-hover);letter-spacing:.12em;text-transform:uppercase;font-weight:700}.landing-actions{gap:12px;margin-top:28px;display:flex}.button-link{border:1px solid var(--border-strong);border-radius:var(--r-md);align-items:center;min-height:44px;padding:8px 14px;text-decoration:none;display:inline-flex}.landing-robot{min-width:0}.landing-model-switch,.hero-component-controls{flex-wrap:wrap;gap:8px;display:flex}.landing-model-switch{justify-content:center}.landing-model-switch .selected{border-color:var(--accent)}.landing-viewport,.landing-hero-poster{min-height:clamp(320px,48vw,620px)}.landing-hero-poster{text-align:center;place-content:center;display:grid}.landing-hero-poster img{width:9rem;margin:auto}.hero-component-controls button{flex:12rem}.hero-wheel.running{animation:.8s linear infinite hero-wheel;display:inline-block}.hero-live{min-height:1.5em;color:var(--subtle)}.landing-capabilities,.landing-competition,.landing-final{padding:clamp(72px,10vw,160px) clamp(20px,10vw,160px)}.landing-capabilities>div{grid-template-columns:repeat(3,1fr);gap:clamp(24px,6vw,96px);margin-top:56px;display:grid}.landing-capabilities article span{color:var(--accent);font:1.3rem Noto Sans Mono,monospace}.landing-capabilities h3,.landing-competition h2,.landing-final h2{font-size:clamp(1.8rem,4vw,3.4rem)}.landing-competition{background:var(--s1);justify-content:space-between;align-items:end;gap:32px;display:flex}.landing-competition p{max-width:54rem}.landing-final{text-align:center}.public-footer{border-top:1px solid var(--border);border-bottom:0;flex-wrap:wrap}.public-footer>:first-child{margin-right:auto;font-weight:700}.connectivity-banner{z-index:90;background:var(--s1);border:1px solid var(--warning);align-items:center;gap:12px;max-width:min(34rem,100vw - 24px);padding:10px;display:flex;position:fixed;bottom:12px;right:12px}.onboarding{background:var(--s1);border:1px solid var(--accent);justify-content:space-between;gap:24px;margin:12px;padding:18px;display:flex}.docs-layout{grid-template-columns:240px minmax(0,760px) 200px;align-items:start;gap:32px;display:grid}.docs-layout>nav,.docs-layout>aside{gap:8px;max-height:calc(100vh - 32px);display:grid;position:sticky;top:16px;overflow:auto}.docs-layout ul{margin:0;padding:0;list-style:none}.docs-layout li a,.docs-layout aside a{padding:7px;display:block}.docs-layout [aria-current=page]{border-left:3px solid var(--accent);background:var(--s1)}.docs-article .lead{color:var(--muted);font-size:1.2rem}.docs-article section{margin-block:44px;scroll-margin-top:20px}.docs-layout pre{background:var(--s1);border:1px solid var(--border);padding:14px;overflow:auto}.reference-list{gap:6px;display:grid}.reference-list details{background:var(--s1);border:1px solid var(--border);padding:8px}.reference-list summary{cursor:pointer}.docs-next{border-top:1px solid var(--border);justify-content:space-between;gap:20px;margin-top:64px;padding-top:20px;display:flex}@keyframes hero-wheel{to{transform:rotate(360deg)}}.sr-only{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}@media (width<=1023px){.editor-workspace{grid-template-columns:220px 1fr}.editor-workspace>.panel:last-child{grid-column:1/-1;max-height:320px}.docs-layout{grid-template-columns:200px minmax(0,1fr)}.docs-layout>aside:last-child{display:none}}@media (width<=639px){button{min-height:44px}.workspace-nav{display:none}.workspace-nav.open{z-index:20;background:var(--s1);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:8px;display:grid;position:absolute;top:56px;left:8px;right:8px}.workspace-nav.open a{border:0;min-height:44px}.mobile-menu{display:inline-flex}.app-header{padding:0 8px}.page{padding:16px}.resource-grid,.competition-columns,.admin-actions-grid{grid-template-columns:1fr}.section-nav{margin-inline:-16px}.workspace-form{grid-template-columns:1fr}.editor{height:auto}.mobile-authoring-warning,.editor-workspace,.blockly-layout,.simulator-body.debug-open{display:block}.simulator{height:auto;min-height:calc(100vh - 56px)}.simulator-header output{order:3;width:100%;margin:0}.composition{display:grid}.simulator-body>.canvas-region{min-height:55vh}.debug-panel{border-left:0;border-top:1px solid var(--border)}.panel{border:0;border-bottom:1px solid var(--border);max-height:240px}.canvas-region{min-height:420px}.docs-layout{display:block}.docs-layout>nav{border-bottom:1px solid var(--border);max-height:none;margin-bottom:28px;padding-bottom:18px;display:block;position:static}.docs-layout>nav ul{gap:6px;display:flex;overflow-x:auto}.docs-layout>nav li{flex:none}.form{margin:24px auto;padding:16px}.public-header{flex-wrap:wrap;align-items:flex-start}.public-header nav{order:3;width:100%;overflow-x:auto}.public-actions{margin-left:auto}.public-actions>a:not(.primary),.public-actions .locale-switch{display:none}.landing-hero-section,.landing-capabilities>div{grid-template-columns:1fr}.landing-hero-section{padding-block:48px}.landing-viewport,.landing-hero-poster{min-height:360px}.landing-competition,.onboarding,.landing-actions,.form-actions{flex-direction:column;align-items:stretch}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}.hero-wheel.running{animation:none}}
