:root{--ink:#1D1D1F;--gr:#33333A;--gr2:#2E2E33;--mut:#6E6E73;--bd:#E6E7EA;--soft:#F2F2F4;--cv:#FAFAF8;--grn:#34C759;--grnT:#34C759;--blue:#33333A;--amb:#FF9F0A}
.mark-own{position:relative;white-space:nowrap}
.mark-own::after{content:"";position:absolute;left:0;right:0;bottom:.06em;height:.16em;background:linear-gradient(90deg,var(--grn),#7ED09B);
 border-radius:99px;z-index:-1;transform:scaleX(0);transform-origin:left;animation:swipe 1s .5s cubic-bezier(.2,.6,.2,1) forwards;opacity:.55}
@keyframes swipe{to{transform:scaleX(1)}}
.trust{display:flex;gap:22px;flex-wrap:wrap;margin-top:22px;font-size:12.5px;color:var(--mut);font-weight:500}
.trust span{display:flex;align-items:center;gap:6px}
.trust .gd{width:7px;height:7px;border-radius:50%;background:var(--grn)}
/* compare strip */
.compare{display:grid;grid-template-columns:1fr 1fr;gap:16px;max-width:860px;margin:40px auto 0;text-align:left}
.cmp{border-radius:18px;padding:26px;border:1px solid var(--bd)}
.cmp.rent{background:#fff}
.cmp.own{background:#F4FBF6;border-color:#CDEBD7}
.cmp h3{font-size:15px;margin-bottom:12px;display:flex;align-items:center;gap:8px}
.cmp li{list-style:none;display:flex;gap:9px;margin:8px 0;font-size:13.5px;color:var(--mut)}
.cmp .x{color:#B3261E;font-weight:700}
.cmp .c{color:var(--grnT);font-weight:700}
.cmp.own li{color:#2E4437}
/* sticky cta — always navigable when visible; never leave a dead click target */
#stickycta{position:fixed;right:22px;bottom:calc(22px + env(safe-area-inset-bottom,0px));z-index:200;box-shadow:0 12px 34px rgba(29,29,31,.22);
 opacity:0;transform:translateY(14px);transition:.35s;pointer-events:none;visibility:hidden}
#stickycta.on{opacity:1;transform:none;pointer-events:auto;visibility:visible}
section[id]{scroll-margin-top:84px}
.tool{display:inline-flex;align-items:center;gap:8px}
.tdot{width:8px;height:8px;border-radius:50%}
.ticon{width:15px;height:15px;display:block}
/* icon wall marquee */
.mwrap{overflow:hidden;max-width:960px;margin:36px auto 0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.mrow{display:flex;gap:16px;width:max-content;animation:scrollx var(--t,34s) linear infinite;padding:6px 0}
.mrow.rev2{animation-direction:reverse}
.mwrap:hover .mrow{animation-play-state:paused}
@keyframes scrollx{to{transform:translateX(-50%)}}
.iconwall{display:flex;flex-wrap:wrap;gap:16px;justify-content:center;max-width:720px;margin:36px auto 0}
.itile{position:relative;width:68px;height:68px;border-radius:18px;background:#fff;border:1px solid var(--bd);
 display:flex;align-items:center;justify-content:center;box-shadow:0 10px 26px rgba(29,29,31,.09);
 animation:floaty 5.2s ease-in-out infinite;animation-delay:var(--d,0s);transition:transform .2s}
.itile:hover{transform:translateY(-6px) scale(1.06)}
.itile img{width:30px;height:30px}
.itile.more{font-size:10px;font-weight:700;color:var(--mut);text-align:center;line-height:1.3;padding:6px}
@keyframes floaty{50%{transform:translateY(-7px)}}
.iconwall+.chips{display:none}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{overflow-x:hidden}
body{font-family:'Inter',-apple-system,sans-serif;color:var(--ink);background:#fff;line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
.wrap{max-width:1140px;margin:0 auto;padding:0 24px}
.pill{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:999px;padding:12px 24px;font-weight:600;font-size:15px;transition:.15s;border:1px solid transparent;cursor:pointer}
.pill-ink{background:var(--gr);color:#fff}
.pill-ink:hover{background:var(--gr2);transform:translateY(-1px)}
.pill-ghost{border-color:var(--bd);background:#fff;color:var(--ink)}
.pill-ghost:hover{border-color:var(--gr)}
.eyebrow{font-size:12.5px;font-weight:700;letter-spacing:.14em;color:var(--mut)}
h2{font-size:clamp(28px,3.8vw,42px);letter-spacing:-.025em;font-weight:800;line-height:1.08}
.sub{color:var(--mut);font-size:16.5px;max-width:600px}
/* nav */
nav{position:sticky;top:0;z-index:100;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);background:rgba(255,255,255,.75);border-bottom:1px solid var(--bd)}
.nav-in{display:flex;align-items:center;gap:30px;height:64px}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:19px;letter-spacing:-.02em}
.nav-links{display:flex;gap:28px;margin-left:auto;font-size:14.5px;color:var(--mut);font-weight:500}
.nav-skills{display:none;margin-left:auto;margin-right:12px;font-size:13px;font-weight:600;color:var(--mut);white-space:nowrap}
nav .pill{white-space:nowrap}
.nav-skills:hover{color:var(--ink)}
.nav-links a:hover{color:var(--ink)}
/* hero */
header{position:relative;overflow:hidden;background:#fff}
.hero{display:grid;grid-template-columns:1.05fr .95fr;gap:44px;align-items:center;padding:76px 0 64px}
.hero .badge{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--bd);background:rgba(255,255,255,.85);border-radius:999px;padding:8px 16px;font-size:13px;font-weight:500;color:var(--mut);margin-bottom:22px}
.hero .badge b{color:var(--gr)}
h1{font-size:clamp(40px,5vw,60px);line-height:1.04;letter-spacing:-.032em;font-weight:800;margin-bottom:18px}
.hero .sub{margin-bottom:30px}
.cta-row{display:flex;gap:12px;flex-wrap:wrap}
.fine{font-size:12.5px;color:var(--mut);margin-top:16px}
/* phone demo in hero */
.phone-slot{display:flex;justify-content:center}
.phone-crop{width:322px;height:648px;overflow:hidden;border-radius:42px;filter:drop-shadow(0 34px 70px rgba(20,20,22,.28))}
.phone-crop iframe{width:460px;height:930px;border:0;transform:scale(.70);transform-origin:top left;pointer-events:auto}
.demo-cap{text-align:center;font-size:12px;color:var(--mut);margin-top:14px}
.demo-cap b{color:var(--gr)}
/* demo sections */
.demo-frame{border:0;width:100%;border-radius:20px;overflow:hidden}
.sec{padding:88px 0}
.sec.alt{background:linear-gradient(180deg,#F2F8F1 0%,#FAFCF9 100%);border-top:1px solid var(--bd);border-bottom:1px solid var(--bd)}
.center{text-align:center}
.center .sub{margin:14px auto 0}
.split{display:grid;grid-template-columns:.9fr 1.1fr;gap:52px;align-items:center}
.split.rev{grid-template-columns:1.1fr .9fr}
.split h2{margin:10px 0 14px}
.split .sub{font-size:15px}
ul.checks{list-style:none;margin-top:18px}
ul.checks li{display:flex;gap:10px;margin:9px 0;color:var(--mut);font-size:14px}
ul.checks .t{color:var(--gr);font-weight:700}
/* pillars */
.cols{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:44px;text-align:left}
.pillar{background:rgba(255,255,255,.8);backdrop-filter:blur(12px);border:1px solid var(--bd);border-radius:18px;padding:28px}
.pillar h3{font-size:17px;margin:14px 0 8px;letter-spacing:-.01em}
.pillar p{color:var(--mut);font-size:14px}
.picto{width:42px;height:42px;border-radius:12px;background:var(--soft);display:flex;align-items:center;justify-content:center}
/* chips */
.chips{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;max-width:880px;margin:32px auto 0}
.tool{border:1px solid var(--bd);background:#fff;border-radius:999px;padding:9px 18px;font-size:13.5px;font-weight:600;color:var(--gr)}
.tool.more{color:var(--mut);font-weight:500}
/* steps */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:44px;text-align:left}
.step{border:1px solid var(--bd);border-radius:16px;padding:24px;background:#fff}
.num{font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--mut)}
.step h3{font-size:15.5px;margin:10px 0 6px}
.step p{color:var(--mut);font-size:13px}
/* pricing */
.price-card{max-width:660px;margin:40px auto 0;border:1px solid var(--bd);border-radius:22px;padding:36px;background:rgba(255,255,255,.85);backdrop-filter:blur(12px);text-align:left;box-shadow:0 14px 44px rgba(29,29,31,.07)}
.price-card li{margin:11px 0;color:var(--mut);font-size:14.5px;list-style:none;display:flex;gap:10px}
.tick{color:var(--gr);font-weight:700}
/* faq */
.faq{max-width:740px;margin:36px auto 0;text-align:left}
details{border-bottom:1px solid var(--bd);padding:19px 6px}
summary{font-weight:600;font-size:15.5px;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center}
summary::after{content:"+";color:var(--mut);font-weight:400;font-size:18px}
details[open] summary::after{content:"–"}
details p{color:var(--mut);font-size:14px;margin-top:10px;max-width:660px}
/* contact */
.contact-sec{background:var(--cv);border-top:1px solid var(--bd)}
.contact-card{max-width:720px;margin:0 auto;border:1px solid var(--bd);border-radius:22px;padding:32px 28px;background:#fff;box-shadow:0 14px 44px rgba(29,29,31,.07);text-align:left}
.contact-card h2{margin-bottom:8px}
.contact-card .sub{margin-bottom:22px}
.contact-emails{display:grid;gap:12px;margin:18px 0 8px}
.contact-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;padding:14px 16px;border:1px solid var(--bd);border-radius:14px;background:var(--soft)}
.contact-row .em{font-weight:700;font-size:15px;color:var(--gr);word-break:break-all}
.contact-row-solo{border-radius:999px;justify-content:space-between;padding:16px 16px 16px 24px;background:rgba(255,255,255,.72);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-color:rgba(230,231,234,.9);box-shadow:0 10px 30px rgba(29,29,31,.08)}
.contact-actions{display:flex;flex-wrap:wrap;gap:8px;margin-left:auto}
.contact-actions a,.contact-actions button{font-size:13px;padding:8px 14px;border-radius:999px;border:1px solid var(--bd);background:#fff;color:var(--ink);font-weight:600;cursor:pointer;font-family:inherit}
.contact-actions a.primary,.contact-actions button.primary{background:var(--gr);color:#fff;border-color:var(--gr)}
.contact-actions a:hover,.contact-actions button:hover{border-color:var(--gr)}
.contact-note{font-size:12.5px;color:var(--mut);margin-top:14px;line-height:1.5}
.contact-form-link{display:inline-block;margin-top:10px;font-size:13px;font-weight:600;color:var(--mut)}
.contact-form-link:hover{color:var(--gr);text-decoration:underline}
/* contact form */
.form-row{margin-bottom:16px;text-align:left}
.form-row label{display:block;font-size:13px;font-weight:600;color:var(--ink);margin-bottom:6px}
.form-row label .opt{font-weight:400;color:var(--mut)}
.form-row input,.form-row textarea{width:100%;font:inherit;font-size:14.5px;padding:11px 14px;border:1px solid var(--bd);border-radius:12px;background:#fff;color:var(--ink);resize:vertical}
.form-row input:focus,.form-row textarea:focus{outline:2px solid var(--gr);outline-offset:1px}
.form-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:6px}
.form-status{margin-top:14px;font-size:13.5px;color:var(--mut);text-align:left}
.form-status.ok{color:var(--grnT);font-weight:600}
.form-status.error{color:#B3261E;font-weight:600}
.form-status a{color:var(--gr);font-weight:700;text-decoration:underline}
.hp-field{position:absolute;left:-9999px;top:-9999px;width:1px;height:1px;overflow:hidden}
#copytoast{position:fixed;left:50%;bottom:calc(88px + env(safe-area-inset-bottom,0px));transform:translateX(-50%) translateY(12px);background:var(--ink);color:#fff;padding:10px 16px;border-radius:999px;font-size:13px;font-weight:600;opacity:0;pointer-events:none;transition:.25s;z-index:300}
#copytoast.show{opacity:1;transform:translateX(-50%) translateY(0)}
/* footer */
footer{border-top:1px solid var(--bd);padding:46px 0 58px;text-align:center;color:var(--mut);font-size:13px;background:#fff}
footer .brand{justify-content:center;margin-bottom:10px}

/* big sur scene */
.bigsur{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}
.bigsur svg{position:absolute;bottom:0;left:0;width:100%;height:100%}
.cloud{position:absolute;background:#fff;filter:blur(22px);opacity:.55;border-radius:50%;animation:drift 60s linear infinite}
@keyframes drift{from{transform:translateX(-15vw)}to{transform:translateX(115vw)}}
header .wrap.hero{position:relative;z-index:2}
.life{position:relative;overflow:hidden;border-top:1px solid var(--bd);border-bottom:1px solid var(--bd)}
.life .wrap{position:relative;z-index:2}
.life h2{color:#173425}
.life .sub{color:#3D5A49}
.lifecards{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:30px}
.lc{background:rgba(255,255,255,.82);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.9);border-radius:14px;
 padding:12px 18px;font-size:12.5px;font-weight:600;color:#173425;box-shadow:0 10px 26px rgba(23,52,37,.12)}
.lc small{display:block;font-weight:400;color:#3D5A49;font-size:10.5px}
/* Content stays visible without JavaScript; interactions are enhancement only. */
.rev{opacity:1;transform:none}


/* Tablet/phone shared layout — phone-crop is un-cropped here too (561-760px band) so it matches the ≤560 rule below */
@media(max-width:760px){
 .compare{grid-template-columns:1fr}
 .sec{padding:56px 0}
 .hero{padding:44px 0 34px}
 .phone-crop{width:min(340px,88vw);height:calc((min(340px,88vw) - 40px)*2.164 + 66px);border-radius:0;overflow:visible}
 .phone-crop iframe{width:min(340px,88vw);height:calc((min(340px,88vw) - 40px)*2.164 + 66px);transform:none}
 .footgrid{grid-template-columns:1fr !important;gap:18px !important;text-align:center !important}
 .footgrid .brand{justify-content:center !important}
 #stickycta{right:14px;bottom:calc(14px + env(safe-area-inset-bottom,0px));padding:11px 18px;font-size:13.5px}
 .itile{width:56px;height:56px;border-radius:15px}
 .itile img{width:24px;height:24px}
}
@media(max-width:960px){
 .hero{grid-template-columns:1fr;text-align:center;padding:56px 0 40px}
 .hero .badge{margin:0 auto 20px}
 .cta-row{justify-content:center}
 .split,.split.rev{grid-template-columns:1fr}
 .cols,.steps{grid-template-columns:1fr}
 .nav-links{display:none}
 .nav-skills{display:inline-block}
}
/* Phone: same un-crop values as ≤760 above, plus phone-only type/spacing tweaks */
@media(max-width:560px){
 .nav-in{gap:8px}
 .brand{font-size:15px}
 .nav-skills{font-size:12px;margin-right:8px}
 nav .pill{padding:8px 14px!important;font-size:12.5px!important}
 h1{font-size:clamp(28px,8vw,34px)}
 .sub{font-size:15px}
 footer{padding-bottom:104px}
 header .bigsur svg{height:460px}
 .phone-crop{width:min(340px,88vw);height:calc((min(340px,88vw) - 40px)*2.164 + 66px);border-radius:0;overflow:visible}
 .phone-crop iframe{width:min(340px,88vw);height:calc((min(340px,88vw) - 40px)*2.164 + 66px);transform:none}
 .badge{font-size:11.5px;padding:7px 12px}
 .pill{padding:11px 20px;font-size:14px}
 .trust{gap:12px;font-size:11.5px;justify-content:center}
 .eyebrow{font-size:11px}
 h2{font-size:26px}
 .mwrap{margin-top:26px}
 .cmp{padding:20px}
 .lifecards{gap:8px}
 .lc{padding:10px 14px;font-size:11.5px}
 .contact-row-solo{justify-content:center;text-align:center;padding:16px 18px}
 .contact-row-solo .contact-actions{margin-left:0;justify-content:center;width:100%}
}

/* type + interaction polish */
h1,h2,h3{text-wrap:balance}
p,li{text-wrap:pretty}
.price-card p,.price-card li{font-variant-numeric:tabular-nums}
::selection{background:var(--gr);color:#fff}
a:focus-visible,button:focus-visible,.pill:focus-visible,summary:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:6px}
.pill:focus-visible{border-radius:999px}
input:focus-visible,textarea:focus-visible{outline:2px solid var(--ink);outline-offset:1px}
@media(prefers-reduced-motion:reduce){.mrow{animation:none}.itile{animation:none}.mark-own::after{animation:none;transform:scaleX(1)}}
