:root{--ink:#0C0B10;--ink-2:#121019;--surface:#17141F;--line:#2A2533;--line-soft:#1F1B27;--paper:#F5F2EC;--soft:#D7D1C9;--muted:#9B93A5;--accent:#D9B46A;--accent-deep:#B8914A;--fd:'Fraunces',Georgia,serif;--fb:'Hanken Grotesk',system-ui,-apple-system,'Segoe UI',sans-serif;--maxw:1180px} *{box-sizing:border-box} html{-webkit-text-size-adjust:100%;scroll-behavior:smooth} body{margin:0;background:var(--ink);color:var(--paper);font-family:var(--fb);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden} body::before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")} main,footer,header{position:relative;z-index:1} img{max-width:100%;display:block} a{color:inherit;text-decoration:none} h1,h2,h3{font-family:var(--fd);font-weight:500;margin:0;letter-spacing:-.012em;color:var(--paper)} p{margin:0 0 1em} .wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px} .ic{width:20px;height:20px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto} .ic-wa{width:20px;height:20px;fill:currentColor;flex:0 0 auto} :focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px} .skip{position:absolute;left:-999px;top:8px;background:var(--accent);color:var(--ink);padding:8px 14px;border-radius:6px;z-index:100} .skip:focus{left:8px} /* nav */ .top{position:fixed;top:0;left:0;right:0;z-index:50;background:rgba(12,11,16,.78);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--line-soft)} .top .bar{display:flex;align-items:center;justify-content:space-between;height:72px;gap:20px} .brand{display:flex;align-items:center;gap:11px;font-family:var(--fd);font-size:21px;font-weight:600;letter-spacing:-.01em;white-space:nowrap} .mark{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:linear-gradient(145deg,var(--accent),var(--accent-deep));color:var(--ink)} .mark .ic{width:18px;height:18px;stroke-width:2} .menu{display:flex;align-items:center;gap:26px;font-size:15px;font-weight:500;color:var(--muted)} .menu a:hover,.menu button:hover,.menu .on{color:var(--paper)} .menu .on{box-shadow:0 1px 0 var(--accent)} .dd{position:relative} .dd>button{background:none;border:0;color:inherit;font:inherit;cursor:pointer;display:flex;align-items:center;gap:4px;padding:0} .dd>button .ic{width:15px;height:15px} .dd .panel{position:absolute;top:100%;left:-14px;padding-top:14px;opacity:0;visibility:hidden;transform:translateY(6px);transition:.2s} .dd:hover .panel,.dd:focus-within .panel{opacity:1;visibility:visible;transform:none} .dd .panel div{background:var(--ink-2);border:1px solid var(--line);border-radius:10px;padding:6px;min-width:190px} .dd .panel a{display:block;padding:10px 14px;border-radius:7px;color:var(--soft)} .dd .panel a:hover{background:var(--surface);color:var(--paper)} .top-cta{display:inline-flex;align-items:center;gap:9px;border:1px solid var(--accent);color:var(--accent);padding:10px 18px;border-radius:999px;font-size:14.5px;font-weight:600;white-space:nowrap} .top-cta:hover{background:var(--accent);color:var(--ink)} .burger{display:none;background:none;border:0;color:var(--paper);cursor:pointer;padding:8px} .burger .ic{width:26px;height:26px} .mnav{display:none} @media(max-width:1060px){.menu{display:none}.burger{display:block}.top-cta span{display:none} .mnav{display:block;max-height:0;overflow:hidden;transition:max-height .35s ease;border-top:1px solid transparent} .mnav.open{max-height:820px;border-top-color:var(--line-soft)} .mnav a{display:block;padding:14px 28px;border-bottom:1px solid var(--line-soft);color:var(--soft)} .mnav a.on{color:var(--accent)}} /* buttons */ .btn{display:inline-flex;align-items:center;gap:11px;padding:16px 28px;border-radius:999px;font-weight:700;font-size:16px;cursor:pointer;transition:transform .2s,background .2s,color .2s} .btn-solid{background:var(--accent);color:var(--ink);box-shadow:0 18px 50px -22px var(--accent)} .btn-solid:hover{transform:translateY(-2px)} .btn-line{border:1px solid var(--line);color:var(--paper);font-weight:600} .btn-line:hover{border-color:var(--accent);color:var(--accent)} .link{display:inline-flex;align-items:center;gap:8px;color:var(--accent);font-weight:600;border-bottom:1px solid transparent} .link:hover{border-color:var(--accent)} .actions{display:flex;gap:14px;flex-wrap:wrap;align-items:center} /* hero (index) */ .hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;padding:120px 0 8vh} .hero>.wrap{width:100%} .hero-media{position:absolute;inset:0;z-index:-1} .hero-media img{width:100%;height:100%;object-fit:cover} .hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,11,16,.55) 0%,rgba(12,11,16,.3) 35%,rgba(12,11,16,.88) 85%,var(--ink) 100%)} .kicker{display:flex;align-items:center;gap:13px;color:var(--accent);font-size:14px;font-weight:600;margin:0 0 22px} .kicker i{display:block;height:1px;width:44px;background:var(--accent);opacity:.7} .hero h1{font-size:clamp(3rem,8.6vw,7rem);line-height:.95;max-width:14ch} .hero h1 em,.ph h1 em,.closing h2 em{font-style:italic;font-weight:400} .hero .sub{margin:28px 0 36px;max-width:54ch;font-size:clamp(1.05rem,1.9vw,1.28rem);color:var(--soft);line-height:1.55} /* page hero (inner) */ .ph{padding:160px 0 64px;border-bottom:1px solid var(--line-soft)} .crumb{font-size:14px;color:var(--muted);margin-bottom:26px} .crumb a:hover{color:var(--paper)} .crumb span{margin:0 8px;opacity:.5} .ph h1{font-size:clamp(2.6rem,6vw,4.8rem);line-height:1;max-width:18ch} .ph .lede{margin-top:24px;max-width:58ch;font-size:clamp(1.05rem,1.8vw,1.22rem);color:var(--soft)} .ph .actions{margin-top:34px} /* sections */ .sec{padding:clamp(72px,10vw,128px) 0} .sec+.sec{border-top:1px solid var(--line-soft)} .eyeline{color:var(--accent);font-size:14px;font-weight:600;margin-bottom:18px} .h2{font-size:clamp(2rem,4.2vw,3.2rem);line-height:1.05;max-width:20ch;margin-bottom:22px} .lead{color:var(--soft);max-width:56ch;font-size:1.08rem} .muted{color:var(--muted)} /* spec band */ .specs{border-top:1px solid var(--line);border-bottom:1px solid var(--line)} .specs .wrap{display:grid;grid-template-columns:repeat(4,1fr)} .spec{padding:44px 26px;border-left:1px solid var(--line)} .spec:first-child{border-left:0;padding-left:0} .spec b{display:block;font-family:var(--fd);font-weight:400;font-size:clamp(2.5rem,4.6vw,3.6rem);line-height:1} .spec b small{font-family:var(--fb);font-size:.36em;font-weight:700;color:var(--accent);margin-left:6px;letter-spacing:.02em} .spec p{margin:14px 0 0;color:var(--muted);font-size:14.5px;max-width:24ch;line-height:1.45} @media(max-width:780px){.specs .wrap{grid-template-columns:1fr 1fr}.spec{padding:30px 18px}.spec:nth-child(3){border-left:0;padding-left:0}.spec:nth-child(n+3){border-top:1px solid var(--line)}} /* split */ .split{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(40px,7vw,96px);align-items:center} .split.rev>:first-child{order:2} @media(max-width:900px){.split{grid-template-columns:1fr;gap:40px}.split.rev>:first-child{order:0}} .frame{position:relative;border-radius:6px;overflow:hidden;aspect-ratio:4/3;border:1px solid var(--line);background:var(--surface)} .frame img{width:100%;height:100%;object-fit:cover} .frame.wide{aspect-ratio:16/9} .prose-in p{color:var(--soft);max-width:52ch} .prose-in strong{color:var(--paper);font-weight:600} .vs{display:flex;margin-top:28px;border:1px solid var(--line);border-radius:6px;overflow:hidden} .vs>div{flex:1;padding:22px 24px} .vs>div+div{border-left:1px solid var(--line)} .vs small{display:block;font-size:13.5px;color:var(--muted);font-weight:600;margin-bottom:8px} .vs b{font-family:var(--fd);font-weight:400;font-size:1.45rem;line-height:1.2} .vs .good b{color:var(--accent)} /* editorial rows */ .rows{border-top:1px solid var(--line);margin-top:48px} .row{display:grid;grid-template-columns:44px 1fr minmax(0,40ch);gap:28px;align-items:baseline;padding:26px 0;border-bottom:1px solid var(--line)} .row .n{font-family:var(--fd);color:var(--accent);font-size:15px} .row .ic{color:var(--accent);transform:translateY(4px)} .row h3{font-size:clamp(1.25rem,2.4vw,1.7rem);font-weight:400} .row p{margin:0;color:var(--muted);font-size:15px} @media(max-width:760px){.row{grid-template-columns:32px 1fr}.row p{grid-column:2}} /* feature columns (hairline, not cards) */ .cols{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);margin-top:48px} .cols.c4{grid-template-columns:repeat(4,1fr)} .col{padding:34px 28px 34px 0;border-right:1px solid var(--line-soft)} .col+.col{padding-left:28px} .col:last-child{border-right:0} .col .ic{color:var(--accent);width:24px;height:24px;margin-bottom:22px} .col h3{font-size:1.32rem;font-weight:500;margin-bottom:10px} .col p{color:var(--muted);font-size:15px;margin:0} @media(max-width:900px){.cols,.cols.c4{grid-template-columns:1fr 1fr}.col{border-right:0;border-bottom:1px solid var(--line-soft);padding:28px 18px 28px 0}.col+.col{padding-left:0}} @media(max-width:560px){.cols,.cols.c4{grid-template-columns:1fr}} /* category tiles (image) */ .tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;margin-top:48px;background:var(--line-soft);border:1px solid var(--line-soft);border-radius:6px;overflow:hidden} .tile{position:relative;background:var(--ink);min-height:300px;display:flex;flex-direction:column;justify-content:flex-end;padding:26px;overflow:hidden} .tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.5;transition:opacity .4s,transform .6s} .tile::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,11,16,.1),rgba(12,11,16,.92))} .tile:hover img{opacity:.68;transform:scale(1.03)} .tile>*:not(img){position:relative;z-index:1} .tile h3{font-size:1.5rem;font-weight:500;margin-bottom:8px} .tile p{color:var(--soft);font-size:14.5px;margin:0;max-width:34ch} @media(max-width:900px){.tiles{grid-template-columns:1fr 1fr}} @media(max-width:560px){.tiles{grid-template-columns:1fr}} /* plans */ .plans{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:8px;overflow:hidden;margin-top:44px} .plan{padding:36px 30px;border-left:1px solid var(--line);position:relative;display:flex;flex-direction:column} .plan:first-child{border-left:0} .plan.hot{background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 9%,transparent),transparent 70%)} .plan .pn{font-size:14.5px;font-weight:600;color:var(--muted)} .plan .pp{font-family:var(--fd);font-size:2.9rem;line-height:1;margin:16px 0 4px} .plan .pp s{font-family:var(--fb);font-size:1.05rem;color:var(--muted);margin-left:8px} .plan .pm{color:var(--muted);font-size:14px} .plan ul{list-style:none;padding:0;margin:24px 0 28px;display:flex;flex-direction:column;gap:11px;flex:1} .plan li{display:flex;gap:10px;font-size:15px;color:var(--soft)} .plan li .ic{width:17px;height:17px;color:var(--accent);margin-top:4px} .plan .tag{position:absolute;top:22px;right:24px;font-size:12px;font-weight:700;color:var(--accent)} .plan .btn{justify-content:center;padding:13px 20px;font-size:15px} .plan:not(.hot) .btn{border:1px solid var(--line);color:var(--paper);font-weight:600} .plan:not(.hot) .btn:hover{border-color:var(--accent);color:var(--accent)} .plan.hot .btn{background:var(--accent);color:var(--ink)} @media(max-width:860px){.plans{grid-template-columns:1fr}.plan{border-left:0;border-top:1px solid var(--line)}.plan:first-child{border-top:0}} .group-h{display:flex;align-items:center;gap:12px;font-size:15px;font-weight:600;color:var(--soft);margin:56px 0 0} .group-h .ic{color:var(--accent)} /* prose (articles, long text) */ .prose{max-width:68ch} .prose p,.prose li{color:var(--soft)} .prose h2{font-size:clamp(1.6rem,3vw,2.1rem);margin:2.2em 0 .6em} .prose h3{font-size:1.35rem;margin:1.8em 0 .5em} .prose ul{padding:0;list-style:none;margin:0 0 1.2em} .prose li{position:relative;padding-left:22px;margin-bottom:.55em} .prose li::before{content:"";position:absolute;left:0;top:.72em;width:8px;height:1px;background:var(--accent)} .prose strong{color:var(--paper);font-weight:600} .prose a{color:var(--accent);text-decoration:underline;text-underline-offset:3px} /* faq */ .faq{border-top:1px solid var(--line);margin-top:44px;max-width:860px} .faq details{border-bottom:1px solid var(--line)} .faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px 0;font-family:var(--fd);font-size:clamp(1.12rem,2vw,1.35rem);font-weight:400} .faq summary::-webkit-details-marker{display:none} .faq summary .ic{color:var(--accent);transition:transform .25s} .faq details[open] summary .ic{transform:rotate(45deg)} .faq .a{padding:0 0 24px;color:var(--soft);max-width:66ch} /* posts */ .posts{display:grid;grid-template-columns:repeat(3,1fr);gap:40px 32px;margin-top:48px} .post .frame{aspect-ratio:16/10;margin-bottom:20px} .post .meta{font-size:13.5px;color:var(--muted);display:flex;gap:16px;margin-bottom:10px} .post h3{font-size:1.35rem;font-weight:500;line-height:1.25;margin-bottom:10px} .post p{color:var(--muted);font-size:15px;margin:0} .post:hover h3{color:var(--accent)} @media(max-width:900px){.posts{grid-template-columns:1fr 1fr}} @media(max-width:600px){.posts{grid-template-columns:1fr}} /* tags (app names etc.) */ .tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:26px} .tags span{border:1px solid var(--line);border-radius:999px;padding:7px 14px;font-size:14px;color:var(--soft)} /* quotes (review placeholders) */ .quotes{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);margin-top:44px} .qt{padding:32px 28px 32px 0;border-right:1px solid var(--line-soft)} .qt+.qt{padding-left:28px}.qt:last-child{border-right:0} .qt .ic{color:var(--accent);margin-bottom:18px} .qt p{font-family:var(--fd);font-size:1.15rem;line-height:1.5;color:var(--soft)} .qt small{color:var(--muted);font-size:14px} @media(max-width:860px){.quotes{grid-template-columns:1fr}.qt,.qt+.qt{padding:26px 0;border-right:0;border-bottom:1px solid var(--line-soft)}} /* contact */ .contact{display:grid;grid-template-columns:1.2fr .8fr;border:1px solid var(--line);border-radius:8px;overflow:hidden} .contact>div{padding:clamp(32px,5vw,56px)} .contact>div+div{border-left:1px solid var(--line);display:flex;flex-direction:column;gap:28px} .contact h3{font-size:1.25rem;margin-bottom:6px} @media(max-width:820px){.contact{grid-template-columns:1fr}.contact>div+div{border-left:0;border-top:1px solid var(--line)}} /* closing */ .closing{text-align:center;padding:clamp(96px,13vw,170px) 0;border-top:1px solid var(--line-soft)} .closing h2{font-size:clamp(2.4rem,6vw,4.8rem);line-height:1;max-width:16ch;margin:0 auto 18px} .closing h2 em{color:var(--accent)} .closing p{color:var(--soft);max-width:52ch;margin:0 auto 34px} .closing .actions{justify-content:center} /* footer */ footer{border-top:1px solid var(--line);padding:64px 0 40px;margin-top:0} .foot{display:grid;grid-template-columns:1.2fr 1fr .9fr;gap:48px} .foot p{color:var(--muted);font-size:15px;max-width:36ch;margin-top:16px} .foot h4{font-family:var(--fb);font-size:14px;font-weight:600;color:var(--soft);margin:0 0 16px} .foot ul{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:10px 20px;font-size:15px;color:var(--muted)} .foot a:hover{color:var(--paper)} .legal{border-top:1px solid var(--line-soft);margin-top:48px;padding-top:24px;color:var(--muted);font-size:13.5px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px} @media(max-width:820px){.foot{grid-template-columns:1fr}} /* floating whatsapp */ .wa-float{position:fixed;right:22px;bottom:22px;z-index:60;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:#25D366;color:#fff;box-shadow:0 14px 34px -10px rgba(37,211,102,.55);transition:transform .2s} .wa-float:hover{transform:scale(1.06)} .wa-float .ic-wa{width:28px;height:28px} .btn-wa{background:#25D366;color:#fff} .btn-wa:hover{background:#1fb757} @media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}