@import"https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;1,300;1,400&family=Jost:wght@300;400&display=swap";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--amber: #C4622D;--amber-light: #D4784A;--cream: #FAF7F2;--sand: #F2EAE0;--parchment: #E8DDD0;--charcoal: #1C1410;--ink: #2C2018;--grey: #7A6B60;--rule: #D4C4B4;--white: #FFFCF8;--sidebar-w: 260px;--portrait-w: 320px;--topbar-h: 56px}html,body,#root{height:100%;font-family:Cormorant Garamond,Georgia,serif;background:var(--cream);color:var(--ink)}.loading-screen{height:100vh;display:flex;align-items:center;justify-content:center;background:var(--cream)}.loading-logo{font-size:48px;font-weight:300;color:var(--amber);letter-spacing:.1em;animation:fadeIn 1s ease forwards}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--sand);background-image:radial-gradient(ellipse at 30% 50%,rgba(196,98,45,.06) 0%,transparent 60%)}.login-card{background:var(--white);padding:56px 48px;width:100%;max-width:420px;box-shadow:0 32px 80px #1c14101a}.login-logo{font-size:48px;font-weight:300;color:var(--amber);letter-spacing:.1em;margin-bottom:8px}.login-tagline{font-size:17px;font-style:italic;color:var(--grey);margin-bottom:36px}.login-tabs{display:flex;border-bottom:1px solid var(--rule);margin-bottom:32px}.login-tabs button{flex:1;padding:10px;background:none;border:none;cursor:pointer;font-family:Jost,sans-serif;font-size:12px;font-weight:400;letter-spacing:.1em;text-transform:uppercase;color:var(--grey);border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .2s}.login-tabs button.active{color:var(--amber);border-bottom-color:var(--amber)}.login-form{display:flex;flex-direction:column;gap:20px}.field{display:flex;flex-direction:column;gap:8px}.field label{font-family:Jost,sans-serif;font-size:11px;font-weight:300;letter-spacing:.15em;text-transform:uppercase;color:var(--grey)}.field input{padding:12px 16px;border:1px solid var(--rule);background:var(--cream);font-family:Cormorant Garamond,serif;font-size:17px;color:var(--ink);outline:none;transition:border-color .2s}.field input:focus{border-color:var(--amber)}.login-error{font-size:14px;color:#c0392b;font-style:italic}.btn-primary{padding:14px;background:var(--amber);color:var(--white);border:none;cursor:pointer;font-family:Jost,sans-serif;font-size:13px;font-weight:400;letter-spacing:.12em;text-transform:uppercase;transition:background .2s;margin-top:8px}.btn-primary:hover{background:var(--amber-light)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.login-note{margin-top:24px;font-size:13px;font-style:italic;color:var(--grey);text-align:center;line-height:1.6}.ember-app{display:flex;height:100vh;overflow:hidden}.sidebar{width:var(--sidebar-w);height:100%;background:var(--charcoal);display:flex;flex-direction:column;flex-shrink:0;transition:transform .3s ease}@media (max-width: 768px){.sidebar{position:fixed;z-index:200;transform:translate(-100%)}.sidebar.open{transform:translate(0)}}.sidebar-header{padding:20px 20px 16px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.06)}.sidebar-logo{font-size:28px;font-weight:300;color:var(--amber);letter-spacing:.1em}.sidebar-close{display:none;background:none;border:none;color:var(--grey);cursor:pointer;font-size:16px;padding:4px}@media (max-width: 768px){.sidebar-close{display:block}}.new-session-btn{margin:16px 16px 8px;padding:10px 16px;background:#c4622d26;border:1px solid rgba(196,98,45,.3);color:var(--amber);cursor:pointer;font-family:Jost,sans-serif;font-size:12px;letter-spacing:.1em;text-align:left;transition:background .2s}.new-session-btn:hover{background:#c4622d40}.session-list{flex:1;overflow-y:auto;padding:8px 0}.session-item{width:100%;padding:12px 20px;background:none;border:none;cursor:pointer;text-align:left;display:flex;flex-direction:column;gap:4px;transition:background .15s;border-left:2px solid transparent}.session-item:hover{background:#ffffff0a}.session-item.active{background:#c4622d1a;border-left-color:var(--amber)}.session-title{font-size:14px;color:#faf7f2b3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.session-item.active .session-title{color:var(--cream)}.session-date{font-family:Jost,sans-serif;font-size:10px;color:#faf7f24d;letter-spacing:.05em}.sidebar-footer{padding:16px 20px;border-top:1px solid rgba(255,255,255,.06);display:flex;align-items:center;justify-content:space-between}.sidebar-username{font-size:14px;color:#faf7f280;font-style:italic}.signout-btn{background:none;border:none;cursor:pointer;font-family:Jost,sans-serif;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#faf7f24d;transition:color .2s}.signout-btn:hover{color:var(--amber)}.main-area{flex:1;display:flex;flex-direction:column;overflow:hidden}.topbar{height:var(--topbar-h);background:var(--white);border-bottom:1px solid var(--rule);display:flex;align-items:center;padding:0 20px;gap:16px;flex-shrink:0}.menu-btn{display:none;flex-direction:column;gap:4px;background:none;border:none;cursor:pointer;padding:4px}@media (max-width: 768px){.menu-btn{display:flex}}.menu-btn span{display:block;width:20px;height:1px;background:var(--grey)}.topbar-title{flex:1;font-size:17px;font-style:italic;color:var(--grey);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.portrait-toggle{background:none;border:none;cursor:pointer;font-size:18px;color:var(--rule);transition:color .2s;padding:4px 8px}.portrait-toggle.active{color:var(--amber)}.content-area,.chat-column{flex:1;display:flex;overflow:hidden}.chat{flex:1;display:flex;flex-direction:column;overflow:hidden}.messages{flex:1;overflow-y:auto;padding:32px 40px;display:flex;flex-direction:column;gap:20px}@media (max-width: 600px){.messages{padding:20px 16px}}.chat-welcome{max-width:480px;margin:auto;text-align:center;padding:60px 20px}.welcome-headline{font-size:36px;font-weight:300;color:var(--charcoal);margin-bottom:12px}.welcome-sub{font-size:19px;font-style:italic;color:var(--grey);line-height:1.7}.message{display:flex;flex-direction:column;gap:4px;max-width:72%}.message.user{align-self:flex-end;align-items:flex-end}.message.assistant{align-self:flex-start;align-items:flex-start}.message-bubble{padding:14px 20px;font-size:17px;line-height:1.7}.message.user .message-bubble{background:var(--amber);color:var(--white)}.message.assistant .message-bubble{background:var(--white);color:var(--ink);border:1px solid var(--rule)}.message-bubble.thinking{display:flex;gap:6px;align-items:center;padding:18px 24px}.message-bubble.thinking span{width:6px;height:6px;background:var(--rule);border-radius:50%;animation:blink 1.2s ease-in-out infinite}.message-bubble.thinking span:nth-child(2){animation-delay:.2s}.message-bubble.thinking span:nth-child(3){animation-delay:.4s}.message-time{font-family:Jost,sans-serif;font-size:10px;color:var(--rule);letter-spacing:.05em}.input-area{border-top:1px solid var(--rule);padding:16px 40px;display:flex;gap:12px;align-items:flex-end;background:var(--white)}@media (max-width: 600px){.input-area{padding:12px 16px}}.chat-input{flex:1;border:1px solid var(--rule);padding:12px 16px;font-family:Cormorant Garamond,serif;font-size:17px;color:var(--ink);background:var(--cream);outline:none;resize:none;line-height:1.5;max-height:140px;transition:border-color .2s}.chat-input:focus{border-color:var(--amber)}.send-btn{padding:12px 20px;background:var(--amber);color:var(--white);border:none;cursor:pointer;font-size:20px;transition:background .2s;flex-shrink:0;height:48px}.send-btn:hover{background:var(--amber-light)}.send-btn:disabled{opacity:.3;cursor:not-allowed}.portrait-column{width:var(--portrait-w);border-left:1px solid var(--rule);overflow-y:auto;background:var(--sand);flex-shrink:0}@media (max-width: 900px){.portrait-column{display:none}}.portrait{padding:32px 28px;min-height:100%;display:flex;flex-direction:column;gap:0}.portrait.pulse{animation:portraitPulse 1.2s ease}.portrait-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.portrait-label{font-family:Jost,sans-serif;font-size:10px;font-weight:400;letter-spacing:.2em;text-transform:uppercase;color:var(--amber)}.portrait-updated{font-family:Jost,sans-serif;font-size:10px;color:var(--rule);letter-spacing:.05em}.portrait-name{font-size:36px;font-weight:400;color:var(--charcoal);font-style:italic;margin-bottom:24px;padding-bottom:20px;border-bottom:1px solid var(--rule)}.portrait-empty{flex:1;display:flex;flex-direction:column;gap:16px;padding:12px 0}.portrait-empty p{font-size:16px;color:var(--grey);line-height:1.7;font-style:italic}.portrait-summary{margin-bottom:24px}.portrait-section-label{font-family:Jost,sans-serif;font-size:9px;font-weight:400;letter-spacing:.2em;text-transform:uppercase;color:var(--amber);margin-bottom:10px}.portrait-summary p{font-size:16px;line-height:1.8;color:var(--ink);font-style:italic}.portrait-conclusions{margin-bottom:24px}.portrait-conclusions ul{list-style:none;display:flex;flex-direction:column;gap:8px}.portrait-conclusions li{font-size:15px;color:var(--ink);line-height:1.6;padding:8px 12px;background:var(--white);border-left:2px solid var(--amber)}.portrait-footer{margin-top:auto;padding-top:24px;border-top:1px solid var(--rule);display:flex;gap:8px;font-family:Jost,sans-serif;font-size:10px;color:var(--rule);letter-spacing:.05em}.empty-state{flex:1;display:flex;align-items:center;justify-content:center}.empty-state p{font-size:18px;font-style:italic;color:var(--grey)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes blink{0%,to{opacity:.2;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}@keyframes portraitPulse{0%{background:var(--sand)}30%{background:#c4622d0f}to{background:var(--sand)}}
