body.nebula-ai-register{overflow:hidden}
body.nebula-ai-register>.site-header,body.nebula-ai-register>main,body.nebula-ai-register>.site-footer{opacity:0;filter:blur(9px);transform:translateY(12px);pointer-events:none;transition:opacity .65s ease,filter .8s ease,transform .8s cubic-bezier(.22,1,.36,1)}
.nebula-ai{--ai-ink:#e0f0f7;--ai-muted:#92adbc;--ai-ease:cubic-bezier(.22,1,.36,1);position:fixed;inset:0;z-index:150;color:var(--ai-ink);opacity:0;transition:opacity .55s ease;pointer-events:auto;font:400 16px/1.75 var(--font)}
.nebula-ai.is-visible{opacity:1}.nebula-ai.is-closing{opacity:0;pointer-events:none}
.ai-atmosphere{position:absolute;inset:0;overflow:hidden;background:#101c29;opacity:1;transition:opacity .8s ease;pointer-events:none}
.ai-atmosphere:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 45%,transparent,#070d18bb 90%);}
.ai-atmosphere i{position:absolute;width:80vw;height:70vh;left:-20%;top:-15%;border-radius:50%;background:radial-gradient(ellipse,#5884a780,transparent 68%);filter:blur(75px);animation:ai-cloud 27s ease-in-out infinite alternate;will-change:transform}
.ai-atmosphere i:nth-child(2){left:45%;top:15%;background:radial-gradient(ellipse,#467d8d80,transparent 65%);animation-duration:34s;animation-delay:-11s}
.ai-atmosphere i:nth-child(3){width:55vw;left:20%;top:60%;background:radial-gradient(ellipse,#66678a50,transparent 68%);animation-duration:31s;animation-delay:-19s}
@keyframes ai-cloud{from{transform:translate3d(-5%,-8%,0) scale(.9)}to{transform:translate3d(16%,12%,0) scale(1.2)}}
.ai-topline{position:fixed;left:32px;right:32px;top:24px;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:15px;pointer-events:none}
.ai-topline>span{font-size:9px;letter-spacing:.18em;color:#b1c7d3a8}.ai-topline i{font-style:normal;margin:0 9px;color:#b1c7d344}
.ai-topline>div{display:flex;align-items:center;gap:8px;pointer-events:auto}
.ai-topline button{font-size:11px;color:#a8c0cf;border:1px solid #9fbfc31c;background:#0c172680;border-radius:20px;padding:8px 14px;transition:color .2s,background .2s,border-color .2s}
.ai-topline button:hover{color:#e4f5ff;background:#30475a88;border-color:#9fbfc34d}.ai-topline button:disabled{opacity:.4;cursor:wait}
.ai-orb{position:fixed;left:calc(50% - 225px);top:calc(50% - 225px);width:450px;height:450px;pointer-events:none;opacity:0;transform:scale(.8);transition:left 1.1s var(--ai-ease),top 1.1s var(--ai-ease),width 1.1s var(--ai-ease),height 1.1s var(--ai-ease),transform 1.1s var(--ai-ease),opacity 1.1s ease;z-index:3}
.ai-orb canvas{width:100%;height:100%;display:block}
.is-visible .ai-orb{opacity:1;transform:scale(1)}
.has-dialogue .ai-orb{left:calc(50% - 440px);top:calc(50% - 210px);width:420px;height:420px}
.ai-dialogue{position:fixed;left:calc(50% + 34px);top:50%;width:min(440px,calc(50vw - 60px));transform:translateY(calc(-50% + 18px));opacity:0;pointer-events:none;z-index:4;transition:opacity .65s ease,transform .8s var(--ai-ease);}
.has-dialogue .ai-dialogue{opacity:1;transform:translateY(-50%);pointer-events:auto;transition-delay:.2s}
.ai-label{font-size:10px;letter-spacing:.2em;color:#a5d2e5;display:flex;align-items:center;gap:10px}
.ai-label i{width:4px;height:4px;background:#bae9fc;border-radius:50%;box-shadow:0 0 8px #bdefff66;transition:box-shadow .2s}
.is-speaking .ai-label i{box-shadow:0 0 13px 3px #bdefff66}
.ai-speech{font-size:clamp(19px,2vw,25px);font-weight:400;line-height:1.7;letter-spacing:-.025em;margin:22px 0 26px;min-height:128px;text-wrap:pretty;overflow-wrap:anywhere}
.is-speaking .ai-speech:after{content:"";display:inline-block;width:2px;height:.9em;margin-left:5px;background:#b2dcec;vertical-align:-.05em;animation:ai-cursor .8s ease infinite alternate}
@keyframes ai-cursor{to{opacity:.15}}
.ai-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;animation:ai-controls .45s var(--ai-ease)}
.ai-actions:empty{display:none}
@keyframes ai-controls{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.ai-button{border:1px solid #b9dceb;background:#c5e0eb;color:#152633;border-radius:9px;padding:12px 19px;font-size:13px;line-height:1.5;transition:background .2s,border-color .2s,transform .3s var(--ai-ease)}
.ai-button:hover{background:#e0f2f8;transform:translateY(-2px)}
.ai-button.subtle{color:#aac0ce;background:transparent;border-color:#aac6da29}
.ai-button.subtle:hover{color:#e1f0f9;background:#aac6da0c;border-color:#aac6da55}
.ai-button:disabled{opacity:.5;cursor:wait}.ai-error{color:#ffc2b4;font-size:13px;line-height:1.7;margin:16px 0 0}.ai-error:empty{display:none}
.ai-form{width:100%;animation:ai-controls .4s var(--ai-ease)}
.ai-form label{display:block;color:#a9c1ce;font-size:12px;margin:0 0 10px}
.ai-input-wrap{display:flex;align-items:center;border:1px solid #9ac0d03b;background:#0b152455;border-radius:10px;transition:background .2s,border-color .2s}
.ai-input-wrap:focus-within{border-color:#a2d8ed;background:#0b1524a0;box-shadow:0 0 0 3px #9dcfe807}
.ai-form input{font:400 17px/1.6 var(--font);color:#e1f2fa;min-width:0;width:100%;border:0;outline:0;background:transparent;padding:13px 15px;box-shadow:none}
.ai-reveal{padding:12px 14px;border:0;background:transparent;color:#a4c3d4;font-size:11px;flex:none}
.ai-form small{display:block;font-size:11px;color:#8faaba;margin:10px 0 22px;line-height:1.7}
.ai-form-buttons{display:flex;gap:10px;flex-wrap:wrap}
.ai-sr{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.ai-dimmer,.ai-block,.ai-outline,.ai-hole-shield,.ai-step{display:none}
.is-tour{pointer-events:none}
.is-tour .ai-atmosphere{opacity:0}
.is-tour .ai-dimmer{display:block;position:fixed;inset:0;width:100vw;height:100dvh;stroke:none;pointer-events:none;z-index:0}
.is-tour .ai-block,.is-tour .ai-hole-shield{display:block;position:fixed;pointer-events:auto;z-index:1;touch-action:pan-y}
.is-tour .ai-outline{display:block;position:fixed;z-index:2;border:1px solid #b4deedb0;border-radius:12px;box-shadow:0 0 0 4px #a4d4ef09,0 0 28px #a4d4ef0d;pointer-events:none;transition:opacity .3s}
.is-tour .ai-orb{left:20px;top:80px;width:150px;height:150px;transform:none;transition:left .65s var(--ai-ease),top .65s var(--ai-ease),width .8s var(--ai-ease),height .8s var(--ai-ease),opacity .4s}
.is-tour .ai-dialogue{transform:none;transition:left .55s var(--ai-ease),top .55s var(--ai-ease),opacity .4s;max-height:calc(100dvh - 100px);overflow:auto;padding:22px 24px;background:#0d1825f5;border:1px solid #b9dbea24;border-radius:16px;box-shadow:0 15px 55px #0005;backdrop-filter:blur(18px);scrollbar-width:thin}
.is-tour .ai-speech{font-size:15px;line-height:1.85;letter-spacing:0;margin:14px 0 18px;min-height:0}
.is-tour .ai-button{padding:8px 17px;font-size:12px;border-radius:7px}
.is-tour .ai-topline{left:auto;top:12px;right:16px}.is-tour .ai-topline>span{display:none}
.is-tour .ai-topline button{background:#0e1a28eb;padding:7px 11px;font-size:10px;box-shadow:0 4px 15px #0004}
.ai-click-hint{font-size:11px;color:#9ebccd;line-height:1.7}
.is-tour .ai-step{display:block;position:fixed;bottom:16px;right:22px;font-size:10px;letter-spacing:.16em;color:#acc5d075;z-index:4;pointer-events:none}
.ai-skin-preview{padding:26px;background:var(--surface);border-radius:10px}.ai-skin-preview h2{font-size:22px;margin:10px 0}.ai-skin-preview .character-form{padding:0;max-width:520px}.ai-skin-preview .character-form input:disabled,.ai-skin-preview .character-form select:disabled{opacity:1}
@media(max-width:1000px) and (min-width:768px){.has-dialogue .ai-orb{left:calc(25% - 180px);width:360px;height:360px;top:calc(50% - 180px)}.ai-dialogue{left:51%;width:43%}}
@media(max-width:767px){.ai-topline{left:18px;right:18px;top:18px;align-items:flex-start}.ai-topline>span{font-size:8px;max-width:130px;line-height:1.9}.ai-topline i{margin:0 3px}.ai-topline>div{gap:5px}.ai-topline button{font-size:10px;padding:8px 10px}.ai-orb{width:320px;height:320px;left:calc(50% - 160px);top:calc(50% - 160px)}.has-dialogue .ai-orb{width:220px;height:220px;left:calc(50% - 110px);top:55px}.ai-dialogue{left:24px;top:260px;width:calc(100% - 48px);max-height:calc(100dvh - 285px);overflow:auto;padding-bottom:15px;transform:translateY(16px)}.has-dialogue .ai-dialogue{transform:none}.ai-speech{font-size:19px;min-height:90px;margin:15px 0 21px}.ai-label{font-size:9px}.ai-form small{margin-bottom:16px}.ai-button{font-size:12px;padding:11px 15px}.is-tour .ai-dialogue{padding:18px 20px;max-height:calc(100dvh - 160px)}.is-tour .ai-topline{left:auto;right:10px;top:8px}.is-tour .ai-speech{font-size:14px;margin:10px 0 15px}.is-tour .ai-step{bottom:5px;font-size:8px}.ai-atmosphere i{width:120vw;filter:blur(50px)}}
@media(max-height:640px){.nebula-ai:not(.is-tour) .ai-orb{width:190px;height:190px;left:calc(25% - 95px);top:calc(50% - 95px)}.nebula-ai.has-dialogue:not(.is-tour) .ai-dialogue{left:46%;width:49%;top:90px;transform:none;max-height:calc(100dvh - 110px);overflow:auto}.nebula-ai:not(.is-tour) .ai-speech{font-size:17px;min-height:70px;margin:12px 0}.nebula-ai:not(.is-tour) .ai-form input{padding:9px 12px}.nebula-ai:not(.is-tour) .ai-form small{margin:7px 0 12px}}
@media(prefers-reduced-motion:reduce){.nebula-ai *,.nebula-ai{animation:none!important;transition:none!important}.ai-atmosphere i{will-change:auto}}
.forum-reduced-motion .nebula-ai *{animation:none!important;transition:none!important}

/* Move the sphere and dialogue together; layout, rather than z-index, keeps them apart. */
.ai-companion{display:contents}
.nebula-ai.is-tour .ai-companion{position:fixed;display:flex;align-items:flex-start;gap:12px;z-index:4;pointer-events:none;transition:left .6s var(--ai-ease),top .6s var(--ai-ease);--ai-orb-size:154px;--ai-panel-width:350px}
.nebula-ai.is-tour .ai-companion.is-stacked{flex-direction:column}
.nebula-ai.is-tour .ai-companion .ai-orb{position:relative;inset:auto;width:var(--ai-orb-size);height:var(--ai-orb-size);flex:none;transform:none;transition:opacity .4s}
.nebula-ai.is-tour .ai-companion .ai-dialogue{position:relative;inset:auto;width:var(--ai-panel-width);flex:none;transform:none;margin:0;transition:opacity .4s;pointer-events:auto;transition-delay:0}
.profile-dropdown.ai-tour-menu-open .profile-menu{opacity:1!important;visibility:visible!important;transform:none!important;pointer-events:auto}
@media(max-width:767px){.main-nav.ai-tour-nav-open{opacity:1!important;visibility:visible!important;transform:none!important;pointer-events:auto}}
