.s-hero{position:relative;overflow:hidden;isolation:isolate;padding:clamp(48px,8vw,104px) 0 clamp(40px,6vw,80px)}.s-hero:before{content:"";position:absolute;inset:0;z-index:-2;pointer-events:none;background:radial-gradient(58% 64% at 86% -6%,color-mix(in oklab,var(--primary) 20%,transparent),transparent 68%),radial-gradient(48% 58% at -6% 4%,color-mix(in oklab,var(--tertiary) 16%,transparent),transparent 66%)}.s-hero:after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.5;background-image:radial-gradient(color-mix(in oklab,var(--on-surface) 8%,transparent) 1px,transparent 1px);background-size:28px 28px;-webkit-mask-image:radial-gradient(70% 60% at 60% 0%,#000,transparent 75%);mask-image:radial-gradient(70% 60% at 60% 0%,#000,transparent 75%)}.s-hero h1{font-size:clamp(40px,7.4vw,84px);font-weight:800;letter-spacing:-.04em;line-height:1;margin:0 0 var(--sp-6);max-width:17ch;color:var(--on-surface);text-wrap:balance}.s-hero h1 em{font-style:normal;color:var(--primary);position:relative}.s-hero h1 em:after{content:"";position:absolute;left:0;right:0;bottom:.04em;height:.09em;background:color-mix(in oklab,var(--primary) 45%,transparent);border-radius:4px}.s-hero p.sub{font-size:clamp(17px,2.1vw,22px);line-height:1.5;color:var(--on-surface-variant);max-width:56ch;margin:0 0 var(--sp-8);text-wrap:pretty}.s-hero p.sub em{font-style:normal;color:var(--on-surface);font-weight:600}.s-hero .cta{display:flex;flex-wrap:wrap;gap:var(--sp-3);align-items:center}.s-hero .reassure{margin-top:var(--sp-5);font-size:13.5px;color:var(--on-surface-variant);display:flex;align-items:center;gap:var(--sp-2)}.s-hero .reassure svg{width:16px;height:16px;color:var(--primary);flex:none}.s-hero .accent-wrap{margin-top:var(--sp-10)}.s-hero .accent-wrap .lab{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--on-surface-variant);margin-bottom:var(--sp-4)}.trusted{padding:var(--sp-10) 0;border-top:1px solid var(--outline-variant)}.trusted .lab{text-align:center;font-size:12.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--on-surface-variant);margin-bottom:var(--sp-6)}.trusted .logos{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:var(--sp-8) var(--sp-12)}.trusted .logos span{font-size:20px;font-weight:800;letter-spacing:-.02em;color:var(--on-surface);opacity:.42;transition:opacity var(--dur-2);display:inline-flex;align-items:center;gap:7px}.trusted .logos span:hover{opacity:.85}.trusted .logos .dot{width:9px;height:9px;border-radius:3px;background:var(--primary);display:inline-block}.s{padding:clamp(64px,9vw,120px) 0}.s.bg{background:var(--surface-container-low)}.s-head{max-width:64ch;margin-bottom:var(--sp-12)}.s-head.center{margin-left:auto;margin-right:auto;text-align:center}.s-title{font-size:clamp(30px,4.4vw,48px);font-weight:800;letter-spacing:-.03em;line-height:1.04;margin:0 0 var(--sp-4);color:var(--on-surface);text-wrap:balance}.s-title em{font-style:normal;color:var(--primary)}.s-sub{font-size:clamp(16px,1.8vw,19px);line-height:1.55;color:var(--on-surface-variant);margin:0;text-wrap:pretty}.svc-grid{display:grid;gap:var(--sp-4);grid-template-columns:1fr}@media(min-width:680px){.svc-grid{grid-template-columns:1fr 1fr}}@media(min-width:1000px){.svc-grid{grid-template-columns:repeat(3,1fr)}}.svc{position:relative;padding:var(--sp-6);border-radius:var(--r-lg);background:var(--surface);overflow:hidden;border:1px solid var(--outline-variant);transition:transform var(--dur-2) var(--ease-standard),box-shadow var(--dur-2),border-color var(--dur-2)}.svc:hover{transform:translateY(-4px);box-shadow:var(--e3);border-color:transparent}.svc .ic{width:50px;height:50px;border-radius:var(--r-md);display:grid;place-items:center;background:var(--primary-container);color:var(--on-primary-container);margin-bottom:var(--sp-5)}.svc .ic svg{width:24px;height:24px}.svc.alt .ic{background:var(--tertiary-container);color:var(--on-tertiary-container)}.svc.alt2 .ic{background:var(--secondary-container);color:var(--on-secondary-container)}.svc h3{margin:0 0 var(--sp-2);font-size:19px;font-weight:700;letter-spacing:-.01em;color:var(--on-surface)}.svc p{margin:0 0 var(--sp-4);font-size:15px;line-height:1.55;color:var(--on-surface-variant)}.svc .tags{display:flex;flex-wrap:wrap;gap:6px}.svc .tags span{font-size:12px;font-weight:600;padding:4px 10px;border-radius:var(--r-full);background:var(--surface-container-high);color:var(--on-surface-variant)}.phil{display:grid;gap:var(--sp-10);grid-template-columns:1fr;align-items:start}@media(min-width:920px){.phil{grid-template-columns:.9fr 1.1fr;gap:var(--sp-16)}}.phil .lead h2{font-size:clamp(28px,4vw,42px);font-weight:800;letter-spacing:-.03em;line-height:1.06;margin:var(--sp-4) 0;color:var(--on-surface)}.phil .lead h2 em{font-style:normal;color:var(--primary)}.phil .lead p{font-size:17px;line-height:1.6;color:var(--on-surface-variant);margin:0 0 var(--sp-6)}.proc{display:flex;flex-direction:column;gap:var(--sp-3)}.proc-step{border:1px solid var(--outline-variant);border-radius:var(--r-md);background:var(--surface);overflow:hidden}.proc-step .top{display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-5);cursor:pointer;user-select:none;width:100%;text-align:left;border:0;background:transparent;font-family:inherit}.proc-step .num{width:38px;height:38px;border-radius:var(--r-full);flex:none;display:grid;place-items:center;background:var(--surface-container-high);color:var(--on-surface-variant);font-weight:800;font-size:14px;font-family:var(--font-mono);transition:background-color var(--dur-2),color var(--dur-2)}.proc-step.open .num{background:var(--primary);color:var(--on-primary)}.proc-step .st-title{flex:1;font-size:17px;font-weight:700;letter-spacing:-.01em;color:var(--on-surface)}.proc-step .chev{width:22px;height:22px;color:var(--on-surface-variant);transition:transform var(--dur-3) var(--ease-standard);flex:none}.proc-step.open .chev{transform:rotate(180deg);color:var(--primary)}.proc-step .body{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--dur-3) var(--ease-standard)}.proc-step.open .body{grid-template-rows:1fr}.proc-step .body-inner{overflow:hidden}.proc-step .body p{margin:0;padding:0 var(--sp-5) var(--sp-5) calc(var(--sp-5) + 38px + var(--sp-4));font-size:15px;line-height:1.6;color:var(--on-surface-variant)}html:not(.js) .proc-step .body{grid-template-rows:1fr}@media(prefers-reduced-motion:reduce){.proc-step .body{transition:none}}.work-filter{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-bottom:var(--sp-8)}.case-grid{display:grid;gap:var(--sp-5);grid-template-columns:1fr}@media(min-width:720px){.case-grid{grid-template-columns:1fr 1fr}}.case{position:relative;border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--outline-variant);background:var(--surface);transition:transform var(--dur-2) var(--ease-standard),box-shadow var(--dur-2);text-decoration:none;color:inherit;display:block}.case:hover{transform:translateY(-4px);box-shadow:var(--e3)}.case .cover{height:200px;position:relative;overflow:hidden;display:grid;place-items:center}.case .cover .glyph{width:84px;height:84px;color:color-mix(in oklab,var(--on-primary-container) 70%,transparent)}.case.c1 .cover{background:linear-gradient(135deg,var(--primary-container),color-mix(in oklab,var(--primary-container) 60%,var(--tertiary-container)))}.case.c2 .cover{background:linear-gradient(135deg,var(--tertiary-container),color-mix(in oklab,var(--tertiary-container) 55%,var(--surface-container-highest)))}.case.c3 .cover{background:linear-gradient(135deg,var(--secondary-container),color-mix(in oklab,var(--secondary-container) 50%,var(--primary-container)))}.case.c4 .cover{background:linear-gradient(135deg,color-mix(in oklab,var(--primary-container) 70%,var(--surface-container-high)),var(--surface-container-high))}.case .cover .kind{position:absolute;top:14px;left:14px}.case .meta{padding:var(--sp-5) var(--sp-6) var(--sp-6)}.case .meta h3{margin:0 0 var(--sp-2);font-size:21px;font-weight:700;letter-spacing:-.02em;color:var(--on-surface);display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}.case .meta h3 .arr{width:22px;height:22px;color:var(--on-surface-variant);transition:transform var(--dur-2),color var(--dur-2);flex:none}.case:hover .meta h3 .arr{transform:translate(3px,-3px);color:var(--primary)}.case .meta p{margin:0 0 var(--sp-4);font-size:15px;line-height:1.55;color:var(--on-surface-variant)}.case .meta .row{display:flex;flex-wrap:wrap;gap:var(--sp-4);font-size:13px;color:var(--on-surface-variant)}.case .meta .row b{color:var(--on-surface);font-weight:700}.case.hide{display:none}.oss{display:grid;gap:var(--sp-5);grid-template-columns:1fr}@media(min-width:900px){.oss{grid-template-columns:1fr 1fr}}.oss .repo-col{display:flex;flex-direction:column;gap:var(--sp-4)}.repo{display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-5) var(--sp-6);border-radius:var(--r-md);background:var(--surface);border:1px solid var(--outline-variant);transition:border-color var(--dur-2),box-shadow var(--dur-2);text-decoration:none;color:inherit}.repo:hover{border-color:transparent;box-shadow:var(--e2)}.repo .rh{display:flex;align-items:center;gap:var(--sp-3)}.repo .rh .gic{width:34px;height:34px;border-radius:var(--r-sm);display:grid;place-items:center;background:var(--surface-container-high);color:var(--on-surface);flex:none}.repo .rh .gic svg{width:18px;height:18px}.repo .rh .nm{font-family:var(--font-mono);font-size:15px;font-weight:600;color:var(--on-surface)}.repo .rh .lang{margin-left:auto;font-size:12px;font-weight:600;color:var(--on-surface-variant);display:inline-flex;align-items:center;gap:6px}.repo .rh .lang:before{content:"";width:9px;height:9px;border-radius:var(--r-full);background:var(--primary)}.repo p{margin:0;font-size:14.5px;line-height:1.55;color:var(--on-surface-variant)}.repo .rstats{display:flex;gap:var(--sp-5);align-items:center;font-size:13px;color:var(--on-surface-variant)}.repo .rstats span{display:inline-flex;align-items:center;gap:6px}.repo .rstats svg{width:15px;height:15px}.repo .rstats .view{margin-left:auto;color:var(--primary);font-weight:600}.oss-cta{display:flex;flex-direction:column;justify-content:center;padding:var(--sp-8);border-radius:var(--r-lg);background:var(--inverse-surface);color:var(--inverse-on-surface)}.oss-cta .badge{align-self:flex-start;margin-bottom:var(--sp-5);background:color-mix(in oklab,var(--inverse-on-surface) 16%,transparent);color:var(--inverse-on-surface)}.oss-cta h3{margin:0 0 var(--sp-3);font-size:26px;font-weight:800;letter-spacing:-.02em;color:var(--inverse-on-surface)}.oss-cta p{margin:0 0 var(--sp-6);font-size:15.5px;line-height:1.6;color:color-mix(in oklab,var(--inverse-on-surface) 78%,transparent)}.oss-cta .actions{display:flex;flex-wrap:wrap;gap:var(--sp-3)}.oss-cta .btn.filled{background:var(--inverse-primary);color:var(--on-primary)}.oss-cta .btn.text{color:var(--inverse-on-surface)}.stats-band{display:grid;gap:var(--sp-6);grid-template-columns:repeat(2,1fr)}@media(min-width:760px){.stats-band{grid-template-columns:repeat(4,1fr)}}.stats-band .stat{text-align:center}.stats-band .stat .n{font-size:clamp(40px,6vw,64px);font-weight:800;letter-spacing:-.04em;color:var(--primary);line-height:1}.stats-band .stat .l{margin-top:var(--sp-3);font-size:14px;font-weight:600;color:var(--on-surface-variant)}.s-quote{max-width:62ch;margin:0 auto;text-align:center}.s-quote blockquote{font-size:clamp(22px,3.2vw,34px);font-weight:600;letter-spacing:-.02em;line-height:1.28;color:var(--on-surface);margin:0 0 var(--sp-8);text-wrap:balance}.s-quote blockquote em{font-style:normal;color:var(--primary)}.s-quote .who{display:inline-flex;align-items:center;gap:var(--sp-3)}.s-quote .who .nm{font-weight:700;color:var(--on-surface);font-size:15px}.s-quote .who .rl{font-size:13px;color:var(--on-surface-variant)}.s-cta{position:relative;overflow:hidden;border-radius:var(--r-xl);padding:clamp(40px,7vw,84px);background:var(--primary);color:var(--on-primary);isolation:isolate}.s-cta:after{content:"";position:absolute;inset:0;z-index:-1;opacity:.5;pointer-events:none;background:radial-gradient(60% 80% at 100% 0%,color-mix(in oklab,#fff 22%,transparent),transparent 70%)}.s-cta .badge{margin-bottom:var(--sp-5);background:color-mix(in oklab,var(--on-primary) 18%,transparent);color:var(--on-primary)}.s-cta h2{font-size:clamp(30px,5vw,56px);font-weight:800;letter-spacing:-.03em;line-height:1.02;margin:0 0 var(--sp-5);max-width:18ch;color:var(--on-primary);text-wrap:balance}.s-cta p{font-size:clamp(16px,2vw,20px);line-height:1.5;margin:0 0 var(--sp-8);max-width:52ch;color:color-mix(in oklab,var(--on-primary) 86%,transparent)}.s-cta .form{display:flex;flex-wrap:wrap;gap:var(--sp-3);max-width:540px}.s-cta .form input{flex:1;min-width:220px;height:54px;min-height:54px;padding:0 16px;border-radius:var(--r-md);border:0;box-sizing:border-box;font-family:inherit;font-size:16px;background:var(--surface);color:var(--on-surface);outline:0;box-shadow:var(--e1)}.s-cta .form input:focus-visible{outline:2px solid var(--on-primary);outline-offset:2px}.s-cta .form input::placeholder{color:var(--on-surface-variant);opacity:.8}.s-cta .form .btn{background:var(--inverse-surface);color:var(--inverse-on-surface);height:54px;min-height:54px;border-radius:var(--r-md)}.s-cta .note{margin-top:var(--sp-4);font-size:13px;color:color-mix(in oklab,var(--on-primary) 80%,transparent)}.s-cta .note a{color:var(--on-primary)}@media(max-width:559px){.s-cta .form{flex-direction:column;align-items:stretch}.s-cta .form input,.s-cta .form .btn{width:100%;flex:none}}
