/* A Digital Frontier — the entire homepage is one Western journey. */
html{background:#282839;overflow-x:clip}
.frontier-home{background:#282839;color:#f9e4bc;overflow-x:clip}
.frontier-home #main.frontier-width{width:100%;max-width:none;margin:0}
.frontier-home .frontier-town,.frontier-home .frontier-ride{border:0;box-shadow:none;margin:0}
.frontier-home .frontier-town{min-height:100svh}
.frontier-home .town-world{height:max(790px,calc(100svh + 70px))}
.frontier-home .town-heading{top:clamp(30px,6vh,70px);left:clamp(20px,5vw,86px);z-index:18}
.frontier-home .town-heading h1{font-size:clamp(24px,3vw,46px);line-height:1.45;text-shadow:5px 5px 0 #302c39}
.frontier-home .town-heading>p:last-child{max-width:50ch}
.frontier-home .town-wayfinding{position:absolute;z-index:21;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px clamp(18px,4vw,60px);font:700 11px/1.5 'Courier New',monospace;letter-spacing:.12em;color:#ffdea7;background:linear-gradient(90deg,#533b40df,#49313ccc);border-top:3px solid #5b4343}
.frontier-home .town-wayfinding a{padding:8px 12px;background:#302b38;border:2px solid #edba79;color:#ffe1a5;text-decoration:none;box-shadow:3px 3px 0 #2c2530;white-space:nowrap}
.frontier-home .town-wayfinding a:hover{background:#71493e;color:#fff}
.frontier-home .town-mobile-hint{display:none}
.frontier-home .town-building{scroll-margin:30px}
.frontier-home .town-tumbleweed{position:absolute;z-index:9;bottom:59px;left:-28px;width:26px;height:26px;border:5px dotted #88583f;border-radius:45%;opacity:.55;pointer-events:none;animation:frontier-tumbleweed 22s linear infinite}
/* Stage the cowboy near the entrance, not the Homestead. Buildings and their labels must paint above the decorative rider. */
.frontier-home .town-horse{position:absolute;z-index:11;bottom:12px;left:11%;right:auto;width:84px;height:84px;pointer-events:none;filter:drop-shadow(4px 5px #57424b)}
.frontier-home .town-horse img{width:100%;height:100%;image-rendering:pixelated;animation:frontier-horse-bob 2s steps(2,end) infinite}
.frontier-home .town-cloud--one{animation:frontier-cloud-drift 38s linear infinite alternate}
.frontier-home .town-cloud--two{animation:frontier-cloud-drift 52s linear infinite alternate-reverse}
.frontier-home .frontier-ride.has-ride-motion{height:680svh;min-height:2600px}
.frontier-home .frontier-ride .ride-sticky{top:0;height:100svh;min-height:560px}
.frontier-home .ride-heading{top:clamp(25px,5vh,55px);left:clamp(19px,5vw,70px)}
.frontier-home .ride-heading h2{font-size:clamp(20px,2.7vw,34px)}
.frontier-home .ride-footer{bottom:26px}
.frontier-home .frontier-camp{position:relative;isolation:isolate;min-height:100svh;overflow:hidden;padding:clamp(55px,11vh,125px) clamp(18px,5vw,80px) 36px;background:linear-gradient(#211f36 0%,#322b43 43%,#74505a 75%,#a56c57 100%);color:#fff2d9}
.frontier-home .camp-night-sky{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.frontier-home .camp-moon{position:absolute;top:10%;right:12%;width:clamp(80px,11vw,170px);height:clamp(80px,11vw,170px);background:#eec58c;box-shadow:0 0 0 14px #eec58c10,0 0 0 30px #eec58c0b;clip-path:polygon(18% 0,82% 0,82% 8%,93% 8%,93% 18%,100% 18%,100% 82%,93% 82%,93% 93%,82% 93%,82% 100%,18% 100%,18% 93%,7% 93%,7% 82%,0 82%,0 18%,7% 18%,7% 8%,18% 8%)}
.frontier-home .camp-star{position:absolute;width:6px;height:6px;background:#f3d6ac;box-shadow:8px 0 #f3d6ac,-8px 0 #f3d6ac,0 8px #f3d6ac,0 -8px #f3d6ac}
.frontier-home .camp-star--one{top:14%;left:10%}.frontier-home .camp-star--two{top:24%;left:36%;transform:scale(.5)}.frontier-home .camp-star--three{top:9%;left:67%;transform:scale(.65)}.frontier-home .camp-star--four{top:36%;left:80%;transform:scale(.45)}.frontier-home .camp-star--five{top:33%;left:21%;transform:scale(.65)}
.frontier-home .camp-ridge{position:absolute;left:-5%;width:110%;bottom:0;height:33%;background:#483d4b;clip-path:polygon(0 62%,9% 62%,9% 39%,18% 39%,18% 20%,28% 20%,28% 53%,39% 53%,39% 26%,49% 26%,49% 66%,64% 66%,64% 29%,74% 29%,74% 48%,88% 48%,88% 24%,100% 24%,100% 100%,0 100%)}
.frontier-home .camp-ridge--near{height:22%;background:#342e3e;transform:scaleX(-1);opacity:.97}
.frontier-home .camp-story{position:relative;z-index:2;max-width:650px;text-shadow:3px 4px #282532}
.frontier-home .camp-story h2{margin:17px 0 20px;font:400 clamp(22px,4vw,48px)/1.55 'Frontier Pixel',monospace;letter-spacing:-.05em}
.frontier-home .camp-story h2 span{color:#f1c582}
.frontier-home .camp-story>p:last-child{max-width:48ch;font:700 14px/1.8 'Courier New',monospace}
.frontier-home .campfire{position:absolute;right:clamp(24px,13vw,230px);top:36%;width:160px;height:150px;pointer-events:none;filter:drop-shadow(0 10px 28px #f2a45b44)}
.frontier-home .campfire-glow{position:absolute;inset:50px -35px -15px;background:#f4b26833;border-radius:50%;filter:blur(18px)}
.frontier-home .campfire-flame{position:absolute;bottom:35px;left:62px;width:44px;height:85px;background:#ffd582;clip-path:polygon(50% 0,75% 25%,69% 44%,95% 55%,78% 100%,10% 100%,0 59%,30% 34%);animation:frontier-flame .6s steps(2,end) infinite alternate}
.frontier-home .campfire-flame--back{left:46px;bottom:39px;background:#d56e4e;height:105px;width:62px;animation-delay:-.3s}
.frontier-home .campfire-flame--front{background:#ffd38a}
.frontier-home .campfire-log{position:absolute;bottom:19px;left:25px;width:110px;height:18px;background:#5c3d3a;border:5px solid #302b34;transform:rotate(15deg)}
.frontier-home .campfire-log--two{transform:rotate(-14deg);background:#88543d}
.frontier-home .camp-map-anchor{position:relative;z-index:3;margin:clamp(85px,15vh,190px) auto 0;width:min(760px,100%);scroll-margin-top:15vh}
.frontier-home .trail-ledger{background:#80543f;border:7px solid #3c3036;box-shadow:10px 11px 0 #2c2836,inset 0 7px #b7825b;color:#f9e6bd}
.frontier-home .trail-ledger summary{cursor:pointer;display:flex;align-items:center;flex-direction:column;gap:9px;text-align:center;padding:25px 16px 29px;list-style:none}
.frontier-home .trail-ledger summary::-webkit-details-marker{display:none}
.frontier-home .trail-ledger summary:hover{background:#8f5d45}
.frontier-home .trail-ledger summary:focus-visible{outline:3px solid #ffdb9b;outline-offset:-8px}
.frontier-home .trail-ledger__eyebrow{font:700 10px/1.6 'Courier New',monospace;letter-spacing:.2em;color:#ffe0ac}
.frontier-home .trail-ledger summary strong{font:400 clamp(14px,2vw,22px)/1.6 'Frontier Pixel',monospace}
.frontier-home .trail-ledger summary strong span{color:#f3d291}
.frontier-home .trail-ledger[open] summary strong span{display:inline-block;transform:rotate(45deg)}
.frontier-home .trail-ledger summary small{font:700 12px/1.7 'Courier New',monospace}
.frontier-home .trail-ledger__inside{padding:26px clamp(16px,3vw,34px) 38px;background:#e6c398;color:#332c31;border-top:7px solid #3c3036}
.frontier-home .trail-ledger__inside>p{margin:0 0 23px;font:700 13px/1.7 'Courier New',monospace}
.frontier-home .trail-route-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 30px}
.frontier-home .trail-route-group h3{font:400 12px/1.6 'Frontier Pixel',monospace;padding-bottom:10px;border-bottom:4px solid #906347;margin-bottom:9px}
.frontier-home .trail-route-group ul{list-style:none;margin:0;padding:0}
.frontier-home .trail-route-group li{margin:0}
.frontier-home .trail-route-group a{display:block;padding:9px 5px;color:#332c31;border-bottom:1px dashed #9c7758;line-height:1.35}
.frontier-home .trail-route-group a:hover{background:#f6d7a6;color:#743a30}
.frontier-home .trail-route-group a:focus-visible{outline:3px solid #7d352f;outline-offset:1px}
.frontier-home .trail-route-group a strong{display:block;font:700 14px/1.5 'Courier New',monospace}
.frontier-home .trail-route-group a small{font:700 10px/1.3 'Courier New',monospace;color:#705643}
.frontier-home .camp-trail-end{display:flex;justify-content:space-between;gap:14px;align-items:center;flex-wrap:wrap;position:relative;z-index:2;margin:50px 0 18px;font:700 11px/1.8 'Courier New',monospace;letter-spacing:.08em}
.frontier-home .camp-trail-end a{color:#ffdfaa;text-decoration:underline;text-underline-offset:5px}
.frontier-home .camp-records{position:relative;z-index:2;display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:10px 19px;padding-top:15px;border-top:3px solid #d99a7659;font:700 10px/1.5 'Courier New',monospace;letter-spacing:.07em}
.frontier-home .camp-records a{color:#f0d8bd;text-decoration:underline;text-decoration-color:#edba7970;text-underline-offset:5px}
.frontier-home .camp-records a:hover{color:white}
@keyframes frontier-tumbleweed{0%{transform:translateX(-40px) rotate(0);opacity:0}8%,80%{opacity:.5}100%{transform:translateX(110vw) rotate(940deg);opacity:0}}
@keyframes frontier-cloud-drift{0%{translate:-15px 0}100%{translate:45px 0}}
@keyframes frontier-horse-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
@keyframes frontier-flame{from{transform:translateY(0) scaleX(1)}to{transform:translateY(-6px) scaleX(.9)}}
@media(max-width:1100px){.frontier-home .town-world{height:max(790px,calc(100svh + 70px))}.frontier-home .town-frame{overflow-x:auto}}
@media(max-width:700px){
.frontier-home .frontier-town,.frontier-home .frontier-ride{border:0;box-shadow:none}
.frontier-home .town-heading{position:relative;top:auto;left:auto;padding:27px 18px 25px;background:#292b40}
.frontier-home .town-heading h1{font-size:clamp(21px,6vw,32px)}
.frontier-home .town-world{height:510px;min-width:940px}
.frontier-home .town-wayfinding{position:relative;padding:12px 15px;gap:7px;flex-wrap:wrap;font-size:9px;background:#493341;min-height:60px}
.frontier-home .town-mobile-hint{display:inline}.frontier-home .town-desktop-hint{display:none}
.frontier-home .town-wayfinding a{font-size:9px;padding:7px}
.frontier-home .town-horse{bottom:12px;left:11%;right:auto;width:82px;height:82px}
.frontier-home .frontier-ride.has-ride-motion{height:640svh;min-height:2400px}
.frontier-home .has-ride-motion .ride-sticky{height:100svh;min-height:530px}
.frontier-home .ride-markers{top:36%;right:4%;width:63%}
.frontier-home .frontier-camp{padding:55px 17px 30px}
.frontier-home .camp-story h2{font-size:clamp(20px,7vw,29px)}
.frontier-home .camp-story>p:last-child{font-size:12px;max-width:33ch}
.frontier-home .campfire{top:31%;right:6%;transform:scale(.66);transform-origin:top right}
.frontier-home .camp-moon{right:6%;top:11%;width:78px;height:78px}
.frontier-home .camp-map-anchor{margin-top:210px}
.frontier-home .trail-route-groups{grid-template-columns:1fr}
.frontier-home .trail-ledger summary{padding:22px 13px}
.frontier-home .trail-ledger__inside{padding:22px 15px}
.frontier-home .camp-trail-end{font-size:9px}
.frontier-home .camp-records{justify-content:flex-start;font-size:9px;gap:11px 14px}
}
@media(hover:none){.frontier-home .town-building__destination{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.frontier-home .town-tumbleweed,.frontier-home .town-horse img,.frontier-home .town-cloud,.frontier-home .campfire-flame{animation:none!important}}

/* Low-priority site details stay in a fold-out camp ledger, never a page footer. */
.frontier-home .camp-records{display:block;border-top:3px solid #d99a7659;padding-top:14px}
.frontier-home .camp-records summary{display:inline-block;cursor:pointer;list-style:none;color:#f0d8bd;font:700 10px/1.6 'Courier New',monospace;letter-spacing:.12em;padding:8px 2px}
.frontier-home .camp-records summary::-webkit-details-marker{display:none}
.frontier-home .camp-records summary:hover{text-decoration:underline;text-underline-offset:5px}
.frontier-home .camp-records summary:focus-visible{outline:3px solid #ffdb9b;outline-offset:4px}
.frontier-home .camp-records[open] summary span{display:inline-block;transform:rotate(45deg)}
.frontier-home .camp-records nav{display:flex;flex-wrap:wrap;gap:12px 20px;padding:12px 0}

/* The open range needs room to breathe. Signs approach, are readable for a short
   stretch, and move behind the rider. No stationary billboards or overlapping stops. */
.frontier-home .has-ride-motion .ride-sign{
  transform:translate3d(var(--sign-shift,76vw),0,0);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:none;
  will-change:transform,opacity;
}
.frontier-home .has-ride-motion .ride-sign.is-current{
  transform:translate3d(var(--sign-shift,0vw),0,0);
  opacity:var(--sign-opacity,1);
  visibility:visible;
  pointer-events:auto;
}
/* The old focus-visible fallback must not resurrect a passed waypoint. */
.frontier-home .has-ride-motion .ride-sign:focus-within:not(.is-current){
  transform:translate3d(var(--sign-shift,-115vw),0,0);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}
/* The sky turns a little darker as town falls behind. Text and links stay above it. */
.frontier-home .has-ride-motion .ride-sticky::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:5;
  background:linear-gradient(180deg,#151a31,#292940 56%,#422d3d);
  opacity:calc(var(--ride-progress) * .26);
  pointer-events:none;
}
@media(prefers-reduced-motion:reduce){
  .frontier-home .has-ride-motion .ride-sign{transition:none!important}
}

/* Mobile Main Street controls complement swiping rather than replacing it. */
.frontier-home .town-rail{display:none}
.frontier-home .town-frame:focus-visible{outline:3px solid #ffdc9d;outline-offset:-4px}
@media(max-width:1100px){
  .frontier-home .town-rail:not([hidden]){
    display:flex;align-items:center;justify-content:center;gap:15px;
    min-height:54px;padding:7px 12px;
    color:#ffe1aa;background:#332b3d;border-top:2px solid #61454b
  }
  .frontier-home .town-rail button{
    flex:0 0 47px;min-height:38px;
    border:2px solid #d5ac78;color:#ffe1aa;background:#493644;
    font-size:20px;line-height:1.1
  }
  .frontier-home .town-rail button:disabled{opacity:.32;cursor:default}
  .frontier-home .town-rail span{font:700 11px/1.5 "Courier New",monospace;text-transform:uppercase;letter-spacing:.1em;text-align:center;min-width:140px}
}
@media(max-width:390px){
  .frontier-home .town-rail:not([hidden]){gap:8px}
  .frontier-home .town-rail span{font-size:10px;min-width:130px}
}

/* YUMA / SONORAN DESERT — open space, jagged Gila-style ridges, sandy washes.
   Preserve a dedicated foreground lane below every clickable storefront. */
.frontier-home .town-street{height:174px}
.frontier-home .town-buildings{bottom:174px}
@media(min-width:1440px){
  .frontier-home .town-street{height:178px}
  .frontier-home .town-buildings{bottom:178px}
}
@media(max-width:700px){
  .frontier-home .town-street{height:174px}
  .frontier-home .town-buildings{bottom:174px}
}
/* Street rider sits entirely below destination placards; never buried in
   buildings nor covering link labels. Pointer access remains untouched. */
.frontier-home .town-horse img{transform-origin:50% 100%}

/* Wide Yuma skies, layered rugged ranges and a dusty, low Sonoran floor. */
.frontier-home .ride-sticky{
  background:linear-gradient(180deg,#27283f 0%,#4f3a50 27%,#a75d5b 55%,#e5a16f 76%,#bd795a 100%);
}
.frontier-home .ride-mesa{display:none}
.frontier-home .ride-yuma-ranges{
  position:absolute;left:-5%;bottom:17%;height:48%;width:115%;
  opacity:.98;pointer-events:none;
  transform:translateX(calc(var(--ride-progress) * -6%));
  image-rendering:pixelated;
}
.frontier-home .ride-sun{
  top:25%;right:9%;width:130px;height:130px;
  background:#f8c782;box-shadow:0 0 0 12px #ffcf8240,0 0 0 30px #ffcf821b;
}
.frontier-home .ride-land{
  background:linear-gradient(to bottom,#a9745c 0 8%,#c28c65 8% 31%,#c89970 31% 100%);
}
.frontier-home .ride-yuma-wash{
  position:absolute;inset:0;width:100%;height:100%;
  opacity:.8;pointer-events:none;image-rendering:pixelated;
}
.frontier-home .ride-ocotillo{
  position:absolute;bottom:56%;width:62px;height:112px;z-index:2;
  opacity:.9;pointer-events:none;
  transform:translateX(calc(var(--ride-progress) * -16vw));
}
.frontier-home .ride-ocotillo--one{left:8%}
.frontier-home .ride-ocotillo--two{left:88%;transform:translateX(calc(var(--ride-progress) * -28vw)) scale(.74);opacity:.62}
.frontier-home .ride-cactus--one{opacity:.38;transform:translateX(calc(var(--ride-progress) * -65vw)) scale(.7)}
.frontier-home .ride-cactus--two{opacity:.25;transform:translateX(calc(var(--ride-progress) * -45vw)) scale(.54)}
.frontier-home .ride-heading{
  top:clamp(20px,4vh,45px);left:clamp(18px,4vw,65px);
  right:auto;width:min(540px,55%);
  max-width:min(540px,55%);padding:18px 22px;
  background:linear-gradient(90deg,#252439e6,#30273dca);
  border-left:4px solid #e5aa78;
  text-shadow:2px 2px 0 #211d30;
  box-shadow:6px 6px 0 #36253a33;
  overflow-wrap:break-word;
}
.frontier-home .ride-heading p{max-width:48ch;line-height:1.7}
@media(max-width:700px){
  .frontier-home .ride-sun{top:25%;right:5%;width:94px;height:94px;box-shadow:0 0 0 9px #ffcf8236,0 0 0 21px #ffcf8214}
  .frontier-home .ride-heading{
    left:14px;right:auto;top:18px;width:61%;max-width:61%;
    padding:13px 10px 14px;
    border-left-width:3px;
  }
  .frontier-home .ride-heading h2{font-size:clamp(13px,3.2vw,18px);line-height:1.65}
  .frontier-home .ride-heading>p:last-child{font-size:11px;line-height:1.55}
  .frontier-home .ride-yuma-ranges{bottom:19%;height:49%;width:135%;left:-10%}
  .frontier-home .ride-ocotillo{width:46px;height:85px}
  .frontier-home .ride-ocotillo--one{left:4%}
}
/* A sign only drifts by a short distance at a CONSTANT scroll rate.
   It fades at the edges instead of hurtling 115vw in a single flick. */
.frontier-home .has-ride-motion .ride-sign{
  transition:transform .16s linear,opacity .16s linear,visibility 0s;
  will-change:auto;
}
.frontier-home .has-ride-motion .ride-sign.is-current{
  transition:transform .16s linear,opacity .16s linear,visibility 0s;
}

/* At the narrowest phone widths, keep the sun fully outside the reading area. */
@media(max-width:360px){
  .frontier-home .ride-sun{width:78px;height:78px;right:1%}
}
/* The camp carries the same jagged Yuma-range silhouettes into dusk. */
.frontier-home .camp-ridge--far{
  clip-path:polygon(0 82%,7% 78%,13% 62%,16% 65%,20% 42%,22% 53%,26% 67%,35% 74%,42% 50%,45% 60%,48% 35%,51% 48%,54% 71%,63% 70%,68% 55%,72% 66%,77% 43%,81% 59%,86% 72%,92% 55%,95% 67%,100% 75%,100% 100%,0 100%);
}
.frontier-home .camp-ridge--near{
  clip-path:polygon(0 72%,8% 77%,13% 57%,18% 72%,24% 63%,29% 36%,33% 48%,38% 69%,43% 75%,51% 48%,55% 58%,59% 40%,63% 57%,70% 74%,76% 56%,79% 44%,84% 65%,91% 78%,95% 64%,100% 70%,100% 100%,0 100%);
}
