:root{color-scheme:light;--paper:#f7f6f2;--ink:#21213e;--green:#50da82}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:var(--paper)}
body{color:var(--ink);font-family:'pragmatica-extended',Arial,sans-serif;-webkit-font-smoothing:antialiased}
::selection{background:var(--green);color:var(--ink)}
#impact-pixels{z-index:2;position:fixed;inset:0;width:100%;height:100%;pointer-events:none}
main{position:relative;min-height:calc(100svh - 100px);display:grid;grid-template-columns:minmax(0,1fr);place-items:center;padding:70px 5vw 45px}
.composition{min-width:0;width:100%;text-align:center}
.wordmark{margin:0 0 clamp(18px,2.3vh,28px);font-size:clamp(16px,1.55vw,24px);font-weight:900;letter-spacing:.02em;line-height:1}
h1{margin:0;font-weight:900;font-size:clamp(32px,6.5vw,114px);line-height:.80;letter-spacing:.02em}
.line{display:block;white-space:nowrap}
.word{display:inline-block}
.rotator{display:flex;align-items:center;justify-content:center;height:.89em;color:var(--green)}
#phrase{display:block;white-space:nowrap;letter-spacing:.02em}
.tagline{font-family:'museo-sans',Arial,sans-serif;font-weight:300;font-size:clamp(16px,1.3vw,20px);letter-spacing:.01em;margin:48px 0 0;line-height:1.4}
footer{position:relative;min-height:100px;display:flex;align-items:center;flex-wrap:wrap;gap:10px 24px;padding:24px 3.5vw;font-family:'museo-sans',Arial,sans-serif;font-weight:500;font-size:14px;line-height:1.5;color:#77777f}
footer strong{font-weight:700;color:var(--ink)}
footer a{color:inherit;text-decoration:none}
footer a:hover{color:var(--ink)}
footer a:focus-visible{outline:2px solid var(--ink);outline-offset:5px}
.cursor{position:fixed;left:0;top:0;width:160px;height:160px;z-index:5;pointer-events:none;opacity:0;transition:opacity 150ms;will-change:transform}
.cursor.visible{opacity:1}
.cursor img{display:block;width:100%;height:100%;animation:spin 12s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@media (pointer:fine){html.custom-cursor,html.custom-cursor *{cursor:none!important}}
@media (max-width:640px){main{min-height:calc(100svh - 140px);padding:60px 6vw 40px}.wordmark{font-size:15px;margin-bottom:24px}h1{font-size:11.7vw;line-height:.82;letter-spacing:.02em}.line .word,#phrase .word{display:block}.line .word+.word{margin-top:.02em}.rotator{height:1.82em}#phrase{white-space:normal;letter-spacing:.02em}#phrase .word+.word{margin-top:.02em}.tagline{margin-top:42px}footer{min-height:140px;padding:20px 6vw;gap:5px 18px;font-size:13px}footer .address{flex-basis:100%;order:2}}
@media (prefers-reduced-motion:reduce){.cursor img{animation:none}}
@media (pointer:coarse){.cursor{display:none}}

.loading .word,.loading .tagline{opacity:0}

.footer-brand{display:inline-flex;align-items:center;gap:14px;white-space:nowrap}.footer-brand img{width:40px;height:40px;display:block;flex:none}
@media(max-width:640px){footer{gap:8px 16px}.footer-brand{gap:8px}.footer-brand img{width:30px;height:30px}}

/* Keep the subtitle halfway between the headline and the footer. */
main{padding-bottom:140px}
.composition{position:static}
.tagline{position:absolute;left:5%;right:5%;top:var(--tagline-y,80%);margin:0;transform:translateY(-50%);text-align:center}
h1{user-select:none;font-kerning:none}
.letter{display:inline-block;transform-origin:50% 50%;will-change:transform;backface-visibility:hidden}
@media(max-width:640px){main{padding-bottom:125px}.tagline{margin:0}}

body{overflow-x:clip}

.reset-button{position:fixed;right:3.5vw;bottom:28px;z-index:4;min-height:44px;padding:10px 28px;border:1px solid var(--ink);border-radius:6px;background:var(--ink);color:#fff;font:500 13px 'museo-sans',Arial,sans-serif;cursor:pointer;transition:border-color .2s,background .2s}
.reset-button:hover{border-color:var(--green);background:var(--green)}.reset-button:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
footer{padding-right:155px}
@media(max-width:640px){.reset-button{right:6vw;bottom:18px}footer{padding-right:6vw}footer .address{padding-right:115px}}

.cursor-face{width:100%;height:100%;transform:scale(1);transition:transform 180ms cubic-bezier(.2,.7,.3,1)}
.cursor.compact .cursor-face{transform:scale(.2)}
@media(prefers-reduced-motion:reduce){.cursor-face{transition:none}}
