/* Visible atmosphere, with transform-only continuous movement. */
.campus-atmosphere{background:var(--paper);--living-color:var(--deep)}
.campus-storefront .utility{flex-wrap:wrap;gap:8px}.parent-university{font-weight:650}
.campus-storefront .brand-wordmark{font-size:23px;white-space:nowrap}.campus-storefront .brand-wordmark small{white-space:normal;max-width:225px;line-height:1.5}
@media(max-width:760px){.campus-storefront .utility .parent-university{width:100%;font-size:9px}.campus-storefront .brand-wordmark{font-size:21px}.campus-storefront .brand-wordmark small{max-width:175px;font-size:8px}}
.atmosphere-wash{opacity:1}
.wash-one{width:95vw;height:95vw;left:35vw;top:-35vw;background:radial-gradient(ellipse,color-mix(in srgb,var(--accent) 88%,transparent) 0%,color-mix(in srgb,var(--accent) 35%,transparent) 32%,transparent 68%);animation-duration:16s}
.wash-two{width:95vw;height:100vw;left:-48vw;top:5vh;background:radial-gradient(ellipse,color-mix(in srgb,var(--deep) 30%,transparent),transparent 65%);animation-duration:21s}
.wash-three{width:100vw;height:100vw;right:-35vw;bottom:-55vw;background:radial-gradient(ellipse,color-mix(in srgb,var(--accent) 75%,transparent),transparent 64%);animation-duration:24s}
.atmosphere-grid{opacity:.6;background-image:radial-gradient(color-mix(in srgb,var(--deep) 25%,transparent) 1px,transparent 1px),var(--motif);background-size:28px 28px,var(--motif-size);mask-image:linear-gradient(#0003,#0009 30%,#0005)}
.atmosphere-orbits{opacity:.2;stroke-width:1.1}
.atmosphere-particles i{opacity:.35;background:var(--deep);box-shadow:0 0 12px color-mix(in srgb,var(--accent) 60%,transparent)}
.living-ribbon{position:absolute;width:145vw;height:75vh;left:-20vw;top:32vh;border-radius:50%;border:1px solid color-mix(in srgb,var(--deep) 18%,transparent);background:linear-gradient(135deg,transparent 30%,color-mix(in srgb,var(--accent) 25%,transparent) 65%,transparent);transform:rotate(-18deg);animation:living-ribbon-drift 23s ease-in-out infinite alternate}
.living-ribbon.ribbon-two{top:70vh;left:-35vw;animation-delay:-11s;animation-direction:alternate-reverse;border-color:color-mix(in srgb,var(--deep) 10%,transparent)}
.living-orb{position:absolute;display:grid;place-items:center;width:150px;height:150px;border-radius:50%;border:1px solid color-mix(in srgb,var(--deep) 27%,transparent);color:color-mix(in srgb,var(--deep) 44%,transparent);font-size:65px;background:radial-gradient(circle,color-mix(in srgb,var(--accent) 28%,transparent),transparent 72%);animation:living-orb-drift 14s ease-in-out infinite alternate}
.living-orb:after{content:'';position:absolute;inset:12px;border:1px dashed currentColor;border-radius:50%;opacity:.45;animation:living-orbit-spin 45s linear infinite}
.living-orb.orb-one{left:-65px;top:20vh}.living-orb.orb-two{right:-65px;top:48vh;animation-delay:-6s}.living-orb.orb-three{left:18vw;bottom:-95px;width:210px;height:210px;animation-delay:-10s}
.campus-storefront .header,.campus-storefront .utility{background:color-mix(in srgb,var(--paper) 72%,transparent)}
.campus-storefront .campaign-slide{background:color-mix(in srgb,var(--soft) 82%,transparent)}
.campus-storefront .campaign-window{box-shadow:0 22px 80px color-mix(in srgb,var(--deep) 15%,transparent)}
.campus-storefront .visitor-guide,.campus-storefront .field-panel{background:color-mix(in srgb,var(--paper) 90%,transparent)}
.campus-storefront :is(.button,.actions>a,.field-tabs button,.role-tabs button,.guide-actions>a,.guide-actions>button,.edit-tabs button,.space-stops button,.experience-agenda-filters button){transition:transform .25s ease,box-shadow .25s ease,background .25s ease}
.campus-storefront :is(.button,.actions>a,.edit-tabs button):hover{transform:translateY(-3px);box-shadow:0 7px 18px color-mix(in srgb,var(--deep) 17%,transparent)}
.campus-storefront :is(button,.button):active{transform:translateY(1px) scale(.98)}
.campus-storefront :is(.guide-actions>a,.guide-actions>button,.space-stops button):hover{padding-left:8px;background:color-mix(in srgb,var(--accent) 16%,transparent)}
.campus-storefront .shop-nav a{position:relative;transition:color .2s}
.campus-storefront .shop-nav a:after{content:'';position:absolute;left:0;right:0;bottom:8px;height:2px;background:var(--deep);transform:scaleX(0);transform-origin:left;transition:transform .25s}
.campus-storefront .shop-nav a:hover:after{transform:scaleX(1)}
.campus-storefront :is(.product-card,.mood-card,.journey-path article,.experience-event){transition:transform .35s,box-shadow .35s,border-color .35s}
.campus-storefront :is(.mood-card,.journey-path article):hover{transform:translateY(-6px);box-shadow:0 20px 40px color-mix(in srgb,var(--deep) 12%,transparent)}
.campus-storefront .product-card:hover{border-color:color-mix(in srgb,var(--deep) 55%,transparent);box-shadow:0 18px 40px color-mix(in srgb,var(--deep) 12%,transparent)}
.campus-storefront .mood-card .mood-art{transition:transform .5s}.campus-storefront .mood-card:hover .mood-art{transform:rotate(20deg) scale(1.1)}
.campus-storefront :is(input,select,textarea){transition:box-shadow .2s,border-color .2s}
.campus-storefront :is(input,select,textarea):focus-visible{outline:2px solid var(--deep);outline-offset:4px;box-shadow:0 0 0 7px color-mix(in srgb,var(--accent) 25%,transparent)}
.campus-storefront .homepage-faq summary{transition:background .25s,padding .25s}.campus-storefront .homepage-faq summary:hover{background:color-mix(in srgb,var(--accent) 15%,transparent);padding-left:10px}
.campus-storefront .homepage-faq summary span{display:inline-block;transition:transform .3s}.campus-storefront .homepage-faq details[open] summary span{transform:rotate(45deg)}
.campus-storefront dialog[open]:not(#campus-popup){animation:living-dialog-in .3s ease-out}
.campus-storefront :is(#quiz-content,#compare-results,#search-results)>*{animation:living-content-in .35s ease-out both}
.campus-storefront .theme-option{transition:transform .25s,box-shadow .25s}.campus-storefront .theme-option:hover{transform:translateY(-4px);box-shadow:0 10px 25px #00000012}
.campus-storefront .living-visible :is(.section-heading,.experience-section-label,.visitor-heading,.space-story-copy,.journey-intro){animation:living-content-in .7s cubic-bezier(.2,.7,.2,1) both}
.campus-storefront .living-visible .section-heading h2 em{animation:living-emphasis-in .9s ease-out both}
.campus-storefront .living-visible .guide-symbol{animation:living-symbol-in .7s ease-out both}
.campus-storefront .ambience-toggle:not([aria-pressed=true])>span{animation:living-status-pulse 2.4s ease-in-out infinite}
html[data-mode=dark] .campus-atmosphere{--living-color:var(--accent)}
html[data-mode=dark] .living-orb{color:color-mix(in srgb,var(--accent) 60%,transparent);border-color:color-mix(in srgb,var(--accent) 35%,transparent)}
html[data-mode=dark] .atmosphere-orbits{color:var(--accent)}
@keyframes living-ribbon-drift{from{transform:translate(-2%,2%) rotate(-18deg)}to{transform:translate(5%,-8%) rotate(-9deg)}}
@keyframes living-orb-drift{from{transform:translate(0,0) rotate(-12deg)}to{transform:translate(24px,-44px) rotate(18deg)}}
@keyframes living-orbit-spin{to{transform:rotate(360deg)}}
@keyframes living-content-in{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes living-dialog-in{from{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:none}}
@keyframes living-emphasis-in{from{opacity:.4;transform:translateX(-12px)}to{opacity:1;transform:none}}
@keyframes living-symbol-in{from{transform:rotate(-35deg) scale(.65)}to{transform:none}}
@keyframes living-status-pulse{50%{transform:scale(.8);opacity:.55}}
@media(max-width:760px){.living-orb{width:95px;height:95px;font-size:42px}.living-orb.orb-one{left:-52px;top:30vh}.living-orb.orb-two{right:-48px;top:65vh}.living-orb.orb-three{display:none}.living-ribbon{width:190vw;left:-50vw;opacity:.7}.wash-one{width:150vw;height:150vw;top:-20vw}.wash-two{width:170vw;height:170vw;left:-100vw}.wash-three{width:160vw;height:160vw;bottom:-70vw}.campus-storefront :is(.mood-card,.journey-path article):hover{transform:none}}
html.motion-paused .campus-storefront .living-visible *,body.tab-hidden .campus-storefront .living-visible *{animation:none!important;opacity:1;transform:none}
html.motion-paused .campus-storefront :is(#quiz-content,#compare-results,#search-results)>*,html.motion-paused .campus-storefront dialog[open]{animation:none!important;opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.living-ribbon,.living-orb,.living-orb:after,.campus-storefront .living-visible *{animation:none!important;opacity:1;transform:none}}
