{"version":3,"file":"OAUGlobalCSS.IMtdvBEC.mjs","names":[],"sources":["https:/framerusercontent.com/modules/S8cGQP64TVfcHDX9BhnA/rlKAAgv2uN3vOy5rySv1/OAUGlobalCSS.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{RenderTarget}from\"framer\";/**\n * OAU GLOBAL CSS\n *\n * THE PROJECT'S GLOBAL STYLESHEET. Framer has no user-editable global CSS\n * file, so this is it: a component that renders nothing but a <style> tag.\n * Drop ONE instance on a page and everything below applies to that page.\n *\n * =====================================================================\n * WHAT BELONGS IN HERE AND WHAT MUST NEVER GO IN. READ BEFORE ADDING.\n * =====================================================================\n * BELONGS: anything genuinely repeated across two or more CODE COMPONENTS,\n * and any browser-level default that should hold site-wide.\n *\n * MUST NEVER GO IN: anything Framer's own TEXT STYLES or COLOUR STYLES\n * already own. Restating them here creates a SECOND source of truth, and\n * CSS from this file would silently beat the style panel - somebody edits\n * /Section Heading, nothing moves, and nobody can find out why.\n *\n * FIVE THINGS CSS CANNOT FIX. Established 9/5/2026. Do not retry:\n *   1. HEADING HIERARCHY. CSS cannot turn an h4 into an h2.\n *   2. ALT TEXT. Not a style. Per image, in Framer.\n *   3. COPY. Service, placement, and Pennsylvania, New Jersey and Delaware copy are content, not styling.\n *   4. FONT COUNT. 35 font files load on every page because ~40 text\n *      styles reference many weights across two families and Framer\n *      serves a file per weight. CSS cannot unload a font the platform\n *      decided to send. Prune the text styles instead. This is the\n *      single biggest speed item on the site.\n *   5. IMAGE WEIGHT AND LAZY LOADING. loading=\"lazy\" and intrinsic\n *      dimensions are per-image attributes. /placements ships 22 images\n *      with one lazy; /about and /host each load a 3944x7008 asset.\n *      Fixed on the image, not here.\n * A SIXTH IS HALF FIXABLE: sub-14px type. There is no selector for \"font\n * smaller than 14px\", so only elements with a stable class hook can be\n * floored - section 11. The rest sit on Framer-generated hashed classes\n * that REGENERATE ON EVERY PUBLISH.\n *\n * A rule earns its place here at TWO callers, not one.\n *\n * SPECIFICITY: sections 1-5 and 11 use !important because they fix live\n * bugs and must beat component CSS. Everything else is a default.\n *\n * SECTION 11 IS A FLOOR, NOT A SCALE (10/6/2026). font-size: max(14px, 1em)\n * on `.oau-x *` sets EVERY descendant to 1em, which flattens a component's\n * own type scale: on /about the CTA band heading rendered at 16px because\n * this rule beat the component's 48px with !important. The CTA band is\n * removed from the floor (every size it sets is already 14px or more). Do\n * not put a wildcard floor on any component that sets its own heading\n * sizes; floor the small elements by class instead.\n *\n * Governing rules: no overflow recKUmPirkmTxUhXR, no dead space\n * recNBYemEwb70erXq, accessibility recdkoZV4W1ag5XSB, public copy\n * recyHNTxi673i2eww.\n *\n * SCOPE: an instance covers the page it sits on and no other. The durable\n * answer is Framer Site Settings > Custom Code > head, which is outside\n * MCP and is Andrew's hand.\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n * @framerIntrinsicWidth 0\n * @framerIntrinsicHeight 0\n * @framerDisableUnlink\n */const GLOBAL_CSS=`\n/* ================================================================\n   FIXES. !important because they must beat component CSS.\n   ================================================================ */\n\n/* ---- 1. NOTHING OVERFLOWS ------------------------------------ */\n.oau-sw *, .oau-sw-steps *, .oau-sec-tiles *, .oau-tilerow *,\n.oau-grid *, .oau-deck *, .oau-cta-band * { min-width: 0; }\n\n.oau-sw img, .oau-sw svg, .oau-sw video,\n.oau-sec-tiles img, .oau-tilerow img { max-width: 100%; height: auto; }\n\n.oau-sw-steps li, .oau-sec-tiles li, .oau-tilerow li,\n.oau-sw-h2, .oau-sec-h2 { overflow-wrap: anywhere; }\n\n/* ---- 1a. EVENT CARD BUTTONS SIT ON ONE LINE ------------------- */\n/* 10/5/2026. The OUS Event Card already carries an Action Spacer that\n   pushes Card Actions to the bottom, but the instance in OUS Upcoming\n   Events was placed at natural height (place-self: start), so the\n   spacer had nothing to fill and every orange button landed wherever\n   the text ended. data-framer-name is the stable hook; the hashed\n   classes are not. Source fix is Fill height on the instance; this\n   holds the line if a future instance forgets it. Home and /events. */\n[data-framer-name=\"Public Event Card\"] {\n  place-self: stretch !important;\n  height: 100% !important;\n  min-height: 100% !important;\n}\n\n/* ---- 1b. ONE ORANGE BUTTON PER CARD --------------------------- */\n/* 10/5/2026, Andrew: one button per card. The card's own small Register\n   link (layer \"Register\" inside Event Schedule) stays in the DOM because\n   EventbriteCheckout reads its href to pick Eventbrite modal, Playpass\n   link or interest list. It is hidden here so canvas and live both show\n   the one big button in Card Actions. display: none keeps the href\n   readable by querySelector. */\n[data-framer-name=\"Public Event Card\"] a[data-framer-name=\"Register\"] {\n  display: none !important;\n}\n\n/* ---- 2. TILE GRIDS SIZE INTRINSICALLY ------------------------- */\n/* min(220px, 100%) makes overflow impossible: a column can never be\n   wider than its parent, at any width, on any device. */\n.oau-sw-steps, .oau-sec-tiles, .oau-tilerow-list {\n  display: grid !important;\n  grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr))\n    !important;\n  align-items: stretch !important;\n}\n\n/* ---- 3. TILE CONTENT IS CENTRED ------------------------------- */\n.oau-sw-steps > li, .oau-sec-tiles > li, .oau-tilerow-list > li {\n  display: flex !important;\n  flex-direction: column !important;\n  align-items: center !important;\n  text-align: center !important;\n  min-width: 0 !important;\n}\n\n/* ---- 4. A CENTRED BLOCK GETS A CENTRED HEADING ---------------- */\n.oau-sw-h2 {\n  text-align: center !important;\n  margin-left: auto !important;\n  margin-right: auto !important;\n}\n\n/* ---- 5. NO DEAD SPACE ----------------------------------------- */\n.oau-sw { padding-top: 0 !important; padding-bottom: 0 !important; }\n.oau-sw > :first-child { margin-top: 0 !important; }\n.oau-sw > :last-child { margin-bottom: 0 !important; }\n.oau-sw-h2 { margin-block: 0 !important; }\n\n/* ================================================================\n   TOKENS AND DEFAULTS. No !important below this line.\n   ================================================================ */\n\n/* ---- 6. THE REPEATED VALUES, IN ONE PLACE --------------------- */\n:root {\n  --oau-accent: #F47A00;\n  --oau-ink: #121212;\n  --oau-cream: #F4F1E9;\n  --oau-panel: #1F1F1F;\n\n  --oau-on-dark: #F4F1E9;\n  --oau-on-dark-muted: rgba(244, 241, 233, 0.72);\n  --oau-on-dark-faint: rgba(244, 241, 233, 0.60);\n\n  --oau-tile-bg: rgba(244, 241, 233, 0.05);\n  --oau-tile-border: rgba(244, 241, 233, 0.14);\n  --oau-tile-radius: 16px;\n  --oau-tile-pad: 24px 18px 26px;\n\n  --oau-panel-radius: 28px;\n  --oau-panel-pad: 56px clamp(22px, 4vw, 40px);\n  --oau-max-width: 1180px;\n\n  --oau-gap: 20px;\n  --oau-gap-mobile: 26px;\n\n  --oau-type-floor: 14px;\n  --oau-tap-min: 44px;\n\n  --oau-ease: cubic-bezier(0.33, 1, 0.68, 1);\n  --oau-reveal-ms: 520ms;\n}\n\n/* ---- 7. TAP TARGETS ------------------------------------------- */\n.oau-sw-pill, .oau-tab, .oau-btn { min-height: var(--oau-tap-min); }\n\n/* ---- 8. FOCUS IS ALWAYS VISIBLE ------------------------------- */\n/* WCAG 2.2 AA 2.4.7. MISSING site-wide before 9/5/2026. Never replace\n   this with outline: none. */\n.oau-sw a:focus-visible, .oau-sw button:focus-visible,\n.oau-sw [tabindex]:focus-visible,\n.oau-tab:focus-visible, .oau-btn:focus-visible,\n.oau-cta-band a:focus-visible {\n  outline: 2px solid var(--oau-accent);\n  outline-offset: 3px;\n  border-radius: 4px;\n}\n\n/* ---- 9. SHARED SHELLS ----------------------------------------- */\n.oau-panel {\n  width: 100%; max-width: var(--oau-max-width); box-sizing: border-box;\n  background: var(--oau-panel); border-radius: var(--oau-panel-radius);\n  padding: var(--oau-panel-pad); overflow: hidden;\n}\n.oau-tile {\n  background: var(--oau-tile-bg);\n  border: 1px solid var(--oau-tile-border);\n  border-radius: var(--oau-tile-radius);\n  padding: var(--oau-tile-pad);\n  box-sizing: border-box; height: 100%; min-width: 0;\n}\n\n/* ---- 10. MOTION ----------------------------------------------- */\n.oau-sw-reveal, .oau-sec-reveal {\n  opacity: 0; transform: translateY(18px);\n  transition: opacity var(--oau-reveal-ms) var(--oau-ease),\n              transform var(--oau-reveal-ms) var(--oau-ease);\n}\n.oau-sw-reveal.is-in, .oau-sec-reveal.is-in {\n  opacity: 1; transform: none;\n}\n@media (prefers-reduced-motion: reduce) {\n  .oau-sw-reveal, .oau-sec-reveal {\n    opacity: 1 !important; transform: none !important;\n    transition: none !important; }\n}\n\n/* ---- 11. TYPE FLOOR, THE HALF CSS CAN REACH ------------------- */\n/* 16px on inputs is separate and non-negotiable: iOS Safari zooms the\n   whole page when a focused input is under 16px.\n   The CTA band is NOT in this list; see the header note of 10/6/2026. */\n.oau-sw, .oau-sw *,\n.oau-sec-tiles, .oau-sec-tiles *,\n.oau-tilerow, .oau-tilerow * {\n  font-size: max(var(--oau-type-floor), 1em) !important;\n}\ninput, textarea, select { font-size: max(16px, 1em); }\n\n/* ---- 12. SPEED, THE PART THAT IS GENUINELY GLOBAL ------------- */\n/* Added 9/5/2026 after measuring the live site. Three levers only.\n   Everything else about speed here is a per-image or per-style fix and\n   is listed in the header as not-CSS. */\n\n/* Below-fold sections are not laid out or painted until they scroll\n   near the viewport. The contain-intrinsic-size is REQUIRED alongside\n   it - without a size hint the scrollbar jumps as sections resolve. */\n.oau-sw-panel, .oau-sec-tiles, .oau-tilerow-list, .oau-deck {\n  content-visibility: auto;\n  contain-intrinsic-size: auto 600px;\n}\n\n/* Reserve image space from the intrinsic width and height attributes so\n   nothing shifts as images arrive. Cumulative layout shift is felt as\n   the page \"jumping\" while it loads. */\nimg[width][height] { height: auto; }\n\n/* Media never blocks or overflows. */\nimg, video { max-width: 100%; }\n\n/* Off-screen iframes - maps, embeds - stop competing for bandwidth\n   with content the reader can actually see. */\niframe { loading: lazy; }\n`;export default function OAUGlobalCSS(props){const isCanvas=RenderTarget.current()===RenderTarget.canvas;return /*#__PURE__*/_jsxs(\"div\",{style:{width:0,height:0,overflow:\"visible\",pointerEvents:\"none\",...props.style},children:[/*#__PURE__*/_jsx(\"style\",{children:GLOBAL_CSS}),isCanvas?/*#__PURE__*/_jsx(\"span\",{style:{position:\"absolute\",whiteSpace:\"nowrap\",fontFamily:\"'Inter', sans-serif\",fontSize:10,letterSpacing:\"0.06em\",textTransform:\"uppercase\",color:\"rgba(244,122,0,0.75)\",transform:\"translate(-50%, -14px)\"},children:\"OAU global CSS\"}):null]});}\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"OAUGlobalCSS\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./OAUGlobalCSS.map"],"mappings":"4JAuPE,SAAwB,EAAa,EAAM,CAAC,IAAM,EAAS,EAAa,QAAQ,IAAI,EAAa,OAAO,OAAoB,EAAM,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,UAAU,cAAc,OAAO,GAAG,EAAM,KAAK,EAAE,SAAS,CAAc,EAAK,QAAQ,CAAC,SAAS,CAAU,CAAC,EAAE,EAAsB,EAAK,OAAO,CAAC,MAAM,CAAC,SAAS,WAAW,WAAW,SAAS,WAAW,sBAAsB,SAAS,GAAG,cAAc,SAAS,cAAc,YAAY,MAAM,uBAAuB,UAAU,wBAAwB,EAAE,SAAS,gBAAgB,CAAC,EAAE,IAAI,CAAC,CAAC,CAAE,mBAvPnf,IAAiC,EA8DhF,EAAW"}