:root{--bg: #F6F8FA;--ink: #0E1620;--ink-2: #334049;--steel-2: #6B7A84;--accent: #15569C;--digital: #34c2ea;--dark: #0C1B26;--on-dark-1: #EAF0F3;--on-dark-2: #C7D2D9;--on-dark-mono: #7E929D;--font-display: "General Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;--font-text: "Satoshi", "Helvetica Neue", Helvetica, Arial, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace;--stage: min(1320px, 92vw);--copy-x: 42%}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg)}body{font-family:var(--font-text);color:var(--ink);-webkit-font-smoothing:antialiased}::selection{background:#15569c29}#waterCanvas{position:fixed;inset:0;width:100vw;height:100vh;z-index:0;pointer-events:none;display:block}.deco{display:none!important}.loader{position:fixed;inset:0;z-index:100;display:grid;place-items:center;background:#0b1d29;color:#d3e2ec;transition:opacity .9s ease}.loader.is-hidden{opacity:0;pointer-events:none}.loader__mark{font-family:var(--font-display);font-weight:600;text-align:center;font-size:clamp(22px,3.2vw,34px);letter-spacing:-.01em;opacity:.94}.loader__mark span{color:#4a8ad0;margin:0 .1em}.loader__bar{margin:22px auto 0;width:min(200px,44vw);height:1px;background:#d3e2ec29;overflow:hidden}.loader__bar>i{display:block;height:100%;width:100%;background:linear-gradient(90deg,#2f6f9c,#6cb6e6,#cdedff);transform:scaleX(var(--p, .03));transform-origin:left;transition:transform .4s cubic-bezier(.4,0,.2,1)}@media (prefers-reduced-motion: reduce){.loader{transition:none}.loader__bar>i{transition:none}}.hint{position:fixed;left:0;right:0;bottom:34px;z-index:20;pointer-events:none;text-align:center;font-family:var(--font-mono);font-size:12px;letter-spacing:.16em;color:var(--steel-2);transition:opacity .6s ease}.hint__arrow{margin-top:8px;animation:hint 1.8s ease-in-out infinite}@keyframes hint{0%,to{transform:translateY(0);opacity:.45}50%{transform:translateY(6px);opacity:.9}}.tap-hint{position:fixed;top:16.5vh;left:3.5%;z-index:20;pointer-events:none;white-space:nowrap;font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--steel-2);opacity:0;animation:tapHintIn 1.4s ease 2.8s forwards}@keyframes tapHintIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:.62;transform:none}}body.tap-open .tap-hint{animation:none;opacity:0!important;transition:opacity .5s ease}.sound-toggle{position:fixed;left:26px;bottom:26px;z-index:25;display:inline-flex;align-items:center;gap:8px;padding:8px 13px 8px 11px;background:#788c9c29;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid rgba(180,196,210,.22);border-radius:20px;cursor:pointer;color:#8295a3;font-family:var(--font-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;opacity:.85;transition:opacity .3s ease,color .25s ease,background .25s ease}.sound-toggle:hover{opacity:1;color:#cfe0ea;background:#788c9c42}.sound-toggle__on{display:none}.sound-toggle[aria-pressed=true]{color:var(--accent);opacity:.92}.sound-toggle[aria-pressed=true] .sound-toggle__off{display:none}.sound-toggle[aria-pressed=true] .sound-toggle__on{display:inline}.sound-toggle__label{line-height:1}@media (prefers-reduced-motion: reduce){.sound-toggle{transition:none}}body:not(.tap-open) .hint{opacity:0!important}.movement{position:relative;min-height:270vh;overflow:visible;background:transparent}.movement--final{min-height:150vh}.band{display:none}body.no-webgl .movement--dark{background:var(--dark)}.stage{position:relative;width:var(--stage);height:100vh;margin:0 auto}.copy{position:absolute;left:var(--copy-x);right:4%;top:50%;transform:translateY(-50%);z-index:10;pointer-events:none}.copy--bottom{top:auto;bottom:21vh;transform:none}.copy--top{top:17vh;transform:none}.copy--center{left:9%;right:9%;top:50%;transform:translateY(-50%);text-align:center}@media (min-width: 720px){.copy--hero{left:47%}}@media (min-width: 900px){.copy--hero{left:50%}}@media (min-width: 1120px){.copy--hero{left:52%}}.copy--center .subtitle,.copy--center .body,.copy--center .contact{margin-left:auto;margin-right:auto}.title{margin:0;font-family:var(--font-display);font-size:clamp(44px,5.6vw,86px);font-weight:600;letter-spacing:-.032em;line-height:1.03;color:var(--ink);max-width:12em;text-wrap:balance}.title--xl{font-size:clamp(52px,6.8vw,104px);line-height:.99;max-width:none}.title--on-dark{color:var(--on-dark-1)}.title .x{color:var(--accent)}.title .wd{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.1em;margin-bottom:-.1em}.title .wd__in{display:inline-block;transform:translateY(112%);will-change:transform;transition:transform .9s cubic-bezier(.16,1,.3,1);transition-delay:calc(var(--wi, 0) * 55ms)}.title.in .wd__in{transform:translateY(0)}.subtitle{margin:30px 0 0;font-size:clamp(19px,2vw,29px);font-weight:400;line-height:1.4;color:var(--ink-2);max-width:20em;text-wrap:pretty}.subtitle--wide{max-width:22em}.subtitle--on-dark{color:var(--on-dark-2)}.body{margin:22px 0 0;font-size:clamp(15px,1.25vw,18px);font-weight:400;line-height:1.55;color:var(--steel-2);max-width:30em;text-wrap:pretty}.contact{margin:34px 0 0;font-family:var(--font-mono);font-size:clamp(15px,1.4vw,19px);letter-spacing:.02em;color:var(--accent)}.contact__link{pointer-events:auto;color:inherit;text-decoration:none;position:relative;padding-bottom:2px;transition:color .25s ease}.contact__link:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;opacity:.38;transform-origin:left;transition:opacity .25s ease,height .25s ease}.contact__link:hover{color:#2f7ad0}.contact__link:hover:after{opacity:.95;height:1.5px}.contact__dot{margin:0 .5em;opacity:.5}section[data-tone=dark] .contact__link:hover{color:#b6e6ff}a:focus-visible,button:focus-visible{outline:2px solid currentColor;outline-offset:4px;border-radius:3px}[data-reveal]{will-change:opacity,transform,filter}.title[data-anim=water]{position:relative;color:var(--ink)}.title--on-dark[data-anim=water]{color:var(--on-dark-1)}.title[data-anim=water]:after{content:"";position:absolute;left:0;bottom:-.34em;height:2px;width:var(--wln, 0%);background:linear-gradient(90deg,transparent,var(--accent) 14%,#58a8df 86%,transparent);border-radius:2px;transition:width .12s linear;animation:waterline 3.6s ease-in-out infinite}.title--on-dark[data-anim=water]:after{background:linear-gradient(90deg,transparent,#58a8df 14%,#bfe6ff 86%,transparent)}@keyframes waterline{0%,to{transform:scaleY(1)}50%{transform:translateY(.6px) scaleY(1.5)}}.title[data-anim=digital]{color:var(--accent)}.title[data-anim=digital]:after{content:"▍";color:var(--digital);margin-left:.06em;animation:blink 1.05s steps(1) infinite}@keyframes blink{0%,49%{opacity:1}50%,to{opacity:0}}section[data-tone=dark] .title{color:var(--on-dark-1)}section[data-tone=dark] .subtitle{color:var(--on-dark-2)}section[data-tone=dark] .body{color:var(--on-dark-2)}section[data-tone=dark] .contact{color:#93d2f1}section[data-tone=dark] .title[data-anim=digital]{color:#6cbcea}section[data-tone=dark] .title[data-anim=digital]:after{color:#b6ecff}section[data-tone=dark] .title[data-anim=water]:after{background:linear-gradient(90deg,transparent,#6cb6e6 14%,#cdedff 86%,transparent)}.copy{isolation:isolate}.copy:before{content:"";position:absolute;z-index:-1;pointer-events:none;inset:-42% -20% -42% -32%;filter:blur(12px);background:radial-gradient(118% 94% at 52% 50%,#f3f7fa94,#f3f7fa00 70%)}.copy--center:before{inset:-38% -14%}section[data-tone=dark] .copy:before{background:radial-gradient(118% 94% at 52% 50%,#07131f8f,#07131f00 70%)}.title,.subtitle,.body{text-shadow:0 1px 16px rgba(245,248,251,.42)}section[data-tone=dark] .title,section[data-tone=dark] .subtitle,section[data-tone=dark] .body{text-shadow:0 1px 18px rgba(4,13,23,.6)}section[data-tone=dark] .contact{text-shadow:0 1px 8px rgba(2,10,18,.7)}.title[data-sig=meet]{white-space:nowrap}.title[data-sig=meet] .meet-l,.title[data-sig=meet] .meet-r,.title[data-sig=meet] .meet-x{display:inline-block;will-change:transform,opacity}.title[data-sig=meet] .meet-l{transform:translate(-.5em);opacity:0;transition:transform 1.05s cubic-bezier(.2,.7,.2,1),opacity .85s ease}.title[data-sig=meet] .meet-r{transform:translate(.5em);opacity:0;transition:transform 1.05s cubic-bezier(.2,.7,.2,1),opacity .85s ease}.title[data-sig=meet] .meet-x{color:var(--accent);transform:scale(.2) rotate(-22deg);opacity:0;transition:transform .68s cubic-bezier(.34,1.7,.5,1) .5s,opacity .34s ease .5s}.title[data-sig=meet].in .meet-l,.title[data-sig=meet].in .meet-r{transform:translate(0);opacity:1}.title[data-sig=meet].in .meet-x{transform:scale(1) rotate(0);opacity:1}.title[data-sig=engrave]{position:relative}.title[data-sig=engrave] .wd__in{text-shadow:0 1px 0 rgba(255,255,255,.6)}.title .sheen{position:absolute;left:0;top:0;width:100%;pointer-events:none;color:transparent;background-image:linear-gradient(100deg,transparent 42%,rgba(255,255,255,.92) 50%,transparent 58%);-webkit-background-clip:text;background-clip:text;background-repeat:no-repeat;background-size:260% 100%;background-position:135% 0;opacity:0}.title[data-sig=engrave].in .sheen{animation:sheenSweep 1.15s ease-out .55s 1 both}@keyframes sheenSweep{0%{background-position:135% 0;opacity:0}25%{opacity:1}75%{opacity:1}to{background-position:-35% 0;opacity:0}}.title[data-sig=refract]{filter:url(#waterRefract)}@media (max-width: 680px){.copy{inset:50% 6% auto;transform:translateY(-50%);text-align:center}.copy .subtitle,.copy .body,.copy .contact{margin-left:auto;margin-right:auto}.copy--hero{top:auto;bottom:9vh;transform:none}.title{font-size:clamp(29px,8.4vw,44px);max-width:none}.title--xl{font-size:clamp(33px,9.6vw,52px)}.subtitle,.body{max-width:none}.subtitle{font-size:clamp(16px,4.3vw,20px)}.body{font-size:clamp(13px,3.6vw,16px)}.copy:before{inset:-28% -14%}.sound-toggle{bottom:18px;left:16px}.tap-hint{left:6%;top:12vh}}@media (prefers-reduced-motion: reduce){.hint__arrow{animation:none}.title[data-sig=meet] .meet-l,.title[data-sig=meet] .meet-r,.title[data-sig=meet] .meet-x{transition:none;transform:none;opacity:1}.title[data-sig=engrave].in .sheen{animation:none}.title[data-sig=refract]{filter:none}.title[data-anim=water]:after{animation:none}.title[data-anim=digital]:after{animation:none;opacity:1}.tap-hint{animation:none;opacity:.62}}
