/* LIFEYRA shared visual system: quiet charcoal, rose accents, image-first content. */
:root{--bg:#101014;--panel:#19191f;--panel2:#22222a;--panel3:#292932;--text:#f5f3f7;--muted:#b6b2bf;--faint:#96909f;--line:#ffffff14;--accent:#e85aad;--accent-ink:#101014;--violet:var(--accent);--coral:var(--accent);--radius:18px;--shadow:0 16px 45px #0003}
body,.route-home,.auth-page{background:var(--bg);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;font-size:16px;line-height:1.55}
h1,h2,h3,p{overflow-wrap:anywhere}h1{font-size:clamp(1.8rem,3vw,2.6rem);line-height:1.15;letter-spacing:-.045em}h2{font-size:1.5rem;letter-spacing:-.025em}small,.muted,.eyebrow{font-size:.875rem}.eyebrow{letter-spacing:.12em}.page{max-width:1380px;padding:32px 36px 64px}.section-head{margin:0 0 26px;align-items:center}.section-head h1,.section-head h2{margin:0 0 8px}.section-head p{margin:0;color:var(--muted)}
.joi-topbar{height:76px;padding:0 28px;background:#101014f5;border-bottom:1px solid var(--line)}.joi-shell{padding-top:76px}.joi-wordmark{font-size:24px;letter-spacing:-1px}.joi-wordmark span{color:var(--accent)}.primary-nav button{font-size:.9375rem;height:42px}.primary-nav button.active{background:var(--panel2);color:var(--text)}.joi-account{gap:10px}.account-button{background:var(--accent);color:var(--accent-ink)}
.site-rail{position:fixed;top:76px;bottom:0;left:0;width:208px;padding:22px 12px;background:var(--bg);border-right:1px solid var(--line);overflow:auto;display:flex;flex-direction:column;gap:5px;z-index:30}.site-rail button{display:flex;gap:12px;align-items:center;min-height:43px;padding:10px 14px;border:0;border-radius:10px;background:none;color:var(--muted);text-align:left;font-size:.875rem;cursor:pointer}.site-rail button span{width:20px;text-align:center;font-size:18px}.site-rail button.active{background:var(--panel2);color:var(--text)}.site-rail button:hover{background:var(--panel)}.joi-shell .main,.route-home .main{margin-left:208px;width:calc(100% - 208px)}.joi-shell .sidebar{top:76px;height:calc(100dvh - 76px);background:var(--panel)}.drawer-backdrop{top:76px}.account-menu{top:72px;background:var(--panel)}.home-hub{max-width:1380px;width:100%;padding:32px 36px 64px}.home-hub .discovery-page{padding:0}
.btn{font-size:.875rem;min-height:42px;border:1px solid var(--line);border-radius:12px;background:var(--panel2);padding:10px 18px;font-weight:650}.btn-primary,.auth-submit{background:var(--accent);color:var(--accent-ink);border-color:transparent}.btn-primary:hover,.auth-submit:hover{background:var(--accent);filter:brightness(1.08)}.btn:disabled{opacity:.5;cursor:not-allowed}.input,.select,.textarea,.prompt-shell{background:var(--panel);border:1px solid #ffffff24;border-radius:12px;font-size:1rem}.input,.select{min-height:44px}.field{display:grid;gap:8px;margin-bottom:18px}.field label{font-size:.875rem}.card,.studio-card,.creator-row,.ref-card,.price-card,.auth-card,.stat,.feed-item,.chat-panel,.creator-panel,.theme-controls{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius)}.pill,.tag,.balance{background:var(--panel2);color:var(--text)}.tag{font-size:.75rem}.empty{padding:32px;border-color:#ffffff26;background:var(--panel);font-size:1rem}.empty p{color:var(--muted)}
.discovery-banner,.home-hub .discovery-banner{height:260px;min-height:240px;border-radius:20px;padding:32px;margin:0 0 28px;background:#25202a}.banner-copy{max-width:60%}.discovery-banner h1,.home-hub .discovery-banner h1{font-size:clamp(1.75rem,3vw,2.75rem);font-weight:750;letter-spacing:-.04em;max-width:520px;margin:8px 0 12px}.discovery-banner p{font-size:1rem;line-height:1.6}.discovery-banner .eyebrow{font-size:.75rem}.banner-portrait,.home-hub .banner-portrait{inset:0 0 0 auto;width:48%;height:100%;object-fit:cover;object-position:center 30%;background:none;z-index:-2}.discovery-banner:after{background:linear-gradient(90deg,#19151f 8%,#19151f 40%,#19151f66 65%,transparent);z-index:-1}.discovery-toolbar,.home-hub .discovery-toolbar{gap:12px;margin:8px 0 24px}.discovery-search,.home-hub .discovery-search{min-height:44px;background:var(--panel);border:1px solid var(--line);border-radius:12px;font-size:1rem;flex:1;max-width:370px}.discovery-search input{width:100%}.discovery-toolbar .select,.home-hub .discovery-toolbar .select{min-height:44px;font-size:.875rem}.discovery-categories button,.home-hub .discovery-categories button{font-size:.875rem;padding:10px 16px}.discovery-categories button.active{background:var(--panel2);color:var(--text)}.discovery-section-title{margin:24px 0 16px}.discovery-section-title strong,.home-hub .discovery-section-title strong,.home-collection h2{font-size:1.25rem}.discovery-section-title span{font-size:.875rem}.home-hub .discovery-section-title strong:before,.home-collection h2:before{display:none}
.grid,.discovery-grid,.home-hub .discovery-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.character-card,.home-hub .character-card{border-radius:16px;background:var(--panel);border:1px solid var(--line)}.character-visual,.discovery-grid .character-visual,.home-hub .character-visual{aspect-ratio:3/4;height:auto;background:var(--panel2)}.character-visual:before{display:none}.portrait-empty{position:absolute;inset:15% 0 auto;text-align:center;display:grid;gap:12px;font-size:3rem;font-weight:650;color:var(--muted)}.portrait-empty small{font-size:.875rem;font-weight:400}.has-cover .portrait-empty{display:none}.character-meta,.home-hub .character-meta{padding:0;left:16px;right:16px;bottom:16px}.character-meta h3,.home-hub .character-meta h3{font-size:1.125rem}.character-meta p,.home-hub .character-meta p{font-size:.875rem}.card-pad,.home-hub .card-pad{display:flex;font-size:.875rem;min-height:48px}.create-character-card,.home-hub .create-character-card{min-height:260px;border:1px dashed #ffffff38;border-radius:16px;background:var(--panel);gap:18px}.create-character-card strong,.home-hub .create-character-card strong{font-size:1.375rem}.create-character-card>span{font-size:48px;color:var(--accent)}.create-character-card small{font-size:.875rem}.discovery-empty{grid-column:span 2}.home-collection{margin-top:36px}.home-rail{gap:16px}.experience-tile{border-radius:16px;overflow:hidden}.experience-tile strong{font-size:1rem}.experience-tile small{font-size:.875rem}
.chat-layout{gap:16px}.chat-person.active,.nav-btn.active{background:var(--panel2)}.bubble.user{background:var(--panel3);border:1px solid var(--line)}.bubble.assistant{background:var(--panel)}.bubble{font-size:1rem}.bubble-meta{font-size:.75rem}.creator-focus{max-width:880px}.creator-console,.voice-lab{background:var(--panel)}.provider-choice-card{background:var(--panel2);border-color:var(--line)}.media-studio-page h1{font-weight:750}.auth-page{max-width:1280px;gap:60px}.auth-brand{position:relative;isolation:isolate;overflow:hidden;border-radius:24px;padding:44px;min-height:540px;display:flex;flex-direction:column;justify-content:flex-end;background:var(--panel)}.auth-brand:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,#101014 0%,#101014c9 45%,#10101433)}.auth-portrait{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 25%;z-index:-2}.auth-brand h1{font-size:clamp(2rem,4vw,3.4rem)}.auth-brand>p{font-size:1rem}.auth-card{max-width:none;padding:32px}.auth-status{font-size:.875rem}.auth-points{font-size:.875rem;display:flex;flex-wrap:wrap}.auth-points span{font-size:.875rem}.image-unavailable{display:grid;place-items:center;padding:20px;font-size:.875rem;color:var(--muted)}
.theme-editor-grid{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(300px,1.2fr);gap:24px;margin:24px 0 40px}.theme-controls{padding:24px}.theme-controls input[type=color]{width:100%;height:44px;border:1px solid var(--line);border-radius:10px;background:var(--panel2);cursor:pointer}.theme-preview-toggle{display:flex;gap:10px;align-items:center;margin:18px 0}.theme-visual-preview{padding:16px;min-width:0}.theme-visual-preview .discovery-banner{margin-top:16px}.theme-visual-preview .banner-copy{max-width:75%}.theme-visual-preview h1{font-size:1.7rem}.theme-assets{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.theme-asset{padding:12px;background:var(--panel);border:1px solid var(--line);border-radius:16px;min-width:0;display:flex;flex-direction:column;gap:10px}.theme-asset img{width:100%;height:160px;object-fit:cover;border-radius:10px}.theme-asset h3{font-size:1rem;margin:0}.theme-asset label{cursor:pointer;position:relative;overflow:hidden;text-align:center}.theme-file{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}.theme-asset label:focus-within{outline:2px solid var(--accent);outline-offset:3px}.theme-draft-bar{padding:12px 20px;background:var(--panel3);display:flex;gap:16px;align-items:center;justify-content:center;border-bottom:1px solid var(--line)}
@media(min-width:1101px){#menu-toggle{display:none}}
@media(max-width:1100px){.site-rail{display:none}.joi-shell .main,.route-home .main{margin:0;width:100%}.grid,.discovery-grid,.home-hub .discovery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.joi-topbar{padding:0 18px}.primary-nav button{padding:0 12px}.theme-assets{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.joi-topbar{height:64px;padding:0 12px}.joi-shell{padding-top:64px;padding-bottom:calc(76px + env(safe-area-inset-bottom))}.joi-shell .sidebar{top:64px;height:calc(100dvh - 64px)}.drawer-backdrop{top:64px}.joi-wordmark{font-size:20px}.joi-account{gap:6px}.credit-pill{display:none}.theme-edit-link{font-size:.75rem;padding:8px;min-height:38px}.page,.home-hub{padding:20px 16px 40px}.grid,.discovery-grid,.home-hub .discovery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.discovery-banner,.home-hub .discovery-banner{padding:24px 20px;height:250px;min-height:250px;border-radius:16px}.banner-copy{max-width:75%}.discovery-banner h1,.home-hub .discovery-banner h1{font-size:1.875rem}.discovery-banner p{font-size:.875rem}.banner-portrait,.home-hub .banner-portrait{width:55%;opacity:.7}.discovery-categories{width:100%;gap:4px}.discovery-categories button,.home-hub .discovery-categories button{font-size:.875rem;padding:8px 12px}.discovery-search{min-width:130px}.character-meta,.home-hub .character-meta{left:10px;right:10px;bottom:12px}.character-meta h3,.home-hub .character-meta h3{font-size:1rem}.character-meta p,.home-hub .character-meta p{font-size:.75rem}.create-character-card,.home-hub .create-character-card{min-height:240px;padding:16px 8px}.create-character-card strong,.home-hub .create-character-card strong{font-size:1.125rem}.portrait-empty{font-size:2.25rem}.portrait-empty small{font-size:.75rem}.mobile-nav{display:flex;background:#101014f5;border-top:1px solid var(--line);padding:12px 8px calc(12px + env(safe-area-inset-bottom));gap:4px;min-height:64px}.mobile-nav button{font-size:.875rem;padding:10px 12px;border-radius:10px;min-height:44px}.mobile-nav button.active{background:var(--panel2);color:var(--text)}.theme-editor-grid{grid-template-columns:1fr}.theme-assets{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.theme-controls{padding:20px}.theme-visual-preview{padding:0}.section-head{flex-wrap:wrap}.auth-page{padding:20px 16px;gap:24px}.auth-brand{min-height:330px;padding:24px}.auth-points{display:none}.auth-brand h1{font-size:2.25rem}.theme-draft-bar{font-size:.875rem}.chat-layout{height:calc(100dvh - 160px)}.account-menu{top:60px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.auth-logo{background:var(--accent);color:var(--accent-ink)}
/* Focused three-column conversation workspace. */
.joi-shell:has(.chat-page) .site-rail{display:none}.joi-shell:has(.chat-page) .main{margin-left:0;width:100%}.joi-shell .chat-page{height:calc(100dvh - 76px);padding:0}.joi-shell .chat-layout{grid-template-columns:246px minmax(0,1fr) 280px;gap:0;height:100%;background:var(--bg)}.joi-shell .chat-panel{background:var(--bg);border-radius:0;border:0}.joi-shell .chat-list{border-right:1px solid var(--line);padding:20px 14px;overflow:auto}.chat-list-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.chat-list-heading h2{font-size:18px;margin:0}.chat-search{display:block;margin-bottom:22px}.chat-search .input{border-radius:30px;font-size:14px;min-height:40px}.chat-person{margin-bottom:6px}.chat-person .dot-avatar{border-radius:50%}.chat-person small{font-size:12px}.joi-shell .conversation{min-width:0;padding:16px clamp(16px,4vw,64px) 12px}.joi-shell .conversation-head{position:relative;width:100%;max-width:840px;align-self:center;min-height:54px;border:1px solid var(--line);background:var(--panel);border-radius:30px;padding:8px 14px;flex-wrap:nowrap}.chat-heading{flex:1;min-width:0}.chat-heading strong{font-size:15px}.chat-heading small{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-actions-menu{position:relative}.chat-actions-menu summary{cursor:pointer;list-style:none;white-space:nowrap}.chat-actions-menu[open]>.actions{position:absolute;right:0;top:calc(100% + 8px);z-index:45;width:260px;display:flex;flex-direction:column;align-items:stretch;gap:8px;padding:14px;background:var(--panel2);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}.chat-actions-menu .model-select{width:100%;max-width:none}.joi-shell .life-ribbon{font-size:11px;white-space:nowrap;overflow-x:auto;flex:none;background:none;margin:6px 0}.joi-shell .conversation-body{padding:20px 0;min-height:0;width:100%;max-width:840px;align-self:center}.chat-welcome{margin:auto;width:100%;max-width:680px;padding:24px 0;text-align:center}.welcome-avatar{margin:auto;width:108px;height:108px;border-radius:50%;overflow:hidden;display:grid;place-items:center;border:2px solid var(--accent);background:var(--panel3);color:var(--text);font-size:42px;cursor:pointer}.welcome-avatar img{width:100%;height:100%;object-fit:cover}.chat-welcome h2{font-size:20px;font-weight:500;margin:22px 0 16px}.welcome-call{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--bg));border-radius:30px}.chat-welcome>p{font-size:13px;color:var(--muted);margin:32px 0 18px}.chat-icebreakers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;text-align:left}.chat-icebreakers button{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:15px 13px;text-align:left;color:var(--text);cursor:pointer}.chat-icebreakers button:hover{border-color:var(--accent);background:var(--panel2)}.chat-icebreakers strong{display:block;font-size:13px;margin-bottom:6px}.chat-icebreakers span{display:block;font-size:12px;line-height:1.5;color:var(--muted)}.joi-shell .chat-tools{justify-content:center;background:none;flex:none;padding:8px 0}.joi-shell .composer{width:100%;max-width:840px;align-self:center;margin:0;border-radius:28px;background:var(--panel);border:1px solid var(--line);padding:8px 10px;align-items:center;flex:none}.joi-shell .composer .textarea{background:transparent;border:0;min-height:38px;padding:8px 10px}.joi-shell .composer .btn{border-radius:50px;padding:8px 12px}.joi-shell .character-stage{display:block;position:relative;border-left:1px solid var(--line);background:var(--bg);overflow-y:auto;padding:14px}.chat-profile-image{display:block;width:100%;padding:0;border:0;border-radius:14px;overflow:hidden;cursor:pointer;background:var(--panel)}.joi-shell .stage-art{position:relative;inset:auto;height:280px;background:var(--panel2)}.joi-shell .stage-art img{mask-image:none;object-fit:cover;object-position:center top}.joi-shell .stage-art>span{font-size:86px;color:var(--muted)}.joi-shell .stage-caption{position:static;padding:18px 5px}.stage-caption h2{font-size:23px!important;font-weight:700!important}.stage-caption h2 small{color:var(--muted);font-size:18px}.stage-caption p{font-size:13px!important;margin:6px 0 16px}.profile-actions{display:flex;gap:8px}.profile-actions .btn{flex:1;font-size:13px}.chat-shared{border-top:1px solid var(--line);padding-top:18px}.chat-shared>div:first-child{display:flex;justify-content:space-between;align-items:center}.chat-shared h3{font-size:13px;margin:0}.chat-shared .btn{font-size:12px;padding:5px 9px;min-height:30px}#chat-shared-images{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:12px}#chat-shared-images img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:9px}#chat-shared-images p{grid-column:1/-1;font-size:12px}.companion-profile-dialog{padding:0;width:min(1000px,94vw);max-height:90dvh;border:1px solid var(--line);border-radius:20px;color:var(--text);background:var(--panel);box-shadow:0 30px 100px #0008}.companion-profile-dialog::backdrop{background:#000a;backdrop-filter:blur(6px)}.profile-modal-layout{display:grid;grid-template-columns:58% 42%;min-height:620px}.profile-modal-art{background:var(--panel2);display:grid;place-items:center;min-height:100%;font-size:100px;color:var(--muted);position:relative}.profile-modal-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center top}.profile-modal-body{padding:34px 26px;position:relative;overflow:auto;max-height:88dvh}.profile-modal-body h2{font-size:32px;margin:0 36px 10px 0}.profile-modal-body h3{font-size:14px;margin:26px 0 14px}.profile-modal-body p{font-size:14px;color:var(--muted)}.profile-modal-close{position:absolute;top:14px;right:14px}.profile-facts{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:16px 0;display:flex;flex-wrap:wrap;gap:12px;font-size:13px}.profile-start-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.profile-start-actions .btn{min-height:75px;background:var(--panel2)}.joi-shell .inspector{background:var(--panel);display:block}.joi-shell .inspector[hidden]{display:none}.chat-icebreakers button:focus-visible,.chat-profile-image:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
@media(max-width:1150px){.joi-shell .chat-layout{grid-template-columns:220px minmax(0,1fr) 240px}.joi-shell .conversation{padding:14px}.chat-icebreakers{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:960px){.joi-shell .chat-layout{grid-template-columns:220px minmax(0,1fr)}.joi-shell .character-stage{display:none}}
@media(max-width:760px){.joi-shell .chat-page{height:calc(100dvh - 140px - env(safe-area-inset-bottom))}.joi-shell .chat-layout{display:flex}.joi-shell .conversation{padding:8px;min-height:0}.joi-shell .chat-list{display:none}.joi-shell .chat-layout.list-open .chat-list{display:block;padding:18px;background:var(--bg);bottom:70px}.joi-shell .chat-layout.list-open .conversation-head{z-index:36}.joi-shell .conversation-head{padding:7px 10px;gap:8px}.chat-heading small{max-width:145px}.chat-actions-menu summary{font-size:12px;padding:8px}.chat-actions-menu[open]>.actions{width:230px;flex-wrap:wrap;overflow:visible}.joi-shell .conversation-body{padding:12px 4px}.chat-welcome{padding:16px 0}.welcome-avatar{width:80px;height:80px}.chat-welcome h2{font-size:18px}.chat-icebreakers{grid-template-columns:repeat(2,minmax(0,1fr))}.chat-icebreakers button{padding:12px}.joi-shell .composer{gap:2px}.joi-shell .composer .btn{padding:8px;min-width:36px}.joi-shell .voice-reply-toggle{font-size:0}.joi-shell .voice-reply-toggle:before{content:'♬';font-size:18px}.profile-modal-layout{grid-template-columns:1fr;min-height:0}.profile-modal-art{min-height:280px}.profile-modal-body{max-height:none;padding:24px}.companion-profile-dialog{max-height:90dvh;overflow:auto}.profile-modal-close{position:sticky;float:right;top:0}.profile-modal-body h2{font-size:27px}}
