/* Live session surfaces share the authored chat metalwork, landing world and native dock. */
.application-app { min-height:100svh; padding-bottom:max(110px,7.5rem,calc(110px + env(safe-area-inset-bottom,0px))); }
.application-entry { position:relative; isolation:isolate; display:flex; flex-direction:column; align-items:center; min-height:calc(100svh - 110px); padding:40px 20px 24px; color:#e8dacc; }
.application-entry__world { position:absolute; inset:0; z-index:-1; overflow:hidden; }
.application-entry__world img { width:100%; height:100%; object-fit:cover; opacity:.5; }
.application-entry__world::after { content:''; position:absolute; inset:0; background:linear-gradient(#08070ba6,#08070b26 25%,#08070bf2 85%); }
.application-entry__identity { text-align:center; margin:0 0 24px; }
.application-entry__sigil { display:block; height:110px; max-width:100%; margin:0 auto 8px; object-fit:contain; }
.application-entry__wordmark { display:block; width:min(240px,70vw); height:auto; margin:14px auto 18px; object-fit:contain; }
.application-entry__identity span { font-size:.68rem; letter-spacing:.15em; color:#cfb6a2; }
.application-entry__panel { position:relative; isolation:isolate; width:min(100%,460px); }
.application-entry__copy { position:relative; padding:34px 27px; }
.application-entry h1 { font-family:'Cormorant Garamond',Georgia,serif; font-size:clamp(1.4rem,5vw,1.8rem); font-weight:400; line-height:1.3; margin:0 0 16px; overflow-wrap:anywhere; }
.application-entry__notice { font-size:.93rem; line-height:1.6; color:#cbbeb6; margin:0 0 24px; }
.application-entry form { display:grid; gap:12px; margin:0; }
.application-entry label { font-size:.85rem; color:#e6d9cb; }
.application-entry label span { color:#baaba2; }
.application-entry input { width:100%; min-width:0; min-height:48px; border:1px solid #907568; border-radius:6px; background:#100d13; color:#eee0d7; padding:10px 12px; font:inherit; }
.application-action { display:flex; justify-content:center; align-items:center; min-height:48px; width:100%; margin:8px 0; padding:12px 14px; color:#f2dfcf; border:1px solid #a58469; background:linear-gradient(110deg,#211823,#392731,#211823); font-family:'Cormorant Garamond',Georgia,serif; font-size:1rem; text-align:center; text-decoration:none; border-radius:5px; cursor:pointer; }
.application-text-action,.application-preview-link { display:flex; align-items:center; justify-content:center; gap:10px; min-height:44px; width:100%; margin:14px 0 0; padding:8px 0; color:#d7bea7; font:inherit; font-size:.85rem; line-height:1.5; text-align:center; text-decoration:underline; text-underline-offset:4px; border:0; background:transparent; cursor:pointer; }
.application-action:disabled { opacity:.5; cursor:wait; }
.application-app :focus-visible { outline:2px solid #edc59e; outline-offset:4px; }
.application-catalog { max-width:620px; margin:0 auto; padding:40px 20px; }
.application-catalog header > p:first-child { color:#c7a88d; font-size:.7rem; letter-spacing:.14em; }
.application-catalog h1 { font-family:'Cormorant Garamond',Georgia,serif; font-size:1.8rem; line-height:1.3; font-weight:400; color:#e5d2c0; }
.application-catalog p { color:#bcaea6; line-height:1.6; font-size:.9rem; }
.application-catalog__worlds { display:grid; gap:14px; margin:28px 0; }
.application-catalog__entry { position:relative; isolation:isolate; display:flex; align-items:center; gap:16px; min-height:104px; padding:18px 25px; color:#e1d3c5; border:0; background:none; text-align:left; cursor:pointer; width:100%; }
.application-catalog__entry > span:not(.realm-frame__surface):not(.realm-portrait) { flex:1; min-width:0; }
.application-catalog__entry strong { display:block; font:1.5rem 'Cormorant Garamond',Georgia,serif; }
.application-catalog__entry small { display:block; color:#b9aaa0; font-size:.76rem; margin-top:8px; overflow-wrap:anywhere; }
.application-catalog__motif { width:36px; height:46px; object-fit:contain; }
.application-history-empty { width:fit-content; max-width:calc(100% - 32px); margin:14px auto; padding:10px 16px; border-radius:6px; color:var(--chat-ink); background:color-mix(in srgb,var(--chat-paper) 88%,transparent); font:.86rem/1.6 Manrope,Arial,sans-serif; text-align:center; }
.application-connected .realm-chat__motif-hint { color:var(--chat-muted); font-size:.7rem; line-height:1.5; text-align:center; height:auto; white-space:normal; }
.application-connected .realm-chat__composer input:disabled { opacity:.85; -webkit-text-fill-color:var(--chat-muted); }
.application-turn-status { margin:0 8px 8px; color:var(--chat-ink); background:color-mix(in srgb,var(--chat-paper) 94%,transparent); border-radius:6px; font: .8rem/1.5 Manrope,Arial,sans-serif; }
.application-turn-status:empty { display:none; }
.application-turn-status p { margin:0; padding:10px 12px; }
.application-turn-status > div { display:flex; flex-wrap:wrap; gap:8px; padding:0 12px 10px; }
.application-turn-status button { min-height:44px; padding:8px 12px; border:1px solid var(--chat-line); border-radius:4px; font:inherit; color:var(--chat-ink); background:var(--chat-paper); }
.application-turn-status button:disabled { opacity:.5; }
.application-connected .realm-chat__event p { padding:8px 12px; border-radius:5px; color:var(--chat-ink); background:color-mix(in srgb,var(--chat-paper) 92%,transparent); }
@media (max-width:360px) { .application-entry { padding-inline:12px; } .application-entry__copy { padding:30px 22px; } .application-catalog { padding-inline:12px; } .application-catalog__entry { gap:10px; padding-inline:22px; } }
@media (forced-colors:active) { .application-entry__world,.application-entry__sigil,.application-entry .realm-frame__surface,.application-catalog .realm-frame__surface { display:none; } .application-entry__panel,.application-catalog__entry { border:1px solid CanvasText; } .application-entry input,.application-action { background:Canvas; color:CanvasText; border-color:CanvasText; } }
/* Account materials reuse Sanctuary art; inventory stays inside the persona's existing palette. */
.application-economy { --economy-ink:#ead9c5; --economy-muted:#cbbdb2; --economy-line:#947759; color:var(--economy-ink); font-size:.9rem; line-height:1.6; }
.application-economy--account { position:relative; isolation:isolate; max-width:660px; margin:0 auto; padding:38px 24px 30px; }
.application-economy__world { position:absolute; inset:0 0 auto; height:480px; z-index:-1; overflow:hidden; mask-image:linear-gradient(#000 55%,transparent); }
.application-economy__world img { width:100%; height:100%; object-fit:cover; object-position:65% 0; opacity:.7; }
.application-economy__world::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,#0b080ad9,#0b080a38 80%); }
.application-economy--account > header { position:relative; min-height:220px; max-width:360px; padding:0 12px; }
.application-economy__brand { display:block; width:150px; height:auto; margin-bottom:26px; }
.application-economy header > p { font-size:.65rem; letter-spacing:.16em; color:#d0b39a; }
.application-economy h1,.application-economy h2,.application-economy h3 { font-family:'Cormorant Garamond',Georgia,serif; font-weight:500; line-height:1.25; }
.application-economy h1 { font-size:2.6rem; margin:8px 0 12px; }
.application-economy h2 { margin:0 0 18px; font-size:1.7rem; }
.application-economy h3 { font-size:1.25rem; margin:0 0 8px; }
.application-economy__essence { position:relative; background:#0f0b0ec9; padding:28px 26px; }
.application-economy__balances { margin:0; }
.application-economy__balances > div { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:10px 0; border-bottom:1px solid #8d705940; }
.application-economy__balances dt { display:flex; align-items:center; gap:14px; font-family:'Cormorant Garamond',Georgia,serif; font-size:1rem; }
.application-economy__balances dt img { width:32px; height:46px; object-fit:contain; }
.application-economy__balances dd { margin:0; font-size:1.6rem; font-family:'Cormorant Garamond',Georgia,serif; font-variant-numeric:tabular-nums; }
.application-economy__quiet { font-size:.78rem; line-height:1.6; color:var(--economy-muted,var(--chat-muted)); }
.application-economy__status { margin:20px 0; padding:12px 16px; background:#191219; border-left:2px solid #a98a66; }
.application-economy__section { padding:26px 14px; border-bottom:1px solid #8d70593b; }
.application-economy__section li { margin:12px 0; overflow-wrap:anywhere; }
.application-economy__section li span { display:block; color:var(--economy-muted); font-size:.8rem; }
.application-economy__items { display:grid; gap:10px; }
.application-economy__item { display:flex; justify-content:space-between; align-items:center; gap:12px; min-height:84px; padding:16px; border:1px solid var(--chat-line,var(--economy-line)); border-radius:5px; color:var(--chat-ink,var(--economy-ink)); background:linear-gradient(130deg,var(--chat-panel,#221820),var(--chat-paper,#100c12)); text-align:left; font:inherit; cursor:pointer; }
.application-economy__item > span { min-width:0; }
.application-economy__item strong { display:block; font:1.25rem 'Cormorant Garamond',Georgia,serif; }
.application-economy__item span span { display:block; margin-top:5px; overflow-wrap:anywhere; font-size:.82rem; }
.application-economy__item small { color:var(--chat-accent,#cfad86); font-size:.72rem; }
.application-economy__item[aria-pressed="true"] { outline:2px solid var(--chat-accent,#cfad86); outline-offset:2px; }
.application-economy__item:disabled { cursor:default; }
.application-economy__item:disabled:not([aria-pressed="true"]) { border-style:dashed; }
.application-economy__offers { display:grid; gap:12px; }
.application-economy__offer { padding:18px; border:1px solid #94775970; border-radius:5px; background:#151016; }
.application-economy__offer p { margin:8px 0; overflow-wrap:anywhere; color:var(--economy-muted); }
.application-economy__offer button { min-height:44px; font:inherit; color:#baada3; background:none; border:0; padding:0; }
.application-economy form { display:grid; gap:12px; }
.application-economy input { min-width:0; width:100%; min-height:48px; padding:10px 12px; border:1px solid var(--economy-line); border-radius:5px; background:#110c13; color:var(--economy-ink); font:inherit; }
.application-economy button:disabled { opacity:.7; cursor:default; }
.application-inventory { position:fixed; inset:auto 12px calc(var(--chat-dock-height,85px) + env(safe-area-inset-bottom,0px)); margin:0 auto; width:min(calc(100% - 24px),600px); max-height:min(72dvh,calc(var(--chat-viewport-height,100dvh) - var(--chat-dock-height,85px) - 100px)); padding:0; border:0; background:transparent; color:var(--chat-ink); overflow:visible; }
.application-inventory::backdrop { background:#08070a80; backdrop-filter:blur(3px); }
.application-inventory__surface { position:relative; isolation:isolate; display:flex; flex-direction:column; max-height:inherit; padding:16px; background:linear-gradient(150deg,var(--chat-panel),var(--chat-paper)); border-radius:12px; }
.application-inventory header { position:relative; display:flex; align-items:center; gap:12px; padding:2px 8px 14px; }
.application-inventory header img { width:34px; height:42px; object-fit:contain; }
.application-inventory h2 { flex:1; min-width:0; margin:0; font:1.5rem/1.25 'Cormorant Garamond',Georgia,serif; }
.application-inventory header button { flex:none; min-width:44px; min-height:44px; border:1px solid var(--chat-line); border-radius:50%; color:var(--chat-ink); background:var(--chat-paper); font:1.4rem 'Cormorant Garamond',Georgia,serif; }
.application-inventory__scroll { min-height:0; overflow:auto; overscroll-behavior:contain; padding:2px 10px; font:.85rem/1.6 Manrope,Arial,sans-serif; }
.application-inventory__scroll [data-economy-status] { margin:16px 0; color:var(--chat-ink); }
.application-inventory footer { padding:0 10px; }
.application-inventory .application-action { color:var(--chat-ink); background:var(--chat-panel); border-color:var(--chat-line); }
.application-inventory .application-text-action { color:var(--chat-accent); }
.application-inventory :focus-visible { outline:2px solid var(--chat-accent); outline-offset:3px; }
@media(max-width:360px) { .application-economy--account { padding-inline:12px; } .application-economy__essence { padding-inline:20px; } .application-inventory { left:8px; right:8px; width:calc(100% - 16px); } .application-inventory__surface { padding:12px; } }
@media(forced-colors:active) { .application-economy__world { display:none; } .application-economy__item,.application-economy__offer,.application-economy__status,.application-inventory__surface { background:Canvas; color:CanvasText; border:1px solid CanvasText; } }
.application-economy__balances > div { flex-wrap:wrap; }
.application-economy__balances dd { max-width:100%; overflow-wrap:anywhere; }
.application-economy h1,.application-economy h2,.application-economy h3,.application-economy p { overflow-wrap:anywhere; }
.application-orders__list { list-style:none; margin:0; padding:0; display:grid; gap:14px; }
.application-orders__order { padding:20px; border:1px solid #94775970; border-radius:5px; background:linear-gradient(145deg,#211620,#100c12); }
.application-orders__order h3 { margin-bottom:12px; }
.application-orders__order p { margin:8px 0; }
.application-orders__order details { margin-top:14px; color:var(--economy-muted); font-size:.78rem; }
.application-orders__order summary { display:list-item; min-height:44px; cursor:pointer; padding:10px 0; }
.application-orders__order [data-order-check] { margin-top:8px; }
/* Purchase review stays in the current Sanctuary or persona wardrobe surface. */
.application-economy__offer { position:relative; border-color:var(--chat-line,#94775970); background:linear-gradient(145deg,var(--chat-panel,#211820),var(--chat-paper,#100c12)); }
.application-offer__kind { font-size:.7rem; text-transform:uppercase; letter-spacing:.12em; color:var(--chat-accent,#cfad86); }
.application-economy__offer .application-action { width:100%; padding:10px 14px; border:1px solid var(--chat-line,#a58469); background:var(--chat-panel,#291e27); color:var(--chat-ink,#f2dfcf); }
.application-offer__art { display:block; width:70px; height:86px; object-fit:contain; margin:0 0 14px; }
.application-offer__facts { display:grid; gap:8px; margin:20px 0; }
.application-offer__facts > div { display:flex; justify-content:space-between; align-items:baseline; gap:12px; flex-wrap:wrap; padding:6px 0; border-bottom:1px solid var(--chat-line,#94775945); }
.application-offer__facts dt { color:var(--chat-muted,var(--economy-muted,#cbbdb2)); }
.application-offer__facts dd { margin:0; font-variant-numeric:tabular-nums; color:var(--chat-ink,var(--economy-ink,#ead9c5)); overflow-wrap:anywhere; }
.application-offer__benefits { margin:16px 0; padding-left:20px; color:var(--chat-muted,var(--economy-muted,#cbbdb2)); }
.application-offer__benefits li { margin:6px 0; }
.application-purchase-review { position:relative; isolation:isolate; margin:0 0 24px; padding:26px 24px; border:1px solid var(--chat-line,#947759); border-radius:8px; background:linear-gradient(140deg,var(--chat-panel,#291d27),var(--chat-paper,#100c12)); color:var(--chat-ink,var(--economy-ink,#ead9c5)); }
.application-purchase-review h3 { font:1.7rem/1.25 'Cormorant Garamond',Georgia,serif; margin:8px 0 14px; }
.application-purchase-review select { display:block; width:100%; min-width:0; min-height:48px; margin:10px 0; padding:10px 12px; border:1px solid var(--chat-line,#947759); border-radius:5px; background:var(--chat-paper,#110c13); color:var(--chat-ink,#ead9c5); font:inherit; }
.application-purchase-review__status { font-size:.82rem; line-height:1.6; color:var(--chat-muted,var(--economy-muted,#cbbdb2)); }
.application-inventory__offers { margin:28px 0 0; }
.application-inventory__offers > h3 { font:1.4rem/1.25 'Cormorant Garamond',Georgia,serif; }
@media(max-width:360px) { .application-purchase-review { padding:22px 18px; } }
@media(forced-colors:active) { .application-purchase-review,.application-purchase-review select,.application-economy__offer .application-action { background:Canvas; color:CanvasText; border-color:CanvasText; } }
.application-orders [hidden] { display:none; }
/* Connected navigation (F1): the preview's worlds, profile chamber and dock with server-led availability. */
.application-connected .sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
.application-mode-label { padding:6px 10px; border:1px solid #9d7f5e66; border-radius:999px; background:#0b090dcc; color:#d9c2aa; font:.62rem/1.2 Manrope,Arial,sans-serif; letter-spacing:.16em; text-transform:uppercase; }
.application-worlds .world-header { justify-content:space-between; }
.application-worlds .selection-hero h1 { margin:0; }
.persona-entry.is-unreleased .entry-art { filter:saturate(.55) brightness(.62); }
.persona-entry.is-unreleased .entry-shade { background:linear-gradient(90deg,#060608f5,#070609c2 34%,#0807094d 72%,#0807091f); }
.application-world__release { position:absolute; right:14px; top:14px; z-index:2; max-width:calc(100% - 28px); padding:6px 10px; border:1px solid color-mix(in srgb,var(--entry-accent) 45%,#8f7a65); border-radius:4px; background:#0b090de6; color:#ead8c6; font:.68rem/1.3 Manrope,Arial,sans-serif; letter-spacing:.12em; text-transform:uppercase; }
.application-worlds__return { position:relative; z-index:2; padding:30px 14px 4px; }
.application-worlds__return h2 { margin:0 0 4px; color:#e9d6c3; font:500 1.6rem/1.2 'Cormorant Garamond',Georgia,serif; text-align:center; }
.application-worlds__return .application-catalog__worlds { margin:18px 0 10px; }
.application-worlds__note { margin:8px 4px 0; color:#b9a9a0; font:.82rem/1.6 Manrope,Arial,sans-serif; text-align:center; }
.application-catalog__entry .application-catalog__preview { margin-top:6px; color:#d3c3b8; font:.82rem/1.45 Manrope,Arial,sans-serif; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; overflow-wrap:anywhere; }
.application-footer-mark { display:block; width:min(120px,36vw); height:auto; margin:0 auto 6px; opacity:.85; }
.application-home { gap:8px; }
.application-home__mark { display:block; width:auto; height:17px; filter:brightness(1.1); }
.application-connected .persona-portal { grid-template-columns:44px minmax(0,1fr) 44px; }
.application-connected .portal-step { width:44px; min-width:44px; height:44px; }
/* Conversation entry sits between hero and chamber at panel tier: quieter than the chamber, richer than cards. */
.application-encounter { position:relative; isolation:isolate; margin:14px 12px 16px; padding:22px 22px 20px; border-radius:12px; background:linear-gradient(140deg,color-mix(in srgb,var(--h3ll-surface) 92%,var(--character-glow) 8%),#0a080cf2); color:var(--paper); }
.application-encounter__kicker { margin:0 0 6px; color:var(--character-accent); font:.68rem/1.3 Manrope,Arial,sans-serif; letter-spacing:.18em; }
.application-encounter h2 { margin:0 0 8px; font:500 1.75rem/1.15 'Cormorant Garamond',Georgia,serif; overflow-wrap:anywhere; }
.application-encounter p { margin:0 0 12px; color:var(--muted); font:.9rem/1.55 Manrope,Arial,sans-serif; overflow-wrap:anywhere; }
.application-encounter__actions { display:grid; gap:8px; }
.application-encounter .application-action { margin:4px 0; border-color:color-mix(in srgb,var(--character-accent) 55%,#7d6550); background:linear-gradient(110deg,#1b141b,color-mix(in srgb,var(--character-glow) 18%,#21181f),#1b141b); }
.application-encounter__edition { margin:6px 0 0!important; font-size:.75rem!important; letter-spacing:.04em; }
.application-encounter.is-unreleased h2 { color:#e8d8c8; }
.application-story-note { margin:0 6px 14px; color:var(--muted); font:.86rem/1.6 Manrope,Arial,sans-serif; text-align:center; }
.application-story-state { display:block; margin-top:7px; color:color-mix(in srgb,var(--character-accent) 50%,#cbb9a8); font:.6rem/1.35 Manrope,Arial,sans-serif; letter-spacing:.1em; text-transform:uppercase; opacity:.9; }
/* Wardrobe and rituals inherit the persona palette for shared economy/inventory controls. */
.application-wardrobe,.application-rituals { --chat-line:color-mix(in srgb,var(--character-accent) 42%,#5e4c3d); --chat-ink:var(--paper); --chat-muted:var(--muted); --chat-panel:#17121a; --chat-paper:#0b090d; --chat-accent:var(--character-accent); --economy-line:var(--chat-line); --economy-ink:var(--paper); --economy-muted:var(--muted); display:grid; gap:16px; margin-top:16px; color:var(--paper); font:.92rem/1.6 Manrope,Arial,sans-serif; }
.application-wardrobe h3 { margin:0 0 8px; font:500 1.6rem/1.2 'Cormorant Garamond',Georgia,serif; }
.application-wardrobe__lead,.application-wardrobe__status { margin:0 0 12px; color:var(--muted); overflow-wrap:anywhere; }
.application-wardrobe__status:empty { display:none; }
.application-wardrobe .application-economy__quiet { color:var(--muted); }
.application-wardrobe__controls .application-action { border-color:var(--chat-line); background:var(--chat-panel); color:var(--chat-ink); }
.application-wardrobe :focus-visible,.application-rituals :focus-visible { outline:2px solid var(--character-focus); outline-offset:3px; }
.application-ritual-intro { margin:0; color:var(--muted); text-align:center; }
.application-ritual-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr)); gap:10px; }
.application-ritual-card { display:grid; grid-template-columns:64px minmax(0,1fr); gap:14px; align-items:start; padding:16px 14px; border-radius:8px; background:linear-gradient(150deg,#16111a,#0b090d); }
.application-ritual-card img { width:64px; height:80px; object-fit:contain; }
.application-ritual-card h4 { margin:2px 0 4px; font:500 1.2rem/1.2 'Cormorant Garamond',Georgia,serif; overflow-wrap:anywhere; }
.application-ritual-card p { margin:0 0 6px; color:var(--muted); font-size:.84rem; line-height:1.5; overflow-wrap:anywhere; }
.application-ritual-card__notes { color:color-mix(in srgb,var(--character-accent) 60%,#d8c7b6)!important; font-size:.76rem!important; letter-spacing:.03em; }
.application-ritual-patterns ul { list-style:none; margin:8px 0 0; padding:0; display:grid; gap:8px; }
.application-ritual-patterns li { display:flex; justify-content:space-between; align-items:center; gap:12px; min-height:48px; padding:8px 4px; border-bottom:1px solid #8a705540; }
.application-ritual-patterns li > span { display:grid; gap:2px; font:500 1.1rem/1.2 'Cormorant Garamond',Georgia,serif; }
.application-ritual-patterns li small { color:var(--muted); font:.76rem/1.4 Manrope,Arial,sans-serif; }
.application-ritual-patterns h3,.application-ritual-manifest h3 { margin:0; font:500 1.1rem/1.3 'Cormorant Garamond',Georgia,serif; letter-spacing:.14em; }
.application-ritual-manifest p { color:var(--muted); }
/* Pending states read as designed: engraved card, live text, an action plate that names its wait. */
.application-pending { position:relative; isolation:isolate; display:grid; gap:6px; padding:20px 18px 18px; border-radius:8px; background:linear-gradient(150deg,#17121a,#0b090d); color:var(--paper,#ead9c5); font:.88rem/1.6 Manrope,Arial,sans-serif; }
.application-pending h3,.application-pending h2 { margin:0; font:500 1.35rem/1.2 'Cormorant Garamond',Georgia,serif; overflow-wrap:anywhere; }
.application-pending p { margin:0; color:var(--muted,#cbbdb2); overflow-wrap:anywhere; }
.application-pending__kicker { color:color-mix(in srgb,var(--character-accent,#cfad86) 70%,#d9c4ae)!important; font-size:.66rem; letter-spacing:.16em; text-transform:uppercase; }
.application-pending__action { justify-self:start; min-height:44px; min-width:44px; margin-top:6px; padding:9px 16px; border:1px solid #8f77604d; border-radius:6px; background:repeating-linear-gradient(135deg,#ffffff05 0 6px,transparent 6px 12px),#120e14; color:#cdbfb3; font:500 1rem/1.2 'Cormorant Garamond',Georgia,serif; letter-spacing:.04em; cursor:default; }
.application-pending__reason { font-size:.76rem!important; letter-spacing:.02em; }
.application-pending-grid { display:grid; gap:12px; }
.application-account-controls .application-pending { --paper:#ead9c5; --muted:#cbbdb2; }
/* Chats list: inbox craft, rows are buttons because the service opens each edition. */
.application-conversations button.chat-inbox__conversation { width:100%; border:0; background:none; color:inherit; font:inherit; text-align:left; cursor:pointer; }
.application-conversations .chat-inbox__header .application-mode-label { display:inline-block; margin:0 0 14px; }
.application-conversations__unreleased { margin:22px 0 0; color:#b4aeb8; font:.82rem/1.6 Manrope,Arial,sans-serif; }
/* Notice pages: same entry world, persona motif when one is in view, real exits. */
.application-notice .application-entry__sigil.is-motif { height:72px; width:72px; margin-bottom:10px; }
.application-notice__choices { display:grid; gap:8px; margin:0 0 6px; }
.application-entry__destination { margin:-8px 0 18px; color:#d8c3ad; font:.82rem/1.5 Manrope,Arial,sans-serif; }
/* Reader dialog shares the preview's lore/story typography inside the panel frame tier. */
.application-reader__content { max-height:calc(100dvh - 26px); overflow-y:auto; overscroll-behavior:contain; }
.application-reader__content #reader-title:focus { outline:none; }
.application-reader__note { margin:18px 0 0; color:var(--muted); font:.8rem/1.5 Manrope,Arial,sans-serif; }
@media (max-width:360px) { .application-encounter { margin-inline:8px; padding:20px 16px; } .application-ritual-card { grid-template-columns:52px minmax(0,1fr); gap:10px; } .application-ritual-card img { width:52px; height:66px; } .application-world__release { right:10px; top:10px; font-size:.6rem; } }
@media (forced-colors:active) { .application-pending,.application-encounter,.application-ritual-card,.application-mode-label,.application-world__release { background:Canvas; color:CanvasText; border:1px solid CanvasText; } .application-pending__action { background:Canvas; color:GrayText; border-color:GrayText; } }
@media (prefers-reduced-motion:reduce) { .application-connected .selection-hero :is(.selection-sigil,.selection-logo) { animation:none; } }
/* Wardrobe pane text sits below the chamber detail scale used for authored item copy. */
.application-wardrobe .ch-detail p,.application-wardrobe .ch-detail [data-economy-status] { font:.88rem/1.6 Manrope,Arial,sans-serif; color:var(--muted); }
.application-wardrobe .ch-detail [data-economy-inventory] { margin-top:12px; }
.application-wardrobe .application-economy__items { margin:12px 0; }
/* Route focus moves to page headings for assistive technology; they are not controls. */
.application-connected :is(#application-title,#character-name,#chat-title,#reader-title)[tabindex="-1"]:focus { outline:none; }
.application-wardrobe .ch-detail .application-wardrobe__lead { margin:0 0 10px; }
.application-wardrobe .ch-detail .application-wardrobe__status { margin:0 0 10px; color:var(--paper); }
/* Enlarged text: long heading words hyphenate before they would break mid-word. */
.application-connected :is(.application-entry h1,.application-economy h1,.application-economy h2,.application-encounter h2,.application-pending :is(h2,h3)) { -webkit-hyphens:auto; hyphens:auto; }
.application-turn-status__link { display:inline-flex; align-items:center; min-height:44px; padding:8px 12px; border:1px solid var(--chat-line); border-radius:4px; color:var(--chat-ink); background:var(--chat-paper); font:inherit; text-decoration:underline; text-underline-offset:3px; }
.application-turn-status__link:focus-visible { outline:2px solid var(--chat-accent); outline-offset:2px; }

/* Package F3 (fe-persona-story-media): persona mood, shared moments, media surfaces. */
.application-mood { margin:1.25rem 0 0; }
.application-mood h3 { font-size:.8rem; letter-spacing:.22em; text-transform:uppercase; color:var(--h3ll-muted,#b9aaa4); margin-bottom:.5rem; }
.application-mood__signature { text-transform:capitalize; color:var(--h3ll-paper,#d5c9bd); margin:.25rem 0; }
.application-mood__palette { display:flex; flex-wrap:wrap; gap:.25rem 1rem; margin-top:.6rem; }
.application-mood__swatch { display:inline-flex; align-items:center; gap:.45rem; min-height:44px; font-size:.78rem; color:var(--h3ll-muted,#b9aaa4); }
.application-mood__swatch i { width:14px; height:14px; border-radius:50%; background:var(--swatch); border:1px solid #ffffff22; box-shadow:0 0 6px var(--swatch); }
.application-moments__list { list-style:none; margin:1rem 0 0; padding:0; display:grid; gap:14px; }
.application-moments__moment { padding:18px 20px; border:1px solid #94775970; border-radius:5px; background:linear-gradient(145deg,#211620,#100c12); }
.application-moments__empty { color:var(--h3ll-muted,#b9aaa4); }
.application-media__head h2 { font-size:1.35rem; margin-bottom:.35rem; padding-right:52px; }
.application-media__request, .application-media__unavailable { padding:20px; margin:16px 0; border:1px solid #94775970; border-radius:5px; background:linear-gradient(145deg,#211620,#100c12); }
.application-media__figure { margin:14px 0; }
.application-media__figure img { max-width:100%; border-radius:6px; border:1px solid #94775970; display:block; }
.application-media__asset { max-height:70vh; object-fit:contain; background:#0c0908; width:100%; }
.application-media__voice { width:100%; min-height:44px; margin-top:10px; }
.application-media__error { color:#e2a49a; }
.application-media__actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
.application-media-dialog { max-width:min(680px,94vw); width:100%; background:var(--h3ll-surface,#101015); color:var(--h3ll-paper,#d5c9bd); border:1px solid #94775970; }
.application-media-dialog .dialog-inner { max-height:86vh; overflow:auto; padding:20px; }
.application-continuity-note { text-align:center; color:var(--h3ll-muted,#b9aaa4); font-size:.85rem; padding:0 12px; }
.application-continuity-note:empty, .application-continuity-note[hidden] { display:none; }
.application-memories__hero { text-align:center; padding:1.5rem 1rem .5rem; }
.application-memories__motif { width:54px; height:54px; }
.application-memories__realm { color:var(--h3ll-muted,#b9aaa4); letter-spacing:.18em; text-transform:uppercase; font-size:.75rem; }
.application-memories__return { text-align:center; margin:1.5rem 0; }
/* ── fe-creator-admin (Package F4): creator studio + operator console. Append verbatim to
 * src/styles/application.css. Tokens and materials come from the connected account surfaces;
 * Cormorant Garamond for display, Manrope for data. Data tables are the accessible record;
 * bars are decorative duplicates (aria-hidden). ─────────────────────────────────────────── */
.application-studio__nav,.application-console__nav,.application-chip-row { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 18px; }
.application-chip { display:inline-flex; align-items:center; justify-content:center; min-height:44px; min-width:44px; padding:10px 18px; border:1px solid #94775970; border-radius:6px; background:linear-gradient(150deg,#1b141c,#100c12); color:#d8c4ae; font:500 .95rem/1.1 'Cormorant Garamond',Georgia,serif; letter-spacing:.06em; text-decoration:none; cursor:pointer; }
.application-chip.is-current,.application-chip[aria-current="page"],.application-chip[aria-pressed="true"] { border-color:#c9a173; color:#f2dfcf; background:linear-gradient(150deg,#2c1f28,#171017); }
.application-chip:disabled { opacity:.55; cursor:default; }
.application-chip:focus-visible,.application-door:focus-visible,.application-command-card:focus-visible { outline:2px solid #edc59e; outline-offset:3px; }
.application-console__subnav { margin-top:-6px; }
.application-console__identity { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:0 0 10px; color:#b9a494; font-size:.8rem; }
.application-console__identity > * { min-width:0; }
.application-console__identity small { overflow-wrap:anywhere; }
.application-studio__balances { margin:0 0 14px; }
.application-studio__balances > div { display:flex; justify-content:space-between; align-items:baseline; gap:14px; flex-wrap:wrap; padding:8px 0; border-bottom:1px solid #8d705940; }
.application-studio__balances dt { color:var(--economy-muted); }
.application-studio__balances dd { margin:0; font:1.35rem 'Cormorant Garamond',Georgia,serif; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
.application-studio__balances dd.is-negative { color:#e8907f; }
.application-studio__banner { margin:14px 0; padding:12px 16px; border-left:2px solid #c9a173; background:#191219; color:#e3d2c0; overflow-wrap:anywhere; }
.application-studio__provisional { margin:14px 0; padding:10px 14px; border:1px dashed #94775980; border-radius:6px; color:#d7c2a8; font-size:.8rem; }
.application-studio__review { margin:18px 0; }
.application-studio__persona { padding:20px 0; border-top:1px solid #8d70593b; }
.application-studio__persona h3 small { color:var(--economy-muted); font:.75rem Manrope,Arial,sans-serif; letter-spacing:.08em; }
/* Data tables: real <table> inside a focusable scroll region so 320px and 200% text never overflow the page. */
.application-table-wrap { position:relative; max-width:100%; margin:16px 0; overflow-x:auto; overscroll-behavior-x:contain; border-radius:6px; }
.application-table-wrap:focus-visible { outline:2px solid #edc59e; outline-offset:3px; }
.application-table { width:100%; border-collapse:collapse; font:.78rem/1.5 Manrope,Arial,sans-serif; color:var(--economy-ink); }
.application-table th { padding:10px 12px; text-align:left; color:#c9ae8d; font:600 .68rem/1.3 'Cormorant Garamond',Georgia,serif; letter-spacing:.12em; text-transform:uppercase; border-bottom:1px solid #94775966; white-space:nowrap; }
.application-table td { padding:10px 12px; border-bottom:1px solid #8d705933; vertical-align:top; overflow-wrap:anywhere; font-variant-numeric:tabular-nums; }
.application-table__totals td { border-top:1px solid #94775966; border-bottom:0; font-weight:600; color:#efdcC4; }
.application-table__action { min-height:44px; min-width:44px; margin:0; padding:8px 10px; width:auto; font-size:.8rem; }
.application-table__actions small { color:var(--economy-muted); font-size:.72rem; }
.application-audit__json { margin:4px 0 10px; max-width:22rem; font:.72rem/1.5 ui-monospace,SFMono-Regular,Menlo,monospace; color:#cbb8a6; overflow-wrap:anywhere; white-space:pre-wrap; }
.application-table details { min-width:44px; }
.application-table summary { min-width:44px; min-height:44px; display:inline-flex; align-items:center; cursor:pointer; color:#d7bea7; text-decoration:underline; text-underline-offset:4px; }
/* Bars: decorative; the adjacent table is the record. */
.application-bars { display:grid; gap:8px; margin:16px 0; }
.application-bars__row { display:grid; grid-template-columns:minmax(64px,26%) 1fr minmax(64px,max-content); align-items:center; gap:10px; }
.application-bars__label { color:var(--economy-muted); font:.74rem/1.3 Manrope,Arial,sans-serif; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.application-bars__track { display:block; height:14px; border:1px solid #8d705955; border-radius:3px; background:#0f0b0e; }
.application-bars__fill { display:block; height:100%; min-width:2px; border-radius:2px; background:linear-gradient(90deg,#7d5b3d,#c9a173); }
.application-bars__fill.is-negative { background:linear-gradient(90deg,#7a352b,#c96a58); }
.application-bars__value { text-align:right; font:.74rem/1.2 Manrope,Arial,sans-serif; font-variant-numeric:tabular-nums; color:var(--economy-ink); }
/* Status and capability badges. */
.application-badge { display:inline-block; padding:3px 10px; border:1px solid #94775970; border-radius:999px; font:.68rem/1.6 Manrope,Arial,sans-serif; letter-spacing:.05em; color:#d8c4ae; white-space:nowrap; }
.application-table :is(th,td) { min-width:5rem; }
.application-badge--active,.application-badge--applied,.application-badge--paid,.application-badge--reconciled { border-color:#7c9a6b; color:#b8d9a4; }
.application-badge--pending,.application-badge--requested,.application-badge--under_review,.application-badge--approved { border-color:#c9a173; color:#e9cf9f; }
.application-badge--rejected,.application-badge--paused,.application-badge--failed { border-color:#a85a4a; color:#e8907f; }
.application-badge--superseded,.application-badge--expired,.application-badge--exhausted { border-color:#6e5f55; color:#b3a294; }
.application-caps { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,150px),1fr)); gap:8px; margin:0; padding:0; list-style:none; }
.application-caps__cap { display:flex; justify-content:space-between; align-items:baseline; gap:8px; padding:10px 12px; border:1px dashed #8d705966; border-radius:6px; color:var(--economy-muted); font:.74rem/1.3 Manrope,Arial,sans-serif; }
.application-caps__cap.is-available { border-style:solid; border-color:#7c9a6b88; color:#d9cdbd; }
.application-caps__cap small { font-size:.62rem; letter-spacing:.08em; text-transform:uppercase; }
/* Command palette and forms. */
.application-commands__group { margin:20px 0; }
.application-commands__group h3 { margin:0 0 10px; font:500 1.15rem/1.3 'Cormorant Garamond',Georgia,serif; letter-spacing:.1em; color:#cdb49a; }
.application-commands__grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr)); gap:10px; }
.application-command-card { display:grid; gap:6px; align-content:start; min-height:44px; padding:16px; border:1px solid #94775970; border-radius:8px; background:linear-gradient(150deg,#17121a,#0b090d); color:var(--economy-ink); text-align:left; font:inherit; cursor:pointer; }
.application-command-card strong { font:500 1.2rem/1.25 'Cormorant Garamond',Georgia,serif; overflow-wrap:anywhere; }
.application-command-card small { color:var(--economy-muted); font:.78rem/1.5 Manrope,Arial,sans-serif; overflow-wrap:anywhere; }
.application-command-card__tier { color:#c9a173; font:.62rem/1.3 Manrope,Arial,sans-serif; letter-spacing:.16em; }
.application-command-card.is-selected { outline:2px solid #c9a173; outline-offset:1px; }
.application-command-card:disabled { border-style:dashed; cursor:default; opacity:.75; }
.application-command { margin:22px 0; padding:22px 20px; border:1px solid #947759; border-radius:8px; background:linear-gradient(140deg,#211820,#100c12); }
.application-command h3 { font:1.5rem/1.25 'Cormorant Garamond',Georgia,serif; margin:4px 0 10px; overflow-wrap:anywhere; }
.application-command p { overflow-wrap:anywhere; }
.application-command__field { margin:14px 0; display:grid; gap:8px; }
.application-command__field label { color:#e6d9cb; font-size:.85rem; }
.application-command__field label span { color:#baaba2; }
.application-command__field input,.application-command__field select,.application-command__field textarea { width:100%; min-width:0; min-height:48px; padding:10px 12px; border:1px solid var(--economy-line); border-radius:5px; background:#110c13; color:var(--economy-ink); font:inherit; }
.application-command__field textarea { min-height:72px; resize:vertical; }
/* Receipts: the two first-class command outcomes plus the two transient ones. */
.application-receipt { margin:18px 0; padding:18px; border-radius:8px; border:1px solid #94775966; background:#141016; }
.application-receipt h4 { margin:0 0 10px; font:500 1.25rem/1.3 'Cormorant Garamond',Georgia,serif; overflow-wrap:anywhere; }
.application-receipt p { overflow-wrap:anywhere; font-size:.85rem; }
.application-receipt--acted { border-left:3px solid #7c9a6b; }
.application-receipt--refused { border-left:3px solid #c9a173; }
.application-receipt--uncertain { border-left:3px solid #b98a4e; }
.application-receipt--failed { border-left:3px solid #a85a4a; }
.application-receipt__facts { margin:14px 0; }
.application-receipt__raw { font-size:.76rem; color:var(--economy-muted); }
.application-receipt__raw summary { min-height:44px; display:inline-flex; align-items:center; cursor:pointer; }
.application-receipt__raw p { overflow-wrap:anywhere; }
.application-receipt__secret { margin:14px 0; padding:14px; border:1px dashed #c9a173; border-radius:6px; background:#191219; }
.application-receipt__secret h5 { margin:0 0 8px; font:500 1.05rem/1.3 'Cormorant Garamond',Georgia,serif; color:#e9cf9f; }
.application-receipt__secret-value { padding:10px 12px; border:1px solid #94775966; border-radius:5px; background:#0f0b0e; font:.9rem/1.5 ui-monospace,SFMono-Regular,Menlo,monospace; user-select:all; overflow-wrap:anywhere; }
.application-receipt__lookup-grid { display:grid; gap:12px; margin:14px 0; }
.application-receipt__lookup h4 { margin:0 0 6px; font-size:1.05rem; }
.application-receipt__lookup ul,.application-receipt__lookup ol { margin:8px 0; padding-left:20px; }
/* Sanctuary doors. */
.application-gate__doors { display:grid; gap:12px; grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr)); }
.application-door { display:grid; gap:6px; padding:20px 18px; border:1px solid #94775970; border-radius:8px; background:linear-gradient(150deg,#17121a,#0b090d); color:var(--economy-ink); text-decoration:none; }
.application-door strong { font:500 1.35rem/1.2 'Cormorant Garamond',Georgia,serif; overflow-wrap:anywhere; }
.application-door span { color:var(--economy-muted); font:.84rem/1.5 Manrope,Arial,sans-serif; overflow-wrap:anywhere; }
.application-door small { color:#c9a173; font:.74rem/1.4 Manrope,Arial,sans-serif; letter-spacing:.06em; }
.application-door.is-pending { border-style:dashed; }
.application-door.is-pending small { color:#9d8b7c; }
.application-door .application-text-action { min-height:44px; margin:0; padding:0; width:auto; font-size:.8rem; }
.application-queue__section { margin:18px 0; }
.application-queue__section h3 { margin:0 0 8px; font:500 1.25rem/1.3 'Cormorant Garamond',Georgia,serif; }
.application-projection h3 { margin:20px 0 8px; font:500 1.2rem/1.3 'Cormorant Garamond',Georgia,serif; }
.application-projection__facts { margin:14px 0; }
@media (max-width:360px) {
 .application-chip { padding:10px 14px; font-size:.88rem; }
 .application-table { font-size:.72rem; }
 .application-table th,.application-table td { padding:8px 8px; }
 .application-command { padding:18px 14px; }
 .application-bars__row { grid-template-columns:minmax(52px,24%) 1fr minmax(52px,max-content); gap:6px; }
}
@media (forced-colors:active) {
 .application-chip,.application-table-wrap,.application-badge,.application-caps__cap,.application-command-card,.application-command,.application-receipt,.application-receipt__secret,.application-door,.application-studio__banner,.application-studio__provisional { background:Canvas; color:CanvasText; border:1px solid CanvasText; }
 .application-bars,.application-economy__world { display:none; }
 .application-chip.is-current,.application-command-card.is-selected { outline:2px solid Highlight; }
 .application-command__field input,.application-command__field select,.application-command__field textarea { background:Canvas; color:CanvasText; border-color:CanvasText; }
}

/* ── W3-6 connected cinema: the preview's living media in connected mode ───────────────────────
 * Ambient loops reveal over their authored stills only once playing (ambient-video.js adds
 * `is-playing`); the still stays complete under reduced motion, failure or a slow network. */
.application-entry__world video,.application-economy__world video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity .3s ease-out; }
.application-entry__world.is-playing video { opacity:.5; }
.application-economy__world video { object-position:65% 0; }
.application-economy__world.is-playing video { opacity:.7; }
@media (prefers-reduced-motion:reduce) { .application-entry__world video,.application-economy__world video { transition:none; } }
/* Failed decorative artwork leaves its reserved space empty instead of the UA broken-image glyph
 * (connected-motion.js watchDecorativeImages); images with real alt text keep showing it. */
img[data-media-failed] { visibility:hidden; }
/* Aeri's name is her signature artwork; if it cannot load, her live name is shown instead. */
.aeri-signature.is-signature-fallback img { display:none; }
.aeri-signature.is-signature-fallback .sr-only { position:static; width:auto; height:auto; overflow:visible; clip:auto; white-space:normal; margin:0; font-size:clamp(2.3rem,9vw,3.4rem); letter-spacing:.06em; }
/* Connected Sanctuary: the preview's Essence rows as doorways into the Blood and Heat worlds, and
 * the World motion setting. Same Rootbound panel/card materials; balances stay in the account panel. */
.application-essence-worlds-host { display:grid; gap:20px; margin:24px 0 8px; }
.application-essence-worlds-host .sanctuary-essence { margin:0; }
.application-essence-worlds-host .sanctuary-settings { margin:0; }
.application-resource .resource-world-header { grid-template-columns:1fr auto 1fr; }
.application-resource .resource-world-brand { justify-self:center; width:clamp(78px,24vw,118px); height:auto; }
.application-resource .resource-world-value strong { font-variant-numeric:tabular-nums; }
.application-economy .application-essence-worlds-host .sanctuary-essence h2 { margin:0 0 7px; color:#e5d2bd; font-size:1.25rem; font-weight:400; letter-spacing:.34em; }
.application-economy .application-essence-worlds-host .sanctuary-settings > h2 { margin:3px 0 4px; color:#bda78b; font-size:.86rem; font-weight:400; letter-spacing:.34em; text-align:center; }
.application-cinema-memories .kd-header-space { width:44px; height:44px; }
.application-cinema-memories__content { position:relative; z-index:2; }
.application-cinema-memories__content .application-moments,.application-cinema-memories__content [data-media-host] { margin-top:18px; }
/* Rootbound roots around the connected Essence panel (same passes and anchor as the preview). */
.application-root-anchor { margin:0; }
.application-root-anchor > .application-economy__essence { position:relative; z-index:1; }
.application-root-anchor .sanctuary-root { right:-4%; }
.application-economy--account > header { z-index:2; }
/* Connected wardrobe parity (fe-w3-polish): owned outfits as the preview's authored cards (chamber grid in the profile,
 * chat wardrobe cards in the chat sheet); a card the service names but the release has no art for stays an empty plate. */
.application-outfit-grid { margin:12px 0; padding-top:4px; }
.application-outfit-grid .ch-card-title,.application-outfit-cards .chat-appearance__caption strong { overflow-wrap:anywhere; }
.application-outfit-grid .outfit-card:disabled,.application-outfit-cards .chat-appearance__card:disabled { cursor:default; }
.application-outfit-detail { margin:4px 0 12px; }
.application-outfit-blank { display:block; width:100%; aspect-ratio:4/5; background:radial-gradient(ellipse at 50% 30%,color-mix(in srgb,var(--chat-accent) 12%,transparent),transparent 70%),var(--chat-paper); }
