/* Homepage composition. All colors come from the native Workbench theme. */
.workbench-home{background:var(--color-brand-dark);color:var(--color-brand-text);--wb-line:var(--color-brand-border);--wb-green:var(--color-brand-django);--wb-orange:var(--color-brand-rust)}
.workbench-home h1,.workbench-home h2,.workbench-home h3{color:var(--color-brand-text);margin:0;line-height:1.1;letter-spacing:-.045em;font-weight:800}
.workbench-home h2{font-size:clamp(2rem,3.6vw,3.2rem);margin-bottom:1.5rem}.workbench-home h2>span,.workbench-home h1>span{color:var(--wb-green)}
.workbench-home h3{font-size:1.35rem;line-height:1.3;letter-spacing:-.025em;margin-bottom:1rem}
.workbench-home p{font-size:1.0625rem;line-height:1.8;color:var(--color-brand-muted);margin:0 0 1.5rem}.workbench-home p strong{color:var(--color-brand-text);font-weight:600}
.workbench-home .wb-eyebrow{display:block;font:500 .75rem/1.6 'JetBrains Mono',monospace;letter-spacing:.09em;text-transform:uppercase;color:var(--wb-green);margin-bottom:1.5rem}
.wb-hero{max-width:1280px;margin:auto;padding:140px 32px 72px;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:64px}
.workbench-home .wb-hero h1{font-size:clamp(3rem,6.5vw,5.6rem);line-height:.99;letter-spacing:-.06em;margin-bottom:2rem}.wb-hero p{max-width:490px}
.wb-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.wb-button{display:inline-flex;gap:14px;justify-content:center;align-items:center;min-height:48px;padding:12px 20px;border:1px solid transparent;border-radius:6px;background:var(--wb-orange);color:hsl(var(--primary-foreground));font-size:.875rem;font-weight:700;transition:background .15s}
.wb-button:hover{background:color-mix(in srgb,var(--wb-orange) 85%,white);color:hsl(var(--primary-foreground))}.wb-secondary{background:transparent;color:var(--color-brand-text);border-color:var(--wb-line)}.wb-secondary:hover{background:hsl(var(--secondary));color:var(--color-brand-text)}
.wb-install{display:flex;gap:16px;align-items:center;margin-top:20px;font-size:.8125rem;color:var(--color-brand-muted)}.wb-install button{min-height:44px;padding:8px;color:var(--color-brand-text)}
.wb-project{background:var(--color-brand-panel);border:1px solid var(--wb-line);border-radius:10px;overflow:hidden;min-width:0}
.wb-panel-bar{display:flex;justify-content:space-between;gap:12px;padding:18px 24px;border-bottom:1px solid var(--wb-line);font: .75rem/1.6 'JetBrains Mono',monospace;color:var(--color-brand-muted)}
.wb-app-row{display:grid;grid-template-columns:20px minmax(0,1fr);align-items:center;gap:8px 16px;padding:26px 24px;border-bottom:1px solid var(--wb-line)}.wb-app-row>div{min-width:0}.wb-app-row strong{font:500 1rem/1.6 'JetBrains Mono',monospace}.wb-app-row span:not(.wb-folder){display:block;font-size:.8125rem;color:var(--color-brand-muted);margin-top:4px}.wb-folder{color:var(--wb-green);font-size:1.25rem}.wb-app-row code{grid-column:2;font-size:.75rem;color:var(--color-brand-muted);white-space:normal;line-height:1.8}.wb-app-focus{background:color-mix(in srgb,var(--wb-green) 7%,var(--color-brand-panel))}
.wb-project-bottom{padding:22px 24px 12px;display:flex;gap:8px;flex-wrap:wrap}.wb-project-bottom span{font-size:.75rem;padding:5px 9px;border:1px solid var(--wb-line);border-radius:4px;color:var(--wb-green)}.workbench-home .wb-panel-note{font-size:.75rem;padding:0 24px;margin-bottom:24px}
.wb-proof{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;max-width:1216px;margin:auto;padding:22px 0;border-top:1px solid var(--wb-line);font:.75rem/1.6 'JetBrains Mono',monospace;color:var(--color-brand-muted)}
.wb-section-nav{display:flex;justify-content:center;gap:30px;flex-wrap:wrap;padding:16px 24px;background:var(--color-brand-panel);border-block:1px solid var(--wb-line)}.wb-section-nav a{font-size:.875rem;color:var(--color-brand-muted);padding:4px 0}.wb-section-nav a:hover{color:var(--wb-green)}
.wb-section{max-width:1280px;margin:auto;padding:88px 32px;border-bottom:1px solid var(--wb-line)}.wb-split{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:64px}.wb-section-heading{max-width:660px;margin-bottom:40px}
.wb-arena{display:block;min-width:0;background:var(--color-brand-panel);border:1px solid var(--wb-line);border-radius:10px;padding:28px;color:var(--wb-green)}.wb-arena:hover{border-color:var(--wb-green)}.wb-arena-top{display:flex;justify-content:space-between;gap:16px;font:.75rem/1.5 'JetBrains Mono',monospace;color:var(--color-brand-muted)}.wb-arena-name{position:relative;padding:44px 0 30px;font-size:clamp(3.25rem,6vw,5rem);line-height:.9;font-weight:800;letter-spacing:-.06em}.wb-arena-name>span{color:var(--wb-orange);margin-left:14px}.wb-arena-loop{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font:.75rem/1.7 'JetBrains Mono',monospace;padding-bottom:24px;color:var(--color-brand-muted)}
.wb-arena-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;border-top:1px solid var(--wb-line);padding-top:22px}.wb-arena-facts strong{display:block;font-size:.8125rem;color:var(--color-brand-text)}.wb-arena-facts div>span{display:block;font-size:.75rem;color:var(--color-brand-muted);line-height:1.7;margin-top:5px}
.wb-demo-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:36px;align-items:start}.wb-demo{background:var(--color-brand-panel);border:1px solid var(--wb-line);border-radius:10px;overflow:hidden;min-width:0}.wb-demo-header{padding:24px 24px 0;display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap}.workbench-home .wb-demo-eyebrow{font:.75rem/1.5 'JetBrains Mono',monospace;margin-bottom:8px;color:var(--wb-green)}.wb-demo-header h3{font-size:1.25rem;margin-bottom:12px}.wb-demo-session{font-size:.75rem;color:var(--color-brand-muted)}
.wb-demo-summary{display:flex;gap:24px;font-size:.8125rem;padding:14px 24px;border-bottom:1px solid var(--wb-line);color:var(--color-brand-muted)}.wb-demo-summary strong{color:var(--wb-green);font-size:1.2rem;margin-right:5px}
.wb-demo-toolbar{display:flex;gap:12px;padding:22px 24px}.wb-demo-search{flex:1;min-width:0}.wb-demo-filter{width:135px}.wb-demo label{display:block;color:var(--color-brand-muted);font-size:.8125rem;margin-bottom:8px}.wb-demo input,.wb-demo select{width:100%;border:1px solid var(--wb-line);border-radius:5px;background:var(--color-brand-dark);color:var(--color-brand-text);padding:10px;font:inherit;font-size:1rem;min-height:44px}.wb-demo input::placeholder{color:var(--color-brand-muted);font-size:.875rem}
.wb-demo-list{list-style:none;margin:0;padding:0}.wb-demo-row{display:flex;align-items:center;gap:16px;padding:22px 24px;border-top:1px solid var(--wb-line)}.wb-demo-issue{flex:1;min-width:0}.wb-demo-meta{display:flex;gap:12px;flex-wrap:wrap;font:.75rem/1.6 'JetBrains Mono',monospace;color:var(--color-brand-muted);margin-bottom:8px}.wb-demo-app{color:var(--wb-green)}.workbench-home .wb-demo-title{font-size:1rem;line-height:1.5;margin:0;color:var(--color-brand-text)}.wb-demo-row-done .wb-demo-title{text-decoration:line-through;color:var(--color-brand-muted)}.wb-demo-toggle{border:1px solid var(--wb-line);color:var(--wb-green);border-radius:5px;background:var(--color-brand-dark);font-size:.8125rem;padding:9px 12px;min-height:44px}.wb-demo-toggle:hover{background:hsl(var(--secondary))}.wb-demo-toggle:disabled{opacity:.6}.wb-demo-empty{padding:28px 24px;color:var(--color-brand-muted)}
.wb-demo-footer{border-top:1px solid var(--wb-line);padding:18px 24px}.workbench-home .wb-demo-feedback{font-size:.8125rem;line-height:1.6;margin-bottom:8px}.wb-demo-count{color:var(--wb-green);font:.75rem/1.5 'JetBrains Mono',monospace}
.wb-demo-source{min-width:0}.workbench-home .wb-demo-source h3{margin-bottom:24px}.workbench-home .wb-demo-source .wb-eyebrow{margin-bottom:12px}.workbench-home .wb-demo-source .code-block{margin-bottom:18px}.workbench-home .wb-demo-source pre{font-size:.8125rem;white-space:pre-wrap;overflow-wrap:anywhere;padding:0}.workbench-home .wb-demo-source .highlight{padding:16px}.workbench-home .wb-code-label,.workbench-home .wb-small{font-size:.8125rem;line-height:1.7}.workbench-home .wb-code-label{margin-bottom:10px}
.wb-text-link{color:var(--wb-green);font-size:.875rem;font-weight:600;text-decoration:underline;text-underline-offset:4px;line-height:1.8}.wb-text-link:hover{color:var(--color-brand-text)}.wb-inline-links{display:flex;flex-wrap:wrap;gap:12px 24px;margin-top:28px;font-size:.875rem}.wb-inline-links>span{color:var(--color-brand-muted)}.wb-inline-links a{color:var(--wb-green)}
.wb-ai>.wb-split{align-items:start}.wb-principles{display:grid;grid-template-columns:repeat(3,1fr);gap:36px;margin-top:48px}.wb-principles article{border-top:1px solid var(--wb-line);padding-top:24px}.wb-number{display:block;color:var(--wb-green);font:.75rem/1.5 'JetBrains Mono',monospace;margin-bottom:18px}.workbench-home .wb-principles p{font-size:.9375rem}
.wb-tools{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--wb-line);border-radius:8px;background:var(--color-brand-panel);margin-top:26px;overflow:hidden}.wb-tools>a{padding:24px;border-right:1px solid var(--wb-line)}.wb-tools>a:last-child{border:0}.wb-tools>a:hover{background:hsl(var(--secondary))}.wb-tools span{display:block;font:.6875rem/1.5 'JetBrains Mono',monospace;letter-spacing:.08em;color:var(--wb-green);margin-bottom:14px}.wb-tools strong{font-size:1rem;line-height:1.5;display:block}.workbench-home .wb-tools p{font-size:.875rem;margin:10px 0 0}
.wb-compatibility{border-left:2px solid var(--wb-green);padding:12px 0 12px 36px}.wb-score{font-size:clamp(3.75rem,7vw,6rem);font-weight:800;letter-spacing:-.06em;line-height:1;color:var(--wb-green);margin-bottom:20px}.wb-score>span{font-size:.5em}.wb-compatibility>strong{display:block;font-size:1.1rem;margin-bottom:12px}.workbench-home .wb-compatibility>p{font-size:.9375rem}.workbench-home details{border-top:1px solid var(--wb-line);padding-top:16px}.workbench-home summary{cursor:pointer;font-size:.875rem;color:var(--wb-green);padding:4px 0;line-height:1.7}.workbench-home details p{font-size:.875rem;line-height:1.8;margin-top:16px}.wb-foundation-links{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin-top:48px}.wb-foundation-links a{border-top:1px solid var(--wb-line);padding-top:22px}.wb-foundation-links strong{display:block;font-size:1rem;margin-bottom:10px}.wb-foundation-links span{display:block;font-size:.875rem;line-height:1.7;color:var(--color-brand-muted)}.wb-foundation-links a:hover strong{color:var(--wb-green)}
.wb-start{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}.wb-launch-path>div{display:flex;gap:24px;padding:24px 0;border-bottom:1px solid var(--wb-line)}.wb-launch-path>div:first-child{padding-top:0}.wb-launch-path>div>span{font:.75rem/1.5 'JetBrains Mono',monospace;color:var(--wb-green);padding-top:5px}.wb-launch-path strong{display:block;margin-bottom:8px;font-size:1.1rem}.wb-launch-path code{display:block;font-size:.875rem;color:var(--wb-green)}.workbench-home .wb-launch-path p{font-size:.875rem;line-height:1.7;margin:8px 0 0}.wb-launch-path .wb-text-link{display:inline-block;margin-top:12px}.wb-launch-path p a{text-decoration:underline}
.workbench-home .wb-reference{padding-top:42px;padding-bottom:42px;border-bottom:0}.wb-reference-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:18px}.workbench-home .wb-reference h2{font-size:1.5rem;margin-bottom:12px}.workbench-home .wb-reference p{font-size:.875rem;margin-bottom:0}.wb-directive-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}
.workbench-home :is(a,button,input,select,summary):focus-visible{outline:3px solid hsl(var(--ring));outline-offset:4px}
@media(max-width:1050px){.wb-hero,.wb-split,.wb-start{gap:36px}.wb-proof{margin-inline:32px}.wb-demo-layout{grid-template-columns:1fr 1fr;gap:24px}.wb-demo-row{padding:20px 16px;gap:10px}.wb-demo-toolbar{padding-inline:16px}.wb-tools>a{padding:20px}.wb-principles{gap:24px}}
@media(max-width:820px){.wb-hero,.wb-split,.wb-start,.wb-demo-layout{grid-template-columns:1fr}.wb-hero{padding-top:110px;gap:40px}.wb-project{max-width:600px}.wb-section{padding-block:56px}.wb-section-nav{gap:14px 24px}.wb-proof{gap:10px 24px}.wb-demo-source{margin-top:16px}.wb-principles,.wb-tools,.wb-foundation-links{grid-template-columns:1fr}.wb-principles{gap:12px;margin-top:20px}.wb-tools>a{border-right:0;border-bottom:1px solid var(--wb-line)}.wb-foundation-links{gap:20px;margin-top:30px}.wb-arena{max-width:600px}.wb-start{gap:40px}.wb-compatibility{padding-left:24px}.wb-reference-heading{align-items:start;flex-direction:column;gap:14px}}
@media(max-width:480px){.wb-hero,.wb-section{padding-inline:20px}.wb-proof{margin-inline:20px}.wb-proof>span{flex-basis:100%}.wb-app-row{padding:20px 16px;gap:10px}.wb-panel-bar{padding:16px}.wb-arena{padding:20px}.wb-arena-facts{gap:10px}.wb-arena-facts strong{font-size:.75rem}.wb-demo-toolbar{flex-direction:column}.wb-demo-filter{width:100%}.wb-demo-row{align-items:start;flex-wrap:wrap}.wb-demo-issue{min-width:170px}.wb-demo-meta{gap:8px}.wb-demo-header{padding-inline:16px}.wb-demo-summary,.wb-demo-footer{padding-inline:16px}.wb-directive-grid{grid-template-columns:1fr}.wb-section-nav{justify-content:start}.wb-actions{align-items:stretch}.wb-actions .wb-button{flex:1;min-width:140px}}
@media(prefers-reduced-motion:reduce){.wb-button{transition:none}}

/* Component strip — real components, rendered from the catalogue's own
   examples (see `marketing/catalogue.py`). The swatch is a light surface in a
   dark page, so it sets BOTH colours from djust's theme tokens: background
   alone left every component drawing the site's light-on-dark body colour
   onto white, which reads as blank. */
.wb-component-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:40px}
.wb-component-strip>a{display:block;border:1px solid var(--wb-line);border-radius:6px;overflow:hidden;background:var(--color-brand-panel);transition:border-color .15s}
.wb-component-strip>a:hover{border-color:var(--wb-green)}
.wb-component-strip>a>strong{display:block;padding:12px 16px;font-size:.875rem;font-weight:500;color:var(--color-brand-text)}
.wb-component-swatch{display:flex;align-items:center;justify-content:center;min-height:7rem;padding:24px;overflow:hidden;background:hsl(var(--background,0 0% 100%));color:hsl(var(--foreground,240 10% 4%))}
@media (max-width:900px){.wb-component-strip{grid-template-columns:repeat(2,1fr)}}
@media (max-width:520px){.wb-component-strip{grid-template-columns:1fr}}
