.entry{position:fixed;inset:0;z-index:60;isolation:isolate;background:#061829;overflow:clip;color:#dcebef}
.entry-gated .entry[hidden]{display:block!important}
.entry-gated .hero-copy,.entry-gated .hero-art{visibility:hidden}
.entry-gated .site-header{visibility:hidden}
.entry-gated .experience-controls{z-index:75}
.entry-atmosphere{position:absolute;inset:-25%;background:radial-gradient(ellipse at 55% 55%,#1a627766,transparent 48%),radial-gradient(ellipse at 25% 60%,#327e8b22,transparent 40%);opacity:.7;pointer-events:none}
.entry-horizon{position:absolute;left:10%;right:10%;top:59%;height:1px;background:linear-gradient(90deg,transparent,#83d4dc66,transparent);box-shadow:0 0 80px 30px #4c9bb015;opacity:.5}
.entry-actions{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:25px;z-index:6}
#entry-status{font:400 12px/1.5 Manrope,sans-serif;min-height:18px;color:#a4cbd5;letter-spacing:.04em}
#entry-start{font:500 clamp(27px,3vw,42px)/1.2 Sora,sans-serif;color:#dcebef;display:flex;align-items:center;gap:45px;background:none;border:0;border-bottom:1px solid #91c6d575;padding:18px 0;cursor:pointer}
#entry-start:disabled{opacity:.4;cursor:wait}#entry-start span{color:#9fe7e1;font-size:.7em}
#entry-skip,#entry-omit{font:400 13px/1.5 Manrope,sans-serif;background:none;color:#accfd6;border:0;padding:12px;cursor:pointer}
#entry-omit{position:absolute;right:5vw;top:26px;z-index:8}
.entry button:focus-visible{outline:2px solid #a5f0e2;outline-offset:8px}
.entry-names{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:clamp(18px,3vw,55px);font:600 clamp(55px,7.8vw,125px)/1.1 Sora,sans-serif;letter-spacing:-.06em;z-index:4;pointer-events:none}
.entry-names span{opacity:0;display:block}.entry-last{color:#a4e5e3}
.entry-vessel{position:absolute;width:min(76vh,650px,78vw);aspect-ratio:1;left:50%;top:50%;transform:translate(-50%,-48%);pointer-events:none;opacity:0;transform-origin:50% 57%;z-index:3}
.entry-vessel img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 0 18px #3c9abf33)}
.entry-ship{mask-image:linear-gradient(#000 79%,transparent 89%)}
.entry-sea{mask-image:linear-gradient(transparent 79%,#000 87%)}
.entry-blue{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 53% 55%,#155b83,#082d49 56%,#061829);opacity:0;z-index:5}
.entry-replay{font:400 11px/1.5 Manrope,sans-serif;background:none;border:0;border-bottom:1px solid #83bcc34d;padding:8px 0;margin-top:20px;color:#a8c8d2;cursor:pointer;width:max-content}
.entry-gated.entry-revealing .hero-copy,.entry-gated.entry-revealing .hero-art{visibility:visible}
.entry-revealing .entry{background:transparent;pointer-events:none}.entry-revealing #entry-omit{pointer-events:auto}
.entry[data-state=playing] .entry-actions{display:none}
@media(max-width:640px){.entry-names{flex-direction:column;gap:8px;font-size:clamp(43px,12vw,72px)}.entry-vessel{width:min(94vw,66vh)}#entry-omit{top:22px;right:20px}.entry-replay{margin-top:12px}.entry-horizon{left:4%;right:4%}}
@media(max-height:560px) and (min-width:641px){.entry-vessel{width:80vh}.entry-names{font-size:7vw}}
@media(prefers-reduced-motion:reduce){.entry *{animation:none!important;transition:none!important}}
@media print{.entry,.entry-replay{display:none!important}.entry-gated .hero-copy,.entry-gated .hero-art,.entry-gated .site-header{visibility:visible}}
.entry-gated .experience-controls{visibility:hidden}
.entry-horizon{display:none}
.entry{background:#041729}
.entry-atmosphere{background:radial-gradient(ellipse at 54% 49%,#157b914f,transparent 36%),radial-gradient(ellipse at 37% 40%,#17468855,transparent 44%),radial-gradient(ellipse at 68% 65%,#19a8ab20,transparent 40%);opacity:1}
.entry-actions{gap:0}
#entry-start{position:relative;display:block;width:190px;height:190px;border:0;border-radius:50%;padding:0;background:radial-gradient(circle,#1a769522,#0a32461a 58%,transparent 70%);transition:filter .35s,scale .35s;cursor:pointer;isolation:isolate}
#entry-start:before{content:'';position:absolute;inset:-65%;border-radius:50%;background:radial-gradient(circle,#57b5d62e,transparent 64%);filter:blur(18px);pointer-events:none}
#entry-start:after{content:'';position:absolute;inset:15px;border-radius:50%;border:1px solid #71ccd02c;box-shadow:inset 0 0 40px #48a0c215,0 0 50px #50a5c51a}
#entry-start:hover,#entry-start:focus-visible{filter:brightness(1.45);scale:1.05;outline-offset:14px}
#entry-start:disabled{opacity:.75;cursor:progress}
.entry-orbit{position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 0deg,transparent 8%,#2c6d8b33 38%,#77d9dc 74%,#d1f6f2 82%,transparent 97%);mask:radial-gradient(farthest-side,transparent calc(100% - 2px),#000 calc(100% - 1px));animation:entry-orbit 8s linear infinite;filter:drop-shadow(0 0 8px #7cd5e8)}
.entry-core{position:absolute;inset:36px;border-radius:50%;background:radial-gradient(circle at 37% 32%,#95e2e54d,transparent 60%),radial-gradient(circle at 65% 67%,#39a6bb44,transparent 65%);box-shadow:0 0 65px #258ba322;animation:entry-breath 3.6s ease-in-out infinite}
.entry[data-state=preparing] .entry-orbit{animation-duration:1.2s}.entry[data-state=preparing] .entry-core{opacity:.3}
@keyframes entry-orbit{to{rotate:360deg}}
@keyframes entry-breath{0%,100%{scale:.88;opacity:.55}50%{scale:1.06;opacity:1}}
.entry-names{font-family:var(--editorial);font-weight:400;letter-spacing:-.045em;font-size:clamp(62px,8.5vw,132px)}
.enterprise .identity-name{font-family:var(--editorial);font-weight:400;letter-spacing:-.055em}
@media(max-width:640px){#entry-start{width:155px;height:155px}.entry-names{font-size:clamp(52px,15vw,82px);gap:12px}.enterprise .experience-controls button span{display:inline}.enterprise .experience-controls button{width:auto;padding:6px 9px;height:auto;font-size:9px}.entry-gated .experience-controls{display:none!important}}
body.motion-paused .entry-orbit,body.motion-paused .entry-core{animation:none}
@media(prefers-reduced-motion:reduce){.entry-orbit,.entry-core{animation:none}}

.entry-names{z-index:7}.entry-names span{transform-origin:top left}
.enterprise .identity-first{color:inherit}.identity-first,.identity-last{display:inline-block}
.enterprise .hero-art:not(.entry-foreground) img{animation:entry-landscape-life 14s ease-in-out infinite;transform-origin:55% 55%}
@keyframes entry-landscape-life{0%,100%{transform:scale(1.015) translateY(0)}50%{transform:scale(1.045) translateY(-5px)}}
body.motion-paused .hero-art img{animation:none!important}
@media(prefers-reduced-motion:reduce){.enterprise .hero-art img{animation:none!important}}

.enterprise .identity-name .identity-first{color:#dcebef}.entry-names{letter-spacing:-.055em;line-height:1.06}
.entry-names{text-shadow:0 2px 12px #031322,0 0 30px #031322}

/* Loading rotates; readiness resolves into a stable, tactile entrance. */
.entry[data-state=preparing] .entry-orbit{animation:entry-orbit .65s linear infinite;filter:drop-shadow(0 0 13px #70dbe8)}
.entry[data-state=preparing] .entry-core{animation:entry-charge .7s ease-in-out infinite;opacity:.65}
.entry:is([data-state=preparing],[data-state=ready],[data-state=playing]) .entry-orbit{animation:entry-arrive .65s cubic-bezier(.16,.8,.2,1) both;rotate:0deg;background:conic-gradient(from 15deg,#60ccd477,#d3fff5,#5a99ca99,#79e1db);filter:drop-shadow(0 0 12px #6bdde3)}
.entry:is([data-state=preparing],[data-state=ready],[data-state=playing]) .entry-core{inset:28px;background:radial-gradient(circle at 37% 30%,#bef6ee99,#369fbd70 42%,#12516c77 72%);border:1px solid #b1f7ed55;box-shadow:inset 0 0 30px #a6eee933,0 0 70px #39a8c455;animation:entry-invite 2.5s ease-in-out infinite}
.entry:is([data-state=preparing],[data-state=ready],[data-state=playing]) #entry-start:after{inset:0;border-color:#9fece5;animation:entry-ripple 2.5s ease-out infinite;pointer-events:none}
.entry:is([data-state=preparing],[data-state=ready],[data-state=playing]) #entry-start:before{background:radial-gradient(circle,#57cdd54d,transparent 65%)}
#entry-start:hover .entry-core,#entry-start:focus-visible .entry-core{background:radial-gradient(circle at 37% 30%,#dcfff3bb,#47bfd38c 46%,#17648288 75%);border-color:#d3fff5}
#entry-start:active{scale:.94;transition:scale .1s}
@keyframes entry-charge{50%{scale:.76;opacity:.95}}
@keyframes entry-arrive{0%{transform:rotate(-110deg) scale(.72);opacity:.4}65%{transform:rotate(5deg) scale(1.08);opacity:1}100%{transform:rotate(0) scale(1);opacity:1}}
@keyframes entry-invite{0%,100%{scale:.96;filter:brightness(1)}45%{scale:1.055;filter:brightness(1.3)}}
@keyframes entry-ripple{0%{transform:scale(.98);opacity:.65}70%,100%{transform:scale(1.5);opacity:0}}
body.motion-paused .entry *,body.motion-paused #entry-start:after{animation:none!important}
@media(prefers-reduced-motion:reduce){.entry *,.entry #entry-start:after{animation:none!important}}

/* A finite fill resolves readiness; it is not a simulated download percentage. */
@property --entry-fill{syntax:'<angle>';inherits:false;initial-value:0deg}
.entry:is([data-state=preparing],[data-state=ready],[data-state=playing]) .entry-orbit{--entry-fill:360deg;background:conic-gradient(from -90deg,#b5fff0 0deg,#5acbd8 var(--entry-fill),#28516b33 var(--entry-fill),#28516b33 360deg);animation:entry-fill .72s cubic-bezier(.2,.65,.25,1) both;transform:none}
@keyframes entry-fill{0%{--entry-fill:0deg;scale:.86;opacity:.65}75%{--entry-fill:360deg;scale:1.025;opacity:1}100%{--entry-fill:360deg;scale:1;opacity:1}}
.entry:is([data-state=preparing],[data-state=ready],[data-state=playing]) .entry-core{animation:entry-core-ready .72s ease-out both,entry-invite 2.5s .72s ease-in-out infinite}
@keyframes entry-core-ready{0%{opacity:.15;scale:.55}70%{opacity:1;scale:1.08}100%{opacity:1;scale:1}}
.entry:is([data-state=preparing],[data-state=ready],[data-state=playing]) #entry-start:after{animation-delay:.55s;animation-fill-mode:both}
.entry[data-state=playing] .entry-actions{display:flex;pointer-events:none;animation:entry-release .22s ease-in both}
@keyframes entry-release{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1.65)}}
@media(prefers-reduced-motion:reduce){.entry[data-state=playing] .entry-actions{display:none}}
/* Narrow screens: clearer readiness and a quieter handoff to reading. */
@media(max-width:640px){
 #entry-start{width:176px;height:176px;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
 .entry-orbit{mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 calc(100% - 2px))}
 .entry:is([data-state=preparing],[data-state=ready],[data-state=playing]) .entry-core{inset:30px}
 .entry-landed .site-header,.entry-landed .experience-controls{animation:entry-controls-in .4s ease-out both}
}
@keyframes entry-controls-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.entry-landed .site-header,.entry-landed .experience-controls{animation:none!important}}
body.motion-paused .site-header,body.motion-paused .experience-controls{animation:none!important}

/* A readable luminous rim and quiet vocabulary inside the invitation. */
#entry-start{width:248px;height:248px}
.entry-orbit{mask:radial-gradient(farthest-side,transparent calc(100% - 7px),#000 calc(100% - 6px));box-shadow:0 0 24px #6bdde366}
.entry[data-state=preparing] .entry-orbit{animation:none;background:conic-gradient(from -90deg,#b5fff0 0deg,#5acbd8 var(--load-angle,0deg),#28516b55 var(--load-angle,0deg),#28516b55 360deg)}
.entry-words{position:absolute;inset:25%;display:grid;place-items:center;z-index:3;pointer-events:none}
.entry-words>span{grid-area:1/1;opacity:0;font:500 19px/1.3 Manrope,sans-serif;letter-spacing:.01em;color:#e5fff9;text-wrap:balance;text-shadow:0 2px 14px #031c30;animation:entry-word 30s linear infinite;animation-delay:calc(var(--word)*5s)}
.entry-percent{position:absolute;bottom:20%;left:0;right:0;z-index:3;color:#c5f8ed;font:500 11px/1 Manrope,sans-serif;letter-spacing:.12em;pointer-events:none}
@keyframes entry-word{0%{opacity:0;filter:blur(5px);transform:translateY(4px)}3%,13%{opacity:1;filter:blur(0);transform:translateY(0)}16.66%,100%{opacity:0;filter:blur(4px);transform:translateY(-3px)}}
@media(max-width:640px){#entry-start{width:220px;height:220px}.entry-words>span{font-size:17px}}
@media(prefers-reduced-motion:reduce){.entry-words>span{animation:none}.entry-words>span:first-child{opacity:1;filter:none}}
body.motion-paused .entry-words>span:first-child{opacity:1;filter:none}
#entry-start .entry-words>span{font-size:19px;color:#e5fff9}
#entry-start .entry-percent{font-size:14px;color:#c5f8ed}
@media(max-width:640px){#entry-start .entry-words>span{font-size:17px}}
/* Invitation typography belongs to the same editorial family as the arriving name. */
#entry-start .entry-words{inset:23% 16% 28%}
#entry-start .entry-words>span{font:400 25px/1.15 var(--editorial);letter-spacing:-.025em;color:#effbf9;text-shadow:0 2px 12px #05283ce6}
#entry-start .entry-percent{font:500 12px/1 Manrope,sans-serif;letter-spacing:.08em;bottom:19%;font-variant-numeric:tabular-nums}
.entry[data-state=playing] .entry-actions{animation:entry-release-soft .42s cubic-bezier(.22,.61,.36,1) both}
@keyframes entry-release-soft{from{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.08)}}
@media(max-width:640px){#entry-start{width:236px;height:236px}#entry-start .entry-words>span{font-size:23px}.entry-orbit{mask:radial-gradient(farthest-side,transparent calc(100% - 7px),#000 calc(100% - 6px))}}
@media(max-height:450px){#entry-start{width:200px;height:200px}#entry-start .entry-words>span{font-size:21px}}
@media(prefers-reduced-motion:reduce){.entry[data-state=playing] .entry-actions{animation:none;display:none}}

/* Single two-second visual clock, beginning with the sphere. */
@property --entry-percent{syntax:'<integer>';inherits:false;initial-value:0}
.entry:is([data-state=preparing],[data-state=ready],[data-state=playing]) .entry-orbit{animation:entry-fill-two 2s linear both}
@keyframes entry-fill-two{from{--entry-fill:0deg;opacity:1;scale:1}to{--entry-fill:360deg;opacity:1;scale:1}}
#entry-start .entry-spark{position:absolute;inset:0;border-radius:50%;pointer-events:none;z-index:4;opacity:0}
.entry:is([data-state=preparing],[data-state=ready],[data-state=playing]) #entry-start .entry-spark{animation:entry-spark-lap 2s linear both}
.entry-spark::before{content:'';position:absolute;left:50%;top:0;width:10px;height:10px;border-radius:50%;transform:translate(-50%,-20%);background:#dcffff;box-shadow:0 0 5px 2px #a9ffff,0 0 14px 5px #3bcfff,0 0 30px 10px #237ef2}
.entry-spark::after{content:'';position:absolute;inset:-3px;border-radius:50%;background:conic-gradient(from -32deg,transparent 0deg,#298cff44 12deg,#54e5ffaa 25deg,transparent 32deg);mask:radial-gradient(farthest-side,transparent calc(100% - 12px),#000 calc(100% - 7px),transparent);filter:blur(2px)}
@keyframes entry-spark-lap{0%{transform:rotate(0);opacity:1}94%{opacity:1}100%{transform:rotate(360deg);opacity:0}}
.entry:is([data-state=preparing],[data-state=ready],[data-state=playing]) #entry-start .entry-percent{font-size:0;animation:entry-percentage-two 2s linear both;counter-reset:entryPercent var(--entry-percent)}
.entry:is([data-state=preparing],[data-state=ready],[data-state=playing]) #entry-start .entry-percent::after{content:counter(entryPercent) '%';font-size:12px}
@keyframes entry-percentage-two{from{--entry-percent:0}to{--entry-percent:100}}
.entry:is([data-state=preparing],[data-state=ready],[data-state=playing]) .entry-core{animation:entry-core-ready 2s ease-out both,entry-invite 2.5s 2s ease-in-out infinite}
.entry:is([data-state=preparing],[data-state=ready],[data-state=playing]) #entry-start:after{animation-delay:2s}
@media(prefers-reduced-motion:reduce){.entry:is([data-state=preparing],[data-state=ready],[data-state=playing]) #entry-start .entry-percent{--entry-percent:100;animation:none}.entry:is([data-state=preparing],[data-state=ready],[data-state=playing]) #entry-start .entry-spark{display:none}.entry:is([data-state=preparing],[data-state=ready],[data-state=playing]) .entry-orbit{--entry-fill:360deg;animation:none}}
body.motion-paused .entry-percent{--entry-percent:100!important}body.motion-paused .entry-spark{display:none}
.entry:is([data-state=preparing],[data-state=ready],[data-state=playing]) .entry-orbit{background:conic-gradient(from 0deg,#b5fff0 0deg,#5acbd8 var(--entry-fill),#28516b33 var(--entry-fill),#28516b33 360deg)}
/* Compact sans typography and overlapping, short optical dissolves. */
#entry-start .entry-words{inset:25% 9% 30%;overflow:visible}
#entry-start .entry-words>span{font:500 16px/1.25 Sora,sans-serif;letter-spacing:-.035em;white-space:nowrap;text-wrap:nowrap;will-change:opacity,filter;animation:entry-word-fluid 18s linear infinite;animation-delay:calc(var(--word)*3s);transform:none}
@keyframes entry-word-fluid{0%{opacity:0;filter:blur(2px)}2.3%,16.66%{opacity:1;filter:blur(0)}19%,100%{opacity:0;filter:blur(2px)}}
@media(max-width:640px){#entry-start .entry-words>span{font-size:15px}}
@media(max-height:450px){#entry-start .entry-words>span{font-size:13px}}
@media(prefers-reduced-motion:reduce){#entry-start .entry-words>span{animation:none;will-change:auto}#entry-start .entry-words>span:first-child{opacity:1;filter:none}}
/* One optical surface: quiet center, peripheral light, aligned typography. */
#entry-start{width:280px;height:280px}
.entry:is([data-state=preparing],[data-state=ready],[data-state=playing]) .entry-core{inset:22px;background:radial-gradient(ellipse at 32% 16%,#9ae8ed55,transparent 40%),radial-gradient(ellipse at 72% 82%,#29b9ca38,transparent 48%),radial-gradient(circle,#103e55 20%,#15566a 66%,#68c9d755 100%);box-shadow:inset 0 0 24px #98e9ed24,0 0 55px #39a8c433;border-color:#a6edf04d}
#entry-start:hover .entry-core,#entry-start:focus-visible .entry-core{background:radial-gradient(ellipse at 32% 16%,#b3f2ef66,transparent 40%),radial-gradient(circle,#12465b 20%,#1b6375 70%,#83dfdf66);border-color:#d3fff5}
#entry-start .entry-words{inset:36% 8% 46%;text-align:center}
#entry-start .entry-words>span{font:600 18px/1.25 Manrope,sans-serif;letter-spacing:0;color:#efffff;text-shadow:none}
#entry-start .entry-percent{top:59%;bottom:auto;color:#8fd5df;font:500 13px/1 Manrope,sans-serif;letter-spacing:.04em;text-shadow:none}
.entry:is([data-state=preparing],[data-state=ready],[data-state=playing]) #entry-start .entry-percent{font-size:0}
.entry:is([data-state=preparing],[data-state=ready],[data-state=playing]) #entry-start .entry-percent::after{font-size:13px}
@keyframes entry-word-fluid{0%{opacity:0;filter:blur(1px)}2%,14.5%{opacity:1;filter:blur(0)}16.66%,100%{opacity:0;filter:blur(1px)}}
@media(max-width:640px){#entry-start{width:264px;height:264px}#entry-start .entry-words>span{font-size:17px}.entry:is([data-state=preparing],[data-state=ready],[data-state=playing]) .entry-core{inset:21px}}
@media(max-height:450px){#entry-start{width:230px;height:230px}#entry-start .entry-words>span{font-size:15px}}
/* Subtle backlighting stays within the optical center of the sphere. */
#entry-start .entry-words>span{text-shadow:0 0 7px #80edec38,0 0 16px #30a9df24}
@keyframes entry-word-fluid{
 0%{opacity:0;filter:blur(1px);text-shadow:0 0 7px #80edec20,0 0 16px #30a9df14}
 2%,14.5%{opacity:1;filter:blur(0);text-shadow:0 0 7px #80edec38,0 0 16px #30a9df24}
 8%{opacity:1;filter:blur(0);text-shadow:0 0 9px #a2fff066,0 0 20px #39bded44}
 16.66%,100%{opacity:0;filter:blur(1px);text-shadow:0 0 7px #80edec20,0 0 16px #30a9df14}
}
@media(prefers-reduced-motion:reduce){#entry-start .entry-words>span:first-child{text-shadow:0 0 7px #80edec38,0 0 16px #30a9df24}}
/* Keep the travelling identity readable over the ship's light sails. */
.entry-names{text-shadow:0 2px 7px #031322,0 0 18px #031322e6,0 0 32px #03132299}
@media(max-width:640px){.entry-names{text-shadow:0 2px 6px #031322,0 0 14px #031322,0 0 26px #031322aa}}
/* The finite charge and the breathing loop meet at the same scale. */
@keyframes entry-core-ready{0%{opacity:.15;scale:.55}70%{opacity:1;scale:1.05}100%{opacity:1;scale:.96}}
