/* Circles 2027 · four homepage themes (homepage-v1..v4) + Flash-style motion layer.
   Scoped by body.c27-a|b|c|d (set in inc/circles-functions.php). Effects only run when c27.js adds html.c27-fx,
   so without JS (or with reduced motion) every word and image is visible as the framework renders it. */

/* Circles 2027 Display: the owner's own face. Typed out, it IS the logo (hero titles only). */
@font-face { font-family: "Circles 2027 Display"; src: url(fonts/Circles2027Display-Bold.woff2?v=2.001) format("woff2"), url(fonts/Circles2027Display-Bold.woff?v=2.001) format("woff"); font-weight: 700 900; font-display: swap; }
@font-face { font-family: "Circles 2027 Display"; src: url(fonts/Circles2027Display-Thin.woff2?v=2.001) format("woff2"), url(fonts/Circles2027Display-Thin.woff?v=2.001) format("woff"); font-weight: 100 300; font-display: swap; }
body.c27 { --c27-logo: "Circles 2027 Display", "Unbounded", sans-serif; }

body.c27 { --c27-red: #D13A1E; --c27-ink: #0B0B0C; --c27-grey: #E6E6E6; --c27-mid: #8C8C91; --c27-coal: #1C1C1F; }
.c27 ::selection { background: var(--c27-red); color: #fff; }

/* ---------- Shared details ---------- */

/* White sponsor logos read on light bands */
.c27 .bg-white[class*="sponsor"] img, .c27 .bg-grey[class*="sponsor"] img { filter: invert(1) brightness(.15); }
.c27 [class*="sponsor"] img { transition: filter .3s, transform .3s; }
.c27 [class*="sponsor"] img:hover { transform: translateY(-2px); }

/* Accent word in titles */
.c27 .titles span, .c27 h1 span { color: var(--c27-red); }

/* Photo hover: red duotone flicker */
.c27 .layout-grids img, .c27 .layout-full-image-content-right img { transition: filter .35s, transform .6s cubic-bezier(.2,.8,.2,1); }
.c27 .layout-grids a:hover img, .c27 .layout-grids .grid-panel:hover img { filter: contrast(1.15) saturate(1.3); transform: scale(1.03); }

/* Scroll progress line (JS sets --p) */
.c27-progress { position: fixed; left: 0; top: 0; height: 3px; width: 100%; background: var(--c27-red); transform-origin: 0 50%; transform: scaleX(var(--p, 0)); z-index: 100000; pointer-events: none; }

/* Scanlines + grain over the page (decorative, never blocks clicks) */
.c27-scan { display: none !important; position: fixed; inset: 0; pointer-events: none; z-index: 99990; opacity: .05;
	background: repeating-linear-gradient(0deg, #000 0 1px, transparent 1px 3px); mix-blend-mode: multiply; }
.c27-c .c27-scan { display: none; }

/* Reticle that trails the pointer (desktop, fine pointer only) */
.c27-reticle { position: fixed; left: 0; top: 0; width: 34px; height: 34px; margin: -17px 0 0 -17px; border: 1px solid var(--c27-red); border-radius: 50%;
	pointer-events: none; z-index: 99995; transition: width .2s, height .2s, margin .2s, background .2s; mix-blend-mode: difference; }
.c27-reticle::before, .c27-reticle::after { content: ""; position: absolute; background: var(--c27-red); }
.c27-reticle::before { left: 50%; top: -8px; bottom: -8px; width: 1px; }
.c27-reticle::after { top: 50%; left: -8px; right: -8px; height: 1px; }
.c27-reticle b { position: absolute; left: 30px; top: 30px; font: 10px/1 "Geist Mono", monospace; color: var(--c27-red); white-space: nowrap; letter-spacing: .08em; }
.c27-reticle.is-hot { width: 60px; height: 60px; margin: -30px 0 0 -30px; background: rgba(209,58,30,.15); }

/* Intro loader (built by JS, once per visit) */
.c27-loader { position: fixed; inset: 0; z-index: 100001; display: grid; place-items: center; pointer-events: none; color: #fff; font-family: "Geist Mono", monospace; }
.c27-loader i { position: absolute; left: 0; right: 0; height: 50.5%; background: var(--c27-ink); transition: transform .8s cubic-bezier(.8,0,.2,1); }
.c27-loader i:first-child { top: 0; } .c27-loader i:nth-child(2) { bottom: 0; }
.c27-loader .c27-l-in { position: relative; text-align: center; transition: opacity .25s; }
.c27-loader .c27-l-n { display: block; font: 800 clamp(64px, 14vw, 200px)/.9 Unbounded, sans-serif; letter-spacing: -.04em; }
.c27-loader .c27-l-n em { font-style: normal; color: var(--c27-red); }
.c27-loader .c27-l-t { display: block; margin-top: 18px; font-size: 13px; letter-spacing: .3em; text-transform: uppercase; color: var(--c27-mid); }
.c27-loader .c27-l-bar { display: block; height: 2px; margin: 22px auto 0; width: 240px; background: #333; overflow: hidden; }
.c27-loader .c27-l-bar::after { content: ""; display: block; height: 100%; width: calc(var(--p, 0) * 100%); background: var(--c27-red); }
.c27-loader.is-out .c27-l-in { opacity: 0; }
.c27-loader.is-out i:first-child { transform: translateY(-101%); }
.c27-loader.is-out i:nth-child(2) { transform: translateY(101%); }

/* Glitch burst on hero titles (JS toggles .c27-glitch for ~400ms) */
@keyframes c27-glitch {
	0% { clip-path: inset(0 0 0 0); transform: none; }
	15% { clip-path: inset(12% 0 58% 0); transform: translate(-6px, 0); text-shadow: 4px 0 var(--c27-red), -4px 0 #fff; }
	30% { clip-path: inset(62% 0 8% 0); transform: translate(6px, 0); }
	45% { clip-path: inset(30% 0 40% 0); transform: translate(-3px, 2px); text-shadow: -5px 0 var(--c27-red); }
	60% { clip-path: inset(0 0 0 0); transform: skewX(-8deg); }
	80% { transform: translate(2px, -1px); text-shadow: 2px 0 var(--c27-red); }
	100% { clip-path: inset(0 0 0 0); transform: none; text-shadow: none; }
}
.c27-glitch { animation: none; }
/* Hero title entrance: rises out of a soft blur once, then holds still */
.c27-rise-ready { opacity: 0; transform: translateY(18px); filter: blur(10px); }
.c27-rise-ready.c27-rise { opacity: 1; transform: none; filter: none; transition: opacity 1.4s ease, transform 1.6s cubic-bezier(.2,.7,.1,1), filter 1.4s ease; }
@media (prefers-reduced-motion: reduce) { .c27-rise-ready { opacity: 1; transform: none; filter: none; } }

/* Section wipe: a red then black bar sweeps across as the band enters (content sits under it only while it moves) */
.c27-fx .c27-w { position: relative; }
.c27-fx .c27-w > .c27-wipe { position: absolute; inset: 0; z-index: 50; pointer-events: none; overflow: hidden; }
.c27-fx .c27-wipe::before, .c27-fx .c27-wipe::after { content: ""; position: absolute; inset: 0; transform: translateX(-101%); }
.c27-fx .c27-wipe::before { background: var(--c27-red); }
.c27-fx .c27-wipe::after { background: var(--c27-ink); }
.c27-fx .c27-w.is-in > .c27-wipe::before { animation: c27-sweep .9s cubic-bezier(.7,0,.2,1) forwards; }
.c27-fx .c27-w.is-in > .c27-wipe::after { animation: c27-sweep .9s .12s cubic-bezier(.7,0,.2,1) forwards; }
@keyframes c27-sweep { 0% { transform: translateX(-101%); } 45%, 55% { transform: translateX(0); } 100% { transform: translateX(101%); } }

/* Hero canvases */
.c27-canvas { position: absolute !important; inset: 0; width: 100%; height: 100%; pointer-events: none; display: block; }

/* Micro labels drawn on the heroes */
.c27-micro { position: absolute !important; z-index: 4; font: 11px/1.4 "Geist Mono", monospace; letter-spacing: .14em; text-transform: uppercase; pointer-events: none; color: currentColor; opacity: .7; }
.c27-micro--side { writing-mode: vertical-rl; transform: rotate(180deg); }
@media (max-width: 767px) { .c27-micro { display: none; } }

/* Marquees in CTA banners: a touch louder */
.c27 .layout-cta-banner { overflow: hidden; }


@media (prefers-reduced-motion: reduce) {
	.c27-glitch { animation: none; }
	.c27-reticle, .c27-loader { display: none; }
}

/* Giant drifting words never push the page sideways */
.c27 .ct-wrapper { overflow-x: clip; }
/* Tablet: long Unbounded titles in two-column bands stay inside their column */
@media (min-width: 768px) and (max-width: 1100px) {
	.c27 .layout-content-double .titles { font-size: 3vw !important; }
}

/* Dark themes: the scrolled header bar is ink, so its logo must be the white one */
body:is(.c27-a, .c27-d, .c27-g) .header-wrapper img[src*="logo-black"] { filter: invert(1) !important; }
/* Scrolled header (html.c27-scrolled, set by c27-think.js): one solid, blurred bar on the dark themes so copy never runs under the logo.
   B keeps its own floating bar, C its paper bar, E its frosted glass, F its own dark glass. */
body:is(.c27-a, .c27-d, .c27-g, .c27-h) .header-wrapper .header { transition: background-color .3s ease; }
html.c27-past-hero body:is(.c27-a, .c27-d, .c27-g, .c27-h) .header-wrapper .header { background: rgba(0,0,0,.8) !important; -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
/* Every world: the header stays clear over the hero and its background fades in once the hero has passed (owner, 2026-10-27) */
body.c27 .header-wrapper .header { transition: background-color .45s ease, -webkit-backdrop-filter .45s ease, backdrop-filter .45s ease, box-shadow .45s ease !important; }
html:not(.c27-past-hero) body.c27 .header-wrapper .header { background: transparent !important; -webkit-backdrop-filter: none !important; backdrop-filter: none !important; box-shadow: none !important; }


/* theme switch: the thinking screen fades in over the old theme */
.c27-think.is-entering { opacity: 0; }
.c27-think.is-switch { animation: none; transition: opacity .4s ease, visibility 0s linear .6s; }
.c27-think.is-switch.is-gone { transition: opacity .6s ease, visibility 0s linear .6s; }

/* Phone menu icon: dark on the light themes (C paper, E glass), and a normal size on F */
html body:is(.c27-c, .c27-e) .header-wrapper .header.header-display .btn-menu svg path { fill: #111114 !important; }
body.c27-f .header-wrapper .btn-menu { width: 30px !important; height: auto !important; }
body.c27-f .header-wrapper .btn-menu svg { width: 100% !important; height: auto !important; }

/* ---------- Custom menu (c27-menu.js): shared layout. Each world restyles it via .c27m[data-world="x"] in its own CSS. ---------- */
html.c27m-lock, html.c27m-lock body { overflow: hidden !important; }
.c27m { position: fixed; inset: 0; z-index: 2147482600; color: #fff; font-family: Archivo, -apple-system, Helvetica, Arial, sans-serif; -webkit-text-size-adjust: 100%; }
.c27m[hidden] { display: none !important; }
.c27m *, .c27m *::before, .c27m *::after { box-sizing: border-box; }
.c27m :is(a, button) { outline: none !important; -webkit-tap-highlight-color: transparent; }
.c27m-bg { position: absolute; inset: 0; background: #0B0B0D; opacity: 0; transition: opacity .45s ease; }
.c27m.is-open .c27m-bg { opacity: 1; }
.c27m-in { position: relative; height: 100%; overflow-y: auto; overscroll-behavior: contain; display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); grid-template-rows: auto 1fr auto; column-gap: clamp(32px, 6vw, 120px);
	padding: clamp(20px, 3vw, 40px) clamp(20px, 4vw, 64px) clamp(24px, 3vw, 44px); }
.c27m-top { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; min-height: 56px; }
.c27m-logo { font: 700 22px/1 var(--c27-logo, "Circles 2027 Display", sans-serif); letter-spacing: 0; color: inherit !important; text-decoration: none !important; }
.c27m-close { display: inline-flex; align-items: center; gap: 12px; margin: 0; padding: 10px 4px; background: none; border: 0; color: inherit; cursor: pointer; font: 500 12px/1 "Geist Mono", ui-monospace, monospace; letter-spacing: .14em; text-transform: uppercase; }
.c27m-x { position: relative; width: 22px; height: 22px; }
.c27m-x::before, .c27m-x::after { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 2px; background: currentColor; transform: rotate(45deg); }
.c27m-x::after { transform: rotate(-45deg); }
.c27m-nav { align-self: center; }
.c27m-main { list-style: none; margin: 0; padding: 0; display: grid; gap: clamp(4px, 1vh, 12px); }
.c27m-main-a { display: inline-flex; align-items: baseline; gap: 18px; color: inherit !important; text-decoration: none !important; }
.c27m-n { font: 500 12px/1 "Geist Mono", ui-monospace, monospace; letter-spacing: .1em; opacity: .55; }
.c27m-t { font: 700 clamp(30px, 3.6vw, 60px)/1.05 var(--c27-logo, "Circles 2027 Display", sans-serif); letter-spacing: 0; text-transform: uppercase; }
.c27m-nav { min-width: 0; overflow: hidden; } /* the big links never run under the right column */
.c27m-side { align-self: center; display: grid; gap: 32px; }
.c27m-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 28px 32px; }
/* feature card: the real 2027 facts + a live days-to-go count */
.c27m-feature { display: grid; gap: 4px; padding: 22px 24px; background: rgba(255,255,255,.06); border-radius: 16px; }
.c27m-f-k { margin: 0 0 6px; font: 500 11px/1.3 "Geist Mono", ui-monospace, monospace; letter-spacing: .16em; text-transform: uppercase; opacity: .6; }
.c27m-f-d { margin: 0; font: 700 clamp(24px, 2.2vw, 34px)/1.1 var(--c27-logo, "Circles 2027 Display", sans-serif); text-transform: uppercase; }
.c27m-f-v { margin: 0; font: 500 15px/1.4 Archivo, -apple-system, Helvetica, Arial, sans-serif; opacity: .8; }
.c27m-f-p { margin: 10px 0 14px; display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 14px; font: 600 15px/1.3 Archivo, -apple-system, Helvetica, Arial, sans-serif; }
.c27m-f-c { font: 500 12px/1 "Geist Mono", ui-monospace, monospace; letter-spacing: .1em; text-transform: uppercase; color: var(--c27-red, #D13A1E); }
.c27m-feature .c27m-cta { justify-self: start; }
.c27m-h { margin: 0 0 16px; font: 500 11px/1.3 "Geist Mono", ui-monospace, monospace; letter-spacing: .16em; text-transform: uppercase; opacity: .55; }
.c27m-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.c27m-a { color: inherit !important; text-decoration: none !important; font: 500 17px/1.35 Archivo, -apple-system, Helvetica, Arial, sans-serif; opacity: .85; transition: opacity .2s; }
.c27m-a:hover, .c27m-a:focus-visible { opacity: 1; }
.c27m-foot { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px; padding-top: 28px; }
.c27m-ctas { display: flex; flex-wrap: wrap; gap: 12px; }
.c27m-cta { display: inline-flex; align-items: center; gap: 10px; padding: 14px 22px; background: var(--c27-red, #D13A1E); color: #fff !important; text-decoration: none !important; font: 600 13px/1 "Geist Mono", ui-monospace, monospace; letter-spacing: .12em; text-transform: uppercase; }
.c27m-cta.is-alt { background: transparent; box-shadow: inset 0 0 0 1px currentColor; color: inherit !important; }
.c27m-social { list-style: none; margin: 0; padding: 0; display: flex; gap: 18px; }
.c27m-soc { color: inherit !important; text-decoration: none !important; font: 500 12px/1 "Geist Mono", ui-monospace, monospace; letter-spacing: .1em; text-transform: uppercase; opacity: .7; }
.c27m-soc:hover, .c27m-soc:focus-visible { opacity: 1; }
.c27m-meta { margin: 0 0 0 auto; font: 500 12px/1.4 "Geist Mono", ui-monospace, monospace; letter-spacing: .08em; text-transform: uppercase; opacity: .55; }
.c27m :is(.c27m-main-a, .c27m-a, .c27m-cta, .c27m-soc, .c27m-close, .c27m-logo):focus-visible { background: rgba(255,255,255,.08); }
/* default entrance: items rise in, staggered; worlds replace this with their own */
.c27m :is(.c27m-main-a, .c27m-a, .c27m-h, .c27m-cta, .c27m-soc, .c27m-meta, .c27m-feature) { opacity: 0; transform: translateY(18px); transition: opacity .5s ease, transform .6s cubic-bezier(.2,.7,.1,1); transition-delay: calc(var(--i, 0) * 28ms + 120ms); }
.c27m.is-open :is(.c27m-main-a, .c27m-a, .c27m-h, .c27m-cta, .c27m-soc, .c27m-meta, .c27m-feature) { opacity: 1; transform: none; }
.c27m.is-open .c27m-a { opacity: .85; }
.c27m.is-closing :is(.c27m-main-a, .c27m-a, .c27m-h, .c27m-cta, .c27m-soc, .c27m-meta, .c27m-feature) { transition-delay: 0s; transition-duration: .25s; }
@media (max-width: 900px) {
	.c27m-in { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto auto auto auto; row-gap: 36px; } /* minmax: a long word can't push Close off-screen */
	.c27m-nav, .c27m-side { align-self: start; }
	.c27m-nav { overflow: visible; } /* phones: hidden overflow collapsed the nav's row and let the feature card ride up over it */
	.c27m-in { grid-template-rows: auto max-content auto auto; }
	.c27m-t { font-size: clamp(26px, 8vw, 40px); }
	.c27m-cols { grid-template-columns: 1fr 1fr; gap: 24px; }
	.c27m-a { font-size: 15px; }
	.c27m-meta { margin-left: 0; flex-basis: 100%; }
}
@media (prefers-reduced-motion: reduce) { .c27m *, .c27m-bg { transition: none !important; animation: none !important; } }
/* the Menu button added on desktop where a world shows only Register */
.c27m-trigger { display: inline-flex; align-items: center; gap: 10px; margin: 0 22px 0 0; padding: 8px 2px; background: none; border: 0; color: inherit; cursor: pointer; font: 600 12px/1 "Geist Mono", ui-monospace, monospace; letter-spacing: .14em; text-transform: uppercase; vertical-align: middle; outline: none !important; }
.c27m-trigger[hidden] { display: none !important; }
.c27m-trigger-i { display: grid; gap: 5px; width: 20px; }
.c27m-trigger-i i { display: block; height: 2px; background: currentColor; transition: transform .25s; }
.c27m-trigger:hover .c27m-trigger-i i:last-child { transform: scaleX(.6); transform-origin: left; }

/* menu logo: the real Circles logo images; white on dark menus, black on the light ones (B, C, D, E) */
.c27m-logo.has-img { display: inline-flex; align-items: center; }
.c27m-logo.has-img img { display: block; height: 26px; width: auto; }
.c27m-logo.has-img .c27m-logo-b { display: none; }
.c27m:is([data-world="b"], [data-world="c"], [data-world="d"], [data-world="e"]) .c27m-logo.has-img .c27m-logo-w { display: none; }
.c27m:is([data-world="b"], [data-world="c"], [data-world="d"], [data-world="e"]) .c27m-logo.has-img .c27m-logo-b { display: block; }
.c27m:is([data-world="b"], [data-world="c"], [data-world="d"], [data-world="e"]) .c27m-logo.has-img:not(:has(.c27m-logo-b)) .c27m-logo-w { display: block; filter: invert(1); }
@media (max-width: 600px) { .c27m-logo.has-img img { height: 22px; } }

/* ---------- Mega footer (c27_footer_html in c27-functions.php): shared base. Worlds restyle via .c27x[data-world="x"]. ---------- */
body.c27 .footer.cc-footer { display: none !important; } /* replaced by the mega footer on the 2027 pages */
.c27x { position: relative; background: #0B0B0D; color: #fff; overflow: hidden; font-family: Archivo, -apple-system, Helvetica, Arial, sans-serif; -webkit-text-size-adjust: 100%; }
.c27x *, .c27x *::before, .c27x *::after { box-sizing: border-box; }
.c27x a { color: inherit !important; text-decoration: none !important; outline: none !important; }
.c27x a:focus-visible { background: rgba(255,255,255,.1); }
.c27x-in { width: min(var(--section-width, 1600px), calc(100% - 2 * clamp(20px, 4vw, 64px))); margin: 0 auto; padding-top: clamp(80px, 10vw, 160px); display: grid; gap: clamp(56px, 7vw, 110px); }
.c27x-cta { display: grid; gap: 18px; justify-items: start; padding-bottom: clamp(48px, 6vw, 90px); border-bottom: 1px solid rgba(255,255,255,.14); }
.c27x-k { margin: 0; font: 500 12px/1.3 "Geist Mono", ui-monospace, monospace; letter-spacing: .16em; text-transform: uppercase; color: #D13A1E; }
.c27x-big { margin: 0; max-width: 16ch; font: 700 clamp(38px, 5.2vw, 88px)/1.02 var(--c27-logo, "Circles 2027 Display", sans-serif); letter-spacing: 0; text-transform: uppercase; text-wrap: balance; color: inherit; }
.c27x-when { margin: 0; font: 500 16px/1.5 Archivo, -apple-system, Helvetica, Arial, sans-serif; opacity: .8; }
.c27x-days:not(:empty)::before { content: " / "; }
.c27x-days { font: 500 12px/1 "Geist Mono", ui-monospace, monospace; letter-spacing: .1em; text-transform: uppercase; color: #D13A1E; opacity: 1; }
.c27x-btn { display: inline-flex; align-items: center; gap: 10px; margin-top: 8px; padding: 16px 26px; background: var(--c27-red, #D13A1E); color: #fff !important; font: 600 13px/1 "Geist Mono", ui-monospace, monospace; letter-spacing: .12em; text-transform: uppercase; transition: background .2s; }
.c27x-btn:hover { background: #B32F17; }
.c27x-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 40px 32px; }
.c27x-h { margin: 0 0 18px; font: 500 11px/1.3 "Geist Mono", ui-monospace, monospace; letter-spacing: .16em; text-transform: uppercase; color: rgba(255,255,255,.6); }
.c27x-col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 11px; }
.c27x-col a { font: 500 16px/1.35 Archivo, -apple-system, Helvetica, Arial, sans-serif; opacity: .88; transition: opacity .2s; }
.c27x-col a:hover { opacity: 1; text-decoration: underline !important; text-underline-offset: 4px; }
.c27x-company { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr) auto; gap: 32px; align-items: start; padding-top: clamp(40px, 5vw, 64px); border-top: 1px solid rgba(255,255,255,.14); }
.c27x-co { display: inline-block; width: 150px; color: #fff !important; }
.c27x-co svg { display: block; width: 100%; height: auto; }
.c27x-contact { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 20px 32px; font: 400 14px/1.6 Archivo, -apple-system, Helvetica, Arial, sans-serif; color: rgba(255,255,255,.78); }
.c27x-contact p { margin: 0; }
.c27x-contact strong { color: #fff; font-weight: 600; }
.c27x-contact a:hover { color: #fff !important; text-decoration: underline !important; }
.c27x-social { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px 20px; }
.c27x-social a { font: 500 12px/1 "Geist Mono", ui-monospace, monospace; letter-spacing: .12em; text-transform: uppercase; opacity: .75; }
.c27x-social a:hover { opacity: 1; }
.c27x-word { margin: 0 0 -.14em; font: 700 calc((min(var(--section-width, 1600px), 100vw - 2 * clamp(20px, 4vw, 64px))) / 6.25)/0.82 var(--c27-logo, "Circles 2027 Display", sans-serif); letter-spacing: 0; text-align: center; white-space: nowrap; color: rgba(255,255,255,.1); user-select: none; }
.c27x-legal { margin: 0; padding: 22px 0 28px; border-top: 1px solid rgba(255,255,255,.14); font: 400 12px/1.4 Archivo, -apple-system, Helvetica, Arial, sans-serif; color: rgba(255,255,255,.55); }
@media (max-width: 1100px) { .c27x-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } .c27x-company { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 600px) { .c27x-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px 20px; } .c27x-col a { font-size: 15px; } .c27x-in { gap: 56px; } }
/* lock the footer's type: world-wide heading/paragraph rules (colors, rises, sizes) must not reach it */
body .c27x :is(h2, h3, p, li, a, span, strong) { letter-spacing: inherit; }
body .c27x .c27x-big { opacity: 1 !important; transform: none !important; visibility: visible !important; color: #fff !important; font: 700 clamp(38px, 5.2vw, 88px)/1.02 var(--c27-logo, "Circles 2027 Display", sans-serif) !important; letter-spacing: 0 !important; text-transform: uppercase !important; margin: 0 !important; }
body .c27x .c27x-h { opacity: 1 !important; transform: none !important; visibility: visible !important; color: rgba(255,255,255,.62) !important; font: 500 11px/1.3 "Geist Mono", ui-monospace, monospace !important; letter-spacing: .16em !important; text-transform: uppercase !important; margin: 0 0 18px !important; }
body .c27x .c27x-k { font: 500 12px/1.3 "Geist Mono", ui-monospace, monospace !important; letter-spacing: .16em !important; color: #D13A1E !important; margin: 0 !important; }
body .c27x .c27x-when { font: 500 16px/1.5 Archivo, -apple-system, Helvetica, Arial, sans-serif !important; color: rgba(255,255,255,.82) !important; margin: 0 !important; opacity: 1 !important; }
body .c27x .c27x-contact, body .c27x .c27x-contact p, body .c27x .c27x-contact a, body .c27x .c27x-contact strong { font-size: 14px !important; line-height: 1.6 !important; margin: 0 !important; }
body .c27x .c27x-contact p { color: rgba(255,255,255,.78) !important; }
body .c27x .c27x-contact strong { color: #fff !important; font-weight: 600 !important; }
body .c27x .c27x-col a { font: 500 16px/1.35 Archivo, -apple-system, Helvetica, Arial, sans-serif !important; }
body .c27x .c27x-legal { font: 400 12px/1.4 Archivo, -apple-system, Helvetica, Arial, sans-serif !important; color: rgba(255,255,255,.55) !important; margin: 0 !important; }
body .c27x .c27x-word { font: 700 calc(min(var(--section-width, 1600px), 100vw - 2 * clamp(20px, 4vw, 64px)) / 6.25)/0.82 var(--c27-logo, "Circles 2027 Display", sans-serif) !important; color: rgba(255,255,255,.1) !important; margin: 0 0 -.14em !important; opacity: 1 !important; transform: none !important; }
@media (max-width: 600px) { body .c27x .c27x-col a { font-size: 15px !important; } }

/* 2026-10-28: Menu trigger stays readable on the dark sticky bars (Redacted, Decrypt showed it faint gray) */
html.c27-past-hero body:is(.c27-d, .c27-g) .header-wrapper .c27m-trigger { color: #fff !important; opacity: 1 !important; }

/* 2026-10-28 (owner): the real Circles logo in every header, modest size (tall classic mark, so height drives it) */
html body.c27 .header-wrapper .header .logo img { height: 36px !important; width: auto !important; max-height: none !important; max-width: none !important; }
@media (max-width: 767px) { html body.c27 .header-wrapper .header .logo img { height: 28px !important; } }
.c27m-logo img { height: 34px !important; width: auto !important; }
/* light worlds: the menu icon is dark on phones too; Depth's phone icon at a tappable size */
html body:is(.c27-c, .c27-e) .header-wrapper .header .btn-menu svg path { fill: #111114 !important; }
@media (max-width: 1024px) { html body.c27-e .header-wrapper .header .btn-menu svg { width: 30px !important; height: auto !important; } }
/* Redacted and Decrypt: Menu label white at the top too (their heroes are dark) */
body:is(.c27-d, .c27-g) .header-wrapper .c27m-trigger { color: #fff !important; opacity: 1 !important; }

/* Footer company row lined up on every world (owner, 2026-11-10: "this looks off, make sure it lines up on all themes").
   Four even columns; "Circles Company" sits over its Code of Conduct / Refund Policy links in the first column, so every
   column runs the same three lines. The logo and the social links share the text's first line. */
body .c27x .c27x-company { align-items: start; }
body .c27x .c27x-contact { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px 32px; }
body .c27x .c27x-co { margin-top: 1px; }
body .c27x .c27x-social { align-items: center; min-height: 22.4px; }
body .c27x .c27x-social a { display: inline-block; font-size: 12px !important; line-height: 22.4px !important; }
body .c27x .c27x-contact > p:first-child:nth-last-child(5) { grid-area: 1 / 1; }
body .c27x .c27x-contact > p:nth-child(5):last-child { grid-area: 1 / 1; align-self: end; }
@media (max-width: 900px) { body .c27x .c27x-contact { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* worlds that drop to one column on phones: Circles Company, then its two links, then the rest */
@media (max-width: 600px) {
	body .c27x:is([data-world="b"], [data-world="d"], [data-world="e"]) .c27x-contact > p { grid-area: auto !important; order: 2; }
	body .c27x:is([data-world="b"], [data-world="d"], [data-world="e"]) .c27x-contact > p:first-child { order: 0; }
	body .c27x:is([data-world="b"], [data-world="d"], [data-world="e"]) .c27x-contact > p:nth-child(5) { order: 1; margin-top: -20px !important; }
}

/* Phones: reading text never smaller than 12px (labels on every world, sponsors, speakers, design) */
@media (max-width: 600px) {
	html:root body :is(
		.c27a-date-m span,
		.c27b-meta, .c27b-spass-k, .ct2-pr-blurb, .ct2-pr-features li,
		.c27c-poster span, .c27c-wanted-k, .c27c-wanted-f, .c27c-clips li span,
		.ct2-hero-eyebrow, .c27x-col li a,
		.c27e-au-kpi span,
		.c27f-room-cap span, .c27f-kpis li span, .c27f-stages li span,
		.c27g-legend span,
		.ox-rc-fine, .body.wrap .eyebrow, .copy .eyebrow
	) { font-size: 12px !important; }
	html:root body.c27-b .ct-wrapper .wysiwyg p,
	html:root body.c27-f .ct-wrapper p strong { font-size: 12px !important; }
}

/* Footer company row (owner, 2026-11-11): HQ and Mailing Address share one column with a gap, so the
   Circles Co logo gets more room. Columns: Circles Company + its links / HQ over Mailing / phone + email. */
@media (min-width: 901px) {
	body .c27x .c27x-company { grid-template-columns: minmax(0, 1.5fr) minmax(0, 2fr) auto; }
	body .c27x .c27x-contact { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 0; }
	body .c27x .c27x-contact > p:nth-child(2) { grid-area: 1 / 2; }
	body .c27x .c27x-contact > p:nth-child(3) { grid-area: 2 / 2; margin-top: 18px !important; }
	body .c27x .c27x-contact > p:nth-child(4) { grid-area: 1 / 3; }
}
/* popups: parking maps and recap video */
.c27-mfp.mfp-bg { background: #0b0b0f; opacity: .92; }
.c27-mfp-img .mfp-img { max-width: min(96vw, 1600px) !important; padding: 40px 0 !important; }
.c27-mfp .mfp-close { opacity: .9; }
.c27-mfp .mfp-close:focus, .c27-mfp .mfp-close:active { outline: 0; }

/* Homepage button pairs (Register Today + Become A Volunteer) on every world:
   equal width and height, side by side when they fit, stacked evenly when not. */
body.home .ct-wrapper :is(.right > .marg-t-20, .ct2-buttons, .ct2-hero-buttons):has(> a.button + a.button) {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 14.5rem), 1fr));
	grid-auto-rows: 1fr;
	gap: 12px;
	max-width: calc(31rem + 12px);
}
body.home .ct-wrapper :is(.right > .marg-t-20, .ct2-buttons, .ct2-hero-buttons):has(> a.button + a.button) > a.button {
	display: flex !important;
	align-items: center;
	justify-content: center;
	margin: 0 !important;
	width: auto !important;
	height: auto !important;
	align-self: stretch !important;
	box-sizing: border-box;
	padding-left: 16px !important;
	padding-right: 16px !important;
	white-space: nowrap;
	text-align: center;
}
@media (max-width: 600px) {
	body.home .ct-wrapper :is(.right > .marg-t-20, .ct2-buttons, .ct2-hero-buttons):has(> a.button + a.button) { grid-template-columns: minmax(0, 1fr); width: 100%; max-width: 100%; min-width: 0; }
	body.home .ct-wrapper :is(.right > .marg-t-20, .ct2-buttons, .ct2-hero-buttons):has(> a.button + a.button) > a.button { min-width: 0; white-space: normal; }
}
