:root{
  --ink:#050713;--cyan:#9ef7ff;--violet:#a887ff;--ice:#eefcff;--gold:#f1d79a;
  --room-intensity:.72;--mic-level:0;--pv-h:100vh;--pv-w:100vw;
}
*{box-sizing:border-box}
html,body{margin:0;width:100%;height:100%;overflow:hidden;background:var(--ink);color:var(--ice);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
button{font:inherit}
.prime-viewport{position:fixed;left:var(--pv-left,0);top:var(--pv-top,0);width:var(--pv-w,100vw);height:var(--pv-h,100vh);overflow:hidden;background:#03050d}
.sanctum{position:relative;width:100%;height:100%;overflow:hidden;isolation:isolate;background:
radial-gradient(circle at 50% 78%,rgba(104,214,255,.11),transparent 24%),
linear-gradient(180deg,#050715 0%,#0a1023 48%,#070913 100%)}
.space,.architecture{position:absolute;inset:0;pointer-events:none}
.nebula{position:absolute;inset:-20%;background:
radial-gradient(circle at 72% 22%,rgba(145,110,255,.25),transparent 17%),
radial-gradient(circle at 30% 29%,rgba(62,223,255,.17),transparent 22%),
radial-gradient(circle at 53% 6%,rgba(255,215,160,.12),transparent 18%);
filter:blur(26px);animation:nebulaDrift 18s ease-in-out infinite alternate}
.stars{position:absolute;inset:0;background-image:
radial-gradient(circle,rgba(255,255,255,.88) 0 1px,transparent 1.4px);
background-size:73px 73px;opacity:.42;animation:starsFloat 36s linear infinite}
.stars-b{background-size:117px 117px;transform:translate(20px,10px);opacity:.24;animation-duration:54s}
.planet{position:absolute;width:min(46vw,520px);aspect-ratio:1;right:-7vw;top:-12vw;border-radius:50%;
background:radial-gradient(circle at 34% 31%,#f6e9ff 0 2%,#bfc5ff 12%,#6d6e9e 40%,#242b50 70%,#12182f 100%);
box-shadow:0 0 90px rgba(157,162,255,.22),inset -36px -42px 80px rgba(5,6,19,.75);opacity:.78}
.planet span{position:absolute;inset:-8%;border:1px solid rgba(222,237,255,.2);border-radius:50%;transform:rotate(-18deg) scaleY(.33)}
.horizon{position:absolute;left:-5%;right:-5%;bottom:18%;height:28%;background:
linear-gradient(180deg,transparent,rgba(96,141,204,.05) 45%,rgba(178,220,255,.08)),
radial-gradient(ellipse at center bottom,rgba(248,217,167,.19),transparent 47%);filter:blur(3px)}
.arch{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:50% 50% 18% 18%;border:1px solid rgba(183,238,255,.16);box-shadow:0 0 40px rgba(104,227,255,.04),inset 0 0 40px rgba(104,227,255,.03)}
.arch-a{width:min(82vw,1100px);height:90vh}
.arch-b{width:min(66vw,860px);height:79vh;border-color:rgba(184,158,255,.17)}
.floor-grid{position:absolute;left:-20%;right:-20%;bottom:-23%;height:58%;transform:perspective(760px) rotateX(66deg);transform-origin:center bottom;
background-image:linear-gradient(rgba(132,232,255,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(132,232,255,.08) 1px,transparent 1px);
background-size:70px 70px;mask-image:linear-gradient(to top,#000 25%,transparent 95%)}
.reflection{position:absolute;left:38%;right:38%;bottom:1%;height:23%;background:radial-gradient(ellipse,rgba(134,241,255,.14),transparent 68%);filter:blur(8px)}
.water-line{position:absolute;left:9%;right:9%;bottom:12%;height:1px;background:linear-gradient(90deg,transparent,rgba(157,247,255,.5),transparent);box-shadow:0 0 20px rgba(157,247,255,.25)}
.left-nook{position:absolute;left:clamp(22px,5vw,80px);bottom:15%;width:170px;height:220px;opacity:.72;filter:drop-shadow(0 0 24px rgba(110,233,255,.08))}
.bonsai{position:absolute;bottom:38px;left:10px;width:120px;height:150px}
.trunk{position:absolute;left:58px;bottom:0;width:9px;height:94px;background:linear-gradient(#6e6a72,#403d50);border-radius:70% 30% 40% 30%;transform:rotate(9deg)}
.leaf{position:absolute;width:54px;height:32px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#d9fcff,#77af9d 55%,#315d5d 100%);box-shadow:0 0 18px rgba(163,255,235,.09)}
.l1{left:18px;top:34px}.l2{left:63px;top:24px}.l3{left:38px;top:59px}.l4{left:75px;top:66px}.l5{left:9px;top:76px}
.books{position:absolute;bottom:13px;left:8px;display:grid;gap:3px}
.books i{width:78px;height:7px;border-radius:3px;background:linear-gradient(90deg,#7186aa,#c1b6d8,#67779e);opacity:.6}
.small-orb{position:absolute;right:4px;bottom:20px;width:38px;height:38px;border-radius:50%;background:radial-gradient(circle at 35% 28%,#fff,#98e7ff 13%,#3c6999 45%,#10172d 76%);box-shadow:0 0 25px rgba(131,232,255,.33)}
.holo{position:absolute;width:clamp(84px,12vw,170px);height:clamp(130px,23vh,230px);top:26%;border:1px solid rgba(170,241,255,.14);border-radius:26px;background:linear-gradient(180deg,rgba(211,248,255,.055),rgba(108,110,255,.025));backdrop-filter:blur(5px);opacity:.58}
.holo-left{left:11%}.holo-right{right:11%}
.holo:before,.holo:after{content:"";position:absolute;border-radius:50%;border:1px solid rgba(176,246,255,.22)}
.holo:before{width:52%;aspect-ratio:1;left:24%;top:18%}.holo:after{width:35%;aspect-ratio:1;left:32%;top:26%;border-color:rgba(176,151,255,.24)}
.holo span{position:absolute;left:20%;right:20%;bottom:25%;height:1px;background:rgba(195,245,255,.23);box-shadow:0 10px rgba(195,245,255,.15),0 20px rgba(195,245,255,.1)}
.holo i{position:absolute;width:5px;height:5px;border-radius:50%;left:50%;top:40%;background:#d9ffff;box-shadow:0 0 15px #8ef3ff}
.presence{position:absolute;left:50%;bottom:4%;width:min(39vw,420px);height:min(84vh,760px);transform:translateX(-50%);transform-origin:center bottom;transition:transform .7s cubic-bezier(.2,.8,.2,1),filter .4s ease;filter:drop-shadow(0 0 26px rgba(133,232,255,.13))}
.body{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.presence-halo{position:absolute;left:50%;top:29%;width:56%;aspect-ratio:1;border-radius:50%;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(202,252,255,.16),rgba(146,104,255,.08) 38%,transparent 71%);filter:blur(7px);animation:haloBreath 4.8s ease-in-out infinite}
.core{transform-origin:210px 340px;animation:corePulse 2.6s ease-in-out infinite}
.eye{transition:transform .25s,opacity .25s}
.mouth{transition:d .25s,stroke .25s}
.arm,.head,.torso{transform-box:fill-box;transform-origin:center;transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.voice-rings{position:absolute;left:50%;top:42%;width:48%;aspect-ratio:1;transform:translate(-50%,-50%);pointer-events:none}
.voice-rings i{position:absolute;inset:0;border:1px solid rgba(170,248,255,.23);border-radius:50%;opacity:0;transform:scale(.55)}
.sanctum[data-pose="listen"] .head{transform:rotate(-3deg) translateY(2px)}
.sanctum[data-pose="think"] .head{transform:rotate(5deg) translate(-3px,-1px)}
.sanctum[data-pose="think"] .arm-right{transform:rotate(-7deg) translate(-3px,-8px)}
.sanctum[data-pose="greet"] .arm-right{transform:rotate(-18deg) translate(-10px,-24px)}
.sanctum[data-pose="rest"] .presence{transform:translateX(-50%) scale(.985);filter:saturate(.8) brightness(.85)}
.sanctum[data-pose="speak"] .voice-rings i{animation:voiceRing 1.35s ease-out infinite}
.sanctum[data-pose="speak"] .voice-rings i:nth-child(2){animation-delay:.35s}.sanctum[data-pose="speak"] .voice-rings i:nth-child(3){animation-delay:.7s}
.sanctum[data-expression="curious"] .head{transform:rotate(-5deg)}
.sanctum[data-expression="focused"] .eye{transform:scaleY(.72)}
.sanctum[data-expression="delighted"] .mouth{stroke:#8eeeff;stroke-width:4}
.sanctum[data-expression="contemplative"] .eye{opacity:.72}
.sanctum[data-expression="serene"] .eye{transform:scaleY(.62)}
.status-shell{position:absolute;left:max(18px,env(safe-area-inset-left));right:max(18px,env(safe-area-inset-right));top:max(16px,env(safe-area-inset-top));display:flex;align-items:center;justify-content:space-between;z-index:30;pointer-events:none;font-size:10px;letter-spacing:.18em;color:rgba(230,249,255,.66)}
.status-mark,.bridge-state{display:flex;align-items:center;gap:9px;padding:9px 11px;border:1px solid rgba(191,239,255,.11);background:rgba(7,13,29,.34);backdrop-filter:blur(14px);border-radius:999px}
.status-mark i,.bridge-state i{width:6px;height:6px;border-radius:50%;background:#9ef7ff;box-shadow:0 0 12px #9ef7ff}
.bridge-state i{background:#a7acc0;box-shadow:none}.sanctum[data-bridge="connected"] .bridge-state i{background:#b9ffcd;box-shadow:0 0 12px #7dffab}
.prime-command-pill{position:absolute;left:50%;bottom:max(18px,env(safe-area-inset-bottom));transform:translateX(-50%);z-index:35;display:flex;align-items:center;gap:4px;padding:5px;border:1px solid rgba(197,242,255,.12);border-radius:999px;background:rgba(5,9,22,.57);box-shadow:0 18px 60px rgba(0,0,0,.28);backdrop-filter:blur(18px)}
.prime-command-pill button{border:0;background:transparent;color:rgba(235,250,255,.76);min-height:38px;padding:0 13px;border-radius:999px;font-size:9px;letter-spacing:.12em;cursor:pointer;transition:background .2s,color .2s,transform .2s}
.prime-command-pill button:hover{background:rgba(150,237,255,.08);color:#fff}.prime-command-pill button:active{transform:scale(.96)}
.prime-command-pill button[aria-pressed="true"]{background:rgba(143,226,255,.09);color:#dffcff}
.mic-icon{display:inline-block;margin-right:7px;color:#9ef7ff;transform:scale(calc(1 + var(--mic-level) * .18))}
.privacy-note{position:absolute;left:50%;bottom:calc(max(18px,env(safe-area-inset-bottom)) + 56px);transform:translateX(-50%);z-index:20;font-size:9px;letter-spacing:.08em;color:rgba(226,244,255,.27);white-space:nowrap}
.room-note{position:absolute;right:5%;bottom:19%;z-index:18;width:min(260px,28vw);min-height:40px;padding:12px 14px;border-left:1px solid rgba(173,241,255,.2);font-size:11px;line-height:1.45;letter-spacing:.04em;color:rgba(233,249,255,.56);opacity:0;transform:translateY(7px);transition:.35s ease;background:linear-gradient(90deg,rgba(6,12,27,.25),transparent)}
.room-note.visible{opacity:1;transform:none}
.object-slot{position:absolute;z-index:13;pointer-events:none;min-width:70px;min-height:70px;display:grid;place-items:center;opacity:.9}
.slot-left{left:16%;top:49%}.slot-right{right:16%;top:49%}.slot-sky{left:50%;top:14%;transform:translateX(-50%)}.slot-table{right:25%;bottom:20%}
.object-slot[data-object="crystal"]:before{content:"";width:32px;height:58px;background:linear-gradient(145deg,#e8faff,#8c79ff 52%,#4bc6ff);clip-path:polygon(50% 0,100% 35%,78% 100%,20% 88%,0 33%);filter:drop-shadow(0 0 18px rgba(161,129,255,.5))}
.object-slot[data-object="orb"]:before{content:"";width:52px;height:52px;border-radius:50%;background:radial-gradient(circle at 35% 25%,#fff,#9ef7ff 18%,#6864a9 55%,#121a36 78%);box-shadow:0 0 28px rgba(145,230,255,.35)}
.object-slot[data-object="lantern"]:before{content:"";width:36px;height:54px;border-radius:8px;background:radial-gradient(circle at center,#fff7c8,#f1d79a 25%,rgba(241,215,154,.14) 65%);border:1px solid rgba(255,237,190,.3);box-shadow:0 0 36px rgba(255,217,139,.26)}
.object-slot[data-object="holo-planet"]:before{content:"";width:68px;height:68px;border-radius:50%;border:1px solid rgba(154,240,255,.45);box-shadow:inset 0 0 22px rgba(117,226,255,.12),0 0 22px rgba(117,226,255,.18)}
.object-slot[data-object="holo-planet"]:after{content:"";position:absolute;width:88px;height:26px;border:1px solid rgba(178,157,255,.38);border-radius:50%;transform:rotate(-15deg)}
.object-slot[data-object="constellation"]:before{content:"✦ · ✧ · ✦";font-size:20px;letter-spacing:8px;color:#dffcff;text-shadow:0 0 14px #86eaff}
.object-slot[data-object="books"]:before{content:"";width:72px;height:38px;background:linear-gradient(#7187aa 0 20%,transparent 20% 28%,#9f83bc 28% 51%,transparent 51% 59%,#5d7898 59% 81%,transparent 81%);border-radius:3px}
.object-slot[data-object="fireflies"]:before{content:"";width:90px;height:72px;background:radial-gradient(circle at 20% 30%,#fff6ad 0 2px,transparent 3px),radial-gradient(circle at 65% 20%,#fff6ad 0 2px,transparent 3px),radial-gradient(circle at 44% 65%,#fff6ad 0 2px,transparent 3px),radial-gradient(circle at 82% 72%,#fff6ad 0 2px,transparent 3px);filter:drop-shadow(0 0 6px #ffe67a);animation:fireflyFloat 4s ease-in-out infinite}
.sanctum[data-scene="night"]{background:linear-gradient(180deg,#02040b,#070c1c 55%,#050713)}
.sanctum[data-scene="dawn"] .horizon{background:radial-gradient(ellipse at center bottom,rgba(255,192,135,.34),transparent 50%)}
.sanctum[data-scene="void"] .architecture,.sanctum[data-scene="void"] .left-nook,.sanctum[data-scene="void"] .holo{opacity:.13}
.sanctum[data-lighting="violet"]{filter:hue-rotate(28deg)}
.sanctum[data-lighting="warm"] .space{filter:sepia(.22) saturate(.82)}
.sanctum[data-lighting="moon"] .space{filter:saturate(.6) brightness(.82)}
.sanctum[data-pulse="soft"] .presence{animation:presencePulse 1.8s ease-in-out 2}
.sanctum[data-pulse="bright"] .presence{animation:presenceBright .8s ease-in-out 3}
.sanctum[data-pulse="ripple"] .voice-rings i{animation:voiceRing 1.2s ease-out 3}
@keyframes nebulaDrift{to{transform:translate3d(2.5%,-1.5%,0) scale(1.04)}}
@keyframes starsFloat{to{transform:translate3d(-73px,73px,0)}}
@keyframes haloBreath{50%{transform:translate(-50%,-50%) scale(1.08);opacity:.74}}
@keyframes corePulse{50%{transform:scale(1.11);opacity:.86}}
@keyframes voiceRing{0%{opacity:.55;transform:scale(.55)}100%{opacity:0;transform:scale(1.25)}}
@keyframes fireflyFloat{50%{transform:translateY(-7px)}}
@keyframes presencePulse{50%{filter:drop-shadow(0 0 42px rgba(156,242,255,.34));transform:translateX(-50%) scale(1.018)}}
@keyframes presenceBright{50%{filter:brightness(1.4) drop-shadow(0 0 52px rgba(156,242,255,.4))}}
@media(max-width:720px){
  .presence{width:min(76vw,390px);height:min(76vh,690px);bottom:8%}
  .holo{opacity:.27}.holo-left{left:2%}.holo-right{right:2%}
  .left-nook{transform:scale(.72);transform-origin:left bottom;left:10px;bottom:17%}
  .planet{width:62vw;right:-19vw;top:-9vw}
  .status-shell{font-size:8px}.bridge-state span{display:none}
  .prime-command-pill button{padding:0 10px}.prime-command-pill button span:not(.mic-icon){display:none}
  .privacy-note{font-size:8px;bottom:calc(max(18px,env(safe-area-inset-bottom)) + 54px)}
  .room-note{right:4%;width:42vw;font-size:10px}
}
@media(max-height:620px) and (orientation:landscape){
  .presence{height:88vh;width:auto;aspect-ratio:420/760;bottom:1%}
  .left-nook{transform:scale(.62);transform-origin:left bottom;bottom:8%}
  .privacy-note{display:none}
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}
