:root {
  color-scheme: light;
  --paper: #f7f3e9;
  --paper-deep: #eee8da;
  --jade-950: #073a32;
  --jade-900: #0a493f;
  --jade-800: #105d50;
  --jade-600: #397c69;
  --jade-400: #78aa98;
  --gold-600: #96763f;
  --gold-500: #ad8b4f;
  --gold-400: #c2a263;
  --ink: #17362f;
  --muted: #60716b;
  --line: rgba(15, 82, 70, .16);
  --display: "Cormorant Garamond", Georgia, serif;
  --ui: "Manrope", system-ui, sans-serif;
  --shadow: 0 24px 64px rgba(25, 68, 57, .12);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--paper); }
body.aid20-home { margin: 0; min-width: 320px; min-height: 100vh; overflow-x: hidden; color: var(--ink); background: radial-gradient(circle at 88% 5%, rgba(126,180,160,.12), transparent 26rem), linear-gradient(180deg, #faf7ef, var(--paper)); font: 16px/1.5 var(--ui); -webkit-font-smoothing: antialiased; }
a { color: inherit; }
button, input, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
img { display: block; max-width: 100%; }
[hidden] { display: none !important; }
.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; }
.skip-link { position: fixed; z-index: 300; top: .5rem; left: .5rem; transform: translateY(-150%); padding: .7rem 1rem; color: #fff; background: var(--jade-950); }
.skip-link:focus { transform: translateY(0); }

.home-header { position: absolute; z-index: 40; inset: 0 0 auto; width: min(calc(100% - 48px), 1320px); min-height: 94px; margin-inline: auto; display: grid; grid-template-columns: 210px 1fr auto; align-items: center; gap: 30px; padding-top: max(10px, env(safe-area-inset-top)); }
.home-logo { width: 204px; display: block; text-decoration: none; }
.home-logo img { width: 100%; height: 66px; object-fit: contain; object-position: left center; }
.desktop-nav { min-width: 0; display: flex; align-items: center; justify-content: center; gap: clamp(18px, 2.7vw, 42px); }
.desktop-nav a { position: relative; flex: 0 0 auto; padding: 14px 0; color: #24423b; font-size: 13px; font-weight: 600; text-decoration: none; white-space: nowrap; }
.desktop-nav a::after { content: ""; position: absolute; inset: auto 0 5px; height: 1px; background: var(--gold-600); transform: scaleX(0); transition: transform 180ms ease; }
.desktop-nav a:hover::after, .desktop-nav a:focus-visible::after { transform: scaleX(1); }
.home-actions { display: flex; align-items: center; gap: 12px; }
.home-locale { position: relative; min-width: 82px; height: 48px; display: flex; align-items: center; justify-content: center; gap: 9px; border: 1px solid rgba(10,73,63,.6); border-radius: 13px; color: var(--jade-950); background: rgba(250,247,239,.66); font-size: 13px; font-weight: 600; }
.home-locale select { position: absolute; inset: 0; width: 100%; opacity: 0; cursor: pointer; }
.home-locale i { font-size: 9px; }
.header-login { min-width: 126px; height: 48px; display: inline-flex; align-items: center; justify-content: center; border-radius: 13px; color: #fff; background: var(--jade-950); box-shadow: 0 12px 28px rgba(7,58,50,.19); font-size: 13px; font-weight: 600; text-decoration: none; transition: transform 180ms ease, background-color 180ms ease; }
.header-login:hover { transform: translateY(-1px); background: var(--jade-800); }

.home-hero { position: relative; isolation: isolate; min-height: min(900px, 100svh); overflow: hidden; background: var(--paper); }
.home-hero picture { position: absolute; z-index: -5; inset: 0; }
.home-hero__scene { width: 100%; height: 100%; object-fit: cover; object-position: center; image-rendering: auto; }
.home-hero__wash { position: absolute; z-index: -4; inset: 0; background: linear-gradient(90deg, rgba(250,247,239,.995) 0%, rgba(250,247,239,.94) 25%, rgba(250,247,239,.62) 37%, rgba(250,247,239,.16) 50%, transparent 61%); }
.home-hero__mist { position: absolute; z-index: -2; left: -8%; right: -8%; bottom: -8%; height: 28%; background: radial-gradient(ellipse at 24% 52%, rgba(255,255,255,.72), transparent 58%), radial-gradient(ellipse at 72% 48%, rgba(255,255,255,.46), transparent 61%); filter: blur(10px); opacity: .38; animation: mist-drift 18s ease-in-out infinite alternate; }
.ambient-cloud { position: absolute; z-index: -1; pointer-events: none; border-radius: 50%; background: radial-gradient(ellipse, rgba(255,255,255,.54), rgba(247,243,233,.15) 58%, transparent 72%); filter: blur(10px); opacity: .24; will-change: transform; }
.ambient-cloud--one { width: 38vw; height: 14vw; left: 22%; bottom: 14%; animation: cloud-one 24s ease-in-out infinite alternate; }
.ambient-cloud--two { width: 30vw; height: 11vw; right: -7%; top: 22%; opacity: .38; animation: cloud-two 28s ease-in-out infinite alternate; }
.home-hero__content { width: min(calc(100% - 48px), 1320px); min-height: min(900px, 100svh); margin-inline: auto; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: 136px 0 90px; }
.home-hero__eyebrow { display: flex; align-items: center; gap: 18px; margin: 0 0 20px; color: var(--gold-600); font-size: 12px; font-weight: 600; letter-spacing: .26em; }
.home-hero__eyebrow i { width: 58px; height: 1px; background: var(--gold-500); }
.home-hero h1 { max-width: 660px; margin: 0; color: var(--jade-950); font: 600 clamp(64px, 5.5vw, 90px)/.88 var(--display); letter-spacing: -.045em; }
.home-hero h1 span, .home-hero h1 em { display: block; }
.home-hero h1 em { color: var(--gold-600); font-style: normal; }
.home-hero__copy { max-width: 470px; margin: 28px 0; color: #4e625c; font-size: clamp(16px, 1.2vw, 19px); line-height: 1.52; }
.primary-button { min-height: 58px; display: inline-flex; align-items: center; justify-content: center; gap: 18px; padding: 14px 28px; border: 0; border-radius: 14px; color: #fff; background: var(--jade-950); box-shadow: 0 15px 34px rgba(7,58,50,.21); font-weight: 600; text-decoration: none; cursor: pointer; transition: transform 180ms ease, background-color 180ms ease, box-shadow 180ms ease; }
.primary-button:hover { transform: translateY(-2px); background: var(--jade-800); box-shadow: 0 19px 38px rgba(7,58,50,.24); }
.home-hero__cta { min-width: 290px; }
.scroll-cue { position: absolute; z-index: 3; bottom: 28px; left: 50%; width: 30px; height: 48px; transform: translateX(-50%); border: 1px solid rgba(10,73,63,.4); border-radius: 20px; }
.scroll-cue span { position: absolute; top: 9px; left: 50%; width: 4px; height: 8px; margin-left: -2px; border-radius: 3px; background: var(--jade-800); animation: scroll-cue 2s ease-in-out infinite; }

.section-shell { width: min(calc(100% - 48px), 1180px); margin-inline: auto; }
.possibilities { position: relative; padding: 94px 0 72px; }
.possibilities::before { content: ""; position: absolute; z-index: -1; width: 44vw; height: 19vw; left: -24vw; top: -7vw; border-radius: 50%; background: rgba(255,255,255,.72); filter: blur(22px); }
.section-heading { margin-bottom: 36px; text-align: center; }
.section-heading > p, .world-teaser__copy > p:first-child, .auth-kicker { margin: 0 0 11px; color: var(--gold-600); font-size: 11px; font-weight: 700; letter-spacing: .23em; }
.section-heading h2, .world-teaser h2, .auth-frame h2 { margin: 0; color: var(--jade-950); font: 600 clamp(44px, 4.2vw, 64px)/1 var(--display); letter-spacing: -.025em; }
.pillar-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 16px; }
.pillar-card { position: relative; min-height: 386px; overflow: hidden; border: 1px solid rgba(15,82,70,.13); border-radius: 20px; background: #e8eee9; box-shadow: 0 16px 42px rgba(25,68,57,.08); text-decoration: none; transition: transform 220ms ease, box-shadow 220ms ease; }
.pillar-card > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 700ms cubic-bezier(.2,.7,.2,1); }
.pillar-card::after { content: ""; position: absolute; inset: 38% 0 0; background: linear-gradient(180deg, transparent, rgba(248,245,236,.9) 27%, rgba(248,245,236,.99) 58%); }
.pillar-card:hover { transform: translateY(-5px); box-shadow: var(--shadow); }
.pillar-card:hover > img { transform: scale(1.035); }
.pillar-icon { position: absolute; z-index: 2; top: 18px; left: 18px; width: 48px; height: 48px; display: grid; place-items: center; border: 1px solid rgba(194,162,99,.8); border-radius: 50%; color: var(--jade-900); background: rgba(250,247,239,.9); box-shadow: 0 8px 20px rgba(7,58,50,.12); font-size: 18px; backdrop-filter: blur(8px); }
.pillar-card__copy { position: absolute; z-index: 2; inset: auto 20px 22px; text-align: center; }
.pillar-card strong { display: block; margin-bottom: 8px; color: var(--jade-950); font: 600 26px/1.02 var(--display); }
.pillar-card small { display: block; color: var(--muted); font-size: 13px; line-height: 1.45; }

.world-teaser { position: relative; min-height: 470px; display: grid; grid-template-columns: 1.18fr .82fr; align-items: stretch; margin-block: 28px 88px; overflow: hidden; border: 1px solid var(--line); border-radius: 24px; background: var(--jade-950); box-shadow: var(--shadow); }
.world-teaser__scene { min-height: 470px; background: linear-gradient(90deg, transparent 58%, var(--jade-950) 100%), url("../assets/home-v2/world-living.webp") center / cover no-repeat; }
.world-teaser__copy { display: flex; flex-direction: column; justify-content: center; padding: 50px 48px 50px 16px; color: #eef4ef; }
.world-teaser__copy > p:first-child { color: #dbc48f; }
.world-teaser h2 { color: #fff; }
.world-teaser__copy > p:not(:first-child) { margin: 22px 0; color: #c8d7d2; font-size: 15px; line-height: 1.65; }
.text-link { display: inline-flex; align-items: center; gap: 14px; width: max-content; color: #dbc48f; font-weight: 600; text-decoration: none; }
.text-link i { transition: transform 180ms ease; }
.text-link:hover i { transform: translateX(5px); }

.auth-section { min-height: 590px; display: grid; grid-template-columns: .96fr 1.04fr; margin-bottom: 82px; overflow: hidden; border: 1px solid var(--line); border-radius: 24px; background: rgba(251,249,243,.92); box-shadow: var(--shadow); }
.auth-frame { align-self: center; width: min(calc(100% - 72px), 470px); margin-inline: auto; padding: 38px 0; }
.auth-frame h2 { font-size: clamp(42px, 3.8vw, 58px); }
.auth-intro { margin: 10px 0 22px; color: var(--muted); line-height: 1.55; }
.auth-frame form { display: grid; gap: 11px; }
.auth-field { min-width: 0; min-height: 52px; display: flex; align-items: center; gap: 12px; padding: 0 14px; border: 1px solid rgba(10,73,63,.2); border-radius: 10px; background: rgba(255,255,255,.57); }
.auth-field:focus-within { border-color: var(--jade-600); box-shadow: 0 0 0 3px rgba(57,124,105,.11); }
.auth-field > i { flex: 0 0 18px; color: var(--jade-800); }
.auth-field input { min-width: 0; width: 100%; height: 50px; border: 0; outline: 0; color: var(--ink); background: transparent; font-size: 14px; }
.auth-field input::placeholder { color: #89958f; opacity: 1; }
.password-toggle { flex: 0 0 32px; width: 32px; height: 32px; overflow: hidden; border: 0; color: transparent; background: transparent; cursor: pointer; }
.password-toggle::after { content: "\f06e"; display: block; color: #66766f; font: 15px/32px "Font Awesome 6 Free"; font-weight: 900; }
.auth-meta { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--muted); font-size: 12px; }
.auth-meta label { display: flex; align-items: center; gap: 6px; }
.auth-meta input { width: 14px; height: 14px; margin: 0; accent-color: var(--jade-800); }
.auth-meta a { color: var(--jade-900); }
.form-message { min-height: 0; margin: 0; color: #965555; font-size: 12px; line-height: 1.3; }
.form-message:empty { display: none; }
.auth-submit { width: 100%; min-height: 54px; margin-top: 3px; }
.auth-divider { display: flex; align-items: center; gap: 12px; margin: 15px 0; color: #8a9690; font-size: 12px; }
.auth-divider::before, .auth-divider::after { content: ""; flex: 1; height: 1px; background: var(--line); }
.auth-switch { width: 100%; min-height: 52px; border: 1px solid rgba(10,73,63,.62); border-radius: 10px; color: var(--jade-950); background: transparent; font-weight: 600; cursor: pointer; }
.auth-switch:hover { background: rgba(57,124,105,.08); }
.auth-switch--inline { margin-top: 16px; }
.auth-art { position: relative; min-height: 590px; overflow: hidden; background: linear-gradient(90deg, rgba(7,58,50,.03), rgba(7,58,50,.2)), url("../assets/home-v2/auth-journey.webp") center / cover no-repeat; }
.auth-art::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 50%, rgba(7,58,50,.64)); }
.auth-art__content { position: absolute; z-index: 2; left: 42px; bottom: 40px; color: #fff; text-shadow: 0 2px 16px rgba(4,30,26,.38); }
.auth-art__content p { margin: 0; font: 600 29px/1.08 var(--display); }

.home-footer { min-height: 116px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 28px; padding: 24px max(24px, calc((100vw - 1180px) / 2)); border-top: 1px solid var(--line); color: var(--muted); background: rgba(251,249,243,.72); font-size: 12px; }
.home-footer > p:nth-child(2) { text-align: center; }
.social-links { justify-self: end; display: flex; gap: 18px; }
.social-links a { color: var(--jade-900); font-size: 18px; }

.primary-button:focus-visible, .pillar-card:focus-visible, .text-link:focus-visible, .desktop-nav a:focus-visible, .header-login:focus-visible, .auth-switch:focus-visible, .social-links a:focus-visible { outline: 3px solid var(--gold-400); outline-offset: 4px; }

@keyframes mist-drift { from { transform: translate3d(-1.5%,0,0) scale(1); opacity: .72; } to { transform: translate3d(2%,-2%,0) scale(1.04); opacity: .94; } }
@keyframes cloud-one { from { transform: translate3d(-3%,0,0); } to { transform: translate3d(9%,-5%,0); } }
@keyframes cloud-two { from { transform: translate3d(4%,0,0); } to { transform: translate3d(-10%,4%,0); } }
@keyframes scroll-cue { 0% { opacity: 0; transform: translate(-50%,0); } 35% { opacity: 1; } 100% { opacity: 0; transform: translate(-50%,17px); } }

@media (max-width: 1060px) {
  .home-header { width: calc(100% - 36px); grid-template-columns: 174px 1fr auto; gap: 16px; }
  .home-logo { width: 168px; }
  .desktop-nav { gap: 16px; }
  .desktop-nav a { font-size: 11px; }
  .home-hero__content { width: calc(100% - 48px); }
  .pillar-card strong { font-size: 23px; }
  .world-teaser__copy { padding-right: 34px; }
}

@media (max-width: 780px) {
  .home-header { position: absolute; width: 100%; min-height: 112px; grid-template-columns: 1fr auto; grid-template-rows: 62px 42px; gap: 0 10px; padding: max(6px, env(safe-area-inset-top)) 16px 0; background: linear-gradient(180deg, rgba(250,247,239,.96), rgba(250,247,239,.74) 76%, transparent); }
  .home-logo { grid-column: 1; grid-row: 1; width: 142px; }
  .home-logo img { height: 52px; }
  .home-actions { grid-column: 2; grid-row: 1; gap: 5px; }
  .home-locale { min-width: 58px; height: 40px; border: 0; background: transparent; }
  .header-login { min-width: 72px; height: 40px; padding-inline: 13px; border-radius: 11px; }
  .desktop-nav { grid-column: 1 / -1; grid-row: 2; justify-content: flex-start; gap: 24px; overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-width: none; padding: 0 2px 8px; }
  .desktop-nav::-webkit-scrollbar { display: none; }
  .desktop-nav a { padding: 7px 0; font-size: 11px; letter-spacing: .01em; }
  .desktop-nav a::after { bottom: 2px; }

  .home-hero { min-height: 900px; }
  .home-hero picture { inset: 0; }
  .home-hero__scene { object-position: center; }
  .home-hero__wash { background: linear-gradient(180deg, rgba(250,247,239,.98) 0%, rgba(250,247,239,.84) 25%, rgba(250,247,239,.28) 43%, transparent 57%); }
  .home-hero__content { width: calc(100% - 34px); min-height: 900px; justify-content: flex-start; padding: 150px 0 48px; }
  .home-hero__eyebrow { margin-bottom: 13px; font-size: 9px; letter-spacing: .2em; }
  .home-hero__eyebrow i { width: 32px; }
  .home-hero h1 { max-width: 95%; font-size: clamp(50px, 14.8vw, 69px); line-height: .87; }
  .home-hero__copy { max-width: 34ch; margin: 18px 0 20px; font-size: 14px; line-height: 1.46; }
  .home-hero__cta { min-width: 238px; min-height: 52px; padding-inline: 20px; }
  .home-hero__mist { bottom: -3%; height: 21%; }
  .ambient-cloud--one { width: 78vw; height: 28vw; left: -22%; bottom: 22%; }
  .ambient-cloud--two { width: 72vw; height: 25vw; right: -30%; top: 48%; }
  .scroll-cue { display: none; }

  .section-shell { width: calc(100% - 28px); }
  .possibilities { padding: 68px 0 52px; }
  .section-heading { margin-bottom: 26px; }
  .section-heading > p { font-size: 9px; line-height: 1.4; }
  .section-heading h2, .world-teaser h2 { font-size: clamp(40px, 11vw, 54px); }
  .pillar-grid { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; }
  .pillar-card { min-height: 326px; border-radius: 16px; }
  .pillar-card::after { inset: 32% 0 0; }
  .pillar-icon { top: 12px; left: 12px; width: 40px; height: 40px; font-size: 15px; }
  .pillar-card__copy { inset: auto 12px 16px; }
  .pillar-card strong { font-size: clamp(20px, 5.8vw, 26px); }
  .pillar-card small { font-size: 11px; line-height: 1.38; }

  .world-teaser { min-height: 560px; grid-template-columns: 1fr; grid-template-rows: 310px auto; margin-block: 12px 68px; }
  .world-teaser__scene { min-height: 310px; background: linear-gradient(180deg, transparent 58%, var(--jade-950) 100%), url("../assets/home-v2/world-living.webp") center / cover no-repeat; }
  .world-teaser__copy { padding: 18px 24px 30px; }
  .world-teaser__copy > p:not(:first-child) { margin: 16px 0; font-size: 13px; }

  .auth-section { min-height: 0; grid-template-columns: 1fr; margin-bottom: 58px; }
  .auth-frame { width: calc(100% - 42px); padding: 32px 0; }
  .auth-frame h2 { font-size: 44px; }
  .auth-art { min-height: 320px; background-position: center; }
  .auth-art__content { left: 24px; bottom: 24px; }
  .auth-art__content p { font-size: 24px; }
  .home-footer { min-height: 100px; grid-template-columns: 1fr auto; padding: 22px; }
  .home-footer > p:nth-child(2) { display: none; }
}

@media (max-width: 380px) {
  .home-header { padding-inline: 12px; }
  .home-logo { width: 128px; }
  .header-login { min-width: 64px; padding-inline: 10px; font-size: 12px; }
  .desktop-nav { gap: 20px; }
  .home-hero h1 { font-size: 49px; }
  .home-hero__copy { max-width: 31ch; font-size: 13px; }
  .home-hero__cta { width: 100%; }
  .pillar-card { min-height: 316px; }
  .pillar-card strong { font-size: 20px; }
  .pillar-card small { font-size: 10.5px; }
  .auth-meta { align-items: flex-start; flex-direction: column; gap: 7px; }
}

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