.lab-workbench{font-family:IBM Plex Mono,monospace}.lab-console{border:1px solid var(--line-strong);border-radius:var(--radius-lg);background:var(--surface-raised);box-shadow:var(--shadow-2);margin:3rem 0;overflow:hidden}.lab-console__bar{border-bottom:1px solid var(--line);background:var(--surface);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem 1.5rem;padding:.85rem clamp(1rem,2.5vw,1.6rem);display:flex}.lab-console__bar h2{color:var(--ink);letter-spacing:.12em;text-transform:uppercase;margin:0;font-family:IBM Plex Mono,monospace;font-size:.72rem;font-weight:600}.lab-console__run{--tone:var(--ink-muted);color:color-mix(in srgb, var(--tone) 75%, var(--ink));letter-spacing:.05em;flex-wrap:wrap;align-items:center;gap:.5rem;margin:0;font-family:IBM Plex Mono,monospace;font-size:.68rem;display:flex}.lab-console__run[data-tone=live]{--tone:#047857}.lab-console__run[data-tone=progress]{--tone:#b45309}:root[data-theme=dark] .lab-console__run[data-tone=live]{--tone:#34d399}:root[data-theme=dark] .lab-console__run[data-tone=progress]{--tone:#fbbf24}.lab-console__dot{background:var(--tone);width:.44rem;height:.44rem;box-shadow:0 0 0 3px color-mix(in srgb, var(--tone) 18%, transparent);border-radius:50%}.lab-console__aside{color:var(--ink-muted)}.lab-console__aside:before{content:"·";margin-right:.5rem}.lab-console__body{display:grid}.lab-console[data-panel] .lab-console__body{grid-template-columns:minmax(14rem,17rem) minmax(0,1fr)}.lab-panel{border-right:1px solid var(--line);background:var(--surface);align-content:start;gap:1.6rem;padding:clamp(1.1rem,2.5vw,1.5rem);display:grid}.lab-panel__block h3{color:var(--ink-muted);letter-spacing:.1em;text-transform:uppercase;align-items:center;gap:.45rem;margin:0 0 .75rem;font-family:IBM Plex Mono,monospace;font-size:.64rem;font-weight:600;display:flex}.lab-panel__block h3 svg{color:var(--accent)}.lab-steps{counter-reset:step;gap:.85rem;margin:0;padding:0;list-style:none;display:grid}.lab-steps li{gap:.15rem;padding-left:1.95rem;font-size:.86rem;line-height:1.45;display:grid;position:relative}.lab-steps li:before{border:1px solid color-mix(in srgb, var(--accent) 30%, var(--line));width:1.4rem;height:1.4rem;color:var(--accent);counter-increment:step;content:counter(step, decimal-leading-zero);border-radius:50%;place-items:center;font-family:IBM Plex Mono,monospace;font-size:.58rem;font-weight:600;display:grid;position:absolute;top:.05rem;left:0}.lab-steps strong{font-weight:560}.lab-steps span{color:var(--ink-muted);font-size:.8rem}.lab-requirements{flex-wrap:wrap;gap:.55rem;margin:0;padding:0;list-style:none;display:grid}.lab-requirements li{--tone:var(--line-strong);grid-template-columns:1rem minmax(0,1fr);gap:.1rem .5rem;font-size:.84rem;line-height:1.3;display:grid}.lab-requirements__mark{height:1.1rem;color:var(--tone);grid-row:1;justify-content:center;align-items:center;display:inline-flex}.lab-requirements__mark:empty{display:none}.lab-requirements__state{color:var(--ink-muted);grid-column:2;font-family:IBM Plex Mono,monospace;font-size:.62rem}.lab-requirements__state:empty{display:none}.lab-requirements li[data-state=supported]{--tone:#047857}.lab-requirements li[data-state=missing]{--tone:#b91c1c}.lab-requirements li[data-state=missing] .lab-requirements__state{color:color-mix(in srgb, var(--tone) 72%, var(--ink))}.lab-requirements li[data-state=prompts]{--tone:#b45309}:root[data-theme=dark] .lab-requirements li[data-state=supported]{--tone:#34d399}:root[data-theme=dark] .lab-requirements li[data-state=missing]{--tone:#f87171}:root[data-theme=dark] .lab-requirements li[data-state=prompts]{--tone:#fbbf24}.lab-panel__alert{border:1px solid color-mix(in srgb, #b91c1c 35%, var(--line));border-radius:var(--radius-md);background:color-mix(in srgb, #b91c1c 8%, var(--surface-raised));color:color-mix(in srgb, #b91c1c 70%, var(--ink));gap:.5rem;margin:.8rem 0 0;padding:.6rem .7rem;font-size:.78rem;line-height:1.4;display:flex}:root[data-theme=dark] .lab-panel__alert{border-color:color-mix(in srgb, #f87171 35%, var(--line));background:color-mix(in srgb, #f87171 10%, var(--surface-raised));color:color-mix(in srgb, #f87171 78%, var(--ink))}.lab-downloads{gap:.45rem;margin:0;padding:0;list-style:none;display:grid}.lab-downloads li{justify-content:space-between;align-items:baseline;gap:1rem;font-size:.84rem;display:flex}.lab-downloads li span{color:var(--ink-muted)}.lab-downloads b{color:var(--ink);font-variant-numeric:tabular-nums;font-family:IBM Plex Mono,monospace;font-size:.72rem}.lab-panel__note{border-top:1px solid var(--line);color:var(--ink-muted);margin:.7rem 0 0;padding-top:.6rem;font-family:IBM Plex Mono,monospace;font-size:.64rem}.lab-stage{min-width:0;padding:clamp(1.25rem,3vw,2rem)}.lab-console[data-surface=canvas] .lab-stage,.lab-console[data-surface=viewport] .lab-stage{background:var(--surface);align-content:center;min-height:26rem;display:grid;box-shadow:inset 0 1px 3px #0f172a14}.lab-console[data-surface=viewport] .lab-stage{min-height:32rem}.lab-console[data-surface=embed] .lab-stage{padding:0}:root[data-theme=dark] .lab-console[data-surface=canvas] .lab-stage,:root[data-theme=dark] .lab-console[data-surface=viewport] .lab-stage{box-shadow:inset 0 1px 3px #0006}.lab-spec{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--line);grid-template-columns:repeat(auto-fit,minmax(13.5rem,1fr));gap:1px;margin:0 0 3rem;display:grid;overflow:hidden}.lab-spec__column{background:var(--surface-raised);padding:1.25rem 1.4rem}.lab-spec__column h2{color:var(--ink-muted);letter-spacing:.1em;text-transform:uppercase;margin:0 0 .8rem;font-family:IBM Plex Mono,monospace;font-size:.64rem;font-weight:600}.lab-spec__column ul{gap:.4rem;margin:0;padding:0;list-style:none;display:grid}.lab-spec__column li{padding-left:1rem;font-size:.88rem;line-height:1.45;position:relative}.lab-spec__column li:before{background:color-mix(in srgb, var(--accent) 55%, transparent);content:"";border-radius:50%;width:.32rem;height:.32rem;position:absolute;top:.6em;left:0}.lab-spec__column[data-column=returns] li:before{background:var(--signal)}.lab-spec__column[data-column=built] li:before{background:var(--ink-muted)}.lab-related{border-top:1px solid var(--line);margin:3.5rem 0 3rem;padding-top:2.5rem}.lab-related h2{color:var(--ink-muted);letter-spacing:.1em;text-transform:uppercase;margin:0 0 1rem;font-family:IBM Plex Mono,monospace;font-size:.68rem;font-weight:600}.lab-related ul{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.lab-related a{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface-raised);grid-template-columns:2.35rem minmax(0,1fr) auto;align-items:center;gap:1rem;padding:.9rem 1.1rem;text-decoration:none;transition:border-color .16s,transform .16s;display:grid}.lab-related a:hover{border-color:color-mix(in srgb, var(--accent) 45%, var(--line));transform:translateY(-2px)}.lab-related__icon{border:1px solid color-mix(in srgb, var(--accent) 20%, var(--line));border-radius:var(--radius-md);background:color-mix(in srgb, var(--accent-soft) 65%, var(--surface-raised));width:2.35rem;height:2.35rem;color:var(--accent);place-items:center;display:grid}.lab-related__icon svg{width:1.15rem;height:1.15rem}.lab-related__body{gap:.15rem;min-width:0;display:grid}.lab-related__body strong{font-weight:560}.lab-related__body span{color:var(--ink-muted);text-overflow:ellipsis;white-space:nowrap;font-size:.84rem;line-height:1.45;overflow:hidden}.lab-related__state{color:var(--ink-muted);letter-spacing:.06em;text-transform:uppercase;font-family:IBM Plex Mono,monospace;font-size:.64rem}@media (width<=900px){.lab-console[data-panel] .lab-console__body{grid-template-columns:1fr}.lab-panel{border-right:0;border-bottom:1px solid var(--line)}}.lab-workbench{grid-template-columns:1fr;align-items:start;gap:1rem;display:grid}.lab-controls,.lab-actions{grid-column:1/-1}@media (width>=761px){.lab-workbench:has(.lab-pane:not(.output-pane)){grid-template-columns:1fr 1fr}.lab-workbench:has(.lab-pane:not(.output-pane)) .lab-pane:not(.output-pane){grid-area:2/1}.lab-workbench:has(.lab-pane:not(.output-pane)) .output-pane{grid-area:2/2}}.lab-pane{gap:.5rem;display:grid}.lab-pane>span,.lab-controls>label{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.06em;font-size:.7rem}.lab-pane textarea{resize:vertical;border:1px solid var(--line);background:var(--paper);min-height:17rem;color:var(--ink);border-radius:0;padding:1rem;font:.85rem/1.55 IBM Plex Mono,monospace}.lab-controls{flex-wrap:wrap;grid-column:1/-1;gap:1rem;display:flex}.lab-controls label{gap:.4rem;display:grid}.lab-controls input,.lab-controls select{border:1px solid var(--line);background:var(--paper);min-height:2.5rem;color:var(--ink);padding:.4rem}.lab-controls fieldset{border:1px solid var(--line);gap:1rem;display:flex}.lab-controls fieldset label{text-transform:none;align-items:center;gap:.3rem;display:flex}.lab-actions{grid-column:1/-1;gap:.7rem;display:flex}.lab-actions button,.lab-workbench>button{border:1px solid var(--action);background:var(--action);min-height:2.8rem;color:var(--action-foreground);cursor:pointer;padding:.6rem 1rem}.lab-actions button:disabled{cursor:wait;opacity:.55}.lab-noscript{border:1px solid color-mix(in srgb, var(--accent) 22%, var(--line));border-radius:var(--radius-md);background:color-mix(in srgb, var(--accent-soft) 40%, transparent);grid-column:1/-1;margin:1rem 0 0;padding:.8rem 1rem}html[data-js=true] .lab-nojs-fallback{display:none}.lab-actions .quiet-button,.lab-workbench>.quiet-button{color:var(--ink);background:0 0}.tool-error{color:var(--destructive);grid-column:1/-1;margin:0}.gallery-bento{grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));grid-auto-rows:14rem;grid-auto-flow:dense;border-radius:var(--radius-lg);gap:4px;margin:clamp(1.5rem,3vw,2.5rem) 0 3rem;display:grid;overflow:hidden}.gallery-piece{background-image:var(--lqip);background-position:50%;background-size:cover;margin:0;position:relative;overflow:hidden}.gallery-piece[data-span=wide]{grid-column:span 2}.gallery-piece[data-span=tall]{grid-row:span 2}.gallery-piece__open{cursor:zoom-in;width:100%;height:100%;display:block}.gallery-piece__open picture{display:contents}.gallery-piece__open source{display:none}.gallery-piece__open img,.gallery-piece__open video{object-fit:cover;width:100%;height:100%;transition:transform .42s cubic-bezier(.2,.7,.2,1);display:block}.gallery-piece:hover .gallery-piece__open img,.gallery-piece:hover .gallery-piece__open video{transform:scale(1.04)}.gallery-piece__veil{opacity:0;background:linear-gradient(#0000,#080c168c 55%,#080c16e0);gap:.3rem;padding:2.75rem 1rem .9rem;transition:opacity .26s,transform .26s cubic-bezier(.2,.7,.2,1);display:grid;position:absolute;bottom:0;left:0;right:0;transform:translateY(8%)}.gallery-piece:hover .gallery-piece__veil,.gallery-piece__open:focus-visible .gallery-piece__veil{opacity:1;transform:translateY(0)}.gallery-piece__origin{color:#ffffffb8;letter-spacing:.1em;text-transform:uppercase;flex-wrap:wrap;gap:.5rem;font-family:IBM Plex Mono,monospace;font-size:.6rem;display:flex}.gallery-piece__origin b{color:#fff;font-weight:600}.gallery-piece[data-origin=generated] .gallery-piece__origin{color:#fbbf24}.gallery-piece__caption{color:#ffffffeb;text-wrap:balance;font-size:.86rem;line-height:1.4}.gallery-viewer:not([open]){display:none}html:has(.gallery-viewer[open]){overflow:hidden}.gallery-viewer{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface-raised);width:min(96vw,92rem);max-width:none;height:min(92vh,60rem);max-height:none;color:var(--ink);margin:auto;padding:0}.gallery-viewer::backdrop{backdrop-filter:blur(6px);background:#060a12d1}.gallery-viewer__frame{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr) minmax(17rem,21rem);height:100%;display:grid}.gallery-viewer__stage{background:var(--surface);grid-template-rows:minmax(0,1fr);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.5rem;min-height:0;padding:1rem;display:grid;overflow:hidden}.gallery-viewer__media{grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr);place-items:center;min-width:0;height:100%;min-height:0;margin:0;display:grid}.gallery-viewer__media img,.gallery-viewer__media video{object-fit:contain;max-width:100%;max-height:100%}.gallery-viewer__step{border:1px solid var(--line);background:var(--surface-raised);width:2.75rem;height:2.75rem;color:var(--ink-muted);cursor:pointer;border-radius:50%;place-items:center;transition:color .15s,border-color .15s;display:grid}.gallery-viewer__step:hover{border-color:var(--line-strong);color:var(--ink)}.gallery-viewer__step[data-step="-1"]{transform:rotate(180deg)}.gallery-viewer__close{z-index:2;border:1px solid var(--line);background:var(--surface-raised);width:2.5rem;height:2.5rem;color:var(--ink-muted);cursor:pointer;border-radius:50%;place-items:center;display:grid;position:absolute;top:.75rem;right:.75rem}.gallery-viewer__close:hover{color:var(--ink)}.gallery-viewer__panel{border-left:1px solid var(--line);align-content:start;gap:.9rem;padding:clamp(1.25rem,2vw,1.75rem);display:grid;overflow-y:auto}.gallery-viewer__origin{color:var(--ink-muted);letter-spacing:.1em;text-transform:uppercase;margin:0;font-family:IBM Plex Mono,monospace;font-size:.66rem;font-weight:600}.gallery-viewer[data-origin=generated] .gallery-viewer__origin{color:color-mix(in srgb, var(--domain-gallery) 78%, var(--ink))}.gallery-viewer__caption{margin:0;font-size:1rem;line-height:1.5}.gallery-viewer__caption:empty{display:none}.gallery-viewer__prompt h3{color:var(--ink-muted);letter-spacing:.1em;text-transform:uppercase;margin:0 0 .4rem;font-family:IBM Plex Mono,monospace;font-size:.62rem;font-weight:600}.gallery-viewer__prompt p{border-radius:var(--radius-md);background:var(--surface);color:var(--ink-muted);white-space:pre-wrap;margin:0;padding:.6rem .7rem;font:.78rem/1.5 IBM Plex Mono,monospace}.gallery-viewer__seed{margin-top:.4rem!important;font-size:.68rem!important}.gallery-viewer__seed:empty{display:none}.gallery-viewer__facts{border-top:1px solid var(--line);gap:.65rem;margin:0;padding-top:.9rem;display:grid}.gallery-viewer__facts dt{color:var(--ink-muted);letter-spacing:.1em;text-transform:uppercase;font-family:IBM Plex Mono,monospace;font-size:.6rem}.gallery-viewer__facts dd{margin:.15rem 0 0;font-size:.86rem;line-height:1.4}.gallery-viewer__alt{border-top:1px solid var(--line);color:var(--ink-muted);margin:0;padding-top:.9rem;font-size:.78rem;line-height:1.5}.gallery-viewer__counter{border-top:1px solid var(--line);color:var(--ink-muted);font-variant-numeric:tabular-nums;letter-spacing:.08em;text-align:center;grid-column:1/-1;margin:0;padding:.8rem 1rem;font-family:IBM Plex Mono,monospace;font-size:.72rem}@media (width<=860px){.gallery-viewer__frame{grid-template-rows:minmax(0,1.2fr) minmax(0,1fr) auto;grid-template-columns:1fr}.gallery-viewer__panel{border-top:1px solid var(--line);border-left:0}}@media (prefers-reduced-motion:reduce){.gallery-piece__veil{transform:none}}.gallery-files{margin:0 0 3rem}.gallery-files h2{color:var(--ink-muted);letter-spacing:.1em;text-transform:uppercase;margin:0 0 1rem;font-family:IBM Plex Mono,monospace;font-size:.68rem;font-weight:600}.gallery-files ul{border-top:1px solid var(--line);margin:0;padding:0;list-style:none;display:grid}.gallery-files a{border-bottom:1px solid var(--line);grid-template-columns:2.6rem minmax(0,1fr) auto;align-items:center;gap:1rem;padding:.9rem .5rem;text-decoration:none;transition:background-color .16s;display:grid}.gallery-files a:hover{background:color-mix(in srgb, var(--accent) 4%, transparent)}.gallery-files__icon{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);width:2.6rem;height:2.6rem;color:var(--accent);place-items:center;display:grid}.gallery-files__body{gap:.15rem;min-width:0;display:grid}.gallery-files__body strong{font-weight:540}.gallery-files__body span{color:var(--ink-muted);font-size:.84rem}.gallery-files__meta{color:var(--ink-muted);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;font-family:IBM Plex Mono,monospace;font-size:.66rem}@media (width<=760px){.gallery-piece[data-span=wide],.gallery-piece[data-span=tall]{grid-area:auto}.gallery-files a{grid-template-columns:2.2rem minmax(0,1fr)}.gallery-files__meta{grid-column:2}}
