/* Code-native scenery around the real 3D character; never a replacement model. */
.has-character-atmosphere { isolation:isolate; }
.has-character-atmosphere > #character-viewport { z-index:1; }
.character-atmosphere { --atmosphere-violet:167,155,237; position:absolute; inset:0; z-index:0; overflow:hidden; pointer-events:none; user-select:none; font-family:'SFMono-Regular',Consolas,'Liberation Mono',monospace; color:rgba(213,210,231,.65); }
.character-atmosphere[data-active="false"] { visibility:hidden; }
.character-atmosphere__halo { position:absolute; width:78%; height:83%; left:13%; top:9%; background:radial-gradient(ellipse at 54% 52%,rgba(128,102,190,.105),transparent 68%); }
.character-atmosphere__grid { position:absolute; inset:10% 2% 10% 15%; background-image:linear-gradient(rgba(190,179,229,.028) 1px,transparent 1px),linear-gradient(90deg,rgba(190,179,229,.028) 1px,transparent 1px); background-size:68px 68px; mask-image:radial-gradient(ellipse at 55% 48%,#000 20%,transparent 74%); }
.character-atmosphere__code-grid { position:absolute; inset:15% 1% 11% 14%; display:grid; grid-template-columns:1.1fr .9fr .9fr 1.1fr; gap:7%; opacity:.55; mask-image:linear-gradient(transparent,#000 9%,#000 82%,transparent); }
.character-atmosphere__code-column { min-width:0; display:flex; flex-direction:column; gap:13px; overflow:hidden; font-size:9px; line-height:1.35; color:rgba(192,191,220,.42); letter-spacing:.075em; }
.character-atmosphere__code-column:nth-child(2) { padding-top:19%; opacity:.48; }
.character-atmosphere__code-column:nth-child(3) { padding-top:38%; opacity:.45; }
.character-atmosphere__code-column:nth-child(4) { padding-top:9%; }
.character-atmosphere__code-column > span { display:block; white-space:nowrap; }
.character-atmosphere__code-column > .character-atmosphere__code-title { padding-bottom:8px; margin-bottom:3px; border-bottom:1px solid rgba(var(--atmosphere-violet),.25); color:rgba(var(--atmosphere-violet),.8); font-size:8px; letter-spacing:.13em; }
.character-atmosphere__diagram { position:absolute; left:14%; top:6%; width:78%; height:90%; overflow:visible; }
.character-atmosphere__diagram-lines { stroke:rgba(207,199,236,.2); stroke-width:.7; }
.character-atmosphere__orbit { transform-origin:400px 400px; stroke:rgba(var(--atmosphere-violet),.34); stroke-width:1; animation:character-atmosphere-orbit 96s linear infinite; }
.character-atmosphere__scan { position:absolute; top:9%; height:1px; left:16%; right:1%; opacity:.22; background:linear-gradient(90deg,transparent,rgba(var(--atmosphere-violet),.6),transparent); animation:character-atmosphere-scan 12s linear infinite; }
.character-atmosphere__platform { position:absolute; top:86%; left:52%; width:55%; height:10%; transform:translate(-50%,-50%); background:radial-gradient(ellipse,rgba(147,117,212,.12),transparent 65%); }
.character-atmosphere__platform i { position:absolute; inset:16% 5%; border:1px solid rgba(var(--atmosphere-violet),.37); border-radius:50%; box-shadow:0 0 20px rgba(142,105,218,.045); }
.character-atmosphere__platform i:nth-child(2) { inset:28% 16%; border-color:rgba(var(--atmosphere-violet),.18); border-style:dashed; }
.character-atmosphere__platform b { position:absolute; height:1px; left:-5%; right:-5%; top:50%; background:linear-gradient(90deg,transparent,rgba(var(--atmosphere-violet),.2),transparent); }
.character-atmosphere__identity { position:absolute; top:5.5%; left:16%; display:flex; flex-direction:column; gap:8px; }
.character-atmosphere__identity > span { font-size:12px; color:rgba(234,230,249,.73); letter-spacing:.31em; }
.character-atmosphere__identity small { font-size:8px; color:rgba(var(--atmosphere-violet),.65); letter-spacing:.15em; }
.character-atmosphere__index { position:absolute; top:5.5%; right:2%; text-align:right; display:flex; flex-direction:column; gap:8px; }
.character-atmosphere__index > span { font-size:12px; letter-spacing:.22em; color:rgba(234,230,249,.7); }
.character-atmosphere__index small { font-size:8px; letter-spacing:.13em; color:rgba(207,200,236,.46); }
.character-atmosphere__callout { position:absolute; font-size:8px; line-height:1.5; letter-spacing:.11em; display:flex; flex-direction:column; gap:5px; color:rgba(213,209,234,.7); }
.character-atmosphere__callout b { font-weight:400; }
.character-atmosphere__callout span { font-family:Arial,'Microsoft YaHei',sans-serif; font-size:10px; letter-spacing:.1em; color:rgba(var(--atmosphere-violet),.7); }
.character-atmosphere__callout i { width:84px; height:18px; border-top:1px solid rgba(var(--atmosphere-violet),.33); position:relative; }
.character-atmosphere__callout i::after { content:''; position:absolute; top:-2px; width:3px; height:3px; border-radius:50%; background:rgba(var(--atmosphere-violet),.65); }
.character-atmosphere__callout--optics { left:16%; top:32%; }
.character-atmosphere__callout--optics i { transform:skewY(-18deg); transform-origin:left; }
.character-atmosphere__callout--optics i::after { right:0; }
.character-atmosphere__callout--memory { right:2%; top:61%; text-align:right; align-items:flex-end; }
.character-atmosphere__callout--memory i { transform:skewY(18deg); transform-origin:right; }
.character-atmosphere__callout--memory i::after { left:0; }
.character-atmosphere__archive { position:absolute; left:16%; right:2%; bottom:9%; display:flex; align-items:center; gap:12px; font-size:8px; line-height:1.4; letter-spacing:.11em; color:rgba(208,202,234,.5); }
.character-atmosphere__archive > span { color:rgba(var(--atmosphere-violet),.71); }
.character-atmosphere__archive b { font-weight:400; color:rgba(226,223,241,.63); }
.character-atmosphere__archive i { flex:1; height:1px; background:rgba(var(--atmosphere-violet),.16); }
.character-atmosphere__archive small { font:9px/1.4 Arial,'Microsoft YaHei',sans-serif; letter-spacing:.06em; color:rgba(208,202,234,.48); }
.character-atmosphere__metadata { position:absolute; left:16%; right:2%; bottom:4.5%; display:flex; justify-content:space-between; gap:12px; color:rgba(208,202,234,.52); font-size:8px; line-height:1.5; letter-spacing:.12em; }
.character-atmosphere[data-running="false"] .character-atmosphere__orbit,.character-atmosphere[data-running="false"] .character-atmosphere__scan { animation-play-state:paused; }
.character-atmosphere[data-view="fullbody"] .character-atmosphere__platform { top:80%; width:48%; }
@keyframes character-atmosphere-orbit { to { transform:rotate(360deg); } }
@keyframes character-atmosphere-scan { 0% { transform:translateY(0); opacity:0; } 8%,85% { opacity:.22; } 100% { transform:translateY(62vh); opacity:0; } }
@media(min-width:821px) and (max-width:1200px) {
 .character-atmosphere__identity,.character-atmosphere__callout--optics { left:5%; }
 .character-atmosphere__code-grid { left:4%; gap:5%; }
 .character-atmosphere__archive,.character-atmosphere__metadata { left:5%; }
 .character-atmosphere__diagram { left:3%; width:95%; }
 .character-atmosphere__callout i { width:45px; }
 .character-atmosphere__archive small { display:none; }
}
@media(max-width:820px) {
 .character-atmosphere__identity { top:5%; left:7%; gap:5px; }
 .character-atmosphere__identity > span { font-size:9px; letter-spacing:.2em; }
 .character-atmosphere__identity small { font-size:6px; letter-spacing:.08em; }
 .character-atmosphere__index { top:5%; right:5%; gap:5px; }
 .character-atmosphere__index > span { font-size:9px; }
 .character-atmosphere__index small { font-size:6px; }
 .character-atmosphere__code-grid { inset:15% 4% 10% 6%; grid-template-columns:1fr 1fr; gap:47%; opacity:.52; }
 .character-atmosphere__code-column { font-size:7px; gap:12px; }
 .character-atmosphere__code-column:nth-child(2),.character-atmosphere__code-column:nth-child(3) { display:none; }
 .character-atmosphere__code-column:nth-child(4) { padding-top:45%; }
 .character-atmosphere__code-column > .character-atmosphere__code-title { font-size:6px; }
 .character-atmosphere__diagram { left:1%; width:98%; top:14%; height:68%; }
 .character-atmosphere__diagram-lines { stroke:rgba(207,199,236,.17); }
 .character-atmosphere__callout { font-size:6px; gap:4px; }
 .character-atmosphere__callout span { font-size:7px; }
 .character-atmosphere__callout--optics { left:7%; top:28%; }
 .character-atmosphere__callout--memory { right:4%; top:73%; }
 .character-atmosphere__callout i { width:28px; height:10px; }
 .character-atmosphere__platform { top:82%; left:50%; width:68%; height:7%; }
 .character-atmosphere[data-view="fullbody"] .character-atmosphere__platform { top:76%; width:54%; }
 .character-atmosphere__archive { left:7%; right:4%; bottom:8%; font-size:6px; gap:6px; }
 .character-atmosphere__archive > span,.character-atmosphere__archive small { display:none; }
 .character-atmosphere__metadata { left:7%; right:4%; bottom:4%; font-size:6px; letter-spacing:.06em; }
 .character-atmosphere__scan { left:5%; right:4%; }
}
@media(prefers-reduced-motion:reduce) {
 .character-atmosphere__orbit,.character-atmosphere__scan { animation:none; }
 .character-atmosphere__scan { display:none; }
}
