============================================================
 VARIABLE SCOPE & THE GLOBAL KEYWORD - Demo Run
============================================================

Global counter before any calls: 0

--- Local variable shadowing global ---
  local_shadow_demo() returned: 101
  Global counter is STILL: 0  (unaffected by the local shadow)

--- Using the global keyword ---
  increment_global() -> 1
  increment_global() -> 2
  Global counter is now genuinely: 2

--- Enclosing scope (nested function reading outer variable) ---
  inner sees: 'outer value'

--- nonlocal keyword (nested function modifying outer variable) ---
  outer_with_nonlocal() final total: 15

--- *args ---
  sum_all(1, 2, 3, 4, 5) = 15
  sum_all() = 0

--- **kwargs ---
  Profile(name=Lee, age=34, role=Engineer)

--- Mixed: required + *args + **kwargs ---
  required=X, args=(1, 2), kwargs={'key': 'value'}

============================================================
 Assignment: configurable_greeting
============================================================
  Hi, Maria.
  Good day, Maria.
  Hola, Maria!
  Bonjour, Maria!
