@font-face{font-family:Anton;src:url("assets/Anton-Regular.ttf") format("truetype");font-display:swap}@font-face{font-family:IBMPlexMono;src:url("assets/IBMPlexMono-Regular.ttf") format("truetype");font-display:swap}
:root{--navy:#20323d;--red:#981f25;--cream:#eee7d7;--kraft:#c7ad84;--ink:#172832;--mono:IBMPlexMono,"SFMono-Regular",Consolas,monospace;--display:Anton,Impact,"Arial Narrow",sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--mono);overflow-x:hidden}a{color:inherit}a:focus-visible,button:focus-visible{outline:3px solid var(--red);outline-offset:4px}.rail{position:fixed;z-index:5;inset:0 auto 0 0;width:17%;min-width:190px;background:var(--navy);color:var(--cream);display:flex;flex-direction:column;padding:34px 28px 26px}.brand{color:var(--cream);text-decoration:none;display:grid;gap:4px}.brand span{font:20px/1 var(--mono);letter-spacing:.05em}.brand strong{font:clamp(43px,4vw,72px)/.75 var(--display);letter-spacing:-.03em}.brand em{font:16px/1.3 var(--mono);letter-spacing:.32em;font-style:normal;margin-top:9px}.rail-hours{margin-top:42px;font-size:15px;line-height:1.75}.line{display:block;height:2px;background:var(--cream);margin:13px 0}.rail-hours p{margin:0}.walk-in{margin-top:auto;color:var(--cream);text-decoration:none;display:flex;align-items:center;gap:15px}.walk-in span{font:clamp(42px,4vw,68px)/.72 var(--display);writing-mode:vertical-rl;letter-spacing:-.02em}.walk-in b{font:40px/1 sans-serif;font-weight:400}.rail-foot{margin-top:34px;font-size:13px;line-height:1.8}.rail-foot>a{display:block;margin-bottom:6px;text-underline-offset:3px}.rail-links{display:flex;gap:12px;font-size:10px}.rail-links a{text-underline-offset:3px}main{margin-left:17%;min-height:100vh}.hero{height:min(85vh,920px);min-height:635px;display:grid;grid-template-columns:59% 41%;position:relative;background:var(--cream)}.poster{margin:0;background:var(--kraft);padding:28px;display:flex;justify-content:center;align-items:center;min-width:0}.poster img{width:min(100%,760px);height:auto;aspect-ratio:4/5;object-fit:cover;display:block;filter:saturate(.78) contrast(1.08)}.invitation{position:relative;overflow:hidden;background:var(--cream);border-left:2px solid var(--navy);padding:36px clamp(30px,4vw,70px)}.invitation:after{content:"";position:absolute;right:-10%;bottom:-7%;width:62%;height:60%;border:40px solid var(--navy);border-radius:50%;opacity:.96}.invite-content{position:relative;z-index:1;display:flex;min-height:100%;flex-direction:column;align-items:flex-start}.eyebrow{font-size:12px;letter-spacing:.18em;margin:0 0 16px}.invitation h1,.visit h2{font-family:var(--display);font-size:clamp(94px,11vw,195px);letter-spacing:-.025em;line-height:.78;margin:12px 0 40px;color:var(--red);white-space:nowrap}.intro{font-size:16px;line-height:1.5;margin:0 0 auto}.invitation address{font-style:normal;font-size:16px;line-height:1.45;margin:30px 0 28px}.find-button{min-width:100%;padding:17px 17px 15px;border:3px solid var(--navy);box-shadow:7px 8px 0 var(--navy);font:clamp(28px,3vw,50px)/.9 var(--display);letter-spacing:-.02em;color:var(--red);text-decoration:none;display:flex;justify-content:space-between;align-items:center;background:var(--cream)}.find-button span{font-family:Arial,sans-serif;font-size:1.2em;font-weight:400}.menu-toggle{border:0;background:transparent;width:62px;height:46px;padding:8px;display:grid;gap:6px;cursor:pointer}.menu-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.menu-toggle i{height:4px;background:var(--navy);width:100%;display:block}.desktop-menu{position:absolute;right:27px;top:28px;z-index:3}.site-menu{position:absolute;z-index:8;right:25px;top:83px;background:var(--navy);color:var(--cream);width:220px;padding:13px;border:2px solid var(--cream);box-shadow:6px 7px 0 var(--red)}.site-menu a{display:block;padding:13px 10px;text-decoration:none;font-size:14px}.site-menu a:hover,.site-menu a:focus-visible{background:var(--red)}.mobile-head{display:none}.marquee{height:74px;background:var(--red);color:var(--cream);display:flex;align-items:center;white-space:nowrap;overflow:hidden;font-size:20px;letter-spacing:.27em}.marquee span{padding-left:28px}.visit{padding:110px clamp(30px,7vw,130px) 120px;background:var(--kraft);min-height:560px}.visit h2{font-size:clamp(70px,10vw,170px);margin:0 0 65px;color:var(--navy)}.visit h2 span{color:var(--red)}.visit-grid{display:grid;grid-template-columns:1.2fr 1fr .8fr;gap:55px;border-top:2px solid var(--navy);padding-top:22px;font-size:16px;line-height:1.5}.address{margin:0 0 24px}.direction-link{font-family:var(--display);font-size:21px;color:var(--red);text-underline-offset:5px}.hours h3{font-size:12px;letter-spacing:.16em;margin:0 0 10px}.hours dl{margin:0}.hours dl div{display:flex;justify-content:space-between;border-top:1px solid color-mix(in srgb,var(--navy) 55%,transparent);padding:5px 0}.hours dt,.hours dd{margin:0}.updates{align-self:end;margin:0}.updates a{font-weight:bold;text-underline-offset:3px}footer{margin-left:17%;padding:22px clamp(30px,7vw,130px);background:var(--navy);color:var(--cream);display:flex;justify-content:space-between;font-size:12px;letter-spacing:.13em}footer a{text-underline-offset:3px}
@media(max-width:800px){.rail{display:none}main,footer{margin-left:0}.hero{height:auto;min-height:0;display:flex;flex-direction:column;background:var(--cream)}.mobile-head{display:flex;height:72px;align-items:center;justify-content:space-between;padding:0 20px;background:var(--navy);color:var(--cream)}.mobile-mark{font-size:13px;letter-spacing:.12em;color:var(--cream);text-decoration:none}.mobile-mark b{font:22px/.8 var(--display);letter-spacing:-.07em;margin-left:4px}.mobile-head .menu-toggle i{background:var(--cream)}.desktop-menu{display:none}.site-menu{position:absolute;top:62px;right:12px;width:calc(100% - 24px)}.invitation{border-left:0;border-bottom:2px solid var(--navy);padding:38px 25px 42px;min-height:480px;order:1}.invitation h1{font-size:clamp(82px,25vw,128px);margin:0 0 28px}.intro{font-size:16px}.invitation address{margin:28px 0 26px}.find-button{min-width:min(100%,390px);font-size:38px}.poster{padding:22px;order:2}.poster img{width:min(100%,520px)}.marquee{height:55px;font-size:14px}.visit{padding:70px 25px 78px}.visit h2{font-size:clamp(58px,17vw,104px);line-height:.82;margin-bottom:42px;white-space:nowrap}.visit-grid{grid-template-columns:1fr;gap:38px;font-size:16px}.updates{margin-top:0}.hours{max-width:420px}footer{padding:19px 25px;font-size:10px}}
@media(max-width:380px){.invitation{padding-left:20px;padding-right:20px}.invitation h1{font-size:80px}.find-button{font-size:33px}.visit h2{font-size:56px;letter-spacing:-.11em}.mobile-head{padding:0 15px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Poster-wall refinements */
:root { --rail-width: clamp(180px, 17vw, 260px); }
.rail { width: var(--rail-width); min-width: 0; }
main, footer { margin-left: var(--rail-width); }
.invitation::after { content: none; }
.poster { overflow: hidden; }
.poster img { width: 100%; height: 100%; max-height: 100%; object-fit: cover; filter: none; }
.invitation { padding: 36px clamp(28px, 3.5vw, 58px); }
.invitation h1 { font-size: clamp(64px, 7.2vw, 128px); line-height: .86; letter-spacing: -.018em; }
.visit h2 { line-height: .86; letter-spacing: -.018em; }
.skip-link { position: fixed; z-index: 20; left: 12px; top: 10px; padding: 10px 13px; background: var(--cream); color: var(--navy); transform: translateY(-180%); font: 13px/1 var(--mono); }
.skip-link:focus { transform: translateY(0); outline: 3px solid var(--red); }
.rail a:focus-visible, footer a:focus-visible { outline-color: var(--cream); }
body { overflow-x: visible; }
@media (max-width: 800px) {
  main, footer { margin-left: 0; }
  .poster { height: auto; aspect-ratio: 4 / 5; }
  .poster img { height: 100%; width: 100%; }
  .invitation h1 { font-size: clamp(82px, 25vw, 128px); }
  footer { font-size: 12px; }
}
@media (max-width: 380px) { .invitation h1 { font-size: 80px; } }

/* Final proportional sizing and text-scale safeguards */
@media (min-width: 801px) {
  .hero { height: auto; min-height: 635px; }
  .poster { aspect-ratio: 4 / 5; }
  .invitation { container-type: inline-size; padding-top: 105px; }
  .invitation h1 { font-size: min(46cqw, 180px); line-height: .88; margin-top: 0; }
  .brand em { font-size: clamp(11px, 1.05vw, 16px); letter-spacing: clamp(.13em, .22vw, .32em); white-space: nowrap; }
  .rail { padding-left: clamp(16px, 2vw, 28px); padding-right: clamp(16px, 2vw, 28px); }
}
@media (max-width: 1080px) and (min-width: 801px) {
  .visit-grid { grid-template-columns: 1fr 1fr; gap: 34px; }
  .updates { grid-column: 1 / -1; }
}

/* Readable rail links and focus on the dark mobile header. */
.rail { overflow-y: auto; }
.rail-links { font-size: 14px; flex-wrap: wrap; }
.mobile-head a:focus-visible, .mobile-head button:focus-visible { outline-color: var(--cream); }
@media(max-width:500px) { footer { flex-wrap: wrap; gap: 12px; } }
