@font-face{font-family:'Pontano Sans';src:url('/assets/pontano-sans-latin.ttf') format('truetype');font-weight:400 700;font-style:normal;font-display:swap}
.eco-page{background:#080b0c}.eco-page main{padding-top:76px}.campus{position:relative;isolation:isolate;width:100%;height:min(calc(100svh - 76px),900px);min-height:540px;overflow:hidden;background:#77796c;font-family:inherit;--campus-gold:#f3d29a}.campus-viewport{position:absolute;inset:0;overflow:hidden;background:#77796c}.campus-image{opacity:1;visibility:visible;aspect-ratio:1855/848}.campus-image{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:50% 50%;transition:filter .3s}.campus-stage{position:absolute;visibility:hidden}.campus.ready .campus-stage{visibility:visible}.campus-zone{position:absolute;display:block;background:transparent;border:0;padding:0;cursor:pointer;touch-action:manipulation}.campus-veil{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(4,9,11,.78) 0%,rgba(4,9,11,.6) 15%,rgba(4,9,11,.13) 29%,transparent 39%);z-index:1}.campus-intro{position:absolute;top:5%;left:3.2%;width:min(29%,420px);z-index:2;pointer-events:none;color:#fffaf0}.campus-kicker{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#f3d29a;margin:0 0 16px}.campus-intro h1{font-family:inherit;font-size:clamp(25px,2.05vw,40px);font-weight:500;line-height:1.13;letter-spacing:-.035em;margin:0 0 18px;text-shadow:0 1px 12px #0007}.campus-intro>p:last-child{font-size:clamp(12px,.92vw,16px);line-height:1.55;max-width:350px;margin:0;color:#f0eee6;text-shadow:0 1px 9px #0009}.campus-modes{position:absolute;right:2.2%;top:2%;display:flex;align-items:center;gap:7px;padding:5px 9px;background:#071013de;border:1px solid #ffffff27;border-radius:5px;z-index:5;box-shadow:0 5px 24px #0002}.campus-modes button{font:inherit;color:#d0d5d1;background:transparent;border:0;border-bottom:2px solid transparent;padding:10px 11px;cursor:pointer;font-size:13px}.campus-modes button[aria-pressed=true]{color:#ffe4b8;border-bottom-color:#e6c185}.campus button:focus-visible,.campus a:focus-visible{outline:3px solid #fff1b8;outline-offset:3px}.campus button,.campus a{touch-action:manipulation}.campus-bottom{position:absolute;left:3.2%;right:2.2%;bottom:20px;display:flex;gap:24px;align-items:center;justify-content:space-between;z-index:4;pointer-events:none}.campus-bottom>*{pointer-events:auto;color:#fff5e4;background:#061013e8;border:1px solid #ffffff32;padding:12px 16px;border-radius:4px;text-decoration:none;font:inherit;font-size:12px;min-height:44px;box-shadow:0 5px 20px #0002}.campus-bottom button{cursor:pointer}.campus-invitation{letter-spacing:.06em}.campus-invitation span{margin-left:14px}.campus-tip{position:absolute;z-index:6;max-width:310px;width:max-content;padding:14px 18px;color:#fff6e5;background:#0b1315f5;border:1px solid #d8bd8166;border-radius:4px;box-shadow:0 8px 30px #0004;pointer-events:none}.campus-tip strong{display:block;font-size:18px;font-weight:500}.campus-tip span{display:block;font-size:13px;line-height:1.5;color:#deded2;margin-top:5px}.campus-tip[hidden],.campus-panel[hidden],.campus-method[hidden],.campus-needs[hidden],.campus [hidden]{display:none!important}
.campus-panel{position:absolute;top:0;right:0;bottom:0;z-index:8;width:min(405px,36%);padding:28px 28px 24px;overflow:auto;background:#0b1315f7;border-left:1px solid #cfb78166;box-shadow:-16px 0 60px #0004;scrollbar-color:#737b72 #121a1b}.campus.panel-left .campus-panel{left:0;right:auto;border-left:0;border-right:1px solid #cfb78166}.campus.panel-left .campus-intro{visibility:hidden}.campus.panel-open .campus-modes{visibility:hidden}.campus-panel h2{font-size:30px;font-weight:500;line-height:1.12;margin:8px 0 12px;letter-spacing:-.025em}.campus-panel h3{font-size:15px;margin:26px 0 10px;color:#edd7b0;font-weight:600}.campus-panel p{font-size:15px;line-height:1.6;color:#d2d8d1}.campus-panel .campus-promise{font-size:19px;line-height:1.4;color:#fff4dd}.campus-close{display:block;color:#e5d7b5;background:none;border:0;border-bottom:1px solid #ffffff27;min-height:44px;padding:0 0 14px;margin-bottom:24px;cursor:pointer;font:inherit;font-size:13px;width:100%;text-align:left}.campus-panel .campus-kicker{font-size:10px;color:#d0bc92}.campus-projects{list-style:none;padding:0;margin:0}.campus-projects li{padding:10px 0;border-top:1px solid #ffffff24}.campus-projects a{display:flex;align-items:center;justify-content:space-between;min-height:44px;color:#f6e7c9;text-decoration:none;font-size:18px}.campus-projects li>span{display:block;font-size:13px;color:#b8c3b9;line-height:1.55}.campus-relations{display:flex;flex-wrap:wrap;gap:7px}.campus-relations button{background:#22302b;border:1px solid #7c89744d;color:#efdfbb;padding:10px 12px;min-height:44px;font:inherit;font-size:13px;cursor:pointer;border-radius:3px}.campus-deeper{display:block;margin-top:28px;min-height:44px;color:#ffe0a4;font-size:14px;text-underline-offset:4px}.campus-method,.campus-needs{position:absolute;z-index:4;left:3.2%;top:31%;width:min(380px,31%);background:#0a1417ef;border:1px solid #ffffff26;border-radius:4px;padding:20px 22px;color:#f7ebd3;max-height:calc(69% - 86px);overflow:auto}.campus-method h2,.campus-needs h2{font-size:20px;line-height:1.2;font-weight:500;margin:0 0 16px}.campus-method-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.campus-method-controls button{background:#c7aa70;color:#101810;border:1px solid #c7aa70;padding:10px 12px;min-height:44px;font:inherit;font-size:13px;cursor:pointer;border-radius:3px}.campus-method-controls [data-method-stop]{background:transparent;color:#ffdd9d}.campus-method ol{list-style:none;padding:0;margin:14px 0;display:grid;grid-template-columns:1fr 1fr;gap:6px}.campus-method li{min-width:0}.campus-method li button{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;background:#111e20;color:#bcc7be;border:1px solid #ffffff1f;padding:9px 10px;text-align:left;font:inherit;font-size:13px;cursor:pointer}.campus-method li button span{color:#d1bc8d;font-size:10px}.campus-method li button[aria-pressed=true]{color:#fff0d4;background:#39432f;border-color:#b9ae84}.campus-method-caption,.campus-need-caption{font-size:14px;line-height:1.5;color:#d5ddcf;margin:15px 0 0;min-height:42px}.campus-needs{top:28%;max-height:calc(72% - 80px)}.campus-needs>div{display:grid;gap:3px}.campus-needs button{display:flex;align-items:baseline;gap:12px;min-height:44px;padding:10px 5px;background:none;border:0;border-bottom:1px solid #ffffff22;color:#c6d0c7;font:inherit;text-align:left;font-size:14px;line-height:1.35;cursor:pointer}.campus-needs button span{font-size:10px;color:#c7b887}.campus-needs button[aria-pressed=true]{color:#ffe6b3;background:#263328}.campus[data-mode=needs] .campus-intro>p:last-child,.campus[data-mode=method] .campus-intro>p:last-child{visibility:hidden}.campus[data-mode=needs] .campus-invitation,.campus[data-mode=method] .campus-invitation{visibility:hidden}.campus[data-mode=needs] [data-method-shortcut],.campus[data-mode=method] [data-method-shortcut]{visibility:hidden}.campus-small-screen{display:none}.campus-noscript{position:absolute;bottom:70px;left:3%;z-index:7;max-width:450px;background:#0b1415;color:#f4eddc;padding:18px}.campus-noscript a{color:#f5d599}.campus:not(.ready) .campus-modes,.campus:not(.ready) .campus-bottom button{display:none}.eco-page .eco-directory{scroll-margin-top:90px}


@media(max-width:1300px){.campus-intro{width:31%;top:4%}.campus-intro h1{font-size:27px}.campus-intro>p:last-child{font-size:12px;max-width:280px}.campus-modes{right:1.5%;top:12px;gap:0}.campus-modes button{font-size:12px;padding:9px}.campus-panel{width:36%;padding:22px}.campus-method,.campus-needs{width:32%;left:2%;padding:15px;top:31%}.campus-needs h2,.campus-method h2{font-size:18px}.campus-needs button{font-size:13px;padding:8px 3px}.campus-bottom{gap:12px;left:2%;right:2%}.campus-bottom>*{padding:10px 12px;font-size:11px}.campus-tip{max-width:265px}.campus-tip strong{font-size:16px}}
@media(max-width:1023px){.campus{height:auto;min-height:0;padding-top:0;overflow:visible;background:#0b1112}.campus-viewport{position:relative;width:100%;aspect-ratio:1855/848}.campus-image{object-fit:contain}.campus-stage,.campus-veil,.campus-modes,.campus-bottom,.campus-method,.campus-needs,.campus-panel,.campus-tip{display:none!important}.campus-intro{position:relative;left:auto;top:auto;width:auto;padding:24px}.campus-intro h1{font-size:30px}.campus-intro>p:last-child{font-size:15px;max-width:600px;visibility:visible!important}.campus-small-screen{display:block;margin:0;padding:0 24px 28px;font-size:14px;color:#c8cdbd;line-height:1.6}.campus-small-screen a{display:block;color:#f3d198;padding-top:12px}.eco-page main{padding-top:76px}}
@media(prefers-reduced-motion:reduce){.campus *,.campus *:before,.campus *:after{animation:none!important;transition:none!important}.eco-page{scroll-behavior:auto}html:has(.eco-page){scroll-behavior:auto}}


/* Keep the title veil away from the library and leave room for the site toolbar. */
.campus-veil{mask-image:linear-gradient(to bottom,#000 0%,#000 27%,transparent 64%)}
.campus-bottom{right:90px}

.campus,.campus-viewport{overflow:clip}.campus-zone{scroll-margin-top:90px}@media(max-width:1023px){.campus{overflow:visible}}

/* Desktop refinement: one reading bar, light along paths and quiet local life. */
.campus-modes{top:auto;bottom:24px;right:auto;left:50%;transform:translateX(-50%);white-space:nowrap;gap:8px;padding:7px 13px;border-radius:7px;background:#0a1215ed;z-index:9}
.campus-modes button{font-size:14px;padding:11px 14px}.campus-modes .campus-motion{font-size:18px;min-width:42px;border-left:1px solid #ffffff26;padding:6px 12px;color:#cbbd9c}
.campus.panel-open .campus-modes{display:flex}.campus-hint{position:absolute;bottom:91px;left:50%;transform:translateX(-50%);font-size:13px;color:#fff2d7;text-shadow:0 2px 8px #000;pointer-events:none;margin:0;white-space:nowrap}.campus.panel-open .campus-hint,.campus[data-mode=method] .campus-hint,.campus[data-mode=needs] .campus-hint{visibility:hidden}
.campus-panel{top:26px;bottom:104px;height:auto;width:min(466px,41.4%);max-height:740px;padding:28px 32px;border:1px solid #cfc8ab38;border-radius:6px;background:#0b1515f7;scrollbar-width:thin;scrollbar-color:#899381 #14201c;scrollbar-gutter:stable;overscroll-behavior:contain}.campus-panel p{font-size:16px;line-height:1.7;color:#e0e6dc}.campus-panel h2{font-size:32px;line-height:1.15;margin:16px 0 20px}.campus-panel .campus-promise{font-size:22px;line-height:1.4;color:#ffebbf}.campus-panel h3{font-size:16px;line-height:1.5;margin:26px 0 12px;color:#f5ddb3}.campus-panel .campus-kicker{font-size:11px;letter-spacing:.1em;margin-top:24px}.campus-close{position:sticky;top:-28px;z-index:2;background:#15221f;color:#fff0cd;border:1px solid #aeac8755;border-radius:4px;min-height:48px;padding:12px 15px;font-size:15px;width:100%}.campus-projects li{padding:16px 0}.campus-projects a{font-size:20px;color:#ffe5b2;text-decoration:underline;text-decoration-color:#8b825b;text-underline-offset:5px}.campus-projects li>span{font-size:15px;line-height:1.6;margin-top:6px}.campus-deeper{font-size:16px;line-height:1.6}.campus-relations button{font-size:14px}
.campus-method,.campus-needs{max-height:calc(69% - 105px);scrollbar-width:thin;scrollbar-color:#899381 #14201c}

.campus-intro-label{position:absolute;transform:translate(-50%,-50%);padding:8px 12px;background:#091417e8;border:1px solid #e4d6b655;color:#fff0d2;font-size:14px;line-height:1.3;max-width:220px;text-align:center;pointer-events:none;opacity:0;transition:opacity .25s;z-index:3}.campus-intro-label.visible{opacity:1}.campus.introducing .campus-intro{animation:campus-title-in .6s ease-out both}
.campus-ambience{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity 1.5s}.ambient-ready .campus-ambience{opacity:1}.campus.panel-open .campus-ambience,.campus[data-mode=needs] .campus-ambience,.campus[data-mode=method] .campus-ambience{opacity:1}.campus.suspended *{animation-play-state:paused!important}
@keyframes campus-title-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}




@media(min-width:1024px) and (max-width:1300px){.campus-panel{padding:22px 25px;width:41.4%;top:18px}.campus-close{top:-22px}.campus-panel h2{font-size:27px}.campus-panel .campus-promise{font-size:20px}.campus-modes button{font-size:13px;padding:10px}.campus-modes{gap:3px}.campus-method,.campus-needs{top:31%;max-height:calc(69% - 104px)}}
@media(max-width:1023px){.campus-hint,.campus-ambience,.campus-motion{display:none}.campus.panel-open .campus-modes{display:none}}
@media(prefers-reduced-motion:reduce){.campus *{animation:none!important;transition:none!important}.campus-motion{display:none}}

.eco-transition{max-width:none;margin:auto;padding:80px max(clamp(24px,5vw,80px),calc((100% - 1440px)/2 + 80px)) 25px}.eco-transition .eco-directory-heading{max-width:850px;margin-bottom:20px}.eco-transition h2{margin:22px 0;font-size:clamp(36px,3.3vw,54px)}.eco-transition p{font-size:18px;line-height:1.8}.eco-transition .eco-control{margin-top:15px;font-size:16px}
.eco-project{padding:24px;background:#101a18;border-color:#33433b;transition:transform .25s,border-color .25s,background .25s;overflow:hidden}.eco-project-top{display:block!important}.eco-project-top img,.eco-primary .eco-project-top img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;object-position:50% 50%;margin:0 0 24px;border-radius:3px;transition:transform .5s}.eco-primary{background:#14201c;border-color:#6c7661}.eco-brand{font-size:23px;line-height:1.3;color:#f2e5c3;margin-bottom:16px}.eco-project h3,.eco-primary h3{font-size:21px;font-weight:500;line-height:1.45;margin-bottom:14px}.eco-description{font-size:16px;line-height:1.75;color:#bfcac1;margin:0 0 24px}.eco-functions summary,.eco-visit{font-size:15px}.eco-functions ul,.eco-relation{font-size:15px}.eco-project:hover,.eco-project:focus-within{border-color:#b9b38a;transform:translateY(-3px)}.eco-project:hover img{transform:scale(1.015)}.eco-project.eco-connected{border-color:#c2ba94;background:#1b2923}.eco-territory.eco-connected>summary{color:#ead7a6}.eco-project-grid{gap:24px;grid-template-columns:repeat(2,minmax(0,1fr))}.eco-primary{grid-column:auto}.eco-primary .eco-brand{font-size:27px}.eco-primary h3{font-size:24px}.eco-project.eco-primary:first-child:nth-last-child(3){grid-column:1/-1}.eco-project .eco-visit{margin-top:18px;color:#ffe1a2}.eco-project img[data-fallback]{object-fit:contain}
@media(min-width:1500px){.eco-project-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.eco-primary{grid-column:span 2}}
@media(max-width:900px){.eco-project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.eco-primary{grid-column:auto!important}}
@media(max-width:540px){.eco-project-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.eco-project:hover,.eco-project:focus-within{transform:none}.eco-project:hover img{transform:none}}

.campus.panel-open .campus-modes{visibility:visible}


@media(min-width:1024px){.eco-project-grid:has(>.eco-project:nth-child(2):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}.eco-project-grid:has(>.eco-project:nth-child(2):last-child)>.eco-primary{grid-column:auto}}

@media(min-width:1024px) and (max-width:1300px){.campus-panel{width:min(466px,41.4%)}}

/* Iteration 3: official site shell is inherited from styles.css without a custom skin. */
.eco-page{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.campus,.eco-directory,.eco-transition,.eco-closing{font-family:'Pontano Sans',Inter,ui-sans-serif,system-ui,sans-serif}
.eco-page #contact{scroll-margin-top:90px}.eco-page #contact:focus{outline:none}.eco-page #contact:focus-visible{outline:2px solid var(--signal);outline-offset:-4px}
.campus-intro h1>span{display:block}


@media(min-width:1024px) and (prefers-reduced-motion:no-preference){.campus.awaiting-intro .campus-intro,.campus.awaiting-intro .campus-hint{opacity:0}}
.campus.introducing .campus-intro{animation:none}
.campus.introducing .campus-intro>.campus-kicker{animation:campus-awake-copy .8s 1.2s cubic-bezier(.22,.61,.36,1) both}
.campus.introducing .campus-intro h1{opacity:1}
.campus.introducing .campus-intro h1>span{animation:campus-awake-copy .85s 1.7s cubic-bezier(.22,.61,.36,1) both}
.campus.introducing .campus-intro h1>span:nth-child(2){animation-delay:2s}.campus.introducing .campus-intro h1>span:nth-child(3){animation-delay:2.3s}
.campus.introducing .campus-intro>p:last-child{animation:campus-awake-copy .8s 2.8s cubic-bezier(.22,.61,.36,1) both}
.campus.introducing .campus-hint{animation:campus-awake-copy .7s 8.8s ease both;translate:-50% 0;transform:none}
.campus-intro-label{transition:opacity .8s ease,translate .8s ease;translate:0 3px}.campus-intro-label.visible{translate:0 0}
.campus-water-light{position:absolute;left:64%;top:58%;width:.6%;height:36%;background:linear-gradient(180deg,transparent,#ffecc779,transparent);mask-image:linear-gradient(90deg,transparent,#000,transparent);transform:rotate(15deg);opacity:.04;animation:campus-water-reflection 17s ease-in-out infinite}.campus.panel-open .campus-water-light,.campus[data-mode=method] .campus-water-light,.campus[data-mode=needs] .campus-water-light{animation-play-state:paused}
@keyframes campus-awake-image{from{opacity:0}to{opacity:1}}
@keyframes campus-awake-copy{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}



@keyframes campus-water-reflection{0%,25%,85%,100%{opacity:.025}49%{opacity:.12}68%{opacity:.06}}

/* Natural editorial flow; only the final link absorbs row-height differences. */
.eco-project-grid,.eco-project-grid:has(>.eco-project:nth-child(2):last-child){grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:auto;gap:24px;align-items:stretch}
.eco-project,.eco-project.eco-primary,.eco-project.eco-primary:first-child:nth-last-child(3),.eco-project-grid:has(>.eco-project:nth-child(2):last-child)>.eco-primary{grid-column:auto;display:flex;flex-direction:column;justify-content:flex-start;gap:0;padding:22px;height:auto;min-height:0}
.eco-project-top{display:contents!important}.eco-project-top img,.eco-primary .eco-project-top img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;margin:0 0 16px}
.eco-project .eco-brand,.eco-project.eco-primary .eco-brand{font-size:22px;line-height:1.4;margin:0 0 12px;overflow:visible}
.eco-project h3,.eco-project.eco-primary h3{font-size:20px;line-height:1.45;margin:0 0 8px;overflow:visible}
.eco-project .eco-description{font-size:15px;line-height:1.5;margin:0 0 18px;overflow:visible}
.eco-project .eco-functions{margin:0 0 18px;min-height:0;max-height:none;overflow:visible;align-self:stretch}
.eco-functions summary{position:static;background:transparent;font-size:14px}.eco-project .eco-functions ul,.eco-project .eco-relation{font-size:14px;line-height:1.5}
.eco-project .eco-visit{margin: auto 0 0;padding:12px 0 0;min-height:44px;line-height:1.45;font-size:14px;justify-content:flex-start;gap:10px}
@media(max-width:1100px){.eco-project-grid,.eco-project-grid:has(>.eco-project:nth-child(2):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.eco-project-grid,.eco-project-grid:has(>.eco-project:nth-child(2):last-child){grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.eco-waking .campus-image,.eco-waking .campus-intro>*,.eco-waking .campus-intro h1>span,.eco-waking .campus-hint{opacity:1}.campus *{animation:none!important;transition:none!important}.campus-intro h1>span{transform:none}}




.campus-water-light{left:67.9%;top:56.5%;width:.6%;height:34%;transform:rotate(8deg)}
/* Profile sprite and three individually masked foliage zones. */
.campus-foliage-mesh{position:absolute;pointer-events:none}
.campus-bird-flight{position:absolute;left:29%;top:2%;width:var(--bird-size,32px);height:var(--bird-size,32px);opacity:0;pointer-events:none}
.campus-bird-flight.flying{animation:campus-profile-flight var(--flight-time,12s) linear both}
.campus-bird-profile{width:100%;height:100%;transform:scaleX(var(--flight-direction,1))}
.campus-bird-bob{width:100%;height:100%;overflow:hidden;animation:campus-flight-bob var(--wing-time,.9s) ease-in-out infinite}
.campus-bird-bob img{display:block;width:800%;height:100%;max-width:none;animation:campus-profile-frames var(--wing-time,.9s) steps(8,end) infinite}
.campus-bird-flight:not(.flying) *{animation-play-state:paused}
.campus-bird-flight.gliding .campus-bird-bob img{animation:none;transform:translateX(-25%)}
.campus-bird-flight.gliding .campus-bird-bob{animation-play-state:paused}
.campus-bird-flight.flying .campus-bird-profile{animation:campus-swift-depth var(--flight-time) ease-in-out both}
@keyframes campus-swift-depth{0%,100%{transform:scaleX(var(--flight-direction,1)) scale(.88)}45%{transform:scaleX(var(--flight-direction,1)) scale(1)}}
.campus.suspended .campus-bird-flight{display:none}
@keyframes campus-profile-frames{to{transform:translateX(-100%)}}
@keyframes campus-flight-bob{0%,100%{translate:0 0}45%{translate:0 -1px}}
@keyframes campus-profile-flight{0%{left:var(--flight-start);top:var(--flight-top);opacity:0;transform:translateY(0)}12%{opacity:.76}45%{transform:translateY(var(--flight-curve))}85%{opacity:.76}100%{left:var(--flight-end);top:var(--flight-top);opacity:0;transform:translateY(5px)}}
@media(prefers-reduced-motion:reduce){.campus-foliage-mesh,.campus-bird-flight{display:none!important}}
.campus-bird-flight{visibility:hidden}.campus-bird-flight.sprite-ready{visibility:visible}
.campus-bird-flight.flight-clipped{visibility:hidden}

.campus-image{z-index:0}.campus-stage{z-index:1}.campus-ambience{z-index:1}.campus-zone{z-index:2}
.campus-hint{z-index:4}
/* Cover links occupy precisely the former image slot. */
.eco-project .eco-cover{display:block;flex-shrink:0;width:100%;aspect-ratio:16/9;margin:0 0 16px;border-radius:3px;cursor:pointer;overflow:hidden}
.eco-project .eco-cover img{display:block;width:100%;height:100%;margin:0;transition:transform 300ms ease;transform:scale(1)}
.eco-project:hover .eco-cover img{transform:scale(1.015)}
.eco-project .eco-cover:hover img,.eco-project .eco-cover:focus-visible img{transform:scale(1.02)}
.eco-cover:focus-visible{outline:3px solid #ffe1a2;outline-offset:4px}
.campus-water{position:absolute;overflow:hidden;pointer-events:none}
.campus-water-texture{animation:campus-water-down 2.8665s linear infinite;transform-box:view-box;will-change:transform,opacity}
.water-texture-1{animation-duration:3.7665s;animation-delay:-1.883s}
.campus-water-glint{fill:none;stroke:#f7e7c9;stroke-width:.8;stroke-linecap:round;opacity:0;animation:campus-water-glide calc(var(--glint-time) / 2) calc(var(--glint-delay) / 2) linear infinite}
@keyframes campus-water-down{0%{transform:translateY(-6px);opacity:0}20%{opacity:.78}78%{opacity:.78}100%{transform:translateY(8px);opacity:0}}
@keyframes campus-water-glide{0%{transform:translateY(-9px);opacity:0}20%{opacity:.4}70%{opacity:.29}100%{transform:translateY(24px);opacity:0}}
@media(prefers-reduced-motion:reduce){.eco-project .eco-cover img{transition:none;transform:none!important}.campus-water{display:none!important}}

/* Invisible hit areas and room-local illumination. */
.campus .campus-zone,.campus .campus-zone:hover,.campus .campus-zone:focus,.campus .campus-zone:focus-visible{background:transparent!important;outline:none!important;box-shadow:none!important;border:0}
.campus-light{position:absolute;pointer-events:none;z-index:0;opacity:0;mix-blend-mode:screen;filter:blur(14px);background:radial-gradient(ellipse at 48% 45%,#deb16b99 0%,#d69a5044 24%,transparent 68%),radial-gradient(ellipse at 66% 35%,#ffd39270 0%,transparent 44%);mask-image:radial-gradient(ellipse at center,#000 5%,#000b 35%,transparent 72%);transition:opacity 500ms ease-out}
.campus-light.active{opacity:.65;transition-duration:300ms}.campus.panel-open .campus-light.active{opacity:.5}
.campus-light[data-glow=territoires]{background:radial-gradient(ellipse at 32% 46%,#e3c59688,transparent 65%);opacity:0}.campus-light[data-glow=territoires].active{opacity:.55}
.campus:has(.campus-zone:focus-visible) .campus-tip{outline:2px solid #edd09b;outline-offset:3px}
@media(max-width:1023px){.campus .campus-stage{display:block!important}.campus .campus-tip:not([hidden]){display:block!important;max-width:calc(100% - 28px);box-sizing:border-box}.campus .campus-light{filter:blur(5px)}.campus .campus-ambience{display:none!important}}
@media(prefers-reduced-motion:reduce){.campus-light{transition:none!important}}

.campus-preview{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:50% 50%;pointer-events:none}@media(max-width:1023px){.campus-preview{object-fit:contain}}
