/* Ethics International V5: spatial navigation, not a spinning 3D object.
   Layout/text remains editable in native WordPress/Spectra blocks. */
:root { --eth5-ink:#162239; --eth5-deep:#101d32; --eth5-sky:#7db8d0; --eth5-gold:#ddb979; --eth5-paper:#f5f7f8; --eth5-perspective:1400px; }
.eth5-spatial-trigger{display:inline-flex;align-items:center;gap:11px;appearance:none;background:#14253b;color:#fff;border:1px solid rgba(255,255,255,.3);border-radius:100px;padding:12px 18px;font-size:12px;font-family:inherit;font-weight:700;letter-spacing:.04em;line-height:1.2;cursor:pointer;box-shadow:0 8px 32px rgba(11,26,48,.18)}
.eth5-spatial-trigger:hover,.eth5-spatial-trigger:focus-visible{background:#205276;color:#fff;outline:2px solid #79c1d3;outline-offset:2px}
.eth5-spatial-trigger svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8}
.eth5-floating-trigger{position:fixed;z-index:99;left:24px;bottom:24px;max-width:calc(100vw - 60px)}
body.admin-bar .eth5-floating-trigger{bottom:27px}
body.eth5-map-open{overflow:hidden!important}
.eth5-map[hidden]{display:none!important}
.eth5-map{position:fixed;inset:0;z-index:999999;display:grid;place-items:center;isolation:isolate;background:#0c1728;color:#fff;overflow:auto;overscroll-behavior:contain;perspective:1200px}
.eth5-map::before{content:"";position:absolute;inset:0;background:url('students-campus.jpg') center center / cover no-repeat;filter:brightness(.19) saturate(.72);z-index:-3}
.eth5-map::after{content:"";position:absolute;inset:0;background:rgba(12,22,36,.65);z-index:-2}
.eth5-architecture{position:absolute;inset:0;overflow:hidden;pointer-events:none;perspective:600px;z-index:-1}
.eth5-tunnel{position:absolute;width:58%;height:54%;top:22%;left:21%;border:1px solid rgba(173,207,219,.23);transform:translateZ(var(--eth5-tz,0px)) scale(var(--eth5-ts,1));box-shadow:0 0 0 1px rgba(173,207,219,.1);transition:transform .6s ease}
.eth5-tunnel:nth-child(1){--eth5-tz:-450px;--eth5-ts:.55}.eth5-tunnel:nth-child(2){--eth5-tz:-300px;--eth5-ts:.72}.eth5-tunnel:nth-child(3){--eth5-tz:-140px;--eth5-ts:.91}.eth5-tunnel:nth-child(4){--eth5-tz:40px;--eth5-ts:1.1}
.eth5-world-floor{position:absolute;width:140%;height:50%;bottom:-15%;left:-20%;background:repeating-linear-gradient(90deg,transparent 0 8.4%,rgba(164,194,209,.14) calc(8.4% + 1px),transparent calc(8.4% + 2px) 16.8%),repeating-linear-gradient(0deg,transparent 0 14%,rgba(164,194,209,.10) calc(14% + 1px),transparent calc(14% + 2px) 28%);transform:rotateX(73deg);transform-origin:50% 100%;opacity:.9}
.eth5-map-shell{width:min(1260px,calc(100% - 64px));padding:74px 0 58px;position:relative;z-index:3;transform:translateZ(0)}
.eth5-map-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:52px}
.eth5-map-kicker{font-size:11px;text-transform:uppercase;letter-spacing:.20em;font-weight:760;color:#b4d2dd;margin:0 0 13px}
.eth5-map h2{font-family:inherit;color:white;font-weight:780;letter-spacing:-.07em;line-height:1.04;font-size:clamp(42px,6vw,81px);max-width:720px;margin:0}
.eth5-map-lead{color:#c4d4da;font-size:15px;line-height:1.5;margin:12px 0 0;max-width:500px}
.eth5-close{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.35);border-radius:50%;color:white;width:48px;height:48px;font-size:26px;line-height:1;cursor:pointer;flex-shrink:0}
.eth5-close:hover{background:rgba(255,255,255,.22)}
.eth5-map-doors{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;perspective:1200px;transform-style:preserve-3d}
.eth5-map-door{display:flex;flex-direction:column;justify-content:flex-end;position:relative;isolation:isolate;overflow:hidden;min-height:330px;padding:22px;color:#fff;text-decoration:none!important;background:#244054;border:1px solid rgba(255,255,255,.35);border-radius:8px;box-shadow:0 28px 60px rgba(0,0,0,.25);transform:translate3d(0,var(--eth5-lift,0px),var(--eth5-push,0px)) rotateY(var(--eth5-turn,0deg)) rotateX(var(--eth5-lean,0deg));transition:transform .6s cubic-bezier(.2,.8,.2,1),border-color .25s,box-shadow .25s;transform-style:preserve-3d;backface-visibility:hidden}
.eth5-map-door:nth-child(1){--eth5-turn:10deg;--eth5-push:-40px;--eth5-lift:16px}.eth5-map-door:nth-child(2){--eth5-turn:4deg;--eth5-push:20px}.eth5-map-door:nth-child(3){--eth5-turn:-4deg;--eth5-push:20px}.eth5-map-door:nth-child(4){--eth5-turn:-10deg;--eth5-push:-40px;--eth5-lift:16px}
.eth5-map-door::before{content:"";position:absolute;inset:0;background-image:var(--eth5-door-img);background-position:center;background-size:cover;z-index:-2;transition:transform .7s ease;transform:scale(1.02)}
.eth5-map-door::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(8,22,36,.93),rgba(8,22,36,.13) 75%);z-index:-1}
.eth5-map-door:hover,.eth5-map-door:focus-visible{--eth5-lift:-15px!important;--eth5-push:110px!important;--eth5-turn:0deg!important;--eth5-lean:0deg!important;border-color:rgba(255,255,255,.9);box-shadow:0 30px 90px rgba(0,0,0,.5);outline:2px solid #a5d9e1;outline-offset:3px}
.eth5-map-door:hover::before{transform:scale(1.11)}
.eth5-door-number{font-size:11px;letter-spacing:.2em;font-weight:760;color:#e7d1ac;margin-bottom:auto}
.eth5-map-door strong{font-size:clamp(19px,2.2vw,27px);line-height:1.15;letter-spacing:-.035em;color:#fff;display:block;max-width:270px}
.eth5-map-door small{color:#d2e0e6;font-size:12px;margin-top:10px;display:block;line-height:1.5}
.eth5-map-footer{margin-top:24px;display:flex;justify-content:space-between;gap:20px;align-items:center;color:#bbccd3;font-size:12px}
.eth5-map-footer a{color:white}
/* True spatial sensation on page navigation. Exit camera recedes and turns, entrance camera approaches. */
.eth5-camera-shell{perspective:var(--eth5-perspective);transform-style:preserve-3d;transform-origin:50% 40%;will-change:transform,opacity;backface-visibility:hidden}
.eth5-enabled.eth5-transition-exit .eth5-camera-shell{animation:eth5-camera-out .57s cubic-bezier(.35,.04,.74,.26) both;pointer-events:none}
.eth5-enabled.eth5-transition-enter .eth5-camera-shell{animation:eth5-camera-in .7s cubic-bezier(.12,.75,.2,1) both}
.eth5-transition-veil{position:fixed;z-index:999998;inset:0;background:#0e1e33;pointer-events:none;opacity:0;transition:opacity .47s ease;perspective:800px;overflow:hidden}
.eth5-transition-veil::before,.eth5-transition-veil::after{content:"";position:absolute;top:-24%;bottom:-24%;width:34%;border-left:1px solid rgba(190,226,232,.23);border-right:1px solid rgba(190,226,232,.23);pointer-events:none;transform:skewY(-7deg)}
.eth5-transition-veil::before{left:8%}.eth5-transition-veil::after{right:8%;transform:skewY(7deg)}
.eth5-transition-veil span{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:white;letter-spacing:.22em;text-transform:uppercase;font-size:12px;font-weight:700;white-space:nowrap}
.eth5-transition-exit .eth5-transition-veil{opacity:1}
.eth5-transition-enter .eth5-transition-veil{animation:eth5-veil-in .7s ease both}
@keyframes eth5-camera-out{0%{opacity:1;transform:translate3d(0,0,0) rotateY(0deg) scale(1)}65%{opacity:.82;transform:translate3d(-1%,0,-160px) rotateY(6deg) scale(.94)}100%{opacity:.15;transform:translate3d(-7%,0,-480px) rotateY(13deg) scale(.80)}}
@keyframes eth5-camera-in{0%{opacity:.12;transform:translate3d(5%,0,-260px) rotateY(-8deg) scale(.86)}100%{opacity:1;transform:translate3d(0,0,0) rotateY(0deg) scale(1)}}
@keyframes eth5-veil-in{0%{opacity:1}100%{opacity:0}}
/* 3D hero window: photograph, architectural frame and editable floating block cards. */
.eth4-hero{background:#f1f5f5!important;padding-top:90px!important;perspective:1300px}
.eth4-hero-columns{transform-style:preserve-3d;align-items:stretch!important}
.eth4-hero-columns>.wp-block-column:first-child{align-self:center}
.eth5-hero-world{height:clamp(505px,42vw,640px);min-width:0;position:relative;isolation:isolate;overflow:visible;perspective:1250px;transform-style:preserve-3d;--eth5-ambient-x:0px;--eth5-ambient-y:0px;--eth5-pull:0px}
.eth5-hero-image{position:absolute;inset:0;margin:0!important;overflow:hidden;border-radius:7px;box-shadow:0 36px 80px rgba(15,37,53,.21);transform:translate3d(calc(var(--eth5-ambient-x) * .28),calc(var(--eth5-ambient-y) * .18),-35px) scale(1.035);transition:transform .3s ease-out}
.eth5-hero-image img{width:100%!important;height:100%!important;object-fit:cover!important;object-position:54% center}
.eth5-world-outline{position:absolute;inset:8% 9% 8% 9%;pointer-events:none;border:1px solid rgba(255,255,255,.67);transform:translate3d(calc(var(--eth5-ambient-x) * -.40),calc(var(--eth5-ambient-y) * -.40),65px);z-index:3;border-radius:3px;box-shadow:0 0 0 10px rgba(255,255,255,.07)}
.eth5-hero-mini{position:absolute;z-index:4;padding:18px 19px;background:rgba(255,255,255,.96);border-radius:6px;box-shadow:0 19px 60px rgba(17,41,58,.24);width:min(270px,58%);transform:translate3d(calc(var(--eth5-ambient-x) * .55),calc(var(--eth5-ambient-y) * .45),125px);border:1px solid rgba(255,255,255,.87)}
.eth5-mini-one{left:-6%;bottom:10%}.eth5-mini-two{right:-4%;top:8%;width:min(220px,47%);transform:translate3d(calc(var(--eth5-ambient-x) * -.35),calc(var(--eth5-ambient-y) * -.28),90px)}
.eth5-hero-mini p{font-size:10px!important;letter-spacing:.1em;text-transform:uppercase;color:#627b89;font-weight:750;margin:0 0 9px!important}.eth5-hero-mini h3{font-size:21px!important;letter-spacing:-.05em;color:#173e5a!important;line-height:1.15;margin:0 0 12px!important}.eth5-hero-mini .wp-block-button__link{background:none!important;padding:0!important;color:#155e91!important;text-decoration:underline;text-underline-offset:4px;box-shadow:none!important;border:0!important;min-height:auto;font-size:12px!important}
.eth5-hero-cta{margin-top:18px!important}
.eth5-hero-cta .wp-block-button__link{background:#19354d!important;border-color:#19354d!important}
/* Per section: short depth approach, not endless scrolling tricks. */
.eth5-enabled .eth5-reveal{transform-origin:50% 45%;transition:transform .9s cubic-bezier(.2,.85,.2,1),opacity .9s ease;transform-style:preserve-3d}
.eth5-enabled .eth5-reveal:not(.eth5-visible){opacity:.60;transform:perspective(1200px) translate3d(0,48px,-95px) rotateX(4deg)}
.eth5-enabled .eth5-reveal.eth5-visible{opacity:1;transform:perspective(1200px) translate3d(0,0,0) rotateX(0deg)}
.eth5-enabled .eth4-destination-card{transform-style:preserve-3d;transition:transform .4s ease,box-shadow .4s ease;will-change:transform}
.eth5-enabled .eth4-destination-card:hover{transform:perspective(1000px) rotateX(3deg) translateZ(13px)!important;box-shadow:0 24px 60px rgba(19,42,56,.13)}
.eth5-prompt{display:inline-block;margin:18px 0 0!important;font-size:12px!important;letter-spacing:.04em;color:#346478;font-weight:730;text-underline-offset:4px}
.eth5-prompt a{color:inherit;text-decoration:underline}
/* Spatial overlay, hero and transitions respect reduced motion, low-end devices and editing. */
@media(max-width:1050px){.eth5-map-doors{grid-template-columns:repeat(2,minmax(0,1fr))}.eth5-map-door{min-height:230px}.eth5-map-shell{padding:30px 0}.eth5-hero-mini{left:0}.eth5-mini-two{right:0}}
@media(max-width:781px){.eth5-hero-world{height:clamp(350px,67vw,500px)}.eth5-hero-mini{left:1%}.eth5-mini-two{right:1%}.eth5-map-header{margin-bottom:27px}.eth5-map h2{font-size:46px}.eth5-floating-trigger{left:12px;bottom:13px;padding:11px 13px}.eth5-map-shell{width:calc(100% - 32px)}.eth5-map-door{--eth5-lift:0px!important;--eth5-turn:0deg!important;--eth5-push:0px!important}}
@media(max-width:600px){.eth5-map-doors{grid-template-columns:1fr 1fr;gap:11px}.eth5-map-door{min-height:208px;padding:13px}.eth5-map-door strong{font-size:18px}.eth5-map-door small{font-size:10px}.eth5-map h2{font-size:39px}.eth5-map-lead{font-size:13px}.eth5-map-shell{padding:22px 0}.eth5-map-header{margin-bottom:25px}.eth5-hero-world{height:370px}.eth5-hero-mini{padding:12px;width:185px}.eth5-mini-one{left:-1%;bottom:6%}.eth5-mini-two{right:-2%;top:9%;width:170px}.eth5-hero-mini h3{font-size:17px!important}.eth5-hero-mini p{font-size:8px!important}.eth5-hero-world{margin:0 10px}.eth5-map-footer{font-size:10px;display:block}}
@media(prefers-reduced-motion:reduce){.eth5-camera-shell,.eth5-transition-veil,.eth5-map-door,.eth5-hero-image,.eth5-hero-mini,.eth5-world-outline,.eth5-reveal,.eth4-destination-card{animation:none!important;transition:none!important;transform:none!important}.eth5-enabled .eth5-reveal:not(.eth5-visible){opacity:1!important}.eth5-map-door:hover{transform:none!important}}
body.block-editor-page .eth5-floating-trigger,body.block-editor-page .eth5-map{display:none!important}
