:root { --ease-editorial: cubic-bezier(.22, 1, .36, 1); }
html { scroll-padding-top: var(--anchor-offset, 140px); }
.scroll-progress { position: fixed; inset: 0 0 auto; height: 2px; z-index: 80; background: var(--gold); transform: scaleX(0); transform-origin: left; pointer-events: none; }
.skip-link { z-index: 100; }
.header { position: sticky; top: 0; z-index: 40; transition: box-shadow .35s ease, border-color .35s ease; }
.header.is-scrolled { border-bottom-color: #e4b41f60; box-shadow: 0 8px 30px #14130f24; }
.header .brand img { transition: transform .5s var(--ease-editorial); transform-origin: left center; }
.header.is-scrolled .brand img { transform: scale(.92); }
.navigation a[href^="#"]:not(.nav-visit) { padding-block: 10px; }
.navigation a[href^="#"]:not(.nav-visit)::after { content: ''; position: absolute; inset: auto 0 4px; height: 1px; background: var(--gold); transform: scaleX(0); transform-origin: left; transition: transform .35s var(--ease-editorial); }
.navigation a[href^="#"]:hover::after, .navigation a[aria-current="location"]::after { transform: scaleX(1); }
.navigation a[aria-current="location"] { color: var(--gold-soft); }
.hero { isolation: isolate; }
.hero-visual { box-shadow: 0 20px 50px #49320c12; }
.hero-visual { overflow: hidden; }
.hero-visual > img { border-radius: 2px; }
.photo-label { border-color: #f7e9bf99; box-shadow: 0 12px 32px #14130f16; backdrop-filter: blur(5px); }
.hero-copy .eyebrow .small-line { width: 36px; }
.hero-footnote { border-left: 1px solid #80611445; padding-left: 15px; }
.collection-image { border-radius: 2px; }
.collection-arrow { transition: color .3s, background .3s, transform .4s var(--ease-editorial); }
.collection-card:is(:hover, :focus-visible) .collection-arrow { background: var(--gold); color: var(--brand-dark); transform: rotate(45deg); }
.collection-card h3 { transition: color .3s; }
.collection-card:is(:hover, :focus-visible) h3 { color: var(--accent); }
.publication-card { border-radius: 3px; box-shadow: 0 6px 22px #49320c05; transition: box-shadow .4s ease, border-color .4s ease; }
.publication-card:focus-within { border-color: #b99943; box-shadow: 0 12px 30px #49320c0c; }
.publication-controls > button, .publication-modes button { transition: background .25s, border-color .25s, color .25s; }
.publication-controls > button:not(:disabled):hover { background: var(--gold); color: var(--brand-dark); border-color: var(--gold); }
.publication-original { text-underline-offset: 5px; }
.publication-original:hover { text-decoration: underline; }
.button { position: relative; isolation: isolate; overflow: hidden; transition: background .3s, border-color .3s, box-shadow .3s, transform .4s var(--ease-editorial); }
.button > span { display: inline-block; transition: transform .4s var(--ease-editorial); }
.button::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(110deg, transparent 25%, #fff8 50%, transparent 75%); transform: translateX(-130%); pointer-events: none; }
.button:focus-visible { box-shadow: 0 8px 22px #80611426; }
.button:active, .publication-controls > button:not(:disabled):active, .menu-toggle:active { transform: scale(.98); }
.occasion-tabs { position: relative; }
.occasion-tabs.has-indicator button[aria-selected="true"]::after { display: none; }
.occasion-indicator { position: absolute; left: 0; bottom: -1px; height: 2px; background: var(--accent); pointer-events: none; transition: transform .4s var(--ease-editorial), width .4s var(--ease-editorial); }
summary { transition: color .25s; }
summary:hover, details[open] summary { color: var(--accent); }
dialog { border: 1px solid #d6c597; border-radius: 3px; box-shadow: 0 35px 100px #14130f40; }
.visit, .footer { position: relative; isolation: isolate; }
.pointer-surface { position: relative; }
.pointer-light { position: absolute; inset: 0; z-index: 2; border-radius: inherit; pointer-events: none; opacity: 0; transition: opacity .4s; background: radial-gradient(260px circle at var(--pointer-x, 50%) var(--pointer-y, 50%), #fff5d926, transparent 72%); }
.visit > .pointer-light, .footer > .pointer-light { z-index: -1; background: radial-gradient(420px circle at var(--pointer-x, 50%) var(--pointer-y, 50%), #e4b41f18, transparent 75%); }
.motion-ready [data-reveal] { opacity: 0; translate: 0 20px; transition: opacity .7s var(--ease-editorial) var(--reveal-delay, 0ms), translate .7s var(--ease-editorial) var(--reveal-delay, 0ms), box-shadow .35s ease, border-color .35s ease, transform .4s var(--ease-editorial); }
.motion-ready [data-reveal].is-revealed { opacity: 1; translate: 0 0; }
.motion-ready [data-reveal].reveal-instant { transition: none; }
.motion-ready .hero-copy > * { animation: editorial-arrive .8s var(--ease-editorial) backwards; }
.motion-ready .hero-copy h1 { animation-delay: .08s; }
.motion-ready .hero-description { animation-delay: .16s; }
.motion-ready .hero-copy > .button { animation-delay: .24s; }
.motion-ready .hero-footnote { animation-delay: .3s; }
@keyframes editorial-arrive { from { opacity: .55; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .hero-visual { transition: box-shadow .5s; }
  .hero-visual > img, .about-portrait-image { transform: perspective(1200px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg)); transition: transform .5s var(--ease-editorial), box-shadow .5s; }
  .hero-visual.is-pointer-active, .about-portrait-image.is-pointer-active { box-shadow: var(--shadow-x, 0px) 24px 60px #49320c24; }
  .collection-image { transition: box-shadow .4s, transform .4s var(--ease-editorial); }
  .collection-image.is-pointer-active { box-shadow: var(--shadow-x, 0px) 16px 32px #49320c22; }
  .is-pointer-active > .pointer-light { opacity: 1; }
  .publication-card:hover { box-shadow: 0 20px 50px #49320c12; border-color: #b99943; transform: translateY(-3px); }
  .button:is(:hover, :focus-visible) > span { transform: translate(calc(3px + var(--magnetic-x, 0px)), calc(-3px + var(--magnetic-y, 0px))); }
  .button:hover { box-shadow: 0 10px 28px #80611426; }
  .button:hover::before { transform: translateX(130%); transition: transform .85s var(--ease-editorial); }
}
@media (min-width: 1025px) {
  .button { font-size: 13px; min-height: 52px; }
  .hero-description, .occasion-intro > p:last-child, .occasion-panel > p, .about-copy > p:not(.eyebrow), .video-story-copy > p:not(.eyebrow) { font-size: 15px; line-height: 1.85; }
  .section-top > p, .visit-inner > p:not(.eyebrow), .contact-information { font-size: 14px; }
  .contact-actions .button, summary, details p { font-size: 14px; }
  .hero-footnote, .collection-card > p, .image-disclaimer, .visit-points, .copyright { font-size: 11px; }
  .hero-visual figcaption, .about-portrait figcaption, .video-story figcaption { font-size: 10px; }
  .style-tags span { font-size: 11px; }
  .text-link, .footer nav, .footer > div p { font-size: 12px; }
}
@media (max-width: 820px), (hover: none) and (pointer: coarse) and (max-width: 1024px) {
  html { scroll-padding-top: var(--anchor-offset, 100px); }
  .navigation.is-open { animation: menu-arrive .25s var(--ease-editorial); }
  .navigation a[href^="#"]:not(.nav-visit) { padding-block: 12px; }
  .navigation a[href^="#"]:not(.nav-visit)::after { inset: auto auto 5px 4px; width: 28px; }
  .motion-ready [data-reveal] { translate: 0 12px; }
  .motion-ready [data-reveal].is-revealed { translate: 0 0; }
  .mobile-contact { transition: box-shadow .3s; }
  .mobile-contact a:active { filter: brightness(.96); }
}
@keyframes menu-arrive { from { opacity: .6; transform: translateY(-6px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 1024px) and (max-height: 500px) and (orientation: landscape) { .header { position: relative; } html { scroll-padding-top: 20px; } }
@media (prefers-reduced-motion: reduce) {
  .motion-ready [data-reveal] { opacity: 1; translate: none; }
  .hero-copy > *, .navigation.is-open { animation: none; }
  .pointer-light { display: none; }
  .hero-visual > img, .about-portrait-image, .publication-card:hover, .header.is-scrolled .brand img { transform: none; }
  .button:is(:hover, :focus-visible) > span { transform: none; }
}
