/* Shared space-time visual system for every page in the personal blog. */
:root{
  --space-ink:#e6f0f6;--space-muted:#aec1cf;--space-faint:#829aaa;
  --space-accent:#82dbea;--space-warm:#f0c47a;--space-line:rgba(142,198,219,.25);
  --space-panel:rgba(14,34,50,.84);--space-panel-solid:#102334;
  --space-shadow:0 18px 55px rgba(0,0,0,.30);--space-focus:#8de5f0;
  --ink:var(--space-ink);--muted:var(--space-muted);--faint:var(--space-faint);
  --accent:var(--space-accent);--accent-strong:#b8f2f5;--line:var(--space-line);
  --card:var(--space-panel);--card-solid:var(--space-panel-solid);--shadow:var(--space-shadow);
}
html[data-theme=night]{
  --space-ink:#e5edf4;--space-muted:#a6bac7;--space-faint:#8198a8;
  --space-accent:#88d7e5;--space-warm:#e5b47b;--space-line:rgba(126,180,203,.24);
  --space-panel:rgba(15,31,45,.78);--space-panel-solid:#102334;
  --space-shadow:0 20px 65px rgba(0,0,0,.34);--space-focus:#8de5f0;
  --ink:var(--space-ink);--muted:var(--space-muted);--faint:var(--space-faint);
  --accent:var(--space-accent);--accent-strong:#b8f2f5;--line:var(--space-line);
  --card:var(--space-panel);--card-solid:var(--space-panel-solid);--shadow:var(--space-shadow);
}
html{scroll-padding-top:24px}
body{color:var(--space-ink);background-color:#071522;background-image:radial-gradient(ellipse at 9% 8%,rgba(18,108,145,.43),transparent 34%),radial-gradient(ellipse at 88% 29%,rgba(145,87,93,.23),transparent 31%),radial-gradient(ellipse at 44% 100%,rgba(41,91,113,.30),transparent 42%),linear-gradient(155deg,#071522,#0a1b2b 54%,#08131f);background-attachment:fixed}
html[data-theme=night] body{background-color:#030811;background-image:radial-gradient(ellipse at 13% 4%,rgba(20,63,108,.42),transparent 34%),radial-gradient(ellipse at 85% 31%,rgba(99,49,95,.28),transparent 33%),radial-gradient(ellipse at 42% 100%,rgba(20,72,85,.26),transparent 40%),linear-gradient(155deg,#030811,#07111e 56%,#040a12)}
.space-cosmos{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;opacity:.82}
html[data-theme=night] .space-cosmos{opacity:.96}
header.top,#page-content,.footer{position:relative;z-index:1}
header.top{max-width:1220px;padding-top:22px;padding-bottom:20px}
.brand{color:var(--space-ink);letter-spacing:.14em}.brand span{color:var(--space-accent)!important}
.top nav{gap:clamp(10px,1.5vw,22px);color:var(--space-muted)}
.top nav a{transition:color .2s ease}.top nav a::after{background:linear-gradient(90deg,var(--space-accent),var(--space-warm))}
.top nav a:hover,.top nav a:focus-visible{color:var(--space-accent)}
.theme-toggle,.nav-write,.home-actions a,.essay-actions a,.essay-write{border-color:var(--space-line);background:var(--space-panel);color:var(--space-ink);backdrop-filter:blur(16px);transition:transform .2s ease,border-color .2s ease,background .2s ease}
.theme-toggle:hover,.nav-write:hover,.home-actions a:hover{border-color:var(--space-accent);transform:translateY(-1px)}
.card,.paper,.music-global,.music-reopen,.search-trigger,dialog,.navigation-notice,.home-layout .card{border:1px solid var(--space-line);background:linear-gradient(145deg,rgba(21,49,67,.91),rgba(9,25,40,.88));box-shadow:var(--space-shadow);backdrop-filter:blur(18px)}
.card,.paper{border-radius:20px}
.home-layout .card{background:linear-gradient(145deg,rgba(21,49,67,.91),rgba(9,25,40,.88))}
.home-main .project{background:radial-gradient(ellipse at 95% 15%,rgba(211,160,96,.15),transparent 38%),linear-gradient(135deg,rgba(20,60,77,.96),rgba(10,30,46,.94));border-color:var(--space-line)}
html[data-theme=night] .home-main .project{background:radial-gradient(ellipse at 95% 15%,rgba(155,87,131,.17),transparent 38%),linear-gradient(135deg,rgba(16,39,66,.97),rgba(7,18,33,.95))}
.intro .eyebrow,.home-intro .eyebrow,.card-label,.post-meta,.row .date,.archive-row time{color:var(--space-muted)}
.intro h1,.home-intro h1,.paper h1,.essay-intro h1{color:var(--space-ink);text-shadow:0 0 38px rgba(108,185,202,.14)}
.intro h1,.home-intro h1{font-family:Georgia,"Songti SC",serif;letter-spacing:.02em}
.paper h2,.card h2,.card h3,.essay-entry h2{color:var(--space-ink)}
.paper a,.text-link,.learning-kind,.learning-arrow,.music-bottom a{color:var(--space-accent)}
.paper a{border-color:color-mix(in srgb,var(--space-accent) 35%,transparent)}
.paper blockquote{margin:1.5em 0;padding:12px 18px;border-left:2px solid var(--space-warm);background:color-mix(in srgb,var(--space-panel-solid) 60%,transparent);color:var(--space-muted);border-radius:0 12px 12px 0}
.paper pre,.paper .ql-code-block-container{background:var(--space-panel-solid);border:1px solid var(--space-line);color:var(--space-ink)}
.paper th{background:color-mix(in srgb,var(--space-accent) 12%,var(--space-panel-solid))}
.paper td,.paper th,.archive-row,.row,.music-list,.result{border-color:var(--space-line)}
.chip,.filter{border-color:var(--space-line);color:var(--space-muted);background:color-mix(in srgb,var(--space-panel) 72%,transparent)}
.filter:hover,.filter.active{border-color:var(--space-accent);background:var(--space-accent);color:#fff}
.app-icon{background:linear-gradient(145deg,var(--space-panel-solid),color-mix(in srgb,var(--space-accent) 15%,var(--space-panel-solid)));color:var(--space-accent);border:1px solid var(--space-line)}
.quote{color:var(--space-ink)}
.status{color:#327d74}.status:before{box-shadow:0 0 12px currentColor}
.footer{color:var(--space-muted);border-color:var(--space-line)}
.search-trigger{color:var(--space-muted)}.search-trigger kbd{background:color-mix(in srgb,var(--space-accent) 12%,var(--space-panel-solid));color:var(--space-muted)}
dialog{color:var(--space-ink)}dialog::backdrop{background:rgba(2,12,22,.54);backdrop-filter:blur(8px)}
.search-head input{background:var(--space-panel-solid);color:var(--space-ink);border-color:var(--space-line)}
.result:hover{background:color-mix(in srgb,var(--space-accent) 10%,transparent)}
.music-global,.music-reopen{color:var(--space-ink)}
.music-controls .music-play,.filter.active,.essay-write{background:linear-gradient(130deg,#167d91,#2c777e);color:#fff;border-color:transparent}
.music-progress input{accent-color:var(--space-accent)}
.music-position select{background:var(--space-panel-solid);color:var(--space-ink);border-color:var(--space-line)}
.essay-entry,.learning-row,.archive-row,.project,.card{transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease}
.essay-entry:hover,.learning-row:hover,.archive-row:hover,.home-main .project:hover{border-color:color-mix(in srgb,var(--space-accent) 55%,var(--space-line));box-shadow:0 16px 42px rgba(23,61,82,.30);transform:translateY(-2px)}
.home-layout .profile,.home-layout .quote-card,.home-layout .card{color:var(--space-ink)}
html[data-theme=day] .about-profile,html[data-theme=night] .about-profile{color:var(--space-ink);background:linear-gradient(145deg,rgba(20,46,63,.96),rgba(8,23,37,.96));border-color:var(--space-line);box-shadow:var(--space-shadow)}
.about-profile .about-project-mark,.about-profile .about-activity-card{background:rgba(6,20,33,.65);border-color:var(--space-line)}
.about-profile .about-sections,.about-profile .about-project,.about-profile .about-contributions li,.about-profile .about-closing{border-color:var(--space-line)}
.about-profile .about-portrait img{border-color:var(--space-line)}
button,a,summary{ -webkit-tap-highlight-color:transparent }
:focus-visible{outline-color:var(--space-focus);outline-offset:4px}
::selection{background:color-mix(in srgb,var(--space-accent) 34%,transparent);color:var(--space-ink)}
@media(max-width:760px){.space-cosmos{opacity:.62}html[data-theme=night] .space-cosmos{opacity:.78}.top nav{justify-content:center}.card,.paper{backdrop-filter:blur(12px)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* Clickable route coordinates and the personal blog navigator. */
.route-stop{position:relative;z-index:2;border-radius:9px;transition:transform .22s ease,filter .22s ease}
.route-stop:hover,.route-stop:focus-visible{color:inherit;transform:translateY(-3px);filter:drop-shadow(0 0 14px rgba(127,228,238,.42))}
.route-stop.current:hover,.route-stop.current:focus-visible{color:#f0ca87}
.route-stop.next:hover,.route-stop.next:focus-visible{color:#91e4e9}
.route-index{transition:color .2s ease}.route-stop:hover .route-index{color:var(--space-warm)}
.home-portal .portal-agent-button{border-color:#f0c47a79;background:linear-gradient(120deg,#182c37e8,#172132e8);color:#f4d39a;box-shadow:inset 0 0 0 1px #f0c47a12,0 0 26px #e4b46512}
.home-portal .portal-agent-button:hover{border-color:#f0c47a;box-shadow:0 0 30px #e4b46535}
.space-agent-launcher{position:fixed;right:22px;bottom:84px;z-index:8;display:flex;align-items:center;gap:10px;min-height:48px;padding:0 16px;border:1px solid #9bdde777;border-radius:999px;color:#e5f6fb;background:linear-gradient(125deg,rgba(14,45,62,.96),rgba(25,27,50,.96));box-shadow:0 8px 30px #02081199,0 0 28px #3bbed52c;backdrop-filter:blur(18px);font-size:12px;letter-spacing:.04em;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}
.space-agent-launcher:hover{transform:translateY(-3px);border-color:#f0c47a;box-shadow:0 12px 35px #020811b5,0 0 34px #70dbe84a}
.space-agent-star{color:#f0c47a;font-size:17px;text-shadow:0 0 14px #f0c47a88}
.space-agent-signal{width:7px;height:7px;border-radius:50%;background:#82e6db;box-shadow:0 0 12px #82e6db}
.space-agent-dialog{position:fixed;inset:auto 22px 144px auto;margin:0;width:min(460px,calc(100vw - 28px));max-width:none;max-height:min(690px,calc(100dvh - 32px));padding:0;overflow:hidden;border:1px solid #93cadd70;border-radius:23px;color:#e7f1f5;background:#0b1724;box-shadow:0 28px 100px #000a,0 0 50px #4bbbd51c}
.space-agent-dialog[open]{display:block;animation:agent-arrive .24s cubic-bezier(.18,.8,.25,1) both}
.space-agent-dialog::backdrop{background:rgba(2,8,15,.52);backdrop-filter:blur(6px)}
.agent-shell{display:grid;grid-template-rows:auto auto auto minmax(150px,1fr) auto auto;max-height:min(690px,calc(100dvh - 32px));background:radial-gradient(ellipse at 100% 0%,#28517445,transparent 43%),linear-gradient(155deg,#0d1e2d,#08121e 68%,#101324)}
.agent-head{display:flex;align-items:center;gap:13px;padding:18px 20px;border-bottom:1px solid #9acfe128;background:linear-gradient(110deg,#152b3be8,#111827e8)}
.agent-emblem{display:grid;place-items:center;width:40px;height:40px;flex:0 0 40px;border:1px solid #f0c47a66;border-radius:50%;color:#f0c47a;background:radial-gradient(circle,#f0c47a22,#12212e);box-shadow:0 0 24px #e3b86721;font-size:20px}
.agent-heading{min-width:0;flex:1}.agent-overline{color:#92cfdb;font:9px/1.4 ui-monospace,Consolas,monospace;letter-spacing:.15em}.agent-heading h2{margin:3px 0 1px;color:#f1f5f5;font:500 16px/1.4 Georgia,"Microsoft YaHei",serif}.agent-heading p{margin:0;color:#99afbf;font-size:10px}
.agent-close{width:32px;height:32px;border:1px solid #9ec9d42c;border-radius:50%;color:#c0d0da;background:#ffffff07;font-size:20px;line-height:1}.agent-close:hover{color:#f0c47a;border-color:#f0c47a88}
.agent-intro{margin:16px 18px 10px;padding:12px 14px;border:1px solid #9acfe125;border-radius:13px;color:#c1d0d9;background:#132536bb;font-size:12px;line-height:1.75}
.agent-suggestions{display:flex;gap:7px;overflow:auto;padding:0 18px 13px;scrollbar-width:thin}.agent-suggestion{flex:0 0 auto;max-width:230px;padding:7px 10px;border:1px solid #86c4d538;border-radius:999px;color:#bfe3e8;background:#0e2534;font-size:10px;white-space:nowrap}.agent-suggestion:hover{border-color:#f0c47a;color:#f7d59e;background:#1d2b38}
.agent-messages{display:grid;align-content:start;gap:11px;min-height:150px;max-height:38vh;overflow:auto;padding:13px 18px;border-top:1px solid #9acfe120;border-bottom:1px solid #9acfe120;overscroll-behavior:contain}
.agent-message{max-width:92%;padding:11px 13px;border:1px solid #92c7d72b;border-radius:13px;color:#d8e4e9;background:#122536;font-size:12px;line-height:1.75;overflow-wrap:anywhere}.agent-message p{margin:0;white-space:pre-line}.agent-message-bot{display:grid;grid-template-columns:15px 1fr;gap:7px;align-self:start}.agent-message-user{justify-self:end;border-color:#72d4db4a;color:#f2f4ee;background:linear-gradient(130deg,#164153,#193044)}.agent-message-mark{color:#f0c47a}.agent-links{display:grid;gap:6px;margin-top:10px}.agent-link{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;border:1px solid #9bdde72b;border-radius:9px;color:#bcebf0;background:#0a1b28;text-decoration:none;font-size:11px}.agent-link::after{content:"↗";color:#f0c47a}.agent-link:hover{border-color:#f0c47a;color:#fff1cc}
.agent-form{display:flex;gap:8px;padding:13px 16px 11px}.agent-form input{min-width:0;flex:1;padding:11px 13px;border:1px solid #8bc7d13b;border-radius:11px;outline:0;color:#f0f5f6;background:#081521;font-size:12px}.agent-form input:focus{border-color:#82dbea;box-shadow:0 0 0 3px #82dbea1a}.agent-form input::placeholder{color:#7e96a6}.agent-form button{padding:0 14px;border:1px solid #e9c47c88;border-radius:11px;color:#161b21;background:linear-gradient(120deg,#f0c47a,#c8e7db);font-size:11px;font-weight:700}.agent-form button:disabled{opacity:.6;cursor:wait}
.agent-foot{display:flex;justify-content:space-between;gap:10px;padding:0 18px 15px;color:#9ab0be;font:10px/1.5 ui-monospace,Consolas,monospace;letter-spacing:.02em}.agent-foot span{min-width:0}.agent-foot a{color:#a9dce4;text-decoration:none;white-space:nowrap}.agent-foot a:hover{color:#f0c47a}
@keyframes agent-arrive{from{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:700px){.space-agent-launcher{right:12px;bottom:72px;min-height:44px;padding:0 13px}.space-agent-dialog{inset:auto 12px 124px 12px;width:auto;max-height:calc(100dvh - 140px);border-radius:19px}.agent-shell{max-height:calc(100dvh - 140px)}.agent-messages{max-height:31vh}.home-portal .portal-agent-button{flex-basis:100%;justify-content:center}}
@media(prefers-reduced-motion:reduce){.space-agent-dialog[open]{animation:none}}
