:root {
  color-scheme: dark;
  --bg: #0d0c14;
  --bg-soft: #141220;
  --card: rgba(31, 28, 46, 0.7);
  --card-solid: #1b1828;
  --line: rgba(255, 255, 255, 0.1);
  --line-strong: rgba(255, 255, 255, 0.2);
  --text: #f7f5fb;
  --muted: #aaa5b8;
  --lime: #d8ff83;
  --lime-strong: #bdff45;
  --violet: #9c86ff;
  --coral: #ff9074;
  --focus: #ecffbf;
  --shadow: 0 24px 80px rgba(0, 0, 0, 0.34);
  --radius-xl: 32px;
  --radius-lg: 24px;
  --radius-md: 16px;
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  min-width: 320px;
  margin: 0;
  overflow-x: hidden;
  background:
    radial-gradient(circle at 12% 2%, rgba(103, 81, 164, 0.18), transparent 30rem),
    linear-gradient(180deg, #100e19 0%, var(--bg) 50%, #0b0b11 100%);
  color: var(--text);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

body[data-mood="morning"] { --violet: #b59bff; --lime: #eeffb9; }
body[data-mood="day"] { --violet: #8bc7ff; --lime: #d8ff83; }
body[data-mood="dusk"] { --violet: #b08aff; --coral: #ff9a78; }
body[data-mood="night"] { --violet: #8e7cff; --lime: #cfff76; }

button, input { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { color: inherit; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
svg { stroke: currentColor; stroke-width: 1.8; fill: none; }

:focus-visible { outline: 3px solid var(--focus); outline-offset: 4px; }
.skip-link { position: fixed; left: 16px; top: -80px; z-index: 1000; padding: 10px 16px; border-radius: 10px; background: var(--lime); color: #131118; transition: top 200ms; }
.skip-link:focus { top: 16px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

.ambient { position: fixed; z-index: -2; width: 38rem; height: 38rem; border-radius: 50%; filter: blur(110px); opacity: 0.13; pointer-events: none; transition: background 800ms ease; }
.ambient-one { top: -18rem; right: -10rem; background: var(--violet); }
.ambient-two { left: -20rem; top: 42%; background: var(--coral); opacity: 0.08; }
.grain { position: fixed; inset: 0; z-index: -1; pointer-events: none; opacity: 0.022; 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='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.75'/%3E%3C/svg%3E"); }
.particle-field { position: fixed; inset: 0; z-index: -1; overflow: hidden; pointer-events: none; }
.particle { position: absolute; width: 2px; height: 2px; border-radius: 50%; background: rgba(255,255,255,.5); box-shadow: 0 0 12px rgba(216,255,131,.65); animation: drift var(--duration) ease-in-out infinite alternate; }
@keyframes drift { to { transform: translate3d(var(--drift-x), var(--drift-y), 0); opacity: .18; } }

.section-shell, .nav-shell { width: min(1240px, calc(100% - 48px)); margin-inline: auto; }
.site-header { position: sticky; top: 0; z-index: 50; padding: 12px 0; background: linear-gradient(180deg, rgba(13,12,20,.9), rgba(13,12,20,.55)); backdrop-filter: blur(18px); border-bottom: 1px solid rgba(255,255,255,.04); }
.nav-shell { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; min-height: 56px; }
.brand { display: inline-flex; align-items: center; gap: 12px; width: fit-content; font-weight: 760; letter-spacing: .04em; }
.brand > span:last-child { display: grid; line-height: 1.05; }
.brand small { margin-top: 5px; color: var(--muted); font-size: 8px; letter-spacing: .2em; }
.brand-mark { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 35px; height: 35px; border-radius: 11px; background: var(--lime); box-shadow: 0 0 28px rgba(216,255,131,.18); transform: rotate(-8deg); }
.brand-mark i { position: absolute; width: 4px; height: 4px; border-radius: 50%; background: #17141f; }
.brand-mark i:nth-child(1) { transform: translate(-6px, 4px); }
.brand-mark i:nth-child(2) { transform: translate(0, -6px); }
.brand-mark i:nth-child(3) { transform: translate(7px, 4px); }
.nav-links { display: flex; gap: 8px; padding: 6px; border: 1px solid var(--line); border-radius: 999px; background: rgba(255,255,255,.025); }
.nav-links a { padding: 7px 14px; border-radius: 999px; color: var(--muted); font-size: 13px; transition: color 220ms, background 220ms, transform 220ms; }
.nav-links a:hover { color: var(--text); background: rgba(255,255,255,.07); transform: scale(1.02); }
.icon-button { justify-self: end; display: grid; place-items: center; width: 40px; height: 40px; border: 1px solid var(--line); border-radius: 50%; background: rgba(255,255,255,.04); cursor: pointer; transition: 220ms var(--ease); }
.icon-button:hover { transform: scale(1.02); border-color: var(--line-strong); background: rgba(255,255,255,.09); box-shadow: 0 10px 28px rgba(0,0,0,.2); }
.icon-button:active { transform: scale(.98); }
.icon-button svg { width: 18px; }
.icon-button.small { width: 32px; height: 32px; }

.glass-card { background: linear-gradient(145deg, rgba(255,255,255,.065), rgba(255,255,255,.025)); border: 1px solid var(--line); backdrop-filter: blur(22px); box-shadow: inset 0 1px 0 rgba(255,255,255,.05), var(--shadow); }
.hero { display: grid; grid-template-columns: 1.2fr 1fr .55fr; grid-template-rows: 1fr auto; gap: 16px; min-height: min(760px, calc(100vh - 80px)); padding-block: 48px 80px; }
.hero-copy { grid-row: 1 / 3; display: flex; flex-direction: column; justify-content: space-between; min-height: 620px; padding: 48px; border-radius: var(--radius-xl); overflow: hidden; position: relative; }
.hero-copy::after { content: ""; position: absolute; right: -120px; bottom: -150px; width: 340px; height: 340px; border: 1px solid rgba(216,255,131,.16); border-radius: 50%; box-shadow: 0 0 0 40px rgba(216,255,131,.025), 0 0 0 80px rgba(216,255,131,.018); }
.eyebrow { display: inline-flex; align-items: center; gap: 9px; color: #d7d1e3; font-size: 11px; font-weight: 700; letter-spacing: .17em; text-transform: uppercase; }
.eyebrow i { width: 7px; height: 7px; border-radius: 50%; background: var(--lime); box-shadow: 0 0 14px var(--lime); }
.hero h1 { max-width: 670px; margin: 30px 0 24px; font-size: clamp(48px, 5.4vw, 84px); font-weight: 700; line-height: .98; letter-spacing: -.065em; }
.hero h1 em { color: var(--lime); font-family: Georgia, "Songti SC", serif; font-weight: 500; }
.hero-copy > div:first-child > p { max-width: 560px; margin: 0; color: #b7b2c1; font-size: 17px; line-height: 1.85; }
.hero-actions { position: relative; z-index: 1; display: flex; flex-wrap: wrap; gap: 12px; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 28px; min-height: 48px; padding: 0 20px; border: 1px solid transparent; border-radius: 14px; font-size: 14px; font-weight: 700; cursor: pointer; transition: 230ms var(--ease); }
.button:hover { transform: scale(1.02); box-shadow: 0 14px 32px rgba(0,0,0,.26); }
.button:active { transform: scale(.98); }
.button-primary { background: var(--lime); color: #16131b; }
.button-primary:hover { background: var(--lime-strong); box-shadow: 0 14px 38px rgba(216,255,131,.16); }
.button-quiet { border-color: var(--line); background: rgba(255,255,255,.04); color: var(--text); }
.button-secondary { width: 100%; background: #f0eef4; color: #17131d; }
.button[disabled] { opacity: .42; cursor: not-allowed; transform: none; box-shadow: none; }
.mood-note { position: relative; z-index: 1; display: flex; align-items: center; gap: 10px; margin-top: 24px; color: var(--muted); font-size: 12px; }
.mood-orb { width: 9px; height: 9px; border-radius: 50%; background: var(--violet); box-shadow: 0 0 16px var(--violet); }

.spotlight-card { position: relative; grid-column: 2; grid-row: 1 / 3; min-height: 620px; overflow: hidden; border-radius: var(--radius-xl); border: 1px solid rgba(255,255,255,.12); box-shadow: var(--shadow); isolation: isolate; }
.spotlight-card > img { width: 100%; height: 100%; object-fit: cover; transition: transform 900ms var(--ease); }
.spotlight-card:hover > img { transform: scale(1.035); }
.spotlight-scrim { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(7,6,12,.12), transparent 45%, rgba(7,6,12,.92)); }
.spotlight-top { position: absolute; top: 24px; inset-inline: 24px; display: flex; justify-content: space-between; align-items: center; font-size: 10px; letter-spacing: .16em; }
.round-action { display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid rgba(255,255,255,.4); border-radius: 50%; background: rgba(12,10,20,.24); color: white; backdrop-filter: blur(10px); cursor: pointer; transition: 220ms; }
.round-action:hover { transform: scale(1.02) rotate(8deg); background: var(--lime); color: #14111b; border-color: transparent; }
.round-action:active { transform: scale(.98); }
.spotlight-copy { position: absolute; bottom: 32px; inset-inline: 32px; }
.spotlight-copy span { color: rgba(255,255,255,.68); font-size: 10px; letter-spacing: .15em; }
.spotlight-copy h2 { margin: 8px 0; font-size: 40px; letter-spacing: -.04em; }
.spotlight-copy p { max-width: 360px; margin: 0; color: rgba(255,255,255,.75); }
.today-card, .stats-card { padding: 24px; border-radius: var(--radius-lg); }
.today-card { display: flex; flex-direction: column; justify-content: space-between; }
.mini-label { color: var(--muted); font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.today-card strong { margin-top: 18px; font-family: Georgia, serif; font-size: 72px; font-weight: 400; line-height: .85; color: var(--lime); }
.today-card > span { font-size: 10px; letter-spacing: .18em; color: var(--muted); }
.today-card p { margin: 22px 0; color: #c3becb; font-family: Georgia, "Songti SC", serif; font-size: 13px; }
.sound-wave { display: flex; align-items: end; gap: 4px; height: 28px; }
.sound-wave i { width: 3px; height: 8px; border-radius: 4px; background: var(--violet); animation: wave 1.5s ease-in-out infinite alternate; }
.sound-wave i:nth-child(2n) { height: 22px; animation-delay: -.5s; }.sound-wave i:nth-child(3n) { height: 14px; animation-delay: -.9s; }
@keyframes wave { to { height: 26px; opacity: .45; } }
.stats-card { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.stats-card > div:not(.avatar-stack) { display: grid; }
.stats-card strong { font-size: 26px; line-height: 1; }
.stats-card span { color: var(--muted); font-size: 10px; }
.stats-card p { grid-column: 1/-1; margin: 0; color: #b9b4c3; font-size: 12px; }
.stats-card p b { color: var(--lime); font-weight: 600; }
.avatar-stack { grid-column: 1/-1; display: flex; }
.avatar-stack i { display: grid; place-items: center; width: 30px; height: 30px; margin-right: -7px; border: 2px solid #211d2f; border-radius: 50%; background: linear-gradient(145deg, var(--violet), #5d3d78); font-size: 9px; font-style: normal; }

.discover, .collection, .constellation { padding-block: 96px; }
.section-heading { display: flex; justify-content: space-between; gap: 64px; align-items: end; margin-bottom: 40px; }
.section-heading h2 { max-width: 760px; margin: 14px 0 0; font-size: clamp(34px, 4vw, 56px); line-height: 1.08; letter-spacing: -.045em; }
.section-heading > p { max-width: 390px; margin: 0; color: var(--muted); font-size: 14px; }
.section-heading.compact { margin: 0; padding: 40px 40px 0; }
.section-heading.compact h2 { max-width: 650px; font-size: clamp(32px, 3.4vw, 48px); }

.search-card { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 16px; padding: 10px 10px 10px 20px; border-radius: 20px; transition: border-color 220ms, box-shadow 220ms; }
.search-card:focus-within { border-color: rgba(216,255,131,.5); box-shadow: 0 0 0 4px rgba(216,255,131,.05), var(--shadow); }
.search-card > svg { width: 22px; color: var(--lime); }
.search-card input { width: 100%; height: 56px; border: 0; outline: 0; background: transparent; color: var(--text); font-size: 16px; }
.search-card input::placeholder { color: #777281; }
.search-submit { min-width: 150px; height: 52px; border: 0; border-radius: 14px; background: var(--lime); color: #18141e; font-weight: 750; cursor: pointer; transition: 220ms; }
.search-submit:hover { transform: scale(1.02); box-shadow: 0 10px 26px rgba(216,255,131,.16); }
.search-submit:active { transform: scale(.98); }
.prompt-row { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin: 16px 0 48px; }
.prompt-row span { margin-right: 4px; color: var(--muted); font-size: 12px; }
.prompt-row button, .quick-prompts button { padding: 7px 12px; border: 1px solid var(--line); border-radius: 999px; background: rgba(255,255,255,.025); color: #c5c0cd; font-size: 11px; cursor: pointer; transition: 200ms; }
.prompt-row button:hover, .quick-prompts button:hover { transform: scale(1.02); border-color: rgba(216,255,131,.3); color: var(--text); background: rgba(216,255,131,.07); }
.prompt-row button:active, .quick-prompts button:active { transform: scale(.98); }
.result-head { display: flex; justify-content: space-between; align-items: center; gap: 24px; min-height: 32px; margin-bottom: 20px; }
.result-head p { margin: 0; color: #ccc7d3; font-size: 13px; }
.result-head p::before { content: "AI 摘要"; margin-right: 10px; padding: 5px 8px; border-radius: 6px; background: rgba(156,134,255,.14); color: #c9bdff; font-size: 9px; font-weight: 700; letter-spacing: .09em; }
.text-button { border: 0; background: transparent; color: var(--lime); cursor: pointer; font-size: 12px; }
.memory-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 16px; }
.memory-card { position: relative; grid-column: span 4; min-height: 440px; overflow: hidden; border-radius: var(--radius-lg); background: var(--card-solid); border: 1px solid var(--line); cursor: pointer; box-shadow: 0 12px 40px rgba(0,0,0,.18); transition: transform 260ms var(--ease), border-color 260ms, box-shadow 260ms; }
.memory-card:first-child { grid-column: span 5; }.memory-card:nth-child(2) { grid-column: span 3; }.memory-card:nth-child(3) { grid-column: span 4; }
.memory-card:hover { transform: translateY(-5px) scale(1.012); border-color: var(--line-strong); box-shadow: 0 24px 60px rgba(0,0,0,.28); }
.memory-card:active { transform: scale(.98); }
.memory-card-media { position: relative; height: 270px; overflow: hidden; background: #2d2940; }
.memory-card img { width: 100%; height: 100%; object-fit: cover; transition: transform 700ms var(--ease); }
.memory-card:hover img { transform: scale(1.045); }
.memory-card-actions { position: absolute; top: 14px; right: 14px; display: flex; gap: 8px; }
.memory-action { display: grid; place-items: center; width: 36px; height: 36px; border: 1px solid rgba(255,255,255,.2); border-radius: 50%; background: rgba(12,11,19,.48); backdrop-filter: blur(12px); color: white; cursor: pointer; transition: 220ms; }
.memory-action:hover { transform: scale(1.05); background: rgba(255,255,255,.16); }
.memory-action:active { transform: scale(.96); }
.memory-action.is-active { background: var(--lime); color: #16131b; border-color: transparent; }
.memory-card-body { padding: 22px; }
.memory-card-body > span { color: var(--muted); font-size: 9px; letter-spacing: .13em; text-transform: uppercase; }
.memory-card-body h3 { margin: 6px 0 8px; font-size: 23px; letter-spacing: -.03em; }
.memory-card-body p { display: -webkit-box; overflow: hidden; margin: 0; color: #a9a4b1; font-size: 12px; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.memory-meta { display: flex; justify-content: space-between; margin-top: 16px; color: #7f7989; font-size: 10px; }
.empty-state { grid-column: 1/-1; display: grid; place-items: center; min-height: 380px; padding: 40px; text-align: center; border: 1px dashed var(--line-strong); border-radius: var(--radius-xl); background: rgba(255,255,255,.02); }
.empty-illustration { position: relative; width: 100px; height: 100px; margin-bottom: 22px; }
.empty-illustration i { position: absolute; inset: 16px; border: 1px solid rgba(216,255,131,.35); border-radius: 50%; box-shadow: 0 0 0 12px rgba(216,255,131,.035), 0 0 36px rgba(216,255,131,.1); }
.empty-illustration::before, .empty-illustration::after { content: ""; position: absolute; width: 6px; height: 6px; border-radius: 50%; background: var(--violet); box-shadow: 0 0 12px var(--violet); }
.empty-illustration::before { left: 4px; top: 20px; }.empty-illustration::after { right: 8px; bottom: 18px; }
.empty-state h3 { margin: 0 0 8px; }.empty-state p { max-width: 420px; margin: 0 0 20px; color: var(--muted); }
.skeleton-card { grid-column: span 4; height: 440px; border-radius: var(--radius-lg); background: linear-gradient(100deg, rgba(255,255,255,.03) 25%, rgba(255,255,255,.08) 40%, rgba(255,255,255,.03) 55%); background-size: 220% 100%; animation: shimmer 1.2s infinite linear; }
@keyframes shimmer { to { background-position-x: -220%; } }

.dashboard-grid { display: grid; grid-template-columns: 1.25fr .75fr .75fr; gap: 16px; }
.orbit-card { min-height: 310px; padding: 28px; border-radius: var(--radius-lg); }
.dashboard-feature { grid-row: span 2; }
.card-heading { display: flex; justify-content: space-between; gap: 16px; align-items: start; margin-bottom: 24px; }
.card-heading h3 { margin: 6px 0 0; font-size: 24px; letter-spacing: -.03em; }
.card-heading > span:last-child { color: var(--lime); font-family: Georgia, serif; font-size: 28px; }
.status-pill { display: inline-flex; align-items: center; gap: 7px; padding: 6px 10px; border-radius: 999px; background: rgba(216,255,131,.08); color: var(--lime) !important; font-family: inherit !important; font-size: 9px !important; }
.status-pill i { width: 6px; height: 6px; border-radius: 50%; background: var(--lime); }
.recommend-stack { display: grid; gap: 10px; margin-bottom: 18px; }
.recommend-item, .mini-item { display: flex; align-items: center; gap: 14px; padding: 10px; border: 1px solid transparent; border-radius: 14px; background: rgba(255,255,255,.035); cursor: pointer; transition: 220ms; }
.recommend-item:hover, .mini-item:hover { transform: translateX(4px) scale(1.005); border-color: var(--line); background: rgba(255,255,255,.065); }
.recommend-item img, .mini-item img { width: 64px; height: 64px; border-radius: 11px; object-fit: cover; }
.recommend-item div, .mini-item div { display: grid; flex: 1; }
.recommend-item strong, .mini-item strong { font-size: 13px; }.recommend-item span, .mini-item span { color: var(--muted); font-size: 10px; }
.recommend-item b { color: var(--lime); font-size: 9px; font-weight: 600; }
.mini-list { display: grid; gap: 8px; }
.mini-item img { width: 48px; height: 48px; }
.mini-item button { width: 28px; height: 28px; border: 0; background: transparent; color: var(--muted); cursor: pointer; }
.empty-mini { display: grid; place-items: center; min-height: 160px; padding: 20px; border: 1px dashed var(--line); border-radius: 16px; color: var(--muted); text-align: center; font-size: 12px; }
.achievement-card { position: relative; min-height: 310px; overflow: hidden; padding: 28px; border-radius: var(--radius-lg); background: linear-gradient(145deg, #d8ff83, #9edf5e); color: #19151d; box-shadow: 0 24px 70px rgba(128,181,64,.12); }
.achievement-glow { position: absolute; width: 250px; height: 250px; right: -80px; top: -110px; border: 1px solid rgba(20,20,20,.13); border-radius: 50%; box-shadow: 0 0 0 32px rgba(20,20,20,.035), 0 0 0 64px rgba(20,20,20,.02); }
.achievement-card .mini-label { color: rgba(20,17,25,.58); }
.badge-large { display: grid; place-items: center; width: 58px; height: 58px; margin: 26px 0 18px; border: 1px solid rgba(20,17,25,.16); border-radius: 20px; background: rgba(255,255,255,.28); font-size: 27px; transform: rotate(-8deg); }
.achievement-card h3 { margin: 0; font-size: 27px; }.achievement-card p { max-width: 340px; margin: 8px 0 24px; color: rgba(20,17,25,.67); font-size: 12px; }
.progress-track { height: 5px; overflow: hidden; border-radius: 99px; background: rgba(20,17,25,.15); }.progress-track i { display: block; width: 0; height: 100%; border-radius: inherit; background: #1b1720; transition: width 500ms var(--ease); }
.achievement-card > span:last-child { display: block; margin-top: 8px; font-size: 10px; }

.graph-panel { overflow: hidden; border-radius: var(--radius-xl); }
.graph-stage { position: relative; min-height: 560px; margin-top: 16px; overflow: hidden; background: radial-gradient(circle at 50% 48%, rgba(156,134,255,.1), transparent 35%), linear-gradient(rgba(255,255,255,.018) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.018) 1px, transparent 1px); background-size: auto, 40px 40px, 40px 40px; }
#memoryGraph { width: 100%; height: 560px; touch-action: none; }
.graph-edge { stroke: rgba(200,190,230,.18); stroke-width: 1.3; stroke-dasharray: 4 8; }
.graph-node { cursor: grab; outline: none; }.graph-node:active { cursor: grabbing; }
.graph-node circle { stroke: rgba(255,255,255,.38); stroke-width: 1.2; fill: rgba(156,134,255,.32); transition: 220ms; }
.graph-node .node-core { fill: var(--lime); stroke: none; filter: drop-shadow(0 0 8px rgba(216,255,131,.7)); }
.graph-node text { fill: #e9e5ef; stroke: none; font-size: 13px; pointer-events: none; }
.graph-node:hover circle, .graph-node:focus circle { fill: rgba(216,255,131,.25); stroke: var(--lime); }
.graph-legend { position: absolute; left: 28px; bottom: 24px; display: flex; gap: 18px; color: var(--muted); font-size: 10px; }
.graph-legend span { display: flex; align-items: center; gap: 7px; }.legend-node { width: 8px; height: 8px; border-radius: 50%; background: var(--lime); box-shadow: 0 0 8px var(--lime); }.legend-line { width: 20px; border-top: 1px dashed #6e667b; }

.site-footer { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding-block: 48px; border-top: 1px solid var(--line); color: var(--muted); font-size: 12px; }
.site-footer p { margin: 0; }.site-footer > a { color: var(--lime); }

.assistant-launcher { position: fixed; z-index: 60; right: 24px; bottom: 24px; display: flex; align-items: center; gap: 10px; min-height: 52px; padding: 0 18px 0 10px; border: 1px solid rgba(216,255,131,.32); border-radius: 999px; background: rgba(24,21,33,.9); box-shadow: 0 16px 46px rgba(0,0,0,.36); backdrop-filter: blur(16px); cursor: pointer; transition: 240ms var(--ease); }
.assistant-launcher:hover { transform: translateY(-3px) scale(1.02); box-shadow: 0 20px 50px rgba(0,0,0,.46), 0 0 26px rgba(216,255,131,.09); }.assistant-launcher:active { transform: scale(.98); }
.assistant-launcher > i { width: 7px; height: 7px; border-radius: 50%; background: var(--lime); box-shadow: 0 0 10px var(--lime); }
.assistant-spark { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--lime); color: #18141d; }
.assistant-panel { position: fixed; z-index: 70; right: 24px; bottom: 88px; display: flex; flex-direction: column; width: min(380px, calc(100vw - 32px)); max-height: min(620px, calc(100vh - 120px)); padding: 18px; border-radius: 24px; transform-origin: right bottom; animation: panel-in 240ms var(--ease); }
.assistant-panel[hidden] { display: none; }
@keyframes panel-in { from { opacity: 0; transform: translateY(12px) scale(.96); } }
.assistant-panel header { display: flex; justify-content: space-between; align-items: center; padding-bottom: 14px; border-bottom: 1px solid var(--line); }
.assistant-panel header > div { display: flex; align-items: center; gap: 10px; }.assistant-panel header strong, .assistant-panel header small { display: block; }.assistant-panel header small { color: var(--muted); font-size: 9px; }.assistant-panel header small i { display: inline-block; width: 5px; height: 5px; margin-right: 3px; border-radius: 50%; background: var(--lime); }
.assistant-messages { display: flex; flex-direction: column; gap: 10px; min-height: 150px; max-height: 270px; padding: 18px 2px; overflow-y: auto; }
.assistant-message { align-self: flex-start; max-width: 90%; padding: 12px 14px; border-radius: 6px 16px 16px; background: rgba(255,255,255,.07); color: #d7d2dd; font-size: 12px; }
.assistant-message.user { align-self: flex-end; border-radius: 16px 6px 16px 16px; background: var(--lime); color: #17131c; }
.assistant-message.typing { display: flex; gap: 4px; width: 54px; }.assistant-message.typing i { width: 5px; height: 5px; border-radius: 50%; background: var(--muted); animation: typing 800ms infinite alternate; }.assistant-message.typing i:nth-child(2){animation-delay:150ms}.assistant-message.typing i:nth-child(3){animation-delay:300ms}
@keyframes typing { to { transform: translateY(-4px); opacity: .35; } }
.quick-prompts { display: flex; gap: 6px; overflow-x: auto; padding-bottom: 10px; }.quick-prompts button { flex: none; }
.assistant-panel form { display: grid; grid-template-columns: 1fr auto; gap: 8px; padding: 6px; border: 1px solid var(--line); border-radius: 14px; background: rgba(0,0,0,.12); }
.assistant-panel input { min-width: 0; padding: 8px; border: 0; outline: 0; background: transparent; color: var(--text); font-size: 12px; }.assistant-panel form button { display: grid; place-items: center; width: 34px; height: 34px; border: 0; border-radius: 10px; background: var(--lime); color: #18141d; cursor: pointer; }
.assistant-footnote { margin-top: 9px; color: #777181; text-align: center; font-size: 8px; }

.memory-dialog { width: min(880px, calc(100% - 32px)); max-height: calc(100vh - 32px); padding: 0; overflow: hidden auto; border: 1px solid var(--line-strong); border-radius: 28px; background: #17141f; color: var(--text); box-shadow: 0 32px 100px rgba(0,0,0,.6); }
.memory-dialog::backdrop { background: rgba(4,3,8,.78); backdrop-filter: blur(12px); }
.dialog-close { position: absolute; z-index: 2; right: 16px; top: 16px; display: grid; place-items: center; width: 40px; height: 40px; border: 1px solid rgba(255,255,255,.25); border-radius: 50%; background: rgba(0,0,0,.35); color: white; cursor: pointer; }
.dialog-media { height: min(52vh, 500px); }.dialog-media img { width: 100%; height: 100%; object-fit: cover; }
.dialog-body { padding: 32px; }.dialog-body .eyebrow { color: var(--lime); }.dialog-body h2 { margin: 12px 0; font-size: 44px; letter-spacing: -.04em; }.dialog-body > p { max-width: 650px; color: #bbb5c4; }
.tag-row { display: flex; flex-wrap: wrap; gap: 8px; margin: 22px 0; }.tag-row span { padding: 6px 10px; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); font-size: 10px; }
.dialog-actions { display: flex; gap: 10px; }

.toast, .achievement-toast { position: fixed; z-index: 100; left: 50%; bottom: 28px; transform: translateX(-50%); padding: 12px 18px; border: 1px solid var(--line-strong); border-radius: 14px; background: rgba(26,23,35,.94); box-shadow: var(--shadow); backdrop-filter: blur(14px); font-size: 12px; animation: toast-in 260ms var(--ease); }
.toast[hidden], .achievement-toast[hidden] { display: none; }
@keyframes toast-in { from { opacity: 0; transform: translate(-50%, 12px) scale(.96); } }
.achievement-toast { display: flex; align-items: center; gap: 12px; bottom: 28px; background: var(--lime); color: #17131c; }.achievement-toast > span { display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid rgba(0,0,0,.12); border-radius: 12px; }.achievement-toast small, .achievement-toast strong { display: block; }.achievement-toast small { font-size: 8px; opacity: .65; }

.reveal { opacity: 0; transform: translateY(20px); transition: opacity 700ms var(--ease), transform 700ms var(--ease); }.reveal.is-visible { opacity: 1; transform: none; }

@media (max-width: 1060px) {
  .hero { grid-template-columns: 1fr 1fr; grid-template-rows: auto auto; }
  .hero-copy { grid-row: 1; min-height: 560px; }.spotlight-card { grid-column: 2; grid-row: 1; min-height: 560px; }.today-card, .stats-card { min-height: 220px; }
  .memory-card, .memory-card:first-child, .memory-card:nth-child(2), .memory-card:nth-child(3) { grid-column: span 6; }
  .dashboard-grid { grid-template-columns: 1fr 1fr; }.dashboard-feature { grid-row: span 2; }.achievement-card { grid-column: 2; }
}

@media (max-width: 760px) {
  .section-shell, .nav-shell { width: min(100% - 28px, 620px); }
  .site-header { padding: 8px 0; }.nav-shell { grid-template-columns: 1fr auto; }.nav-links { display: none; }
  .hero { display: flex; flex-direction: column; min-height: auto; padding-block: 24px 56px; }
  .hero-copy { min-height: 540px; padding: 32px 24px; }.hero h1 { margin-top: 24px; font-size: clamp(46px, 14vw, 66px); }.hero-copy > div:first-child > p { font-size: 15px; }.hero-actions { display: grid; }.button { width: 100%; }
  .spotlight-card { min-height: 540px; order: 2; }.today-card, .stats-card { min-height: 220px; }.today-card { order: 3; }.stats-card { order: 4; }
  .discover, .collection, .constellation { padding-block: 64px; }.section-heading { display: grid; gap: 16px; margin-bottom: 28px; }.section-heading h2 { font-size: 38px; }.section-heading > p { font-size: 13px; }
  .search-card { grid-template-columns: auto 1fr; padding: 8px 8px 8px 16px; }.search-card input { height: 48px; font-size: 13px; }.search-submit { grid-column: 1/-1; width: 100%; height: 46px; }.prompt-row { margin-bottom: 36px; overflow-x: auto; flex-wrap: nowrap; }.prompt-row button { flex: none; }
  .result-head { align-items: start; }.result-head p { line-height: 2; }
  .memory-grid { display: flex; gap: 12px; margin-inline: -14px; padding-inline: 14px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }.memory-grid::-webkit-scrollbar { display: none; }.memory-card, .memory-card:first-child, .memory-card:nth-child(2), .memory-card:nth-child(3), .skeleton-card { flex: 0 0 min(84vw, 360px); min-height: 430px; scroll-snap-align: center; }.empty-state { flex: 0 0 100%; }
  .dashboard-grid { display: flex; flex-direction: column; }.orbit-card, .achievement-card { min-height: auto; }.dashboard-feature { order: 1; }.achievement-card { order: 2; }
  .section-heading.compact { padding: 28px 22px 0; }.section-heading.compact h2 { font-size: 34px; }.graph-stage, #memoryGraph { min-height: 460px; height: 460px; }.graph-legend { left: 18px; bottom: 16px; }
  .site-footer { display: grid; justify-items: start; padding-bottom: 110px; }
  .assistant-launcher { right: 14px; bottom: 14px; }.assistant-panel { right: 16px; bottom: 78px; }
  .dialog-body { padding: 24px; }.dialog-body h2 { font-size: 36px; }.dialog-media { height: 42vh; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}
