/* White-first, system-font refinement. Existing layout and routes stay intact. */
:root{--sans:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","PingFang SC",sans-serif;--serif:var(--sans);--page-bg:#fff;--surface:#fff;--panel:#f7f7f9;--text:#24242a;--muted:#77777f;--line:#e6e6eb;--home-ink:var(--text);--accent:#c8b6e8;--accent-soft:#f5f1fa;--accent-ink:#242128;--glass-fill:linear-gradient(130deg,#ffffff70,#ffffff30);--glass-edge:#ffffffb8;--glass-shadow:inset 0 1px 0 #ffffffb0,0 8px 26px #2623380b;}
body[data-theme=dark]{--page-bg:#191a1d;--surface:#222328;--panel:#292a30;--text:#eeeef3;--muted:#a8a8b2;--line:#3c3c45;--glass-fill:linear-gradient(130deg,#33333b99,#22222966);--glass-edge:#ffffff24;--glass-shadow:inset 0 1px 0 #ffffff20,0 8px 26px #0002;}
html,body{width:100%;overflow:hidden;}body,button,input,textarea,select,svg text{font-family:var(--sans);}h1,h2,h3,.daily-word strong,.day-number,.home-anniversary small{font-family:var(--sans);font-style:normal;}
.app{height:100vh;min-height:0;background-color:var(--page-bg);}.main{min-width:0;background:transparent;}.page{min-height:0;}.scroll-page{overscroll-behavior:contain;}
.topbar{background:color-mix(in srgb,var(--page-bg) 65%,transparent);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-color:var(--line);}
.home-page{background-color:transparent;}.home-page:before{opacity:.4;background:radial-gradient(at 5% 25%,var(--accent-soft),transparent 62%),radial-gradient(at 100% 40%,#e9f5ee,transparent 60%);}
.optical-glass,.bottom-nav,.work-conversations .conversation-row{background:var(--glass-fill);border:1px solid var(--glass-edge);box-shadow:var(--glass-shadow);backdrop-filter:var(--hyalite,blur(18px) saturate(115%));-webkit-backdrop-filter:blur(18px) saturate(115%);}
.optical-glass:before,.optical-glass:after{opacity:.35;}.home-tile:active,.home-music:active{transform:scale(.988);}.home-tile,.home-music{transition:transform 140ms ease;}.daily-word strong{font-size:clamp(20px,5vw,28px);font-weight:550;line-height:1.35;}.life-page .home-content{padding-top:0;}.life-hero .home-translation{position:relative;z-index:1;}.life-hero>.pair-row{z-index:2;}
/* Avatar edges occlude the rear line; the centre line emerges outside both portraits. */
.pair-layered{--pair-gap:clamp(58px,18vw,100px);}.pair-thread-front{left:calc(50% - var(--pair-gap)/2);width:var(--pair-gap);z-index:0;}.pair-layered .pair-avatar{z-index:2;box-shadow:0 5px 14px #30213218;border:1px solid #ffffffb0;}.pair-thread-front path{stroke:#a33c49;stroke-width:1.5;filter:none;}.pair-thread-side{z-index:0;}
.pair-thread-edge{position:absolute;left:calc(50% - var(--pair-gap)/2 - 64px);top:0;width:64px;height:94px;z-index:3;pointer-events:none;overflow:visible;}.pair-thread-edge path{fill:none;stroke:#a33c49;stroke-width:1.5;stroke-linecap:round;}.pair-layered{gap:var(--pair-gap);}.pair-layered .pair-avatar{width:64px;height:64px;}
body:not([data-theme=dark]) .steps-active{background:#fff;}.steps-active .main,.steps-active .page,.steps-active .topbar,.steps-detail{background:var(--page-bg);color:var(--text);}.steps-detail{padding-top:calc(16px + env(safe-area-inset-top,0px));}.steps-back{background:var(--panel);border-color:var(--line);}.steps-period{background:var(--panel);}.steps-period button{color:var(--muted);}.steps-period [aria-selected=true]{background:var(--surface);color:var(--text);box-shadow:0 2px 6px #2221;}.steps-total,.steps-axis-x,.steps-axis-y,.steps-no-data{color:var(--muted);}.steps-total strong{color:var(--accent);}.steps-columns i,.steps-bars i{background:var(--accent);}.steps-plot{border-color:var(--line);}.steps-grid{background:linear-gradient(var(--line),var(--line)) center/100% 1px no-repeat,repeating-linear-gradient(90deg,var(--line) 0 1px,transparent 1px 25%);}.steps-source{background:var(--panel);color:var(--muted);}.steps-active .bottom-nav{background:var(--glass-fill);border-color:var(--glass-edge);}.steps-active .bottom-nav .tab{color:var(--muted);}.steps-active .bottom-nav .tab.active{color:var(--text);}
.primary-btn,.calendar-grid .selected{background:var(--accent);color:var(--accent-ink);}.activity-ring{border-color:var(--accent);}.feature-symbol{color:var(--accent);}.swatch-strip{display:flex;gap:12px;overflow-x:auto;padding:10px 4px 14px;scrollbar-width:none;}.swatch,.swatch-add{width:38px;height:38px;border-radius:50%;flex:0 0 38px;background:var(--swatch,var(--panel));border:3px solid var(--surface);box-shadow:0 0 0 1px var(--line);}.swatch[aria-pressed=true]{box-shadow:0 0 0 2px var(--text);}.swatch-add{font-size:25px;}.palette-section{padding:16px 0;}.color-preview{padding:24px;border-radius:18px;margin-block:16px;font-weight:600;}
dialog{background:color-mix(in srgb,var(--page-bg) 82%,transparent);color:var(--text);border:1px solid var(--glass-edge);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 28px);}.music-panel{width:min(440px,calc(100vw - 28px));padding:20px 25px 28px;border-radius:34px;background:color-mix(in srgb,var(--page-bg) 43%,transparent);box-shadow:inset 0 1px 0 #fff9,0 20px 70px #24203525;backdrop-filter:blur(30px) saturate(110%);-webkit-backdrop-filter:blur(30px) saturate(110%);animation:player-in .23s cubic-bezier(.2,.75,.25,1);}.music-panel::backdrop{background:#34323a26;backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px);}.music-panel .modal-head{margin-bottom:12px;align-items:center;}.music-panel .modal-head .eyebrow{display:none;}.music-panel .modal-head h2{font-size:15px;margin:0;}.music-panel .music-full{gap:12px;}.album-cover{width:100%;aspect-ratio:1;border-radius:22px;overflow:hidden;display:grid;place-items:center;background:linear-gradient(145deg,var(--accent-soft),#fff8);font-size:80px;color:var(--accent);box-shadow:0 8px 30px #20202d12;}.album-cover img{width:100%;height:100%;object-fit:cover;}.music-panel .music-title{font-size:20px!important;margin:8px 0 0;white-space:normal;text-align:center;}.music-artist{font-size:13px;color:var(--muted);margin:0;}.music-times{width:100%;display:flex;justify-content:space-between;font-size:11px;color:var(--muted);}.music-panel .music-controls{width:100%;justify-content:space-evenly;}.music-panel .music-controls button{width:40px;height:40px;}.music-panel .music-controls .music-play{width:54px;height:54px;background:transparent;color:var(--text);}.music-panel .music-controls svg{width:27px;height:27px;}.music-volume{width:100%;display:flex;gap:12px;font-size:12px;align-items:center;margin:12px 0;}.music-volume input{min-width:0;flex:1;accent-color:var(--accent);}.music-panel.closing{animation:player-out .18s ease-in forwards;}.music-panel .field{font-size:12px;}.music-panel .editor-help{font-size:10px;}
@keyframes player-in{from{opacity:0;transform:translateY(18px) scale(.96)}to{opacity:1;transform:none}}@keyframes player-out{to{opacity:0;transform:translateY(24px) scale(.97)}}
@media(max-width:800px){.topbar{height:calc(58px + env(safe-area-inset-top,0px));padding:calc(6px + env(safe-area-inset-top,0px)) 16px 6px;}.app{padding-top:0;}.bottom-nav{margin-bottom:0;bottom:calc(10px + env(safe-area-inset-bottom,0px));}.life-page{padding-bottom:12px;}.scroll-page{max-width:100%;}.steps-detail{padding-inline:20px;}.steps-detail h1{margin-top:20px;font-size:32px;}.steps-plot{height:clamp(210px,36dvh,340px);}dialog{width:calc(100vw - 28px);padding:22px 20px;border-radius:26px;}.music-panel{margin-block:auto;padding-bottom:calc(22px + env(safe-area-inset-bottom,0px));}.album-cover{max-height:32dvh;width:auto;max-width:100%;aspect-ratio:1;}.music-panel .modal-head{margin-bottom:8px;}}
@media(prefers-reduced-motion:reduce){.music-panel,.music-panel.closing{animation:none;}}
