.heartify-root *{box-sizing:border-box}.heartify-root .stage{--wf-bg:#0b0b0b;--wf-fill:#ffffff0d;--wf-fillh:#ffffff17;--wf-text:#f4f4f4;--wf-muted:#8f8f8f;--wf-bd:#ffffff17;--barbg:#0b0b0b9e;--panel:#0e0e0e;--green:#9ece6a;--ondark-bd:#ffffff17;--ondark-text:#f4f4f4;background:var(--wf-bg);max-width:1360px;min-height:640px;color:var(--wf-text);border-radius:16px;margin:0 auto;padding:28px 40px 40px;position:relative;overflow:visible}.heartify-root .stage[data-mode=light]{--wf-bg:#ebebe7;--wf-fill:#00000008;--wf-fillh:#0000000f;--wf-text:#141414;--wf-muted:#6b6b6b;--wf-bd:#00000012;--barbg:#ebebe7a8;--panel:#e3e2dd;--ondark-bd:transparent}.heartify-root .stage.customcur,.heartify-root .stage.customcur *{cursor:none}.heartify-root .cursor{background:var(--wf-text);opacity:0;pointer-events:none;z-index:9999;mix-blend-mode:difference;border-radius:50%;width:22px;height:22px;transition:opacity .2s,width .22s,height .22s;position:fixed;top:0;left:0}.heartify-root .cursor.on{opacity:.5}.heartify-root .cursor.big{opacity:.3;width:48px;height:48px}.heartify-root .grain{z-index:50;pointer-events:none;opacity:.1;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='150' height='150'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:150px;position:fixed;inset:0}.heartify-root .topbar{z-index:60;margin:0 -40px;padding:0 40px 12px;transition:transform .35s cubic-bezier(.16,1,.3,1),padding .25s;position:sticky;top:0}.heartify-root .topbar.scrolled{padding-top:14px}.heartify-root .topbar:before{content:"";z-index:-1;opacity:0;background:var(--barbg);-webkit-backdrop-filter:blur(16px)saturate(1.1);backdrop-filter:blur(16px)saturate(1.1);transition:opacity .3s;position:absolute;inset:0 0 -26px;-webkit-mask-image:linear-gradient(#000 0 52%,#0000);mask-image:linear-gradient(#000 0 52%,#0000)}.heartify-root .topbar.scrolled:before{opacity:1}.heartify-root .topbar.hide{transform:translateY(-118%)}.heartify-root .nav{color:var(--wf-text);justify-content:space-between;align-items:center;font-size:14px;display:flex}.heartify-root .home{color:var(--wf-text);cursor:pointer;align-items:center;gap:8px;text-decoration:none;display:inline-flex}.heartify-root .home .harr{font-size:16px;transition:transform .25s}.heartify-root .home:hover .harr{transform:translate(-4px)}.heartify-root .home .hlabel{font-size:15px;font-weight:500}.heartify-root .hrule{background:var(--wf-bd);height:1px;margin-top:12px;-webkit-mask-image:linear-gradient(90deg,#0000,#000 10% 90%,#0000);mask-image:linear-gradient(90deg,#0000,#000 10% 90%,#0000)}.heartify-root .rt{color:var(--wf-muted);align-items:center;gap:12px;display:flex}.heartify-root .sw{border:.5px solid var(--wf-bd);background:var(--wf-fill);cursor:pointer;border-radius:11px;width:40px;height:22px;padding:0;position:relative}.heartify-root .knob{background:var(--wf-text);border-radius:50%;width:16px;height:16px;transition:left .22s;position:absolute;top:2px;left:2px}.heartify-root .stage[data-mode=light] .knob{left:20px}.heartify-root .page{z-index:2;padding-top:20px;animation:.5s cubic-bezier(.16,1,.3,1) hfPageIn;position:relative}@keyframes hfPageIn{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes hfPageOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-30px)}}.heartify-root .page.leaving{animation:.34s cubic-bezier(.16,1,.3,1) forwards hfPageOut}.heartify-root .title{letter-spacing:-1.4px;margin:26px 0 0;font-size:46px;font-weight:600;line-height:1.05}.heartify-root .tagline{color:var(--wf-muted);max-width:none;margin:16px 0 0;font-size:20px}.heartify-root .cover{border:1px solid var(--wf-bd);background:var(--panel);aspect-ratio:16/10;border-radius:20px;margin:34px 0 0;overflow:hidden}.heartify-root .cover img{object-fit:cover;width:100%;height:100%;display:block}.heartify-root .sec{padding:76px 0 0}.heartify-root .h-lbl{letter-spacing:.16em;text-transform:uppercase;color:var(--wf-muted);margin:0 0 16px;font-size:12px}.heartify-root .lead{color:var(--wf-text);max-width:none;margin:0;font-size:18px;line-height:1.6}.heartify-root .lead.muted{color:var(--wf-muted)}.heartify-root .divider{background:var(--wf-bd);height:1px;margin:44px 0 0}.heartify-root .meta{grid-template-columns:repeat(3,1fr);gap:24px;max-width:none;margin:30px 0 0;display:grid}.heartify-root .meta .k{letter-spacing:.14em;text-transform:uppercase;color:var(--wf-muted);margin-bottom:6px;font-size:12px}.heartify-root .meta .v{font-size:15px}.heartify-root .cards{grid-template-columns:1fr 1fr;gap:16px;margin:26px 0 0;display:grid}.heartify-root .mcard{background:var(--wf-fill);border:1px solid var(--wf-bd);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);border-radius:18px;padding:24px}.heartify-root .mcard h4{margin:0 0 12px;font-size:18px;font-weight:600}.heartify-root .pill{color:var(--green);background:color-mix(in srgb, var(--green) 16%, transparent);border:1px solid color-mix(in srgb, var(--green) 34%, transparent);border-radius:999px;padding:5px 11px;font-size:12px;font-weight:600;display:inline-block}.heartify-root .mcard .measure{letter-spacing:.14em;text-transform:uppercase;color:var(--wf-muted);margin:18px 0 6px;font-size:11px}.heartify-root .mcard p{color:var(--wf-muted);margin:0;font-size:14px;line-height:1.55}.heartify-root .dec{margin:22px 0 0}.heartify-root .dec .item{border-top:1px solid var(--wf-bd);padding:18px 0}.heartify-root .dec .item:first-child{border-top:0}.heartify-root .dec h4{margin:0 0 6px;font-size:17px;font-weight:600}.heartify-root .dec p{color:var(--wf-muted);max-width:none;margin:0;font-size:14px;line-height:1.55}.heartify-root .bul{margin:18px 0 0;padding:0;list-style:none}.heartify-root .bul li{color:var(--wf-text);padding:8px 0 8px 18px;font-size:15px;position:relative}.heartify-root .bul li:before{content:"•";color:var(--wf-muted);position:absolute;left:0}.heartify-root .two{grid-template-columns:1fr 1fr;align-items:start;gap:56px;padding:76px 0 0;display:grid}.heartify-root .two .h-lbl{margin:0}.heartify-root .metacol{flex-direction:column;gap:22px;display:flex}.heartify-root .metacol .k{letter-spacing:.14em;text-transform:uppercase;color:var(--wf-muted);margin-bottom:6px;font-size:12px}.heartify-root .metacol .v{font-size:15px}.heartify-root .two .cards{grid-template-columns:1fr;margin-top:20px}.heartify-root .steps{margin:0;padding:0;list-style:none}.heartify-root .steps li{border-top:1px solid var(--wf-bd);color:var(--wf-text);gap:18px;padding:16px 0;font-size:15px;line-height:1.55;display:flex}.heartify-root .steps li:first-child{border-top:0}.heartify-root .steps .num{color:var(--wf-muted);letter-spacing:.06em;min-width:26px;padding-top:3px;font-size:13px;font-weight:600}@media (max-width:900px){.heartify-root .two{grid-template-columns:1fr;gap:22px}}.heartify-root .decrows{margin:22px 0 0}.heartify-root .decrow{border-top:1px solid var(--wf-bd);grid-template-columns:1fr 1fr;align-items:start;gap:48px;padding:20px 0;display:grid}.heartify-root .decrow:first-child{border-top:0}.heartify-root .decrow h4{letter-spacing:-.2px;margin:0;font-size:18px;font-weight:600}.heartify-root .decrow p{color:var(--wf-muted);margin:0;font-size:15px;line-height:1.55}@media (max-width:900px){.heartify-root .decrow{grid-template-columns:1fr;gap:8px}}.heartify-root .fhead{grid-template-columns:1fr 1fr;align-items:start;gap:56px;margin:88px 0 0;display:grid}.heartify-root .fhead h3{letter-spacing:-.3px;margin:0;font-size:22px;font-weight:600}.heartify-root .fhead p{color:var(--wf-muted);max-width:none;margin:0;font-size:15px;line-height:1.6}@media (max-width:900px){.heartify-root .fhead{grid-template-columns:1fr;gap:10px}}.heartify-root .fblock{border:1px solid var(--ondark-bd);background:#0a0a0a padding-box padding-box;border-radius:22px;flex-wrap:wrap;justify-content:center;align-items:center;gap:26px;margin:22px 0 0;padding:36px;display:flex;overflow:hidden}.heartify-root .fblock.light{background:linear-gradient(#c9ccc7,#b9bdba) padding-box padding-box}.heartify-root .shot{border-radius:22px;max-height:640px;overflow:hidden;box-shadow:0 30px 80px #00000080}.heartify-root .shot img,.heartify-root .shot video{object-fit:contain;background:#000;width:100%;height:100%;max-height:640px;display:block}.heartify-root .shot.phone{aspect-ratio:9/19.3;width:300px}.heartify-root .shot.phone img,.heartify-root .shot.phone video{object-fit:cover;height:100%}.heartify-root .dash{grid-template-columns:repeat(2,1fr);gap:16px;margin:22px 0 0;display:grid}.heartify-root .dashph{border:1px solid var(--ondark-bd);aspect-ratio:3/4;background-color:#000;background-position:50%;background-repeat:no-repeat;background-size:cover;background-clip:padding-box;border-radius:22px;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.heartify-root .dashph video,.heartify-root .dashph img{object-fit:contain;width:100%;height:100%;display:block}.heartify-root .dashph img{max-height:600px}.heartify-root .dashph.engy{aspect-ratio:3/2}.heartify-root .dashph.rockl,.heartify-root .dashph.rockr{background-image:url(/projects/heartify/rocky-view.jpeg);background-repeat:no-repeat;background-size:calc(200% + 16px) 100%}.heartify-root .dashph.rockl{background-position:0}.heartify-root .dashph.rockr{background-position:100%}.heartify-root .dashph.engy video{object-fit:contain;width:auto;height:200%;transform:translateY(22%)}.heartify-root .para{isolation:isolate;position:relative}.heartify-root .playa{z-index:0;will-change:transform;background-position:50%;background-repeat:no-repeat;background-size:cover;height:210%;position:absolute;top:-55%;left:0;right:0}.heartify-root .para>video,.heartify-root .para>img{z-index:1;position:relative}.heartify-root .pbg1 .playa{background-image:url(/projects/heartify/phone-bg-mountains.jpeg)}.heartify-root .pbg2 .playa{background-image:url(/projects/heartify/phone-bg-dunes.jpeg)}.heartify-root .pbgsleep .playa{background-image:url(/projects/heartify/sea-of-clouds.jpeg)}.heartify-root .trio .playa{background-image:url(/projects/heartify/see-salt.jpeg)}.heartify-root .pbgact .playa{background-image:url(/projects/heartify/forest.jpeg)}.heartify-root .trio.atrio .playa{background-image:url(/projects/heartify/snow.jpeg)}.heartify-root .trio.ptrio .playa{background-image:url(/projects/heartify/dune-activity.jpeg)}.heartify-root .vtx{z-index:2;white-space:nowrap;pointer-events:none;will-change:transform;position:absolute;bottom:16px}.heartify-root .vtx-l{left:16px}.heartify-root .vtx-r{right:16px}.heartify-root .vin{text-transform:uppercase;letter-spacing:-2px;color:var(--ondark-text);font-size:clamp(40px,7vw,84px);font-weight:600;line-height:1;display:inline-block}.heartify-root .vtx-l .vin{writing-mode:vertical-rl;transform:rotate(180deg)}.heartify-root .vtx-r .vin{writing-mode:vertical-rl}.heartify-root .htx{z-index:2;letter-spacing:-2px;color:var(--ondark-text);white-space:nowrap;pointer-events:none;will-change:transform;font-size:clamp(40px,7vw,84px);font-weight:600;line-height:1;position:absolute;bottom:16px;left:16px}.heartify-root .htx.ar{left:auto;right:16px}.heartify-root .dashph.animr{justify-content:flex-end}.heartify-root .dashph.animr video{object-fit:contain;width:auto;height:160%;transform:translateY(200px)}.heartify-root .dashph.animl{justify-content:flex-start}.heartify-root .dashph.animl video{object-fit:contain;width:auto;height:160%;transform:translateY(200px)}.heartify-root .trio{border:1px solid var(--ondark-bd);background:#000 padding-box padding-box;border-radius:22px;flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:30px;margin:16px 0 0;padding:120px 24px;display:flex;overflow:hidden}.heartify-root .trio img{border-radius:12px;width:100%;max-width:280px;height:auto;display:block}.heartify-root .fig{border:1px solid var(--wf-bd);background:var(--panel);border-radius:20px;margin:22px 0 0;overflow:hidden}.heartify-root .fig img{width:100%;display:block}.heartify-root .cap{color:var(--wf-muted);margin:12px 0 0;font-size:13px}.heartify-root .speclink{color:var(--wf-text);border-bottom:1px solid var(--wf-bd);margin:14px 0 0;padding-bottom:2px;font-size:14px;display:inline-block}.heartify-root .gal{grid-template-columns:repeat(6,1fr);gap:10px;margin:26px 0 0;display:grid}.heartify-root .gal .g{aspect-ratio:9/19.3;background:var(--panel);border:1px solid var(--wf-bd);border-radius:12px;overflow:hidden}.heartify-root .gal .g img{object-fit:cover;width:100%;height:100%;display:block}.heartify-root .run{border-top:.5px solid var(--wf-bd);border-bottom:.5px solid var(--wf-bd);margin:64px 0 0;padding:16px 0;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000);mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000)}.heartify-root .run .mq{white-space:nowrap;letter-spacing:1.5px;text-transform:uppercase;color:var(--wf-text);font-size:30px;font-weight:500;animation:90s linear infinite hfmq;display:inline-block}@keyframes hfmq{0%{transform:translate(0)}to{transform:translate(-50%)}}.heartify-root .nextl{text-align:right;margin:80px 0 0}.heartify-root .nextl a{letter-spacing:-2px;color:var(--wf-text);align-items:center;gap:16px;font-size:clamp(40px,7vw,84px);font-weight:600;text-decoration:none;display:inline-flex}.heartify-root .nextl .sub{text-align:right;color:var(--wf-muted);margin-top:10px;font-size:14px;display:block}.heartify-root .foot{border-top:1px solid var(--wf-bd);color:var(--wf-muted);justify-content:space-between;margin-top:40px;padding-top:20px;font-size:13px;display:flex}@media (max-width:1024px){.heartify-root .stage{padding:22px 28px 28px}.heartify-root .topbar{margin:0 -28px;padding:0 28px 12px}.heartify-root .title{font-size:36px}.heartify-root .cards{grid-template-columns:1fr}.heartify-root .meta{grid-template-columns:1fr 1fr}.heartify-root .run .mq{font-size:24px}.heartify-root .gal{grid-template-columns:repeat(4,1fr)}.heartify-root .shot.phone{width:240px}.heartify-root .dash{grid-template-columns:repeat(2,1fr)}}@media (max-width:560px){.heartify-root .stage{padding:14px 18px 22px}.heartify-root .topbar{margin:0 -18px;padding:0 18px 10px}.heartify-root .clock{display:none}.heartify-root .title{font-size:30px}.heartify-root .tagline{font-size:17px}.heartify-root .meta{grid-template-columns:1fr}.heartify-root .run .mq{font-size:18px}.heartify-root .gal{grid-template-columns:repeat(3,1fr)}.heartify-root .fblock{padding:20px}}@media (prefers-reduced-motion:reduce){.heartify-root *,.heartify-root .stage{transition:none!important;animation:none!important}.heartify-root .cursor{display:none}.heartify-root .stage.customcur,.heartify-root .stage.customcur *{cursor:auto}}.heartify-root .h-lbl,.heartify-root .meta .k,.heartify-root .metacol .k,.heartify-root .mcard .measure{font-family:var(--font-mono)}
