.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.curiosity-teaser{padding:38px 7% 16px;text-align:center;color:#737887;font-size:13px}.curiosity-teaser strong{font-weight:500;color:#272b36}.curiosity-teaser p{margin-top:9px}
.discovery-note{position:absolute;z-index:6;padding:10px 12px;color:#fff;pointer-events:none;text-shadow:0 1px 12px #000;font-size:12px;line-height:1.45}.discovery-note strong{display:block;font-size:12px;letter-spacing:.06em}.discovery-note p{font-size:11px;color:#d8e4ff;margin:8px 0 0}
.actor.absorbed{opacity:0!important;visibility:hidden;pointer-events:none!important}.build-rest-stage .actor.absorbed{opacity:1!important;visibility:visible}
.portal.receiving{filter:drop-shadow(0 0 23px #0040F7)!important}
.absorption-ghost{position:fixed;z-index:45;pointer-events:none;background:#061334;border:1px solid #0040F7;color:white;overflow:hidden;transform-origin:center;box-shadow:0 0 22px #0040f76a}.absorption-ghost button{color:inherit}.absorption-ghost .actor-detail{display:none}
.wormhole-experience{position:fixed;inset:0;z-index:80;isolation:isolate}.wormhole-experience canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.portal-arrival{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;color:white;text-align:center;padding:25px;animation:arrival-copy 1s ease both}.portal-arrival[hidden]{display:none}.portal-arrival p{font-size:11px;letter-spacing:.2em}.portal-arrival h2{font-size:clamp(28px,4.6vw,66px);font-weight:500;letter-spacing:-.05em;margin:15px 0 30px}.portal-arrival .button{border:0;cursor:pointer}.portal-arrival .button:hover{box-shadow:0 0 45px #0040f780}.portal-close{position:absolute;right:22px;top:18px;background:transparent;color:#bcc9ea;border:1px solid #ffffff30;border-radius:50%;width:36px;height:36px;cursor:pointer;font-size:23px}.wormhole-running .glass-cursor{display:none}.wormhole-running{overscroll-behavior:none}
@keyframes arrival-copy{from{opacity:0;filter:blur(5px)}to{opacity:1;filter:blur(0)}}
.actor-trigger{touch-action:pan-y!important}.discovery-active .actor,.discovery-active .actor *{touch-action:none!important}.actor-number{touch-action:none;display:inline-flex;min-width:40px;min-height:30px;align-items:center;cursor:grab}.actor.is-dragging .actor-number{cursor:grabbing}
.reduced-motion .portal-arrival{animation:none}.reduced-motion .discovery-note{transition:none}.reduced-motion .portal-ring{opacity:1!important}.reduced-motion .portal-brand{opacity:0!important}
@media(max-width:700px){.discovery-note strong{font-size:10px}.discovery-note p{font-size:10px}.portal-arrival h2{font-size:28px}.portal-arrival p{font-size:9px}.portal-arrival .button{font-size:13px}.actor-number{min-height:32px}}
.site-footer .motion-toggle{display:block!important;position:fixed;right:16px;bottom:12px;z-index:35;padding:7px 10px;border:1px solid #b6c0d430;border-radius:20px;background:#ffffffdf;color:#45516b;font-size:10px}.wormhole-running .site-footer .motion-toggle{display:none!important}
@media(max-width:700px){.discovery-note{padding:4px 6px;line-height:1.2}.discovery-note strong{font-size:9px;letter-spacing:.015em}.discovery-note p{font-size:9px;margin-top:5px}}
.reduced-motion .journey{height:740svh}.reduced-motion.journey-complete .journey{height:100svh}
/* Align with the lowercase m ink, below the capital T centre. */
.header .brand-caption{transform:translateY(7px)}
.discovery-note{color:#f1f6ff;text-shadow:0 1px 4px #000,0 0 14px #0040f799,0 0 30px #0040f750;animation:inscription-breath 7s ease-in-out infinite;will-change:translate}
.discovery-note strong{font-weight:500;letter-spacing:.1em}.discovery-note p{color:#e2ecff;letter-spacing:.025em;line-height:1.5}
@keyframes inscription-breath{0%,100%{filter:drop-shadow(0 0 2px #0040f740)}50%{filter:drop-shadow(0 0 9px #0040f790)}}
.singularity{position:absolute;width:76%;aspect-ratio:1;left:12%;top:50%;transform:translateY(-50%) scale(.2);opacity:0;transition:opacity 1.6s,transform 2.2s cubic-bezier(.2,.7,.2,1);pointer-events:none;perspective:700px}
.event-horizon{position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle,#000 0 62%,#02051b 66%,#0040F7 70%,#a2caff 71%,#0040F7 73%,transparent 77%);box-shadow:0 0 22px #0040f799,inset 0 0 16px #0040F7;animation:horizon-axis 5s linear infinite}
.event-horizon:after{content:'';position:absolute;inset:-9%;border-radius:50%;border:2px solid #0040F7;box-shadow:0 0 15px #0040F7;transform:rotateX(68deg) rotateZ(-20deg)}
.has-singularity .singularity{opacity:1;transform:translateY(-50%) scale(1)}
@keyframes horizon-axis{0%{transform:rotateY(-12deg) rotateZ(0)}50%{transform:rotateY(12deg) rotateZ(180deg)}100%{transform:rotateY(-12deg) rotateZ(360deg)}}
.reduced-motion .event-horizon,.reduced-motion .discovery-note{animation:none}.reduced-motion .singularity{transition:none}
.reduced-motion.has-singularity .ink-morph{animation:none!important}.reduced-motion .has-singularity .ink-morph,.reduced-motion .has-singularity .portal-ring,.reduced-motion .has-singularity .portal-brand{animation:none!important;opacity:0!important}
.story-word>span{display:inline-block;will-change:translate}
.discovery-note{pointer-events:auto;cursor:grab;touch-action:none;isolation:isolate;animation:starlight-reveal 1.8s cubic-bezier(.16,.8,.2,1) both,inscription-breath 7s 1.8s ease-in-out infinite}
.discovery-note:before{content:'✧';position:absolute;left:50%;top:50%;font-size:34px;color:#fff;text-shadow:0 0 10px white,0 0 25px #0040F7;pointer-events:none;animation:star-unfold 1.8s ease-out both}
.discovery-note strong{font-family:Georgia,serif;font-size:14px;font-weight:400;letter-spacing:.10em;line-height:1.45}
.discovery-note p{font-size:11px;line-height:1.5;font-weight:300;color:#e2ecff}
.discovery-note .story-word>span{animation:none;text-shadow:0 0 10px #0040f799,0 1px 3px #000}
@keyframes starlight-reveal{0%{scale:.04;opacity:0;filter:blur(4px)}20%{scale:.13;opacity:1;filter:blur(1px)}100%{scale:1;opacity:1;filter:blur(0)}}
@keyframes star-unfold{0%,20%{opacity:1;transform:translate(-50%,-50%) scale(2)}100%{opacity:0;transform:translate(-50%,-50%) scale(.3)}}
.captured-letter{position:absolute;z-index:3;pointer-events:none;white-space:pre;text-shadow:0 0 12px #0040F7;transform-origin:center}
.wormhole-running .portal{transform-origin:center!important}
.wormhole-running .discovery-note{animation:none!important}
.reduced-motion .charged-infinity .ink-morph,.reduced-motion .charged-infinity .portal-ring,.reduced-motion .discovery-note,.reduced-motion .discovery-note:before{animation:none!important}
@media(max-width:700px){.discovery-note strong{font-size:11px;letter-spacing:.06em}.discovery-note p{font-size:10px}}

/* Rotation and collapse share one continuous phase owned by discovery.js. */
.charged-infinity .ink-morph,.charged-infinity .portal-ring,.has-singularity .ink-morph,.has-singularity .portal-ring,.has-singularity .portal-brand{animation:none!important;transform-origin:center}
.has-singularity .portal-brand{opacity:0!important}
.singularity{transition:none}
.event-horizon{animation:none;background:radial-gradient(circle,#000 0 65%,#000 68%,#0040F7 71%,#dae4ff 71.5%,#0040F7 73%,transparent 77%)}
.absorption-wave{filter:brightness(2) saturate(0)!important}

.absorption-wave{background:radial-gradient(circle at var(--wave-x) var(--wave-y),transparent max(0px,calc(var(--wave-radius) - 90px)),#ffffff60 var(--wave-radius),transparent calc(var(--wave-radius) + 90px))}

.blue-line{display:none!important}
@keyframes story-flow{0%,7%,100%{color:rgb(calc(242 - var(--beam,0)*242),calc(246 - var(--beam,0)*182),calc(255 - var(--beam,0)*8));text-shadow:0 0 calc(5px + var(--beam,0)*22px) #0040F7}2%,4%{color:#fff;text-shadow:0 0 5px #fff,0 0 16px #e1e7ef,0 0 30px #c1ccdc80}}
.discovery-note .story-word>span{color:rgb(calc(242 - var(--beam,0)*242),calc(246 - var(--beam,0)*182),calc(255 - var(--beam,0)*8))}
.portal-arrival{background:radial-gradient(ellipse at center,#00030c70,transparent 52%)}

.is-dream .portal:before{content:'';position:absolute;pointer-events:none;left:50%;top:50%;width:260vw;height:70px;transform:translate(-50%,-50%) rotate(var(--beam-angle,0deg));background:linear-gradient(transparent,#0040f71c 43%,#0040f738 50%,#0040f71c 57%,transparent);mask-image:linear-gradient(90deg,transparent,#000 25%,transparent 47%,transparent 53%,#000 75%,transparent);filter:blur(8px)}
.wormhole-running .portal:before,.reduced-motion .portal:before{display:none}

/* Light exists only in glyph shading, never as a visible beam over the scene. */
.is-dream .portal:before{display:none!important}
.discovery-note{animation:starlight-reveal 3.2s cubic-bezier(.16,.8,.2,1) both,inscription-breath 7s 3.2s ease-in-out infinite}
.discovery-note:before{animation-duration:3.2s}
.discovery-note strong{font-size:16px;line-height:1.55;letter-spacing:.065em}
.discovery-note p{font-size:13px;line-height:1.6}
.event-horizon{background:radial-gradient(circle,#000 0 63%,#01020a 66%,#99bcff 68%,#0040F7 70%,#00134d 74%,transparent 80%);box-shadow:0 0 35px #0040f7bb,0 0 75px #0040f766}
.event-horizon:after{inset:-24%;border:0;transform:rotate(-18deg) scaleY(.3);background:conic-gradient(from 20deg,transparent,#0040F7,#e1ecff,#0040F7,transparent,#0040f799,#b2d1ff,transparent);mask-image:radial-gradient(ellipse,transparent 43%,#000 51%,#0008 60%,transparent 72%);filter:blur(2px);box-shadow:none}
.event-horizon:before{content:'';position:absolute;inset:-9%;border-radius:50%;background:radial-gradient(ellipse at 50% 46%,transparent 55%,#0040f766 60%,#d7e5ffbb 62%,#0040F7 64%,transparent 69%);transform:scaleY(1.13)}
.portal-contact{width:min(420px,90vw);text-align:left;display:grid;gap:13px;padding:22px;background:#020816dd;border:1px solid #0040f766;border-radius:18px;animation:arrival-copy .7s ease both}
.portal-contact[hidden],.portal-action[hidden]{display:none}
.portal-contact label{display:grid;gap:6px;font-size:12px;color:#dfe8ff}.portal-contact input,.portal-contact textarea{width:100%;box-sizing:border-box;background:#ffffff09;border:1px solid #acbfff55;border-radius:7px;padding:10px;color:white;font:inherit}.portal-contact input:focus,.portal-contact textarea:focus{outline:2px solid #0040F7}.contact-open h2{font-size:clamp(24px,3vw,40px);margin:10px 0 18px}.portal-contact .contact-status{font-size:12px;letter-spacing:0;line-height:1.5;margin:0}.portal-arrival.contact-open{overflow:auto;justify-content:safe center}.welcome-back{position:fixed;z-index:100;left:50%;top:100px;transform:translateX(-50%);padding:14px 24px;background:#07122ded;border:1px solid #0040F7;color:white;border-radius:30px;animation:arrival-copy .8s ease both}
@media(max-width:700px){.discovery-note strong{font-size:13px}.discovery-note p{font-size:12px}}

.black-hole-light{position:absolute;left:-65%;top:-65%;width:230%;height:230%;pointer-events:none}

/* Inscriptions reveal without a decorative star. */
.discovery-note:before{content:none;display:none}

.jury-note{margin:24px auto;padding:16px 24px;max-width:760px;color:#535865;font-size:14px;line-height:1.7}.jury-note summary{font-size:11px;letter-spacing:.16em;padding:8px 0}.jury-note p{max-width:65ch}.site-footer>a{padding:8px;align-self:center}.site-footer>a:focus-visible{outline:2px solid #0040F7}

.wormhole-covered main,.wormhole-covered header,.wormhole-covered .site-footer,.wormhole-covered .curiosity-teaser{visibility:hidden}

/* Transparent overscan rotates with the ink; the artwork retains its original size. */
.ink-morph{inset:-30%;width:160%;height:160%;filter:none}
/* Luminous letters breathe without animating costly blur over the entire note. */
.discovery-note{animation:note-unfold 2.6s cubic-bezier(.2,.65,.2,1) both;filter:none}
.discovery-note strong{font-style:italic;font-size:18px;line-height:1.5}
.discovery-note p{font-size:14px;line-height:1.65}
.discovery-note strong .story-word{animation:note-lustre 8s ease-in-out infinite}
.discovery-note strong .story-word:nth-child(2n){animation-delay:-2s}
.discovery-note strong .story-word:nth-child(3n){animation-delay:-4s}
@keyframes note-unfold{from{opacity:0;scale:.55;filter:none}45%{opacity:.8}to{opacity:1;scale:1;filter:none}}
@keyframes note-lustre{0%,100%{color:#dae7ff;text-shadow:0 1px 4px #000,0 0 8px #0040F7}50%{color:white;text-shadow:0 1px 4px #000,0 0 16px #0040F7,0 0 3px #fff}}
@media(max-width:700px){.discovery-note strong{font-size:14px}.discovery-note p{font-size:12px}}
.reduced-motion .discovery-note,.reduced-motion .discovery-note .story-word{animation:none!important}
@media(max-width:700px){
 .discovery-note{padding:4px 6px;text-shadow:0 1px 3px #000}
 .discovery-note strong{font-size:11px;line-height:1.35;letter-spacing:.025em}
 .discovery-note p{font-size:10px;line-height:1.4;margin-top:5px}
 .discovery-note strong .story-word{animation:none}
 .discovery-note .story-word>span{text-shadow:0 1px 3px #000}
}

/* Covered dream stays cached for the homepage, but its effects are suspended. */
.wormhole-covered main *,.wormhole-covered header *{animation-play-state:paused!important}

/* Retire residual white absorption waves as the black hole takes over. */
.wormhole-running .absorption-wave{display:none!important}
.has-singularity .portal-ring .core{stroke:#0040F7}

.site-footer .motion-toggle{background:transparent;border-color:transparent;opacity:.38;font-size:9px;min-height:44px;bottom:max(0px,env(safe-area-inset-bottom));transition:opacity .2s}
.site-footer .motion-toggle:hover,.site-footer .motion-toggle:focus-visible{opacity:1}
.portal-close{width:44px;height:44px;border-color:transparent;background:transparent;font-size:18px;opacity:.4;transition:opacity .2s}
.portal-close:hover,.portal-close:focus-visible{opacity:1}
.wormhole-experience:focus{outline:none}
