.n-ghero{position:relative;margin-top:calc(-1 * var(--hdr));padding:calc(var(--hdr) + clamp(40px,6vw,96px)) 0 clamp(64px,7vw,112px)}
.n-ghero-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);align-items:end;gap:40px clamp(40px,6vw,96px)}
.n-ghero-l{display:flex;flex-direction:column;gap:26px}
.n-gh1{margin:0;font-family:var(--disp);font-weight:var(--disp-w);font-size:clamp(46px,7.4vw,124px);line-height:1;letter-spacing:var(--disp-track)}
.look-b .n-gh1 .n-wm:last-child{font-style:italic}
.n-gh1 .n-wm{margin-right:.2em}
.n-lede{margin:0;max-width:34em;font-size:clamp(17px,1.35vw,20px);line-height:1.6;color:var(--mute)}
.n-dist{display:grid;grid-template-columns:auto minmax(40px,1fr) auto;align-items:center;gap:14px;margin-top:10px;padding:18px 20px;border-radius:18px;background:var(--card);font-size:15px}
.n-dist b{display:block;font-family:var(--mid);font-weight:600;font-size:16px;letter-spacing:var(--mid-track)}
.n-dist small{font-size:14px;color:var(--mute)}
.n-dist-line{position:relative;height:2px;color:inherit;background:repeating-linear-gradient(90deg,currentColor 0 6px,transparent 6px 11px);transform-origin:left}
.n-dist-line::before,.n-dist-line::after{content:'';position:absolute;top:50%;width:10px;height:10px;margin-top:-5px;border-radius:50%;background:currentColor}
.n-dist-line::before{left:-5px}.n-dist-line::after{right:-5px}
.n-dist-km{position:absolute;left:50%;top:-28px;transform:translateX(-50%);white-space:nowrap;font-size:14px;font-weight:600}
.n-ghero-ap{aspect-ratio:3/4;border-radius:22px}
.n-ap{position:relative;margin:0;overflow:hidden;border-radius:18px;background:var(--warm)}
.n-ap img{position:absolute;inset:-8% 0;width:100%;height:116%;object-fit:cover}
.n-ap figcaption{position:absolute;left:14px;bottom:14px;z-index:1;padding:6px 12px;border-radius:999px;background:var(--paper);color:var(--ink);font-size:14px;font-weight:500}

/* walk */
.n-walk{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);align-items:start;gap:40px clamp(40px,6vw,104px)}
.n-walk-side{position:sticky;top:calc(var(--hdr) + 32px);display:flex;flex-direction:column;gap:20px}
.n-route-box{position:relative}
.n-route{position:relative;margin:0;padding:0;list-style:none}
.n-route-rail{position:absolute;left:31px;top:12px;bottom:12px;width:2px;background:var(--line)}
.n-route-rail i{position:absolute;inset:0;background:currentColor;transform-origin:top;transform:scaleY(var(--wp,1))}
.n-stop{position:relative;display:grid;grid-template-columns:64px minmax(0,1fr);gap:22px;padding-bottom:clamp(40px,4vw,64px)}
.n-stop:last-child{padding-bottom:0}
.n-stop-n{position:relative;z-index:1;display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--btn);color:var(--btn-fg);font-family:var(--mid);font-weight:600;font-size:20px;font-variant-numeric:tabular-nums}
.n-stop-b{display:flex;flex-direction:column;gap:10px;padding-top:12px}
.n-stop h3{margin:0;font-family:var(--disp);font-weight:var(--disp-w);font-size:clamp(24px,2.4vw,36px);line-height:1.1;letter-spacing:var(--disp-track)}
.n-stop h3 span{display:block;margin-top:6px;font-family:var(--text);font-style:normal;font-size:15px;font-weight:500;letter-spacing:0;color:var(--kick)}
.n-stop p{margin:0;max-width:38em;font-size:16px;line-height:1.7;color:var(--mute)}
.n-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.n-tag{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 12px 0 10px;border-radius:999px;background:var(--card);border:1px solid var(--line);font-size:14px;font-weight:500}
.n-tag .n-ic{color:var(--kick)}

/* eat */
.n-eat-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:20px 56px}
.n-menu-board{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(380px,100%),1fr));column-gap:clamp(32px,4vw,64px);margin:clamp(40px,5vw,72px) 0 0;padding:0;list-style:none;border-top:1.5px solid currentColor}
.n-dish{display:flex;flex-direction:column;gap:6px;padding:24px 0;border-bottom:1px solid var(--line)}
.n-dish-top{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 16px}
.n-dish b{font-family:var(--disp);font-weight:var(--disp-w);font-size:clamp(22px,2vw,30px);letter-spacing:var(--disp-track)}
.n-dish span[lang]{font-family:var(--mid);font-size:16px;font-weight:var(--mid-w);color:var(--kick)}
.n-dish p{margin:0;font-size:16px;color:var(--mute)}
.n-eat-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:16px;margin-top:clamp(40px,4vw,56px)}
.n-card{display:flex;flex-direction:column;gap:14px;padding:clamp(24px,2.6vw,36px);border-radius:20px;background:var(--paper)}
.n-card.n-on-dark{background:var(--deep)}
.n-card h3{margin:0;font-family:var(--disp);font-weight:var(--disp-w);font-size:clamp(22px,2vw,30px);line-height:1.12;letter-spacing:var(--disp-track)}
.n-card p{margin:0;font-size:16px;line-height:1.65;color:var(--mute)}

/* outdoors */
.n-out-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:clamp(40px,5vw,72px)}
.n-trip{display:flex;flex-direction:column;gap:20px;padding:clamp(24px,3vw,44px);border-radius:24px;background:var(--card);border:1px solid var(--line)}
.n-trip h3{margin:0;font-family:var(--disp);font-weight:var(--disp-w);font-size:clamp(32px,3.6vw,56px);line-height:1.02;letter-spacing:var(--disp-track)}
.n-trip p{margin:0;font-size:16px;line-height:1.7;color:var(--mute)}
.n-facts-dl{margin:0;display:grid;grid-template-columns:auto minmax(0,1fr);border-top:1px solid var(--line)}
.n-facts-dl dt,.n-facts-dl dd{margin:0;padding:12px 0;border-bottom:1px solid var(--line);font-size:15px}
.n-facts-dl dt{padding-right:20px;color:var(--kick);font-weight:500}
.n-flag{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border-radius:14px;background:var(--accent);color:var(--deep);font-size:15px;line-height:1.5}
.n-flag .n-ic{margin-top:2px}
.n-out-small{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px}
.n-out-small .n-trip h3{font-size:clamp(24px,2.2vw,34px)}

/* seasons */
.n-seasons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:clamp(40px,5vw,64px)}
.n-season{display:flex;flex-direction:column;gap:12px;padding:clamp(22px,2.4vw,32px);border-radius:20px;background:var(--card)}
.n-season .n-ic{color:var(--kick)}
.n-season b{font-family:var(--disp);font-weight:var(--disp-w);font-size:clamp(32px,3.2vw,50px);line-height:1;letter-spacing:var(--disp-track)}
.n-season p{margin:0;font-size:16px;line-height:1.6;color:var(--mute)}

/* practical */
.n-prac{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:clamp(40px,5vw,64px)}
.n-tile{display:flex;flex-direction:column;gap:12px;padding:clamp(22px,2.4vw,32px);border-radius:20px;background:var(--card);border:1px solid var(--line)}
.n-tile h3{margin:0;display:flex;align-items:center;gap:10px;font-family:var(--mid);font-weight:600;font-size:19px;letter-spacing:var(--mid-track)}
.n-tile h3 .n-ic{color:var(--kick)}
.n-tile p{margin:0;font-size:16px;line-height:1.65;color:var(--mute)}
.n-tile.n-on-dark{background:var(--deep);border-color:var(--deep)}
.n-tile-sos b{font-family:var(--disp);font-weight:var(--disp-w);font-size:clamp(64px,6vw,96px);line-height:.9;letter-spacing:-.04em;color:var(--accent)}
.n-checked{margin:28px 0 0;font-size:14px;color:var(--mute)}

/* ask */
.n-ask-in{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:28px 56px}
.n-ask-in > div{display:flex;flex-direction:column;gap:20px;max-width:760px}
.n-ask-ctas{display:flex;flex-wrap:wrap;gap:10px}

@media (max-width:980px){
.n-ghero-grid,.n-walk{grid-template-columns:minmax(0,1fr)}
.n-ghero-ap{max-width:420px}
.n-walk-side{position:static}
.n-out-grid,.n-out-small,.n-seasons{grid-template-columns:minmax(0,1fr)}
.n-prac{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:700px){
.n-prac{grid-template-columns:minmax(0,1fr)}
.n-dist{grid-template-columns:minmax(0,1fr);gap:22px}
.n-dist-line{height:44px;width:2px;margin-left:14px;background:repeating-linear-gradient(180deg,currentColor 0 6px,transparent 6px 11px);transform-origin:top}
.n-dist-line::before{left:50%;top:-5px;margin:0 0 0 -5px}
.n-dist-line::after{left:50%;right:auto;top:auto;bottom:-5px;margin:0 0 0 -5px}
.n-dist-km{left:24px;top:50%;transform:translateY(-50%)}
.n-stop{grid-template-columns:48px minmax(0,1fr);gap:16px}
.n-stop-n{width:48px;height:48px;font-size:16px}
.n-route-rail{left:23px}
}

/* =====================================================================================
   Motion (guide). Replaces the GSAP / ScrollTrigger / Lenis script; see the note in base.css.
   ===================================================================================== */
.n{--expo:cubic-bezier(.16,1,.3,1);--p3:cubic-bezier(.215,.61,.355,1);--back2:cubic-bezier(.34,1.9,.64,1)}
@keyframes n-in{from{opacity:0;translate:0 22px}}
@keyframes n-ap-in{from{scale:1.2}}
@keyframes n-line-x{from{scale:0 1}}
@keyframes n-line-y{from{scale:1 0}}
@keyframes n-fade{from{opacity:0;translate:0 6px}}
@keyframes n-route{from{scale:1 0}}

@media (prefers-reduced-motion:no-preference){
/* on load: the title rises word by word, then the rest; the dotted line runs from NEBO to the square */
.n-gh1 .n-w{animation:n-word 1.2s var(--expo) both;animation-delay:calc(.1s + var(--wi,0) * .07s)}
.n-ghero [data-intro]{animation:n-in 1.1s var(--p3) both;animation-delay:calc(.4s + var(--di,0) * .08s)}
.n-ghero-l > :nth-child(3){--di:1}.n-ghero-l > :nth-child(4){--di:2}.n-ghero-ap{--di:3}
.n-ghero-ap img{animation:n-ap-in 2.2s var(--expo) .4s both}
.n-dist-line{animation:n-line-x 1.4s cubic-bezier(.87,0,.13,1) .9s both}
.n-dist-km{animation:n-fade .6s ease-out 1.7s both}
@media (max-width:700px){.n-dist-line{animation-name:n-line-y}}

@supports (animation-timeline:view()){
/* the route line fills as you walk down the stops; each stop number pops in */
.n-route-box{view-timeline:--route block;view-timeline-inset:0px}
.n-route-rail i{transform:none;transform-origin:top;animation:n-route linear both;animation-timeline:--route;animation-range:cover 38vh entry-crossing calc(100% + 38vh)}
.n-stop-n{animation:n-pop linear both;animation-timeline:view();animation-range:entry 0% entry 100%}
}
}
