@font-face{font-family:Hanken;src:url(fonts/HankenGrotesk-Regular.ttf) format('truetype');font-weight:400;font-display:swap}@font-face{font-family:Hanken;src:url(fonts/HankenGrotesk-ExtraBold.ttf) format('truetype');font-weight:800;font-display:swap}
:root{--ink:#152f3c;--muted:#5c6d70;--paper:#f6f5ef;--line:#d9ddd5;font:400 18px/1.6 Hanken,system-ui,sans-serif;color:var(--ink);background:var(--paper);color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:25px}body{margin:0}h1,h2,p{margin:0}a{color:inherit;text-underline-offset:5px}a:focus-visible{outline:3px solid #26866b;outline-offset:6px;border-radius:8px}.wrap{width:min(1240px,calc(100% - 80px));margin-inline:auto}.header{display:flex;justify-content:space-between;align-items:center;gap:30px;padding-block:30px}.wordmark{display:inline-flex;gap:10px;align-items:center;font-size:1.15rem;font-weight:800;letter-spacing:-.04em;text-decoration:none;min-height:44px}.header nav{display:flex;align-items:center;gap:28px;font-size:.82rem}.header nav a{display:inline-flex;align-items:center;gap:10px;min-height:44px;text-decoration:none}.intro{padding-block:60px 65px;display:grid;grid-template-columns:1.5fr 1fr;gap:70px;align-items:end}.eyebrow{font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:22px}.intro h1{font-size:clamp(3rem,6.4vw,5.5rem);font-weight:800;line-height:1.02;letter-spacing:-.045em}.intro h1 span{color:#64836c}.intro-note{font-size:1.12rem;line-height:1.85;max-width:28ch;padding-bottom:4px;color:#52675b}.app-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;scroll-margin-top:30px}.app-card{display:flex;flex-direction:column;overflow:hidden;min-width:0;border-radius:24px;text-decoration:none;transition:transform .28s ease,box-shadow .28s ease;box-shadow:0 1px 0 #152f3c0a}.app-card:hover,.app-card:focus-visible{box-shadow:0 14px 38px #152f3c16}.app-card:active{box-shadow:0 4px 12px #152f3c13}.card-art{position:relative;height:240px;display:grid;place-items:center;overflow:hidden;isolation:isolate}.card-icon{position:absolute;bottom:20px;left:28px;width:62px;height:62px;border-radius:17px;box-shadow:0 4px 18px #152f3c12}.card-copy{padding:26px 28px 28px;display:flex;flex-direction:column;flex:1}.card-kind{font-size:.66rem;letter-spacing:.02em;margin-bottom:14px;line-height:1.6}.card-copy h2{font-weight:800;font-size:1.8rem;letter-spacing:-.045em;line-height:1.2}.card-copy>p:not(.card-kind){font-size:1.08rem;line-height:1.5;margin-top:17px}.card-link{font-weight:800;font-size:.77rem;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;margin-top:28px}.card-link svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;transition:transform .25s}.app-card:hover .card-link svg,.app-card:focus-visible .card-link svg{transform:translateX(4px)}.beeper-card{background:#0a2840;color:#fbf9ec}.beeper-art{background:#081f35}.beeper-card .card-kind{color:#94cbdc}.phoneaware-card{background:#d9eee2;color:#204a3a}.phoneaware-art{background:#c8e6d5}.phoneaware-card .card-kind{color:#48735d}.pebble-card{background:#fff0bd;color:#152f3c}.pebble-art{background:#f7e8ad}.pebble-card .card-kind{color:#6e674a}.pebble-wash{position:absolute;inset:10px 25px 20px 60px;border-radius:50% 45% 38% 47%;background:#ffe497}.mini-pebble{position:absolute;width:305px;height:auto;top:-16px;right:-21px;transform-origin:50% 85%;transition:transform .45s ease}.pebble-card:hover .mini-pebble,.pebble-card:focus-visible .mini-pebble{transform:rotate(-4deg) translateY(-5px)}.about{border-top:1px solid var(--line);margin-top:90px;padding-block:60px 85px;display:grid;grid-template-columns:1fr 2fr;gap:80px}.about h2{font-size:clamp(2rem,3.8vw,3.4rem);font-weight:400;line-height:1.12;letter-spacing:-.035em}.about p:not(.eyebrow){max-width:48ch;color:var(--muted);margin-top:25px;font-size:1rem;line-height:1.8}.contact{display:inline-flex;gap:18px;min-height:44px;align-items:center;font-size:.85rem;margin-top:25px}.footer{padding-block:35px 45px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:45px;align-items:flex-start}.legal-links{display:flex;gap:45px;font-size:.73rem}.legal-links>div{display:grid;gap:8px}.legal-links span{font-weight:800;margin-bottom:3px}.legal-links a{width:fit-content;min-height:28px}.skip{position:fixed;left:15px;top:-100px;background:var(--ink);color:#fff;padding:12px;z-index:3}.skip:focus{top:12px}
@media(max-width:980px){.wrap{width:calc(100% - 48px)}.intro{gap:30px;padding-block:45px 50px}.intro h1{font-size:4rem}.intro-note{font-size:.95rem}.app-grid{gap:14px}.card-copy{padding:23px 20px}.card-copy h2{font-size:1.45rem}.card-copy>p:not(.card-kind){font-size:.95rem}.card-kind{font-size:.61rem}.card-art{height:215px}.card-icon{left:20px;bottom:15px;width:55px;height:55px}.mini-pebble{width:270px;right:-33px}.legal-links{gap:25px}}
@media(max-width:700px){.wrap{width:calc(100% - 40px)}.header{padding-block:20px;gap:12px}.wordmark{font-size:1.05rem;gap:7px}.wordmark svg{width:29px;height:29px}.header nav{gap:0;font-size:.75rem}.header nav a:not(:first-child){display:none}.intro{display:block;padding-block:35px 40px}.intro .eyebrow{font-size:.65rem;margin-bottom:20px}.intro h1{font-size:clamp(2.6rem,11.2vw,4rem);line-height:1.06}.intro-note{font-size:1rem;margin-top:25px;line-height:1.7}.app-grid{grid-template-columns:1fr;gap:22px}.app-card{border-radius:23px}.card-art{height:220px}.card-copy{padding:24px 26px 22px}.card-kind{font-size:.68rem;margin-bottom:13px}.card-copy h2{font-size:2rem}.card-copy>p:not(.card-kind){font-size:1.08rem;margin-top:14px}.card-link{font-size:.84rem;margin-top:22px}.card-icon{left:26px;bottom:15px;width:65px;height:65px}.mini-pebble{width:320px;right:0;top:-30px}.about{display:block;margin-top:60px;padding-block:35px 55px}.about h2{font-size:2.2rem}.about .eyebrow{margin-bottom:25px}.about p:not(.eyebrow){font-size:.97rem}.footer{display:block;padding-block:28px 35px}.legal-links{margin-top:28px;display:grid;grid-template-columns:1fr 1fr;gap:24px}.legal-links a{min-height:34px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}

/* Native app elements share a stable card stage; the cards themselves stay aligned. */
.beeper-native{position:absolute;width:390px;max-width:110%;height:auto;left:50%;top:50%;transform:translate(-50%,-50%);transition:transform .45s ease;overflow:visible}
.phoneaware-orbit{position:absolute;width:230px;height:210px;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-5deg);border-radius:47% 53% 46% 54%;background:#b5d9c3}
.phoneaware-native{position:absolute;height:208px;width:auto;left:50%;top:50%;transform:translate(-50%,-50%);filter:drop-shadow(0 7px 7px #163e3510);transition:transform .45s ease}
.mini-pebble{width:340px;max-width:110%;height:auto;left:50%;right:auto;top:50%;transform:translate(-50%,-50%);transition:transform .45s ease}
.pebble-wash{inset:12px 35px 12px;border-radius:48% 45% 40% 47%}
.beeper-card:hover .beeper-native,.beeper-card:focus-visible .beeper-native{transform:translate(-50%,-51.5%) rotate(-1deg)}
.phoneaware-card:hover .phoneaware-native,.phoneaware-card:focus-visible .phoneaware-native{transform:translate(-50%,-51.5%) rotate(2deg)}
.pebble-card:hover .mini-pebble,.pebble-card:focus-visible .mini-pebble{transform:translate(-50%,-51.5%) rotate(-2deg)}
@media(max-width:980px) and (min-width:701px){.phoneaware-native{height:185px}.phoneaware-orbit{width:195px;height:185px}}
