@font-face{font-family:system-serif;src:local("Times New Roman")}
:root{
  --red:#ff0000;
  --black:#050505;
  --paper:#f2efe8;
  --ink:#111;
  --line:rgba(127,127,127,.24);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Arial,Helvetica,sans-serif;
}
img{display:block;width:100%;height:100%;object-fit:cover}
a{color:inherit;text-decoration:none}
button{font:inherit}

/* ENTRY POSTER */
.home-page{
  margin:0;
  min-height:100vh;
  background:#000;
  color:#fff;
}
.home-page.is-locked{overflow:hidden}
.entry-screen{
  position:fixed;
  inset:0;
  z-index:100;
  background:#d80000;
  transition:visibility 0s linear .9s;
}
.entry-screen.is-hidden{
  visibility:hidden;
  pointer-events:none;
}
.entry-button{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  margin:0;
  padding:0;
  border:0;
  background:#d80000;
  cursor:pointer;
  overflow:hidden;
}
.entry-button img{
  width:100%;
  height:100%;
  object-fit:contain;
  background:#d80000;
  transition:transform 1.05s cubic-bezier(.18,.78,.2,1),opacity .85s ease,filter .85s ease;
}
.entry-prompt{
  position:absolute;
  left:50%;
  bottom:max(28px,calc(18px + env(safe-area-inset-bottom)));
  transform:translateX(-50%);
  z-index:2;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
  color:#fff;
  text-shadow:0 2px 12px rgba(0,0,0,.55);
}
.entry-prompt b{
  font-size:10px;
  letter-spacing:.22em;
  font-weight:500;
  white-space:nowrap;
  animation:promptPulse 1.8s ease-in-out infinite;
}
.entry-prompt i{
  display:block;
  width:1px;
  height:28px;
  background:#fff;
  transform-origin:top;
  animation:promptLine 1.8s ease-in-out infinite;
}
.entry-screen.is-leaving .entry-button img{
  transform:scale(1.045);
  opacity:0;
  filter:blur(4px);
}
.entry-screen.is-leaving .entry-prompt{
  animation:promptExit .55s forwards;
}
@keyframes promptPulse{50%{opacity:.45}}
@keyframes promptLine{50%{transform:scaleY(.4);opacity:.4}}
@keyframes promptExit{to{opacity:0;transform:translate(-50%,18px)}}

/* ARCHIVE HOME */
.archive-header{
  position:fixed;
  inset:0 0 auto 0;
  z-index:30;
  height:48px;
  padding:0 14px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  color:#fff;
  mix-blend-mode:difference;
  pointer-events:none;
  font-size:8px;
  letter-spacing:.17em;
}
.archive-header a{pointer-events:auto}
.archive-shell{
  height:100vh;
  height:100dvh;
  padding:54px 8px 22px;
  display:grid;
  grid-template-rows:minmax(0,1fr) auto;
  gap:7px;
  opacity:0;
  transform:scale(.985);
  filter:blur(8px);
  transition:opacity .9s ease,transform 1.05s cubic-bezier(.18,.78,.2,1),filter .9s ease;
}
.home-page.archive-entered .archive-shell{
  opacity:1;
  transform:none;
  filter:none;
}
.archive-grid{
  min-height:0;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  grid-template-rows:repeat(3,minmax(0,1fr));
  gap:5px;
}
.archive-tile,
.archive-logo{
  position:relative;
  min-width:0;
  min-height:0;
  overflow:hidden;
  background:#0b0b0b;
}
.archive-tile{isolation:isolate}
.archive-tile::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:3;
  background:linear-gradient(to top,rgba(0,0,0,.7),transparent 55%);
  transition:opacity .45s ease;
}
.archive-image,
.product-image{
  position:absolute;
  inset:0;
  transition:opacity .5s ease,transform .75s cubic-bezier(.2,.76,.2,1),filter .5s ease;
}
.archive-image{
  z-index:1;
  object-fit:cover;
}
.product-image{
  z-index:2;
  opacity:0;
  object-fit:contain;
  padding:5%;
  background:#0b0b0b;
  transform:scale(.94);
}
.archive-tile:hover .archive-image,
.archive-tile.is-preview .archive-image{
  opacity:0;
  filter:blur(3px);
  transform:scale(1.06);
}
.archive-tile:hover .product-image,
.archive-tile.is-preview .product-image{
  opacity:1;
  transform:scale(1);
}
.archive-tile:hover::after,
.archive-tile.is-preview::after{opacity:.12}
.tile-ui{
  position:absolute;
  inset:0;
  z-index:4;
  pointer-events:none;
}
.tile-ui span{
  position:absolute;
  top:10px;
  left:11px;
  color:#ddd;
  font-size:7px;
  letter-spacing:.16em;
  text-shadow:0 1px 8px rgba(0,0,0,.85);
}
.tile-ui strong{
  position:absolute;
  left:11px;
  bottom:9px;
  color:#fff;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(17px,1.5vw,26px);
  line-height:.9;
  font-weight:400;
  text-shadow:0 2px 10px rgba(0,0,0,.9);
}
.tile-ui small{
  position:absolute;
  right:10px;
  bottom:10px;
  color:var(--red);
  font-size:7px;
  letter-spacing:.15em;
  opacity:0;
  transform:translateY(5px);
  transition:.3s ease;
}
.archive-tile:hover .tile-ui small,
.archive-tile.is-preview .tile-ui small{
  opacity:1;
  transform:none;
}
.archive-logo{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:16px;
  background:#000;
}
.archive-logo::before{
  content:"";
  position:absolute;
  inset:7px;
  border:1px solid #1b1b1b;
}
.archive-logo img{
  position:relative;
  z-index:2;
  width:min(42%,132px);
  height:auto;
  object-fit:contain;
}
.archive-logo p{
  position:relative;
  z-index:2;
  margin:13px 0 0;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(15px,1.38vw,22px);
  line-height:.95;
}
.archive-logo span{
  position:relative;
  z-index:2;
  margin-top:10px;
  color:#666;
  font-size:7px;
  letter-spacing:.18em;
}
.archive-guide{
  display:flex;
  justify-content:space-between;
  color:#666;
  font-size:7px;
  letter-spacing:.17em;
}

/* DETAIL SHARED */
.detail-page{
  background:var(--paper);
  color:var(--ink);
}
.detail-dark,
.dispenser-page{
  background:#090909;
  color:#fff;
}
.detail-header{
  position:fixed;
  inset:0 0 auto 0;
  z-index:50;
  height:62px;
  padding:0 22px;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  border-bottom:1px solid var(--line);
  background:rgba(242,239,232,.86);
  backdrop-filter:blur(14px);
  font-size:8px;
  letter-spacing:.16em;
}
.detail-dark .detail-header,
.dispenser-page .detail-header{
  background:rgba(5,5,5,.86);
}
.detail-header>span{justify-self:end}
.detail-mark{width:50px}
.detail-mark img{height:auto}

.product-section{
  min-height:100vh;
  padding:94px 7vw 7vh;
  display:grid;
  grid-template-columns:minmax(330px,.8fr) minmax(480px,1.2fr);
  gap:5vw;
  align-items:center;
}
.product-copy{max-width:570px}
.eyebrow,.meta{
  font-size:8px;
  letter-spacing:.18em;
}
.hello{
  margin:28px 0 7px;
  font-size:9px;
  letter-spacing:.18em;
}
.product-copy h1,
.dispenser-copy h1{
  margin:0;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(54px,5.8vw,94px);
  line-height:.86;
  letter-spacing:-.045em;
  font-weight:400;
}
.product-copy h1 em{
  color:var(--red);
  font-style:normal;
}
.voice{
  margin:27px 0;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(20px,1.8vw,28px);
  line-height:1.34;
  font-style:italic;
}
.notes{
  margin:22px 0;
  padding-top:16px;
  border-top:1px solid var(--line);
}
.notes p{
  margin:0 0 8px;
  display:grid;
  grid-template-columns:72px 1fr;
  gap:10px;
  font-size:12px;
  line-height:1.45;
}
.notes b{
  color:#777;
  font-size:8px;
  letter-spacing:.14em;
  font-weight:500;
}
.product-hero{
  margin:0;
  height:68vh;
  min-height:500px;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  background:rgba(127,127,127,.07);
}
.product-hero img{
  width:88%;
  height:88%;
  object-fit:contain;
  animation:productIn .9s .1s both cubic-bezier(.2,.8,.2,1);
}
@keyframes productIn{
  from{opacity:0;transform:translateY(25px) scale(.96)}
  to{opacity:1;transform:none}
}

.brand-poster-section{
  padding:10vh 7vw;
  display:grid;
  grid-template-columns:minmax(480px,1.15fr) minmax(300px,.85fr);
  gap:6vw;
  align-items:center;
  border-top:1px solid var(--line);
}
.brand-poster-section figure{
  margin:0;
  height:78vh;
  min-height:620px;
  overflow:hidden;
  background:#111;
}
.brand-poster-section img{object-fit:contain}
.brand-poster-section span,
.photo-archive-section header>span{
  font-size:8px;
  letter-spacing:.18em;
}
.brand-poster-section h2,
.photo-archive-section h2{
  margin:22px 0 20px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(42px,4.6vw,72px);
  line-height:.93;
  font-weight:400;
}
.brand-poster-section p,
.photo-archive-section header p{
  max-width:390px;
  color:#777;
  font-size:14px;
  line-height:1.7;
}

.photo-archive-section{
  padding:11vh 7vw 13vh;
  border-top:1px solid var(--line);
}
.photo-archive-section header{
  display:grid;
  grid-template-columns:160px minmax(0,1fr) 330px;
  gap:5vw;
  align-items:end;
  margin-bottom:7vh;
}
.photo-archive-section header h2{margin:0}
.photo-archive-section header p{margin:0}
.photo-wall{
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:14px;
}
.photo-wall figure{
  position:relative;
  margin:0;
  min-height:360px;
  overflow:hidden;
  background:#171717;
}
.photo-wall .wide{grid-column:span 7;min-height:620px}
.photo-wall .standard{grid-column:span 5;min-height:430px}
.photo-wall .tall{grid-column:span 4;min-height:660px}
.photo-wall .poster{grid-column:span 4;min-height:660px}
.photo-wall img{
  transition:transform .75s ease;
}
.photo-wall figure:hover img{transform:scale(1.022)}
.photo-wall figcaption{
  position:absolute;
  left:11px;
  bottom:10px;
  color:#fff;
  font-size:7px;
  letter-spacing:.15em;
  text-shadow:0 1px 8px rgba(0,0,0,.9);
}
.next-page{
  padding:30px 7vw 36px;
  display:flex;
  justify-content:space-between;
  align-items:end;
  border-top:1px solid var(--line);
}
.next-page span{
  font-size:8px;
  letter-spacing:.18em;
}
.next-page a{
  color:var(--red);
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(30px,4vw,56px);
}

/* DISPENSER */
.dispenser-hero{
  min-height:100vh;
  padding:94px 7vw 7vh;
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:5vw;
  align-items:center;
}
.dispenser-copy>span{
  color:#777;
  font-size:8px;
  letter-spacing:.18em;
}
.dispenser-copy h1{margin:24px 0}
.dispenser-copy p{
  color:#aaa;
  font-size:17px;
  line-height:1.65;
}
.dispenser-copy a{
  display:inline-block;
  margin-top:24px;
  padding:13px 17px;
  border:1px solid #333;
  color:var(--red);
  font-size:8px;
  letter-spacing:.16em;
}
.dispenser-hero figure{
  margin:0;
  height:69vh;
  min-height:500px;
  background:#111;
}
.dispenser-hero img{object-fit:contain}
.dark-archive{background:#0d0d0d}

/* MOBILE */
@media (max-width:767px){
  .entry-button img{object-fit:cover}
  .entry-prompt b{font-size:9px}

  .archive-header{
    height:43px;
    padding:0 9px;
    font-size:6px;
    letter-spacing:.13em;
  }
  .archive-shell{
    height:100vh;
    height:100dvh;
    padding:47px 4px calc(5px + env(safe-area-inset-bottom));
    display:block;
  }
  .archive-grid{
    height:100%;
    grid-template-columns:repeat(3,minmax(0,1fr));
    grid-template-rows:repeat(3,minmax(0,1fr));
    gap:3px;
  }
  .archive-logo{padding:4px}
  .archive-logo::before{inset:4px}
  .archive-logo img{width:min(48%,56px)}
  .archive-logo p{
    margin-top:5px;
    font-size:clamp(8px,2.7vw,11px);
  }
  .archive-logo span{display:none}
  .tile-ui span{
    top:5px;
    left:5px;
    max-width:75%;
    overflow:hidden;
    white-space:nowrap;
    font-size:4.5px;
    letter-spacing:.1em;
  }
  .tile-ui strong{
    left:5px;
    right:5px;
    bottom:5px;
    font-size:clamp(9px,2.7vw,13px);
  }
  .tile-ui small{
    top:5px;
    right:5px;
    bottom:auto;
    font-size:4.5px;
  }
  .product-image{padding:2%}
  .archive-guide{display:none}

  .detail-header{
    height:54px;
    padding:env(safe-area-inset-top) 12px 0;
    font-size:6px;
    letter-spacing:.13em;
  }
  .detail-mark{width:42px}
  .product-section,
  .dispenser-hero{
    min-height:auto;
    padding:calc(72px + env(safe-area-inset-top)) 16px 38px;
    grid-template-columns:1fr;
    gap:24px;
  }
  .product-copy h1,
  .dispenser-copy h1{
    font-size:clamp(45px,14vw,62px);
  }
  .voice{margin:20px 0;font-size:19px}
  .notes{margin:18px 0}
  .notes p{
    grid-template-columns:58px 1fr;
    font-size:10px;
  }
  .product-hero,
  .dispenser-hero figure{
    height:45vh;
    min-height:310px;
    max-height:470px;
  }

  .brand-poster-section{
    padding:60px 16px 70px;
    grid-template-columns:1fr;
    gap:31px;
  }
  .brand-poster-section figure{
    height:auto;
    min-height:0;
    aspect-ratio:3/4;
  }
  .brand-poster-section h2,
  .photo-archive-section h2{
    font-size:clamp(34px,10.5vw,47px);
  }
  .brand-poster-section p,
  .photo-archive-section header p{
    font-size:12px;
    line-height:1.62;
  }

  .photo-archive-section{
    padding:62px 16px 72px;
  }
  .photo-archive-section header{
    display:block;
    margin-bottom:32px;
  }
  .photo-archive-section header>span{
    display:block;
    margin-bottom:14px;
  }
  .photo-archive-section header h2{margin:0}
  .photo-archive-section header p{margin-top:16px}
  .photo-wall{
    width:calc(100% + 32px);
    margin-left:-16px;
    padding:0 16px 12px;
    display:flex;
    gap:10px;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
  }
  .photo-wall::-webkit-scrollbar{display:none}
  .photo-wall figure,
  .photo-wall .wide,
  .photo-wall .standard,
  .photo-wall .tall,
  .photo-wall .poster{
    flex:0 0 78vw;
    width:78vw;
    min-height:0;
    height:auto;
    aspect-ratio:4/5;
    grid-column:auto;
    scroll-snap-align:start;
  }
  .next-page{
    padding:24px 16px calc(30px + env(safe-area-inset-bottom));
  }
  .next-page a{
    font-size:clamp(27px,9vw,40px);
  }
}

/* Short desktop screens */
@media (min-width:768px) and (max-height:720px){
  .archive-shell{padding-top:50px;padding-bottom:17px}
  .archive-logo img{width:86px}
  .archive-logo p{font-size:14px}
  .tile-ui strong{font-size:17px}
}


/* =========================================================
   V8.4.2 — DESKTOP FULL IMAGE FIT
   ========================================================= */
@media (min-width:768px){
  .archive-tile{
    background:#0a0a0a;
  }

  .archive-image{
    object-fit:contain !important;
    object-position:center !important;
    background:#0a0a0a;
    padding:3px;
  }

  .archive-tile::before{
    content:"";
    position:absolute;
    inset:0;
    z-index:0;
    background:
      radial-gradient(circle at center,rgba(255,255,255,.035),transparent 68%),
      #080808;
    pointer-events:none;
  }

  .archive-tile:hover .archive-image{
    transform:scale(1.025);
    filter:blur(2px) brightness(.68);
  }

  .archive-tile:hover .product-image{
    transform:scale(.96);
  }

  .brand-poster-section img,
  .product-hero img,
  .dispenser-hero img{
    object-fit:contain !important;
  }

  .photo-wall img{
    object-fit:contain;
    background:#111;
  }
}


/* =========================================================
   V8.4.3 — CLEAN REGIONAL PHOTO ARCHIVES
   ========================================================= */
.photo-wall{
  grid-auto-flow:dense;
}
.photo-wall .third{
  grid-column:span 4;
  min-height:520px;
}
.photo-wall .half{
  grid-column:span 6;
  min-height:560px;
}
@media (min-width:768px){
  .photo-wall img{
    object-fit:contain !important;
    object-position:center;
    background:#111;
  }
}
@media (max-width:767px){
  .photo-wall .third,
  .photo-wall .half{
    flex:0 0 78vw;
    width:78vw;
    min-height:0;
    height:auto;
    aspect-ratio:4/5;
    grid-column:auto;
  }
}


/* =========================================================
   V8.4.4 — INSTAGRAM ICON + LARGE LOCATION CTA
   ========================================================= */

/* Main archive Instagram icon */
.archive-header{
  mix-blend-mode:normal;
  background:#000;
}
.instagram-link{
  width:34px;
  height:34px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(255,255,255,.22);
  border-radius:50%;
  transition:
    background .25s ease,
    border-color .25s ease,
    transform .25s ease;
}
.instagram-link img{
  width:18px;
  height:18px;
  object-fit:contain;
}
.instagram-link:hover{
  background:var(--red);
  border-color:var(--red);
  transform:scale(1.06);
}

/* Large map/location button */
.dispenser-copy .location-cta{
  width:min(100%,520px);
  margin-top:34px;
  padding:24px 26px 22px;
  display:grid;
  grid-template-columns:1fr auto;
  gap:9px 24px;
  align-items:end;
  border:0;
  background:var(--red);
  color:#fff;
  box-shadow:0 18px 45px rgba(255,0,0,.18);
  transition:
    transform .3s ease,
    box-shadow .3s ease,
    background .3s ease;
}
.dispenser-copy .location-cta span{
  grid-column:1 / -1;
  color:rgba(255,255,255,.72);
  font-size:9px;
  letter-spacing:.18em;
}
.dispenser-copy .location-cta strong{
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(27px,2.6vw,42px);
  line-height:.92;
  font-weight:400;
  letter-spacing:-.025em;
}
.dispenser-copy .location-cta small{
  max-width:190px;
  justify-self:end;
  text-align:right;
  color:#fff;
  font-size:8px;
  line-height:1.5;
  letter-spacing:.12em;
}
.dispenser-copy .location-cta:hover{
  transform:translateY(-4px);
  background:#e60000;
  box-shadow:0 25px 58px rgba(255,0,0,.28);
}

@media (max-width:767px){
  .archive-header{
    padding-right:8px;
  }
  .instagram-link{
    width:30px;
    height:30px;
  }
  .instagram-link img{
    width:16px;
    height:16px;
  }

  .dispenser-copy .location-cta{
    width:100%;
    margin-top:26px;
    padding:20px 19px 18px;
    grid-template-columns:1fr;
    gap:8px;
  }
  .dispenser-copy .location-cta strong{
    font-size:clamp(30px,9vw,40px);
  }
  .dispenser-copy .location-cta small{
    max-width:none;
    justify-self:start;
    text-align:left;
    font-size:7px;
  }
}


/* =========================================================
   V8.4.6 — DISPENSER / SOMEWHERE / FIND US SEPARATION
   ========================================================= */

.machine-principles{
  margin-top:34px;
  border-top:1px solid #2c2c2c;
}
.machine-principles>div{
  display:grid;
  grid-template-columns:42px 1fr;
  gap:18px;
  padding:15px 0;
  border-bottom:1px solid #222;
}
.machine-principles b{
  color:var(--red);
  font-size:9px;
  letter-spacing:.16em;
  font-weight:500;
}
.machine-principles span{
  color:#ddd;
  font-size:11px;
  line-height:1.45;
  letter-spacing:.1em;
}

/* SOMEWHERE */
.somewhere-page{
  background:#070707;
  color:#fff;
}
.somewhere-page .detail-header{
  background:rgba(5,5,5,.86);
}
.somewhere-hero{
  min-height:100vh;
  padding:94px 7vw 7vh;
  display:grid;
  grid-template-columns:.82fr 1.18fr;
  gap:5vw;
  align-items:center;
}
.somewhere-copy>span,
.your-town-heading>span{
  color:#777;
  font-size:8px;
  letter-spacing:.18em;
}
.somewhere-copy h1{
  margin:25px 0 24px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(56px,6vw,96px);
  line-height:.86;
  letter-spacing:-.045em;
  font-weight:400;
}
.somewhere-lead{
  margin:0 0 24px;
  color:#fff;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(21px,2vw,30px);
  line-height:1.3;
}
.somewhere-body{
  max-width:520px;
  margin:0;
  color:#9b9b9b;
  font-size:15px;
  line-height:1.72;
}
.somewhere-hero figure{
  margin:0;
  height:72vh;
  min-height:520px;
  background:#111;
}
.somewhere-hero img{
  object-fit:contain;
}
.your-town-section{
  padding:11vh 7vw 13vh;
  border-top:1px solid #202020;
  background:#0d0d0d;
}
.your-town-heading{
  display:grid;
  grid-template-columns:150px minmax(0,1fr) 330px;
  gap:5vw;
  align-items:end;
}
.your-town-heading h2{
  margin:0;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(43px,4.8vw,75px);
  line-height:.92;
  font-weight:400;
}
.your-town-heading p{
  margin:0;
  color:#8e8e8e;
  font-size:14px;
  line-height:1.7;
}
.future-grid{
  margin-top:8vh;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
}
.future-grid article{
  min-height:240px;
  padding:24px;
  border:1px solid #252525;
  display:flex;
  flex-direction:column;
}
.future-grid article>span{
  color:var(--red);
  font-size:9px;
  letter-spacing:.16em;
}
.future-grid h3{
  margin:auto 0 12px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:30px;
  font-weight:400;
}
.future-grid p{
  margin:0;
  color:#888;
  font-size:12px;
  line-height:1.6;
}
.town-instagram-cta{
  margin-top:18px;
  padding:24px 26px;
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:24px;
  background:var(--red);
  color:#fff;
  transition:transform .3s ease,background .3s ease;
}
.town-instagram-cta:hover{
  transform:translateY(-4px);
  background:#e60000;
}
.town-instagram-cta span{
  font-size:9px;
  letter-spacing:.17em;
}
.town-instagram-cta strong{
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(30px,4vw,58px);
  font-weight:400;
  line-height:.9;
}

@media (max-width:767px){
  .machine-principles{
    margin-top:26px;
  }
  .machine-principles>div{
    grid-template-columns:34px 1fr;
    padding:13px 0;
  }

  .somewhere-hero{
    min-height:auto;
    padding:calc(72px + env(safe-area-inset-top)) 16px 40px;
    grid-template-columns:1fr;
    gap:28px;
  }
  .somewhere-copy h1{
    font-size:clamp(45px,14vw,62px);
  }
  .somewhere-lead{
    font-size:19px;
  }
  .somewhere-body{
    font-size:13px;
    line-height:1.65;
  }
  .somewhere-hero figure{
    height:48vh;
    min-height:330px;
  }
  .your-town-section{
    padding:62px 16px 72px;
  }
  .your-town-heading{
    display:block;
  }
  .your-town-heading h2{
    margin-top:17px;
    font-size:clamp(35px,10.5vw,48px);
  }
  .your-town-heading p{
    margin-top:18px;
    font-size:12px;
    line-height:1.62;
  }
  .future-grid{
    margin-top:42px;
    grid-template-columns:1fr;
  }
  .future-grid article{
    min-height:185px;
  }
  .town-instagram-cta{
    margin-top:12px;
    padding:20px;
    display:block;
  }
  .town-instagram-cta strong{
    display:block;
    margin-top:25px;
    font-size:38px;
  }
}


/* =========================================================
   V8.4.8.2 — ONLY TWO NEW WORLD-BUILDING CARDS
   ========================================================= */

/* WHY OFFLINE */
.philosophy-page{
  background:#d80000;
  color:#fff;
}
.philosophy-header{
  color:#fff;
  background:rgba(155,0,0,.82);
}
.philosophy-hero{
  min-height:100vh;
  padding:94px 7vw 7vh;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:6vw;
  align-items:center;
}
.philosophy-hero figure{
  margin:0;
  height:76vh;
  min-height:600px;
}
.philosophy-hero img{
  object-fit:contain;
}
.philosophy-copy>span,
.destination-copy>span,
.mission-board span{
  font-size:8px;
  letter-spacing:.18em;
}
.philosophy-copy h1,
.destination-copy h1{
  margin:25px 0 20px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(54px,6vw,96px);
  line-height:.86;
  letter-spacing:-.045em;
  font-weight:400;
}
.philosophy-lead{
  margin:0 0 24px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(25px,2.4vw,38px);
}
.philosophy-copy p{
  max-width:520px;
  font-size:15px;
  line-height:1.72;
}
.philosophy-copy strong{
  display:block;
  margin-top:34px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(29px,3vw,48px);
  font-weight:400;
}
.philosophy-points{
  padding:10vh 7vw 12vh;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
  background:#080808;
}
.philosophy-points article{
  min-height:250px;
  padding:25px;
  display:flex;
  flex-direction:column;
  border:1px solid #252525;
}
.philosophy-points span{
  color:var(--red);
  font-size:9px;
  letter-spacing:.16em;
}
.philosophy-points h2{
  margin:auto 0 14px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:30px;
  font-weight:400;
}
.philosophy-points p{
  margin:0;
  color:#888;
  font-size:12px;
  line-height:1.6;
}

/* FINAL DESTINATION */
.destination-page{
  background:#050505;
  color:#fff;
}
.destination-page .detail-header{
  color:#fff;
  background:rgba(5,5,5,.86);
}
.destination-hero{
  min-height:100vh;
  padding:94px 7vw 7vh;
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:6vw;
  align-items:center;
}
.destination-hero figure{
  margin:0;
  height:78vh;
  min-height:620px;
  background:#000;
}
.destination-hero img{
  object-fit:contain;
}
.destination-lead{
  margin:0 0 24px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(21px,2vw,30px);
  line-height:1.3;
}
.destination-copy p{
  max-width:490px;
  color:#a0a0a0;
  font-size:15px;
  line-height:1.72;
}
.mission-board{
  padding:10vh 7vw;
  display:grid;
  grid-template-columns:1fr 1fr auto;
  gap:5vw;
  align-items:end;
  border-top:1px solid #222;
  background:#0c0c0c;
}
.mission-board p{
  margin:15px 0 0;
  font-family:Georgia,"Times New Roman",serif;
  font-size:26px;
}
.mission-board strong{
  color:var(--red);
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(30px,4vw,58px);
  font-weight:400;
}
.planet-statement{
  padding:12vh 7vw 14vh;
  text-align:center;
}
.planet-statement p{
  margin:0 0 18px;
  color:#777;
  font-size:10px;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.planet-statement h2{
  margin:0;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(48px,7vw,110px);
  line-height:.9;
  font-weight:400;
}

/* Keep long card titles readable */
.archive-tile .tile-ui strong{
  max-width:80%;
}
.archive-tile[href="final-destination.html"] .tile-ui strong{
  font-size:clamp(13px,1.25vw,21px);
  line-height:.95;
}

@media (max-width:767px){
  .philosophy-hero,
  .destination-hero{
    min-height:auto;
    padding:calc(72px + env(safe-area-inset-top)) 16px 42px;
    grid-template-columns:1fr;
    gap:32px;
  }
  .philosophy-hero figure,
  .destination-hero figure{
    height:auto;
    min-height:0;
    aspect-ratio:3/4;
  }
  .philosophy-copy h1,
  .destination-copy h1{
    font-size:clamp(45px,14vw,63px);
  }
  .philosophy-copy p,
  .destination-copy p{
    font-size:13px;
    line-height:1.65;
  }
  .philosophy-points{
    padding:64px 16px 72px;
    grid-template-columns:1fr;
  }
  .philosophy-points article{
    min-height:185px;
  }
  .mission-board{
    padding:64px 16px 72px;
    grid-template-columns:1fr;
    gap:42px;
  }
  .mission-board strong{
    font-size:40px;
  }
  .planet-statement{
    padding:80px 16px 95px;
  }
  .planet-statement h2{
    font-size:clamp(43px,12vw,62px);
  }
  .archive-tile[href="final-destination.html"] .tile-ui strong{
    font-size:8px;
    line-height:.95;
    max-width:92%;
  }
  .archive-tile[href="manifesto.html"] .tile-ui strong{
    font-size:9px;
  }
}
