.campus-lore{position:relative;background:radial-gradient(ellipse at 10% 10%,#59406066,transparent 55%),#242132;padding-top:100px;padding-bottom:75px;overflow:hidden}
.lore-heading{position:relative;max-width:1120px;margin:0 auto 36px}
.lore-heading h2{font-family:var(--display);font-size:clamp(60px,7vw,100px);line-height:1.02;letter-spacing:-2px}
.lore-heading>p:last-of-type{font-size:16px;line-height:1.7;color:#e0d7e3;margin-top:24px}
.lore-stamp{position:absolute;right:30px;top:54px;background:#dceaac;color:#292438;transform:rotate(8deg);border-radius:50%;width:155px;height:155px;display:grid;place-content:center;text-align:center;font-family:var(--display);font-size:30px;line-height:1.05;box-shadow:5px 7px 0 #0002}
.lore-source-note{max-width:1120px;margin:0 auto 24px;font-size:11px;line-height:1.6;color:#cabcd1;letter-spacing:.35px}
.lore-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;max-width:1120px;margin:auto;align-items:start}
.lore-card{min-width:0;overflow:hidden;border-radius:14px;background:#09090c;border:1px solid #ffffff25;box-shadow:0 12px 28px #0002}
.lore-source{display:flex;gap:8px;align-items:center;justify-content:space-between;padding:17px 18px 0}
.lore-source>span{color:#efa5fd;font-size:9px;letter-spacing:1.4px;font-weight:700}
.lore-source button{background:none;color:#c4bdca;font-size:10px;padding:6px 0}
.lore-source button:hover{color:white;text-decoration:underline;text-underline-offset:4px}
.lore-card blockquote{font-size:15px;line-height:1.5;margin:14px 18px 18px;min-height:45px;font-weight:400;color:#f8f5fa}
.source-crop{position:relative;overflow:hidden;background:#000;isolation:isolate}
.source-crop img{position:absolute;max-width:none;height:auto;display:block}
.meme-photo{margin:0 14px 14px;border-radius:9px}
.lore-response{background:#f0e8df;color:#302938;padding:22px 20px 24px;min-height:178px}
.lore-card:nth-child(3n+2) .lore-response{background:#ead4e7}
.lore-card:nth-child(3n) .lore-response{background:#dce1c8}
.lore-response>span{display:block;font-size:9px;letter-spacing:1.3px;margin-bottom:12px;color:#675a6c}
.lore-response h3{font-family:var(--display);font-size:34px;line-height:1.06;letter-spacing:-.3px;margin-bottom:13px}
.lore-response>p{font-size:12px;line-height:1.6;color:#625769}
.more-lore{max-width:1120px;margin:28px auto 0}
.more-lore>summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;padding:22px 0;border-block:1px solid #ffffff30;font-size:15px}
.more-lore>summary::-webkit-details-marker{display:none}
.lore-toggle{font-size:26px;color:var(--pink)}
.more-lore[open] .lore-toggle{transform:rotate(45deg)}
.more-lore[open]>.lore-grid{margin-top:28px}
.lore-text-card blockquote{font-size:19px;line-height:1.55;margin-block:26px}
.lore-cta{max-width:1120px;margin:55px auto 30px;display:flex;align-items:center;justify-content:space-between;gap:28px}
.lore-cta p{font-family:var(--display);font-size:46px;line-height:1.05}
.lore-cta .primary-button{width:260px;flex-shrink:0}
.lore-attribution{max-width:1120px;margin:auto;font-size:10px;color:#beb0c6;line-height:1.6}
.idea-card button.idea-footer{background:transparent;color:inherit;padding:0;text-align:left;font:inherit;font-size:10px;letter-spacing:1px}
.idea-card a.idea-footer:hover,.idea-card button.idea-footer:hover{text-decoration:underline;text-underline-offset:4px}
#source-dialog{width:580px;padding:0;background:#0b090e;color:#fff;border-radius:18px;overscroll-behavior:contain}
#source-dialog header{padding:22px;display:flex;gap:20px;justify-content:space-between;align-items:center;position:sticky;top:0;background:#17121ef5;z-index:2}
#source-dialog header p{font-size:8px;letter-spacing:1.4px;color:#d4a4db;margin-bottom:6px}
#source-dialog h2{font-family:var(--display);font-size:30px}
.source-close{flex-shrink:0;width:40px;height:40px;border-radius:50%;background:#ffffff18;color:white;font-size:28px}
.source-disclaimer{font-size:11px;line-height:1.6;padding:20px 22px;color:#c6b8cc}
@media(max-width:1000px){.lore-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lore-stamp{right:0;width:130px;height:130px;font-size:26px}.lore-heading h2{font-size:75px}}
@media(max-width:650px){.lore-nav{font-size:10px;padding:10px}.site-header nav{gap:5px}.campus-lore{padding-top:65px}.lore-heading h2{font-size:59px;letter-spacing:-1px}.lore-heading>p:last-of-type{font-size:14px;margin-top:22px}.lore-stamp{display:none}.lore-source-note{font-size:10px;max-width:330px;margin-left:0}.lore-grid{grid-template-columns:1fr;max-width:420px;gap:24px}.lore-heading{margin-bottom:26px}.lore-response{min-height:0}.lore-response h3{font-size:36px}.lore-card blockquote{font-size:16px;min-height:0}.lore-cta{flex-direction:column;align-items:flex-start;margin-top:40px}.lore-cta p{font-size:42px}.lore-cta .primary-button{width:100%;max-width:420px}.lore-attribution{font-size:9px}.lore-text-card blockquote{font-size:18px}.night-section #night-title{font-size:35px}.source-close{width:36px;height:36px}#source-dialog header{padding:18px}}
@media(max-width:370px){.lore-nav{display:none}.lore-heading h2{font-size:52px}}
.meme-tag{padding:19px 18px 16px;color:#ebd1ee;font-size:10px;font-weight:700;letter-spacing:1.5px}
.meme-expand{display:block;width:100%;padding:0;background:transparent;text-align:inherit;color:inherit;cursor:zoom-in}
.meme-expand:focus-visible{outline-offset:-4px}
.lore-card .lore-response{min-height:145px}
.lore-response h3:last-child{margin-bottom:0}
.lore-text-card .lore-response{padding-top:30px;padding-bottom:35px}
.lore-text-card .meme-tag{padding-bottom:18px}
.cast-extra{background:#39394d;padding:0 6%}
.cast-extra>summary{display:flex;align-items:center;justify-content:space-between;gap:20px;cursor:pointer;padding:25px 0;font-size:14px;list-style:none;border-bottom:1px solid #ffffff25;color:#e6d4e5}
.cast-extra>summary::-webkit-details-marker{display:none}
.cast-extra>summary span{color:var(--pink);font-size:22px}
.cast-extra[open]>summary span{transform:rotate(180deg)}
.cast-extra .cast-section{margin-inline:-6.82%;width:auto}
#meme-dialog{padding:48px 14px 14px;width:650px;background:#0b090e;border-radius:16px;overscroll-behavior:contain}
#meme-dialog .meme-photo{margin:0}
.meme-close{position:absolute;top:7px;right:12px;background:transparent;color:white;width:35px;height:35px;font-size:29px}
.closing h2{font-size:clamp(57px,7.5vw,106px)}
@media(max-width:650px){.header-note{display:none}.lore-nav{font-size:10px;padding-inline:7px}.site-header{gap:8px}.site-header .join-button{font-size:10px;padding-inline:11px}.cast-extra{padding-inline:23px}.cast-extra .cast-section{margin-inline:-23px}.lore-response h3{font-size:36px}}
