/*
Theme Name: SIRIUS
Author: SIRIUS
Description: A bespoke one-page experience for SIRIUS — Terapias Radiónicas.
Version: 6.4.3
Requires at least: 6.4
Requires PHP: 7.4
Text Domain: sirius
*/

:root {
	--ink: #0a0a0a;
	--ink-soft: #171715;
	--paper: #f7f5f1;
	--white: #fff;
	--gold: #c6a96b;
	--gold-pale: #dccca5;
	--mineral: #777570;
	--mist: #e8e5df;
	--serif: "Cormorant Garamond", Georgia, serif;
	--display: "Cinzel", "Times New Roman", serif;
	--sans: "Inter", Arial, sans-serif;
	--shell: min(1280px, calc(100vw - 96px));
	--header-height: 94px;
	--ease: cubic-bezier(.2, .72, .2, 1);
}

* { box-sizing: border-box; }

html {
	scroll-behavior: smooth;
	scroll-padding-top: var(--header-height);
}

body {
	margin: 0;
	background: var(--paper);
	color: var(--ink);
	font-family: var(--sans);
	font-size: 16px;
	font-weight: 400;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}

body.menu-open { overflow: hidden; }

::selection { background: var(--gold); color: var(--ink); }

a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
img, svg { display: block; max-width: 100%; }

.shell { width: var(--shell); margin-inline: auto; }
.section { padding: clamp(112px, 12vw, 190px) 0; position: relative; }

.skip-link {
	position: fixed;
	top: 12px;
	left: 12px;
	z-index: 9999;
	padding: 10px 16px;
	background: var(--ink);
	color: var(--white);
	transform: translateY(-160%);
}

.skip-link:focus { transform: translateY(0); }

.site-progress {
	position: fixed;
	inset: 0 0 auto;
	height: 2px;
	z-index: 1001;
	pointer-events: none;
}

.site-progress span {
	display: block;
	width: 100%;
	height: 100%;
	background: var(--gold);
	transform: scaleX(0);
	transform-origin: left;
}

.site-header {
	position: fixed;
	inset: 0 0 auto;
	z-index: 1000;
	border-bottom: 1px solid transparent;
	transition: background .35s ease, border-color .35s ease, transform .35s ease;
}

body.admin-bar .site-header,
body.admin-bar .site-progress { top: 32px; }

.site-header.is-scrolled {
	background: rgb(247 245 241 / 91%);
	border-color: rgb(10 10 10 / 8%);
	backdrop-filter: blur(18px);
}

.header-inner {
	height: var(--header-height);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 40px;
}

.wordmark {
	display: inline-flex;
	flex-direction: column;
	align-items: flex-start;
	line-height: 1;
	position: relative;
	z-index: 2;
}

.wordmark-name {
	font-family: var(--display);
	font-size: 25px;
	font-weight: 500;
	letter-spacing: .28em;
}

.wordmark-sub {
	margin-top: 7px;
	font-family: var(--sans);
	font-size: 7px;
	font-weight: 500;
	letter-spacing: .37em;
	text-transform: uppercase;
}

.site-nav { display: flex; align-items: center; gap: clamp(22px, 2.4vw, 38px); }

.site-nav > a:not(.nav-cta) {
	position: relative;
	font-size: 13px;
	font-weight: 500;
	letter-spacing: .02em;
}

.site-nav > a:not(.nav-cta)::after {
	content: "";
	position: absolute;
	left: 0;
	right: 100%;
	bottom: -7px;
	height: 1px;
	background: var(--gold);
	transition: right .3s var(--ease);
}

.site-nav > a:hover::after,
.site-nav > a.is-active::after { right: 0; }

.nav-cta,
.button {
	min-height: 52px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 35px;
	padding: 0 21px 0 25px;
	border: 1px solid var(--ink);
	border-radius: 2px;
	font-size: 13px;
	font-weight: 500;
	letter-spacing: .015em;
	transition: color .3s ease, background .3s ease, border-color .3s ease, transform .3s var(--ease);
}

.nav-cta { min-height: 44px; gap: 22px; }
.nav-cta i, .button i { font-style: normal; font-size: 16px; transition: transform .3s var(--ease); }
.nav-cta:hover, .button:hover { transform: translateY(-2px); }
.nav-cta:hover i, .button:hover i { transform: translate(3px, -3px); }

/* Directional icons are drawn in CSS so operating systems never render them
   as coloured emoji glyphs. */
.icon-arrow {
	--arrow-rotation: 0deg;
	position: relative;
	width: 16px;
	height: 16px;
	flex: 0 0 16px;
	display: inline-block;
	font-size: 0 !important;
	line-height: 0;
	transform: rotate(var(--arrow-rotation));
	transform-origin: 50% 50%;
	transition: transform .55s var(--ease) !important;
}
.icon-arrow::before {
	content: "";
	position: absolute;
	left: 2px;
	top: 7.5px;
	width: 11px;
	height: 1px;
	background: currentColor;
}
.icon-arrow::after {
	content: "";
	position: absolute;
	right: 2px;
	top: 4.5px;
	width: 6px;
	height: 6px;
	border-top: 1px solid currentColor;
	border-right: 1px solid currentColor;
	transform: rotate(45deg);
}
.icon-arrow--left { --arrow-rotation: 180deg; }
.icon-arrow--down { --arrow-rotation: 90deg; }
.icon-arrow--up { --arrow-rotation: -90deg; }
.icon-arrow--up-right { --arrow-rotation: -45deg; }
.nav-cta:hover .icon-arrow,
.button:hover .icon-arrow { transform: translate(3px, -3px) rotate(var(--arrow-rotation)); }
.text-link:hover .icon-arrow { transform: translateY(4px) rotate(var(--arrow-rotation)); }
.carousel-controls button:hover .icon-arrow { transform: translateX(2px) rotate(var(--arrow-rotation)); }
.carousel-controls button:first-child:hover .icon-arrow { transform: translateX(-2px) rotate(var(--arrow-rotation)); }
.footer-back-top { display: inline-flex; align-items: center; gap: 8px; }
.footer-back-top:hover .icon-arrow { transform: translateY(-3px) rotate(var(--arrow-rotation)); }

.menu-toggle {
	display: none;
	align-items: center;
	gap: 14px;
	padding: 10px 0;
	border: 0;
	background: none;
	cursor: pointer;
}

.menu-toggle-label { font-size: 12px; text-transform: uppercase; letter-spacing: .1em; }
.menu-toggle-lines { width: 25px; height: 12px; display: grid; align-content: space-between; }
.menu-toggle-lines i { display: block; width: 100%; height: 1px; background: currentColor; transition: transform .3s ease; }

.scroll-pendulum {
	position: fixed;
	right: 24px;
	top: 50%;
	z-index: 100;
	display: flex;
	align-items: center;
	gap: 12px;
	transform: translateY(-50%);
	pointer-events: none;
	mix-blend-mode: difference;
	color: white;
}

.scroll-pendulum-label {
	font-size: 8px;
	letter-spacing: .22em;
	text-transform: uppercase;
	writing-mode: vertical-rl;
	transform: rotate(180deg);
}

.scroll-pendulum-track { width: 1px; height: 120px; background: rgb(255 255 255 / 35%); position: relative; }
.scroll-pendulum-weight { position: absolute; top: 0; left: 50%; width: 7px; height: 15px; background: white; clip-path: polygon(50% 100%, 0 0, 100% 0); transform: translate(-50%, -50%); }

.eyebrow {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 0 0 32px;
	color: var(--mineral);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: .17em;
	line-height: 1.3;
	text-transform: uppercase;
}

.eyebrow span { color: var(--gold); }
.eyebrow::after { content: ""; width: 42px; height: 1px; background: currentColor; opacity: .45; }
.eyebrow--light { color: rgb(255 255 255 / 56%); }

h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-weight: 400; }
h1, h2 { font-family: var(--serif); line-height: .94; letter-spacing: -.035em; }
h1 em, h2 em, h3 em { color: var(--gold); font-weight: 400; }
h2 { margin-bottom: 0; font-size: clamp(64px, 7vw, 108px); }

.section-lead {
	max-width: 610px;
	margin: 38px 0 0;
	color: var(--mineral);
	font-size: clamp(16px, 1.4vw, 19px);
	font-weight: 300;
	line-height: 1.75;
}

.section-heading--split {
	display: grid;
	grid-template-columns: .65fr 1.35fr;
	gap: 50px;
	align-items: start;
}

.button--dark { background: var(--ink); color: var(--white); }
.button--dark:hover { background: var(--gold); border-color: var(--gold); color: var(--ink); }
.button--gold { background: var(--gold); border-color: var(--gold); color: var(--ink); }
.button--gold:hover { background: var(--gold-pale); border-color: var(--gold-pale); }
.button--outline-light { color: var(--white); border-color: rgb(255 255 255 / 42%); }
.button--outline-light:hover { color: var(--ink); background: var(--white); border-color: var(--white); }

/* Hero */
.hero {
	min-height: max(760px, 100svh);
	padding: calc(var(--header-height) + 70px) 0 80px;
	display: flex;
	align-items: center;
	position: relative;
	background:
		radial-gradient(circle at 74% 48%, rgb(198 169 107 / 9%), transparent 27%),
		linear-gradient(115deg, #fff 0%, var(--paper) 68%);
	overflow: hidden;
}

.hero::before {
	content: "";
	position: absolute;
	inset: 0;
	opacity: .17;
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.15'/%3E%3C/svg%3E");
	pointer-events: none;
}

.hero-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.04fr) minmax(420px, .96fr);
	align-items: center;
	gap: clamp(30px, 4vw, 80px);
	position: relative;
	z-index: 1;
}

.hero-copy { min-width: 0; padding-bottom: 20px; }
.hero h1 { max-width: 730px; margin: 0; font-size: clamp(74px, 7.5vw, 126px); }
.hero h1 em { display: block; }
.hero-intro { max-width: 600px; margin: 40px 0 0; color: #575651; font-size: clamp(17px, 1.5vw, 20px); font-weight: 300; line-height: 1.75; }
.hero-actions { margin-top: 40px; display: flex; align-items: center; gap: 35px; flex-wrap: wrap; }

.text-link { display: inline-flex; align-items: center; gap: 16px; font-size: 13px; font-weight: 500; }
.text-link i { color: var(--gold); font-style: normal; transition: transform .3s var(--ease); }
.text-link:hover i { transform: translateY(4px); }

.hero-trust {
	margin-top: 68px;
	padding-top: 20px;
	border-top: 1px solid var(--mist);
	display: flex;
	gap: 24px;
	flex-wrap: wrap;
}

.hero-trust span { color: var(--mineral); font-size: 10px; letter-spacing: .07em; text-transform: uppercase; }
.hero-trust span:not(:last-child)::after { content: "·"; margin-left: 24px; color: var(--gold); }

.hero-instrument {
	width: min(100%, 590px);
	justify-self: end;
	aspect-ratio: .83;
	position: relative;
	border: 1px solid rgb(10 10 10 / 9%);
	background: rgb(255 255 255 / 35%);
	box-shadow: 0 40px 100px rgb(10 10 10 / 4%);
	will-change: transform;
}

.hero-instrument::before, .hero-instrument::after { content: ""; position: absolute; z-index: 1; background: var(--gold); }
.hero-instrument::before { width: 35px; height: 1px; left: -18px; top: 50%; }
.hero-instrument::after { width: 1px; height: 35px; left: 50%; bottom: -18px; }

.pendulum-stage { width: 100%; height: 100%; }
.stage-orbits { stroke: rgb(10 10 10 / 19%); stroke-width: 1; }
.stage-orbits circle:first-child { stroke: rgb(10 10 10 / 38%); }
.stage-orbits .stage-triangle { stroke: rgb(198 169 107 / 68%); }
.stage-ticks, .stage-star { fill: none; stroke: var(--ink); stroke-width: 1; }
.stage-points { fill: var(--gold); }
.stage-star circle { fill: var(--gold); stroke: none; }

.pendulum-assembly { transform-origin: 320px 0; animation: pendulum-swing 4.8s ease-in-out infinite; }
.pendulum-thread { fill: none; stroke: var(--ink); stroke-width: 1.5; }
.pendulum-ring { fill: var(--paper); stroke: var(--ink); stroke-width: 2; }
.pendulum-weight-shape { fill: var(--ink); stroke: var(--ink); stroke-width: 1; }
.pendulum-glint { fill: none; stroke: var(--gold); stroke-width: 2; }

@keyframes pendulum-swing {
	0%, 100% { transform: rotate(-8deg); }
	50% { transform: rotate(8deg); }
}

.instrument-coordinate { position: absolute; z-index: 2; color: var(--mineral); font-size: 8px; letter-spacing: .14em; }
.coordinate--top { top: 17px; left: 20px; }
.coordinate--right { top: 17px; right: 20px; }
.coordinate--bottom { left: 20px; bottom: 16px; }

.instrument-legend {
	position: absolute;
	right: -28px;
	bottom: 65px;
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 14px 18px;
	background: var(--ink);
	color: var(--white);
}

.instrument-legend span { display: flex; align-items: center; gap: 8px; font-size: 8px; letter-spacing: .12em; text-transform: uppercase; }
.instrument-legend i { width: 4px; height: 4px; border-radius: 50%; background: var(--gold); }

.hero-geometry span { position: absolute; display: block; pointer-events: none; }
.hero-orbit { border: 1px solid rgb(10 10 10 / 4%); border-radius: 50%; }
.hero-orbit--one { width: 55vw; aspect-ratio: 1; right: -22vw; top: -23vw; }
.hero-orbit--two { width: 32vw; aspect-ratio: 1; left: -20vw; bottom: -22vw; }
.hero-axis--h { width: 20vw; height: 1px; left: 0; top: 39%; background: rgb(10 10 10 / 5%); }
.hero-axis--v { width: 1px; height: 25vh; right: 11%; bottom: 0; background: rgb(10 10 10 / 5%); }

.hero-scroll {
	position: absolute;
	right: 28px;
	bottom: 45px;
	display: flex;
	align-items: center;
	gap: 14px;
	font-size: 8px;
	letter-spacing: .14em;
	text-transform: uppercase;
	writing-mode: vertical-rl;
}

.hero-scroll i { width: 1px; height: 34px; background: var(--ink); position: relative; overflow: hidden; }
.hero-scroll i::after { content: ""; position: absolute; inset: -100% 0 auto; height: 100%; background: var(--gold); animation: scroll-line 2s ease-in-out infinite; }
@keyframes scroll-line { 50%, 100% { transform: translateY(200%); } }

.principle-strip { overflow: hidden; background: var(--gold); border-block: 1px solid rgb(10 10 10 / 8%); }
.principle-track { width: max-content; min-width: 100%; height: 52px; display: flex; align-items: center; justify-content: space-around; animation: marquee 30s linear infinite; }
.principle-track span { padding: 0 28px; font-family: var(--display); font-size: 9px; letter-spacing: .18em; text-transform: uppercase; }
.principle-track i { font-size: 8px; font-style: normal; }
@keyframes marquee { to { transform: translateX(-50%); } }

/* Approach */
.approach { background: var(--white); }
.manifesto-grid { margin-top: 105px; display: grid; grid-template-columns: .8fr 1.2fr; border-block: 1px solid var(--mist); }
.manifesto-symbol { min-height: 380px; display: grid; place-content: center; position: relative; border-right: 1px solid var(--mist); overflow: hidden; }
.manifesto-symbol p { margin: 0; position: relative; z-index: 1; font-family: var(--serif); font-size: clamp(34px, 4vw, 55px); line-height: 1; text-align: center; }
.symbol-rings { position: absolute; inset: 50% auto auto 50%; width: 300px; aspect-ratio: 1; transform: translate(-50%, -50%); }
.symbol-rings span { position: absolute; inset: 0; border: 1px solid rgb(198 169 107 / 24%); border-radius: 50%; animation: breathe 5s ease-in-out infinite; }
.symbol-rings span:nth-child(2) { inset: 18%; animation-delay: -.7s; }
.symbol-rings span:nth-child(3) { inset: 36%; animation-delay: -1.4s; }
@keyframes breathe { 50% { transform: scale(1.05); opacity: .45; } }

.manifesto-grid blockquote { margin: 0; padding: clamp(65px, 7vw, 110px); display: flex; flex-direction: column; justify-content: center; }
.manifesto-grid blockquote p { margin: 0; font-family: var(--serif); font-size: clamp(42px, 5vw, 72px); line-height: 1.05; letter-spacing: -.025em; }
.manifesto-grid blockquote footer { max-width: 470px; margin-top: 30px; color: var(--mineral); font-size: 13px; line-height: 1.8; }

.value-grid { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 90px; border-top: 1px solid var(--mist); }
.value-card { padding: 30px 30px 10px; border-right: 1px solid var(--mist); }
.value-card:first-child { padding-left: 0; }
.value-card:last-child { border-right: 0; }
.value-number { color: var(--gold); font-size: 9px; letter-spacing: .12em; }
.value-card h3 { margin: 52px 0 18px; font-family: var(--display); font-size: 17px; letter-spacing: .06em; }
.value-card p { color: var(--mineral); font-size: 13px; line-height: 1.8; }

/* Services */
.services { background: var(--ink-soft); color: var(--white); overflow: hidden; }
.services::before { content: ""; position: absolute; width: 700px; aspect-ratio: 1; top: -350px; right: -200px; border: 1px solid rgb(198 169 107 / 12%); border-radius: 50%; box-shadow: 0 0 0 110px rgb(198 169 107 / 3%), 0 0 0 220px rgb(198 169 107 / 2%); }
.services-heading { display: grid; grid-template-columns: 1.25fr .75fr; gap: 80px; align-items: end; position: relative; }
.services-heading .section-lead { margin: 0 0 7px; color: rgb(255 255 255 / 52%); }
.service-list { margin-top: 100px; border-top: 1px solid rgb(255 255 255 / 17%); position: relative; }

.service-card {
	min-height: 270px;
	display: grid;
	grid-template-columns: .36fr .85fr 1fr 64px;
	gap: 30px;
	align-items: center;
	padding: 45px 22px;
	border-bottom: 1px solid rgb(255 255 255 / 17%);
	position: relative;
	transition: background .4s ease, padding .4s var(--ease);
}

.service-card::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgb(198 169 107 / 11%), transparent 60%); opacity: 0; transition: opacity .4s ease; }
.service-card:hover { padding-inline: 38px; background: rgb(255 255 255 / 2%); }
.service-card:hover::before { opacity: 1; }
.service-card > * { position: relative; z-index: 1; }
.service-index { display: flex; align-items: center; gap: 18px; color: var(--gold); font-size: 10px; }
.service-index i { width: 55px; height: 1px; background: currentColor; }
.service-title > p { margin-bottom: 12px; color: rgb(255 255 255 / 43%); font-size: 9px; letter-spacing: .15em; text-transform: uppercase; }
.service-title h3 { margin: 0; font-family: var(--serif); font-size: clamp(35px, 3.7vw, 58px); line-height: 1; letter-spacing: -.02em; }
.service-copy > p { max-width: 510px; margin: 0; color: rgb(255 255 255 / 65%); font-size: 14px; line-height: 1.8; }
.service-copy ul { display: flex; gap: 20px; flex-wrap: wrap; margin: 22px 0 0; padding: 0; list-style: none; }
.service-copy li { color: rgb(255 255 255 / 42%); font-size: 9px; letter-spacing: .06em; text-transform: uppercase; }
.service-copy li::before { content: "·"; margin-right: 8px; color: var(--gold); }
.service-card > a { width: 54px; aspect-ratio: 1; display: grid; place-content: center; justify-self: end; border: 1px solid rgb(255 255 255 / 25%); border-radius: 50%; font-size: 18px; transition: background .3s, color .3s, transform .3s; }
.service-card > a:hover { background: var(--gold); border-color: var(--gold); color: var(--ink); transform: rotate(45deg); }
.services-foot { margin-top: 55px; display: flex; justify-content: flex-end; align-items: center; gap: 38px; }
.services-foot p { margin: 0; color: rgb(255 255 255 / 52%); font-size: 13px; }

/* Process */
.process { background: var(--paper); }
.process-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(70px, 9vw, 150px); }
.process-intro { position: sticky; top: calc(var(--header-height) + 70px); align-self: start; }
.process-intro h2 { font-size: clamp(66px, 6vw, 96px); }
.process-dial { width: 165px; aspect-ratio: 1; margin-top: 75px; border: 1px solid var(--mist); border-radius: 50%; position: relative; }
.process-dial::before, .process-dial::after { content: ""; position: absolute; background: var(--mist); }
.process-dial::before { width: calc(100% + 40px); height: 1px; left: -20px; top: 50%; }
.process-dial::after { width: 1px; height: calc(100% + 40px); top: -20px; left: 50%; }
.process-dial i { position: absolute; width: 9px; aspect-ratio: 1; top: 50%; left: 50%; background: var(--gold); border-radius: 50%; transform: translate(-50%, -50%); z-index: 2; }
.process-dial b { position: absolute; right: 25px; bottom: 25px; color: var(--mineral); font-size: 9px; font-weight: 500; }
.dial-hand { position: absolute; width: 1px; height: 65px; left: 50%; bottom: 50%; background: var(--ink); transform-origin: bottom; animation: dial 10s linear infinite; z-index: 1; }
@keyframes dial { to { transform: rotate(360deg); } }

.process-steps { margin: 0; padding: 0; list-style: none; counter-reset: step; }
.process-step { min-height: 260px; display: grid; grid-template-columns: 82px 1fr; gap: 30px; padding: 20px 0 55px; border-bottom: 1px solid #cfcbc3; }
.process-step + .process-step { padding-top: 60px; }
.process-step > span { width: 54px; aspect-ratio: 1; display: grid; place-content: center; border: 1px solid #c9c5bc; border-radius: 50%; color: var(--gold); font-size: 10px; }
.process-step div > p:first-child { margin-bottom: 18px; color: var(--mineral); font-size: 9px; letter-spacing: .14em; text-transform: uppercase; }
.process-step h3 { margin: 0 0 24px; font-family: var(--serif); font-size: clamp(47px, 5vw, 72px); line-height: .9; letter-spacing: -.02em; }
.process-step div > p:last-child { max-width: 560px; margin: 0; color: var(--mineral); font-size: 14px; line-height: 1.85; }

/* Spaces */
.space-feature { min-height: 860px; padding: 150px 0; display: flex; align-items: center; position: relative; overflow: hidden; background: #0f0f0e; color: var(--white); }
.space-feature::after { content: ""; position: absolute; inset: 0; opacity: .25; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.14'/%3E%3C/svg%3E"); pointer-events: none; }
.space-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 100px; align-items: center; position: relative; z-index: 2; }
.space-copy h2 { font-size: clamp(72px, 7vw, 110px); }
.space-copy .section-lead { color: rgb(255 255 255 / 55%); }
.space-copy .button { margin-top: 45px; }
.space-map { position: absolute; inset: 0; opacity: .4; }
.space-map span { position: absolute; border: 1px solid rgb(198 169 107 / 13%); }
.space-map span:nth-child(1) { inset: 10% 52% 42% -10%; }
.space-map span:nth-child(2) { inset: 51% 72% -10% 7%; }
.space-map span:nth-child(3) { inset: -5% 12% 63% 59%; }
.space-map span:nth-child(4) { inset: 35% -5% 20% 70%; }
.space-map span:nth-child(5) { width: 40vw; aspect-ratio: 1; left: 50%; top: 50%; border-radius: 50%; transform: translate(-10%, -50%); }

.space-compass { width: min(600px, 100%); aspect-ratio: 1; position: relative; justify-self: end; border: 1px solid rgb(255 255 255 / 18%); border-radius: 50%; animation: compass-float 7s ease-in-out infinite; }
.space-compass::before, .space-compass::after { content: ""; position: absolute; background: rgb(255 255 255 / 18%); }
.space-compass::before { width: 130%; height: 1px; left: -15%; top: 50%; }
.space-compass::after { width: 1px; height: 130%; left: 50%; top: -15%; }
.compass-ring span { position: absolute; border: 1px solid rgb(198 169 107 / 35%); border-radius: 50%; }
.compass-ring span:nth-child(1) { inset: 12%; }
.compass-ring span:nth-child(2) { inset: 27%; }
.compass-ring span:nth-child(3) { inset: 43%; background: var(--gold); }
.space-compass p { position: absolute; margin: 0; font-family: var(--display); font-size: 9px; letter-spacing: .2em; }
.space-compass p:nth-of-type(1) { top: 24%; left: 50%; transform: translateX(-50%); }
.space-compass p:nth-of-type(2) { right: 13%; top: 50%; transform: rotate(90deg) translateY(-50%); }
.space-compass p:nth-of-type(3) { bottom: 24%; left: 50%; transform: translateX(-50%); }
.space-compass > i { position: absolute; color: var(--gold); font-size: 9px; font-style: normal; }
.space-compass > i:nth-of-type(1) { top: -6px; left: 50%; }
.space-compass > i:nth-of-type(2) { right: -6px; top: 50%; }
.space-compass > i:nth-of-type(3) { bottom: -6px; left: 50%; }
.space-compass > i:nth-of-type(4) { left: -6px; top: 50%; }
@keyframes compass-float { 50% { transform: translateY(-12px) rotate(1deg); } }

/* Ethics */
.ethics { background: var(--white); }
.ethics-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 80px; align-items: end; }
.ethics-grid .section-lead { margin-bottom: 5px; }
.ethics-statements { margin-top: 95px; display: grid; grid-template-columns: repeat(4, 1fr); border-block: 1px solid var(--mist); }
.ethics-statement { min-height: 220px; padding: 35px 32px; border-right: 1px solid var(--mist); }
.ethics-statement:last-child { border-right: 0; }
.ethics-statement > span { width: 30px; aspect-ratio: 1; display: grid; place-content: center; border: 1px solid var(--gold); border-radius: 50%; color: var(--gold); font-size: 11px; }
.ethics-statement p { margin: 48px 0 0; color: var(--mineral); font-size: 13px; line-height: 1.8; }
.ethics-statement strong { color: var(--ink); font-weight: 500; }
.health-note { margin: 45px 0 0; padding-left: 20px; border-left: 1px solid var(--gold); color: var(--mineral); font-size: 12px; }
.health-note span { margin-right: 13px; color: var(--ink); font-weight: 600; }

/* FAQ */
.faq { background: var(--paper); border-top: 1px solid var(--mist); }
.faq-grid { display: grid; grid-template-columns: .77fr 1.23fr; gap: clamp(70px, 9vw, 145px); }
.faq-intro { position: sticky; top: calc(var(--header-height) + 60px); align-self: start; }
.faq-intro h2 { font-size: clamp(62px, 6vw, 94px); }
.faq-list { border-top: 1px solid #c9c5bd; }
.faq-list details { border-bottom: 1px solid #c9c5bd; }
.faq-list summary { min-height: 103px; display: grid; grid-template-columns: 48px 1fr 22px; align-items: center; gap: 18px; cursor: pointer; list-style: none; font-family: var(--serif); font-size: clamp(24px, 2.3vw, 34px); line-height: 1.2; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary span { color: var(--gold); font-family: var(--sans); font-size: 9px; }
.faq-list summary i { width: 16px; height: 16px; position: relative; }
.faq-list summary i::before, .faq-list summary i::after { content: ""; position: absolute; top: 50%; left: 0; width: 100%; height: 1px; background: var(--ink); transition: transform .3s ease; }
.faq-list summary i::after { transform: rotate(90deg); }
.faq-list details[open] summary i::after { transform: rotate(0); }
.faq-list details > p { max-width: 690px; margin: -2px 40px 0 66px; padding: 0 0 35px; color: var(--mineral); font-size: 14px; line-height: 1.85; }

/* Contact */
.contact { min-height: 850px; display: flex; align-items: center; overflow: hidden; background: var(--ink); color: var(--white); }
.contact-grid { display: grid; grid-template-columns: .82fr 1.18fr; gap: clamp(60px, 10vw, 150px); position: relative; z-index: 2; }
.contact-copy h2 { font-size: clamp(70px, 7vw, 108px); }
.contact-copy .section-lead { color: rgb(255 255 255 / 52%); }
.contact-principles { margin-top: 60px; display: flex; gap: 20px; flex-wrap: wrap; }
.contact-principles span { color: rgb(255 255 255 / 46%); font-size: 9px; letter-spacing: .1em; text-transform: uppercase; }
.contact-principles span::before { content: "·"; margin-right: 9px; color: var(--gold); }
.contact-form-wrap { padding: clamp(40px, 5vw, 70px); border: 1px solid rgb(255 255 255 / 15%); background: rgb(255 255 255 / 3%); backdrop-filter: blur(8px); }
.contact-form { display: grid; gap: 30px; }
.form-row { display: grid; grid-template-columns: repeat(2, 1fr); gap: 26px; }
.contact-form label:not(.consent) { display: flex; flex-direction: column; gap: 9px; }
.contact-form label > span { color: rgb(255 255 255 / 56%); font-size: 9px; letter-spacing: .1em; text-transform: uppercase; }
.contact-form label > span i { color: var(--gold); font-style: normal; }
.contact-form input:not([type="checkbox"]), .contact-form select, .contact-form textarea { width: 100%; min-height: 48px; padding: 0 0 10px; border: 0; border-bottom: 1px solid rgb(255 255 255 / 25%); border-radius: 0; outline: 0; background: transparent; color: var(--white); transition: border-color .25s; }
.contact-form select { color-scheme: dark; }
.contact-form textarea { min-height: 105px; resize: vertical; padding-top: 8px; }
.contact-form textarea::placeholder { color: rgb(255 255 255 / 25%); }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus { border-color: var(--gold); }
.consent { display: flex; align-items: flex-start; gap: 12px; cursor: pointer; }
.consent input { width: 16px; height: 16px; margin: 3px 0 0; accent-color: var(--gold); }
.consent span { color: rgb(255 255 255 / 43%) !important; font-size: 9px !important; line-height: 1.6; }
.form-submit { justify-self: start; border: 0; cursor: pointer; }
.hp-field { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.form-status { margin-bottom: 30px; padding: 16px 18px; display: flex; flex-direction: column; border-left: 2px solid var(--gold); background: rgb(255 255 255 / 5%); font-size: 12px; }
.form-status strong { font-weight: 500; }
.form-status span { color: rgb(255 255 255 / 55%); }
.form-status--error { border-color: #b77d6d; }
.contact-orbit { position: absolute; width: 760px; aspect-ratio: 1; left: -380px; bottom: -360px; border: 1px solid rgb(198 169 107 / 16%); border-radius: 50%; }
.contact-orbit span { position: absolute; border: 1px solid rgb(198 169 107 / 11%); border-radius: 50%; }
.contact-orbit span:first-child { inset: 18%; }
.contact-orbit span:nth-child(2) { inset: 36%; }
.contact-orbit i { position: absolute; width: 7px; aspect-ratio: 1; left: 50%; top: 50%; border-radius: 50%; background: var(--gold); }

/* Footer */
.site-footer { padding: 80px 0 24px; background: #050505; color: var(--white); border-top: 1px solid rgb(255 255 255 / 10%); }
.footer-grid { display: grid; grid-template-columns: 1.05fr .55fr 1fr; gap: 80px; padding-bottom: 70px; }
.wordmark--light { color: var(--white); }
.footer-brand > p { margin: 35px 0 0; color: var(--gold); font-family: var(--serif); font-size: 25px; }
.footer-official-logo { display: block; width: 185px; }
.footer-official-logo img { width: 100%; }
.footer-label { margin-bottom: 22px; color: rgb(255 255 255 / 32%); font-size: 8px; letter-spacing: .15em; text-transform: uppercase; }
.footer-nav { display: flex; flex-direction: column; align-items: flex-start; gap: 7px; }
.footer-nav .footer-label { margin-bottom: 14px; }
.footer-nav a { color: rgb(255 255 255 / 72%); font-size: 12px; transition: color .2s; }
.footer-nav a:hover { color: var(--gold); }
.footer-note > p:last-child { max-width: 480px; color: rgb(255 255 255 / 42%); font-size: 11px; line-height: 1.8; }
.footer-bottom { padding-top: 23px; display: flex; justify-content: space-between; gap: 25px; border-top: 1px solid rgb(255 255 255 / 10%); }
.footer-bottom p, .footer-bottom a { margin: 0; color: rgb(255 255 255 / 28%); font-size: 8px; letter-spacing: .1em; text-transform: uppercase; }
.footer-bottom a:hover { color: var(--gold); }

/* Generic content */
.simple-page { min-height: 70vh; padding-top: calc(var(--header-height) + 100px); padding-bottom: 120px; }
.simple-page h1 { font-size: clamp(60px, 8vw, 110px); }
.simple-page article { max-width: 860px; }

/* Motion */
.sirius-enhanced .reveal { opacity: 0; transform: translateY(28px); transition: opacity .9s var(--ease), transform .9s var(--ease); }
.sirius-enhanced .reveal--delay-1 { transition-delay: .09s; }
.sirius-enhanced .reveal--delay-2 { transition-delay: .18s; }
.sirius-enhanced .reveal--delay-3 { transition-delay: .27s; }
.sirius-enhanced .reveal.is-visible { opacity: 1; transform: translateY(0); }

/* Tablet */
@media (max-width: 1100px) {
	:root { --shell: min(100% - 56px, 980px); }
	.site-nav { gap: 20px; }
	.site-nav > a:not(.nav-cta):nth-child(4) { display: none; }
	.hero-grid { grid-template-columns: 1fr .82fr; }
	.hero h1 { font-size: clamp(66px, 8vw, 94px); }
	.hero-instrument { min-width: 420px; }
	.service-card { grid-template-columns: .23fr .8fr 1fr 54px; }
	.value-card { padding-inline: 22px; }
	.ethics-statements { grid-template-columns: repeat(2, 1fr); }
	.ethics-statement:nth-child(2) { border-right: 0; }
	.ethics-statement:nth-child(-n+2) { border-bottom: 1px solid var(--mist); }
	.space-grid { grid-template-columns: 1fr 1fr; gap: 60px; }
}

/* Mobile navigation and stacked layouts */
@media (max-width: 820px) {
	:root { --shell: calc(100vw - 40px); --header-height: 78px; }
	.section { padding: 100px 0; }
	.scroll-pendulum { display: none; }
	.menu-toggle { display: flex; position: relative; z-index: 1002; }
	.menu-open .menu-toggle-lines i:first-child { transform: translateY(5.5px) rotate(45deg); }
	.menu-open .menu-toggle-lines i:last-child { transform: translateY(-5.5px) rotate(-45deg); }
	.site-nav {
		position: fixed;
		inset: 0;
		padding: 125px 28px 40px;
		display: flex;
		flex-direction: column;
		align-items: stretch;
		justify-content: center;
		gap: 0;
		background: var(--paper);
		opacity: 0;
		visibility: hidden;
		transform: translateY(-12px);
		transition: opacity .3s ease, visibility .3s, transform .3s var(--ease);
	}
	.menu-open .site-nav { opacity: 1; visibility: visible; transform: none; }
	.site-nav > a:not(.nav-cta), .site-nav > a:not(.nav-cta):nth-child(4) { display: block; padding: 13px 0; border-bottom: 1px solid var(--mist); font-family: var(--serif); font-size: 36px; font-weight: 400; }
	.site-nav > a:not(.nav-cta)::after { display: none; }
	.nav-cta { margin-top: 28px; align-self: flex-start; }

	.hero { min-height: auto; padding: 140px 0 85px; }
	.hero-grid { grid-template-columns: 1fr; }
	.hero-copy { position: relative; z-index: 2; }
	.hero h1 { font-size: clamp(66px, 16vw, 94px); }
	.hero-intro { max-width: 560px; }
	.hero-trust { margin-top: 45px; }
	.hero-instrument { width: min(100%, 520px); min-width: 0; margin-top: 20px; justify-self: center; }
	.instrument-legend { right: 12px; bottom: 30px; }
	.hero-scroll { display: none; }

	.section-heading--split, .services-heading, .process-grid, .space-grid, .ethics-grid, .faq-grid, .contact-grid { grid-template-columns: 1fr; }
	.section-heading--split, .services-heading { gap: 20px; }
	.services-heading .section-lead { margin-top: 28px; }
	.manifesto-grid { grid-template-columns: 1fr; margin-top: 70px; }
	.manifesto-symbol { min-height: 330px; border-right: 0; border-bottom: 1px solid var(--mist); }
	.manifesto-grid blockquote { padding: 65px 15px; }
	.value-grid { grid-template-columns: repeat(2, 1fr); }
	.value-card { border-bottom: 1px solid var(--mist); }
	.value-card:nth-child(2) { border-right: 0; }
	.value-card:nth-child(3) { padding-left: 0; }

	.service-list { margin-top: 65px; }
	.service-card { grid-template-columns: 70px 1fr 54px; gap: 20px; padding: 40px 0; }
	.service-card:hover { padding-inline: 12px; }
	.service-title { grid-column: 2; }
	.service-copy { grid-column: 2 / 4; }
	.service-card > a { grid-column: 3; grid-row: 1 / 3; }
	.services-foot { justify-content: space-between; }

	.process-grid, .faq-grid { gap: 75px; }
	.process-intro, .faq-intro { position: static; }
	.process-dial { display: none; }
	.space-feature { min-height: auto; padding: 115px 0 150px; }
	.space-grid { gap: 90px; }
	.space-compass { width: min(78vw, 520px); justify-self: center; }
	.ethics-grid { gap: 20px; }
	.contact-grid { gap: 70px; }
	.contact-form-wrap { padding: 45px 30px; }
	.footer-grid { grid-template-columns: 1fr 1fr; }
	.footer-note { grid-column: 1 / -1; }
}

@media (max-width: 782px) {
	body.admin-bar .site-header,
	body.admin-bar .site-progress { top: 46px; }
}

@media (max-width: 560px) {
	:root { --shell: calc(100vw - 30px); }
	.section { padding: 84px 0; }
	.wordmark-name { font-size: 21px; }
	.wordmark-sub { font-size: 6px; }
	.menu-toggle-label { display: none; }
	.eyebrow { margin-bottom: 24px; }
	h2 { font-size: clamp(52px, 15vw, 72px); }
	.hero { padding-top: 122px; }
	.hero h1 { font-size: clamp(50px, 14.5vw, 68px); }
	.hero-intro { margin-top: 30px; font-size: 16px; }
	.hero-actions { align-items: flex-start; flex-direction: column; gap: 24px; }
	.hero-trust { gap: 8px 16px; }
	.hero-trust span:not(:last-child)::after { margin-left: 16px; }
	.hero-instrument { width: calc(100% - 5px); }
	.instrument-legend { display: none; }
	.principle-track { height: 45px; }
	.manifesto-grid { margin-top: 50px; }
	.manifesto-symbol { min-height: 285px; }
	.manifesto-grid blockquote p { font-size: 39px; }
	.value-grid { grid-template-columns: 1fr; margin-top: 65px; }
	.value-card, .value-card:nth-child(3) { padding: 30px 0; border-right: 0; }
	.value-card h3 { margin-top: 30px; }
	.value-card:last-child { border-bottom: 0; }

	.services { padding-bottom: 95px; }
	.service-card { min-height: auto; grid-template-columns: 48px 1fr 45px; padding: 35px 0; }
	.service-index i { display: none; }
	.service-title h3 { font-size: 37px; }
	.service-copy { grid-column: 1 / 4; padding-top: 10px; }
	.service-copy ul { gap: 8px 15px; }
	.service-card > a { width: 44px; }
	.services-foot { align-items: flex-start; flex-direction: column; }

	.process-step { grid-template-columns: 52px 1fr; gap: 14px; }
	.process-step > span { width: 42px; }
	.process-step h3 { font-size: 48px; }
	.space-feature { padding: 95px 0 120px; }
	.space-copy h2 { font-size: 61px; }
	.ethics-statements { grid-template-columns: 1fr; margin-top: 60px; }
	.ethics-statement, .ethics-statement:nth-child(2) { min-height: auto; padding: 30px 0; border-right: 0; border-bottom: 1px solid var(--mist); }
	.ethics-statement p { margin-top: 26px; }
	.health-note span { display: block; margin: 0 0 5px; }
	.faq-list summary { grid-template-columns: 30px 1fr 17px; font-size: 23px; }
	.faq-list details > p { margin-left: 48px; margin-right: 0; }
	.contact { min-height: auto; }
	.contact-copy h2 { font-size: 61px; }
	.contact-form-wrap { margin-inline: -15px; padding: 35px 20px; }
	.form-row { grid-template-columns: 1fr; }
	.footer-grid { grid-template-columns: 1fr; gap: 48px; }
	.footer-note { grid-column: auto; }
	.footer-bottom { align-items: flex-start; flex-direction: column; gap: 10px; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
	.sirius-enhanced .reveal { opacity: 1; transform: none; }
}

/* ==========================================================================
   SIRIUS 2.0 — stronger identity, scale and symbolic movement
   ========================================================================== */

body { font-size: 17px; }

.official-wordmark {
	flex-direction: row;
	align-items: center;
	gap: 13px;
	color: var(--white);
}

.wordmark-emblem {
	width: 48px;
	height: 58px;
	display: grid;
	place-items: center;
	overflow: hidden;
}

.wordmark-emblem img {
	width: 70px;
	max-width: none;
	filter: invert(1);
	transition: filter .35s ease;
}

.wordmark-copy { display: flex; flex-direction: column; }
.wordmark-name { font-size: 27px; }
.wordmark-sub { font-size: 8px; }
.site-header { color: var(--white); }
.site-header.is-scrolled { color: var(--ink); }
.site-header.is-scrolled .official-wordmark { color: var(--ink); }
.site-header.is-scrolled .wordmark-emblem img { filter: none; }
.site-nav > a:not(.nav-cta) { font-size: 14px; }
.site-header:not(.is-scrolled) .nav-cta { border-color: rgb(255 255 255 / 60%); }
.site-header:not(.is-scrolled) .nav-cta:hover { background: var(--gold); border-color: var(--gold); color: var(--ink); }

.eyebrow { font-size: 12px; letter-spacing: .13em; }
.section-lead { max-width: 650px; font-size: clamp(18px, 1.55vw, 21px); line-height: 1.72; }

.hero {
	min-height: max(900px, 100svh);
	padding-top: calc(var(--header-height) + 66px);
	background:
		radial-gradient(circle at 76% 45%, rgb(198 169 107 / 18%), transparent 30%),
		radial-gradient(circle at 28% 75%, rgb(105 80 41 / 12%), transparent 32%),
		#080807;
	color: var(--white);
}

.hero::before {
	opacity: .42;
	background-image:
		radial-gradient(circle at 12% 20%, rgb(255 255 255 / 55%) 0 1px, transparent 1.5px),
		radial-gradient(circle at 77% 15%, rgb(198 169 107 / 70%) 0 1px, transparent 1.5px),
		radial-gradient(circle at 45% 82%, rgb(255 255 255 / 35%) 0 1px, transparent 1.5px),
		radial-gradient(circle at 92% 67%, rgb(255 255 255 / 45%) 0 1px, transparent 1.5px),
		url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.72' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.18'/%3E%3C/svg%3E");
	background-size: 310px 310px, 410px 410px, 370px 370px, 520px 520px, 180px 180px;
}

.hero-grid {
	grid-template-columns: minmax(0, .88fr) minmax(540px, 1.12fr);
	gap: clamp(40px, 5vw, 90px);
}

.hero-brand-signature {
	display: flex;
	align-items: center;
	gap: 25px;
	margin-bottom: 18px;
}

.hero-brand-signature img {
	width: 148px;
	height: 138px;
	object-fit: contain;
	object-position: left center;
}

.hero-brand-signature p {
	max-width: 190px;
	margin: 0;
	padding-left: 22px;
	border-left: 1px solid rgb(198 169 107 / 55%);
	color: rgb(255 255 255 / 68%);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: .12em;
	line-height: 1.6;
	text-transform: uppercase;
}

.hero h1 { max-width: 650px; font-size: clamp(74px, 7.1vw, 116px); }
.hero-intro { color: rgb(255 255 255 / 67%); font-size: clamp(18px, 1.55vw, 21px); }
.hero .button--dark { background: var(--gold); border-color: var(--gold); color: var(--ink); }
.hero .button--dark:hover { background: var(--white); border-color: var(--white); }
.hero .text-link { color: var(--white); font-size: 14px; }
.hero-trust { border-color: rgb(255 255 255 / 16%); }
.hero-trust span { color: rgb(255 255 255 / 55%); font-size: 11px; }
.hero-scroll { color: rgb(255 255 255 / 72%); font-size: 10px; }
.hero-scroll i { background: rgb(255 255 255 / 40%); }

.hero-orbit { border-color: rgb(198 169 107 / 10%); }
.hero-axis--h, .hero-axis--v { background: rgb(198 169 107 / 9%); }
.hero-star { position: absolute; color: var(--gold); font-size: 18px; opacity: .55; animation: star-pulse 3.5s ease-in-out infinite; }
.hero-star--one { left: 6%; top: 28%; }
.hero-star--two { left: 44%; bottom: 16%; animation-delay: -1.1s; }
.hero-star--three { right: 4%; top: 19%; animation-delay: -2.2s; }
@keyframes star-pulse { 50% { opacity: .15; transform: scale(.65) rotate(45deg); } }

.hero-instrument.hero-ritual {
	width: min(100%, 690px);
	aspect-ratio: 1;
	border: 1px solid rgb(198 169 107 / 27%);
	border-radius: 50%;
	background:
		radial-gradient(circle, rgb(198 169 107 / 9%) 0 1px, transparent 1px 100%),
		radial-gradient(circle, rgb(255 255 255 / 6%), transparent 62%);
	box-shadow: 0 0 100px rgb(198 169 107 / 8%), inset 0 0 85px rgb(0 0 0 / 40%);
	overflow: visible;
	transition: transform .25s var(--ease);
}

.hero-instrument.hero-ritual::before,
.hero-instrument.hero-ritual::after { display: none; }
.pendulum-stage { overflow: visible; }

.ritual-aura span {
	position: absolute;
	inset: -4%;
	border: 1px solid rgb(198 169 107 / 15%);
	border-radius: 50%;
	animation: ritual-breathe 6s ease-in-out infinite;
}
.ritual-aura span:nth-child(2) { inset: -10%; animation-delay: -2s; }
.ritual-aura span:nth-child(3) { inset: -16%; animation-delay: -4s; }
@keyframes ritual-breathe { 50% { opacity: .25; transform: scale(1.025); } }

.ritual-word {
	position: absolute;
	z-index: 4;
	color: rgb(255 255 255 / 68%);
	font-family: var(--display);
	font-size: 11px;
	letter-spacing: .2em;
}
.ritual-word--top { top: -30px; left: 50%; transform: translateX(-50%); }
.ritual-word--right { right: -85px; top: 50%; transform: rotate(90deg) translateY(-50%); }
.ritual-word--bottom { bottom: -31px; left: 50%; transform: translateX(-50%); }
.ritual-word--left { left: -72px; top: 50%; transform: rotate(-90deg) translateY(-50%); }

.table-rotor { transform-origin: 350px 470px; stroke: rgb(198 169 107 / 37%); stroke-width: 1; }
.table-rotor--outer { animation: table-rotate 52s linear infinite; }
.table-rotor--inner { animation: table-rotate-reverse 34s linear infinite; stroke: rgb(255 255 255 / 24%); }
.table-rotor .stage-triangle { stroke: rgb(198 169 107 / 74%); stroke-width: 1.6; }
.table-rotor .stage-arc { stroke: rgb(198 169 107 / 52%); }
@keyframes table-rotate { to { transform: rotate(360deg); } }
@keyframes table-rotate-reverse { to { transform: rotate(-360deg); } }

.ritual-rays { fill: none; stroke: rgb(255 255 255 / 45%); stroke-width: 1.5; }
.ritual-glyphs text { fill: var(--gold); font-family: var(--display); font-size: 12px; letter-spacing: .12em; text-anchor: middle; }
.ritual-glyphs text:nth-child(-n+4) { font-size: 25px; }
.stage-points { fill: var(--gold); }

.pendulum-assembly--ornate { transform-origin: 350px 0; animation: pendulum-swing-rich 5.2s ease-in-out infinite; }
@keyframes pendulum-swing-rich { 0%, 100% { transform: rotate(-9deg); } 50% { transform: rotate(9deg); } }
.pendulum-chain { stroke: url(#metalGold); stroke-width: 3; }
.pendulum-ring { fill: #0b0a08; stroke: url(#metalGold); stroke-width: 4; }
.pendulum-ring--inner { stroke-width: 2; }
.pendulum-crown { fill: url(#metalGold); stroke: #17130d; stroke-width: 1.5; }
.pendulum-shoulder { fill: #0a0908; stroke: url(#metalGold); stroke-width: 3; }
.pendulum-weight-shape { fill: url(#weightDark); stroke: #dfc687; stroke-width: 2; }
.pendulum-facet { stroke: rgb(255 255 255 / 20%); stroke-width: 1; }
.pendulum-facet--left { fill: rgb(0 0 0 / 35%); }
.pendulum-facet--right { fill: rgb(255 255 255 / 7%); }
.pendulum-glint { stroke: #fff2c8; stroke-width: 2.5; opacity: .78; }
.pendulum-jewel { fill: #f6e8be; filter: drop-shadow(0 0 6px var(--gold)); }
.stage-star { stroke: var(--gold); stroke-width: 1.3; }

.ritual-reading {
	position: absolute;
	right: -36px;
	bottom: 60px;
	z-index: 4;
	min-width: 205px;
	padding: 17px 20px;
	border: 1px solid rgb(198 169 107 / 35%);
	background: rgb(7 7 6 / 84%);
	backdrop-filter: blur(12px);
}
.ritual-reading span { display: flex; align-items: center; gap: 9px; color: rgb(255 255 255 / 52%); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.ritual-reading span i { width: 7px; height: 7px; border-radius: 50%; background: var(--gold); box-shadow: 0 0 12px var(--gold); }
.ritual-reading strong { display: block; margin-top: 6px; font-family: var(--serif); font-size: 20px; font-weight: 400; }
.ritual-official-seal { position: absolute; left: 20px; bottom: 25px; z-index: 3; width: 100px; opacity: .75; }

.principle-track { height: 62px; }
.principle-track span { font-size: 11px; }
.principle-track i { font-size: 10px; }

.scroll-pendulum { right: 29px; gap: 16px; }
.scroll-pendulum-label { font-size: 10px; }
.scroll-pendulum-track { width: 2px; height: 205px; background: rgb(255 255 255 / 34%); }
.scroll-pendulum-weight {
	width: 68px;
	height: 84px;
	background: url("assets/images/sirius-symbol.png") center / contain no-repeat;
	clip-path: none;
	filter: invert(1);
}

.manifesto-official-symbol {
	position: absolute;
	inset: 50% auto auto 50%;
	width: 330px;
	transform: translate(-50%, -50%);
	opacity: .18;
}
.manifesto-symbol p { text-shadow: 0 1px 0 var(--white); }
.value-number { font-size: 12px; }
.value-card h3 { font-size: 20px; }
.value-card p { font-size: 15px; }

/* Symbolic scroll journey */
.symbolic-system {
	position: relative;
	padding: 160px 0 120px;
	background:
		radial-gradient(circle at 25% 40%, rgb(198 169 107 / 11%), transparent 29%),
		linear-gradient(180deg, #090908, #12100d 55%, #090908);
	color: var(--white);
	overflow: clip;
}
.symbolic-system::before { content: ""; position: absolute; inset: 0; opacity: .2; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.15'/%3E%3C/svg%3E"); }
.symbolic-background span { position: absolute; border: 1px solid rgb(198 169 107 / 9%); border-radius: 50%; }
.symbolic-background span:nth-child(1) { width: 90vw; aspect-ratio: 1; left: -55vw; top: 10%; }
.symbolic-background span:nth-child(2) { width: 60vw; aspect-ratio: 1; right: -35vw; top: 45%; }
.symbolic-background span:nth-child(3) { width: 35vw; aspect-ratio: 1; left: 37%; bottom: -15vw; }
.symbolic-heading { position: relative; z-index: 2; }
.symbolic-heading h2 { max-width: 1000px; font-size: clamp(68px, 7.4vw, 112px); }
.symbolic-heading .section-lead { color: rgb(255 255 255 / 58%); }
.symbolic-scroll { display: grid; grid-template-columns: 1.12fr .88fr; gap: clamp(70px, 9vw, 150px); position: relative; z-index: 2; }
.symbolic-portal-wrap { min-width: 0; }
.symbolic-portal {
	position: sticky;
	top: calc(var(--header-height) + 40px);
	width: min(100%, 650px);
	aspect-ratio: 1;
	margin-top: 90px;
	border-radius: 50%;
	transition: transform .7s var(--ease), filter .7s ease;
}
.portal-glow { position: absolute; inset: 26%; border-radius: 50%; background: rgb(198 169 107 / 18%); filter: blur(45px); animation: portal-heart 4s ease-in-out infinite; }
@keyframes portal-heart { 50% { transform: scale(1.35); opacity: .45; } }
.portal-ring { position: absolute; border: 1px solid rgb(198 169 107 / 35%); border-radius: 50%; }
.portal-ring--one { inset: 4%; animation: table-rotate 46s linear infinite; }
.portal-ring--two { inset: 17%; border-style: dashed; border-color: rgb(255 255 255 / 25%); animation: table-rotate-reverse 31s linear infinite; }
.portal-ring--one span { position: absolute; left: 50%; top: 50%; width: 12px; height: 12px; margin: -6px; border: 2px solid var(--gold); border-radius: 50%; background: #0b0a08; transform: rotate(var(--angle)) translateY(-299px); }
.portal-ring--one span:nth-child(1) { --angle: 0deg; }
.portal-ring--one span:nth-child(2) { --angle: 51.43deg; }
.portal-ring--one span:nth-child(3) { --angle: 102.86deg; }
.portal-ring--one span:nth-child(4) { --angle: 154.29deg; }
.portal-ring--one span:nth-child(5) { --angle: 205.72deg; }
.portal-ring--one span:nth-child(6) { --angle: 257.15deg; }
.portal-ring--one span:nth-child(7) { --angle: 308.58deg; }
.portal-spiral { position: absolute; inset: 25%; border: 2px solid transparent; border-top-color: var(--gold); border-right-color: rgb(198 169 107 / 45%); border-radius: 50%; opacity: .35; }
.portal-spiral::before { content: ""; position: absolute; inset: 14%; border: 1px solid transparent; border-bottom-color: var(--gold); border-left-color: rgb(198 169 107 / 40%); border-radius: 50%; }
.portal-spiral--one { animation: table-rotate 8s linear infinite; }
.portal-spiral--two { inset: 31%; animation: table-rotate-reverse 6s linear infinite; }
.portal-septagram { position: absolute; inset: 8%; width: 84%; height: 84%; fill: none; stroke: rgb(198 169 107 / 48%); stroke-width: 1.5; transition: opacity .7s, transform .7s var(--ease); }
.portal-logo { position: absolute; inset: 50% auto auto 50%; width: 245px; transform: translate(-50%, -50%); filter: invert(1); opacity: .11; transition: opacity .7s, transform .7s var(--ease); }
.portal-core { position: absolute; inset: 50% auto auto 50%; width: 112px; aspect-ratio: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; border: 1px solid rgb(198 169 107 / 55%); border-radius: 50%; background: rgb(9 9 8 / 82%); transform: translate(-50%, -50%); box-shadow: 0 0 45px rgb(198 169 107 / 16%); }
.portal-core strong { color: var(--gold); font-family: var(--serif); font-size: 48px; font-weight: 400; line-height: .7; }
.portal-core span { color: rgb(255 255 255 / 55%); font-size: 8px; letter-spacing: .2em; }
.portal-elements span { position: absolute; color: rgb(255 255 255 / 37%); font-family: var(--display); font-size: 10px; letter-spacing: .16em; transition: color .5s, text-shadow .5s; }
.portal-elements span:nth-child(1) { left: 50%; top: 15%; transform: translateX(-50%); }
.portal-elements span:nth-child(2) { right: 13%; top: 40%; }
.portal-elements span:nth-child(3) { right: 23%; bottom: 18%; }
.portal-elements span:nth-child(4) { left: 21%; bottom: 18%; }
.portal-elements span:nth-child(5) { left: 12%; top: 40%; }
.symbolic-portal[data-active="pendulo"] .portal-logo { opacity: .27; transform: translate(-50%, -50%) scale(1.08); }
.symbolic-portal[data-active="zero"] .portal-core { box-shadow: 0 0 65px rgb(198 169 107 / 42%); }
.symbolic-portal[data-active="elementos"] .portal-elements span { color: var(--gold); text-shadow: 0 0 16px rgb(198 169 107 / 65%); }
.symbolic-portal[data-active="septagrama"] .portal-septagram { opacity: 1; transform: scale(1.06) rotate(7deg); stroke-width: 2.5; }
.symbolic-portal[data-active="stargate"] .portal-spiral { opacity: 1; filter: drop-shadow(0 0 10px var(--gold)); }
.symbolic-chapters { padding-top: 55px; }
.symbolic-chapter { min-height: 72vh; display: flex; flex-direction: column; justify-content: center; padding: 80px 0; border-bottom: 1px solid rgb(255 255 255 / 13%); opacity: .3; transform: translateX(30px); transition: opacity .7s ease, transform .7s var(--ease); }
.symbolic-chapter.is-active { opacity: 1; transform: none; }
.symbol-number { color: var(--gold); font-size: 12px; letter-spacing: .15em; }
.symbol-glyph { margin-top: 42px; color: var(--gold); font-family: var(--serif); font-size: 48px; line-height: 1; text-shadow: 0 0 24px rgb(198 169 107 / 45%); }
.symbolic-chapter h3 { margin: 17px 0 25px; font-family: var(--serif); font-size: clamp(54px, 5vw, 78px); line-height: .95; letter-spacing: -.02em; }
.symbolic-chapter p { max-width: 530px; margin: 0; color: rgb(255 255 255 / 63%); font-size: 17px; line-height: 1.8; }

.services-logo-watermark { position: absolute; right: -11vw; top: 3%; width: min(52vw, 780px); filter: invert(1); opacity: .085; pointer-events: none; }
.services-logo-watermark { transform: translateY(var(--scroll-drift-y, 0)); }
.service-index { font-size: 12px; }
.service-title > p { font-size: 11px; }
.service-copy > p { font-size: 16px; }
.service-copy li { font-size: 11px; }
.process-dial b, .process-step div > p:first-child { font-size: 11px; }
.process-step > span { font-size: 12px; }

.space-official-symbol { position: absolute; inset: 50% auto auto 50%; z-index: 1; width: 50%; transform: translate(-50%, -50%); filter: invert(1); opacity: .2; }
.space-compass p, .space-compass > i { z-index: 2; font-size: 11px; }
.faq-list summary span { font-size: 11px; }
.contact-principles span, .contact-form label > span { font-size: 11px; }
.consent span { font-size: 10px !important; }
.footer-label { font-size: 10px; }
.footer-bottom p, .footer-bottom a { font-size: 10px; }

@media (max-width: 1180px) {
	.hero-grid { grid-template-columns: minmax(0, .9fr) minmax(490px, 1.1fr); gap: 25px; }
	.hero h1 { font-size: clamp(70px, 7.6vw, 92px); }
	.hero-instrument.hero-ritual { width: min(100%, 580px); }
	.ritual-word--right { right: -75px; }
	.ritual-word--left { left: -64px; }
	.site-nav { gap: 17px; }
	.site-nav > a:not(.nav-cta) { font-size: 13px; }
	.symbolic-scroll { grid-template-columns: 1fr .8fr; gap: 70px; }
	.portal-ring--one span { transform: rotate(var(--angle)) translateY(-25vw); }
}

@media (max-width: 900px) {
	.site-header { color: var(--ink); }
	.site-header:not(.is-scrolled) { background: rgb(247 245 241 / 93%); backdrop-filter: blur(18px); }
	.site-header .official-wordmark { color: var(--ink); }
	.wordmark-emblem img { filter: none; }
	.hero { padding-top: 135px; }
	.hero-grid { grid-template-columns: 1fr; gap: 85px; }
	.hero-copy { max-width: 720px; }
	.hero h1 { font-size: clamp(72px, 12vw, 105px); }
	.hero-instrument.hero-ritual { width: min(82vw, 650px); min-width: 0; justify-self: center; margin: 0 0 70px; }
	.ritual-official-seal { width: 90px; }
	.symbolic-heading { padding-bottom: 50px; }
	.symbolic-scroll { display: block; }
	.symbolic-portal-wrap { position: sticky; top: var(--header-height); z-index: 1; height: calc(100vh - var(--header-height)); pointer-events: none; }
	.symbolic-portal { position: absolute; top: 50%; left: 50%; width: min(78vw, 610px); margin: 0; transform: translate(-50%, -50%); }
	.symbolic-chapters { position: relative; z-index: 2; margin-top: -28vh; padding-top: 0; }
	.symbolic-chapter { min-height: 88vh; padding: 90px 8vw; background: linear-gradient(90deg, rgb(9 9 8 / 97%), rgb(9 9 8 / 74%) 72%, rgb(9 9 8 / 28%)); }
	.portal-ring--one span { transform: rotate(var(--angle)) translateY(-37vw); }
}

@media (max-width: 560px) {
	.wordmark-emblem { width: 39px; height: 48px; }
	.wordmark-emblem img { width: 57px; }
	.wordmark-name { font-size: 21px; }
	.wordmark-sub { font-size: 6px; }
	.hero { min-height: auto; padding-top: 120px; }
	.hero-brand-signature { gap: 14px; }
	.hero-brand-signature img { width: 108px; height: 102px; }
	.hero-brand-signature p { padding-left: 14px; font-size: 10px; }
	.hero h1 { font-size: clamp(52px, 14.3vw, 67px); }
	.hero-instrument.hero-ritual { width: 84vw; margin-top: 25px; }
	.ritual-word { font-size: 8px; }
	.ritual-word--right { right: -61px; }
	.ritual-word--left { left: -55px; }
	.ritual-reading { right: -12px; bottom: -45px; min-width: 180px; padding: 13px 15px; }
	.ritual-reading strong { font-size: 17px; }
	.ritual-official-seal { left: 2px; bottom: -50px; width: 76px; }
	.principle-track { height: 55px; }
	.symbolic-system { padding-top: 105px; }
	.symbolic-heading h2 { font-size: 55px; }
	.symbolic-portal-wrap { height: calc(100vh - var(--header-height)); }
	.symbolic-portal { width: 88vw; left: 50%; transform: translate(-50%, -50%); }
	.portal-ring--one span { width: 9px; height: 9px; transform: rotate(var(--angle)) translateY(-42vw); }
	.portal-logo { width: 170px; }
	.portal-core { width: 88px; }
	.portal-core strong { font-size: 39px; }
	.portal-elements span { font-size: 8px; }
	.symbolic-chapter { min-height: 88vh; margin-inline: -15px; padding: 75px 30px; background: linear-gradient(90deg, rgb(9 9 8 / 98%), rgb(9 9 8 / 78%) 78%, rgb(9 9 8 / 36%)); }
	.symbolic-chapter h3 { font-size: 52px; }
	.symbolic-chapter p { font-size: 16px; }
	.services-logo-watermark { width: 90vw; right: -36vw; }
}

@media (prefers-reduced-motion: reduce) {
	.table-rotor,
	.pendulum-assembly--ornate,
	.portal-ring,
	.portal-spiral,
	.portal-glow,
	.hero-star,
	.ritual-aura span { animation: none !important; }
}

/* ========================================================================== 
   SIRIUS 3.0 — editorial scale, focused identity and immersive scroll
   ========================================================================== */

.nav-cta,
.button {
	min-height: 56px;
	padding-inline: 29px 23px;
	border-radius: 999px;
	font-size: 14px;
}

.nav-cta { min-height: 46px; padding-inline: 23px 19px; }

.header-inner { position: relative; display: grid; grid-template-columns: 1fr 230px 1fr; }
.official-wordmark {
	position: relative;
	grid-column: 2;
	grid-row: 1;
	justify-self: center;
	flex-direction: column;
	align-items: center;
	gap: 0;
	text-align: center;
}
.wordmark-copy { align-items: center; }
.wordmark-name { font-size: 30px; letter-spacing: .34em; text-indent: .34em; }
.wordmark-sub { margin-top: 8px; font-size: 9px; letter-spacing: .31em; text-indent: .31em; }
.site-nav {
	grid-column: 1 / -1;
	grid-row: 1;
	display: grid;
	grid-template-columns: 1fr 230px 1fr;
	gap: 0;
	width: 100%;
	pointer-events: none;
}
.nav-group { display: flex; align-items: center; gap: clamp(22px, 2.4vw, 38px); pointer-events: auto; }
.nav-group--left { grid-column: 1; justify-self: start; }
.nav-group--right { grid-column: 3; justify-self: end; }
.site-nav a:not(.nav-cta) { position: relative; font-size: 14px; font-weight: 500; letter-spacing: .02em; }
.site-nav a:not(.nav-cta)::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -7px; height: 1px; background: var(--gold); transition: right .3s var(--ease); }
.site-nav a:not(.nav-cta):hover::after,
.site-nav a:not(.nav-cta).is-active::after { right: 0; }

.hero-brand-signature { margin-bottom: 12px; }
.hero-brand-signature img {
	width: clamp(245px, 21vw, 330px);
	height: clamp(235px, 20vw, 315px);
	object-position: left center;
}
.hero h1 { margin-top: -8px; }
.hero-trust span { font-size: 13px; letter-spacing: .055em; }
.hero-scroll { font-size: 11px; }

.pendulum-chain { stroke-width: 1.55; }
.pendulum-ring { stroke-width: 2; }
.pendulum-ring--inner { stroke-width: 1.2; }
.pendulum-shoulder { stroke-width: 1.5; }
.pendulum-weight-shape { stroke-width: 1.2; }
.pendulum-glint { stroke-width: 1.15; opacity: .68; }

.scroll-pendulum { right: 32px; }
.scroll-pendulum-label { font-size: 11px; }
.scroll-pendulum-track { width: 1px; }
.scroll-pendulum-weight {
	width: 34px;
	height: 34px;
	background: none;
	clip-path: none;
	filter: none;
	display: grid;
	place-items: center;
}
.scroll-pendulum-weight::before {
	content: "✦";
	color: #fff;
	font-family: var(--serif);
	font-size: 30px;
	line-height: 1;
	text-shadow: 0 0 14px rgb(255 255 255 / 55%);
}

.eyebrow { font-size: 13px; }
.section-lead { font-size: clamp(19px, 1.65vw, 23px); }

/* Approach — image, method and point of view */
.approach { overflow: clip; }
.approach-experience {
	margin-top: clamp(75px, 9vw, 130px);
	display: grid;
	grid-template-columns: minmax(0, 1.08fr) minmax(400px, .92fr);
	gap: clamp(55px, 7vw, 110px);
	align-items: start;
}
.approach-visual {
	position: sticky;
	top: calc(var(--header-height) + 40px);
	height: min(74vh, 790px);
	min-height: 620px;
	margin: 0;
	border-radius: 52px;
	overflow: hidden;
	background: #d8d1c5;
	box-shadow: 0 38px 100px rgb(22 18 13 / 14%);
	transform: translateY(var(--scroll-drift-y, 0));
}
.approach-visual::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 48%, rgb(7 7 6 / 77%) 100%);
	pointer-events: none;
}
.approach-visual img { width: 100%; height: 100%; object-fit: cover; }
.approach-visual figcaption {
	position: absolute;
	left: 42px;
	right: 42px;
	bottom: 38px;
	z-index: 1;
	margin: 0;
	color: rgb(255 255 255 / 86%);
	font-size: 16px;
	line-height: 1.65;
}
.approach-visual figcaption span {
	display: block;
	margin-bottom: 9px;
	color: var(--gold-pale);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .15em;
	text-transform: uppercase;
}
.approach-statement {
	margin: 0 0 68px;
	font-family: var(--serif);
	font-size: clamp(46px, 4.8vw, 69px);
	line-height: 1.02;
	letter-spacing: -.025em;
}
.approach-statement em { color: var(--gold); font-weight: 400; }
.approach-principle {
	display: grid;
	grid-template-columns: 60px 1fr;
	gap: 24px;
	padding: 36px 0 42px;
	border-top: 1px solid var(--mist);
}
.approach-principle:last-child { border-bottom: 1px solid var(--mist); }
.approach-principle > span { color: var(--gold); font-size: 13px; letter-spacing: .12em; }
.approach-principle h3 { margin: 0 0 14px; font-family: var(--serif); font-size: clamp(30px, 2.8vw, 40px); line-height: 1.1; }
.approach-principle p { margin: 0; color: var(--mineral); font-size: 16px; line-height: 1.8; }
.approach-quote {
	position: relative;
	margin: clamp(90px, 11vw, 160px) 0 0;
	padding: clamp(65px, 8vw, 115px);
	border-radius: 56px;
	background: #0d0d0c;
	color: var(--white);
	overflow: hidden;
}
.approach-quote::before,
.approach-quote::after {
	content: "";
	position: absolute;
	width: 540px;
	aspect-ratio: 1;
	right: -180px;
	top: -190px;
	border: 1px solid rgb(198 169 107 / 24%);
	border-radius: 50%;
}
.approach-quote::after { inset: auto auto -240px -140px; width: 440px; border-color: rgb(255 255 255 / 8%); }
.approach-quote p { position: relative; z-index: 1; margin: 0; font-family: var(--serif); font-size: clamp(50px, 6.2vw, 92px); line-height: 1.02; letter-spacing: -.025em; }
.approach-quote em { color: var(--gold); font-weight: 400; }

/* Sessions — immersive image and stacking cards */
.services { padding-top: clamp(125px, 13vw, 200px); background: #090908; }
.services::before { display: none; }
.services-atmosphere { position: absolute; inset: 0 0 auto; height: 68%; pointer-events: none; overflow: hidden; }
.services-atmosphere::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, #090908 0%, rgb(9 9 8 / 72%) 35%, rgb(9 9 8 / 12%) 75%), linear-gradient(0deg, #090908 0%, transparent 48%, rgb(9 9 8 / 32%) 100%); }
.services-atmosphere img { width: 100%; height: 100%; object-fit: cover; opacity: .62; filter: saturate(.75) contrast(1.08); }
.services .shell { position: relative; z-index: 1; }
.services-heading { min-height: 520px; align-items: start; }
.services-heading .section-lead { color: rgb(255 255 255 / 72%); }
.service-list { margin-top: 50px; border: 0; display: grid; gap: 22px; }
.service-card {
	position: sticky;
	top: calc(var(--header-height) + 22px + (var(--session-index) * 16px));
	z-index: calc(2 + var(--session-index));
	min-height: 320px;
	grid-template-columns: 145px minmax(260px, .82fr) minmax(340px, 1.18fr);
	gap: clamp(25px, 4vw, 58px);
	padding: 54px clamp(34px, 4vw, 62px);
	border: 1px solid rgb(255 255 255 / 16%);
	border-radius: 50px;
	background: rgb(19 19 17 / 94%);
	box-shadow: 0 28px 80px rgb(0 0 0 / 36%);
	backdrop-filter: blur(18px);
	overflow: hidden;
	transition: border-color .35s ease, transform .35s var(--ease), background .35s ease;
}
.service-card:nth-child(2) { background: rgb(23 22 19 / 96%); }
.service-card:nth-child(3) { background: rgb(27 25 21 / 97%); }
.service-card:nth-child(4) { background: rgb(31 28 23 / 98%); }
.service-card::before { background: radial-gradient(circle at var(--card-x, 80%) var(--card-y, 20%), rgb(198 169 107 / 18%), transparent 34%); opacity: 1; }
.service-card::after { content: "✦"; position: absolute; right: 36px; top: 28px; color: rgb(198 169 107 / 36%); font-family: var(--serif); font-size: 34px; }
.service-card:hover { padding-inline: clamp(34px, 4vw, 62px); border-color: rgb(198 169 107 / 48%); background-color: rgb(24 23 20 / 98%); transform: translateY(-4px); }
.service-index { font-size: 14px; }
.service-index i { width: 72px; }
.service-title > p { font-size: 13px; }
.service-title h3 { font-size: clamp(45px, 4.2vw, 64px); }
.service-copy > p { color: rgb(255 255 255 / 76%); font-size: 17px; line-height: 1.75; }
.service-copy li { color: rgb(255 255 255 / 55%); font-size: 13px; }
.services-foot {
	margin-top: 86px;
	padding: clamp(42px, 5vw, 70px);
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 50px;
	align-items: center;
	border-radius: 48px;
	background: var(--white);
	color: var(--ink);
}
.services-foot div > span { color: #8b7243; font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.services-foot p { max-width: 720px; margin: 12px 0 0; color: var(--ink); font-family: var(--serif); font-size: clamp(29px, 3vw, 42px); line-height: 1.12; }
.services-foot .button { white-space: nowrap; }

.space-star {
	position: absolute;
	inset: 50% auto auto 50%;
	z-index: 2;
	color: var(--gold);
	font-family: var(--serif);
	font-size: clamp(74px, 9vw, 130px);
	line-height: 1;
	transform: translate(-50%, -50%);
	text-shadow: 0 0 50px rgb(198 169 107 / 42%);
	animation: star-pulse 4.5s ease-in-out infinite;
}
.process-step div > p:first-child,
.process-step > span { font-size: 13px; }
.process-step div > p:last-child { font-size: 16px; }
.space-compass p,
.space-compass > i { font-size: 12px; }
.ethics-statement p { font-size: 15px; }
.health-note { font-size: 14px; line-height: 1.75; }

/* FAQ — living orbit and generous answers */
.faq { overflow: clip; }
.faq-grid { grid-template-columns: .72fr 1.28fr; }
.faq-intro .section-lead { font-size: 18px; }
.faq-orbit { position: relative; width: min(330px, 80%); aspect-ratio: 1; margin: 70px auto 0; transition: transform .7s var(--ease); transform: rotate(calc(var(--faq-turn, 0) * 37deg)); }
.faq-orbit::before,
.faq-orbit::after,
.faq-orbit span { content: ""; position: absolute; border: 1px solid rgb(10 10 10 / 13%); border-radius: 50%; }
.faq-orbit::before { inset: 0; }
.faq-orbit::after { inset: 20%; border-color: rgb(198 169 107 / 48%); }
.faq-orbit span:first-child { inset: 8%; border-style: dashed; }
.faq-orbit span:nth-child(2) { inset: 38%; background: rgb(198 169 107 / 8%); }
.faq-orbit i { position: absolute; inset: 50% auto auto 50%; color: var(--gold); font-size: 56px; font-style: normal; line-height: 1; transform: translate(-50%, -50%); }
.faq-orbit b { position: absolute; left: 50%; top: -6px; width: 13px; aspect-ratio: 1; border: 2px solid var(--gold); border-radius: 50%; background: var(--paper); box-shadow: 0 0 0 7px rgb(198 169 107 / 10%); }
.faq-list { border: 0; display: grid; gap: 14px; }
.faq-list details { border: 1px solid #ddd8cf; border-radius: 32px; background: rgb(255 255 255 / 58%); overflow: hidden; transition: background .35s, border-color .35s, color .35s, transform .35s var(--ease); }
.faq-list details:hover { transform: translateX(-5px); border-color: #c8b993; }
.faq-list details[open] { background: #11110f; border-color: #11110f; color: var(--white); box-shadow: 0 25px 60px rgb(10 10 10 / 10%); }
.faq-list summary { min-height: 116px; padding: 20px 32px; grid-template-columns: 48px 1fr 24px; font-size: clamp(27px, 2.5vw, 36px); }
.faq-list summary span { font-size: 13px; }
.faq-list details[open] summary i::before,
.faq-list details[open] summary i::after { background: var(--gold); }
.faq-list details > p { margin: -3px 56px 0 80px; padding-bottom: 42px; color: var(--mineral); font-size: 17px; line-height: 1.8; }
.faq-list details[open] > p { color: rgb(255 255 255 / 68%); }

.contact-principles span,
.contact-form label > span { font-size: 12px; }
.consent span { font-size: 12px !important; }
.consent a { color: var(--gold-pale); text-decoration: underline; text-underline-offset: 3px; }
.contact-form input:not([type="checkbox"]),
.contact-form select,
.contact-form textarea { font-size: 16px; }

/* Footer — two intentional logo moments: opening and closing */
.site-footer { padding: 130px 0 28px; overflow: hidden; }
.footer-intro { display: grid; grid-template-columns: .86fr 1.14fr; gap: clamp(70px, 10vw, 150px); align-items: center; padding-bottom: 120px; }
.footer-official-logo { width: min(33vw, 430px); }
.footer-invitation .footer-label { color: var(--gold); }
.footer-invitation h2 { margin: 0 0 42px; font-size: clamp(51px, 5vw, 75px); }
.footer-grid { grid-template-columns: 1fr .55fr .8fr 1.2fr; gap: clamp(35px, 5vw, 75px); padding-block: 60px 80px; border-top: 1px solid rgb(255 255 255 / 12%); }
.footer-brand > p { margin: 0; font-size: 30px; line-height: 1.25; }
.footer-label { margin: 0 0 20px; font-size: 12px; }
.footer-nav,
.footer-legal { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; }
.footer-nav a,
.footer-legal a { color: rgb(255 255 255 / 72%); font-size: 14px; transition: color .2s; }
.footer-nav a:hover,
.footer-legal a:hover { color: var(--gold); }
.footer-note > p:last-child { font-size: 14px; line-height: 1.75; }
.footer-bottom { padding-top: 28px; }
.footer-bottom p,
.footer-bottom a { font-size: 11px; }

/* Legal pages */
body.page-template-page-privacy,
body.page-template-page-terms { background: var(--paper); }
body.page-template-page-privacy .site-header,
body.page-template-page-terms .site-header { color: var(--ink); background: rgb(247 245 241 / 93%); border-color: rgb(10 10 10 / 8%); backdrop-filter: blur(18px); }
body.page-template-page-privacy .official-wordmark,
body.page-template-page-terms .official-wordmark { color: var(--ink); }
body.page-template-page-privacy .nav-cta,
body.page-template-page-terms .nav-cta { border-color: var(--ink); }
.legal-page { padding: calc(var(--header-height) + 100px) 0 140px; }
.legal-hero { max-width: 970px; padding-bottom: 75px; border-bottom: 1px solid #d8d3ca; }
.legal-hero h1 { margin: 0; font-size: clamp(66px, 8vw, 118px); }
.legal-hero > p:last-child { max-width: 760px; margin: 36px 0 0; color: var(--mineral); font-size: 20px; line-height: 1.7; }
.legal-layout { display: grid; grid-template-columns: 250px minmax(0, 790px); gap: clamp(70px, 10vw, 150px); align-items: start; margin-top: 75px; }
.legal-aside { position: sticky; top: calc(var(--header-height) + 45px); }
.legal-aside p { color: var(--mineral); font-size: 13px; letter-spacing: .1em; text-transform: uppercase; }
.legal-aside a { display: inline-flex; align-items: center; gap: 12px; margin-top: 22px; font-size: 14px; }
.legal-content section { padding: 0 0 45px; margin-bottom: 45px; border-bottom: 1px solid #ded9d0; }
.legal-content h2 { margin: 0 0 22px; font-size: clamp(35px, 3.3vw, 48px); line-height: 1.05; }
.legal-content p,
.legal-content li { color: #56544f; font-size: 17px; line-height: 1.85; }
.legal-content ul { padding-left: 21px; }
.legal-content a { color: #846a37; text-decoration: underline; text-underline-offset: 3px; }

@media (max-width: 1180px) {
	.header-inner,
	.site-nav { grid-template-columns: 1fr 200px 1fr; }
	.nav-group { gap: 16px; }
	.site-nav a:not(.nav-cta) { font-size: 13px; }
	.approach-experience { grid-template-columns: 1fr 1fr; gap: 55px; }
	.service-card { grid-template-columns: 105px minmax(230px, .8fr) 1.2fr; }
	.footer-grid { grid-template-columns: 1fr .65fr .85fr 1.1fr; }
}

@media (max-width: 900px) {
	.hero-brand-signature img { width: 220px; height: 210px; }
	.approach-experience { grid-template-columns: 1fr; }
	.approach-visual { position: relative; top: auto; height: min(75vh, 720px); }
	.approach-principles { max-width: 720px; }
	.services-heading { min-height: 440px; }
	.service-card { top: calc(var(--header-height) + 12px + (var(--session-index) * 10px)); grid-template-columns: 82px 1fr; min-height: 390px; }
	.service-copy { grid-column: 2; }
	.services-foot { grid-template-columns: 1fr; }
	.faq-grid { grid-template-columns: 1fr; gap: 70px; }
	.faq-orbit { display: none; }
	.footer-intro { grid-template-columns: 1fr 1fr; }
	.footer-official-logo { width: min(40vw, 340px); }
	.footer-grid { grid-template-columns: repeat(2, 1fr); }
	.footer-note { grid-column: auto; }
	.legal-layout { grid-template-columns: 1fr; gap: 45px; }
	.legal-aside { position: static; }
}

@media (max-width: 820px) {
	.header-inner { display: flex; justify-content: space-between; }
	.official-wordmark { position: absolute; left: 50%; transform: translateX(-50%); }
	.site-nav {
		display: flex;
		width: auto;
		grid-template-columns: none;
		pointer-events: auto;
	}
	.nav-group { display: contents; }
	.site-nav a:not(.nav-cta) {
		display: block;
		padding: 13px 0;
		border-bottom: 1px solid var(--mist);
		font-family: var(--serif);
		font-size: 36px;
		font-weight: 400;
	}
	.site-nav a:not(.nav-cta)::after { display: none; }
}

@media (max-width: 560px) {
	.wordmark-name { font-size: 22px; }
	.wordmark-sub { font-size: 7px; }
	.hero-brand-signature img { width: 205px; height: 195px; }
	.hero-trust span { font-size: 11px; }
	.approach-experience { margin-top: 58px; gap: 45px; }
	.approach-visual { min-height: 0; height: 520px; border-radius: 34px; }
	.approach-visual figcaption { left: 25px; right: 25px; bottom: 24px; font-size: 14px; }
	.approach-statement { margin-bottom: 42px; font-size: 42px; }
	.approach-principle { grid-template-columns: 38px 1fr; gap: 15px; padding-block: 28px; }
	.approach-principle h3 { font-size: 29px; }
	.approach-principle p { font-size: 15px; }
	.approach-quote { margin-top: 70px; padding: 52px 28px; border-radius: 34px; }
	.approach-quote p { font-size: 42px; }
	.services-heading { min-height: 520px; }
	.services-atmosphere { height: 50%; }
	.services-atmosphere::after { background: linear-gradient(0deg, #090908 0%, rgb(9 9 8 / 18%) 55%, rgb(9 9 8 / 44%) 100%); }
	.service-list { gap: 16px; }
	.service-card { position: relative; top: auto; min-height: 0; grid-template-columns: 46px 1fr; gap: 16px; padding: 34px 25px; border-radius: 34px; }
	.service-card:hover { padding-inline: 25px; }
	.service-card::after { right: 22px; top: 18px; font-size: 26px; }
	.service-index i { display: none; }
	.service-title { grid-column: 2; }
	.service-title h3 { font-size: 40px; }
	.service-copy { grid-column: 1 / -1; padding-top: 14px; }
	.service-copy > p { font-size: 16px; }
	.service-copy li { font-size: 11px; }
	.services-foot { margin-top: 58px; padding: 36px 26px; border-radius: 34px; gap: 30px; }
	.services-foot p { font-size: 30px; }
	.faq-list { gap: 10px; }
	.faq-list details { border-radius: 24px; }
	.faq-list details:hover { transform: none; }
	.faq-list summary { min-height: 102px; padding: 19px 20px; grid-template-columns: 31px 1fr 18px; gap: 10px; font-size: 24px; }
	.faq-list details > p { margin: -2px 28px 0 61px; padding-bottom: 32px; font-size: 16px; }
	.footer-intro { grid-template-columns: 1fr; gap: 60px; padding-bottom: 85px; }
	.footer-official-logo { width: min(78vw, 320px); }
	.footer-grid { grid-template-columns: 1fr; padding-block: 50px 65px; }
	.footer-note { grid-column: auto; }
	.footer-bottom p,
	.footer-bottom a { font-size: 10px; }
	.legal-page { padding-top: calc(var(--header-height) + 65px); }
	.legal-hero h1 { font-size: 57px; }
	.legal-hero > p:last-child { font-size: 17px; }
	.legal-content p,
	.legal-content li { font-size: 16px; }
}

/* ========================================================================== 
   SIRIUS 4.0 — clearer language, balanced type and direct section purpose
   ========================================================================== */

h2 { font-size: clamp(55px, 5.8vw, 82px); }
.section { padding-block: clamp(105px, 10vw, 155px); }
.section-heading--split { grid-template-columns: .58fr 1.42fr; }
.section-lead { font-size: clamp(18px, 1.45vw, 21px); }
.eyebrow { font-size: 13px; }

/* Header typography follows the official serif wordmark more closely. */
.wordmark-name {
	font-family: var(--serif);
	font-size: 32px;
	font-weight: 500;
	letter-spacing: .27em;
	text-indent: .27em;
}
.wordmark-sub {
	font-family: var(--serif);
	font-size: 10px;
	font-weight: 500;
	letter-spacing: .25em;
	text-indent: .25em;
}

/* More faithful faceted, inverted-triangle pendulum. */
.hero h1 { font-size: clamp(66px, 6.1vw, 96px); }
.hero-intro { max-width: 610px; }
.hero-trust span { font-size: 12px; }
.ritual-word { font-size: 12px; }
.pendulum-weight-shape { fill: url(#weightDark); stroke: #e4ce94; stroke-width: 1.7; }
.pendulum-facet--left { fill: rgb(0 0 0 / 48%); }
.pendulum-facet--right { fill: rgb(255 255 255 / 10%); }
.pendulum-facet--centre { fill: rgb(230 202 137 / 17%); stroke: rgb(255 242 205 / 37%); }
.pendulum-glint { stroke-width: 1.4; opacity: .82; }
.pendulum-assembly--ornate[data-motion="pendular"] { animation: none; }

/* The progress marker moves only vertically and uses a neutral geometric star. */
.scroll-pendulum-weight { width: 22px; height: 22px; }
.scroll-pendulum-weight::before {
	content: "";
	width: 20px;
	height: 20px;
	background: #fff;
	clip-path: polygon(50% 0, 58% 41%, 100% 50%, 58% 59%, 50% 100%, 42% 59%, 0 50%, 42% 41%);
	filter: drop-shadow(0 0 7px rgb(255 255 255 / 55%));
}

.principle-track span { font-size: 12px; }

/* Approach */
.approach-experience {
	grid-template-columns: minmax(0, 1fr) minmax(400px, 1fr);
	gap: clamp(55px, 7vw, 100px);
}
.approach-visual { height: min(70vh, 700px); min-height: 590px; }
.approach-overline {
	margin: 0 0 18px;
	color: #8a7040;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
}
.approach-statement {
	max-width: 600px;
	margin-bottom: 45px;
	font-size: clamp(43px, 4.2vw, 60px);
}
.approach-principle { padding-block: 29px 34px; }
.approach-principle h3 { font-size: clamp(30px, 2.55vw, 38px); }
.approach-principle p { font-size: 16px; }
.approach-button { margin-top: 38px; }

/* Session types */
.services-heading { min-height: 460px; }
.services-heading h2 { max-width: 860px; font-size: clamp(58px, 5.6vw, 78px); }
.service-card { grid-template-columns: 130px minmax(270px, .9fr) minmax(350px, 1.1fr); }
.service-title h3 { font-size: clamp(42px, 3.8vw, 57px); }
.service-title > p,
.service-index { font-size: 13px; }
.service-copy > p { font-size: 17px; }
.service-copy > p strong { color: var(--white); font-weight: 500; }
.service-copy li { font-size: 13px; }
.services-foot p { font-size: clamp(27px, 2.6vw, 38px); }

/* A simple three-stage process. */
.process { overflow: clip; }
.process-heading {
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(300px, .75fr);
	gap: clamp(50px, 8vw, 120px);
	align-items: end;
}
.process-heading h2 { max-width: 900px; font-size: clamp(55px, 5.5vw, 78px); }
.process-heading .section-lead { margin-bottom: 7px; }
.process-flow { position: relative; margin-top: clamp(75px, 8vw, 115px); }
.process-line {
	position: absolute;
	left: 7%;
	right: 7%;
	top: 37px;
	height: 2px;
	background: #d8d2c7;
	overflow: hidden;
}
.process-line i {
	display: block;
	width: 100%;
	height: 100%;
	background: var(--gold);
	transform: scaleX(var(--process-progress, .08));
	transform-origin: left;
	transition: transform .9s var(--ease);
}
.process-steps {
	position: relative;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}
.process-step,
.process-step + .process-step {
	min-height: 430px;
	display: block;
	padding: 0 0 38px;
	border: 1px solid #ddd7cd;
	border-radius: 38px;
	background: rgb(255 255 255 / 70%);
	overflow: hidden;
	transition: transform .45s var(--ease), border-color .45s, box-shadow .45s;
}
.process-step.is-current {
	border-color: #c8ad73;
	box-shadow: 0 28px 70px rgb(26 21 14 / 9%);
	transform: translateY(-8px);
}
.process-step > span {
	position: relative;
	z-index: 1;
	width: 74px;
	margin: 0 0 54px 30px;
	background: var(--paper);
	border-color: #c8ad73;
	font-size: 13px;
}
.process-step > div { padding-inline: clamp(28px, 3vw, 42px); }
.process-step div > p:first-child { margin-bottom: 16px; font-size: 13px; }
.process-step h3 { margin-bottom: 22px; font-size: clamp(34px, 3vw, 43px); line-height: 1.02; }
.process-step div > p:last-child { font-size: 16px; line-height: 1.8; }

/* Responsibility is now a clear, prominent section rather than fine print. */
.ethics { background: #11110f; color: var(--white); }
.ethics h2 { font-size: clamp(55px, 5.5vw, 78px); }
.ethics .section-lead { color: rgb(255 255 255 / 67%); }
.ethics-statements { border-color: rgb(255 255 255 / 15%); }
.ethics-statement { border-color: rgb(255 255 255 / 15%); }
.ethics-statement > span {
	width: 38px;
	border: 0;
	border-radius: 0;
	font-size: 12px;
	letter-spacing: .1em;
}
.ethics-statement p { color: rgb(255 255 255 / 66%); font-size: 16px; }
.ethics-statement strong { color: var(--white); }
.health-note {
	margin-top: 52px;
	padding: 24px 28px;
	border: 1px solid rgb(198 169 107 / 35%);
	border-radius: 24px;
	background: rgb(198 169 107 / 6%);
	color: rgb(255 255 255 / 62%);
	font-size: 15px;
}
.health-note span { color: var(--gold-pale); }

/* FAQ content remains rendered while closed so height and opacity can animate. */
.faq-list details { transition: background .5s ease, border-color .5s ease, color .5s ease, transform .4s var(--ease); }
.faq-list summary { font-size: clamp(26px, 2.2vw, 32px); }
.faq-list details > p,
.faq-list details:not([open]) > p {
	display: block;
	max-height: 0;
	margin: 0 56px 0 80px;
	padding: 0;
	opacity: 0;
	overflow: hidden;
	font-size: 16px;
	transition: max-height .65s var(--ease), opacity .4s ease, padding .65s var(--ease);
}
.faq-list details[open] > p {
	max-height: 420px;
	padding: 0 0 40px;
	opacity: 1;
}
.faq-answer,
.faq-list details:not([open]) > .faq-answer {
	display: grid;
	grid-template-rows: 0fr;
	opacity: 0;
	transition: grid-template-rows .62s var(--ease), opacity .42s ease;
}
.faq-list details[open] > .faq-answer { grid-template-rows: 1fr; opacity: 1; }
.sirius-enhanced .faq-answer { transition: none; }
.faq-answer > p,
.faq-list details:not([open]) .faq-answer > p,
.faq-list details[open] .faq-answer > p {
	min-height: 0;
	max-height: none;
	margin: 0 56px 0 80px;
	padding: 0;
	opacity: 1;
	overflow: hidden;
	color: var(--mineral);
	font-size: 16px;
	line-height: 1.8;
	transition: padding .62s var(--ease), color .4s ease;
}
.faq-list details[open] .faq-answer > p { padding-bottom: 40px; color: rgb(255 255 255 / 68%); }

/* Native dropdown menus use explicit light colours on every platform. */
.contact-form select { color-scheme: light; }
.contact-form select option { background: #f7f5f1; color: #11110f; }

@media (max-width: 1020px) {
	.process-steps { grid-template-columns: 1fr; gap: 18px; }
	.process-line { left: 37px; right: auto; top: 38px; bottom: 38px; width: 2px; height: auto; }
	.process-line i { width: 100%; height: 100%; transform: scaleY(var(--process-progress, .08)); transform-origin: top; }
	.process-step,
	.process-step + .process-step { min-height: 0; display: grid; grid-template-columns: 96px 1fr; padding: 0; }
	.process-step > span { grid-column: 1; margin: 0 0 0 0; align-self: start; }
	.process-step > div { grid-column: 2; padding: 34px 34px 38px; }
	.process-step.is-current { transform: translateX(6px); }
}

@media (max-width: 900px) {
	h2 { font-size: clamp(50px, 8.5vw, 64px); }
	.approach-experience { grid-template-columns: 1fr; }
	.services-heading { min-height: 410px; }
	.service-card { grid-template-columns: 82px 1fr; }
	.process-heading { grid-template-columns: 1fr; gap: 22px; }
	.ethics-statements { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 560px) {
	.section { padding-block: 82px; }
	.wordmark-name { font-size: 25px; }
	.wordmark-sub { font-size: 8px; }
	.hero h1 { font-size: clamp(50px, 13.5vw, 62px); }
	.hero-intro { font-size: 17px; }
	.hero-trust span { font-size: 11px; }
	.ritual-word { font-size: 9px; }
	.principle-track span { font-size: 11px; }
	.approach-visual { height: 500px; }
	.approach-overline { font-size: 12px; }
	.approach-statement { font-size: 39px; }
	.approach-principle h3 { font-size: 29px; }
	.approach-principle p { font-size: 16px; }
	.services-heading { min-height: 450px; }
	.services-heading h2 { font-size: 53px; }
	.service-title h3 { font-size: 36px; }
	.service-title > p,
	.service-index { font-size: 12px; }
	.service-copy li { font-size: 13px; }
	.process-heading h2,
	.ethics h2 { font-size: 50px; }
	.process-flow { margin-top: 60px; }
	.process-line { left: 27px; }
	.process-step,
	.process-step + .process-step { grid-template-columns: 66px 1fr; border-radius: 28px; }
	.process-step > span { width: 54px; }
	.process-step > div { padding: 28px 23px 31px 12px; }
	.process-step h3 { font-size: 31px; }
	.process-step div > p:last-child { font-size: 16px; }
	.process-step.is-current { transform: none; }
	.ethics-statements { grid-template-columns: 1fr; }
	.ethics-statement,
	.ethics-statement:nth-child(2) { padding: 28px 0; border-color: rgb(255 255 255 / 15%); }
	.health-note { padding: 22px; font-size: 14px; }
	.faq-list summary { font-size: 23px; }
	.faq-list details > p,
	.faq-list details:not([open]) > p,
	.faq-answer > p,
	.faq-list details:not([open]) .faq-answer > p,
	.faq-list details[open] .faq-answer > p { margin-inline: 61px 24px; font-size: 16px; }
	.footer-invitation h2 { font-size: 48px; }
}

/* ========================================================================== 
   SIRIUS 5.0 — compact carousels, interactive process and richer motion
   ========================================================================== */

/* Shared carousel language */
.carousel-toolbar {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 30px;
	margin-bottom: 24px;
}
.carousel-toolbar p { display: flex; flex-direction: column; gap: 4px; margin: 0; }
.carousel-toolbar strong { font-size: 15px; font-weight: 500; }
.carousel-toolbar p span { color: rgb(255 255 255 / 50%); font-size: 13px; }
.carousel-controls { display: flex; gap: 10px; }
.carousel-controls button {
	width: 50px;
	aspect-ratio: 1;
	display: grid;
	place-items: center;
	border: 1px solid rgb(255 255 255 / 25%);
	border-radius: 50%;
	background: transparent;
	color: inherit;
	font-size: 19px;
	cursor: pointer;
	transition: color .3s, background .3s, border-color .3s, transform .3s var(--ease), opacity .3s;
}
.carousel-controls button:hover:not(:disabled) { background: var(--gold); border-color: var(--gold); color: var(--ink); transform: scale(1.06); }
.carousel-controls button:active:not(:disabled) { transform: scale(.94); }
.carousel-controls button:disabled { opacity: .25; cursor: default; }
.carousel-progress { height: 2px; margin-top: 28px; background: rgb(255 255 255 / 14%); overflow: hidden; }
.carousel-progress i { display: block; width: 100%; height: 100%; background: var(--gold); transform: scaleX(.18); transform-origin: left; transition: transform .35s var(--ease); }
[data-carousel-track] { scrollbar-width: none; }
[data-carousel-track]::-webkit-scrollbar { display: none; }

/* Sessions: three compact cards in view instead of a tall sticky stack. */
.services { padding-block: clamp(110px, 10vw, 155px); }
.services-atmosphere { height: 52%; }
.services-heading { min-height: 310px; align-items: start; }
.services-heading h2 { font-size: clamp(55px, 5.4vw, 76px); }
.session-explorer { position: relative; }
.service-list {
	display: flex;
	gap: 18px;
	margin-top: 0;
	padding: 0 0 8px;
	overflow-x: auto;
	overscroll-behavior-inline: contain;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	cursor: grab;
}
.service-list.is-dragging { cursor: grabbing; scroll-snap-type: none; }
.service-card,
.service-card:nth-child(2),
.service-card:nth-child(3),
.service-card:nth-child(4) {
	position: relative;
	top: auto;
	z-index: auto;
	flex: 0 0 calc((100% - 36px) / 3);
	min-width: 0;
	min-height: 405px;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 0;
	padding: 30px 31px 32px;
	border-radius: 36px;
	background: rgb(20 20 18 / 94%);
	scroll-snap-align: start;
	scroll-snap-stop: always;
	box-shadow: none;
	backdrop-filter: blur(16px);
	transition: transform .42s var(--ease), border-color .42s, background .42s, box-shadow .42s;
}
.service-card:nth-child(even) { background: rgb(28 26 22 / 95%); }
.service-card:hover {
	padding-inline: 31px;
	border-color: rgb(198 169 107 / 55%);
	background: rgb(31 29 25 / 98%);
	box-shadow: 0 25px 55px rgb(0 0 0 / 24%);
	transform: translateY(-7px);
}
.service-card::after { right: 25px; top: 22px; font-size: 25px; transition: transform .5s var(--ease), color .5s; }
.service-card:hover::after { color: var(--gold); transform: rotate(45deg) scale(1.15); }
.service-index { display: flex; gap: 12px; align-items: center; min-height: 24px; padding-right: 34px; }
.service-index i { width: 30px; }
.service-index b { max-width: 135px; color: rgb(255 255 255 / 43%); font-size: 11px; font-weight: 500; letter-spacing: .1em; line-height: 1.35; text-transform: uppercase; }
.service-title { margin-top: 54px; }
.service-title > p { margin-bottom: 9px; font-size: 12px; }
.service-title h3 { font-size: clamp(37px, 3.25vw, 49px); line-height: .98; }
.service-card .service-title h3 em { color: #fff !important; }
.service-copy { margin-top: auto; padding-top: 33px; }
.service-copy > p { font-size: 16px; line-height: 1.65; }
.service-copy ul { margin-top: 19px; gap: 8px 16px; }
.service-copy li { font-size: 11px; }
.services-foot {
	position: relative;
	margin-top: 58px;
	grid-template-columns: minmax(0, 1fr) auto;
	min-height: 250px;
	padding: 48px 55px;
	border-radius: 40px;
	overflow: hidden;
	isolation: isolate;
}
.services-foot-image { position: absolute; inset: 0; z-index: -2; }
.services-foot-image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgb(255 255 255 / 98%) 8%, rgb(255 255 255 / 88%) 54%, rgb(255 255 255 / 45%) 100%); }
.services-foot-image img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 56%; opacity: .4; filter: grayscale(.25) sepia(.12); transform: scale(1.04); transition: transform 1.2s var(--ease); }
.services-foot:hover .services-foot-image img { transform: scale(1); }
.services-foot-copy { position: relative; z-index: 1; max-width: 700px; }
.services-foot-copy > span { color: #8b7243; font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.services-foot p { max-width: 650px; font-size: clamp(28px, 2.7vw, 39px); }

/* How it works: selectable phases with a changing visual field. */
.process { background: #f4f1eb; }
.process-interactive {
	margin-top: clamp(65px, 7vw, 95px);
	padding: 14px;
	border: 1px solid #d8d1c5;
	border-radius: 46px;
	background: rgb(255 255 255 / 72%);
	box-shadow: 0 35px 100px rgb(38 31 20 / 8%);
	overflow: hidden;
}
.process-nav {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 8px;
	padding: 0 0 14px;
}
.process-nav button {
	min-height: 92px;
	display: grid;
	grid-template-columns: 36px 1fr;
	grid-template-rows: auto auto;
	column-gap: 14px;
	align-content: center;
	padding: 17px 22px;
	border: 0;
	border-radius: 31px;
	background: transparent;
	color: var(--ink);
	text-align: left;
	cursor: pointer;
	transition: color .4s, background .4s, transform .35s var(--ease);
}
.process-nav button:hover { background: rgb(198 169 107 / 10%); transform: translateY(-2px); }
.process-nav button.is-active { background: var(--ink); color: var(--white); }
.process-nav button > span { grid-row: 1 / 3; align-self: center; color: var(--gold); font-size: 13px; }
.process-nav small { color: currentColor; font-size: 10px; letter-spacing: .14em; opacity: .48; text-transform: uppercase; }
.process-nav strong { font-family: var(--serif); font-size: 25px; font-weight: 400; line-height: 1.1; }
.process-stage {
	min-height: 510px;
	display: grid;
	grid-template-columns: minmax(360px, .9fr) minmax(430px, 1.1fr);
	border-radius: 35px;
	background: #0d0d0c;
	color: var(--white);
	overflow: hidden;
}
.process-stage-art { position: relative; display: grid; place-items: center; min-height: 100%; border-right: 1px solid rgb(255 255 255 / 10%); overflow: hidden; }
.process-stage-art::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 50% 50%, rgb(198 169 107 / 16%), transparent 48%); transition: transform .7s var(--ease); }
.process-radar { position: relative; width: min(62%, 330px); aspect-ratio: 1; transition: transform .8s var(--ease); }
.process-radar::before,
.process-radar::after,
.process-radar span { content: ""; position: absolute; border: 1px solid rgb(198 169 107 / 30%); border-radius: 50%; }
.process-radar::before { inset: 0; }
.process-radar::after { inset: 19%; border-style: dashed; }
.process-radar span:nth-child(1) { inset: 38%; background: rgb(198 169 107 / 10%); }
.process-radar span:nth-child(2) { left: 50%; top: -10%; width: 1px; height: 120%; border: 0; border-radius: 0; background: rgb(255 255 255 / 12%); }
.process-radar span:nth-child(3) { top: 50%; left: -10%; width: 120%; height: 1px; border: 0; border-radius: 0; background: rgb(255 255 255 / 12%); }
.process-radar i { position: absolute; left: 50%; top: 3%; width: 2px; height: 47%; background: linear-gradient(var(--gold-pale), var(--gold)); transform-origin: 50% 100%; transition: transform .85s var(--ease), height .85s var(--ease); }
.process-radar i::after { content: ""; position: absolute; left: 50%; bottom: -19px; width: 24px; height: 38px; background: var(--gold); clip-path: polygon(50% 100%, 0 0, 100% 0); transform: translateX(-50%); }
.process-radar b { position: absolute; inset: 50% auto auto 50%; width: 9px; aspect-ratio: 1; border-radius: 50%; background: var(--gold-pale); box-shadow: 0 0 25px var(--gold); transform: translate(-50%, -50%); }
.process-stage-art > p { position: absolute; left: 30px; bottom: 25px; margin: 0; color: rgb(255 255 255 / 42%); font-size: 11px; letter-spacing: .16em; }
[data-process-phase="1"] .process-radar { transform: rotate(23deg) scale(.92); }
[data-process-phase="1"] .process-radar i { height: 54%; transform: rotate(16deg); }
[data-process-phase="2"] .process-radar { transform: rotate(-18deg) scale(.82); }
[data-process-phase="2"] .process-radar i { height: 38%; transform: rotate(-24deg); }
.process-panels { position: relative; display: grid; align-items: center; min-width: 0; padding: clamp(50px, 6vw, 85px); }
.process-panel { grid-area: 1 / 1; max-width: 650px; }
.process-panel[hidden] { display: none; }
.process-panel > p:first-child { margin-bottom: 19px; color: var(--gold); font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.process-panel h3 { margin: 0 0 25px; font-family: var(--serif); font-size: clamp(42px, 4.2vw, 61px); line-height: .98; letter-spacing: -.02em; }
.process-panel h3 + p { max-width: 590px; color: rgb(255 255 255 / 65%); font-size: 17px; line-height: 1.8; }
.process-panel ul { display: flex; gap: 12px 25px; flex-wrap: wrap; margin: 35px 0 0; padding: 0; list-style: none; }
.process-panel li { color: rgb(255 255 255 / 48%); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; }
.process-panel li::before { content: "✦"; margin-right: 8px; color: var(--gold); }
.process-stage-progress { display: flex; align-items: center; gap: 20px; padding: 18px 26px 7px; }
.process-stage-progress::before { content: ""; flex: 1; height: 2px; background: #ddd6ca; }
.process-stage-progress i { position: absolute; width: calc((100% - 82px) * var(--process-tab-progress, .333)); height: 2px; background: var(--gold); transition: width .55s var(--ease); }
.process-stage-progress span { min-width: 34px; color: var(--mineral); font-size: 11px; letter-spacing: .1em; }

/* Responsibility: tactile swipe cards */
.ethics-explorer { margin-top: 72px; }
.carousel-toolbar--light p span { color: rgb(255 255 255 / 46%); }
.ethics-statements {
	display: flex;
	gap: 18px;
	margin-top: 0;
	padding: 0 0 7px;
	border: 0;
	overflow-x: auto;
	overscroll-behavior-inline: contain;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	cursor: grab;
}
.ethics-statements.is-dragging { cursor: grabbing; scroll-snap-type: none; }
.ethics-statement,
.ethics-statement:nth-child(2) {
	position: relative;
	flex: 0 0 calc((100% - 36px) / 3);
	min-height: 360px;
	padding: 31px 32px 35px;
	border: 1px solid rgb(255 255 255 / 14%);
	border-radius: 34px;
	background: #181816;
	scroll-snap-align: start;
	overflow: hidden;
	transition: transform .42s var(--ease), border-color .42s, background .42s;
}
.ethics-statement::before { content: ""; position: absolute; inset: auto -45px -80px auto; width: 190px; aspect-ratio: 1; border: 1px solid rgb(198 169 107 / 11%); border-radius: 50%; transition: transform .6s var(--ease); }
.ethics-statement:hover { border-color: rgb(198 169 107 / 48%); background: #1d1c19; transform: translateY(-7px); }
.ethics-statement:hover::before { transform: scale(1.2); }
.ethics-statement > span { display: block; color: var(--gold); font-size: 12px; }
.ethics-statement > i { display: block; margin-top: 42px; color: var(--gold-pale); font-family: var(--serif); font-size: 48px; font-style: normal; line-height: 1; }
.ethics-statement h3 { margin: 26px 0 16px; font-family: var(--serif); font-size: 34px; line-height: 1; }
.ethics-statement p { margin: 0; color: rgb(255 255 255 / 59%); font-size: 15px; line-height: 1.75; }
.carousel-progress--light { background: rgb(255 255 255 / 12%); }
.health-note { margin-top: 42px; }

/* Small global details */
.eyebrow::after { transition: width .6s var(--ease), opacity .4s; }
.eyebrow:hover::after { width: 70px; opacity: .8; }
.section h2 em { transition: text-shadow .5s; }
.section h2:hover em { text-shadow: 0 8px 28px rgb(198 169 107 / 16%); }
.button { overflow: hidden; position: relative; }
.button::before { content: ""; position: absolute; inset: 0; background: rgb(255 255 255 / 20%); transform: translateX(-105%) skewX(-18deg); transition: transform .6s var(--ease); }
.button:hover::before { transform: translateX(105%) skewX(-18deg); }
.approach-visual img { transition: transform 1.4s var(--ease), filter .8s; }
.approach-visual:hover img { transform: scale(1.035); filter: contrast(1.03); }

@media (max-width: 1100px) {
	.service-card,
	.service-card:nth-child(2),
	.service-card:nth-child(3),
	.service-card:nth-child(4) { flex-basis: calc((100% - 18px) / 2); }
	.process-stage { grid-template-columns: .82fr 1.18fr; }
	.ethics-statement,
	.ethics-statement:nth-child(2) { flex-basis: calc((100% - 18px) / 2); }
}

@media (max-width: 820px) {
	.services-heading { min-height: 285px; }
	.process-stage { grid-template-columns: 1fr; }
	.process-stage-art { min-height: 320px; border-right: 0; border-bottom: 1px solid rgb(255 255 255 / 10%); }
	.process-radar { width: min(46vw, 250px); }
	.process-panels { min-height: 410px; }
}

@media (max-width: 620px) {
	.carousel-toolbar { align-items: center; margin-bottom: 18px; }
	.carousel-toolbar p span { font-size: 12px; }
	.carousel-controls button { width: 44px; }
	.services { padding-top: 92px; }
	.services-heading { min-height: 285px; }
	.services-heading .section-lead { font-size: 17px; }
	.service-card,
	.service-card:nth-child(2),
	.service-card:nth-child(3),
	.service-card:nth-child(4) {
		flex-basis: 78%;
		min-height: 375px;
		padding: 27px 26px 29px;
		border-radius: 31px;
		align-self: stretch;
	}
	.service-index { gap: 8px; padding-right: 32px; }
	.service-index i { width: 18px; }
	.service-index b { max-width: 128px; font-size: 10px; letter-spacing: .075em; }
	.service-card:hover { padding-inline: 26px; transform: none; }
	.service-title { margin-top: 47px; }
	.service-title h3 { font-size: 39px; }
	.service-copy { padding-top: 29px; }
	.service-copy > p { font-size: 16px; }
	.service-copy li { font-size: 11px; }
	.services-foot { min-height: 350px; grid-template-columns: 1fr; align-content: end; padding: 35px 27px; }
	.services-foot-image::after { background: linear-gradient(0deg, rgb(255 255 255 / 98%) 4%, rgb(255 255 255 / 87%) 55%, rgb(255 255 255 / 35%) 100%); }
	.services-foot-image img { object-position: 50% 35%; opacity: .45; }
	.services-foot p { font-size: 30px; }
	.services-foot .button { justify-self: start; }
	.process-interactive { margin-inline: -5px; padding: 8px; border-radius: 32px; }
	.process-nav { gap: 5px; overflow-x: auto; scrollbar-width: none; }
	.process-nav button { min-width: 105px; min-height: 82px; display: flex; flex-direction: column; gap: 3px; padding: 13px 14px; border-radius: 25px; }
	.process-nav button > span { font-size: 11px; }
	.process-nav small { display: none; }
	.process-nav strong { font-size: 20px; }
	.process-stage { border-radius: 27px; }
	.process-stage-art { min-height: 240px; }
	.process-radar { width: min(52vw, 205px); }
	.process-stage-art > p { left: 21px; bottom: 17px; }
	.process-panels { min-height: 415px; padding: 36px 27px; }
	.process-panel h3 { font-size: 40px; }
	.process-panel h3 + p { font-size: 16px; }
	.process-panel ul { margin-top: 28px; }
	.process-stage-progress { padding-inline: 18px; }
	.ethics-explorer { margin-top: 52px; }
	.ethics-statement,
	.ethics-statement:nth-child(2) { flex-basis: 86%; min-height: 340px; padding: 28px; }
	.ethics-statement:hover { transform: none; }
	.ethics-statement > i { margin-top: 36px; }
	.ethics-statement h3 { font-size: 32px; }
}

/* ========================================================================== 
   SIRIUS 6.0 — desktop session grid, phase-specific motion and card stack
   ========================================================================== */

.services-heading {
	display: block;
	min-height: 0;
	margin-bottom: clamp(55px, 6vw, 85px);
}
.services-heading > div { max-width: 900px; }
.services-heading .section-lead { max-width: 660px; margin: 30px 0 0; color: rgb(255 255 255 / 65%); }
.session-explorer { position: relative; perspective: 1200px; }
.session-grid-signature {
	position: absolute;
	right: -10px;
	top: -88px;
	margin: 0;
	color: rgb(255 255 255 / 4%);
	font-family: var(--serif);
	font-size: clamp(120px, 16vw, 230px);
	letter-spacing: .13em;
	line-height: .7;
	pointer-events: none;
}

@media (min-width: 821px) {
	.session-explorer > .carousel-toolbar,
	.session-explorer > .carousel-progress { display: none; }
	.service-list {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 18px;
		overflow: visible;
		scroll-snap-type: none;
		cursor: default;
	}
	.service-card,
	.service-card:nth-child(2),
	.service-card:nth-child(3),
	.service-card:nth-child(4) {
		min-height: 355px;
		padding: 28px 29px 30px;
		border-radius: 32px;
	}
	.service-card:hover { padding-inline: 29px; }
	.service-title { margin-top: 43px; }
	.service-title h3 { font-size: clamp(38px, 3.3vw, 49px); }
	.service-copy { padding-top: 27px; }
	.sirius-enhanced .session-explorer:not(.is-grid-visible) .service-card {
		opacity: 0;
		clip-path: inset(14% 0 0 round 32px);
		transform: translateY(62px) rotateX(5deg);
	}
	.sirius-enhanced .session-explorer.is-grid-visible .service-card {
		opacity: 1;
		clip-path: inset(0 round 32px);
		transform: translateY(0) rotateX(0);
		transition: opacity .75s var(--ease), clip-path .9s var(--ease), transform .9s var(--ease), border-color .4s, background .4s, box-shadow .4s;
		transition-delay: calc(var(--session-index) * 75ms);
	}
	.sirius-enhanced .session-explorer.is-grid-visible .service-card:hover {
		transform: translateY(-7px) rotateX(0);
		transition-delay: 0ms;
	}
}

/* One distinct visual language for each process phase. */
.process-stage-art { isolation: isolate; }
.process-stage-art::before { z-index: -1; }
.process-visual {
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	opacity: 0;
	transform: scale(.86) translateY(18px);
	transition: opacity .55s ease, transform .75s var(--ease);
	pointer-events: none;
}
[data-process-phase="0"] .process-visual--request,
[data-process-phase="1"] .process-visual--session,
[data-process-phase="2"] .process-visual--close { opacity: 1; transform: scale(1) translateY(0); }

.request-orbit { position: absolute; width: min(68%, 350px); aspect-ratio: 1; }
.request-orbit::before,
.request-orbit::after { content: ""; position: absolute; border: 1px solid rgb(198 169 107 / 24%); border-radius: 50%; }
.request-orbit::before { inset: 0; animation: request-breathe 3.2s ease-in-out infinite; }
.request-orbit::after { inset: 22%; border-style: dashed; animation: table-rotate 22s linear infinite; }
.request-orbit i { position: absolute; width: 10px; aspect-ratio: 1; border-radius: 50%; background: var(--gold); box-shadow: 0 0 16px rgb(198 169 107 / 65%); }
.request-orbit i:first-child { left: 11%; top: 20%; animation: request-dot 3.8s ease-in-out infinite; }
.request-orbit i:nth-child(2) { right: 8%; bottom: 24%; animation: request-dot 3.8s -1.7s ease-in-out infinite; }
.request-orbit b { position: absolute; inset: 50% auto auto 50%; width: 7px; aspect-ratio: 1; border-radius: 50%; background: var(--gold-pale); transform: translate(-50%, -50%); }
.request-card {
	position: relative;
	z-index: 1;
	width: min(52%, 255px);
	padding: 33px 29px;
	border: 1px solid rgb(255 255 255 / 24%);
	border-radius: 24px;
	background: rgb(18 18 16 / 76%);
	box-shadow: 0 25px 60px rgb(0 0 0 / 28%);
	animation: request-float 4.2s ease-in-out infinite;
}
.request-card span { display: block; height: 1px; margin: 10px 0; background: rgb(255 255 255 / 28%); }
.request-card span:first-child { width: 45%; background: var(--gold); }
.request-card span:nth-child(2) { width: 83%; }
.request-card span:nth-child(3) { width: 66%; }
.request-card i { position: absolute; right: 20px; bottom: 16px; color: var(--gold); font-style: normal; }
@keyframes request-breathe { 50% { transform: scale(1.06); opacity: .45; } }
@keyframes request-dot { 50% { transform: scale(1.8); opacity: .35; } }
@keyframes request-float { 50% { transform: translateY(-10px) rotate(.7deg); } }

.session-rings { position: absolute; width: min(70%, 365px); aspect-ratio: 1; }
.session-rings span { position: absolute; border: 1px solid rgb(198 169 107 / 28%); border-radius: 50%; }
.session-rings span:first-child { inset: 0; animation: table-rotate 28s linear infinite; border-style: dashed; }
.session-rings span:nth-child(2) { inset: 19%; border-color: rgb(255 255 255 / 17%); }
.session-rings span:nth-child(3) { inset: 39%; background: rgb(198 169 107 / 8%); box-shadow: 0 0 45px rgb(198 169 107 / 12%); }
.session-rings::before,
.session-rings::after { content: ""; position: absolute; z-index: 1; background: rgb(255 255 255 / 14%); }
.session-rings::before { left: 50%; top: -9%; width: 1px; height: 118%; }
.session-rings::after { top: 50%; left: -9%; height: 1px; width: 118%; }
.session-pendulum { position: absolute; z-index: 2; left: 50%; top: calc(50% - 264px); width: 120px; height: 285px; margin-left: -60px; transform-origin: 50% 0; animation: process-pendulum 3.7s cubic-bezier(.44,.02,.56,.98) infinite; }
.session-pendulum i { position: absolute; left: 50%; top: 0; width: 1px; height: 145px; background: var(--gold-pale); }
.session-pendulum b { position: absolute; left: 50%; top: 140px; width: 54px; height: 124px; background: linear-gradient(90deg, #6f5830, #ead59b 48%, #70562b); clip-path: polygon(50% 100%, 0 0, 100% 0); transform: translateX(-50%); filter: drop-shadow(0 8px 15px rgb(0 0 0 / 35%)); }
@keyframes process-pendulum { 0%,100% { transform: rotate(-8deg); } 46% { transform: rotate(11deg); } 72% { transform: rotate(4deg); } }

.close-rays { position: absolute; width: min(69%, 350px); aspect-ratio: 1; animation: close-turn 18s linear infinite; }
.close-rays span { position: absolute; inset: 50% auto auto 50%; width: 118%; height: 1px; background: linear-gradient(90deg, transparent, rgb(198 169 107 / 35%), transparent); transform: translate(-50%, -50%) rotate(var(--ray)); }
.close-rays span:first-child { --ray: 0deg; }
.close-rays span:nth-child(2) { --ray: 45deg; }
.close-rays span:nth-child(3) { --ray: 90deg; }
.close-rays span:nth-child(4) { --ray: 135deg; }
.close-ring {
	position: relative;
	z-index: 2;
	width: min(48%, 230px);
	aspect-ratio: 1;
	display: grid;
	place-items: center;
	border: 1px solid var(--gold);
	border-radius: 50%;
	box-shadow: 0 0 0 30px rgb(198 169 107 / 5%), 0 0 0 65px rgb(198 169 107 / 3%);
	animation: close-complete 3.5s ease-in-out infinite;
}
.close-ring::before { content: ""; position: absolute; inset: 16%; border: 1px dashed rgb(255 255 255 / 22%); border-radius: 50%; animation: table-rotate-reverse 12s linear infinite; }
.close-ring i { color: var(--gold-pale); font-family: var(--serif); font-size: 64px; font-style: normal; }
@keyframes close-turn { to { transform: rotate(360deg); } }
@keyframes close-complete { 50% { transform: scale(1.045); box-shadow: 0 0 0 38px rgb(198 169 107 / 6%), 0 0 0 75px rgb(198 169 107 / 2%); } }

/* A physical, overlapping responsibility deck. */
.ethics-explorer { max-width: 1120px; margin-inline: auto; }
.ethics-stack {
	position: relative;
	height: 470px;
	margin: 10px auto 0;
	outline: 0;
	touch-action: pan-y;
	cursor: grab;
}
.ethics-stack.is-stack-dragging { cursor: grabbing; }
.ethics-stack.is-stack-dragging .ethics-statement.is-active { transition: none; }
.ethics-stack .ethics-statement,
.ethics-stack .ethics-statement:nth-child(2) {
	position: absolute;
	left: 50%;
	top: 0;
	width: min(78%, 780px);
	height: 390px;
	min-height: 0;
	display: block;
	padding: 46px 54px;
	border-radius: 40px;
	background: color-mix(in srgb, #171715 calc(100% - var(--stack-position, 0) * 5%), #2d281f);
	transform: translateX(calc(-50% + var(--stack-position, 0) * 22px)) translateY(calc(var(--stack-position, 0) * 24px)) rotate(calc(var(--stack-position, 0) * 1.1deg)) scale(calc(1 - var(--stack-position, 0) * .035));
	transform-origin: 50% 100%;
	z-index: calc(10 - var(--stack-position, 0));
	opacity: calc(1 - var(--stack-position, 0) * .13);
	box-shadow: 0 30px 70px rgb(0 0 0 / calc(.28 - var(--stack-position, 0) * .04));
	cursor: pointer;
	transition: transform .48s var(--ease), opacity .32s ease, border-color .42s ease, background .42s ease, box-shadow .46s ease;
}
.ethics-stack .ethics-statement::before { width: 250px; right: -70px; bottom: -125px; }
.ethics-stack .ethics-statement > span { position: absolute; left: 28px; top: 26px; }
.ethics-card-content {
	height: 100%;
	display: grid;
	grid-template-columns: 90px minmax(0, 1fr);
	gap: 33px;
	align-items: center;
}
.ethics-card-content > i { margin: 0; color: var(--gold-pale); font-family: var(--serif); font-size: 70px; font-style: normal; line-height: 1; text-align: center; }
.ethics-card-content h3 { margin: 0 0 20px; font-family: var(--serif); font-size: clamp(44px, 4.2vw, 62px); font-weight: 400; line-height: 1; }
.ethics-card-content p { max-width: 570px; margin: 0; color: rgb(255 255 255 / 59%); font-size: 17px; line-height: 1.75; }
.ethics-stack .ethics-statement.is-active { border-color: rgb(198 169 107 / 50%); }
.ethics-stack .ethics-statement.is-leaving { pointer-events: none; transform: translateX(-145%) translateY(-15px) rotate(-8deg) scale(.93); opacity: 0; }
.ethics-stack .ethics-statement.is-leaving-reverse { pointer-events: none; transform: translateX(55%) translateY(-15px) rotate(8deg) scale(.93); opacity: 0; }
.ethics-stack-status { display: flex; align-items: center; justify-content: center; gap: 22px; margin-top: 4px; }
.ethics-stack-status > span { color: rgb(255 255 255 / 45%); font-size: 11px; letter-spacing: .12em; }
.ethics-stack-status > div { display: flex; gap: 8px; }
.ethics-stack-status button { width: 8px; aspect-ratio: 1; padding: 0; border: 0; border-radius: 50%; background: rgb(255 255 255 / 21%); cursor: pointer; transition: width .35s var(--ease), background .35s; }
.ethics-stack-status button.is-active { width: 28px; border-radius: 999px; background: var(--gold); }

/* Refined tactile feedback for everything clickable. */
:where(button, .button, .nav-cta, .text-link, summary, [data-stack-card]) { -webkit-tap-highlight-color: transparent; }
:where(button, .button, .nav-cta, .text-link, summary, [data-stack-card]):focus-visible { outline: 2px solid var(--gold); outline-offset: 4px; }
:where(button, .button, .nav-cta, .text-link, summary).is-pressed { transform: scale(.985) !important; transition-duration: .22s !important; }
.process-nav button::after { content: ""; grid-column: 1 / -1; width: 0; height: 1px; margin-top: 8px; background: var(--gold); transition: width .45s var(--ease); }
.process-nav button.is-active::after { width: 100%; }
.carousel-controls button::before { content: ""; position: absolute; inset: 50%; border-radius: 50%; background: rgb(198 169 107 / 20%); transform: translate(-50%, -50%) scale(0); transition: transform .35s, inset .35s; }
.carousel-controls button { position: relative; overflow: hidden; }
.carousel-controls button:active::before { inset: 0; transform: translate(0) scale(1); }

@media (max-width: 820px) {
	.session-grid-signature { display: none; }
	.session-explorer > .carousel-toolbar { display: flex; }
	.session-explorer > .carousel-progress { display: block; }
	.service-list {
		display: flex;
		align-items: stretch;
		gap: 14px;
		padding: 0 58px 0 0;
		overflow-x: auto;
		overflow-y: hidden;
		overscroll-behavior-inline: contain;
		scroll-padding-inline: 0 58px;
		scroll-snap-type: x proximity;
		cursor: grab;
		user-select: none;
		-webkit-user-select: none;
		-webkit-overflow-scrolling: touch;
		touch-action: pan-x pan-y;
	}
	.service-card { scroll-snap-stop: normal; }
	.service-list.is-dragging .service-card { transform: none !important; }
	.ethics-stack { height: 440px; }
	.ethics-stack .ethics-statement,
	.ethics-stack .ethics-statement:nth-child(2) { width: min(82%, 650px); }
}

@media (max-width: 620px) {
	.services-heading { margin-bottom: 45px; }
	.services-heading .section-lead { margin-top: 24px; }
	.ethics-stack { height: 430px; }
	.ethics-stack .ethics-statement,
	.ethics-stack .ethics-statement:nth-child(2) {
		left: 45%;
		width: 88%;
		height: 355px;
		display: block;
		padding: 35px 29px;
		border-radius: 31px;
		transform: translateX(calc(-50% + var(--stack-position, 0) * 15px)) translateY(calc(var(--stack-position, 0) * 21px)) rotate(calc(var(--stack-position, 0) * 1deg)) scale(calc(1 - var(--stack-position, 0) * .03));
	}
	.ethics-card-content { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 0; }
	.ethics-card-content > i { margin: 0 0 23px; font-size: 46px; text-align: left; }
	.ethics-card-content h3 { margin: 0 0 15px; font-size: 35px; }
	.ethics-card-content p { font-size: 16px; }
	.ethics-stack .ethics-statement.is-leaving { transform: translateX(-135%) rotate(-7deg) scale(.94); }
	.ethics-stack .ethics-statement.is-leaving-reverse { transform: translateX(45%) rotate(7deg) scale(.94); }
	.request-card { width: 56%; }
	.process-visual--session .session-rings { width: 66%; }
	.session-pendulum { left: 50%; top: calc(50% - 112px); width: 66px; height: 116px; margin-left: -33px; }
	.session-pendulum i { height: 64px; }
	.session-pendulum b { top: 62px; width: 34px; height: 50px; }
	.close-ring { width: 45%; }
}

/* Keep the public header attached to the viewport top on phones and tablets.
   The WordPress toolbar is hidden only on the front end at these widths. */
@media (max-width: 900px) {
	html { margin-top: 0 !important; }
	body.admin-bar #wpadminbar { display: none !important; }
	body.admin-bar .site-header,
	body.admin-bar .site-progress,
	.site-header,
	.site-progress { top: 0 !important; }
	.site-header { position: fixed; inset-inline: 0; }
	.header-inner {
		height: calc(var(--header-height) + env(safe-area-inset-top, 0px));
		padding-top: env(safe-area-inset-top, 0px);
	}
	.approach .section-heading--split {
		grid-template-columns: minmax(0, 1fr);
		gap: 0;
	}
	.approach .section-heading--split .eyebrow { margin-bottom: 25px; }
	.approach .section-heading--split > div { width: 100%; }
}

/* The three explanations read as one continuous list; section and process
   numbering already provide the surrounding orientation. */
.approach-principle {
	display: block;
	padding-inline: 0;
}

/* FAQ state changes are synchronised with the measured container height in JS.
   Colour, content and spacing therefore start and finish together. */
.faq-list details {
	transition: background-color .52s var(--ease), border-color .52s var(--ease), color .52s var(--ease), box-shadow .52s var(--ease);
}
.faq-list details:hover {
	transform: none;
	border-color: #c8b993;
	box-shadow: 0 12px 34px rgb(28 23 16 / 6%);
}
.faq-list details.is-expanded {
	background: #11110f;
	border-color: #11110f;
	color: var(--white);
	box-shadow: 0 25px 60px rgb(10 10 10 / 10%);
}
.faq-list details[open]:not(.is-expanded) {
	background: rgb(255 255 255 / 58%);
	border-color: #ddd8cf;
	color: var(--ink);
	box-shadow: none;
}
.faq-list details.is-expanded summary i::before,
.faq-list details.is-expanded summary i::after { background: var(--gold); }
.faq-list details[open]:not(.is-expanded) summary i::before,
.faq-list details[open]:not(.is-expanded) summary i::after { background: var(--ink); }
.faq-list details.is-expanded summary i::after { transform: rotate(0); }
.faq-list details:not(.is-expanded) summary i::after { transform: rotate(90deg); }
.sirius-enhanced .faq-list details .faq-answer {
	display: grid;
	grid-template-rows: 1fr;
	opacity: 0;
	transform: translateY(-3px);
	transition: opacity .34s ease, transform .42s var(--ease);
}
.sirius-enhanced .faq-list details.is-expanded .faq-answer {
	opacity: 1;
	transform: translateY(0);
}
.faq-answer > p,
.faq-list details[open] .faq-answer > p,
.faq-list details:not([open]) .faq-answer > p {
	padding-bottom: 40px;
	transition: color .52s var(--ease);
}
.faq-list details.is-expanded .faq-answer > p {
	color: rgb(255 255 255 / 68%);
}
.faq-list summary.is-pressed { transform: none !important; }
.faq-list summary i::before,
.faq-list summary i::after { transition: transform .5s var(--ease), background-color .5s var(--ease); }

/* Full mobile navigation and comfortably sized touch targets. */
@media (max-width: 820px) {
	.menu-toggle {
		min-width: 44px;
		min-height: 44px;
		justify-content: center;
		padding: 6px 10px;
		margin-left: -10px;
	}
	.site-nav {
		top: 0;
		right: 0;
		bottom: auto;
		left: 0;
		height: 100dvh;
		min-height: 100vh;
		max-height: 100dvh;
		overflow-y: auto;
		overscroll-behavior: contain;
		transition: opacity .3s ease, visibility 0s linear .28s, transform .3s var(--ease);
	}
	.menu-open .site-nav {
		visibility: visible;
		transition-delay: 0s;
	}
}

.ethics-stack-status > div { gap: 0; }
.ethics-stack-status button,
.ethics-stack-status button.is-active {
	position: relative;
	width: 44px;
	height: 44px;
	padding: 0;
	border-radius: 0;
	background: transparent;
	transition: none;
}
.ethics-stack-status button::before {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	width: 8px;
	height: 8px;
	border-radius: 999px;
	background: rgb(255 255 255 / 21%);
	transform: translate(-50%, -50%);
	transition: width .35s var(--ease), background-color .35s ease;
}
.ethics-stack-status button.is-active::before {
	width: 28px;
	background: var(--gold);
}
.consent input {
	flex: 0 0 20px;
	width: 20px;
	height: 20px;
}

/* ========================================================================== 
   SIRIUS status pages — maintenance and coming soon
   ========================================================================== */
.sirius-special-page { overflow-x: hidden; }
.sirius-special-page.admin-bar .special-screen { min-height: calc(100dvh - 32px); }
.special-screen {
	position: relative;
	min-height: 100svh;
	min-height: 100dvh;
	display: flex;
	flex-direction: column;
	padding: clamp(28px, 4vw, 64px) max(24px, env(safe-area-inset-right)) max(25px, env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left));
	overflow: hidden;
}
.special-screen--maintenance { background: #0b0b0a; color: var(--white); }
.special-screen--coming { background: #f4f0e8; color: #11110f; }
.special-header,
.special-footer {
	position: relative;
	z-index: 4;
	width: min(100%, 1480px);
	margin-inline: auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 30px;
}
.special-logo { width: clamp(145px, 11vw, 190px); height: auto; }
.special-logo--ink { filter: invert(1); }
.special-state {
	display: inline-flex;
	align-items: center;
	gap: 11px;
	margin: 0;
	color: rgb(255 255 255 / 57%);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: .14em;
	text-transform: uppercase;
}
.special-state i { width: 7px; height: 7px; border-radius: 50%; background: var(--gold); box-shadow: 0 0 0 7px rgb(198 169 107 / 9%); animation: special-pulse 2.6s ease-in-out infinite; }
.special-state--ink { color: rgb(17 17 15 / 57%); }
.special-layout {
	position: relative;
	z-index: 2;
	width: min(100%, 1480px);
	margin: auto;
}
.special-layout--maintenance {
	display: grid;
	grid-template-columns: minmax(0, .95fr) minmax(420px, 1.05fr);
	gap: clamp(70px, 9vw, 155px);
	align-items: center;
	padding-block: clamp(70px, 8vh, 120px);
}
.special-copy { max-width: 740px; }
.special-kicker {
	display: flex;
	align-items: center;
	gap: 17px;
	margin: 0 0 35px;
	color: var(--gold);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .17em;
	text-transform: uppercase;
}
.special-kicker::after { content: ""; width: 65px; height: 1px; background: currentColor; opacity: .55; }
.special-copy h1 {
	margin: 0;
	font-family: var(--serif);
	font-size: clamp(62px, 6.6vw, 112px);
	font-weight: 400;
	line-height: .91;
	letter-spacing: -.045em;
}
.special-copy h1 em { color: var(--gold); font-weight: 400; }
.special-lead {
	max-width: 670px;
	margin: clamp(34px, 4vw, 54px) 0 0;
	color: rgb(255 255 255 / 58%);
	font-size: clamp(17px, 1.35vw, 21px);
	line-height: 1.8;
}
.special-actions { display: flex; align-items: center; gap: 28px; margin-top: 43px; }
.special-actions > span { max-width: 230px; color: rgb(255 255 255 / 37%); font-size: 12px; line-height: 1.65; }
.special-reload { cursor: pointer; border-color: var(--gold); }
.special-instrument {
	position: relative;
	width: min(100%, 620px);
	aspect-ratio: 1;
	justify-self: end;
	display: grid;
	place-items: center;
}
.special-field { position: absolute; inset: 8%; border: 1px solid rgb(198 169 107 / 19%); border-radius: 50%; }
.special-field::before,
.special-field::after,
.special-field span { content: ""; position: absolute; border: 1px solid rgb(255 255 255 / 9%); border-radius: 50%; }
.special-field::before { inset: 14%; }
.special-field::after { inset: 31%; border-color: rgb(198 169 107 / 25%); }
.special-field span:first-child { left: 50%; top: -8%; width: 1px; height: 116%; border: 0; border-radius: 0; background: rgb(255 255 255 / 9%); }
.special-field span:nth-child(2) { top: 50%; left: -8%; width: 116%; height: 1px; border: 0; border-radius: 0; background: rgb(255 255 255 / 9%); }
.special-field i { position: absolute; left: 50%; top: 50%; width: 9px; height: 9px; border-radius: 50%; background: var(--gold); box-shadow: 0 0 30px var(--gold); transform: translate(-50%, -50%); }
.special-pendulum {
	position: absolute;
	left: 50%;
	top: 5%;
	width: 92px;
	height: 58%;
	margin-left: -46px;
	transform-origin: 50% 0;
	animation: special-swing 3.8s cubic-bezier(.44,.02,.56,.98) infinite;
}
.special-pendulum-chain { position: absolute; left: 50%; top: 0; width: 1px; height: 63%; background: linear-gradient(rgb(255 255 255 / 60%), var(--gold-pale)); }
.special-pendulum-ring { position: absolute; left: 50%; top: calc(63% - 4px); width: 9px; height: 9px; border: 1px solid var(--gold-pale); border-radius: 50%; transform: translateX(-50%); }
.special-pendulum-weight {
	position: absolute;
	left: 50%;
	top: 65%;
	width: 42px;
	height: 31%;
	background: linear-gradient(90deg, #574523, #e3cd91 48%, #675128);
	clip-path: polygon(50% 100%, 0 0, 100% 0);
	transform: translateX(-50%);
	filter: drop-shadow(0 14px 22px rgb(198 169 107 / 20%));
}
.special-instrument > p { position: absolute; left: 12%; bottom: 10%; margin: 0; display: flex; flex-direction: column; color: rgb(255 255 255 / 32%); font-size: 10px; letter-spacing: .15em; text-transform: uppercase; }
.special-instrument > p b { margin-top: 4px; color: var(--gold); font-size: 12px; font-weight: 500; }
.special-orbit { position: absolute; z-index: 0; border: 1px solid rgb(198 169 107 / 8%); border-radius: 50%; pointer-events: none; }
.special-orbit--one { width: 55vw; aspect-ratio: 1; right: -20vw; top: -30vw; }
.special-orbit--two { width: 42vw; aspect-ratio: 1; left: -24vw; bottom: -27vw; border-color: rgb(255 255 255 / 5%); }
.special-noise { position: absolute; inset: 0; z-index: 1; opacity: .35; background: radial-gradient(circle at 16% 22%, rgb(198 169 107 / 8%), transparent 27%), radial-gradient(circle at 82% 75%, rgb(198 169 107 / 6%), transparent 25%); pointer-events: none; }
.special-footer { padding-top: 24px; border-top: 1px solid rgb(255 255 255 / 10%); color: rgb(255 255 255 / 35%); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.special-footer p { margin: 0; }
.special-footer a { display: inline-flex; min-height: 44px; align-items: center; color: rgb(255 255 255 / 55%); }

.special-coming-stage {
	position: relative;
	z-index: 2;
	width: min(100%, 1480px);
	min-height: 670px;
	margin: auto;
	display: grid;
	grid-template-columns: minmax(420px, .9fr) minmax(0, 1.1fr);
	gap: clamp(60px, 8vw, 135px);
	align-items: center;
	padding-block: clamp(70px, 8vh, 120px);
}
.special-coming-symbol { position: relative; width: min(100%, 540px); aspect-ratio: 1; display: grid; place-items: center; }
.special-coming-symbol::before,
.special-coming-symbol::after,
.special-coming-symbol span { content: ""; position: absolute; border: 1px solid rgb(128 97 45 / 18%); border-radius: 50%; }
.special-coming-symbol::before { inset: 0; }
.special-coming-symbol::after { inset: 15%; border-style: dashed; animation: special-rotate 35s linear infinite; }
.special-coming-symbol span:first-of-type { inset: 31%; background: rgb(198 169 107 / 6%); }
.special-coming-symbol span:nth-of-type(2) { inset: 45%; border-color: rgb(128 97 45 / 28%); }
.special-coming-symbol img { position: relative; z-index: 1; width: 43%; filter: invert(1); opacity: .8; }
.special-copy--coming { max-width: 800px; }
.special-copy--coming .special-lead { color: rgb(17 17 15 / 58%); }
.special-coming-meta { display: flex; flex-wrap: wrap; gap: 15px 28px; margin-top: 44px; }
.special-coming-meta span { color: rgb(17 17 15 / 52%); font-size: 11px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; }
.special-coming-meta i { margin-right: 8px; color: var(--gold); font-style: normal; }
.special-coming-glow { position: absolute; width: 55vw; aspect-ratio: 1; right: -16vw; top: -25vw; border-radius: 50%; background: radial-gradient(circle, rgb(198 169 107 / 18%), transparent 67%); pointer-events: none; }
.special-coming-lines { position: absolute; inset: 0; pointer-events: none; }
.special-coming-lines span { position: absolute; background: rgb(128 97 45 / 10%); }
.special-coming-lines span:first-child { left: 8%; top: 0; width: 1px; height: 100%; }
.special-coming-lines span:nth-child(2) { right: 10%; top: 0; width: 1px; height: 100%; }
.special-coming-lines span:nth-child(3) { left: 0; top: 58%; width: 100%; height: 1px; }
.special-footer--coming { border-color: rgb(17 17 15 / 12%); color: rgb(17 17 15 / 38%); }
.special-footer--coming > div { display: flex; align-items: center; gap: 28px; }
.special-footer--coming a { color: rgb(17 17 15 / 58%); }

@keyframes special-swing { 0%, 100% { transform: rotate(-8deg); } 50% { transform: rotate(8deg); } }
@keyframes special-pulse { 50% { opacity: .45; box-shadow: 0 0 0 11px rgb(198 169 107 / 3%); } }
@keyframes special-rotate { to { transform: rotate(360deg); } }

@media (max-width: 900px) {
	.sirius-special-page.admin-bar #wpadminbar { display: none !important; }
	.sirius-special-page.admin-bar .special-screen { min-height: 100svh; }
	.special-layout--maintenance,
	.special-coming-stage { grid-template-columns: 1fr; }
	.special-layout--maintenance { gap: 35px; padding-block: 65px 45px; }
	.special-instrument { width: min(78vw, 540px); justify-self: center; }
	.special-coming-stage { gap: 45px; padding-block: 65px 50px; }
	.special-coming-symbol { width: min(65vw, 440px); justify-self: center; grid-row: 2; }
	.special-copy--coming { grid-row: 1; }
}
@media (max-width: 620px) {
	.special-screen { padding: 22px 20px 23px; }
	.special-header { align-items: flex-start; }
	.special-logo { width: 126px; }
	.special-state { max-width: 120px; justify-content: flex-end; text-align: right; font-size: 9px; }
	.special-layout--maintenance,
	.special-coming-stage { padding-block: 70px 45px; }
	.special-copy h1 { font-size: clamp(52px, 15.5vw, 68px); }
	.special-kicker { margin-bottom: 25px; font-size: 10px; }
	.special-lead { margin-top: 29px; font-size: 16px; line-height: 1.72; }
	.special-actions { align-items: flex-start; flex-direction: column; gap: 18px; margin-top: 34px; }
	.special-actions > span { max-width: none; }
	.special-reload { width: 100%; }
	.special-instrument { width: min(88vw, 390px); margin-top: 8px; }
	.special-pendulum { width: 68px; height: 58%; margin-left: -34px; }
	.special-pendulum-weight { width: 32px; }
	.special-footer { align-items: flex-start; flex-direction: column; gap: 5px; }
	.special-footer a { min-height: 44px; }
	.special-coming-symbol { width: min(82vw, 350px); }
	.special-coming-meta { align-items: flex-start; flex-direction: column; gap: 13px; margin-top: 35px; }
	.special-footer--coming > div { align-items: flex-start; flex-direction: column; gap: 1px; }
}

/* Keep all process controls and black panels inside a consistent inset. */
@media (max-width: 620px) {
	.process-interactive {
		margin-inline: 0;
		padding: 10px;
		border-radius: 35px;
	}
	.process-nav {
		gap: 5px;
		padding: 2px 2px 12px;
		overflow: visible;
	}
	.process-nav button {
		min-width: 0;
		min-height: 78px;
		gap: 3px;
		align-items: center;
		justify-content: center;
		padding: 12px 7px;
		border-radius: 23px;
		text-align: center;
	}
	.process-nav strong { font-size: clamp(17px, 5.1vw, 20px); }
	.process-stage { border-radius: 25px; }
	.process-stage-art { min-height: 240px; }
	.process-panels {
		min-height: 410px;
		padding: 35px 24px 39px;
	}
	.process-panel h3 { font-size: clamp(36px, 10.3vw, 40px); }
	.process-stage-progress { padding: 17px 12px 7px; }
	.faq-answer > p,
	.faq-list details[open] .faq-answer > p,
	.faq-list details:not([open]) .faq-answer > p { padding-bottom: 32px; }
}

@media (prefers-reduced-motion: reduce) {
	.request-orbit::before,
	.request-orbit::after,
	.request-orbit i,
	.request-card,
	.session-rings span,
	.session-pendulum,
	.close-rays,
	.close-ring,
	.close-ring::before { animation: none !important; }
}
