:root{color-scheme:light;--paper:#fafaf8;--ink:#222221;--muted:#6e6e69;--line:#deded8;--mono:"SFMono-Regular",Consolas,"Liberation Mono",monospace}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:36px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;font-size:16px;line-height:1.75;-webkit-font-smoothing:antialiased}
::selection{background:#252525;color:var(--paper)}
a{color:inherit;text-decoration-color:#a9a9a1;text-underline-offset:4px;text-decoration-thickness:1px}
a:hover{text-decoration-color:var(--ink)}
button,a{-webkit-tap-highlight-color:transparent}
a:focus-visible,button:focus-visible{outline:2px solid var(--ink);outline-offset:5px}
.page{max-width:692px;margin:0 auto;padding:0 28px;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}
main{padding-top:94px;flex:1}
.intro-heading{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:29px}
h1{font-family:Georgia,"Times New Roman",serif;font-size:49px;font-weight:400;line-height:1.16;letter-spacing:-1.8px;margin:0 0 15px}
.locations{font-size:13px;color:var(--muted);display:flex;align-items:center;gap:9px;flex-wrap:wrap;line-height:1.5}
.dot{color:#aaa}
.icon{height:18px;width:18px;flex:none;display:block}
.bio p{margin:0 0 18px;max-width:600px}
.social-links{display:flex;gap:10px;flex-wrap:wrap;margin-top:27px}
.icon-link{display:inline-flex;gap:8px;align-items:center;border:1px solid var(--line);border-radius:4px;padding:6px 12px;text-decoration:none;font-size:12px;line-height:1.8;min-height:36px}
.icon-link:hover{border-color:#8c8c86;background:#f0f0ed}
.companion-wrap{position:relative;align-self:flex-start;margin-top:2px;flex:none}
.companion{border:0;background:none;color:var(--ink);padding:5px;cursor:pointer;display:block;touch-action:manipulation}
.companion svg{display:block;width:58px;height:58px;overflow:visible}
.pixel-body{transform-origin:16px 28px;animation:bob 5.5s steps(2,end) infinite}
.eyes-neutral{transform-box:fill-box;transform-origin:center}
.companion.is-blinking .eyes-neutral{animation:blink .18s ease-in-out}
.eyes-happy{display:none}
.friend-spark{opacity:0}
.friend-hint{font:10px/1 var(--mono);color:var(--muted);position:absolute;left:50%;transform:translateX(-50%);white-space:nowrap;text-align:center;margin-top:2px}
.companion.is-happy .pixel-body{animation:hop .6s steps(5,end)}
.companion.is-happy .eyes-neutral{display:none}
.companion.is-happy .eyes-happy{display:block}
.companion.is-happy .friend-spark{animation:spark .7s steps(2,end)}
@keyframes bob{0%,85%,100%{transform:translateY(0)}90%{transform:translateY(-2px)}}
@keyframes blink{0%,100%{transform:scaleY(1)}50%{transform:scaleY(.08)}}
@keyframes hop{0%,100%{transform:translateY(0)}40%{transform:translateY(-7px) rotate(-7deg)}70%{transform:translateY(-3px) rotate(5deg)}}
@keyframes spark{0%,100%{opacity:0}25%,70%{opacity:1}}
footer{border-top:1px solid var(--line);display:flex;flex-shrink:0;justify-content:flex-end;gap:16px;padding:22px 0 32px;margin-top:25px;color:var(--muted);font:10px/1.6 var(--mono)}
.skip-link{position:absolute;top:0;left:20px;background:var(--ink);color:var(--paper);padding:8px 14px;transform:translateY(-110%)}
.skip-link:focus{transform:translateY(0)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-width:1100px){.page{max-width:708px}}
@media(max-width:540px){.page{padding:0 25px}main{padding-top:54px}h1{font-size:40px;letter-spacing:-1.4px}.intro-heading{gap:8px;margin-bottom:26px}.locations{font-size:11px;gap:6px}.companion svg{width:46px;height:46px}.companion-wrap{margin-top:0}.bio p{font-size:15px}.social-links{gap:7px}.icon-link{padding:10px;min-height:40px;min-width:40px;justify-content:center}.icon-link span{display:none}.icon-link .icon{width:18px;height:18px}footer{margin-top:23px;font-size:9px}.footer-note{white-space:nowrap;text-align:right}}
@media(max-width:360px){.page{padding:0 20px}h1{font-size:35px}.companion svg{width:40px;height:40px}.social-links{gap:6px}.icon-link{padding:7px 8px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.companion.is-happy .friend-spark{opacity:1}}
