/* Local support for the recovered Framer markup. */
html { scroll-behavior: smooth; }
.static-layout-phone { display: none; }
@media (max-width: 809px) { .static-layout-desktop { display: none; } .static-layout-phone { display: block; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
[data-framer-appear-id] { opacity: 1 !important; transform: none !important; }
.static-slideshow { position: relative; width: 100%; height: 100%; overflow: hidden; }
.static-slideshow > img { width: 100%; height: 100%; display: block; object-fit: cover; }
.static-slideshow > img[hidden] { display: none; }
.static-slideshow > button { position: absolute; top: 50%; transform: translateY(-50%); width: 36px; height: 36px; border: 0; border-radius: 40px; color: white; background: rgba(255,255,255,.15); cursor: pointer; font: 28px Arial,sans-serif; }
.static-slideshow [data-slide-previous] { left: 12px; }
.static-slideshow [data-slide-next] { right: 12px; }
.static-slideshow-dots { position: absolute; bottom: 12px; left: 50%; transform: translateX(-50%); display: flex; gap: 6px; background: rgba(0,0,0,.25); border-radius: 50px; padding: 10px; }
.static-slideshow-dots button { width: 7px; height: 7px; padding: 0; border: 0; border-radius: 50%; background: white; opacity: .3; cursor: pointer; }
.static-slideshow-dots button[aria-current="true"] { opacity: 1; }
.static-slideshow button:focus-visible { outline: 2px solid white; outline-offset: 4px; }

/* Keep the recovered timeline layout; restore its scroll-driven reveal. */
.static-timeline-row [data-framer-name="Text"] {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 550ms ease-out, transform 550ms cubic-bezier(.2,.7,.2,1);
}
.static-timeline-row.static-timeline-reached [data-framer-name="Text"] {
  opacity: 1;
  transform: translateY(0);
}
.static-timeline-row [data-framer-name="Dot"] {
  opacity: .05 !important;
  transition: opacity 300ms ease-out;
}
.static-timeline-row.static-timeline-reached [data-framer-name="Dot"] { opacity: 1 !important; }
.static-timeline-row [data-framer-name="Progress bar"] { position: relative; }
.static-timeline-row [data-framer-name="Fill"] { visibility: hidden !important; }
.static-timeline-row [data-framer-name="Progress bar"]::after {
  content: "";
  position: absolute;
  inset: 0;
  background: white;
  transform-origin: top;
  transform: scaleY(var(--timeline-progress, 0));
  pointer-events: none;
}
@media (prefers-reduced-motion: reduce) {
  .static-timeline-row [data-framer-name="Text"] { opacity: 1; transform: none; transition: none; }
  .static-timeline-row [data-framer-name="Dot"] { transition: none; }
}

/* Current two-day Janvey program. */
.janvey-program,.janvey-events { width:100%; box-sizing:border-box; color:white; padding:64px 24px; background:radial-gradient(ellipse at 50% 52%,#cf0025 0%,#7b003d 30%,#1c065c 72%); font-family:Inter,Arial,sans-serif; }
.janvey-section-title { margin:0; text-align:center; font-family:"Abril Fatface",Georgia,serif; font-size:clamp(48px,6vw,89px); font-weight:400; line-height:1.2; }
.janvey-intro { text-align:center; color:#e1d5ee; margin:16px 0 48px; font-size:17px; }
.janvey-timeline { max-width:1050px; margin:auto; }
.janvey-timeline-row { display:grid; grid-template-columns:1fr 40px 1fr; gap:64px; min-height:240px; }
.janvey-timeline-rail { grid-column:2; grid-row:1; display:flex; flex-direction:column; align-items:center; }
.janvey-dot { width:15px; height:15px; border-radius:50%; background:white; flex-shrink:0; margin:14px 0 24px; }
.janvey-line { width:3px; flex:1; background:rgba(255,255,255,.05); margin-bottom:24px; }
.janvey-timeline-text { grid-column:3; grid-row:1; padding-bottom:44px; }
.janvey-timeline-row:nth-child(even) .janvey-timeline-text { grid-column:1; text-align:right; }
.janvey-timeline-text h2 { margin:8px 0 20px; font-size:36px; line-height:1.2; font-weight:600; letter-spacing:-.5px; }
.janvey-timeline-text p { line-height:1.5; }
.janvey-kicker { font-size:12px; font-weight:600; text-transform:uppercase; letter-spacing:2px; margin:0 0 8px; color:#f7dfb2; }
.janvey-register { border:0; border-radius:32px; padding:14px 18px; background:#fff; color:#16064c; font:600 13px/1.4 Inter,Arial,sans-serif; margin-top:12px; opacity:1; cursor:default; }
.janvey-card-grid { max-width:1150px; margin:auto; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:48px; }
.janvey-card { position:relative; min-height:420px; border-radius:44px; overflow:hidden; isolation:isolate; background:#18082d; scroll-margin-top:32px; }
.janvey-card img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.janvey-card:hover img { transform:scale(1.04); }
.janvey-card:after { content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(180deg,rgba(0,0,0,.05),rgba(0,0,0,.1) 25%,rgba(8,0,23,.85) 100%); }
.janvey-card-content { position:absolute; z-index:2; bottom:30px; left:30px; right:24px; }
.janvey-card h3 { margin:10px 0 8px; font-size:32px; line-height:1.08; letter-spacing:-.8px; }
.janvey-card-content>p:not(.janvey-kicker) { margin:0; font-size:16px; }
@media(max-width:1000px) { .janvey-card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; } .janvey-timeline-row { gap:32px; } }
@media(max-width:600px) { .janvey-program,.janvey-events { padding:48px 20px; } .janvey-timeline-row { grid-template-columns:24px 1fr; gap:20px; } .janvey-timeline-rail { grid-column:1; } .janvey-timeline-text,.janvey-timeline-row:nth-child(even) .janvey-timeline-text { grid-column:2; text-align:left; } .janvey-timeline-text h2 { font-size:30px; } .janvey-card-grid { grid-template-columns:1fr; } .janvey-card { min-height:440px; } }
@media(prefers-reduced-motion:reduce) { .janvey-card img { transition:none; } .janvey-card:hover img { transform:none; } }

/* A Janvey-specific closing chapter. */
.janvey-after { width:100%; box-sizing:border-box; padding:100px max(24px,calc((100% - 1150px)/2)) 0; background:#10052f; color:#fff; font-family:Inter,Arial,sans-serif; overflow:hidden; }
.janvey-after-intro { position:relative; padding-right:300px; margin-bottom:72px; }
.janvey-after-intro h2 { font-size:clamp(44px,5vw,76px); font-weight:600; letter-spacing:-3px; line-height:1.06; margin:20px 0; }
.janvey-after-intro>p:last-of-type { max-width:560px; color:#c8bddb; font-size:18px; line-height:1.7; }
.janvey-orbit { position:absolute; width:280px; height:280px; object-fit:contain; right:0; top:-30px; animation:janvey-float 8s ease-in-out infinite; }
.janvey-mood-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.janvey-mood { position:relative; padding:42px; border-radius:28px; overflow:hidden; }
.janvey-mood-day { color:#25103f; background:#f5d68b; }
.janvey-mood-night { background:linear-gradient(145deg,#39276e,#742d68); }
.janvey-mood-number { font-size:11px; letter-spacing:1.7px; font-weight:600; }
.janvey-mood h3 { font-size:42px; line-height:1.12; letter-spacing:-1.5px; margin:28px 0 20px; }
.janvey-mood p { max-width:330px; line-height:1.8; font-size:16px; margin-bottom:28px; }
.janvey-mood a,.janvey-memory a { display:inline-block; color:inherit; text-decoration:none; border-bottom:1px solid currentColor; padding:0 0 8px; font-size:14px; font-weight:600; }
.janvey-mood a span,.janvey-memory a span { margin-left:16px; }
.janvey-mood-night img { position:absolute; right:-55px; top:10px; width:160px; opacity:.6; transform:rotate(-20deg); pointer-events:none; }
.janvey-before { display:grid; grid-template-columns:.85fr 1.15fr; gap:70px; margin:100px 0; }
.janvey-before h2 { font-size:48px; line-height:1.1; letter-spacing:-2px; margin:20px 0; }
.janvey-before img { width:140px; height:140px; object-fit:contain; margin-top:10px; transform:rotate(12deg); }
.janvey-faq details { border-bottom:1px solid #ffffff26; }
.janvey-faq summary { padding:24px 30px 24px 0; font-size:17px; font-weight:500; cursor:pointer; list-style:none; position:relative; }
.janvey-faq summary:after { content:'+'; position:absolute; right:0; top:20px; font-size:26px; color:#f5d68b; }
.janvey-faq details[open] summary:after { content:'−'; }
.janvey-faq summary::-webkit-details-marker { display:none; }
.janvey-faq p { color:#c8bddb; line-height:1.8; margin:0 0 24px; font-size:15px; }
.janvey-after a:focus-visible,.janvey-faq summary:focus-visible { outline:2px solid #f5d68b; outline-offset:6px; }
.janvey-memory { position:relative; min-height:420px; border-radius:28px; overflow:hidden; display:flex; align-items:center; padding:48px; box-sizing:border-box; isolation:isolate; }
.janvey-memory>img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; }
.janvey-memory:after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,#10052fe8,#10052f66); z-index:-1; }
.janvey-memory h2 { font-size:clamp(34px,4vw,52px); letter-spacing:-1.5px; line-height:1.12; margin:20px 0; }
.janvey-memory p:not(.janvey-kicker) { max-width:460px; font-size:16px; line-height:1.8; color:#eee0f2; }
.janvey-footer { padding:40px 0; margin-top:40px; border-top:1px solid #ffffff26; display:flex; justify-content:space-between; align-items:center; gap:20px; }
.janvey-footer a { text-decoration:none; color:#fff; font-size:13px; }
.janvey-footer>a:first-child { font-size:21px; font-weight:700; letter-spacing:1px; }
.janvey-footer span { font-size:11px; font-weight:400; color:#f5d68b; }
.janvey-footer p { font-size:12px; color:#b9aacb; }
@keyframes janvey-float { 0%,100% { transform:translateY(0) rotate(-8deg); } 50% { transform:translateY(-16px) rotate(8deg); } }
@media(max-width:700px) { .janvey-after { padding:64px 24px 0; } .janvey-after-intro { padding-right:0; padding-top:130px; } .janvey-orbit { width:150px; height:150px; right:0; top:-20px; } .janvey-after-intro h2 { letter-spacing:-2px; } .janvey-mood-grid,.janvey-before { grid-template-columns:1fr; gap:24px; } .janvey-mood { padding:30px; } .janvey-mood h3 { font-size:36px; } .janvey-before { margin:64px 0; } .janvey-before>div:first-child { position:relative; } .janvey-before img { position:absolute; width:95px; height:95px; right:0; top:20px; } .janvey-before h2 { font-size:40px; } .janvey-memory { padding:30px; min-height:440px; } .janvey-footer { align-items:flex-start; flex-direction:column; } }
@media(prefers-reduced-motion:reduce) { .janvey-orbit { animation:none; } }
/* College banner and Janvey identity replace the recovered video placeholder. */
.janvey-brand-header { width:100%; background:#1c065c; }
.janvey-college-banner { display:block; width:100%; height:auto; }
.janvey-logo-panel { display:flex; justify-content:center; padding:32px 20px; background:radial-gradient(ellipse at center,#8f073d,#1c065c 75%); }
.janvey-festival-logo { display:block; width:clamp(220px,32vw,420px); max-width:100%; height:auto; border-radius:24px; box-shadow:0 18px 70px #09012166; }
@media(max-width:600px) { .janvey-logo-panel { padding:24px 20px; } .janvey-festival-logo { width:260px; } }

/* A full-width animated festival identity, with the supplied emblems. */
.janvey-festival-hero { position:relative; isolation:isolate; overflow:hidden; width:100%; color:#ffdc82; background:radial-gradient(ellipse at 50% 42%,#aa153f 0%,#691441 35%,#210c61 70%,#15084a 100%); font-family:Inter,Arial,sans-serif; padding-top:28px; }
.janvey-festival-hero:before,.janvey-festival-hero:after { content:''; position:absolute; pointer-events:none; z-index:-1; width:460px; height:460px; border:1px solid #edbd5b55; transform:rotate(35deg); top:260px; }
.janvey-festival-hero:before { left:-320px; box-shadow:0 0 0 20px #edbd5b15,0 0 0 50px #edbd5b15; }
.janvey-festival-hero:after { right:-320px; transform:rotate(-35deg); box-shadow:0 0 0 20px #edbd5b15,0 0 0 50px #edbd5b15; }
.janvey-institution { position:relative; display:grid; grid-template-columns:100px 1fr 100px; align-items:center; gap:32px; max-width:1500px; margin:auto; padding:0 40px; text-align:center; }
.janvey-crest { width:100%; height:125px; border-radius:16px; filter:drop-shadow(0 4px 15px #10052f55); }
.janvey-institution p { font-size:14px; text-transform:uppercase; letter-spacing:3px; margin:0 0 10px; }
.janvey-institution h2 { text-transform:uppercase; font-size:clamp(20px,2.25vw,36px); line-height:1.22; letter-spacing:1px; font-weight:700; margin:0 0 10px; }
.janvey-institution span { font-size:12px; letter-spacing:1px; color:#f5d8ae; }
.janvey-college-break { display:none; }
.janvey-hero-main { position:relative; display:grid; grid-template-columns:1fr minmax(0,2.1fr) 1fr; gap:10px; align-items:center; max-width:1550px; margin:12px auto 38px; padding:0 35px; }
.janvey-hero-identity { text-align:center; }
.janvey-emblem-wrap { position:relative; width:clamp(220px,25vw,370px); margin:0 auto -12px; }
.janvey-emblem-wrap img { display:block; width:100%; height:auto; clip-path:ellipse(48% 42.5% at 50% 51.7%); position:relative; animation:janvey-emblem-in 1s ease-out both; }
.janvey-emblem-halo { position:absolute; inset:12% 0 5%; border-radius:50%; background:#f1a32933; box-shadow:0 0 70px 25px #ffb53133; animation:janvey-halo 5s ease-in-out infinite; }
.janvey-hero-overline { margin:0 0 14px; font-size:12px; letter-spacing:4px; text-transform:uppercase; }
.janvey-hero-identity h1 { font-size:clamp(45px,6.5vw,104px); line-height:.97; font-weight:900; letter-spacing:-3px; margin:0; text-shadow:0 4px 25px #22042d55; }
.janvey-hero-identity h1 span { display:block; font-size:.54em; letter-spacing:5px; margin-top:12px; color:#fff0b1; }
.janvey-hero-tagline { font-family:Georgia,serif; font-style:italic; font-size:21px; color:#ffe5c2; margin:20px 0; }
.janvey-hero-explore { display:inline-flex; gap:24px; align-items:center; padding:13px 24px; border:1px solid #f5d68b77; border-radius:40px; color:#ffe5ad; text-decoration:none; font-size:13px; background:#25062f33; transition:background .2s,transform .2s; }
.janvey-hero-explore:hover { background:#f5d68b22; transform:translateY(-2px); }
.janvey-hero-explore:focus-visible { outline:2px solid white; outline-offset:5px; }
.janvey-laurel { width:100%; max-height:430px; color:#deb755; filter:drop-shadow(0 0 16px #ffb53122); animation:janvey-laurel-sway 7s ease-in-out infinite; transform-origin:bottom; }
.janvey-laurel-right { transform:scaleX(-1); }
.janvey-hero-sparks { position:absolute; inset:0; z-index:-1; pointer-events:none; }
.janvey-hero-sparks i { position:absolute; left:var(--x); top:var(--y); width:3px; height:3px; border-radius:50%; background:#ffe9a1; box-shadow:0 0 10px #ffd477; animation:janvey-spark var(--duration) var(--delay) ease-in-out infinite; }
.janvey-hero-sparks i:nth-child(3n) { width:5px; height:5px; }
.janvey-hero-ribbon { display:flex; justify-content:center; flex-wrap:wrap; align-items:center; gap:28px; padding:18px 24px; border-top:1px solid #f5d68b33; border-bottom:1px solid #f5d68b33; background:#18064144; font-size:11px; letter-spacing:2px; text-transform:uppercase; }
.janvey-hero-ribbon b { color:#dca954; font-size:12px; }
@keyframes janvey-spark { 0%,100% { opacity:.1; transform:translateY(10px) scale(.7); } 50% { opacity:.8; transform:translateY(-20px) scale(1.2); } }
@keyframes janvey-halo { 0%,100% { opacity:.55; transform:scale(.98); } 50% { opacity:1; transform:scale(1.04); } }
@keyframes janvey-laurel-sway { 0%,100% { transform:rotate(-3deg); } 50% { transform:rotate(3deg); } }
@keyframes janvey-emblem-in { from { opacity:0; transform:translateY(20px) scale(.94); } to { opacity:1; transform:none; } }
@media(max-width:700px) { .janvey-festival-hero { padding-top:20px; } .janvey-institution { grid-template-columns:48px 1fr 48px; gap:10px; padding:0 15px; } .janvey-crest { height:65px; border-radius:6px; } .janvey-institution p { font-size:9px; letter-spacing:1px; } .janvey-institution h2 { font-size:14px; letter-spacing:.2px; } .janvey-institution span { font-size:9px; letter-spacing:0; } .janvey-hero-main { grid-template-columns:1fr; padding:0 18px; margin:18px auto 30px; } .janvey-hero-main>.janvey-laurel,.janvey-laurel-right { position:absolute; width:90px; opacity:.35; top:110px; pointer-events:none; } .janvey-hero-main>.janvey-laurel { left:-35px; } .janvey-laurel-right { right:-35px; } .janvey-emblem-wrap { width:240px; } .janvey-hero-identity h1 { font-size:62px; letter-spacing:-2px; } .janvey-hero-overline { font-size:9px; letter-spacing:2px; } .janvey-hero-tagline { font-size:18px; } .janvey-hero-ribbon { gap:12px; font-size:9px; letter-spacing:1px; } }
@media(prefers-reduced-motion:reduce) { .janvey-emblem-wrap img,.janvey-emblem-halo,.janvey-laurel,.janvey-hero-sparks i { animation:none; } .janvey-hero-explore { transition:none; } }
.janvey-laurel path:not([fill="none"]) { fill:currentColor; }
.janvey-hero-identity h1 { animation:janvey-gold-shade 2s ease-in-out infinite; }
@keyframes janvey-gold-shade { 0%,100% { color:#eac365; } 50% { color:#ffe8a0; } }
@media(prefers-reduced-motion:reduce) { .janvey-hero-identity h1 { animation:none; } }
/* The recovered fixed-height flex container must never compress the hero. */
#main > .framer-0SkKE.framer-1e4mj2w { height:auto !important; min-height:100vh; }
.janvey-festival-hero { flex:none !important; height:auto !important; min-height:0; box-sizing:border-box; }
.janvey-institution { grid-template-columns:150px minmax(0,1fr) 150px; max-width:1650px; gap:36px; }
.janvey-crest { height:160px; }
.janvey-emblem-wrap { width:clamp(280px,28vw,450px); }
.janvey-hero-main { margin-bottom:42px; }
.janvey-program,.janvey-events,.janvey-after { flex-shrink:0; }
@media(max-width:700px) { .janvey-institution { grid-template-columns:60px minmax(0,1fr) 60px; gap:9px; } .janvey-crest { height:75px; } .janvey-emblem-wrap { width:260px; max-width:90%; } }
.janvey-crest { display:block; width:160px; height:160px; border-radius:0; background-image:url('../images/college-emblems-transparent.png'); background-size:200% 100%; background-repeat:no-repeat; filter:drop-shadow(0 4px 12px #10052f66); }
.janvey-crest-nes { background-position:left center; }
.janvey-crest-jnnce { background-position:right center; }
@media(max-width:700px) { .janvey-crest { width:65px; height:65px; } }
.janvey-crest { position:relative; overflow:hidden; background-image:none; }
.janvey-crest img { display:block; position:absolute; top:0; left:0; width:200%; max-width:none; height:100%; }
.janvey-crest-jnnce img { left:-100%; }
/* Use the exact user-supplied emblems, without generated replacements. */
.janvey-institution { grid-template-columns:200px minmax(0,1fr) 200px; gap:28px; }
.janvey-crest { width:200px; height:200px; overflow:visible; }
.janvey-crest img,.janvey-crest-jnnce img { position:static; width:100%; height:100%; object-fit:contain; }
@media(max-width:700px) { .janvey-institution { grid-template-columns:75px minmax(0,1fr) 75px; gap:8px; } .janvey-crest { width:75px; height:75px; } }
.janvey-crest-jnnce { background:#fff5d9; border-radius:50%; }
/* Exact named logo files: display scaling only. */
.janvey-institution { grid-template-columns:240px minmax(0,1fr) 240px; }
.janvey-crest { width:240px; height:240px; background:none; border-radius:0; }
.janvey-crest img { width:100%; height:100%; object-fit:contain; }
@media(max-width:700px) { .janvey-institution { grid-template-columns:85px minmax(0,1fr) 85px; } .janvey-crest { width:85px; height:85px; } }
/* White backing follows the shield; the original PNG remains untouched. */
.janvey-crest-jnnce { isolation:isolate; }
.janvey-jnnce-backing { position:absolute; inset:0; width:100%; height:100%; z-index:0; pointer-events:none; }
.janvey-crest-jnnce img { position:relative; z-index:1; }
.janvey-crest-jnnce img { left:0; top:0; }
/* Larger, readable festival header typography. */
.janvey-institution p { font-size:20px; letter-spacing:2px; line-height:1.4; }
.janvey-institution h2 { font-size:clamp(30px,3vw,48px); line-height:1.18; }
.janvey-institution span:not(.janvey-crest) { font-size:17px; line-height:1.5; }
.janvey-hero-overline { font-size:18px; letter-spacing:3px; }
.janvey-hero-identity h1 { font-size:clamp(76px,7.5vw,124px); }
.janvey-hero-tagline { font-size:28px; }
.janvey-hero-explore { font-size:17px; padding:16px 28px; }
.janvey-hero-ribbon { font-size:15px; }
@media(max-width:700px) {
  .janvey-institution p { font-size:12px; letter-spacing:.5px; }
  .janvey-institution h2 { font-size:19px; line-height:1.2; }
  .janvey-institution span:not(.janvey-crest) { font-size:12px; }
  .janvey-hero-overline { font-size:12px; letter-spacing:1.5px; }
  .janvey-hero-identity h1 { font-size:76px; }
  .janvey-hero-tagline { font-size:22px; }
  .janvey-hero-explore { font-size:16px; }
  .janvey-hero-ribbon { font-size:12px; }
}
@media(max-width:480px) {
  .janvey-institution { grid-template-columns:65px minmax(0,1fr) 65px; padding:0 12px; }
  .janvey-crest { width:65px; height:65px; }
  .janvey-institution h2 { font-size:17px; }
  .janvey-hero-identity h1 { font-size:68px; }
}

/* Empty recovered overlay must not reserve a viewport below the footer. */
#main > #overlay:empty { display:none; min-height:0; height:0; }
.janvey-footer .janvey-maker-credit { font-size:clamp(24px,2.4vw,36px); line-height:1.4; font-weight:500; color:white; text-align:center; margin:12px 0; }
.janvey-maker-credit strong { color:#f5d68b; font-weight:800; }
@media(max-width:700px) { .janvey-footer .janvey-maker-credit { font-size:26px; width:100%; } }
a.janvey-register { display:inline-block; text-decoration:none; cursor:pointer; }
.janvey-footer > a:first-child { font-size:clamp(24px,2.4vw,36px); }
@media(max-width:700px) { .janvey-footer > a:first-child { font-size:26px; } }
/* Continuous emblem motion and staggered scroll reveals. */
.janvey-emblem-wrap img { animation:janvey-emblem-in 1s ease-out both, janvey-logo-drift 7s ease-in-out 1s infinite; transform-origin:50% 52%; }
@keyframes janvey-logo-drift {
  0%,100% { transform:translateY(0) rotate(-2deg) scale(1); }
  50% { transform:translateY(-12px) rotate(2deg) scale(1.025); }
}
.janvey-reveal { opacity:0; transform:translateY(42px) scale(.98); transition:opacity 750ms ease var(--reveal-delay,0ms),transform 900ms cubic-bezier(.16,1,.3,1) var(--reveal-delay,0ms); }
.janvey-reveal.janvey-reveal-visible { opacity:1; transform:none; }
@media(prefers-reduced-motion:reduce) {
  .janvey-emblem-wrap img { animation:none; transform:none; }
  .janvey-reveal { opacity:1; transform:none; transition:none; }
}
/* Keep the footer at the viewport bottom, outside transformed reveal sections. */
body { padding-bottom:110px; }
.janvey-footer { position:fixed; inset:auto 0 0; z-index:100; box-sizing:border-box; margin:0; padding:20px max(24px,calc((100% - 1150px)/2)); background:#10052ff5; border-top:1px solid #ffffff26; min-height:100px; }
.janvey-footer.janvey-reveal { opacity:1; transform:none; transition:none; }
@keyframes janvey-logo-drift { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-10px); } }
@media(max-width:700px) {
  body { padding-bottom:150px; }
  .janvey-footer { flex-direction:row; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:8px 16px; padding:12px 18px; min-height:130px; }
  .janvey-footer > a:first-child { font-size:24px; }
  .janvey-footer .janvey-maker-credit { order:3; width:100%; font-size:24px; margin:4px 0; }
}
/* Compact sticky footer on desktop and mobile. */
body:has(.janvey-footer) { padding-bottom:48px; background:#10052f; }
.janvey-footer { min-height:0; padding:10px max(20px,calc((100% - 1150px)/2)); gap:12px; background:#10052f; }
.janvey-footer > a:first-child,.janvey-footer .janvey-maker-credit { font-size:20px; line-height:1.3; }
.janvey-footer .janvey-maker-credit { margin:0; }
.janvey-footer > a:last-child { font-size:11px; }
.janvey-footer span { font-size:10px; }
@media(max-width:700px) {
  body:has(.janvey-footer) { padding-bottom:38px; }
  .janvey-footer { padding:9px 10px; gap:6px; flex-wrap:nowrap; }
  .janvey-footer > a:first-child { font-size:clamp(11px,3.25vw,14px); white-space:nowrap; }
  .janvey-footer .janvey-maker-credit { order:0; width:auto; font-size:clamp(9px,2.65vw,11px); line-height:1.3; margin:0; white-space:nowrap; letter-spacing:-.25px; }
  .janvey-footer > a:last-child { font-size:clamp(8px,2.2vw,10px); white-space:nowrap; }
  .janvey-footer span { font-size:7px; }
  .janvey-institution span:not(.janvey-crest) { display:block; white-space:nowrap; font-size:clamp(7px,2.15vw,10px); letter-spacing:0; }
}
