/* A sculpted, softly lit space. The hosts and every link stay on a separate layer. */
.portal-site #home.hero{background:#f1f8fc}
.atelier-world{position:absolute;inset:0;z-index:-3;overflow:hidden;pointer-events:none;background:radial-gradient(ellipse at 74% 28%,#fff 0%,#e9f4fa 32%,transparent 58%),linear-gradient(110deg,#f8fcff 28%,#d5e8f2 68%,#c1d8e6 100%)}
.atelier-ambient{position:absolute;inset:0;background:radial-gradient(ellipse at 93% 48%,#ecb98f36,transparent 33%),radial-gradient(ellipse at 53% 8%,#62a9d734,transparent 38%);animation:atelier-light 9s ease-in-out infinite alternate}
.atelier-world:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#f7fbff 0%,#f7fbffcf 24%,#f7fbff00 53%),linear-gradient(0deg,#f1f8fc 0%,#f1f8fc00 44%)}
.atelier-horizon{position:absolute;left:30%;right:-30%;top:62%;height:50%;border-radius:50%;border-top:1px solid #ffffffc4;background:linear-gradient(180deg,#fcffff66,transparent 45%);transform:rotate(-8deg)}
.atelier-scene{position:absolute;inset:-32% -21% -24% -17%;z-index:-2;pointer-events:none;mask-image:radial-gradient(ellipse at 54% 49%,#000 46%,#000c 60%,transparent 76%);-webkit-mask-image:radial-gradient(ellipse at 54% 49%,#000 46%,#000c 60%,transparent 76%)}
.atelier-film{display:block;width:100%;height:100%;object-fit:cover;pointer-events:none}
.atelier-ground{position:absolute;left:-8%;right:-6%;bottom:15px;height:85px;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at center,#5f91af40 0%,#b2d2df29 35%,transparent 69%);filter:blur(5px);transform:rotate(-3deg)}
@keyframes atelier-light{from{transform:translate3d(-3%,2%,0);opacity:.7}to{transform:translate3d(3%,-2%,0);opacity:1}}
@media(max-width:900px) and (min-width:641px){.atelier-scene{inset:-24% -35% -20% -27%}}
@media(max-width:640px){
 .atelier-world{background:radial-gradient(ellipse at 59% 55%,#fff 0%,#e0eef7 31%,transparent 55%),linear-gradient(160deg,#f8fcff 22%,#cddfe9 64%,#edf6fc 90%)}
 .atelier-world:after{background:linear-gradient(180deg,#f7fbfff0 0%,#f7fbffb0 26%,#f7fbff00 44%,#f1f8fc00 71%,#f1f8fc 94%)}
 .atelier-horizon{left:-40%;top:61%;right:-50%;height:25%}
 .atelier-scene{inset:-32% -18% -29%;mask-image:radial-gradient(ellipse at 53% 48%,#000 48%,#000b 62%,transparent 79%);-webkit-mask-image:radial-gradient(ellipse at 53% 48%,#000 48%,#000b 62%,transparent 79%)}
 .atelier-ground{height:46px;bottom:24px}
}
@media(prefers-reduced-motion:reduce){.atelier-ambient{animation:none}}

/* A typographic credit, aligned to the artwork rather than a floating card. */
.portal-site .invitation-stage .stage-names{left:12%;right:6%;bottom:-10px;display:grid;grid-template-columns:max-content 18px max-content minmax(38px,1fr);grid-template-rows:auto auto;column-gap:22px;row-gap:7px;align-items:center;align-content:center;min-height:76px;padding:13px 19px 12px;border:0;border-radius:0;--credit-wash:242 249 253;background:linear-gradient(90deg,transparent,#6baedaa6 13%,#9bbacb55 38%,#ccd8dd55 58%,#d59e7980 85%,transparent) center top / calc(100% - 38px) 1px no-repeat;box-shadow:none;backdrop-filter:none;color:#203c52;text-decoration:none;outline-offset:5px;isolation:isolate}
/* Only the backing fades. Names, hit area and focus ring stay fully opaque. */
.portal-site .stage-names:before{content:"";position:absolute;inset:-10px -26px -14px;z-index:-1;background:linear-gradient(180deg,transparent,rgb(var(--credit-wash) / .86) 32%,rgb(var(--credit-wash) / .82) 58%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 16%,#000 84%,transparent);mask-image:linear-gradient(90deg,transparent,#000 16%,#000 84%,transparent);pointer-events:none}
.portal-site .stage-names:after{content:"";position:absolute;left:19px;right:19px;bottom:4px;height:1px;background:linear-gradient(90deg,transparent,#3d83b6 16%,#d8a075 84%,transparent);transform:scaleX(0);transform-origin:left;opacity:.5;transition:transform .55s cubic-bezier(.2,.7,.2,1);pointer-events:none}
/* Share label and name rows; the join is centered on the names themselves. */
.portal-site .stage-names .stage-person{display:contents;letter-spacing:0}
.portal-site .stage-person-ku>small,.portal-site .stage-person-ku>strong{grid-column:1}
.portal-site .stage-person-noah>small,.portal-site .stage-person-noah>strong{grid-column:3}
.portal-site .stage-names .stage-person>small{grid-row:1;justify-self:start}
.portal-site .stage-names .stage-person>strong{grid-row:2;justify-self:start;align-self:center}
.portal-site .stage-names .stage-person small{display:flex;align-items:center;gap:7px;font:500 7px/1.2 var(--latin);letter-spacing:.2em;color:#60798b;white-space:nowrap}
.portal-site .stage-names .stage-person i{display:block;width:14px;height:1px;border-radius:0;background:#4c99ce}
.portal-site .stage-names .stage-person-noah i{background:#cb8955}
.portal-site .stage-names .stage-person strong{font:600 clamp(16px,1.5vw,23px)/1.3 var(--latin);letter-spacing:-.025em;white-space:nowrap;transition:color .3s}
.portal-site .stage-names .stage-person-noah strong{font-family:var(--font);font-weight:600;letter-spacing:.04em;font-size:clamp(17px,1.5vw,23px)}
.portal-site .stage-names .stage-join{display:block;grid-column:2;grid-row:2;align-self:center;font:300 20px/1 var(--latin);color:#8ca4b4;transform:none;text-align:center}
.portal-site .stage-names .stage-profile{grid-column:4;grid-row:1 / 3;justify-self:end;display:flex;align-items:center;gap:13px;justify-content:flex-end;white-space:nowrap;color:#476c85;font:500 9px/1.5 var(--font);letter-spacing:.07em}
.portal-site .stage-profile svg{width:38px;height:38px;padding:11px;border:1px solid #a4bfce9c;border-radius:50%;background:#ffffff50;transition:transform .35s,background .35s,border-color .35s;color:#326482;flex-shrink:0}
@media(hover:hover) and (pointer:fine){.portal-site .stage-names:hover:after{transform:scaleX(1)}.portal-site .stage-names:hover .stage-profile svg{transform:translate(2px,-2px);background:#fff;border-color:#799db7}.portal-site .stage-names:hover .stage-person-ku strong{color:#286e9d}.portal-site .stage-names:hover .stage-person-noah strong{color:#a36c44}}
.portal-site .stage-names:focus-visible{outline:2px solid #4e8bba}.portal-site .stage-names:focus-visible:after{transform:scaleX(1)}
@media(max-width:1150px) and (min-width:641px){.portal-site .invitation-stage .stage-names{left:5%;right:4%;padding-inline:12px;column-gap:14px;background-size:calc(100% - 24px) 1px}.portal-site .stage-names:after{left:12px;right:12px}.portal-site .stage-profile>span{display:none}.portal-site .stage-names .stage-person small{font-size:6px;letter-spacing:.15em}.portal-site .stage-names .stage-person strong{font-size:17px}.portal-site .stage-names .stage-person-noah strong{font-size:18px}}
@media(max-width:800px) and (min-width:641px){.portal-site .invitation-stage .stage-names{column-gap:10px;grid-template-columns:max-content 10px max-content minmax(30px,1fr)}.portal-site .stage-names .stage-person strong{font-size:14px}.portal-site .stage-names .stage-person-noah strong{font-size:15px}.portal-site .stage-names .stage-person i{width:9px}.portal-site .stage-profile svg{width:30px;height:30px;padding:8px}}
@media(max-width:640px){
 .portal-site .invitation-stage,.portal-site .has-combined-art .invitation-stage{height:calc(56vw + 82px);min-height:274px;max-height:399px}
 .portal-site .unit-invitation,.portal-site .has-combined-art .unit-invitation{inset:0 0 82px}
 .portal-site .invitation-stage .stage-names{left:7%;right:7%;bottom:0;min-height:74px;padding:12px 2px 14px;grid-template-columns:max-content 12px max-content minmax(32px,1fr);column-gap:clamp(14px,4.5vw,22px);row-gap:7px;--credit-wash:241 248 252;background-size:calc(100% - 4px) 1px}
 .portal-site .stage-names:after{left:2px;right:2px}.portal-site .stage-names .stage-person small{font-size:6px;letter-spacing:.12em;gap:5px}.portal-site .stage-names .stage-person i{width:10px}.portal-site .stage-names .stage-person strong{font-size:clamp(14px,4vw,19px)}.portal-site .stage-names .stage-person-noah strong{font-size:clamp(15px,4.3vw,20px);letter-spacing:.025em}.portal-site .stage-names .stage-join{font-size:16px;transform:none}.portal-site .stage-profile>span{display:none}.portal-site .stage-profile svg{width:32px;height:32px;padding:9px}
}
@media(max-width:360px){.portal-site .invitation-stage .stage-names{left:6%;right:6%;column-gap:12px;grid-template-columns:max-content 10px max-content minmax(28px,1fr)}.portal-site .stage-names .stage-person small{font-size:5px;letter-spacing:.1em}.portal-site .stage-names .stage-person strong{font-size:13px}.portal-site .stage-names .stage-person-noah strong{font-size:14px}.portal-site .stage-profile svg{width:28px;height:28px;padding:7px}}
@media(prefers-reduced-motion:reduce){.portal-site .stage-names:after,.portal-site .stage-names strong,.portal-site .stage-profile svg{transition:none}}
.motion-paused .stage-names:after,.motion-paused .stage-names strong,.motion-paused .stage-profile svg{transition:none}

/* Two sculpted ribbons form a small gateway in the duo's colors. */
.gateway-beacon{display:inline-grid;place-items:center;width:30px;height:30px;flex:0 0 30px;line-height:0}
.gateway-beacon svg{display:block;width:100%;height:100%;overflow:visible}
.gateway-beacon .beacon-orbits{transform-box:view-box;transform-origin:50% 50%;animation:waypoint-orbit 8s ease-in-out infinite}
.gateway-beacon .beacon-core{transform-box:view-box;transform-origin:50% 50%;animation:waypoint-glint 4s ease-in-out infinite}
.gateway-beacon .beacon-halo{opacity:.45;animation:waypoint-halo 4s ease-in-out infinite}
@keyframes waypoint-orbit{0%,100%{transform:rotate(-6deg)}50%{transform:rotate(6deg)}}
@keyframes waypoint-glint{0%,100%{opacity:.75;transform:scale(.93)}50%{opacity:1;transform:scale(1.08)}}
@keyframes waypoint-halo{0%,100%{opacity:.35}50%{opacity:.7}}
@media(max-width:640px){.gateway-beacon{width:24px;height:24px;flex-basis:24px}.portal-site .hero .eyebrow{gap:9px}}
@media(prefers-reduced-motion:reduce){.gateway-beacon .beacon-orbits,.gateway-beacon .beacon-core,.gateway-beacon .beacon-halo{animation:none;transform:none}.gateway-beacon .beacon-core{opacity:1}.gateway-beacon .beacon-halo{opacity:.45}}
.motion-paused .gateway-beacon .beacon-orbits,.motion-paused .gateway-beacon .beacon-core,.motion-paused .gateway-beacon .beacon-halo{animation:none;transform:none}.motion-paused .gateway-beacon .beacon-core{opacity:1}.motion-paused .gateway-beacon .beacon-halo{opacity:.45}

/* A quieter waypoint accompanies the first-step invitation. */
.gateway-beacon.guide-beacon{display:grid;width:44px;height:44px;margin:0 0 20px;pointer-events:none}
.guide-beacon .beacon-orbits{animation-duration:12s}
.guide-beacon .beacon-core,.guide-beacon .beacon-halo{animation-duration:6s}
.guide-beacon .beacon-trace{animation:first-step-trace 10s linear infinite;opacity:.9}
@keyframes first-step-trace{from{stroke-dashoffset:0}to{stroke-dashoffset:-100}}
@media(max-width:640px){.gateway-beacon.guide-beacon{width:38px;height:38px;margin-bottom:18px}}
@media(prefers-reduced-motion:reduce){.guide-beacon .beacon-trace{animation:none;opacity:.65}}
.motion-paused .guide-beacon .beacon-trace{animation:none;opacity:.65}

/* The artist's signature belongs to the artwork, outside the profile link. */
.portal-site .artwork-credit{position:absolute;top:calc(100% + 9px);left:12%;right:6%;margin:0;padding:0 19px;display:flex;align-items:baseline;justify-content:flex-end;gap:12px;line-height:1.8;letter-spacing:.04em;color:#587285;font-size:10px;white-space:nowrap}
.portal-site .artwork-credit-name{font-size:12px;font-weight:500;letter-spacing:.12em;color:#355368}
.portal-site .artwork-credit-name:before{content:"";display:inline-block;vertical-align:middle;width:15px;height:1px;background:linear-gradient(90deg,#80b8d5,#d8a77f);margin-right:12px;transform:translateY(-1px)}
@media(max-width:1150px) and (min-width:641px){.portal-site .artwork-credit{left:5%;right:4%;padding-inline:12px;font-size:9px;gap:9px}.portal-site .artwork-credit-name{font-size:11px}}
@media(max-width:640px){.portal-site .invitation-stage,.portal-site .has-combined-art .invitation-stage{margin-bottom:25px}.portal-site .artwork-credit{top:calc(100% + 1px);left:7%;right:7%;padding:0 2px;gap:10px;font-size:9px}.portal-site .artwork-credit-name{font-size:11px;letter-spacing:.1em}.portal-site .artwork-credit-name:before{width:12px;margin-right:10px}}
