/* Journey layer. Everything is scoped to .has-journey, which only JavaScript adds,
   so no-script and reduced-motion visitors keep the published page. */
:root{
  --ease-out:cubic-bezier(.23,1,.32,1);
  --ease-drawer:cubic-bezier(.32,.72,0,1);
  --deep:#0e211c;
}
::selection{background:#10372f;color:#eef3ef}
html{scrollbar-color:#7d9a8e transparent}
@view-transition{navigation:auto}
.portal button:active,.portal a:active{transform:scale(.97)}
.portal button,.portal-links a{transition:transform .12s var(--ease-out),background-color .18s var(--ease-out),color .18s var(--ease-out)}

html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-stopped{overflow:hidden}

.has-journey .portal{background:var(--deep);overflow:clip}
.has-journey .portal-scene{padding:0;scroll-margin-top:0;background:transparent;isolation:auto}

/* Stages */
.jr-stage{position:relative;height:calc(var(--len,240) * 1svh + 100svh);background:var(--deep)}
.jr-pin{position:sticky;top:0;height:100svh;overflow:hidden;transform-origin:50% 45%;will-change:transform}
.jr-film,.jr-gl{position:absolute;inset:0;width:100%;height:100%;display:block}
.jr-sheet{position:relative;z-index:2;margin-top:-100svh;border-radius:clamp(18px,2.4vw,32px) clamp(18px,2.4vw,32px) 0 0;overflow:clip;padding:clamp(4.5rem,8vw,7rem) clamp(1.25rem,5vw,6rem) clamp(3.5rem,7vw,6rem);outline:none}
.jr-copy{position:absolute;z-index:2;left:clamp(1.25rem,5vw,6rem)}
.jr-clock{position:absolute;z-index:2;left:clamp(1.25rem,5vw,6rem);bottom:clamp(1.25rem,3vw,2.25rem);margin:0;font-size:1rem;line-height:1.3;font-variant-numeric:tabular-nums}
.jr-skip{position:absolute;z-index:3;right:clamp(1.25rem,5vw,6rem);bottom:clamp(1rem,2.6vw,1.9rem);display:inline-flex;align-items:center;min-height:44px;padding:0 1.1rem;border-radius:999px;background:var(--stage-ink,#10372f);color:var(--stage-ground,#eef3ef)!important;font-size:1rem;font-weight:600;text-decoration:none;transition:transform .14s var(--ease-out)}
.jr-skip:hover{transform:translateY(-1px)}
.jr-skip:focus-visible{outline:3px solid var(--stage-ink,#10372f);outline-offset:3px}

/* Floating chapter bar */
/* Hidden from pointers over the hero, which has its own project list, but never from the keyboard. */
.jr-way{position:fixed;inset:0 0 auto;z-index:6;height:0;opacity:0;pointer-events:none;transition:opacity .2s var(--ease-out)}
.jr-way.is-shown,.jr-way:focus-within{opacity:1;pointer-events:auto}
.has-journey .portal-wayfinder{position:absolute;top:.7rem;left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100vw - 1.5rem);justify-content:flex-start;gap:.15rem;padding:.25rem;background:#eef3ef;border:0;border-radius:999px;scrollbar-width:none;box-shadow:0 6px 20px -8px rgba(14,33,28,.45)}
.has-journey .portal-wayfinder::-webkit-scrollbar{display:none}
.has-journey .portal-wayfinder a{transition:background-color .18s var(--ease-out),color .18s var(--ease-out)}

/* Opening: the camera enters the hero's surface */
.has-journey .portal-opening{display:block;--len:210;padding:0;background:var(--deep)}
.jr-dive .jr-pin{--dark:0;background:color-mix(in srgb,var(--deep) calc(var(--dark) * 100%),#eef3ef)}
.jr-dive .jr-copy{inset:auto clamp(1.25rem,5vw,6rem) 12svh;color:#e4efe8;visibility:hidden;opacity:0}
.jr-dive h2{font-size:clamp(3.4rem,13vw,15rem)!important;line-height:.9!important;letter-spacing:-.05em!important;max-width:none!important;font-weight:600;color:#e4efe8}
.jr-dive .portal-opening-foot{max-width:none;justify-content:space-between;margin-top:1.6rem;gap:1.5rem}
.jr-dive .portal-opening-foot p{font-size:clamp(1.1rem,1.6vw,1.4rem);max-width:34ch}
.jr-dive .portal-opening-foot a{color:#e4efe8}
.has-journey .portal-opening + article{margin-top:-100svh;position:relative;z-index:2}

/* Model Morpher */
.jr-morpher{--len:200;--stage-ink:#10372f;--stage-ground:#f1f6f2}
.jr-morpher .jr-pin{background:#f1f6f2;color:#10372f}
.jr-morpher .jr-film{z-index:3;pointer-events:none}
.jr-morpher .jr-copy{top:clamp(5rem,13svh,8rem);max-width:none;width:auto}
.has-journey .portal-morpher-head{max-width:none;padding:0;pointer-events:auto}
.has-journey .portal-morpher-head .portal-title{margin:0 0 1.1rem;font-size:clamp(4rem,11vw,13.5rem);line-height:.88;letter-spacing:-.05em}
.has-journey .portal-morpher .jr-sheet{background:#dce3de;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:clamp(2rem,5vw,6rem);align-items:start}
.has-journey .portal-morpher .portal-project-foot{grid-column:1;grid-row:1;display:block;margin:0}
.has-journey .portal-morpher .portal-project-foot .portal-links{margin-top:1.4rem;justify-self:start}
.has-journey .portal-morpher-caption{grid-column:1;grid-row:2;display:grid;grid-template-columns:1fr;gap:1rem;margin-top:1.6rem}
.has-journey .portal-surface{grid-column:2;grid-row:1/span 2;margin:0;min-height:clamp(28rem,44vw,44rem)}
.has-journey .portal-morpher .portal-film-details{grid-column:1/-1}

/* Morphliner */
.jr-morphliner{--len:210;--stage-ink:#1c2326;--stage-ground:#f3efe7}
.jr-morphliner .jr-pin{background:#b4a998;color:#1c2326}
.jr-morphliner .jr-copy{inset:clamp(4.6rem,10svh,6rem) clamp(1.25rem,5vw,6rem) clamp(3.4rem,8svh,4.6rem);pointer-events:none}
.has-journey .morphliner-head{display:flex;flex-direction:column-reverse;justify-content:space-between;align-items:flex-start;height:100%;margin:0;padding:0;border:0;background:none}
.has-journey .morphliner-head .portal-title{color:#1c2326;font-size:clamp(3.2rem,8.4vw,9.4rem);line-height:.9;letter-spacing:-.05em;margin:0}
.has-journey .morphliner-intro{color:#1c2326;max-width:27ch;font-size:clamp(1.05rem,1.3vw,1.2rem);line-height:1.4;margin:0}
.has-journey .portal-cinema .jr-sheet{background:#eeece6;color:#20282a}

/* EEG */
.jr-eeg{--len:190;--stage-ink:#f3f4ef;--stage-ground:#111}
.jr-eeg .jr-pin{background:#0b0d0d;color:#f3f4ef;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,8fr);align-items:center;gap:clamp(1.5rem,3vw,3rem);padding:clamp(5rem,12svh,7rem) clamp(1.25rem,5vw,6rem) clamp(4.5rem,10svh,6rem)}
.jr-eeg .jr-copy{position:relative;left:auto;right:auto;order:-1}
.has-journey .portal-eeg header{display:block;padding:0;margin:0}
.has-journey .portal-eeg .portal-title{font-size:clamp(2.6rem,4.4vw,5rem);line-height:.96;margin:.6rem 0 1rem;letter-spacing:-.045em;color:#f3f4ef}
.has-journey .portal-eeg .portal-kicker{color:#c8cfca}
.has-journey .portal-eeg-question{color:#c3cdf7!important}
.jr-reveal{position:relative;overflow:hidden}
.jr-reveal img{display:block;width:100%;height:auto}
.jr-eeg .portal-eeg-figure{margin:0;background:none!important;border:0!important;padding:0!important;color:#c8cfca}
.jr-eeg .portal-eeg-figure figcaption{display:flex;justify-content:space-between;gap:1rem;margin-top:.7rem;padding:0;background:none;color:#c8cfca;font-size:1rem}
.jr-eeg .portal-eeg-figure a{color:#f3f4ef}
.has-journey .portal-eeg .jr-sheet{background:#f7f6f2}
.jr-edge{position:absolute;display:block;background:#7f96ff}
.jr-reveal .jr-edge{top:0;bottom:0;width:2px}

/* Fly */
.jr-fly{--len:190;--stage-ink:#20282a;--stage-ground:#f7f6f2}
.jr-fly .jr-pin{background:#f7f6f2;color:#20282a}
.jr-fly .jr-copy{top:clamp(5rem,12svh,8rem);width:min(34vw,31rem)}
.has-journey .fly-head{grid-template-columns:minmax(0,1fr) minmax(0,26rem);grid-template-areas:"kicker kicker" "title title" "claim claim";margin:0;padding:0;display:block}
.has-journey .fly-study .fly-title{font-size:clamp(2.4rem,4.4vw,5rem);line-height:.94;margin:.5rem 0 0}
.has-journey .fly-claim{max-width:26rem;margin-top:1.2rem}
.jr-neurons{position:absolute;right:clamp(-2rem,-1vw,0rem);top:50%;width:min(58vw,calc(100svh * 1.02));aspect-ratio:570/480;transform:translateY(-46%)}
.jr-neuron{position:absolute;inset:0;width:100%;height:100%;will-change:transform}
.has-journey .portal-fly .jr-sheet{background:#eeece6}

/* MorphBrain */
.jr-brain{--len:180;--stage-ink:#f2f6f2;--stage-ground:#14332d}
.jr-brain .jr-pin{background:#14332d;color:#f2f6f2}
.jr-brain .jr-copy{top:clamp(5rem,12svh,8rem);max-width:min(50vw,44rem)}
.has-journey .portal-brain header{padding:0;margin:0}
.has-journey .portal-brain .portal-title{color:#f2f6f2;font-size:clamp(2.8rem,5.4vw,6rem);line-height:.94;letter-spacing:-.045em}
.has-journey .portal-brain .portal-kicker,.has-journey .portal-brain .portal-project-name{color:#d3e0d9}
.jr-fields{position:absolute;right:clamp(1.25rem,7vw,8rem);top:calc(50% - 1rem);height:min(80svh,58vw);aspect-ratio:2/3;transform:translateY(-50%);background:#eef3ef;border-radius:8px;overflow:hidden}
.jr-fields img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;image-rendering:pixelated}
.jr-fields .jr-edge{left:0;right:0;height:2px;background:#c4562e}
.has-journey .portal-brain .jr-sheet{background:#dfeae3}

/* Close */
.has-journey .xp-foot{flex-wrap:wrap}
.has-journey .xp-foot>p:first-child{font-size:clamp(3.4rem,15.4vw,19rem);line-height:.9;letter-spacing:-.05em;font-weight:600;margin:0 0 1.5rem;width:100%}
.jr-limit{font-size:1rem;line-height:1.42;max-width:36ch;margin-top:1rem!important}
.jr-eeg .jr-limit{color:#d7dcd8;max-width:44ch}
.jr-brain .jr-limit{color:#dfe9e3}

@media (max-width:800px){
  .has-journey .portal-wayfinder{left:.75rem;right:.75rem;transform:none;width:auto;max-width:none;mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
  .jr-copy{left:1.25rem;right:1.25rem}
  .jr-clock{left:1.25rem;right:8.5rem;bottom:1.1rem;font-size:.92rem}
  .jr-skip{right:1rem;bottom:.8rem;padding:0 .9rem;font-size:.95rem}
  .jr-morpher .jr-film{top:auto;bottom:7svh;height:46svh}
  .jr-limit{font-size:.95rem;line-height:1.34;max-width:none;margin-top:.6rem!important}
  .has-journey .portal-morpher .jr-sheet{display:block}
  .has-journey .portal-surface{margin-top:1.6rem}
  .jr-morpher .jr-copy{top:5rem}
  .jr-eeg .jr-pin{display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:1.4rem;padding:4.75rem 1.25rem 5rem}
  .jr-eeg .jr-clock{display:none}
  .jr-eeg .jr-copy{left:auto;right:auto}
  .jr-fly .jr-copy{top:4.4rem;width:auto}
  .has-journey .fly-study .fly-title{font-size:2.3rem}
  .has-journey .fly-claim{max-width:none;margin-top:.7rem;gap:.55rem}
  .has-journey .fly-claim>p:first-child{font-size:1.02rem;line-height:1.36}
  .has-journey .fly-limit{font-size:.92rem;line-height:1.36}
  .jr-neurons{right:50%;left:auto;top:auto;bottom:4.2rem;width:min(92vw,40svh);transform:translateX(50%)}
  .jr-brain .jr-copy{top:4.75rem;max-width:none}
  .has-journey .portal-brain .portal-title{font-size:clamp(2rem,8.6vw,3.4rem)}
  .has-journey .portal-eeg .portal-title{font-size:clamp(2.2rem,9vw,3.4rem)}
  .jr-fields{right:50%;top:auto;bottom:4.6rem;height:min(44svh,calc(100svh - 25rem));transform:translateX(50%)}
}

@media (max-width:800px) and (max-height:700px){.has-journey .portal-eeg-question{display:none}}

@media print{
  .jr-stage{height:auto}
  .jr-pin{position:static;height:auto;transform:none!important}
  .jr-film,.jr-gl,.jr-skip,.jr-clock,.jr-way,.jr-neurons,.jr-fields{display:none}
  .jr-copy{position:static}
  .jr-sheet{margin-top:0}
}

/* About: labels in the reading type rather than tracked capitals. */
.has-journey .about__label{font-family:inherit;text-transform:none;letter-spacing:0;font-size:1rem;font-weight:600}
