*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}html{scroll-behavior:smooth}#apps{scroll-margin-top:72px}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,Hiragino Sans,Hiragino Kaku Gothic ProN,Yu Gothic UI,Yu Gothic,Meiryo,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;background:var(--vb-bg);color:var(--vb-ink)}button{font-family:inherit;cursor:pointer}a{text-decoration:none;color:inherit}img{max-width:100%;display:block}ul,ol{padding:0;margin:0;list-style:none}:root{--vb-bg: #ffffff;--vb-bg-inner: #fafaf9;--vb-ink: #0a0a0a;--vb-muted: #666666;--vb-line: rgba(10, 10, 10, .08);--vb-line-strong: rgba(10, 10, 10, .15);--vb-card: #ffffff;--vb-accent: #0070f3;--vb-accent-deep: #005bd0;--vb-accent-soft: #e6f1ff;--vb-accent-rgb: 0 112 243;--vb-font-heading: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic UI", "Yu Gothic", Meiryo, sans-serif;--vb-font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic UI", "Yu Gothic", Meiryo, sans-serif;--vb-font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace}.font-mono{font-family:var(--vb-font-mono)}@keyframes vb-marquee-scroll{0%{transform:translate(0)}to{transform:translate(calc(-100% / 3))}}.vb-marquee:hover .vb-marquee-track{animation-play-state:paused}@media(prefers-reduced-motion:reduce){.vb-marquee-track{animation:none}}.vb-header{position:sticky;top:0;z-index:30;background:var(--vb-bg);border-bottom:1px solid var(--vb-line);transition:background .2s ease,backdrop-filter .2s ease}.vb-header[data-scrolled=true]{background:#ffffffd9;backdrop-filter:saturate(180%) blur(12px);-webkit-backdrop-filter:saturate(180%) blur(12px)}.vb-header-inner{max-width:1280px;margin:0 auto;padding:14px 28px;display:flex;align-items:center;justify-content:space-between;transition:padding .2s ease}.vb-header[data-scrolled=true] .vb-header-inner{padding:10px 28px}.vb-header-left{display:flex;align-items:center;gap:32px}.vb-nav-desktop{display:flex;align-items:center;gap:22px;font-size:13px;color:var(--vb-muted);font-weight:500;white-space:nowrap}.vb-nav-desktop a:hover,.vb-nav-desktop button:hover{color:var(--vb-ink)}.vb-nav-mobile-toggle{display:none;background:transparent;border:1px solid var(--vb-line);padding:8px;border-radius:8px;color:var(--vb-ink);align-items:center;justify-content:center}.vb-cta-desktop{display:inline-flex;background:var(--vb-ink);color:#fff;border:none;padding:8px 14px;border-radius:8px;font-size:13px;font-weight:500;align-items:center;gap:6px}.vb-locale-desktop{display:inline-flex;background:transparent;border:none;padding:5px 10px;font-size:12px;color:var(--vb-muted);font-family:var(--vb-font-mono)}.vb-locale-desktop:hover{color:var(--vb-ink)}.vb-header-right{display:flex;align-items:center;gap:8px}.vb-section-pad{padding:88px 28px}.vb-hero-pad{padding:56px 28px}.vb-cta-pad{padding:88px 28px}.vb-hero{position:relative;overflow:hidden;background-image:radial-gradient(var(--vb-line) 1px,transparent 1px);background-size:24px 24px}.vb-hero:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at top,transparent,white 70%);pointer-events:none}.vb-hero-inner{max-width:1280px;margin:0 auto;position:relative;text-align:center}.vb-hero-h1{font-size:clamp(44px,6vw,76px);margin:0 auto;line-height:1.05;letter-spacing:-.04em;font-weight:500;max-width:1000px;text-wrap:balance;font-family:var(--vb-font-heading)}.vb-hero-lead{margin:24px auto 0;max-width:580px;font-size:17px;line-height:1.55;color:var(--vb-muted);text-wrap:pretty}.vb-page-h1{margin:0 auto;font-size:clamp(48px,6.4vw,84px);line-height:1.02;letter-spacing:-.04em;font-weight:500;max-width:920px;text-wrap:balance;font-family:var(--vb-font-heading)}.vb-page-h1 .accent{color:var(--vb-accent)}.vb-page-lead{margin:36px auto 0;max-width:680px;font-size:17.5px;line-height:1.7;color:var(--vb-muted);text-wrap:pretty}.vb-btn{display:inline-flex;align-items:center;gap:6px;border:none;padding:12px 20px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;text-decoration:none;transition:opacity .15s ease,background .15s ease}.vb-btn-primary{background:var(--vb-ink);color:#fff}.vb-btn-primary:hover{opacity:.9}.vb-btn-secondary{background:transparent;color:var(--vb-ink);border:1px solid var(--vb-line)}.vb-btn-secondary:hover{background:var(--vb-bg-inner)}.vb-btn-on-dark-primary{background:#fff;color:var(--vb-ink);font-weight:600}.vb-btn-on-dark-secondary{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.25)}.vb-news-pill{display:inline-flex;align-items:center;gap:0;padding:0;border-radius:999px;background:#fff;border:1px solid var(--vb-line);font-size:12.5px;color:var(--vb-ink);margin-bottom:32px;text-decoration:none;overflow:hidden;box-shadow:0 1px #0f0f1005;max-width:min(560px,92vw)}.vb-news-pill__label{display:inline-flex;align-items:center;gap:6px;padding:6px 10px 6px 14px;font-family:var(--vb-font-mono);font-size:10.5px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--vb-muted);white-space:nowrap;flex:0 0 auto}.vb-news-pill__dot{width:5px;height:5px;border-radius:99px;background:var(--vb-accent)}.vb-news-pill__body{padding:5px 14px 5px 10px;display:inline-flex;align-items:center;gap:10px;font-weight:500;color:var(--vb-ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;border-left:1px solid var(--vb-line)}.vb-news-pill__date{font-family:var(--vb-font-mono);font-size:11px;color:var(--vb-muted);letter-spacing:.04em;flex:0 0 auto}.vb-news-pill__title{overflow:hidden;text-overflow:ellipsis}.vb-news-pill__arrow{color:var(--vb-muted);flex:0 0 auto}.vb-stars{color:#f59f0a}.vb-review-stars{display:flex;gap:2px;color:#f6a823;font-size:12px}.vb-hero-rating{margin-top:18px;font-size:12.5px;color:var(--vb-muted);display:flex;align-items:center;justify-content:center;gap:8px}.vb-eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:12px;color:var(--vb-accent-deep);font-weight:500;margin-bottom:16px}.vb-eyebrow:before,.vb-eyebrow:after{content:"";width:18px;height:1px;background:var(--vb-accent-deep)}.vb-stats{border-top:1px solid var(--vb-line);border-bottom:1px solid var(--vb-line)}.vb-stats-grid{display:grid;grid-template-columns:repeat(3,1fr);max-width:1280px;margin:0 auto}.vb-stats-cell{padding:32px 28px;border-right:1px solid var(--vb-line)}.vb-stats-cell:last-child{border-right:none}.vb-stats-label{font-size:15px;color:var(--vb-muted);letter-spacing:.04em;font-family:var(--vb-font-mono);margin-bottom:12px;text-transform:uppercase}.vb-stats-value{font-size:44px;font-weight:500;letter-spacing:-.03em;color:var(--vb-ink)}.vb-apps-section{background:var(--vb-bg)}.vb-apps-section-inner{max-width:1280px;margin:0 auto;text-align:center}.vb-apps-h2{margin:0 auto;font-size:clamp(36px,4vw,44px);line-height:1.1;letter-spacing:-.035em;font-weight:500;max-width:800px;font-family:var(--vb-font-heading);text-wrap:balance}.vb-apps-link-wrap{margin-top:18px}.vb-apps-link{font-size:13px;color:var(--vb-ink);font-weight:500;border-bottom:1px solid var(--vb-line-strong);padding-bottom:2px}.vb-apps-grid{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--vb-line);border-radius:12px;overflow:hidden;text-align:left;margin-top:48px}.vb-app-cell{background:var(--vb-card);padding:24px;display:flex;flex-direction:column;gap:12px;cursor:pointer;transition:background .15s ease;min-height:220px;position:relative;overflow:hidden;border-right:1px solid var(--vb-line);border-bottom:1px solid var(--vb-line)}.vb-app-cell:hover{background:var(--vb-bg-inner)}.vb-app-cell:hover .vb-app-arrow{opacity:1;transform:translate(0)}.vb-app-cell:nth-child(3n){border-right:none}.vb-app-cell:nth-last-child(-n+3):nth-child(3n+1),.vb-app-cell:nth-last-child(-n+3):nth-child(3n+1)~.vb-app-cell{border-bottom:none}.vb-app-head{display:flex;justify-content:space-between;align-items:center}.vb-app-icon{width:44px;height:44px;border-radius:10px;border:1px solid var(--vb-line);background:#fff;object-fit:cover;display:block}.vb-app-name{margin:6px 0 0;font-size:16px;font-weight:500;letter-spacing:-.015em}.vb-app-desc{margin:0;font-size:13px;line-height:1.5;color:var(--vb-muted);text-wrap:pretty;flex:1}.vb-app-foot{display:flex;justify-content:flex-end;align-items:center;margin-top:4px}.vb-app-arrow{font-size:12px;color:var(--vb-ink);font-weight:500;opacity:0;transform:translate(-4px);transition:all .2s ease}.vb-app-badge{height:32px;width:auto;display:block}.vb-reviews{background:var(--vb-bg-inner);border-top:1px solid var(--vb-line);border-bottom:1px solid var(--vb-line);overflow:hidden;padding:64px 0}.vb-reviews-head{max-width:1280px;margin:0 auto 48px;padding:0 20px;text-align:center}.vb-reviews-h2{margin:0 auto;font-size:clamp(32px,3.6vw,40px);line-height:1.1;letter-spacing:-.03em;font-weight:500;font-family:var(--vb-font-heading);max-width:720px;text-wrap:balance}.vb-reviews-h2 .accent{color:var(--vb-accent)}.vb-reviews-meta{margin-top:18px;display:flex;align-items:center;gap:12px;justify-content:center}.vb-reviews-meta-stars{display:flex;gap:2px;color:#f59f0a;font-size:16px}.vb-reviews-meta-text{font-size:13.5px;color:var(--vb-muted)}.vb-reviews-meta-text strong{color:var(--vb-ink);font-weight:600}.vb-reviews-source{margin-top:8px;font-size:12px;color:var(--vb-muted);text-align:center}.vb-marquee{position:relative;-webkit-mask-image:linear-gradient(90deg,transparent,#000 80px,#000 calc(100% - 80px),transparent);mask-image:linear-gradient(90deg,transparent,#000 80px,#000 calc(100% - 80px),transparent)}.vb-reviews .vb-marquee{--vb-marquee-duration: 540s}.vb-marquee-track{display:flex;gap:20px;width:max-content;animation:vb-marquee-scroll var(--vb-marquee-duration, 360s) linear infinite}.vb-marquee-card{flex:0 0 auto;width:380px;background:var(--vb-card);border:1px solid var(--vb-line);border-radius:12px;padding:26px 26px 24px;display:flex;flex-direction:column;gap:14px;text-align:left;text-decoration:none;color:inherit;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.vb-marquee-card:hover{border-color:var(--vb-ink);box-shadow:0 4px 16px -8px #0a0a0a26}.vb-marquee-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.vb-marquee-card-app{display:inline-flex;align-items:center;gap:10px;font-size:12px;color:var(--vb-muted);font-family:var(--vb-font-mono);letter-spacing:.04em}.vb-marquee-card-app-icon{width:24px;height:24px;border-radius:50%;flex:0 0 auto;box-shadow:0 0 0 1px var(--vb-line)}.vb-marquee-card-body{margin:0;font-size:14px;line-height:1.7;color:#2c2c2c;text-wrap:pretty;font-weight:400;display:-webkit-box;-webkit-line-clamp:7;-webkit-box-orient:vertical;overflow:hidden;min-height:166.6px}.vb-marquee-card-author{margin-top:auto;font-size:12px;color:var(--vb-muted);font-weight:400}.vb-services{max-width:1280px;margin:0 auto;text-align:center}.vb-services-h2{margin:0 auto;font-size:clamp(40px,4.6vw,56px);line-height:1.15;letter-spacing:-.035em;font-weight:500;max-width:880px;font-family:var(--vb-font-heading);text-wrap:balance}.vb-services-lead{margin:24px auto 0;max-width:640px;font-size:16.5px;line-height:1.65;color:var(--vb-muted);text-wrap:pretty}.vb-main-cta{position:relative;background-color:#0c0c0e;color:#fff;background-image:radial-gradient(ellipse 70% 55% at 50% 38%,rgb(var(--vb-accent-rgb) / .2),transparent 70%),radial-gradient(rgba(255,255,255,.09) 1px,transparent 1px);background-size:100% 100%,24px 24px;background-repeat:no-repeat,repeat;border-bottom:1px solid rgba(255,255,255,.06)}.vb-main-cta-inner{position:relative;max-width:1280px;margin:0 auto;text-align:center}.vb-main-cta-badge{height:32px;width:auto;display:block;margin:0 auto 28px}.vb-main-cta-h2{margin:0 auto;font-size:clamp(40px,5vw,64px);line-height:1.05;letter-spacing:-.035em;font-weight:500;max-width:920px;font-family:var(--vb-font-heading);text-wrap:balance}.vb-main-cta-lead{margin:20px auto 0;max-width:580px;font-size:16px;color:#ffffffbf}.vb-footer{background:var(--vb-ink);color:#fff9;border-top:1px solid rgba(255,255,255,.06)}.vb-footer-row{max-width:1280px;margin:0 auto;padding:40px 24px;font-size:12.5px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:24px}.vb-footer-links{display:flex;gap:8px 20px;flex-wrap:wrap}.vb-footer-links a{display:inline-block;padding:6px 0}.vb-footer-links a:hover{color:#fff}.vb-apps-menu-wrap{position:relative;display:inline-flex;align-items:center}.vb-apps-menu-trigger{display:inline-flex;align-items:center;gap:4px;background:transparent;border:none;padding:0;font:inherit;color:var(--vb-muted);font-weight:500;cursor:pointer}.vb-apps-menu-trigger:hover,.vb-apps-menu-trigger[aria-expanded=true]{color:var(--vb-ink)}.vb-apps-menu-trigger svg{transition:transform .15s ease}.vb-apps-menu-trigger[aria-expanded=true] svg{transform:rotate(180deg)}.vb-apps-menu-panel{position:absolute;top:calc(100% + 10px);left:-16px;background:#fff;border:1px solid var(--vb-line);border-radius:12px;box-shadow:0 24px 60px -24px #0a0a0a2e,0 6px 18px -8px #0a0a0a14;padding:8px;min-width:320px;z-index:50;display:none}.vb-apps-menu-panel[data-open=true]{display:block}.vb-apps-menu-link{display:flex;align-items:flex-start;gap:12px;padding:12px;border-radius:8px;text-decoration:none;transition:background .12s ease}.vb-apps-menu-link:hover{background:var(--vb-bg-inner)}.vb-apps-menu-icon{flex:0 0 auto;width:36px;height:36px;border-radius:8px;border:1px solid var(--vb-line);background:#fff;object-fit:cover}.vb-apps-menu-text{display:flex;flex-direction:column;gap:3px;min-width:0}.vb-apps-menu-name{font-size:13.5px;font-weight:600;color:var(--vb-ink);letter-spacing:-.005em}.vb-apps-menu-ext{display:inline-block;margin-left:4px;color:var(--vb-muted);font-weight:400;font-size:11px}.vb-apps-menu-desc{font-size:12px;color:var(--vb-muted);line-height:1.4;font-weight:400}.vb-mobile-sheet{position:fixed;inset:0;z-index:50;background:#fffffffa;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:none;flex-direction:column}.vb-mobile-sheet[data-open=true]{display:flex}.vb-mobile-sheet-head{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--vb-line)}.vb-mobile-sheet-close{background:transparent;border:none;font-size:22px;color:var(--vb-ink);padding:8px}.vb-mobile-sheet nav{flex:1;overflow-y:auto}.vb-mobile-sheet nav a{display:block;padding:16px 24px;font-size:18px;font-weight:500;color:var(--vb-ink);border-bottom:1px solid rgba(10,10,10,.06)}.vb-mobile-sheet-foot{padding:20px;display:flex;gap:10px;border-top:1px solid var(--vb-line)}.vb-mobile-sheet-foot .vb-locale-mobile{flex:1;background:transparent;border:1px solid var(--vb-line);padding:14px;border-radius:8px;font-size:14px;color:var(--vb-ink)}.vb-mobile-sheet-foot .vb-cta-mobile{flex:2;background:var(--vb-ink);color:#fff;border:none;padding:14px;border-radius:8px;font-size:14px;font-weight:500;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px}@media(max-width:1024px){.vb-nav-desktop{display:none}.vb-nav-mobile-toggle{display:inline-flex}.vb-locale-desktop{display:none}.vb-apps-grid{grid-template-columns:repeat(2,1fr)}.vb-app-cell{border-right:1px solid var(--vb-line)!important;border-bottom:1px solid var(--vb-line)!important}.vb-app-cell:nth-child(2n){border-right:none!important}.vb-app-cell:nth-last-child(-n+2){border-bottom:none!important}}@media(max-width:640px){.vb-section-pad{padding:56px 20px}.vb-hero-pad{padding:56px 20px 32px}.vb-cta-pad{padding:64px 20px}.vb-stats-grid{grid-template-columns:1fr}.vb-stats-cell{padding:22px 18px;border-right:none;border-bottom:1px solid var(--vb-line)}.vb-stats-cell:last-child{border-bottom:none}.vb-apps-grid{grid-template-columns:1fr}.vb-footer-row{flex-direction:column;align-items:flex-start;gap:18px}.vb-cta-desktop{display:none}.vb-hero-h1{font-size:clamp(32px,9vw,44px);line-height:1.1}.vb-page-h1{font-size:clamp(36px,9vw,56px);line-height:1.1}.vb-services-h2,.vb-apps-h2{font-size:clamp(28px,7.4vw,40px);line-height:1.18}.vb-reviews-h2{font-size:clamp(26px,6.8vw,36px);line-height:1.2}.vb-page-lead{font-size:15.5px}.vb-app-cell{border-right:none!important}.vb-app-cell:not(:last-child){border-bottom:1px solid var(--vb-line)!important}.vb-app-cell:last-child{border-bottom:none!important}.vb-marquee-card{width:280px}}
