/* ==========================================================================
   Shared UGS widget conventions.
   Loaded as a dependency of every widget's own stylesheet, so there's a
   single source of truth for things that should stay consistent across
   the whole plugin family (Music Link, Live Show Countdown, and whatever
   comes next) — starting with the standard widget width. Every widget's
   outer container should read its max-width from
   var(--ugs-widget-max-width) rather than hardcoding its own number.
   ========================================================================== */

:root {
	/* Bumped from 420 -> 460 (Sept 2026) at the same time the Video
	   Carousel widget was added, so every widget in the family scales up
	   together and stays uniform rather than the new one sitting at a
	   different size than the rest. */
	--ugs-widget-max-width: 460px;

	/* ----------------------------------------------------------------
	   Shared "frosted glass" texture + edge, reused by every tinted/
	   blurred surface across the whole widget family (Music Link's card
	   and popup, Live Show Countdown's flyer overlay, UGS Link's frame
	   and popup) so they all read as the same physical material instead
	   of a flat, computer-generated blur.
	   ---------------------------------------------------------------- */

	/* A faint irregular grain (fractal-noise SVG, tinted white, ~6% max
	   opacity) layered via background-blend-mode: overlay alongside a
	   surface's own tinted background-color. Real frosted/etched glass
	   always has some texture to it rather than a perfectly smooth tint,
	   and this reads as that without needing a separate DOM element or
	   an image asset. Percent-encoded (rather than quoted) so the '#'
	   inside the SVG's own url(#n) filter reference can't be mistaken
	   for the start of a URL fragment on the outer data: URI. */
	--ugs-glass-noise: url('data:image/svg+xml;charset=UTF-8,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2260%22 height=%2260%22%3E%3Cfilter id=%22n%22%3E%3CfeTurbulence type=%22fractalNoise%22 baseFrequency=%220.9%22 numOctaves=%222%22 stitchTiles=%22stitch%22/%3E%3CfeColorMatrix type=%22matrix%22 values=%220 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 0.06 0%22/%3E%3C/filter%3E%3Crect width=%22100%25%22 height=%22100%25%22 filter=%22url(%23n)%22/%3E%3C/svg%3E');

	/* A thin beveled edge: a bright inset highlight along the top/left,
	   fading to a darker inset shadow along the bottom/right, the way
	   light catches the ground edge of real glass. Meant to be added
	   alongside a surface's own drop shadow (comma-separated), not
	   replace it. */
	--ugs-glass-bevel:
		inset 0 1px 0 rgba(255,255,255,0.35),
		inset 0 -1px 0 rgba(0,0,0,0.35),
		inset 1px 0 0 rgba(255,255,255,0.14),
		inset -1px 0 0 rgba(0,0,0,0.2);

	/* A faint 1px rim to define the glass' outer boundary against
	   whatever sits behind/around it. */
	--ugs-glass-rim: 1px solid rgba(255,255,255,0.16);
}

/* Belt-and-suspenders against horizontal page scroll on any page that uses
   one of these widgets. A position:fixed popup (Music Link) can still
   generate real box geometry that counts toward the page's scrollable
   width if an ancestor section ever creates its own CSS containing block
   (transform/filter/backdrop-filter/etc. — each widget's own JS/CSS works
   around this for its own markup), and page/theme elements entirely
   outside this plugin's control (parallax backgrounds, full-bleed
   sections using 100vw, etc.) can trigger the exact same symptom on their
   own. None of these widgets have any legitimate reason to need
   horizontal scrolling, so this simply removes the possibility outright
   rather than chasing every element that could theoretically cause it. */
html {
	overflow-x: hidden;
}
