:root { --ink:#1b302c; --forest:#19342f; --paper:#fff9ee; --champagne:#f3dfc4; --blush:#e8c0bb; --apricot:#d77845; --wine:#7b2f45; --serif:"Bodoni Moda",Georgia,serif; --sans:"Manrope",Arial,sans-serif; }
* { box-sizing:border-box; }
html { min-width:320px; background:var(--forest); }
body { margin:0; color:var(--paper); font-family:var(--sans); }
a { color:inherit; }
button,input { color:inherit; font:inherit; }
.skip-link { position:fixed; z-index:10; top:.75rem; left:.75rem; padding:.7rem 1rem; color:var(--ink); background:var(--paper); transform:translateY(-160%); }
.skip-link:focus { transform:none; }
.access-header { position:fixed; z-index:5; inset:0 0 auto; height:6rem; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; padding:0 clamp(1.25rem,4vw,4rem); }
.access-header>p { justify-self:end; margin:0; font-size:.6rem; letter-spacing:.25em; }
.back-link { justify-self:start; display:inline-flex; gap:.7rem; align-items:center; font-size:.6rem; font-weight:600; letter-spacing:.15em; text-decoration:none; text-transform:uppercase; }
.wordmark { font:400 1.3rem var(--serif); letter-spacing:.16em; text-decoration:none; }
.wordmark i { padding:0 .25rem; color:var(--apricot); font-weight:400; }
.access-page { position:relative; min-height:100svh; display:grid; place-items:center end; padding:7.5rem clamp(1.25rem,4vw,5rem) 3.5rem; overflow:hidden; background-color:#34382d; background-image:linear-gradient(180deg,transparent 75%,#34382d),url("assets/images/login-sedona-dance.jpg"); background-position:left top; background-size:100% min(100svh,62vw),auto min(100svh,62vw); background-repeat:no-repeat; }
.access-page::before { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(90deg,transparent 48%,rgba(52,56,45,.22) 64%,#34382d 88%); }
.access-page::after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(180deg,rgba(10,25,22,.44),transparent 25%,transparent 70%,rgba(10,25,22,.46)); }
.image-credit { position:absolute; z-index:2; left:clamp(1.25rem,4vw,4rem); bottom:2rem; font-size:.55rem; letter-spacing:.2em; text-transform:uppercase; }
.access-card { position:relative; z-index:3; width:min(38rem,43vw); padding:clamp(2rem,3.3vw,3.2rem); background:rgba(48,54,42,.76); border:1px solid rgba(243,223,196,.32); -webkit-backdrop-filter:blur(9px); backdrop-filter:blur(9px); box-shadow:0 2rem 5rem rgba(30,20,13,.22); }
.folio,.eyebrow { margin:0; font-size:.56rem; font-weight:600; letter-spacing:.2em; text-transform:uppercase; }
.folio { margin-bottom:clamp(2rem,4vw,3.4rem); color:var(--blush); }
.eyebrow { margin-bottom:1rem; }
h1 { margin:0; font:400 clamp(3rem,4.4vw,4.8rem)/.96 var(--serif); letter-spacing:-.05em; }
h1 i { color:var(--champagne); font-weight:400; }
.intro { max-width:34rem; margin:1.5rem 0 1.8rem; font-size:.96rem; line-height:1.7; }
.access-switcher { display:grid; grid-template-columns:1fr 1fr; margin-bottom:1.6rem; border-bottom:1px solid rgba(255,249,238,.38); }
.switcher-button { position:relative; padding:.8rem 0; border:0; color:rgba(255,249,238,.58); background:transparent; cursor:pointer; font-size:.58rem; font-weight:600; letter-spacing:.17em; text-align:left; text-transform:uppercase; }
.switcher-button:last-child { text-align:right; }
.switcher-button.is-active { color:var(--paper); }
.switcher-button.is-active::after { content:""; position:absolute; right:0; bottom:-1px; left:0; height:2px; background:var(--blush); }
.access-form { display:grid; gap:1.05rem; }
.field { display:grid; gap:.4rem; }
.field label { font-size:.53rem; font-weight:600; letter-spacing:.17em; text-transform:uppercase; }
.field input { width:100%; padding:.68rem 0; border:0; border-bottom:1px solid rgba(255,249,238,.7); border-radius:0; outline:0; background:transparent; }
.field input::placeholder { color:rgba(255,249,238,.48); }
.field input:focus { border-bottom-color:var(--blush); }
.field input[aria-invalid="true"] { border-bottom-color:#ffae91; }
.registration-type { display:grid; grid-template-columns:1fr 1fr; gap:.55rem; margin:0; padding:0; border:0; }
.registration-type legend { grid-column:1/-1; margin-bottom:.1rem; font-size:.53rem; font-weight:600; letter-spacing:.17em; text-transform:uppercase; }
.registration-type button { min-height:2.8rem; padding:.7rem .9rem; border:1px solid rgba(255,249,238,.38); color:rgba(255,249,238,.72); background:transparent; cursor:pointer; font-size:.54rem; font-weight:600; letter-spacing:.12em; text-align:center; text-transform:uppercase; }
.registration-type button.is-active { border-color:var(--blush); color:var(--paper); background:rgba(232,192,187,.14); }
.registration-type button:focus-visible { outline:2px solid var(--paper); outline-offset:2px; }
.registration-type input[type="hidden"] { display:none; }
.partner-field { padding:.15rem 0 .2rem; }
.field-note,.signin-intro { margin:.2rem 0 0; color:rgba(255,249,238,.72); font-size:.72rem; line-height:1.55; }
.submit-button { min-height:3.55rem; display:flex; justify-content:space-between; align-items:center; margin-top:.2rem; padding:.9rem 1.15rem; border:1px solid var(--paper); background:transparent; cursor:pointer; font-size:.56rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; }
.submit-button:hover,.submit-button:focus-visible { color:var(--ink); background:var(--paper); }
.submit-button:disabled { opacity:.55; cursor:progress; }
.access-message { min-height:1.3rem; margin:1.2rem 0 0; color:var(--champagne); font-size:.58rem; letter-spacing:.08em; line-height:1.55; text-transform:uppercase; }
.access-message.is-error { color:#ffb49a; }
[hidden] { display:none!important; }
/* A portrait viewport puts the glass below the couple, never across their faces. */
@media (max-aspect-ratio:4/3), (max-width:900px) { .access-header{position:absolute;height:5rem}.access-page{place-items:end center;padding:52svh 1rem 3rem;background-position:center top;background-size:100% 72svh,auto 72svh}.access-page::before{background:none}.access-card{width:min(100%,40rem);padding:2.1rem 1.8rem}.image-credit{bottom:1rem}.access-header>p{display:none} }
@media (max-width:520px) { .access-header{grid-template-columns:1fr auto;padding:0 1.1rem}.wordmark{grid-column:2}.access-page{padding:48svh .65rem 2.5rem;background-size:100% 62svh,auto 62svh}.access-card{padding:1.6rem 1.05rem}.folio{margin-bottom:.9rem}.eyebrow{margin-bottom:.75rem}h1{font-size:clamp(2.4rem,11vw,3rem)}.intro{margin:1rem 0;font-size:.86rem;line-height:1.5}.access-switcher{margin-bottom:1rem}.access-message{margin-top:.8rem} }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after{animation:none!important;transition:none!important} }
