:root{
  --ink:#0B0B0A; --panel:#151613; --hairline:#1D1D1A; --rule:#3A382F; --rule-lt:#4E4C43;
  --bone:#F0EDE4; --parchment:#EAE6DC; --sand:#C9C2B0; --drift:#8A8578; --whisper:#6B6759; --faint:#5C594E;
  --serif:'Cormorant Garamond',Georgia,serif; --sans:'Inter',system-ui,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--ink);color:var(--parchment);font-family:var(--sans);font-weight:300;
     -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{display:block;width:100%;height:auto}
a{color:inherit;text-decoration:none}

/* ---------- nav ---------- */
.skip{position:absolute;left:-9999px;top:0;background:var(--bone);color:var(--ink);
      font-size:11px;letter-spacing:2px;padding:12px 20px;z-index:10}
.skip:focus{left:0}
.nav{padding:34px 24px 0;text-align:center}
.monogram{font-family:var(--serif);font-weight:400;font-size:17px;letter-spacing:8px;color:var(--parchment);display:inline-block}
.nav-links{margin-top:22px;display:flex;justify-content:center;flex-wrap:wrap;gap:10px 26px;
           padding-bottom:26px;border-bottom:1px solid var(--hairline)}
.nav-links a{font-size:9px;letter-spacing:3.5px;text-transform:uppercase;color:var(--whisper);
             padding-bottom:5px;border-bottom:1px solid transparent;transition:color .4s,border-color .4s}
.nav-links a:hover,.nav-links a.active{color:var(--parchment);border-color:var(--rule-lt)}
.nav-links a:focus-visible{outline:1px solid var(--sand);outline-offset:4px}

/* ---------- structure ---------- */
.section{padding:96px 28px;text-align:center}
.section.tight{padding:72px 28px}
@media(max-width:640px){.section{padding:64px 22px}.section.tight{padding:52px 22px}
.photo,.photo-pair{margin-left:0;margin-right:0}
.overlap-word{left:16px}}
.measure{max-width:640px;margin:0 auto}
.measure-narrow{max-width:460px;margin:0 auto}
.rule-double{max-width:640px;margin:0 auto}
.rule-double span{display:block;border-top:1px solid var(--hairline)}
.rule-double span+span{margin-top:2px}

/* ---------- type ---------- */
.eyebrow{font-size:8.5px;letter-spacing:4.5px;text-transform:uppercase;color:var(--whisper);margin-bottom:30px}
.display{font-family:var(--serif);font-weight:300;font-size:clamp(34px,5.2vw,58px);
         line-height:1.22;letter-spacing:.5px;color:var(--bone)}
.display em,.h2 em{font-style:italic;font-weight:300}
.h2{font-family:var(--serif);font-weight:300;font-size:clamp(26px,3.4vw,38px);line-height:1.3;color:var(--bone)}
.h3{font-family:var(--serif);font-weight:400;font-size:21px;line-height:1.35;color:var(--parchment)}
.lede{font-size:12px;line-height:2.2;color:var(--drift);margin:30px auto 0}
.body{font-size:12px;line-height:2.15;color:var(--drift)}
.flourish{display:flex;align-items:center;justify-content:center;gap:14px;margin:32px 0}
.flourish i{width:38px;height:1px;background:var(--rule)}
.flourish span{font-family:var(--serif);font-style:italic;font-weight:300;font-size:15px;color:var(--sand)}
.quote{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(19px,2.6vw,26px);
       line-height:1.65;color:var(--sand)}
.attribution{font-size:8.5px;letter-spacing:3.5px;text-transform:uppercase;color:var(--whisper);margin-top:26px}
.record{font-family:var(--serif);font-weight:400;font-size:clamp(16px,2vw,20px);
        letter-spacing:.4px;line-height:2.35;color:#D8D2C2}
.record b{font-weight:500;color:var(--bone)}
.record .dot{color:var(--faint);padding:0 .35em}
.link{display:inline-block;font-size:8.5px;letter-spacing:3.5px;text-transform:uppercase;color:var(--parchment);
      border-bottom:1px solid var(--rule-lt);padding-bottom:8px;transition:border-color .4s,color .4s}
.link:hover{border-color:var(--sand);color:var(--bone)}
.link:focus-visible{outline:1px solid var(--sand);outline-offset:5px}
.link-row{margin-top:38px}

/* ---------- imagery ---------- */
.photo{margin:0 24px;position:relative}
.photo img,.photo-pair img{filter:grayscale(1) sepia(.38) contrast(1.04) brightness(.94) saturate(.85)}
.photo::after{content:"";position:absolute;left:0;right:0;bottom:0;height:42%;
  background:linear-gradient(to bottom,rgba(11,11,10,0),rgba(11,11,10,.55));pointer-events:none}
.photo .on-photo{position:absolute;top:22px;right:24px;z-index:2;text-align:right;
  font-family:var(--serif);font-style:italic;font-weight:300;font-size:13px;
  letter-spacing:1.5px;line-height:1.7;color:var(--parchment);max-width:180px}
.photo .on-photo small{display:block;font-family:var(--sans);font-style:normal;font-size:8px;
  letter-spacing:3px;text-transform:uppercase;color:var(--sand);margin-bottom:8px}
.overlap-word{position:absolute;left:24px;bottom:-0.32em;z-index:3;margin:0;
  font-family:var(--serif);font-weight:300;font-style:normal;line-height:1;white-space:nowrap;
  font-size:clamp(40px,8.5vw,110px);letter-spacing:.5px;color:var(--bone);pointer-events:none}
.photo.has-overlap{margin-bottom:calc(clamp(40px,8.5vw,110px) * .42)}
@media(max-width:640px){.photo .on-photo{top:14px;right:16px;font-size:11px}}
.photo.bleed{margin:0}
.photo img{max-height:78vh;object-fit:cover;object-position:center 15%}
.photo figcaption{font-family:var(--serif);font-style:italic;font-weight:300;font-size:13px;
                  color:var(--whisper);text-align:center;padding-top:16px}
.photo-pair{margin:0 24px;display:grid;grid-template-columns:1fr 1fr;gap:2px}
.photo-pair img{height:100%;max-height:60vh;object-fit:cover}
@media(max-width:640px){.photo-pair{grid-template-columns:1fr}}

/* ---------- ledger entries (index-ruled lists) ---------- */
.ledger{max-width:640px;margin:0 auto;text-align:left}
.ledger-entry{border-top:1px solid var(--hairline);padding:30px 0}
.ledger-entry:last-child{border-bottom:1px solid var(--hairline)}
.ledger-entry .h3{margin-bottom:10px}
.ledger-entry .body{max-width:520px}
.ledger-meta{font-size:8.5px;letter-spacing:3px;text-transform:uppercase;color:var(--faint);margin-top:14px}
.ledger-meta .dot{color:var(--rule-lt);padding:0 .5em}

/* ---------- timeline ---------- */
.era{border-top:1px solid var(--hairline);padding:44px 0;text-align:left}
.era:last-child{border-bottom:1px solid var(--hairline)}
.era-dates{font-size:8.5px;letter-spacing:3.5px;text-transform:uppercase;color:var(--whisper);margin-bottom:14px}
.era .h3{margin-bottom:4px}
.era-role{font-family:var(--serif);font-style:italic;font-weight:300;font-size:15px;color:var(--sand);margin-bottom:16px}
.era-desc{font-size:11.5px;line-height:2.1;color:var(--drift);max-width:560px}
.era-line{font-size:8.5px;letter-spacing:2.5px;text-transform:uppercase;color:var(--faint);margin-top:16px;line-height:2.2}

/* ---------- cards for service / press / faq ---------- */
.entry{border-top:1px solid var(--hairline);padding:34px 0;text-align:left}
.entry:last-child{border-bottom:1px solid var(--hairline)}
.entry .h3{margin-bottom:10px}
.entry .body{max-width:540px}
.entry-pub{font-size:8.5px;letter-spacing:3.5px;text-transform:uppercase;color:var(--whisper);margin-bottom:12px}
.entry-date{font-family:var(--serif);font-style:italic;font-weight:300;font-size:14px;color:var(--faint);margin-bottom:14px}
.entry .link{margin-top:20px}

/* ---------- form ---------- */
.form{max-width:460px;margin:0 auto;text-align:left}
.field{margin-bottom:26px}
.field label{display:block;font-size:8.5px;letter-spacing:3px;text-transform:uppercase;color:var(--whisper);margin-bottom:10px}
.field input,.field select,.field textarea{width:100%;background:transparent;border:0;
  border-bottom:1px solid var(--rule);color:var(--parchment);font-family:var(--sans);font-weight:300;
  font-size:13px;padding:10px 2px;outline:none;border-radius:0;transition:border-color .4s}
.field select{appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='6'%3E%3Cpath d='M1 1l3.5 3.5L8 1' stroke='%238A8578' fill='none'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 4px center;padding-right:24px}
.field select option{background:var(--ink)}
.field textarea{min-height:110px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--sand)}
.form-submit{background:none;border:0;cursor:pointer;font-family:var(--sans)}
.form-submit:focus-visible{outline:1px solid var(--sand);outline-offset:6px}
.hp{position:absolute;left:-9999px;opacity:0}

/* ---------- footer ---------- */
footer{padding:80px 28px 56px;text-align:center;border-top:1px solid var(--hairline)}
.footer-links{display:flex;justify-content:center;flex-wrap:wrap;gap:10px 24px;margin:30px 0 40px}
.footer-links a{font-size:8.5px;letter-spacing:3px;text-transform:uppercase;color:var(--whisper);transition:color .4s}
.footer-links a:hover{color:var(--parchment)}
.copyright{font-size:8.5px;letter-spacing:2px;color:var(--faint)}
.disclaimer{font-size:9.5px;line-height:2;color:var(--faint);max-width:620px;margin:34px auto 0}

/* ---------- reveal ---------- */
.reveal{opacity:0;transform:translateY(14px);transition:opacity 1s ease,transform 1s ease}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  html{scroll-behavior:auto}
}

::selection{background:var(--sand);color:var(--ink)}
.ledger-entry,.entry,.era{transition:padding-left .5s var(--e,cubic-bezier(.2,.6,.2,1))}
.ledger-entry:hover,.entry:hover,.era:hover{padding-left:10px}
.hero-stagger .eyebrow{transition-delay:.05s}
.hero-stagger .display{transition-delay:.2s}
.hero-stagger .flourish{transition-delay:.4s}
.hero-stagger .lede{transition-delay:.55s}
.hero-stagger>*{opacity:0;transform:translateY(12px);transition:opacity 1s ease,transform 1s ease}
.hero-stagger.in>*{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.hero-stagger>*{opacity:1;transform:none;transition:none}
.ledger-entry:hover,.entry:hover,.era:hover{padding-left:0}}

.gallery{margin:44px 24px 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px}
.gallery img{height:100%;min-height:180px;object-fit:cover;
  filter:grayscale(1) sepia(.38) contrast(1.04) brightness(.94) saturate(.85)}
@media(max-width:640px){.gallery{grid-template-columns:1fr;margin:36px 0 0}}

/* ---------- entrance ---------- */
.curtain{position:fixed;inset:0;z-index:100;background:var(--ink);display:flex;
  flex-direction:column;align-items:center;justify-content:center;gap:26px;
  transition:opacity 1.1s ease .1s,visibility 0s 1.3s}
.curtain.done{opacity:0;visibility:hidden;pointer-events:none}
.curtain-name{font-family:var(--serif);font-weight:300;font-size:clamp(30px,6vw,54px);
  letter-spacing:6px;color:var(--bone);display:flex}
.curtain-name span{opacity:0;transform:translateY(14px);
  animation:letter 0.9s cubic-bezier(.2,.6,.2,1) forwards}
@keyframes letter{to{opacity:1;transform:none}}
.curtain-rules{width:min(300px,56vw)}
.curtain-rules i{display:block;height:1px;background:var(--rule-lt);
  transform:scaleX(0);transform-origin:center;animation:ruledraw 1.2s ease forwards}
.curtain-rules i+i{margin-top:3px;background:var(--sand);animation-delay:.25s}
@keyframes ruledraw{to{transform:scaleX(1)}}
.curtain-title{font-family:var(--sans);font-weight:300;font-size:8.5px;letter-spacing:4.5px;
  text-transform:uppercase;color:var(--whisper);opacity:0;animation:letter 1s ease forwards}
body.entering{overflow:hidden}
@media(prefers-reduced-motion:reduce){.curtain{display:none}}
