:root{--raster-canvas: #f6f6f4;--raster-surface: #ffffff;--raster-surface-subtle: #eeeee9;--raster-surface-hover: #e5e5de;--raster-fg-primary: #0a0a0a;--raster-fg-secondary: #4a4a47;--raster-fg-muted: #7e7e78;--raster-fg-faint: #adada6;--raster-border: #d8d8d0;--raster-border-strong: #0a0a0a;--raster-border-subtle: #e7e7e0;--raster-accent: #e62e00;--raster-accent-hover: #c42600;--raster-accent-subtle: rgba(230, 46, 0, .08);--raster-accent-fg: #ffffff;--raster-signal-blue: #0044ff;--raster-signal-emerald: #058249;--raster-signal-amber: #c47700;--raster-shadow-none: none;--raster-shadow-hard-sm: 2px 2px 0px var(--raster-border-strong);--raster-shadow-hard: 4px 4px 0px var(--raster-border-strong);--raster-shadow-hard-lg: 6px 6px 0px var(--raster-border-strong);--raster-radius-none: 0px;--raster-radius-sm: 2px;--raster-radius-md: 4px;--raster-radius: var(--raster-radius-none);--raster-font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Neue Haas Grotesk", "Helvetica Neue", Helvetica, Arial, sans-serif;--raster-font-display: "Archivo", "Inter", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;--raster-font-mono: "JetBrains Mono", "IBM Plex Mono", "SF Mono", Menlo, Consolas, Monaco, monospace;--raster-text-display-2xl: clamp(2.25rem, 7vw, 5.5rem);--raster-lead-display-2xl: 1;--raster-track-display-2xl: -.04em;--raster-text-display-xl: clamp(1.85rem, 5vw, 3.75rem);--raster-lead-display-xl: 1.05;--raster-track-display-xl: -.035em;--raster-text-display-lg: clamp(1.5rem, 3.5vw, 2.5rem);--raster-lead-display-lg: 1.1;--raster-track-display-lg: -.025em;--raster-touch-target: 44px;--raster-touch-target-sm: 36px;--raster-text-h1: 1.875rem;--raster-lead-h1: 1.15;--raster-track-h1: -.025em;--raster-text-h2: 1.375rem;--raster-lead-h2: 1.25;--raster-track-h2: -.02em;--raster-text-h3: 1.0625rem;--raster-lead-h3: 1.35;--raster-track-h3: -.015em;--raster-text-body: .9375rem;--raster-lead-body: 1.6;--raster-track-body: -.005em;--raster-text-small: .8125rem;--raster-lead-small: 1.5;--raster-track-small: 0em;--raster-text-micro: .6875rem;--raster-lead-micro: 1.3;--raster-track-micro: .08em;--raster-space-1: 4px;--raster-space-2: 8px;--raster-space-3: 12px;--raster-space-4: 16px;--raster-space-5: 20px;--raster-space-6: 24px;--raster-space-8: 32px;--raster-space-10: 40px;--raster-space-12: 48px;--raster-space-16: 64px;--raster-space-20: 80px;--raster-space-24: 96px;--raster-max-width: 1360px;--raster-max-width-narrow: 860px}[data-theme=dark],.dark{--raster-canvas: #0c0c0c;--raster-surface: #141414;--raster-surface-subtle: #1c1c1c;--raster-surface-hover: #262626;--raster-fg-primary: #f5f5f3;--raster-fg-secondary: #b5b5ae;--raster-fg-muted: #808078;--raster-fg-faint: #4d4d47;--raster-border: #282826;--raster-border-strong: #f5f5f3;--raster-border-subtle: #1e1e1d;--raster-accent: #ff3b14;--raster-accent-hover: #ff5433;--raster-accent-subtle: rgba(255, 59, 20, .12);--raster-accent-fg: #0c0c0c;--raster-signal-blue: #3b82f6;--raster-signal-emerald: #10b981;--raster-signal-amber: #f59e0b;--raster-shadow-hard-sm: 2px 2px 0px var(--raster-border-strong);--raster-shadow-hard: 4px 4px 0px var(--raster-border-strong);--raster-shadow-hard-lg: 6px 6px 0px var(--raster-border-strong)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:"cv02","cv03","cv04","cv11"}body{min-height:100vh;background-color:var(--raster-canvas);color:var(--raster-fg-primary);font-family:var(--raster-font-sans);font-size:var(--raster-text-body);line-height:var(--raster-lead-body);letter-spacing:var(--raster-track-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit;color:inherit}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}table{border-collapse:collapse;border-spacing:0;width:100%}a{color:inherit;text-decoration:none}::selection{background-color:var(--raster-fg-primary);color:var(--raster-canvas)}.raster-display-2xl{font-family:var(--raster-font-display);font-size:var(--raster-text-display-2xl);line-height:var(--raster-lead-display-2xl);letter-spacing:var(--raster-track-display-2xl);font-weight:700;text-wrap:balance}.raster-display-xl{font-family:var(--raster-font-display);font-size:var(--raster-text-display-xl);line-height:var(--raster-lead-display-xl);letter-spacing:var(--raster-track-display-xl);font-weight:700;text-wrap:balance}.raster-display-lg{font-family:var(--raster-font-display);font-size:var(--raster-text-display-lg);line-height:var(--raster-lead-display-lg);letter-spacing:var(--raster-track-display-lg);font-weight:700}h1,.raster-h1{font-family:var(--raster-font-sans);font-size:var(--raster-text-h1);line-height:var(--raster-lead-h1);letter-spacing:var(--raster-track-h1);font-weight:600}h2,.raster-h2{font-family:var(--raster-font-sans);font-size:var(--raster-text-h2);line-height:var(--raster-lead-h2);letter-spacing:var(--raster-track-h2);font-weight:600}h3,.raster-h3{font-family:var(--raster-font-sans);font-size:var(--raster-text-h3);line-height:var(--raster-lead-h3);letter-spacing:var(--raster-track-h3);font-weight:600}p,.raster-body{font-size:var(--raster-text-body);line-height:var(--raster-lead-body);letter-spacing:var(--raster-track-body);color:var(--raster-fg-secondary)}.raster-lead{font-size:1.125rem;line-height:1.6;letter-spacing:-.01em;color:var(--raster-fg-primary);font-weight:400}.raster-small{font-size:var(--raster-text-small);line-height:var(--raster-lead-small);letter-spacing:var(--raster-track-small)}.raster-label,.raster-micro{font-size:var(--raster-text-micro);line-height:var(--raster-lead-micro);letter-spacing:var(--raster-track-micro);text-transform:uppercase;font-weight:600;color:var(--raster-fg-muted)}.raster-label-accent{color:var(--raster-accent)}.raster-mono{font-family:var(--raster-font-mono);font-feature-settings:"tnum" 1;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.raster-tabular{font-feature-settings:"tnum" 1;font-variant-numeric:tabular-nums}.raster-section-header{display:flex;align-items:baseline;gap:var(--raster-space-4);padding-bottom:var(--raster-space-3);border-bottom:1px solid var(--raster-border-strong);margin-bottom:var(--raster-space-6)}.raster-section-header .raster-index{font-family:var(--raster-font-mono);font-size:var(--raster-text-small);color:var(--raster-accent);font-weight:600}.raster-section-header .raster-rule{flex:1;height:1px;background-color:var(--raster-border);align-self:center}.raster-section-header .raster-meta{font-family:var(--raster-font-mono);font-size:var(--raster-text-micro);color:var(--raster-fg-muted);text-transform:uppercase;letter-spacing:var(--raster-track-micro)}.raster-hr{border:0;height:1px;background-color:var(--raster-border);margin:var(--raster-space-6) 0}.raster-hr-strong{background-color:var(--raster-border-strong)}.raster-hr-accent{background-color:var(--raster-accent);height:2px}.raster-container{width:100%;max-width:var(--raster-max-width);margin-left:auto;margin-right:auto;padding-left:var(--raster-space-6);padding-right:var(--raster-space-6)}.raster-container-narrow{max-width:var(--raster-max-width-narrow)}.raster-container-fluid{max-width:100%}.raster-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--raster-space-6);width:100%}.raster-grid-tight{gap:var(--raster-space-3)}.raster-grid-loose{gap:var(--raster-space-10)}.raster-grid-none{gap:0}.col-1{grid-column:span 1 / span 1}.col-2{grid-column:span 2 / span 2}.col-3{grid-column:span 3 / span 3}.col-4{grid-column:span 4 / span 4}.col-5{grid-column:span 5 / span 5}.col-6{grid-column:span 6 / span 6}.col-7{grid-column:span 7 / span 7}.col-8{grid-column:span 8 / span 8}.col-9{grid-column:span 9 / span 9}.col-10{grid-column:span 10 / span 10}.col-11{grid-column:span 11 / span 11}.col-12{grid-column:span 12 / span 12}.raster-split-asymmetric{display:grid;grid-template-columns:8fr 4fr;gap:var(--raster-space-6)}.raster-split-half{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--raster-space-6)}.raster-split-third{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--raster-space-6)}.raster-split-quarter{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--raster-space-6)}.raster-grid-hairline{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));border-top:1px solid var(--raster-border);border-left:1px solid var(--raster-border);gap:0}.raster-grid-hairline>*{border-right:1px solid var(--raster-border);border-bottom:1px solid var(--raster-border);padding:var(--raster-space-6);background-color:var(--raster-surface)}@media(max-width:1024px){.raster-split-asymmetric,.raster-split-quarter{grid-template-columns:repeat(2,minmax(0,1fr))}.col-lg-12{grid-column:span 12 / span 12}.col-lg-8{grid-column:span 8 / span 8}.col-lg-6{grid-column:span 6 / span 6}.col-lg-4{grid-column:span 4 / span 4}}@media(max-width:768px){.raster-container{padding-left:var(--raster-space-4);padding-right:var(--raster-space-4)}.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12,.col-sm-12{grid-column:span 12 / span 12}.col-sm-6{grid-column:span 6 / span 6}.col-sm-4{grid-column:span 4 / span 4}.raster-grid{gap:var(--raster-space-4)}.raster-split-asymmetric,.raster-split-half,.raster-split-third,.raster-split-quarter{grid-template-columns:1fr;gap:var(--raster-space-4)}.raster-grid-mobile-2{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:var(--raster-space-3)!important}.raster-grid-mobile-2>*{grid-column:auto!important}.raster-grid-hairline{grid-template-columns:1fr;border-top:1px solid var(--raster-border);border-left:1px solid var(--raster-border);border-right:1px solid var(--raster-border)}.raster-grid-hairline>*{border-right:none;border-bottom:1px solid var(--raster-border);padding:var(--raster-space-4)}}@media(max-width:480px){.raster-container{padding-left:var(--raster-space-3);padding-right:var(--raster-space-3)}.raster-grid{gap:var(--raster-space-3)}.col-xs-12{grid-column:span 12 / span 12!important}.col-xs-6{grid-column:span 6 / span 6!important}}.raster-card{position:relative;background-color:var(--raster-surface);border:1px solid var(--raster-border);border-radius:var(--raster-radius);padding:var(--raster-space-6);transition:border-color .15s ease}.raster-card-subtle{background-color:var(--raster-surface-subtle)}.raster-card-interactive{cursor:pointer}.raster-card-interactive:hover{border-color:var(--raster-border-strong)}.raster-card-accent-top{border-top:3px solid var(--raster-accent)}.raster-card-hard-shadow{box-shadow:var(--raster-shadow-hard)}.raster-card-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--raster-space-4)}.raster-card-title{font-family:var(--raster-font-sans);font-size:var(--raster-text-h3);font-weight:600;letter-spacing:var(--raster-track-h3)}.raster-card-footer{margin-top:var(--raster-space-6);padding-top:var(--raster-space-3);border-top:1px solid var(--raster-border-subtle);display:flex;justify-content:space-between;align-items:center}.raster-stat{display:flex;flex-direction:column;gap:var(--raster-space-2)}.raster-stat-label{font-size:var(--raster-text-micro);font-weight:600;text-transform:uppercase;letter-spacing:var(--raster-track-micro);color:var(--raster-fg-muted);display:flex;align-items:center;justify-content:space-between}.raster-stat-value{font-family:var(--raster-font-display);font-size:clamp(1.75rem,3.5vw,2.75rem);line-height:1.05;font-weight:700;letter-spacing:-.035em;color:var(--raster-fg-primary);font-feature-settings:"tnum" 1;font-variant-numeric:tabular-nums}.raster-stat-sub{font-size:var(--raster-text-small);color:var(--raster-fg-secondary);display:flex;align-items:center;gap:var(--raster-space-2);margin-top:var(--raster-space-1)}.raster-delta{font-family:var(--raster-font-mono);font-size:var(--raster-text-micro);font-weight:600;padding:1px 4px}.raster-delta-positive{color:var(--raster-signal-emerald);background-color:#0582491a}.raster-delta-negative{color:var(--raster-accent);background-color:var(--raster-accent-subtle)}.raster-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--raster-space-2);font-family:var(--raster-font-sans);font-size:var(--raster-text-small);font-weight:600;letter-spacing:.02em;padding:var(--raster-space-2) var(--raster-space-4);border-radius:var(--raster-radius);border:1px solid transparent;cursor:pointer;background:none;transition:all .15s ease;-webkit-user-select:none;user-select:none;white-space:nowrap}.raster-btn:focus-visible{outline:2px solid var(--raster-accent);outline-offset:2px}.raster-btn-primary{background-color:var(--raster-fg-primary);color:var(--raster-canvas);border-color:var(--raster-fg-primary)}.raster-btn-primary:hover{background-color:var(--raster-accent);border-color:var(--raster-accent);color:#fff}.raster-btn-accent{background-color:var(--raster-accent);color:#fff;border-color:var(--raster-accent)}.raster-btn-accent:hover{background-color:var(--raster-accent-hover);border-color:var(--raster-accent-hover)}.raster-btn-outline{border-color:var(--raster-border-strong);color:var(--raster-fg-primary);background-color:transparent}.raster-btn-outline:hover{background-color:var(--raster-fg-primary);color:var(--raster-canvas)}.raster-btn-ghost{border-color:var(--raster-border);color:var(--raster-fg-secondary);background-color:var(--raster-surface)}.raster-btn-ghost:hover{border-color:var(--raster-border-strong);color:var(--raster-fg-primary)}.raster-btn-sm{font-size:var(--raster-text-micro);padding:4px 8px;letter-spacing:var(--raster-track-micro);text-transform:uppercase}.raster-btn-group{display:inline-flex;border:1px solid var(--raster-border);background-color:var(--raster-surface);padding:2px;gap:2px}.raster-btn-group .raster-btn{border:none;padding:4px 10px;font-size:var(--raster-text-micro);font-weight:600;text-transform:uppercase;letter-spacing:var(--raster-track-micro);color:var(--raster-fg-muted)}.raster-btn-group .raster-btn.is-active{background-color:var(--raster-fg-primary);color:var(--raster-canvas)}.raster-tag{display:inline-flex;align-items:center;font-family:var(--raster-font-mono);font-size:var(--raster-text-micro);font-weight:600;text-transform:uppercase;letter-spacing:var(--raster-track-micro);padding:2px 6px;border:1px solid var(--raster-border);background-color:var(--raster-surface);color:var(--raster-fg-secondary);white-space:nowrap}.raster-tag-accent{border-color:var(--raster-accent);color:var(--raster-accent);background-color:var(--raster-accent-subtle)}.raster-tag-solid{background-color:var(--raster-fg-primary);color:var(--raster-canvas);border-color:var(--raster-fg-primary)}.raster-bracket:before{content:"[ ";color:var(--raster-fg-faint)}.raster-bracket:after{content:" ]";color:var(--raster-fg-faint)}.raster-meter{display:flex;flex-direction:column;gap:var(--raster-space-2);width:100%}.raster-meter-header{display:flex;justify-content:space-between;align-items:baseline;font-size:var(--raster-text-small)}.raster-meter-track{height:6px;background-color:var(--raster-border-subtle);border:1px solid var(--raster-border);overflow:hidden;display:flex;position:relative}.raster-meter-fill{height:100%;background-color:var(--raster-fg-primary);transition:width .3s ease}.raster-meter-fill-accent{background-color:var(--raster-accent)}.raster-meter-fill-blue{background-color:var(--raster-signal-blue)}.raster-segmented-bar{display:flex;height:8px;width:100%;background-color:var(--raster-border-subtle);border:1px solid var(--raster-border);gap:1px}.raster-segmented-bar>*{height:100%}.raster-table-container{width:100%;overflow-x:auto;border:1px solid var(--raster-border);background-color:var(--raster-surface)}.raster-table{width:100%;text-align:left}.raster-table th{font-family:var(--raster-font-sans);font-size:var(--raster-text-micro);font-weight:600;text-transform:uppercase;letter-spacing:var(--raster-track-micro);color:var(--raster-fg-muted);background-color:var(--raster-surface-subtle);padding:var(--raster-space-3) var(--raster-space-4);border-bottom:1px solid var(--raster-border-strong)}.raster-table td{padding:var(--raster-space-3) var(--raster-space-4);font-size:var(--raster-text-small);border-bottom:1px solid var(--raster-border-subtle);vertical-align:middle}.raster-table tr:last-child td{border-bottom:none}.raster-table tr:hover td{background-color:var(--raster-surface-subtle)}.raster-table .cell-num{text-align:right;font-family:var(--raster-font-mono);font-feature-settings:"tnum" 1}.raster-field{display:flex;flex-direction:column;gap:var(--raster-space-2);width:100%}.raster-field-label{font-size:var(--raster-text-micro);font-weight:600;text-transform:uppercase;letter-spacing:var(--raster-track-micro);color:var(--raster-fg-muted)}.raster-input,.raster-select,.raster-textarea{width:100%;padding:var(--raster-space-2) var(--raster-space-3);font-family:var(--raster-font-sans);font-size:var(--raster-text-body);background-color:var(--raster-surface);border:1px solid var(--raster-border);border-radius:var(--raster-radius);color:var(--raster-fg-primary);outline:none;transition:border-color .15s ease}.raster-input:focus,.raster-select:focus,.raster-textarea:focus{border-color:var(--raster-fg-primary);box-shadow:0 0 0 1px var(--raster-fg-primary)}.raster-input::placeholder{color:var(--raster-fg-faint)}.raster-input-underline{border:none;border-bottom:1px solid var(--raster-border);background:transparent;padding-left:0;padding-right:0}.raster-input-underline:focus{border-bottom-color:var(--raster-accent);box-shadow:none}.raster-masthead{border-bottom:1px solid var(--raster-border);background-color:var(--raster-canvas);position:sticky;top:0;z-index:100}.raster-masthead-inner{display:flex;align-items:center;justify-content:space-between;padding-top:var(--raster-space-4);padding-bottom:var(--raster-space-4)}.raster-brand{display:flex;align-items:baseline;gap:var(--raster-space-2);font-family:var(--raster-font-display);font-weight:700;font-size:1.25rem;letter-spacing:-.03em;color:var(--raster-fg-primary)}.raster-brand-dot{display:inline-block;width:6px;height:6px;background-color:var(--raster-accent)}.raster-nav-links{display:flex;align-items:center;gap:var(--raster-space-6);list-style:none}.raster-nav-link{font-size:var(--raster-text-small);font-weight:500;color:var(--raster-fg-secondary);transition:color .15s ease}.raster-nav-link:hover,.raster-nav-link.is-active{color:var(--raster-fg-primary)}.raster-callout{padding:var(--raster-space-4);border-left:3px solid var(--raster-border-strong);background-color:var(--raster-surface-subtle);display:flex;flex-direction:column;gap:var(--raster-space-1)}.raster-callout-accent{border-left-color:var(--raster-accent)}.raster-btn-touch{min-height:var(--raster-touch-target);padding:10px 18px}@media(max-width:768px){.raster-btn-full-mobile{width:100%;display:flex}}.raster-btn-group-responsive{display:flex;width:100%}.raster-btn-group-responsive .raster-btn{flex:1 1 0;text-align:center}.raster-table-container{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--raster-border);background-color:var(--raster-surface);position:relative}.raster-table-container:after{content:"";position:absolute;top:0;right:0;bottom:0;width:24px;background:linear-gradient(to right,transparent,var(--raster-border-subtle));pointer-events:none;opacity:.6}.raster-nav-scrollable{display:flex;align-items:center;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:nowrap;scrollbar-width:none;gap:var(--raster-space-3);padding-bottom:2px}.raster-nav-scrollable::-webkit-scrollbar{display:none}.raster-menu-btn{display:none;align-items:center;justify-content:center;background:transparent;border:1px solid var(--raster-border);padding:8px 12px;cursor:pointer;font-family:var(--raster-font-mono);font-size:var(--raster-text-micro);font-weight:700;text-transform:uppercase;letter-spacing:var(--raster-track-micro);color:var(--raster-fg-primary);min-height:38px}.raster-menu-btn:focus-visible{outline:2px solid var(--raster-accent)}.raster-nav-mobile{display:none;width:100%;border-top:1px solid var(--raster-border);padding:var(--raster-space-4) 0;background-color:var(--raster-canvas)}.raster-nav-mobile.is-open{display:flex;flex-direction:column;gap:var(--raster-space-2)}.raster-nav-mobile .raster-nav-link{display:block;padding:var(--raster-space-3) var(--raster-space-4);font-size:var(--raster-text-body);font-weight:600;border-left:3px solid transparent}.raster-nav-mobile .raster-nav-link:hover,.raster-nav-mobile .raster-nav-link.is-active{border-left-color:var(--raster-accent);background-color:var(--raster-surface-subtle);color:var(--raster-fg-primary)}@media(max-width:768px){.raster-input,.raster-select,.raster-textarea{font-size:16px!important;min-height:44px}.raster-card{padding:var(--raster-space-4)}.raster-btn{min-height:40px;padding:8px 14px}.raster-stat-value{font-size:clamp(1.6rem,6.5vw,2.25rem)}.raster-menu-btn{display:inline-flex}.raster-nav-desktop{display:none!important}.raster-meter-header{flex-direction:column;align-items:flex-start;gap:4px}}.raster-flex{display:flex}.raster-flex-col{display:flex;flex-direction:column}.raster-items-center{align-items:center}.raster-items-baseline{align-items:baseline}.raster-items-start{align-items:flex-start}.raster-justify-between{justify-content:space-between}.raster-justify-end{justify-content:flex-end}.raster-justify-center{justify-content:center}.gap-1{gap:var(--raster-space-1)}.gap-2{gap:var(--raster-space-2)}.gap-3{gap:var(--raster-space-3)}.gap-4{gap:var(--raster-space-4)}.gap-6{gap:var(--raster-space-6)}.gap-8{gap:var(--raster-space-8)}.mt-1{margin-top:var(--raster-space-1)}.mt-2{margin-top:var(--raster-space-2)}.mt-4{margin-top:var(--raster-space-4)}.mt-6{margin-top:var(--raster-space-6)}.mt-8{margin-top:var(--raster-space-8)}.mt-12{margin-top:var(--raster-space-12)}.mb-1{margin-bottom:var(--raster-space-1)}.mb-2{margin-bottom:var(--raster-space-2)}.mb-4{margin-bottom:var(--raster-space-4)}.mb-6{margin-bottom:var(--raster-space-6)}.mb-8{margin-bottom:var(--raster-space-8)}.mb-12{margin-bottom:var(--raster-space-12)}.py-4{padding-top:var(--raster-space-4);padding-bottom:var(--raster-space-4)}.py-6{padding-top:var(--raster-space-6);padding-bottom:var(--raster-space-6)}.py-8{padding-top:var(--raster-space-8);padding-bottom:var(--raster-space-8)}.py-12{padding-top:var(--raster-space-12);padding-bottom:var(--raster-space-12)}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-primary{color:var(--raster-fg-primary)}.text-secondary{color:var(--raster-fg-secondary)}.text-muted{color:var(--raster-fg-muted)}.text-accent{color:var(--raster-accent)}.border-top{border-top:1px solid var(--raster-border)}.border-bottom{border-bottom:1px solid var(--raster-border)}.border-hairline{border:1px solid var(--raster-border)}.w-full{width:100%}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.raster-hide-mobile{display:block}.raster-show-mobile{display:none!important}@media(max-width:768px){.raster-hide-mobile{display:none!important}.raster-show-mobile{display:block!important}.raster-show-mobile-flex{display:flex!important}.raster-flex-col-mobile{flex-direction:column!important}.raster-wrap-mobile{flex-wrap:wrap!important}.raster-items-stretch-mobile{align-items:stretch!important}.raster-justify-start-mobile{justify-content:flex-start!important}.w-full-mobile{width:100%!important}.text-left-mobile{text-align:left!important}.text-center-mobile{text-align:center!important}.text-right-mobile{text-align:right!important}.p-mobile-3{padding:var(--raster-space-3)!important}.p-mobile-4{padding:var(--raster-space-4)!important}.py-mobile-4{padding-top:var(--raster-space-4)!important;padding-bottom:var(--raster-space-4)!important}.gap-mobile-2{gap:var(--raster-space-2)!important}.gap-mobile-3{gap:var(--raster-space-3)!important}.gap-mobile-4{gap:var(--raster-space-4)!important}}@media(max-width:480px){.raster-hide-xs{display:none!important}.raster-show-xs{display:block!important}}:root{--app-header-height: 52px;--app-hud-height: 38px;--app-actions-height: 60px}html,body{height:100%;height:100dvh;margin:0;padding:0;overflow:hidden;background-color:var(--raster-canvas);color:var(--raster-fg-primary);font-family:var(--raster-font-sans);-webkit-font-smoothing:antialiased}#app{height:100%;height:100dvh;width:100vw;display:flex;flex-direction:column;overflow:hidden}.app-shell{display:flex;flex-direction:column;height:100%;width:100%;overflow:hidden}.raster-masthead{flex:0 0 var(--app-header-height);background-color:var(--raster-canvas);border-bottom:1px solid var(--raster-border);z-index:50;padding-top:env(safe-area-inset-top,0px)}.masthead-inner{height:100%;display:flex;align-items:center;justify-content:space-between;padding:0 var(--raster-space-5);gap:var(--raster-space-3)}.badge-swiss{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;background-color:var(--raster-accent);color:#fff;font-family:var(--raster-font-mono);font-size:14px;font-weight:700;line-height:1;-webkit-user-select:none;user-select:none;flex-shrink:0}.raster-brand{display:flex;align-items:center;gap:var(--raster-space-3);font-family:var(--raster-font-display);font-weight:800;font-size:1.05rem;letter-spacing:-.025em;color:var(--raster-fg-primary);white-space:nowrap}.raster-brand .raster-meta{font-family:var(--raster-font-mono);font-size:var(--raster-text-micro);font-weight:600;letter-spacing:var(--raster-track-micro);color:var(--raster-fg-muted)}.masthead-status{display:flex;align-items:center;font-size:var(--raster-text-micro);letter-spacing:var(--raster-track-micro);color:var(--raster-fg-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.masthead-actions{display:flex;align-items:center;gap:var(--raster-space-2);flex-shrink:0}.editor-layout{flex:1 1 auto;display:grid;grid-template-columns:1fr 390px;min-height:0;overflow:hidden}.stage-area{display:flex;flex-direction:column;height:100%;min-height:0;background-color:var(--raster-canvas);overflow:hidden}.stage-hud{flex:0 0 var(--app-hud-height);display:flex;align-items:center;justify-content:space-between;padding:0 var(--raster-space-5);background-color:var(--raster-surface);border-bottom:1px solid var(--raster-border);font-family:var(--raster-font-mono);font-size:var(--raster-text-micro);letter-spacing:var(--raster-track-micro);gap:var(--raster-space-2);overflow:hidden}.stage-hud-left,.stage-hud-right{display:flex;align-items:center;gap:var(--raster-space-2);white-space:nowrap}.stage{flex:1 1 auto;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:var(--raster-space-4);background-color:var(--raster-canvas);min-height:0;touch-action:pan-y pinch-zoom}.stage:before{content:"";position:absolute;inset:0;background-size:32px 32px;background-image:linear-gradient(to right,var(--raster-border-subtle) 1px,transparent 1px),linear-gradient(to bottom,var(--raster-border-subtle) 1px,transparent 1px);opacity:.45;pointer-events:none}.stage-placeholder{position:absolute;inset:var(--raster-space-4);border:1px dashed var(--raster-border-strong);background-color:var(--raster-surface);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--raster-space-5);cursor:pointer;z-index:10;transition:border-color .15s ease,background-color .15s ease}.stage-placeholder:hover,.stage-placeholder.highlight{border-color:var(--raster-accent);background-color:var(--raster-surface-subtle)}.stage-placeholder .placeholder-num{font-family:var(--raster-font-display);font-size:clamp(2.5rem,6vw,5rem);font-weight:800;line-height:.95;letter-spacing:-.05em;color:var(--raster-fg-faint);margin-bottom:var(--raster-space-2);font-variant-numeric:tabular-nums}.stage-placeholder .placeholder-title{font-family:var(--raster-font-sans);font-size:clamp(1rem,2.5vw,1.35rem);font-weight:700;letter-spacing:-.02em;margin-bottom:var(--raster-space-2);color:var(--raster-fg-primary)}.stage-placeholder .placeholder-sub{font-family:var(--raster-font-mono);font-size:var(--raster-text-micro);letter-spacing:var(--raster-track-micro);color:var(--raster-fg-muted);text-transform:uppercase;max-width:380px;margin-bottom:var(--raster-space-4);line-height:1.4}.stage.has-image .stage-placeholder{display:none}.stage canvas{max-width:100%;max-height:100%;object-fit:contain;box-shadow:var(--raster-shadow-hard);border:1px solid var(--raster-border-strong);background-color:#000;z-index:5;-webkit-user-select:none;user-select:none}.bottom-actions{flex:0 0 var(--app-actions-height);display:flex;align-items:center;justify-content:space-between;padding:0 var(--raster-space-5);background-color:var(--raster-surface);border-top:1px solid var(--raster-border);gap:var(--raster-space-3);z-index:20}.intensity-hud{display:flex;align-items:baseline;gap:var(--raster-space-3)}.intensity-hud .intensity-stat{font-family:var(--raster-font-mono);font-size:1.4rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--raster-fg-primary)}.bottom-action-buttons{display:flex;align-items:center;gap:var(--raster-space-3)}.side-panel{background-color:var(--raster-surface);border-left:1px solid var(--raster-border);overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;-webkit-overflow-scrolling:touch}.side-panel::-webkit-scrollbar{width:6px}.side-panel::-webkit-scrollbar-track{background-color:var(--raster-surface);border-left:1px solid var(--raster-border-subtle)}.side-panel::-webkit-scrollbar-thumb{background-color:var(--raster-border-strong);border-radius:0}.panel-section{padding:var(--raster-space-5);border-bottom:1px solid var(--raster-border)}.panel-section:last-child{border-bottom:none}.filters-grid{display:grid;grid-template-columns:1fr;gap:var(--raster-space-2)}.filter-card{position:relative;width:100%;display:flex;flex-direction:column;gap:var(--raster-space-1);padding:var(--raster-space-3) var(--raster-space-4);background-color:var(--raster-surface);border:1px solid var(--raster-border);border-radius:0;text-align:left;cursor:pointer;transition:all .12s ease;-webkit-user-select:none;user-select:none;touch-action:manipulation}.filter-card:hover{border-color:var(--raster-border-strong);background-color:var(--raster-surface-subtle)}.filter-card.active{border-color:var(--raster-border-strong);border-top:3px solid var(--raster-accent);background-color:var(--raster-surface-subtle)}.filter-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:2px}.filter-card-title{font-family:var(--raster-font-sans);font-size:.95rem;font-weight:700;letter-spacing:-.015em;color:var(--raster-fg-primary)}.filter-card-desc{font-size:var(--raster-text-small);line-height:1.35;color:var(--raster-fg-secondary)}.raster-range{-webkit-appearance:none;appearance:none;width:100%;height:32px;background:transparent;cursor:pointer;margin:0;touch-action:pan-x}.raster-range:focus{outline:none}.raster-range::-webkit-slider-runnable-track{width:100%;height:4px;background-color:var(--raster-border);border:1px solid var(--raster-border);border-radius:0}.raster-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;height:18px;width:18px;background-color:var(--raster-fg-primary);border:1px solid var(--raster-border-strong);border-radius:0;margin-top:-8px;box-shadow:1px 1px 0 var(--raster-border-strong);transition:background-color .1s ease,transform .1s ease}.raster-range:hover::-webkit-slider-thumb,.raster-range:active::-webkit-slider-thumb{background-color:var(--raster-accent);border-color:var(--raster-accent)}.raster-range::-moz-range-track{width:100%;height:4px;background-color:var(--raster-border);border:1px solid var(--raster-border);border-radius:0}.raster-range::-moz-range-thumb{height:18px;width:18px;background-color:var(--raster-fg-primary);border:1px solid var(--raster-border-strong);border-radius:0;box-shadow:1px 1px 0 var(--raster-border-strong);transition:background-color .1s ease}.raster-range:hover::-moz-range-thumb,.raster-range:active::-moz-range-thumb{background-color:var(--raster-accent);border-color:var(--raster-accent)}.advanced-card{border:1px solid var(--raster-border);background-color:var(--raster-surface);padding:var(--raster-space-4);margin-bottom:var(--raster-space-4)}.advanced-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--raster-space-3);padding-bottom:var(--raster-space-2);border-bottom:1px solid var(--raster-border-subtle)}.advanced-card-title{font-family:var(--raster-font-sans);font-size:var(--raster-text-small);font-weight:700;text-transform:uppercase;letter-spacing:var(--raster-track-micro);color:var(--raster-fg-primary)}.control-row{display:grid;grid-template-columns:80px 1fr 48px;align-items:center;gap:var(--raster-space-3);margin-bottom:var(--raster-space-2)}.control-row:last-child{margin-bottom:0}.control-row label{font-size:var(--raster-text-micro);font-weight:600;text-transform:uppercase;letter-spacing:var(--raster-track-micro);color:var(--raster-fg-secondary)}.control-row .cell-num{font-family:var(--raster-font-mono);font-size:var(--raster-text-micro);font-weight:600;font-variant-numeric:tabular-nums;color:var(--raster-fg-primary);text-align:right;padding:2px 4px;background-color:var(--raster-surface-subtle);border:1px solid var(--raster-border-subtle)}.channel-indicator{display:inline-block;width:8px;height:8px;margin-right:6px;vertical-align:middle}.channel-indicator-red{background-color:#ff3b14}.channel-indicator-green{background-color:#10b981}.channel-indicator-blue{background-color:#3b82f6}.channel-group{margin-bottom:var(--raster-space-4);padding-bottom:var(--raster-space-3);border-bottom:1px dashed var(--raster-border-subtle)}.channel-group:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.channel-group-title{display:flex;align-items:center;font-family:var(--raster-font-mono);font-size:var(--raster-text-micro);font-weight:700;text-transform:uppercase;letter-spacing:var(--raster-track-micro);color:var(--raster-fg-primary);margin-bottom:var(--raster-space-2)}.upload-zone{display:inline-flex;cursor:pointer;margin:0}.upload-zone input{display:none}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.raster-btn-touch{min-height:var(--raster-touch-target, 44px)}@media(max-width:1024px){.editor-layout{grid-template-columns:1fr 340px}}@media(max-width:768px){:root{--app-header-height: 48px;--app-hud-height: 34px;--app-actions-height: 56px}.masthead-inner{padding:0 var(--raster-space-3)}.raster-brand{font-size:.95rem;gap:var(--raster-space-2)}.badge-swiss{width:20px;height:20px;font-size:12px}.editor-layout{display:flex;flex-direction:column;grid-template-columns:none;overflow-y:auto;-webkit-overflow-scrolling:touch;height:auto;min-height:0}.stage-area{flex:0 0 auto;width:100%}.stage-hud{padding:0 var(--raster-space-3)}.stage{min-height:230px;max-height:45vh;height:38vh;padding:var(--raster-space-3)}.stage canvas{max-height:100%;max-width:100%}.side-panel{border-left:none;border-top:1px solid var(--raster-border-strong);overflow-y:visible;flex:1 0 auto}.panel-section{padding:var(--raster-space-4) var(--raster-space-3)}.filters-grid{display:flex;overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory;gap:var(--raster-space-2);padding-bottom:var(--raster-space-2);scrollbar-width:none}.filters-grid::-webkit-scrollbar{display:none}.filter-card{flex:0 0 160px;min-width:160px;scroll-snap-align:start;padding:var(--raster-space-2) var(--raster-space-3)}.filter-card-title{font-size:.85rem}.filter-card-desc{font-size:.65rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.raster-range{height:44px}.raster-range::-webkit-slider-thumb{height:22px;width:22px;margin-top:-10px}.raster-range::-moz-range-thumb{height:22px;width:22px}.control-row{grid-template-columns:75px 1fr 44px;gap:var(--raster-space-2)}.bottom-actions{position:sticky;bottom:0;padding:0 var(--raster-space-3);padding-bottom:max(6px,env(safe-area-inset-bottom,0px));height:auto;min-height:var(--app-actions-height);background-color:var(--raster-surface);border-top:1px solid var(--raster-border-strong);box-shadow:0 -2px 10px #00000026}.bottom-action-buttons{width:100%;justify-content:flex-end}.bottom-action-buttons .raster-btn{flex:1 1 0;min-height:42px}.advanced-controls-body{display:none}.advanced-controls-body.is-open{display:block;margin-top:var(--raster-space-3)}}@media(min-width:769px){.advanced-controls-body{display:block!important}}@media(max-width:480px){.stage{min-height:200px;height:35vh}.filter-card{flex:0 0 145px;min-width:145px}.stage-placeholder .placeholder-num{font-size:2.25rem}.stage-placeholder .placeholder-title{font-size:.95rem}}
