/* Ten Pound Feather V21 — THE CROSSING.
   Not a page about the realm: a walk across it.
   Act I, the film. Act II, the road — scroll is your stride,
   the sky is a clock, and the eclipse happens overhead at the middle of the world. */

:root{
  --paper:#e9dcc9;--card:#f6eede;--ink:#26221b;--ink-soft:#5c5546;
  --coral:#e14b66;--coral-bright:#f2708a;--gold:#c89b55;--gold-soft:#e1bd7d;
  --bone:#eae1cf;--bone-soft:rgba(234,225,207,.78);
  --display:"Fraunces",Georgia,serif;--text:"Source Serif 4",Georgia,serif;
  --sans:"Archivo",-apple-system,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:#0e1622;color:var(--ink);
  font-family:var(--text);font-size:17.5px;line-height:1.6;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
body::after{
  content:"";position:fixed;inset:0;z-index:80;pointer-events:none;opacity:.12;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .2 0 0 0 0 .17 0 0 0 0 .12 0 0 0 .5 0'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)'/%3E%3C/svg%3E");
}
img,svg,video{display:block;max-width:100%}
a{color:inherit}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ═══ ACT I — the film ═══ */
.film{
  position:relative;height:100svh;min-height:480px;overflow:hidden;
  background:#161210;
  display:flex;align-items:center;justify-content:center;
}
.film__video{
  width:100%;height:auto;max-height:100%;aspect-ratio:16/9;object-fit:cover;
  -webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 14%,#000 86%,transparent 100%);
  mask-image:linear-gradient(to bottom,transparent 0,#000 14%,#000 86%,transparent 100%);
}
.film__header{
  position:absolute;top:0;left:0;right:0;z-index:6;
  display:flex;justify-content:space-between;align-items:center;
  padding:1.3rem clamp(1.25rem,4vw,2.5rem);color:var(--bone);
}
.film__wordmark{font-family:var(--sans);font-weight:600;font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;text-decoration:none}
.film__skip{font-family:var(--display);font-style:italic;font-size:.98rem;text-decoration:none;opacity:.8;transition:opacity .2s}
.film__skip:hover{opacity:1}
.film__controls{position:absolute;right:clamp(1.25rem,4vw,2.5rem);bottom:4.2rem;display:flex;gap:.6rem;z-index:6}
.film__btn{
  width:44px;height:44px;border-radius:50%;display:grid;place-items:center;cursor:pointer;
  color:var(--bone);background:rgba(14,18,26,.35);border:1px solid rgba(234,225,207,.4);
}
.film__btn svg{width:20px;height:20px}
.film__btn span{display:grid;place-items:center}
#hero-sound .is-on{display:none}
#hero-sound[aria-pressed="true"] .is-on{display:grid}
#hero-sound[aria-pressed="true"] .is-off{display:none}
.film__tear{
  position:absolute;bottom:-1px;left:0;right:0;width:100%;height:52px;z-index:5;
  fill:#8ec8ec;pointer-events:none;
  filter:drop-shadow(0 -5px 9px rgba(0,0,0,.4));
}

/* ═══ ACT II — the crossing ═══ */
.crossing{position:relative;height:900svh}
.stage{
  position:sticky;top:0;height:100svh;overflow:hidden;
  background:#8ec8ec;
}

/* the sky is a clock */
.sky{position:absolute;inset:0}
.sky__day,.sky__sunset,.sky__night{position:absolute;inset:0}
.sky__day{background:linear-gradient(to bottom,#8ec8ec 0%,#b9ddf4 52%,#e8f3fb 100%)}
.sky__sunset{opacity:0;background:linear-gradient(to bottom,#8ea6d6 0%,#c795b3 38%,#ef9d84 66%,#f7c98f 100%)}
.sky__night{opacity:0;background:linear-gradient(to bottom,#0b1730 0%,#122344 52%,#27405f 100%)}

.wheel{position:absolute;left:50%;top:42%;width:0;height:0}
.wstars{position:absolute;top:0;left:0;width:2.4px;height:2.4px;border-radius:50%;opacity:0;display:block}
.wstars--a{animation:twk 3.4s ease-in-out infinite}
.wstars--b{animation:twk 5.2s ease-in-out infinite reverse}
.wstars--c{animation:twk 4.3s ease-in-out infinite}
@keyframes twk{0%,100%{filter:brightness(1)}50%{filter:brightness(.55)}}

.aur{position:absolute;inset:0;opacity:0;pointer-events:none;mix-blend-mode:screen}
.aur i{position:absolute;display:block;top:-6%;height:60%;filter:blur(26px);transform-origin:50% 0}
.aur i:nth-child(1){left:6%;width:36%;background:linear-gradient(178deg,transparent 4%,rgba(110,231,183,.5) 34%,rgba(103,232,249,.26) 62%,transparent 92%);animation:aurSway 21s ease-in-out infinite alternate}
.aur i:nth-child(2){left:32%;width:32%;background:linear-gradient(182deg,transparent 6%,rgba(167,139,250,.4) 38%,rgba(110,231,183,.22) 66%,transparent 94%);animation:aurSway 27s ease-in-out infinite alternate-reverse}
.aur i:nth-child(3){left:60%;width:34%;background:linear-gradient(176deg,transparent 5%,rgba(103,232,249,.38) 30%,rgba(167,139,250,.2) 60%,transparent 90%);animation:aurSway 17s ease-in-out infinite alternate}
@keyframes aurSway{from{transform:skewX(-7deg) translateX(-3vw) scaleY(.96)}to{transform:skewX(6deg) translateX(3.5vw) scaleY(1.05)}}

:root{--sunS:clamp(165px,19vw,258px);--moonS:clamp(112px,12.5vw,168px)}
.sun,.moon{position:absolute;left:0;top:0;will-change:transform}
.sun{width:var(--sunS);height:var(--sunS);margin:calc(var(--sunS)/-2) 0 0 calc(var(--sunS)/-2)}
.moon{width:var(--moonS);height:var(--moonS);margin:calc(var(--moonS)/-2) 0 0 calc(var(--moonS)/-2)}
.sun__art{
  position:absolute;inset:0;width:100%;height:100%;will-change:transform;
  filter:sepia(.78) saturate(1.8) hue-rotate(338deg) contrast(1.03) drop-shadow(0 0 7px rgba(237,137,61,.3));
}
.sun__face{
  position:absolute;left:50%;top:50%;width:46.5%;height:46.5%;transform:translate(-50%,-50%);
  filter:sepia(.48) saturate(1.1) brightness(1.08);
}
.moon img{
  position:absolute;inset:0;width:100%;height:100%;
  filter:sepia(.12) saturate(.72) hue-rotate(168deg) brightness(1.08) drop-shadow(0 0 8px rgba(190,211,235,.35));
}
.moon__lid{
  position:absolute;left:63.5%;top:43%;width:14%;height:9.5%;
  transform:translate(-50%,-50%);border-radius:50%;display:block;opacity:0;
  background:#f0ecdf;
  filter:sepia(.12) saturate(.72) hue-rotate(168deg) brightness(1.08);
  transform-origin:50% 12%;
}
.moon__lid::after{
  content:"";position:absolute;left:6%;right:6%;bottom:6%;height:55%;
  border-bottom:2.2px solid #4a4438;
  border-radius:0 0 50% 50% / 0 0 100% 100%;
}
.moon--wink .moon__lid{animation:wink .9s ease}
@keyframes wink{
  0%{opacity:0;transform:translate(-50%,-50%) scaleY(.15)}
  22%{opacity:1;transform:translate(-50%,-50%) scaleY(1)}
  68%{opacity:1;transform:translate(-50%,-50%) scaleY(1)}
  100%{opacity:0;transform:translate(-50%,-50%) scaleY(.18)}
}
.moon__shade{
  position:absolute;inset:3%;border-radius:50%;display:block;opacity:0;
  background:radial-gradient(circle at 42% 40%,#1a2030 0%,#0a0e18 75%);
}
.totality{
  position:absolute;inset:0;opacity:0;pointer-events:none;
  background:radial-gradient(circle at 50% 24%,rgba(6,9,20,0) 6%,rgba(6,9,20,.55) 50%,rgba(6,9,20,.82) 100%);
}
.eclipse-line{
  position:absolute;left:clamp(1.25rem,7vw,6rem);top:46%;transform:translateY(-50%);
  font-family:var(--display);font-style:italic;
  font-size:clamp(2rem,4vw,3.6rem);line-height:1.08;max-width:12ch;
  color:var(--bone);opacity:0;pointer-events:none;
  text-shadow:0 0 26px rgba(10,14,24,.6);
}
.eclipse-line em{color:var(--gold-soft)}
.eclipse-line span,.eclipse-line em{display:block}

/* the land — ink, in four depths */
.strip{position:absolute;bottom:0;left:0;height:100%;will-change:transform}
.strip svg{position:absolute;bottom:0;left:0;height:100%;width:100%}
.strip--far{opacity:.5}
.strip--mid{opacity:.85}
.strip--fore{opacity:.95;pointer-events:none}
.strip--road a{cursor:pointer}
/* buildings that are doors glow faintly when you're near */
.strip--road .door-glow{transition:opacity .5s ease}

/* your guide */
.guide{
  position:absolute;left:46vw;top:34vh;width:34px;height:54px;z-index:6;
  fill:#26221b;filter:drop-shadow(0 2px 3px rgba(14,18,26,.25));
  will-change:transform;pointer-events:none;
}

/* station cards */
.stn{
  position:absolute;z-index:8;left:clamp(1.4rem,7vw,6.5rem);top:23vh;
  width:min(560px,86vw);
  opacity:0;transform:translateY(26px);pointer-events:none;
  transition:opacity .5s ease,transform .5s ease;
}
.stn.is-here{opacity:1;transform:none;pointer-events:auto}
.stn__eyebrow{
  font-family:var(--sans);font-size:.7rem;font-weight:600;
  letter-spacing:.26em;text-transform:uppercase;color:#8d5d2a;margin-bottom:.9rem;
  text-shadow:0 1px 0 rgba(244,232,208,.5);
}
.stn__title{
  font-family:var(--display);font-weight:500;line-height:1.05;letter-spacing:-.01em;
  font-size:clamp(2.4rem,5.6vw,4.2rem);
  text-shadow:0 1px 0 rgba(244,232,208,.4);
}
.stn__title em{font-style:italic;color:var(--coral)}
.stn__title--big{font-size:clamp(3.4rem,9vw,7rem)}
.stn__line{margin-top:1.2rem;max-width:44ch;font-size:clamp(1.05rem,1.9vw,1.26rem);color:#2f2a20}
.stn__door{
  display:inline-block;margin-top:1.5rem;margin-right:1rem;
  font-family:var(--sans);font-size:.72rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;
  text-decoration:none;color:var(--ink);
  padding:.75rem 1.15rem;border:1px solid rgba(38,34,27,.55);border-radius:2px;
  background:rgba(246,238,222,.55);
  transition:background .2s,color .2s,transform .2s;
}
.stn__door:hover{background:var(--ink);color:var(--paper);transform:translateY(-2px)}
.stn__door--solid{background:var(--ink);color:var(--paper)}
.stn__door--solid:hover{background:#3a3227}
.stn__row{display:flex;flex-wrap:wrap;align-items:center}
.stn__foot{margin-top:2.2rem;font-family:var(--sans);font-size:.72rem;letter-spacing:.05em;color:#4c4132}
.stn__foot a{text-decoration:none;opacity:.8}
.stn__foot a:hover{opacity:1;text-decoration:underline}
.stn__foot span{opacity:.6}
/* night stations write in bone */
.stn--night .stn__title,.stn--night .stn__line{color:var(--bone);text-shadow:0 0 18px rgba(10,14,24,.5)}
.stn--night .stn__line{color:var(--bone-soft)}
.stn--night .stn__eyebrow{color:var(--gold-soft);text-shadow:none}
.stn--night .stn__door{color:var(--bone);border-color:rgba(234,225,207,.55);background:rgba(10,16,28,.35)}
.stn--night .stn__door:hover{background:var(--bone);color:#122}
.stn--night .stn__foot{color:rgba(234,225,207,.75)}

.noscript-doors{
  padding:2rem;text-align:center;background:var(--paper);
  font-family:var(--sans);font-size:.85rem;
}

/* honest stillness for reduced motion */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .crossing{height:auto}
  .stage{position:static;height:auto;overflow:visible;background:linear-gradient(180deg,#8ec8ec,#e8f3fb)}
  .sky,.strip,.guide,.totality{display:none}
  .stn{position:static;opacity:1;transform:none;pointer-events:auto;margin:5rem auto;padding:0 1.5rem}
  .stn--sky{display:none}
  .eclipse-line{display:none}
  .aur i,.wstars{animation:none}
}

@media (max-width:720px){
  .crossing{height:740svh}
  .stn{top:12vh}
  .guide{left:56vw;top:30vh}
  .film__controls{bottom:3.6rem}
}

/* strips: only the doors take the hand */
.strip--far,.strip--mid{pointer-events:none}
.strip--road .glow{animation:winFlick 3.2s ease-in-out infinite}
@keyframes winFlick{0%,100%{opacity:.85}12%{opacity:1}44%{opacity:.72}70%{opacity:.95}}
@media (prefers-reduced-motion:reduce){.strip--road .glow{animation:none}}
