:root {
  --ink: #2d2118;
  --ink-soft: #5a4738;
  --parchment: #ead9b7;
  --parchment-light: #f5ead1;
  --parchment-deep: #c8a974;
  --green: #173c2b;
  --green-2: #24543d;
  --green-3: #0d271c;
  --gold: #b98943;
  --gold-light: #dfbd75;
  --gold-pale: #f0d79f;
  --wood: #2d1d15;
  --wood-2: #493124;
  --blackletter: "Old English Text MT", "Lucida Blackletter", Georgia, "Times New Roman", serif;
  --serif: Georgia, "Times New Roman", Times, serif;
  --sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --shadow: 0 18px 55px rgba(21, 13, 7, .24);
}

body.google-fonts {
  --blackletter: "UnifrakturCook", "Old English Text MT", "Lucida Blackletter", Georgia, serif;
  --serif: "Crimson Pro", Georgia, "Times New Roman", serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--green-3); }
body {
  margin: 0;
  color: var(--ink);
  font-family: var(--serif);
  background:
    radial-gradient(circle at 15% 8%, rgba(255,255,255,.38), transparent 22rem),
    linear-gradient(90deg, rgba(86,56,27,.04) 1px, transparent 1px),
    linear-gradient(0deg, rgba(86,56,27,.035) 1px, transparent 1px),
    #efe0c4;
  background-size: auto, 31px 31px, 31px 31px, auto;
  line-height: 1.65;
  overflow-x: hidden;
}
a { color: inherit; }
button, input { font: inherit; }
button { cursor: pointer; }

.grain {
  position: fixed; inset: 0; z-index: 90; pointer-events: none; opacity: .11;
  background-image:
    repeating-radial-gradient(circle at 30% 40%, rgba(45,33,24,.11) 0 1px, transparent 1px 4px),
    repeating-linear-gradient(113deg, transparent 0 8px, rgba(255,255,255,.05) 8px 9px, transparent 9px 18px);
  mix-blend-mode: multiply;
}

.topbar {
  position: fixed; z-index: 60; inset: 0 0 auto 0; height: 88px;
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 clamp(20px, 4.5vw, 72px);
  background:
    linear-gradient(180deg, rgba(14,10,7,.98), rgba(46,29,20,.95)),
    repeating-linear-gradient(90deg, transparent 0 80px, rgba(255,255,255,.018) 81px 82px);
  border-bottom: 2px solid rgba(207,164,91,.72);
  box-shadow: 0 8px 28px rgba(0,0,0,.32);
  backdrop-filter: blur(7px);
}
.topbar::before, .topbar::after {
  content: "❦"; position: absolute; top: 50%; transform: translateY(-50%); color: var(--gold); opacity: .65; font-size: 25px;
}
.topbar::before { left: 8px; }
.topbar::after { right: 8px; transform: translateY(-50%) scaleX(-1); }
.brand { display: flex; align-items: center; gap: 12px; color: #f3dec1; text-decoration: none; min-width: 218px; }
.brand img { width: 70px; height: 70px; object-fit: contain; filter: drop-shadow(0 4px 6px rgba(0,0,0,.45)); }
.brand strong { display:block; color: var(--gold-light); font-family: var(--blackletter); font-size: 27px; letter-spacing: .02em; line-height:1; }
.brand small { display:block; margin-top: 5px; font-family: var(--sans); font-size: 9px; letter-spacing: .22em; text-transform: uppercase; color:#ddcdb4; }
.nav { display:flex; align-items:center; gap: 4px; }
.nav a { position:relative; padding: 11px 13px; color:#efddc1; font-family:var(--sans); font-size:12px; font-weight:700; letter-spacing:.075em; text-transform:uppercase; text-decoration:none; transition:.25s ease; }
.nav a::after { content:""; position:absolute; left:50%; right:50%; bottom:4px; height:1px; background:var(--gold-light); transition:.25s ease; }
.nav a:hover { color:var(--gold-light); }
.nav a:hover::after { left:13px; right:13px; }
.nav-toggle { display:none; color:var(--gold-light); border:1px solid rgba(207,164,91,.5); background:rgba(25,59,43,.5); border-radius:8px; font-size:24px; padding:7px 11px; }

.hero {
  position:relative;
  min-height:100svh;
  display:grid;
  place-items:center;
  padding: 108px clamp(24px,5vw,82px) 48px;
  overflow:hidden;
  color:#fff8e8;
  isolation:isolate;
}
.hero-photo { position:absolute; inset:-5%; z-index:-5; background:url('/assets/hero.jpeg') center 54%/cover no-repeat; transform:scale(1.06); will-change:transform; }
.hero-shade { position:absolute; inset:0; z-index:-4; background:linear-gradient(90deg, rgba(6,14,10,.86) 0%, rgba(8,17,12,.70) 38%, rgba(15,14,10,.40) 72%, rgba(10,8,6,.58) 100%), linear-gradient(180deg, rgba(0,0,0,.20), transparent 36%, rgba(11,18,13,.72)); }
.hero-glow { position:absolute; inset:0; z-index:-3; background:radial-gradient(circle at 68% 34%, rgba(235,185,91,.16), transparent 29%), radial-gradient(circle at 18% 60%, rgba(43,94,63,.24), transparent 32%); }
.hero::before,.hero::after { content:""; position:absolute; z-index:-1; left:0; right:0; height:10px; opacity:.75; background:linear-gradient(90deg,transparent 2%,var(--gold) 10%,var(--wood) 22%,var(--gold) 50%,var(--wood) 78%,var(--gold) 90%,transparent 98%); }
.hero::before { top:88px; }
.hero::after { bottom:0; }
.hero-content {
  position:relative;
  width:min(1240px, 100%);
  margin:auto;
  display:grid;
  grid-template-columns:minmax(210px,330px) minmax(0,760px);
  gap:clamp(26px,5vw,74px);
  align-items:center;
}
.hero-emblem-wrap { position:relative; display:grid; justify-items:center; align-self:center; }
.hero-emblem-wrap::before,.hero-emblem-wrap::after { content:""; width:72%; height:1px; background:linear-gradient(90deg,transparent,var(--gold-light),transparent); }
.hero-emblem-flourish { color:var(--gold-light); font-size:28px; opacity:.85; line-height:1; text-shadow:0 3px 10px rgba(0,0,0,.7); }
.hero-emblem-flourish.top { margin-bottom:4px; }
.hero-emblem-flourish.bottom { margin-top:-3px; font-size:16px; }
.hero-logo { width:min(100%,300px); height:auto; filter:drop-shadow(0 16px 18px rgba(0,0,0,.52)); margin:8px 0 12px; animation: emblemFloat 7s ease-in-out infinite; }
@keyframes emblemFloat { 0%,100%{transform:translateY(0) rotate(-.25deg)} 50%{transform:translateY(-5px) rotate(.25deg)} }
.hero-copy {
  position:relative;
  padding:clamp(24px,3vw,38px) clamp(24px,3.4vw,44px) clamp(24px,3vw,36px);
  background:linear-gradient(110deg,rgba(16,19,14,.73),rgba(19,23,17,.48) 72%,rgba(35,25,16,.32));
  border:1px solid rgba(222,184,112,.48);
  outline:1px solid rgba(222,184,112,.16);
  outline-offset:-8px;
  box-shadow:0 22px 70px rgba(0,0,0,.35), inset 0 0 55px rgba(8,15,10,.18);
  backdrop-filter:blur(4px);
}
.hero-copy::before,.hero-copy::after { content:"❦"; position:absolute; color:rgba(224,187,112,.72); font-size:25px; }
.hero-copy::before { top:-17px; left:50%; transform:translateX(-50%); background:rgba(23,31,23,.85); padding:0 12px; }
.hero-copy::after { bottom:-17px; left:50%; transform:translateX(-50%) rotate(180deg); background:rgba(23,31,23,.85); padding:0 12px; }
.hero-copy-corners i { position:absolute; width:28px; height:28px; border-color:rgba(223,189,117,.64); pointer-events:none; }
.hero-copy-corners i:nth-child(1){left:6px;top:6px;border-left:2px solid;border-top:2px solid}
.hero-copy-corners i:nth-child(2){right:6px;top:6px;border-right:2px solid;border-top:2px solid}
.hero-copy-corners i:nth-child(3){left:6px;bottom:6px;border-left:2px solid;border-bottom:2px solid}
.hero-copy-corners i:nth-child(4){right:6px;bottom:6px;border-right:2px solid;border-bottom:2px solid}
.hero-rune { color:var(--gold-light); font-size:17px; letter-spacing:.45em; margin:0 0 7px; opacity:.88; }
.hero-rune span { font-size:10px; vertical-align:middle; }
.eyebrow,.kicker { margin:0 0 8px; font-family:var(--sans); text-transform:uppercase; letter-spacing:.18em; font-size:11px; font-weight:800; }
.eyebrow { color:#e8c987; }
.hero h1 { margin: 0; max-width: 760px; font-family:var(--blackletter); font-size:clamp(50px,5.7vw,88px); line-height:.92; font-weight:700; letter-spacing:-.02em; text-shadow:0 5px 18px rgba(0,0,0,.62); }
.hero h1 span { color:var(--gold-light); }
.hero-divider { display:flex; align-items:center; gap:11px; width:min(520px,100%); margin:18px 0 0; color:var(--gold-light); }
.hero-divider span { height:1px; flex:1; background:linear-gradient(90deg,var(--gold),transparent); }
.hero-divider span:last-child { background:linear-gradient(90deg,transparent,var(--gold)); }
.hero-divider b { font-size:18px; }
.hero-lead { max-width:690px; margin:17px 0 0; font-size:clamp(16px,1.15vw,19px); line-height:1.55; color:#f2e6d2; text-shadow:0 2px 9px rgba(0,0,0,.82); }
.hero-status { display:inline-flex; align-items:center; gap:8px; margin:15px 0 0; padding:7px 12px; color:#ecd7b0; background:rgba(11,47,32,.58); border:1px solid rgba(212,169,91,.45); font-family:var(--sans); font-size:11px; letter-spacing:.03em; }
.hero-status span { color:var(--gold-light); }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:20px; }
.button { display:inline-flex; justify-content:center; align-items:center; min-height:46px; padding:0 21px; border-radius:3px; border:1px solid rgba(194,146,69,.85); text-decoration:none; text-transform:uppercase; letter-spacing:.085em; font-family:var(--sans); font-size:11px; font-weight:800; transition: transform .2s ease, box-shadow .2s ease, background .2s ease; }
.button.primary { color:#fff7e6; background:linear-gradient(180deg,#2a6348,#173c2b); box-shadow:inset 0 0 0 1px rgba(255,255,255,.08),0 9px 20px rgba(0,0,0,.2); }
.button.ghost { color:#f5e3bf; background:rgba(46,30,19,.42); backdrop-filter:blur(4px); }
.button.neutral { color:#3d2c1f; background:linear-gradient(#f5e5c6,#d9bf91); }
.button:hover { transform:translateY(-2px); box-shadow:0 11px 25px rgba(0,0,0,.24), 0 0 22px rgba(199,151,70,.12); }
.button.small { min-height:40px; padding:0 16px; font-size:10px; }
.motto { margin-top:19px; color:#ebd7b1; font-family:var(--sans); font-size:10px; letter-spacing:.16em; text-transform:uppercase; }
.motto span { color:var(--gold); padding:0 8px; }
.motto.large { color:var(--green); font-weight:800; margin-top:28px; }
.scroll-mark { position:absolute; bottom:18px; left:50%; translate:-50% 0; display:grid; place-items:center; width:40px; height:40px; border:1px solid rgba(231,197,136,.55); border-radius:50%; color:#efd49e; text-decoration:none; font-size:25px; animation:bounce 2s infinite; }
@keyframes bounce { 50%{transform:translateY(6px)} }
.hero-dust i { position:absolute; width:3px; height:3px; border-radius:50%; background:#f1d39a; box-shadow:0 0 10px #f1d39a; opacity:.25; animation:drift 12s linear infinite; }
.hero-dust i:nth-child(1){left:8%;top:48%;animation-duration:14s}.hero-dust i:nth-child(2){left:23%;top:77%;animation-delay:-3s}.hero-dust i:nth-child(3){left:41%;top:37%;animation-delay:-7s}.hero-dust i:nth-child(4){left:60%;top:69%;animation-delay:-4s}.hero-dust i:nth-child(5){left:71%;top:22%;animation-delay:-8s}.hero-dust i:nth-child(6){left:82%;top:55%;animation-delay:-1s}.hero-dust i:nth-child(7){left:91%;top:79%;animation-delay:-5s}.hero-dust i:nth-child(8){left:52%;top:86%;animation-delay:-10s}
@keyframes drift { 0%{transform:translate3d(0,20px,0);opacity:0}20%{opacity:.36}100%{transform:translate3d(34px,-130px,0);opacity:0} }

.parchment { position:relative; background:
  radial-gradient(circle at 10% 15%, rgba(255,255,255,.56), transparent 26%),
  radial-gradient(circle at 88% 78%, rgba(129,84,36,.11), transparent 30%),
  repeating-linear-gradient(0deg, rgba(94,62,31,.018) 0 1px, transparent 1px 5px),
  var(--parchment-light);
  box-shadow:inset 0 0 95px rgba(103,68,34,.12);
}
.parchment::before,.parchment::after { content:""; position:absolute; left:0; right:0; height:9px; background:linear-gradient(90deg,var(--wood),var(--gold),var(--wood)); opacity:.8; }
.parchment::before{top:0}.parchment::after{bottom:0}
.corner-ornaments i { position:absolute; z-index:1; width:48px; height:48px; opacity:.46; pointer-events:none; }
.corner-ornaments i::before { content:"❦"; position:absolute; color:#8a602b; font-size:33px; }
.corner-ornaments i:nth-child(1){left:18px;top:18px}.corner-ornaments i:nth-child(2){right:18px;top:18px;transform:scaleX(-1)}.corner-ornaments i:nth-child(3){left:18px;bottom:18px;transform:scaleY(-1)}.corner-ornaments i:nth-child(4){right:18px;bottom:18px;transform:scale(-1)}
.intro { padding:clamp(78px,9vw,124px) max(6vw,24px); text-align:center; }
.kicker { color:var(--green); }
.kicker.gold { color:var(--gold-light); }
h2 { margin:0 0 18px; font-family:var(--blackletter); font-size:clamp(43px,5vw,72px); line-height:1; color:var(--ink); letter-spacing:.005em; }
.intro-text,.section-lead { max-width:900px; margin:0 auto; font-size:18px; color:var(--ink-soft); }
.ornament { display:flex; align-items:center; justify-content:center; gap:13px; margin-bottom:19px; color:var(--gold); }
.ornament span { width:min(170px,24vw); height:1px; background:linear-gradient(90deg,transparent,var(--gold)); }
.ornament span:last-child { background:linear-gradient(90deg,var(--gold),transparent); }
.ornament b { font-size:24px; }
.facts { width:min(1180px,100%); margin:55px auto 0; display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid rgba(85,53,25,.25); border-bottom:1px solid rgba(85,53,25,.25); }
.facts article { padding:28px 22px; position:relative; }
.facts article::before { content:"◆"; display:block; color:rgba(129,87,39,.52); font-size:9px; margin-bottom:8px; }
.facts article:not(:last-child)::after { content:""; position:absolute; right:0; top:20%; bottom:20%; width:1px; background:rgba(92,61,31,.23); }
.facts strong { display:block; color:var(--green); font-family:var(--blackletter); font-size:39px; line-height:1; }
.facts span { display:block; margin-top:9px; font-family:var(--sans); font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:#655140; }

.dark-panel { position:relative; padding:clamp(84px,10vw,130px) max(6vw,24px); color:#f3e6cf; background:
  linear-gradient(rgba(9,27,20,.96),rgba(19,52,38,.97)),
  repeating-linear-gradient(92deg, transparent 0 38px, rgba(255,255,255,.025) 39px 40px),
  var(--green);
  border-top:1px solid var(--gold); border-bottom:1px solid var(--gold);
}
.dark-panel::before,.timeline-section::before,.rentals::before { content:"❦  ◆  ❦"; position:absolute; top:24px; left:50%; transform:translateX(-50%); color:rgba(215,176,107,.66); letter-spacing:.55em; white-space:nowrap; }
.section-inner { width:min(1120px,100%); margin:auto; position:relative; }
.section-inner.narrow { width:min(960px,100%); }
.dark-panel h2,.timeline-section h2,.rentals h2 { color:#f5e6c9; }
.dark-panel .section-lead,.timeline-section .section-lead,.rentals .section-lead { color:#d7c8af; }
.section-ornament-bar { position:absolute; left:50%; top:52px; transform:translateX(-50%); display:flex; align-items:center; gap:9px; color:rgba(214,171,93,.5); opacity:.6; }
.section-ornament-bar i { width:60px; height:1px; background:linear-gradient(90deg,transparent,currentColor); }
.section-ornament-bar i:last-of-type { background:linear-gradient(90deg,currentColor,transparent); }
.story-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:48px; }
.story-card { position:relative; padding:34px 26px 28px; border:1px solid rgba(201,159,83,.38); background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.018)); box-shadow:inset 0 0 0 5px rgba(0,0,0,.06); }
.story-card::before,.story-card::after { content:""; position:absolute; width:18px; height:18px; border-color:rgba(215,177,105,.56); }
.story-card::before { left:7px; top:7px; border-left:1px solid; border-top:1px solid; }
.story-card::after { right:7px; bottom:7px; border-right:1px solid; border-bottom:1px solid; }
.story-card.featured { transform:translateY(-8px); border-color:rgba(223,183,107,.68); background:linear-gradient(180deg,rgba(180,137,65,.13),rgba(255,255,255,.028)); }
.card-ornament { position:absolute; top:10px; right:13px; color:rgba(220,181,106,.44); font-size:25px; }
.year { display:block; color:var(--gold-light); font-family:var(--blackletter); font-size:42px; line-height:1; }
.story-card h3 { margin:12px 0 8px; color:#f3e2c6; font-size:21px; }
.story-card p { margin:0; color:#d4c4aa; }
.quote-panel { position:relative; max-width:900px; margin:42px auto 0; padding:28px 36px 28px 78px; color:#ead9bc; border-top:1px solid rgba(211,171,100,.34); border-bottom:1px solid rgba(211,171,100,.34); }
.quote-panel::before,.quote-panel::after { content:"❦"; position:absolute; top:50%; transform:translateY(-50%); color:rgba(218,177,102,.38); font-size:22px; }
.quote-panel::before{left:14px}.quote-panel::after{right:14px;transform:translateY(-50%) scaleX(-1)}
.quote-mark { position:absolute; left:25px; top:7px; color:var(--gold); font-family:Georgia,serif; font-size:75px; line-height:1; opacity:.72; }
.quote-panel blockquote { margin:0; font-size:20px; font-style:italic; }

.life { padding:clamp(82px,9vw,118px) max(6vw,24px); text-align:center; }
.life-grid { width:min(1120px,100%); margin:42px auto 0; display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.life-grid article { position:relative; padding:31px 25px 28px; border:1px solid rgba(100,67,34,.28); background:rgba(255,255,255,.2); box-shadow:0 11px 30px rgba(74,49,24,.07), inset 0 0 0 5px rgba(137,91,43,.035); }
.life-grid article::after { content:"◆"; position:absolute; bottom:8px; left:50%; transform:translateX(-50%); color:rgba(123,82,37,.32); font-size:9px; }
.leaf-corner { position:absolute; right:10px; top:7px; color:rgba(116,77,34,.36); font-size:28px; }
.icon { width:61px; height:61px; display:grid; place-items:center; margin:0 auto 15px; color:var(--gold); border:1px solid rgba(102,66,29,.35); border-radius:50%; font-size:28px; box-shadow:inset 0 0 0 6px rgba(147,99,45,.06); }
.life-grid h3 { margin:0 0 10px; color:var(--green); font-size:22px; }
.life-grid p { margin:0; color:var(--ink-soft); }

.historical-photo-section { padding:clamp(82px,9vw,118px) max(6vw,24px); }
.historical-photo-inner { display:grid; grid-template-columns:minmax(280px,.8fr) minmax(420px,1.2fr); gap:clamp(34px,6vw,78px); align-items:center; }
.historical-photo-copy h2 { max-width:480px; }
.historical-photo-copy p { font-size:18px; color:var(--ink-soft); }
.mini-ornament,.legal-ornament,.contact-ornament { color:#9b6d32; letter-spacing:.35em; }
.historical-photo-frame { position:relative; margin:0; padding:14px; background:#d8c299; border:1px solid #86602e; outline:1px solid rgba(134,96,46,.44); outline-offset:5px; box-shadow:0 18px 55px rgba(50,32,17,.2); transform:rotate(-.35deg); }
.historical-photo-frame::before { content:""; position:absolute; inset:8px; border:1px solid rgba(111,74,34,.34); pointer-events:none; }
.historical-photo-frame img { display:block; width:100%; height:auto; max-height:520px; object-fit:contain; filter:sepia(.15) contrast(1.05); background:#d7d1c6; }
.historical-photo-frame figcaption { padding:11px 8px 4px; text-align:center; color:#5a422e; font-style:italic; font-size:14px; }
.photo-corners i { position:absolute; z-index:2; width:32px; height:32px; pointer-events:none; }
.photo-corners i::before { content:"❦"; color:#805526; font-size:25px; }
.photo-corners i:nth-child(1){left:-8px;top:-11px}.photo-corners i:nth-child(2){right:-8px;top:-11px;transform:scaleX(-1)}.photo-corners i:nth-child(3){left:-8px;bottom:-8px;transform:scaleY(-1)}.photo-corners i:nth-child(4){right:-8px;bottom:-8px;transform:scale(-1)}

.timeline-section { position:relative; padding:clamp(84px,10vw,130px) max(6vw,24px); background:
  linear-gradient(180deg,rgba(35,23,16,.98),rgba(22,16,12,.98)),
  repeating-linear-gradient(0deg,transparent 0 42px,rgba(255,255,255,.02) 43px 44px);
  color:#eadbc3;
}
.timeline-section .section-lead { margin:0; }
.timeline { list-style:none; margin:55px 0 0; padding:0; position:relative; }
.timeline::before { content:""; position:absolute; left:126px; top:7px; bottom:7px; width:1px; background:linear-gradient(var(--gold),rgba(185,137,67,.2)); }
.timeline li { display:grid; grid-template-columns:105px 1fr; gap:42px; position:relative; padding:0 0 33px; }
.timeline li::before { content:""; position:absolute; left:120px; top:8px; width:11px; height:11px; border-radius:50%; background:var(--gold); box-shadow:0 0 0 5px rgba(185,137,67,.12); }
.timeline time { color:var(--gold-light); font-family:var(--blackletter); font-size:28px; text-align:right; line-height:1.15; }
.timeline h3 { margin:0 0 4px; color:#f6e8d0; font-size:19px; }
.timeline p { margin:0; color:#cdbca6; }

.rentals { position:relative; padding:clamp(82px,9vw,120px) max(6vw,24px); color:#f4e4c7; background:
  radial-gradient(circle at 15% 25%,rgba(188,147,71,.12),transparent 30%),
  linear-gradient(135deg,#102b20,#173c2b 56%,#0d261b);
  border-top:1px solid rgba(197,151,77,.62); border-bottom:1px solid rgba(197,151,77,.62);
}
.rentals-frame { position:relative; width:min(1120px,100%); margin:auto; display:grid; grid-template-columns:1.45fr .75fr; gap:clamp(30px,5vw,62px); align-items:center; padding:44px clamp(24px,4vw,48px); border:1px solid rgba(213,171,96,.48); outline:1px solid rgba(213,171,96,.13); outline-offset:-8px; background:rgba(255,255,255,.025); box-shadow:0 18px 55px rgba(0,0,0,.22); }
.rentals-frame::before,.rentals-frame::after { content:"❦"; position:absolute; color:rgba(222,182,107,.55); font-size:26px; }
.rentals-frame::before{left:10px;top:7px}.rentals-frame::after{right:10px;bottom:7px;transform:rotate(180deg)}
.rentals-plaque { position:absolute; top:-21px; left:50%; transform:translateX(-50%); padding:7px 20px; color:var(--gold-pale); background:linear-gradient(#4b321f,#2a1c13); border:1px solid rgba(211,170,95,.68); font-family:var(--blackletter); font-size:20px; white-space:nowrap; box-shadow:0 7px 18px rgba(0,0,0,.25); }
.rentals-plaque span { color:var(--gold); padding:0 8px; }
.rentals-copy p:not(.kicker) { color:#d9cbb3; font-size:17px; }
.occupancy-card { position:relative; padding:30px 24px 34px; text-align:center; color:#332318; background:linear-gradient(165deg,#f5e8cc,#d8bd8d); border:1px solid #9a7038; box-shadow:0 15px 38px rgba(0,0,0,.25), inset 0 0 0 6px rgba(117,75,31,.055); }
.occupancy-card::before,.occupancy-card::after { content:"❦"; position:absolute; top:7px; color:rgba(115,75,33,.45); font-size:21px; }
.occupancy-card::before{left:10px}.occupancy-card::after{right:10px;transform:scaleX(-1)}
.occupancy-seal { width:70px; height:70px; margin:0 auto 12px; display:grid; place-items:center; border-radius:50%; color:#eed7aa; background:#6b3125; border:3px double #b8834f; font-size:30px; box-shadow:0 7px 17px rgba(0,0,0,.23); }
.status-label { margin:0; font-family:var(--sans); font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:#6d5238; }
.occupancy-card strong { display:block; margin:6px 0; color:var(--green); font-family:var(--blackletter); font-size:34px; line-height:1.05; }
.occupancy-card p:not(.status-label) { margin:6px 0 0; }
.status-ribbon { display:inline-block; margin-top:14px; padding:5px 13px; color:#f4e5c8; background:var(--green); border:1px solid rgba(124,89,45,.55); font-family:var(--sans); font-size:10px; text-transform:uppercase; letter-spacing:.12em; }

.today { display:grid; grid-template-columns:1.2fr .8fr; align-items:center; gap:40px; padding:clamp(80px,10vw,125px) max(6vw,24px); }
.today-copy { max-width:760px; justify-self:end; }
.today-copy p:not(.kicker) { font-size:17px; color:var(--ink-soft); }
.today-emblem { display:grid; place-items:center; position:relative; }
.today-emblem::before { content:"❦  ◆  ❦"; position:absolute; top:5%; color:rgba(119,80,36,.35); font-size:24px; letter-spacing:.4em; }
.today-emblem img { width:min(420px,80vw); filter:drop-shadow(0 20px 25px rgba(65,42,22,.24)); }

.contact { padding:90px max(6vw,24px); background:linear-gradient(180deg,#153829,#0c261b); color:#f1dfc4; border-top:1px solid var(--gold); }
.contact-ornament { text-align:center; margin-bottom:24px; color:rgba(222,181,105,.72); }
.contact-card { position:relative; width:min(1040px,100%); margin:auto; display:grid; grid-template-columns:1.2fr 1fr auto; gap:44px; align-items:center; padding:36px 42px; border:1px solid rgba(198,154,78,.55); outline:1px solid rgba(198,154,78,.13); outline-offset:-7px; background:rgba(255,255,255,.035); box-shadow:var(--shadow); }
.contact-card::before,.contact-card::after { content:"❦"; position:absolute; color:rgba(209,166,91,.43); font-size:23px; }
.contact-card::before{left:10px;top:7px}.contact-card::after{right:10px;bottom:7px;transform:rotate(180deg)}
.contact h2 { font-size:52px; margin-bottom:7px; color:#f2dfbf; }
.contact-owner { margin:0; color:#d9c6a8; }
.contact address { display:flex; flex-direction:column; font-style:normal; color:#eadbc4; }
.contact address a { margin-top:8px; color:var(--gold-light); }

footer { color:#d8c6a8; background:
  linear-gradient(rgba(36,23,16,.96),rgba(29,18,13,.98)),
  repeating-linear-gradient(90deg,transparent 0 62px,rgba(255,255,255,.025) 63px 64px);
  border-top:3px double rgba(196,149,74,.75); padding:28px max(6vw,24px) 95px;
}
.footer-ornament { width:min(760px,90%); margin:0 auto 24px; display:flex; align-items:center; justify-content:center; gap:12px; color:rgba(211,169,94,.62); }
.footer-ornament span { flex:1; height:1px; background:linear-gradient(90deg,transparent,currentColor); }
.footer-ornament span:last-child { background:linear-gradient(90deg,currentColor,transparent); }
.footer-ornament i { font-style:normal; font-size:9px; }
.footer-inner { width:min(1180px,100%); margin:auto; display:flex; justify-content:space-between; align-items:center; gap:32px; }
.footer-brand { display:flex; align-items:center; gap:18px; }
.footer-brand img { object-fit:contain; filter:drop-shadow(0 6px 10px rgba(0,0,0,.35)); }
.footer-brand strong { color:var(--gold-light); font-family:var(--blackletter); font-size:29px; }
.footer-links { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px 20px; }
.footer-links a,.footer-links button { color:#d9c5a7; border:0; background:none; padding:5px 0; text-decoration:none; font-family:var(--sans); font-size:11px; text-transform:uppercase; letter-spacing:.07em; }
.footer-links a:hover,.footer-links button:hover { color:var(--gold-light); }
.footer-bottom { width:min(1180px,100%); margin:27px auto 0; padding-top:20px; border-top:1px solid rgba(199,151,77,.26); display:flex; justify-content:space-between; gap:20px; color:#a89174; font-family:var(--sans); font-size:11px; }
.footer-bottom a { color:#bfa37d; text-decoration:none; }
.footer-bottom a:hover { color:var(--gold-light); }

.music-player { position:fixed; z-index:70; left:20px; bottom:18px; width:min(410px,calc(100vw - 40px)); display:grid; grid-template-columns:52px 1fr 44px; align-items:center; gap:10px; padding:10px 12px; color:#f1dec0; background:linear-gradient(180deg,rgba(39,25,18,.97),rgba(17,37,27,.97)); border:1px solid rgba(199,151,74,.75); border-radius:8px; box-shadow:0 14px 35px rgba(0,0,0,.38); backdrop-filter:blur(9px); }
.music-player::before { content:""; position:absolute; inset:3px; border:1px solid rgba(223,189,117,.16); border-radius:5px; pointer-events:none; }
.player-ornament { position:absolute; left:-8px; top:-12px; color:rgba(225,188,116,.72); font-size:22px; text-shadow:0 3px 8px rgba(0,0,0,.45); }
.music-main,.music-mute { position:relative; z-index:1; color:var(--gold-light); background:#153b2a; border:1px solid rgba(204,159,84,.65); border-radius:50%; display:grid; place-items:center; }
.music-main { width:44px;height:44px; }.music-mute{width:34px;height:34px;justify-self:end}
.music-copy { min-width:0; position:relative; z-index:1; }
.music-copy strong { display:block; font-family:var(--blackletter); color:var(--gold-light); font-size:20px; line-height:1; }
.music-copy span { display:block; font-family:var(--sans); font-size:10px; margin:3px 0 4px; color:#cdb99b; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.music-copy input { width:100%; height:3px; accent-color:var(--gold); display:block; }

.cookie-banner { position:fixed; z-index:80; right:20px; bottom:20px; width:min(640px,calc(100vw - 40px)); display:grid; grid-template-columns:68px 1fr; gap:14px 18px; padding:22px; color:#38271b; background:
  radial-gradient(circle at 85% 10%,rgba(255,255,255,.65),transparent 27%),
  linear-gradient(160deg,#f5e8cc,#dec59b);
  border:2px solid #7e5b2f; outline:1px solid rgba(219,181,111,.7); outline-offset:-6px; box-shadow:0 16px 55px rgba(0,0,0,.4); }
.cookie-banner::before,.cookie-banner::after { content:"❦"; position:absolute; color:rgba(116,76,32,.46); font-size:20px; }
.cookie-banner::before{left:6px;bottom:4px}.cookie-banner::after{right:6px;top:4px;transform:rotate(180deg)}
.cookie-seal { width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:#6a2f23;color:#f3ddbb;font-family:var(--blackletter);font-size:23px;border:3px double #b8834f;box-shadow:0 5px 12px rgba(0,0,0,.25); }
.cookie-copy strong { display:block; color:var(--green); font-family:var(--blackletter); font-size:28px; line-height:1.08; }
.cookie-copy p { margin:5px 0 0; font-size:14px; line-height:1.5; }
.cookie-actions { grid-column:1/-1; display:flex; flex-wrap:wrap; align-items:center; gap:9px; }
.cookie-actions .ghost { color:#48311f; background:rgba(255,255,255,.28); }
.text-button { border:0; background:none; color:#4b3828; text-decoration:underline; font-size:12px; padding:8px; }

.legal-dialog { width:min(880px,calc(100vw - 28px)); max-height:min(88vh,900px); padding:0; border:2px solid #8a6334; color:var(--ink); background:
  radial-gradient(circle at 13% 8%,rgba(255,255,255,.7),transparent 25%),
  repeating-linear-gradient(0deg,rgba(104,69,33,.02) 0 1px,transparent 1px 5px),#f4e7cc;
  box-shadow:0 24px 80px rgba(0,0,0,.5); }
.legal-dialog::backdrop { background:rgba(8,15,11,.78); backdrop-filter:blur(4px); }
.legal-dialog form { position:sticky; top:0; z-index:2; height:0; }
.dialog-close { position:absolute; right:15px; top:14px; width:38px;height:38px;border-radius:50%;border:1px solid rgba(87,55,28,.4);background:#fff0d3;color:#472f1d;font-size:25px;line-height:1; }
.legal-dialog article { position:relative; padding:48px clamp(22px,5vw,56px) 54px; }
.legal-dialog article::before,.legal-dialog article::after { content:"❦"; position:absolute; color:rgba(116,76,31,.33); font-size:28px; }
.legal-dialog article::before{left:12px;top:12px}.legal-dialog article::after{right:12px;bottom:12px;transform:rotate(180deg)}
.legal-dialog h2 { font-size:52px; }
.legal-dialog h3 { margin:28px 0 7px; color:var(--green); font-size:20px; }
.legal-dialog p { margin:0 0 14px; }
.legal-dialog code { font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:.9em; }
.legal-dialog a { color:#15513a; }
.legal-note { margin-top:28px!important; padding:16px 18px; border-left:3px solid var(--gold); background:rgba(116,78,36,.08); font-size:13px; }

.reveal { opacity:0; transform:translateY(20px); transition:opacity .8s ease,transform .8s ease; }
.reveal.visible { opacity:1; transform:none; }

@media (max-height: 900px) and (min-width: 901px) {
  .hero { padding-top:100px; padding-bottom:28px; }
  .hero-content { grid-template-columns:minmax(185px,270px) minmax(0,720px); gap:clamp(26px,4vw,58px); }
  .hero-logo { width:min(100%,245px); }
  .hero-emblem-flourish { font-size:22px; }
  .hero-copy { padding:22px 30px 23px; }
  .hero-rune { margin-bottom:4px; }
  .hero h1 { font-size:clamp(48px,5.2vw,72px); line-height:.9; }
  .eyebrow { font-size:10px; }
  .hero-divider { margin-top:13px; }
  .hero-lead { margin-top:12px; font-size:15.5px; line-height:1.45; }
  .hero-status { margin-top:11px; padding:5px 10px; }
  .hero-actions { margin-top:14px; }
  .button { min-height:42px; }
  .motto { margin-top:13px; }
  .scroll-mark { display:none; }
}

@media (max-width: 1100px) {
  .nav a { padding-inline:9px; font-size:11px; }
  .hero-content { grid-template-columns:minmax(180px,260px) minmax(0,680px); gap:30px; }
  .hero h1 { font-size:clamp(48px,6.6vw,78px); }
}

@media (max-width: 900px) {
  .topbar { height:76px; padding:0 18px; }
  .topbar::before,.topbar::after { display:none; }
  .brand img{width:59px;height:59px}.brand strong{font-size:23px}.brand small{font-size:8px}
  .nav-toggle { display:block; }
  .nav { position:absolute; top:76px; right:12px; left:12px; display:none; flex-direction:column; align-items:stretch; padding:12px; background:rgba(31,22,16,.98); border:1px solid rgba(199,151,74,.65); box-shadow:0 12px 35px rgba(0,0,0,.35); }
  .nav.open { display:flex; }
  .nav a { text-align:center; }
  .hero { min-height:auto; padding:96px 18px 54px; }
  .hero::before { top:76px; }
  .hero-content { grid-template-columns:1fr; gap:12px; text-align:center; }
  .hero-emblem-wrap { display:none; }
  .hero-copy { width:min(720px,100%); margin:auto; padding:26px clamp(20px,5vw,34px); }
  .hero-rune { text-align:center; }
  .hero h1 { margin:auto; font-size:clamp(48px,10vw,72px); }
  .hero-divider,.hero-lead { margin-left:auto; margin-right:auto; }
  .hero-status { justify-content:center; }
  .hero-actions { justify-content:center; }
  .facts { grid-template-columns:1fr 1fr; }
  .facts article:nth-child(2)::after{display:none}.facts article:nth-child(-n+2){border-bottom:1px solid rgba(85,53,25,.2)}
  .story-grid,.life-grid { grid-template-columns:1fr; }
  .story-card.featured { transform:none; }
  .historical-photo-inner,.rentals-frame,.today { grid-template-columns:1fr; }
  .historical-photo-copy,.today { text-align:center; }
  .historical-photo-copy h2 { margin-left:auto; margin-right:auto; }
  .today-copy { justify-self:center; }
  .contact-card { grid-template-columns:1fr; text-align:center; }
  .contact address { align-items:center; }
  .footer-inner,.footer-bottom { flex-direction:column; text-align:center; }
  .footer-links { justify-content:center; }
}

@media (max-width: 620px) {
  .brand { min-width:auto; }
  .brand span { display:none; }
  .hero { padding-top:90px; }
  .hero-copy { padding:22px 18px 24px; }
  .hero h1 { font-size:clamp(46px,14vw,62px); }
  .hero-lead { font-size:15.5px; }
  .hero-status { display:flex; font-size:10px; }
  .hero-actions { flex-direction:column; }
  .hero-actions .button { width:100%; }
  .motto { font-size:9px; letter-spacing:.1em; }
  .motto span { padding:0 4px; }
  .scroll-mark { display:none; }
  .facts { grid-template-columns:1fr; }
  .facts article:not(:last-child)::after{display:none}.facts article{border-bottom:1px solid rgba(85,53,25,.2)}.facts article:last-child{border-bottom:0}
  .timeline::before { left:16px; }
  .timeline li { grid-template-columns:1fr; gap:5px; padding-left:42px; }
  .timeline li::before { left:10px; }
  .timeline time { text-align:left; }
  .quote-panel { padding:24px 22px 24px 55px; }
  .historical-photo-frame { padding:9px; outline-offset:3px; }
  .rentals-frame { padding:40px 18px 24px; }
  .rentals-plaque { font-size:17px; padding-inline:12px; }
  .occupancy-card strong { font-size:29px; }
  .contact-card { padding:28px 20px; }
  .music-player { left:10px; right:10px; bottom:10px; width:auto; }
  .cookie-banner { right:10px; left:10px; bottom:10px; width:auto; grid-template-columns:1fr; max-height:calc(100svh - 20px); overflow:auto; }
  .cookie-seal { display:none; }
  .cookie-actions { grid-column:auto; }
  .cookie-actions .button { width:100%; }
  footer { padding-bottom:100px; }
}

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

[hidden] { display: none !important; }
