@font-face{font-family:Raveo;src:url('assets/raveo.woff2') format('woff2');font-weight:100 1000;font-display:swap}
:root{color-scheme:dark;--bg:#000;--fg:#fff;--muted:#999;--line:#232323;--green:#13ec00}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:84px}body{margin:0;background:var(--bg);color:var(--fg);font-family:Raveo,Arial,sans-serif;font-size:16px;line-height:1.5;font-weight:450;font-optical-sizing:none;font-variation-settings:"opsz" 14}a{color:inherit;text-decoration:none}button{font:inherit}button,a,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--green);outline-offset:6px}.wrap{width:calc(100% - 80px);max-width:1440px;margin-inline:auto}.header{height:65px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:20;background:rgba(0,0,0,.94);backdrop-filter:blur(16px)}.logo{display:flex;align-items:center}.logo img,.footer img{display:block;object-fit:contain}.header nav{display:flex;gap:26px;position:absolute;left:50%;transform:translateX(-50%)}.header nav a{font-size:14px;color:#999;transition:color .2s}.header nav a:hover{color:#fff}.soon{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;min-height:42px;padding:10px 20px;border-radius:30px;background:#151515;color:#fff;font-size:14px;line-height:1.5;user-select:none}.soon-small{min-height:30px;padding:5px 12px;border-radius:7px;font-size:14px}.soon-light{background:#fff;color:#080808}.framed{border:1px dashed var(--line)}.hero{height:650px;position:relative;overflow:hidden;display:flex;justify-content:center;align-items:center;text-align:center}.hero-copy{z-index:1;position:relative;width:100%;padding:32px 24px 50px}.hero h1{font-size:clamp(44px,5.5vw,80px);line-height:1.1;letter-spacing:-.04em;font-weight:520;max-width:1120px;margin:0 auto 28px}.hero p{max-width:500px;margin:0 auto 34px;color:#929292;font-size:16px;line-height:24px}.hero-art{position:absolute;inset:0;background-image:linear-gradient(180deg,transparent,rgba(0,0,0,.14) 35%,#0008 70%,transparent),url('assets/hero-lines.svg'),conic-gradient(from 204deg at 50% 108%,#000 0deg,#000 106deg,#7a997422 112deg,#a5d29440 114deg,#0c1910 118deg,#000 128deg,#000 141deg,#8cae9c2b 144deg,#000 148deg,#000 168deg,#283b321a 195deg,#000 216deg);background-size:cover;background-position:center}.footer{padding:38px 0;display:flex;align-items:center;justify-content:space-between;border-top:1px dashed var(--line);margin-top:100px}.footer p{margin:0;color:#888;font-size:14px}.skip-link{position:fixed;z-index:50;top:-80px;left:20px;padding:12px 20px;background:#fff;color:#000}.skip-link:focus{top:12px}
@media(min-width:1500px){.hero{height:730px}}@media(max-width:800px){.wrap{width:calc(100% - 40px)}.hero{height:620px}.hero h1{font-size:52px}.desktop-break{display:none}.hero-copy{padding-inline:26px}.header nav{gap:20px}.footer{margin-top:64px}}@media(max-width:560px){.wrap{width:calc(100% - 32px)}.header{height:64px}.header nav{display:none}.hero{height:600px}.hero h1{font-size:42px;line-height:1.12;letter-spacing:-.035em}.hero p{font-size:16px;line-height:25px}.hero-copy{padding:30px 18px 58px}.footer{gap:24px;padding:30px 0}.footer p{font-size:13px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
.section-space{margin-top:100px}h2,h3,p{margin-top:0}h2{font-size:32px;line-height:1.2;letter-spacing:-.015em;font-weight:500;margin-bottom:0}h3{font-size:24px;line-height:1.3;letter-spacing:-.015em;font-weight:500;margin-bottom:12px}.section-heading{text-align:center;padding:48px 24px;border-bottom:1px dashed var(--line)}.dataset-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.dataset{position:relative;min-height:400px;overflow:hidden;border-right:1px dashed var(--line);border-bottom:1px dashed var(--line);display:flex;align-items:flex-end}.dataset:nth-child(3n){border-right:0}.dataset:nth-last-child(-n+3){border-bottom:0}.data-art{position:absolute;inset:0;width:100%;height:auto;aspect-ratio:1.5;object-fit:cover;opacity:.64;mask-image:linear-gradient(#000 45%,#0008 78%,transparent 100%);transition:opacity .3s}.dataset:hover .data-art{opacity:.9}.dataset-copy{position:relative;padding:30px;width:100%;z-index:1;background:linear-gradient(transparent,#000 45%)}.dataset p{color:var(--muted);margin:0;line-height:1.6;max-width:350px}.feature-row{display:grid;grid-template-columns:1fr 1fr;min-height:610px;border-bottom:1px dashed var(--line)}.feature-copy{padding:64px 60px}.eyebrow{display:inline-block;font-family:monospace;font-size:12px;letter-spacing:.08em;line-height:1.4;text-transform:uppercase;padding:7px 11px;border:1px dashed #333;border-radius:5px;color:#aaa;margin-bottom:24px}.feature-copy h2{font-size:40px;line-height:1.15;letter-spacing:-.025em;max-width:470px;margin-bottom:22px}.feature-copy>p{color:var(--muted);line-height:1.6;margin-bottom:28px;max-width:490px}.check-list{padding:0;margin:0;list-style:none;display:grid;gap:14px}.check-list li{position:relative;padding-left:25px;font-size:14px;line-height:1.5;color:#c4c4c4}.check-list li::before{content:'';position:absolute;left:2px;top:6px;width:10px;height:6px;border-left:1.5px solid #aaa;border-bottom:1.5px solid #aaa;transform:rotate(-45deg)}.feature-visual{display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;border-left:1px dashed var(--line);background:radial-gradient(ellipse at 50% 90%,#13231b33,transparent 65%)}.feature-visual::after{content:'';position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(#81917e27 .5px,transparent .5px);background-size:6px 6px;mask-image:linear-gradient(transparent,#000)}.feature-visual img,.feature-visual canvas{width:85%;height:auto;aspect-ratio:1;object-fit:contain;max-width:510px;opacity:.85;position:relative;z-index:1}.feature-row.reverse .feature-copy{grid-column:2;grid-row:1}.feature-row.reverse .feature-visual{grid-column:1;grid-row:1;border-left:0;border-right:1px dashed var(--line)}.benefits{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.benefits article{padding:35px 28px;border-right:1px dashed var(--line)}.benefits article:last-child{border:0}.benefit-icon{display:block;width:24px;height:24px;margin-bottom:24px;line-height:24px;font-size:30px;fill:none;stroke:#ccc;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.benefits h3{font-size:18px;letter-spacing:-.01em}.benefits p{color:var(--muted);font-size:14px;line-height:1.6;margin:0}.faq{display:grid;grid-template-columns:1fr 1.2fr}.faq-heading{padding:54px 50px}.faq h2{max-width:310px;font-size:40px;letter-spacing:-.03em}.faq-items{border-left:1px dashed var(--line)}details{border-bottom:1px dashed var(--line)}details:last-child{border-bottom:0}summary{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:28px 30px;list-style:none;cursor:pointer;font-size:17px;font-weight:450}summary::-webkit-details-marker{display:none}summary>span{position:relative;width:14px;height:14px;flex-shrink:0}summary>span::before,summary>span::after{content:'';background:#999;position:absolute;top:6px;left:0;width:14px;height:1px}summary>span::after{transform:rotate(90deg);transition:transform .2s}details[open] summary>span::after{transform:rotate(0)}details[open] summary{padding-bottom:16px}details p{padding:0 30px 28px;margin:0;color:var(--muted);font-size:16px;line-height:1.7}.plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.plan{padding:36px 30px;display:flex;flex-direction:column;min-height:540px;border-right:1px dashed var(--line)}.plan:last-child{border-right:0}.plan h3{font-size:22px;margin:0}.plan-title{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.popular-label{font-size:12px;white-space:nowrap;padding:4px 8px;border:1px dashed #454545;border-radius:5px;color:#c8c8c8}.plan-description{color:var(--muted);font-size:14px;margin:8px 0 28px}.price-block{display:flex;flex-direction:column;min-height:115px;margin-bottom:24px}.price{display:block;font-size:58px;line-height:1.15;letter-spacing:-.04em;font-weight:450}.currency{font-size:36px;vertical-align:top;margin-right:3px;line-height:1.6}.price-custom{font-size:38px;padding-top:10px;letter-spacing:-.03em}.billing{font-size:14px;color:#888;margin-top:8px}.plan .check-list{margin-bottom:32px}.plan-status{width:100%;margin-top:auto}.plan-popular{background:linear-gradient(#14141480,#090909)}.closing{position:relative;min-height:430px;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden}.closing-copy{position:relative;z-index:1;padding:65px 24px}.closing h2{font-size:46px;line-height:1.15;letter-spacing:-.03em;margin-bottom:22px}.closing p{color:var(--muted);margin:0 0 28px;font-size:16px}.closing-art{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 160%,#14372699,transparent 58%),url('assets/hero-lines.svg') center 40%/cover;opacity:.7}
@media(min-width:1500px){.dataset{min-height:440px}.dataset-copy{padding:40px}.feature-copy{padding:80px}.feature-row{min-height:650px}}
@media(max-width:1050px){.dataset-copy{padding:24px}.dataset h3{font-size:22px}.feature-copy{padding:42px 34px}.feature-copy h2{font-size:34px}.feature-row{min-height:550px}.benefits{grid-template-columns:repeat(2,minmax(0,1fr))}.benefits article:nth-child(2){border-right:0}.benefits article:nth-child(-n+2){border-bottom:1px dashed var(--line)}.faq-heading{padding:40px 30px}.plan{padding:30px 24px}.price-custom{font-size:32px}.plan .check-list li{font-size:14px}}
@media(max-width:800px){.section-space{margin-top:70px}.dataset-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dataset:nth-child(n){border-right:1px dashed var(--line);border-bottom:1px dashed var(--line)}.dataset:nth-child(2n){border-right:0}.dataset:nth-last-child(-n+2){border-bottom:0}.feature-copy{padding:36px 28px}.feature-copy h2{font-size:30px}.feature-visual img,.feature-visual canvas{width:96%}.faq{grid-template-columns:1fr}.faq-heading{border-bottom:1px dashed var(--line);padding:40px}.faq h2{max-width:none;font-size:32px}.faq-items{border-left:0}.plans{grid-template-columns:1fr}.plan{padding:36px;min-height:initial;border-right:0;border-bottom:1px dashed var(--line)}.plan:last-child{border-bottom:0}.plan-title{justify-content:space-between}.plan-description{margin-bottom:24px}.price-block{min-height:initial;margin-bottom:32px}.billing:empty{display:none}.price-custom{font-size:42px}.plan .check-list{margin-bottom:32px}.closing h2{font-size:40px}}
@media(max-width:560px){.section-space{margin-top:56px}.section-heading{padding:34px 22px}h2{font-size:28px}.dataset-grid{grid-template-columns:1fr}.dataset:nth-child(n){border-right:0;border-bottom:1px dashed var(--line);min-height:390px}.dataset:last-child{border-bottom:0}.dataset-copy{padding:26px}.dataset h3{font-size:24px}.feature-row{grid-template-columns:1fr;min-height:initial}.feature-row .feature-copy,.feature-row.reverse .feature-copy{grid-column:1;grid-row:1;padding:38px 26px}.feature-copy h2{font-size:32px}.feature-row .feature-visual,.feature-row.reverse .feature-visual{grid-column:1;grid-row:2;border:0;border-top:1px dashed var(--line);min-height:330px;padding:18px}.feature-visual img,.feature-visual canvas{width:88%;max-width:320px}.benefits{grid-template-columns:1fr}.benefits article:nth-child(n){border-right:0;border-bottom:1px dashed var(--line);padding:28px}.benefits article:last-child{border-bottom:0}.benefit-icon{margin-bottom:16px}.benefits p{font-size:16px}.faq-heading{padding:34px 26px}.faq h2{font-size:30px}summary{font-size:16px;padding:24px}details p{padding:0 24px 24px}.plan{padding:30px 26px}.closing{min-height:420px}.closing h2{font-size:34px}.closing-copy{padding:52px 24px}.check-list li{font-size:14px}}

h1,h2,h3{font-variation-settings:"opsz" 14,"wght" 550}.soon{font-variation-settings:"opsz" 14,"wght" 550}

/* Motion layer: the supplied reference's gradient, grain, and moving outlines. */
.hero-art,.closing-art{pointer-events:none}
.hero-art.has-gradient,.closing-art.has-gradient{
  background:#000;
  opacity:1;
  filter:hue-rotate(1deg);
  mask:url('assets/rays-mask.svg') center bottom/cover no-repeat,
    linear-gradient(0deg,transparent 46%,rgba(0,0,0,.7) 100%);
  mask-composite:add;
}
.gradient-canvas{display:block;position:absolute;inset:0;width:100%;height:100%;filter:brightness(1.5) contrast(.85)}
.has-gradient::after{content:'';position:absolute;inset:0;background:url('assets/grain.png') repeat;background-size:40px;opacity:.5;pointer-events:none}
.hero-art:not(.has-gradient),.closing-art:not(.has-gradient){animation:ambient-drift 18s ease-in-out infinite alternate}
@keyframes ambient-drift{from{filter:hue-rotate(0deg) brightness(.85);background-position:48% 50%}to{filter:hue-rotate(15deg) brightness(1.3);background-position:54% 45%}}
.motion-frame{position:relative;border-color:transparent!important}
.motion-border{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible;z-index:5}
.motion-border path{fill:none;stroke:var(--line);stroke-width:1;stroke-dasharray:12 6;vector-effect:non-scaling-stroke;animation:travel-dashes 1s linear infinite}
@keyframes travel-dashes{to{stroke-dashoffset:-18}}
.soon>.motion-border path{stroke:#333;stroke-dasharray:8 6;animation:none;opacity:0;transition:opacity .2s}
.soon:hover>.motion-border path{animation:travel-button-dashes 1s linear infinite;opacity:1}
@keyframes travel-button-dashes{to{stroke-dashoffset:-14}}

/* The reference reveals card descriptions, color, and corner markers on hover. */
.dataset{overflow:visible;isolation:isolate;transition:background-color .3s}
.dataset .data-art{height:100%;aspect-ratio:auto;object-fit:cover;filter:grayscale(1);opacity:.64;mask-image:linear-gradient(24deg,rgba(0,0,0,.1) 17%,rgba(0,0,0,.7) 61%);transition:filter .4s,opacity .4s}
.dataset-copy{overflow:hidden;background:none;pointer-events:none;padding:34px;z-index:2}
.dataset h3{margin-bottom:0;transition:margin-bottom .4s}
.dataset p{max-height:0;opacity:0;overflow:hidden;transform:translateY(12px);transition:max-height .4s cubic-bezier(.2,.7,.2,1),opacity .3s,transform .4s}
.dataset:hover,.dataset:focus-visible,.plan:hover,.benefits article:hover{background-color:rgba(255,255,255,.03)}
.dataset:hover .data-art,.dataset:focus-visible .data-art{filter:grayscale(0);opacity:.8}
.dataset:hover h3,.dataset:focus-visible h3{margin-bottom:8px}
.dataset:hover p,.dataset:focus-visible p{max-height:14em;opacity:1;transform:translateY(0);transition-delay:0s,.12s,.08s}
.dataset:focus-visible{outline:1px solid #aaa;outline-offset:3px}
.hover-corners{position:absolute;inset:0;pointer-events:none;z-index:6;opacity:0;transition:opacity .18s}
.hover-corners i{position:absolute;width:6px;height:6px;background:#fff}
.hover-corners i:nth-child(1){left:-3px;top:-3px}
.hover-corners i:nth-child(2){right:-3px;top:-3px}
.hover-corners i:nth-child(3){left:-3px;bottom:-3px}
.hover-corners i:nth-child(4){right:-3px;bottom:-3px}
:is(.dataset,.plan,.benefits article):is(:hover,:focus-visible,:focus-within)>.hover-corners{opacity:1}
.plan,.benefits article{transition:background-color .3s}
.dither-art{image-rendering:pixelated}
.feature-visual{background:#000}
.feature-visual::after{background-image:radial-gradient(rgba(171,190,173,.2) 1px,transparent 2px);background-size:18px 18px;mask-image:linear-gradient(#000,transparent 95%);z-index:0}
.feature-visual .dither-art{opacity:.85;mix-blend-mode:screen}
.feature-row .eyebrow{transition:color .25s}
.feature-row:hover .eyebrow{color:#b3e1a7}
.feature-row:hover .check-list li::before{border-color:#b3e1a7}
.check-list li::before{transition:border-color .25s}
.faq details{transition:background-color .25s}
.faq details:hover,.faq details[open]{background-color:#080808}

/* Rolling text keeps the coming-soon badges informational. */
.soon{position:relative;transition:background-color .35s,filter .35s;cursor:default}
.soon:not(.soon-light):hover{background:#000}
.soon-light:hover{filter:brightness(.8)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.rolling-label{display:flex;overflow:hidden;line-height:1.5;height:1.5em}
.rolling-letter{display:inline-block;position:relative;transition:transform .4s cubic-bezier(.2,.75,.2,1);transition-delay:var(--letter-delay);will-change:transform}
.rolling-letter::after{content:attr(data-letter);position:absolute;left:0;top:100%;white-space:pre}
.soon:hover .rolling-letter{transform:translateY(-100%)}
.reveal{opacity:0;transform:translateY(20px);transition:opacity .65s ease,transform .65s cubic-bezier(.2,.65,.2,1)}
.reveal.is-revealed{opacity:1;transform:none}
.hero-copy{animation:hero-entrance .8s cubic-bezier(.2,.65,.2,1) both}
@keyframes hero-entrance{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@media(hover:none),(pointer:coarse){
  .dataset p{max-height:none;opacity:1;transform:none}
  .dataset h3{margin-bottom:8px}
  .dataset .data-art{filter:none;opacity:.8}
}
@media(max-width:560px){.dataset-copy{padding:26px}.dataset p{max-height:none;opacity:1;transform:none}.dataset h3{margin-bottom:8px}}
@media(prefers-reduced-motion:reduce){
  .motion-border path,.hero-copy,.hero-art,.closing-art{animation:none!important}
  .rolling-letter,.soon:hover .rolling-letter{transform:none;transition:none}
  .reveal{opacity:1;transform:none;transition:none}
  .dataset p{transition:none}
}
