body:has(.vortex-landing){--bg:#f4f1eb;--surface:#f9f7f1;--surface-2:#e8e5de;--text:#242522;--muted:#696a63;--border:#d4d2c9;--accent:#514daf;--ring:#6453c4}:root[data-theme=dark] body:has(.vortex-landing){--bg:#151519;--surface:#202026;--surface-2:#2b2b33;--text:#f2eee6;--muted:#b4b3ad;--border:#414047;--accent:#c6bcf5;--ring:#c6bcf5}.landing-main{margin:0;padding:0;width:100%}.vortex-landing{position:relative;isolation:isolate;min-height:max(660px,100svh);overflow:clip;display:grid;grid-template-rows:auto 1fr auto;padding:28px clamp(26px,5.2vw,96px);background:var(--bg);color:var(--text);font-family:Helvetica Neue,Helvetica,Arial,sans-serif}.vortex-bottomline,.vortex-topline{position:relative;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:20px}.vortex-topline{min-height:48px}.vortex-monogram{font-size:22px;font-weight:500;letter-spacing:-1.8px;color:var(--text);min-width:60px;padding:6px 12px;margin-left:-12px;border-radius:30px;background:var(--bg)}.vortex-bottom-note,.vortex-top-note{font:10px SFMono-Regular,Consolas,monospace;letter-spacing:.07em;color:var(--muted)}.vortex-top-note{text-transform:uppercase;background:var(--bg);padding:10px 14px;border-radius:30px}.vortex-tools{display:flex;align-items:center;gap:7px}.vortex-tools .theme-toggle{background:var(--bg)}.vortex-motion-control{border:1px solid var(--border);background:var(--bg);color:var(--text);min-height:44px;padding:10px 16px;border-radius:30px;font-size:11px;display:flex;gap:17px;align-items:center}.vortex-motion-control:hover,.vortex-tools .theme-toggle:hover{background:var(--surface-2)}.vortex-copy{position:relative;z-index:2;align-self:center;padding:42px 0 48px;width:40%}.vortex-eyebrow{font:10px SFMono-Regular,Consolas,monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.vortex-copy h1{display:flex;flex-direction:column;align-items:flex-start;font-size:clamp(108px,13.2vw,190px);line-height:.79;letter-spacing:-.085em;font-weight:500;margin:30px 0 30px -8px}.vortex-copy h1 span+span{margin-top:10px}.vortex-tagline{font-size:clamp(23px,2.3vw,32px);line-height:1.2;letter-spacing:-.04em}.vortex-intro{margin-top:16px;font-size:13px;line-height:1.7;color:var(--muted)}.vortex-bottom-note,.vortex-copy>:not(.vortex-contacts),.vortex-top-note{opacity:0;transform:translateY(10px)}.vortex-landing[data-copy-visible=true] .vortex-bottom-note,.vortex-landing[data-copy-visible=true] .vortex-copy>:not(.vortex-contacts),.vortex-landing[data-copy-visible=true] .vortex-top-note{opacity:1;transform:none;animation:vortex-text-reveal .85s cubic-bezier(.22,1,.36,1) var(--vortex-reveal-delay,0s) both}.vortex-copy h1{--vortex-reveal-delay:.08s}.vortex-tagline{--vortex-reveal-delay:.16s}.vortex-intro{--vortex-reveal-delay:.24s}.vortex-bottom-note,.vortex-top-note{--vortex-reveal-delay:.16s}@keyframes vortex-text-reveal{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.vortex-contacts{display:flex;align-items:center;gap:12px;margin-top:24px}.vortex-contact{display:grid;place-items:center;flex:0 0 52px;width:52px;height:52px;border:1px solid var(--border);border-radius:50%;background:var(--surface);color:var(--text);box-shadow:0 5px 14px #00000008,inset 0 1px 1px #ffffff35;visibility:hidden;opacity:0;transition:transform .2s,background .2s,border-color .2s,box-shadow .2s}.vortex-contact svg{width:21px;height:21px}.vortex-landing[data-settled=true] .vortex-contact{visibility:visible;opacity:1;animation:vortex-contact-pop .6s cubic-bezier(.22,1,.36,1) .32s both}.vortex-landing[data-settled=true] .vortex-contact:nth-child(2){animation-delay:.42s}.vortex-landing[data-settled=true] .vortex-contact:nth-child(3){animation-delay:.52s}.vortex-contact:focus-visible,.vortex-contact:hover{background:var(--surface-2);border-color:var(--accent);box-shadow:0 7px 18px #00000012}@keyframes vortex-contact-pop{0%{opacity:0;transform:translateY(18px) scale(.5)}65%{opacity:1;transform:translateY(-3px) scale(1.08)}to{opacity:1;transform:translateY(0) scale(1)}}.vortex-bottomline{min-height:64px}.vortex-about{color:var(--text);font-size:11px;display:inline-flex;gap:23px;align-items:center;min-height:44px;margin-left:-14px}.vortex-about,.vortex-bottom-note{border-radius:30px;padding:10px 14px;background:var(--bg)}.vortex-enter{min-height:54px;display:inline-flex;align-items:center;justify-content:space-between;gap:40px;padding:14px 24px;color:var(--bg);background:var(--text);border:1px solid var(--text);border-radius:40px;font-size:13px}.vortex-enter span{font-size:18px;transition:transform .2s}.vortex-enter:hover span{transform:translate(2px,-2px)}.vortex-enter:hover{filter:brightness(1.12)}.vortex-landing>canvas{z-index:3}@media (max-width:1050px){.vortex-top-note{display:none}.vortex-copy{width:43%}.vortex-copy h1{font-size:clamp(110px,14vw,150px)}}@media (max-width:760px){.vortex-landing{min-height:max(700px,100svh);padding:18px 24px}.vortex-topline{gap:12px}.vortex-monogram{font-size:20px}.vortex-motion-control{padding-inline:12px;font-size:10px;gap:12px}.vortex-tools{gap:3px}.vortex-copy{width:100%;align-self:end;padding:0 0 25px;margin-top:340px}.vortex-eyebrow{font-size:9px}.vortex-copy h1{flex-direction:row;gap:.15em;font-size:clamp(76px,19vw,130px);margin:20px 0 20px -4px}.vortex-copy h1 span+span{margin-top:0}.vortex-tagline{font-size:24px}.vortex-intro{display:none}.vortex-contacts{margin-top:20px;gap:10px}.vortex-contact{flex-basis:48px;width:48px;height:48px}.vortex-bottomline{gap:10px;min-height:60px}.vortex-bottom-note{display:none}.vortex-about{font-size:10px;gap:12px;padding-inline:10px;margin-left:-10px}.vortex-enter{min-height:48px;font-size:12px;gap:20px;padding:12px 18px}}@media (max-width:380px){.vortex-landing{padding-inline:20px}.vortex-copy h1{font-size:21vw}.vortex-enter{gap:12px;padding-inline:14px}}@media (max-height:700px) and (min-width:761px){.vortex-landing{min-height:600px;padding-block:18px}.vortex-copy{padding-block:24px}.vortex-copy h1{font-size:130px;margin-block:24px}}@media (prefers-reduced-motion:reduce){.vortex-enter:hover span{transform:none}.vortex-landing[data-copy-visible] .vortex-bottom-note,.vortex-landing[data-copy-visible] .vortex-copy>:not(.vortex-contacts),.vortex-landing[data-copy-visible] .vortex-top-note{opacity:1;transform:none;animation:none}.vortex-landing[data-settled=true] .vortex-contact{animation:none;transition:none}}