:root {
  --red: #a51f25;
  --dark: #60131b;
  --cream: #eee5cf;
  --yellow: #e8dd79;
  --ink: #291b19;
  --display: 'Barlow Condensed', Impact, sans-serif;
  --sans: 'DM Sans', sans-serif;
}

* { box-sizing: border-box; }

html {
  scroll-behavior: smooth;
  scroll-padding-top: 25px;
}

body {
  margin: 0;
  background: var(--cream);
  color: var(--ink);
  font-family: var(--sans);
}

a {
  color: inherit;
  text-decoration: none;
}

button { font: inherit; }

a:focus-visible,
button:focus-visible {
  outline: 3px solid currentColor;
  outline-offset: 6px;
}

header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 23px 5%;
  gap: 24px;
  border-bottom: 1px solid #a51f2533;
}

.wordmark {
  font-family: Georgia, serif;
  font-size: 29px;
  font-weight: bold;
  letter-spacing: -1.5px;
  color: var(--red);
}

.wordmark span {
  padding-left: 8px;
  font-size: 30px;
}

.residence,
nav,
.eyebrow,
.edition,
.hero-bottom,
.section-heading > span,
footer {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 1.5px;
}

nav {
  display: flex;
  gap: 30px;
  letter-spacing: .3px;
  font-size: 12px;
}

.hero {
  height: 760px;
  max-height: 950px;
  min-height: 620px;
  background: var(--red);
  color: var(--cream);
  position: relative;
  overflow: hidden;
  padding: 26px 5%;
}

.hero:after,
.manifesto:after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .1;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' opacity='.6' d='M0 0h180v180H0z'/%3E%3C/svg%3E");
}

.edition {
  display: flex;
  justify-content: space-between;
  position: relative;
  z-index: 4;
}

.hero h1 {
  font-family: var(--display);
  font-weight: 900;
  font-size: clamp(170px, 29vw, 480px);
  letter-spacing: -.035em;
  line-height: .82;
  margin: 26px -5px 0;
  color: var(--yellow);
  text-align: center;
}

.hero-portrait {
  position: absolute;
  width: 58%;
  height: 90%;
  object-fit: contain;
  object-position: bottom;
  bottom: -4%;
  left: 23%;
  z-index: 2;
  filter: grayscale(1) contrast(1.15)
    drop-shadow(5px 5px 0 var(--cream));
  transform: rotate(-5deg);
}

.hero-note {
  position: absolute;
  top: 47%;
  left: 6%;
  font-family: 'Special Elite', monospace;
  font-size: 19px;
  line-height: 1.5;
  transform: rotate(-6deg);
}

.scribble {
  position: absolute;
  right: 6%;
  bottom: 30%;
  z-index: 3;
  font-family: 'Caveat', cursive;
  font-size: 58px;
  transform: rotate(-12deg);
  color: var(--yellow);
}

.hero-bottom {
  position: absolute;
  left: 5%;
  right: 5%;
  bottom: 28px;
  z-index: 5;
  display: flex;
  justify-content: space-between;
  align-items: end;
  line-height: 1.7;
}

.hero-bottom a {
  display: flex;
  align-items: center;
  gap: 24px;
}

.hero-bottom a span { font-size: 30px; }

.star {
  position: absolute;
  right: 8%;
  top: 48%;
  font-size: 80px;
  color: var(--yellow);
  transform: rotate(15deg);
}

.ticker {
  display: flex;
  justify-content: space-around;
  gap: 35px;
  white-space: nowrap;
  overflow: hidden;
  background: var(--yellow);
  color: var(--dark);
  padding: 18px 0;
  font: 700 16px var(--display);
  letter-spacing: 2px;
  border-bottom: 1px solid var(--dark);
}

.intro {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  padding: 110px 8%;
  gap: 80px;
}

.eyebrow { margin: 0 0 35px; }

h2 {
  font: 700 clamp(55px, 6.5vw, 96px)/.97 var(--display);
  letter-spacing: -1.5px;
  margin: 0;
}

h2 em {
  font-family: Georgia, serif;
  font-weight: 400;
  font-size: .83em;
  color: var(--red);
}

.intro-copy { padding-top: 10px; }

.little-star {
  font-size: 48px;
  color: var(--red);
}

.typewriter {
  font-family: 'Special Elite', monospace;
  font-size: 22px;
  line-height: 1.4;
}

.intro-copy > p:not(.typewriter) {
  font-size: 13px;
  line-height: 1.8;
  color: #665b51;
}

.text-link {
  display: flex;
  justify-content: space-between;
  max-width: 290px;
  border-bottom: 1px solid;
  padding: 18px 0 10px;
  font-size: 12px;
}

.gallery {
  padding: 55px 5% 80px;
  border-top: 1px solid #291b1940;
}

.section-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 50px;
}

.section-heading .eyebrow { margin: 0; }

.section-heading .typewriter {
  font-family: 'Caveat';
  font-size: 35px;
  transform: rotate(-5deg);
  margin: 0;
  color: var(--red);
}

.photo-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 34px;
  align-items: start;
}

.photo {
  background: transparent;
  border: 0;
  padding: 0;
  text-align: left;
  cursor: zoom-in;
  min-width: 0;
  color: var(--ink);
}

.frame {
  display: block;
  padding: 10px 10px 27px;
  background: #f9f3e5;
  box-shadow: 0 9px 15px #291b1912;
  transition: transform .25s;
}

.photo .frame img {
  width: 100%;
  display: block;
  aspect-ratio: 3/4;
  object-fit: cover;
}

.one { transform: rotate(-3deg); }

.two {
  margin-top: 80px;
  transform: rotate(2deg);
}

.three {
  margin-top: 15px;
  transform: rotate(-2deg);
}

.photo:hover .frame { transform: translateY(-8px); }

.caption {
  display: flex;
  justify-content: space-between;
  margin-top: 18px;
  font-family: 'Special Elite', monospace;
  font-size: 12px;
}

.gallery-note {
  text-align: center;
  font-family: 'Caveat';
  font-size: 29px;
  margin: 65px 0 0;
  color: var(--red);
}

.gallery-note span {
  display: block;
  font: 10px var(--sans);
  color: #665b51;
  margin-top: 10px;
  letter-spacing: 1px;
}

.manifesto {
  position: relative;
  padding: 70px 8% 95px;
  background: var(--red);
  color: var(--cream);
  overflow: hidden;
}

.manifesto h2 {
  font-size: clamp(44px, 10.8vw, 160px);
  line-height: .92;
  font-weight: 800;
  letter-spacing: -2px;
}

.manifesto h2 span { color: var(--yellow); }
.manifesto .eyebrow { margin-bottom: 36px; }

.handwritten {
  display: block;
  text-align: right;
  font: 40px 'Caveat';
  color: var(--yellow);
  transform: rotate(-6deg);
  margin-top: 20px;
}

.visit {
  padding: 110px 12%;
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 100px;
  align-items: center;
}

.visit h2 { font-size: clamp(50px, 5.4vw, 80px); }

.visit-copy > p:not(.eyebrow) {
  font-size: 14px;
  line-height: 1.8;
  margin: 32px 0;
}

.button {
  display: flex;
  justify-content: space-between;
  padding: 20px 25px;
  background: var(--red);
  color: var(--cream);
  max-width: 280px;
  font-size: 11px;
  letter-spacing: 1px;
}

.playing-card {
  position: relative;
  background: #f7efdb;
  color: var(--red);
  text-align: center;
  transform: rotate(5deg);
  border: 1px solid #a51f2544;
  outline: 1px solid #a51f2544;
  outline-offset: -9px;
  border-radius: 15px;
  aspect-ratio: 5/7;
  padding: 48px 35px;
  box-shadow: 8px 16px 25px #291b1920;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.corner {
  position: absolute;
  top: 20px;
  left: 20px;
  font: 27px/.9 Georgia;
}

.reverse {
  top: auto;
  left: auto;
  bottom: 20px;
  right: 20px;
  transform: rotate(180deg);
}

.heart {
  font-size: 70px;
  line-height: 1;
  display: block;
}

.playing-card .typewriter {
  font-size: 19px;
  margin-bottom: 15px;
}

.playing-card h3 {
  font: 700 42px/1 var(--display);
  margin: 0;
}

.playing-card p:not(.typewriter) {
  font-size: 11px;
  letter-spacing: 2px;
  line-height: 1.7;
}

.playing-card hr {
  width: 55px;
  border: 0;
  border-top: 1px solid #a51f2566;
  margin: 15px;
}

.playing-card .address {
  font-family: 'Special Elite';
  letter-spacing: 0 !important;
}

.closing {
  background: var(--yellow);
  padding: 50px 5%;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.closing p { font: 28px 'Caveat'; }

.closing a {
  font: 600 clamp(20px, 3.4vw, 48px) var(--display);
}

.closing a span { padding-left: 24px; }

footer {
  padding: 28px 5%;
  display: flex;
  justify-content: space-between;
  gap: 25px;
  font-size: 9px;
  letter-spacing: 1px;
}

dialog {
  width: min(900px, 95vw);
  max-height: 95vh;
  background: var(--cream);
  border: 0;
  padding: 48px 25px 20px;
  text-align: center;
}

dialog::backdrop { background: #20090de8; }

dialog img {
  max-height: 68vh;
  max-width: 100%;
  object-fit: contain;
}

dialog p { font-family: 'Special Elite'; }

dialog button {
  border: 0;
  background: none;
  cursor: pointer;
  color: var(--dark);
  padding: 10px;
}

.close {
  position: absolute;
  right: 10px;
  top: 8px;
}

dialog > div {
  display: flex;
  justify-content: space-between;
}

@media (min-width: 1500px) {
  .hero { height: 900px; }
}

@media (max-width: 750px) {
  header { padding: 15px 5%; }
  .residence { display: none; }

  nav {
    gap: 14px;
    font-size: 10px;
  }

  .wordmark { font-size: 23px; }

  .hero {
    height: 660px;
    min-height: 0;
    padding-top: 25px;
  }

  .edition {
    font-size: 8px;
    letter-spacing: .7px;
  }

  .hero h1 {
    font-size: 29vw;
    margin-top: 45px;
  }

  .hero-portrait {
    width: 112%;
    height: 79%;
    left: 0%;
    bottom: 0%;
  }

  .hero-note {
    top: 30%;
    font-size: 14px;
    left: 7%;
  }

  .star {
    top: 35%;
    font-size: 53px;
    right: 10%;
  }

  .scribble {
    font-size: 38px;
    right: 5%;
    bottom: 24%;
  }

  .hero-bottom {
    font-size: 8px;
    bottom: 18px;
  }

  .hero-bottom a {
    gap: 8px;
    max-width: 120px;
  }

  .intro {
    padding: 65px 7%;
    grid-template-columns: 1fr;
    gap: 35px;
  }

  .intro-copy { padding: 0; }

  .eyebrow {
    font-size: 9px;
    margin-bottom: 25px;
  }

  .intro h2 { font-size: 68px; }
  .section-heading > span { display: none; }
  .section-heading .typewriter { font-size: 25px; }

  .photo-grid {
    gap: 24px;
    grid-template-columns: 1fr 1fr;
  }

  .photo.two { margin-top: 55px; }

  .photo.three {
    grid-column: 1/3;
    width: 65%;
    margin: 15px auto 0;
  }

  .caption { font-size: 10px; }
  .frame { padding: 6px 6px 18px; }
  .gallery { padding-top: 35px; }
  .manifesto { padding: 50px 6% 65px; }

  .manifesto h2 {
    font-size: 11.8vw;
    letter-spacing: -1px;
  }

  .handwritten {
    font-size: 27px;
    margin-top: 32px;
  }

  .visit {
    padding: 65px 8%;
    grid-template-columns: 1fr;
    gap: 60px;
  }

  .playing-card {
    width: min(310px, 90%);
    margin: auto;
  }

  .visit h2 { font-size: 65px; }

  .closing {
    flex-direction: column;
    align-items: start;
    gap: 5px;
    padding: 35px 7%;
  }

  .closing p { margin: 0 0 15px; }
  .closing a { font-size: 34px; }

  footer {
    flex-wrap: wrap;
    font-size: 8px;
  }

  footer > span:last-child { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  * { transition: none !important; }
}

/* shrink slightly */
.hero h1{font-size:clamp(140px,24vw,400px)}
.hero{height:680px}
@media(min-width:1500px){.hero{height:800px}}
h2{font-size:clamp(46px,5.4vw,80px)}
.manifesto h2{font-size:clamp(38px,9vw,132px)}
.intro,.visit{padding-top:84px;padding-bottom:84px}
.photo-grid{max-width:1000px;margin:0 auto}
@media(max-width:750px){.hero{height:580px}.hero h1{font-size:25vw}.intro h2{font-size:56px}.visit h2{font-size:54px}.manifesto h2{font-size:10.4vw}}
/* force text glyphs, not emoji */
.wordmark span,.star,.little-star,.heart,.corner,.ticker{font-variant-emoji:text}

/* outline: even all-around paper edge, no offset ghost */
.hero-portrait{filter:grayscale(1) contrast(1.15) drop-shadow(2px 0 0 var(--cream)) drop-shadow(-2px 0 0 var(--cream)) drop-shadow(0 -2px 0 var(--cream)) drop-shadow(0 2px 0 var(--cream))!important;bottom:-6%!important}
@media(max-width:750px){
  .hero{height:600px}
  .hero h1{margin-top:38px}
  .hero-portrait{width:118%!important;height:70%!important;left:-9%!important;bottom:-7%!important;transform:rotate(-3deg)}
  .hero-note{top:28%;font-size:13px}
  .star{top:29%;font-size:44px}
  .scribble{bottom:auto;top:40%;right:auto;left:6%;font-size:34px;z-index:3}
  .hero-bottom{display:none}
}
@media(max-width:750px){
  .hero{height:540px}
  .hero-portrait{width:128%!important;left:-14%!important;bottom:-6%!important}
  .hero-note{display:none}
  .scribble{top:27%;left:7%;font-size:32px}
  .star{top:25%;font-size:40px;right:9%}
}
@media(max-width:750px){
  .hero{height:500px}
  .hero h1{margin-top:58px}
  .scribble{top:14%;left:auto;right:8%;font-size:28px;transform:rotate(-8deg)}
  .star{top:auto;bottom:40%;right:4%;font-size:36px;z-index:3}
}
@media(max-width:750px){
  .hero h1{font-size:30vw;margin-top:50px}
  .scribble{top:12%;right:6%}
}
@media(max-width:750px){.hero-portrait{bottom:-2%!important}}

/* palette from Bri's Starry Night reference: dusty indigo, ink-navy, moon cream */
:root{--red:#525b8b;--dark:#161729;--cream:#f2e3c6;--yellow:#f6e2bd;--ink:#161729}
body{background:#efe2c8}
.hero,.manifesto{background:#525b8b}
.ticker{background:#161729;color:#f6e2bd;border-color:#161729}
.closing{background:#161729;color:#f6e2bd}
.manifesto h2 span{color:#f6e2bd}
.hero h1{text-shadow:3px 3px 0 #161729}
.frame{background:#f8edd8}
.playing-card{color:#3f4775;background:#f8edd8}
dialog::backdrop{background:#0e0f1fe8}

/* no polaroids: clean, straight photos */
.frame{padding:0!important;background:none!important;box-shadow:none!important}
.one,.two,.three,.photo.one,.photo.two,.photo.three{transform:none!important}
.photo.two{margin-top:0!important}.photo.three{margin-top:0!important}
.photo-grid{align-items:end}
.caption{margin-top:12px}
@media(max-width:750px){.photo.two{margin-top:0!important}.photo.three{width:100%!important;margin:0!important}}

/* swap: navy for hero + quote, indigo for ticker + closing */
.hero,.manifesto{background:#161729}
.ticker{background:#525b8b;border-color:#525b8b}
.closing{background:#525b8b}
.hero h1{text-shadow:3px 3px 0 #525b8b}

/* muted banner */
.ticker{background:#3a3f5e!important;border-color:#3a3f5e!important}
.closing{background:#3a3f5e!important}
.hero h1{text-shadow:3px 3px 0 #3a3f5e}

.intro{grid-template-columns:1fr 1.4fr;align-items:start;padding-top:64px;padding-bottom:64px}
@media(max-width:750px){.intro{grid-template-columns:1fr;gap:10px}}

/* event info where the scrawl was */
.hero-info{position:absolute;right:6%;top:52%;z-index:3;display:grid;gap:4px;text-align:left;color:var(--cream);font-family:'Special Elite',monospace;font-size:15px;line-height:1.35;transform:rotate(-4deg)}
.hero-info .hi-label{font-family:var(--sans);font-size:10px;font-weight:600;letter-spacing:2px;color:#f6e2bd;opacity:.75;margin-bottom:4px}
.hero-info strong{font:800 34px/1 var(--display);letter-spacing:.5px;text-transform:uppercase;color:#f6e2bd}
.hero-info em{font-style:normal;margin-top:4px;opacity:.85;font-size:13px}
@media(max-width:750px){
  .hero-info{top:auto;bottom:4%;right:4%;font-size:11px;gap:2px;transform:rotate(-3deg);background:#161729d9;padding:10px 12px}
  .hero-info strong{font-size:22px}
  .hero-info em{font-size:10px}
}

/* CTA banner */
.cta-bar{display:flex;justify-content:center;align-items:center;gap:40px;padding:0;white-space:normal}
.cta-bar a{display:flex;align-items:center;gap:12px;padding:20px 8px;font:700 18px var(--display);letter-spacing:2px;color:#f6e2bd;transition:opacity .2s}
.cta-bar a:hover{opacity:.75}
.cta-bar a span{font-size:20px}
.cta-bar .sep{color:#f6e2bd;opacity:.6}
@media(max-width:750px){.cta-bar{gap:10px;flex-wrap:wrap}.cta-bar a{font-size:14px;letter-spacing:1px;padding:16px 4px}.cta-bar .sep{display:none}.cta-bar{justify-content:space-around}}

/* mobile pass */
.playing-card{border-color:#525b8b44;outline-color:#525b8b44}
.playing-card hr{border-top-color:#525b8b66}
header{border-bottom-color:#525b8b33}
@media(max-width:750px){
  .edition span{display:none}
  .hero-info{bottom:3%;right:3%;padding:8px 10px;transform:rotate(-2deg)}
  .hero-info .hi-label{display:none}
  .hero-info strong{font-size:19px}
  .hero-info span,.hero-info em{font-size:10px}
  .little-star{display:none}
  .intro{padding:40px 7% 36px}
  .gallery{padding:28px 5% 44px}
  .section-heading{margin-bottom:24px}
  .gallery-note{margin-top:34px;font-size:24px}
  .manifesto{padding:40px 6% 48px}
  .visit{padding:48px 8%;gap:40px}
  .visit h2{font-size:48px}
  .playing-card{width:min(270px,80%);padding:36px 24px}
  .playing-card h3{font-size:34px}
  .closing{padding:28px 7%}
}

/* squish: less dead space */
.gallery{padding:36px 5% 40px}
.section-heading{margin-bottom:22px}
.gallery-note{margin-top:28px}
.manifesto{padding:44px 8% 52px}
.manifesto .eyebrow{margin-bottom:20px}
.handwritten{margin-top:6px}
.visit{padding:56px 12%;gap:60px}
.visit-copy>p:not(.eyebrow){margin:18px 0 22px}
.visit .eyebrow{margin-bottom:16px}
.playing-card{max-width:300px;margin-left:auto;margin-right:auto;padding:36px 26px}
.closing{padding:30px 5%}
.closing p{margin:0}
footer{padding:20px 5%}
@media(max-width:750px){
  .gallery{padding:22px 5% 30px}
  .gallery-note{margin-top:20px}
  .manifesto{padding:30px 6% 36px}
  .visit{padding:34px 8%;gap:28px}
  .playing-card{width:min(230px,70%)}
  .closing{padding:22px 7%}
}
@media(max-width:750px){.photo.three .frame img{aspect-ratio:4/3;object-position:center 30%}}
@media(max-width:750px){.hero-info .hi-label{display:block!important;font-size:9px;margin-bottom:2px}}

/* header actions */
header{gap:16px}
.top-actions{display:flex;align-items:center;gap:18px}
.top-link{font-size:12px;font-weight:600;letter-spacing:.3px}
.venmo-btn{background:#3d95ce;color:#fff;padding:10px 16px;border-radius:999px;font-size:12px;font-weight:600;letter-spacing:.3px;white-space:nowrap}
.venmo-btn:hover{background:#2f7fb3}

/* prints */
.prints{display:grid;grid-template-columns:1fr 1.3fr;gap:60px;padding:56px 12%;border-top:1px solid #29191925}
.prints-body p{font-size:14px;line-height:1.7;margin:0 0 10px}
.prints .note{font-family:'Special Elite',monospace;font-size:14px;color:var(--red)}
.steps{margin:18px 0 22px;padding-left:20px;font-size:14px;line-height:1.9}
.venmo-big{background:#3d95ce!important}
.fine{font-size:11px!important;color:#665b51;margin-top:12px!important;line-height:1.6}

/* booking */
.book{display:grid;grid-template-columns:1fr 1.3fr;gap:60px;padding:56px 12%;background:#e6d6b6}
.book>div>p:not(.eyebrow){font-size:14px;line-height:1.7;margin-top:18px}
.book-form{display:grid;gap:6px}
.book-form label{font-size:10px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;margin-top:8px}
.book-form input,.book-form select,.book-form textarea{font:inherit;font-size:15px;padding:11px 12px;border:1px solid #16172955;background:#f8efdc;color:var(--ink);border-radius:0}
.book-form input:focus,.book-form select:focus,.book-form textarea:focus{outline:2px solid var(--red);outline-offset:1px}
.book-form .button{border:0;cursor:pointer;margin-top:14px;font:inherit;font-size:11px;letter-spacing:1px}
.book-form .fine a{text-decoration:underline}

@media(max-width:750px){
  header{padding:12px 5%}
  .wordmark{font-size:20px}
  .top-actions{gap:10px}
  .top-link{font-size:10px}
  .venmo-btn{padding:8px 11px;font-size:10px}
  .prints,.book{grid-template-columns:1fr;gap:18px;padding:34px 8%}
  .prints h2,.book h2{font-size:48px}
}

/* Bri's notes: one-line name, text nav, typewriter info box, matching arrows */
.wordmark{white-space:nowrap}
.top-actions{gap:10px;flex-wrap:nowrap}
.top-link{font-family:'Special Elite',monospace;font-size:13px;font-weight:400;letter-spacing:0;white-space:nowrap}
.top-actions .dot{color:var(--red);font-size:14px;font-variant-emoji:text}
.venmo-btn{display:none}
.hero-info,.hero-info .hi-label,.hero-info strong,.hero-info span{font-family:'Special Elite',monospace!important;text-transform:none}
.hero-info .hi-label{font-size:12px;letter-spacing:1px;opacity:.85}
.hero-info strong{font-size:26px;font-weight:400;letter-spacing:0;text-transform:uppercase}
.cta-bar a span{font-family:var(--sans);font-variant-emoji:text}
@media(max-width:750px){
  header{flex-wrap:nowrap}
  .wordmark{font-size:17px}
  .wordmark span{font-size:18px;padding-left:4px}
  .top-actions{gap:5px}
  .top-link{font-size:10px}
  .top-actions .dot{font-size:10px}
  .hero-info strong{font-size:17px}
  .hero-info .hi-label{font-size:9px}
}

/* captions in the eyebrow font */
.caption{font-family:var(--sans)!important;font-size:11px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase}

/* round 3: svg arrows, card next to text, display font on card */
.ico{width:1em;height:1em;vertical-align:-.12em;display:inline-block}
.cta-bar a .ico{width:18px;height:18px}
.closing a .ico{width:.8em;height:.8em;margin-left:14px}
.button{justify-content:center}
.visit{display:grid;grid-template-columns:1fr 1fr;grid-template-areas:"copy card" "btn card";gap:24px 40px;align-items:center}
.visit-copy{grid-area:copy;align-self:end}
.visit .playing-card{grid-area:card;margin:0 auto}
.visit .directions{grid-area:btn;align-self:start;max-width:260px}
.playing-card .invite,.playing-card .when,.playing-card .venue,.playing-card .address{font-family:var(--display)!important;font-weight:700;letter-spacing:1px!important;text-transform:uppercase;line-height:1.15}
.playing-card .invite{font-size:15px;margin:0 0 8px}
.playing-card h3{font-size:44px;letter-spacing:1px}
.playing-card .when{font-size:15px;margin:4px 0 0}
.playing-card .venue{font-size:17px;margin:0}
.playing-card .address{font-size:12px;font-weight:600;margin:4px 0 0}
@media(max-width:750px){
  .visit{grid-template-columns:1.1fr 1fr;grid-template-areas:"copy card" "btn btn";gap:18px 14px;padding:34px 6%}
  .visit h2{font-size:38px}
  .visit .playing-card{width:100%;padding:24px 10px;transform:rotate(4deg)}
  .playing-card .corner{font-size:16px;top:10px;left:10px}
  .playing-card .reverse{top:auto;left:auto;bottom:10px;right:10px}
  .playing-card .heart{font-size:34px}
  .playing-card .invite{font-size:10px}
  .playing-card h3{font-size:26px}
  .playing-card .when,.playing-card .venue{font-size:11px}
  .playing-card .address{font-size:9px}
  .playing-card hr{margin:8px}
  .visit .directions{max-width:none}
}

/* round 4: Bri's card layout + font matching */
/* green group = credit font (DM Sans caps) */
.top-link{font-family:var(--sans)!important;font-size:11px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase}
.hero-info span,.hero-info span:not(.hi-label){font-family:var(--sans)!important;font-size:11px!important;font-weight:600;letter-spacing:1.5px;text-transform:uppercase}
/* yellow group = DAZZLE font */
.hero-info .hi-label,.hero-info strong{font-family:var(--display)!important;font-weight:800!important;letter-spacing:.5px!important;text-transform:uppercase}
.hero-info .hi-label{font-size:13px!important;opacity:.9}
.hero-info strong{font-size:30px!important}
/* visit: copy + small button left, big tilted card bleeding right */
.visit{grid-template-columns:1fr 1fr!important;grid-template-areas:"copy card"!important;overflow:hidden;align-items:center}
.visit .directions{display:inline-flex;margin-top:28px;max-width:none;padding:16px 26px}
.visit .playing-card{transform:rotate(14deg)!important;width:min(340px,100%);margin:20px 0 20px auto}
.playing-card .invite{font-family:var(--sans)!important;font-weight:400!important;font-size:15px!important;letter-spacing:2px!important;text-transform:none!important}
.playing-card h3{font-family:var(--display)!important;font-weight:800}
.playing-card .when,.playing-card .venue{font-family:var(--sans)!important;font-weight:400!important;letter-spacing:3px!important;font-size:13px!important}
.playing-card .address{font-family:'Special Elite',monospace!important;font-weight:400!important;text-transform:none!important;letter-spacing:0!important;font-size:13px!important;text-decoration:underline dotted;text-underline-offset:4px}
@media(max-width:750px){
  .top-link{font-size:8.5px;letter-spacing:.8px}
  .hero-info strong{font-size:20px!important}
  .hero-info .hi-label{font-size:10px!important}
  .hero-info span:not(.hi-label){font-size:8.5px!important;letter-spacing:1px}
  .visit{grid-template-columns:1fr 1.05fr!important;padding:30px 0 30px 6%!important;gap:0 4px!important}
  .visit h2{font-size:36px}
  .visit .directions{margin-top:20px;padding:12px 14px;font-size:10px}
  .visit .playing-card{width:118%;margin:10px -14% 10px 0;padding:26px 14px}
  .playing-card .invite{font-size:10px!important;letter-spacing:1.5px!important}
  .playing-card h3{font-size:30px}
  .playing-card .when,.playing-card .venue{font-size:9.5px!important;letter-spacing:2px!important}
  .playing-card .address{font-size:10px!important}
}
@media(max-width:750px){.visit .playing-card{width:104%;margin:10px -4% 10px 0;transform:rotate(11deg)!important}}
.prints .sizes{font:700 18px var(--display);letter-spacing:2px;margin:14px 0 18px!important}

/* round 5 */
.prints{display:block}
.prints-line{font-family:Georgia,serif;font-size:19px;line-height:1.4;margin:10px 0 22px}
.button.make{display:inline-flex;max-width:none;padding:16px 28px}
.visit-copy{align-self:start!important;padding-top:10px}
/* mobile: hero fills the first screen, banner sits at the bottom like a toolbar */
@media(max-width:750px){
  .hero{height:calc(100svh - 52px - 58px)!important;min-height:520px}
  .hero h1{font-size:34vw!important;margin-top:36px!important}
  .hero-portrait{width:136%!important;left:-18%!important;height:74%!important;bottom:-2%!important}
  .edition{font-size:9px}
  .hero-info{padding:10px 12px!important}
  .hero-info strong{font-size:24px!important}
  .hero-info .hi-label{font-size:11px!important}
  .hero-info span:not(.hi-label){font-size:10px!important}
  .cta-bar a{padding:18px 4px;font-size:15px}
  .prints-line{font-size:16px}
}
@media(max-width:750px){.hero-portrait{height:84%!important;width:150%!important;left:-25%!important;bottom:-3%!important}}
@media(max-width:750px){.hero-portrait{top:calc(64px + 27vw)!important;bottom:auto!important;height:auto!important;width:140%!important;left:-20%!important;object-position:top}}
@media(max-width:750px){.hero-portrait{height:calc(100% - 64px - 27vw + 30px)!important;width:auto!important;max-width:none!important;left:50%!important;transform:translateX(-50%) rotate(-3deg)!important;object-fit:contain}}

/* ---- hover play ---- */
@media (hover:hover){
.photo .frame{overflow:hidden}
.photo img,.photo .frame{transition:transform .5s cubic-bezier(.2,.8,.2,1),filter .5s}
.photo:hover img{transform:scale(1.06)}
.photo.one:hover .frame{transform:rotate(-1.5deg) translateY(-6px)}
.photo.two:hover .frame{transform:rotate(1.5deg) translateY(-6px)}
.photo.three:hover .frame{transform:rotate(-1deg) translateY(-6px)}
.photo:hover .caption .ico{transform:translate(3px,-3px)}
.ico{transition:transform .3s}
.button,.top-link,.cta-bar a,.closing a,footer a{transition:transform .3s,letter-spacing .3s,opacity .3s}
.button:hover{transform:translateY(-2px) scale(1.03);letter-spacing:.14em}
.cta-bar a:hover,.top-link:hover,footer a:hover{letter-spacing:.12em}
.cta-bar a:hover .ico{transform:translateY(3px)}
footer a:hover .ico{transform:translateY(-3px)}
.closing a:hover{transform:scale(1.04)}
.closing a:hover .ico{transform:translate(4px,-4px)}
.playing-card{transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.playing-card:hover{transform:rotate(0deg) scale(1.04)}
.hero-portrait{transition:transform .8s cubic-bezier(.2,.8,.2,1)}
.hero:hover .hero-portrait{transform:scale(1.02)}
.split span{display:inline-block;transition:transform .45s cubic-bezier(.2,.8,.2,1)}
.manifesto h2{cursor:default}
}

/* ---- envelope intro ---- */
.envelope-gate{position:fixed;inset:0;z-index:100;display:grid;place-items:center;background:radial-gradient(circle at 50% 40%,#232541,#161729 70%);transition:opacity .8s ease .9s,visibility 0s 1.7s}
.envelope-gate.open{opacity:0;visibility:hidden}
.env{position:relative;width:min(560px,86vw);aspect-ratio:3/2;border:0;padding:0;background:none;cursor:pointer;perspective:1200px;transition:transform .4s}
.env:hover{transform:scale(1.03) rotate(-1deg)}
.env-back,.env-front,.env-flap,.env-letter{position:absolute;inset:0}
.env-back{background:#efe2c8;border-radius:6px;box-shadow:0 30px 60px rgba(0,0,0,.45)}
.env-letter{inset:8% 7% 10%;background:#fbf4e4;border-radius:3px;display:grid;place-items:center;align-content:center;gap:6px;color:#161729;transition:transform .8s cubic-bezier(.2,.8,.2,1) .45s;z-index:1}
.env-letter b{font:900 clamp(34px,8vw,64px)/1 'Barlow Condensed',sans-serif;letter-spacing:2px}
.env-letter small{font:600 11px 'DM Sans',sans-serif;letter-spacing:3px;text-transform:uppercase;color:#525b8b}
.env-front{z-index:2;background:
 linear-gradient(to top right,#e8d9bb 50%,transparent 50.2%) left bottom/50% 100% no-repeat,
 linear-gradient(to top left,#e8d9bb 50%,transparent 50.2%) right bottom/50% 100% no-repeat;border-radius:6px;
 outline:2px dashed #525b8b;outline-offset:-12px}
.env-flap{z-index:3;transform-origin:top;transition:transform .7s cubic-bezier(.6,0,.3,1);clip-path:polygon(0 0,100% 0,50% 58%);background:#e3d2b0}
.env-flap::after{content:"";position:absolute;inset:10px;clip-path:polygon(0 0,100% 0,50% 58%);background:repeating-linear-gradient(90deg,transparent 0 6px,#525b8b 6px 12px) top/100% 2px no-repeat}
.env-stitch{position:absolute;z-index:4;left:50%;top:50%;width:min(104px,20vw);aspect-ratio:1;translate:-50% -36%;border-radius:50%;background:#3a3f5e;display:grid;place-items:center;
 box-shadow:inset 0 0 0 5px #3a3f5e,inset 0 0 0 7px #f2e3c6,inset 0 0 0 9px #3a3f5e,0 6px 14px rgba(0,0,0,.35);
 background-image:repeating-conic-gradient(from 0deg,#3a3f5e 0 3deg,#444a6c 3deg 6deg);transition:opacity .3s,transform .5s}
.env-stitch span{font:600 clamp(26px,5vw,40px) 'Caveat',cursive;color:#f2e3c6;text-shadow:1px 1px 0 #2b2f4a}
.env-hint{position:absolute;bottom:-46px;left:0;right:0;text-align:center;font:600 11px 'DM Sans',sans-serif;letter-spacing:3px;text-transform:uppercase;color:#efe2c8;opacity:.8;animation:pulse 2s ease-in-out infinite}
@keyframes pulse{50%{opacity:.35}}
.envelope-gate.open .env-stitch{opacity:0;transform:scale(.6)}
.envelope-gate.open .env-flap{transform:rotateX(180deg);z-index:0}
.envelope-gate.open .env-letter{transform:translateY(-62%)}
body.gated{overflow:hidden}
@media (prefers-reduced-motion:reduce){.envelope-gate,.env-flap,.env-letter{transition-duration:.01s}}
.env-letter{opacity:0}
.envelope-gate.open .env-letter{opacity:1;transition:transform .8s cubic-bezier(.2,.8,.2,1) .45s,opacity .2s .3s}
.env-back{background:#d9c7a3}
.env-flap{filter:drop-shadow(0 4px 4px rgba(0,0,0,.15))}
.envelope-gate.open .env-hint{opacity:0;animation:none}
.env-stitch{background:none!important;box-shadow:none!important;width:min(118px,24vw);filter:drop-shadow(0 6px 8px rgba(30,5,10,.45)) drop-shadow(0 1px 1px rgba(0,0,0,.4))}
.seal-svg{width:100%;height:100%;display:block}
.env:hover .env-stitch{transform:rotate(-6deg) scale(1.04)}
.envelope-gate.open .env-stitch{opacity:0;transform:translateY(-20px) rotate(-25deg) scale(.7)}
.masonry{columns:4 260px;column-gap:18px;max-width:1300px;margin:0 auto;padding:0 24px}
.m-item{display:block;break-inside:avoid;margin:0 0 18px;position:relative;overflow:hidden;color:#efe2c8;text-decoration:none}
.m-item img{width:100%;display:block;transition:transform .6s cubic-bezier(.2,.8,.2,1),filter .6s}
.m-item span{position:absolute;left:0;right:0;bottom:0;padding:28px 14px 12px;display:flex;justify-content:space-between;font:600 11px 'DM Sans',sans-serif;letter-spacing:2px;text-transform:uppercase;background:linear-gradient(transparent,rgba(22,23,41,.85));opacity:0;transform:translateY(8px);transition:.4s}
.m-item em{font-style:normal}
.m-item:hover img{transform:scale(1.05)}
.m-item:hover span{opacity:1;transform:none}
@media(hover:none){.m-item span{opacity:1;transform:none;padding:20px 10px 8px;font-size:9px}}
@media(max-width:600px){.masonry{columns:2;column-gap:10px;padding:0 12px}.m-item{margin-bottom:10px}}

/* ---- Bri refs: burgundy + ivory, wax B, paper texture ---- */
.envelope-gate{background:radial-gradient(ellipse at 50% 35%,#4a0f1c,#2a050d 75%)}
.env-back{background:#e9e3d3}
.env-front{background:
 linear-gradient(to top right,#f3efe4 50%,transparent 50.2%) left bottom/50% 100% no-repeat,
 linear-gradient(to top left,#f0ebdf 50%,transparent 50.2%) right bottom/50% 100% no-repeat;outline:none}
.env-flap{background:#f6f2e8;filter:drop-shadow(0 3px 3px rgba(60,30,30,.12))}
.env-flap::after{display:none}
.env-back,.env-front,.env-flap{box-shadow:none}
.env-back{box-shadow:0 40px 80px rgba(0,0,0,.5)}
.env-back::after,.env-flap::before,.hero::before,.env-letter::before{content:"";position:absolute;inset:0;background:url(paper.jpg) center/cover;mix-blend-mode:multiply;opacity:.18;pointer-events:none;border-radius:inherit}
.env-flap::before{opacity:.14}
.hero::before{opacity:.12}
.env-stitch{width:min(96px,20vw);aspect-ratio:1;translate:-50% -30%;border-radius:50%!important;
 background:radial-gradient(circle at 35% 30%,#8a2a3c,#6b1a2b 45%,#4e0f1e)!important;
 box-shadow:inset 0 0 0 6px #6a1a2b,inset 0 0 0 7px rgba(255,255,255,.12),inset 0 0 0 9px #5a1424,inset -4px -6px 10px rgba(0,0,0,.35),inset 3px 4px 6px rgba(255,180,190,.18),0 4px 10px rgba(60,10,20,.35)!important;
 filter:none;border:0}
.env-stitch::after{content:"";position:absolute;inset:-3px;border-radius:50% 48% 52% 50%;border:3px solid #5f1626;opacity:.9}
.seal-b{font:400 clamp(40px,8vw,58px)/1 'Pinyon Script',cursive;color:#5a1424;text-shadow:-1px -1px 1px rgba(0,0,0,.45),1px 1px 1px rgba(255,170,180,.45);margin-top:6px}
.env-letter{background:#f7f3ea;outline:1px solid #d8cdb6;outline-offset:-10px;box-shadow:inset 0 0 0 14px #f7f3ea,inset 0 0 0 15px #cbbd9f}
.env-letter b{color:#4e0f1e;font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:600;letter-spacing:3px}
.env-letter small{color:#7a5a4a}
.env-cal{font:600 10px 'DM Sans',sans-serif;letter-spacing:2px;text-transform:uppercase;color:#4e0f1e;border-bottom:1px solid currentColor;text-decoration:none;margin-top:4px;opacity:0;transition:opacity .4s 1.2s}
.envelope-gate.open .env-cal{opacity:1}
.env-hint{color:#e9e3d3}
.envelope-gate.open{transition:opacity .8s ease 1.6s,visibility 0s 2.4s}
/* see all, bts, calendar */
.see-all{text-align:center;margin:8px 0 0}.see-all a{font:600 12px 'DM Sans',sans-serif;letter-spacing:2.5px;text-transform:uppercase;color:#161729;border-bottom:1px solid;text-decoration:none;padding-bottom:3px}
.bts{padding:70px 24px;background:#161729;color:#efe2c8;text-align:center}
.bts .eyebrow{color:#efe2c8;margin-bottom:22px}
.bts-strip{display:flex;gap:14px;justify-content:center;max-width:1200px;margin:0 auto}
.bts-strip img{width:24%;aspect-ratio:3/4;object-fit:cover;filter:grayscale(1) contrast(1.05);transition:transform .5s,filter .5s}
.bts-strip img:nth-child(odd){transform:translateY(18px)}
.bts-strip img:hover{filter:grayscale(.2);transform:scale(1.04)}
@media(max-width:700px){.bts-strip{overflow-x:auto;justify-content:flex-start;scroll-snap-type:x mandatory}.bts-strip img{width:62%;flex:none;scroll-snap-align:center}.bts-strip img:nth-child(odd){transform:none}}
.cal-links{font:500 13px 'DM Sans',sans-serif;line-height:1.7;margin-top:18px}.cal-links a{color:inherit;border-bottom:1px solid;text-decoration:none}
/* seamless scrolling */
html{scroll-behavior:smooth}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.8,.2,1)}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}html{scroll-behavior:auto}}
.env-back::after{opacity:.1}.env-flap::before{opacity:.08}.env-letter::before{opacity:.06}
.seal-b{color:#a3495b;font-size:clamp(46px,9vw,64px);text-shadow:-1px -1px 0 #3d0a16,1px 1px 1px rgba(255,190,200,.35)}
.hero::before{z-index:5}
.bts-strip img{width:min(320px,40%)}
.bts-strip img:nth-child(odd){transform:none}.bts-strip img:nth-child(2){transform:translateY(22px)}

/* ---- more texture (Bri) ---- */
body::after{content:"";position:fixed;inset:0;z-index:90;pointer-events:none;background:url(paper.jpg) center/cover;mix-blend-mode:multiply;opacity:.16}
body::before{content:"";position:fixed;inset:0;z-index:89;pointer-events:none;background:url(paper.jpg) center/cover;mix-blend-mode:soft-light;opacity:.4}
.hero::before{opacity:.28;mix-blend-mode:soft-light;background-size:140% auto}

/* ---- perf: cheap texture (no blend modes, single GPU layer) ---- */
body::after{display:none}
body::before{background:url(paper-tex.webp) center/cover;mix-blend-mode:normal;opacity:.55;transform:translateZ(0);will-change:transform}
.hero::before{background:url(paper-tex.webp) center/cover;mix-blend-mode:normal;opacity:.45}
.env-back::after,.env-flap::before,.env-letter::before{background-image:url(paper-tex.webp);mix-blend-mode:normal;opacity:.5}
body::before{opacity:.6}.hero::before{opacity:.5}
body::before{opacity:.2}.hero::before{opacity:.12}.env-back::after,.env-flap::before,.env-letter::before{opacity:.15}

/* ---- texture v3: baked into section backgrounds (scrolls with content, no overlay layers) ---- */
body::before,body::after,.hero::before{display:none!important}
header,main>section,footer,.cta-bar{background-image:url(paper-soft.jpg)!important;background-size:1000px auto!important;background-repeat:repeat!important;background-blend-mode:multiply!important}
.env-back::after,.env-flap::before,.env-letter::before{background:url(paper-soft.jpg) center/cover;mix-blend-mode:multiply;opacity:.6}
header,.gallery,.prints,.visit,footer{background-color:#efe2c8!important}
header,main>section,footer,.cta-bar{background-size:cover!important;background-repeat:no-repeat!important;background-position:center!important}
.hero-portrait{filter:none!important}

/* ---- v14: HD paper everywhere, photo wax seal, bigger nav taps ---- */
header,main>section,footer,.cta-bar{background-image:url(paper-hd.jpg)!important}
.env-back::after,.env-flap::before,.env-letter::before{background:url(paper-hd.jpg) center/cover;mix-blend-mode:multiply;opacity:1}
.env-stitch{background:none!important;box-shadow:none!important;width:min(112px,24vw);aspect-ratio:290/260;border-radius:0!important;translate:-50% -28%;filter:drop-shadow(0 3px 4px rgba(40,5,12,.45)) drop-shadow(0 1px 1px rgba(0,0,0,.35))}
.env-stitch::after{display:none}
.seal-img{width:100%;height:100%;display:block}
.top-link{display:inline-block;padding:14px 4px;margin:-14px 0}
.env-front::after{content:"";position:absolute;inset:0;background:url(paper-hd.jpg) center/cover;mix-blend-mode:multiply;pointer-events:none;
 clip-path:polygon(0 0,50% 100%,100% 0,100% 100%,0 100%)}
.env-stitch{width:min(132px,26vw)}

/* ---- gate matches site palette + hold on letter ---- */
.envelope-gate{background:radial-gradient(ellipse at 50% 35%,#2a2c4a,#161729 72%)}
.env-back{background:#e6d6b5}
.env-front{background:
 linear-gradient(to top right,#efe2c8 50%,transparent 50.2%) left bottom/50% 100% no-repeat,
 linear-gradient(to top left,#ebdcbf 50%,transparent 50.2%) right bottom/50% 100% no-repeat}
.env-flap{background:#f2e3c6}
.env-letter{background:#f7eedb}
.env-letter b{color:#161729}
.env-letter small{color:#525b8b}
.env-hint{color:#efe2c8}
.seal-img{filter:hue-rotate(-112deg) saturate(.8) brightness(.95)}
.envelope-gate.open{transition:opacity .9s ease 3.4s,visibility 0s 4.3s}

/* ---- consistency pass ---- */
:where(main > section, main > div){background-color:#efe2c8}
.envelope-gate{background:#1b1c33 url(paper-hd.jpg) center/cover;background-blend-mode:multiply}
.envelope-gate::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 38%,rgba(70,74,120,.35),rgba(10,10,25,.45) 75%);pointer-events:none}
.env{z-index:1}
.prints-line{font-family:'DM Sans',sans-serif;font-size:17px}
@media(max-width:750px){.playing-card .when{font-size:10px;letter-spacing:2px}}
.seal-img{filter:hue-rotate(-108deg) saturate(.55) brightness(1.75) contrast(.95)}
.seal-img{filter:hue-rotate(-105deg) saturate(.32) brightness(2.05) contrast(.92)}
.seal-img{filter:hue-rotate(-105deg) saturate(.4) brightness(2.7) contrast(.85)}

/* ---- polish pass 1-8 ---- */
/* 1 prints fan */
.prints{position:relative;overflow:hidden}
.prints-head{position:relative;z-index:2}
.prints-fan{position:absolute;right:8%;top:50%;width:min(440px,36vw);height:360px;transform:translateY(-50%)}
.prints-fan img{position:absolute;top:0;left:50%;width:58%;aspect-ratio:4/5;object-fit:cover;border:8px solid #f8f1e2;box-shadow:0 14px 30px rgba(22,23,41,.28);transform-origin:50% 100%;transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.prints-fan img:nth-child(1){transform:translateX(-50%) rotate(-14deg) translateX(-38%)}
.prints-fan img:nth-child(2){transform:translateX(-50%) rotate(9deg) translateX(34%)}
.prints-fan img:nth-child(3){transform:translateX(-50%) rotate(-2deg)}
.prints:hover .prints-fan img:nth-child(1){transform:translateX(-50%) rotate(-20deg) translateX(-52%)}
.prints:hover .prints-fan img:nth-child(2){transform:translateX(-50%) rotate(15deg) translateX(48%)}
@media(max-width:750px){.prints-fan{position:relative;right:auto;top:auto;transform:none;width:78%;height:250px;margin:36px auto 6px}}
/* 3 one button color */
.button,.button.make,.button.directions,.book-form .button{background:#161729!important;color:#efe2c8!important}
.button:hover{background:#2a2c4a!important}
/* 4 header */
.top-link.pill{background:#161729;color:#efe2c8!important;padding:9px 14px;margin:0;border-radius:999px}
@media(max-width:750px){.top-link{font-size:11px!important;letter-spacing:1.2px}.top-link.pill{padding:8px 12px}header .dot{display:none}.top-actions{gap:14px}}
/* 5 mobile hero info as strip */
@media(max-width:750px){.hero-info{left:0!important;right:0!important;bottom:0!important;top:auto!important;transform:none!important;width:auto!important;background:#161729!important;padding:14px 20px!important;display:grid!important;grid-template-columns:1fr auto;column-gap:16px;border-top:1px solid #efe2c833}
.hero-info .hi-label{grid-column:1/-1}.hero-info strong{grid-column:1/-1}}
/* 7 form */
.frow{display:grid;grid-template-columns:1fr 1fr;gap:12px}.frow>div{display:grid;gap:6px}
@media(max-width:600px){.frow{grid-template-columns:1fr}}
/* 8 footer credit */
.credit{opacity:.55;text-transform:none;letter-spacing:.5px;font-size:.9em;text-decoration:none;border-bottom:1px solid}
@media(max-width:750px){.hero-info{grid-template-columns:1fr!important}}
/* prints: compact centered band instead of fan */
.prints{padding:70px 24px!important;text-align:center}
.prints-head{max-width:640px;margin:0 auto;display:flex;flex-direction:column;align-items:center}
.prints-head h2 br{display:none}.prints-head h2 em{margin-left:.25em}

/* ---- Bri's handwriting (masked so it takes each section's ink color) ---- */
.hw{display:inline-block;background:currentColor;-webkit-mask:var(--m) center/contain no-repeat;mask:var(--m) center/contain no-repeat;vertical-align:middle}
.hw-preview{height:44px}
.hw-closer{height:34px;display:block;margin:0 auto 6px}
.hw-sig{height:58px}
.hw-connect{height:42px}
.typewriter,.gallery-note,.handwritten,.closing p{font-size:0!important;line-height:1}
.gallery-note span:not(.hw){font-size:12px!important;display:block;line-height:1.6}
.handwritten{transform:rotate(-4deg)}
@media(max-width:750px){.hw-preview{height:30px}.hw-closer{height:24px}.hw-sig{height:40px}.hw-connect{height:32px}}
.gallery-note .hw,.typewriter .hw{color:#525b8b}

/* ---- one continuous paper for all cream areas ---- */
html,body{background:#efe2c8 url(paper-cream.jpg) top center/1600px auto repeat!important}
header,.gallery,.prints,.visit,.book,footer{background:transparent!important;border-top:0!important;border-bottom:0!important;box-shadow:none!important}
.hero,.manifesto,.shop-hero,main>section.hero{background:#161729 url(paper-hd.jpg) center/cover!important;background-blend-mode:multiply!important}
.cta-bar,.closing{background:#3a3f5e url(paper-hd.jpg) center/cover!important;background-blend-mode:multiply!important}
.book-form input,.book-form select,.book-form textarea,.buyrow .sz{background-color:rgba(255,250,238,.55)!important}
.shop,main{background:transparent!important}
.env-sig{height:clamp(26px,5vw,40px);color:#161729;margin-top:6px}
.envelope-gate.open{transition:opacity .8s ease 2.2s,visibility 0s 3s}
.card-sig{display:block;margin:6px 0 2px}.card-sig .hw{height:30px;color:#3a3f5e}
.shop-sig{height:46px;color:#efe2c8;margin-top:18px;display:block;width:auto}
html,body{background:#efe2c8 url(paper-tile.jpg) top left/1200px auto repeat!important}

/* ---- mobile optimization ---- */
@media(max-width:750px){
 .book-form input,.book-form select,.book-form textarea,.buyrow .sz{font-size:16px!important}
 .env{width:92vw}
 .env-stitch{width:30vw}
 .env-hint{bottom:-56px;font-size:12px}
 footer{flex-direction:column;align-items:flex-start;gap:6px;padding:22px 20px 30px!important}
 footer a,.see-all a,.fine a{display:inline-block;padding:10px 0}
 .wordmark{padding:10px 0}
 .top-link{padding:12px 4px}
 .top-link.pill{padding:10px 14px}
 .button{min-height:48px;display:inline-flex;align-items:center;justify-content:center}
 .book-form .button{width:100%}
 .closing a{padding:6px 0;display:inline-flex}
 .reveal{transform:translateY(16px);transition-duration:.6s}
}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
a,button,.env{-webkit-tap-highlight-color:transparent}
img{content-visibility:auto}
/* panel fixes */
.frame,.photo .frame{background:#1a1b2e}
.buyrow .buy,.top-link,.see-all a,.fine a,footer a{min-height:44px;display:inline-flex;align-items:center;justify-content:center}


/* ---- CTAs stand out ---- */
.button,.top-link.pill,.see-all a{font:700 13px 'DM Sans',sans-serif!important;letter-spacing:2.5px!important;text-transform:uppercase;padding:16px 30px!important;min-height:52px;border:2px solid #161729!important;box-shadow:5px 5px 0 #525b8b;transition:transform .2s,box-shadow .2s!important;text-decoration:none}
.button::after,.see-all a::after{content:" →";margin-left:6px}
.button:hover,.top-link.pill:hover,.see-all a:hover{transform:translate(-2px,-2px);box-shadow:7px 7px 0 #525b8b}
.button:active,.top-link.pill:active,.see-all a:active{transform:translate(3px,3px);box-shadow:2px 2px 0 #525b8b}
.see-all a{display:inline-flex!important;background:#efe2c8;color:#161729!important}
.top-link.pill{padding:10px 18px!important;min-height:42px;box-shadow:3px 3px 0 #525b8b;border-radius:999px}
.cta-bar a{font-size:18px!important;letter-spacing:2px}
.cta-bar a:hover{color:#fff}
@media(max-width:750px){.button{width:100%;max-width:340px}.see-all a{width:100%;max-width:340px;justify-content:center}.top-link.pill{padding:8px 14px!important;min-height:38px}}

/* ---- smooth cardstock -> crumple -> toss ---- */
.env-back::after,.env-flap::before,.env-letter::before,.env-front::after{display:none!important}
.env-back{background:linear-gradient(160deg,#efe4cc,#e4d5b6)!important}
.env-front{background:
 linear-gradient(to top right,#f3eadb 50%,transparent 50.2%) left bottom/50% 100% no-repeat,
 linear-gradient(to top left,#eee3cf 50%,transparent 50.2%) right bottom/50% 100% no-repeat!important;filter:drop-shadow(0 -1px 0 rgba(0,0,0,.06))}
.env-flap{background:linear-gradient(180deg,#f6eedf,#ece0c8)!important;filter:drop-shadow(0 2px 2px rgba(22,23,41,.18))}
.env-letter{background:#fbf6ea!important;box-shadow:0 2px 6px rgba(0,0,0,.12),inset 0 0 0 14px #fbf6ea,inset 0 0 0 15px #cbbd9f!important}
.env-crumple{position:absolute;inset:-6%;z-index:6;opacity:0;pointer-events:none;background:url(paper-tile.jpg) center/cover;border-radius:8px;box-shadow:0 20px 40px rgba(0,0,0,.4)}
.envelope-gate.open{transition:none!important;opacity:1!important;visibility:visible!important}
.envelope-gate.crumple .env{filter:url(#crump) drop-shadow(0 18px 24px rgba(0,0,0,.45));transform:scale(.94) rotate(-1.5deg);transition:transform 1.1s cubic-bezier(.5,0,.3,1)}
.env-crumple{inset:0;border-radius:4px;box-shadow:none!important;background:url(paper-hd.jpg) center/cover!important;mix-blend-mode:multiply}
.envelope-gate.crumple .env-crumple{opacity:.95;transition:opacity 1.1s ease-in;filter:contrast(1.5) brightness(1.05)}
.envelope-gate.crumple .env-hint{opacity:0}
.envelope-gate.toss .env{transform:translateY(55vh) scale(.8) rotate(7deg);opacity:0;transition:transform .75s cubic-bezier(.55,0,.8,.4),opacity .6s .15s}
.envelope-gate.toss{transition:opacity .6s .25s!important;opacity:0!important}
.envelope-gate.crumple .env-crumple{opacity:1;filter:contrast(2.1) brightness(1.08)}

/* ===== intro v3: tri-fold letter out of envelope, then unfold ===== */
.envelope-gate,.envelope-gate.open{opacity:1!important;visibility:visible!important;animation:none!important;transition:none!important}
.envelope-gate{perspective:1600px}
.envelope-gate.done{opacity:0!important;transition:opacity .8s ease!important}
.env{transition:transform .6s cubic-bezier(.5,0,.3,1),opacity .5s}
.env-letter,.env-crumple{display:none!important}
.env-folded{position:absolute;left:7%;right:7%;top:10%;height:64%;background:linear-gradient(#fcf8ef,#f3ecdc);box-shadow:0 1px 3px rgba(0,0,0,.15);z-index:1;transition:transform .7s cubic-bezier(.3,.7,.2,1)}
.envelope-gate.out .env-folded{transform:translateY(-78%)}
.envelope-gate.away .env{transform:translateY(70vh) rotate(4deg);opacity:0}
/* folded letter object */
.tri{position:absolute;left:50%;top:50%;width:min(420px,84vw);aspect-ratio:3/1.4;transform:translate(-50%,-50%) translateY(-12vh);opacity:0;transform-style:preserve-3d;z-index:3;transition:transform .5s cubic-bezier(.3,.7,.2,1),opacity .2s}
.envelope-gate.away .tri{opacity:1;transform:translate(-50%,-50%)}
.tri-p{position:absolute;left:0;right:0;height:100%;transform-style:preserve-3d}
.tri-mid{top:0;z-index:1}
.tri-top{bottom:100%;transform-origin:bottom center;transform:rotateX(-180deg);transition:transform .65s cubic-bezier(.45,.05,.2,1);z-index:3}
.tri-bot{top:100%;transform-origin:top center;transform:rotateX(180deg);transition:transform .65s cubic-bezier(.45,.05,.2,1);z-index:2}
.envelope-gate.unfold1 .tri-bot{transform:rotateX(0)}
.envelope-gate.unfold2 .tri-top{transform:rotateX(0)}
.envelope-gate.unfold1 .tri{transform:translate(-50%,-50%) translateY(-18%)}
.envelope-gate.unfold2 .tri{transform:translate(-50%,-50%)}
.tri-face,.tri-back{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;display:grid;place-content:center;justify-items:center;gap:6px;text-align:center;color:#161729}
.tri-face{background:#fbf7ee}
.tri-back{background:#f1e9d8;transform:rotateX(180deg)}
.tri-mid .tri-face{box-shadow:0 22px 40px rgba(0,0,0,.45)}
.tri-face b{font:600 italic clamp(40px,9vw,60px)/1 'Cormorant Garamond',serif;letter-spacing:3px}
.tri-face small{font:600 9px 'DM Sans',sans-serif;letter-spacing:2.5px;text-transform:uppercase;color:#525b8b}
.tri-sig .hw{height:34px;color:#161729}
/* creases + worn edges */
.tri-top .tri-face{box-shadow:inset 0 -6px 8px -6px rgba(60,40,20,.35)}
.tri-bot .tri-face{box-shadow:inset 0 6px 8px -6px rgba(60,40,20,.35),0 22px 40px rgba(0,0,0,.45)}
.tri-mid .tri-face::before,.tri-mid .tri-face::after{content:"";position:absolute;left:0;right:0;height:3px}
.tri-mid .tri-face::before{top:0;background:linear-gradient(rgba(0,0,0,.18),rgba(255,255,255,.7))}
.tri-mid .tri-face::after{bottom:0;background:linear-gradient(rgba(255,255,255,.7),rgba(0,0,0,.18))}
.tri-face{background-image:radial-gradient(ellipse at 50% 50%,transparent 60%,rgba(140,110,70,.14) 100%)}
.tri::after{content:"";position:absolute;inset:-100% 0;border-radius:2px;box-shadow:inset 0 0 18px rgba(120,90,50,.28);opacity:0;transition:opacity .6s;pointer-events:none}
.envelope-gate.unfold2 .tri::after{opacity:1;transition-delay:.5s}

/* creamier envelope + card */
.env-back{background:linear-gradient(160deg,#ead9b4,#dcc59a)!important}
.env-front{background:
 linear-gradient(to top right,#efe0bf 50%,transparent 50.2%) left bottom/50% 100% no-repeat,
 linear-gradient(to top left,#e9d8b4 50%,transparent 50.2%) right bottom/50% 100% no-repeat!important}
.env-flap{background:linear-gradient(180deg,#f2e4c4,#e6d3ac)!important}
.env-folded{background:linear-gradient(#f4e9cf,#ecdfc0)!important}
.tri-face{background-color:#f4e9cf!important}
.tri-back{background:#eadcbb!important}
/* organic paper grain on envelope + card */
.env-back,.env-flap,.env-folded,.tri-face,.tri-back{background-image:url(grain.webp),var(--pg,none)!important}
.env-back{--pg:linear-gradient(160deg,#ead9b4,#dcc59a)}
.env-flap{--pg:linear-gradient(180deg,#f2e4c4,#e6d3ac)}
.env-folded{--pg:linear-gradient(#f4e9cf,#ecdfc0)}
.env-back,.env-flap,.env-folded,.tri-face,.tri-back{background-size:256px,cover!important}
.env-front{position:absolute}.env-front::before{content:"";position:absolute;inset:0;background:url(grain.webp) 0 0/256px;-webkit-mask:linear-gradient(to top right,#000 50%,transparent 50.2%) left bottom/50% 100% no-repeat,linear-gradient(to top left,#000 50%,transparent 50.2%) right bottom/50% 100% no-repeat;mask:linear-gradient(to top right,#000 50%,transparent 50.2%) left bottom/50% 100% no-repeat,linear-gradient(to top left,#000 50%,transparent 50.2%) right bottom/50% 100% no-repeat}
.tri-face{background-image:url(grain.webp),radial-gradient(ellipse at 50% 50%,transparent 60%,rgba(140,110,70,.14) 100%)!important;background-size:256px,cover!important}
/* a few soft wrinkles */
.tri-face{background-image:url(grain.webp),url(wrinkle.webp),radial-gradient(ellipse at 50% 50%,transparent 60%,rgba(140,110,70,.14) 100%)!important;background-size:256px,cover,cover!important}
.tri-top .tri-face{background-position:0 0,center top,center}.tri-mid .tri-face{background-position:0 0,center 45%,center}.tri-bot .tri-face{background-position:0 0,center bottom,center}
.env-back,.env-flap{background-image:url(grain.webp),url(wrinkle.webp),var(--pg,none)!important;background-size:256px,cover,cover!important}
.tri-face{background-blend-mode:normal}.tri-face::after{content:none}
/* ===== Bri's pick: crumpled envelope + letter slides out ===== */
.env-letter{display:grid!important;opacity:1!important}
.env-back,.env-flap,.env-letter{background-image:url(paper-hd.jpg)!important;background-size:cover!important;background-blend-mode:multiply!important}
.env-back{background-color:#e6d3ac!important}
.env-flap{background-color:#eedcb8!important}
.env-letter{background-color:#f4e9cf!important}
.env-front::before{background:url(paper-hd.jpg) center/cover!important;mix-blend-mode:multiply;opacity:.9}
.env-front{background:
 linear-gradient(to top right,#ebdbb8 50%,transparent 50.2%) left bottom/50% 100% no-repeat,
 linear-gradient(to top left,#e5d3ad 50%,transparent 50.2%) right bottom/50% 100% no-repeat!important}
.envelope-gate.open .env-letter{transform:translateY(-62%)!important;transition:transform .9s cubic-bezier(.2,.8,.2,1) .45s!important}
.env-letter{opacity:0!important;transition:opacity .2s .35s,transform .9s cubic-bezier(.2,.8,.2,1) .45s!important}.envelope-gate.open .env-letter{opacity:1!important}
/* ---- mobile layout fix ---- */
img{content-visibility:visible!important}
@media(max-width:750px){
 header{padding:10px 16px!important;gap:10px}
 .wordmark{font-size:17px!important}
 .top-actions{gap:8px!important}
 .top-link{font-size:10px!important;letter-spacing:1px!important;padding:8px 2px!important}
 .top-link.pill{padding:8px 12px!important;min-height:34px;box-shadow:2px 2px 0 #525b8b}
 .env-letter{inset:7% 5% 9%!important}
 .env-letter b{font-size:34px!important}
 .env-letter small{font-size:7px!important;letter-spacing:1.6px!important}
 .env-sig{height:24px!important}
 .visit{display:block!important;padding-bottom:40px!important}
 .visit .playing-card{position:relative!important;margin:36px auto 0!important;right:auto!important;left:auto!important;top:auto!important;width:min(260px,72vw)!important;transform:rotate(4deg)!important}
 .visit .button.directions{width:auto!important;max-width:none}
 footer .credit{border-bottom:0;text-decoration:underline}
 footer{font-size:10px}
}

/* Bri: mobile hero full-frame, info overlaps jacket, CTA bar at bottom of screen */
@media(max-width:750px){
 .hero{height:calc(100svh - 52px - 58px)!important;min-height:520px;overflow:hidden}
 .hero-info{left:auto!important;right:14px!important;top:auto!important;bottom:18px!important;width:auto!important;background:rgba(22,23,41,.82)!important;padding:10px 12px!important;display:grid!important;grid-template-columns:1fr!important;transform:rotate(-3deg)!important;border:0!important}
}
@media (prefers-reduced-motion:reduce){.env-letter,.env-flap,.env-stitch{transition-duration:.01s!important}}

/* ===== round: smooth letter, mobile spacing, realistic playing card ===== */
/* letter: smooth cardstock in the border cream, envelope stays crumpled */
.env-letter{background-image:url(grain.webp)!important;background-size:256px!important;background-color:#ece0c4!important;box-shadow:0 3px 10px rgba(0,0,0,.18),inset 0 0 0 12px #ece0c4,inset 0 0 0 13px #b9a983!important}
@media(max-width:750px){
 .env-letter b{font-size:44px!important}
 .env-letter small{font-size:9px!important;letter-spacing:2px!important}
 .env-sig{height:30px!important}
 .env-letter{inset:5% 4% 7%!important}
 /* breathing room between sections */
 .gallery,.prints,.visit,.book{padding-top:72px!important;padding-bottom:72px!important}
 .manifesto{padding-top:64px!important;padding-bottom:64px!important}
 .closing{padding-top:44px!important;padding-bottom:44px!important}
 .see-all{margin-top:20px!important}
 /* playing card: big, tilted, bleeding off the right like Bri's reference */
 .visit{position:relative;overflow:hidden;min-height:540px}
 .visit .visit-copy{position:relative;z-index:2;max-width:56%}
 .visit .button.directions{width:auto!important;padding:14px 18px!important;font-size:11px!important}
 .visit .playing-card{position:absolute!important;margin:0!important;right:-58px!important;left:auto!important;top:110px!important;width:250px!important;transform:rotate(-14deg)!important}
}
.playing-card{background:#f6ecd6 url(grain.webp) 0 0/220px!important;border-radius:16px!important;
 box-shadow:0 1px 0 rgba(255,255,255,.7) inset,0 0 0 1px rgba(120,100,70,.18),0 2px 3px rgba(40,30,20,.18),0 18px 30px -6px rgba(40,30,20,.35),0 40px 60px -20px rgba(22,23,41,.35)!important}
.playing-card::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(125deg,rgba(255,255,255,.45),transparent 35%,transparent 65%,rgba(0,0,0,.06))}
/* shop: nothing clipped at top; photos framed from the top */
.shop-hero{padding-top:56px!important}
.ph img{object-position:50% 20%}
@media(max-width:750px){
 .visit{min-height:600px}
 .visit .playing-card{width:230px!important;aspect-ratio:5/7;height:auto!important;right:-34px!important;top:150px!important;transform:rotate(18deg)!important;padding:30px 20px!important;display:flex!important;flex-direction:column;justify-content:center}
 .visit .visit-copy{max-width:52%}
 .visit .button.directions{position:relative;z-index:3}
}
