/* Hallmark · theme: custom LUMHUB 3 "Cenote" · paper: dark (abyssal blue) · display: geometric-sans · accent: cool turquoise
 * vibe: cenote water, light shafts, Caribbean night, precise instruments · premium: LUM360 gold reserved for featured
 * Dark is the brand default; light "Arrecife" is an explicit opt-in persisted by the theme toggle.
 * Logos adapted from supplied LUM360 vector originals. Source of truth for every colour, type, space and motion value.
 * v2 · 2026-10-28 · materials (rim light, sheen, wells), elevation scale, interaction overlays, layer order and control sizes. */
@font-face{font-family:Space Grotesk;src:url('../brand/fonts/space-grotesk-latin.woff2?v=0640890476fc') format('woff2');font-style:normal;font-weight:300 700;font-display:swap}
@font-face{font-family:IBM Plex Sans;src:url('../brand/fonts/ibm-plex-sans-latin.woff2?v=e2291e842cf5') format('woff2');font-style:normal;font-weight:100 700;font-display:swap}
:root {
 color-scheme:dark;
 --font-display:'Space Grotesk','Trebuchet MS',sans-serif;
 --font-body:'IBM Plex Sans','Segoe UI',sans-serif;
 --font-mono:ui-monospace,'Cascadia Mono','SF Mono',Menlo,Consolas,monospace;
 /* Cenote · dark default */
 --color-paper:oklch(15.5% .024 248); --color-surface:oklch(19.5% .028 246); --color-soft:oklch(23.5% .032 244); --color-raised:oklch(26.5% .035 242);
 --color-abyss:oklch(12.5% .022 250); --color-well:oklch(13.8% .023 249);
 --color-ink:oklch(95.5% .012 215); --color-muted:oklch(77% .025 225); --color-subtle:oklch(66% .028 228); --color-rule:oklch(32% .032 240); --color-rule-strong:oklch(53% .04 232);
 --color-accent:oklch(83% .13 188); --color-accent-ink:oklch(19% .04 230); --color-accent-soft:oklch(29% .06 200); --color-accent-line:oklch(64% .11 192); --color-accent-strong:oklch(88% .12 186);
 --color-gold:oklch(83% .1 82); --color-gold-ink:oklch(22% .03 70); --color-gold-soft:oklch(30% .045 80);
 --color-focus:oklch(89% .14 95); --color-error:oklch(73% .15 25); --color-success:oklch(80% .13 162); --color-warning:oklch(81% .13 62);
 --color-error-soft:oklch(27% .06 25); --color-success-soft:oklch(27% .05 165); --color-warning-soft:oklch(28% .05 62); --color-info-soft:oklch(26% .045 230);
 --color-dark:oklch(11.5% .02 250); --color-on-dark:oklch(95% .012 215); --color-dark-muted:oklch(75% .025 225); --color-dark-rule:oklch(30% .03 240);
 --color-glass:oklch(19.5% .028 246 / .8); --color-scrim:oklch(9% .02 250 / .72); --color-shade:oklch(6% .02 250 / .55);
 --color-shade-soft:oklch(6% .02 250 / .22); --color-sheet:oklch(99.4% .003 210);
 /* Materials: a cool rim of light on the top edge of raised planes, a two-stop sheen, survey grid and the cenote light shaft. */
 --color-rim:oklch(96% .02 205 / .075); --color-sheen:oklch(30% .04 225 / .55); --color-grid:oklch(70% .06 215 / .075); --color-shaft:oklch(83% .13 188 / .13);
 --color-hover:oklch(95% .012 215 / .05); --color-press:oklch(95% .012 215 / .09); --color-selected:oklch(83% .13 188 / .12);
 --color-map-land:oklch(70% .08 196); --color-map-sea:oklch(40% .05 230); --color-map-beam:oklch(90% .12 186); --color-map-route:oklch(87% .035 210);
 --color-art-sand:oklch(80% .05 75); --color-art-peach:oklch(76% .085 52); --color-art-orange:oklch(70% .15 45); --color-art-green:oklch(76% .08 160); --color-art-blue:oklch(74% .09 225); --color-art-purple:oklch(72% .09 295);
 --color-star:oklch(88% .025 270); --color-space:oklch(24% .045 265); --color-transparent:transparent;
 --space-2xs:2px; --space-xs:4px; --space-sm:8px; --space-md:16px; --space-lg:24px; --space-xl:32px; --space-2xl:48px; --space-3xl:64px; --space-4xl:96px; --space-5xl:144px;
 --text-xs:.75rem; --text-sm:.875rem; --text-base:1rem; --text-md:1.125rem; --text-lg:1.5rem; --text-xl:clamp(1.8rem,3vw,2.6rem); --text-2xl:clamp(2.1rem,4.2vw,3.5rem); --text-display:clamp(2.5rem,5.4vw,4.9rem); --text-mega:clamp(3rem,8vw,7.5rem);
 --leading-display:1.02; --leading-heading:1.1; --leading-body:1.65; --tracking-display:-.05em; --tracking-heading:-.035em; --tracking-label:.06em;
 --radius-xs:5px; --radius-sm:8px; --radius-md:14px; --radius-lg:22px; --radius-xl:30px; --radius-pill:999px;
 --control-h:48px; --control-h-sm:40px; --tap:44px;
 --ease-out:cubic-bezier(.16,1,.3,1); --ease-in:cubic-bezier(.7,0,.84,0); --ease-in-out:cubic-bezier(.65,0,.35,1);
 --dur-fast:150ms; --dur-micro:120ms; --dur-short:220ms; --dur-long:420ms; --dur-morph:520ms;
 --shadow-1:0 1px 2px oklch(6% .02 250 / .45); --shadow-2:0 12px 30px -16px oklch(6% .02 250 / .7); --shadow-3:0 36px 80px -32px oklch(5% .02 250 / .85);
 --shadow-float:0 24px 60px -28px var(--color-shade); --header-h:72px; --app-bar-h:0px;
 /* Layer order. Dialogs opened with showModal() use the top layer; these govern non-modal chrome. */
 --z-raised:1; --z-sticky:20; --z-guide:34; --z-consent:36; --z-app-bar:38; --z-header:40; --z-popover:45; --z-skip:60;
 /* Contact actions and brand marks. Brand colours belong to their owners and stay the same in both themes; *-deep values keep white text above 4.5:1. */
 --act-whatsapp-a:#43EA82; --act-whatsapp-b:#0FA650; --act-whatsapp-deep-a:#0D8541; --act-whatsapp-deep-b:#086B31;
 --act-call-a:#5BC0FF; --act-call-b:#2F73EE; --act-call-deep-a:#2A66DD; --act-call-deep-b:#1D4FB8;
 --act-route-a:#FFA45E; --act-route-b:#F0503C; --act-route-deep-a:#D9441F; --act-route-deep-b:#B8321A;
 --act-web-a:#BE96FF; --act-web-b:#7048EA; --act-web-deep-a:#6240D6; --act-web-deep-b:#4C2FB4;
 --act-hours-a:#5EEAD4; --act-hours-b:#14A39A; --act-place-a:#FF8FA3; --act-place-b:#E5446D; --act-tag-a:#FFD36A; --act-tag-b:#E8A317;
 --brand-facebook:#1877F2; --brand-instagram:radial-gradient(circle at 30% 107%,#FDF497 0%,#FDF497 5%,#FD5949 45%,#D6249F 60%,#285AEB 90%); --brand-tiktok:#0B0B10; --brand-tiktok-cyan:#25F4EE; --brand-tiktok-pink:#FE2C55;
 --brand-x:#0B0B10; --brand-threads:#0B0B10; --brand-youtube:#FF0033; --brand-linkedin:#0A66C2; --brand-pinterest:#E60023; --brand-telegram:#27A7E7; --brand-google:#EA4335;
}
:root[data-theme=light] {
 color-scheme:light;
 /* Arrecife · light opt-in: sunlit shallows, white coral planes, petrol-teal controls. */
 --color-paper:oklch(97.6% .007 210); --color-surface:oklch(99.3% .004 210); --color-soft:oklch(94.5% .012 210); --color-raised:oklch(99.6% .003 210);
 --color-abyss:oklch(93.2% .016 212); --color-well:oklch(95.6% .011 211);
 --color-ink:oklch(21% .03 245); --color-muted:oklch(45% .03 240); --color-subtle:oklch(53% .028 236); --color-rule:oklch(87% .015 220); --color-rule-strong:oklch(61% .028 228);
 --color-accent:oklch(49% .1 203); --color-accent-ink:oklch(98.5% .006 200); --color-accent-soft:oklch(93% .035 195); --color-accent-line:oklch(60% .1 198); --color-accent-strong:oklch(42% .095 205);
 --color-gold:oklch(53% .11 70); --color-gold-ink:oklch(98.5% .01 85); --color-gold-soft:oklch(94% .04 85);
 --color-focus:oklch(48% .17 255); --color-error:oklch(50% .18 27); --color-success:oklch(45% .11 160); --color-warning:oklch(52% .13 58);
 --color-error-soft:oklch(95.5% .025 25); --color-success-soft:oklch(95% .03 165); --color-warning-soft:oklch(95.5% .035 75); --color-info-soft:oklch(95% .022 230);
 --color-dark:oklch(19% .03 248); --color-on-dark:oklch(96% .01 215); --color-dark-muted:oklch(78% .02 225); --color-dark-rule:oklch(36% .03 240);
 --color-glass:oklch(99.3% .004 210 / .84); --color-scrim:oklch(21% .03 245 / .45); --color-shade:oklch(30% .04 240 / .22);
 --color-shade-soft:oklch(30% .04 240 / .08);
 --color-rim:oklch(99.6% .003 210 / .9); --color-sheen:oklch(99.6% .004 205 / .9); --color-grid:oklch(45% .05 220 / .085); --color-shaft:oklch(60% .1 198 / .1);
 --color-hover:oklch(21% .03 245 / .04); --color-press:oklch(21% .03 245 / .08); --color-selected:oklch(49% .1 203 / .09);
 --color-map-land:oklch(52% .1 200); --color-map-sea:oklch(78% .04 220); --color-map-beam:oklch(45% .12 200); --color-map-route:oklch(38% .05 235);
 --color-art-sand:oklch(88% .048 68); --color-art-peach:oklch(79% .09 52); --color-art-orange:oklch(65% .16 43); --color-art-green:oklch(78% .08 150); --color-art-blue:oklch(72% .095 235); --color-art-purple:oklch(70% .095 302);
 --shadow-1:0 1px 2px oklch(30% .04 240 / .07); --shadow-2:0 14px 32px -18px oklch(30% .05 240 / .26); --shadow-3:0 40px 90px -40px oklch(28% .05 240 / .36);
}
