:root{--ink:#100d0e;--panel:#171314;--panel-2:#20191b;--paper:#eee9df;--muted:#a79e94;--line:rgba(238,233,223,.14);--wine:#871f35;--wine-light:#b86678;--danger:#d27a7a;--safe:#8da98e}
*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0}html{background:var(--ink)}body,button,textarea{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}body{overflow:hidden;background:radial-gradient(circle at 75% -20%,rgba(135,31,53,.22),transparent 34%),var(--ink);color:var(--paper)}button,textarea{font-size:16px}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit}a{color:inherit}
.app{width:min(100%,1040px);height:100dvh;min-height:0;margin:0 auto;padding:max(18px,env(safe-area-inset-top)) 24px max(12px,env(safe-area-inset-bottom));display:grid;grid-template-rows:auto auto minmax(0,1fr) auto auto auto;position:relative}
.app:before{content:"";position:fixed;inset:0;z-index:-1;opacity:.08;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E")}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 0 18px;border-bottom:1px solid var(--line)}.identity{display:flex;align-items:center;gap:14px;min-width:0}.avatar{width:56px;height:56px;border-radius:50%;object-fit:cover;object-position:62% 22%;filter:saturate(.8) contrast(1.05);border:1px solid rgba(238,233,223,.25)}.eyebrow{margin:0 0 4px;color:var(--wine-light);font-size:8px;font-weight:700;letter-spacing:.2em;text-transform:uppercase}.identity h1{margin:0;font-family:Georgia,"Times New Roman",serif;font-size:24px;font-weight:400;line-height:1;letter-spacing:.06em}.presence{display:flex;align-items:center;gap:6px;margin:5px 0 0;color:var(--muted);font-size:10px}.presence-dot{width:6px;height:6px;border-radius:50%;background:var(--safe);box-shadow:0 0 10px rgba(141,169,142,.55)}.quiet-button{flex:0 0 auto;padding:10px 12px;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--muted);font-size:10px;font-weight:650;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:border-color .2s,color .2s}.quiet-button:hover,.quiet-button:focus-visible{border-color:rgba(238,233,223,.42);color:var(--paper);outline:none}
.notice{margin:12px 0 0;padding:10px 14px;border:1px solid rgba(184,102,120,.38);border-radius:10px;background:rgba(135,31,53,.13);color:#d6bbc1;font-size:12px;line-height:1.45}.notice[hidden]{display:none}
.messages{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:40px 5px 26px;scrollbar-width:thin;scrollbar-color:#3b3033 transparent}.messages::-webkit-scrollbar{width:6px}.messages::-webkit-scrollbar-thumb{background:#3b3033;border-radius:10px}.empty-state{min-height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:50px 24px 80px}.empty-kicker{margin:0 0 18px;color:var(--wine-light)!important;font-size:9px!important;font-weight:700;letter-spacing:.2em;text-transform:uppercase}.empty-state h2{margin:0;font-family:Georgia,"Times New Roman",serif;font-size:clamp(44px,7vw,76px);font-weight:400;line-height:.9;letter-spacing:-.045em}.empty-state h2 em{color:var(--wine-light);font-weight:400}.empty-state>p:last-child{max-width:480px;margin:28px 0 0;color:var(--muted);font-size:15px;line-height:1.65}
.message-row{display:flex;align-items:flex-end;gap:10px;width:100%;margin:0 0 20px}.message-row.user-row{justify-content:flex-end}.message-row.assistant-row{justify-content:flex-start}.message-avatar{flex:0 0 auto;width:28px;height:28px;border-radius:50%;object-fit:cover;object-position:62% 22%;filter:saturate(.75)}.message{width:fit-content;max-width:min(78%,700px);padding:14px 17px;border:1px solid var(--line);border-radius:17px;color:var(--paper);font-size:15px;line-height:1.62;white-space:pre-wrap;overflow-wrap:anywhere}.message.user{border-bottom-right-radius:4px;background:var(--paper);color:var(--ink)}.message.assistant{border-bottom-left-radius:4px;background:var(--panel-2)}.message-label{display:block;margin:0 0 6px;color:var(--wine-light);font-size:8px;font-weight:750;letter-spacing:.16em;text-transform:uppercase}.system-row{justify-content:center}.error-message{max-width:560px;border-color:rgba(210,122,122,.38);background:rgba(101,35,39,.2);color:#e2b9b9}.error-message p{margin:0}.retry-button{margin:12px 0 0;padding:8px 11px;border:1px solid rgba(226,185,185,.35);border-radius:8px;background:transparent;color:#efd3d3;font-size:11px;font-weight:700;cursor:pointer}
.thinking{display:flex;align-items:center;gap:7px;padding:4px 5px 12px;color:var(--muted);font-size:11px}.thinking[hidden]{display:none}.thinking img{width:24px;height:24px;border-radius:50%;object-fit:cover;object-position:62% 22%;margin-right:2px}.thinking i{width:4px;height:4px;border-radius:50%;background:var(--wine-light);animation:pulse 1.2s infinite ease-in-out}.thinking i:nth-of-type(2){animation-delay:.15s}.thinking i:nth-of-type(3){animation-delay:.3s}
.composer{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;padding:12px 0 0;border-top:1px solid var(--line)}.input-shell{min-width:0;padding:11px 14px 8px;border:1px solid rgba(238,233,223,.24);border-radius:16px;background:rgba(32,25,27,.86);transition:border-color .2s,box-shadow .2s}.input-shell:focus-within{border-color:rgba(184,102,120,.75);box-shadow:0 0 0 3px rgba(135,31,53,.12)}#message-input{display:block;width:100%;min-height:25px;max-height:170px;margin:0;padding:0;resize:none;overflow-y:auto;border:0;outline:0;background:transparent;color:var(--paper);font-size:16px;line-height:1.5}#message-input::placeholder{color:#736a65}.composer-meta{display:flex;justify-content:space-between;gap:20px;margin-top:7px;color:#706863;font-size:9px;line-height:1}.send-button{height:49px;min-width:128px;padding:0 17px;display:flex;align-items:center;justify-content:space-between;gap:18px;border:1px solid var(--paper);border-radius:14px;background:var(--paper);color:var(--ink);font-size:11px;font-weight:750;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:background .2s,color .2s,transform .2s}.send-button:hover:not(:disabled){background:transparent;color:var(--paper);transform:translateY(-1px)}.send-button:disabled,#message-input:disabled{opacity:.5;cursor:default}
.footer{display:flex;justify-content:space-between;gap:20px;padding:10px 2px 0;color:#675f5b;font-size:9px;letter-spacing:.03em}.footer a{text-decoration:none;transition:color .2s}.footer a:hover{color:var(--paper)}
@keyframes pulse{0%,80%,100%{opacity:.3;transform:translateY(0)}40%{opacity:1;transform:translateY(-2px)}}
@media(max-width:640px){.app{padding:max(10px,env(safe-area-inset-top)) 12px max(8px,env(safe-area-inset-bottom))}.topbar{padding-bottom:10px}.avatar{width:46px;height:46px}.identity{gap:10px}.identity h1{font-size:20px}.quiet-button{padding:9px;font-size:9px}.messages{padding:26px 0 16px}.empty-state{padding:36px 14px 56px}.empty-state h2{font-size:clamp(42px,13vw,64px)}.message-row{gap:7px;margin-bottom:14px}.message{max-width:86%;padding:12px 14px;font-size:15px}.message-avatar{width:24px;height:24px}.composer{grid-template-columns:minmax(0,1fr) 48px;gap:7px}.input-shell{padding:10px 11px 7px}.composer-meta span:last-child{display:none}.send-button{width:48px;min-width:0;height:48px;padding:0;justify-content:center;border-radius:13px}.send-button span:first-child{display:none}.send-button span:last-child{font-size:20px}.footer span{display:none}.footer{justify-content:flex-end;padding-top:7px}}
@media(max-height:650px){.empty-state{justify-content:flex-start;padding-top:40px}.empty-state h2{font-size:42px}.empty-state>p:last-child{margin-top:20px}.messages{padding-top:20px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.thinking i{animation:none}.send-button{transition:none}}
