/* Risk-level carousel (consumer page). Cards are sized so three fill the row with a sliver of the fourth. */
.risk-section{overflow:hidden}.risk-section .carousel-head h2{margin:0}.carousel-head{display:flex;align-items:flex-end;justify-content:space-between;gap:32px}.carousel-head h2{max-width:760px}.carousel-controls{display:flex;gap:10px;flex-shrink:0;padding-bottom:6px}.carousel-controls button{width:48px;height:48px;border-radius:50%;border:1px solid var(--ink);background:transparent;color:var(--ink);display:grid;place-items:center;cursor:pointer;transition:background .15s,color .15s,opacity .15s}.carousel-controls button svg{width:22px;height:22px}.carousel-controls button:hover:not(:disabled){background:var(--ink);color:var(--cream)}.carousel-controls button:disabled{opacity:.3;cursor:default}.carousel-controls button:focus-visible{outline:2px solid var(--accent-text);outline-offset:3px}
.risk-carousel{--edge:max(32px,calc((100vw - 1280px)/2));--peek:48px;--material-sepia:.2;--material-zoom:2;--card:calc((100vw - var(--edge) - 2*24px - var(--peek))/3);display:flex;gap:24px;list-style:none;margin:48px calc(-1*var(--edge)) 0;padding:0 var(--edge);overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--edge);scrollbar-width:none;-webkit-overflow-scrolling:touch}.risk-carousel::-webkit-scrollbar{display:none}.risk-carousel:focus-visible{outline:2px solid var(--accent-text);outline-offset:4px}.risk-card{flex:0 0 var(--card);scroll-snap-align:start}.risk-card__art{position:relative;overflow:hidden;border-radius:14px;height:calc(var(--card)*1.5 - 120px);container-type:inline-size;isolation:isolate}.risk-card img{display:block;width:100%;height:100%;object-fit:cover;filter:sepia(var(--material-sepia));transform:scale(var(--material-zoom));transform-origin:center}.risk-card h3{font-size:28px;line-height:1.3;margin-top:26px}.risk-card p{font-size:20px;line-height:1.55;color:var(--muted);margin-top:10px}
.risk-overlay{position:absolute;inset:0;font-family:"Clash Grotesk",sans-serif;color:var(--ink);pointer-events:none}
.risk-overlay .finding{position:absolute;width:86%;background:#fff;border-radius:1.6cqw;padding:4cqw 4.4cqw 4.4cqw;box-shadow:0 1.2cqw 3.6cqw rgba(4,13,30,.12)}.risk-overlay .finding-badge{display:inline-block;font-size:2.1cqw;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:1.1cqw 1.8cqw;line-height:1.3;margin-bottom:2.8cqw}.risk-overlay .finding--0{left:7%;top:14%}.risk-overlay .finding--2{right:-9%;top:56%;width:92%}.risk-overlay .finding--3{left:7%;top:20%;width:80%}.risk-overlay .finding--4{right:7%;bottom:12%;width:88%}.finding--0 .finding-badge{background:transparent;color:var(--ink);border:1px solid var(--ink)}.finding--2 .finding-badge{background:var(--blue);color:#fff}.finding--3 .finding-badge{background:var(--accent-text);color:#fff}.risk-overlay .finding h4{font:500 4cqw/1.25 "Clash Grotesk",sans-serif;margin:0 0 1.6cqw}.risk-overlay .finding p{font-size:3.1cqw;line-height:1.45;margin:0;color:var(--muted)}
.finding--4 .finding-badge{background:var(--ink);color:#fff}
@media(max-width:767px){.risk-carousel{--edge:24px;--card:84vw;gap:16px;margin-top:32px}.risk-card h3{font-size:24px}.risk-card p{font-size:18px}.carousel-head{flex-direction:column;align-items:flex-start;gap:20px}.carousel-controls{padding-bottom:0}}
/* Living findings (risk-findings.js). Everything below applies only once the script marks an art panel .is-live,
   which it never does under prefers-reduced-motion, so the static first finding above stays the no-JS/reduced view. */
.risk-card__art.is-live{--lat:6.25cqw;--dot:max(2px,.7cqw);--mark:max(8px,2.2cqw)}
.risk-card__art.is-live img{animation:material-drift 28s ease-in-out infinite alternate;animation-delay:var(--drift-delay,0s);will-change:transform}
.risk-card__art.is-live::before{content:"";position:absolute;inset:-40%;z-index:1;pointer-events:none;background:radial-gradient(closest-side,rgba(255,248,236,.34),rgba(255,248,236,0) 70%) 30% 30%/70% 55% no-repeat;mix-blend-mode:soft-light;animation:material-sheen 19s ease-in-out infinite alternate;animation-delay:var(--drift-delay,0s);will-change:transform}
.risk-card__art.is-paused img,.risk-card__art.is-paused::before{animation-play-state:paused}
@keyframes material-drift{from{transform:scale(var(--material-zoom)) translate3d(-2.4%,1.6%,0)}to{transform:scale(calc(var(--material-zoom)*1.05)) translate3d(2.4%,-1.8%,0)}}
@keyframes material-sheen{from{transform:translate3d(-12%,-8%,0) rotate(-8deg)}to{transform:translate3d(14%,12%,0) rotate(6deg)}}
.risk-card__art.is-live .risk-overlay{z-index:2;background:conic-gradient(at var(--dot) var(--dot),transparent 75%,rgba(172,75,28,.75) 0) calc(var(--lat)*2.5 - var(--dot)/2) calc(var(--lat)*2.5 - var(--dot)/2)/calc(var(--lat)*4) calc(var(--lat)*4),conic-gradient(at var(--dot) var(--dot),transparent 75%,var(--lattice-ink,rgba(245,242,236,.5)) 0) calc(var(--lat)/2 - var(--dot)/2) calc(var(--lat)/2 - var(--dot)/2)/var(--lat) var(--lat)}
.risk-card:nth-child(1) .risk-card__art{--lattice-ink:rgba(4,13,30,.2)}.risk-card:nth-child(3) .risk-card__art{--lattice-ink:rgba(250,240,228,.42)}
.risk-card__art.is-live .risk-overlay .finding{left:auto;right:auto;top:auto;bottom:auto;width:74%;visibility:hidden;transition:clip-path .38s cubic-bezier(.2,.8,.2,1)}
.risk-card__art.is-live .risk-overlay .finding[data-phase]{visibility:visible}
.risk-card__art.is-live .finding p{opacity:0;transition:opacity .3s ease}
.risk-card__art.is-live .finding[data-text] p{opacity:1}
.risk-card__art.is-live .t-off{opacity:0}
.risk-card__art.is-live .typing .t-on::after{content:"";display:inline-block;width:.45em;height:.95em;margin-right:-.45em;vertical-align:-.12em;background:currentColor;opacity:.7}
.finding-marker{position:absolute;z-index:3;width:var(--mark);height:var(--mark);margin:calc(var(--mark)/-2) 0 0 calc(var(--mark)/-2);background:var(--ink);box-shadow:0 0 0 1.5px rgba(255,255,255,.92);transform:scale(0);transition:transform .22s cubic-bezier(.2,.8,.2,1)}
.finding-marker[data-on]{transform:scale(1)}
.finding-marker[data-tone="0"]{background:#fff;box-shadow:inset 0 0 0 1px var(--ink)}.finding-marker[data-tone="2"]{background:var(--blue)}.finding-marker[data-tone="3"]{background:var(--accent-text)}

/* Moving material (risk-findings.js): only shown once the panel is live and the clip actually plays; the still stays underneath. */
/* The clip is the centre 60% of the frame (creative/risk-water-kling), so 2 x .6 = 1.2 matches the still at --material-zoom:2. */
.risk-card__video{--material-zoom:1.2;position:absolute;inset:0;z-index:0;display:none;width:100%;height:100%;object-fit:cover;filter:sepia(var(--material-sepia));transform:scale(var(--material-zoom));transform-origin:center;opacity:0;transition:opacity .8s ease;pointer-events:none}
.risk-card__art.is-live .risk-card__video{display:block;animation:material-drift 28s ease-in-out infinite alternate;animation-delay:var(--drift-delay,0s);will-change:transform}
.risk-card__art.is-paused .risk-card__video{animation-play-state:paused}
.risk-card__video.is-playing{opacity:1}
