class_name DarkBay extends Panel ## Drop-in dark stripe+vignette bay backdrop. §2: presentation. ## Uniforms are set at runtime from Palette (deliberate deviation from spec §5.4's ## "baked into the .tscn/material" approach) — keeps Palette the single source of ## truth at the cost of an editor preview; the surface renders once the scene runs. const Palette = preload("res://scripts/theme/palette.gd") func _ready() -> void: var m := ShaderMaterial.new() m.shader = load("res://assets/theme/shaders/dark_bay.gdshader") m.set_shader_parameter("stripe_a", Palette.BAY_STRIPE_A) m.set_shader_parameter("stripe_b", Palette.BAY_STRIPE_B) material = m