/* Shared site identity. Loaded by both normal and standalone error layouts. */
:root {
  --artwork-saturation: .94;
  --artwork-brightness: 1;
  --artwork-contrast: 1.015;
  --mh-package-saturation: .7;
  --mh-package-brightness: .95;
  --body-size: 17px;
  --type-display: clamp(2rem, 3.6vw, 3.4rem);
  --type-heading: clamp(1.6rem, 2.4vw, 2.3rem);
  --type-subheading: clamp(1.15rem, 1.5vw, 1.4rem);
  --type-reading: clamp(1rem, 1.25vw, 1.125rem);
  --type-article-title: clamp(1.625rem, 2.8vw, 2.5rem);
  --type-article-heading: clamp(1.3rem, 1.8vw, 1.65rem);
  --type-label: .875rem;
  --type-eyebrow: clamp(1rem, 1.4vw, 1.125rem);
  --canvas-glow: color-mix(in srgb, var(--accent) 6%, transparent);
  --canvas-reflection: color-mix(in srgb, var(--ink) 5%, transparent);
  --canvas-edge: color-mix(in srgb, var(--accent) 42%, transparent);
  --on-media: var(--color-white);
  --caption-scrim-edge: color-mix(in srgb, var(--color-black) 94%, transparent);
  --caption-scrim-body: color-mix(in srgb, var(--color-black) 68%, transparent);
  --caption-scrim-fade: clamp(32px, 4.5vw, 64px);
  --discovery-card-min: 15rem;
  --service-card-min: 18rem;
  --gateway-copy-scrim: color-mix(in srgb, var(--paper) 35%, transparent);
  --radius-discovery: clamp(12px, 1.1vw, 18px);
  --layout-wide: 1920px;
  --collection-gap: clamp(12px, 1.4vw, 24px);
  --rhythm-section: clamp(1.5rem, 2.5vw, 2.5rem);
  --button-size: 16px;
  --button-compact-size: calc(var(--button-size) * .9375);
  --radius-action: 16px;
  --action-surface: linear-gradient(180deg, color-mix(in srgb, var(--color-white) 35%, transparent), transparent 48%, color-mix(in srgb, var(--deep) 7%, transparent)), linear-gradient(135deg, color-mix(in srgb, var(--accent) 86%, var(--color-white)), var(--accent) 65%, color-mix(in srgb, var(--accent) 93%, var(--deep)));
  --control-height: 50px;
  --control-height-compact: max(52px, var(--control-height));
  --control-padding: 13px 24px;
  --control-padding-compact: 13px 20px;
  --scheme: dark;
  color-scheme: var(--scheme);
  --font-site: 'Cairo Variable', Tahoma, sans-serif;
  --accent: #b9f566;
  --color-black: #000000;
  --color-white: #ffffff;
  --deep: #090a0b;
  --focus-ring: #c8ff8a;
  --ink: #f5f5f5;
  --line: #303438;
  --muted: #b8bdc3;
  --palette-gold-10: #a38450;
  --palette-gold-100: #eee9df;
  --palette-gold-110: #efeede;
  --palette-gold-120: #f5edda;
  --palette-gold-130: #fff4df;
  --palette-gold-140: #f5f5ed;
  --palette-gold-20: #c8a45c;
  --palette-gold-30: #e1c386;
  --palette-gold-40: #e2c385;
  --palette-gold-50: #dfc99f;
  --palette-gold-60: #edce95;
  --palette-gold-70: #efcf94;
  --palette-gold-80: #f0cc97;
  --palette-gold-90: #e2d9c8;
  --palette-navy-10: #020611;
  --palette-navy-100: #0c1526;
  --palette-navy-110: #0d1728;
  --palette-navy-120: #0f2426;
  --palette-navy-130: #0b162c;
  --palette-navy-140: #0e182b;
  --palette-navy-150: #101a2b;
  --palette-navy-160: #101a2c;
  --palette-navy-170: #142828;
  --palette-navy-180: #101b30;
  --palette-navy-190: #111c30;
  --palette-navy-20: #060b18;
  --palette-navy-200: #101d32;
  --palette-navy-210: #101d33;
  --palette-navy-220: #11203a;
  --palette-navy-230: #142038;
  --palette-navy-240: #13213a;
  --palette-navy-250: #142039;
  --palette-navy-260: #14213a;
  --palette-navy-270: #14213b;
  --palette-navy-280: #15223a;
  --palette-navy-290: #18253d;
  --palette-navy-30: #060c1b;
  --palette-navy-300: #272035;
  --palette-navy-310: #182744;
  --palette-navy-320: #172548;
  --palette-navy-330: #20304b;
  --palette-navy-340: #24304a;
  --palette-navy-350: #283047;
  --palette-navy-360: #33415b;
  --palette-navy-370: #3c4964;
  --palette-navy-380: #43516b;
  --palette-navy-390: #aab5c7;
  --palette-navy-40: #060d1b;
  --palette-navy-400: #a9bcd9;
  --palette-navy-410: #b9c2d2;
  --palette-navy-420: #c6cfdf;
  --palette-navy-430: #c9d0df;
  --palette-navy-440: #d0d6e1;
  --palette-navy-50: #080e1b;
  --palette-navy-60: #080f1d;
  --palette-navy-70: #080f1e;
  --palette-navy-80: #0a1426;
  --palette-navy-90: #0b1425;
  --paper: #090a0b;
  --white: var(--surface);
  --mint: var(--surface);
  --cream: var(--accent);
  --surface: #141618;
  --space:clamp(22px,5vw,84px);--max:1536px;--radius:8px;--ease:cubic-bezier(.22,1,.36,1)
}

/* Shared scene rhythm and motion contracts. */
:root {
  --space-scene: clamp(2.75rem, 5.4vw, 5rem);
  --space-copy: clamp(1rem, 1.6vw, 1.6rem);
  --measure-copy: 39rem;
  --radius-scene: 1.25rem;
  --duration-reveal: 560ms;
  --duration-control: 220ms;
  --ease-scene: cubic-bezier(.16, 1, .3, 1);
  --layer-scene-media: 0;
  --layer-scene-copy: 1;
}

/* Shared primitives for normal pages and recovery pages. Component layouts extend these. */
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-site);line-height:1.8;font-size:var(--body-size)}
a{text-decoration:none;color:inherit}
:focus-visible{outline:3px solid var(--focus-ring);outline-offset:5px}
.icon{width:22px;height:22px;flex-shrink:0}
html[dir=rtl] .directional{transform:scaleX(-1)}
.button{background:var(--accent);color:var(--deep);display:inline-flex;gap:32px;align-items:center;justify-content:center;min-height:var(--control-height);padding:var(--control-padding);border-radius:4px;font-size:var(--button-size);font-weight:650;line-height:1.6;transition:background .2s,translate .25s;max-width:100%}
.button:hover{translate:0 -2px}
/* One polished primary surface, including the legacy primary-action alias. */
.button:is(.primary,.dark) {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border: 1px solid color-mix(in srgb,var(--accent) 62%,var(--color-white));
  border-radius: var(--radius-action);
  background: var(--action-surface);
  box-shadow: inset 0 1px 0 color-mix(in srgb,var(--color-white) 72%,transparent),inset 0 -1px 0 color-mix(in srgb,var(--deep) 14%,transparent),0 6px 20px color-mix(in srgb,var(--color-black) 24%,transparent);
  transition: translate var(--duration-control) var(--ease-scene),box-shadow var(--duration-control) var(--ease-scene);
}
.button:is(.primary,.dark)::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  border-radius: inherit;
  background: linear-gradient(110deg,transparent 30%,color-mix(in srgb,var(--color-white) 26%,transparent) 48%,transparent 66%) 100% 0 / 260% 100% no-repeat;
  transition: background-position 650ms var(--ease-scene);
}
@media(hover:hover) {
  .button:is(.primary,.dark):hover {
    background: var(--action-surface);
    box-shadow: inset 0 1px 0 color-mix(in srgb,var(--color-white) 82%,transparent),inset 0 -1px 0 color-mix(in srgb,var(--deep) 14%,transparent),0 9px 26px color-mix(in srgb,var(--color-black) 28%,transparent),0 0 14px color-mix(in srgb,var(--accent) 9%,transparent);
  }
  .button:is(.primary,.dark):hover::before { background-position: 0 0; }
}
.button:is(.primary,.dark):active {
  translate: 0 1px;
  box-shadow: inset 0 2px 4px color-mix(in srgb,var(--deep) 12%,transparent),inset 0 1px 0 color-mix(in srgb,var(--color-white) 40%,transparent),0 2px 8px color-mix(in srgb,var(--color-black) 18%,transparent);
}
.error-layout .shell{max-width:900px;margin:auto;padding:90px 24px}
.error-layout h1{font-size:clamp(30px,5vw,60px);line-height:1.4}
.error-layout p{color:var(--muted);margin:24px 0}
/* One semantic label contract for every section and the hero brand. */
:is(.eyebrow,.journey-kicker){display:block;color:var(--accent);font-size:var(--type-eyebrow);font-weight:700;line-height:1.7;letter-spacing:0;margin-block-end:.75rem}
@media(prefers-reduced-motion:reduce) {
  .button,.button:is(.primary,.dark),.button:is(.primary,.dark)::before { transition: none; }
  .button:hover,.button:is(.primary,.dark):active { translate: none; }
  .button:is(.primary,.dark):hover::before { background-position: 100% 0; }
}

@media(max-width:680px){.button{min-height:var(--control-height-compact);padding:var(--control-padding-compact)}}

/* Prepared media derives geometry from the preset, never the original upload. */
.role-media{display:block;width:100%;height:100%;overflow:hidden}.role-media>img{display:block;width:100%;height:100%;object-fit:cover}
/* Round the visible photograph, including contained sources with transparent padding. */
.role-media[data-media-role="discovery"]>img{clip-path:inset(var(--media-inset-block,0%) var(--media-inset-inline,0%) round var(--radius-discovery))}

/* Complete package artwork remains uncropped in every placement. */
.role-media[data-media-role="package_art"]>img{object-fit:contain;filter:saturate(var(--artwork-saturation)) contrast(var(--artwork-contrast)) brightness(var(--artwork-brightness))}
.mh-package-image{--artwork-saturation:var(--mh-package-saturation);--artwork-brightness:var(--mh-package-brightness)}
