/*
 * armor.css — the first stylesheet in the studio document.
 *
 * The studio route never calls wp_head(), so in normal operation nothing else gets
 * to enqueue here and this file has nothing to defend against. It exists for the
 * abnormal case: a plugin that prints a <style> straight into the body, an admin
 * bar that slipped through, a future maintainer who adds get_header() back.
 *
 * Two deliberate choices:
 *
 *   `all: revert`, not `all: initial`. `initial` sets display:inline on every
 *   element and discards the user-agent sheet, so <div>s stop being blocks and
 *   headings stop having weight — it does not reset to "browser default", it resets
 *   to "no browser at all". `revert` rolls each property back to the UA/user value,
 *   which is what "clean slate" actually means.
 *
 *   This file is layered and studio.css is not. In the author origin an unlayered
 *   normal declaration beats every layered normal declaration regardless of
 *   specificity, so the tool's own rules always win over anything that ends up here,
 *   and a `!important` injection is the only thing left that could disturb it.
 *
 * @layer order is established by first appearance — this file must load first.
 */

@layer asas-armor, asas-inject;

@layer asas-armor {

	/* Everything except SVG internals. `d`, `cx`, `r` and the other geometry
	   attributes are CSS properties in Chromium, and presentation attributes sit
	   BELOW every author rule in the cascade — so `all: revert` on an svg's children
	   erases the drawing itself: every path computes `d: none` and the icon paints
	   sixteen square pixels of nothing. The armor has no business inside an <svg>;
	   nothing injectable lands there. */
	#asas-studio,
	#asas-studio *:not(svg):not(svg *),
	#asas-studio *::before,
	#asas-studio *::after {
		all: revert;
		box-sizing: border-box;
	}

	#asas-studio {
		display: block;
		font: revert;
		color: revert;
		background: revert;
	}

	/* The admin bar prints html { margin-top: 32px !important } into wp_head. It is
	   removed server-side, but !important survives layers, so it is undone here too. */
	html {
		margin-top: 0 !important;
	}

	#wpadminbar {
		display: none !important;
	}
}
