/* The visual-master composition. Loaded after legacy functional styles. */
body.ds-memory-space {background:var(--ds-bg-canvas);font-weight:300;letter-spacing:.02em}
body.ds-memory-space::before {opacity:.28;background:radial-gradient(ellipse at 72% 18%,var(--ds-bg-ambient-violet),transparent 42%),radial-gradient(ellipse at 32% 73%,var(--ds-surface-elevated),transparent 40%);pointer-events:none}
.app-header {max-width:480px;margin:auto;padding:26px 28px 12px;background:none;border:0;position:relative;z-index:3}
.brand-word {font:28px var(--ds-font-display);letter-spacing:.08em}.beta-badge {font-size:9px;letter-spacing:.13em;padding:2px 7px;background:none;color:var(--ds-text-secondary);border:1px solid var(--ds-border-subtle)}
.header-actions {gap:18px}.feedback-link {font-size:11px;color:var(--ds-text-muted)}
.app-shell {width:100%;max-width:480px;margin:auto;padding:10px 28px 130px;min-height:calc(100svh - 86px)}
.app-view {padding:0}.view-heading {margin:15px 0 36px}.view-heading h1 {font:27px var(--ds-font-display);letter-spacing:.07em}.view-heading p {font-size:12px;color:var(--ds-text-muted)}
.eyebrow {display:none}h1,h2,h3 {font-weight:400}
.capture-home-copy {padding:clamp(30px,7svh,76px) 0 0;margin:0;text-align:center}
.capture-home-copy h1 {font:clamp(26px,7vw,34px) var(--ds-font-display);letter-spacing:.08em;white-space:nowrap;margin:0 0 16px}
.capture-home-copy p {font:14px var(--ds-font-display);letter-spacing:.16em;color:var(--ds-text-secondary)}
.capture-stage {margin:0;padding:0;background:none;border:0;box-shadow:none;overflow:visible}
#record-button.voice-orb {position:relative;display:block;width:min(100%,400px);height:auto;aspect-ratio:1;margin:12px auto 40px;padding:0;border:0;border-radius:50%;background:none;box-shadow:none;animation:none;transform:none;overflow:visible;color:var(--ds-text-primary)}
#record-button::before,#record-button::after,#record-button .orb-rings,#record-button .orb-wave,#record-button .orb-state-icon {display:none}
.memory-core-art {display:block;width:100%;height:100%;pointer-events:none;transition:filter 1s,transform 1s}
#record-button[data-state=recording] .memory-core-art {filter:brightness(1.2);transform:scale(1.025)}
#record-button[data-state=success] .memory-core-art {animation:memory-received 1.4s ease-out}
#record-button[data-state=error] .memory-core-art {filter:saturate(.3)}
#record-label,#record-hint {position:absolute;width:100%;left:0;top:99%;transform:none;margin:0;font:13px var(--ds-font-ui);color:var(--ds-text-secondary);text-align:center;pointer-events:none}
#record-hint {top:calc(99% + 23px);font-size:11px;color:var(--ds-text-muted)}
#record-button[data-state=idle] #record-label,#record-button[data-state=idle] #record-hint {opacity:0}
.memory-capture-controls {display:flex;gap:14px;justify-content:center;margin:10px 0 18px}
.memory-capture-controls button {display:flex;align-items:center;justify-content:center;gap:10px;flex:1;height:54px;max-width:180px;border:1px solid var(--ds-border-strong);border-radius:var(--ds-radius-round);background:var(--ds-surface-glass);color:var(--ds-text-primary);font-size:14px;box-shadow:none}
.memory-capture-controls svg,#ai-voice-button svg {width:20px;height:20px}
.capture-text-form {display:none}.capture-text-form.is-open {display:block;margin-top:20px}
.capture-correction-disclosure {margin:26px 0 0;text-align:center;font-size:11px;color:var(--ds-text-muted)}.capture-correction-disclosure summary {cursor:pointer}.capture-correction-disclosure .quick-correction {text-align:left}
.capture-stage,.search-portal {backdrop-filter:none}
.capture-text-form textarea {min-height:100px}.quick-correction {margin:28px 0 0;opacity:.6}.quick-correction:focus-within {opacity:1}
.quick-correction>label {font-size:11px}.quick-correction input {font-size:12px}.quick-correction button {font-size:12px}
#status {text-align:center;font-size:13px;min-height:0;margin:12px 0}#status:empty {display:none}
.bottom-nav {position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:480px;min-height:88px;padding:12px 14px max(16px,env(safe-area-inset-bottom));border:1px solid var(--ds-border-strong);border-bottom:0;border-radius:30px 30px 0 0;background:var(--ds-surface);backdrop-filter:blur(26px);box-shadow:0 -16px 50px var(--ds-bg-canvas);display:flex;justify-content:space-between}
.bottom-nav button {flex:1;font-size:10px;color:var(--ds-text-secondary);gap:9px;background:none;padding:4px 0;border:0;box-shadow:none;letter-spacing:0}
.bottom-nav button>span {display:flex;align-items:center;justify-content:center;width:28px;height:28px;font-size:22px;margin:auto}
.bottom-nav svg {width:23px;height:23px}.bottom-nav button.active {color:var(--ds-text-primary)}
.bottom-nav button.active:not(.capture-nav)>span {color:var(--ds-accent-memory-soft);filter:drop-shadow(0 0 6px var(--ds-accent-memory))}
.bottom-nav .capture-nav {transform:translateY(-26px);margin-bottom:-26px;gap:9px;background:none;border:0;box-shadow:none}
.bottom-nav .capture-nav>span {width:52px;height:52px;border:1.5px solid var(--ds-accent-memory-soft);border-radius:50%;background:var(--ds-bg-depth);box-shadow:inset 0 0 9px var(--ds-accent-memory),0 0 14px #e6b98c55;color:var(--ds-text-primary)}
.timeline-header {position:relative;top:auto;display:grid;grid-template-columns:100px 1fr;gap:12px;background:none;padding:12px 0 30px;border:0;backdrop-filter:none;min-height:180px}
.timeline-date {display:flex;flex-direction:column;align-items:flex-start;gap:0}.timeline-date #timeline-year {font:14px var(--ds-font-display);letter-spacing:.1em}
.timeline-date #timeline-month {font:25px var(--ds-font-display)}.timeline-date #timeline-day {font:58px/.98 var(--ds-font-display);margin:5px 0}.timeline-date small {font-size:10px;white-space:nowrap;margin-top:8px}
.timeline-recall {text-align:right;padding-top:0}.timeline-recall p {font:20px/1.7 var(--ds-font-display);color:var(--ds-text-primary);margin:20px 0 0;text-shadow:0 0 25px var(--ds-accent-ai)}
.ai-memory-label {font-size:10px;padding:5px 9px;color:var(--ds-text-primary);border:1px solid var(--ds-accent-ai);border-radius:30px;box-shadow:var(--ds-glow-ai)}
.timeline-header #refresh {position:absolute;right:0;bottom:0;font-size:18px;opacity:.5}.timeline-filter-sheet {margin:8px 0 16px;border:0;background:none;font-size:11px;color:var(--ds-text-muted)}
.timeline-header #refresh {background:none;border:0;color:var(--ds-text-secondary);box-shadow:none;width:28px;height:28px;padding:0}
.memory-trail {position:relative;padding:15px 0 0;margin:0;border:0;overflow:visible}.memory-trail::before,.memory-trail::after {display:none}
.memory-thread {position:absolute;inset:0;width:100%;pointer-events:none;overflow:visible;z-index:0}
.memory-thread path {fill:none;stroke:var(--ds-accent-memory);stroke-width:.75;opacity:.48;filter:drop-shadow(0 0 4px var(--ds-accent-memory))}
.memory-trail .memory-moment {position:relative;display:block;width:auto;margin:0 0 64px 56px;padding:0;min-height:160px;border:0;background:none;transform:none;opacity:1;filter:none;transition:opacity .7s,filter .7s}
.memory-trail .memory-moment:nth-of-type(3n+2) {margin-left:16px;margin-right:58px;margin-bottom:85px}
.memory-trail .memory-moment:nth-of-type(3n) {margin-left:78px;margin-bottom:58px}
.memory-trail .timeline-dot {position:absolute;top:34px;left:-30px;width:11px;height:11px;border-radius:50%;border:1px solid var(--ds-accent-memory-soft);background:var(--ds-accent-memory);box-shadow:0 0 14px var(--ds-accent-memory);z-index:1}
.memory-trail .memory-moment:nth-of-type(3n+2) .timeline-dot {left:auto;right:-28px}
.memory-trail .important .timeline-dot {width:24px;height:24px;left:-38px;background:var(--ds-bg-depth);box-shadow:inset 0 0 9px var(--ds-accent-memory),0 0 18px #e6b98c66}
.memory-trail .moment-time {position:static;display:flex;gap:12px;font:10px var(--ds-font-ui);color:var(--ds-text-secondary);margin-bottom:12px}
.memory-trail .moment-body {padding:0;border:0;background:none;box-shadow:none;transform:none}
.memory-trail .moment-body h3 {font:21px/1.65 var(--ds-font-display);margin:12px 0;color:var(--ds-text-primary);overflow-wrap:anywhere}
.memory-trail .important h3 {font-size:24px}.memory-trail .moment-original {display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font:12px/1.7 var(--ds-font-ui);color:var(--ds-text-muted)}
.memory-trail .timeline-context {font-size:10px;gap:9px;color:var(--ds-text-secondary)}.memory-trail .timeline-context strong {font-weight:400}.timeline-tags span {border:0;background:none;font-size:10px;padding:0 8px 0 0;color:var(--ds-text-muted)}
.moment-wave {border:1px solid var(--ds-border-strong);border-radius:16px;max-width:200px;height:62px;background:var(--ds-surface-glass);transform:rotate(-4deg);margin:18px 0}.moment-wave i {background:var(--ds-accent-memory);animation:none}
.search-portal {padding:0;border:0;background:none;box-shadow:none}.search-orbit {padding:16px 14px;border:1px solid var(--ds-accent-memory);border-radius:60px;box-shadow:0 0 24px #e6b98c18,inset 0 0 12px #e6b98c12;align-items:center;min-height:76px}
.search-orbit::before {inset:-8px 9px;border-color:var(--ds-border-strong);transform:rotate(-8deg);pointer-events:none}.search-orbit textarea {font:17px/1.5 var(--ds-font-display);min-height:45px;background:none;border:0;padding:0}.search-orbit button {background:none;box-shadow:none;border:0;padding:5px;color:var(--ds-text-secondary)}
.search-spark {color:var(--ds-accent-memory)}.intro-bubble {background:none;border:0;text-align:center;font:14px/1.9 var(--ds-font-display);color:var(--ds-text-secondary);margin:32px 0}
.quick-questions {display:grid;gap:12px;margin:42px 10px}.quick-questions button {text-align:left;border:0;border-bottom:1px solid var(--ds-border-subtle);border-radius:0;background:none;font-size:12px;color:var(--ds-text-secondary);padding:14px 0}
.assistant-bubble,.evidence-card,.discovery-card,.weekly-item {background:var(--ds-surface-glass);border:1px solid var(--ds-border-subtle);border-radius:18px;box-shadow:none}
.insight-constellation {height:275px;margin:10px 0 30px;background:radial-gradient(ellipse,var(--ds-bg-ambient-violet),transparent 70%)}
.insight-constellation span {width:86px;height:86px;display:grid;place-items:center;font:25px var(--ds-font-display);border-color:var(--ds-accent-memory);box-shadow:var(--ds-glow-important)}
.insight-constellation b {font:12px var(--ds-font-display);color:var(--ds-text-secondary)}
.insight-section {padding:22px 0;margin:0;border:0;border-top:1px solid var(--ds-border-subtle);background:none}.section-title h2 {font:17px var(--ds-font-display)}.section-title button {font-size:11px}.weekly-overview {font:20px/1.8 var(--ds-font-display)}
.profile-hero {padding:25px 0 15px}.profile-avatar {width:96px;height:96px;box-shadow:var(--ds-glow-important);background:radial-gradient(circle,var(--ds-surface-elevated),var(--ds-bg-canvas));border:1px solid var(--ds-accent-memory)}
.profile-avatar span {font:36px var(--ds-font-display);color:var(--ds-accent-memory-soft)}.profile-hero h1 {font:25px var(--ds-font-display);margin:22px 0 10px}.profile-hero p {font:12px var(--ds-font-display);color:var(--ds-text-secondary)}
.identity-orbit {display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:24px 0 32px;position:relative}
.identity-orbit::before {content:'';position:absolute;inset:10% -8px;border:1px solid var(--ds-border-strong);border-radius:50%;transform:rotate(-16deg);pointer-events:none}
.identity-orbit .identity-card {position:relative;background:var(--ds-bg-canvas);border:1px solid var(--ds-border-subtle);border-radius:20px;padding:16px 12px;box-shadow:none;text-align:center}
.identity-card h3 {font:16px var(--ds-font-display);color:var(--ds-accent-memory-soft);margin:0 0 8px}.identity-card p {font-size:11px;line-height:1.6}.identity-card summary {font-size:10px;color:var(--ds-text-muted);cursor:pointer}.identity-actions button {font-size:11px}
.profile-context,.settings-card {border:0;background:none;box-shadow:none;padding:0;margin:14px 0}.setting-row {margin:10px 0;padding:20px 16px;border:1px solid var(--ds-border-subtle);border-radius:16px;background:var(--ds-surface-glass);font-size:13px}.setting-row strong {font-size:11px;font-weight:400;color:var(--ds-text-muted)}
.memory-entry {min-height:calc(100svh - 125px);padding:0;position:relative}.entry-brand {display:none}.entry-copy {position:relative;margin:70px 0 200px;text-align:center;z-index:1}.entry-copy h1 {font:36px var(--ds-font-display);letter-spacing:.13em}.entry-copy p {font:16px var(--ds-font-display);letter-spacing:.12em}
.entry-space {position:absolute;top:155px;left:0;right:0;height:240px;opacity:.65;pointer-events:none}.auth-panel {position:relative;padding:0 12px;border:0;background:none;box-shadow:none;backdrop-filter:none}.auth-tabs {margin-bottom:20px}.auth-form input {height:50px;background:var(--ds-surface-glass);border:1px solid var(--ds-border-subtle);border-radius:12px}.auth-form>button {margin-top:20px;border-radius:40px;border:1px solid var(--ds-accent-memory);box-shadow:var(--ds-glow-important);background:var(--ds-surface);font:17px var(--ds-font-display);height:52px}
dialog {border:1px solid var(--ds-border-strong);background:var(--ds-bg-depth);border-radius:24px;color:var(--ds-text-primary)}
:focus-visible {outline:2px solid var(--ds-accent-memory);outline-offset:4px}
.identity-orbit {isolation:isolate;overflow:clip;padding:12px 0;grid-auto-rows:auto}
.identity-orbit .identity-card {min-height:80px;transform:none!important;align-self:start;margin:0}
.identity-orbit .identity-card:nth-child(even) {margin-top:20px}.identity-orbit .identity-card::after {display:none}
.identity-orbit::before {inset:16px 0;z-index:-1}.identity-orbit .identity-card:has(details[open]) {grid-column:1/-1}
.quiet,#add-identity {color:var(--ds-text-secondary)}
.entry-space::before,.entry-space::after {display:none}.entry-space {background:radial-gradient(ellipse at 50% 75%,#e6b98c24,transparent 55%)}
.entry-thread {width:100%;height:100%;overflow:visible}.entry-thread path,.entry-thread ellipse {fill:none;stroke:var(--ds-accent-memory);stroke-width:.8;filter:drop-shadow(0 0 5px var(--ds-accent-memory))}.entry-thread ellipse {opacity:.22}.entry-thread circle {fill:var(--ds-accent-memory-soft);filter:drop-shadow(0 0 10px var(--ds-accent-memory))}
@keyframes memory-received {0%{filter:brightness(1);transform:scale(1)}35%{filter:brightness(1.5);transform:scale(1.04)}100%{filter:brightness(1);transform:scale(1)}}
@media(max-width:360px){.app-shell{padding-inline:18px}.capture-home-copy h1{font-size:25px}.timeline-recall p{font-size:17px}.memory-trail .moment-body h3{font-size:19px}}
@media(min-width:700px){body.ds-memory-space{background-color:var(--ds-bg-canvas)}.app-shell{border-inline:1px solid var(--ds-border-subtle)}.app-header{border-inline:1px solid var(--ds-border-subtle)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
