body.world-open,body.world-transition{overflow:hidden}.eye-portal{position:fixed;z-index:180;inset:0;background:#010302;opacity:0;pointer-events:none;transition:opacity .3s ease}.eye-portal.active{opacity:1;transition-delay:.88s}.hero.eye-entering .hero-video-stage{transform-origin:70.7% 31.5%!important;transform:scale(58)!important;transition:transform 1.25s cubic-bezier(.68,0,.2,1)!important}.hero.eye-entering .hero-content,.hero.eye-entering .wake-hint,.hero.eye-entering .species-hotspot,.hero.eye-entering .scroll,body.world-transition .nav{opacity:0!important;pointer-events:none;transition:opacity .35s ease!important}.hero.eye-entering .hero-magnifier{opacity:0!important}.eye-world{position:fixed;inset:0;z-index:170;overflow:hidden;color:#f2eee3;background:#07130d;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .55s ease,visibility 0s linear .55s}.eye-world.open{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s}.eye-world-bg{position:absolute;inset:-2%;background:linear-gradient(90deg,rgba(5,20,13,.67) 0%,rgba(5,20,13,.3) 42%,rgba(5,20,13,.12) 68%,rgba(5,20,13,.3)),url('assets/eye-world-background-v3-no-gecko.png') center/cover no-repeat;transform:scale(1.035);transition:transform 1.8s cubic-bezier(.2,.75,.2,1)}.eye-world.open .eye-world-bg{transform:scale(1)}.eye-world:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(0deg,rgba(3,11,7,.46),transparent 30%,rgba(3,11,7,.16));z-index:1}.world-header{position:absolute;z-index:5;left:5vw;right:5vw;top:0;height:92px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(239,218,173,.13)}.world-brand{display:flex;align-items:center;gap:12px}.world-brand>span{width:30px;height:30px;border:1px solid rgba(243,236,218,.65);border-radius:50%;display:grid;place-items:center;font-size:13px}.world-brand div{display:flex;align-items:baseline;gap:11px}.world-brand b{font-size:17px;font-weight:500;letter-spacing:.08em}.world-brand small,.world-chapter{font-size:8px;font-weight:400;letter-spacing:.24em;color:rgba(243,236,218,.48)}.world-close{display:flex;align-items:center;gap:13px;border:0;background:none;color:rgba(245,240,228,.75);font-size:12px;letter-spacing:.08em;cursor:pointer}.world-close i{width:30px;height:30px;border:1px solid rgba(245,240,228,.25);border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:17px;transition:.35s}.world-close:hover i{border-color:#c99b4a;color:#d6aa5b;transform:rotate(90deg)}.world-layout{position:absolute;z-index:3;inset:92px 5vw 5vh;display:grid;grid-template-columns:minmax(250px,320px) 1fr minmax(300px,390px);gap:5vw;align-items:center}.world-directory{height:min(70vh,720px);min-height:520px}.world-directory-left{display:flex;flex-direction:column;padding:32px 0 20px;background:linear-gradient(90deg,rgba(5,18,12,.56),rgba(5,18,12,.12));border-left:1px solid rgba(201,155,74,.25)}.world-rail-title{padding:0 28px 22px}.world-rail-title small{display:block;color:#c99b4a;font-size:8px;letter-spacing:.25em;margin-bottom:8px}.world-rail-title b{font-size:18px;font-weight:400}.world-menu{overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(201,155,74,.35) transparent;scroll-snap-type:y proximity}.world-menu button{position:relative;width:100%;min-height:88px;padding:17px 28px;border:0;border-top:1px solid rgba(255,255,255,.075);background:transparent;color:rgba(244,239,226,.42);display:grid;grid-template-columns:35px 1fr;text-align:left;cursor:pointer;scroll-snap-align:center;transition:.35s}.world-menu button:last-child{border-bottom:1px solid rgba(255,255,255,.075)}.world-menu button>span{grid-row:1/3;font-size:9px;color:rgba(201,155,74,.46);padding-top:5px}.world-menu button b{font-size:16px;font-weight:400;letter-spacing:.04em}.world-menu button small{margin-top:5px;font-size:7px;letter-spacing:.18em;opacity:.55}.world-menu button:before{content:"";position:absolute;left:-1px;top:50%;width:1px;height:0;background:#c99b4a;transform:translateY(-50%);transition:.35s}.world-menu button:hover,.world-menu button.active{color:#f5efe1;background:linear-gradient(90deg,rgba(201,155,74,.1),transparent)}.world-menu button.active:before{height:38px}.world-scroll-hint{display:flex;align-items:center;gap:10px;padding:19px 28px 0;color:rgba(244,239,226,.34);font-size:8px;letter-spacing:.12em}.world-scroll-hint i{width:28px;height:1px;background:rgba(201,155,74,.45)}.world-center-copy{align-self:end;padding-bottom:9vh;color:rgba(245,240,228,.72)}.world-center-index{display:block;color:#c99b4a;font-size:8px;letter-spacing:.22em;margin-bottom:12px}.world-center-copy p{font-size:17px;font-weight:300;line-height:1.8;letter-spacing:.04em;margin:0}.world-directory-right{overflow-y:auto;padding:13vh 0;scrollbar-width:none;scroll-snap-type:y mandatory;mask-image:linear-gradient(transparent,#000 14%,#000 86%,transparent)}.world-directory-right::-webkit-scrollbar{display:none}.world-card{min-height:46vh;padding:35px 31px;margin-bottom:4vh;display:flex;flex-direction:column;justify-content:center;scroll-snap-align:center;background:linear-gradient(135deg,rgba(7,24,16,.74),rgba(7,24,16,.35));border:1px solid rgba(238,218,177,.13);border-radius:18px;backdrop-filter:blur(8px);opacity:.48;transform:scale(.94);transition:.45s}.world-card.active{opacity:1;transform:scale(1);border-color:rgba(201,155,74,.34)}.world-card>span{color:#c99b4a;font-size:8px;letter-spacing:.24em}.world-card h2{font-size:clamp(29px,2.4vw,42px);font-weight:400;line-height:1.25;margin:18px 0}.world-card p{font-size:13px;font-weight:300;line-height:1.9;color:rgba(244,239,226,.62);margin:0}.world-card>small{margin-top:30px;font-size:7px;letter-spacing:.2em;color:rgba(244,239,226,.34)}
@media(max-width:1000px){.world-layout{grid-template-columns:250px 1fr}.world-center-copy{display:none}.world-directory-right{min-width:0}.world-chapter{display:none}}
@media(max-width:700px){.world-header{left:22px;right:22px;height:72px}.world-close span{display:none}.world-layout{inset:72px 22px 24px;display:block}.world-directory{height:auto;min-height:0}.world-directory-left{height:38vh;margin-top:4vh}.world-directory-right{height:46vh;padding:5vh 0;margin-top:2vh}.world-card{min-height:36vh}.world-brand small{display:none}}
@media(prefers-reduced-motion:reduce){.eye-portal{display:none}.hero.eye-entering .hero-video-stage{transform:none!important}.eye-world{transition-duration:.25s}.eye-world-bg{transition:none}}

/* The directory reuses the hero's environmental loop. The aligned no-gecko
   plate is feathered over the animal, preserving motion in the surrounding foliage. */
.eye-world-bg{overflow:hidden;background:url('assets/eye-world-background-v3-no-gecko.png') center/cover no-repeat}
.eye-world-bg video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;opacity:.92}
.eye-world-bg:before{display:none}
.eye-world-bg:after{content:"";position:absolute;z-index:2;inset:0;background:linear-gradient(90deg,rgba(5,20,13,.67) 0%,rgba(5,20,13,.3) 42%,rgba(5,20,13,.12) 68%,rgba(5,20,13,.3));pointer-events:none}

/* The camera pushes the whole hero into the pupil before the inner world appears. */
.hero.eye-entering .hero-video-stage{
  transform-origin:var(--eye-origin-x,70.7%) var(--eye-origin-y,31.5%)!important;
}
.hero.eye-entering .hero-video-stage:after{
  opacity:0!important;
  transition:opacity .3s ease!important;
}

/* Quiet water-ripple transition from the exact click position. */
.eye-portal{
  --ripple-x:50vw;
  --ripple-y:50vh;
  background:transparent;
  opacity:1;
  overflow:hidden;
  transition:none;
}
.eye-portal:before,
.eye-portal:after{
  content:"";
  position:absolute;
  left:var(--ripple-x);
  top:var(--ripple-y);
  width:18vmax;
  height:18vmax;
  border-radius:50%;
  pointer-events:none;
  opacity:0;
  transform:translate(-50%,-50%) scale(.05);
}
.eye-portal:before{
  border:1px solid rgba(239,226,190,.24);
  box-shadow:
    0 0 0 2.6vmax rgba(228,216,181,.055),
    0 0 0 5.8vmax rgba(228,216,181,.035),
    0 0 0 9.4vmax rgba(228,216,181,.02);
}
.eye-portal:after{
  width:14vmax;
  height:14vmax;
  background:radial-gradient(circle,transparent 0 32%,rgba(232,221,190,.06) 45%,transparent 62%);
  filter:blur(2px);
}
.eye-portal.active:before{
  animation:waterRipple 1.15s cubic-bezier(.16,.68,.2,1) both;
}
.eye-portal.active:after{
  animation:waterRippleSoft 1.05s .08s cubic-bezier(.16,.68,.2,1) both;
}
body.ripple-transition .hero-video-stage{
  filter:saturate(.94) brightness(.9) blur(1.2px);
  transform:scale(1.012)!important;
  transition:filter .9s ease,transform 1.05s cubic-bezier(.2,.7,.2,1)!important;
}
body.ripple-transition .hero-content,
body.ripple-transition .wake-hint,
body.ripple-transition .species-hotspot,
body.ripple-transition .scroll,
body.ripple-transition .nav{
  opacity:0!important;
  transition:opacity .65s ease!important;
}
.eye-world.open{transition:opacity .75s cubic-bezier(.25,.65,.25,1),visibility 0s linear 0s}
@keyframes waterRipple{
  0%{opacity:0;transform:translate(-50%,-50%) scale(.05)}
  12%{opacity:.72}
  72%{opacity:.26}
  100%{opacity:0;transform:translate(-50%,-50%) scale(12)}
}
@keyframes waterRippleSoft{
  0%{opacity:0;transform:translate(-50%,-50%) scale(.05)}
  20%{opacity:.5}
  100%{opacity:0;transform:translate(-50%,-50%) scale(14)}
}
@media(prefers-reduced-motion:reduce){
  .eye-portal:before,.eye-portal:after{display:none}
  body.ripple-transition .hero-video-stage{filter:none;transform:none!important}
}
