body.intro-locked{overflow:hidden}.site-intro{position:fixed;z-index:1000;inset:0;background:#07110d;color:white;display:grid;place-items:center;overflow:hidden;perspective:1400px}.intro-grid{position:absolute;inset:-15%;background-image:linear-gradient(#ffffff0b 1px,transparent 1px),linear-gradient(90deg,#ffffff0b 1px,transparent 1px);background-size:7vw 7vw;transform:perspective(900px) rotateX(62deg) translateY(20%);transform-origin:center 70%;mask-image:linear-gradient(to bottom,transparent 4%,#000 42%,#000)}.intro-top,.intro-bottom{position:absolute;z-index:4;left:clamp(22px,4vw,64px);right:clamp(22px,4vw,64px);display:flex;justify-content:space-between;text-transform:uppercase;letter-spacing:.18em;font-size:9px;color:#ffffff82}.intro-top{top:32px}.intro-bottom{bottom:31px}.intro-bottom span:nth-child(2){position:absolute;left:50%;translate:-50% 0}.intro-title{position:relative;z-index:5;text-align:center;width:min(94vw,1500px);transition:transform .2s ease-out}.intro-logo{display:block;width:min(58vw,74vh,760px);height:auto;margin:0 auto;opacity:0;filter:blur(8px) drop-shadow(0 12px 34px #0009);animation:introLogo .9s cubic-bezier(.16,.8,.25,1) .05s forwards,introLogoFloat 5s ease-in-out 1s infinite alternate}.intro-start{position:absolute;z-index:7;left:50%;top:50%;transform:translate(-50%,-50%);width:124px;height:124px;border-radius:50%;border:1px solid #d5b56dce;background:transparent;color:white;display:grid;place-items:center;cursor:pointer;box-shadow:none;transition:color .35s,scale .35s cubic-bezier(.2,.8,.2,1)}.intro-start span{text-transform:uppercase;letter-spacing:.18em;font:600 11px "DM Sans";text-shadow:0 1px 8px #07110d,0 0 16px #07110d}.intro-start i{position:absolute;font-style:normal;right:25px;top:22px;color:var(--gold);text-shadow:0 1px 8px #07110d}.intro-start:before{content:"";position:absolute;inset:8px;border:1px solid #ffffff45;border-radius:50%;animation:introRing 7s linear infinite}.intro-start:hover,.intro-start:focus-visible{background:transparent;color:white;scale:1.1;outline:1px solid #d5b56d99;outline-offset:5px}.intro-start:hover i{color:var(--gold)}.intro-orbit{position:absolute;border:1px solid #d5b56d35;border-radius:50%;animation:introOrbit 18s linear infinite}.orbit-large{width:min(68vw,970px);aspect-ratio:1}.orbit-small{width:min(37vw,520px);aspect-ratio:1;animation-direction:reverse;animation-duration:13s}.intro-orbit:after{content:"";position:absolute;width:8px;height:8px;border-radius:50%;background:var(--gold);left:50%;top:-4px;box-shadow:0 0 25px var(--gold)}.intro-curtain{position:absolute;z-index:20;top:0;bottom:0;width:50%;background:var(--cream);scale:0 1;transition:scale .85s cubic-bezier(.72,0,.2,1)}.curtain-left{left:0;transform-origin:left}.curtain-right{right:0;transform-origin:right}.intro-opening .intro-curtain{scale:1 1}.intro-opening .intro-title,.intro-opening .intro-start,.intro-opening .intro-top,.intro-opening .intro-bottom,.intro-opening .intro-orbit{opacity:0;transition:opacity .35s ease}.intro-complete .site-intro{display:none}@keyframes introLogo{to{opacity:1;filter:blur(0) drop-shadow(0 12px 34px #0009)}}@keyframes introLogoFloat{to{transform:translateY(-12px) scale(1.025)}}@keyframes introOrbit{to{rotate:360deg}}@keyframes introRing{to{rotate:-360deg}}@media(max-width:700px){.intro-logo{width:min(80vw,56vh,450px)}.intro-start{width:102px;height:102px}.intro-start i{right:20px;top:18px}.intro-bottom span:nth-child(2){display:none}.intro-grid{background-size:16vw 16vw}.orbit-large{width:110vw}.orbit-small{width:72vw}}@media(prefers-reduced-motion:reduce){.intro-logo{animation:none;opacity:1;filter:none}.intro-orbit,.intro-start:before{animation:none}.intro-curtain{transition:none}}

/* Gold seam grows across the screen, then parts to reveal the clinic. */
.gold-reveal{display:none;position:fixed;inset:0;z-index:1001;pointer-events:auto;overflow:hidden}
.intro-opening .gold-reveal{display:block}
.gold-reveal-top,.gold-reveal-bottom{position:absolute;left:0;right:0;height:50%;background:#07110d;opacity:0;animation:goldCover .3s ease forwards}
.gold-reveal-top{top:0;animation:goldCover .3s ease forwards,goldOpenTop .65s .55s cubic-bezier(.65,0,.2,1) forwards}
.gold-reveal-bottom{bottom:0;animation:goldCover .3s ease forwards,goldOpenBottom .65s .55s cubic-bezier(.65,0,.2,1) forwards}
.gold-reveal-top:after,.gold-reveal-bottom:before{content:"";position:absolute;left:0;right:0;height:4px;transform:scaleX(0);transform-origin:left;background:linear-gradient(90deg,#bd862b,#ffd875 25%,#fff5cf 45%,#eebc48 65%,#bd862b);background-size:200% 100%;box-shadow:0 0 12px #ffd875,0 0 32px #f5c45dcc,0 0 70px #d5a33b88;animation:goldDraw .4s .12s cubic-bezier(.25,.7,.2,1) forwards,goldShimmer 1.4s .25s linear infinite}
.gold-reveal-top:after{bottom:0}.gold-reveal-bottom:before{top:0}
.intro-opening .intro-curtain{display:none}
.intro-opening .site-intro{animation:goldHideIntro .01s .32s forwards}
.intro-complete .gold-reveal{display:none}
@keyframes goldCover{to{opacity:1}}
@keyframes goldDraw{to{transform:scaleX(1)}}
@keyframes goldShimmer{to{background-position:200% 0}}
@keyframes goldOpenTop{to{transform:translateY(-101%)}}
@keyframes goldOpenBottom{to{transform:translateY(101%)}}
@keyframes goldHideIntro{to{visibility:hidden}}
@media(prefers-reduced-motion:reduce){.intro-opening .gold-reveal{display:none}.intro-opening .site-intro{animation:none}}

/* Keep the controls and orbit lines clear of the central brand mark. */
.intro-start{left:auto;right:clamp(24px,5vw,82px);top:50%;transform:translateY(-50%)}
.orbit-large{width:min(78vw,1100px)}
.orbit-small{width:min(66vw,900px);opacity:.68}
@media(max-width:700px){.intro-start{left:auto;right:18px;top:50%;transform:translateY(-50%)}.orbit-large{width:116vw}.orbit-small{width:98vw;opacity:.62}}

/* Compact the complete opening composition so it remains fully visible. */
.intro-logo{width:min(46vw,58vh,620px)}
.orbit-large{width:min(62vw,84vh,860px)}
.orbit-small{width:min(52vw,70vh,700px)}
.intro-orbit:after{width:6px;height:6px;top:-3px}
.intro-start{right:clamp(20px,4vw,60px);width:104px;height:104px}
.intro-start i{right:21px;top:18px}
@media(max-width:700px){.intro-logo{width:min(68vw,46vh,360px)}.orbit-large{width:min(88vw,78vh)}.orbit-small{width:min(76vw,66vh)}.intro-start{right:14px;width:84px;height:84px}.intro-start i{right:16px;top:14px}.intro-start span{font-size:10px}}

/* Layered translucent atmosphere over the page beneath. */
.site-intro{background:rgba(7,17,13,.86);backdrop-filter:blur(12px) saturate(1.16);-webkit-backdrop-filter:blur(12px) saturate(1.16);isolation:isolate;box-shadow:inset 0 0 180px #02080599}
.site-intro:before{content:"";position:absolute;z-index:0;inset:0;pointer-events:none;background:radial-gradient(circle at 17% 20%,rgba(213,181,109,.2),transparent 31%),radial-gradient(circle at 82% 76%,rgba(40,106,78,.3),transparent 38%),linear-gradient(120deg,rgba(255,255,255,.035),transparent 36%,rgba(213,181,109,.055) 72%,transparent);animation:introAtmosphere 9s ease-in-out infinite alternate}
.intro-grid{opacity:.86}
@keyframes introAtmosphere{to{opacity:.72;transform:scale(1.045) translate3d(1.2%,-1%,0)}}
@media(prefers-reduced-motion:reduce){.site-intro:before{animation:none}}

/* Dimensional glass sphere for the central brand mark. */
.intro-title{transform-style:preserve-3d}
.intro-sphere{position:relative;width:min(48vw,60vh,640px);aspect-ratio:1;margin:auto;border-radius:50%;display:grid;place-items:center;transform-style:preserve-3d;background:radial-gradient(circle at 31% 22%,rgba(255,255,255,.24),rgba(213,181,109,.09) 20%,rgba(24,72,52,.22) 52%,rgba(3,12,8,.58) 100%);border:1px solid rgba(213,181,109,.32);box-shadow:inset -42px -46px 88px rgba(0,0,0,.42),inset 22px 20px 48px rgba(255,255,255,.07),0 32px 90px rgba(0,0,0,.34),0 0 70px rgba(213,181,109,.08);animation:introSphereMotion 7s ease-in-out infinite alternate}
.intro-sphere:before{content:"";position:absolute;z-index:3;inset:8%;border-radius:50%;pointer-events:none;background:radial-gradient(circle at 27% 19%,rgba(255,255,255,.34),transparent 17%),linear-gradient(118deg,rgba(255,255,255,.1),transparent 31%);transform:translateZ(42px);mix-blend-mode:screen}
.intro-sphere:after{content:"";position:absolute;z-index:4;left:-3%;right:-3%;top:43%;height:14%;border:1px solid rgba(213,181,109,.32);border-left-color:transparent;border-right-color:transparent;border-radius:50%;pointer-events:none;transform:translateZ(22px) rotateX(67deg);animation:introSphereBand 8s linear infinite}
.intro-sphere .intro-logo{position:relative;z-index:2;width:78%;height:auto;margin:0;opacity:0;filter:blur(8px) drop-shadow(0 14px 28px rgba(0,0,0,.55));transform:translateZ(48px);backface-visibility:hidden;animation:introLogo .9s cubic-bezier(.16,.8,.25,1) .05s forwards}
@keyframes introSphereMotion{0%{transform:translateY(8px) rotateX(4deg) rotateY(-17deg)}50%{transform:translateY(-7px) rotateX(-3deg) rotateY(4deg)}100%{transform:translateY(5px) rotateX(3deg) rotateY(18deg)}}
@keyframes introSphereBand{to{rotate:1turn}}
@media(max-width:700px){.intro-sphere{width:min(72vw,52vh,410px)}.intro-sphere .intro-logo{width:80%;transform:translateZ(34px)}.intro-sphere:before{transform:translateZ(30px)}}
@media(prefers-reduced-motion:reduce){.intro-sphere,.intro-sphere:after{animation:none}.intro-sphere .intro-logo{animation:none;opacity:1;filter:drop-shadow(0 14px 28px rgba(0,0,0,.55))}}
/* A shaded spherical surface, with the original logo mapped around it. */
.intro-title{pointer-events:none;transform:none!important}
.intro-sphere{pointer-events:auto}
.intro-sphere.globe-ready{animation:none;background:none;border:0;box-shadow:none;transform:none;isolation:isolate}
.intro-sphere.globe-ready:before{display:none}
.intro-sphere.globe-ready:after{left:18%;right:18%;top:auto;bottom:-2%;height:7%;border:0;background:#0008;filter:blur(15px);transform:none;animation:none;z-index:-1}
.globe-ready .intro-logo{display:none}
.intro-globe{display:block;width:100%;height:100%;border-radius:50%;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;filter:drop-shadow(0 24px 36px #0005)}
.is-dragging .intro-globe{cursor:grabbing}
.intro-globe:focus-visible{outline:1px solid #d5b56da0;outline-offset:8px}
.globe-controls{position:absolute;left:50%;top:calc(100% + 22px);transform:translateX(-50%);display:flex;align-items:center;gap:18px;white-space:nowrap;font:400 11px 'DM Sans',sans-serif;letter-spacing:.07em;color:#e2d8bcaa}
.globe-controls button{font:inherit;color:#dbc388;border:0;border-bottom:1px solid #d5b56d44;padding:5px 0;background:none;cursor:pointer}
.globe-controls button:focus-visible{outline:1px solid #d5b56d;outline-offset:4px}
@media(max-width:700px){.intro-sphere{width:min(70vw,46vh,410px)}.globe-controls{top:calc(100% + 12px);font-size:10px;gap:12px}.intro-start{top:auto;bottom:12%;right:24px;transform:none;width:76px;height:76px}}

/* The larger bird faces inward, with its beak anchored to the globe. */
.intro-title{top:3vh;left:min(21.6vw,23.4vh,288px)}
.intro-sphere{width:min(48vw,52vh,640px)}
.intro-bird{position:absolute;z-index:6;left:-93%;top:-4.7%;width:105%;height:105%;transform:scaleX(-1);pointer-events:none;perspective:900px}
.intro-bird img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 12px 16px #0005);transform-origin:3.5% 32%;animation:brandBirdHover 7s ease-in-out infinite}
@keyframes brandBirdHover{0%,100%{transform:rotateY(-3deg) rotateZ(-.5deg)}50%{transform:rotateY(3deg) rotateZ(.5deg)}}
@media(max-width:700px){.intro-title{top:0;left:min(23.75vw,18.05vh,142.5px)}.intro-sphere{width:min(50vw,38vh,300px)}.intro-bird{left:-97.7%;top:-6.3%;width:110%;height:110%}}
@media(max-height:500px) and (min-width:701px){.intro-title{top:0;left:20.7vh}.intro-sphere{width:46vh}.intro-bird{left:-83.4%;top:-.5%;width:95%;height:95%}}
@media(prefers-reduced-motion:reduce){.intro-bird img{animation:none}}

/* Globe and orbit rings share the exact viewport centre. */
.intro-title{top:0;left:0}
.intro-orbit{left:50%;top:50%;translate:-50% -50%}
.intro-bird{--bird-size:min(105%,calc(50vw - 38% - 16px));left:calc(12% - var(--bird-size));top:30%;width:var(--bird-size);height:var(--bird-size);transform:translateY(-32%) scaleX(-1)}
.intro-bird canvas{display:none;width:100%;height:100%;filter:drop-shadow(0 12px 16px #0005);transform-origin:3.5% 32%;animation:brandBirdHover 7s ease-in-out infinite}
.intro-bird.bird-animated canvas{display:block}
.intro-bird.bird-animated img{display:none}
.intro-bird.bird-paused canvas{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.intro-bird canvas{animation:none}}

/* Face the raised wing toward the globe, with its tip just outside the surface. */
.intro-bird{--bird-size:min(105%,calc(42vw - 38% - 24px));left:calc(10% - var(--bird-size));top:24%;transform:none}

/* Keep the hovering motion within the gap beside the globe. */
.intro-bird{animation:birdHoverFlight 6s ease-in-out infinite}
@keyframes birdHoverFlight{0%,100%{translate:0 0}25%{translate:-5px -8px}50%{translate:0 -14px}75%{translate:5px -6px}}
.intro-bird.bird-paused{animation-play-state:paused}
@media(max-width:700px){.intro-bird{animation-duration:7s}}
@media(prefers-reduced-motion:reduce){.intro-bird{animation:none;translate:0 0}}
@media(max-width:700px){.intro-bird{left:calc(5% - var(--bird-size))}}

/* Emerge from the sphere, then settle into a top-left hover. */
.intro-bird{--bird-rest-left:calc(10% - var(--bird-size) - 6px);left:var(--bird-rest-left);top:-22%;transform:rotate(12deg);animation:none;visibility:hidden}
.intro-bird.bird-flight-ready{visibility:visible;animation:birdEmerge 6s cubic-bezier(.22,.61,.36,1) both,birdHoverFlight 6s ease-in-out 6s infinite}
@keyframes birdEmerge{
 0%{left:calc(50% - var(--bird-size) / 2);top:calc(50% - var(--bird-size) / 2);transform:scale(.12) rotate(0deg);opacity:0}
 12%{opacity:1}
 100%{left:var(--bird-rest-left);top:-22%;transform:scale(1) rotate(12deg);opacity:1}
}
.intro-bird.bird-flight-ready.bird-paused{animation-play-state:paused}
@media(max-width:700px){.intro-bird{--bird-rest-left:calc(5% - var(--bird-size))}}
@media(prefers-reduced-motion:reduce){.intro-bird.bird-flight-ready{animation:none;opacity:1;translate:0 0}}

.intro-bird{transition:filter .4s ease}
.intro-bird.bird-resetting{filter:opacity(0)}

/* Keep the flight path; enlarge the previous bird size by ten percent. */
.intro-bird{scale:.77}

/* Twenty percent larger than the desktop scale on mobile only. */
@media(max-width:700px){.intro-bird{scale:.924}}
