.campus-sim{--sim-ink:#243c43;--sim-gold:#846a37;--sim-paper:#faf8f3;--sim-line:#d8d2c2;color:var(--sim-ink);padding-top:36px}.sim-intro{display:grid;grid-template-columns:1.5fr 1fr;gap:60px;align-items:end;padding-bottom:35px}.sim-intro h1{font-size:clamp(34px,4.4vw,60px);letter-spacing:-.045em;line-height:1.08;margin:12px 0 0;font-weight:550}.sim-intro>div+div{max-width:335px;padding-bottom:4px}.sim-intro p:not(.eyebrow){font-size:16px;line-height:1.7;margin-bottom:16px}.sim-shell{margin:0 24px;border:1px solid var(--sim-line);border-radius:18px;overflow:hidden;background:var(--sim-paper);box-shadow:0 12px 45px #253a3d09}.sim-toolbar{padding:16px 23px;display:flex;justify-content:space-between;gap:15px;align-items:center;background:#faf8f3}.sim-location{display:flex;gap:12px;align-items:center;flex-wrap:wrap;font-size:14px}.sim-location>span:last-child{color:#6d7469;font-size:12px;border-left:1px solid #d8d2c2;padding-left:12px}.sim-led{width:7px;height:7px;background:#64816d;border-radius:50%;box-shadow:0 0 0 4px #64816d15}.sim-actions{display:flex;gap:8px;flex-wrap:wrap}.campus-sim button{font:inherit;cursor:pointer}.sim-actions button{background:transparent;border:1px solid #d8d2c2;border-radius:7px;padding:9px 12px;font-size:12px;min-height:44px;color:#243c43}.campus-sim button:hover{background:#eee6d3}.campus-sim button:focus-visible,.campus-sim select:focus-visible{outline:3px solid #846a37;outline-offset:3px}.sim-layout{display:flex;border-top:1px solid var(--sim-line);border-bottom:1px solid var(--sim-line)}.sim-lift{width:88px;flex-shrink:0;display:flex;flex-direction:column;align-items:stretch;background:#203b42;color:#faf8f3;padding:20px 10px;gap:9px}.sim-lift button{border:1px solid #ffffff25;background:transparent;color:inherit;border-radius:9px;min-height:74px;display:flex;flex-direction:column;justify-content:center;gap:3px;align-items:center}.sim-lift button b{font-weight:500;font-size:24px}.sim-lift button span{font-size:10px}.sim-lift button[aria-pressed=true],.sim-lift button:hover{background:#d3bd8c;color:#203b42;border-color:#d3bd8c}.sim-lift a{color:#faf8f3;text-decoration:none;text-align:center;font-size:11px;line-height:1.5;margin-top:auto;padding-top:22px}.sim-viewport{position:relative;flex:1;min-width:0;height:600px;overflow:auto;background:#e3e4d7;scrollbar-width:thin;overscroll-behavior-x:contain}.sim-world{position:relative;width:100%;min-width:980px;height:600px;overflow:hidden;isolation:isolate}.sim-scenery,.sim-scenery>svg,.sim-garden-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.sim-scenery svg{object-fit:fill}.sim-garden-art{filter:saturate(.8);object-position:center 53%}.sim-world[data-kind=outdoor]:after{content:'';position:absolute;inset:0;background:#eff2e30d;pointer-events:none}.sim-actors{position:absolute;inset:0}.sim-actor{position:absolute;transform:translate(-50%,-85%);width:76px;min-height:84px;border:0;background:transparent;padding:0;display:flex;flex-direction:column;align-items:center;gap:2px;color:#243c43}.sim-actor[hidden]{display:none}.campus-sim .sim-actor:hover{background:transparent}.sim-actor img{height:56px;width:56px;object-fit:contain;filter:drop-shadow(0 4px 3px #27332935);transition:transform .2s}.sim-actor:hover img,.sim-actor.is-picked img{transform:translateY(-5px)}.sim-actor span{font-size:10px;line-height:1.4;padding:3px 6px;border-radius:4px;background:#fffdf4f5;box-shadow:0 2px 5px #243c4310;max-width:100px;overflow-wrap:anywhere}.sim-actor.is-picked span{background:#243c43;color:#fff}.sim-portals{position:absolute;inset:0;pointer-events:none;z-index:110}.sim-portal{position:absolute;pointer-events:auto;border:1px solid #f9f6eb;background:#243c43f2;color:#fff9e9;border-radius:7px;padding:12px 16px;min-height:44px;font-size:12px!important;box-shadow:0 3px 15px #203b4225}.campus-sim .sim-portal:hover{color:#243c43;background:#ecdcba}.portal-0{left:10%;top:12%}.portal-1{left:43%;top:12%}.portal-2{right:8%;top:12%}.sim-compass{position:absolute;right:20px;top:22px;z-index:115;font-size:12px;text-align:center;line-height:1.5;color:#243c43;pointer-events:none;background:#faf8f3d9;border-radius:30px;padding:8px 12px}.sim-scene-caption{position:sticky;bottom:12px;left:20px;width:max-content;max-width:calc(100% - 40px);z-index:120;display:flex;gap:18px;flex-wrap:wrap;background:#faf8f3f5;border:1px solid #d8d2c2;border-radius:8px;padding:10px 14px;font-size:11px;box-sizing:border-box;margin-top:-48px;pointer-events:none}.sim-scene-caption>span:last-child{color:#846a37}.sim-bottom{display:flex;align-items:center;gap:25px;padding:20px 23px}.sim-destinations{display:flex;flex-wrap:wrap;gap:7px;flex:1}.sim-destinations button{background:transparent;border:1px solid #d8d2c2;border-radius:6px;padding:10px 11px;min-height:44px;display:flex;align-items:center;gap:8px;font-size:12px;color:#243c43}.sim-destinations button small{font-size:10px;color:#756f5b}.sim-destinations button[aria-pressed=true]{background:#243c43;border-color:#243c43;color:#fff9e9}.sim-destinations button[aria-pressed=true] small{color:#e7d5b0}.sim-census{max-width:225px;font-size:11px;color:#696c61;line-height:1.6}.sim-census p{margin:0}.sim-census p:first-child{color:#243c43;font-size:12px;margin-bottom:3px}.sim-meet{padding-top:30px;padding-bottom:16px;display:grid;grid-template-columns:210px minmax(0,1fr);align-items:center;gap:12px 24px}.sim-meet label{font-size:14px}.sim-meet select{width:100%;max-width:620px;min-height:48px;border:1px solid #d8d2c2;border-radius:9px;background:#f3f0e8;color:#243c43;padding:10px 38px 10px 14px;font:inherit;font-size:13px}.sim-travel-status{font-size:12px;color:#616a61;grid-column:2;margin:0}.sim-profile{grid-column:1/-1;display:flex;gap:25px;align-items:center;max-width:850px;padding:22px 0;border-top:1px solid #d8d2c2;margin-top:14px}.sim-profile[hidden]{display:none}.sim-profile>img{object-fit:contain;flex-shrink:0}.sim-profile h2{font-size:26px;margin:0 0 6px}.sim-profile p{font-size:14px;line-height:1.6;margin:6px 0}.sim-profile .eyebrow{font-size:10px;color:#846a37}.sim-warp{position:sticky;left:0;top:0;height:600px;margin-top:-600px;z-index:200;overflow:hidden;background:#12232ef5;pointer-events:none;display:grid;place-items:center;color:#f2e4bc}.sim-warp[hidden]{display:none}.sim-warp>span{font-size:12px;letter-spacing:.22em;text-transform:uppercase;z-index:1}.sim-stars{position:absolute;inset:0;overflow:hidden}.sim-stars i{position:absolute;left:50%;top:50%;width:var(--length);height:2px;background:linear-gradient(90deg,transparent,#c9deed);transform-origin:left;transform:rotate(var(--angle)) translateX(20px);animation:sim-warp .65s var(--delay) ease-in infinite;opacity:0}.sim-stars i:nth-child(3n){background:linear-gradient(90deg,transparent,#e0c68f);height:1px}.is-warping{animation:sim-warp-fade .78s both}.sim-still .sim-actor img{transition:none}@keyframes sim-warp{0%{transform:rotate(var(--angle)) translateX(20px) scaleX(.1);opacity:0}25%{opacity:.8}100%{transform:rotate(var(--angle)) translateX(650px) scaleX(4);opacity:0}}@keyframes sim-warp-fade{0%,100%{opacity:0}20%,75%{opacity:1}}
@media(min-width:1600px){.sim-shell{max-width:1550px;margin-inline:auto}.sim-viewport,.sim-world{height:700px}.sim-warp{height:700px;margin-top:-700px}}
@media(max-width:900px){.sim-intro{gap:30px}.sim-shell{margin-inline:16px}.sim-bottom{display:block}.sim-census{max-width:none;margin-top:16px}.sim-toolbar{align-items:flex-start;flex-wrap:wrap}.sim-viewport,.sim-world{height:560px}.sim-warp{height:560px;margin-top:-560px}}
@media(max-width:600px){.campus-sim{padding-top:22px}.sim-intro{display:block;padding-bottom:24px}.sim-intro h1{font-size:36px}.sim-intro>div+div{margin-top:20px;max-width:360px}.sim-intro p:not(.eyebrow){font-size:14px;margin:0 0 12px}.sim-shell{border-radius:12px}.sim-toolbar{padding:15px}.sim-location{gap:9px}.sim-actions{gap:5px}.sim-actions button{font-size:11px;padding:8px}.sim-lift{width:57px;padding:12px 5px;gap:7px}.sim-lift button{min-height:65px;border-radius:7px}.sim-lift button b{font-size:20px}.sim-lift button span{font-size:8px}.sim-lift a{font-size:9px}.sim-viewport,.sim-world{height:510px}.sim-world{min-width:930px}.sim-warp{height:510px;margin-top:-510px}.sim-scene-caption{display:none}.sim-bottom{padding:15px}.sim-destinations{display:grid;grid-template-columns:1fr 1fr;gap:6px}.sim-destinations button{font-size:11px;padding:8px;gap:5px}.sim-meet{grid-template-columns:minmax(0,1fr);gap:10px;padding-top:24px}.sim-travel-status{grid-column:1;font-size:11px}.sim-profile{gap:15px;align-items:flex-start}.sim-profile>img{width:72px;height:72px}.sim-profile h2{font-size:22px}.sim-profile p{font-size:13px}.sim-compass{right:12px;top:10px}}
@media(prefers-reduced-motion:reduce){.sim-stars i,.is-warping{animation:none}.sim-actor img{transition:none}.sim-warp{display:none}}

/* Cover the visible scroll window during travel. */
.sim-warp{position:absolute;left:0;top:0;height:100%;margin-top:0}.sim-warp>span{padding:10px 14px;background:#12232e;border-radius:6px}

.sim-chat{padding-block:16px 28px}.sim-chat>button{border:1px solid #d8d2c2;background:#f3f0e8;color:#243c43;min-height:44px;padding:10px 16px;border-radius:8px;font-size:13px}.sim-chat-status{font-size:12px;color:#616a61}.sim-chat [data-chat-transcript]{max-width:750px;font-size:14px;line-height:1.7}.sim-chat button:disabled{opacity:.6;cursor:wait}

/* Campus v2: persistent residents on image-generated architecture. */
.sim-layout{position:relative;display:block}.sim-lift{position:absolute;left:18px;top:20px;z-index:150;width:76px;border:1px solid #ffffffb0;border-radius:18px;background:#f9f6eedb;color:#243c43;box-shadow:0 12px 35px #132d3430;backdrop-filter:blur(22px) saturate(1.3);-webkit-backdrop-filter:blur(22px) saturate(1.3);padding:10px;box-sizing:border-box}.sim-lift button{background:#ffffff75;border-color:#ffffffc0;min-height:66px}.sim-lift a{color:#243c43;padding-top:8px;margin:0}.sim-lift button[aria-pressed=true]{background:#243c43ed;color:#fff9e9;border-color:#243c43}.sim-viewport{height:auto;aspect-ratio:3/2;max-height:850px}.sim-world{width:100%;min-width:900px;height:auto!important;aspect-ratio:3/2}.sim-environment{width:100%;height:100%;object-fit:fill;display:block}.sim-compass{display:none}.sim-actor{width:70px;min-height:80px}.sim-actor img{height:48px;width:48px}.sim-task{font-size:8px;background:#243c43e8;color:white;padding:2px 5px;border-radius:5px}.sim-actor[data-state=walking] img{animation:sim-walk .45s infinite alternate;transform:scaleX(var(--facing,1))}.sim-actor[data-state=talking] span{background:#243c43;color:white}.sim-still .sim-actor img{animation:none}.sim-bubble-layer{position:absolute;inset:0;pointer-events:none;z-index:105}.sim-talk-bubble{position:absolute;transform:translate(-50%,-100%);width:245px;padding:13px 15px;border-radius:14px;background:#fffdf6f5;box-shadow:0 6px 24px #18343d28;border:1px solid #c8beaa;display:flex;flex-direction:column;gap:5px;line-height:1.45}.sim-talk-bubble[hidden]{display:none}.sim-talk-bubble:after{content:'';position:absolute;bottom:-7px;left:50%;width:12px;height:12px;background:#fffdf6;transform:rotate(45deg);border-right:1px solid #c8beaa;border-bottom:1px solid #c8beaa}.sim-talk-bubble strong{font-size:11px;color:#846a37}.sim-talk-bubble span{font-size:12px}.sim-talk-bubble small{font-size:9px;color:#52615b}.sim-room-count{font-size:10px;opacity:.75}.sim-chat-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.sim-chat-heading h2{font-size:25px;margin:4px 0}.sim-chat-heading button{border:1px solid #c8beaa;background:#f4f0e5;border-radius:9px;min-height:44px;padding:10px 16px;color:#243c43}.sim-chat-note{font-size:12px;color:#616a61}.sim-chat [data-chat-transcript]{max-width:900px;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.sim-chat [data-chat-transcript] p{margin:0;padding:16px;background:#f6f3eb;border:1px solid #e3ddcf;border-radius:12px}.sim-chat [data-chat-transcript] strong{display:block;margin-bottom:6px;color:#846a37}.sim-portal{font-size:11px!important;padding:10px 12px}.portal-0{left:18%;top:9%}.portal-1{left:45%;top:9%}.portal-2{right:8%;top:9%}.sim-scene-caption{margin-top:-44px}.sim-warp{height:100%;margin-top:0}.sim-warp>span{font-size:12px}
@keyframes sim-walk{from{translate:0 -1px}to{translate:0 2px}}
@media(max-width:900px){.sim-viewport{height:600px;aspect-ratio:auto;max-height:none}.sim-world{min-width:900px}.sim-lift{left:10px;top:14px}.sim-chat [data-chat-transcript]{grid-template-columns:1fr}.sim-scene-caption{display:none}}
@media(max-width:600px){.sim-viewport{height:600px}.sim-lift{width:62px;padding:7px;left:8px}.sim-lift button{min-height:58px}.sim-lift button span{font-size:9px}.sim-chat-heading{align-items:flex-start;flex-direction:column}.sim-chat-heading h2{font-size:23px}.sim-talk-bubble{width:220px}.sim-destinations button{overflow-wrap:anywhere}.sim-bottom{padding:12px}}
@media(prefers-reduced-motion:reduce){.sim-actor img{animation:none!important}}

/* Walk through a world larger than the camera, on every screen size. */
.sim-world{width:2200px!important;min-width:2200px!important;height:1466.667px!important;aspect-ratio:3/2}.sim-viewport{height:650px!important;max-height:none;aspect-ratio:auto;overflow:auto;touch-action:pan-x pan-y;cursor:grab;scrollbar-width:thin;scrollbar-color:#846a37 #e6e2d6;overscroll-behavior:contain}.sim-viewport:active{cursor:grabbing}.sim-viewport:focus-visible{outline:3px solid #846a37;outline-offset:-3px}.sim-world .sim-actor{cursor:pointer}.sim-camera-controls{position:absolute;right:18px;bottom:18px;z-index:155;display:flex;gap:5px;padding:7px;border:1px solid #ffffffb0;border-radius:14px;background:#f9f6eee8;backdrop-filter:blur(18px);box-shadow:0 5px 24px #243c4325}.sim-camera-controls button{min-width:44px;min-height:44px;border:1px solid #c5bcaa;border-radius:8px;color:#243c43;background:#fffaf0;font-size:18px}.sim-camera-controls [data-pan=center]{font-size:12px;padding:0 10px}.sim-scene-caption{display:none}.sim-lift{top:14px}.sim-warp{height:650px!important}.sim-portal{font-size:15px!important;padding:14px 20px}.sim-actor img{width:58px;height:58px}.sim-actor span{font-size:11px}.sim-task{font-size:9px}.sim-talk-bubble{width:245px}.sim-census p:first-child{font-weight:600}.sim-scenery{pointer-events:none}
@media(max-width:600px){.sim-viewport{height:580px!important}.sim-warp{height:580px!important}.sim-camera-controls{right:8px;bottom:10px;gap:3px;padding:5px}.sim-camera-controls button{min-width:44px;min-height:44px}.sim-talk-bubble{width:220px}.sim-camera-controls [data-pan=center]{padding-inline:7px}.sim-portal{font-size:13px!important}}

@media(max-width:600px){.sim-talk-bubble{box-sizing:border-box;width:min(252px,calc(100vw - 130px))}}

.sim-chat [data-chat-transcript]{display:flex;flex-direction:column;gap:10px;max-height:420px;overflow:auto;scrollbar-width:thin}.sim-chat [data-chat-transcript] p{max-width:85%;width:fit-content}.sim-chat [data-chat-transcript] p[hidden]{display:none}.sim-chat [data-chat-transcript] p:nth-child(even){align-self:flex-end;background:#eceee7}

.sim-room-labels{position:absolute;inset:0;pointer-events:none;z-index:102}.sim-workstation{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;background:#fff9e8ed;border:1px solid #b6a278;border-radius:9px;padding:9px 15px;color:#243c43;font-size:13px!important;box-shadow:0 3px 12px #243c4320;min-height:44px}.sim-actor[data-state=working] img{animation:sim-work 2s ease-in-out infinite alternate}.sim-actor[data-state=listening] img{animation:sim-work 3s ease-in-out infinite alternate}.sim-still .sim-actor img{animation:none}@keyframes sim-work{from{transform:translateY(0) rotate(-1deg)}to{transform:translateY(2px) rotate(1deg)}}

.sim-actor img{width:76px;height:76px}.sim-actor{min-height:100px;width:84px}

/* A stable, centered reading frame: messages scroll inside, never grow the page. */
.sim-meet{box-sizing:border-box;max-width:960px;margin-inline:auto;grid-template-columns:minmax(0,1fr);justify-items:center;text-align:left;gap:12px;padding-top:30px;padding-bottom:0}
.sim-meet select{text-align:left}
.sim-meet .sim-travel-status{grid-column:1;min-height:48px;width:100%;max-width:760px;box-sizing:border-box;overflow-wrap:anywhere}
.sim-profile{text-align:left;justify-self:stretch}
.sim-chat{box-sizing:border-box;width:calc(100% - 48px);max-width:960px;margin:24px auto 40px;padding:24px;border:1px solid #d8d2c2;border-radius:18px;background:#faf8f3;text-align:left}
.sim-chat-heading{justify-content:flex-start;min-height:76px}
.sim-chat-heading h2{line-height:1.3}
.sim-chat-status{height:48px;box-sizing:border-box;margin:0 0 16px;display:flex;align-items:center;justify-content:flex-start;overflow:auto;overflow-wrap:anywhere}
.sim-chat [data-chat-transcript]{box-sizing:border-box;width:100%;max-width:none;height:420px;min-height:420px;max-height:420px;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:16px;border:1px solid #e3ddcf;border-radius:12px;background:#fffdf7;align-items:center}
.sim-chat [data-chat-transcript] p,.sim-chat [data-chat-transcript] p:nth-child(even){box-sizing:border-box;flex-shrink:0;width:100%;max-width:100%;align-self:center;text-align:left;overflow-wrap:anywhere;min-width:0}
@media(max-width:600px){.sim-chat{width:calc(100% - 32px);padding:18px 12px;border-radius:12px}.sim-chat [data-chat-transcript]{height:380px;min-height:380px;max-height:380px;padding:10px}.sim-meet .sim-travel-status{min-height:64px}}

.sim-chat-heading{align-items:center}.sim-chat-heading>div{width:100%;text-align:left}
