:root{color:#eef7ff;background:#06111f;font-family:Inter,Hiragino Sans,system-ui,sans-serif}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;overflow:hidden}body{background-color:#17171a;background-image:linear-gradient(#05080db8,#05080db8),url(/jslv-palms-pattern.png);background-position:50%,50%;background-repeat:repeat,repeat;background-size:auto,760px;min-width:320px;margin:0}button,input{font:inherit}button{cursor:pointer}.login-shell{place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{text-align:center;background:linear-gradient(160deg,#102a44ee,#07111ff2);border:1px solid #254a6b;border-radius:28px;width:min(100%,390px);padding:34px;box-shadow:0 24px 70px #0008}.login-card h1{margin:14px 0 8px}.login-card p{color:#9cb4c9;line-height:1.7}.login-card form{gap:12px;display:grid}.login-card input{color:#fff;text-align:center;letter-spacing:.2em;background:#0d2032;border:1px solid #335776;border-radius:14px;width:100%;padding:13px 15px}.login-card button{color:#fff;background:#168cdf;border:0;border-radius:14px;min-height:46px}.login-card button:disabled{opacity:.45}.login-card small{color:#ff9aab}.app-shell{width:100%;max-width:1500px;height:100dvh;padding:max(18px, env(safe-area-inset-top)) clamp(20px, 2.5vw, 38px) max(18px, env(safe-area-inset-bottom));flex-direction:column;margin:auto;display:flex;overflow:hidden}.topbar{justify-content:space-between;align-items:center;padding:4px 0 18px;display:flex}.topbar strong{letter-spacing:.04em;font-size:1.18rem}.logo-mark{background:#35a7ff;border-radius:3px;width:11px;height:11px;display:inline-block;box-shadow:0 0 16px #35a7ff}.mode-switch{background:#07101eaa;border:1px solid #2c4f70;border-radius:999px;padding:4px}.topbar-actions{align-items:center;gap:8px;display:flex}.history-action{color:#b9d5e8;background:#10263a;border:1px solid #315b78;border-radius:999px;padding:8px 12px}.history-action--danger{color:#f2b5bd;border-color:#71404a}.usage-badge{color:#8fc9e8;white-space:nowrap;background:#0b1e30;border:1px solid #315b78;border-radius:999px;padding:7px 10px;font-size:.76rem}.memory-overlay{z-index:20;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#02070dba;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.memory-panel{background:#09192a;border:1px solid #315b78;border-radius:24px;flex-direction:column;width:min(760px,100%);max-height:min(760px,90vh);display:flex;overflow:hidden;box-shadow:0 28px 90px #000b}.memory-panel>header{border-bottom:1px solid #244763;justify-content:space-between;align-items:center;padding:20px 22px;display:flex}.memory-panel>header div{gap:4px;display:grid}.memory-panel>header small{color:#8ba8bd}.memory-panel>header button{color:#fff;background:#10263a;border:1px solid #315b78;border-radius:50%;width:38px;height:38px}.memory-tools{color:#91adc1;justify-content:space-between;align-items:center;padding:12px 22px;display:flex}.memory-tools a{color:#7fd7ff}.memory-list{gap:12px;padding:0 22px 22px;display:grid;overflow-y:auto}.memory-list article{background:#10263a;border:1px solid #254a66;border-radius:16px;padding:16px;position:relative}.memory-list article>span{color:#77dfc4;background:#113e39;border-radius:999px;padding:4px 8px;font-size:.72rem;display:inline-block}.memory-list h3{margin:10px 0 5px;font-size:1rem}.memory-list p{color:#bdd0dd;margin:0 0 12px;line-height:1.6}.memory-list article button{color:#ec9faa;background:0 0;border:0;padding:0;font-size:.78rem}.memory-error{color:#ff9aaa;margin:10px 22px}.calendar-panel{width:min(680px,100%)}.calendar-content{padding:24px;overflow-y:auto}.calendar-content h2{margin:20px 0 8px}.calendar-content>p{color:#b8cad8;line-height:1.7}.calendar-status{color:#b3c1cc;background:#142536;border:1px solid #4f6477;border-radius:999px;padding:6px 11px;display:inline-block}.calendar-status--connected{color:#78e3c6;background:#113b35;border-color:#2d8d77}.calendar-connect{color:#fff;background:#168cdf;border:0;border-radius:16px;width:100%;min-height:52px;margin-top:16px;font-weight:700}.calendar-secondary{color:#f2b5bd;background:0 0;border:1px solid #71404a;border-radius:999px;margin-top:20px;padding:9px 14px}.calendar-events{gap:10px;margin-top:16px;display:grid}.calendar-events article{background:#10263a;border:1px solid #254a66;border-radius:14px;grid-template-columns:minmax(130px,.45fr) 1fr;gap:12px;padding:14px 16px;display:grid}.calendar-events time{color:#84b9d7}.mode-switch button{color:#9cb4c9;background:0 0;border:0;border-radius:999px;padding:8px 14px}.mode-switch button.active{color:#fff;background:#178be0}.workspace{flex:1;grid-template-columns:minmax(320px,36%) minmax(0,1fr);gap:24px;min-height:0;display:grid;overflow:hidden}.character-panel,.chat-panel{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:linear-gradient(160deg,#102a44c9,#07111fda);border:1px solid #254a6b;border-radius:28px;box-shadow:0 24px 70px #0008}.character-panel{isolation:isolate;text-align:center;background:#04101de8;flex-direction:column;justify-content:center;align-items:center;min-height:0;padding:18px;display:flex;position:relative;overflow:hidden}.character-panel:before{content:"";z-index:-2;pointer-events:none;filter:saturate(1.15)contrast(1.06)brightness(.72);background-image:linear-gradient(115deg,#0209167a 0%,#071b343d 48%,#02081291 100%),url(/character-network-background.png);background-position:50%;background-size:cover;position:absolute;inset:0}.character-panel:after{content:"";z-index:-1;pointer-events:none;mix-blend-mode:screen;background-image:radial-gradient(circle at 50% 44%,#2e9dff2e 0 10%,#0000 46%),repeating-linear-gradient(0deg,#0000 0 5px,#7fd3ff07 6px);background-size:100% 100%,100% 12px;position:absolute;inset:0}.character-panel p{color:#9cdcff;margin:8px 0 2px}.character-panel small{color:#89a0b4}.character{aspect-ratio:3/4;place-items:center;width:min(100%,430px);display:grid;position:relative}.character__signal{z-index:0;opacity:0;pointer-events:none;filter:drop-shadow(0 0 10px #3eb8ff88);background:repeating-radial-gradient(circle at 50% 58%,#0000 0 36px,#48baff26 38px 39px,#0000 41px 68px);border-radius:50%;position:absolute;inset:19% -20% 5%}.character__scan{z-index:1;opacity:0;pointer-events:none;mix-blend-mode:screen;background:linear-gradient(#0000 0 42%,#55c8ff00 45%,#73d6ff5c 50%,#55c8ff00 55%,#0000 58% 100%);position:absolute;inset:5% -18%}.character__glow{z-index:0;filter:blur(38px);background:#168fe15e;border-radius:50%;animation:4.8s ease-in-out infinite ambientGlow;position:absolute;inset:25% 18% 8%}.character__motorcycle{z-index:1;opacity:.82;filter:drop-shadow(0 16px 22px #000b)drop-shadow(0 0 16px #2b9dff55);pointer-events:none;-webkit-user-select:none;user-select:none;width:118%;max-width:none;height:auto;position:absolute;bottom:4%;left:50%;transform:translate(-50%)}.character__frame{z-index:2;background-image:url(/character-sprite.png);background-position:0 0;background-repeat:no-repeat;background-size:300% 200%;width:100%;height:100%;position:relative}.character__mouth{z-index:3;opacity:0;pointer-events:none;background:linear-gradient(#541f1d 0 55%,#ef8f83 56% 100%);border:1px solid #63251f;border-radius:45% 45% 50% 50%;width:8.2%;height:2.5%;position:absolute;top:43.4%;left:50%;transform:translate(-50%,-50%)scaleY(.2)}.character__mouth--active{opacity:1;animation:.2s steps(2,end) infinite alternate mouthTalk}.character__status{z-index:4;color:#a9dcff;text-align:center;background:#05101ed9;border:1px solid #2a638b;border-radius:999px;min-width:104px;padding:7px 12px;font-size:.78rem;position:absolute;bottom:8px}.character__status i{background:#71879a;border-radius:50%;width:7px;height:7px;margin-right:7px;display:inline-block}.character__status--active{color:#8ee8d1;border-color:#2c9e82}.character__status--active i{background:#48d9b3;box-shadow:0 0 8px #48d9b3}.character__status--hearing i{animation:.55s ease-in-out infinite alternate listeningDot}.character--listening .character__glow{background:#34e1b566}.character--thinking .character__signal{opacity:.82;animation:1.7s ease-in-out infinite communicationPulse}.character--thinking .character__scan{opacity:.7;animation:2.2s ease-in-out infinite communicationScan}.character--thinking .character__glow{background:#208fe97d;animation:1.35s ease-in-out infinite alternate thinkingGlow}.character--thinking .character__motorcycle{animation:1.6s ease-in-out infinite alternate motorcycleIdle}.character-panel:has(.character--thinking):before{animation:5.5s ease-in-out infinite alternate futureDrift}.character-panel:has(.character--thinking):after{animation:1.8s linear infinite futureScan}.character--speaking .character__glow{animation:1.1s ease-in-out infinite alternate pulse}.chat-panel{background-image:linear-gradient(160deg,#06182bc2,#020a14de),url(/chat-ai-background.jpg);background-position:50%;background-repeat:no-repeat;background-size:cover;flex-direction:column;min-height:0;display:flex;overflow:hidden}.messages{overscroll-behavior:contain;flex-direction:column;flex:1;gap:16px;min-height:0;padding:28px;display:flex;overflow-y:auto}.message{max-width:82%}.message span{color:#82a9c7;margin:0 8px 5px;font-size:.75rem;display:block}.message p{white-space:pre-wrap;overflow-wrap:anywhere;background:#142d45;border-radius:18px;margin:0;padding:13px 16px;line-height:1.7}.message p a{color:#83ddff;text-underline-offset:3px;text-decoration:underline}.message--user{align-self:flex-end}.message--user span{text-align:right}.message--user p{background:#167fcb}.composer{background:#06111ee6;border-top:1px solid #24445f;gap:10px;padding:16px;display:flex}.audio-notice{color:#9edcff;background:#092035;border-top:1px solid #24445f;min-height:36px;margin:0;padding:9px 18px;font-size:.78rem}.audio-notice--empty{visibility:hidden}.composer input{color:#fff;background:#0d2032;border:1px solid #335776;border-radius:16px;outline:none;flex:1;min-width:0;padding:13px 15px}.composer input:focus{border-color:#3cadff;box-shadow:0 0 0 3px #3cadff22}.composer button{color:#fff;background:#168cdf;border:0;border-radius:15px;padding:0 18px}.composer button:disabled{opacity:.42;cursor:default}.composer .conversation-toggle{color:#a8bfd1;white-space:nowrap;background:#162b3e;border-radius:14px;min-width:108px;padding:0 13px}.composer .conversation-toggle.active{color:#fff;background:#137f68}.composer .voice-test{white-space:nowrap;background:#24445f;min-width:92px;padding:0 12px}.toggle-dot{background:currentColor;border-radius:50%;width:8px;height:8px;margin-right:4px;display:inline-block}.conversation-toggle.active .toggle-dot{animation:.9s ease-in-out infinite alternate recordPulse}.privacy-status{min-height:30px;padding:7px 18px calc(7px + env(safe-area-inset-bottom));color:#758fa4;text-align:center;background:#050e19;font-size:.72rem}.privacy-dot{vertical-align:1px;background:currentColor;border-radius:50%;width:7px;height:7px;margin-right:6px;display:inline-block}.privacy-status--ready,.privacy-status--hearing{color:#66d8bb}@keyframes ambientGlow{0%,to{opacity:.62}50%{opacity:.82}}@keyframes pulse{0%{opacity:.62;transform:scale(.99)}to{opacity:.9;transform:scale(1.01)}}@keyframes recordPulse{0%{box-shadow:0 0 #ed557755}to{box-shadow:0 0 0 9px #ed557700}}@keyframes listeningDot{0%{opacity:.55;transform:scale(.9)}to{opacity:1;transform:scale(1.25)}}@keyframes mouthTalk{0%{transform:translate(-50%,-50%)scale(.86,.35)}to{transform:translate(-50%,-50%)scale(1)}}@keyframes communicationPulse{0%,to{opacity:.4;transform:scale(.97)}50%{opacity:.9;transform:scale(1.035)}}@keyframes communicationScan{0%{opacity:0;transform:translateY(-36%)}18%,78%{opacity:.72}to{opacity:0;transform:translateY(36%)}}@keyframes thinkingGlow{0%{opacity:.58;transform:scale(.985)}to{opacity:.92;transform:scale(1.02)}}@keyframes motorcycleIdle{0%{transform:translate(-50%)rotate(-.06deg)}to{transform:translate(-50%,-1.5px)rotate(.06deg)}}@keyframes futureDrift{0%{transform:scale(1.015)translate(-.45%,-.3%)}to{transform:scale(1.045)translate(.55%,.4%)}}@keyframes futureScan{0%{opacity:.62;background-position:50%,0 0}50%{opacity:.9}to{opacity:.62;background-position:50%,0 120px}}@media (width>=761px) and (width<=1100px){.app-shell{padding:max(14px, env(safe-area-inset-top)) 16px max(14px, env(safe-area-inset-bottom))}.topbar{align-items:flex-start;gap:14px;padding-bottom:14px}.topbar-actions{flex-wrap:wrap;justify-content:flex-end}.workspace{grid-template-columns:minmax(250px,32%) minmax(0,1fr);gap:16px}.character{width:min(100%,330px)}.messages{padding:22px}.composer{grid-template-columns:auto auto minmax(160px,1fr) auto;display:grid}.composer button{min-height:46px}}@media (width>=761px) and (width<=1100px) and (orientation:portrait){.workspace{grid-template-rows:250px minmax(0,1fr);grid-template-columns:1fr}.character-panel{padding:8px}.character{width:185px;height:215px}.character-panel p{position:absolute;bottom:16px;right:18px}.character-panel small{position:absolute;bottom:16px;left:18px}}@media (width<=760px){.app-shell{padding:max(8px, env(safe-area-inset-top)) 8px max(8px, env(safe-area-inset-bottom))}.topbar{flex-direction:column;flex:none;align-items:stretch;gap:9px;padding:2px 2px 9px}.topbar>div:first-child{padding-left:4px}.topbar strong{font-size:1rem}.topbar-actions{overscroll-behavior-x:contain;scrollbar-width:none;flex-wrap:nowrap;justify-content:flex-start;gap:6px;width:100%;padding:1px 2px 5px;overflow-x:auto}.topbar-actions::-webkit-scrollbar{display:none}.history-action,.usage-badge{white-space:nowrap;flex:none;padding:7px 10px;font-size:.7rem}.mode-switch{flex:none;padding:3px;display:flex}.mode-switch button{padding:6px 10px;font-size:.72rem}.workspace{grid-template-rows:clamp(132px,23dvh,175px) minmax(0,1fr);grid-template-columns:1fr;gap:8px}.character-panel,.chat-panel{border-radius:18px}.character-panel{min-height:0;padding:4px}.character{width:min(145px,42vw);height:100%}.character__status{min-width:88px;padding:5px 8px;font-size:.65rem;bottom:2px}.character-panel p{margin:0;font-size:.68rem;position:absolute;bottom:8px;right:10px}.character-panel small{max-width:32%;font-size:.6rem;position:absolute;bottom:8px;left:10px}.chat-panel{min-height:0}.messages{gap:12px;padding:13px 11px}.message{max-width:92%}.message span{margin-bottom:3px;font-size:.67rem}.message p{border-radius:14px;padding:10px 12px;font-size:.9rem;line-height:1.55}.audio-notice{white-space:nowrap;text-overflow:ellipsis;min-height:30px;padding:7px 10px;font-size:.68rem;overflow:hidden}.composer{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"input send""conversation voice";gap:7px;padding:9px;display:grid}.composer input{border-radius:13px;grid-area:input;width:100%;min-height:44px;padding:10px 12px;font-size:16px}.composer>button[type=submit]{grid-area:send;min-width:58px;min-height:44px;padding:0 13px}.composer .conversation-toggle{grid-area:conversation;width:100%;min-width:0;min-height:40px;padding:0 10px}.composer .voice-test{grid-area:voice;min-width:82px;min-height:40px;padding:0 10px}.privacy-status{min-height:24px;padding:5px 8px calc(5px + env(safe-area-inset-bottom));white-space:nowrap;text-overflow:ellipsis;font-size:.62rem;overflow:hidden}.memory-overlay{padding:max(8px, env(safe-area-inset-top)) 8px max(8px, env(safe-area-inset-bottom));align-items:stretch}.memory-panel{border-radius:18px;width:100%;max-height:100%}.memory-panel>header{padding:14px 15px}.memory-panel>header strong{font-size:.95rem}.memory-panel>header small{font-size:.68rem}.memory-tools{padding:10px 15px;font-size:.75rem}.memory-list{padding:0 14px 14px}.calendar-content{padding:16px 14px}.calendar-content h2{font-size:1.12rem}.calendar-events article{grid-template-columns:1fr;gap:5px;padding:12px}}@media (width<=760px) and (orientation:landscape) and (height<=520px){.topbar{flex-direction:row;align-items:center;padding-bottom:6px}.topbar>div:first-child{flex:none}.workspace{grid-template-rows:1fr;grid-template-columns:minmax(180px,30%) minmax(0,1fr)}.character{width:min(145px,22vw)}}@media (prefers-reduced-motion:reduce){.character,.character__glow,.character__signal,.character__scan,.character__motorcycle,.character-panel:before,.character-panel:after{animation:none}}
