:root{color-scheme:dark;--forest:#092e26;--cream:#fff3dc;--gold:#ffbd38;--muted:#bfd0be;--ease:cubic-bezier(.22,1,.36,1);font-family:ui-rounded,'Avenir Next',Avenir,'Segoe UI',sans-serif;color:var(--cream);background:var(--forest);font-synthesis:none;-webkit-font-smoothing:antialiased}
*{box-sizing:border-box}body{margin:0;min-width:280px;min-height:100svh;background:linear-gradient(180deg,#1f4a8c,#3f6fa8 55%,#6f8fb4)}a,button{-webkit-tap-highlight-color:transparent}button{font:inherit}a{color:inherit}a:focus-visible,button:focus-visible{outline:3px solid var(--gold);outline-offset:7px}::selection{background:#e5ab3d;color:#092e26}
.sky{position:fixed;inset:0;width:100%;height:100%;display:block;opacity:0;transition:opacity 1.6s ease}.sky.ready{opacity:1}
.atmosphere{position:fixed;inset:0;overflow:hidden;pointer-events:none}.atmosphere:before{content:'';position:absolute;inset:0;background:url('/assets/swallow-meadow.webp') center 34%/cover;filter:blur(60px);opacity:.07;transform:scale(1.16)}.light{position:absolute;width:42vw;height:120vh;top:-45vh;filter:blur(45px);background:linear-gradient(180deg,#f8e1a226,transparent 85%);transform:rotate(34deg);transform-origin:top;animation:light-drift 25s ease-in-out infinite alternate}.light-one{left:30%}.light-two{left:65%;opacity:.45;animation-delay:-12s}.grain{position:absolute;inset:0;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}
.landing{position:relative;max-width:500px;margin:auto;min-height:100svh;padding:48px 28px 22px;display:flex;flex-direction:column;align-items:center;text-align:center}.intro{width:100%;animation:arrive .9s var(--ease) both}.portrait-wrap{position:relative;width:200px;height:200px;margin:0 auto 22px}.portrait{width:100%;height:100%;overflow:hidden;border-radius:50%;border:3px solid #eed99a;box-shadow:0 0 0 9px #e7dc9820,0 22px 50px #001c2550;transform:rotate(-4deg)}.portrait img{display:block;width:100%;height:100%;object-fit:cover;transform:rotate(4deg) scale(1.13);object-position:50% 52%}.portrait-halo{position:absolute;inset:-70px;background:radial-gradient(ellipse,#eccf5e19,transparent 65%);pointer-events:none}h1{margin:0}.wordmark{display:block;width:338px;max-width:100%;height:auto;margin:auto;filter:drop-shadow(0 5px 0 #041d1a44)}.tagline{font-size:20px;font-weight:600;letter-spacing:.01em;margin:18px 0 0;color:var(--cream)}
.connections{width:100%;margin-top:35px;animation:arrive .9s .12s var(--ease) both}h2{font-size:10px;font-weight:650;letter-spacing:.19em;text-transform:uppercase;margin:0 0 18px;color:var(--muted);display:flex;align-items:center;justify-content:center;gap:14px}h2 span{width:26px;height:1px;background:#adc3a740}.socials{display:flex;justify-content:center;gap:22px}.social-item{display:grid;place-items:center;width:48px;height:48px;background:none;border:0;text-decoration:none;transition:transform .25s var(--ease),opacity .25s}.social-item img{width:28px;height:28px;object-fit:contain}.social-item[data-platform='youtube'] img{width:32px;height:26px}.social-item[data-platform='tiktok'] img{filter:brightness(0) invert(1)}.social-item:hover{transform:translateY(-4px);opacity:.8}

footer{margin-top:auto;padding-top:29px;display:flex;align-items:center;justify-content:center;gap:21px;width:100%;font-size:10px;color:#9db3a6}footer p{margin:0}footer a{margin-left:5px;text-decoration:none;color:#d3ddc8;font-size:10px;font-weight:800;letter-spacing:.13em}footer a:hover{color:var(--gold)}.external{font-size:12px;display:inline-block;margin-left:4px;transition:transform .2s}footer a:hover .external{transform:translate(1px,-1px)}.privacy-button{background:none;border:0;padding:7px 0;color:#9db3a6;font-size:10px;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.privacy{background:#f9f2df;color:#193c2d;padding:35px;max-width:min(430px,calc(100vw - 36px));border:1px solid #d7cb9a;border-radius:20px;box-shadow:0 25px 100px #0006;line-height:1.7;font-size:14px}.privacy h2{color:#193c2d;letter-spacing:-.02em;text-transform:none;font-size:23px;display:block;text-align:left;margin-bottom:20px}.privacy::backdrop{background:#031910b8;backdrop-filter:blur(6px)}.close{position:absolute;right:10px;top:7px;background:none;border:0;font-size:26px;color:#193c2d;cursor:pointer;padding:5px 12px}.privacy p:last-child{margin-bottom:0}
@keyframes arrive{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:none}}@keyframes light-drift{to{transform:rotate(26deg);opacity:.55}}
@media(min-width:900px){.landing{padding-top:45px;padding-bottom:26px}.portrait-wrap{width:210px;height:210px;margin-bottom:24px}.wordmark{width:360px}.tagline{margin-top:20px}.connections{margin-top:34px}}
@media(max-width:380px){.landing{padding:30px 20px 16px}.portrait-wrap{width:155px;height:155px;margin-bottom:20px}.wordmark{width:280px}.tagline{font-size:17px}.connections{margin-top:27px}.socials{gap:3px}footer{padding-top:19px}}
@media(max-height:760px) and (min-width:381px){.landing{padding-top:28px}.portrait-wrap{width:165px;height:165px;margin-bottom:18px}.wordmark{width:300px}.connections{margin-top:24px}.tagline{margin-top:13px}footer{padding-top:14px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(forced-colors:active){.social-item img{forced-color-adjust:none;background:#003326}.wordmark{forced-color-adjust:none}}
footer a,.privacy-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px}
footer a{padding:8px 5px}.privacy-button{padding:8px 7px}
.privacy:not([open]){display:none}

.landing{justify-content:center;padding-top:40px;padding-bottom:24px}footer{margin-top:48px}.socials{gap:22px}@media(max-height:680px){.landing{justify-content:flex-start}footer{margin-top:25px}}
.tagline,h2,footer{text-shadow:0 1px 10px #0a1d3fb3,0 0 2px #0a1d3f80}
.swallow-stage{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;opacity:0;transition:opacity .5s ease}.has-swallow .swallow-stage{opacity:1}.landing{z-index:1}
/* In front of the page so her feet overlap the logo; clicks pass through to .swallow-hit. */
.swallow-stage{z-index:2}.three .portrait,.three .portrait-halo{visibility:hidden}.swallow-hit{position:absolute;inset:4% 16% -6%;border:0;padding:0;background:none;border-radius:45%;cursor:pointer}.swallow-hit:focus-visible{outline:3px solid var(--gold);outline-offset:4px}
/* Footer sits at the very bottom of the screen; the rest stays centred above it. */
.landing{padding-bottom:max(6px,env(safe-area-inset-bottom))}.intro{margin-top:auto}.connections{margin-bottom:auto}footer{padding-top:18px}
.intro{-webkit-user-select:none;user-select:none}.swallow-hit{touch-action:manipulation}
.share .connections,.share footer{display:none}.share .intro{margin-bottom:auto}.share .landing{padding-bottom:40px}.share .portrait-wrap{width:250px;height:250px;margin-bottom:26px}.share .wordmark{width:440px}.share .landing{max-width:1100px}.share .tagline{font-size:36px;margin-top:20px}
footer[hidden]{display:none}
/* The tagline sits over moving clouds, so it carries its own dark halo. */
.tagline{text-shadow:0 2px 2px #0a1d3f99,0 0 14px #0a1d3fcc,0 0 4px #0a1d3fcc}
@media(min-width:900px){.tagline{font-size:24px}}
