.services-hero{flex-direction:column;justify-content:center;min-height:100vh;padding-top:clamp(100px,12vw,160px);padding-bottom:clamp(60px,8vw,96px);display:flex}.services-hero__headline{font-family:var(--jh-serif);font-weight:700;font-size:var(--jh-size-h1);line-height:var(--jh-lh-h1);letter-spacing:-.015em;letter-spacing:-.02em;color:var(--jh-fg);max-width:100%;margin-bottom:var(--jh-space-3xl);opacity:0;transition:opacity .6s var(--jh-ease),transform .6s var(--jh-ease);font-size:clamp(32px,4.8vw,64px);line-height:1.12;transform:translateY(14px)scale(.97)}@media (prefers-reduced-motion:reduce){.services-hero__headline{transition:opacity .3s;transform:none}}.services-hero__headline--in{opacity:1;transform:none}.services-hero__rule{background:var(--jh-neutral-2);height:1px;margin-bottom:var(--jh-space-xl);transform-origin:0;transition:transform .35s var(--jh-ease);transform:scaleX(0)}@media (prefers-reduced-motion:reduce){.services-hero__rule{transition:none;transform:scaleX(1)}}.services-hero__rule--in{transform:scaleX(1)}.services-hero__body{font-family:var(--jh-sans);font-weight:400;font-size:var(--jh-size-body);line-height:var(--jh-lh-body);letter-spacing:0;color:var(--jh-fg);opacity:0;max-width:720px;transition:opacity .5s var(--jh-ease) .56s;line-height:1.7}@media (prefers-reduced-motion:reduce){.services-hero__body{opacity:1;transition:none}}.services-hero__body--in{opacity:1}
.finder-section{flex-direction:column;justify-content:center;min-height:100vh;padding:clamp(80px,10vw,128px) 0;display:flex}.finder-section__heading{font-family:var(--jh-serif);font-weight:700;font-size:var(--jh-size-h2);line-height:var(--jh-lh-h2);letter-spacing:-.01em;color:var(--jh-fg);margin-bottom:var(--jh-space-lg);opacity:0;transition:opacity .6s var(--jh-ease),transform .6s var(--jh-ease);font-size:clamp(28px,3.5vw,40px);line-height:1.18;transform:translateY(20px)}@media (prefers-reduced-motion:reduce){.finder-section__heading{transition:opacity .3s;transform:none}}.finder-section__heading--in{opacity:1;transform:none}.finder-section__intro{font-family:var(--jh-sans);font-weight:400;font-size:var(--jh-size-body);line-height:var(--jh-lh-body);letter-spacing:0;color:var(--jh-fg);max-width:720px;margin-bottom:var(--jh-space-2xl);opacity:0;transition:opacity .5s var(--jh-ease) .12s;line-height:1.7}@media (prefers-reduced-motion:reduce){.finder-section__intro{opacity:1;transition:none}}.finder-section__intro--in{opacity:1}.finder-section__finder-wrap{margin-bottom:var(--jh-space-2xl);opacity:0;transition:opacity .6s var(--jh-ease) .2s}@media (prefers-reduced-motion:reduce){.finder-section__finder-wrap{opacity:1;transition:none}}.finder-section__finder-wrap--in{opacity:1}.finder-section__pricing{font-family:var(--jh-sans);font-weight:400;font-size:var(--jh-size-body);line-height:var(--jh-lh-body);letter-spacing:0;color:var(--jh-fg);opacity:0;max-width:720px;transition:opacity .5s var(--jh-ease) .28s;line-height:1.7}@media (prefers-reduced-motion:reduce){.finder-section__pricing{opacity:1;transition:none}}.finder-section__pricing--in{opacity:1}.finder{border:1px solid var(--jh-neutral-2);background:#f8f6f0;border-radius:6px;max-width:860px;overflow:hidden;box-shadow:0 4px 20px #0000000f}[data-theme=dark] .finder{background:#252119;box-shadow:0 4px 20px #0000003d}.finder__chrome{border-bottom:1px solid var(--jh-neutral-2);background:#eceae2;justify-content:center;align-items:center;height:32px;display:flex;position:relative}[data-theme=dark] .finder__chrome{background:#302d27}.finder__dots{gap:6px;display:flex;position:absolute;left:12px}.finder__dot{background:var(--jh-neutral-2);opacity:.7;border-radius:50%;width:10px;height:10px}.finder__path{font-family:var(--jh-sans);color:var(--jh-neutral-1);letter-spacing:.01em;font-size:12px;font-weight:400}.finder__body{display:flex}@media (max-width:768px){.finder__body{flex-direction:column}}.finder__sidebar{border-right:1px solid var(--jh-neutral-2);flex-shrink:0;width:30%;min-width:220px}@media (max-width:768px){.finder__sidebar{border-right:none;border-bottom:1px solid var(--jh-neutral-2);width:100%}}.finder__file{cursor:pointer;-webkit-user-select:none;user-select:none;border-left:3px solid #0000;align-items:center;gap:8px;height:40px;padding:0 14px;transition:background .12s;display:flex}.finder__file:hover{background:#e4e0d64d}[data-theme=dark] .finder__file:hover{background:#f2efe70a}.finder__file--active{border-left-color:var(--jh-accent);background:#8278c80f}.finder__file-icon{color:var(--jh-neutral-1);text-align:center;flex-shrink:0;width:14px;font-size:11px;font-style:normal}.finder__file-name{font-family:var(--jh-sans);color:var(--jh-fg);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:400;overflow:hidden}.finder__preview{flex:1;min-height:180px;padding:24px}@media (max-width:768px){.finder__preview{padding:20px}}.finder__preview-title{font-family:var(--jh-sans);color:var(--jh-fg);margin-bottom:10px;font-size:18px;font-weight:600}.finder__preview-rule{background:var(--jh-neutral-2);height:1px;margin-bottom:14px}.finder__preview-body{font-family:var(--jh-sans);color:var(--jh-fg);font-size:15px;font-weight:400;line-height:1.65;transition:opacity .15s}@media (prefers-reduced-motion:reduce){.finder__preview-body{transition:none}}.finder__preview-body--fade{opacity:.2}
.timeline-section{padding:var(--jh-space-section) 0}.timeline-section__header{margin-bottom:var(--jh-space-lg)}.timeline-section__intro{font-family:var(--jh-sans);font-weight:400;font-size:var(--jh-size-body);line-height:var(--jh-lh-body);letter-spacing:0;color:var(--jh-fg);opacity:0;transition:opacity .5s var(--jh-ease);margin-bottom:10px;line-height:1.7}@media (prefers-reduced-motion:reduce){.timeline-section__intro{opacity:1;transition:none}}.timeline-section__intro--in{opacity:1}.timeline-section__hint{font-family:var(--jh-sans);color:var(--jh-neutral-1);letter-spacing:.01em;opacity:1;pointer-events:none;font-size:12px;font-weight:400;transition:opacity .4s}@media (prefers-reduced-motion:reduce){.timeline-section__hint{transition:none}}.timeline-section__hint--hidden{opacity:0}.timeline-section__note{font-family:var(--jh-sans);color:var(--jh-neutral-1);max-width:560px;margin-top:var(--jh-space-xl);opacity:0;transition:opacity .5s var(--jh-ease);font-size:14px;font-weight:400;line-height:1.6}@media (prefers-reduced-motion:reduce){.timeline-section__note{opacity:1;transition:none}}.timeline-section__note--in{opacity:1}.timeline-align{max-width:var(--jh-container-max);margin:0 auto;padding-left:24px;overflow:hidden}@media (min-width:992px){.timeline-align{padding-left:40px}}@media (max-width:768px){.timeline-align{max-width:none;margin:0;padding-left:0;overflow:visible}}.timeline-track{scroll-snap-type:x mandatory;scrollbar-width:none;-ms-overflow-style:none;padding-bottom:var(--jh-space-xl);overflow-x:scroll}@media (max-width:768px){.timeline-track{padding-left:24px;padding-right:24px;scroll-padding-left:24px}}.timeline-track::-webkit-scrollbar{display:none}.timeline-inner{gap:var(--jh-space-xl);width:max-content;padding-bottom:8px;display:flex;position:relative}.timeline-line{background:var(--jh-neutral-2);pointer-events:none;height:1px;position:absolute;top:16px;left:0;right:0}.timeline-node{background:var(--jh-neutral-2);border-radius:50%;width:12px;height:12px;position:absolute;top:10px;left:0}.timeline-node--done{background:var(--jh-accent)}.timeline-node--iter{background:var(--jh-bg);border:2px solid var(--jh-accent);box-shadow:0 0 0 3px var(--jh-bg),0 0 0 4px #7b6ee84d}.timeline-card{scroll-snap-align:start;flex-shrink:0;width:260px;padding-top:36px;position:relative}@media (prefers-reduced-motion:reduce){.timeline-card{opacity:1!important;transition:none!important}}@media (max-width:768px){.timeline-card{width:80vw}}.timeline-card__num{font-family:var(--jh-sans);letter-spacing:.08em;text-transform:uppercase;color:var(--jh-neutral-1);margin-bottom:6px;font-size:11px;font-weight:600}.timeline-card__name{font-family:var(--jh-sans);color:var(--jh-fg);margin-bottom:8px;font-size:18px;font-weight:600}.timeline-card__rule{background:var(--jh-neutral-2);height:1px;margin-bottom:12px}.timeline-card__desc{font-family:var(--jh-sans);color:var(--jh-neutral-1);font-size:14px;font-weight:400;line-height:1.65}
