/* Stack-spread interaction adapted from the supplied Hyperiux Vault example. */
.spread{background:#05070d;border-top:1px solid var(--line);position:relative}
.spread-stage{position:relative;padding:64px 24px;overflow:hidden;isolation:isolate}
.spread-label{font-size:10px;letter-spacing:.17em;text-transform:uppercase;color:var(--muted);text-align:center}
.spread-copy{text-align:center;margin:36px auto;max-width:520px}
.spread-copy h2{font-size:clamp(36px,4.5vw,64px);font-weight:500;line-height:1.05}
.spread-copy h2 span{color:var(--accent)}
.spread-copy p{max-width:38ch;margin:20px auto 0;font-size:15px}
.spread-gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;max-width:1120px;margin:auto}
.spread-card{margin:0;min-width:0;aspect-ratio:4/5;border-radius:12px;overflow:hidden;background:#101b2d;box-shadow:0 12px 45px #0005}
.spread-card img{display:block;width:100%;height:100%;object-fit:cover}
.spread-hint{display:none}
.spread.is-animated{height:300svh}
.is-animated .spread-stage{position:sticky;top:0;height:100svh;padding:0}
.is-animated .spread-label{position:absolute;top:28px;left:20px;right:20px;z-index:20}
.is-animated .spread-copy{position:absolute;top:50%;left:50%;width:40%;margin:0;transform:translate(-50%,-50%) scale(var(--copy-scale,.85));opacity:var(--copy-opacity,0);z-index:1}
.is-animated .spread-gallery{display:block;position:absolute;inset:0;max-width:none;margin:0;pointer-events:none;z-index:2}
.is-animated .spread-card{position:absolute;left:50%;top:50%;width:var(--card-w);height:var(--card-h);aspect-ratio:auto;will-change:transform;transform:translate(-50%,-50%)}
.is-animated .spread-hint{display:block;position:absolute;bottom:24px;left:0;right:0;text-align:center;font-size:10px;text-transform:uppercase;letter-spacing:.2em;color:var(--muted);opacity:var(--hint-opacity,1)}
@media(max-width:700px){.spread-gallery{grid-template-columns:repeat(2,1fr);gap:12px}.spread.is-animated{height:240svh}.is-animated .spread-copy{width:88%;max-width:380px}.is-animated .spread-copy h2{font-size:36px}.is-animated .spread-copy p{font-size:13px;margin-top:12px;max-width:32ch}.is-animated .spread-label{top:18px;font-size:9px}.spread-card{border-radius:10px}}
@media(prefers-reduced-motion:reduce){.spread-card{will-change:auto}}

/* Project cards remain clickable inside the decorative animation layer. */
.spread-project{display:block;pointer-events:auto;cursor:pointer;text-decoration:none}
.spread-project img{object-fit:contain;background:#05070d}
.spread-project:hover{box-shadow:0 0 0 2px var(--accent),0 16px 50px #0006}
.spread-project:focus-visible{outline:3px solid var(--accent);outline-offset:5px}

/* Original restaurant photograph and brand, composed for the portfolio card. */
.spread-ilbacio{position:relative;background:#12110f}
.spread-ilbacio .ilbacio-photo{object-fit:cover;object-position:50% 46%;width:100%;height:100%;background:transparent}
.spread-ilbacio::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,11,9,.94),rgba(12,11,9,.74) 44%,rgba(12,11,9,.08) 100%);pointer-events:none}
.ilbacio-brand{position:absolute;inset:8% 6%;z-index:1;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;color:#fff}
.spread-ilbacio .ilbacio-brand img{width:27%;height:30%;object-fit:contain;background:transparent;margin-bottom:5%}
.ilbacio-brand strong{font-size:clamp(14px,1.8vw,28px);line-height:1.06;letter-spacing:.04em}
.ilbacio-brand small{font-size:clamp(8px,.65vw,11px);color:#e7c994;margin-top:6%;line-height:1.3}
@media(max-width:700px){.ilbacio-brand{inset:7%}.spread-ilbacio .ilbacio-brand img{display:none}.ilbacio-brand strong{font-size:14px}.ilbacio-brand small{font-size:8px}}

.spread-virtualsky{aspect-ratio:1600/844}
.spread-virtualsky img{object-fit:cover}

/* Keep full images visible without empty bars, including the static reduced-motion grid. */
.spread-project:not(.spread-ilbacio) > img{object-fit:cover}
.spread:not(.is-animated) .spread-project:not(.spread-ilbacio){aspect-ratio:auto;align-self:center}
.spread:not(.is-animated) .spread-project:not(.spread-ilbacio) > img{height:auto}

/* Contact invitation in the former basketball card. */
.spread-create{display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;padding:20px;color:#fff;background:linear-gradient(145deg,#163c72,#07162c);border:1px solid #489eff80;text-align:left}
.spread-create strong{font-size:clamp(16px,2vw,28px);line-height:1.15;letter-spacing:-.025em}
.spread-create-plus{font-size:30px;font-weight:400;line-height:1;color:#8fc6ff}
.spread-create-arrow{align-self:flex-end;font-size:26px;line-height:1;color:#8fc6ff}
.spread:not(.is-animated) .spread-create{aspect-ratio:4/5;align-self:stretch}
@media(max-width:700px){.spread-create{padding:12px;justify-content:center;gap:6px}.spread-create strong{font-size:16px}.spread-create-plus{display:none}.spread-create-arrow{position:absolute;right:10px;bottom:8px;font-size:20px}}
