.patches-studio .intro{display:block;padding:42px 0 32px}.patches-studio .intro-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}.patches-studio .intro-row>.button{flex:none;padding-inline:12px}.patches-studio h1{font-family:var(--font-display);font-size:clamp(36px,4vw,54px);line-height:1.12;font-weight:500;letter-spacing:-.025em;margin:0 0 12px}.patches-studio .intro p{margin:0;color:var(--muted-foreground);font-size:20px;line-height:1.45;white-space:nowrap}.patches-studio .button{min-height:44px;padding:10px 16px;border:1px solid var(--border);background:var(--card);font-family:var(--font-mono);font-size:11px;line-height:1.5;border-radius:2px;display:inline-flex;align-items:center;justify-content:center;gap:8px}.patches-studio .button:hover:not(:disabled){background:var(--accent);border-color:var(--primary)}.patches-studio .button.primary{background:var(--primary);color:var(--primary-foreground);border-color:var(--primary)}.patches-studio .button svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.5;flex:none}.patches-studio .workspace{display:block}.patches-studio .art-column{min-width:0}.patches-studio .stage{padding:28px 52px;background:var(--art-background);position:relative;user-select:none}.patches-studio .artwork-browser:focus-visible,.patches-studio .button:focus-visible,.patches-studio .palette:focus-visible{outline:2px solid var(--primary);outline-offset:5px}.patches-studio .artwork-browser:focus-visible{outline-offset:2px}.patches-studio .art-viewport{position:absolute;inset:0;width:100%;height:100%;display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;touch-action:auto;scrollbar-width:none}.patches-studio .art-viewport::-webkit-scrollbar{display:none}.patches-studio .art-viewport[data-prepared=false]{overflow-x:hidden}.patches-studio .art-viewport[data-visible=false]{visibility:hidden}.patches-studio .art-slide{flex:0 0 100%;width:100%;min-width:0;height:100%;scroll-snap-align:center;scroll-snap-stop:always}.patches-studio .art-tile{display:block;width:100%;min-width:0;height:100%}.patches-studio .palette-arrow{position:absolute;top:50%;transform:translateY(-50%);width:44px;padding:10px}.patches-studio .palette-arrow.previous{left:4px}.patches-studio .palette-arrow.next{right:4px}.patches-studio .render-error{position:absolute;inset:12px;align-content:center;text-align:center;background:var(--card);padding:12px;font-family:var(--font-mono);font-size:11px}.patches-studio .render-error:not([hidden]){display:grid;justify-items:center}.patches-studio .render-error p{color:var(--destructive);margin:0 0 12px}.patches-studio .patchwork-controls{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:32px}.patches-studio .patchwork-controls .hint{margin-top:0}.patches-studio .thumbnail-error:not([hidden]){display:block;margin-bottom:16px}.patches-studio .art-frame{width:100%;width:round(down,100%,1px);margin-inline:auto;aspect-ratio:16/9;position:relative}.patches-studio .art-frame.framed{outline:4px solid #64513b;box-shadow:0 0 0 5px #ab906b,1px 7px 16px #3e321647}.patches-studio .art-frame.framed:after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 1px 2px 5px #211a1455}.patches-studio .art-caption{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px;padding:8px 0 14px;color:var(--muted-foreground)}.patches-studio .art-caption>output{grid-column:2;text-align:center}.patches-studio .art-caption strong{display:block;font-size:20px;line-height:1.2;font-weight:500;color:var(--foreground)}.patches-studio .palette-details{display:block;margin-top:3px;font-family:var(--font-mono);font-size:10px;line-height:1.6}.patches-studio .caption-dot{margin:0 9px;color:var(--border-strong)}.patches-studio .frame-control{display:inline-flex;align-items:center;gap:7px;min-height:44px;justify-self:end;grid-column:3;font-family:var(--font-mono);font-size:10px;white-space:nowrap}.patches-studio .switch-track{width:34px;height:20px;border:1px solid var(--border-strong);border-radius:20px;background:var(--muted);position:relative;transition:background .15s}.patches-studio .switch-track:after{content:"";position:absolute;width:12px;height:12px;left:3px;top:3px;border-radius:50%;background:var(--muted-foreground);transition:transform .15s}.patches-studio #frame-toggle:checked+.switch-track{background:var(--primary);border-color:var(--primary)}.patches-studio #frame-toggle:checked+.switch-track:after{background:var(--primary-foreground);transform:translateX(14px)}.patches-studio #frame-toggle:focus-visible+.switch-track{outline:2px solid var(--primary);outline-offset:4px}.patches-studio .section-heading{display:flex;align-items:center;gap:10px;margin:0 0 10px;font-family:var(--font-mono);font-size:11px;letter-spacing:.05em;font-weight:400;text-transform:uppercase}.patches-studio .section-heading .number{color:var(--muted-foreground)}.patches-studio .texture-control .section-heading output{margin-left:auto;color:var(--muted-foreground);text-transform:none;letter-spacing:0}.patches-studio .palettes{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:20px 14px}.patches-studio .palette{padding:0;border:0;background:none;text-align:left;min-width:0;border-radius:2px}.patches-studio .palette-image{aspect-ratio:16/9;background:var(--muted);overflow:hidden;border:3px solid transparent;outline:1px solid transparent;transition:outline-color .15s}.patches-studio .palette[aria-pressed=true] .palette-image{outline-color:var(--primary)}.patches-studio .palette:hover .palette-image{outline-color:var(--border-strong)}.patches-studio .palette canvas{display:block;width:100%;height:100%}.patches-studio .palette-label{display:flex;align-items:center;justify-content:space-between;gap:3px;margin:8px 0 5px;font-size:18px;line-height:1.25}.patches-studio .palette-check{visibility:hidden;color:var(--primary);font-size:12px}.patches-studio .palette[aria-pressed=true] .palette-check{visibility:visible}.patches-studio .swatches{display:flex;gap:4px;padding-top:11px}.patches-studio .swatch{display:block;position:relative;height:12px;flex:1;min-width:0;border-radius:1px;box-shadow:inset 0 0 0 1px #292c2522}.patches-studio .swatch:before{content:"";position:absolute;top:-9px;left:50%;transform:translateX(-50%);width:5px;height:5px;border-radius:50%;background:var(--foreground);opacity:0}.patches-studio .swatch.used:before{opacity:1}.patches-studio .palette-legend{display:flex;align-items:center;gap:7px;margin:-5px 0 16px;font-family:var(--font-mono);font-size:10px;color:var(--muted-foreground)}.patches-studio .palette-legend:before{content:"";width:5px;height:5px;border-radius:50%;background:var(--foreground);flex:none}.patches-studio .palette-note{font-style:italic;color:var(--muted-foreground);font-size:18px;margin:20px 0 0}.patches-studio .control-section{border-bottom:1px solid var(--border);padding:0 0 24px;margin-bottom:28px}.patches-studio label.field{display:block;font-size:18px;margin-bottom:10px}.patches-studio .grid-picker{min-width:0;border:0;padding:0;margin:0}.patches-studio .grid-picker legend{padding:0;margin-bottom:10px;font-size:18px}.patches-studio .grid-options{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.patches-studio .grid-choice{position:relative;min-width:0}.patches-studio .grid-choice span{min-height:44px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:2px;font-family:var(--font-mono);font-size:11px;background:var(--card)}.patches-studio .grid-choice:hover span{border-color:var(--primary)}.patches-studio .grid-choice input:checked+span{background:var(--primary);border-color:var(--primary);color:var(--primary-foreground)}.patches-studio .grid-choice input:focus-visible+span{outline:2px solid var(--primary);outline-offset:3px}.patches-studio .grid-choice input:disabled+span{opacity:.5;cursor:wait}.patches-studio .grid-description{display:block;margin:10px 0 0;font-family:var(--font-mono);font-size:10px;color:var(--muted-foreground)}.patches-studio input[type=number],.patches-studio input[type=text],.patches-studio select{width:100%;min-height:44px;background:var(--card);color:var(--foreground);border:1px solid var(--border);border-radius:2px;padding:0 10px;font-family:var(--font-mono);font-size:11px}.patches-studio .print-options{margin-top:15px}.patches-studio .print-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.patches-studio .print-fields label{display:block;font-size:16px;line-height:1.7}.patches-studio .print-spec{font-family:var(--font-mono);font-size:10px;line-height:1.7;margin:10px 0 0}.patches-studio .print-options progress{width:100%;height:5px;accent-color:var(--primary)}.patches-studio select{padding-right:24px}.patches-studio #texture{display:block;width:100%;height:44px;margin:0;accent-color:var(--primary)}.patches-studio .texture-steps{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:8px;color:var(--muted-foreground);margin-top:3px}.patches-studio .seed-row{display:flex;gap:7px}.patches-studio .seed-row input{min-width:0}.patches-studio .seed-row .button{padding:8px 11px}.patches-studio .hint{font-size:16px;line-height:1.4;color:var(--muted-foreground);margin:12px 0 0}.patches-studio .export .button{width:100%;margin-top:10px}.patches-studio .export .hint{font-size:15px}.patches-studio .footer{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;border-top:1px solid var(--border);margin:36px 0 0;padding:22px 0 28px;color:var(--muted-foreground);font-family:var(--font-mono);font-size:10px;line-height:1.7}.patches-studio .footer-status{display:flex;align-items:center;gap:7px}.patches-studio .footer-status output{inline-size:27ch}.patches-studio .status-dot{display:block;width:5px;height:5px;background:var(--primary);border-radius:50%}.patches-studio #error{color:var(--destructive);font-size:16px;line-height:1.5}.patches-studio .sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (min-width:1500px){.patches-studio .stage{padding:32px 52px}}@media (max-width:1000px){.patches-studio .shell{padding:0 28px}.patches-studio .brand-name{font-size:16px;letter-spacing:.14em}.patches-studio .brand{gap:10px}.patches-studio .stage{padding:20px 52px}.patches-studio .palettes{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:760px){.patches-studio .intro{padding:32px 0 26px;max-width:none}.patches-studio .intro p{font-size:19px}.patches-studio .intro-row>.button{width:44px;height:44px;padding:0}.patches-studio .generate-label{display:none}.patches-studio .patchwork-controls{grid-template-columns:1fr;gap:18px}.patches-studio .grid-options{grid-template-columns:repeat(3,minmax(0,1fr))}.patches-studio .grid-choice:last-child{grid-column:1/-1}.patches-studio .frame-preview,.patches-studio .palette-navigation{display:none}.patches-studio .frame-text{text-transform:capitalize}.patches-studio .stage{padding:16px}.patches-studio .palettes{gap:20px 12px}.patches-studio .palette-check{display:none}}@media (max-width:700px){.patches-studio .shell{padding:0 20px}.patches-studio .masthead{min-height:56px;padding-block:5px;gap:8px}.patches-studio .brand-name{font-size:12px;letter-spacing:.08em}.patches-studio .brand{gap:6px}.patches-studio .header-actions{gap:4px}.patches-studio .brand-mark{transform:scale(.85);transform-origin:left center;margin-right:-3px}.patches-studio .theme-toggle{width:44px;min-width:44px;padding:0}.patches-studio .theme-toggle .theme-label{display:none}.patches-studio .stage{padding:16px}}@media (max-width:420px){.patches-studio .stage{padding:12px}.patches-studio .palettes{gap:18px 10px}.patches-studio .palette-label{font-size:16px}.patches-studio .swatches{gap:3px}.patches-studio .art-caption{font-size:9px}}@media (max-width:380px){.patches-studio .wallet-action{width:44px;padding:0}.patches-studio .wallet-action svg{display:block}.patches-studio .wallet-action .wallet-label{display:none}}@media (prefers-reduced-motion:reduce){.patches-studio *{transition:none!important;animation:none!important}}.patches-studio{font-family:var(--font-sans);font-size:20px;--font-body:var(--font-sans)}.patches-studio .palettes{border:0;padding:0;margin:0;min-width:0}