/* Component adapter: all palette values are owned by custom.css. */
.ssd-hero{
    --ssd-bg:var(--bg-secondary-light);
    --ssd-surface:var(--bg-primary-light);
    --ssd-ink:var(--text-primary-light);
    --ssd-muted:var(--text-secondary-light);
    --ssd-border:var(--border-light);
    --ssd-accent:var(--primary-blue);
    position:relative;
    isolation:isolate;
    padding:128px max(24px,calc((100vw - 1344px)/2)) 0;
    background:var(--ssd-bg);
    color:var(--ssd-ink);
    overflow:clip;
    scroll-margin-top:80px
}
body.dark-mode .ssd-hero{
    --ssd-bg:var(--bg-secondary-dark);
    --ssd-surface:var(--bg-primary-dark);
    --ssd-ink:var(--text-primary-dark);
    --ssd-muted:var(--text-secondary-dark);
    --ssd-border:var(--border-dark);
    --ssd-accent:var(--primary-blue-light)
}
.ssd-hero *{
    box-sizing:border-box
}
.ssd-hero__layout{
    display:grid;
    grid-template-columns:1fr 1.12fr;
    gap:32px;
    align-items:center;
    min-height:clamp(520px,calc(100svh - 208px),740px);
    padding-bottom:42px
}
.ssd-hero__copy{
    position:relative;
    z-index:2;
    padding:10px 0 30px
}
.ssd-hero__eyebrow{
    display:flex;
    align-items:center;
    gap:9px;
    flex-wrap:wrap;
    font-size:10px;
    font-weight:600;
    letter-spacing:.07em;
    color:var(--ssd-muted);
    margin:0 0 30px
}
.ssd-hero__eyebrow>span:first-child{
    width:6px;
    height:6px;
    background:var(--ssd-accent);
    border-radius:50%
}
.ssd-hero__slash{
    color:var(--silver-gray);
    margin:0 3px
}
.ssd-hero h1{
    font-family:'Poppins','Inter',sans-serif;
    font-size:clamp(42px,4.55vw,68px);
    font-weight:500;
    line-height:1.11;
    letter-spacing:-.06em;
    margin:0;
    max-width:620px;
    text-wrap:balance
}
.ssd-hero h1 em{
    font-style:normal;
    color:var(--ssd-accent)
}
.ssd-hero__intro{
    max-width:440px;
    font-size:16px;
    line-height:1.8;
    margin:27px 0 30px;
    color:var(--ssd-muted);
    text-wrap:pretty
}
.ssd-hero__actions{
    display:flex;
    align-items:center;
    gap:25px;
    flex-wrap:wrap
}
.ssd-hero__primary,.ssd-hero__secondary{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:22px;
    min-height:50px;
    font-size:12px;
    font-weight:600;
    text-decoration:none;
    cursor:pointer;
    transition:transform .2s,box-shadow .2s,background .2s
}
.ssd-hero__primary{
    background:var(--primary-blue);
    color:var(--bg-primary-light);
    border:1px solid var(--primary-blue);
    padding:0 22px;
    border-radius:6px;
    box-shadow:0 4px 10px color-mix(in srgb,var(--primary-blue) 16%,transparent)
}
.ssd-hero__primary svg{
    width:18px;
    height:18px
}
.ssd-hero__primary:hover{
    background:var(--primary-blue-dark);
    transform:translateY(-2px);
    box-shadow:0 8px 22px color-mix(in srgb,var(--primary-blue) 24%,transparent)
}
.ssd-hero__secondary{
    color:var(--ssd-ink);
    gap:12px;
    border-bottom:1px solid var(--ssd-border)
}
.ssd-hero__secondary span{
    font-size:20px;
    color:var(--ssd-accent);
    transition:transform .2s
}
.ssd-hero__secondary:hover span{
    transform:translate(2px,-2px)
}
.ssd-hero__primary:active,.ssd-hero__secondary:active{
    transform:translateY(1px)
}
.ssd-hero a:focus-visible,.ssd-hero summary:focus-visible{
    outline:3px solid var(--ssd-accent);
    outline-offset:5px
}
.ssd-hero__foundation{
    margin-top:42px;
    display:flex;
    align-items:center;
    gap:22px;
    color:var(--ssd-muted)
}
.ssd-hero__foundation>span{
    font-size:10px;
    line-height:1.6;
    max-width:90px
}
.ssd-hero__foundation p{
    display:flex;
    align-items:center;
    gap:18px;
    font-size:13px;
    font-weight:500;
    letter-spacing:-.02em
}
.ssd-hero__foundation b{
    font-weight:400;
    color:var(--silver-gray)
}
.ssd-hero__visual{
    position:relative;
    min-width:0;
    align-self:center
}
.ssd-hero__visual-heading,.ssd-hero__visual-footer{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:14px;
    font-size:9px;
    color:var(--ssd-muted)
}
.ssd-hero__visual-heading{
    padding:14px 8px;
    border-top:1px solid var(--ssd-border);
    text-transform:uppercase;
    letter-spacing:.13em
}
.ssd-hero__visual-heading>span:last-child{
    color:var(--ssd-accent);
    font-size:17px
}
.ssd-hero__network{
    position:relative;
    height:clamp(410px,38vw,540px);
    background-image:radial-gradient(circle,color-mix(in srgb,var(--silver-gray) 27%,transparent) .7px,transparent .8px);
    background-size:22px 22px
}
.ssd-hero__structure,.ssd-hero__canvas{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    pointer-events:none;
    color:var(--silver-gray)
}
.ssd-hero__fallback-edges{
    opacity:.48
}
.ssd-hero__network[data-canvas-ready] .ssd-hero__fallback-edges{
    opacity:0
}
.ssd-hero__nucleus{
    position:absolute;
    left:50%;
    top:47%;
    width:112px;
    transform:translate(-50%,-50%);
    color:var(--ssd-accent);
    text-align:center;
    pointer-events:none
}
.ssd-hero__nucleus>svg{
    width:112px;
    height:112px;
    filter:drop-shadow(0 10px 14px color-mix(in srgb,var(--ssd-accent) 12%,transparent))
}
.ssd-hero__nucleus-frame{
    fill:var(--ssd-surface);
    stroke:currentColor;
    stroke-opacity:.3
}
.ssd-hero__nucleus>span{
    position:absolute;
    top:120px;
    left:-20px;
    right:-20px;
    font-size:9px;
    letter-spacing:.12em;
    font-weight:600;
    color:var(--ssd-ink)
}
.ssd-hero__nucleus>span>span{
    display:block;
    margin-top:5px;
    font-size:7px;
    letter-spacing:.16em;
    font-weight:400;
    color:var(--ssd-muted)
}
.ssd-hero__node{
    display:contents
}
.ssd-hero__node summary{
    --dx:0px;
    --dy:0px;
    position:absolute;
    left:var(--x);
    top:var(--y);
    transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy)));
    width:150px;
    min-height:56px;
    display:flex;
    align-items:center;
    gap:8px;
    padding:10px 11px;
    background:var(--ssd-surface);
    border:1px solid var(--ssd-border);
    border-radius:7px;
    box-shadow:0 4px 14px color-mix(in srgb,var(--silver-gray-dark) 7%,transparent);
    font-size:10px;
    font-weight:500;
    list-style:none;
    cursor:pointer;
    z-index:2;
    transition:border-color .2s,background .2s,box-shadow .2s;
    user-select:none
}
.ssd-hero__node summary::-webkit-details-marker{
    display:none
}
.ssd-hero__node-icon{
    font-family:'Inter',sans-serif;
    font-size:17px;
    font-weight:400;
    color:var(--ssd-accent);
    flex-shrink:0
}
.ssd-hero__node-plus{
    margin-left:auto;
    color:var(--ssd-muted);
    font-size:12px
}
.ssd-hero__node summary:hover,.ssd-hero__node[open] summary,.ssd-hero__node summary[data-near]{
    border-color:color-mix(in srgb,var(--ssd-accent) 65%,var(--ssd-border));
    box-shadow:0 8px 24px color-mix(in srgb,var(--ssd-accent) 12%,transparent)
}
.ssd-hero__node summary:active{
    background:var(--ssd-bg)
}
.ssd-hero__node[open] .ssd-hero__node-plus{
    transform:rotate(45deg)
}
.ssd-hero__node p{
    position:absolute;
    bottom:0;
    left:10px;
    right:10px;
    min-height:62px;
    margin:0;
    padding:10px 13px;
    border-left:2px solid var(--ssd-accent);
    background:var(--ssd-bg);
    font-size:11px;
    line-height:1.6;
    color:var(--ssd-muted);
    z-index:3
}
.ssd-hero__node p strong{
    display:block;
    color:var(--ssd-ink);
    font-weight:600;
    font-size:11px;
    margin-bottom:2px
}
.ssd-hero__network-hint{
    position:absolute;
    bottom:13px;
    left:0;
    right:0;
    text-align:center;
    font-size:10px;
    color:var(--ssd-muted);
    margin:0
}
.ssd-hero__network-hint span{
    color:var(--ssd-accent);
    margin-right:5px
}
.ssd-hero__network:has(details[open]) .ssd-hero__network-hint{
    visibility:hidden
}
.ssd-hero__visual-footer{
    border-top:1px solid var(--ssd-border);
    padding:16px 8px
}
.ssd-hero__visual-footer>span:first-child{
    display:flex;
    align-items:center;
    gap:7px
}
.ssd-hero__visual-footer i{
    width:5px;
    height:5px;
    background:var(--ssd-accent);
    border-radius:50%
}
.ssd-hero__baseline{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    padding:22px 0;
    border-top:1px solid var(--ssd-border);
    color:var(--ssd-muted);
    font-size:10px
}
.ssd-hero__baseline a{
    display:inline-flex;
    align-items:center;
    gap:16px;
    min-height:32px;
    color:var(--ssd-ink)
}
.ssd-hero__baseline a:hover{
    color:var(--ssd-accent)
}
.ssd-hero__baseline a span{
    color:var(--ssd-accent)
}
@keyframes ssd-hero-enter{
    from{
        opacity:0;
        transform:translateY(12px)
    }
    to{
        opacity:1;
        transform:translateY(0)
    }
}
@media(prefers-reduced-motion:no-preference){
    .ssd-hero__eyebrow{
        animation:ssd-hero-enter .45s .05s both
    }
    .ssd-hero h1{
        animation:ssd-hero-enter .6s .15s both
    }
    .ssd-hero__intro{
        animation:ssd-hero-enter .6s .3s both
    }
    .ssd-hero__actions{
        animation:ssd-hero-enter .6s .45s both
    }
    .ssd-hero__visual{
        animation:ssd-hero-enter .9s .3s both
    }
}
@media(min-width:1600px){
    .ssd-hero__layout{
        gap:60px
    }
}
@media(max-width:1100px) and (min-width:768px){
    .ssd-hero{
        padding-left:28px;
        padding-right:28px
    }
    .ssd-hero__layout{
        gap:18px;
        grid-template-columns:1fr 1fr
    }
    .ssd-hero h1{
        font-size:clamp(38px,4.8vw,52px)
    }
    .ssd-hero__node summary{
        width:128px;
        padding:8px;
        font-size:9px;
        gap:6px
    }
    .ssd-hero__node-icon{
        font-size:15px
    }
    .ssd-hero__network{
        height:420px
    }
    .ssd-hero__actions{
        gap:15px
    }
    .ssd-hero__primary{
        padding:0 16px;
        gap:13px
    }
    .ssd-hero__visual-footer{
        font-size:8px
    }
    .ssd-hero__foundation{
        gap:16px
    }
}
@media(max-width:900px) and (min-width:768px){
    .ssd-hero__layout{
        grid-template-columns:1fr 1.05fr
    }
    .ssd-hero h1{
        font-size:39px
    }
    .ssd-hero__eyebrow{
        font-size:9px;
        gap:5px
    }
    .ssd-hero__intro{
        font-size:14px
    }
    .ssd-hero__actions{
        align-items:flex-start;
        flex-direction:column;
        gap:6px
    }
    .ssd-hero__foundation{
        margin-top:24px
    }
    .ssd-hero__node summary{
        width:112px;
        font-size:8px;
        min-height:51px
    }
    .ssd-hero__node-plus{
        display:none
    }
    .ssd-hero__nucleus,.ssd-hero__nucleus>svg{
        width:88px;
        height:88px
    }
    .ssd-hero__nucleus>span{
        top:96px;
        font-size:8px
    }
    .ssd-hero__visual-heading{
        font-size:8px;
        letter-spacing:.06em
    }
}
@media(max-width:767px){
    .ssd-hero{
        padding:112px 24px 0
    }
    .ssd-hero__layout{
        grid-template-columns:1fr;
        gap:22px;
        min-height:auto;
        padding-bottom:22px
    }
    .ssd-hero__copy{
        padding:0
    }
    .ssd-hero__eyebrow{
        font-size:9px;
        gap:6px;
        margin-bottom:25px
    }
    .ssd-hero h1{
        font-size:clamp(36px,8.8vw,58px);
        max-width:560px;
        letter-spacing:-.055em
    }
    .ssd-hero__intro{
        font-size:14px;
        line-height:1.8;
        max-width:460px;
        margin:22px 0 25px
    }
    .ssd-hero__actions{
        gap:22px
    }
    .ssd-hero__primary,.ssd-hero__secondary{
        font-size:11px;
        gap:13px
    }
    .ssd-hero__primary{
        padding:0 16px
    }
    .ssd-hero__foundation{
        margin:28px 0 10px;
        gap:20px
    }
    .ssd-hero__visual{
        width:100%;
        max-width:560px;
        margin:auto
    }
    .ssd-hero__network{
        height:370px
    }
    .ssd-hero__node summary{
        width:115px;
        min-height:52px;
        padding:8px;
        font-size:9px;
        gap:6px
    }
    .ssd-hero__node-plus{
        display:none
    }
    .ssd-hero__nucleus,.ssd-hero__nucleus>svg{
        width:84px;
        height:84px
    }
    .ssd-hero__nucleus>span{
        top:91px;
        font-size:8px
    }
    .ssd-hero__nucleus>span>span{
        font-size:6px
    }
    .ssd-hero__visual-heading{
        font-size:8px;
        letter-spacing:.1em
    }
    .ssd-hero__visual-footer{
        font-size:8px;
        padding-left:0;
        padding-right:0
    }
    .ssd-hero__baseline{
        font-size:9px;
        padding:15px 0;
        align-items:flex-start;
        gap:12px
    }
    .ssd-hero__baseline>span{
        max-width:130px;
        line-height:1.7
    }
    .ssd-hero__baseline a{
        gap:8px;
        min-height:32px
    }
    .ssd-hero__node p{
        font-size:10px;
        min-height:68px;
        left:0;
        right:0
    }
    .ssd-hero__network-hint{
        font-size:9px
    }
}
@media(max-width:360px){
    .ssd-hero{
        padding-left:18px;
        padding-right:18px
    }
    .ssd-hero__eyebrow{
        font-size:8px
    }
    .ssd-hero__actions{
        gap:14px
    }
    .ssd-hero__primary,.ssd-hero__secondary{
        font-size:10px
    }
    .ssd-hero__node summary{
        width:101px;
        font-size:8px
    }
    .ssd-hero__node-icon{
        font-size:14px
    }
    .ssd-hero__visual-footer{
        font-size:7px
    }
}
@media(prefers-reduced-motion:reduce){
    .ssd-hero *{
        animation:none!important;
        transition:none!important
    }
    .ssd-hero__node summary{
        --dx:0px!important;
        --dy:0px!important
    }
}
@media(forced-colors:active){
    .ssd-hero__node summary,.ssd-hero__primary{
        border:1px solid ButtonText
    }
    .ssd-hero__structure{
        color:CanvasText
    }
    .ssd-hero__canvas{
        display:none
    }
    .ssd-hero__network[data-canvas-ready] .ssd-hero__fallback-edges{
        opacity:1
    }
}


/* Independent left-column ripple layer; the canvas bounds end before the network. */
.ssd-hero__copy { isolation: isolate; }
.ssd-hero__ripples {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
    pointer-events: none;
    -webkit-mask-image: radial-gradient(ellipse at center, #000 55%, transparent 100%);
    mask-image: radial-gradient(ellipse at center, #000 55%, transparent 100%);
}
@media (prefers-reduced-motion: reduce), (hover: none), (pointer: coarse), (forced-colors: active) {
    .ssd-hero__ripples { display: none; }
}
