.oreilly-campus-page{--cl-navy:#111638;--cl-purple:#2f197d;--cl-gold:#f0c86b;--cl-muted:#606174;background:#fff;color:#17182b;overflow:clip}
.oreilly-campus-page .container{width:min(1290px,calc(100% - 64px));max-width:none;padding-inline:0}
.oreilly-campus-gallery{padding:clamp(72px,8vw,120px) 0 clamp(84px,10vw,150px)}
.oreilly-campus-gallery__heading{max-width:820px;margin-bottom:clamp(42px,5vw,72px)}
.oreilly-campus-gallery__breadcrumb{display:flex;align-items:center;gap:10px;margin-bottom:34px;color:var(--cl-muted);font-size:14px}
.oreilly-campus-gallery__breadcrumb a{color:var(--cl-purple)}
.oreilly-campus__eyebrow{margin:0 0 18px;color:var(--cl-purple);font-size:13px;font-weight:700;letter-spacing:.14em;line-height:1.3;text-transform:uppercase}
.oreilly-campus-gallery__heading h2{margin:0;color:var(--cl-navy);font-size:clamp(58px,8vw,110px);font-weight:500;letter-spacing:-.055em;line-height:.9}
.oreilly-campus-gallery__heading>p:last-child{max-width:650px;margin:28px 0 0;color:var(--cl-muted);font-size:18px;line-height:1.7}
.oreilly-campus-gallery__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,1.5vw,22px)}
.oreilly-campus-gallery__item{position:relative;display:block;width:100%;min-width:0;aspect-ratio:4/3;padding:0;border:0;border-radius:20px;background:#eeeaf5;cursor:zoom-in;overflow:hidden;isolation:isolate}
.oreilly-campus-gallery__item[hidden]{display:none!important}
.oreilly-campus-gallery__item img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;transition:transform .55s cubic-bezier(.2,.7,.2,1),filter .35s ease}
.oreilly-campus-gallery__more{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:16px;margin-top:clamp(32px,4vw,56px)}
.oreilly-campus-gallery__more p{margin:0;color:var(--cl-muted);font-size:14px}
.oreilly-campus-gallery__more button{display:inline-flex;width:fit-content;min-width:230px;max-width:100%;min-height:54px;align-self:center;flex:none;align-items:center;justify-content:center;gap:12px;padding:14px 28px;border:1px solid var(--cl-purple);border-radius:8px;background:var(--cl-purple);color:#fff;font-weight:700;cursor:pointer;transition:background-color .2s,border-color .2s,transform .2s}
.oreilly-campus-gallery__more button[hidden]{display:none!important}
.oreilly-campus-gallery__more button:hover{border-color:var(--cl-navy);background:var(--cl-navy);color:#fff;transform:translateY(-2px)}
.oreilly-campus-gallery__more button:focus-visible{outline:3px solid var(--cl-gold);outline-offset:3px}
.oreilly-campus-gallery__item::after{position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(13,16,48,.36));content:"";opacity:0;transition:opacity .35s ease}
.oreilly-campus-gallery__open{position:absolute;right:18px;bottom:18px;z-index:1;display:grid;width:44px;height:44px;place-items:center;border:1px solid rgba(255,255,255,.5);border-radius:50%;background:rgba(17,22,56,.72);color:#fff;opacity:0;transform:translateY(6px);transition:opacity .3s ease,transform .3s ease;backdrop-filter:blur(8px)}
.oreilly-campus-gallery__item:hover img{transform:scale(1.035);filter:saturate(1.04)}
.oreilly-campus-gallery__item:hover::after,.oreilly-campus-gallery__item:hover .oreilly-campus-gallery__open,.oreilly-campus-gallery__item:focus-visible::after,.oreilly-campus-gallery__item:focus-visible .oreilly-campus-gallery__open{opacity:1}
.oreilly-campus-gallery__item:hover .oreilly-campus-gallery__open,.oreilly-campus-gallery__item:focus-visible .oreilly-campus-gallery__open{transform:none}
.oreilly-campus-gallery__item:focus-visible{outline:3px solid var(--cl-gold);outline-offset:4px}
.oreilly-campus-lightbox[hidden]{display:none}
.oreilly-campus-lightbox{position:fixed;inset:0;z-index:99999;display:grid;grid-template-columns:84px minmax(0,1fr) 84px;align-items:center;padding:clamp(24px,4vw,64px);background:rgba(6,8,24,.94);opacity:0;transition:opacity .2s ease;backdrop-filter:blur(8px)}
.oreilly-campus-lightbox.is-open{opacity:1}
.oreilly-campus-lightbox__figure{display:flex;min-width:0;max-width:min(1200px,100%);max-height:calc(100vh - 80px);flex-direction:column;justify-self:center;margin:0}
.oreilly-campus-lightbox__figure img{display:block;max-width:100%;max-height:calc(100vh - 120px);border-radius:16px;object-fit:contain;box-shadow:0 28px 80px rgba(0,0,0,.36)}
.oreilly-campus-lightbox__figure figcaption{min-height:24px;margin-top:14px;color:rgba(255,255,255,.76);font-size:13px;text-align:center}
.oreilly-campus-lightbox button{display:grid;place-items:center;border:1px solid rgba(255,255,255,.3);border-radius:50%;background:rgba(255,255,255,.08);color:#fff;transition:background .2s ease,border-color .2s ease}
.oreilly-campus-lightbox button:hover{border-color:#fff;background:rgba(255,255,255,.18)}
.oreilly-campus-lightbox button:focus-visible{outline:3px solid var(--cl-gold);outline-offset:4px}
.oreilly-campus-lightbox__close{position:absolute;top:24px;right:24px;width:50px;height:50px;font-size:22px}
.oreilly-campus-lightbox__nav{width:54px;height:54px;justify-self:center;font-size:19px}
body.oreilly-lightbox-open{overflow:hidden}
@media(max-width:991px){.oreilly-campus-page .container{width:calc(100% - 48px)}.oreilly-campus-gallery__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.oreilly-campus-lightbox{grid-template-columns:62px minmax(0,1fr) 62px;padding:24px}}
@media(max-width:767px){.oreilly-campus-page .container{width:calc(100% - 32px)}.oreilly-campus-gallery{padding:58px 0 80px}.oreilly-campus-gallery__breadcrumb{margin-bottom:25px}.oreilly-campus-gallery__heading>p:last-child{font-size:16px}.oreilly-campus-gallery__item{border-radius:15px}.oreilly-campus-gallery__open{right:13px;bottom:13px;opacity:1;transform:none}.oreilly-campus-lightbox{display:block;padding:72px 16px 90px}.oreilly-campus-lightbox__figure{height:100%;align-items:center;justify-content:center}.oreilly-campus-lightbox__figure img{max-height:calc(100vh - 180px)}.oreilly-campus-lightbox__nav{position:absolute;bottom:22px}.oreilly-campus-lightbox__nav--previous{left:calc(50% - 66px)}.oreilly-campus-lightbox__nav--next{right:calc(50% - 66px)}.oreilly-campus-lightbox__close{top:16px;right:16px}}
@media(max-width:560px){.oreilly-campus-gallery__grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.oreilly-campus-gallery__item img,.oreilly-campus-gallery__item::after,.oreilly-campus-gallery__open,.oreilly-campus-lightbox{transition-duration:.01ms!important}}
