*{box-sizing:border-box}
html{color-scheme:light}
body{margin:0;background:#fff;color:#19252d;font-family:Manrope,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
a:focus-visible{outline:3px solid #a4baf2;outline-offset:6px;border-radius:4px}
.site-header{max-width:1280px;margin:auto;padding:30px 48px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.brand{display:inline-flex;align-items:center;gap:8px;font-size:29px;font-weight:800;letter-spacing:-1.6px;line-height:1}
.brand-dot{color:#315de0}
.brand-wisp{width:40px;height:40px;object-fit:contain;flex-shrink:0}
.intro{text-align:center;max-width:900px;padding:0 24px;margin:auto}
.wisp-portrait{width:270px;max-width:65vw;aspect-ratio:1;position:relative;margin:0 auto 15px;isolation:isolate}
.wisp-portrait::before{content:"";position:absolute;inset:8%;border-radius:50%;background:radial-gradient(circle,#eef8ff 0%,#f6fbff70 48%,transparent 72%);z-index:-1}
.wisp-portrait::after{content:"";position:absolute;width:32%;height:9px;left:34%;bottom:2%;background:#7aafe338;filter:blur(7px);border-radius:50%;z-index:-1}
.wisp-portrait img{display:block;width:100%;height:auto;object-fit:contain;transform:translate3d(0,5px,0) rotate(-3deg);transform-origin:50% 50%}
.eyebrow{color:#798993;font-size:10px;font-weight:800;letter-spacing:2px;margin:0 0 17px;line-height:1.7}
h1{font-size:clamp(54px,6.3vw,82px);font-weight:700;line-height:1.06;letter-spacing:-3.5px;margin:0 0 22px}
h1 span{color:#315de0}
.hero-promise{font-size:21px;font-weight:600;line-height:1.5;letter-spacing:-.5px;margin:0 0 12px;color:#354758}
.intro-copy{font-size:15px;line-height:1.85;color:#64737d;margin:0 auto;max-width:570px}
.moments{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.08fr) minmax(0,1fr);gap:5%;max-width:900px;margin:45px auto 64px;padding:0 28px}
.moment{margin:0;min-width:0}
.moment.trail{padding-top:25px}
.moment.city{padding-top:39px}
.photo{width:100%;aspect-ratio:1.12;background-repeat:no-repeat;background-size:300% auto;background-color:#eef3f0}
.hiking{background-image:url('./assets/outdoor.jpg');background-position:left 45%;border-radius:75px 17px 17px 17px}
.kayaking{background-image:url('./assets/outdoor.jpg');background-position:center 48%;border-radius:20px 20px 75px 20px}
.wandering{background-image:url('./assets/travel.jpg');background-position:left 42%;border-radius:17px 75px 17px 17px}
figcaption{font-size:11px;line-height:1.6;color:#748088;margin-top:14px;text-align:center}
footer{display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid #edf0f2;max-width:1184px;margin:0 auto;padding:24px 0 29px;color:#849095;font-size:10px;line-height:1.7}
footer p{margin:0;color:#64727d;font-size:11px}
.footer-signoff{display:inline-flex;align-items:center;gap:7px}
.footer-signoff img{object-fit:contain}
@media(min-width:1600px){.intro{padding-top:16px}.wisp-portrait{width:300px}.moments{margin-top:48px;margin-bottom:78px;max-width:980px}}
@media(max-width:1250px){footer{margin-left:48px;margin-right:48px}}
@media(max-width:760px){.site-header{padding:22px 25px}.brand{font-size:26px}.wisp-portrait{width:225px}h1{letter-spacing:-2.5px}.hero-promise{font-size:19px}.moments{gap:4%;margin-top:35px;margin-bottom:45px;padding:0 25px}.photo{aspect-ratio:.9}.hiking{border-top-left-radius:45px}.kayaking{border-bottom-right-radius:45px}.wandering{border-top-right-radius:45px}figcaption{font-size:10px}footer{margin:0 25px}}
@media(max-width:480px){.site-header{padding:20px;gap:12px}.brand{font-size:25px}.brand-wisp{width:36px;height:36px}.intro{padding:0 20px}.wisp-portrait{width:200px;margin-bottom:17px}.eyebrow{font-size:8px;letter-spacing:1.5px;margin-bottom:14px}h1{font-size:clamp(46px,13vw,59px);letter-spacing:-2px;line-height:1.1;margin-bottom:19px}.hero-promise{font-size:17px;letter-spacing:-.4px;max-width:290px;margin:0 auto 12px}.intro-copy{font-size:13px;max-width:320px}.desktop-break{display:none}.moments{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 18px;padding:0 24px;max-width:390px;margin-top:33px}.photo{aspect-ratio:.94}.moment.trail{padding-top:20px}.moment.city{grid-column:1/-1;width:58%;padding-top:0;justify-self:center}.moment.city .photo{aspect-ratio:1.15}figcaption{font-size:10px;margin-top:11px}.moment.city figcaption{white-space:normal}footer{margin:0 24px;padding-top:20px;flex-direction:column;gap:7px;text-align:center}}
@media(prefers-reduced-motion:no-preference){
  .wisp-portrait img{animation:wisp-bob 5.6s ease-in-out infinite,wisp-wander 9s ease-in-out infinite}
  .wisp-portrait::after{animation:wisp-shadow 5.6s ease-in-out infinite}
  /* Keep his angle steady so the whole body lifts together. Independent
     horizontal drift keeps the motion from retracing the same short path. */
  @keyframes wisp-bob{0%,100%{transform:translate3d(0,5px,0) rotate(-3deg)}50%{transform:translate3d(0,-20px,0) rotate(-3deg)}}
  @keyframes wisp-wander{0%,100%{translate:-6px 0}50%{translate:6px 0}}
  @keyframes wisp-shadow{0%,100%{transform:scaleX(1);opacity:.9}50%{transform:scaleX(.72);opacity:.42}}
}
