.campus-viewer-card{--viewer-glass-bg:#1c1c1e80;--viewer-glass-bg-hover:#1c1c1e9e;--viewer-glass-panel:#1c1c1e75;--viewer-glass-panel-strong:#1c1c1e99;--viewer-glass-soft:#ffffff1f;--viewer-glass-soft-hover:#fff3;--viewer-glass-text:#fffffff2;--viewer-glass-muted:#ffffffa3;--viewer-glass-edge:inset 0 .5px 0 #ffffff47, inset 0 0 0 .5px #ffffff1a;--viewer-glass-shadow:0 8px 24px #0000002e;--viewer-glass-shadow-active:0 12px 30px #00000042;--viewer-glass-panel-shadow:0 24px 60px #00000047;--viewer-spring:var(--spring-snappy,cubic-bezier(.2, .9, .3, 1.1));--viewer-spring-dur:var(--spring-snappy-dur,.45s);border-radius:var(--r-card,28px);min-height:clamp(380px,56vw,640px);box-shadow:0 0 0 .5px var(--sep,#00000014), 0 30px 70px -40px #00000073;isolation:isolate;background:#dfeff2;margin-top:0;position:relative;overflow:hidden}.campus-viewer-card--runtime{display:block}.campus-viewer-card:fullscreen{border-radius:0;width:100vw;height:100vh;min-height:100vh}.campus-viewer-fallback{position:absolute;inset:0}.spark-stage{background:#dfeff2;position:absolute;inset:0;overflow:hidden}.spark-stage__canvas{touch-action:none;width:100%;height:100%;display:block}.spark-stage__veil{pointer-events:none;opacity:.44;background:radial-gradient(circle at 50% 40%,#ffffff0a,#0b1d232e);position:absolute;inset:0}.spark-stage__chunk-loading{z-index:12;pointer-events:none;background:var(--viewer-glass-bg);min-height:24px;color:var(--viewer-glass-muted);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:999px;align-items:center;gap:7px;padding:5px 8px;font-size:11px;line-height:1;display:inline-flex;position:absolute;top:14px;left:14px;box-shadow:0 8px 20px #0a181e1a}.spark-stage__chunk-spinner{border:2px solid #eef4f647;border-top-color:#eef4f6b8;border-radius:999px;width:12px;height:12px;animation:.82s linear infinite spark-stage-chunk-spin}.spark-stage__chunk-text{white-space:nowrap;color:#eef4f6c2}.spark-stage__error{z-index:3;background:var(--bg,#fff);width:min(360px,100% - 48px);color:var(--danger,#7f1d1d);border-radius:20px;padding:18px;line-height:1.6;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 18px 48px #1321261f}.campus-viewer-loading{display:none!important}.scene-loading{z-index:8;isolation:isolate;opacity:1;background:radial-gradient(circle at 50% 42%,#ffffff13,#0000 34%),linear-gradient(#090d12 0%,#05080d 100%);justify-content:center;align-items:center;padding:22px;transition:opacity .52s cubic-bezier(.16,1,.3,1),filter .52s cubic-bezier(.16,1,.3,1);display:flex;position:absolute;inset:0;overflow:hidden}.scene-loading[data-phase=revealing]{opacity:0;filter:blur(3px)}.scene-loading__backdrop{pointer-events:none;filter:blur(18px);opacity:.72;background:radial-gradient(circle at 50% 46%,#ffffff1a,#0000 16%),radial-gradient(circle,#ffffff0a,#0000 42%);transition:opacity .48s cubic-bezier(.16,1,.3,1),transform .62s cubic-bezier(.16,1,.3,1);position:absolute;inset:0;transform:scale(1)}.scene-loading__cluster{z-index:1;width:min(300px,100vw - 48px);box-shadow:none;background:0 0;border-radius:0;flex-direction:column;align-items:center;gap:18px;padding:0;transition:opacity .42s cubic-bezier(.16,1,.3,1),transform .52s cubic-bezier(.16,1,.3,1);display:flex;position:relative;transform:translateY(0)scale(1)}.scene-loading[data-phase=revealing] .scene-loading__cluster{opacity:0;transform:translateY(-10px)scale(.98)}.scene-loading--zust .scene-loading__cluster{gap:26px;width:min(460px,100vw - 48px)}.scene-loading--zust[data-phase=exiting]{backface-visibility:hidden;contain:paint;will-change:transform}.scene-loading--zust[data-phase=exiting] .scene-loading__wordmark-fill,.scene-loading--zust[data-phase=exiting] .scene-loading__wordmark-shine,.scene-loading--zust[data-phase=exiting] .scene-loading__signature-letter{animation-play-state:paused}.scene-loading__wordmark{color:#0000;width:360px;height:92px;font-family:var(--font-sans);letter-spacing:0;-webkit-user-select:none;user-select:none;font-size:104px;font-weight:900;line-height:.88;position:relative}.scene-loading__wordmark>span{white-space:nowrap;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.scene-loading__wordmark-outline{color:#0000;-webkit-text-stroke:2px #ffffffad;text-shadow:0 0 24px #ffffff14}.scene-loading__wordmark-fill{color:#fff;clip-path:inset(0 calc(100% - var(--scene-loading-progress)) 0 0);filter:drop-shadow(0 0 12px #fff3);transition:clip-path .26s linear}.scene-loading--zust .scene-loading__wordmark-fill{clip-path:inset(0 100% 0 0);filter:none;will-change:clip-path;transition:none;animation:4s linear both scene-loading-wordmark-fill}.scene-loading__wordmark>.scene-loading__wordmark-shine{inset:-20px -28px}.scene-loading__wordmark-shine{color:#0000;-webkit-text-stroke:2.5px #fffffffa;filter:drop-shadow(0 0 5px #ffffffc7)drop-shadow(0 0 14px #ffffff47);animation:2.8s linear infinite scene-loading-wordmark-shine;-webkit-mask-image:linear-gradient(105deg,#0000 38%,#000 48% 52%,#0000 62%);mask-image:linear-gradient(105deg,#0000 38%,#000 48% 52%,#0000 62%);-webkit-mask-position:150% 0;mask-position:150% 0;-webkit-mask-size:260% 100%;mask-size:260% 100%}.scene-loading__signature{color:#ffffffd1;letter-spacing:0;text-shadow:0 6px 24px #ffffff1f;justify-content:center;align-items:baseline;min-height:24px;font-family:"Bodoni 72",Didot,Cormorant Garamond,Constantia,Georgia,serif;font-size:18px;font-style:italic;font-weight:500;line-height:1.25;display:flex}.scene-loading__signature-letter{opacity:0;filter:blur(5px);transform-origin:bottom;animation:.72s cubic-bezier(.16,1,.3,1) forwards scene-loading-signature-letter;animation-delay:var(--scene-loading-signature-delay);display:inline-block;transform:translateY(12px)rotateX(-48deg)}.scene-loading__mark{place-items:center;width:88px;height:88px;display:grid;position:relative}.scene-loading__mark-ring,.scene-loading__mark-core{border-radius:999px;position:absolute}.scene-loading__mark-ring{border:1px solid #ffffff38;animation:2.4s cubic-bezier(.16,1,.3,1) infinite scene-loading-ring;inset:0;box-shadow:0 0 36px #ffffff1f,inset 0 0 28px #ffffff0e}.scene-loading__mark-core{background:#ffffffe6;width:18px;height:18px;animation:1.8s ease-in-out infinite scene-loading-core;box-shadow:0 0 22px #ffffff61,0 0 68px #ffffff29}.scene-loading__readout{text-align:center;width:100%}.scene-loading__status-line{justify-content:center;align-items:baseline;gap:12px;display:flex}.scene-loading__status-line strong{color:#ffffffdb;letter-spacing:0;font-size:14px;font-weight:650;line-height:1.2}.scene-loading__percent{color:#fffffff5;font-variant-numeric:tabular-nums;letter-spacing:0;min-width:4ch;font-size:30px;font-weight:760;line-height:.95}.scene-loading__progress{width:min(248px,100%)}.scene-loading__progress-rail{background:#ffffff24;border:0;border-radius:999px;height:4px;position:relative;overflow:hidden}.scene-loading__progress-fill{width:var(--scene-loading-progress);border-radius:inherit;background:#ffffffe0;transition:width .26s cubic-bezier(.16,1,.3,1);position:absolute;inset:0 auto 0 0;box-shadow:0 0 18px #ffffff29}.scene-loading__progress-glow{left:var(--scene-loading-progress);pointer-events:none;background:radial-gradient(circle,#ffffff8a,#ffffff2e,#0000 72%);border-radius:999px;width:42px;height:14px;transition:left .26s cubic-bezier(.16,1,.3,1);position:absolute;top:50%;transform:translate(-50%,-50%)}.scene-loading__lod-estimate{width:min(180px,80%);margin-top:-8px}.scene-loading__lod-progress{background:#ffffff14;border:0;border-radius:999px;height:2px;overflow:hidden}.scene-loading__lod-progress-fill{width:var(--scene-loading-lod-progress);border-radius:inherit;background:#ffffff80;height:100%;transition:width .3s cubic-bezier(.16,1,.3,1);box-shadow:0 0 18px #ffffff29}.campus-viewer-fallback{z-index:2;place-content:center;padding:24px;display:grid}.campus-viewer-fallback>*{max-width:420px}.campus-viewer-fallback h2{margin:6px 0 8px}.campus-viewer-fallback p:not(.eyebrow){color:var(--label-2);line-height:1.7}.campus-viewer-tags{z-index:3;pointer-events:none;position:absolute;inset:0}.campus-viewer-tag{contain:layout paint style;background:var(--viewer-glass-bg-hover);max-width:180px;color:var(--viewer-glass-text);box-shadow:var(--viewer-glass-edge), var(--viewer-glass-shadow-active);text-shadow:0 1px 8px #0000003d;-webkit-backdrop-filter:none;backdrop-filter:none;cursor:pointer;pointer-events:none;transform-origin:50%;visibility:hidden;will-change:transform;white-space:nowrap;background-image:linear-gradient(#ffffff1a,#ffffff09);border:0;border-radius:999px;padding:8px 12px;font-size:12px;font-weight:600;line-height:1.2;transition:none;position:absolute;top:0;left:0;transform:translate(-9999px,-9999px)}.campus-viewer-tag:hover{background:var(--viewer-glass-panel-strong);background-image:linear-gradient(#ffffff21,#ffffff0a)}.campus-viewer-tag[data-screen-state=edge]{opacity:.72}.campus-viewer-tag[data-screen-state=selected]{background:var(--viewer-glass-panel-strong);background-image:linear-gradient(#ffffff21,#ffffff0a)}.campus-viewer-joystick-zone{z-index:4;touch-action:none;pointer-events:auto;width:116px;height:116px;position:absolute;bottom:22px;left:22px}.campus-viewer-joystick{background:var(--viewer-glass-bg);width:76px;height:76px;box-shadow:var(--viewer-glass-shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);opacity:.84;background-image:linear-gradient(#ffffff14,#ffffff06);border:0;border-radius:999px;margin:-38px 0 0 -38px;position:absolute;top:50%;left:50%}.campus-viewer-joystick.is-active{opacity:1}.campus-viewer-joystick-knob{background:var(--viewer-glass-soft);width:30px;height:30px;box-shadow:var(--viewer-glass-shadow);border:0;border-radius:999px;margin:-15px 0 0 -15px;position:absolute;top:50%;left:50%}.campus-viewer-tag-panel{z-index:8;background:var(--viewer-glass-panel);width:min(260px,100% - 32px);max-height:calc(100% - 102px);color:var(--viewer-glass-text);box-shadow:var(--viewer-glass-panel-shadow);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);transform-origin:100% 0;box-shadow:var(--viewer-glass-edge), var(--viewer-glass-panel-shadow);transition:width var(--viewer-spring-dur) var(--viewer-spring), max-height .55s var(--spring-smooth,ease), border-radius var(--viewer-spring-dur) var(--viewer-spring), background-color .3s ease;background-image:linear-gradient(#ffffff17,#ffffff06);border:0;border-radius:16px;flex-direction:column;gap:14px;display:flex;position:absolute;top:16px;right:16px;overflow:hidden}.campus-viewer-tag-panel.is-collapsed{background:var(--viewer-glass-bg);background-image:linear-gradient(#ffffff14,#ffffff06);border-radius:999px;gap:0;width:54px;max-height:54px}.campus-viewer-tag-panel-toggle{width:100%;min-height:44px;color:var(--viewer-glass-text);cursor:pointer;text-align:left;background:0 0;border:0;grid-template-columns:24px minmax(0,1fr) 18px;align-items:center;gap:8px;padding:8px 10px;font-size:13px;font-weight:600;display:grid}.campus-viewer-tag-panel-toggle svg:first-child{place-self:center}.campus-viewer-tag-panel.is-collapsed .campus-viewer-tag-panel-toggle{grid-template-columns:none;min-height:54px;padding:0;display:block;position:relative}.campus-viewer-tag-panel.is-collapsed .campus-viewer-tag-panel-toggle svg:first-child{width:21px;height:21px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.campus-viewer-tag-panel.is-collapsed .campus-viewer-tag-panel-toggle span,.campus-viewer-tag-panel.is-collapsed .campus-viewer-tag-panel-chevron{display:none}.campus-viewer-tag-panel-chevron{opacity:.72;color:var(--viewer-glass-muted);transition:transform var(--viewer-spring-dur) var(--viewer-spring), opacity .3s ease;justify-self:end;transform:rotate(90deg)}.campus-viewer-tag-panel.is-collapsed .campus-viewer-tag-panel-chevron{transform:rotate(0)}.campus-viewer-tag-panel-body{overscroll-behavior:contain;scrollbar-gutter:stable;opacity:1;scrollbar-width:thin;scrollbar-color:#ffffff6b transparent;transition:opacity .3s ease, transform var(--viewer-spring-dur) var(--viewer-spring);gap:6px;padding:0 10px 10px;display:grid;overflow-y:auto;transform:translateY(0)}.campus-viewer-tag-panel-body::-webkit-scrollbar{width:8px}.campus-viewer-tag-panel-body::-webkit-scrollbar-track{background:0 0}.campus-viewer-tag-panel-body::-webkit-scrollbar-thumb{background:#ffffff6b padding-box content-box;border:2px solid #0000;border-radius:999px;min-height:34px}.campus-viewer-tag-panel-body::-webkit-scrollbar-thumb:hover{background:#ffffff8f padding-box content-box}.campus-viewer-tag-panel.is-collapsed .campus-viewer-tag-panel-body{pointer-events:none;opacity:0;transform:translateY(-8px)}.campus-viewer-tag-panel-item{min-height:34px;padding:7px 10px 7px calc(10px + var(--tag-depth,0) * 14px);background:var(--viewer-glass-soft);color:var(--viewer-glass-text);box-shadow:none;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;text-align:left;transition:background-color .25s ease, transform var(--viewer-spring-dur) var(--viewer-spring);border:0;border-radius:999px;justify-content:flex-start;align-items:center;gap:8px;font-size:12.5px;font-weight:500;display:flex}.campus-viewer-tag-panel-item span{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.campus-viewer-tag-panel-item-chevron{opacity:.6;color:var(--viewer-glass-muted);transition:transform var(--viewer-spring-dur) var(--viewer-spring), opacity .25s ease;flex:none}.campus-viewer-tag-panel-item[data-parent-active=true] .campus-viewer-tag-panel-item-chevron{opacity:.86;transform:rotate(90deg)}.campus-viewer-tag-panel-item[data-depth="1"]{min-height:30px;font-size:12px;font-weight:500}.campus-viewer-tag-panel-item:hover,.campus-viewer-tag-panel-item[aria-current=true]{background:var(--viewer-glass-soft-hover);color:var(--viewer-glass-text);transform:translate(2px)}.campus-viewer-tag-panel-item[aria-current=true]{font-weight:600}.campus-viewer-tag-panel-item:active{transform:scale(.97)}.campus-viewer-tag-panel-empty{color:var(--viewer-glass-muted);padding:6px 10px 12px;font-size:12px}.campus-viewer-toolbar{z-index:6;gap:10px;display:flex;position:absolute;bottom:18px;left:50%;transform:translate(-50%)}.campus-viewer-tool-button{background:var(--viewer-glass-bg);width:40px;height:40px;color:var(--viewer-glass-text);box-shadow:var(--viewer-glass-edge), var(--viewer-glass-shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);cursor:pointer;transition:transform var(--viewer-spring-dur) var(--viewer-spring), background-color .3s ease, box-shadow .3s ease;background-image:linear-gradient(#ffffff14,#ffffff06);border:0;border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.campus-viewer-tool-button:hover,.campus-viewer-tool-button[aria-pressed=true]{background:var(--viewer-glass-bg-hover);box-shadow:var(--viewer-glass-edge), var(--viewer-glass-shadow-active);background-image:linear-gradient(#ffffff1f,#ffffff0a);transform:scale(1.06)}.campus-viewer-tool-button:active{transform:scale(.94)}.campus-viewer-ai-trigger{left:max(16px, env(safe-area-inset-left));top:max(16px, env(safe-area-inset-top));z-index:13;color:#fff;width:50px;height:50px;box-shadow:var(--viewer-glass-edge), 0 12px 28px -8px #5e5ce699;cursor:pointer;transition:transform var(--viewer-spring-dur) var(--viewer-spring), box-shadow .3s ease;background:linear-gradient(#ffffff38,#fff0 60%),linear-gradient(140deg,#0a84ff,#5e5ce6 55%,#bf5af2);border:0;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute}.campus-viewer-card:has(.campus-viewer-ai-trigger) .spark-stage__chunk-loading{left:80px}.campus-viewer-ai-trigger:hover,.campus-viewer-ai-trigger:focus-visible{box-shadow:var(--viewer-glass-edge), 0 16px 34px -8px #5e5ce6b3;transform:scale(1.07)}.campus-viewer-ai-trigger:active{transform:scale(.94)}.campus-viewer-ai-modal{z-index:20;-webkit-backdrop-filter:blur(16px)saturate(140%);backdrop-filter:blur(16px)saturate(140%);background:#0000006b;place-items:center;padding:32px;animation:.35s both viewer-ai-fade;display:grid;position:absolute;inset:0}@keyframes viewer-ai-fade{0%{opacity:0}}@keyframes viewer-ai-rise{0%{opacity:0;transform:translateY(18px)scale(.97)}}.campus-viewer-ai-dialog{border:.5px solid var(--sep,#0000001a);background:var(--bg,#fff);width:min(1120px,92vw);height:min(820px,100% - 16px);min-height:420px;animation:viewer-ai-rise .6s var(--spring-smooth,ease) both;border-radius:24px;grid-template-rows:auto minmax(0,1fr);display:grid;overflow:hidden;box-shadow:0 30px 90px #0006}.campus-viewer-ai-header{border-bottom:.5px solid var(--sep,#0000001a);background:var(--bg,#fff);min-height:58px;color:var(--label,#111);justify-content:space-between;align-items:center;gap:20px;padding:9px 12px 9px 20px;display:flex}.campus-viewer-ai-header>div{align-items:baseline;gap:12px;min-width:0;display:flex}.campus-viewer-ai-header strong{letter-spacing:-.02em;font-size:17px;font-weight:600}.campus-viewer-ai-header span{color:var(--label-3,#888);font-size:13px}.campus-viewer-ai-close{width:38px;height:38px;color:var(--label-2,#555);background:var(--fill-2,#7878801f);cursor:pointer;transition:background-color .25s ease, transform var(--viewer-spring-dur) var(--viewer-spring);border:0;border-radius:50%;flex:none;place-items:center;padding:0;display:grid}.campus-viewer-ai-close:hover,.campus-viewer-ai-close:focus-visible{color:var(--label,#111);background:var(--fill,#78788033);transform:scale(1.06)}.campus-viewer-ai-frame-wrap{background:#fff;min-height:0;position:relative}.campus-viewer-ai-frame{background:#fff;border:0;width:100%;height:100%;display:block}.campus-viewer-ai-loading{z-index:1;color:var(--label-2,#555);background:var(--bg,#fff);place-content:center;justify-items:center;gap:12px;font-size:13px;display:grid;position:absolute;inset:0}.campus-viewer-ai-loading span{border:2.5px solid var(--fill,#78788033);border-top-color:var(--accent,#0a84ff);border-radius:50%;width:30px;height:30px;animation:.72s linear infinite campus-viewer-ai-spin}@media (max-width:720px){.campus-viewer-ai-trigger{left:max(12px, env(safe-area-inset-left));top:max(12px, env(safe-area-inset-top));width:44px;height:44px}.campus-viewer-card:has(.campus-viewer-ai-trigger) .spark-stage__chunk-loading{left:70px}.campus-viewer-ai-modal{padding:max(8px, env(safe-area-inset-top)) max(8px, env(safe-area-inset-right)) max(8px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left))}.campus-viewer-ai-dialog{border-radius:14px;width:100%;height:100%;min-height:0}.campus-viewer-ai-header{min-height:52px;padding:7px 8px 7px 16px}.campus-viewer-ai-header>div{gap:1px;display:grid}.campus-viewer-ai-close{width:38px;height:38px}}@media (max-width:720px) and (orientation:portrait){.campus-viewer-ai-modal{padding-left:max(5px, env(safe-area-inset-left));padding-right:max(5px, env(safe-area-inset-right))}.campus-viewer-ai-dialog{border-radius:12px}}@media (max-height:520px) and (orientation:landscape){.campus-viewer-ai-modal{padding:max(6px, env(safe-area-inset-top)) max(8px, env(safe-area-inset-right)) max(6px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left))}.campus-viewer-ai-dialog{border-radius:12px;width:min(920px,100%);height:100%;min-height:0}.campus-viewer-ai-header{min-height:48px;padding-top:5px;padding-bottom:5px}}@media (prefers-reduced-motion:reduce){.campus-viewer-ai-trigger,.campus-viewer-ai-close,.campus-viewer-ai-modal,.campus-viewer-ai-dialog{transition:none;animation:none}.campus-viewer-ai-loading span{animation-duration:1.4s}}.campus-viewer-campus-switch{z-index:7;background:var(--viewer-glass-bg);min-height:44px;box-shadow:var(--viewer-glass-edge), var(--viewer-glass-shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:999px;grid-template-columns:repeat(2,minmax(58px,1fr));gap:4px;padding:4px;display:grid;position:absolute;bottom:18px;right:18px}.campus-viewer-campus-option{min-width:0;min-height:36px;color:var(--viewer-glass-muted);white-space:nowrap;cursor:pointer;transition:color .3s ease, background-color .35s ease, box-shadow .35s ease, transform var(--viewer-spring-dur) var(--viewer-spring);background:0 0;border:0;border-radius:999px;padding:0 13px;font-size:12.5px;font-weight:600;line-height:1}.campus-viewer-campus-option:hover{color:#fff;background:#ffffff1f}.campus-viewer-campus-option:active{transform:scale(.95)}.campus-viewer-campus-option[aria-pressed=true]{color:#1c1c1e;background:#fffffff0;box-shadow:0 3px 10px #0000002e}.campus-viewer-card .campus-viewer-tool-button,.campus-viewer-card .campus-viewer-joystick,.campus-viewer-card .campus-viewer-joystick-knob,.campus-viewer-card .campus-viewer-campus-switch,.campus-viewer-card .campus-viewer-tag-panel-item{-webkit-backdrop-filter:blur(10px)!important;backdrop-filter:blur(10px)!important}.campus-viewer-card .campus-viewer-tag-panel{-webkit-backdrop-filter:blur(24px)!important;backdrop-filter:blur(24px)!important}@media (orientation:landscape){.scene-loading--zust[data-phase=exiting]{animation:.8s cubic-bezier(.76,0,.24,1) forwards scene-loading-zust-exit-landscape}}@media (orientation:portrait){.scene-loading--zust[data-phase=exiting]{animation:.72s cubic-bezier(.76,0,.24,1) forwards scene-loading-zust-exit-portrait}}@media (max-width:620px){.scene-loading--zust .scene-loading__cluster{gap:22px;width:min(320px,100vw - 40px)}.scene-loading__wordmark{width:276px;height:70px;font-size:78px}.scene-loading__signature{min-height:22px;font-size:16px}}@media (prefers-reduced-motion:reduce){.scene-loading--zust[data-phase=exiting]{animation-duration:.18s;animation-timing-function:ease-out}.scene-loading__wordmark-shine{animation:none;-webkit-mask-position:50% 0;mask-position:50% 0}.scene-loading__signature-letter{opacity:1;filter:none;animation:none;transform:none}}@media (max-width:960px){.campus-viewer-card{min-height:430px}}@media (max-width:620px){.campus-viewer-card{min-height:360px}.campus-viewer-card:fullscreen{width:100vw;height:100svh;min-height:100svh}.campus-viewer-tag-panel{width:min(236px,100% - 32px)}.campus-viewer-tag-panel.is-collapsed{width:54px}.campus-viewer-joystick-zone{width:96px;height:96px;left:8px}.campus-viewer-toolbar{bottom:12px;left:50%;right:auto;bottom:max(12px, env(safe-area-inset-bottom));transform:translate(-50%)}.campus-viewer-campus-switch{bottom:12px;right:12px;bottom:max(12px, env(safe-area-inset-bottom));grid-template-columns:repeat(2,39px);min-height:38px;padding:3px}.campus-viewer-campus-option{min-height:32px;padding:0 4px;font-size:11px}.campus-viewer-tag{max-width:150px;padding:6px 10px;font-size:11px;line-height:1.15}}@media (max-width:340px){.campus-viewer-campus-switch{bottom:58px;bottom:calc(58px + env(safe-area-inset-bottom))}}.campus-map-standalone .campus-viewer-card{height:100svh;min-height:100svh;box-shadow:none;border-radius:0}.campus-map-standalone .campus-viewer-card[data-loading-active=true] .spark-stage__chunk-loading{display:none}.campus-map-standalone{width:100%;min-height:100svh;margin:0;padding:0}:is(html:has(.campus-map-standalone),body:has(.campus-map-standalone)){height:100%;min-height:100%;overflow:hidden}
:root{--bg:#fff;--bg-2:#f5f5f7;--bg-3:#e8e8ed;--bg-inset:#fbfbfd;--label:#1d1d1f;--label-2:#6e6e73;--label-3:#86868b;--sep:#0000001a;--sep-strong:#0000002e;--fill:#7676801f;--fill-2:#76768014;--fill-3:#76768029;--accent:#0071e3;--accent-strong:#0062c4;--accent-soft:#0071e31a;--accent-ring:#0071e359;--on-accent:#fff;--ok:#1d7a4d;--ok-soft:#1d7a4d1a;--warn:#96650f;--warn-soft:#96650f1a;--danger:#c0392f;--danger-soft:#c0392f1a;--info:#2a6ea8;--info-soft:#2a6ea81a;--glass-tint:#ffffff47;--glass-solid:#ffffff9e;--glass-thick:#fafafcdb;--glass-edge:#ffffffd9;--glass-edge-2:#ffffff59;--glass-rim:#0000000f;--glass-shade:#0000000a;--glass-hl:#fff9;--glass-shadow:0 10px 30px -6px #00000024, 0 2px 6px #0000000d;--glass-blur:14px;--glass-sat:180%;--thumb:#fff;--thumb-shadow:0 3px 8px #0000001f, 0 3px 1px #0000000a;--ui:-apple-system, BlinkMacSystemFont, "SF Pro Text", Inter, "PingFang SC", "Microsoft YaHei UI", sans-serif;--display:-apple-system, BlinkMacSystemFont, "SF Pro Display", Inter, "PingFang SC", "Microsoft YaHei UI", sans-serif;--mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--ease:cubic-bezier(.22, 1, .36, 1);--wrap:1180px;--gutter:22px;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--s8:72px;--r-capsule:999px;--r-card:28px;--r-bar:22px;--r-row:18px;--r-thumb:15px;--r-chip:10px;--shadow-1:0 1px 3px #0000000f;--shadow-2:0 8px 24px -8px #0000001f;--shadow-3:0 24px 60px -18px #00000038;--z-content:1;--z-sticky:38;--z-nav:40;--z-scrim:46;--z-panel:55;--z-dock:60;--z-modal:70;--z-toast:80;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ui-bg:var(--bg-2);--ui-surface:var(--bg);--ui-surface-subtle:var(--bg-2);--ui-ink:var(--label);--ui-muted:var(--label-2);--ui-quiet:var(--label-3);--ui-border:var(--sep);--ui-brand:var(--accent);--ui-brand-strong:var(--accent-strong);--ui-brand-soft:var(--accent-soft);--ui-yellow:var(--accent);--ui-yellow-soft:var(--accent-soft);--ui-route-blue:var(--info);--ui-community:var(--danger);--ui-field:var(--ok);--ui-danger:var(--danger);--ui-danger-soft:var(--danger-soft);--ui-warning:var(--warn);--ui-warning-soft:var(--warn-soft);--ui-success:var(--ok);--ui-success-soft:var(--ok-soft);--ui-shadow-float:var(--glass-shadow);--ui-ease:var(--ease);--ui-page-max:var(--wrap);--ui-admin-max:1440px;--color-bg:var(--bg-2);--color-bg-subtle:var(--bg-3);--color-surface:var(--bg);--color-surface-soft:var(--glass-solid);--color-text:var(--label);--color-text-muted:var(--label-2);--color-text-quiet:var(--label-3);--color-brand:var(--accent);--color-brand-hover:var(--accent-strong);--color-brand-soft:var(--accent-soft);--color-info:var(--info);--color-info-soft:var(--info-soft);--color-success:var(--ok);--color-success-soft:var(--ok-soft);--color-warning:var(--warn);--color-warning-soft:var(--warn-soft);--color-danger:var(--danger);--color-danger-soft:var(--danger-soft);--c-all:#0071e3;--c-campus:#0071e3;--c-guide:#6a4fd8;--c-service:#0a7ea4;--c-activity:#d6336c;--c-carpool:#248a3d;--c-club:#c26a00;--c-gallery:#d9480f;--c-file:#4c4fd6;--font-ui:var(--ui);--font-display:var(--ui);--font-mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--radius-sm:var(--r-chip);--radius-md:var(--r-thumb);--radius-lg:var(--r-bar);--page-max:var(--wrap);--shadow-soft:var(--shadow-2);--shadow-image:var(--shadow-3);--font-sans:var(--ui);--text-xs:13px;--text-sm:13px;--text-md:15px;--text-lg:17px;--text-xl:21px;--text-2xl:28px}:root[data-theme=dark]{--bg:#000;--bg-2:#161617;--bg-3:#232325;--bg-inset:#101012;--label:#f5f5f7;--label-2:#a1a1a6;--label-3:#6e6e73;--sep:#ffffff1f;--sep-strong:#ffffff38;--fill:#7878803d;--fill-2:#78788029;--fill-3:#78788052;--accent:#2997ff;--accent-strong:#5ab0ff;--accent-soft:#2997ff29;--accent-ring:#2997ff73;--ok:#4ad08a;--ok-soft:#4ad08a24;--warn:#e0b053;--warn-soft:#e0b05324;--danger:#ff6961;--danger-soft:#ff696124;--info:#6fb2e8;--info-soft:#6fb2e824;--glass-solid:#1c1c1eb8;--glass-thick:#161618db;--glass-edge:#ffffff29;--glass-edge-2:#ffffff12;--glass-rim:#ffffff1a;--glass-shade:#0006;--glass-hl:#ffffff24;--glass-shadow:0 12px 34px -8px #000000b3, 0 2px 8px #0006;--glass-tint:#1e1e2070;--thumb:#636366;--thumb-shadow:0 3px 8px #0000004d;--c-all:#2997ff;--c-campus:#2997ff;--c-guide:#a48bff;--c-service:#4fc3e8;--c-activity:#ff6b9d;--c-carpool:#4ec97f;--c-club:#e8a94a;--c-gallery:#ff8a5c;--c-file:#8f92ff;--shadow-1:0 1px 3px #00000080;--shadow-2:0 8px 24px -8px #0009;--shadow-3:0 24px 60px -18px #000c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (max-width:620px){:root{--gutter:18px}}
:root{--spring-smooth-dur:.71s;--spring-smooth:linear(0 0%, .0153 1.88%, .0517 3.76%, .1018 5.63%, .1602 7.51%, .223 9.39%, .2872 11.27%, .3508 13.15%, .4122 15.02%, .4706 16.9%, .5253 18.78%, .5759 20.66%, .6225 22.54%, .665 24.41%, .7034 26.29%, .7381 28.17%, .7693 30.05%, .7971 31.92%, .8219 33.8%, .8439 35.68%, .8634 37.56%, .8806 39.44%, .8958 41.31%, .9092 43.19%, .9209 45.07%, .9312 46.95%, .9402 48.83%, .948 50.7%, .9549 52.58%, .9609 54.46%, .9661 56.34%, .9707 58.22%, .9746 60.09%, .978 61.97%, .981 63.85%, .9836 65.73%, .9858 67.61%, .9878 69.48%, .9894 71.36%, .9909 73.24%, .9921 75.12%, .9932 77%, .9942 78.87%, .995 80.75%, .9957 82.63%, .9963 84.51%, .9968 86.38%, .9972 88.26%, .9976 90.14%, .998 92.02%, .9982 93.9%, .9985 95.77%, .9987 97.65%, .9989 99.53%, 1 100%);--spring-snappy-dur:.568s;--spring-snappy:linear(0 0%, .0169 2.05%, .0562 4.11%, .1102 6.16%, .1729 8.21%, .2399 10.26%, .3081 12.32%, .3751 14.37%, .4394 16.42%, .5001 18.48%, .5565 20.53%, .6083 22.58%, .6555 24.63%, .6982 26.69%, .7364 28.74%, .7705 30.79%, .8008 32.84%, .8275 34.9%, .851 36.95%, .8716 39%, .8896 41.06%, .9053 43.11%, .9189 45.16%, .9307 47.21%, .9408 49.27%, .9496 51.32%, .9571 53.37%, .9636 55.43%, .9691 57.48%, .9739 59.53%, .9779 61.58%, .9813 63.64%, .9843 65.69%, .9868 67.74%, .9889 69.79%, .9906 71.85%, .9922 73.9%, .9934 75.95%, .9945 78.01%, .9954 80.06%, .9962 82.11%, .9968 84.16%, .9973 86.22%, .9978 88.27%, .9982 90.32%, .9985 92.38%, .9987 94.43%, .999 96.48%, .9991 98.53%, 1 100%);--spring-soft-dur:.637s;--spring-soft:linear(0 0%, .0144 1.83%, .0495 3.66%, .0997 5.5%, .1603 7.33%, .2273 9.16%, .2978 10.99%, .3691 12.83%, .4394 14.66%, .5071 16.49%, .5713 18.32%, .6312 20.16%, .6862 21.99%, .7362 23.82%, .7812 25.65%, .8211 27.49%, .8562 29.32%, .8867 31.15%, .913 32.98%, .9353 34.82%, .9541 36.65%, .9697 38.48%, .9824 40.31%, .9926 42.15%, 1.0007 43.98%, 1.0068 45.81%, 1.0114 47.64%, 1.0147 49.48%, 1.0168 51.31%, 1.0181 53.14%, 1.0186 54.97%, 1.0186 56.81%, 1.0181 58.64%, 1.0172 60.47%, 1.0162 62.3%, 1.015 64.14%, 1.0137 65.97%, 1.0124 67.8%, 1.011 69.63%, 1.0098 71.47%, 1.0085 73.3%, 1.0074 75.13%, 1.0063 76.96%, 1.0053 78.8%, 1.0045 80.63%, 1.0037 82.46%, 1.003 84.29%, 1.0024 86.13%, 1.0018 87.96%, 1.0014 89.79%, 1.001 91.62%, 1.0007 93.46%, 1.0004 95.29%, 1.0002 97.12%, 1.0001 98.95%, 1 100%);--spring-liquid-dur:.825s;--spring-liquid:linear(0 0%, .0363 2.02%, .1245 4.04%, .2461 6.06%, .3851 8.08%, .5282 10.1%, .6655 12.12%, .7896 14.14%, .896 16.16%, .9825 18.18%, 1.0484 20.2%, 1.0948 22.22%, 1.1237 24.24%, 1.1374 26.26%, 1.1391 28.28%, 1.1315 30.3%, 1.1175 32.32%, 1.0996 34.34%, 1.0798 36.36%, 1.0599 38.38%, 1.0412 40.4%, 1.0246 42.42%, 1.0105 44.44%, .9993 46.46%, .991 48.48%, .9853 50.51%, .9819 52.53%, .9806 54.55%, .9808 56.57%, .9821 58.59%, .9843 60.61%, .9869 62.63%, .9897 64.65%, .9924 66.67%, .995 68.69%, .9972 70.71%, .999 72.73%, 1.0005 74.75%, 1.0015 76.77%, 1.0022 78.79%, 1.0026 80.81%, 1.0027 82.83%, 1.0026 84.85%, 1.0024 86.87%, 1.0021 88.89%, 1.0017 90.91%, 1.0013 92.93%, 1.0009 94.95%, 1.0006 96.97%, 1.0003 98.99%, 1 100%)}@supports not (transition-timing-function:linear(0, 1)){:root{--spring-smooth:var(--ease);--spring-snappy:var(--ease);--spring-soft:var(--ease);--spring-liquid:var(--ease)}}
@property --hl{syntax:"<number>";inherits:true;initial-value:0}:root{--nav-top:12px;--nav-h:44px;--nav-space:calc(var(--nav-top) + var(--nav-h) + 22px);--dock-space:0px;--safe-b:env(safe-area-inset-bottom,0px);--ctl:36px}@media (max-width:899px){:root{--nav-top:8px;--nav-space:calc(var(--nav-top) + var(--nav-h) + 16px);--dock-space:calc(84px + var(--safe-b));--ctl:38px}}*,:before,:after{box-sizing:border-box}*{margin:0;padding:0}html{-moz-text-size-adjust:100%;text-size-adjust:100%;background:var(--bg);scroll-padding-top:var(--nav-space)}html,body{max-width:100vw;overflow-x:clip}body{min-height:100svh;color:var(--label);background:var(--bg);font:400 17px/1.47 var(--ui);letter-spacing:-.012em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;transition:background-color .4s var(--ease), color .4s var(--ease)}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit;color:inherit;letter-spacing:inherit}button{cursor:pointer;background:0 0;border:0}button:disabled{cursor:not-allowed}button,a,summary,label{-webkit-tap-highlight-color:transparent;touch-action:manipulation}summary{cursor:pointer;list-style:none}summary::-webkit-details-marker{display:none}img,svg,video,canvas{max-width:100%;display:block}svg{flex:none}h1,h2,h3,h4{font-family:var(--display);letter-spacing:-.022em;text-wrap:balance;font-weight:700;line-height:1.15}p{text-wrap:pretty}::selection{background:var(--accent-soft)}:focus{outline:none}:focus-visible{outline:3px solid color-mix(in srgb, var(--accent) 55%, transparent);outline-offset:2px;border-radius:10px}input:focus-visible,textarea:focus-visible,select:focus-visible{outline:none}.visually-hidden,.sr{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.wrap{width:min(var(--wrap), 100% - var(--gutter) * 2);margin-inline:auto}.page{width:min(var(--wrap), 100% - var(--gutter) * 2);min-height:100svh;padding-top:var(--nav-space);align-content:start;margin-inline:auto;padding-bottom:72px}.dock-spacer{height:var(--dock-space)}.page--wide{width:min(1320px, 100% - var(--gutter) * 2)}.page--narrow{width:min(760px, 100% - var(--gutter) * 2)}.stack{gap:var(--s5);display:grid}.hero{--tone:var(--accent);isolation:isolate;gap:8px;padding:clamp(4px,1.2vw,16px) 0 clamp(14px,1.8vw,22px);display:grid;position:relative}.hero:before{content:"";z-index:-1;aspect-ratio:1;background:radial-gradient(closest-side, color-mix(in srgb, var(--tone) 13%, transparent), transparent);pointer-events:none;border-radius:50%;width:min(560px,90vw);position:absolute;inset:-120px -12vw auto auto}.hero .eyebrow{color:var(--tone)}.hero h1{letter-spacing:-.03em;max-width:20ch;font-size:clamp(28px,3.6vw,44px);line-height:1.1}.hero .lede{max-width:52ch;color:var(--label-2);font-size:clamp(14.5px,1.2vw,16px);line-height:1.5}.hero .actions{flex-wrap:wrap;gap:8px;margin-top:2px;display:flex}.hero--center{text-align:center;justify-items:center}.hero--center:before{inset:-80px auto auto 50%;translate:-50%}.hero--center .actions{justify-content:center}.eyebrow{color:var(--label-3);font:600 13px/1.2 var(--ui);letter-spacing:.02em}.lede{color:var(--label-2);font-size:17px;line-height:1.55}.tone-campus{--tone:var(--c-campus)}.tone-guide{--tone:var(--c-guide)}.tone-service{--tone:var(--c-service)}.tone-activity{--tone:var(--c-activity)}.tone-carpool{--tone:var(--c-carpool)}.tone-club{--tone:var(--c-club)}.tone-gallery{--tone:var(--c-gallery)}.tone-file{--tone:var(--c-file)}.section{padding:clamp(28px,4vw,48px) 0}.sec-head{flex-wrap:wrap;align-items:baseline;gap:6px 14px;margin-bottom:22px;display:flex}.sec-head h2{letter-spacing:-.028em;font-size:clamp(24px,3vw,32px)}.sec-head p{color:var(--label-3);font-size:14px}.sec-head .more{color:var(--accent);align-items:center;gap:4px;margin-left:auto;font-size:14px;font-weight:500;display:inline-flex}.surface{border:.5px solid var(--sep);border-radius:var(--r-card);background:var(--bg-2)}.surface-raised{border:.5px solid var(--sep);border-radius:var(--r-card);background:var(--bg);box-shadow:var(--shadow-1)}.cards{grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:16px;display:grid}@media (max-width:620px){.cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}}.card{--tone:var(--accent);border:.5px solid var(--sep);border-radius:var(--r-card);background:var(--bg-2);min-width:0;transition:transform .5s var(--spring-smooth,var(--ease)), box-shadow .4s var(--ease), border-color .4s var(--ease), background-color .4s var(--ease);flex-direction:column;gap:8px;padding:20px;display:flex;position:relative;overflow:hidden}a.card:hover,button.card:hover,.card[data-hover]:hover{border-color:#0000;transform:translateY(-3px);box-shadow:0 18px 40px -18px #00000047}.card h3{letter-spacing:-.02em;font-size:18px;font-weight:600}.card p{color:var(--label-2);font-size:14px}.glyph{--tone:var(--accent);border:.5px solid var(--sep);width:44px;height:44px;color:var(--tone);background:var(--bg);border-radius:14px;flex:none;place-items:center;display:grid;box-shadow:0 6px 16px -8px #0000004d}.glyph--sm{width:36px;height:36px;box-shadow:none;background:var(--bg-2);border-radius:11px}.rows{flex-direction:column;display:flex}.row{border-bottom:.5px solid var(--sep);border-radius:var(--r-row);min-width:0;transition:background-color .3s var(--ease), transform .4s var(--spring-snappy,var(--ease)), border-color .3s var(--ease);align-items:center;gap:14px;padding:14px 16px;display:flex}.rows>.row:last-child{border-bottom-color:#0000}a.row:hover,button.row:hover{background:var(--bg-2);border-color:#0000;transform:translate(3px)}.row .body{flex:1;min-width:0}.row .body strong{letter-spacing:-.015em;text-overflow:ellipsis;white-space:nowrap;font-size:15.5px;font-weight:500;display:block;overflow:hidden}.row .body span{color:var(--label-3);font-size:13px}.chip{border-radius:var(--r-chip);min-height:26px;color:var(--label-2);background:var(--fill-2);white-space:nowrap;align-items:center;gap:5px;padding:4px 10px;font-size:12.5px;font-weight:500;display:inline-flex}.chip--tone{color:var(--tone,var(--accent));background:color-mix(in srgb, var(--tone,var(--accent)) 12%, transparent)}.chips{flex-wrap:wrap;gap:6px;display:flex}.pills{scrollbar-width:none;gap:6px;margin:-2px;padding:2px;display:flex;overflow-x:auto}.pills::-webkit-scrollbar{display:none}.pill{border-radius:var(--r-capsule);min-height:32px;color:var(--label-2);background:var(--fill-2);white-space:nowrap;transition:background-color .3s var(--ease), color .3s var(--ease);flex:none;padding:6px 14px;font-size:14px;font-weight:500}.pill:hover{color:var(--label);background:var(--fill)}.pill.is-active,.pill[aria-pressed=true],.pill[aria-selected=true],.pill[aria-current=page]{color:var(--bg);background:var(--label)}.button{min-height:var(--ctl);border-radius:var(--r-capsule);color:var(--label);background:var(--fill);white-space:nowrap;cursor:pointer;transition:background-color .28s var(--ease), color .28s var(--ease), box-shadow .28s var(--ease), opacity .28s var(--ease);border:0;justify-content:center;align-items:center;gap:6px;padding:0 16px;font-size:14.5px;font-weight:590;line-height:1;display:inline-flex}.button:hover{background:var(--fill-3)}.button-primary{color:var(--on-accent);background:var(--accent)}.button-primary:hover{background:var(--accent-strong)}.button-dark{color:var(--bg);background:var(--label)}.button-dark:hover{background:color-mix(in srgb, var(--label) 86%, var(--bg))}.button-soft{color:var(--accent);background:var(--accent-soft)}.button-soft:hover{background:color-mix(in srgb, var(--accent) 18%, transparent)}.button-plain{color:var(--accent);background:0 0}.button-plain:hover{background:var(--fill-2)}.button-danger{color:var(--danger);background:var(--danger-soft)}.button-danger:hover{background:color-mix(in srgb, var(--danger) 18%, transparent)}.button-small{min-height:32px;padding:0 13px;font-size:13.5px}.button-icon{width:var(--ctl);padding:0}.button-small.button-icon{width:32px}.icon-btn{width:var(--ctl);height:var(--ctl);color:var(--label);background:var(--fill);cursor:pointer;-webkit-tap-highlight-color:transparent;border:0;border-radius:50%;flex:none;place-items:center;padding:0;display:inline-grid;position:relative}.icon-btn:hover{background:var(--fill-3)}.icon-btn.glass{background-color:var(--glass-tint)}.icon-btn.glass:hover{background-color:var(--glass-solid)}.icon-btn-primary,.icon-btn[aria-expanded=true],.icon-btn[aria-pressed=true]{color:var(--on-accent);background:var(--accent)}.icon-btn-primary:hover,.icon-btn[aria-expanded=true]:hover,.icon-btn[aria-pressed=true]:hover{background:var(--accent-strong)}.icon-btn.glass.icon-btn-primary,.icon-btn.glass[aria-expanded=true],.icon-btn.glass[aria-pressed=true]{background-color:var(--accent)}.icon-btn.glass.icon-btn-primary:hover,.icon-btn.glass[aria-expanded=true]:hover,.icon-btn.glass[aria-pressed=true]:hover{background-color:var(--accent-strong)}.icon-btn:disabled{color:var(--label-3);background:var(--fill-2);cursor:not-allowed}.icon-btn svg{display:block}.icon-btn[data-busy] svg{animation:.9s linear infinite icon-spin}@keyframes icon-spin{to{transform:rotate(360deg)}}.icon-btn-wide{border-radius:var(--r-capsule);white-space:nowrap;gap:6px;width:auto;padding:0 15px 0 12px;font-size:14.5px;font-weight:590;display:inline-flex}.dot-badge{border-radius:var(--r-capsule);background:var(--accent);min-width:9px;height:9px;box-shadow:0 0 0 2px var(--bg);transition:transform var(--spring-soft-dur,.5s) var(--spring-soft,var(--ease));pointer-events:none;position:absolute;top:2px;right:2px;transform:scale(0)}.dot-badge[data-count]{min-width:17px;height:17px;color:var(--on-accent);font:700 10.5px/17px var(--ui);font-variant-numeric:tabular-nums;text-align:center;padding:0 4px;top:-3px;right:-3px}.dot-badge[data-active=true]{transform:scale(1)}.icon-btn[aria-expanded=true] .dot-badge{background:var(--on-accent);box-shadow:0 0 0 2px var(--accent);color:var(--accent)}.seg{isolation:isolate;max-width:100%;height:var(--ctl);scrollbar-width:none;border-radius:var(--r-capsule);background:var(--fill);flex:none;gap:0;padding:2px;display:inline-flex;position:relative;overflow-x:auto}.seg::-webkit-scrollbar{display:none}.seg[data-fade=end]{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),#0000)}.seg[data-fade=start]{-webkit-mask-image:linear-gradient(90deg,#0000,#000 28px);mask-image:linear-gradient(90deg,#0000,#000 28px)}.seg[data-fade=both]{-webkit-mask-image:linear-gradient(90deg,#0000,#000 28px calc(100% - 28px),#0000);mask-image:linear-gradient(90deg,#0000,#000 28px calc(100% - 28px),#0000)}.seg-thumb{z-index:0;border-radius:var(--r-capsule);background:var(--thumb);width:0;box-shadow:var(--thumb-shadow);pointer-events:none;position:absolute;top:2px;bottom:2px;left:0}.seg-option{z-index:1;border-radius:var(--r-capsule);height:100%;color:var(--label);white-space:nowrap;opacity:.72;cursor:pointer;transition:opacity .25s var(--ease);-webkit-tap-highlight-color:transparent;background:0 0;border:0;flex:none;justify-content:center;align-items:center;gap:5px;padding:0 13px;font-size:13.5px;font-weight:500;display:inline-flex;position:relative}@media (max-width:420px){.seg-option{padding:0 10px}}.seg-option:hover,.seg-option[data-on=true]{opacity:1}.seg-option[data-on=true]{font-weight:600}.seg-count{color:var(--label-3);font-variant-numeric:tabular-nums;font-size:12px;font-weight:500}.seg-option[data-on] .seg-count{color:inherit;opacity:.55}.toolbar-row{align-items:center;gap:8px;min-width:0;display:flex}.toolbar-row>.seg,.toolbar-row>.toolbar-main{flex:0 auto;min-width:0}.toolbar-row>.toolbar-end{flex:none;align-items:center;gap:8px;margin-left:auto;display:flex}.toolbar-row>.toolbar-end:only-child{margin-left:0}.search-pop{width:var(--ctl);height:var(--ctl);border-radius:var(--r-capsule);color:var(--label);background:var(--fill);transition:width var(--spring-smooth-dur,.5s) var(--spring-smooth,var(--ease)), flex-grow var(--spring-smooth-dur,.5s) var(--spring-smooth,var(--ease)), background-color .25s var(--ease), box-shadow .25s var(--ease);flex:none;align-items:center;font-size:14px;display:flex;position:relative}.search-pop[data-scope]{width:calc(var(--ctl) + var(--scope-len,2) * 1em + 10px)}.search-pop[data-open=true]{background:var(--bg);width:min(300px,42vw);box-shadow:0 0 0 1px var(--accent), 0 0 0 4px var(--accent-soft)}.search-pop>.search-pop-btn{min-width:var(--ctl);height:var(--ctl);border-radius:var(--r-capsule);color:inherit;cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:center;gap:6px;padding:0;display:flex}.search-pop[data-scope]:not([data-open=true])>.search-pop-btn{padding:0 10px 0 calc((var(--ctl) - 18px) / 2);flex:1;justify-content:flex-start}.search-pop-scope{color:var(--label-2);font:500 1em/1 var(--ui);white-space:nowrap;overflow:hidden}.search-pop[data-open=true] .search-pop-scope{display:none}.search-pop>input{width:0;min-width:0;height:100%;min-height:0;box-shadow:none;opacity:0;transition:opacity .2s var(--ease);background:0 0;border:0;flex:1;padding:0 4px 0 0;font-size:14.5px}.search-pop>input:focus{box-shadow:none}.search-pop[data-open=true]>input{opacity:1}.search-pop:not([data-open=true])>input{pointer-events:none;flex:0 0 0;padding:0}.search-pop>.search-pop-clear{width:26px;height:26px;color:var(--bg);background:var(--label-3);cursor:pointer;border:0;border-radius:50%;flex:none;place-items:center;margin-right:5px;display:grid}.search-pop:not([data-open=true])[data-filled=true]{color:var(--on-accent);background:var(--accent)}.search-pop:not([data-open=true])[data-filled=true] .search-pop-scope{color:inherit}@media (max-width:720px){.toolbar-row,.search-host{position:relative}.toolbar-row>*,.search-host>*{transition:opacity .22s var(--ease), visibility .22s}:is(.toolbar-row:has(>.toolbar-end>.search-pop[data-open=true])>:not(.toolbar-end),.search-host:has(>.search-host-actions>.search-pop[data-open=true])>:not(.search-host-actions)){opacity:0;visibility:hidden}:is(.toolbar-row:has(>.toolbar-end>.search-pop[data-open=true])>.toolbar-end,.search-host:has(>.search-host-actions>.search-pop[data-open=true])>.search-host-actions){justify-content:flex-end;margin-left:0;position:absolute;inset:0}.search-host:has(>.search-host-actions>.search-pop[data-open=true])>.search-host-actions{padding-bottom:0;top:auto;bottom:2px}.search-pop[data-open=true]{width:var(--ctl);flex-grow:1}.search-pop[data-scope][data-open=true]{width:calc(var(--ctl) + var(--scope-len,2) * 1em + 10px)}}.pop,.pop.glass{--glass-tint:var(--glass-thick);z-index:var(--z-panel);overscroll-behavior:contain;border-radius:var(--r-card);transform-origin:100% 0;width:min(380px,100vw - 24px);max-height:min(70svh,560px);animation:pop-in var(--spring-soft-dur,.5s) var(--spring-soft,var(--ease)) both;gap:16px;padding:18px 18px 14px;display:grid;position:absolute;top:calc(100% + 8px);right:0;overflow:auto}.pop h4,.pop-label{color:var(--label-2);font:600 13px/1.2 var(--ui);margin:0 0 8px}.pop-options{flex-wrap:wrap;gap:6px;display:flex}.pop-foot{border-top:.5px solid var(--sep);justify-content:space-between;align-items:center;gap:12px;padding-top:12px;display:flex}@keyframes pop-in{0%{opacity:0;transform:translateY(-6px)scale(.94)}}.button:disabled,.button[aria-disabled=true]{color:var(--label-3);background:var(--fill-2);box-shadow:none;cursor:not-allowed}[data-press]:not(.campus-viewer-tag){transform:translate(var(--tx,0px), var(--ty,0px)) scale(var(--sx,1), var(--sy,1))}[data-press]:not(.card):not(.row):not(.campus-viewer-tag){transition-property:transform,background-color,color,box-shadow,opacity,border-color;transition-duration:var(--spring-liquid-dur,.645s), .28s, .28s, .28s, .28s, .28s;transition-timing-function:var(--spring-liquid,var(--ease)), var(--ease), var(--ease), var(--ease), var(--ease), var(--ease)}[data-press].is-pressed{transition-duration:.2s,.28s,.28s,.28s,.28s,.28s;transition-timing-function:cubic-bezier(.2, .9, .3, 1), var(--ease), var(--ease), var(--ease), var(--ease), var(--ease)}.field{gap:7px;min-width:0;display:grid}.field>span,.field>label,.field-label{color:var(--label-2);font-size:13px;font-weight:600}.full-field{grid-column:1/-1}.form-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:16px;display:grid}:where(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),textarea,select){border:1px solid var(--sep);width:100%;min-height:44px;color:var(--label);background:var(--bg);transition:border-color .2s var(--ease), box-shadow .2s var(--ease), background-color .2s var(--ease);border-radius:12px;padding:10px 14px;font-size:15px}textarea{resize:vertical;min-height:112px;line-height:1.55}select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--label-3) 50%), linear-gradient(135deg, var(--label-3) 50%, transparent 50%);background-position:calc(100% - 19px),calc(100% - 14px);background-repeat:no-repeat;background-size:5px 5px;padding-right:38px}input::placeholder,textarea::placeholder{color:var(--label-3)}input:hover:not(:disabled):not(:focus),textarea:hover:not(:disabled):not(:focus),select:hover:not(:disabled):not(:focus){border-color:var(--sep-strong)}input:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}input:disabled,textarea:disabled,select:disabled{color:var(--label-3);background:var(--bg-2)}input[type=checkbox],input[type=radio]{width:18px;height:18px;accent-color:var(--accent)}input[type=file]{max-width:100%;color:var(--label-2);font-size:14px}input[type=file]::file-selector-button{border-radius:var(--r-capsule);color:var(--label);background:var(--fill);font:inherit;cursor:pointer;border:0;margin-right:12px;padding:8px 14px;font-weight:590}.search-field{min-height:var(--ctl);border:.5px solid var(--sep);border-radius:var(--r-capsule);color:var(--label-3);background:var(--bg-2);transition:border-color .25s var(--ease), box-shadow .25s var(--ease), background-color .25s var(--ease);align-items:center;gap:8px;padding:0 6px 0 13px;display:flex}.search-field:focus-within{border-color:var(--accent);background:var(--bg);box-shadow:0 0 0 4px var(--accent-soft)}.search-field input:not([type]),.search-field input[type=search],.search-field input[type=text]{min-width:0;min-height:calc(var(--ctl) - 2px);box-shadow:none;background:0 0;border:0;flex:1;padding:0;font-size:14.5px}.search-field input:focus{box-shadow:none}.form-card{border:.5px solid var(--sep);border-radius:var(--r-card);background:var(--bg);box-shadow:var(--shadow-1);gap:18px;padding:clamp(20px,3vw,32px);display:grid}.form-help,.source-note{color:var(--label-3);font-size:13px}.check-row{color:var(--label-2);align-items:center;gap:10px;font-size:14px;display:flex}.notice{border-radius:var(--r-row);color:var(--label);background:var(--fill-2);padding:12px 16px;font-size:14px;line-height:1.5}.notice-success{color:var(--ok);background:var(--ok-soft)}.notice-error{color:var(--danger);background:var(--danger-soft)}.status-badge{border-radius:var(--r-chip);min-height:24px;color:var(--label-2);background:var(--fill);white-space:nowrap;align-items:center;padding:3px 9px;font-size:12px;font-weight:600;display:inline-flex}.status-published,.status-approved,.status-active,.status-completed{color:var(--ok);background:var(--ok-soft)}.status-pending,.status-queued,.status-running{color:var(--warn);background:var(--warn-soft)}.status-rejected,.status-failed,.status-cancelled{color:var(--danger);background:var(--danger-soft)}.empty{border:1px dashed var(--sep);border-radius:var(--r-card);color:var(--label-3);text-align:center;justify-items:center;gap:8px;padding:56px 20px;font-size:14px;display:grid}.empty strong{color:var(--label);font-size:17px;font-weight:600}.skeleton{border-radius:var(--r-row);background:linear-gradient(100deg, transparent 20%, color-mix(in srgb, var(--bg) 60%, transparent) 50%, transparent 80%) var(--bg-2);background-size:200% 100%;animation:1.4s ease-in-out infinite sheen}@keyframes sheen{0%{background-position:150% 0}to{background-position:-50% 0}}.spinner{border:2px solid var(--fill-3);border-top-color:var(--label-2);border-radius:50%;width:18px;height:18px;animation:.8s linear infinite ui-spin}@keyframes ui-spin{to{transform:rotate(360deg)}}.table-wrap{border:.5px solid var(--sep);border-radius:var(--r-row);background:var(--bg);overflow-x:auto}.table{border-collapse:separate;border-spacing:0;width:100%;font-size:14px}.table th{border-bottom:.5px solid var(--sep);color:var(--label-3);background:var(--bg-2);text-align:left;white-space:nowrap;padding:11px 14px;font-size:12.5px;font-weight:600;position:sticky;top:0}.table td{border-bottom:.5px solid var(--sep);vertical-align:middle;padding:12px 14px}.table tbody tr:last-child td{border-bottom:0}.table tbody tr{transition:background-color .2s var(--ease)}.table tbody tr:hover td{background:var(--fill-2)}.glass,[data-glass]{isolation:isolate;background-color:var(--glass-tint);box-shadow:var(--glass-shadow);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-sat));backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-sat));transition:background-color .45s var(--ease), box-shadow .45s var(--ease);position:relative}.glass:before,[data-glass]:before{content:"";z-index:-1;border-radius:inherit;pointer-events:none;box-shadow:inset 0 1px 0 0 var(--glass-edge), inset 0 -1px 0 0 var(--glass-edge-2), inset 0 0 0 .5px var(--glass-rim);background:radial-gradient(200px circle at var(--mx,50%) var(--my,-40%), var(--glass-hl), transparent 70%);opacity:calc(.4 + var(--hl,0) * .6);transition:--hl .5s var(--ease);position:absolute;inset:0}.glass-solid{background-color:var(--glass-solid)}.glass-thick{background-color:var(--glass-thick)}@media (prefers-reduced-transparency:reduce){.glass,[data-glass]{background-color:var(--glass-thick);-webkit-backdrop-filter:none;backdrop-filter:none}}[data-scrim],.scrim{z-index:var(--z-scrim);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fade-in .35s var(--ease) both;background:#00000042;border:0;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}}.modal-backdrop,.operation-modal-backdrop{z-index:var(--z-modal);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:fade-in .3s var(--ease) both;background:#00000052;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.modal-panel,.operation-modal-panel{overscroll-behavior:contain;border-radius:var(--r-card);background:var(--bg);width:min(560px,100%);max-height:min(88svh,900px);box-shadow:var(--shadow-3), 0 0 0 .5px var(--sep);animation:dialog-in var(--spring-soft-dur,.5s) var(--spring-soft,var(--ease)) both;position:relative;overflow:auto}.modal-panel{padding:24px}.operation-modal-panel{width:min(720px,100%);padding:0 24px 24px}.operation-modal-panel[data-size=s]{width:min(520px,100%)}.operation-modal-panel[data-size=l]{width:min(980px,100%)}.operation-modal-panel[data-size=xl]{width:min(1120px,100%)}.operation-modal-head{z-index:2;background:color-mix(in srgb, var(--bg) 82%, transparent);-webkit-backdrop-filter:blur(16px)saturate(180%);backdrop-filter:blur(16px)saturate(180%);justify-content:space-between;align-items:center;gap:16px;margin:0 -24px 8px;padding:20px 24px 14px;display:flex;position:sticky;top:0}.operation-modal-head>div:first-child{gap:4px;min-width:0;display:grid}.operation-modal-head h2{letter-spacing:-.02em;font-size:22px;line-height:1.2}.operation-modal-actions{flex:none;align-items:center;gap:8px;display:flex}.operation-modal-actions>button:not(.button){background:var(--fill);width:32px;height:32px;color:var(--label-2);border-radius:50%;place-items:center;display:grid;position:relative}.operation-modal-actions>button:not(.button):hover{background:var(--fill-3);color:var(--label)}.operation-modal-panel .form-card{box-shadow:none;background:0 0;border:0;padding:0}@keyframes dialog-in{0%{opacity:0;transform:translateY(14px)scale(.97)}}@keyframes sheet-in{0%{transform:translateY(100%)}}@media (max-width:720px){.modal-backdrop,.operation-modal-backdrop{align-items:end;padding:0}.modal-panel,.operation-modal-panel,.operation-modal-panel[data-size]{width:100%;max-height:calc(100svh - var(--nav-top) - 12px);border-radius:var(--r-card) var(--r-card) 0 0;padding-bottom:calc(24px + var(--safe-b));animation-name:sheet-in}.operation-modal-panel{padding-inline:18px}.operation-modal-head{margin-inline:-18px;padding:18px 18px 12px}}.reveal{opacity:0;transform:translateY(28px)}.reveal.in{opacity:1;transition:opacity .7s var(--ease) var(--d,0s), transform var(--spring-smooth-dur,.7s) var(--spring-smooth,var(--ease)) var(--d,0s);transform:none}::view-transition-old(.page-exit){animation:.22s cubic-bezier(.4,0,1,1) both page-out}::view-transition-new(.page-enter){animation:page-in var(--spring-smooth-dur,.6s) var(--spring-smooth,var(--ease)) 60ms both}:root[data-nav-dir=back]::view-transition-new(.page-enter){animation-name:page-in-back}@keyframes page-out{to{opacity:0;filter:blur(4px);transform:scale(.985)}}@keyframes page-in{0%{opacity:0;filter:blur(6px);transform:translateY(26px)}}@keyframes page-in-back{0%{opacity:0;filter:blur(6px);transform:translateY(-18px)}}::view-transition-group(site-header){z-index:100;animation:none}::view-transition-group(site-dock){z-index:100;animation:none}::view-transition-old(site-header){display:none}::view-transition-old(site-dock){display:none}::view-transition-new(site-header){animation:none}::view-transition-new(site-dock){animation:none}:root.theme-vt [data-vt]{view-transition-name:none!important}:root.theme-vt::view-transition-old(root){mix-blend-mode:normal;animation:none}:root.theme-vt::view-transition-new(root){mix-blend-mode:normal;animation:none}@supports not (view-transition-name:none){.route{animation:page-in .5s var(--ease) both}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}.reveal{opacity:1;transform:none}::view-transition-group(*){animation-duration:0s!important;animation-delay:0s!important}::view-transition-old(*){animation-duration:0s!important;animation-delay:0s!important}::view-transition-new(*){animation-duration:0s!important;animation-delay:0s!important}}nextjs-portal{display:none!important}.operation-modal-actions>button:not(.button):after{content:"";position:absolute;inset:-6px}@media (pointer:coarse){.icon-btn:after,.button-small:after{content:"";border-radius:inherit;position:absolute;inset:-4px}.button-small{position:relative}}[data-exit-ghost],[data-exit-ghost] *{animation:none!important}
