:root{
    --defx-bg:#02070d;
    --defx-bg-deep:#000308;
    --defx-panel:#071522;
    --defx-panel-strong:#0a1d2e;
    --defx-cyan:#09d9ff;
    --defx-blue:#0175fe;
    --defx-blue-soft:#1595d3;
    --defx-header-cyan:#01c5ff;
    --defx-text:#f7fbff;
    --defx-muted:#aebdca;
    --defx-border:rgba(90, 203, 255, 0.25);
    --defx-border-strong:rgba(9, 217, 255, 0.58);
    --defx-shadow:0 22px 70px rgba(0, 0, 0, 0.42);
    --defx-radius:18px;
    --defx-max:1440px;
    --defx-content:1180px;
}

*,
*::before,
*::after{
    box-sizing:border-box;
}

html{
    min-width:320px;
    background:var(--defx-bg-deep);
    color-scheme:dark;
    scroll-behavior:smooth;
}

body.publicSite{
    min-width:320px;
    min-height:100vh;
    margin:0;
    overflow-x:hidden;
    background:
        radial-gradient(circle at 15% 8%, rgba(1, 117, 254, 0.16), transparent 31rem),
        radial-gradient(circle at 88% 36%, rgba(9, 217, 255, 0.09), transparent 32rem),
        linear-gradient(180deg, #02070d 0%, #04101a 48%, #02070d 100%);
    color:var(--defx-text);
    font-family:Roboto, Arial, Helvetica, sans-serif;
    font-size:16px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
}

body.publicSite a{
    color:inherit;
}

body.publicSite img{
    display:block;
    max-width:100%;
}

body.publicSite h1,
body.publicSite h2,
body.publicSite h3,
body.publicSite p{
    margin-top:0;
}

.publicSkipLink{
    position:fixed;
    top:10px;
    left:10px;
    z-index:1000;
    padding:10px 14px;
    border-radius:8px;
    background:#ffffff;
    color:#00121e !important;
    font-weight:700;
    transform:translateY(-150%);
    transition:transform 0.16s ease;
}

.publicSkipLink:focus{
    transform:translateY(0);
}

.publicVisuallyHidden{
    position:absolute !important;
    width:1px !important;
    height:1px !important;
    padding:0 !important;
    margin:-1px !important;
    overflow:hidden !important;
    clip:rect(0, 0, 0, 0) !important;
    white-space:nowrap !important;
    border:0 !important;
}

.publicHeader{
    position:sticky;
    top:0;
    z-index:100;
    border-bottom:1px solid rgba(255, 255, 255, 0.08);
    background:rgba(0, 5, 10, 0.9);
    box-shadow:0 12px 40px rgba(0, 0, 0, 0.22);
    -webkit-backdrop-filter:blur(18px);
    backdrop-filter:blur(18px);
}

.publicHeaderInner{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:30px;
    width:min(var(--defx-max), calc(100% - 40px));
    min-height:78px;
    margin:0 auto;
}

/* The external homepage follows the same full-bleed artwork treatment as VIPify. */
.publicSite--home{
    background:#000000 !important;
}

.publicSite--home .publicHeader{
    position:absolute;
    top:0;
    right:0;
    left:0;
    border-bottom:0;
    background:transparent;
    box-shadow:none;
    -webkit-backdrop-filter:none;
    backdrop-filter:none;
}

.publicSite--home .publicHeaderInner{
    width:100%;
    min-height:0;
    padding:0;
}

.publicSite--home .publicNav{
    position:absolute;
    top:10px;
    right:auto;
    left:16px;
    gap:clamp(18px, 2.4vw, 34px);
}

.publicSite--home .publicNavLink{
    min-height:auto;
    color:#ffffff !important;
    font-size:15px;
    letter-spacing:0.01em;
    text-shadow:0 1px 5px rgba(0, 0, 0, 0.9);
}

.publicSite--home .publicNavLink::after{
    display:none;
}

.publicSite--home .publicNavLink:hover,
.publicSite--home .publicNavLink:focus-visible{
    color:var(--defx-blue) !important;
}

.publicSite--home .publicNavLink--cta,
.publicSite--home .publicNavLink--cta:hover,
.publicSite--home .publicNavLink--cta:focus-visible{
    color:#ffffff !important;
    text-shadow:none;
}

.publicHomeFooter{
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:46px;
    padding:0 16px;
    background:#000000;
}

.publicHomeFooter p{
    margin:0;
    color:#81909c;
    font-size:10px;
    line-height:1.4;
    text-align:center;
}

.publicHomeFooter a{
    position:absolute;
    right:16px;
    color:#8294a3 !important;
    font-size:12px;
    font-weight:500;
    line-height:1;
    text-decoration:none;
    transition:color 0.16s ease;
}

.publicHomeFooter a:hover,
.publicHomeFooter a:focus-visible{
    color:var(--defx-cyan) !important;
}

.publicHomeFooter a:focus-visible{
    outline:2px solid var(--defx-cyan);
    outline-offset:4px;
}

.publicHomeArtwork{
    position:relative;
    width:100%;
    margin:0;
    overflow:hidden;
    background:#000000;
    line-height:0;
}

.publicHomeArtwork > img{
    display:block;
    width:100%;
    max-width:none;
    height:auto;
    margin:0;
}

.publicHomeCopyBand{
    width:100%;
    margin:0;
    padding:30px 0;
    background:#000000;
}

.publicHomeCopy{
    width:89%;
    margin:0 auto;
    text-align:left;
}

.publicHomeCopy h1,
.publicHomeCopy h2,
.publicHomeCopy h3{
    margin:0 0 18px;
    color:var(--defx-header-cyan);
    font-weight:700;
    line-height:1.02;
    letter-spacing:-0.025em;
}

.publicHomeCopy h1,
.publicHomeCopy h2,
.publicHomeCopy h3{
    font-size:clamp(21px, 2.72vw, 42px);
}

.publicSite--pricing{
    background:#000000 !important;
}

.publicSite--pricing .publicHeader{
    position:absolute;
    top:0;
    right:0;
    left:0;
    border-bottom:0;
    background:transparent;
    box-shadow:none;
    -webkit-backdrop-filter:none;
    backdrop-filter:none;
}

.publicSite--pricing .publicHeaderInner{
    width:100%;
    min-height:0;
    padding:0;
}

.publicSite--pricing .publicNav{
    position:absolute;
    top:10px;
    right:auto;
    left:16px;
    gap:clamp(18px, 2.4vw, 34px);
}

.publicSite--pricing .publicNavLink{
    min-height:auto;
    color:#ffffff !important;
    font-size:15px;
    letter-spacing:0.01em;
    text-shadow:0 1px 5px rgba(0, 0, 0, 0.9);
}

.publicSite--pricing .publicNavLink::after{
    display:none;
}

.publicSite--pricing .publicNavLink:hover,
.publicSite--pricing .publicNavLink:focus-visible{
    color:var(--defx-blue) !important;
}

.publicSite--pricing .publicNavLink--cta,
.publicSite--pricing .publicNavLink--cta:hover,
.publicSite--pricing .publicNavLink--cta:focus-visible{
    color:#ffffff !important;
    text-shadow:none;
}

.publicSite--contact .publicHeader,
.publicSite--why .publicHeader{
    position:absolute;
    top:0;
    right:0;
    left:0;
    border-bottom:0;
    background:transparent;
    box-shadow:none;
    -webkit-backdrop-filter:none;
    backdrop-filter:none;
}

.publicSite--contact .publicHeaderInner,
.publicSite--why .publicHeaderInner{
    width:100%;
    min-height:0;
    padding:0;
}

.publicSite--contact .publicNav,
.publicSite--why .publicNav{
    position:absolute;
    top:10px;
    right:auto;
    left:16px;
    gap:clamp(18px, 2.4vw, 34px);
}

.publicSite--contact .publicNavLink,
.publicSite--why .publicNavLink{
    min-height:auto;
    color:#ffffff !important;
    font-size:15px;
    letter-spacing:0.01em;
    text-shadow:0 1px 5px rgba(0, 0, 0, 0.9);
}

.publicSite--contact .publicNavLink::after,
.publicSite--why .publicNavLink::after{
    display:none;
}

.publicSite--contact .publicNavLink:hover,
.publicSite--contact .publicNavLink:focus-visible,
.publicSite--why .publicNavLink:hover,
.publicSite--why .publicNavLink:focus-visible{
    color:var(--defx-blue) !important;
}

.publicSite--contact .publicNavLink--cta,
.publicSite--contact .publicNavLink--cta:hover,
.publicSite--contact .publicNavLink--cta:focus-visible,
.publicSite--why .publicNavLink--cta,
.publicSite--why .publicNavLink--cta:hover,
.publicSite--why .publicNavLink--cta:focus-visible{
    color:#ffffff !important;
    text-shadow:none;
}

.publicPricingShell{
    width:100%;
    margin:0;
    padding:48px 20px 64px;
}

.publicPricingArtwork{
    position:relative;
    width:min(1025px, 100%);
    margin:0 auto;
    overflow:hidden;
    border:1px solid var(--defx-border-strong);
    border-radius:var(--defx-radius);
    background:#000000;
    box-shadow:var(--defx-shadow), 0 0 34px rgba(1, 117, 254, 0.12);
    line-height:0;
}

.publicPricingArtwork > img{
    display:block;
    width:100%;
    max-width:none;
    height:auto;
    margin:0;
}

.publicArtworkHotspot--pricing-contact{
    top:95.55%;
    left:28.2%;
    width:43.8%;
    height:3.25%;
}

.publicHomeCopy p{
    max-width:none;
    margin:0 0 18px;
    color:#c6d2dc;
    font-size:clamp(21px, 2.4vw, 30px);
    line-height:1.35;
}

.publicHomeCopy > :last-child{
    margin-bottom:0;
}

.publicBrand{
    display:block;
    flex:0 1 230px;
    width:230px;
    text-decoration:none;
}

.publicBrand img{
    width:100%;
    height:auto;
}

.publicNav{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:clamp(18px, 2.2vw, 34px);
}

.publicNavLink{
    position:relative;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:42px;
    color:#e8f3fb !important;
    font-size:14px;
    font-weight:600;
    line-height:1;
    letter-spacing:0.02em;
    text-decoration:none;
    transition:color 0.16s ease, border-color 0.16s ease, background 0.16s ease, transform 0.16s ease;
}

.publicNavLink::after{
    position:absolute;
    right:0;
    bottom:3px;
    left:0;
    height:2px;
    border-radius:2px;
    background:var(--defx-cyan);
    content:"";
    opacity:0;
    transform:scaleX(0.45);
    transition:opacity 0.16s ease, transform 0.16s ease;
}

.publicNavLink:hover,
.publicNavLink:focus-visible,
.publicNavLink.is-current{
    color:var(--defx-cyan) !important;
}

.publicNavLink:hover::after,
.publicNavLink:focus-visible::after,
.publicNavLink.is-current::after{
    opacity:1;
    transform:scaleX(1);
}

.publicNavLink--cta{
    min-height:40px;
    padding:0 18px;
    border:1px solid var(--defx-blue);
    border-radius:999px;
    background:var(--defx-blue);
    color:#ffffff !important;
    box-shadow:0 8px 24px rgba(1, 117, 254, 0.24);
}

.publicNavLink--cta::after{
    display:none;
}

.publicNavLink--cta:hover,
.publicNavLink--cta:focus-visible,
.publicNavLink--cta.is-current{
    border-color:var(--defx-cyan);
    background:#0866d2;
    color:#ffffff !important;
    transform:translateY(-1px);
}

.publicNavLink:focus-visible,
.publicBrand:focus-visible,
.publicButton:focus-visible,
.publicArtworkHotspot:focus-visible,
.publicTextLink:focus-visible,
.publicFooter a:focus-visible{
    outline:2px solid var(--defx-cyan);
    outline-offset:4px;
}

.publicMain{
    display:block;
    width:100%;
}

.publicHero{
    width:min(var(--defx-max), 100%);
    margin:0 auto;
    padding:24px 20px 0;
}

.publicArtwork{
    position:relative;
    overflow:hidden;
    border:1px solid var(--defx-border-strong);
    border-radius:var(--defx-radius);
    background:#000000;
    box-shadow:var(--defx-shadow), 0 0 34px rgba(1, 117, 254, 0.12);
}

.publicArtwork img{
    width:100%;
    height:auto;
}

.publicArtworkHotspot{
    position:absolute;
    z-index:2;
    display:block;
    border-radius:999px;
    text-decoration:none;
}

.publicArtworkHotspot:hover,
.publicArtworkHotspot:focus-visible{
    background:rgba(255, 255, 255, 0.08);
    box-shadow:0 0 0 3px rgba(9, 217, 255, 0.72), 0 0 30px rgba(9, 217, 255, 0.45);
}

.publicArtworkHotspot--hero-demo{
    top:73.1%;
    left:2.7%;
    width:20.2%;
    height:5.2%;
}

.publicArtworkHotspot--hero-contact{
    top:78.7%;
    left:2.7%;
    width:20.2%;
    height:4.7%;
}

.publicArtworkHotspot--visuals-pricing,
.publicArtworkHotspot--proof-contact{
    top:85.1%;
    left:71.6%;
    width:21.6%;
    height:8.1%;
}

.publicMobileStory{
    display:none;
}

.publicSection{
    width:min(var(--defx-content), calc(100% - 40px));
    margin:0 auto;
    padding:clamp(72px, 8vw, 118px) 0;
}

.publicSection--tight{
    padding-top:clamp(62px, 7vw, 92px);
    padding-bottom:clamp(62px, 7vw, 92px);
}

.publicSection--artwork{
    width:min(var(--defx-max), 100%);
    padding:0 20px;
}

.publicSectionIntro{
    max-width:820px;
    margin:0 auto clamp(34px, 5vw, 56px);
    text-align:center;
}

.publicEyebrow{
    margin-bottom:12px;
    color:var(--defx-cyan);
    font-size:13px;
    font-weight:800;
    line-height:1.3;
    letter-spacing:0.18em;
    text-transform:uppercase;
}

.publicSectionIntro h2,
.publicFinalCta h2,
.publicMobileStory h2,
.publicContactCard h2,
.publicSection--address h2{
    margin-bottom:18px;
    color:var(--defx-text);
    font-size:clamp(30px, 4.2vw, 54px);
    font-weight:900;
    line-height:1.05;
    letter-spacing:-0.035em;
}

.publicSectionIntro > p:last-child,
.publicFinalCta > div > p:last-child,
.publicMobileStory > p,
.publicContactCard > p,
.publicPageHero > p:last-child{
    color:var(--defx-muted);
    font-size:clamp(17px, 1.7vw, 20px);
    line-height:1.55;
}

.publicMetricGrid{
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:16px;
}

.publicMetricCard{
    min-height:174px;
    padding:30px;
    border:1px solid var(--defx-border);
    border-radius:16px;
    background:linear-gradient(145deg, rgba(11, 35, 55, 0.92), rgba(4, 15, 25, 0.94));
    box-shadow:0 16px 46px rgba(0, 0, 0, 0.22);
}

.publicMetricCard strong{
    display:block;
    margin-bottom:10px;
    color:var(--defx-cyan);
    font-size:clamp(25px, 3vw, 38px);
    font-weight:900;
    line-height:1.05;
    letter-spacing:-0.03em;
}

.publicMetricCard span{
    color:#d8e7f2;
    font-size:15px;
    font-weight:500;
    line-height:1.45;
}

.publicProductGrid{
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:20px;
}

.publicProductCard{
    display:flex;
    min-width:0;
    flex-direction:column;
    overflow:hidden;
    border:1px solid var(--defx-border);
    border-radius:var(--defx-radius);
    background:linear-gradient(160deg, rgba(10, 29, 46, 0.98), rgba(4, 13, 22, 0.98));
    box-shadow:0 18px 55px rgba(0, 0, 0, 0.26);
}

.publicProductMedia{
    display:flex;
    height:330px;
    align-items:flex-start;
    justify-content:center;
    overflow:hidden;
    border-bottom:1px solid var(--defx-border);
    background:#f3f5f7;
}

.publicProductMedia img{
    width:100%;
    height:100%;
    object-fit:contain;
    object-position:top center;
}

.publicProductBody{
    flex:1;
    padding:28px;
}

.publicProductBody > span{
    display:block;
    margin-bottom:16px;
    color:var(--defx-cyan);
    font-size:12px;
    font-weight:800;
    letter-spacing:0.18em;
}

.publicProductBody h3{
    margin-bottom:12px;
    font-size:23px;
    font-weight:800;
    line-height:1.2;
}

.publicProductBody p{
    margin-bottom:0;
    color:var(--defx-muted);
    font-size:15px;
    line-height:1.55;
}

.publicFinalCta{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:40px;
    width:min(var(--defx-content), calc(100% - 40px));
    margin:clamp(72px, 8vw, 118px) auto;
    padding:clamp(34px, 5vw, 58px);
    border:1px solid var(--defx-border-strong);
    border-radius:var(--defx-radius);
    background:
        radial-gradient(circle at 100% 0, rgba(9, 217, 255, 0.18), transparent 45%),
        linear-gradient(135deg, rgba(8, 30, 48, 0.98), rgba(3, 12, 21, 0.98));
    box-shadow:var(--defx-shadow);
}

.publicFinalCta > div{
    max-width:730px;
}

.publicFinalCta h2{
    margin-bottom:0;
    font-size:clamp(28px, 3.7vw, 48px);
}

.publicButtonRow{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
}

.publicButton{
    display:inline-flex;
    min-height:48px;
    align-items:center;
    justify-content:center;
    padding:0 22px;
    border:1px solid transparent;
    border-radius:999px;
    font:700 14px/1 Roboto, Arial, Helvetica, sans-serif;
    letter-spacing:0.015em;
    text-align:center;
    text-decoration:none;
    cursor:pointer;
    transition:transform 0.16s ease, box-shadow 0.16s ease, background 0.16s ease, border-color 0.16s ease;
}

.publicButton:hover{
    transform:translateY(-2px);
}

.publicButton--primary{
    border-color:var(--defx-cyan);
    background:linear-gradient(135deg, var(--defx-cyan), var(--defx-blue));
    color:#00111c !important;
    box-shadow:0 12px 30px rgba(1, 117, 254, 0.28);
}

.publicButton--primary:hover,
.publicButton--primary:focus-visible{
    box-shadow:0 16px 38px rgba(9, 217, 255, 0.3);
}

.publicButton--secondary{
    border-color:var(--defx-border-strong);
    background:rgba(2, 11, 19, 0.78);
    color:#ffffff !important;
}

.publicButton--secondary:hover,
.publicButton--secondary:focus-visible{
    border-color:var(--defx-cyan);
    background:rgba(9, 217, 255, 0.08);
}

.publicButton--full{
    width:100%;
}

.publicPageHero{
    width:min(930px, calc(100% - 40px));
    margin:0 auto;
    padding:clamp(72px, 9vw, 126px) 0 clamp(44px, 6vw, 76px);
    text-align:center;
}

.publicPageHero h1{
    margin-bottom:24px;
    color:var(--defx-text);
    font-size:clamp(42px, 7vw, 82px);
    font-weight:900;
    line-height:0.98;
    letter-spacing:-0.055em;
}

.publicPageHero h1 span,
.publicMobileStory h2 span{
    color:var(--defx-cyan);
}

.publicContactHero{
    width:min(1040px, calc(100% - 40px));
    margin:0 auto;
    padding:clamp(66px, 7vw, 96px) 0 clamp(46px, 5vw, 68px);
    text-align:center;
}

.publicContactHero > img{
    width:min(390px, 72vw);
    height:auto;
    margin:0 auto 26px;
}

.publicContactHero h1{
    margin:0 0 22px;
    color:var(--defx-header-cyan);
    font-size:clamp(29px, 3.5vw, 46px);
    font-weight:800;
    line-height:1.06;
    letter-spacing:-0.035em;
}

.publicContactHero p{
    max-width:980px;
    margin:0 auto;
    color:var(--defx-muted);
    font-size:clamp(18px, 1.8vw, 22px);
    line-height:1.5;
}

.publicWhyHero{
    padding-top:34px;
    padding-bottom:28px;
}

.publicWhyHero h1{
    margin-bottom:0;
}

.publicSection--why{
    width:min(1526px, calc(100% - 40px));
    padding-top:0;
}

.publicWhyCard{
    width:100%;
    margin:0 auto;
    padding:12px;
    overflow:hidden;
    border:1px solid var(--defx-border-strong);
    border-radius:var(--defx-radius);
    background:linear-gradient(155deg, rgba(10, 29, 46, 0.98), rgba(4, 13, 22, 0.98));
    box-shadow:var(--defx-shadow), 0 0 34px rgba(1, 117, 254, 0.12);
    line-height:0;
}

.publicWhyCard img{
    width:100%;
    max-width:1500px;
    height:auto;
    margin:0 auto;
    border-radius:10px;
}

.publicSection--pricing{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    align-items:start;
    gap:24px;
    padding-top:0;
}

.publicPriceCard{
    overflow:hidden;
    border:1px solid var(--defx-border);
    border-radius:var(--defx-radius);
    background:linear-gradient(160deg, rgba(10, 29, 46, 0.98), rgba(4, 13, 22, 0.98));
    box-shadow:var(--defx-shadow);
}

.publicPriceCard--featured{
    border-color:var(--defx-border-strong);
    box-shadow:var(--defx-shadow), 0 0 42px rgba(1, 117, 254, 0.13);
}

.publicPriceHeader{
    min-height:286px;
    padding:38px 38px 30px;
    border-bottom:1px solid var(--defx-border);
    background:radial-gradient(circle at 100% 0, rgba(9, 217, 255, 0.12), transparent 55%);
}

.publicPriceHeader h2{
    margin-bottom:24px;
    font-size:clamp(27px, 3.4vw, 39px);
    font-weight:900;
    line-height:1.08;
    letter-spacing:-0.035em;
}

.publicPrice{
    display:flex;
    align-items:flex-start;
    margin-bottom:8px;
    line-height:1;
}

.publicPriceCurrency{
    margin:8px 3px 0 0;
    color:var(--defx-cyan);
    font-size:25px;
    font-weight:900;
}

.publicPrice strong{
    color:#ffffff;
    font-size:clamp(58px, 7vw, 82px);
    font-weight:900;
    letter-spacing:-0.065em;
}

.publicPriceCadence{
    align-self:flex-end;
    margin:0 0 9px 16px;
    color:var(--defx-muted);
    font-size:12px;
    font-weight:700;
    line-height:1.35;
    letter-spacing:0.08em;
    text-transform:uppercase;
}

.publicSetupPrice{
    margin-bottom:0;
    color:var(--defx-muted);
    font-size:15px;
}

.publicSetupPrice strong{
    color:#ffffff;
}

.publicPriceBody{
    padding:34px 38px 40px;
}

.publicFeatureList,
.publicCheckList{
    padding:0;
    margin:0 0 30px;
    list-style:none;
}

.publicFeatureList li,
.publicCheckList li{
    position:relative;
    padding:0 0 14px 28px;
    color:#d6e4ee;
    font-size:15px;
    line-height:1.45;
}

.publicFeatureList li::before,
.publicCheckList li::before{
    position:absolute;
    top:1px;
    left:0;
    color:var(--defx-cyan);
    content:"✓";
    font-weight:900;
}

.publicPricePreview{
    display:flex;
    height:250px;
    align-items:flex-start;
    justify-content:center;
    overflow:hidden;
    margin-bottom:28px;
    border:1px solid rgba(255, 255, 255, 0.12);
    border-radius:12px;
    background:#ffffff;
}

.publicPricePreview img{
    width:auto;
    height:100%;
    object-fit:contain;
    object-position:top center;
}

.publicSection--contact{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:24px;
    padding-top:0;
}

.publicContactCard{
    position:relative;
    min-height:470px;
    padding:clamp(32px, 5vw, 52px);
    overflow:hidden;
    border:1px solid var(--defx-border);
    border-radius:var(--defx-radius);
    background:linear-gradient(155deg, rgba(10, 29, 46, 0.98), rgba(4, 13, 22, 0.98));
    box-shadow:var(--defx-shadow);
}

.publicContactCard--sales{
    display:flex;
    flex-direction:column;
    border-color:var(--defx-border-strong);
}

.publicContactCard--sales .publicButton{
    align-self:flex-start;
    margin-top:auto;
}

.publicContactIcon{
    display:flex;
    width:54px;
    height:54px;
    align-items:center;
    justify-content:center;
    margin-bottom:42px;
    border:1px solid var(--defx-border-strong);
    border-radius:50%;
    background:rgba(9, 217, 255, 0.08);
    color:var(--defx-cyan);
    font-size:27px;
    font-weight:900;
}

.publicContactCard h2{
    max-width:520px;
    font-size:clamp(28px, 3.5vw, 42px);
}

.publicContactCard > p:not(.publicEyebrow){
    min-height:82px;
    font-size:16px;
}

.publicContactDetails{
    display:flex;
    min-height:74px;
    flex-direction:column;
    align-items:flex-start;
    margin:24px 0 30px;
}

.publicContactDetails a{
    color:#ffffff !important;
    font-size:16px;
    font-weight:700;
    text-decoration:none;
}

.publicContactDetails a:hover,
.publicContactDetails a:focus-visible{
    color:var(--defx-cyan) !important;
}

.publicSection--address{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:50px;
    padding-top:10px;
}

.publicSection--address h2{
    margin-bottom:0;
    font-size:clamp(30px, 4vw, 46px);
}

.publicSection--address address{
    padding:28px 34px;
    border-left:2px solid var(--defx-cyan);
    color:#cedce6;
    font-size:16px;
    font-style:normal;
    line-height:1.7;
}

.publicLoginSection{
    display:grid;
    grid-template-columns:minmax(0, 0.9fr) minmax(360px, 520px);
    align-items:center;
    gap:clamp(42px, 8vw, 110px);
    width:min(var(--defx-content), calc(100% - 40px));
    min-height:calc(100vh - 250px);
    margin:0 auto;
    padding:clamp(64px, 9vw, 120px) 0;
}

.publicLoginIntro h1{
    margin-bottom:18px;
    font-size:clamp(50px, 7vw, 84px);
    font-weight:900;
    line-height:0.98;
    letter-spacing:-0.055em;
}

.publicLoginIntro > p:not(.publicEyebrow){
    max-width:520px;
    margin-bottom:24px;
    color:var(--defx-muted);
    font-size:19px;
}

.publicTextLink{
    color:var(--defx-cyan) !important;
    font-size:15px;
    font-weight:700;
    text-decoration:none;
}

.publicLoginCard{
    padding:clamp(30px, 5vw, 48px);
    border:1px solid var(--defx-border-strong);
    border-radius:var(--defx-radius);
    background:linear-gradient(155deg, rgba(10, 29, 46, 0.98), rgba(3, 12, 21, 0.99));
    box-shadow:var(--defx-shadow), 0 0 46px rgba(1, 117, 254, 0.11);
}

.publicLoginLogo{
    width:220px;
    height:auto;
    margin:0 auto 32px;
}

.publicLoginForm{
    display:block;
}

.publicLoginForm label{
    display:block;
    margin:0 0 8px;
    color:#dbe8f2;
    font-size:14px;
    font-weight:700;
}

.publicLoginForm input{
    display:block;
    width:100%;
    min-height:50px;
    margin:0 0 20px;
    padding:0 15px;
    border:1px solid rgba(122, 185, 219, 0.42);
    border-radius:8px;
    outline:none;
    background:#f8fbfd;
    color:#071522;
    font:500 16px/1.2 Roboto, Arial, Helvetica, sans-serif;
    transition:border-color 0.16s ease, box-shadow 0.16s ease;
}

.publicLoginForm input:focus{
    border-color:var(--defx-cyan);
    box-shadow:0 0 0 3px rgba(9, 217, 255, 0.2);
}

.publicFormError{
    margin:0 0 24px;
    padding:13px 15px;
    border:1px solid rgba(255, 104, 104, 0.62);
    border-radius:8px;
    background:rgba(111, 13, 13, 0.32);
    color:#ffd3d3;
    font-size:14px;
    font-weight:600;
    line-height:1.45;
}

.publicUnsubscribeSection{
    display:flex;
    width:min(620px, calc(100% - 40px));
    min-height:calc(100vh - 250px);
    align-items:center;
    justify-content:center;
    margin:0 auto;
    padding:clamp(60px, 9vw, 110px) 0;
}

.publicUnsubscribeCard{
    width:100%;
    padding:clamp(30px, 6vw, 52px);
    border:1px solid var(--defx-border-strong);
    border-radius:var(--defx-radius);
    background:linear-gradient(155deg, rgba(10, 29, 46, 0.98), rgba(3, 12, 21, 0.99));
    box-shadow:var(--defx-shadow);
}

.publicUnsubscribeCard h1{
    margin-bottom:18px;
    font-size:clamp(34px, 5vw, 52px);
    font-weight:900;
    line-height:1.02;
    letter-spacing:-0.045em;
}

.publicUnsubscribeCard > p:not(.publicEyebrow){
    color:var(--defx-muted);
    font-size:17px;
}

.publicUnsubscribeForm{
    display:block;
    margin-top:30px;
}

.publicUnsubscribeForm label{
    display:block;
    margin:0 0 8px;
    color:#dbe8f2;
    font-size:14px;
    font-weight:700;
}

.publicUnsubscribeForm input[type="text"],
.publicUnsubscribeForm input[type="email"]{
    display:block;
    width:100%;
    min-height:50px;
    margin:0 0 20px;
    padding:0 15px;
    border:1px solid rgba(122, 185, 219, 0.42);
    border-radius:8px;
    outline:none;
    background:#f8fbfd;
    color:#071522;
    font:500 16px/1.2 Roboto, Arial, Helvetica, sans-serif;
}

.publicUnsubscribeForm input:focus{
    border-color:var(--defx-cyan);
    box-shadow:0 0 0 3px rgba(9, 217, 255, 0.2);
}

.publicFooter{
    border-top:1px solid rgba(255, 255, 255, 0.08);
    background:#00050a;
}

.publicFooterInner{
    display:grid;
    grid-template-columns:1fr auto 1fr;
    align-items:center;
    gap:30px;
    width:min(var(--defx-max), calc(100% - 40px));
    min-height:110px;
    margin:0 auto;
}

.publicFooterBrand{
    color:#ffffff !important;
    font-size:20px;
    font-weight:800;
    text-decoration:none;
}

.publicFooterBrand strong{
    color:var(--defx-cyan);
}

.publicFooterLinks{
    display:flex;
    gap:24px;
}

.publicFooterLinks a{
    color:#becbd5 !important;
    font-size:13px;
    font-weight:600;
    text-decoration:none;
}

.publicFooterLinks a:hover,
.publicFooterLinks a:focus-visible{
    color:var(--defx-cyan) !important;
}

.publicFooterInner > p{
    margin:0;
    color:#81909c;
    font-size:12px;
    line-height:1.45;
    text-align:right;
}

.publicFooterInner--no-brand .publicFooterLinks{
    grid-column:2;
}

.publicFooterInner--no-brand > p{
    grid-column:3;
}

@media (max-width:960px){
    .publicHeaderInner{
        width:min(var(--defx-max), calc(100% - 28px));
    }

    .publicBrand{
        flex-basis:190px;
        width:190px;
    }

    .publicNav{
        gap:16px;
    }

    .publicProductGrid{
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }

    .publicProductCard:last-child{
        grid-column:1 / -1;
        width:calc(50% - 10px);
        justify-self:center;
    }

    .publicFinalCta{
        align-items:flex-start;
        flex-direction:column;
    }

    .publicPriceHeader,
    .publicPriceBody{
        padding-right:28px;
        padding-left:28px;
    }

    .publicLoginSection{
        grid-template-columns:1fr minmax(340px, 460px);
        gap:44px;
    }
}

@media (max-width:1100px){
    .publicSite--pricing .publicHeader{
        position:relative;
    }

    .publicSite--pricing .publicHeaderInner{
        min-height:48px;
    }

    .publicSite--pricing .publicNav{
        position:static;
        width:100%;
        padding:0 14px;
        justify-content:flex-start;
    }

    .publicPricingShell{
        padding-top:0;
    }
}

@media (max-width:760px){
    .publicHeader{
        position:relative;
    }

    .publicHeaderInner{
        flex-direction:column;
        gap:10px;
        padding:14px 0 12px;
    }

    .publicSite--home .publicHeaderInner{
        flex-direction:row;
        justify-content:flex-end;
        min-height:0;
        padding:0;
    }

    .publicSite--contact .publicHeader,
    .publicSite--why .publicHeader{
        position:relative;
    }

    .publicSite--contact .publicHeaderInner,
    .publicSite--why .publicHeaderInner{
        flex-direction:row;
        min-height:44px;
        padding:0;
    }

    .publicSite--contact .publicNav,
    .publicSite--why .publicNav{
        position:static;
        width:100%;
        padding:0 8px;
        justify-content:flex-start;
        gap:14px;
    }

    .publicSite--contact .publicNavLink,
    .publicSite--why .publicNavLink{
        min-height:auto;
        font-size:13px;
    }

    .publicSite--pricing .publicHeaderInner{
        flex-direction:row;
        min-height:44px;
        padding:0;
    }

    .publicSite--pricing .publicNav{
        padding:0 8px;
        justify-content:flex-start;
        gap:14px;
    }

    .publicSite--pricing .publicNavLink{
        min-height:auto;
        font-size:13px;
    }

    .publicSite--home .publicNav{
        top:6px;
        right:auto;
        left:8px;
        width:auto;
        justify-content:flex-end;
        gap:14px;
    }

    .publicSite--home .publicNavLink{
        min-height:auto;
        font-size:13px;
    }

    .publicHomeCopyBand{
        padding:18px 0 28px;
    }

    .publicHomeCopy{
        width:calc(100% - 24px);
    }

    .publicHomeFooter{
        min-height:46px;
        padding:0 8px;
    }

    .publicHomeFooter a{
        right:8px;
        font-size:11px;
    }

    .publicHomeFooter p{
        padding-right:70px;
        font-size:9px;
    }

    .publicBrand{
        flex-basis:auto;
        width:190px;
    }

    .publicNav{
        width:100%;
        justify-content:center;
        gap:8px 18px;
    }

    .publicNavLink{
        min-height:36px;
        font-size:13px;
    }

    .publicNavLink--cta{
        min-height:34px;
        padding:0 13px;
    }

    .publicHero{
        padding:18px 14px 0;
    }

    .publicDesktopArtwork{
        display:none;
    }

    .publicMobileStory{
        display:block;
        padding:38px 26px;
        border:1px solid var(--defx-border-strong);
        border-radius:var(--defx-radius);
        background:
            radial-gradient(circle at 92% 8%, rgba(9, 217, 255, 0.19), transparent 14rem),
            linear-gradient(145deg, rgba(8, 30, 49, 0.98), rgba(2, 10, 18, 0.99));
        box-shadow:var(--defx-shadow);
    }

    .publicMobileHero{
        min-height:610px;
        padding-top:58px;
        background:
            linear-gradient(180deg, rgba(0, 7, 13, 0.28), rgba(0, 7, 13, 0.96)),
            radial-gradient(circle at 85% 15%, rgba(1, 117, 254, 0.42), transparent 18rem),
            linear-gradient(145deg, #08233a, #020911 72%);
    }

    .publicMobileStory h2{
        margin-bottom:20px;
        font-size:clamp(40px, 13vw, 62px);
    }

    .publicMobileHero .publicButtonRow{
        margin:30px 0 32px;
    }

    .publicMobileHero .publicButton{
        width:100%;
    }

    .publicCheckList{
        display:grid;
        grid-template-columns:repeat(2, minmax(0, 1fr));
        gap:6px 12px;
        margin-bottom:0;
    }

    .publicCheckList li{
        font-size:13px;
    }

    .publicSection,
    .publicSection--artwork{
        width:calc(100% - 28px);
        padding:68px 0;
    }

    .publicSection--artwork{
        padding-top:0;
    }

    .publicMetricGrid,
    .publicSection--pricing,
    .publicSection--contact,
    .publicSection--why{
        grid-template-columns:1fr;
    }

    .publicPricingShell{
        padding:0 14px 44px;
    }

    .publicMetricCard{
        min-height:0;
    }

    .publicStatGrid,
    .publicProofStats{
        display:grid;
        grid-template-columns:repeat(2, minmax(0, 1fr));
        gap:10px;
        margin:30px 0;
    }

    .publicStatGrid > div,
    .publicProofStats > div{
        min-height:114px;
        padding:20px 12px;
        border:1px solid var(--defx-border);
        border-radius:12px;
        background:rgba(0, 7, 13, 0.52);
        text-align:center;
    }

    .publicStatGrid strong,
    .publicProofStats strong{
        display:block;
        color:var(--defx-cyan);
        font-size:29px;
        font-weight:900;
        line-height:1.05;
    }

    .publicStatGrid span,
    .publicProofStats span{
        display:block;
        margin-top:8px;
        color:#dce8f1;
        font-size:12px;
        font-weight:700;
        line-height:1.25;
        text-transform:uppercase;
    }

    .publicMobileCallout{
        padding:18px;
        border-left:2px solid var(--defx-cyan);
        background:rgba(0, 5, 10, 0.36);
        font-size:15px !important;
    }

    .publicMobileProof blockquote{
        margin:32px 0 18px;
        color:#ffffff;
        font-size:19px;
        font-style:italic;
        line-height:1.5;
    }

    .publicQuoteByline{
        margin-bottom:28px;
        color:#c8d7e3 !important;
        font-size:14px !important;
    }

    .publicProductGrid{
        grid-template-columns:1fr;
    }

    .publicProductCard:last-child{
        grid-column:auto;
        width:100%;
    }

    .publicProductMedia{
        height:300px;
    }

    .publicFinalCta{
        width:calc(100% - 28px);
        margin:0 auto 68px;
        padding:34px 26px;
    }

    .publicFinalCta .publicButtonRow,
    .publicFinalCta .publicButton{
        width:100%;
    }

    .publicPageHero{
        width:calc(100% - 28px);
        padding:66px 0 46px;
        text-align:left;
    }

    .publicContactHero{
        width:calc(100% - 28px);
        padding:28px 0 46px;
        text-align:left;
    }

    .publicContactHero > img{
        width:min(330px, 78vw);
        margin-bottom:22px;
        margin-left:auto;
        margin-right:auto;
    }

    .publicContactHero h1{
        font-size:clamp(28px, 8vw, 40px);
    }

    .publicWhyHero{
        padding:12px 0 22px;
    }

    .publicPageHero h1{
        font-size:clamp(42px, 13vw, 66px);
    }

    .publicSection--pricing,
    .publicSection--contact{
        padding-top:0;
    }

    .publicPriceHeader{
        min-height:0;
    }

    .publicContactCard{
        min-height:0;
    }

    .publicWhyCard{
        padding:6px;
    }

    .publicContactCard > p:not(.publicEyebrow){
        min-height:0;
    }

    .publicSection--address{
        align-items:flex-start;
        flex-direction:column;
        gap:28px;
        padding-top:0;
    }

    .publicSection--address address{
        width:100%;
    }

    .publicLoginSection{
        grid-template-columns:1fr;
        width:calc(100% - 28px);
        min-height:0;
        gap:38px;
        padding:62px 0 70px;
    }

    .publicLoginIntro h1{
        font-size:52px;
    }

    .publicFooterInner{
        grid-template-columns:1fr;
        justify-items:center;
        gap:18px;
        min-height:0;
        padding:34px 0;
        text-align:center;
    }

    .publicFooterLinks{
        flex-wrap:wrap;
        justify-content:center;
    }

    .publicFooterInner > p{
        text-align:center;
    }

    .publicFooterInner--no-brand .publicFooterLinks,
    .publicFooterInner--no-brand > p{
        grid-column:auto;
    }
}

@media (max-width:420px){
    .publicNav{
        gap:6px 14px;
    }

    .publicNavLink{
        font-size:12px;
    }

    .publicMobileStory{
        padding-right:22px;
        padding-left:22px;
    }

    .publicCheckList{
        grid-template-columns:1fr;
    }

    .publicPriceHeader,
    .publicPriceBody,
    .publicContactCard,
    .publicLoginCard{
        padding-right:24px;
        padding-left:24px;
    }

    .publicPrice strong{
        font-size:58px;
    }

    .publicPriceCadence{
        margin-left:10px;
        font-size:10px;
    }
}

@media (prefers-reduced-motion:reduce){
    html{
        scroll-behavior:auto;
    }

    *,
    *::before,
    *::after{
        scroll-behavior:auto !important;
        transition-duration:0.01ms !important;
        animation-duration:0.01ms !important;
        animation-iteration-count:1 !important;
    }
}
