/* The surface fills the final scene. Typography and two zoom controls float above it. */
.lunar-closing{--lc-white:#eae9e4;--lc-muted:#aaa9a2;--lc-red:#cd453b;--lc-inset:clamp(22px,4.8vw,92px);--lc-top:clamp(96px,11svh,132px);--lc-motion-state:paused;position:relative;isolation:isolate;height:100svh;min-height:0;padding:0;overflow:hidden;background:#030405;color:var(--lc-white);scroll-margin-top:0}
.lunar-closing .lc-heading{position:absolute;z-index:8;top:var(--lc-top);left:var(--lc-inset);width:min(58vw,840px);pointer-events:none}
.lunar-closing .lc-heading h2{margin:0;font-size:clamp(26px,3vw,54px);line-height:1.08;font-weight:400;letter-spacing:-.055em;text-shadow:0 2px 35px #000b}
.lunar-closing .lc-heading h2 span{display:block;margin-top:5px;color:transparent;-webkit-text-stroke:.65px #eae9e4c7}
.lunar-closing .lc-bar{display:contents}
.lunar-closing .lc-instructions{position:absolute;z-index:8;bottom:26px;left:var(--lc-inset);margin:0;color:#c0c1ba;font-size:7px;line-height:1.6;letter-spacing:.18em;text-shadow:0 2px 12px #000;pointer-events:none}
.lunar-closing .lc-divider{display:inline-block;margin:0 14px;color:var(--lc-red)}
.lunar-closing .lc-tools{display:none;position:absolute;z-index:9;right:var(--lc-inset);top:var(--lc-top);gap:0;border:1px solid #dfdfd336;background:#03040538;backdrop-filter:blur(8px)}
.lunar-closing.lc-ready .lc-tools{display:flex}
.lunar-closing .lc-tools button{display:grid;place-items:center;width:48px;height:48px;margin:0;padding:0;border:0;background:transparent;color:var(--lc-white);font:inherit;font-size:24px;font-weight:300;line-height:1;transition:background .3s,color .3s}
.lunar-closing .lc-tools button+button{border-left:1px solid #dfdfd326}
.lunar-closing .lc-tools button:disabled{opacity:.3}
.lunar-closing .lc-tools button:hover:not(:disabled){background:#e5e7df18;color:#fff}
.lunar-closing .lc-viewport{position:absolute;inset:0;overflow:hidden;isolation:isolate;outline:none;background:#030405;touch-action:pan-y;user-select:none;-webkit-user-select:none;cursor:grab}
.lunar-closing .lc-world{position:absolute;left:50%;top:50%;width:var(--lc-width,100%);height:var(--lc-height,100%);transform:translate(-50%,-50%);transform-origin:center}
.lunar-closing .lc-terrain{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:43% 48%;filter:grayscale(1) brightness(.40) contrast(1.22);transform:scale(1.12);translate:var(--lc-parallax-x,0px) var(--lc-parallax-y,0px);transition:translate 1.4s cubic-bezier(.22,.61,.36,1);pointer-events:none;-webkit-user-drag:none;animation:lc-orbital-drift 32s ease-in-out infinite alternate;animation-delay:-9s;animation-play-state:var(--lc-motion-state,paused)}
@keyframes lc-orbital-drift{from{transform:scale(1.12) translate3d(-1.6%,.8%,0) rotate(-.35deg)}to{transform:scale(1.21) translate3d(1.6%,-.8%,0) rotate(.35deg)}}
.lunar-closing .lc-shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(118deg,#080c0f00 15%,#05070b0c 35%,#02030575 77%,#010203ae),radial-gradient(ellipse at var(--lc-light-x,50%) var(--lc-light-y,50%),transparent 5%,#02030566 80%)}
/* A low grazing light moves independently of the camera, revealing the relief. */
.lunar-closing .lc-shade::after{content:"";position:absolute;inset:-35%;pointer-events:none;background:linear-gradient(112deg,transparent 25%,#e3e3de03 38%,#e3e3de16 49%,#e3e3de03 61%,transparent 74%);animation:lc-grazing-light 46s ease-in-out infinite alternate;animation-delay:-13s;animation-play-state:var(--lc-motion-state,paused)}
@keyframes lc-grazing-light{from{transform:translate3d(-22%,5%,0) rotate(-7deg);opacity:.55}to{transform:translate3d(22%,-5%,0) rotate(7deg);opacity:1}}
.lunar-closing .lc-locations{position:absolute;inset:0}
.lunar-closing .lc-node{position:absolute;z-index:2;left:var(--lc-x);top:var(--lc-y);transform:translate(-50%,-50%);display:flex;align-items:center;gap:14px;min-height:64px;padding:9px;color:var(--lc-white);text-decoration:none;text-shadow:0 2px 18px #000,0 0 30px #000;-webkit-user-drag:none}
.lunar-closing .lc-marker{position:relative;display:grid;place-items:center;flex:0 0 28px;width:28px;height:28px}
.lunar-closing .lc-marker::before{content:"";position:absolute;inset:0;border:1px solid #e4e5d946;border-radius:50%;transition:border-color .7s,transform .7s,background .7s}
.lunar-closing .lc-marker i{display:block;width:16px;height:10px;background:#e5e7df;-webkit-mask:url('assets/lua-moon.png') center/contain no-repeat;mask:url('assets/lua-moon.png') center/contain no-repeat;transition:background .7s}
.lunar-closing .lc-label{display:block;min-width:0}
.lunar-closing .lc-label small{display:block;margin-bottom:8px;font-size:6px;line-height:1.4;letter-spacing:.18em;color:#babdb4}
.lunar-closing .lc-label strong{display:block;font-size:clamp(19px,1.7vw,30px);font-weight:400;line-height:1;letter-spacing:-.045em;white-space:nowrap}
.lunar-closing .lc-note{display:block;margin-top:10px;font-size:8px;line-height:1.5;letter-spacing:.015em;color:#d0d2c8;white-space:nowrap;opacity:0;transform:translateY(3px);transition:opacity .5s,transform .5s}
.lunar-closing .lc-node:hover,.lunar-closing .lc-node:focus-visible{z-index:3;color:#fff}
.lunar-closing .lc-node:hover .lc-marker::before,.lunar-closing .lc-node:focus-visible .lc-marker::before{border-color:var(--lc-red);background:#cd453b18;transform:scale(1.14)}
.lunar-closing .lc-node:hover .lc-marker i,.lunar-closing .lc-node:focus-visible .lc-marker i{background:var(--lc-red)}
.lunar-closing .lc-node:hover .lc-note,.lunar-closing .lc-node:focus-visible .lc-note{opacity:1;transform:none}
.lunar-closing .lc-vignette{position:absolute;z-index:4;inset:0;pointer-events:none;background:linear-gradient(#020304dc,transparent 34%,transparent 75%,#020304b3),radial-gradient(ellipse at 40% 49%,transparent 32%,#010203a8 100%)}
.lunar-closing .lc-grain{position:absolute;z-index:5;inset:-2%;pointer-events:none;background:url('assets/grain.svg') repeat;background-size:120px;filter:grayscale(1);mix-blend-mode:screen;opacity:.17;animation:lc-film-grain .8s steps(1,end) infinite;animation-play-state:var(--lc-motion-state,paused)}
@keyframes lc-film-grain{0%,100%{transform:translate(0,0)}16%{transform:translate(-.4%,.2%)}33%{transform:translate(.2%,-.5%)}50%{transform:translate(-.3%,.4%)}66%{transform:translate(.5%,.1%)}83%{transform:translate(.1%,-.3%)}}
.lunar-closing .lc-viewport.is-dragging,.lunar-closing .lc-viewport.is-dragging *{cursor:grabbing!important}
.lunar-closing .lc-viewport.is-dragging .lc-note{opacity:0}
body.rec-cursor-ready .lunar-closing .lc-viewport,body.rec-cursor-ready .lunar-closing .lc-viewport.is-dragging *{cursor:none!important}
.lunar-closing a:focus-visible,.lunar-closing button:focus-visible{outline:1px solid #d8dfca;outline-offset:4px}
.lunar-closing .lc-viewport:focus-visible{outline:1px solid #d8dfca70;outline-offset:-8px}
.lunar-closing .lc-sr{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
@media(max-width:1000px){.lunar-closing .lc-node{gap:9px}.lunar-closing .lc-label strong{font-size:21px}.lunar-closing .lc-note{font-size:7px}}
@media(max-width:700px){
 .lunar-closing{--lc-top:96px;min-height:0}
 .lunar-closing .lc-heading{width:calc(100% - 2 * var(--lc-inset) - 110px)}
 .lunar-closing .lc-heading h2{font-size:clamp(21px,5.8vw,32px);line-height:1.12;letter-spacing:-.045em}
 .lunar-closing .lc-tools button{width:44px;height:44px;font-size:22px}
 .lunar-closing .lc-instructions{bottom:23px;font-size:6px;letter-spacing:.11em}
 .lunar-closing .lc-divider{margin:0 10px}
 .lunar-closing .lc-terrain{object-position:36% center;filter:grayscale(1) brightness(.45) contrast(1.18)}
 .lunar-closing .lc-node{gap:8px;min-height:56px;padding:5px}
 .lunar-closing .lc-node--films{--lc-x:27%!important;--lc-y:46%!important}
 .lunar-closing .lc-node--stories{--lc-x:73%!important;--lc-y:46%!important}
 .lunar-closing .lc-node--about{--lc-x:27%!important;--lc-y:65%!important}
 .lunar-closing .lc-node--education{--lc-x:73%!important;--lc-y:65%!important}
 .lunar-closing .lc-node--lab{--lc-x:27%!important;--lc-y:81%!important}
 .lunar-closing .lc-node--contact{--lc-x:73%!important;--lc-y:81%!important}
 .lunar-closing .lc-marker{flex-basis:22px;width:22px;height:22px}.lunar-closing .lc-marker i{width:13px;height:8px}
 .lunar-closing .lc-label small{font-size:5px;margin-bottom:6px;letter-spacing:.04em}
 .lunar-closing .lc-label strong{font-size:clamp(13px,3.5vw,23px);letter-spacing:-.05em}
 .lunar-closing .lc-note{display:none}
}
@media(max-height:700px) and (min-width:701px){.lunar-closing .lc-heading h2{font-size:clamp(26px,2.6vw,40px)}.lunar-closing .lc-heading{width:min(64vw,740px)}}
@media(max-height:480px){
 .lunar-closing{--lc-top:82px;min-height:360px}
 .lunar-closing .lc-heading{width:min(65vw,520px)}
 .lunar-closing .lc-heading h2{font-size:20px;line-height:1.08}
 .lunar-closing .lc-heading h2 span{margin-top:3px}
 .lunar-closing .lc-tools button{width:42px;height:42px}
 .lunar-closing .lc-instructions{bottom:13px;font-size:5px}
 .lunar-closing .lc-note,.lunar-closing .lc-label small{display:none}
 .lunar-closing .lc-label strong{font-size:14px}
 .lunar-closing .lc-node{min-height:44px}
 .lunar-closing .lc-node--films{--lc-x:22%!important;--lc-y:54%!important}
 .lunar-closing .lc-node--stories{--lc-x:51%!important;--lc-y:54%!important}
 .lunar-closing .lc-node--about{--lc-x:80%!important;--lc-y:54%!important}
 .lunar-closing .lc-node--education{--lc-x:22%!important;--lc-y:80%!important}
 .lunar-closing .lc-node--lab{--lc-x:51%!important;--lc-y:80%!important}
 .lunar-closing .lc-node--contact{--lc-x:80%!important;--lc-y:80%!important}
}
@media(prefers-reduced-motion:reduce){.lunar-closing .lc-terrain{animation:none;transform:scale(1.12);translate:none;transition:none}.lunar-closing .lc-shade::after{animation:none;transform:none;opacity:.55}.lunar-closing .lc-node *,.lunar-closing .lc-node *::before,.lunar-closing .lc-tools button{transition:none!important}}

@media(prefers-reduced-motion:reduce){.lunar-closing .lc-grain{animation:none;transform:none}}
