/* A white, photo-led journal with scroll-linked paper motion. */
body[data-page="lab"]{background:#fff;color:#18243a}
body[data-page="lab"] header{background:#ffffffed;border-bottom:1px solid #edf0f2}
body[data-page="lab"] .header-cta{background:#214b80}
.journal-intro{padding:0;height:135vh;min-height:1000px;background:#fff}
.journal-scene{--progress:0;position:sticky;top:100px;min-height:620px;height:calc(100svh - 100px);max-height:950px;overflow:hidden;isolation:isolate;background-image:linear-gradient(#214b8005 1px,transparent 1px),linear-gradient(90deg,#214b8005 1px,transparent 1px);background-size:110px 110px}
.journal-title{position:absolute;z-index:3;left:50%;top:45%;transform:translate(-50%,-50%);width:min(720px,65%);text-align:center;pointer-events:none}
.journal-title a{pointer-events:auto}.journal-label{display:inline-flex;align-items:center;gap:13px;font-size:12px;font-weight:800;letter-spacing:.1em;margin-bottom:30px;color:#214b80}.journal-label span{font-size:11px;letter-spacing:0;background:#e9f1fb;border-radius:20px;padding:7px 12px}
.journal-title h1{font-size:clamp(38px,4.7vw,72px);line-height:1.23;letter-spacing:-.065em;margin:0 0 23px;font-weight:800}.journal-title h1>span{color:#214b80}.journal-title p{font-size:16px;line-height:1.8;color:#6a7280;margin:0 0 25px}.journal-scroll{display:inline-flex;gap:25px;align-items:center;font-size:13px;font-weight:700;color:#18243a;background:white;border:1px solid #dce2ea;border-radius:50px;padding:12px 15px 12px 23px}.journal-scroll span{background:#214b80;color:white;border-radius:50%;width:29px;height:29px;display:grid;place-items:center}.journal-scroll:hover{border-color:#214b80}
.floating-photo{position:absolute;z-index:2;display:block;padding:9px 9px 0;background:white;border:1px solid #e5e7eb;box-shadow:0 12px 35px #203c5714;transition:box-shadow .3s;will-change:transform;border-radius:5px}.floating-photo img{width:100%;height:calc(100% - 35px);object-fit:cover;border-radius:2px}.floating-photo>span{display:block;font-size:11px;letter-spacing:.04em;font-weight:700;color:#214b80;padding:9px 4px;line-height:17px}.floating-photo:hover{box-shadow:0 18px 38px #203c572e;z-index:4}.fp-one{width:clamp(145px,16vw,250px);height:clamp(210px,22vw,340px);left:3%;top:12%;transform:translate(calc(var(--progress)*-55px),calc(var(--progress)*-45px)) rotate(calc(-11deg + var(--progress)*-6deg))}.fp-two{width:clamp(185px,23vw,345px);height:clamp(165px,19vw,270px);right:-2%;top:17%;transform:translate(calc(var(--progress)*70px),calc(var(--progress)*-50px)) rotate(calc(9deg + var(--progress)*7deg))}.fp-three{width:clamp(165px,20vw,290px);height:clamp(155px,17vw,240px);left:17%;bottom:-4%;transform:translate(calc(var(--progress)*-40px),calc(var(--progress)*60px)) rotate(calc(7deg + var(--progress)*-5deg))}.fp-three img{object-position:50% 62%}
.journal-star{position:absolute;right:18%;bottom:11%;font-size:125px;line-height:1;color:#d8ec64;transform:rotate(calc(var(--progress)*80deg));z-index:1}.journal-dot{width:30px;height:30px;border-radius:50%;background:#214b80;position:absolute;left:29%;top:10%}.orbit{position:absolute;border:1px solid #214b8012;width:150%;height:47%;left:-25%;top:28%;border-radius:50%;transform:rotate(-24deg);z-index:0}.orbit-two{transform:rotate(26deg);width:140%;left:-20%;height:72%;top:5%}.journal-bottom{position:absolute;left:4.5%;right:4.5%;bottom:23px;display:flex;justify-content:space-between;font-size:9px;font-weight:700;letter-spacing:.14em;color:#77818f;z-index:4;pointer-events:none}
.journal-list{padding-top:100px;padding-bottom:80px;scroll-margin-top:110px}.journal-list-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:40px;gap:25px}.journal-list-heading h2{font-size:clamp(30px,3.5vw,49px);margin:0}.journal-list-heading .eyebrow{color:#214b80;margin-bottom:15px;display:block;font-size:11px}.journal-list-heading p{color:#79808b;font-size:14px;line-height:1.8;margin:0}.heading-dot{color:#214b80}.journal-toolbar{border-top:1px solid #dfe4e8;padding-top:23px;margin-bottom:43px;display:flex;align-items:center;justify-content:space-between;gap:15px}.journal-filters{display:flex;gap:7px;flex-wrap:wrap}.journal-filters button{border:1px solid #e6e9ed;background:white;color:#657080;border-radius:30px;padding:10px 16px;cursor:pointer;font:inherit;font-size:12px;white-space:nowrap}.journal-filters button.active{background:#214b80;border-color:#214b80;color:white}.journal-filters button:hover:not(.active){background:#f3f6f9;color:#214b80}.journal-toolbar>p{font-size:11px;white-space:nowrap;color:#79808b;margin:0}.journal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:54px 28px}
.journal-card{min-width:0;background:white;padding:0;border:0;border-radius:0;transition:opacity .7s ease,translate .7s cubic-bezier(.16,1,.3,1);transition-delay:var(--delay,0ms)}.journal-card[hidden]{display:none!important}.journal-card-link{display:block;color:inherit;text-decoration:none}.journal-image{aspect-ratio:1.25;overflow:hidden;background:#f3f4f6;position:relative;border-radius:9px}.journal-image>img{width:100%;height:100%;object-fit:cover;transition:transform .65s cubic-bezier(.2,.7,.2,1)}.journal-arrow{position:absolute;right:15px;bottom:15px;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:white;color:#214b80;font-size:22px;transition:transform .3s}.journal-card-link:hover img{transform:scale(1.045)}.journal-card-link:hover .journal-arrow{transform:rotate(45deg);background:#214b80;color:white}.journal-card-link:focus-visible{outline:3px solid #214b80;outline-offset:7px;border-radius:8px}.journal-meta{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:10px;letter-spacing:.06em;margin:19px 0 13px;color:#929aa5}.journal-meta span:first-child{color:#214b80;font-weight:700;letter-spacing:0;font-size:12px}.journal-card h3{font-size:clamp(22px,2vw,29px);line-height:1.4;margin:0 0 12px;letter-spacing:-.055em;color:#18243a}.journal-card p{font-size:13px;line-height:1.8;color:#79808b;margin:0}.journal-more{text-align:center;padding:70px 0 10px;margin-top:65px;border-top:1px solid #e7ebef}.journal-more p{font-size:14px;color:#7a828d}.journal-more .btn{font-size:13px;min-height:48px;padding:12px 23px}
.journal-reading-head{padding-top:55px;padding-bottom:45px;max-width:1020px}.journal-back{display:inline-block;font-size:13px;color:#6a7280;margin-bottom:50px}.journal-reading-head .journal-meta{justify-content:center;gap:20px}.journal-reading-head h1{font-size:clamp(37px,4.6vw,65px);line-height:1.3;text-align:center;margin:20px 0}.journal-reading-head>p{color:#79808b;text-align:center;font-size:16px}.journal-cover{max-width:1100px;margin:0 auto}.journal-cover-image{display:block;max-width:100%;width:auto;max-height:760px;height:auto;object-fit:contain;border-radius:10px;margin:auto}.journal-reading{max-width:870px;padding-top:65px;padding-bottom:50px}.journal-reading h2{font-size:27px;line-height:1.5;margin:50px 0 17px}.journal-reading p,.journal-reading li{font-size:17px;line-height:2;color:#56606e;word-break:keep-all;overflow-wrap:anywhere}.journal-reading .lead{font-size:21px;color:#27384f;line-height:1.85}.journal-reading ul{padding-left:22px}.journal-signoff{margin:60px 0 35px;padding:28px 0;border-top:1px solid #e6e9ed;font-size:13px;line-height:1.9;color:#8a929c}.journal-signoff strong{display:block;font-size:25px;color:#214b80;margin-top:10px;letter-spacing:.04em}.journal-related{padding-top:55px;padding-bottom:100px;border-top:1px solid #e6e9ed}.journal-related>h2{font-size:30px;margin-bottom:35px}
.lab{background:white}.lab .journal-card{background:white}.lab .journal-card h3{margin-top:0}.lab .journal-grid{gap:30px}
.journal-motion{pointer-events:auto;background:#fff;border:1px solid #dce2ea;border-radius:20px;color:#657080;font:inherit;font-size:10px;letter-spacing:0;padding:7px 13px;margin-top:-8px;cursor:pointer}.journal-motion:hover{border-color:#214b80;color:#214b80}
@media(max-width:850px){.journal-bottom{bottom:78px}.journal-bottom>span:last-child{display:none}.journal-bottom{justify-content:space-between}.fp-three{bottom:13%}.journal-star{bottom:18%}}
@media(min-width:1500px){.fp-one{left:7%}.fp-two{right:4%}}
@media(max-width:1000px){.journal-title{width:70%;top:44%}.journal-title h1{font-size:48px}.fp-one{left:-5%;top:4%}.fp-two{right:-6%;top:3%}.fp-three{left:10%;bottom:2%}.journal-star{right:14%;bottom:10%;font-size:100px}.journal-grid{gap:40px 20px}.journal-meta span:last-child{font-size:8px}.journal-list-heading p{font-size:12px}}
@media(max-width:850px){.journal-scene{top:82px;height:calc(100svh - 82px);min-height:640px}.journal-intro{height:115vh;min-height:790px}.journal-title h1{font-size:clamp(33px,6.1vw,48px)}.journal-title{width:90%;top:46%}.journal-label{margin-bottom:20px}.journal-title p{font-size:14px}.floating-photo{padding:5px 5px 0}.floating-photo>span{font-size:9px;padding:7px 3px}.floating-photo img{height:calc(100% - 30px)}.fp-one{width:132px;height:164px;left:-15px;top:2%;transform:translate(calc(var(--progress)*-35px),calc(var(--progress)*-25px)) rotate(-12deg)}.fp-two{width:170px;height:143px;right:-25px;top:4%;transform:translate(calc(var(--progress)*35px),calc(var(--progress)*-25px)) rotate(10deg)}.fp-three{width:157px;height:143px;left:8%;bottom:5%}.journal-star{font-size:80px;right:14%;bottom:9%}.journal-dot{width:18px;height:18px;left:46%;top:13%}.journal-bottom{font-size:7px;left:24px;right:24px;bottom:17px}.journal-list{padding-top:65px;scroll-margin-top:100px}.journal-list-heading{display:block;margin-bottom:30px}.journal-list-heading h2{font-size:33px}.journal-list-heading>p{font-size:13px;margin-top:18px}.journal-toolbar{display:block;margin-bottom:30px;padding-top:18px}.journal-toolbar>p{margin-top:16px}.journal-filters{gap:7px}.journal-filters button{padding:9px 13px;font-size:11px}.journal-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:38px 18px}.journal-card h3{font-size:23px}.journal-card p{font-size:12px}.journal-meta span:last-child{display:none}.journal-image{aspect-ratio:1.15}.journal-reading-head{padding-top:30px;padding-bottom:28px}.journal-back{margin-bottom:35px}.journal-reading-head>p{font-size:14px;line-height:1.8}.journal-reading-head .journal-meta span:last-child{display:block}.journal-reading{padding-top:35px}.journal-reading .lead{font-size:19px}.journal-reading h2{font-size:24px;margin-top:35px}.journal-reading p,.journal-reading li{font-size:16px}.journal-more{margin-top:40px;padding-top:40px}.journal-related{padding-top:40px;padding-bottom:60px}.journal-related>h2{font-size:26px}}
@media(max-width:520px){.journal-grid{grid-template-columns:1fr;gap:38px}.journal-image{aspect-ratio:1.25}.journal-card h3{font-size:27px}.journal-card p{font-size:13px}.journal-meta span:last-child{display:block;font-size:9px}.journal-title h1{font-size:35px}.journal-label{gap:9px;font-size:10px}.journal-label span{font-size:10px}.journal-title p{font-size:13px}.journal-title{top:46%}.journal-list-heading h2{font-size:30px}.journal-reading-head h1{font-size:34px}.journal-star{right:11%}}
@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}.journal-title{animation:journal-enter 1s cubic-bezier(.16,1,.3,1) both}.will-reveal{opacity:0;translate:0 30px}.will-reveal.is-visible{opacity:1;translate:0 0}@keyframes journal-enter{from{opacity:0;translate:0 24px}to{opacity:1;translate:0 0}}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.will-reveal{opacity:1;translate:none}.floating-photo,.journal-star{will-change:auto}}
@media(max-width:850px){.journal-bottom{bottom:78px}.fp-three{bottom:13%}.journal-star{bottom:18%}}

/* Supplied event and seminar photo galleries */
.event-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:32px 0}.event-gallery figure{margin:0;min-width:0}.event-gallery img{display:block;width:100%;height:auto;border-radius:12px}.event-gallery a{display:block}.event-gallery a:focus-visible{outline:3px solid #244bff;outline-offset:5px}#high-school-credit .event-gallery figure:first-child{grid-column:1/-1}@media(max-width:640px){.event-gallery{grid-template-columns:1fr;gap:16px}}
