:root{
  --ink:#080807;
  --ink-soft:#11100f;
  --paper:#f0e9df;
  --paper-2:#d8cab9;
  --stone:#b9a58c;
  --brass:#b3915d;
  --line:rgba(240,233,223,.18);
  --line-dark:rgba(8,8,7,.16);
  --muted:rgba(240,233,223,.66);
  --sans:"Helvetica Neue",Helvetica,Arial,sans-serif;
  --serif:"Bodoni 72","Bodoni MT",Didot,"Times New Roman",serif;
  --pad:clamp(20px,4vw,64px);
  --header:76px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--ink);width:100%;max-width:100%;overflow-x:hidden}
body{margin:0;background:var(--ink);color:var(--paper);font-family:var(--sans);font-weight:400;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body.menu-open{overflow:hidden}
a{color:inherit;text-decoration:none}
img,video{display:block;max-width:100%}
button{font:inherit;color:inherit}
::selection{background:var(--paper);color:var(--ink)}
.skip{position:fixed;left:16px;top:-80px;z-index:999;background:var(--paper);color:var(--ink);padding:12px 16px}.skip:focus{top:16px}
.grain{position:fixed;inset:0;pointer-events:none;z-index:80;opacity:.12;mix-blend-mode:soft-light;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='.23'/%3E%3C/svg%3E")}

/* Header */
.site-header{position:fixed;inset:0 0 auto 0;height:var(--header);z-index:100;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 var(--pad);border-bottom:1px solid transparent;transition:.35s;background:linear-gradient(to bottom,rgba(5,5,4,.48),transparent)}
.site-header.scrolled,.page .site-header{background:rgba(8,8,7,.91);backdrop-filter:blur(12px);border-color:var(--line)}
.brand{justify-self:start;display:flex;align-items:center;gap:10px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;white-space:nowrap}
.brand img{width:42px;height:42px;object-fit:contain}
.brand-word{display:none}
.nav{display:flex;gap:clamp(18px,2.7vw,44px);align-items:center;font-size:11px;letter-spacing:.16em;text-transform:uppercase}
.nav a{opacity:.74;transition:.25s}.nav a:hover,.nav a[aria-current="page"]{opacity:1}
.header-actions{justify-self:end;display:flex;align-items:center;gap:14px}
.lang-switch{display:flex;align-items:center;gap:6px;font-size:10px;letter-spacing:.14em}
.lang-switch button{appearance:none;border:0;background:none;padding:4px;cursor:pointer;opacity:.5}.lang-switch button[aria-pressed="true"]{opacity:1}
.btn-mini{border:1px solid rgba(240,233,223,.45);padding:10px 15px;font-size:10px;letter-spacing:.16em;text-transform:uppercase;transition:.25s}.btn-mini:hover{background:var(--paper);color:var(--ink)}
.menu-toggle{display:none;background:none;border:0;padding:8px;cursor:pointer}.menu-toggle span{display:block;width:22px;height:1px;background:currentColor;margin:5px 0}
.mobile-nav{display:none}

/* Hero */
.hero{position:relative;min-height:100svh;background:#111;overflow:hidden}
.hero-media{position:absolute;inset:0}.hero-media video{width:100%;height:100%;object-fit:cover;object-position:center}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.18) 5%,rgba(0,0,0,.08) 44%,rgba(0,0,0,.72) 100%)}
.hero-content{position:relative;z-index:2;min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;padding:calc(var(--header) + 70px) var(--pad) 42px;max-width:1450px;margin:auto}
.eyebrow{font-size:10px;letter-spacing:.28em;text-transform:uppercase;margin:0 0 18px;color:rgba(255,255,255,.82)}
.hero h1{font-family:var(--serif);font-weight:400;font-size:clamp(52px,7vw,118px);line-height:.88;letter-spacing:-.035em;max-width:1050px;margin:0;color:#fff;text-wrap:balance}
.hero-sub{display:flex;justify-content:space-between;gap:30px;align-items:flex-end;margin-top:34px;padding-top:22px;border-top:1px solid rgba(255,255,255,.34)}
.hero-sub p{margin:0;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.78)}
.hero-ctas{display:flex;gap:10px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 18px;border:1px solid rgba(240,233,223,.5);background:transparent;color:var(--paper);font-size:10px;letter-spacing:.17em;text-transform:uppercase;cursor:pointer;transition:.25s}
.btn:hover,.btn.primary{background:var(--paper);color:var(--ink)}.btn.primary:hover{background:#fff}
.ai-disclosure{position:absolute;z-index:3;right:var(--pad);bottom:118px;font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.56);max-width:250px;text-align:right}

/* Sections */
.section{position:relative;padding:clamp(90px,12vw,190px) var(--pad)}
.section-inner{width:min(1400px,100%);margin:0 auto}
.kicker{display:flex;gap:16px;align-items:center;margin-bottom:32px;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--stone)}
.kicker::before{content:"";width:52px;height:1px;background:currentColor}
.display{font-family:var(--serif);font-weight:400;font-size:clamp(48px,7.1vw,118px);line-height:.92;letter-spacing:-.035em;margin:0;text-wrap:balance}
.display.small{font-size:clamp(42px,5.2vw,84px)}
.lead{font-size:clamp(20px,2vw,32px);line-height:1.35;max-width:900px;margin:35px 0 0;color:rgba(240,233,223,.85);font-weight:300}
.body-copy{max-width:700px;font-size:15px;color:var(--muted)}
.body-copy p{margin:0 0 18px}
.rule{border-top:1px solid var(--line)}

.threshold{background:var(--ink)}
.threshold .statement{max-width:1180px}
.threshold .statement em{font-style:normal;color:var(--paper-2)}
.threshold-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(50px,8vw,140px);align-items:end;margin-top:80px}
.micro{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--stone)}

.split{display:grid;grid-template-columns:1.05fr .95fr;min-height:760px;background:var(--paper);color:var(--ink)}
.split-media{position:relative;min-height:620px;overflow:hidden}.split-media img{width:100%;height:100%;object-fit:cover;object-position:center;pointer-events:none}.split-media::after{content:"";position:absolute;inset:0;background:transparent;z-index:2;pointer-events:auto}
.split-copy{display:flex;flex-direction:column;justify-content:center;padding:clamp(55px,8vw,130px)}
.split .kicker{color:#755f46}.split .lead,.split .body-copy{color:rgba(8,8,7,.72)}
.split .btn{color:var(--ink);border-color:rgba(8,8,7,.36)}.split .btn:hover,.split .btn.primary{background:var(--ink);color:var(--paper)}

.archetype{background:#171512;overflow:hidden}.archetype-words{font-family:var(--serif);font-size:clamp(55px,11vw,178px);line-height:.8;letter-spacing:-.05em;text-transform:uppercase;margin:0 0 70px;color:var(--paper)}
.archetype-words span{display:block}.archetype-words span:nth-child(2){margin-left:12vw;color:transparent;-webkit-text-stroke:1px rgba(240,233,223,.65)}
.archetype-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:start}.archetype-grid .lead{margin:0}

.mexico{min-height:92svh;display:flex;align-items:flex-end;padding:0;position:relative;background:#17130f;overflow:hidden}
.mexico img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}.mexico::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.04),rgba(0,0,0,.15) 44%,rgba(0,0,0,.83))}
.mexico-copy{position:relative;z-index:2;padding:110px var(--pad) 55px;width:min(1450px,100%);margin:0 auto}.mexico .display{max-width:900px;color:#fff}.mexico .lead{max-width:780px;color:rgba(255,255,255,.83)}
.cities{display:flex;justify-content:space-between;gap:25px;padding-top:25px;margin-top:42px;border-top:1px solid rgba(255,255,255,.28);font-size:10px;letter-spacing:.23em;text-transform:uppercase;color:rgba(255,255,255,.72)}

.circle{background:var(--paper);color:var(--ink)}
.circle .kicker{color:#755f46}.circle .lead{color:rgba(8,8,7,.72)}
.values{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line-dark);border-left:1px solid var(--line-dark);margin-top:80px}
.value{padding:34px 26px 60px;border-right:1px solid var(--line-dark);border-bottom:1px solid var(--line-dark);min-height:290px}.value-num{font-size:10px;letter-spacing:.16em;color:#80694e}.value h3{font-family:var(--serif);font-size:36px;font-weight:400;margin:52px 0 16px}.value p{font-size:13px;line-height:1.7;color:rgba(8,8,7,.65);margin:0}
.circle-note{display:flex;justify-content:space-between;gap:40px;margin-top:45px;align-items:flex-end}.circle-note p{max-width:690px;margin:0;color:rgba(8,8,7,.7)}
.circle .btn{color:var(--ink);border-color:rgba(8,8,7,.32)}.circle .btn:hover,.circle .btn.primary{background:var(--ink);color:var(--paper)}

.codes{background:var(--ink-soft)}
.code-list{margin-top:70px;border-top:1px solid var(--line)}
.code-row{display:grid;grid-template-columns:110px 1fr 1fr;gap:40px;padding:26px 0;border-bottom:1px solid var(--line);align-items:baseline}.code-row .n{font-size:10px;letter-spacing:.17em;color:var(--stone)}.code-row h3{font-family:var(--serif);font-size:clamp(34px,4vw,64px);font-weight:400;margin:0}.code-row p{margin:0;color:var(--muted);max-width:520px}

.initiation-call{background:var(--paper-2);color:var(--ink);text-align:center}.initiation-call .section-inner{max-width:1050px}.initiation-call .kicker{justify-content:center;color:#725b40}.initiation-call .display{margin:auto}.initiation-call .lead{margin:30px auto 45px;color:rgba(8,8,7,.72)}.initiation-call .btn{color:var(--paper);background:var(--ink);border-color:var(--ink);min-width:220px}.initiation-call .btn:hover{background:transparent;color:var(--ink)}

/* Inner pages */
.page-hero{padding:calc(var(--header) + 90px) var(--pad) 90px;min-height:72svh;display:flex;align-items:flex-end;border-bottom:1px solid var(--line);position:relative;overflow:hidden}
.page-hero.has-image{min-height:88svh}.page-hero.has-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.63}.page-hero.has-image::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,8,7,.25),rgba(8,8,7,.88))}.page-hero .section-inner{position:relative;z-index:2}.page-title{font-family:var(--serif);font-size:clamp(64px,10vw,155px);line-height:.82;letter-spacing:-.045em;font-weight:400;margin:0;max-width:1250px}.page-deck{font-size:clamp(18px,2vw,28px);max-width:760px;color:var(--muted);margin:35px 0 0}
.editorial-grid{display:grid;grid-template-columns:.72fr 1.28fr;gap:clamp(50px,9vw,150px);align-items:start}.editorial-grid .aside{position:sticky;top:130px}.chapter{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--stone)}.editorial-grid h2{font-family:var(--serif);font-size:clamp(42px,5vw,78px);font-weight:400;line-height:1;margin:0 0 30px}.editorial-grid p{font-size:16px;color:var(--muted);margin:0 0 24px;max-width:760px}.quote{font-family:var(--serif);font-size:clamp(34px,4vw,66px);line-height:1.05;color:var(--paper);margin:70px 0;padding:45px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.cards-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:60px}.card{background:var(--ink);padding:36px;min-height:330px}.card .chapter{margin-bottom:70px}.card h3{font-family:var(--serif);font-weight:400;font-size:40px;margin:0 0 18px}.card p{color:var(--muted);font-size:14px}

/* Initiation */
.admission-box{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);margin-top:70px}.admission-main{padding:clamp(35px,5vw,72px)}.admission-side{padding:clamp(35px,5vw,72px);border-left:1px solid var(--line);background:#100f0d}.price{font-family:var(--serif);font-size:clamp(72px,8vw,125px);line-height:.8;margin:18px 0 10px}.price small{font-family:var(--sans);font-size:13px;letter-spacing:.12em;text-transform:uppercase}.facts{margin:38px 0 0;border-top:1px solid var(--line)}.fact{display:flex;justify-content:space-between;gap:20px;padding:14px 0;border-bottom:1px solid var(--line);font-size:11px;letter-spacing:.11em;text-transform:uppercase}.fact span:last-child{color:var(--stone);text-align:right}.legal-note{font-size:12px;color:rgba(240,233,223,.54);margin-top:30px}

/* Footer */
.footer{padding:70px var(--pad) 34px;border-top:1px solid var(--line);background:#050504}.footer-inner{width:min(1450px,100%);margin:auto}.footer-top{display:grid;grid-template-columns:1.2fr .8fr .8fr;gap:50px}.footer-logo{width:110px;margin-bottom:24px}.footer-tag{font-family:var(--serif);font-size:31px;line-height:1.05;max-width:450px;margin:0}.footer h4{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--stone);margin:0 0 22px}.footer a,.footer p{font-size:13px;color:var(--muted)}.footer-links{display:grid;gap:10px}.footer-bottom{display:flex;justify-content:space-between;gap:30px;margin-top:70px;padding-top:20px;border-top:1px solid var(--line);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:rgba(240,233,223,.62)}

/* Legal */
.legal-main{padding:calc(var(--header) + 70px) var(--pad) 120px}.legal-wrap{max-width:940px;margin:auto}.legal-main h1{font-family:var(--serif);font-size:clamp(55px,7vw,100px);font-weight:400;line-height:.9;margin:0 0 25px}.legal-main .updated{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--stone);margin-bottom:60px}.legal-main h2{font-family:var(--serif);font-size:32px;font-weight:400;margin:55px 0 18px}.legal-main p,.legal-main li{font-size:14px;color:var(--muted)}.legal-main strong{color:var(--paper);font-weight:500}.legal-main a{text-decoration:underline;text-underline-offset:3px}.legal-main .box{border:1px solid var(--line);padding:24px 28px}.back-link{display:inline-block;margin-top:60px;font-size:10px;letter-spacing:.17em;text-transform:uppercase}

/* Reveals */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}.reveal.in{opacity:1;transform:none}

@media(max-width:1000px){
  .nav{display:none}.menu-toggle{display:block}.btn-mini{display:none}.site-header{grid-template-columns:1fr auto}.header-actions{justify-self:end}.brand-word{display:inline}.site-header>.nav{display:none}
  .mobile-nav{display:flex;position:fixed;inset:0;z-index:95;background:rgba(8,8,7,.98);padding:120px var(--pad) 50px;display:flex;flex-direction:column;gap:8px;transform:translateY(-105%);transition:.45s cubic-bezier(.7,0,.2,1)}.mobile-nav.open{transform:none}.mobile-nav a{font-family:var(--serif);font-size:clamp(40px,9vw,72px);line-height:1.02;border-bottom:1px solid var(--line);padding:10px 0}.mobile-nav .mobile-admission{margin-top:30px;font-family:var(--sans);font-size:12px;letter-spacing:.17em;text-transform:uppercase;border:1px solid var(--line);padding:16px;text-align:center}
  .threshold-grid,.archetype-grid,.editorial-grid{grid-template-columns:1fr}.editorial-grid .aside{position:static}.values{grid-template-columns:1fr 1fr}.split{grid-template-columns:1fr}.split-media{min-height:70svh}.split-copy{padding:80px var(--pad)}.code-row{grid-template-columns:70px 1fr}.code-row p{grid-column:2}.footer-top{grid-template-columns:1fr 1fr}.footer-top>div:first-child{grid-column:1/-1}.admission-box{grid-template-columns:1fr}.admission-side{border-left:0;border-top:1px solid var(--line)}
}
@media(max-width:680px){
  :root{--header:66px;--pad:20px}
  .brand img{width:36px;height:36px}.brand-word{font-size:10px}.lang-switch{display:none}
  .hero-content{padding-bottom:24px}.hero h1{font-size:clamp(47px,14vw,72px);line-height:.91}.hero-sub{display:block;margin-top:24px}.hero-sub p{margin-bottom:16px}.hero-ctas{width:100%}.hero-ctas .btn{flex:1}.ai-disclosure{display:none}
  .display{font-size:clamp(46px,13vw,70px)}.display.small{font-size:clamp(40px,11vw,60px)}.lead{font-size:19px}.section{padding-top:90px;padding-bottom:90px}
  .archetype-words{font-size:16vw}.archetype-words span:nth-child(2){margin-left:7vw}.values{grid-template-columns:1fr}.value{min-height:230px}.circle-note{display:block}.circle-note .btn{margin-top:28px}
  .code-row{grid-template-columns:1fr;gap:8px}.code-row p{grid-column:auto}.code-row .n{margin-bottom:5px}.cities{flex-wrap:wrap}.mexico{min-height:82svh}
  .page-hero{min-height:65svh;padding-bottom:65px}.page-hero.has-image{min-height:78svh}.page-title{font-size:clamp(57px,17vw,92px)}
  .cards-3{grid-template-columns:1fr}.footer-top{grid-template-columns:1fr}.footer-top>div:first-child{grid-column:auto}.footer-bottom{display:block}.footer-bottom span{display:block;margin-top:8px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.mobile-nav{transition:none}}

/* Entry protocol */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.ritual-page{background:#070706}.ritual-page .site-header{background:rgba(7,7,6,.76);backdrop-filter:blur(10px)}.ritual-status{pointer-events:none;color:var(--paper);background:transparent}
.ritual-opening{min-height:100svh;position:relative;display:flex;align-items:flex-end;overflow:hidden;padding:calc(var(--header) + 55px) var(--pad) clamp(42px,6vw,82px)}
.ritual-opening-bg{position:absolute;inset:0}.ritual-opening-bg img{width:100%;height:100%;object-fit:cover;object-position:center}.ritual-opening-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,5,4,.92) 0%,rgba(5,5,4,.72) 46%,rgba(5,5,4,.23) 78%,rgba(5,5,4,.08) 100%),linear-gradient(0deg,rgba(5,5,4,.52),transparent 52%)}
.ritual-opening-inner{position:relative;z-index:2;width:min(1380px,100%);margin:0 auto}.ritual-overline,.ritual-chapter{font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--stone);margin:0 0 22px}.ritual-opening h1{font-family:var(--serif);font-weight:400;font-size:clamp(60px,9vw,145px);line-height:.8;letter-spacing:-.05em;margin:0;max-width:880px}.ritual-price{display:flex;align-items:flex-start;margin:30px 0 12px;font-family:var(--serif);line-height:.78}.ritual-price span{font-size:clamp(112px,16vw,250px);letter-spacing:-.07em}.ritual-price sup{font-size:clamp(34px,5vw,72px);line-height:1;margin:8px 0 0 8px;color:var(--paper-2)}
.ritual-opening-meta{display:flex;gap:10px;flex-wrap:wrap;margin:8px 0 34px}.ritual-opening-meta span{border:1px solid rgba(240,233,223,.34);padding:8px 11px;font-size:9px;letter-spacing:.19em;text-transform:uppercase;background:rgba(8,8,7,.24)}
.ritual-manifesto{max-width:760px;display:grid;gap:13px;margin:0 0 32px}.ritual-manifesto p{font-size:clamp(14px,1.25vw,18px);line-height:1.55;margin:0;color:rgba(240,233,223,.78)}.ritual-manifesto .ritual-emphasis{color:var(--paper);font-weight:500}.ritual-enter,.ritual-submit{display:inline-flex;align-items:center;justify-content:space-between;gap:34px;min-width:min(100%,340px);padding:0 18px 0 22px;height:58px;background:var(--paper);color:var(--ink);border:1px solid var(--paper);font-size:10px;letter-spacing:.2em;text-transform:uppercase;cursor:pointer;transition:.25s}.ritual-enter:hover,.ritual-submit:hover{background:transparent;color:var(--paper)}.ritual-enter i,.ritual-submit i{font-size:20px;font-style:normal;font-family:var(--sans)}.ritual-fine{font-size:10px;letter-spacing:.12em;color:rgba(240,233,223,.52);margin:14px 0 0}
.ritual-shell{min-height:100svh;background:#0b0a09}.ritual-panel{min-height:100svh;padding:calc(var(--header) + 70px) var(--pad) 70px;display:flex;align-items:center;position:relative;overflow:hidden}.ritual-panel[hidden]{display:none}.ritual-panel-inner{width:min(1050px,100%);margin:auto}.ritual-panel-wide{width:min(1230px,100%)}.ritual-panel h2,.calendar-room-head h2{font-family:var(--serif);font-size:clamp(46px,6vw,92px);font-weight:400;line-height:.95;letter-spacing:-.035em;margin:0 0 22px;max-width:1100px}.ritual-intro{font-size:clamp(16px,1.7vw,24px);line-height:1.45;color:var(--muted);max-width:820px;margin:0 0 40px}.ritual-options{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-left:1px solid var(--line);margin-top:45px}.ritual-option{position:relative;border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:155px;cursor:pointer;display:flex;align-items:stretch}.ritual-option input{position:absolute;opacity:0;pointer-events:none}.ritual-option span{width:100%;padding:28px;display:flex;flex-direction:column;justify-content:space-between;transition:.25s}.ritual-option strong{font-family:var(--serif);font-size:clamp(26px,2.4vw,39px);font-weight:400;letter-spacing:-.02em}.ritual-option small{color:var(--muted);font-size:13px;margin-top:22px}.ritual-option:hover span,.ritual-option input:checked+span{background:var(--paper);color:var(--ink)}.ritual-option input:checked+span small{color:rgba(8,8,7,.64)}
.ritual-actions{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-top:42px}.ritual-next,.ritual-back{appearance:none;background:none;border:0;cursor:pointer;text-transform:uppercase;letter-spacing:.18em;font-size:10px;padding:14px 0}.ritual-back{color:var(--muted)}.ritual-next{min-width:170px;border-bottom:1px solid currentColor;text-align:right}.ritual-next:disabled,.ritual-submit:disabled{opacity:.28;cursor:not-allowed}.ritual-next:not(:disabled):hover{color:var(--stone)}
.trajectory-lines{border-top:1px solid var(--line)}.trajectory-lines label{display:grid;grid-template-columns:145px 1fr;gap:34px;align-items:start;border-bottom:1px solid var(--line);padding:25px 0}.trajectory-lines label>span{display:flex;align-items:baseline;gap:8px}.trajectory-lines b{font-family:var(--serif);font-size:62px;font-weight:400;line-height:1}.trajectory-lines em{font-style:normal;font-size:9px;letter-spacing:.17em;text-transform:uppercase;color:var(--stone)}.trajectory-lines textarea,.ritual-field textarea,.ritual-field input{width:100%;appearance:none;background:transparent;color:var(--paper);border:0;border-bottom:1px solid rgba(240,233,223,.25);border-radius:0;padding:12px 0;font-family:var(--sans);font-size:17px;line-height:1.5;outline:none}.trajectory-lines textarea{min-height:105px;resize:vertical;border-bottom:0;padding-top:9px}.trajectory-lines textarea::placeholder,.ritual-field textarea::placeholder,.ritual-field input::placeholder{color:rgba(240,233,223,.34)}.trajectory-lines textarea:focus,.ritual-field textarea:focus,.ritual-field input:focus{border-color:var(--paper)}
.contribution-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line);margin:35px 0 32px}.contribution-grid label{position:relative;cursor:pointer;min-height:82px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.contribution-grid input{position:absolute;opacity:0;pointer-events:none}.contribution-grid span{display:flex;height:100%;align-items:center;padding:20px;font-size:12px;letter-spacing:.06em;transition:.25s}.contribution-grid label:hover span,.contribution-grid input:checked+span{background:var(--paper);color:var(--ink)}.ritual-field{display:grid;gap:8px}.ritual-field>span{font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--stone)}.ritual-field-free{margin-top:18px}.ritual-field-free textarea{min-height:82px;resize:vertical}
.ritual-panel-admission{background:#080807}.ritual-night{position:absolute;inset:0;opacity:.28}.ritual-night::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,8,7,.96) 0%,rgba(8,8,7,.84) 56%,rgba(8,8,7,.46))}.ritual-night img{width:100%;height:100%;object-fit:cover}.ritual-panel-admission .ritual-panel-inner{position:relative;z-index:2}.identity-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px 36px;margin:35px 0}.ritual-consent{display:flex;align-items:flex-start;gap:11px;max-width:880px;font-size:12px;line-height:1.5;color:var(--muted);cursor:pointer}.ritual-consent input{margin-top:4px;accent-color:var(--paper)}.ritual-consent a{text-decoration:underline;text-underline-offset:2px;color:var(--paper)}.admission-reminder{display:grid;grid-template-columns:auto 1fr;gap:34px;align-items:center;margin-top:34px;padding:25px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.admission-reminder>div{display:grid;gap:2px}.mini-price{font-family:var(--serif);font-size:58px;line-height:.9}.admission-reminder small{font-size:8px;letter-spacing:.15em;color:var(--stone)}.admission-reminder p{margin:0;font-size:12px;color:var(--muted);max-width:720px}.form-message{font-size:12px;color:var(--stone);min-height:20px;margin-top:18px}
.calendar-room-head p{margin:0;color:var(--muted);max-width:760px}.calendar-price{text-align:right}.calendar-price strong{font-family:var(--serif);font-weight:400;display:block;line-height:.85}.calendar-price span{font-size:9px;letter-spacing:.18em;color:var(--stone)}.calendar-fallback{color:var(--muted)}.calendar-fallback a{text-decoration:underline;text-underline-offset:3px}.ritual-footer{background:#050504}

/* New visual assets */
.night-bridge{min-height:82svh;position:relative;display:flex;align-items:flex-end;overflow:hidden}.night-bridge img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.night-bridge::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(4,4,4,.05),rgba(4,4,4,.76))}.night-bridge-copy{position:relative;z-index:2;width:min(1450px,100%);margin:auto;padding:80px var(--pad) 55px}.night-bridge-copy .display{max-width:960px;color:#fff}.night-bridge-copy .lead{color:rgba(255,255,255,.8);max-width:720px}

@media(max-width:900px){
  .ritual-opening-shade{background:linear-gradient(0deg,rgba(5,5,4,.94) 0%,rgba(5,5,4,.72) 58%,rgba(5,5,4,.18) 100%)}
  .ritual-options{grid-template-columns:1fr}.trajectory-lines label{grid-template-columns:100px 1fr}.contribution-grid{grid-template-columns:1fr 1fr}.calendar-room-head{grid-template-columns:80px 1fr}.calendar-price{grid-column:2;text-align:left;margin-top:10px}
}
@media(max-width:680px){
  .ritual-opening{align-items:flex-end;padding-bottom:35px}.ritual-opening-bg img{object-position:57% center}.ritual-opening h1{font-size:clamp(56px,17vw,82px)}.ritual-price{margin-top:24px}.ritual-price span{font-size:42vw}.ritual-price sup{font-size:13vw;margin-top:4px}.ritual-manifesto{gap:10px}.ritual-manifesto p{font-size:13px}.ritual-enter{width:100%}.ritual-panel{padding-top:calc(var(--header) + 45px);padding-bottom:40px;align-items:flex-start}.ritual-panel h2,.calendar-room-head h2{font-size:clamp(43px,13vw,66px)}.ritual-options{margin-top:28px}.ritual-option{min-height:118px}.ritual-option span{padding:21px}.ritual-actions{margin-top:28px}.trajectory-lines label{grid-template-columns:1fr;gap:3px;padding:19px 0}.trajectory-lines b{font-size:46px}.trajectory-lines textarea{min-height:90px;font-size:15px}.contribution-grid{grid-template-columns:1fr}.contribution-grid label{min-height:62px}.identity-grid{grid-template-columns:1fr;gap:20px}.admission-reminder{grid-template-columns:1fr;gap:15px}.ritual-submit{width:100%;min-width:0}.ritual-panel-admission .ritual-actions{display:grid;grid-template-columns:1fr}.ritual-panel-admission .ritual-back{order:2}.calendar-room-head{grid-template-columns:55px 1fr;gap:17px;align-items:start}.calendar-room-head>img{width:52px}.calendar-price{grid-column:1/-1;display:flex;align-items:baseline;gap:12px}.calendar-price strong{font-size:58px}.night-bridge{min-height:72svh}.night-bridge img{object-position:42% center}
}

/* ===== 2026.09 refinement: identity, hero, ritual flow ===== */
:root{
  --ritual-blue:#2a5cff;
  --ritual-blue-soft:#5f8fff;
  --ritual-blue-deep:#07122e;
  --mexico:"Copperplate","Copperplate Gothic Light","Palatino Linotype",Palatino,serif;
}

/* Brand / navigation */
.brand{gap:12px;font-size:12px;letter-spacing:.18em}
.brand img{width:32px;height:32px;border-radius:50%;object-fit:contain}
.brand-word{display:inline-block;font-weight:400}
.btn-login{font-size:9px;letter-spacing:.16em;text-transform:uppercase;opacity:.72;padding:8px 2px;border-bottom:1px solid rgba(240,233,223,.22);transition:.25s}
.btn-login:hover{opacity:1;border-color:currentColor}
.mobile-login{border-top:1px solid var(--line);margin-top:6px;padding-top:22px!important}
.house-sigils{display:flex;gap:28px;align-items:center;margin-top:80px;opacity:.34;color:var(--stone)}
.house-sigils img{width:34px;height:34px;filter:invert(70%) sepia(20%) saturate(500%) hue-rotate(355deg)}

/* Home hero: show the entire 16:9 master, never crop the signature */
.hero{background:#050504}
.hero-media{display:flex;align-items:center;justify-content:center;background:#050504}
.hero-media video{width:100%;height:100%;object-fit:contain;object-position:center center;background:#050504}
.hero-content{padding-right:clamp(260px,22vw,420px)}
.ai-disclosure{right:clamp(250px,21vw,400px);bottom:128px;max-width:290px}
.hero-sub{max-width:1050px}
.hero-ctas{justify-content:flex-start}
.hero::after{background:linear-gradient(180deg,rgba(0,0,0,.12) 4%,rgba(0,0,0,.02) 45%,rgba(0,0,0,.64) 100%)}

/* Portrait framing */
.split-media .portrait-official{object-position:center 18%}

/* Two Mexico statements receive their own cultural typographic voice */
.mexico-tone{font-family:var(--mexico);font-weight:400;letter-spacing:.01em;line-height:1.48}

/* Portal transition when entering Initiation / Member space */
body::before{content:"";position:fixed;z-index:9999;inset:0;background:radial-gradient(circle at 50% 50%,rgba(42,92,255,.14),rgba(5,5,4,.98) 60%);opacity:0;visibility:hidden;transform:scale(1.03);transition:opacity .42s ease,transform .42s ease,visibility .42s;pointer-events:none}
body.portal-leaving::before{opacity:1;visibility:visible;transform:scale(1)}

/* ===== Immersive Initiation ===== */
.ritual-page{overflow:hidden;background:var(--ritual-blue-deep)}
.ritual-page .site-header{opacity:0;pointer-events:none;transform:translateY(-100%);transition:opacity .35s ease,transform .45s ease;background:rgba(5,8,18,.92);backdrop-filter:blur(18px)}
.ritual-page.ritual-hud-visible .site-header{opacity:1;pointer-events:auto;transform:translateY(0)}
.ritual-page .mobile-nav{z-index:170}
.ritual-experience{position:fixed;inset:0;z-index:110;background:linear-gradient(145deg,#050507 0%,#07122e 55%,#071022 100%);overflow:hidden}
.ritual-particles{position:fixed;inset:0;z-index:112;pointer-events:none;mix-blend-mode:screen;opacity:.65}
.ritual-hud-toggle{position:fixed;z-index:190;left:max(16px,env(safe-area-inset-left));top:max(14px,env(safe-area-inset-top));display:flex;align-items:center;gap:9px;border:0;background:rgba(5,8,18,.58);backdrop-filter:blur(10px);color:rgba(240,233,223,.86);padding:7px 10px 7px 7px;cursor:pointer;letter-spacing:.16em;font-size:8px;text-transform:uppercase}
.ritual-hud-toggle img{width:29px;height:29px;filter:invert(95%);opacity:.82}.ritual-hud-toggle:hover{color:#fff}.ritual-hud-toggle.is-open{top:calc(var(--header) + 12px)}
.ritual-screen{position:absolute;inset:0;z-index:114;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transform:translateX(4%) scale(.992);transition:opacity .44s ease,transform .55s cubic-bezier(.2,.75,.25,1),visibility .44s;overflow:hidden}
.ritual-screen-active{opacity:1;visibility:visible;transform:translateX(0) scale(1)}
.ritual-screen-leaving{opacity:0;transform:translateX(-4%) scale(.992)}
.ritual-screen-entering{animation:ritualIn .55s cubic-bezier(.2,.75,.25,1)}
@keyframes ritualIn{from{opacity:0;transform:translateX(4%) scale(.992)}to{opacity:1;transform:translateX(0) scale(1)}}
.ritual-screen-inner{position:relative;z-index:3;width:min(1240px,calc(100% - 2*var(--pad)));max-height:calc(100dvh - 34px);margin:auto}
.ritual-screen h1,.ritual-screen h2{font-family:var(--serif);font-weight:400;letter-spacing:-.035em}
.ritual-screen h2{font-size:clamp(42px,5.5vw,86px);line-height:.96;margin:0 0 22px;max-width:1050px;text-wrap:balance}
.ritual-question-wrap{padding:clamp(42px,6vw,72px) 0 32px}
.ritual-wide{width:min(1320px,calc(100% - 2*var(--pad)))}
.ritual-marker{display:flex;align-items:center;gap:12px;margin-bottom:20px;color:#b7c8ff;font-size:9px;letter-spacing:.22em;text-transform:uppercase}
.ritual-marker img{width:34px;height:34px;filter:invert(73%) sepia(44%) saturate(1269%) hue-rotate(191deg) brightness(103%)}
.ritual-sigil{position:absolute;right:0;top:0;color:#b7c8ff;opacity:.55}.ritual-sigil img{width:72px;height:72px;filter:invert(74%) sepia(42%) saturate(1100%) hue-rotate(190deg)}

.ritual-opening{background:#050504;align-items:center;padding:0}
.ritual-opening-bg,.ritual-opening-shade{position:absolute;inset:0}.ritual-opening-bg img{width:100%;height:100%;object-fit:cover;object-position:center}.ritual-opening-shade{background:linear-gradient(90deg,rgba(3,3,4,.9) 0%,rgba(3,3,4,.63) 52%,rgba(7,18,46,.42) 100%)}
.ritual-opening-inner{padding-top:40px}
.ritual-opening-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(42px,8vw,120px);align-items:end}
.ritual-opening h1{font-size:clamp(52px,6.6vw,105px);line-height:.88;margin:0 0 8px}
.ritual-price{display:flex;align-items:flex-start;line-height:.75;margin:6px 0 18px}.ritual-price span{font-family:var(--serif);font-size:clamp(125px,15vw,230px);letter-spacing:-.08em}.ritual-price sup{font-family:var(--serif);font-size:clamp(34px,4vw,62px);margin-top:16px}
.ritual-opening-meta{display:flex;gap:9px;flex-wrap:wrap}.ritual-opening-meta span{border:1px solid rgba(240,233,223,.28);padding:7px 10px;font-size:8px;letter-spacing:.18em;text-transform:uppercase;background:rgba(8,8,7,.2)}
.ritual-manifesto{margin:0;max-width:560px}.ritual-manifesto p{font-size:clamp(14px,1.15vw,18px);line-height:1.55;color:rgba(240,233,223,.78)}.ritual-manifesto .ritual-emphasis{color:#fff}
.ritual-enter,.ritual-submit{background:var(--ritual-blue);border-color:var(--ritual-blue);color:#fff;box-shadow:0 0 34px rgba(42,92,255,.22)}.ritual-enter:hover,.ritual-submit:hover{background:#fff;border-color:#fff;color:#08122e}

.ritual-options{grid-template-columns:1fr 1fr;margin-top:26px;border-color:rgba(121,151,255,.22)}
.ritual-option{min-height:132px;border-color:rgba(121,151,255,.22)}
.ritual-option span{background:rgba(7,18,46,.24);padding:24px}.ritual-option:hover span,.ritual-option input:checked+span{background:var(--ritual-blue);color:#fff}.ritual-option input:checked+span small{color:rgba(255,255,255,.82)}
.ritual-option strong{font-size:clamp(24px,2vw,34px)}
.ritual-next{border-bottom-color:rgba(113,145,255,.8);color:#dce5ff}
.ritual-intro{margin:0 0 24px;font-size:clamp(14px,1.35vw,20px);max-width:900px}
.ritual-actions{margin-top:22px}
.ritual-error{min-height:18px;margin-top:10px;font-size:11px;letter-spacing:.06em;color:#a9c0ff;opacity:0;transform:translateY(4px);transition:.2s}.ritual-error-show{opacity:1;transform:translateY(0)}

.trajectory-lines{border-color:rgba(121,151,255,.22)}.trajectory-lines label{grid-template-columns:110px 1fr;gap:24px;padding:16px 0;border-color:rgba(121,151,255,.22)}.trajectory-lines b{font-size:50px;color:#fff}.trajectory-lines textarea{min-height:64px;max-height:82px;resize:none;font-size:15px}.trajectory-lines em{color:#9db6ff}
.contribution-grid{grid-template-columns:repeat(4,1fr);margin:24px 0 18px;border-color:rgba(121,151,255,.22)}.contribution-grid label{min-height:66px;border-color:rgba(121,151,255,.22)}.contribution-grid span{padding:16px 18px;background:rgba(7,18,46,.24)}.contribution-grid label:hover span,.contribution-grid input:checked+span{background:var(--ritual-blue);color:#fff}.ritual-field-free{margin-top:8px}.ritual-field-free textarea{min-height:58px;max-height:78px;resize:none}
.ritual-field>span{color:#9db6ff}.ritual-field textarea,.ritual-field input,.trajectory-lines textarea{border-color:rgba(121,151,255,.28)}

.ritual-admission-screen .ritual-night{position:absolute;inset:0;opacity:.25}.ritual-admission-screen .ritual-night::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,8,20,.96),rgba(4,8,20,.84) 58%,rgba(4,8,20,.4))}.ritual-admission-screen .ritual-night img{width:100%;height:100%;object-fit:cover}
.identity-grid-compact{grid-template-columns:1fr 1fr;gap:22px 34px;margin:24px 0}.admission-reminder{margin-top:22px;padding:18px 0;border-color:rgba(121,151,255,.24)}.mini-price{font-size:52px}.ritual-consent{font-size:11px}

.ritual-calendar-screen{background:#06112d}.calendar-room-head{width:100%;margin:0;display:grid;grid-template-columns:58px 1fr auto;gap:20px;align-items:end}.calendar-room-head>img{width:48px;filter:invert(73%) sepia(45%) saturate(1233%) hue-rotate(192deg)}.calendar-room-head h2{font-family:var(--serif);font-size:clamp(34px,4vw,62px);margin:0 0 4px}.calendar-room-head p{font-size:12px}.calendar-price strong{font-size:54px}.calendly-frame{width:100%;height:auto;min-height:0;border:1px solid rgba(121,151,255,.32);background:#f7f5f2;overflow:auto}.calendly-inline-widget{height:100%;min-height:620px}.calendar-fallback{width:100%;margin:0;font-size:9px}

/* ===== Member portal — base identity (DA). Layout/position for shell, stack,
   back link and card live in ONE place: the "Member access room" block below. ===== */
.connection-shell::before{content:"";position:absolute;inset:-20%;background:linear-gradient(115deg,transparent 40%,rgba(95,143,255,.08) 50%,transparent 60%);animation:scan 8s linear infinite;pointer-events:none}@keyframes scan{from{transform:translateX(-25%)}to{transform:translateX(25%)}}
.connection-back{display:flex;align-items:center;gap:9px;font-size:8px;letter-spacing:.18em;text-transform:uppercase;color:#dfe6ff}.connection-back img{width:34px;filter:invert(75%) sepia(39%) saturate(1200%) hue-rotate(190deg)}
.connection-card{border:1px solid rgba(121,151,255,.25);background:rgba(5,10,24,.58);backdrop-filter:blur(20px)}
.connection-card .brand-lockup{display:flex;align-items:center;gap:12px;margin-bottom:42px}.connection-card .brand-lockup img{width:42px}.connection-card .brand-lockup span{font-size:10px;letter-spacing:.22em;text-transform:uppercase}.connection-card h1{font-family:var(--serif);font-weight:400;line-height:.92;margin:0 0 22px}.connection-card p{color:rgba(240,233,223,.68)}.connection-status{display:inline-flex;margin-top:24px;padding:9px 12px;border:1px solid rgba(121,151,255,.34);color:#aec2ff;font-size:9px;letter-spacing:.18em;text-transform:uppercase}.connection-note{border-top:1px solid rgba(121,151,255,.2);font-size:13px!important;color:#dce5ff!important}

@media(max-width:1050px){
  .hero-content{padding-right:var(--pad)}.ai-disclosure{right:var(--pad)}
  .btn-login{display:none}
  .contribution-grid{grid-template-columns:repeat(3,1fr)}
}

@media(max-width:760px){
  .site-header{grid-template-columns:1fr auto;height:76px}.nav,.header-actions .lang-switch,.header-actions .btn-login,.header-actions .btn-mini{display:none}.header-actions{grid-column:2}.brand-word{display:inline-block;font-size:12px}.brand img{width:34px;height:34px}.menu-toggle{display:block}
  .hero-media video{object-fit:cover;object-position:center center}
  .hero-content{padding:calc(var(--header) + 44px) 28px 32px}
  .hero .eyebrow,.hero h1{opacity:0;transform:translateY(10px);transition:opacity .6s ease,transform .6s ease}.hero-delay-ready .hero .eyebrow,.hero-delay-ready .hero h1{opacity:1;transform:none}
  .hero h1{font-size:clamp(48px,15vw,76px)}
  .hero-sub{margin-top:24px;padding-top:18px}.hero-ctas{width:100%}.hero-ctas .btn{flex:1}
  .ai-disclosure{display:none}
  .split-media .portrait-official{object-position:center 10%}
  .mexico-tone{font-size:clamp(19px,5.2vw,25px)!important;line-height:1.52}
  .house-sigils{margin-top:50px;gap:20px}

  .ritual-screen-inner,.ritual-wide{width:calc(100% - 34px);max-height:calc(100dvh - 24px)}
  .ritual-question-wrap{padding:58px 0 16px}
  .ritual-screen h2{font-size:clamp(38px,10.8vw,60px);margin-bottom:16px}
  .ritual-opening{align-items:stretch}.ritual-opening-bg img{object-position:54% center}.ritual-opening-shade{background:linear-gradient(0deg,rgba(3,4,8,.96) 0%,rgba(3,4,8,.76) 64%,rgba(7,18,46,.3) 100%)}
  .ritual-opening-inner{display:flex;flex-direction:column;justify-content:flex-end;padding:78px 0 24px}.ritual-opening-grid{display:block}.ritual-opening h1{font-size:clamp(48px,13vw,70px)}.ritual-price span{font-size:31vw}.ritual-price sup{font-size:10vw;margin-top:12px}.ritual-opening-meta{margin-bottom:18px}.ritual-manifesto p{font-size:12.5px;line-height:1.46}.ritual-manifesto p:nth-child(2){display:none}.ritual-enter{height:52px;width:100%;margin-top:10px}.ritual-sigil{top:58px}.ritual-sigil img{width:54px;height:54px}
  .ritual-options{grid-template-columns:1fr;margin-top:18px}.ritual-option{min-height:92px}.ritual-option span{padding:17px 18px}.ritual-option strong{font-size:24px}.ritual-option small{margin-top:8px;font-size:12px}
  .ritual-actions{margin-top:14px}.ritual-next,.ritual-back{padding:10px 0}
  .trajectory-lines label{grid-template-columns:62px 1fr;gap:14px;padding:10px 0}.trajectory-lines b{font-size:38px}.trajectory-lines textarea{min-height:52px;max-height:62px;font-size:14px}.ritual-intro{font-size:13px;margin-bottom:14px}
  .contribution-grid{grid-template-columns:1fr 1fr;margin:14px 0 10px}.contribution-grid label{min-height:50px}.contribution-grid span{padding:11px 12px;font-size:10.5px}.ritual-field-free textarea{min-height:48px;max-height:56px;font-size:14px}
  .identity-grid-compact{grid-template-columns:1fr;gap:13px;margin:14px 0}.ritual-field input{font-size:15px;padding:8px 0}.ritual-consent{font-size:10.5px;line-height:1.38}.admission-reminder{grid-template-columns:auto 1fr;gap:16px;margin-top:13px;padding:12px 0}.mini-price{font-size:40px}.admission-reminder p{font-size:10.5px;line-height:1.38}.ritual-submit{height:50px;width:auto}
  .calendar-room-head{grid-template-columns:36px 1fr auto;gap:9px}.calendar-room-head>img{width:32px}.calendar-room-head h2{font-size:28px}.calendar-room-head p{display:none}.calendar-price strong{font-size:34px}.calendar-price span{font-size:7px}.calendar-fallback{font-size:8px}
  .ritual-hud-toggle{left:10px;top:10px}.ritual-hud-toggle span{display:none}
}

@media(max-width:420px){
  .brand-word{font-size:10.5px;letter-spacing:.16em}.brand img{width:31px;height:31px}
  .hero-content{padding-left:20px;padding-right:20px}.hero h1{font-size:clamp(44px,14.5vw,64px)}
  .ritual-opening-inner{padding-bottom:18px}.ritual-manifesto p{font-size:11.8px}.ritual-opening-meta span{font-size:7px}.ritual-price{margin-bottom:12px}
  .ritual-question-wrap{padding-top:52px}.ritual-screen h2{font-size:clamp(35px,10vw,52px)}
  .contribution-grid span{font-size:9.8px}.admission-reminder p{font-size:9.8px}
}

/* Editorial refinements */
body{font-family:"Avenir Next",Avenir,"Helvetica Neue",Helvetica,Arial,sans-serif}
.kicker,.chapter,.ritual-chapter,.ritual-overline{font-family:var(--mexico);letter-spacing:.18em}

/* ===== V3 refinements — cinematic hero, coded initiation, member access ===== */
.brand-word{display:inline-block}

/* Home film: full bleed, preserve lower-right signature, remove side letterboxing */
.hero-media{display:block;background:#050504}
.hero-media video{width:100%;height:100%;object-fit:cover;object-position:center 58%;background:#050504}
.hero-content{padding-right:var(--pad);max-width:none;width:100%;margin:0}
.hero-sub{justify-content:flex-start;align-items:flex-end;gap:clamp(42px,6vw,96px);max-width:min(1120px,78vw)}
.hero-entry-block{display:grid;gap:16px;min-width:0}
.hero-entry-block .ai-disclosure{position:static;max-width:390px;text-align:left;margin:0;font-size:8.5px;line-height:1.45;color:rgba(255,255,255,.62)}
.hero-entry-block .hero-ctas{justify-content:flex-start}

/* CLEOPATRE official portrait: image begins below the fixed navigation so the head is never hidden */
.cleopatre-hero.has-image img{inset:var(--header) 0 0 0;width:100%;height:calc(100% - var(--header));object-position:center 12%}

/* Initiation HUD must sit above the immersive experience when recalled */
.ritual-page .site-header{z-index:230}
.ritual-page .mobile-nav{z-index:240}
.ritual-page.ritual-hud-visible .site-header{opacity:1;pointer-events:auto;transform:translateY(0)}

/* After the public threshold, every step lives inside a private portal-card like the member login */
.ritual-screen:not(.ritual-opening):not(.ritual-gate-screen):not(.ritual-calendar-screen){padding:18px 0;overflow:hidden}
.ritual-screen:not(.ritual-opening):not(.ritual-gate-screen):not(.ritual-calendar-screen) .ritual-screen-inner{
  width:min(1160px,calc(100% - 2*var(--pad)));
  max-height:calc(100dvh - 36px);
  overflow-y:auto;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  padding:clamp(40px,4.4vw,66px);
  border:1px solid rgba(121,151,255,.25);
  background:rgba(5,10,24,.64);
  backdrop-filter:blur(20px);
  box-shadow:0 30px 100px rgba(0,0,0,.26),inset 0 0 80px rgba(51,94,255,.03);
  scrollbar-width:thin;
  scrollbar-color:rgba(121,151,255,.38) transparent;
}
.ritual-screen:not(.ritual-opening):not(.ritual-gate-screen):not(.ritual-calendar-screen) .ritual-screen-inner::-webkit-scrollbar{width:5px}
.ritual-screen:not(.ritual-opening):not(.ritual-gate-screen):not(.ritual-calendar-screen) .ritual-screen-inner::-webkit-scrollbar-thumb{background:rgba(121,151,255,.34)}
.ritual-question-wrap{padding:clamp(40px,4.4vw,66px)!important}
.ritual-actions{position:sticky;bottom:-1px;z-index:6;padding:18px 0 4px;background:linear-gradient(180deg,rgba(5,10,24,0),rgba(5,10,24,.96) 32%)}

/* Admission code chamber */
.ritual-gate-card{width:min(760px,calc(100% - 40px))!important}
.ritual-gate-brand{display:flex;align-items:center;gap:12px;margin-bottom:42px}
.ritual-gate-brand img{width:42px;height:42px;object-fit:contain}
.ritual-gate-brand span{font-size:10px;letter-spacing:.22em;text-transform:uppercase}
.ritual-code-row{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:end;margin-top:30px}
.ritual-code-field input{text-transform:uppercase;letter-spacing:.16em;font-size:20px}
.ritual-code-submit,.ritual-dossier-mail{display:inline-flex;align-items:center;justify-content:space-between;gap:24px;height:52px;padding:0 18px;border:1px solid var(--ritual-blue);background:var(--ritual-blue);color:#fff;font-size:9px;letter-spacing:.18em;text-transform:uppercase;cursor:pointer;transition:.25s}
.ritual-code-submit:hover,.ritual-dossier-mail:hover{background:#fff;border-color:#fff;color:#08122e}
.ritual-code-submit:disabled{opacity:.45;cursor:wait}
.ritual-code-submit i,.ritual-dossier-mail i{font-style:normal;font-size:16px}
.ritual-code-message{min-height:22px;margin-top:14px;color:#b7c8ff;font-size:11px;letter-spacing:.04em}
.ritual-code-help{margin-top:22px;padding-top:22px;border-top:1px solid rgba(121,151,255,.22)}
.ritual-code-help[hidden]{display:none}
.ritual-code-help p{color:rgba(240,233,223,.72);font-size:13px;line-height:1.55;max-width:620px;margin:0 0 18px}

/* Member login becomes a real credential surface without pretending a membership exists */
.connection-form{display:grid;gap:20px;margin-top:30px}
.connection-field{display:grid;gap:7px}
.connection-field span{font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:#9db6ff}
.connection-field input{width:100%;appearance:none;background:transparent;color:var(--paper);border:0;border-bottom:1px solid rgba(121,151,255,.32);border-radius:0;padding:12px 0;font-size:17px;outline:none}
.connection-field input:focus{border-color:#9db6ff}
.connection-submit{height:52px;margin-top:6px;border:1px solid var(--ritual-blue);background:var(--ritual-blue);color:#fff;font-size:9px;letter-spacing:.19em;text-transform:uppercase;cursor:pointer;transition:.25s}
.connection-submit:hover{background:#fff;color:#08122e;border-color:#fff}
.connection-error{min-height:20px;color:#b7c8ff;font-size:11px}

@media(min-width:761px){
  /* Keep the desktop master cinematic while protecting the embedded signature. */
  .hero-media video{object-position:center 58%}
  .hero-content{padding-bottom:36px}
  .hero h1{max-width:1000px}
}

@media(max-width:1050px){
  .hero-sub{max-width:100%;gap:28px}
  .hero-entry-block .ai-disclosure{max-width:320px}
}

@media(max-width:760px){
  .brand-word{display:inline-block}
  .hero-media video{object-fit:cover;object-position:center center}
  .hero-sub{display:block;max-width:100%}
  .hero-entry-block{gap:12px}
  .hero-entry-block .ai-disclosure{display:none}
  .cleopatre-hero.has-image img{inset:var(--header) 0 0 0;height:calc(100% - var(--header));object-position:center 8%}

  .ritual-screen:not(.ritual-opening):not(.ritual-gate-screen):not(.ritual-calendar-screen){padding:8px 0}
  .ritual-screen:not(.ritual-opening):not(.ritual-gate-screen):not(.ritual-calendar-screen) .ritual-screen-inner{
    width:calc(100% - 18px)!important;
    max-height:calc(100dvh - 16px);
    padding:58px 18px 20px!important;
    margin:auto;
  }
  .ritual-screen h2{font-size:clamp(34px,9.8vw,52px)}
  .ritual-actions{bottom:-20px;margin-top:18px;padding:20px 0 18px}
  .ritual-gate-brand{margin-bottom:30px}
  .ritual-code-row{grid-template-columns:1fr;gap:12px}
  .ritual-code-submit{width:100%}
  .contribution-grid{grid-template-columns:1fr 1fr}
}

@media(max-width:430px){
  .ritual-screen:not(.ritual-opening):not(.ritual-gate-screen):not(.ritual-calendar-screen) .ritual-screen-inner{width:calc(100% - 12px)!important;max-height:calc(100dvh - 10px);padding:54px 14px 18px!important}
  .contribution-grid span{font-size:9.6px;padding:11px 10px}
  .ritual-code-field input{font-size:18px}
}


/* ===== V4 refinements — first-code threshold, cleaner ritual navigation, symbolic rails ===== */
.nav{gap:clamp(18px,2.2vw,42px)}

/* Symbolic marks on editorial rails */
.chapter-sigil{width:72px;height:72px;margin:0 0 30px;color:var(--stone);opacity:.7}
.chapter-sigil img{display:block;width:100%;height:100%;filter:invert(72%) sepia(19%) saturate(585%) hue-rotate(350deg) brightness(91%)}
.editorial-grid .aside .chapter{max-width:180px}

/* Admission code is the public first threshold and keeps the warm architectural language. */
.ritual-code-opening{background:#050504;align-items:center;padding:0}
.ritual-code-opening .ritual-opening-bg,.ritual-code-opening .ritual-opening-shade{position:absolute;inset:0}
.ritual-code-opening .ritual-opening-bg img{width:100%;height:100%;object-fit:cover;object-position:center}
.ritual-code-opening .ritual-opening-shade{background:linear-gradient(90deg,rgba(3,3,4,.92) 0%,rgba(3,3,4,.68) 50%,rgba(25,18,12,.38) 100%)}
.ritual-code-opening-inner{position:relative;z-index:3;width:min(1380px,calc(100% - 2*var(--pad)));max-height:calc(100dvh - 34px);overflow-y:auto;padding:54px 0 42px}
.ritual-code-opening-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:clamp(48px,8vw,120px);align-items:end}
.ritual-code-opening h1{font-family:var(--serif);font-weight:400;font-size:clamp(66px,8vw,126px);line-height:.86;letter-spacing:-.05em;margin:0 0 28px}
.ritual-code-lead{max-width:520px;color:rgba(240,233,223,.7);font-size:clamp(14px,1.2vw,18px);line-height:1.55}
.ritual-code-manifesto{max-width:610px}
.ritual-code-opening .ritual-field>span{color:var(--stone)}
.ritual-code-opening .ritual-code-field input{border-color:rgba(240,233,223,.34);color:#fff}
.ritual-code-opening .ritual-code-submit,.ritual-code-opening .ritual-dossier-mail{background:var(--paper);border-color:var(--paper);color:var(--ink);box-shadow:none}
.ritual-code-opening .ritual-code-submit:hover,.ritual-code-opening .ritual-dossier-mail:hover{background:transparent;border-color:rgba(240,233,223,.65);color:#fff}
.ritual-code-opening .ritual-code-message{color:var(--paper)}
.ritual-code-opening .ritual-code-help{border-color:rgba(240,233,223,.22)}

/* Question controls live AFTER the content, never over it. */
.ritual-actions{position:static!important;bottom:auto!important;margin-top:30px!important;padding:20px 0 4px!important;background:none!important;border-top:1px solid rgba(121,151,255,.2)}
.ritual-question-wrap{scroll-padding-bottom:40px}

@media(max-width:1050px){
  .nav{gap:18px}
  .nav a{font-size:9px}
}

@media(max-width:760px){
  .chapter-sigil{width:56px;height:56px;margin-bottom:18px}
  .ritual-code-opening{align-items:stretch}
  .ritual-code-opening .ritual-opening-bg img{object-position:57% center}
  .ritual-code-opening .ritual-opening-shade{background:linear-gradient(0deg,rgba(3,4,8,.97) 0%,rgba(3,4,8,.8) 64%,rgba(25,18,12,.35) 100%)}
  .ritual-code-opening-inner{width:calc(100% - 34px);max-height:100dvh;padding:78px 0 26px}
  .ritual-code-opening-grid{display:block}
  .ritual-code-opening h1{font-size:clamp(56px,15vw,78px);margin-bottom:16px}
  .ritual-code-lead{font-size:12.5px;margin-bottom:26px}
  .ritual-code-manifesto>p:first-child{font-size:12.5px}
  .ritual-code-opening .ritual-sigil{top:58px}
  .ritual-actions{display:flex!important;position:static!important;margin-top:26px!important;padding:18px 0 8px!important}
  .ritual-next,.ritual-back{min-height:42px}
}

@media(max-width:430px){
  .ritual-code-opening-inner{width:calc(100% - 26px);padding-top:70px}
  .ritual-code-opening h1{font-size:clamp(50px,14.2vw,68px)}
}


/* ===== V5 final polish ===== */
/* Desktop: restore the original shorter rule; place disclosure + CTAs at its right endpoint. */
@media(min-width:761px){
  html:not(.mc-social-webview):not(.mc-compact-mobile) body.home-page .hero-sub{display:grid;grid-template-columns:1fr minmax(320px,430px);align-items:end;gap:clamp(36px,5vw,84px);max-width:min(1120px,78vw);width:min(1120px,78vw)}
  html:not(.mc-social-webview):not(.mc-compact-mobile) body.home-page .hero-entry-block{justify-self:end;align-items:end;text-align:right}
  html:not(.mc-social-webview):not(.mc-compact-mobile) body.home-page .hero-entry-block .ai-disclosure{max-width:390px;text-align:right}
  html:not(.mc-social-webview):not(.mc-compact-mobile) body.home-page .hero-entry-block .hero-ctas{justify-content:flex-end}
}

/* Home manifesto: keep the block in its original position. On mobile, only the second line shifts a few pixels down. */
.hero h1 .hero-line{display:block}
@media(max-width:760px){
  .hero .eyebrow,.hero h1{opacity:1!important;transform:none!important;transition:none!important}
  .hero h1 .hero-line-2{position:relative;top:.10em}
}

/* ===== 2026.09 header fit hotfix ===== */
/* Keep the luxury desktop lockup intact while preventing the right CTA from
   being squeezed or pushed outside the viewport on narrower desktop widths. */
.site-header{
  grid-template-columns:max-content minmax(0,1fr) max-content;
  column-gap:clamp(18px,2vw,36px);
}
.nav{
  justify-self:center;
  min-width:0;
  white-space:nowrap;
  gap:clamp(14px,2vw,34px);
}
.header-actions{
  min-width:max-content;
  white-space:nowrap;
}
.btn-mini,.btn-login{white-space:nowrap}

@media (min-width:1221px) and (max-width:1800px){
  .site-header{padding-left:clamp(24px,3vw,48px);padding-right:clamp(24px,3vw,48px);column-gap:clamp(14px,1.5vw,26px)}
  .brand{gap:10px;font-size:11px;letter-spacing:.16em}
  .brand img{width:30px;height:30px}
  .nav{gap:clamp(12px,1.55vw,25px);font-size:10px;letter-spacing:.145em}
  .header-actions{gap:10px}
  .btn-login{font-size:8.5px;letter-spacing:.145em}
  .btn-mini{padding:9px 12px;font-size:9px;letter-spacing:.145em}
}

/* Switch to the burger before the desktop navigation becomes cramped. */
@media (max-width:1220px) and (min-width:761px){
  .site-header{grid-template-columns:1fr auto}
  .site-header>.nav{display:none}
  .header-actions .lang-switch,.header-actions .btn-login,.header-actions .btn-mini{display:none}
  .header-actions{grid-column:2;justify-self:end;min-width:auto}
  .menu-toggle{display:block}
  .mobile-nav{
    display:flex;
    position:fixed;
    inset:0;
    z-index:95;
    background:rgba(8,8,7,.98);
    padding:120px var(--pad) max(50px,env(safe-area-inset-bottom));
    flex-direction:column;
    gap:8px;
    overflow-y:auto;
    overscroll-behavior:contain;
    transform:translateY(-105%);
    transition:.45s cubic-bezier(.7,0,.2,1)
  }
  .mobile-nav.open{transform:none}
  .mobile-nav a{font-family:var(--serif);font-size:clamp(40px,6vw,64px);line-height:1.02;border-bottom:1px solid var(--line);padding:10px 0}
  .mobile-nav .mobile-admission{margin-top:30px;font-family:var(--sans);font-size:12px;letter-spacing:.17em;text-transform:uppercase;border:1px solid var(--line);padding:16px;text-align:center;white-space:normal;flex:0 0 auto}
}

@media (max-width:760px){
  .mobile-nav{overflow-y:auto;overscroll-behavior:contain;padding-bottom:max(34px,env(safe-area-inset-bottom))}
  .mobile-nav .mobile-admission{white-space:normal;flex:0 0 auto;min-height:52px}
}


/* ===== V15 — Calendly render + header CTA lock ===== */
/* The CTA keeps its full label on desktop; when there is genuinely not enough
   room, the existing burger breakpoint takes over instead of clipping it. */
@media (min-width:1221px){
  .header-actions .btn-mini{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
    width:auto;
    min-width:154px;
    max-width:none;
    overflow:visible;
    text-overflow:clip;
  }
  .header-actions{overflow:visible}
}
@media (min-width:1221px) and (max-width:1500px){
  .site-header{padding-left:24px;padding-right:24px;column-gap:12px}
  .brand{font-size:10px;letter-spacing:.13em}
  .brand img{width:28px;height:28px}
  .nav{gap:13px;font-size:9px;letter-spacing:.11em}
  .header-actions{gap:8px}
  .btn-login{font-size:8px;letter-spacing:.11em}
  .header-actions .btn-mini{min-width:146px;padding:9px 10px;font-size:8.5px;letter-spacing:.12em}
}

/* Calendly loading/error affordance */
.calendly-frame .calendly-loading{
  position:absolute;inset:0;z-index:0;display:grid;place-items:center;
  color:#596174;background:#f7f5f2;font-size:10px;letter-spacing:.16em;text-transform:uppercase;
}
.calendly-frame .calendly-inline-widget{position:relative;z-index:1;background:transparent}
.calendly-frame.is-ready .calendly-loading{display:none}
.calendly-frame.is-error .calendly-loading{color:#5d4f46}
.calendar-fallback[hidden]{display:none!important}

/* ===== V16 — definitive header CTA + Calendly adaptive room ===== */
/* Keep the admission label whole. The middle navigation is the flexible zone;
   neither the brand nor the CTA is allowed to compress the text. */
@media (min-width:1221px){
  .site-header{
    grid-template-columns:max-content minmax(0,1fr) max-content;
    padding-left:clamp(22px,3.4vw,58px);
    padding-right:clamp(22px,3.4vw,58px);
    column-gap:clamp(14px,1.6vw,28px);
  }
  .site-header>.nav{
    min-width:0;
    justify-content:center;
    gap:clamp(11px,1.45vw,24px);
    font-size:clamp(8.5px,.58vw,10px);
    letter-spacing:.13em;
  }
  .header-actions{flex:0 0 auto;min-width:0;gap:10px}
  .header-actions .btn-mini{
    box-sizing:border-box;
    display:inline-flex;
    flex:0 0 auto;
    width:max-content!important;
    min-width:184px!important;
    max-width:none!important;
    padding:10px 16px!important;
    white-space:nowrap!important;
    overflow:visible!important;
    text-overflow:clip!important;
    line-height:1.15;
  }
}
/* On compact laptops, switch to the already-designed burger before any item
   can be squeezed. */
@media (min-width:761px) and (max-width:1320px){
  .site-header{grid-template-columns:1fr auto}
  .site-header>.nav{display:none}
  .header-actions .lang-switch,.header-actions .btn-login,.header-actions .btn-mini{display:none}
  .header-actions{grid-column:2;justify-self:end}
  .menu-toggle{display:block}
  .mobile-nav{
    display:flex;position:fixed;inset:0;z-index:95;background:rgba(8,8,7,.98);
    padding:120px var(--pad) max(50px,env(safe-area-inset-bottom));
    flex-direction:column;gap:8px;overflow-y:auto;overscroll-behavior:contain;
    transform:translateY(-105%);transition:.45s cubic-bezier(.7,0,.2,1)
  }
  .mobile-nav.open{transform:none}
}
@media(max-width:760px){
  .mobile-nav .mobile-admission{display:flex;align-items:center;justify-content:center;min-height:58px;padding:18px 16px!important;line-height:1.25;overflow:visible}
}

/* ===== V17 — Calendly native auto-resize, no nested fixed viewport =====
   Calendly's own advanced embed now owns its height (resize:true). The Maison
   page scrolls naturally around it; we no longer force a second height or a
   nested scroll region that fights the iframe. */
.ritual-calendar-screen{
  overflow-x:hidden!important;
  overflow-y:auto!important;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-y:contain;
  /* .ritual-screen's base align-items:center vertically centers its child.
     Once that child (calendar-room-inner) grows taller than the screen —
     which it always does once Calendly loads real content — a centered flex
     item overflows equally above and below, and desktop mouse-wheel/track-
     pad scrolling over a centered-but-overflowing flex child is unreliable
     in some engines (the classic "align-items:center + overflow:auto" trap).
     Anchoring to the top removes the ambiguity: content simply starts at the
     top and the screen scrolls straight down to the true end, every time. */
  align-items:flex-start!important;
}
/* A CSS transform on the same box that owns the scroll can break iOS Safari
   touch scrolling even at scale(1)/translateX(0), so this screen settles
   with no transform once active — the entrance animation itself is handled
   by .ritual-screen-entering and is unaffected. */
.ritual-calendar-screen.ritual-screen-active{
  transform:none!important;
}
.ritual-calendar-screen .calendar-room-inner{
  width:min(1180px,calc(100% - 2*var(--pad)))!important;
  min-height:100dvh!important;
  height:auto!important;
  max-height:none!important;
  overflow:visible!important;
  display:block!important;
  padding:clamp(24px,3.5vh,44px) 0 clamp(46px,6vh,76px)!important;
}
.ritual-calendar-screen .calendar-room-head{
  width:min(980px,100%)!important;
  margin:0 auto 20px!important;
}
.ritual-calendar-screen .calendly-frame{
  position:relative!important;
  width:min(980px,100%)!important;
  margin:0 auto!important;
  min-height:700px!important;
  height:auto!important;
  max-height:none!important;
  overflow:visible!important;
  background:#f7f5f2!important;
  border:1px solid rgba(121,151,255,.32)!important;
  transition:min-height .25s ease!important;
}
.ritual-calendar-screen .calendly-frame.is-ready{
  min-height:0!important;
}
.ritual-calendar-screen .calendly-inline-widget{
  display:block!important;
  width:100%!important;
  min-width:320px!important;
  height:700px;
  min-height:0!important;
  max-height:none!important;
  overflow:visible!important;
}
.ritual-calendar-screen .calendly-inline-widget iframe{
  display:block!important;
  width:100%!important;
  min-width:320px!important;
  min-height:0!important;
  max-height:none!important;
  border:0!important;
}
.ritual-calendar-screen .calendar-fallback{
  width:min(980px,100%)!important;
  margin:12px auto 0!important;
}

@media(max-width:760px){
  .ritual-calendar-screen .calendar-room-inner{
    width:100%!important;
    padding:16px 0 max(36px,env(safe-area-inset-bottom))!important;
  }
  .ritual-calendar-screen .calendar-room-head{
    width:calc(100% - 28px)!important;
    margin:0 auto 14px!important;
    grid-template-columns:42px 1fr!important;
    gap:10px!important;
  }
  .ritual-calendar-screen .calendar-price{
    grid-column:1/-1!important;
    margin-top:6px!important;
  }
  .ritual-calendar-screen .calendly-frame{
    width:100%!important;
    min-height:700px!important;
    border-left:0!important;
    border-right:0!important;
  }
  .ritual-calendar-screen .calendly-frame.is-ready{
    min-height:0!important;
  }
  .ritual-calendar-screen .calendly-inline-widget{
    width:100%!important;
    min-width:320px!important;
    height:700px;
  }
  .ritual-calendar-screen .calendly-inline-widget iframe{
    width:100%!important;
    min-width:320px!important;
  }
  .ritual-calendar-screen .calendar-fallback{
    width:calc(100% - 28px)!important;
  }
}


/* ---------- protection visuelle / copyright ---------- */
img,video{
  -webkit-user-select:none;
  user-select:none;
  -webkit-user-drag:none;
  -webkit-touch-callout:none;
}

.mc-protection-watermark{
  position:fixed;
  inset:0;
  z-index:9980;
  pointer-events:none;
  opacity:0;
  visibility:hidden;
  transition:opacity .18s ease,visibility .18s ease;
  background-image:url("../img/watermark-protection.svg");
  background-repeat:repeat;
  background-size:360px 180px;
  mix-blend-mode:screen;
}

.mc-rights-toast{
  position:fixed;
  left:50%;
  bottom:max(24px,env(safe-area-inset-bottom));
  z-index:9990;
  width:min(620px,calc(100vw - 36px));
  display:grid;
  grid-template-columns:42px 1fr;
  gap:15px;
  align-items:center;
  padding:15px 18px;
  transform:translate(-50%,18px);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  color:var(--paper);
  background:rgba(8,8,7,.94);
  border:1px solid rgba(179,145,93,.62);
  box-shadow:0 18px 60px rgba(0,0,0,.38);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  transition:opacity .24s ease,transform .24s ease,visibility .24s ease;
}
.mc-rights-mark{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border:1px solid rgba(179,145,93,.65);
  color:var(--brass);
  font-family:var(--serif);
  font-size:22px;
}
.mc-rights-copy{display:flex;flex-direction:column;min-width:0}
.mc-rights-copy strong{
  font-size:9px;
  letter-spacing:.22em;
  font-weight:500;
  color:var(--brass);
}
.mc-rights-title{
  margin-top:2px;
  font-family:var(--serif);
  font-size:19px;
  line-height:1.15;
}
.mc-rights-detail{
  margin-top:3px;
  color:rgba(240,233,223,.62);
  font-size:10px;
  line-height:1.45;
  letter-spacing:.025em;
}
body.mc-protection-active .mc-protection-watermark{
  opacity:.16;
  visibility:visible;
}
body.mc-protection-active .mc-rights-toast{
  opacity:1;
  visibility:visible;
  transform:translate(-50%,0);
}

@media(max-width:600px){
  .mc-protection-watermark{background-size:260px 130px}
  .mc-rights-toast{
    grid-template-columns:34px 1fr;
    gap:11px;
    padding:12px 13px;
    bottom:max(16px,env(safe-area-inset-bottom));
  }
  .mc-rights-mark{width:34px;height:34px;font-size:18px}
  .mc-rights-title{font-size:16px}
  .mc-rights-detail{font-size:9px}
}


/* ===== V19 — in-app mobile browser / dynamic viewport hardening =====
   Instagram, Threads, TikTok and iOS in-app browsers expose a viewport that
   can change as their own chrome expands/collapses. --mc-app-height is kept
   in sync with VisualViewport by maison.js so the hero always fits what the
   visitor can actually see. */
html,body{width:100%;max-width:100%;overflow-x:hidden}

@media(max-width:760px){
  :root{--header:76px}
  .site-header{height:var(--header);padding-left:max(20px,env(safe-area-inset-left));padding-right:max(20px,env(safe-area-inset-right))}

  .hero{
    width:100%;
    min-height:var(--mc-app-height,100dvh);
    height:var(--mc-app-height,100dvh);
    max-height:var(--mc-app-height,100dvh);
    overflow:hidden;
  }
  .hero-media{inset:0;width:100%;height:100%}
  .hero-media video{width:100%;height:100%;object-fit:cover;object-position:center center}
  .hero-content{
    width:100%;
    min-height:var(--mc-app-height,100dvh);
    height:var(--mc-app-height,100dvh);
    padding:calc(var(--header) + clamp(18px,3.2vh,34px)) max(20px,env(safe-area-inset-right)) max(22px,env(safe-area-inset-bottom));
    padding-left:max(20px,env(safe-area-inset-left));
    justify-content:flex-end;
    overflow:hidden;
  }
  .hero .eyebrow{font-size:clamp(8px,2.5vw,10px);letter-spacing:.24em;margin-bottom:12px;line-height:1.35}
  .hero h1{
    width:100%;
    max-width:100%;
    font-size:clamp(43px,min(14.3vw,8.3vh),68px);
    line-height:.91;
    letter-spacing:-.04em;
    text-wrap:balance;
  }
  .hero h1 .hero-line-2{top:.08em}
  .hero-sub{margin-top:clamp(16px,2.4vh,24px);padding-top:clamp(13px,2vh,18px)}
  .hero-sub p{font-size:clamp(9px,2.6vw,11px);margin-bottom:clamp(12px,1.8vh,16px)}
  .hero-ctas{gap:10px;display:grid;grid-template-columns:1fr 1fr;width:100%}
  .hero-ctas .btn{width:100%;min-width:0;min-height:clamp(48px,6.5vh,58px);padding:0 12px;line-height:1.25;text-align:center}

  /* Deep links opened inside social-app browsers must never create a page
     wider than the visible viewport. */
  .page-hero,.page-hero .section-inner,.section-inner,.split,.editorial-grid{max-width:100%;min-width:0}
  .page-title{font-size:clamp(48px,14.5vw,74px);max-width:100%;overflow-wrap:anywhere;word-break:normal}
  .page-deck{max-width:100%}
}

@media(max-width:430px){
  .hero-content{padding-left:max(18px,env(safe-area-inset-left));padding-right:max(18px,env(safe-area-inset-right))}
  .hero h1{font-size:clamp(42px,min(14vw,8vh),62px)}
}

@media(max-width:760px) and (max-height:700px){
  .hero-content{padding-top:calc(var(--header) + 12px);padding-bottom:max(16px,env(safe-area-inset-bottom))}
  .hero .eyebrow{margin-bottom:8px}
  .hero h1{font-size:clamp(40px,min(12.8vw,7.8vh),58px)}
  .hero-sub{margin-top:12px;padding-top:11px}
  .hero-sub p{margin-bottom:10px}
  .hero-ctas .btn{min-height:46px;font-size:9px}
}

/* ===== V20 — mobile header parity =====
   The homepage header now uses the exact same solid House treatment as the
   internal pages on mobile/in-app browsers. This removes the optical offset
   caused by the hero video showing through the navigation bar and keeps the
   burger permanently legible. */
@media(max-width:760px){
  .site-header{
    background:rgba(8,8,7,.96);
    -webkit-backdrop-filter:blur(12px);
    backdrop-filter:blur(12px);
    border-bottom-color:var(--line);
    box-sizing:border-box;
  }
  .site-header .brand,
  .site-header .header-actions{align-self:center}
  .site-header .menu-toggle{margin:0;color:var(--paper)}
}


/* ===== V21 — social in-app browser width lock =====
   Instagram / Threads / TikTok webviews can apply a legacy shrink-to-fit pass
   when a rich hero contains a temporarily wider child. Keep the homepage
   layout viewport pinned to the real device width and make every header/hero
   child shrinkable so the webview never offsets the navigation horizontally. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
@media(max-width:760px){
  html,body{min-width:0!important;width:100%!important;max-width:100%!important;margin:0!important}
  body{position:relative!important}
  .site-header{
    position:fixed!important;
    left:0!important;
    right:0!important;
    width:auto!important;
    max-width:none!important;
    min-width:0!important;
    transform:none!important;
    margin:0!important;
    box-sizing:border-box!important;
  }
  .site-header>.brand,
  .site-header>.header-actions,
  .site-header .menu-toggle{min-width:0!important;max-width:100%!important}
  .site-header>.brand{overflow:hidden}
  .site-header .brand-word{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  main,.hero,.hero-media,.hero-content,.hero-sub,.hero-entry-block,.hero-ctas{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
  }
  .hero h1,.hero .eyebrow,.hero-sub p{max-width:100%!important;min-width:0!important}
  .mobile-nav{left:0!important;right:0!important;width:auto!important;max-width:none!important;box-sizing:border-box!important}
}

/* ===== V22 — TRUE in-app webview compact mode =====
   Some Instagram / Threads / TikTok iOS webviews expose a layout viewport
   different from the actually visible VisualViewport. Media queries can then
   select tablet/desktop hero rules on a phone. JS adds .mc-compact-mobile from
   the *visible* width; these rules deliberately do not depend on @media. */
html.mc-compact-mobile,
html.mc-compact-mobile body{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  margin:0!important;
  overflow-x:clip!important;
}
html.mc-compact-mobile body{position:relative!important}
html.mc-compact-mobile main{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  margin:0!important;
  overflow-x:clip!important;
}
html.mc-compact-mobile .site-header{
  left:0!important;
  right:0!important;
  width:auto!important;
  max-width:none!important;
  min-width:0!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  padding-left:max(20px,env(safe-area-inset-left))!important;
  padding-right:max(20px,env(safe-area-inset-right))!important;
  background:rgba(8,8,7,.96)!important;
  box-sizing:border-box!important;
}
html.mc-compact-mobile .site-header>.nav{display:none!important}
html.mc-compact-mobile .header-actions .lang-switch,
html.mc-compact-mobile .header-actions .btn-login,
html.mc-compact-mobile .header-actions .btn-mini{display:none!important}
html.mc-compact-mobile .menu-toggle{display:block!important}
html.mc-compact-mobile .brand-word{display:inline-block!important}
html.mc-compact-mobile .mobile-nav{
  display:flex!important;
  position:fixed!important;
  top:var(--header)!important;
  bottom:0!important;
  left:0!important;
  right:0!important;
  width:auto!important;
  max-width:none!important;
  box-sizing:border-box!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
}
html.mc-compact-mobile .hero{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  min-height:var(--mc-app-height,100dvh)!important;
  height:var(--mc-app-height,100dvh)!important;
  max-height:var(--mc-app-height,100dvh)!important;
  margin:0!important;
  overflow:hidden!important;
}
html.mc-compact-mobile .hero-media,
html.mc-compact-mobile .hero-media video{
  width:100%!important;
  max-width:100%!important;
  height:100%!important;
  min-width:0!important;
}
html.mc-compact-mobile .hero-media video{object-fit:cover!important;object-position:center center!important}
html.mc-compact-mobile .hero-content{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  min-height:var(--mc-app-height,100dvh)!important;
  height:var(--mc-app-height,100dvh)!important;
  margin:0!important;
  padding-top:calc(var(--header) + clamp(18px,3.2vh,34px))!important;
  padding-right:max(18px,env(safe-area-inset-right))!important;
  padding-bottom:max(22px,env(safe-area-inset-bottom))!important;
  padding-left:max(18px,env(safe-area-inset-left))!important;
  justify-content:flex-end!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
}
html.mc-compact-mobile .hero .eyebrow{font-size:clamp(8px,2.5vw,10px)!important;letter-spacing:.24em!important;margin:0 0 12px!important;line-height:1.35!important}
html.mc-compact-mobile .hero h1{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  margin:0!important;
  font-size:clamp(42px,min(14vw,8vh),62px)!important;
  line-height:.91!important;
  letter-spacing:-.04em!important;
  overflow-wrap:normal!important;
}
html.mc-compact-mobile .hero-sub{display:block!important;width:100%!important;max-width:100%!important;margin-top:clamp(16px,2.4vh,24px)!important;padding-top:clamp(13px,2vh,18px)!important}
html.mc-compact-mobile .hero-entry-block{display:block!important;width:100%!important;max-width:100%!important;text-align:left!important}
html.mc-compact-mobile .hero-entry-block .ai-disclosure{display:none!important}
html.mc-compact-mobile .hero-sub p{font-size:clamp(9px,2.6vw,11px)!important;margin-bottom:clamp(12px,1.8vh,16px)!important}
html.mc-compact-mobile .hero-ctas{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:10px!important;width:100%!important;max-width:100%!important}
html.mc-compact-mobile .hero-ctas .btn{width:100%!important;min-width:0!important;max-width:100%!important;min-height:clamp(48px,6.5vh,58px)!important;padding:0 12px!important;text-align:center!important}
html.mc-compact-mobile .ai-disclosure{display:none!important}


/* ===== V23 — rights notice refinement (connection layout consolidated
   separately below; only the request-link component style stays here) ===== */
.connection-request{
  min-height:52px;display:flex;align-items:center;justify-content:center;
  border:1px solid rgba(121,151,255,.38);
  color:#dce5ff;background:rgba(7,18,46,.18);
  font-size:9px;letter-spacing:.19em;text-transform:uppercase;transition:.25s;
}
.connection-request:hover{border-color:#fff;background:rgba(255,255,255,.06);color:#fff}

/* The old House copyright bandeau returns as a deliberate ceremonial popup. */
.mc-rights-toast{
  left:50%;top:50%;bottom:auto;
  width:min(590px,calc(100vw - 38px));
  grid-template-columns:52px 1fr;gap:18px;
  padding:22px 24px;
  transform:translate(-50%,-46%) scale(.985);
  background:rgba(5,5,5,.965);
  border:1px solid rgba(179,145,93,.82);
  box-shadow:0 26px 100px rgba(0,0,0,.62),inset 0 0 50px rgba(179,145,93,.035);
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
}
.mc-rights-mark{width:52px;height:52px;font-size:27px;border-color:rgba(179,145,93,.82)}
.mc-rights-copy strong{font-size:9px;letter-spacing:.24em;color:var(--brass)}
.mc-rights-title{margin-top:5px;font-family:var(--serif);font-size:25px;letter-spacing:.01em}
.mc-rights-detail{margin-top:7px;max-width:48ch;color:rgba(240,233,223,.68);font-size:10.5px;line-height:1.55}
body.mc-protection-active .mc-protection-watermark{opacity:.20;visibility:visible}
body.mc-protection-active .mc-rights-toast{
  opacity:1;visibility:visible;transform:translate(-50%,-50%) scale(1);
}

@media(max-width:600px){
  .mc-rights-toast{
    width:calc(100vw - 28px);grid-template-columns:40px 1fr;gap:13px;
    padding:17px 16px;
  }
  .mc-rights-mark{width:40px;height:40px;font-size:21px}
  .mc-rights-title{font-size:20px}
  .mc-rights-detail{font-size:9.5px}
}


/* ===== V24 — social WebView header geometry =====
   Keep horizontal layout on the CSS layout viewport. VisualViewport is used
   only for usable height. This avoids the right-side gutter seen in some
   Instagram/Threads/TikTok iOS WebViews. */
@media(max-width:1220px){
  .site-header{
    top:0!important;
    left:0!important;
    right:0!important;
    width:auto!important;
    max-width:none!important;
    box-sizing:border-box!important;
    z-index:9999!important;
  }
  .mobile-nav{z-index:9998!important}
}
@media(max-width:760px){
  :root{--mc-header-safe:calc(var(--header) + env(safe-area-inset-top,0px))}
  .site-header{
    height:var(--mc-header-safe)!important;
    padding-top:env(safe-area-inset-top,0px)!important;
    padding-left:max(20px,env(safe-area-inset-left,0px))!important;
    padding-right:max(20px,env(safe-area-inset-right,0px))!important;
  }
  .mobile-nav{
    top:var(--mc-header-safe)!important;
    left:0!important;
    right:0!important;
    width:auto!important;
    max-width:none!important;
    padding-left:max(20px,env(safe-area-inset-left,0px))!important;
    padding-right:max(20px,env(safe-area-inset-right,0px))!important;
    padding-bottom:max(34px,env(safe-area-inset-bottom,0px))!important;
  }
  .hero-content{
    padding-top:calc(var(--mc-header-safe) + clamp(18px,3.2vh,34px))!important;
  }
}
html.mc-compact-mobile .site-header{
  left:0!important;
  right:0!important;
  width:auto!important;
  max-width:none!important;
}
html.mc-compact-mobile .mobile-nav{
  left:0!important;
  right:0!important;
  width:auto!important;
  max-width:none!important;
}
html.mc-compact-mobile,
html.mc-compact-mobile body,
html.mc-compact-mobile main,
html.mc-compact-mobile .hero{
  width:100%!important;
  max-width:100%!important;
}

/* ===== V25 — contextual rights cartel / robust right-click protection ===== */
.mc-rights-toast{
  left:-9999px;
  top:-9999px;
  right:auto;
  bottom:auto;
  width:min(390px,calc(100vw - 24px));
  grid-template-columns:42px 1fr;
  gap:14px;
  padding:16px 17px;
  transform:translateY(8px) scale(.992);
  background:rgba(6,6,6,.965);
  border:1px solid rgba(179,145,93,.72);
  box-shadow:0 18px 60px rgba(0,0,0,.52),inset 0 0 34px rgba(179,145,93,.025);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-radius:1px;
  pointer-events:none;
}
.mc-rights-mark{
  width:42px;height:42px;
  font-size:21px;
  border-color:rgba(179,145,93,.72);
}
.mc-rights-copy strong{
  font-size:8.5px;
  letter-spacing:.22em;
  color:var(--brass);
  font-weight:500;
}
.mc-rights-title{
  margin-top:4px;
  font-family:var(--serif);
  font-size:20px;
  line-height:1.08;
  color:var(--paper);
}
.mc-rights-detail{
  margin-top:6px;
  color:rgba(240,233,223,.66);
  font-size:9.5px;
  line-height:1.5;
  letter-spacing:.02em;
}
body.mc-protection-active .mc-rights-toast{
  opacity:1;
  visibility:visible;
  transform:translateY(0) scale(1);
}
.mc-rights-toast.mc-rights-toast--bottom{
  width:min(520px,calc(100vw - 28px));
}
body.mc-protection-active .mc-rights-toast.mc-rights-toast--bottom{
  transform:translate(-50%,0) scale(1)!important;
}

@media(max-width:600px){
  .mc-rights-toast{
    width:min(340px,calc(100vw - 20px));
    grid-template-columns:36px 1fr;
    gap:11px;
    padding:13px 14px;
  }
  .mc-rights-mark{width:36px;height:36px;font-size:18px}
  .mc-rights-title{font-size:18px}
  .mc-rights-detail{font-size:9px}
}


/* Real DOM guard for Android Chrome long-press image menus.
   A pseudo-element is not sufficient on every Blink build: this guard is an
   actual element above the media, so the long-press target is never <img>. */
.mc-protected-host{position:relative!important}
.mc-media-guard{
  position:absolute!important;
  inset:0!important;
  z-index:20!important;
  display:block!important;
  background:rgba(0,0,0,0)!important;
  pointer-events:auto!important;
  -webkit-touch-callout:none!important;
  -webkit-user-select:none!important;
  user-select:none!important;
  -webkit-user-drag:none!important;
  touch-action:pan-y pinch-zoom!important;
}
.mc-protected-host>img,
.mc-protected-host>picture,
.mc-protected-host>video{
  -webkit-touch-callout:none!important;
  -webkit-user-select:none!important;
  user-select:none!important;
  -webkit-user-drag:none!important;
}
/* Existing pseudo guards are redundant once the real guard is present. */
.mc-protected-host::after{pointer-events:none!important}

/* Diagnostic overlay is opt-in via ?mcdebug=1 and invisible otherwise. */
#mc-viewport-debug{
  position:fixed;left:6px;right:6px;top:max(6px,env(safe-area-inset-top));z-index:2147483647;
  box-sizing:border-box;max-width:calc(100vw - 12px);max-height:60vh;overflow:hidden;
  padding:7px 9px;background:rgba(0,0,0,.9);
  color:#7dff9b;border:1px solid rgba(125,255,155,.5);font:10px/1.35 monospace;
  white-space:pre-wrap;word-break:break-all;pointer-events:none
}


/* ===== V28 — admission clarity / connection portal / Territoires parity ===== */

/* The dossier route must be visible before someone tries a random code. */
.ritual-code-help[hidden]{display:block!important}
.ritual-code-help{
  display:block!important;
  margin-top:20px;
  padding-top:18px;
  border-top:1px solid rgba(121,151,255,.22);
  color:rgba(240,233,223,.72);
}
.ritual-code-help p{margin:0 0 14px;max-width:680px;font-size:12px;line-height:1.58}
.ritual-dossier-mail{display:inline-flex;align-items:center;gap:12px;font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:#dce5ff}
.ritual-dossier-mail i{font-style:normal;color:#9db6ff}

/* Connection: normal-flow immersive room, not a fixed viewport sheet. This
   keeps the return link above the card and centres a compact, square-ish card. */
.connection-page{
  min-height:100%;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  background:#05102a;
}
.connection-shell{
  position:relative!important;
  inset:auto!important;
  width:100%!important;
  min-height:100dvh;
  display:grid!important;
  place-items:center!important;
  padding-block:clamp(28px,5vh,58px) clamp(32px,5vh,58px)!important;
  padding-inline:max(20px,env(safe-area-inset-left,0px))!important;
  overflow:hidden!important;
}
.connection-stack{
  position:relative;
  width:min(600px,100%)!important;
  margin:0 auto!important;
  display:grid!important;
  gap:18px!important;
}
.connection-back{
  position:relative!important;
  inset:auto!important;
  width:max-content!important;
  max-width:100%!important;
  margin:0 0 4px!important;
  padding:0!important;
  transform:none!important;
}
.connection-card{
  width:100%!important;
  min-height:0!important;
  max-height:none!important;
  padding:clamp(34px,4.2vw,52px)!important;
  overflow:visible!important;
  border:1px solid rgba(121,151,255,.27)!important;
  background:linear-gradient(145deg,rgba(5,10,24,.76),rgba(7,18,46,.56))!important;
  box-shadow:0 28px 90px rgba(0,0,0,.22);
}
.connection-card .brand-lockup{margin-bottom:30px!important}
.connection-card h1{font-size:clamp(58px,5.7vw,78px)!important;margin-bottom:18px!important}
.connection-card>p:not(.connection-note){margin-top:0;margin-bottom:0;font-size:15px;line-height:1.55}
.connection-form{gap:16px!important;margin-top:26px!important}
.connection-field{gap:5px!important}
.connection-field input{padding:10px 0!important}
.connection-submit{height:50px!important;margin-top:2px!important}
.connection-request{margin-top:0!important;min-height:48px!important}
.connection-error{min-height:14px!important}
.connection-note{margin-top:24px!important;padding-top:18px!important;font-size:11.5px!important;line-height:1.55!important}

/* Match the horizontal geometry of Territoires on every mobile/in-app browser.
   No JS-measured width, no screen.width, no VisualViewport.width. */
html.mc-social-webview,
html.mc-social-webview body.home-page,
html.mc-social-webview body.home-page main,
html.mc-social-webview body.home-page .hero,
html.mc-social-webview body.home-page .hero-media,
html.mc-social-webview body.home-page .hero-content,
html.mc-social-webview body.home-page .hero-sub,
html.mc-social-webview body.home-page .hero-entry-block,
html.mc-social-webview body.home-page .hero-ctas,
html.mc-social-webview body.home-page .site-header,
html.mc-social-webview body.home-page .mobile-nav{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  margin-left:0!important;
  margin-right:0!important;
  left:0!important;
  right:0!important;
  box-sizing:border-box!important;
}
html.mc-social-webview body.home-page .hero-sub{display:block!important;grid-template-columns:none!important}
html.mc-social-webview body.home-page .hero-entry-block{justify-self:stretch!important;text-align:left!important}

/* Same false-wide-viewport risk applies to any page, not just the home hero.
   connexion.html carries no .home-page class, so it got none of the above —
   give its own centered-card layout the same class-driven (not just
   media-query-driven) width lock, since a media query can't be trusted if
   the engine is misreporting the layout viewport width in the first place. */
html.mc-compact-mobile .connection-shell,
html.mc-social-webview .connection-shell{
  width:100%!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}
html.mc-compact-mobile .connection-stack,
html.mc-social-webview .connection-stack{
  width:min(600px,100%)!important;
  max-width:100%!important;
  margin-inline:auto!important;
}

@media(max-width:760px){
  /* Same horizontal contract as internal pages such as Territoires. */
  html,body{width:100%!important;max-width:100%!important;min-width:0!important;overflow-x:hidden!important}
  .site-header{
    left:0!important;right:0!important;width:100%!important;max-width:100%!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    padding-left:max(20px,env(safe-area-inset-left,0px))!important;
    padding-right:max(20px,env(safe-area-inset-right,0px))!important;
  }
  .site-header>.brand{min-width:0!important;overflow:hidden!important}
  .site-header .brand-word{min-width:0!important;max-width:100%!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
  .site-header>.header-actions{min-width:0!important;justify-self:end!important}
  .menu-toggle{flex:0 0 auto!important;margin:0!important}
  .mobile-nav{left:0!important;right:0!important;width:100%!important;max-width:100%!important}

  .home-page main,.home-page .hero,.home-page .hero-media,.home-page .hero-content{
    width:100%!important;min-width:0!important;max-width:100%!important;margin:0!important;
  }
  .home-page .hero-content{
    padding-left:max(20px,env(safe-area-inset-left,0px))!important;
    padding-right:max(20px,env(safe-area-inset-right,0px))!important;
  }
  .home-page .hero h1,.home-page .hero .eyebrow,.home-page .hero-sub,.home-page .hero-entry-block,.home-page .hero-ctas{
    width:100%!important;min-width:0!important;max-width:100%!important;
  }

  .connection-shell{
    min-height:100dvh!important;
    align-items:start!important;
    place-items:start center!important;
    padding-block:max(24px,env(safe-area-inset-top,0px)) max(28px,env(safe-area-inset-bottom,0px))!important;
    padding-inline:max(16px,env(safe-area-inset-left,0px))!important;
  }
  .connection-stack{width:min(100%,600px)!important;gap:16px!important}
  .connection-back{margin:0!important;padding:0!important}
  .connection-card{padding:30px 24px 28px!important}
  .connection-card .brand-lockup{margin-bottom:34px!important}
  .connection-card h1{font-size:clamp(52px,14vw,68px)!important;line-height:.96!important}
  .connection-card>p:not(.connection-note){font-size:14px!important}
  .connection-form{margin-top:26px!important;gap:18px!important}
  .connection-note{margin-top:26px!important}
}

@media(max-width:430px){
  .connection-shell{padding-inline:14px!important}
  .connection-card{padding-left:20px!important;padding-right:20px!important}
  .connection-back{font-size:7.5px!important;letter-spacing:.16em!important}
  .connection-back img{width:32px!important}
}

/* ===== V30 — ritual navigation toggle: mobile right alignment =====
   On ritual / admission screens the compact HUD control must not cover the
   page heading. Desktop keeps the existing left-side placement. */
@media(max-width:760px){
  .ritual-hud-toggle{
    left:auto!important;
    right:max(10px,env(safe-area-inset-right,0px))!important;
    top:max(10px,env(safe-area-inset-top,0px))!important;
    padding:7px!important;
    gap:0!important;
  }
  .ritual-hud-toggle span{display:none!important}
  .ritual-hud-toggle.is-open{
    left:auto!important;
    right:max(10px,env(safe-area-inset-right,0px))!important;
  }
}

/* ===== V34 — closed mobile menu fully out of the way =====
   The closed .mobile-nav is only lifted by translateY(-105%) of its own
   height. Later rules start it below the header (top:var(--header) or
   --mc-header-safe) instead of at 0, so 105% of its height no longer clears
   the viewport: a 38–44px near-black strip stayed on screen at the top. On the
   ritual pages (transparent header) it was visible, covered the HUD toggle and
   the top of the Calendly room, and swallowed taps and wheel events. Hide it
   outright when closed; the existing "transition:.45s" (all properties) keeps
   it visible for the whole slide-up, so the closing animation is unchanged. */
.mobile-nav:not(.open){visibility:hidden;pointer-events:none}

/* ===== V37 — Android in-app text zoom + mobile menu offset =====
   maison.js measures the text-only zoom some Android in-app browsers apply
   (phone font-size setting) and tags display text (24px+) with .mc-unzoom;
   zooming those elements by the inverse gives them back the size the layout
   was designed for, so long words stop overflowing on the right. */
html.mc-text-zoom .mc-unzoom{zoom:var(--mc-text-unzoom)}
/* The open menu starts under the header (top:var(--header) or
   --mc-header-safe), so the 120px top padding it kept from its full-screen
   version pushed the links down and the last button below the screen. */
@media(max-width:760px){
  .mobile-nav{padding-top:clamp(20px,3.5vh,34px)!important}
}
html.mc-compact-mobile .mobile-nav{padding-top:clamp(20px,3.5vh,34px)!important}

/* ===== V38 — Accès à l'application MAISON (menu mobile + Connexion) =====
   Ajouts uniquement : aucune règle existante n'est modifiée.
   - Menu : entrée « INSTALLER MAISON » après les liens de navigation, affichée
     seulement sur téléphone (≤760 px ou html.mc-compact-mobile) ; ailleurs
     display:none, donc les polices Archivo ne sont jamais téléchargées.
     Sélecteur plus précis que « .mobile-nav a » : la typographie Bodoni des
     liens n'est pas touchée. Textes < 24 px : hors correctif V37 (.mc-unzoom).
   - Connexion : mention « DANS LA MAISON » sous la carte, dans la même pile
     (.connection-stack) : mêmes marges symétriques.
   Typographie de l'app : Archivo Black (titres) et Archivo (texte). */
@font-face{font-family:"MC Archivo Black";src:url("../fonts/archivo-black-latin-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"MC Archivo";src:url("../fonts/archivo-latin-wght.woff2") format("woff2-variations"),url("../fonts/archivo-latin-wght.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}

.mobile-nav a.mc-app-entry{display:none}
@media(max-width:760px){.mobile-nav a.mc-app-entry{display:grid}}
html.mc-compact-mobile .mobile-nav a.mc-app-entry{display:grid}
/* V39 — même composant, sans variante, dans la section APPLICATION de l'accueil
   (toujours affiché : c'est l'appel à l'action de la section). Le noir de fond
   est désormais porté par le composant lui-même (#080807 = --ink, le noir du
   menu) : rendu identique dans le menu, et identique sur le fond blanc de
   l'accueil. Seule la couleur du focus suit le fond (--mc-app-entry-focus). */
.app-showcase a.mc-app-entry{display:grid}
.mobile-nav a.mc-app-entry,
.app-showcase a.mc-app-entry{
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:14px;
  flex:0 0 auto;
  margin:10px 0 0;
  padding:11px 12px 11px 16px;
  border:1px solid rgba(240,233,223,.26);
  background:linear-gradient(120deg,rgba(52,46,170,.34),rgba(240,233,223,.035) 72%) #080807;
  color:var(--paper);
  font-family:"MC Archivo",var(--sans);
  font-size:13px;
  line-height:1.25;
  letter-spacing:0;
  text-decoration:none;
  transition:border-color .25s,background-color .25s;
}
.mobile-nav a.mc-app-entry:hover,
.mobile-nav a.mc-app-entry:focus-visible,
.app-showcase a.mc-app-entry:hover,
.app-showcase a.mc-app-entry:focus-visible{border-color:rgba(240,233,223,.6)}
.mobile-nav a.mc-app-entry:focus-visible,
.app-showcase a.mc-app-entry:focus-visible{outline:2px solid var(--mc-app-entry-focus,#8f89ff);outline-offset:3px}
.mc-app-entry__text{display:grid;gap:4px;min-width:0}
.mc-app-entry__title{
  font-family:"MC Archivo Black","Arial Black",var(--sans);
  font-size:16px;
  line-height:1.1;
  letter-spacing:.035em;
  text-transform:uppercase;
  color:#fff;
}
.mc-app-entry__sub{
  font-family:"MC Archivo",var(--sans);
  font-weight:500;
  font-size:12px;
  line-height:1.3;
  color:rgba(240,233,223,.72);
}
.mc-app-entry__symbol{
  display:block;
  width:42px;
  height:42px;
  border-radius:50%;
  box-shadow:0 0 0 1px rgba(240,233,223,.12),0 6px 22px rgba(174,58,255,.28);
}

/* Connexion : « DANS LA MAISON » */
.connection-app{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:14px 18px;
  width:100%;
  padding:20px 22px 22px;
  border:1px solid rgba(121,151,255,.18);
  background:rgba(5,10,24,.34);
}
.connection-app__eyebrow{
  margin:0 0 7px;
  font-family:"MC Archivo Black","Arial Black",var(--sans);
  font-size:11px;
  letter-spacing:.14em;
  color:#dfe6ff;
}
.connection-app__body{margin:0;font-size:13px;line-height:1.55;color:rgba(223,230,255,.72)}
.connection-app__symbol{display:block;width:44px;height:44px;border-radius:50%}
.connection-app__open{
  grid-column:1/-1;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:46px;
  padding:12px 16px;
  border:1px solid rgba(157,182,255,.45);
  font-family:"MC Archivo Black","Arial Black",var(--sans);
  font-size:11px;
  letter-spacing:.14em;
  color:#fff;
  text-decoration:none;
  transition:.25s;
}
.connection-app__open:hover{border-color:#fff;background:rgba(255,255,255,.06)}
.connection-app__open:focus-visible{outline:2px solid #9db6ff;outline-offset:3px}
