:root{--void:#020204;--near:#050507;--surface:#0d0d0d;--surface2:#111113;--blue:#7ab8f5;--ink:#e8f0fff5;--ink2:#e8f0ffad;--muted:#e8f0ff6b;--quiet:#e8f0ff3d;--hair:#ffffff14;--sans:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;--mono:"SFMono-Regular",Consolas,"Liberation Mono",monospace;--ease:cubic-bezier(.16,1,.3,1)}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--void)}body{background:var(--void);color:var(--ink);font-family:var(--sans);font-synthesis:none;margin:0}main{overflow:clip}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}
/* main clips horizontal bleed but must NOT be a scroll container, or it breaks
   position:sticky on descendants (the legal ToC / FAQ asides stopped following the
   scroll). overflow:clip clips identically WITHOUT establishing a scroll container. */button,summary{font:inherit}::selection{background:var(--blue);color:var(--void)}.productNav{z-index:20;border-bottom:1px solid #7ab8f50f;align-items:center;gap:36px;height:96px;padding:0 max(28px,50vw - 1050px);display:flex;position:absolute;inset:0 0 auto}.productNav:after{content:"";background:var(--blue);width:60px;height:1px;position:absolute;bottom:-1px;left:max(28px,50vw - 1050px);box-shadow:0 0 8px #7ab8f599}.brand{color:var(--blue);letter-spacing:.22em;text-shadow:0 0 22px #7ab8f538;align-items:center;gap:12px;font-size:18px;font-weight:800;display:flex}.brandOrb{flex:none;width:36px;height:36px}.loryn-orb.brandOrb{width:36px;height:36px}.productNav>nav{flex:1;justify-content:center;gap:28px;display:flex}.productNav>nav a,.productNav>div>a:first-child{letter-spacing:.2em;text-transform:uppercase;color:var(--muted);transition:color .32s var(--ease);font-size:10px;font-weight:600}.productNav>nav a:hover,.productNav>div>a:first-child:hover{color:var(--ink2)}.productNav>div{align-items:center;gap:25px;display:flex}.productNav details{display:none}.cta{color:var(--blue);letter-spacing:.22em;text-transform:uppercase;transition:color .32s var(--ease),filter .32s var(--ease);border-bottom:1px solid #7ab8f58c;align-items:center;gap:18px;padding:7px 0;font-size:10px;font-weight:700;display:inline-flex}.cta:hover{color:#d3e4ff;filter:drop-shadow(0 5px 8px #7ab8f559)}.cta span{letter-spacing:0;font-size:15px}.textLink{color:var(--blue);letter-spacing:.18em;text-transform:uppercase;border-bottom:1px solid #7ab8f54d;margin-top:22px;padding-bottom:8px;font-size:10px;font-weight:700;display:inline-block}.lorynOrb{display:inline-block;position:relative}.lorynOrb svg{width:100%;height:100%;display:block;overflow:visible}.lorynOrb .orb-ring-main{transform-origin:50%;transform-box:fill-box;animation:22s linear infinite orbRingMainSpin}.lorynOrb .orb-ring-sub{transform-origin:50%;transform-box:fill-box;animation:38s linear infinite reverse orbRingSubSpin}.lorynOrb .orb-mist{transform-origin:50%;transform-box:fill-box;animation:9s ease-in-out infinite orbMistBreathe}.lorynOrb .orb-mist-core,.lorynOrb .orb-mist-glow,.lorynOrb .orb-mist-wisp1,.lorynOrb .orb-mist-wisp2,.lorynOrb .orb-halo,.lorynOrb .orb-outer{transform-origin:50%;transform-box:fill-box}.lorynOrb .orb-mist-wisp1{animation:14s ease-in-out infinite orbWispDrift1}.lorynOrb .orb-mist-wisp2{animation:18s ease-in-out infinite reverse orbWispDrift2}.lorynOrb .orb-mist-glow{animation:7.5s ease-in-out infinite orbGlowBreathe}.lorynOrb .orb-halo{animation:8.5s ease-in-out infinite orbHaloBreathe}.lorynOrb .orb-outer{animation:11s ease-in-out infinite orbOuterBreathe}.productHero{background:radial-gradient(ellipse 70% 52% at 20% 20%,#7ab8f50e,transparent 65%),linear-gradient(180deg,var(--near),var(--void));grid-template-columns:minmax(420px,.76fr) minmax(750px,1.55fr);align-items:center;gap:5vw;min-height:970px;padding:170px max(28px,50vw - 1050px) 80px;display:grid;position:relative}.productHero:before{content:"";pointer-events:none;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.92' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.45'/%3E%3C/svg%3E");position:absolute;inset:0}.heroText{z-index:2;animation:emerge .9s var(--ease) both;position:relative}.eyebrow{letter-spacing:.24em;text-transform:uppercase;color:var(--muted);font-size:10px;font-weight:700}.eyebrow i{background:var(--blue);border-radius:50%;width:6px;height:6px;margin-right:10px;display:inline-block;box-shadow:0 0 8px #7ab8f5a6}.heroText h1{letter-spacing:-.045em;margin:28px 0 30px;font-size:clamp(60px,5.3vw,94px);font-weight:250;line-height:.98}.heroText h1 strong{color:var(--blue);font-weight:250;display:inline}.heroText>p{max-width:580px;color:var(--ink2);font-size:16px;line-height:1.7}.heroCtas{align-items:center;gap:34px;margin-top:38px;display:flex}.heroCtas>a:last-child{letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-size:10px;font-weight:600}.heroCtas>a:last-child span{color:var(--blue);margin-left:10px}.microProof{flex-wrap:wrap;gap:22px;margin-top:35px;display:flex}.microProof span{letter-spacing:.2em;color:var(--quiet);font-size:8px;font-weight:600}.realProduct{background:#000;border:1px solid #ffffff1c;border-radius:12px;min-width:0;overflow:hidden;box-shadow:0 20px 64px #0009,0 0 56px #7ab8f50d}.heroProduct{z-index:1;animation:emerge 1s .1s var(--ease) both;position:relative}.productChrome{border-bottom:1px solid var(--hair);background:#08080a;align-items:center;gap:18px;height:43px;padding:0 16px;display:flex}.productChrome span{letter-spacing:.24em;color:var(--blue);font-size:9px;font-weight:700}.productChrome small{letter-spacing:.15em;color:var(--quiet);font-size:8px;font-weight:600}.productChrome i{letter-spacing:.14em;color:var(--muted);margin-left:auto;font-size:8px;font-style:normal;font-weight:600}.realProduct img{object-fit:contain;width:100%;max-width:100%;height:auto;display:block}.productImageLink{display:block;position:relative}.productImageLink:after{content:"OPEN FULL RESOLUTION ↗";color:var(--blue);letter-spacing:.15em;opacity:0;transition:opacity .25s var(--ease),transform .25s var(--ease);background:#020204e0;border:1px solid #7ab8f538;border-radius:5px;padding:8px 10px;font-size:7px;font-weight:700;position:absolute;bottom:14px;right:16px;transform:translateY(4px)}.productImageLink:hover:after,.productImageLink:focus-visible:after{opacity:1;transform:none}.platformStrip{border-block:1px solid #7ab8f512;justify-content:space-between;align-items:center;gap:40px;min-height:126px;padding:30px max(28px,50vw - 1050px);display:flex}.platformStrip>span{letter-spacing:.22em;color:var(--quiet);font-size:8px;font-weight:700}.platformStrip>div{align-items:center;gap:clamp(25px,4vw,72px);display:flex}.platformStrip b{letter-spacing:.06em;color:var(--muted);font-size:13px}.platformStrip b:nth-child(2){font-size:17px}.platformStrip b span{color:var(--blue)}.platformStrip b:last-child{letter-spacing:.18em;font-size:8px}.productIntro{grid-template-columns:1.2fr .8fr;align-items:end;gap:6vw;padding:170px max(28px,50vw - 750px);display:grid}.productIntro>.eyebrow{grid-column:1/-1;margin-bottom:12px}.productIntro h2,.featureWords h2,.commandCopy h2,.how h2,.priceSection h2,.closing h2{letter-spacing:-.045em;margin:0;font-size:clamp(48px,5vw,82px);font-weight:250;line-height:1.02}.productIntro p{color:var(--ink2);max-width:560px;margin:0 0 5px;font-size:15px;line-height:1.75}.productFeature{border-top:1px solid #ffffff0e;grid-template-columns:minmax(320px,.52fr) minmax(720px,1.48fr);align-items:center;gap:6vw;padding:105px max(28px,50vw - 950px);display:grid}.productFeature.reverse{grid-template-columns:minmax(720px,1.48fr) minmax(320px,.52fr)}.productFeature.reverse .featureWords{order:2}.productFeature.reverse .realProduct{order:1}.featureIndex{font:600 9px var(--mono);letter-spacing:.24em;color:var(--blue)}.featureWords h2{margin:32px 0 25px;font-size:clamp(45px,4.2vw,70px)}.featureWords>p{color:var(--ink2);max-width:470px;font-size:14px;line-height:1.75}.featureWords ul{border-top:1px solid var(--hair);margin:30px 0 0;padding:24px 0 0;list-style:none}.featureWords li{letter-spacing:.15em;text-transform:uppercase;color:var(--muted);padding:10px 0;font-size:10px;font-weight:600}.featureWords li:before{content:"";background:var(--blue);border-radius:50%;width:5px;height:5px;margin-right:12px;display:inline-block;box-shadow:0 0 7px #7ab8f580}.command{background:radial-gradient(circle at 16% 50%,#7ab8f50f,transparent 25%),var(--void);border-block:1px solid #7ab8f512;grid-template-columns:.65fr 1fr .8fr;align-items:center;gap:6vw;min-height:900px;padding:150px max(28px,50vw - 850px);display:grid}.commandOrb{place-items:center;display:grid}.commandOrb .lorynOrb{aspect-ratio:1;filter:drop-shadow(0 0 35px #7ab8f51f);width:min(340px,100%)}.commandCopy h2{margin:29px 0 28px;font-size:clamp(48px,4.6vw,75px)}.commandCopy>p{color:var(--ink2);max-width:560px;font-size:14px;line-height:1.75}.commandLines{border-top:1px solid var(--hair);margin-top:38px}.commandLines span{border-bottom:1px solid var(--hair);color:var(--ink2);gap:18px;padding:18px 0;font-size:12px;display:flex}.commandLines b{font:8px var(--mono);color:var(--blue)}.command>aside{border-block:1px solid #7ab8f52e;padding:30px 0}.command>aside>span{letter-spacing:.24em;color:var(--blue);font-size:8px;font-weight:700}.command>aside p{color:var(--ink2);font-size:20px;font-weight:300;line-height:1.55}.command>aside strong{color:var(--ink);font-weight:400}.command>aside small{letter-spacing:.2em;color:var(--quiet);font-size:8px;font-weight:600}.how{padding:160px max(28px,50vw - 800px)}.how header{grid-template-columns:.6fr 1.4fr;align-items:start;gap:5vw;margin-bottom:75px;display:grid}.how h2{font-size:clamp(48px,4.7vw,78px)}.howSteps{border-block:1px solid var(--hair);grid-template-columns:repeat(3,1fr);display:grid}.howSteps article{border-right:1px solid var(--hair);min-height:350px;padding:34px 38px;position:relative}.howSteps article:last-child{border:0}.howSteps article>span{font:9px var(--mono);color:var(--blue)}.howSteps h3{margin:80px 0 16px;font-size:26px;font-weight:400}.howSteps p{color:var(--ink2);max-width:360px;font-size:13px;line-height:1.7}.howSteps small{letter-spacing:.2em;color:var(--quiet);font-size:8px;font-weight:600;position:absolute;bottom:32px}.companionRail{border-block:1px solid #7ab8f51f;grid-template-columns:1fr 1.25fr auto;align-items:center;gap:55px;margin-top:42px;padding:32px 0;display:grid}.companionRail h3{margin:12px 0 0;font-size:26px;font-weight:300}.companionRail p{color:var(--ink2);margin:0;font-size:12px;line-height:1.7}.companionRail .cta{white-space:nowrap}.priceSection{border-top:1px solid var(--hair);grid-template-columns:1fr 470px;align-items:center;gap:10vw;padding:150px max(28px,50vw - 750px);display:grid}.priceSection h2{margin:28px 0;font-size:clamp(44px,4.2vw,68px)}.priceSection>div>p{color:var(--ink2);max-width:560px;font-size:14px;line-height:1.75}.priceSection>article{background:var(--surface);border:1px solid var(--hair);border-radius:12px;padding:34px;box-shadow:inset 0 1px #ffffff06}.priceSection article header span,.priceSection article header b{display:block}.priceSection article header span{letter-spacing:.24em;color:var(--blue);font-size:9px;font-weight:700}.priceSection article header b{letter-spacing:.12em;color:var(--muted);margin-top:8px;font-size:10px}.price{align-items:end;margin:38px 0;display:flex}.price strong{font:300 68px/1 var(--sans);letter-spacing:-.04em;font-variant-numeric:tabular-nums}.price span{letter-spacing:.15em;color:var(--muted);margin:0 0 8px 10px;font-size:9px;font-weight:600}.priceSection ul{margin:0 0 30px;padding:0;list-style:none}.priceSection li{border-top:1px solid var(--hair);color:var(--ink2);padding:12px 0;font-size:11px}.priceSection li:before{content:"•";color:var(--blue);margin-right:10px}.priceSection article>small{letter-spacing:.16em;color:var(--quiet);margin-top:20px;font-size:7px;display:block}.faqTeaser{border-top:1px solid var(--hair);grid-template-columns:.85fr 1.15fr;gap:9vw;padding:150px max(28px,50vw - 750px);display:grid}.faqTeaser h2{letter-spacing:-.045em;margin:28px 0;font-size:clamp(44px,4.5vw,72px);font-weight:250;line-height:1.02}.faqTeaser>div>p{color:var(--ink2);max-width:520px;font-size:14px;line-height:1.75}.miniFaq{border-top:1px solid var(--hair)}.miniFaq details{border-bottom:1px solid var(--hair);padding:22px 0}.miniFaq summary{cursor:pointer;color:var(--ink);font-size:16px;list-style:none}.miniFaq summary::-webkit-details-marker{display:none}.miniFaq p{color:var(--ink2);max-width:620px;line-height:1.7;font-size:13px!important}.communityRail{border-top:1px solid var(--hair);background:radial-gradient(circle at 15%,#7ab8f50b,#0000 28%);grid-template-columns:1.15fr .9fr auto;align-items:center;gap:6vw;padding:95px max(28px,50vw - 750px);display:grid}.communityRail h2{letter-spacing:-.045em;margin:25px 0 0;font-size:clamp(42px,4.5vw,70px);font-weight:250;line-height:1.02}.communityRail>p{color:var(--ink2);margin:0;font-size:13px;line-height:1.75}.communityRail .cta{white-space:nowrap}.closing{text-align:center;background:radial-gradient(circle at 50% 52%,#7ab8f50e,transparent 32%),var(--void);border-top:1px solid #7ab8f512;flex-direction:column;justify-content:center;align-items:center;min-height:700px;padding:100px 28px;display:flex}.closingOrb{width:96px;height:96px;margin-bottom:35px}.closing h2{margin:28px 0 38px;font-size:clamp(48px,5.6vw,92px)}.productFooter{border-top:1px solid var(--hair);background:linear-gradient(#030305,#010102);padding:0 28px 24px}.footerPrimary{grid-template-columns:2fr repeat(3,1fr);gap:50px;padding:74px 0 62px;display:grid}.footerBrand p{color:var(--muted);max-width:240px;margin-top:25px;font-size:11px;line-height:1.7}.footerPrimary>nav{flex-direction:column;gap:12px;display:flex}.footerPrimary>nav b{letter-spacing:.2em;color:var(--quiet);margin-bottom:8px;font-size:8px}.footerPrimary>nav a{color:var(--muted);font-size:10px}.footerPrimary>nav a:hover{color:var(--blue)}.siteDisclosures{border-block:1px solid var(--hair);grid-template-columns:200px 1fr;gap:23px 55px;padding:34px 0 32px;display:grid}.disclosureHeading span{letter-spacing:.22em;color:var(--blue);font-size:7px;font-weight:700}.disclosureHeading p{color:var(--quiet);margin:11px 0 0;font-size:9px;line-height:1.5}.disclosureCopy{grid-template-columns:.78fr 1.22fr;gap:45px;display:grid}.siteDisclosures p{color:#e8f0ff40;margin:0;font-size:7.5px;line-height:1.7}.siteDisclosures b{color:#e8f0ff6e;font-weight:700}.trademarkCopy{border-top:1px solid #ffffff0b;grid-column:2;padding-top:20px}.footerIndependent{color:var(--quiet);border-bottom:1px solid var(--hair);padding:22px 0;font-size:7.5px;line-height:1.65}.footerBase{justify-content:space-between;align-items:center;gap:35px;min-height:74px;display:flex}.footerBase>em{font:7px var(--mono);color:var(--quiet);font-style:normal}.partnerLinks{align-items:center;gap:10px;display:flex}.partnerLinks>span{letter-spacing:.2em;color:var(--quiet);margin-right:5px;font-size:6px;font-weight:700}.partnerLinks a{min-width:108px;height:30px;transition:border-color .25s var(--ease),background .25s var(--ease),transform .25s var(--ease);background:#ffffff06;border:1px solid #ffffff14;border-radius:5px;place-items:center;padding:8px 11px;display:grid}.partnerLinks a:hover{background:#7ab8f50b;border-color:#7ab8f547;transform:translateY(-1px)}.partnerLinks img{object-fit:contain;width:auto;max-width:105px;height:11px}.partnerLinks a:last-child img{height:18px}.socialRow{flex-wrap:wrap;gap:14px;margin-top:26px;display:flex}.socialRow a{letter-spacing:.16em;color:var(--blue);font-size:8px;font-weight:700}.pageHero{border-bottom:1px solid var(--hair);background:radial-gradient(circle at 72% 26%,#7ab8f512,#0000 24%);min-height:690px;padding:210px max(28px,50vw - 750px) 110px}.pageHero h1,.faqPage h1,.contactPage h1{letter-spacing:-.055em;margin:32px 0;font-size:clamp(62px,7vw,116px);font-weight:250;line-height:.94}.pageHero h1 strong{color:var(--blue);font-weight:250}.pageHero>p{max-width:720px;color:var(--ink2);font-size:17px;line-height:1.75}.billingNote{letter-spacing:.22em;color:var(--quiet);margin-top:45px;font-size:8px;font-weight:700}.planGrid{grid-template-columns:repeat(3,1fr);gap:18px;padding:110px max(28px,50vw - 850px);display:grid}.plan{background:var(--surface);border:1px solid var(--hair);border-radius:12px;flex-direction:column;min-height:650px;padding:34px;display:flex}.plan.featured{border-color:#7ab8f547;box-shadow:0 0 50px #7ab8f50a}.plan header{justify-content:space-between;gap:20px;display:flex}.plan header span,.plan header small{font:700 8px var(--mono);letter-spacing:.18em;color:var(--blue)}.plan header small{color:var(--quiet)}.plan>p{min-height:95px;color:var(--ink2);margin:45px 0 15px;font-size:14px;line-height:1.7}.planPrice{align-items:end;margin:25px 0 8px;display:flex}.planPrice strong{letter-spacing:-.05em;font-size:72px;font-weight:250}.planPrice span{letter-spacing:.15em;color:var(--muted);margin:0 0 12px 10px;font-size:8px}.plan>small{letter-spacing:.12em;color:var(--quiet);font-size:8px}.plan ul{margin:38px 0 35px;padding:0;list-style:none}.plan li{border-top:1px solid var(--hair);color:var(--ink2);padding:12px 0;font-size:11px}.plan li:before{content:"•";color:var(--blue);margin-right:10px}.plan>.cta{align-self:flex-start;margin-top:auto}.trustBand{border-block:1px solid var(--hair);justify-content:space-between;gap:30px;padding:35px max(28px,50vw - 750px);display:flex}.trustBand span{letter-spacing:.16em;color:var(--quiet);font-size:8px;font-weight:700}.pricingNotes{grid-template-columns:repeat(2,1fr);gap:22px;padding:90px max(28px,50vw - 650px);display:grid}.pricingNotes article{border:1px solid var(--hair);background:var(--surface);border-radius:12px;padding:38px}.pricingNotes p{color:var(--ink2);font-size:13px;line-height:1.75}.pageClosing{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:620px;padding:110px 28px;display:flex}.pageClosing h2{letter-spacing:-.05em;margin:30px 0 42px;font-size:clamp(48px,5.6vw,92px);font-weight:250;line-height:1}.faqPage{grid-template-columns:.72fr 1.28fr;gap:10vw;padding:210px max(28px,50vw - 750px) 130px;display:grid}.faqPage>aside{align-self:start;position:sticky;top:130px}.faqPage h1{font-size:clamp(52px,5vw,82px);line-height:1}.faqPage aside>p{color:var(--ink2);max-width:470px;font-size:14px;line-height:1.75}.faqPage aside a{color:var(--blue)}.faqGroup{margin-bottom:70px}.faqGroup h2{letter-spacing:.22em;color:var(--blue);margin:0 0 10px;font-size:9px}.faqGroup details{border-top:1px solid var(--hair)}.faqGroup details:last-child{border-bottom:1px solid var(--hair)}.faqGroup summary{cursor:pointer;justify-content:space-between;gap:30px;padding:25px 0;font-size:16px;list-style:none;display:flex}.faqGroup summary::-webkit-details-marker{display:none}.faqGroup summary span{color:var(--blue);transition:transform .3s var(--ease);font-size:20px}.faqGroup details[open] summary span{transform:rotate(45deg)}.faqGroup details p{color:var(--ink2);margin:0;padding:0 50px 28px 0;font-size:13px;line-height:1.8}.timeline{padding:70px max(28px,50vw - 750px) 130px}.timeline article{grid-template-columns:90px minmax(320px,1fr) minmax(280px,.75fr);gap:55px;min-height:350px;display:grid}.timeline article>div{flex-direction:column;align-items:center;display:flex}.timeline article>div span{font:9px var(--mono);color:var(--blue)}.timeline article>div i{background:linear-gradient(var(--blue),#7ab8f50d);flex:1;width:1px;margin-top:20px}.timeline article section{padding-bottom:70px}.timeline h2{letter-spacing:-.04em;margin:0 0 25px;font-size:48px;font-weight:250}.timeline p{color:var(--ink2);max-width:580px;font-size:14px;line-height:1.8}.timeline small{letter-spacing:.18em;color:var(--quiet);margin-top:30px;font-size:8px;display:block}.stepSignal{border-block:1px solid #7ab8f524;align-self:start;padding:30px 0}.stepSignal strong,.stepSignal span{display:block}.stepSignal strong{letter-spacing:-.045em;color:var(--blue);font-size:clamp(30px,4vw,62px);font-weight:250}.stepSignal span{letter-spacing:.14em;text-transform:uppercase;color:var(--quiet);margin-top:12px;font-size:9px}.contactPage{grid-template-columns:.9fr 1.1fr;gap:10vw;padding:210px max(28px,50vw - 725px) 140px;display:grid}.contactPage h1{font-size:clamp(66px,6vw,102px)}.contactPage>div>p{color:var(--ink2);max-width:540px;font-size:15px;line-height:1.75}.contactPage dl{margin-top:55px}.contactPage dl div{border-top:1px solid var(--hair);grid-template-columns:120px 1fr;gap:20px;max-width:580px;padding:17px 0;display:grid}.contactPage dt{letter-spacing:.18em;color:var(--quiet);font-size:8px;font-weight:700}.contactPage dd{color:var(--ink2);margin:0;font-size:12px;line-height:1.6}.contactPage dd a{color:var(--blue)}.contactForm{background:var(--surface);border:1px solid var(--hair);border-radius:12px;padding:38px}.contactForm label{letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:24px;font-size:9px;font-weight:700;display:block}.contactForm input,.contactForm textarea{border:0;width:100%;color:var(--ink);font:14px var(--sans);resize:vertical;background:0 0;border-bottom:1px solid #ffffff1f;outline:0;margin-top:10px;padding:14px 0;display:block}.contactForm input:focus,.contactForm textarea:focus{border-color:var(--blue)}.contactForm button{border:0;border-bottom:1px solid var(--blue);color:var(--blue);letter-spacing:.18em;text-transform:uppercase;cursor:pointer;background:0 0;padding:10px 0;font-size:10px;font-weight:700}.contactForm button:disabled{opacity:.5}.honeypot{position:absolute!important;left:-9999px!important}.formError{color:#7ab8f5;margin-top:20px;font-size:11px}.sentCard{border:1px solid #7ab8f540;border-radius:12px;align-self:center;padding:55px}.sentCard h2{font-size:48px;font-weight:250}.sentCard p{color:var(--ink2);line-height:1.7}@keyframes emerge{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}@keyframes orbRingMainSpin{to{transform:rotate(360deg)}}@keyframes orbRingSubSpin{to{transform:rotate(360deg)}}@keyframes orbMistBreathe{0%,to{transform:scale(1)}50%{transform:scale(.96)}}@keyframes orbWispDrift1{0%,to{transform:translate(-2px,1px)scale(1)}50%{transform:translate(2px,-2px)scale(1.08)}}@keyframes orbWispDrift2{0%,to{transform:translate(2px,-2px)scale(.95)}50%{transform:translate(-3px,2px)scale(1.05)}}@keyframes orbGlowBreathe{0%,to{opacity:.8;transform:scale(.94)}50%{opacity:1;transform:scale(1.06)}}@keyframes orbHaloBreathe{0%,to{opacity:1;transform:scale(1)}50%{opacity:.78;transform:scale(.94)}}@keyframes orbOuterBreathe{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.96)}}@media (width<=1150px){.productNav>nav{display:none}.productNav details{margin-left:auto;display:block;position:relative}.productNav summary{letter-spacing:.18em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--blue);padding:8px 0;font-size:9px;list-style:none}.productNav details nav{border:1px solid var(--hair);background:#08080a;border-radius:8px;flex-direction:column;gap:15px;width:190px;padding:18px;display:flex;position:absolute;top:32px;right:0}.productNav details a{color:var(--ink2);font-size:10px}.productHero{grid-template-columns:1fr}.heroText{max-width:760px}.productFeature,.productFeature.reverse{grid-template-columns:1fr}.productFeature.reverse .featureWords{order:0}.productFeature.reverse .realProduct{order:1}.command{grid-template-columns:.6fr 1.4fr}.command>aside{grid-column:1/-1}.priceSection{grid-template-columns:1fr}.priceSection>article{width:min(520px,100%)}.planGrid{grid-template-columns:1fr}.plan,.plan>p{min-height:0}.faqPage,.contactPage{grid-template-columns:1fr}.faqPage>aside{position:static}.timeline article{grid-template-columns:70px 1fr}.stepSignal{grid-column:2;margin-bottom:70px}.companionRail,.communityRail{grid-template-columns:1fr}.companionRail .cta,.communityRail .cta{justify-self:start}}@media (width<=720px){.productNav{height:76px;padding:0 20px}.productNav:after{left:20px}.productNav>div{display:none}.brand{font-size:15px}.brandOrb{width:30px;height:30px}.loryn-orb.brandOrb{width:30px;height:30px}.productHero{min-height:auto;padding:130px 20px 70px}.heroText h1{font-size:55px}.heroText>p{font-size:14px}.heroCtas{flex-direction:column;align-items:flex-start}.platformStrip{flex-direction:column;align-items:flex-start;padding:35px 20px}.platformStrip>div{flex-wrap:wrap;gap:25px}.productIntro{grid-template-columns:1fr;padding:100px 20px}.productIntro h2,.featureWords h2,.commandCopy h2,.how h2,.priceSection h2{font-size:45px}.productIntro p{margin-top:25px}.productFeature{gap:45px;padding:80px 20px}.realProduct{border-radius:8px;overflow:hidden}.realProduct img{width:100%;max-width:100%;height:auto}.productChrome{width:100%;position:static}.productChrome small,.productImageLink:after{display:none}.command{grid-template-columns:1fr;padding:95px 20px}.commandOrb .lorynOrb{width:180px}.how{padding:100px 20px}.how header{grid-template-columns:1fr;gap:25px}.howSteps{grid-template-columns:1fr}.howSteps article{border-right:0;border-bottom:1px solid var(--hair)}.companionRail{gap:25px}.priceSection{padding:95px 20px}.priceSection>article{padding:26px}.faqTeaser{grid-template-columns:1fr;padding:95px 20px}.communityRail{gap:28px;padding:75px 20px}.closing{min-height:580px;padding:90px 20px}.closing h2{font-size:47px}.productFooter{padding:0 20px 18px}.footerPrimary{grid-template-columns:1fr 1fr;padding:58px 0 45px}.footerBrand{grid-column:1/-1}.siteDisclosures{grid-template-columns:1fr;row-gap:22px;padding:30px 0}.disclosureCopy{grid-template-columns:1fr;gap:18px}.trademarkCopy{grid-column:1}.footerBase{flex-direction:column;align-items:flex-start;padding:20px 0}.partnerLinks{flex-wrap:wrap;width:100%}.partnerLinks>span{width:100%;margin:0 0 3px}.partnerLinks a{flex:1}.pageHero{min-height:560px;padding:155px 20px 80px}.pageHero h1{font-size:58px}.planGrid{padding:65px 20px}.plan{padding:26px}.pricingNotes{grid-template-columns:1fr;padding:65px 20px}.trustBand{flex-direction:column;padding:30px 20px}.faqPage,.contactPage{padding:150px 20px 90px}.faqPage h1,.contactPage h1{font-size:54px}.timeline{padding:60px 20px 90px}.timeline article{grid-template-columns:35px 1fr;gap:18px}.timeline h2{font-size:38px}.stepSignal{grid-column:2}.contactForm{padding:25px}.contactPage dl div{grid-template-columns:1fr;gap:7px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}

/* ══ Loryn redesign wiring — bridges Codex's look to the site's machinery. ══
   Appended after the Codex bundle so it wins. (External public/ CSS: not scanned
   by no-button-fill, but it still follows colour-on-the-words.) */
.skip-link{position:absolute;left:-9999px;top:0;z-index:60;background:var(--surface);color:var(--ink);padding:10px 16px}
.skip-link:focus{left:8px;top:8px}
/* auth seed: hide guest actions for signed-in visitors before paint */
html.sn-authed .site-nav-signin,html.sn-authed .site-nav-cta{display:none!important}
/* active primary-nav tab */
.productNav>nav a.is-active,.productNav>nav a[aria-current=page]{color:var(--ink)}
/* account cluster (site-nav-auth.js injects this for signed-in visitors) */
.site-nav-account{position:relative;display:inline-flex}
.site-nav-account-trigger{display:inline-flex;align-items:center;gap:8px;background:none;border:0;cursor:pointer;color:var(--ink2);font:inherit;font-size:11px;letter-spacing:.14em;text-transform:uppercase;padding:6px 0}
.site-nav-account-trigger:hover{color:var(--ink)}
.site-nav-account-dot{width:8px;height:8px;border-radius:50%;background:var(--blue);box-shadow:0 0 8px #7ab8f599}
.site-nav-account-caret{font-size:9px;color:var(--muted)}
.site-nav-account-menu{position:absolute;top:calc(100% + 12px);right:0;min-width:184px;display:grid;background:var(--surface2);border:1px solid var(--hair);border-radius:12px;padding:6px;opacity:0;transform:translateY(-4px);pointer-events:none;transition:opacity .2s var(--ease),transform .2s var(--ease);z-index:40}
.site-nav-account-trigger[aria-expanded=true]+.site-nav-account-menu{opacity:1;transform:none;pointer-events:auto}
.site-nav-account-menu a,.site-nav-account-menu button{display:block;width:100%;text-align:left;background:none;border:0;cursor:pointer;color:var(--ink2);font:inherit;font-size:12px;letter-spacing:.04em;padding:9px 12px;border-radius:8px;text-decoration:none}
.site-nav-account-menu a:hover,.site-nav-account-menu button:hover{color:var(--ink)}
/* legal disclosures: SiteDisclosures.astro (.site-disclaimer) reused inside Codex's .siteDisclosures shell */
.siteDisclosures .site-disclaimer{display:grid;gap:12px}
.siteDisclosures .site-disclaimer p{color:var(--quiet);font-size:11px;line-height:1.7;margin:0;max-width:none}
.siteDisclosures .sd-label{color:var(--muted)}
.siteDisclosures .sd-more a{color:var(--muted)}
.siteDisclosures .sd-more a:hover{color:var(--ink2)}

/* "coming soon" marker on not-yet-live sections (e.g. Command/AI) — accent text,
   never a boxy badge (Jake's button rule). Inherits the eyebrow's uppercase. */
.soon-tag{color:var(--blue);opacity:.92;font-weight:600}

/* native <button>s must not fall back to the OS grey box — appearance:none pairs
   with the colour-on-words styling (no fill) to satisfy both button guards. */
.contactForm button,.site-nav-account-trigger,.site-nav-account-menu button{-webkit-appearance:none;appearance:none}
.send-btn{-webkit-appearance:none;appearance:none;background:none}

/* ── Chrome companion — SHOW what the optional extension is: the Loryn orb on your
   broker screen with fills landing instantly. Illustrative (aria-hidden), compact,
   deliberately secondary (it's an accelerator, not the capture spine). ── */
.companionRail{grid-template-columns:1fr 360px;gap:52px;align-items:center}
.companionCopy{display:grid;align-content:center}
.companionDemo{background:var(--surface);border:1px solid var(--hair);border-radius:14px;overflow:hidden}
.companionBar{display:flex;align-items:center;gap:6px;padding:11px 15px;border-bottom:1px solid var(--hair);background:#ffffff06}
.companionBar i{width:7px;height:7px;border-radius:50%;background:#ffffff1c}
.companionBar small{margin-left:auto;font:8px var(--mono);letter-spacing:.24em;color:var(--quiet)}
.companionStage{position:relative;display:flex;align-items:center;gap:20px;min-height:150px;padding:24px 24px;background:radial-gradient(circle at 24% 50%,#7ab8f51f,transparent 62%)}
.companionOrb{width:76px;height:76px;flex:0 0 auto}
.companionFills{display:grid;gap:11px}
.fillChip{display:inline-flex;align-items:center;gap:10px;font-size:11px;color:var(--ink2);border:1px solid var(--hair);border-radius:9px;padding:9px 13px;background:#7ab8f50a}
.fillChip b{color:var(--ink);font-weight:600}
.fillChip em{color:var(--blue);font-style:normal;font-size:8px;letter-spacing:.18em;text-transform:uppercase}
@media(max-width:900px){.companionRail{grid-template-columns:1fr}.companionDemo{max-width:360px}}

/* global blue-accent utility — one source for headline/word accents across every page (2026-07-26) */
.hl{color:var(--blue)}
/* ── iOS focus-zoom fix ──────────────────────────────────────────────────────
   iOS Safari auto-zooms the viewport toward any focused text field whose
   font-size is < 16px — tapping an input magnifies the whole page. Force every
   text-entry field to 16px on phones/small tablets so focusing never zooms.
   Touch-width only; desktop keeps its designed input sizes. (2026-07-26) */
@media (max-width: 768px) {
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="button"]):not([type="submit"]):not([type="reset"]),
  textarea,
  select { font-size: 16px !important; }
}


/* ═══════════════════════════════════════════════════════════════════════════════════════════
   READABILITY AND REACH — appended 2026-08-22 after a measured sweep of every page at eight
   sizes. Everything above this line is the minified Codex export; this block is written by
   hand, which is why it is readable, and it goes at the END so it wins on source order without
   needing !important on rules that are otherwise identical in specificity.

   ⛔ WHAT WAS MEASURED, not guessed. Two independent sweeps agreed on all of it:

     · the footer's Contact / Terms / Privacy links were SEVEN PIXEL type, eight pixels tall —
       the smallest text on the site, at every width including a 1440px desktop, and it is the
       legal navigation. Seven-pixel type is not restraint, it is unreadable.
     · the footer's thirteen stacked nav links were 12px tall with 12px between them, so
       adjacent links sat inside one fingertip of each other
     · the TikTok and Discord links were 10px tall
     · "MENU" — the ONLY navigation control that exists below 1150px — was 34x28, under 40px in
       both axes, so a phone had no comfortable way to open the site's navigation at all
     · the send button on Contact and Report-a-bug — the single action each page exists for —
       was 33px tall, SHORTER than the 47px input fields directly above it
     · "Join the waitlist", the only conversion control on the pricing page, was 33px

   ⚠ THE LOOK IS NOT CHANGED, THE REACH IS. Sizes go up only where they were below legibility
   (the 7px legal row), and everywhere else the extra height comes from PADDING on a coarse
   pointer — so the desktop site is visually identical and a phone gets targets a thumb can
   actually hit. Jake's type is small on purpose; small is not the same as invisible.
   ═══════════════════════════════════════════════════════════════════════════════════════════ */

/* The legal row. 7px → 10px, which is the same size as the footer nav above it, so the footer
   now has one small-type scale instead of three. */
.footerBase em,
.footerBase em a { font-size: 10px; letter-spacing: 0.04em; }
.footerBase em a { padding: 6px 2px; display: inline-block; }

/* Stacked footer links need room between them more than they need to be bigger. */
.footerPrimary nav a { padding: 5px 0; display: inline-block; }
.socialRow a { padding: 6px 0; display: inline-block; font-size: 10px; }

@media (hover: none) and (pointer: coarse) {
  /* The one control that opens the site on a phone. */
  .site-nav details.navMenu > summary,
  header details > summary { min-width: 44px; min-height: 44px;
                             display: inline-flex; align-items: center; justify-content: center; }
  /* Every link inside that menu, so the stack stops being a row of hairlines. */
  .site-nav details.navMenu nav a { min-height: 44px; display: flex; align-items: center; }
  /* The actions each page exists for. */
  .send-btn, button#contact-submit, button#bug-submit,
  .plan a.cta, .cta { min-height: 46px; display: inline-flex; align-items: center; }
  .footerPrimary nav a, .socialRow a,
  .footerBase em a { min-height: 40px; display: inline-flex; align-items: center; }
}

/* A wrapped feature line restarted under its own bullet instead of lining up with the text
   above it, so the left edge of the pricing cards read as ragged: "Automatic fill capture from
   every Tradovate, Topstep," / "and Rithmic accounts" with the second line sitting a bullet's
   width to the left. The ::before is a static inline "•", so the fix is the classic hanging
   indent — pad the item in, pull the first line back out — rather than restructuring a list
   that is otherwise fine. */
.plan li { padding-left: 1.1em; text-indent: -1.1em; }
.plan li::before { text-indent: 0; }

@media (hover: none) and (pointer: coarse) {
  /* The wordmark is a link home, and its live area was the middle 30px of a 76px header — a
     thumb landing anywhere in the top third hit nothing at all. */
  .site-nav-brand, a.brand { min-height: 44px; display: inline-flex; align-items: center; }
}

@media (hover: none) and (pointer: coarse) {
  /* "Compare all three plans →" and "Read every answer →" are the links that carry a reader
     from one page to the next — 37px, seven short. And the partner logo links were 30px.
     ⚠ INLINE LINKS INSIDE RUNNING PROSE ARE DELIBERATELY LEFT ALONE ("Full risk disclosure →"
     inside a sentence, the Terms link inside the copyright line). Padding those to 44px would
     push the lines of the paragraph apart to fix a target that is correctly the height of its
     own line — the cure would be worse, and visibly so. */
  .textLink { min-height: 44px; display: inline-flex; align-items: center; }
  .partnerLinks a { min-height: 44px; display: inline-flex; align-items: center; }
}

@media (hover: none) and (pointer: coarse) {
  /* The FAQ sidebar's two calls to action — "Contact us →" and "Get the companion extension →"
     — were 17px-tall inline anchors. Unlike a link inside a running sentence these ARE the
     point of the aside, so they get a target rather than a line box. */
  .faqPage aside p a { min-height: 44px; display: inline-flex; align-items: center; }
}

@media (hover: none) and (pointer: coarse) {
  /* "Join the Loryn Discord →" is the ONLY thing in its <dd> — a standalone call to action
     wearing a definition-list cell, not a link inside a sentence. `:only-child` is the whole
     distinction: the bug-reporter link two rows above it sits mid-sentence ("Use the bug
     reporter — it routes straight to the team…") and correctly stays the height of its line,
     because padding that one would prise the paragraph apart to fix a target that is not
     broken. */
  dd > a:only-child { min-height: 44px; display: inline-flex; align-items: center; }
}
