@font-face{font-family:'Open Runde';src:url('/fonts/OpenRunde-Regular.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Open Runde';src:url('/fonts/OpenRunde-Medium.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:'Departure Mono';src:url('/fonts/DepartureMono-Regular.woff2') format('woff2');font-weight:400;font-display:swap}
:root{color-scheme:light;--bg:#fbf9f5;--surface:#f2eee6;--text:#171614;--secondary:#5f5b54;--muted:#726d63;--border:#e4dfd5;--strong:#b9b3a8;--error:#a73526;--inverse:#fbf9f5;--sans:'Open Runde',system-ui,sans-serif;--mono:'Departure Mono',ui-monospace,monospace;font-family:var(--sans);background:var(--bg);color:var(--text);font-synthesis:none}
@media(prefers-color-scheme:dark){:root{color-scheme:dark;--bg:#100f0e;--surface:#181715;--text:#f1eee8;--secondary:#ada89e;--muted:#a29c90;--border:#292722;--strong:#625c52;--error:#e07a6a;--inverse:#100f0e}}

*{box-sizing:border-box}
body{margin:0;font-size:18px;line-height:1.7;-webkit-font-smoothing:antialiased}
h1,p{margin:0}a{color:inherit}button,input{font:inherit}
button,a{touch-action:manipulation}::selection{background:var(--border)}
:focus-visible{outline:2px solid var(--text);outline-offset:5px}
.page{max-width:1240px;min-height:100svh;margin:auto;padding:0 48px;display:flex;flex-direction:column}
.masthead{display:flex;align-items:center;min-height:112px}
.brand{display:inline-flex;align-items:center;gap:11px;text-decoration:none;font-size:28px;letter-spacing:-.04em;font-weight:500;line-height:1}
.brand svg{width:27px;height:27px;fill:none;stroke:currentColor;stroke-width:2}
main{flex:1}.hero{display:grid;grid-template-columns:minmax(0,1fr) 350px;align-items:center;gap:80px;padding:18px 0 48px}.hero-copy{padding-bottom:15px}
h1{font-size:clamp(38px,4.4vw,56px);line-height:1.14;letter-spacing:-.045em;font-weight:400}
.intro{margin-top:30px;max-width:470px;color:var(--secondary);font-size:18px;line-height:1.75}
.intro p+p{margin-top:19px}.intro p:first-child{color:var(--text)}
.signup{max-width:468px;margin-top:34px}
.email-row{display:flex;align-items:center;border:1px solid var(--strong);border-radius:5px;padding:5px;background:var(--bg);gap:5px}
.email-row:focus-within{border-color:var(--text)}
input{min-width:0;flex:1;width:100%;color:var(--text);background:transparent;border:0;padding:12px 11px;font-size:16px;border-radius:3px}
input::placeholder{color:var(--muted)}input:focus-visible{outline-offset:0}
button{flex-shrink:0;background:var(--text);color:var(--inverse);border:0;border-radius:3px;min-height:44px;padding:11px 16px;font-size:14px;cursor:pointer}
button span{margin-left:10px}button:hover{background:var(--secondary)}button:disabled{cursor:wait;opacity:.7}
.signup-note{font:11px/1.8 var(--mono);color:var(--muted);margin-top:14px}
#form-status{font-size:14px;margin-top:10px}#form-status:empty{display:none}#form-status[data-error=true]{color:var(--error)}
footer{padding:22px 0 30px;font-size:12px;color:var(--muted)}
.sr-only,.honey{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.skip{position:absolute;top:12px;left:12px;transform:translateY(-200%);background:var(--bg);z-index:2;padding:10px}.skip:focus{transform:none}
@media(max-width:540px){.page{padding:0 24px}.masthead{min-height:90px}.hero{padding:30px 0 44px}.brand{font-size:25px}.brand svg{width:24px;height:24px}h1{font-size:clamp(33px,8.7vw,46px)}.intro{margin-top:26px;font-size:17px}.signup{margin-top:28px}.email-row{flex-wrap:wrap}.email-row input{flex-basis:100%}.email-row button{width:100%}.signup-note{font-size:10px}footer{padding-bottom:26px}}

/* Display: 1206 × 2622, with a proportional thin frame.
   All phone geometry and type use the same container width, at every breakpoint. */
.demo{margin:0;min-width:0;max-width:320px;width:100%;justify-self:center;container-type:inline-size}
.phone{position:relative;width:100%;aspect-ratio:1246/2662;border-radius:13.4cqw;background:#161616;box-shadow:0 0 0 .35cqw #777,inset 0 0 0 .65cqw #414141,0 5cqw 12cqw #0002;font-family:-apple-system,BlinkMacSystemFont,'Helvetica Neue',sans-serif;color:#111;line-height:1.3}
.phone-screen{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:96.7897%;aspect-ratio:1206/2622;border-radius:11.8cqw;overflow:hidden;background:#fff;display:flex;flex-direction:column}
.phone-status{height:13.7cqw;flex-shrink:0;position:relative;display:flex;align-items:center;justify-content:space-between;padding:1cqw 6cqw 0;font-size:3.8cqw;font-weight:600;letter-spacing:-.1cqw}
.island{position:absolute;left:50%;transform:translateX(-50%);top:3.1cqw;width:18.7cqw;height:6.8cqw;background:#080808;border-radius:5cqw}
.status-icons{display:flex;align-items:center;gap:1.2cqw}.status-icons svg{height:3.2cqw;overflow:visible}.signal{width:4.5cqw;fill:currentColor}.wifi{width:4.4cqw;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}.wifi circle{fill:currentColor;stroke:none}.battery{width:6.1cqw;fill:none;stroke:currentColor;stroke-width:1;stroke-opacity:.45}.battery-fill{fill:currentColor;stroke:none}
.contact{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:1cqw;padding:1cqw 0 3.5cqw;font-size:3.5cqw;flex-shrink:0;background:#ffffffdf;box-shadow:0 2cqw 5cqw #ffffff;backdrop-filter:blur(12px)}
.contact-mark{width:11.5cqw;height:11.5cqw;border-radius:50%;display:grid;place-items:center;background:#eeece8;font:8.8cqw/1 var(--sans);padding-bottom:1cqw}.contact-name{font-weight:500}.chevron{color:#999;margin-left:.5cqw}
.back,.video{position:absolute;top:3cqw;width:10cqw;height:10cqw;display:grid;place-items:center;border-radius:50%;background:#ffffffd9;box-shadow:0 0 .6cqw #0002,0 1cqw 2cqw #00000009}.back{left:3cqw}.video{right:3cqw}.contact svg{width:5.8cqw;height:5.8cqw;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.messages{padding:3cqw 3cqw 2cqw;flex:1;min-height:0;overflow:auto;scrollbar-width:none;display:flex;flex-direction:column;align-items:flex-start;gap:2.2cqw;transition:opacity .35s}.messages::-webkit-scrollbar{display:none}.messages.clearing{opacity:0}
.message-time{font-size:2.9cqw;color:#8e8e93;text-align:center;width:100%;margin:1cqw 0 3cqw;flex-shrink:0}
.bubble{max-width:88%;padding:2.5cqw 3.4cqw;border-radius:5cqw;letter-spacing:-.065cqw;font-size:4.25cqw;line-height:1.32;white-space:pre-line;overflow-wrap:anywhere;flex-shrink:0;animation:message-in .28s ease-out both}
.outgoing{background:#007aff;color:#fff;align-self:flex-end;border-bottom-right-radius:1.5cqw}.incoming{background:#e9e9eb;color:#101010;border-bottom-left-radius:1.5cqw}.delivery{font-size:2.6cqw;color:#8e8e93;align-self:flex-end;margin-top:-1.2cqw}
.typing{display:flex;gap:1.1cqw;align-items:center;padding:3.8cqw 4cqw;min-height:11cqw}.typing i{width:1.9cqw;height:1.9cqw;background:#909096;border-radius:50%;animation:typing-dot 1.1s infinite ease-in-out}.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}
.phone-compose{display:flex;align-items:flex-end;gap:2.3cqw;padding:2.5cqw 3cqw 4cqw;color:#8e8e93;flex-shrink:0;font-size:4cqw;background:#ffffffed}.compose-plus{font-size:7cqw;font-weight:300;background:#f6f6f6;box-shadow:0 0 .5cqw #0002;border-radius:50%;width:9cqw;height:9cqw;text-align:center;line-height:8.3cqw;flex-shrink:0;color:#222}.compose-field{border:1px solid #dedee2;box-shadow:0 .5cqw 2cqw #00000005;border-radius:5cqw;flex:1;min-width:0;padding:1.6cqw 1.6cqw 1.6cqw 3.2cqw;display:flex;align-items:flex-end;gap:1cqw;min-height:9cqw}
#demo-draft{flex:1;max-height:17cqw;overflow:hidden;white-space:pre-wrap;overflow-wrap:anywhere;color:#111;line-height:1.3;padding-bottom:.5cqw}#demo-draft:empty::before{content:'iMessage';color:#999}.composing #demo-draft::after{content:'';display:inline-block;height:4cqw;width:.4cqw;background:#007aff;vertical-align:-.6cqw;animation:cursor 1s steps(2) infinite}.send-arrow{background:#c7c7cc;color:white;border-radius:50%;width:6.3cqw;height:6.3cqw;flex-shrink:0;text-align:center;font-size:5.5cqw;line-height:6cqw}.composing .send-arrow{background:#007aff}
.home-indicator{width:31cqw;height:1.2cqw;border-radius:2cqw;background:#171717;margin:0 auto 2cqw;flex-shrink:0}
.demo-controls{display:flex;justify-content:center;margin-top:10px}.demo-controls button{background:none;color:var(--muted);padding:4px 12px;font-size:11px;min-height:44px}.demo-controls button:hover{color:var(--text)}
.link-card{padding:0;width:88%;overflow:hidden;white-space:normal}.link-card img{display:block;width:100%;height:auto;aspect-ratio:600/315;object-fit:cover}.link-meta{padding:2.5cqw 3.4cqw;display:flex;flex-direction:column;gap:.8cqw}.link-meta strong{font-size:3.8cqw;font-weight:600}.link-meta span{font-size:3.2cqw;color:#6e6e73}

.demo.is-paused .phone *{animation-play-state:paused!important}
@keyframes message-in{from{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:none}}@keyframes typing-dot{0%,60%,100%{opacity:.45;transform:none}30%{opacity:1;transform:translateY(-.8cqw)}}@keyframes cursor{50%{opacity:0}}
@media(prefers-reduced-motion:reduce){.phone *{animation:none!important;transition:none!important}}
@media(max-width:1000px) and (min-width:600px){.page{padding:0 32px}.hero{grid-template-columns:minmax(0,1fr) 300px;gap:35px}h1{font-size:42px}.intro{font-size:16px}.email-row{flex-wrap:wrap}.email-row input{flex-basis:100%}.email-row button{width:100%}}
@media(max-width:599px), (max-height:599px) and (pointer:coarse){.hero{grid-template-columns:1fr;gap:44px;padding-top:30px}.hero-copy{padding:0}.intro{max-width:500px}.masthead{min-height:90px}}

/* Keep the desktop composition inside the viewport without clipping content. */
#demo-skip,#demo-replay{display:none}
@media(min-width:600px){
  .masthead{min-height:var(--masthead-height)}.page{--masthead-height:clamp(96px,14svh,128px);padding:0 clamp(28px,5vw,64px)}
  .brand{font-size:38px;gap:12px;transform:translateY(18px)}.brand svg{width:38px;height:38px}
  .hero{grid-template-columns:minmax(0,1fr) min(300px,36vw,calc((100svh - var(--masthead-height) - 96px)*1246/2662));gap:clamp(40px,7vw,90px);min-height:calc(100svh - var(--masthead-height) - 64px);padding:8px 0}
  .hero-copy{padding:0}.demo{max-width:300px}.demo-controls{margin-top:4px}.demo-controls button{min-height:34px}
  h1{font-size:clamp(36px,4vw,52px)}.intro{font-size:16px;line-height:1.65;margin-top:22px;max-width:450px}.intro p+p{margin-top:14px}.signup{margin-top:26px}.signup-note{font-size:10px}
  footer{padding:16px 0 28px;line-height:20px;font-size:11px}
}
@media(max-width:599px), (max-height:599px) and (pointer:coarse){
  body.mobile-intro{overflow:hidden;background:#fff}
  .page{padding:0 24px;min-height:100dvh;transition:transform .85s cubic-bezier(.22,1,.36,1),opacity .65s ease;transform-origin:50% 100%}
  .page main{display:flex;align-items:center}.hero{display:block;padding:16px 0 24px;width:100%}
  .masthead{min-height:96px;padding-top:env(safe-area-inset-top)}
  .brand{font-size:30px;gap:11px;transform:none}.brand svg{width:30px;height:30px}
  .hero-copy{width:100%}h1{font-size:clamp(32px,8.5vw,46px)}.intro{font-size:16px;line-height:1.65;margin-top:22px}.intro p+p{margin-top:14px}.signup{margin-top:24px}.signup-note{font-size:9px}
  .page footer{padding:12px 0 calc(20px + env(safe-area-inset-bottom));font-size:10px}
  .demo{display:none}
  body.mobile-intro .page{opacity:0;transform:translateY(14vh) scale(.94);pointer-events:none}
  body.mobile-intro>.demo,body.mobile-landing>.demo{display:flex;position:fixed;inset:0;width:100%;max-width:none;height:100dvh;z-index:10;background:#fff;flex-direction:column;justify-content:flex-start;transition:transform .85s cubic-bezier(.65,0,.35,1),border-radius .85s;transform-origin:50% 0;overflow:hidden}
  body.mobile-landing>.demo{transform:translateY(-110%) scale(.92);border-radius:28px;pointer-events:none;visibility:hidden;transition:transform .85s cubic-bezier(.65,0,.35,1),border-radius .85s,visibility 0s .85s}
  .demo .phone{flex:1;min-height:0;width:100%;aspect-ratio:auto;background:#fff;border-radius:0;box-shadow:none}
  .demo .phone-screen{position:static;transform:none;width:100%;height:100%;aspect-ratio:auto;border-radius:0}
  .demo .phone-status,.demo .home-indicator{display:none}
  .demo .contact{padding-top:calc(12px + env(safe-area-inset-top));padding-bottom:12px;font-size:14px;gap:4px}
  .demo .contact-mark{width:40px;height:40px;font-size:31px;padding-bottom:4px}
  .demo .back,.demo .video{top:calc(18px + env(safe-area-inset-top));width:38px;height:38px}.demo .contact svg{width:23px;height:23px}
  .demo .messages{padding:12px 14px;gap:9px}.demo .bubble{font-size:16px;line-height:1.35;max-width:85%;padding:10px 13px;border-radius:20px}.demo .outgoing{border-bottom-right-radius:6px}.demo .incoming{border-bottom-left-radius:6px}
  .demo .message-time{font-size:11px;margin:4px 0 12px}.demo .delivery{font-size:10px}.demo .typing{padding:14px 16px;min-height:40px}.demo .typing i{width:7px;height:7px}
  .demo .link-card{padding:0;width:85%}.demo .link-meta{padding:10px 13px;gap:3px}.demo .link-meta strong{font-size:14px}.demo .link-meta span{font-size:12px}
  .demo .phone-compose{font-size:16px;padding:8px 14px 2px;gap:9px}.demo .compose-plus{width:36px;height:36px;font-size:28px;line-height:33px}.demo .compose-field{min-height:36px;border-radius:20px;padding:6px 6px 6px 13px}.demo #demo-draft{max-height:65px}.demo .send-arrow{width:25px;height:25px;font-size:22px;line-height:24px}
  .demo .demo-controls{flex-shrink:0;gap:16px;margin:0;padding-bottom:env(safe-area-inset-bottom)}.demo-controls button{min-height:40px;color:#777}.demo #demo-skip{display:block}
}
@media(prefers-reduced-motion:reduce){.page,body.mobile-landing>.demo{transition:none!important}}

.phone[role=button]{cursor:pointer;-webkit-tap-highlight-color:transparent}
.phone[role=button]:focus-visible{outline:2px solid var(--text);outline-offset:5px}
#headline:focus{outline:none}
@media(min-width:600px){.demo-controls{display:none}}

.intro .audience{font:12px/1.9 var(--mono);color:var(--secondary);margin-top:20px;max-width:430px}
footer{font-family:var(--mono)}footer a{text-decoration:none;text-underline-offset:4px}footer a:hover{text-decoration:underline;color:var(--text)}

/* A rotated phone goes straight to the signup; tablets retain the desktop layout. */
body.phone-landscape .page{transition:none;max-width:660px}
body.phone-landscape>.demo,body.phone-landscape #demo-replay{display:none}
body.phone-landscape .masthead{min-height:80px}
body.phone-landscape .hero{padding-top:8px}

/* Replay sits with the introduction, leaving Safari to supply its own controls. */
body.mobile-landing #demo-replay{display:inline-flex;align-items:center;margin-top:16px;padding:8px 0;background:none;color:var(--secondary);font:11px/1.5 var(--mono);min-height:44px}
body.mobile-landing #demo-replay:hover{color:var(--text)}
body.phone-landscape #demo-replay{display:none}

.legal-page{max-width:840px}.legal-page main{padding:32px 0 64px}.legal-page h1{font-size:36px;margin-bottom:32px}.legal-page p{font-size:16px;line-height:1.8;margin:20px 0;color:var(--secondary)}
