/* ObliqueTech Services page. Built from the Titanium Obsidian services design on the site tokens (main.css): one blue, --ot-accent. */
.ot-sv{--sv-alt:#07080b;--sv-chip:rgba(255,255,255,.07);color:var(--ot-ink);font-family:var(--ot-font);overflow-x:clip}
.ot-sv *,.ot-sv *::before,.ot-sv *::after{box-sizing:border-box}
.ot-sv__wrap{width:min(100% - 3rem,80rem);margin-inline:auto}
.ot-sv :where(h1,h2,h3){margin:0;color:#fff;font-weight:700}
.ot-sv :where(p){margin:0}
.ot-sv :where(ul,ol){margin:0;padding:0;list-style:none}
.ot-sv a{text-decoration:none}
.ot-sv__accent{background:linear-gradient(90deg,#fff,#8e8e93);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}

/* Shared bits */
.ot-sv-label{font-family:var(--ot-mono);font-size:10px;line-height:14px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--ot-muted)}
.ot-sv-label--accent{color:var(--ot-muted-2)}
.ot-sv-dot{display:inline-block;flex:none;width:.5rem;height:.5rem;border-radius:50%;background:#8e8e93}
.ot-sv-dot--pulse{background:var(--ot-accent);box-shadow:0 0 8px rgba(41,151,255,.45);animation:ot-sv-pulse 2s ease-in-out infinite}
@keyframes ot-sv-pulse{50%{opacity:.35}}
.ot-sv-pill{display:inline-flex;flex-wrap:wrap;align-items:center;gap:.25rem;margin:0 0 1.5rem;padding:.25rem 1rem;border-radius:.75rem;background:var(--sv-chip);font-family:var(--ot-mono);font-size:10px;line-height:14px;font-weight:500;letter-spacing:.06em;text-transform:uppercase}
.ot-sv-pill__main{color:var(--ot-ink)}
.ot-sv-pill__main--plain{color:#fff}
.ot-sv-pill__sep{color:var(--ot-muted)}
.ot-sv-pill__tag{color:var(--ot-muted-2)}
.ot-sv-lead{font-size:18px;line-height:28px;letter-spacing:-.01em;color:var(--ot-muted-2);max-width:36rem}
.ot-sv-actions{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;padding-top:.5rem}
.ot-sv a.ot-sv-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:1rem 1.5rem;border-radius:.25rem;font-family:var(--ot-mono);font-size:14px;line-height:20px;font-weight:500;letter-spacing:.02em;transition:background .2s,transform .15s}
.ot-sv a.ot-sv-btn:active{transform:scale(.98)}
.ot-sv a.ot-sv-btn .ot-ico{font-size:16px}
.ot-sv a.ot-sv-btn--primary,.ot-sv a.ot-sv-btn--primary:hover{color:#fff;font-weight:600}
.ot-sv a.ot-sv-btn--primary{background:var(--ot-cta);box-shadow:0 0 24px -6px rgba(41,151,255,.3)}
.ot-sv a.ot-sv-btn--primary:hover{background:var(--ot-cta-hover)}
.ot-sv a.ot-sv-btn--ghost,.ot-sv a.ot-sv-btn--ghost:hover{color:#fff}
.ot-sv a.ot-sv-btn--ghost{background:#141418}
.ot-sv a.ot-sv-btn--ghost:hover{background:#1f1f25}

/* Hero */
.ot-sv-hero{position:relative;overflow:hidden;padding:3rem 0 4rem}
.ot-sv-hero .ot-sv__wrap{position:relative;z-index:1}
.ot-sv-hero__grid{display:grid;gap:2.5rem;align-items:center}
@media(min-width:1024px){.ot-sv-hero__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.ot-sv-hero__copy{display:flex;flex-direction:column;gap:1rem}
.ot-sv-hero h1{font-size:clamp(2.25rem,5vw,3.5rem);line-height:1.15;letter-spacing:-.03em}
.ot-sv-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;max-width:32rem;padding-top:1rem}
.ot-sv-metric{display:flex;flex-direction:column;padding:.5rem;border:1px solid var(--ot-line);border-radius:.25rem;background:var(--ot-card)}
.ot-sv-metric strong{margin-top:.25rem;font-size:20px;line-height:28px;font-weight:600;letter-spacing:-.015em;color:#fff}
.ot-sv-metric__cap{font-family:var(--ot-mono);font-size:10px;line-height:14px;letter-spacing:.06em;text-transform:uppercase;color:var(--ot-muted-2)}
.ot-sv-frame{position:relative;overflow:hidden;padding:.25rem;border:1px solid var(--ot-line);border-radius:.5rem;background:#000;box-shadow:0 25px 50px -12px rgba(0,0,0,.7)}
.ot-sv-frame__img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:.25rem;opacity:.9}
.ot-sv-chip{position:absolute;display:flex;align-items:center;gap:.25rem;padding:.25rem 1rem;border-radius:.375rem;background:rgba(10,10,13,.9);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 10px 15px -3px rgba(0,0,0,.5);font-family:var(--ot-mono);font-size:10px;line-height:14px;font-weight:500;letter-spacing:.06em;color:var(--ot-ink)}
.ot-sv-chip--tl{top:1rem;left:1rem}
.ot-sv-chip--bl{bottom:1rem;left:1rem}
.ot-sv-chip--tr{top:1rem;right:1rem;color:var(--ot-muted-2)}

/* Sections */
.ot-sv-sec{padding-block:2.5rem}
.ot-sv-sec--alt{background:var(--sv-alt)}
.ot-sv-sec>.ot-sv__wrap{display:flex;flex-direction:column;gap:1.5rem}
.ot-sv-head{display:flex;flex-direction:column;gap:.5rem}
.ot-sv-head--split{gap:.5rem;padding-bottom:.5rem}
@media(min-width:768px){.ot-sv-head--split{flex-direction:row;align-items:flex-end;justify-content:space-between}}
.ot-sv-eyebrow{font-family:var(--ot-mono);font-size:10px;line-height:14px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--ot-muted-2)}
.ot-sv-head h2{margin-top:.25rem;font-size:clamp(1.75rem,3.2vw,2.5rem);line-height:1.2;letter-spacing:-.025em;font-weight:600}
.ot-sv-head__text{font-size:15px;line-height:24px;color:var(--ot-muted-2);max-width:32rem}
.ot-sv-head--split .ot-sv-head__text{max-width:28rem}

/* Cards */
.ot-sv-bento,.ot-sv-grid{display:grid;gap:1rem;grid-template-columns:minmax(0,1fr)}
@media(min-width:768px){.ot-sv-bento,.ot-sv-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ot-sv-card--feature{grid-column:span 2}}
@media(min-width:1024px){.ot-sv-bento{grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-flow:dense}.ot-sv-bento>.ot-sv-card{grid-column:span 4}.ot-sv-bento>.ot-sv-card--feature{grid-column:span 8}.ot-sv-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.ot-sv-card{position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:1rem;padding:1.5rem;border:1px solid var(--ot-line);border-radius:.5rem;background:var(--ot-card);box-shadow:0 10px 15px -3px rgba(0,0,0,.35);transition:border-color .2s,transform .2s}
.ot-sv-card:hover{border-color:var(--ot-line-hover);transform:translateY(-1px)}
.ot-sv-card--flow{justify-content:flex-start;gap:.5rem}
.ot-sv-card--feature{overflow:hidden}
.ot-sv-card__glow{position:absolute;top:0;right:0;width:20rem;height:20rem;background:radial-gradient(closest-side,rgba(255,255,255,.04),transparent);pointer-events:none}
.ot-sv-card__main{position:relative;display:flex;flex-direction:column;gap:.5rem}
.ot-sv-card--feature .ot-sv-card__main{gap:1rem}
.ot-sv-card__top{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.ot-sv-card__id{display:flex;align-items:center;gap:.5rem}
.ot-sv-card h3{font-size:20px;line-height:28px;font-weight:600;letter-spacing:-.015em}
.ot-sv-card--feature h3{font-size:clamp(1.375rem,2.4vw,1.75rem);line-height:1.3;letter-spacing:-.02em}
.ot-sv-card__text{font-size:14px;line-height:1.55;color:var(--ot-muted-2)}
.ot-sv-card__text--md{font-size:15px;line-height:24px}
.ot-sv-card--feature .ot-sv-card__text{max-width:42rem;font-size:15px;line-height:24px}
.ot-sv-icon{display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;border-radius:.25rem;background:var(--sv-chip);color:#d1d1d6}
.ot-sv-icon .ot-ico{font-size:24px}
.ot-sv-card__glyph{display:inline-flex;color:#d1d1d6}
.ot-sv-badge{padding:.25rem .5rem;border-radius:.125rem;background:var(--sv-chip);font-family:var(--ot-mono);font-size:10px;line-height:14px;font-weight:500;letter-spacing:.06em;color:var(--ot-muted)}
.ot-sv-card__tag{display:flex;align-items:center;gap:.25rem}
.ot-sv-tags{display:flex;flex-wrap:wrap;gap:.25rem;padding-top:.25rem}
.ot-sv-tags li{padding:.125rem .25rem;border-radius:.125rem;background:var(--sv-chip);font-family:var(--ot-mono);font-size:10px;line-height:14px;font-weight:500;letter-spacing:.06em;color:var(--ot-muted-2)}
.ot-sv-tags--lg li{padding:.25rem .5rem;color:var(--ot-ink)}
.ot-sv-card__foot{position:relative;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:.5rem}
.ot-sv-card--feature .ot-sv-card__foot{padding-top:1rem}
.ot-sv .ot-sv-link{display:inline-flex;align-items:center;gap:.25rem;font-family:var(--ot-mono);font-size:12px;line-height:16px;font-weight:500;letter-spacing:.04em;color:#fff;transition:transform .2s,color .2s}
.ot-sv .ot-sv-link:hover{color:var(--ot-muted-2)}
.ot-sv .ot-sv-link .ot-ico{font-size:14px}
.ot-sv-card:hover .ot-sv-link{transform:translateX(.25rem)}

/* Code preview */
.ot-sv-code{margin:0;padding:1rem;border:1px solid var(--ot-line);border-radius:.25rem;background:#000;box-shadow:inset 0 2px 4px rgba(0,0,0,.5);font-family:var(--ot-mono);font-size:13px;line-height:1.6;color:var(--ot-muted-2);overflow-x:auto}
.ot-sv-code code{display:block;padding:0;background:none;font:inherit;color:inherit}
.ot-sv-code__line{display:block;min-height:1.6em;white-space:pre}
.ot-sv-code__line--c{color:var(--ot-muted)}
.ot-sv-code .k{color:#c7c7cc;font-weight:600}
.ot-sv-code .f{color:#fff}
.ot-sv-code .t{color:var(--ot-ink)}

/* Process pipeline */
.ot-sv-scroll{width:100%;overflow-x:auto;padding-bottom:1.5rem;scrollbar-width:thin;scrollbar-color:#2a2a30 transparent}
.ot-sv-pipe{display:flex;align-items:stretch;gap:.5rem;min-width:1020px;padding-top:1rem}
.ot-sv-stage{display:flex;flex:1;flex-direction:column;justify-content:space-between;padding:1rem;border:1px solid var(--ot-line);border-radius:.5rem;background:var(--ot-card);transition:background .2s}
.ot-sv-stage:hover{background:#111115}
.ot-sv-stage__top{display:flex;align-items:center;justify-content:space-between}
.ot-sv-stage h3{margin-top:.5rem;font-size:20px;line-height:28px;font-weight:600;letter-spacing:-.015em}
.ot-sv-stage p{margin-top:.25rem;font-size:14px;line-height:1.5;color:var(--ot-muted-2)}
.ot-sv-gate{display:block;margin-top:1rem;padding:.25rem .5rem;border-radius:.125rem;background:#000;font-family:var(--ot-mono);font-size:10px;line-height:14px;font-weight:500;letter-spacing:.06em;color:var(--ot-muted-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Final call-to-action */
.ot-sv-cta{position:relative;overflow:hidden}
.ot-sv-cta::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.03),transparent);pointer-events:none}
.ot-sv-cta__panel{position:relative;display:flex;flex-direction:column;align-items:center;gap:1rem;width:100%;max-width:64rem;margin-inline:auto;padding:clamp(1.5rem,4vw,2.5rem);border:1px solid var(--ot-line);border-radius:.5rem;background:var(--ot-card);text-align:center;box-shadow:0 25px 50px -12px rgba(0,0,0,.7)}
.ot-sv-cta__panel .ot-sv-pill{margin:0}
.ot-sv-cta h2{max-width:48rem;font-size:clamp(2rem,4.6vw,3.5rem);line-height:1.15;letter-spacing:-.03em}
.ot-sv-cta .ot-sv-lead{max-width:42rem}
.ot-sv-cta .ot-sv-actions{justify-content:center}
.ot-sv-cta__note{display:flex;align-items:center;gap:.25rem;padding-top:.25rem;font-family:var(--ot-mono);font-size:10px;line-height:14px;font-weight:500;letter-spacing:.06em;color:var(--ot-muted)}
.ot-sv-cta__note .ot-ico{font-size:14px;color:var(--ot-muted-2)}

@media(max-width:599px){.ot-sv-metrics{gap:.375rem}.ot-sv-metric strong{font-size:17px}.ot-sv-chip{padding:.25rem .5rem}}
@media(prefers-reduced-motion:reduce){.ot-sv *,.ot-sv *::before,.ot-sv *::after{animation:none!important;transition:none!important}.ot-sv-card:hover,.ot-sv-card:hover .ot-sv-link{transform:none}}

/* ---- Service detail page ---- */
.ot-sv .ot-sv-tag{padding:.125rem .375rem;border-radius:.125rem;background:var(--sv-chip);font-family:var(--ot-mono);font-size:10px;line-height:14px;font-weight:500;letter-spacing:.06em;color:var(--ot-muted-2)}
.ot-sd-crumb{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:1.5rem;font-family:var(--ot-mono);font-size:12px;line-height:16px;letter-spacing:.04em;color:var(--ot-muted)}
.ot-sd-crumb a{display:inline-flex;align-items:center;gap:.25rem;color:var(--ot-muted)}
.ot-sd-crumb a:hover{color:#fff}
.ot-sd-crumb .ot-ico{font-size:14px}
.ot-sd-crumb__here{color:#fff;font-weight:600}
.ot-sd-hero__grid{display:grid;gap:2.5rem;align-items:center}
@media(min-width:1024px){.ot-sd-hero__grid{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}}
.ot-sd-node{position:absolute;left:1rem;right:1rem;bottom:1rem;display:flex;flex-direction:column;gap:.25rem;padding:.75rem 1rem;border-radius:.375rem;background:rgba(10,10,13,.92);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.ot-sd-node strong{font-size:14px;line-height:20px;font-weight:600;color:#fff}
.ot-sd-node div{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.ot-sd-node__ok{padding:.125rem .375rem;border-radius:.125rem;background:rgba(255,255,255,.1);font-family:var(--ot-mono);font-size:10px;line-height:14px;font-weight:500;letter-spacing:.06em;color:#fff}
.ot-sd-eyebrow{display:inline-flex;align-items:center;gap:.5rem}
.ot-sd-eyebrow .ot-ico{font-size:16px}
.ot-sd-h2{font-size:clamp(1.75rem,3.2vw,2.5rem);line-height:1.2;letter-spacing:-.025em;font-weight:600}
.ot-sd-prose{max-width:42rem;font-size:15px;line-height:1.7;color:var(--ot-muted-2)}
.ot-sd-overview{display:grid;gap:2.5rem}
@media(min-width:1024px){.ot-sd-overview{grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:start}.ot-sd-overview--single{grid-template-columns:minmax(0,1fr)}}
.ot-sd-overview__main{display:flex;flex-direction:column;gap:1rem}
.ot-sd-for{margin-top:.5rem}
.ot-sd-for h3{display:flex;align-items:center;gap:.5rem}
.ot-sd-for h3 .ot-ico,.ot-sd-for li .ot-ico{color:#d1d1d6}
.ot-sd-for ul{display:grid;gap:.75rem;margin-top:.5rem}
.ot-sd-for li{display:flex;gap:.5rem;font-size:14px;line-height:1.55;color:var(--ot-muted-2)}
.ot-sd-for li .ot-ico{flex:none;margin-top:1px;font-size:18px}
.ot-sd-for li strong{font-weight:600;color:#fff}
.ot-sd-adv{display:flex;flex-direction:column;gap:1rem;padding:1.5rem;border:1px solid var(--ot-line);border-radius:.5rem;background:var(--ot-card)}
.ot-sd-adv h3{font-size:clamp(1.25rem,2vw,1.5rem);line-height:1.3;letter-spacing:-.02em;font-weight:600}
.ot-sd-adv ul{display:grid;gap:1rem}
.ot-sd-adv li{display:flex;gap:.75rem}
.ot-sd-adv li strong{display:block;font-size:15px;font-weight:600;color:#fff}
.ot-sd-adv li p{margin-top:.25rem;font-size:14px;line-height:1.55;color:var(--ot-muted-2)}
.ot-sd-adv__note{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:1rem;border-top:1px solid var(--ot-line)}
.ot-sd-adv__note strong{font-size:14px;text-align:right;color:#fff}
.ot-sd-grid{display:grid;gap:1rem;grid-template-columns:minmax(0,1fr)}
@media(min-width:768px){.ot-sd-grid--2,.ot-sd-grid--3,.ot-sd-grid--4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1024px){.ot-sd-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.ot-sd-grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}}
.ot-sd-cap{justify-content:flex-start}
.ot-sd-cap h3{font-size:18px;line-height:1.3}
.ot-sd-cap__foot{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:.75rem;color:var(--ot-muted)}
.ot-sd-cap__foot .ot-ico{font-size:20px}
.ot-sd-pair{display:flex;flex-direction:column;gap:.5rem}
.ot-sd-pair .ot-sv-card{flex:1}
.ot-sd-pair__problem{border-style:dashed;background:transparent}
.ot-sd-pair__problem .ot-sd-label-icon{color:var(--ot-muted)}
.ot-sd-pair__solution{border-color:rgba(255,255,255,.2)}
.ot-sd-pair__solution .ot-sd-label-icon{color:#fff}
.ot-sd-pair__arrow{display:flex;justify-content:center;color:var(--ot-muted)}
.ot-sd-label-icon{display:inline-flex;align-items:center;gap:.375rem}
.ot-sd-label-icon .ot-ico{font-size:14px}
.ot-sd-head--center{align-items:center;text-align:center}
.ot-sd-head--center .ot-sv-head__text{margin-inline:auto}
.ot-sd-tech{display:grid;gap:.5rem;margin-top:.5rem}
.ot-sd-tech li{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding-bottom:.5rem;border-bottom:1px solid var(--ot-line)}
.ot-sd-tech li:last-child{border-bottom:0;padding-bottom:0}
.ot-sd-tech strong{font-size:14px;font-weight:600;color:#fff}
.ot-sd-tech span{font-family:var(--ot-mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--ot-muted);text-align:right}
.ot-sv a.ot-sd-rel,.ot-sv a.ot-sd-rel:hover{color:inherit}
.ot-sd-rel{justify-content:flex-start}
.ot-sd-rel .ot-sv-card__top{color:var(--ot-muted)}
.ot-sd-rel .ot-sv-link{margin-top:auto}
.ot-sd-faq{display:grid;gap:2rem}
@media(min-width:900px){.ot-sd-faq{grid-template-columns:minmax(0,4fr) minmax(0,8fr);align-items:start}}
.ot-sd-faq__list{display:grid;gap:.5rem}
.ot-sd-faq details{border:1px solid var(--ot-line);border-radius:.5rem;background:var(--ot-card)}
.ot-sd-faq summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;font-size:15px;font-weight:600;line-height:1.4;color:#fff;cursor:pointer;list-style:none}
.ot-sd-faq summary::-webkit-details-marker{display:none}
.ot-sd-faq summary .ot-ico{flex:none;color:var(--ot-muted);transition:transform .2s}
.ot-sd-faq details[open] summary .ot-ico{transform:rotate(180deg)}
.ot-sd-faq details p{padding:0 1.25rem 1.25rem;font-size:14px;line-height:1.7;color:var(--ot-muted-2)}
.ot-sd-notes{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem 1.5rem;padding-top:.5rem}
.ot-sd-notes li{display:inline-flex;align-items:center;gap:.375rem;font-family:var(--ot-mono);font-size:10px;line-height:14px;font-weight:500;letter-spacing:.06em;color:var(--ot-muted)}
.ot-sd-notes .ot-ico{font-size:14px;color:var(--ot-muted-2)}
/* ---- Animated hero (services + service detail) ---- */
.ot-sv-hero{isolation:isolate}
.ot-sv-hero__bg{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}
.ot-sv-hero__bgimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.17;filter:grayscale(1) contrast(1.15);-webkit-mask-image:radial-gradient(ellipse 70% 80% at 78% 40%,#000 0,transparent 72%);mask-image:radial-gradient(ellipse 70% 80% at 78% 40%,#000 0,transparent 72%);transform-origin:75% 45%;animation:ot-sv-zoom 30s ease-in-out infinite alternate}
@keyframes ot-sv-zoom{from{transform:scale(1.04)}to{transform:scale(1.18) translate3d(-1.5%,1%,0)}}
.ot-sv-hero__lines{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:56px 56px;-webkit-mask-image:radial-gradient(ellipse 85% 75% at 50% 25%,#000,transparent);mask-image:radial-gradient(ellipse 85% 75% at 50% 25%,#000,transparent);animation:ot-sv-grid 44s linear infinite}
@keyframes ot-sv-grid{to{background-position:56px 56px,56px 56px}}
.ot-sv-orb{position:absolute;border-radius:50%;filter:blur(72px)}
.ot-sv-orb--1{top:-12rem;left:6%;width:30rem;height:30rem;background:rgba(255,255,255,.07);animation:ot-sv-drift 18s ease-in-out infinite alternate}
.ot-sv-orb--2{top:8%;right:-6rem;width:26rem;height:26rem;background:rgba(41,151,255,.1);animation:ot-sv-drift 23s ease-in-out -7s infinite alternate-reverse}
@keyframes ot-sv-drift{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(48px,34px,0) scale(1.18)}}
.ot-sv-hero__scan{position:absolute;left:0;right:0;top:-160px;height:160px;background:linear-gradient(180deg,transparent,rgba(255,255,255,.045),transparent);animation:ot-sv-scan 10s linear infinite}
@keyframes ot-sv-scan{to{top:100%}}
.ot-sv-hero__copy>*{opacity:0;transform:translateY(14px);animation:ot-sv-in .7s cubic-bezier(.2,.7,.2,1) forwards}
.ot-sv-hero__copy>:nth-child(2){animation-delay:.1s}.ot-sv-hero__copy>:nth-child(3){animation-delay:.2s}.ot-sv-hero__copy>:nth-child(4){animation-delay:.3s}
@keyframes ot-sv-in{to{opacity:1;transform:none}}
.ot-sv-hero__visual{position:relative;width:100%;max-width:30rem;justify-self:end}
.ot-sv-console{overflow:hidden;border:1px solid var(--ot-line-2);border-radius:.75rem;background:rgba(10,10,13,.7);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 30px 60px -24px rgba(0,0,0,.85),inset 0 1px 0 rgba(255,255,255,.07);animation:ot-sv-float 7s ease-in-out infinite}
@keyframes ot-sv-float{50%{transform:translateY(-8px)}}
.ot-sv-console__bar{display:flex;gap:.375rem;padding:.75rem 1rem;border-bottom:1px solid var(--ot-line)}
.ot-sv-console__bar span{width:.5rem;height:.5rem;border-radius:50%;background:#2c2c32}
.ot-sv-console__rows{padding:.25rem 0}
.ot-sv-console__rows li{display:flex;align-items:center;gap:.625rem;padding:.8rem 1.25rem;border-bottom:1px solid var(--ot-line);font-family:var(--ot-mono);font-size:11px;line-height:16px;letter-spacing:.06em;text-transform:uppercase;color:var(--ot-ink);opacity:0;transform:translateX(14px);animation:ot-sv-in .6s ease forwards .35s}
.ot-sv-console__rows li:nth-child(2){animation-delay:.6s}.ot-sv-console__rows li:nth-child(3){animation-delay:.85s}
.ot-sv-console__rows li:last-child{border-bottom:0}
.ot-sv-console__val{margin-left:auto;color:var(--ot-muted-2)}
.ot-sv-spark{display:block;width:100%;height:64px;padding:.25rem 1.25rem 1rem}
.ot-sv-spark polyline{fill:none;stroke:rgba(255,255,255,.6);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;stroke-dasharray:700;stroke-dashoffset:700;animation:ot-sv-draw 3.2s ease forwards 1s}
.ot-sv-spark polyline.ot-sv-spark__base{stroke:rgba(255,255,255,.12);stroke-dasharray:none;stroke-dashoffset:0;animation:none}
@keyframes ot-sv-draw{to{stroke-dashoffset:0}}
@media(max-width:1023px){.ot-sv-hero__visual{justify-self:stretch;max-width:none}}
@media(prefers-reduced-motion:reduce){.ot-sv-hero__copy>*,.ot-sv-console__rows li{opacity:1;transform:none}.ot-sv-spark polyline{stroke-dashoffset:0}.ot-sv-hero__bgimg{transform:none}}
/* ---- Inline SVG icons + scroll animation ---- */
.ot-ico{display:inline-block;flex:none;width:1em;height:1em;font-size:24px;line-height:0;vertical-align:middle}
.ot-ico svg{display:block;width:100%;height:100%}
.ot-sv-anim .ot-sv-rv{opacity:0;transform:translateY(22px);transition:opacity .7s cubic-bezier(.2,.7,.2,1) var(--d,0ms),transform .7s cubic-bezier(.2,.7,.2,1) var(--d,0ms)}
.ot-sv-anim .ot-sv-rv.is-in{opacity:1;transform:none}
.ot-sv-pipe .ot-sv-stage .ot-sv-dot{animation:ot-sv-pulse 2.6s ease-in-out infinite}
.ot-sv-pipe .ot-sv-stage:nth-child(2) .ot-sv-dot{animation-delay:.3s}.ot-sv-pipe .ot-sv-stage:nth-child(3) .ot-sv-dot{animation-delay:.6s}.ot-sv-pipe .ot-sv-stage:nth-child(4) .ot-sv-dot{animation-delay:.9s}.ot-sv-pipe .ot-sv-stage:nth-child(5) .ot-sv-dot{animation-delay:1.2s}.ot-sv-pipe .ot-sv-stage:nth-child(6) .ot-sv-dot{animation-delay:1.5s}.ot-sv-pipe .ot-sv-stage:nth-child(7) .ot-sv-dot{animation-delay:1.8s}
.ot-sv-card:hover .ot-sv-icon{background:rgba(255,255,255,.12)}
.ot-sv-icon{transition:background .2s}
@media(prefers-reduced-motion:reduce){.ot-sv-anim .ot-sv-rv{opacity:1;transform:none}}
/* ---- Hero motion, reading progress, card spotlight ---- */
.ot-sd-dot{display:inline-block;flex:none;width:6px;height:6px;margin-top:.55rem;border-radius:50%;background:#8e8e93}
.ot-sd-notes .ot-sd-dot{margin-top:0}
.ot-sv-metric strong{font-variant-numeric:tabular-nums}
.ot-sv-hero{--mx:0;--my:0}
.ot-sv-beam{position:absolute;left:-30%;width:28%;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.42),transparent);animation:ot-sv-beam 8s linear infinite}
.ot-sv-beam--1{top:24%}
.ot-sv-beam--2{top:52%;animation-duration:11s;animation-delay:-4s}
.ot-sv-beam--3{top:76%;animation-duration:9.5s;animation-delay:-7s}
@keyframes ot-sv-beam{to{left:110%}}
.ot-sv-orb--1{translate:calc(var(--mx) * 28px) calc(var(--my) * 20px);transition:translate .7s ease-out}
.ot-sv-orb--2{translate:calc(var(--mx) * -34px) calc(var(--my) * -22px);transition:translate .7s ease-out}
.ot-sv-hero__lines{translate:calc(var(--mx) * -10px) calc(var(--my) * -8px);transition:translate .5s ease-out}
.ot-sv-console{translate:calc(var(--mx) * -12px) calc(var(--my) * -10px);transition:translate .4s ease-out}
.ot-sv-hero__copy>h1{opacity:1;transform:none;animation:none}
html.js .ot-sv-hero__copy>h1:not(.ot-h1w){visibility:hidden;animation:ot-vis 0s 1.2s forwards}
@keyframes ot-vis{to{visibility:visible}}
.ot-h1w .ot-w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.14em;margin-bottom:-.14em}
.ot-h1w .ot-w>span{display:inline-block;transform:translateY(112%);animation:ot-w-up .85s cubic-bezier(.2,.7,.2,1) forwards;animation-delay:calc(var(--i) * 55ms + .1s)}
@keyframes ot-w-up{to{transform:none}}
.ot-h1w .ot-sv__accent{background:none;-webkit-text-fill-color:initial;color:inherit}
.ot-h1w .ot-sv__accent .ot-w>span{background:linear-gradient(90deg,#fff,#8e8e93);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}
.ot-sv-progress{position:fixed;top:0;left:0;right:0;z-index:70;height:2px;background:linear-gradient(90deg,rgba(255,255,255,.2),#fff);transform:scaleX(0);transform-origin:0 50%;pointer-events:none}
.ot-sv-card::before{content:'';position:absolute;inset:0;z-index:0;border-radius:inherit;background:radial-gradient(260px circle at var(--x,50%) var(--y,0%),rgba(255,255,255,.07),transparent 65%);opacity:0;transition:opacity .3s;pointer-events:none}
.ot-sv-card:hover::before{opacity:1}
.ot-sv-card>*:not(.ot-sv-card__glow){position:relative;z-index:1}
@media(prefers-reduced-motion:reduce){html.js .ot-sv-hero__copy>h1{visibility:visible!important}.ot-sv-beam{display:none}}