@font-face{
  font-family:"Saints Display";
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url("fonts/anton-latin.woff2") format("woff2");
}

:root{
  /* Self-hosted blocky display face — identical on Android, iOS and desktop.
     Impact is not installed on Android, so we never rely on it for the look. */
  --font-display:"Saints Display", Impact, "Haettenschweiler", "Arial Narrow Bold", sans-serif-condensed, sans-serif;
}

*{
  box-sizing:border-box;
}

html{
  scrollbar-gutter:stable;
}

body{
  margin:0;
  font-family:Courier, "Courier New", monospace;
  overflow:hidden;
}

body.page{
  overflow-x:hidden;
  overflow-y:auto;
  min-height:100vh;
  padding-bottom:48px;
  background-color:#111;
  background-image:
    linear-gradient(to bottom, rgba(0,0,0,0.38), rgba(0,0,0,0.62)),
    url("images/homepage-saint.avif");
  background-position:center center, center center;
  background-repeat:no-repeat, no-repeat;
  background-size:100% 100%, cover;
  background-attachment:scroll, scroll;
}

body.page.page--hero-alt{
  background-image:
    linear-gradient(to bottom, rgba(0,0,0,0.38), rgba(0,0,0,0.62)),
    url("images/pages-saint.avif");
}

/* FULLSCREEN HERO */
.hero{
  position:relative;
  width:100%;
  height:100vh;
  overflow:hidden;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  background:
    linear-gradient(to bottom, rgba(0,0,0,0.16), rgba(0,0,0,0.56)),
    url("images/homepage-saint.avif") center center/cover no-repeat;
}

.hero.hero--inner{
  height:auto;
  min-height:100vh;
  min-height:100svh;
  overflow:visible;
  background:none;
  align-items:flex-end;
  padding-top:100px;
  padding-bottom:48px;
}

/* MENU */
.menu-wrap{
  position:absolute;
  top:28px;
  left:28px;
  z-index:20;
}

.menu-button{
  background:rgba(255,255,255,0.95);
  border:2px solid #000;
  padding:12px 16px;
  font-size:14px;
  text-transform:uppercase;
  cursor:pointer;
  font-family:Courier, monospace;
  font-weight:700;
}

.menu{
  display:none;
  margin-top:8px;
  background:#fff;
  border:2px solid #000;
  min-width:260px;
}

.menu-wrap:hover .menu,
.menu-wrap:focus-within .menu{
  display:block;
}

.menu a,
.menu-title{
  display:block;
  padding:13px 16px;
  border-bottom:1px solid #000;
  text-transform:uppercase;
  font-size:14px;
  color:#000;
  text-decoration:none;
}

.menu-sub a{
  padding-left:32px;
  font-size:13px;
}

.menu a:hover{
  background:#000;
  color:#fff;
}

/* HERO CONTENT */
.hero-content{
  position:relative;
  z-index:5;
  width:min(90vw, 100%);
  max-width:1500px;
  margin-inline:auto;
  padding-inline:clamp(12px, 4vw, 40px);
  box-sizing:border-box;
  text-align:center;
  padding-bottom:70px;
}

.hero--inner .hero-content{
  padding-bottom:56px;
}

.hero-content--page{
  text-align:left;
  max-width:42rem;
}

.hero-content--page .page-title-block{
  text-align:center;
  margin-bottom:22px;
}

.hero-content--page .page-title--sentence{
  text-transform:none;
  letter-spacing:-0.02em;
  font-size:clamp(1.65rem, 4.5vw, 2.5rem);
  line-height:1.15;
}

.hero-content--page .page-title--sentence .sunburnt{
  color:#d86a3d;
}

.hero-content--page .page-title--sentence .saints{
  color:#fff;
}

/* Mount for Stripe Checkout / Billing (populated when you integrate Stripe). */
.stripe-checkout-mount{
  margin-top:14px;
}

/* MASSIVE WORDMARK */
.wordmark{
  margin:0 auto 26px;
  width:100%;
  max-width:100%;
  font-family:var(--font-display);
  text-transform:uppercase;
  line-height:0.86;
  letter-spacing:-0.045em;
  text-shadow:0 18px 50px rgba(0,0,0,0.72);
}

/* Poster wordmark — each line scaled to fill the width, identical logic on
   every device. The sunburnt:saints size ratio is kept constant (~0.72) in
   both the vw values and the rem caps so the look stays proportional. */
.wordmark-main{
  display:block;
  max-width:100%;
  white-space:nowrap;
  -webkit-text-stroke:0.025em currentColor;
  paint-order:stroke fill;
}

.wordmark-main.sunburnt{
  font-size:clamp(3rem, 21vw, 13rem);
}

.wordmark-main.saints{
  font-size:clamp(4rem, 29vw, 18rem);
}

.sunburnt{
  color:#d86a3d;
}

.saints{
  color:#fff;
}

.publishing{
  display:block;
  margin-top:22px;
  max-width:100%;
  font-size:clamp(0.9rem, 1.45vw, 1.4rem);
  letter-spacing:1.05em;
  color:#fff;
  font-family:Courier, monospace;
  font-weight:700;
  padding-left:1.05em;
  box-sizing:border-box;
}

/* TAGLINE */
.tagline{
  max-width:1200px;
  width:max-content;

  margin:0 auto 34px;
  padding:11px 22px;

  font-size:clamp(1rem, 1.45vw, 1.35rem);
  line-height:1.3;

  color:#ffffff;
  font-weight:700;

  white-space:nowrap;

  text-shadow:
    0 3px 12px rgba(0,0,0,0.95),
    0 0 30px rgba(0,0,0,0.75);

  background:rgba(0,0,0,0.18);

  display:inline-block;

  border-radius:12px;
  border:2px solid rgba(255,255,255,0.22);
  box-shadow:0 8px 28px rgba(0,0,0,0.45);

  backdrop-filter:blur(2px);
}

/* BUTTONS */
.actions{
  display:flex;
  justify-content:center;
  gap:20px;
  flex-wrap:wrap;
}

.button{
  min-width:190px;
  padding:18px 34px;
  border-radius:999px;
  font-size:15px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.08em;
  border:2px solid #fff;
  transition:0.2s ease;
  text-decoration:none;
  display:inline-block;
  text-align:center;
  cursor:pointer;
  font-family:Courier, monospace;
}

/* SUBSCRIBE */
.button.primary{
  background:#d86a3d;
  border-color:#d86a3d;
  color:#000;
}

/* BRANDS */
.button.secondary{
  background:#000;
  border-color:#000;
  color:#fff;
}

.button:hover{
  transform:translateY(-2px);
}

/* INNER PAGE TITLE (under hero band) */
.page-title-block{
  text-align:center;
  margin:0 auto 10px;
  max-width:900px;
}

.page-title{
  margin:0 0 12px;
  font-family:var(--font-display);
  text-transform:uppercase;
  font-size:clamp(2rem, 6vw, 3.25rem);
  line-height:1.05;
  letter-spacing:-0.02em;
  color:#fff;
  text-shadow:0 10px 40px rgba(0,0,0,0.75);
}

.page-title .accent{
  color:#d86a3d;
}

/* Inner page body text — same visual language as homepage .tagline */
.prose--on-image{
  max-width:100%;
}

.prose--on-image p{
  margin:0 auto 14px;
  padding:11px 22px;
  max-width:100%;
  width:100%;
  font-size:clamp(1rem, 1.45vw, 1.35rem);
  line-height:1.3;
  color:#ffffff;
  font-weight:700;
  white-space:normal;
  text-shadow:
    0 3px 12px rgba(0,0,0,0.95),
    0 0 30px rgba(0,0,0,0.75);
  background:rgba(0,0,0,0.18);
  display:block;
  border-radius:12px;
  backdrop-filter:blur(2px);
  box-sizing:border-box;
}

.prose--on-image p:last-child{
  margin-bottom:0;
}

.prose--on-image .prose-subheading{
  margin:20px auto 14px;
  padding:11px 22px;
  max-width:100%;
  width:100%;
  font-family:var(--font-display);
  font-size:clamp(1.25rem, 2vw, 1.75rem);
  font-weight:400;
  text-transform:uppercase;
  letter-spacing:0.04em;
  line-height:1.15;
  color:#ffc8a4;
  text-shadow:
    0 3px 12px rgba(0,0,0,0.95),
    0 0 30px rgba(0,0,0,0.75);
  background:rgba(0,0,0,0.18);
  border-radius:12px;
  backdrop-filter:blur(2px);
  box-sizing:border-box;
}

.prose--on-image a{
  color:#ffc8a4;
  font-weight:700;
  text-decoration:underline;
  text-underline-offset:3px;
}

.prose--on-image a:hover{
  color:#fff;
}

/* Light panel for forms / Stripe over the image */
.page-panel{
  margin-top:26px;
  padding:22px 20px 26px;
  background:rgba(244,240,232,0.94);
  border:2px solid #000;
  color:#111;
}

.page-panel .form-heading,
.page-panel .form-hint,
.page-panel .field label,
.page-panel .form-status{
  color:#111;
  text-shadow:none;
}

.page-panel .form-hint{
  text-shadow:none;
}

.page-panel .form-stack{
  border-top-color:#000;
}

.page-panel .form-status{
  font-weight:700;
}

.page-intro--on-image{
  margin:0 auto 14px;
  padding:11px 22px;
  max-width:100%;
  width:100%;
  font-size:clamp(1rem, 1.45vw, 1.35rem);
  line-height:1.3;
  color:#ffffff;
  font-weight:700;
  text-shadow:
    0 3px 12px rgba(0,0,0,0.95),
    0 0 30px rgba(0,0,0,0.75);
  background:rgba(0,0,0,0.18);
  border-radius:12px;
  backdrop-filter:blur(2px);
  box-sizing:border-box;
}

.page-intro--on-image a{
  color:#ffc8a4;
  font-weight:700;
  text-decoration:underline;
  text-underline-offset:3px;
}

.page-intro--on-image a:hover{
  color:#fff;
}

/* MAIN CONTENT AREA (legacy; inner pages use prose on image + panels) */
.page-main{
  max-width:720px;
  margin:0 auto;
  padding:40px 24px 72px;
  color:#111;
  background:#f4f0e8;
  border-top:3px solid #000;
}

.page-main a{
  color:#b54d24;
  font-weight:700;
}

.page-main a:hover{
  text-decoration:none;
}

.prose{
  font-size:1rem;
  line-height:1.65;
}

.prose p{
  margin:0 0 1.1em;
}

.prose p:last-child{
  margin-bottom:0;
}

.prose .spaced-top{
  margin-top:1.5em;
}

.page-intro{
  font-size:1.05rem;
  font-weight:700;
  margin-bottom:1.25em;
}

/* FORMS */
.form-stack{
  margin-top:28px;
  padding-top:28px;
  border-top:2px solid #000;
  scroll-margin-top:100px;
}

.form-stack:first-of-type{
  margin-top:0;
  padding-top:0;
  border-top:none;
}

.form-heading{
  margin:0 0 10px;
  font-size:1.05rem;
  text-transform:uppercase;
  letter-spacing:0.06em;
}

.form-hint{
  margin:0 0 18px;
  font-size:0.95rem;
  line-height:1.5;
}

.field{
  margin-bottom:16px;
}

.field label{
  display:block;
  margin-bottom:6px;
  font-weight:700;
  font-size:0.9rem;
  text-transform:uppercase;
  letter-spacing:0.04em;
}

.field input,
.field textarea{
  width:100%;
  padding:12px 14px;
  font-family:Courier, monospace;
  font-size:15px;
  border:2px solid #000;
  border-radius:0;
  background:#fff;
}

.field textarea{
  min-height:140px;
  resize:vertical;
}

.form-actions{
  margin-top:20px;
}

.form-actions .button{
  border:2px solid #000;
  min-width:0;
}

.form-status{
  margin-top:14px;
  font-size:0.95rem;
  font-weight:700;
}

.form-status[hidden]{
  display:none;
}

/* Founder portrait — slight dim + gradient overlay to tame highlights */
.founder-photo{
  position:relative;
  display:block;
  margin:28px auto 0;
  padding:0;
  max-width:14rem;
  border-radius:12px;
  overflow:hidden;
  border:2px solid rgba(255,255,255,0.35);
  background:#111;
}

.founder-photo img{
  display:block;
  width:100%;
  height:auto;
  filter:brightness(0.88) contrast(1.02);
}

.founder-photo::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  pointer-events:none;
  background:linear-gradient(
    180deg,
    rgba(0,0,0,0.18) 0%,
    rgba(12,10,8,0.36) 45%,
    rgba(0,0,0,0.52) 100%
  );
}

/* SITE FOOTER — publishing colophon */
.site-footer{
  position:fixed;
  bottom:0;
  left:0;
  right:0;
  z-index:15;
  background:#000;
  border-top:2px solid #d86a3d;
  padding:10px 16px;
}

.site-footer__inner{
  margin:0;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:6px 10px;
  font-family:Courier, "Courier New", monospace;
  font-size:0.7rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.14em;
  color:rgba(255,255,255,0.85);
  text-align:center;
}

.site-footer__lead{
  color:#d86a3d;
}

.site-footer__sep{
  color:rgba(255,255,255,0.35);
  user-select:none;
}

.site-footer__link{
  color:#fff;
  text-decoration:none;
  letter-spacing:0.1em;
  transition:color 0.15s ease;
}

.site-footer__link:hover,
.site-footer__link:focus-visible{
  color:#ffc8a4;
  outline:none;
}

.site-footer__handle{
  display:none;
}

.site-footer__link:hover .site-footer__platform,
.site-footer__link:focus-visible .site-footer__platform{
  display:none;
}

.site-footer__link:hover .site-footer__handle,
.site-footer__link:focus-visible .site-footer__handle{
  display:inline;
}

.site-footer__copy{
  color:rgba(255,255,255,0.55);
  letter-spacing:0.08em;
}

.site-footer__credit{
  color:rgba(255,255,255,0.55);
  letter-spacing:0.08em;
  text-decoration:none;
  transition:color 0.15s ease;
}

.site-footer__credit:hover,
.site-footer__credit:focus-visible{
  color:#d86a3d;
  outline:none;
}

/* MOBILE */
@media(max-width:900px){

  .hero{
    align-items:flex-end;
  }

  .hero-content{
    padding-bottom:50px;
    width:100%;
    max-width:100%;
    transform:translateY(-40px);
    overflow-x:clip;
  }

  .hero:not(.hero--inner){
    height:100svh;
  }

  .hero:not(.hero--inner) .hero-content{
    padding-inline:0;
    width:100%;
    /* Clear the fixed footer, which wraps to ~3 lines on narrow screens. */
    padding-bottom:max(16vh, 124px);
    transform:none;
  }

  .hero:not(.hero--inner) .tagline,
  .hero:not(.hero--inner) .actions{
    margin-inline:clamp(12px, 2.5vw, 20px);
  }

  .hero--inner .hero-content{
    transform:none;
    padding-bottom:28px;
    padding-inline:clamp(10px, 3vw, 20px);
  }

  /* Wordmark uses the same poster sizing as desktop; mobile only widens the box. */
  .hero:not(.hero--inner) .wordmark{
    width:95vw;
    max-width:95vw;
    margin-inline:auto;
    margin-bottom:8px;
  }

  .hero:not(.hero--inner) .wordmark-main{
    width:95vw;
    max-width:95vw;
    margin-inline:auto;
    text-align:center;
  }

  .hero:not(.hero--inner) .publishing{
    width:95vw;
    max-width:95vw;
    margin-inline:auto;
    letter-spacing:0.72em;
    padding-left:0.72em;
    margin-top:12px;
    font-size:clamp(0.75rem, 3.2vw, 1.1rem);
    box-sizing:border-box;
  }

  .publishing{
    letter-spacing:clamp(0.2em, 3.5vw, 0.55em);
    padding-left:clamp(0.2em, 3.5vw, 0.55em);
    margin-top:16px;
    font-size:clamp(0.7rem, 3.1vw, 1.05rem);
  }

  .tagline{
    white-space:normal;
    width:auto;
    max-width:100%;
    display:block;
    margin-inline:auto;

    font-size:0.95rem;
    line-height:1.35;
    padding:12px 16px;

    background:rgba(0,0,0,0.42);
    border:2px solid rgba(255,255,255,0.32);
    border-radius:14px;
    box-shadow:0 10px 32px rgba(0,0,0,0.55);
  }

  .prose--on-image p{
    font-size:0.95rem;
    padding:10px 14px;
    max-width:92%;
  }

  .page-intro--on-image{
    font-size:0.95rem;
    padding:10px 14px;
    max-width:92%;
  }

  .actions{
    gap:14px;
  }

  .button{
    min-width:160px;
    padding:15px 24px;
  }

  /* Inner + homepage headings: heavier slab / poster feel on small screens */
  .page-title{
    font-size:clamp(1.75rem, 8.5vw, 3.75rem);
    line-height:0.92;
    letter-spacing:-0.01em;
    text-shadow:0 4px 22px rgba(0,0,0,0.88);
    max-width:100%;
    padding-inline:4px;
    overflow-wrap:break-word;
  }

  .hero-content--page .page-title--sentence{
    font-size:clamp(2rem, 10vw, 3rem);
    line-height:0.95;
    letter-spacing:0.05em;
    text-transform:uppercase;
    text-shadow:0 4px 22px rgba(0,0,0,0.88);
  }

  .page-panel .form-heading{
    font-size:1.05rem;
    letter-spacing:0.14em;
  }

  .menu-wrap{
    top:18px;
    left:18px;
  }

  .site-footer__inner{
    font-size:0.62rem;
    letter-spacing:0.1em;
    gap:5px 8px;
  }

  .site-footer__sep--copy{
    display:none;
  }

  .site-footer__copy,
  .site-footer__credit{
    flex-basis:100%;
  }

  .site-footer__sep--before-credit{
    display:none;
  }

}
