/* HERMANNS GARDEN / Private Pool Club / Est. 2020 */
:root {
  --midnight:#070422;
  --midnight-soft:#101035;
  --paper:#fbf5eb;
  --cream:#f3e9dd;
  --ink:#152949;
  --ink-soft:#58637a;
  --coral:#dd8153;
  --pool:#319fbe;
  --pink:#f277df;
  --flower:#eaecdf;
  --botanical-bg:#e4e9de;
  --divider:rgba(30,46,68,.21);
  --outline:rgba(23,46,71,.38);
  --header-bg:rgba(251,245,235,.93);
  --serif:Georgia,"Iowan Old Style","Baskerville","Times New Roman",serif;
  --sans:"Avenir Next",Avenir,"Trebuchet MS",Arial,sans-serif;
}
html[data-theme="night"] {
  --paper:#0d0c2c;
  --cream:#100f32;
  --ink:#f9eee4;
  --ink-soft:#c8c2d4;
  --flower:#161a31;
  --botanical-bg:#10252d;
  --divider:rgba(255,240,222,.23);
  --outline:rgba(255,234,221,.32);
  --header-bg:rgba(8,6,32,.94);
}
*,*::before,*::after { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:78px; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:var(--sans); -webkit-font-smoothing:antialiased; overflow-x:hidden; }
body.menu-open { overflow:hidden; }
button,a { -webkit-tap-highlight-color:transparent; }
button { cursor:pointer; font-family:inherit; }
a { color:inherit; text-decoration:none; }
a:focus-visible,button:focus-visible { outline:3px solid var(--coral); outline-offset:4px; }
img { max-width:100%; display:block; }
::selection { background:var(--coral); color:#fff; }
.skip-link { position:fixed; z-index:400; top:-100px; left:14px; padding:12px 18px; background:#fff; color:#111; font-size:14px; }
.skip-link:focus { top:14px; }
.section-pad { padding:clamp(90px,10vw,168px) clamp(22px,6.2vw,110px); }
.eyebrow { font-size:11px; letter-spacing:.24em; font-weight:800; line-height:1.6; }
.eyebrow.coral { color:var(--coral); }.eyebrow.pink { color:var(--pink); }
.editorial-title { margin:0; font-family:var(--serif); font-weight:400; font-size:clamp(54px,6vw,104px); line-height:.97; letter-spacing:-.083em; }
.editorial-title em { font-weight:400; }
.chapter-title { display:flex; gap:24px; justify-content:space-between; align-items:center; border-top:1px solid var(--divider); padding-top:18px; font-size:10px; font-weight:800; line-height:1.5; letter-spacing:.17em; }
.chapter-title span:last-child { color:var(--ink-soft); }
.chapter-title-light { border-color:rgba(255,255,255,.33); color:#f6eedd; }
.chapter-title-light span:last-child { color:rgba(246,238,221,.62); }
.pill-link { display:inline-flex; justify-content:space-between; gap:28px; align-items:center; border:1px solid currentColor; background:transparent; padding:8px 8px 8px 22px; border-radius:80px; color:inherit; font:800 11px/1 var(--sans); letter-spacing:.12em; text-align:left; min-height:54px; white-space:nowrap; transition:background .25s,color .25s,transform .25s; }
.pill-link:hover { transform:translateY(-2px); }
.pill-link-dark:hover { background:var(--ink); color:var(--paper); }
.pill-link-light:hover { background:#f6ebdb; color:var(--midnight); }
.pill-arrow { display:grid; place-items:center; flex:none; width:38px; height:38px; font-size:23px; font-weight:400; line-height:1; border-radius:50%; background:var(--ink); color:var(--paper); position:relative; }
.pill-link-light .pill-arrow { background:#f6ebdb; color:var(--midnight); }
.pill-arrow::after { content:'↗'; position:absolute; color:var(--paper); font-family:Arial,sans-serif; font-size:22px; top:50%; left:50%; transform:translate(-50%,-53%); }
.pill-link-light .pill-link-light .pill-arrow { background:#f6ebdb; color:var(--midnight); }
.pill-arrow::after { color:var(--midnight); }
.text-link { display:inline-flex; justify-content:space-between; align-items:center; gap:22px; padding:0 0 10px; border-bottom:1px solid currentColor; font-size:11px; letter-spacing:.17em; font-weight:800; }
.text-link span { font-size:22px; font-weight:400; }
.js .reveal { opacity:0; transform:translateY(28px); transition:opacity .75s ease,transform .75s cubic-bezier(.2,.75,.15,1); }
.js .reveal.is-visible { opacity:1; transform:translateY(0); }

/* Branded welcome screen: generated from supplied original magenta-on-navy logo. */
.splash { position:fixed; inset:0; z-index:220; display:none; place-items:center; pointer-events:none; background:#070422; background-image:linear-gradient(0deg,rgba(6,2,34,.22),rgba(6,2,34,.22)),url('assets/hg-background.webp'); background-position:center; background-size:cover; transition:opacity .65s ease,visibility .65s ease; }
.js .splash { display:grid; }
.splash.is-gone { opacity:0; visibility:hidden; }
.splash-inner { display:grid; justify-items:center; gap:25px; transform:translateY(16px); }
.splash-inner img { width:clamp(130px,15vw,240px); filter:drop-shadow(0 0 26px rgba(242,119,223,.35)); animation:mark-pulse 1.6s ease-in-out infinite alternate; }
.splash-caption { font-size:9px; letter-spacing:.42em; color:rgba(252,239,255,.63); font-weight:700; }
.splash-line { height:1px; width:100px; background:linear-gradient(90deg,transparent,var(--pink),transparent); }
@keyframes mark-pulse { from{filter:drop-shadow(0 0 11px rgba(242,119,223,.19));opacity:.82}to{filter:drop-shadow(0 0 25px rgba(242,119,223,.52));opacity:1} }

/* Navigation */
.site-header { position:fixed; top:0; left:0; width:100%; z-index:80; background:var(--header-bg); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px); border-bottom:1px solid var(--divider); transition:background .45s,color .45s; }
.header-shell { min-height:81px; padding:8px clamp(18px,3.4vw,58px); display:flex; justify-content:space-between; gap:20px; align-items:center; }
.brand { display:flex; align-items:center; gap:9px; flex:none; }
.brand-symbol { width:62px; height:54px; display:grid; place-items:center; padding:0; border:0; background:transparent; border-radius:50%; transition:transform .25s; }
.brand-symbol:hover { transform:scale(1.08) rotate(-3deg); }
.brand-symbol img { width:62px; }
.brand-wordmark { font-family:var(--serif); font-weight:800; font-size:17px; line-height:.93; letter-spacing:-.055em; white-space:nowrap; }
.brand-wordmark span { display:block; }
.brand-wordmark small { display:block; margin-top:7px; font:700 7px/1.2 var(--sans); letter-spacing:.13em; color:var(--ink-soft); }
.desktop-nav { display:flex; align-items:center; justify-content:center; gap:clamp(13px,2vw,31px); }
.desktop-nav a { white-space:nowrap; font:800 10px/1.2 var(--sans); letter-spacing:.07em; padding:18px 0; opacity:.83; transition:color .25s,opacity .25s; }
.desktop-nav a:hover,.desktop-nav a.active { opacity:1; color:var(--coral); }
.header-actions { display:flex; align-items:center; gap:11px; }
.theme-toggle { display:flex; align-items:center; gap:8px; min-height:38px; border:1px solid var(--outline); border-radius:90px; background:transparent; padding:5px 8px 5px 10px; color:var(--ink); white-space:nowrap; }
.theme-toggle svg { width:15px; height:15px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.theme-moon { display:none; }
.theme-toggle-label { font:800 9px/1 var(--sans); letter-spacing:.16em; }
.theme-toggle-dot { width:17px; height:17px; background:var(--coral); border-radius:50%; border:2px solid var(--paper); box-shadow:0 0 0 1px var(--outline); }
html[data-theme="night"] .theme-sun { display:none; }
html[data-theme="night"] .theme-moon { display:block; }
html[data-theme="night"] .theme-toggle-dot { background:var(--pink); box-shadow:0 0 12px var(--pink); }
.mobile-menu-button { display:none; width:43px; height:43px; align-items:center; justify-content:center; flex-direction:column; gap:6px; padding:0; border:1px solid var(--outline); border-radius:50%; background:none; }
.mobile-menu-button span { background:var(--ink); width:18px; height:2px; display:block; transition:transform .3s; }
.mobile-menu-button[aria-expanded="true"] span:first-child { transform:translateY(4px) rotate(45deg); }
.mobile-menu-button[aria-expanded="true"] span:last-child { transform:translateY(-4px) rotate(-45deg); }
.mobile-menu { position:fixed; z-index:79; inset:0; background:var(--paper); padding:110px max(22px,7vw) 30px; transition:transform .45s cubic-bezier(.2,.7,.2,1),opacity .4s; transform:translateY(-105%); opacity:0; visibility:hidden; overflow-y:auto; }
.mobile-menu.is-open { opacity:1; visibility:visible; transform:translateY(0); }
.mobile-menu-inner { max-width:750px; margin:auto; }
.mobile-menu .eyebrow { color:var(--coral); padding-bottom:22px; }
.mobile-menu a { display:flex; align-items:baseline; gap:16px; border-top:1px solid var(--divider); padding:18px 0; font-weight:700; font-size:11px; color:var(--coral); }
.mobile-menu a span { color:var(--ink); font:400 clamp(31px,8vw,65px)/.95 var(--serif); letter-spacing:-.06em; }
.menu-footnote { margin-top:48px; font:700 10px/1.7 var(--sans); letter-spacing:.15em; color:var(--ink-soft); }

/* Hero */
.hero { display:grid; grid-template-columns:49% 51%; min-height:min(920px,100svh); position:relative; padding-top:81px; }
.hero-copy { background:var(--paper); min-width:0; padding:clamp(29px,3.2vw,58px) clamp(30px,4.5vw,92px) 36px; display:flex; flex-direction:column; justify-content:space-between; transition:background .4s; }
.hero-topline { display:flex; align-items:start; gap:13px; color:var(--ink-soft); font-size:10px; font-weight:800; letter-spacing:.11em; line-height:1.65; }
.hero-topline span:last-child { font-size:9px; text-align:right; }
.mini-star { color:var(--coral); font-size:24px; line-height:1; margin-top:-3px; }
.hero-topline-rule { flex:1; border-top:1px solid var(--divider); margin-top:6px; min-width:18px; }
.hero-maincopy { padding:60px 0 45px; }
.hero-kicker { font-size:11px; font-weight:800; letter-spacing:.2em; margin:0 0 20px; color:var(--coral); }
.hero h1 { font:400 clamp(55px,6vw,115px)/.84 var(--serif); letter-spacing:-.093em; margin:0 0 clamp(24px,3.8vw,56px); white-space:nowrap; }
.hero h1 em { font-weight:400; }
.hero-dot { color:var(--coral); }
.hero-tagline { margin:0 0 19px; font:400 clamp(26px,2.9vw,43px)/1.14 var(--serif); letter-spacing:-.056em; }
.hero-tagline i { font-weight:400; }
.hero-intro { max-width:380px; margin:0 0 27px; font-size:13px; line-height:1.8; color:var(--ink-soft); }
.hero-foot { display:flex; justify-content:space-between; align-items:center; gap:16px; font:800 9px/1.2 var(--sans); letter-spacing:.13em; border-top:1px solid var(--divider); padding-top:19px; color:var(--ink-soft); }
.hero-flower { font-size:24px; line-height:0; color:var(--coral); }
.hero-photo { position:relative; isolation:isolate; min-width:0; overflow:hidden; background:var(--pool); }
.hero-photo>.theme-image,.pool-photo>.theme-image { display:block; position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 93%; transition:opacity 1s ease,transform 6s ease; }
.hero-photo:hover>.theme-image { transform:scale(1.025); }
.theme-image.image-night { opacity:0; }
html[data-theme="night"] .theme-image.image-day { opacity:0; }
html[data-theme="night"] .theme-image.image-night { opacity:1; }
.hero-photo-grain { position:absolute; inset:0; background:linear-gradient(180deg,rgba(4,14,35,.21),transparent 35%,transparent 56%,rgba(0,9,26,.68)); pointer-events:none; }
.hero-photo-top { position:absolute; top:37px; left:clamp(26px,4vw,66px); right:clamp(25px,4vw,66px); display:flex; justify-content:space-between; gap:25px; color:#fff; font:800 10px/1.55 var(--sans); letter-spacing:.18em; text-shadow:0 1px 8px rgba(0,0,0,.4); }
.vertical-label { writing-mode:vertical-rl; }
.hero-photo-bottom { position:absolute; bottom:clamp(50px,7vw,110px); left:clamp(27px,4vw,70px); color:#fffaf2; text-shadow:0 2px 12px rgba(0,0,0,.2); }
.hero-photo-eyebrow { font:800 10px/1.5 var(--sans); letter-spacing:.2em; }
.hero-photo-bottom strong { display:block; margin:14px 0 0; font:400 clamp(56px,5.5vw,108px)/.95 var(--serif); letter-spacing:-.065em; }
.hero-photo-bottom strong i { font-weight:400; }
.sunburst-seal { position:absolute; top:15%; right:8%; width:clamp(107px,10.7vw,158px); aspect-ratio:1; border-radius:50%; background:repeating-conic-gradient(from 0deg,#d87753 0 16deg,#fce8c8 16deg 30deg); display:grid; place-items:center; transform:rotate(12deg); filter:drop-shadow(0 8px 16px rgba(11,22,45,.24)); }
.sunburst-seal::before { content:""; position:absolute; inset:10px; border-radius:50%; background:#faefdf; border:2px solid #183653; }
.sunburst-seal span { position:relative; z-index:1; color:#1d3457; text-align:center; font-size:9px; letter-spacing:.2em; line-height:1.3; font-weight:800; }
.sunburst-seal b { font:400 clamp(26px,3vw,44px)/1 var(--serif); letter-spacing:-.1em; }
.hero-scroll { position:absolute; z-index:2; right:30px; bottom:23px; color:#f9efe3; font-size:9px; letter-spacing:.17em; font-weight:800; }
.hero-scroll span { margin-left:12px; font-size:17px; }

/* Club announcements */
.marquee { background:var(--ink); color:var(--paper); overflow:hidden; border-top:1px solid var(--divider); border-bottom:1px solid var(--divider); padding:17px 0; }
.marquee-track { width:max-content; display:flex; align-items:center; gap:42px; animation:marquee 38s linear infinite; font-weight:800; font-size:11px; letter-spacing:.23em; }
.marquee-track b { font-size:26px; font-weight:400; color:var(--coral); }
@keyframes marquee { to{transform:translateX(-50%)} }

/* Estate / introduction */
.estate { background:var(--cream); transition:background .4s; }
.estate-layout { display:grid; grid-template-columns:52% 48%; gap:30px; align-items:center; min-height:760px; }
.estate-type { padding:50px 0 60px; }
.estate-type .eyebrow { margin:0 0 30px; }
.estate-type .editorial-title { font-size:clamp(64px,6.6vw,117px); }
.estate-bottom-copy { display:flex; gap:25px; align-items:start; max-width:490px; margin-top:57px; }
.estate-bottom-copy .decor-star { font-size:42px; line-height:1; color:var(--coral); }
.estate-bottom-copy p { max-width:365px; font-size:14px; line-height:1.85; margin:0; color:var(--ink-soft); }
.estate-art { min-width:0; padding:75px clamp(0px,4vw,65px) 70px; }
.poster-layout { position:relative; max-width:490px; margin:auto; }
.poster-frame { position:relative; overflow:hidden; background:#d7c3a9; border:13px solid #e8dcc7; box-shadow:13px 17px 0 rgba(14,31,51,.1),0 22px 55px rgba(0,0,0,.12); transform:rotate(3.5deg); }
.poster-frame img { width:100%; height:auto; aspect-ratio:533/741; object-fit:cover; }
.heritage-stamp { position:absolute; width:clamp(116px,14vw,222px); aspect-ratio:1; left:-14%; bottom:1%; border-radius:50%; background:#fbf2e7; padding:9px; border:2px solid #213a59; box-shadow:2px 12px 22px rgba(0,0,0,.15); transform:rotate(-11deg); }
.heritage-stamp img { width:100%; border-radius:50%; }
.poster-caption { display:block; padding-top:45px; padding-left:18%; font-size:9px; letter-spacing:.12em; font-weight:800; line-height:1.6; color:var(--ink-soft); }
.poster-caption b { color:var(--coral); }
.estate-lower { display:flex; justify-content:space-between; gap:26px; border-top:1px solid var(--divider); padding-top:22px; }
.estate-lower span { display:flex; flex-direction:column; gap:8px; font-size:9px; letter-spacing:.12em; color:var(--ink-soft); font-weight:800; }
.estate-lower b { font-size:12px; letter-spacing:.06em; color:var(--ink); }

/* Pool department */
.pool { display:grid; grid-template-columns:53% 47%; background:#081028; color:#f9f0e7; min-height:765px; }
.pool-left,.pool-photo { min-width:0; min-height:760px; position:relative; }
.pool-photo { height:100%; overflow:hidden; background:#2389b4; }
.pool-photo>.theme-image { object-position:50% 84%; }
.pool-photo-wash { position:absolute; inset:0; background:linear-gradient(0deg,rgba(7,17,45,.4),transparent 60%); pointer-events:none; }
.pool-interactive { position:absolute; inset:0; width:100%; height:100%; display:block; border:0; background:transparent; color:#fff; cursor:crosshair; overflow:hidden; touch-action:pan-y; }
.pool-tap-note { position:absolute; top:30px; left:31px; color:#fff; padding:10px 15px; border:1px solid rgba(255,255,255,.7); border-radius:50px; font-weight:800; letter-spacing:.12em; font-size:10px; background:rgba(11,47,79,.28); backdrop-filter:blur(8px); }
.pool-tap-note span { font-size:17px; margin-left:5px; }
.pool-serial { position:absolute; right:28px; bottom:28px; color:#fff; font-size:9px; letter-spacing:.19em; font-weight:800; pointer-events:none; }
.ripple { position:absolute; pointer-events:none; width:28px; height:28px; margin:-14px 0 0 -14px; border:2px solid rgba(255,255,255,.85); border-radius:50%; opacity:0; box-shadow:0 0 0 1px rgba(102,223,243,.35); animation:water-ripple 1.65s ease-out forwards; }
.ripple::after { content:""; position:absolute; inset:-5px; border:1px solid rgba(255,255,255,.62); border-radius:inherit; transform:scale(.5); animation:water-ripple-secondary 1.65s ease-out forwards; }
@keyframes water-ripple { 0%{transform:scale(.6);opacity:.95} 90%{opacity:.12} 100%{transform:scale(9);opacity:0} }
@keyframes water-ripple-secondary { to{transform:scale(1.6);opacity:0} }
.pool-right { padding:clamp(42px,5vw,80px) clamp(32px,5vw,90px) clamp(65px,5vw,82px); display:flex; flex-direction:column; justify-content:space-between; }
.pool-right .chapter-title { margin:0 0 65px; }
.pool-right-content { max-width:550px; padding-bottom:7px; }
.pool-wave-mark { width:80px; height:80px; color:var(--pink); font:400 117px/0.57 var(--serif); margin-bottom:26px; transform:rotate(5deg); }
.pool-right-content .editorial-title { font-size:clamp(57px,5.3vw,99px); margin:22px 0 27px; }
.pool-right-content>p:not(.eyebrow) { line-height:1.85; font-size:14px; max-width:425px; color:#cdd0df; }
.pool-statline { display:flex; max-width:460px; gap:45px; margin:50px 0 36px; border-top:1px solid rgba(255,255,255,.25); padding-top:18px; }
.pool-statline div { display:flex; align-items:center; gap:14px; }
.pool-statline strong { font:400 48px/.9 var(--serif); color:var(--pink); }
.pool-statline span { font-size:9px; letter-spacing:.14em; font-weight:700; color:rgba(255,255,255,.75); max-width:90px; }

/* Rules */
.rules { background:var(--paper); }
.rules-heading { display:flex; justify-content:space-between; align-items:end; gap:40px; margin-bottom:68px; }
.rules-heading .eyebrow { margin-bottom:15px; }
.rules-crest { flex:none; display:grid; place-items:center; height:117px; width:117px; border:2px solid var(--ink); border-radius:50%; font:400 45px/.8 var(--serif); letter-spacing:-.12em; text-align:center; transform:rotate(12deg); }
.rules-crest i { display:block; margin-top:-12px; font:700 11px/1 var(--sans); letter-spacing:.1em; }
.rules-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-top:1px solid var(--divider); border-bottom:1px solid var(--divider); }
.rule { min-height:260px; padding:31px clamp(18px,2.4vw,36px) 31px 0; }
.rule+.rule { border-left:1px solid var(--divider); padding-left:clamp(18px,2.4vw,36px); }
.rule>span { color:var(--coral); font-size:10px; font-weight:800; letter-spacing:.18em; }
.rule h3 { font:400 clamp(23px,2.2vw,38px)/1.1 var(--serif); letter-spacing:-.048em; min-height:90px; margin:26px 0 15px; }
.rule p { font-size:13px; line-height:1.65; color:var(--ink-soft); margin:0; }
.rules-disclaimer { text-align:center; margin:30px 0 0; font-size:9px; letter-spacing:.2em; color:var(--ink-soft); font-weight:800; }

/* Botanical catalog */
.botanicals { background:var(--botanical-bg); transition:background .4s; }
.botanical-heading,.archive-heading { display:flex; justify-content:space-between; gap:70px; align-items:end; padding:75px 0 58px; }
.botanical-heading .eyebrow,.archive-heading .eyebrow { margin:0 0 23px; }
.botanical-heading>p,.archive-heading>p { flex:0 0 290px; max-width:290px; margin:0 0 6px; color:var(--ink-soft); font-size:14px; line-height:1.9; }
.botanical-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.botanical-card { position:relative; display:block; text-align:left; padding:0; height:clamp(480px,49vw,725px); border:0; color:#fff; overflow:hidden; background:#154866; isolation:isolate; }
.botanical-photo { position:absolute; inset:0; }
.botanical-photo img { width:100%; height:100%; object-fit:cover; transition:transform .75s cubic-bezier(.2,.7,.2,1); }
.botanical-card:nth-child(1) img { object-position:50% 38%; }
.botanical-card:nth-child(2) img { object-position:50% 50%; }
.botanical-card:nth-child(3) img { object-position:50% 43%; }
.botanical-photo::after { content:""; display:block; position:absolute; inset:0; background:linear-gradient(0deg,rgba(3,17,29,.77),rgba(2,8,25,.12) 66%,rgba(5,12,20,.42)); }
.botanical-card:hover .botanical-photo img { transform:scale(1.07); }
.botanical-index { position:absolute; top:25px; left:25px; right:25px; display:flex; justify-content:space-between; font-size:10px; letter-spacing:.15em; font-weight:800; }
.botanical-index b { font-weight:800; }
.botanical-name { position:absolute; bottom:78px; left:25px; font:400 clamp(46px,5vw,80px)/.94 var(--serif); letter-spacing:-.065em; }
.botanical-meta { position:absolute; bottom:24px; left:25px; right:25px; display:flex; justify-content:space-between; align-items:center; border-top:1px solid rgba(255,255,255,.65); padding-top:14px; font-size:10px; letter-spacing:.1em; font-weight:800; }
.botanical-meta span { font-weight:400; font-size:25px; line-height:.8; }
.botanical-footnote { margin:31px 0 0; font:800 10px/1.6 var(--sans); letter-spacing:.13em; color:var(--ink-soft); }

/* Nocturnal section */
.after-dark { display:grid; grid-template-columns:51% 49%; background:#0a0729; color:#fff8ec; min-height:750px; }
.after-dark-photo { position:relative; overflow:hidden; min-height:750px; }
.after-dark-photo img { position:absolute; width:100%; height:100%; object-fit:cover; object-position:50% 50%; filter:saturate(1.1); }
.after-dark-photo::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(0,0,20,.48),transparent 50%); }
.dark-photo-number { position:absolute; bottom:32px; left:33px; z-index:2; font:800 9px/1.2 var(--sans); letter-spacing:.16em; }
.after-dark-content { padding:clamp(46px,5vw,80px) clamp(34px,5vw,95px); display:flex; flex-direction:column; justify-content:space-between; }
.after-dark-middle { padding:55px 0; max-width:540px; }
.after-dark-middle .editorial-title { font-size:clamp(60px,6.7vw,118px); margin:24px 0 25px; }
.after-dark-middle>p:not(.eyebrow) { max-width:340px; font-size:14px; line-height:1.85; color:#c7c5d6; margin:0 0 30px; }
.after-dark-signoff { font-size:10px; letter-spacing:.16em; font-weight:800; color:rgba(255,255,255,.6); }

/* Archive */
.archive { background:var(--paper); }
.archive-heading { padding-top:75px; }
.archive-tabbar { display:flex; justify-content:space-between; align-items:center; gap:20px; border-top:1px solid var(--divider); border-bottom:1px solid var(--divider); padding:17px 0; margin-bottom:22px; }
.archive-tabbar>span { font-size:9px; letter-spacing:.15em; font-weight:800; color:var(--ink-soft); white-space:nowrap; }
.archive-tabs { display:flex; gap:8px; flex-wrap:wrap; }
.archive-tab { border:1px solid var(--outline); border-radius:40px; background:none; color:var(--ink); font:800 10px/1 var(--sans); letter-spacing:.1em; padding:13px 14px; transition:background .25s,color .25s; }
.archive-tab.is-active,.archive-tab:hover { background:var(--ink); color:var(--paper); }
.archive-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); grid-auto-flow:dense; grid-auto-rows:clamp(230px,23vw,350px); gap:13px; min-height:310px; }
.archive-image { position:relative; display:block; min-width:0; min-height:0; overflow:hidden; border:0; padding:0; color:#fff; background:#142847; text-align:left; isolation:isolate; }
.archive-image img { width:100%; height:100%; object-fit:cover; transition:transform .7s cubic-bezier(.2,.7,.2,1); }
.archive-image:hover img { transform:scale(1.08); }
.archive-image::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(0,5,18,.67),transparent 47%); }
.archive-image>span { position:absolute; z-index:1; bottom:17px; left:17px; right:17px; font-size:10px; letter-spacing:.1em; font-weight:800; }
.archive-image-tall { grid-row:span 2; }
.archive-image-wide { grid-column:span 2; }
.archive-image-wide img { object-position:50% 44%; }
.archive-empty { grid-column:1/-1; min-height:340px; display:grid; justify-content:center; align-content:center; text-align:center; padding:35px 20px; border:1px solid var(--divider); background:var(--cream); }
.archive-empty .archive-empty-icon { font:400 66px/1 var(--serif); color:var(--coral); }
.archive-empty h3 { font:400 clamp(35px,5vw,55px)/1.1 var(--serif); letter-spacing:-.06em; margin:20px 0 14px; }
.archive-empty p { max-width:500px; font-size:13px; line-height:1.8; margin:0 auto; color:var(--ink-soft); }
.archive-note { display:flex; justify-content:space-between; gap:20px; padding-top:25px; font:800 10px/1.6 var(--sans); letter-spacing:.12em; color:var(--ink-soft); }
.archive-note a { color:var(--ink); border-bottom:1px solid var(--divider); padding-bottom:5px; }
.archive-note a:hover { color:var(--coral); }

/* Closing and footer */
.last-word { position:relative; color:#fbf0e9; background:#090529; overflow:hidden; min-height:640px; display:grid; place-items:center; text-align:center; }
.last-word::before { content:""; position:absolute; width:min(80vw,790px); aspect-ratio:1; border:1px solid rgba(243,111,216,.17); border-radius:50%; pointer-events:none; }
.last-word::after { content:""; position:absolute; width:min(61vw,610px); aspect-ratio:1; border:1px solid rgba(243,111,216,.15); border-radius:50%; pointer-events:none; }
.last-word-inner { position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; max-width:650px; }
.last-word-inner .eyebrow { margin:0 0 30px; }
.last-word h2 { margin:15px 0 18px; font:400 clamp(78px,10vw,160px)/.86 var(--serif); letter-spacing:-.095em; }
.last-word h2 em { color:var(--pink); }
.last-word-inner>p:not(.eyebrow) { max-width:375px; margin:10px 0 25px; font-size:14px; line-height:1.8; color:#c8c6dc; }
.last-word-sun { position:absolute; right:-120px; top:16%; font-size:68px; color:var(--coral); opacity:.8; animation:slow-turn 30s linear infinite; }
@keyframes slow-turn { to{transform:rotate(360deg)} }
.site-footer { background:#04021b; color:#f6e9e2; padding:0 clamp(22px,6.2vw,110px); }
.footer-top { display:flex; justify-content:space-between; align-items:center; gap:12px; border-bottom:1px solid rgba(255,255,255,.22); padding:26px 0; font-size:10px; font-weight:800; letter-spacing:.18em; }
.footer-main { display:flex; justify-content:space-between; align-items:center; gap:25px; padding:60px 0 68px; }
.footer-logo { width:150px; background:none; border:0; padding:0; filter:drop-shadow(0 0 25px rgba(242,119,223,.17)); }
.footer-logo img { width:100%; }
.footer-main p { font:400 clamp(35px,4vw,68px)/.95 var(--serif); letter-spacing:-.065em; margin:0; }
.footer-main p em { color:var(--pink); }
.footer-main>a { font-size:11px; letter-spacing:.16em; font-weight:800; align-self:center; border-bottom:1px solid rgba(255,255,255,.5); padding-bottom:8px; }
.footer-bottom { display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px; padding:23px 0 30px; border-top:1px solid rgba(255,255,255,.22); font-size:9px; letter-spacing:.13em; font-weight:800; color:rgba(255,255,255,.57); }

/* Radio: an optional locally-synthesized audio ambience, off by default. */
.radio { position:fixed; z-index:65; right:clamp(14px,2.5vw,36px); bottom:max(15px,env(safe-area-inset-bottom)); }
.radio-launcher { min-height:47px; display:flex; align-items:center; gap:12px; background:#09082b; color:#fff0e9; border:1px solid rgba(242,119,223,.6); border-radius:60px; padding:6px 14px 6px 7px; box-shadow:0 10px 35px rgba(0,0,0,.24); font-weight:800; font-size:9px; letter-spacing:.13em; }
.radio-launcher .radio-icon { display:grid; place-items:center; width:32px; height:32px; border-radius:50%; background:#f178d9; color:#080523; font-size:21px; }
.radio-launcher i { width:5px; height:5px; background:#6a657a; border-radius:50%; }
.radio-launcher i.is-on { background:#8ce9b4; box-shadow:0 0 12px #8ce9b4; }
.radio-panel { width:min(calc(100vw - 28px),325px); position:absolute; bottom:58px; right:0; display:flex; flex-direction:column; align-items:start; background:#f9efdf; color:#111b40; box-shadow:0 22px 60px rgba(0,0,0,.27); border:1px solid #e2c5ca; border-radius:5px; padding:20px; opacity:0; visibility:hidden; pointer-events:none; transform:translateY(12px); transition:opacity .25s,visibility .25s,transform .25s; }
.radio-panel.is-open { opacity:1; visibility:visible; pointer-events:auto; transform:translateY(0); }
.radio-panel-top { width:100%; display:flex; align-items:center; justify-content:space-between; font-size:10px; letter-spacing:.16em; font-weight:800; }
.radio-close { width:26px; height:26px; background:transparent; border:1px solid #172847; border-radius:50%; color:inherit; font:24px/0 var(--sans); }
.radio-record { width:92px; height:92px; display:grid; place-items:center; border-radius:50%; margin:20px auto 10px; background:repeating-radial-gradient(circle at center,#11182e 0 4px,#292c42 4px 5px,#0d132d 5px 8px); border:1px solid #55546b; color:var(--pink); box-shadow:0 5px 14px rgba(0,0,0,.2); font:400 33px/1 var(--serif); }
.radio-record span { width:49px;height:49px;display:grid;place-items:center;border-radius:50%;background:#eb77d8;color:#131332;letter-spacing:-.1em; }
.radio-panel.is-playing .radio-record { animation:slow-turn 9s linear infinite; }
.radio-panel h3 { margin:12px 0 4px; font:400 44px/.95 var(--serif); letter-spacing:-.075em; }
.radio-panel p { font-size:12px; line-height:1.7; color:#595d71; margin:8px 0 16px; }
.radio-play { background:#131d41; color:white; border:0; padding:15px 17px; display:flex; justify-content:center; gap:10px; align-items:center; width:100%; font:800 10px/1 var(--sans); letter-spacing:.12em; border-radius:50px; }
.radio-external { align-self:center; margin-top:18px; border-bottom:1px solid #aab0b9; padding-bottom:6px; font:800 9px/1.2 var(--sans); letter-spacing:.13em; }

/* Modal layers */
.site-dialog { position:fixed; inset:0; margin:auto; max-height:min(850px,calc(100dvh - 34px)); color:#1b294a; background:#f8f0e2; border:0; box-shadow:0 28px 80px rgba(0,0,0,.4); padding:0; overflow:auto; }
.site-dialog:not([open]) { display:none !important; }
.site-dialog::backdrop { background:rgba(4,5,25,.78); backdrop-filter:blur(7px); }
.dialog-close { position:absolute; z-index:5; top:20px; right:20px; height:39px; width:39px; display:grid; place-items:center; border-radius:50%; border:1px solid rgba(4,9,24,.35); background:#f8f0e2; color:#192640; font:35px/.7 var(--sans); }
.botanical-dialog[open] { display:grid; grid-template-columns:1fr 1fr; width:min(870px,calc(100vw - 30px)); min-height:500px; }
.botanical-dialog-image { min-height:500px; }
.botanical-dialog-image img { width:100%; height:100%; object-fit:cover; max-height:820px; }
.botanical-dialog-copy { display:flex; flex-direction:column; justify-content:center; padding:75px clamp(26px,4vw,55px) 36px; }
.botanical-dialog-copy h2 { margin:12px 0 8px; font:400 clamp(49px,5vw,73px)/.93 var(--serif); letter-spacing:-.075em; }
.botanical-latin { margin:0 0 23px !important; font-style:italic; color:#a45d55 !important; }
.botanical-dialog-copy p:not(.eyebrow) { font-size:14px; line-height:1.85; color:#5a6070; }
.dialog-foot { margin-top:auto; padding-top:25px; border-top:1px solid rgba(20,30,50,.2); font-size:9px; line-height:1.6; font-weight:800; letter-spacing:.16em; color:#677084; }
.secret-dialog { width:min(580px,calc(100vw - 30px)); min-height:605px; padding:76px clamp(28px,5vw,60px) 35px; background:#09052d; color:#fff4f4; text-align:center; }
.secret-dialog .dialog-close { background:#09052d; color:#fff; border-color:rgba(255,255,255,.4); }
.secret-dialog>img { width:140px; margin:0 auto 32px; filter:drop-shadow(0 0 20px rgba(242,119,223,.36)); }
.secret-dialog h2 { margin:10px 0 18px; font:400 clamp(51px,7vw,83px)/.92 var(--serif); letter-spacing:-.07em; }
.secret-dialog h2 em { color:var(--pink); }
.secret-dialog>p:not(.eyebrow) { max-width:380px; margin:0 auto 28px; font-size:14px; line-height:1.85; color:#cdc7de; }
.secret-password { display:flex; flex-direction:column; justify-content:center; gap:12px; border:1px solid #db6ccb; border-radius:3px; padding:17px; max-width:290px; margin:0 auto 30px; }
.secret-password span { font-size:9px; letter-spacing:.19em; font-weight:800; }
.secret-password b { font:400 37px/.9 var(--serif); letter-spacing:-.04em; color:var(--pink); }
.secret-foot { font-size:9px; line-height:1.4; letter-spacing:.13em; color:#b1a5c9; }
.lightbox-dialog { width:min(900px,calc(100vw - 22px)); background:#06041e; color:#fff; max-height:calc(100dvh - 28px); }
.lightbox-controls { padding:18px 18px 17px; min-height:68px; font-size:10px; letter-spacing:.13em; font-weight:800; display:flex; align-items:center; justify-content:space-between; }
.lightbox-controls .dialog-close { position:static; background:#070422; color:#fff; border-color:rgba(255,255,255,.5); }
.lightbox-dialog>img { width:100%; height:min(69vh,670px); object-fit:contain; }
.lightbox-dialog>p { text-align:center; font:400 23px/1.3 var(--serif); margin:14px 0 25px; }
.notice-dialog { width:min(580px,calc(100vw - 30px)); padding:75px clamp(25px,5vw,60px) 35px; min-height:470px; }
.notice-sun { font-size:70px; color:var(--coral); line-height:1; }
.notice-dialog .eyebrow { margin:20px 0; }
.notice-dialog h2 { margin:15px 0 22px; font:400 clamp(44px,5.4vw,70px)/1.02 var(--serif); letter-spacing:-.077em; }
.notice-dialog>p:not(.eyebrow) { font-size:14px; color:#555b6b; line-height:1.8; margin:0 0 45px; }

@media(max-width:1200px) {
  .desktop-nav { gap:12px; }
  .desktop-nav a { font-size:9px; }
  .brand-wordmark { font-size:15px; }
  .brand-symbol,.brand-symbol img { width:55px; }
  .hero-copy { padding-left:35px; padding-right:35px; }
  .hero h1 { font-size:clamp(51px,5.6vw,80px); }
  .estate-art { padding-left:25px; }
  .estate-type .editorial-title { font-size:clamp(61px,6.2vw,90px); }
}
@media(max-width:950px) {
  .desktop-nav { display:none; }
  .mobile-menu-button { display:flex; }
  .header-shell { min-height:73px; }
  .site-header .brand-wordmark { font-size:16px; }
  .hero { padding-top:73px; }
  .hero-copy { padding:32px 26px 26px; }
  .hero h1 { font-size:clamp(51px,6.5vw,70px); }
  .hero-maincopy { padding:70px 0; }
  .estate-layout { min-height:620px; }
  .pool { grid-template-columns:50% 50%; }
  .pool-left,.pool-photo { min-height:710px; }
  .pool-right { padding:40px 32px 60px; }
  .pool-right-content .editorial-title { font-size:clamp(49px,5.5vw,77px); }
  .after-dark-content { padding:48px 30px; }
  .after-dark-middle .editorial-title { font-size:clamp(55px,6vw,80px); }
  .botanical-name { font-size:clamp(36px,4.7vw,65px); }
}
@media(max-width:720px) {
  html { scroll-padding-top:70px; }
  .section-pad { padding:85px 23px; }
  .header-shell { min-height:70px; padding:5px 19px; }
  .brand-symbol,.brand-symbol img { width:50px; }
  .brand-symbol { height:48px; }
  .brand-wordmark { font-size:16px; }
  .brand-wordmark small { font-size:6px; }
  .theme-toggle { min-height:37px; gap:6px; }
  .theme-toggle-label { font-size:8px; }
  .mobile-menu { padding-top:105px; }
  .hero { display:flex; flex-direction:column; min-height:auto; padding-top:70px; }
  .hero-copy { order:2; min-height:0; padding:26px 25px 25px; }
  .hero-topline span:last-child { font-size:8px; }
  .hero-maincopy { padding:55px 0 47px; }
  .hero h1 { font-size:clamp(51px,12.6vw,81px); margin-bottom:27px; }
  .hero-tagline { font-size:30px; }
  .hero-intro { font-size:12px; max-width:340px; }
  .hero-foot { font-size:8px; }
  .hero-photo { order:1; min-height:calc(100svh - 70px); }
  .hero-photo>.theme-image { object-position:50% 88%; }
  .hero-photo-top { top:30px; left:25px; right:25px; }
  .hero-photo-bottom { left:25px; bottom:65px; }
  .hero-photo-bottom strong { font-size:clamp(52px,13vw,70px); }
  .sunburst-seal { width:115px; right:7%; top:13%; }
  .hero-scroll { display:none; }
  .marquee { padding:13px 0; }
  .marquee-track { gap:26px; font-size:10px; }
  .estate-layout { grid-template-columns:1fr; min-height:auto; gap:10px; }
  .estate-type { padding:50px 0 0; }
  .estate-type .editorial-title { font-size:clamp(64px,10vw,88px); }
  .estate-bottom-copy { margin-top:31px; }
  .estate-art { padding:55px 38px 65px; }
  .poster-layout { max-width:390px; }
  .poster-caption { font-size:8px; }
  .estate-lower { flex-direction:column; gap:16px; }
  .estate-lower span { flex-direction:row; gap:14px; }
  .pool { display:flex; flex-direction:column; }
  .pool-left,.pool-photo { min-height:610px; }
  .pool-photo>.theme-image { object-position:50% 73%; }
  .pool-right { padding:40px 23px 76px; min-height:620px; }
  .pool-right .chapter-title { margin:0 0 60px; }
  .pool-right-content .editorial-title { font-size:clamp(61px,10vw,85px); }
  .pool-right-content>p:not(.eyebrow) { max-width:450px; }
  .pool-statline { margin:32px 0; }
  .rules-heading { align-items:center; margin-bottom:35px; }
  .rules-heading .editorial-title { font-size:clamp(52px,9vw,80px); }
  .rules-crest { height:86px; width:86px; font-size:33px; }
  .rules-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .rule { min-height:205px; padding:22px 20px 25px 0; }
  .rule:nth-child(3) { border-left:0; padding-left:0; border-top:1px solid var(--divider); }
  .rule:nth-child(4) { border-top:1px solid var(--divider); }
  .rule h3 { min-height:60px; font-size:27px; margin:18px 0 14px; }
  .rule p { font-size:12px; }
  .rules-disclaimer { font-size:8px; line-height:1.8; }
  .botanical-heading,.archive-heading { flex-direction:column; align-items:start; gap:20px; padding:45px 0 35px; }
  .botanical-heading>p,.archive-heading>p { flex:0 1 auto; max-width:430px; }
  .botanical-heading .editorial-title,.archive-heading .editorial-title { font-size:clamp(55px,10vw,79px); }
  .botanical-grid { grid-template-columns:1fr 1fr; gap:10px; }
  .botanical-card { height:clamp(340px,70vw,550px); }
  .botanical-card:nth-child(3) { grid-column:1/-1; height:400px; }
  .botanical-name { left:17px; bottom:63px; font-size:clamp(36px,7vw,55px); }
  .botanical-index { left:17px; right:17px; top:19px; font-size:8px; }
  .botanical-meta { left:17px; right:17px; bottom:17px; font-size:8px; }
  .after-dark { display:flex; flex-direction:column; min-height:auto; }
  .after-dark-photo { min-height:600px; }
  .after-dark-content { padding:40px 23px 80px; min-height:680px; }
  .after-dark-middle { padding:52px 0 40px; }
  .after-dark-middle .editorial-title { font-size:clamp(69px,10vw,91px); }
  .archive-tabbar { align-items:start; flex-direction:column; }
  .archive-grid { grid-template-columns:repeat(2,minmax(0,1fr)); grid-auto-rows:210px; gap:8px; }
  .archive-image-wide { grid-column:span 2; }
  .archive-note { flex-direction:column; }
  .last-word { min-height:560px; }
  .last-word::before { width:110vw; }
  .last-word::after { width:90vw; }
  .last-word h2 { font-size:clamp(80px,16vw,126px); }
  .last-word-sun { right:-27px; top:-50px; font-size:48px; }
  .footer-top { padding:24px 0; font-size:8px; }
  .footer-main { flex-wrap:wrap; justify-content:start; padding:40px 0 45px; }
  .footer-logo { width:95px; }
  .footer-main p { font-size:clamp(34px,6vw,54px); flex:1; }
  .footer-main>a { width:100%; margin-top:14px; }
  .footer-bottom { font-size:8px; }
  .botanical-dialog[open] { display:block; }
  .botanical-dialog-image { min-height:0; height:250px; }
  .botanical-dialog-copy { padding:28px 30px 35px; }
  .botanical-dialog-copy h2 { font-size:53px; }
  .dialog-foot { margin-top:20px; }
}
@media(max-width:390px) {
  .hero h1 { font-size:12.2vw; }
  .header-shell { padding-inline:13px; gap:5px; }
  .brand-symbol,.brand-symbol img { width:45px; }
  .brand-wordmark { font-size:14px; }
  .theme-toggle { padding-left:7px; }
  .theme-toggle-label { display:none; }
  .hero-copy { min-height:570px; }
  .hero-photo { min-height:570px; }
  .hero-photo-bottom strong { font-size:62px; }
  .estate-type .editorial-title { font-size:59px; }
  .rules-crest { height:70px; width:70px; font-size:29px; }
  .botanical-name { font-size:35px; }
  .pool-right-content .editorial-title { font-size:59px; }
  .after-dark-middle .editorial-title { font-size:64px; }
  .archive-tabs { gap:5px; }
  .archive-tab { font-size:8px; padding:11px 10px; }
  .archive-grid { grid-auto-rows:180px; }
  .footer-main { gap:10px; }
  .footer-main p { font-size:32px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
  .js .reveal { opacity:1; transform:none; }
}
