.pass-wall{position:relative;isolation:isolate;overflow:hidden;margin-top:24px;padding:78px clamp(16px,4vw,42px) 45px;border:8px solid #60646b;border-radius:5px;background:radial-gradient(ellipse 17% 40% at 12% 5%,#e7b36b59,transparent 100%),radial-gradient(ellipse 20% 45% at 39% 4%,#e7b36b59,transparent 100%),radial-gradient(ellipse 18% 42% at 68% 5%,#e7b36b59,transparent 100%),radial-gradient(ellipse 18% 45% at 92% 5%,#e7b36b59,transparent 100%),#141920;box-shadow:0 22px 40px #172a2c3b,inset 0 0 0 2px #272d31,inset 0 14px 42px #070c14}
.pass-wall:before{content:'';position:absolute;top:0;left:0;right:0;height:29px;background:radial-gradient(circle at 12% 10px,#fff2d2 0 3px,#ffc670 4px 7px,transparent 13px),radial-gradient(circle at 39% 10px,#fff2d2 0 3px,#ffc670 4px 7px,transparent 13px),radial-gradient(circle at 68% 10px,#fff2d2 0 3px,#ffc670 4px 7px,transparent 13px),radial-gradient(circle at 92% 10px,#fff2d2 0 3px,#ffc670 4px 7px,transparent 13px),linear-gradient(#45484a,#8a8e8d 45%,#373d40);box-shadow:0 8px 20px #ffc87525;z-index:1}
.pass-wall-title{position:relative;z-index:1;margin:0 0 24px;text-align:center;color:#ffe2a3;font:800 clamp(16px,2vw,23px)/1.25 Arial,sans-serif;letter-spacing:.15em;text-transform:uppercase;text-shadow:0 1px 10px #ffc76b77}
.pass-wall .photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:25px 21px;align-items:start;padding:3px 4px 22px}
.pass-wall .photo-card{position:relative;display:block;margin:0;padding:9px 9px 25px;background:#faf8f2;box-shadow:2px 9px 16px #000a;transform:rotate(var(--tilt,-2deg)) translateY(var(--drop,0));transition:transform .2s ease,box-shadow .2s ease}
.pass-wall .photo-card:after{content:'';position:absolute;z-index:2;top:-5px;left:calc(50% - 6px);width:12px;height:12px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#ffffff,#c9c4b7 40%,#5f6469 72%);box-shadow:0 2px 5px #000a}
.pass-wall .photo-card:nth-child(4n+1){--tilt:-4deg;--drop:10px}.pass-wall .photo-card:nth-child(4n+2){--tilt:3deg;--drop:0px}.pass-wall .photo-card:nth-child(4n+3){--tilt:-2deg;--drop:17px}.pass-wall .photo-card:nth-child(4n){--tilt:4deg;--drop:6px}
.pass-wall .photo-card:hover,.pass-wall .photo-card:focus-within{z-index:3;transform:rotate(0) translateY(-7px) scale(1.04);box-shadow:2px 15px 25px #000c}
.pass-wall .photo-card img,.pass-wall .photo-card img.new-pupil{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:contain;object-position:center;border-radius:1px;background:#e8ecea}
@media(max-width:760px){.pass-wall .photo-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px 14px}.pass-wall{padding:65px 16px 32px}}
@media(max-width:520px){.pass-wall{border-width:5px;padding:55px 12px 23px}.pass-wall .photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px}.pass-wall .photo-card{padding:6px 6px 17px}.pass-wall-title{font-size:15px;letter-spacing:.09em}.pass-wall .photo-card:hover{transform:rotate(0) translateY(-3px) scale(1.02)}}
@media(prefers-reduced-motion:reduce){.pass-wall .photo-card{transition:none}}
.pass-wall .pass-wall-title{position:relative;max-width:780px;margin:0 auto 38px;padding:22px 20px 25px;border:3px solid #b47a3e;border-radius:5px;background:linear-gradient(145deg,#38404a,#161b23 46%,#323944);box-shadow:0 4px 0 #090c10,0 12px 28px #000a,inset 0 2px 12px #dca45d4a;color:#ffe7a8;font:900 clamp(30px,5vw,56px)/1.15 'Arial Black',Impact,Arial,sans-serif;letter-spacing:.035em;text-transform:uppercase;text-shadow:0 2px 0 #b76927,0 4px 0 #783710,0 6px 0 #3e220f,0 10px 10px #000,0 0 22px #ffc56d8c}
.pass-wall .pass-wall-title:before,.pass-wall .pass-wall-title:after{content:'';position:absolute;left:12px;right:12px;height:12px;background:radial-gradient(circle,#fff5d9 0 2px,#ffa63d 3px 4px,transparent 6px) 0 0 / 27px 12px repeat-x;filter:drop-shadow(0 0 5px #ffbd69)}
.pass-wall .pass-wall-title:before{top:3px}.pass-wall .pass-wall-title:after{bottom:3px}
.pass-wall-cta{position:relative;z-index:1;margin:29px auto 0;text-align:center}
.pass-wall-cta a{display:inline-flex;align-items:center;justify-content:center;min-height:48px;max-width:100%;padding:12px 22px;border:2px solid #ffdb8e;border-radius:4px;background:#e4a84e;color:#202026;text-decoration:none;font-size:clamp(15px,2vw,19px);font-weight:800;line-height:1.35;box-shadow:0 4px 0 #794b21,0 0 22px #ffbb6573;transition:transform .2s,box-shadow .2s}
.pass-wall-cta a:hover{transform:translateY(-2px);box-shadow:0 6px 0 #794b21,0 0 30px #ffd492a1}.pass-wall-cta a:focus-visible{outline:3px solid #fff;outline-offset:4px}
@media(max-width:520px){.pass-wall .pass-wall-title{margin-bottom:26px;padding:17px 10px 20px;font-size:clamp(27px,8vw,40px)}.pass-wall-cta{margin-top:20px}}
@media(prefers-reduced-motion:reduce){.pass-wall-cta a{transition:none}}

/* New pupil photographs retain their real details; frame and tone them for the wall. */
.pass-wall .photo-card.cool-wall-added img{object-fit:cover;object-position:center 42%;filter:brightness(1.07) contrast(1.08) saturate(1.06)}
.pass-wall .photo-card.cool-wall-dim img{filter:brightness(1.24) contrast(1.07) saturate(1.08)}
.pass-wall .photo-card.cool-wall-dusk img{filter:brightness(1.48) contrast(1.08) saturate(1.08)}

.pass-wall .photo-card.sample-card{overflow:hidden}
.pass-wall .photo-card.sample-card img{object-fit:cover;object-position:center}
.pass-wall .photo-card.sample-card span{position:absolute;z-index:1;top:18%;left:8%;right:8%;display:block;text-align:center;color:#fff9e8;font:800 clamp(15px,2.1vw,29px)/1.15 Georgia,serif;text-shadow:0 2px 8px #000,0 0 16px #070d11;letter-spacing:.01em}
@media(max-width:520px){.pass-wall .photo-card.sample-card span{top:14%;font-size:clamp(15px,4vw,19px)}}

/* Studio lighting: a travelling beam stays behind the pinned photographs. */
.pass-wall{border-color:#7c8082;box-shadow:0 26px 55px #09111591,0 0 27px #e4a84e43,inset 0 0 0 2px #c6a677,inset 0 14px 42px #070c14}
.pass-wall::after{content:"";position:absolute;z-index:0;inset:0;pointer-events:none;background:linear-gradient(108deg,transparent 15%,#ffd7a30a 36%,#ffe2b016 50%,#ffd7a30a 64%,transparent 83%);transform:translateX(-85%);animation:studio-sweep 11s ease-in-out infinite}
.pass-wall .photo-grid{position:relative;z-index:1}
.pass-wall::before{animation:studio-rig 3.8s ease-in-out infinite}
.pass-wall .pass-wall-title{border-color:#dcad62;box-shadow:0 4px 0 #090c10,0 12px 28px #000a,0 0 26px #fcae4559,inset 0 2px 12px #dca45d4a;animation:studio-sign 4.2s ease-in-out infinite}
.pass-wall .pass-wall-title::before{animation:studio-bulbs 1.6s ease-in-out infinite}
.pass-wall .pass-wall-title::after{animation:studio-bulbs 1.6s ease-in-out .8s infinite}
@keyframes studio-rig{0%,100%{filter:brightness(.85);box-shadow:0 8px 15px #ffc87518}22%,70%{filter:brightness(1.12);box-shadow:0 8px 20px #ffc87556}}
@keyframes studio-sign{0%,100%{color:#ffe7a8;text-shadow:0 2px 0 #b76927,0 4px 0 #783710,0 6px 0 #3e220f,0 10px 10px #000,0 0 13px #ffc56d78;box-shadow:0 4px 0 #090c10,0 12px 28px #000a,0 0 14px #fcae4547,inset 0 2px 12px #dca45d4a}48%,72%{color:#fff6df;text-shadow:0 2px 0 #b76927,0 4px 0 #783710,0 6px 0 #3e220f,0 10px 10px #000,0 0 30px #ffe1a4,0 0 55px #ffad4e;box-shadow:0 4px 0 #090c10,0 12px 28px #000a,0 0 34px #ffbd688c,inset 0 2px 20px #e9b97482}}
@keyframes studio-bulbs{0%,100%{opacity:.36;filter:drop-shadow(0 0 2px #ffbd69)}30%,70%{opacity:1;filter:drop-shadow(0 0 9px #ffdb91)}}
@keyframes studio-sweep{0%,26%,100%{transform:translateX(-85%)}62%,76%{transform:translateX(85%)}}
