.birthday-constellation{--route-background: var(--panel-strong);--route-foreground: var(--text-main);--route-card: var(--panel);--route-muted-base: color-mix(in srgb, var(--panel-strong) 76%, #263248 24%);--route-muted-foreground: var(--text-muted);--route-border-base: var(--line-strong);--route-accent-base: var(--accent-soft);--route-viz-1: #77d9e7;--route-viz-2: var(--accent-strong);--route-viz-3: var(--accent);--route-viz-5: #ed8ea9;--route-viz-6: #88c7ca;--route-surface: color-mix(in srgb, var(--route-background) 84%, var(--route-viz-3) 16%);--route-surface-strong: color-mix(in srgb, var(--route-background) 90%, var(--route-viz-1) 10%);--route-line: color-mix(in srgb, var(--route-viz-1) 82%, var(--route-foreground) 18%);--route-glow: color-mix(in srgb, var(--route-viz-1) 46%, transparent);--route-today: color-mix(in srgb, var(--route-viz-1) 78%, var(--route-foreground) 22%);--route-selected: color-mix(in srgb, var(--route-viz-2) 76%, var(--route-viz-3) 24%);--route-alert: color-mix(in srgb, var(--route-viz-5) 78%, var(--route-foreground) 22%);--route-muted: color-mix(in srgb, var(--route-muted-foreground) 82%, var(--route-foreground) 18%);--route-border: color-mix(in srgb, var(--route-border-base) 74%, var(--route-foreground) 16%);--archive-band: color-mix(in srgb, var(--panel-strong) 92%, #17233f 8%);--archive-band-text: var(--text-main);--route-paper: color-mix(in srgb, var(--route-background) 88%, var(--route-viz-3) 12%);--dossier-paper: color-mix(in srgb, var(--route-background) 92%, var(--route-viz-1) 8%);position:relative;width:100%;overflow:hidden;border:1px solid var(--route-border);border-radius:6px;color:var(--route-foreground);background:var(--route-surface);box-shadow:0 20px 52px color-mix(in srgb,var(--route-foreground) 14%,transparent);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.birthday-constellation:before,.birthday-constellation:after{position:absolute;z-index:0;content:"";pointer-events:none}.birthday-constellation:before{inset:0;background-image:radial-gradient(circle,color-mix(in srgb,var(--route-foreground) 38%,transparent) 0 1px,transparent 1.5px),linear-gradient(90deg,color-mix(in srgb,var(--route-foreground) 3%,transparent) 1px,transparent 1px),linear-gradient(color-mix(in srgb,var(--route-foreground) 3%,transparent) 1px,transparent 1px);background-position:7px 11px,0 0,0 0;background-size:47px 43px,48px 48px,48px 48px;opacity:.22}.birthday-constellation:after{inset:0 auto 0 0;width:5px;background:linear-gradient(to bottom,var(--route-alert),var(--route-selected) 46%,var(--route-today));box-shadow:0 0 18px color-mix(in srgb,var(--route-selected) 34%,transparent)}.birthday-constellation button{font:inherit}.birthday-constellation__header{position:relative;z-index:2;display:grid;grid-template-columns:minmax(160px,1fr) auto auto;align-items:center;gap:14px;padding:14px 16px 13px 20px;border-bottom:3px solid var(--route-selected);color:var(--archive-band-text);background:var(--archive-band);box-shadow:inset 0 -1px color-mix(in srgb,var(--archive-band-text) 24%,transparent)}.birthday-constellation__title{min-width:0}.birthday-constellation__title h2{margin:0;color:inherit;font-family:Noto Sans SC,Microsoft YaHei,sans-serif;font-size:1.22rem;font-weight:600;letter-spacing:0;line-height:1.2}.birthday-constellation__sky-badge{position:relative;display:block;width:26px;height:26px;min-width:26px;overflow:hidden;border:1px solid color-mix(in srgb,var(--route-today) 78%,white 22%);color:#fff;background:color-mix(in srgb,var(--route-selected) 34%,var(--route-surface) 66%);box-shadow:inset 0 0 9px color-mix(in srgb,var(--route-today) 28%,transparent);clip-path:polygon(0 0,calc(100% - 6px) 0,100% 6px,100% 100%,0 100%);filter:drop-shadow(0 0 3px color-mix(in srgb,var(--route-today) 40%,transparent));pointer-events:none}.birthday-constellation__sky-badge svg{position:absolute;top:2px;right:2px;width:16px;height:13px;overflow:visible}.birthday-constellation__sky-badge line{stroke:color-mix(in srgb,var(--route-today) 84%,white 16%);stroke-width:4.6;opacity:1;vector-effect:non-scaling-stroke}.birthday-constellation__sky-badge circle{fill:color-mix(in srgb,var(--route-today) 62%,white 38%);opacity:1}.birthday-constellation__sky-badge circle.is-primary{opacity:1;filter:drop-shadow(0 0 3px var(--route-glow))}.birthday-constellation__sky-badge>[data-sky-badge-month-label]{position:absolute;bottom:1px;left:3px;z-index:2;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.48rem;font-weight:700;line-height:1;text-shadow:0 0 5px var(--route-glow);white-space:nowrap}.birthday-constellation__month-control{display:grid;grid-template-columns:31px minmax(68px,1fr) 31px;align-items:center;gap:4px;padding:3px;border:1px solid color-mix(in srgb,var(--archive-band-text) 28%,transparent);border-radius:2px;background:color-mix(in srgb,var(--archive-band-text) 7%,transparent)}.birthday-constellation__month-control button{display:grid;width:31px;min-height:31px;padding:0;border:0;border-radius:0;color:color-mix(in srgb,var(--archive-band-text) 70%,transparent);background:transparent;clip-path:polygon(0 0,calc(100% - 5px) 0,100% 5px,100% 100%,0 100%);cursor:pointer;place-items:center}.birthday-constellation__month-control button:hover,.birthday-constellation__month-control button:focus-visible{color:var(--archive-band-text);background:color-mix(in srgb,var(--archive-band-text) 15%,transparent);outline:none}.birthday-constellation__month-control span{position:relative;display:grid;min-width:0;height:100%;grid-template-columns:auto 12px auto;align-items:center;justify-content:center;overflow:hidden;color:var(--archive-band-text);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.78rem;font-weight:500;letter-spacing:0;text-align:center}.birthday-constellation__month-control span:after{position:absolute;top:0;bottom:0;left:-38%;width:32%;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--route-line) 28%,transparent),transparent);content:"";pointer-events:none;animation:birthday-cassette-scan .26s ease-out both}.birthday-constellation__month-control small,.birthday-constellation__month-control b,.birthday-constellation__month-control strong{font:inherit;font-weight:500}.birthday-constellation__month-control small{color:color-mix(in srgb,var(--archive-band-text) 62%,transparent);font-size:.65rem}.birthday-constellation__month-control b{color:color-mix(in srgb,var(--route-line) 54%,transparent)}.birthday-constellation__month-control strong{color:var(--archive-band-text);font-size:.86rem}.birthday-constellation__body{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,7fr) minmax(220px,3fr);min-height:430px}.birthday-constellation__stage{position:relative;min-width:0;overflow:hidden;border-right:1px solid var(--route-border);background:var(--route-paper)}.birthday-constellation__route,.birthday-constellation__node-layer{position:absolute;inset:12px 10px;width:calc(100% - 20px);height:calc(100% - 24px);z-index:1}.birthday-constellation__route{overflow:visible}.birthday-constellation__route text{fill:var(--route-muted);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:2.4px;font-weight:500;letter-spacing:0}.birthday-constellation__weekday-guide,.birthday-constellation__week-guide{stroke:color-mix(in srgb,var(--route-border) 72%,transparent);stroke-width:.24;opacity:.48;vector-effect:non-scaling-stroke}.birthday-constellation__week-guide{stroke-dasharray:1 3;opacity:.36}.birthday-constellation__track-shadow,.birthday-constellation__track{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.birthday-constellation__week-track{fill:none;stroke:transparent;stroke-width:3;stroke-linecap:round;vector-effect:non-scaling-stroke;opacity:0;pointer-events:none;transition:opacity .14s ease,stroke .14s ease}.birthday-constellation__week-track.is-active{stroke:color-mix(in srgb,var(--route-today) 76%,white 24%);opacity:.72;filter:drop-shadow(0 0 5px var(--route-glow))}.birthday-constellation__focus-track{fill:none;stroke:color-mix(in srgb,var(--route-today) 74%,white 26%);stroke-width:2;filter:drop-shadow(0 0 5px var(--route-glow));pointer-events:none;vector-effect:non-scaling-stroke}.birthday-constellation__selection-pulse{fill:none;stroke:color-mix(in srgb,var(--route-selected) 72%,white 28%);stroke-width:2.8;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 6px var(--route-glow));pointer-events:none;vector-effect:non-scaling-stroke;animation:birthday-selection-pulse .18s ease-out both}.birthday-constellation__track-shadow{stroke:var(--route-glow);stroke-width:5;opacity:.18;filter:blur(4px)}.birthday-constellation__track{stroke:var(--route-line);stroke-width:1.2;stroke-dasharray:none;stroke-dashoffset:0;animation:none}.birthday-constellation__route-scan{fill:none;stroke:color-mix(in srgb,var(--route-today) 76%,white 24%);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:.16 .84;filter:drop-shadow(0 0 4px var(--route-glow));pointer-events:none;vector-effect:non-scaling-stroke;animation:birthday-route-scan .4s ease-out both}.birthday-constellation__node-layer{pointer-events:none}.birthday-constellation__node{--node-size: 10px;position:absolute;left:calc(var(--x) * 1%);top:calc(var(--y) * 1%);display:grid;width:var(--node-size);height:var(--node-size);padding:0;border:1px solid color-mix(in srgb,var(--route-line) 54%,var(--route-border) 46%);border-radius:50%;color:var(--route-foreground);background:var(--route-paper);box-shadow:0 0 0 2px color-mix(in srgb,var(--route-paper) 82%,transparent);cursor:pointer;pointer-events:auto;place-items:center;transform:translate(-50%,-50%);transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.birthday-constellation__node:hover,.birthday-constellation__node:focus-visible{z-index:8;outline:none;box-shadow:0 0 0 3px var(--route-paper),0 0 0 5px color-mix(in srgb,var(--route-today) 24%,transparent),0 0 22px var(--route-glow);transform:translate(-50%,-50%) scale(1.08)}.birthday-constellation__node:hover .birthday-constellation__portrait--primary,.birthday-constellation__node:focus-visible .birthday-constellation__portrait--primary{transform:translateY(-3px)}.birthday-constellation__node.has-birthday{--node-size: 48px;border-width:1px;border-color:color-mix(in srgb,var(--route-border) 76%,var(--route-foreground) 24%);box-shadow:0 0 0 2px var(--route-paper),0 0 0 3px color-mix(in srgb,var(--route-border) 42%,transparent),0 8px 18px color-mix(in srgb,var(--route-foreground) 12%,transparent)}.birthday-constellation__node.is-selected{z-index:7;border-width:2px;border-color:var(--route-selected);box-shadow:0 0 0 3px var(--route-paper),0 0 0 5px color-mix(in srgb,var(--route-selected) 30%,transparent),0 0 18px var(--route-glow)}.birthday-constellation__node:not(.has-birthday){--node-size: 7px;border:0;background:var(--route-line);box-shadow:0 0 7px var(--route-glow)}.birthday-constellation__node:not(.has-birthday):before,.birthday-constellation__node:not(.has-birthday):after{position:absolute;top:50%;left:50%;width:13px;height:1px;background:var(--route-today);content:"";opacity:0;transform:translate(-50%,-50%);transition:opacity .12s ease}.birthday-constellation__node:not(.has-birthday):after{transform:translate(-50%,-50%) rotate(90deg)}.birthday-constellation__node:not(.has-birthday):hover:before,.birthday-constellation__node:not(.has-birthday):hover:after,.birthday-constellation__node:not(.has-birthday):focus-visible:before,.birthday-constellation__node:not(.has-birthday):focus-visible:after{opacity:.9}.birthday-constellation__node.is-today{border-width:2px;border-color:var(--route-today);box-shadow:0 0 0 3px var(--route-paper),0 0 0 6px color-mix(in srgb,var(--route-today) 46%,transparent),0 0 20px var(--route-glow)}.birthday-constellation__node.is-today:not(.has-birthday){--node-size: 16px;border:2px solid var(--route-today);background:color-mix(in srgb,var(--route-today) 46%,var(--route-paper))}.birthday-constellation__node.is-today.is-selected{box-shadow:0 0 0 3px var(--route-paper),0 0 0 5px color-mix(in srgb,var(--route-selected) 34%,transparent),0 0 0 7px color-mix(in srgb,var(--route-today) 24%,transparent)}.birthday-constellation__date{position:absolute;top:calc(100% + 5px);left:50%;color:var(--route-muted);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.64rem;font-weight:500;letter-spacing:0;line-height:1;pointer-events:none;transform:translate(-50%)}.birthday-constellation__node.has-birthday .birthday-constellation__date,.birthday-constellation__node.is-selected .birthday-constellation__date,.birthday-constellation__node.is-today .birthday-constellation__date{color:var(--route-foreground)}.birthday-constellation__portraits{position:absolute;inset:2px;display:grid;overflow:visible;place-items:center}.birthday-constellation__portrait{display:grid;overflow:hidden;border:1px solid color-mix(in srgb,var(--route-foreground) 68%,transparent);border-radius:50%;background:var(--route-muted-base);box-shadow:0 3px 9px color-mix(in srgb,var(--route-background) 32%,transparent);place-items:center;transition:width .16s ease,height .16s ease,margin-left .16s ease,transform .16s ease}.birthday-constellation__portrait--primary{position:relative;z-index:2;width:38px;height:38px}.birthday-constellation__support-strip{position:absolute;top:57%;left:56%;z-index:1;display:flex;align-items:center;pointer-events:none;transition:top .16s ease,left .16s ease}.birthday-constellation__portrait--support{width:19px;height:19px;margin-left:-7px}.birthday-constellation__portrait--support:first-child{margin-left:0}.birthday-constellation__node:hover .birthday-constellation__support-strip,.birthday-constellation__node:focus-visible .birthday-constellation__support-strip{top:72%;left:58%}.birthday-constellation__node:hover .birthday-constellation__portrait--support,.birthday-constellation__node:focus-visible .birthday-constellation__portrait--support{width:24px;height:24px;margin-left:3px}.birthday-constellation__node:hover .birthday-constellation__portrait--support:first-child,.birthday-constellation__node:focus-visible .birthday-constellation__portrait--support:first-child{margin-left:0}.birthday-constellation__portrait img,.birthday-constellation__detail-avatar img{width:100%;height:100%;object-fit:cover}.birthday-constellation__portrait>span,.birthday-constellation__detail-avatar>span{color:var(--route-foreground);font-size:.68rem;font-weight:500}.birthday-constellation__detail{position:relative;display:flex;min-width:0;padding:17px 15px 14px;border-left:1px solid color-mix(in srgb,var(--route-alert) 34%,transparent);background:var(--dossier-paper);flex-direction:column}.birthday-constellation__detail:before{position:absolute;top:0;right:0;left:0;height:4px;background:linear-gradient(90deg,var(--route-selected),var(--route-alert) 58%,var(--route-today));content:""}.birthday-constellation__detail-date{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin-bottom:8px}.birthday-constellation__detail-date strong{font-family:Georgia,Times New Roman,serif;font-size:1.55rem;font-weight:500;line-height:1}.birthday-constellation__detail-date span{color:var(--route-muted);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.7rem;letter-spacing:0}.birthday-constellation__detail>hr{width:100%;height:1px;margin:0 0 11px;border:0;background:var(--route-border)}.birthday-constellation__detail-list{display:grid;gap:2px;margin:0;padding:0;list-style:none}.birthday-constellation__detail-row{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:9px;min-height:50px;padding:6px 7px 6px 6px;border-left:3px solid transparent;background:color-mix(in srgb,var(--route-background) 68%,var(--route-viz-6) 4%);transition:transform .14s ease,border-color .14s ease,background .14s ease}.birthday-constellation__detail-row:nth-child(2n){background:color-mix(in srgb,var(--route-background) 80%,var(--route-viz-3) 8%)}.birthday-constellation__detail-row:hover,.birthday-constellation__detail-row:focus-within{border-left-color:var(--route-selected);background:color-mix(in srgb,var(--route-background) 76%,var(--route-viz-2) 10%);transform:translate(2px)}.birthday-constellation__detail-row:hover .birthday-constellation__detail-avatar,.birthday-constellation__detail-row:focus-within .birthday-constellation__detail-avatar{border-color:var(--route-selected);box-shadow:0 0 12px color-mix(in srgb,var(--route-selected) 38%,transparent)}.birthday-constellation__detail-avatar{display:grid;width:38px;height:38px;overflow:hidden;border:1px solid var(--route-border);border-radius:50%;background:var(--route-muted-base);place-items:center}.birthday-constellation__detail-copy{min-width:0}.birthday-constellation__detail-copy strong,.birthday-constellation__detail-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.birthday-constellation__detail-copy strong{font-size:.78rem;font-weight:500;line-height:1.35}.birthday-constellation__detail-copy small{margin-top:2px;color:var(--route-muted);font-size:.65rem;line-height:1.35}.birthday-constellation__detail-row a{display:grid;width:29px;height:29px;border:1px solid var(--route-border);border-radius:0;color:var(--route-muted-foreground);background:color-mix(in srgb,var(--route-background) 72%,transparent);clip-path:polygon(0 0,calc(100% - 6px) 0,100% 6px,100% 100%,0 100%);text-decoration:none;place-items:center}.birthday-constellation__detail-row a:hover,.birthday-constellation__detail-row a:focus-visible{color:var(--route-foreground);border-color:var(--route-selected);background:var(--route-accent-base);outline:none}.birthday-constellation--embedded{height:100%;border:0;border-radius:0;background:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}.birthday-constellation--embedded:after{display:none}.birthday-constellation--embedded .birthday-constellation__body{height:100%;min-height:0}.birthday-neighbor-route{--neighbor-date-track: 52px;--neighbor-node-track: 68px;--neighbor-track-gap: 10px;position:relative;display:grid;flex:1;min-height:0;align-items:center}.birthday-neighbor-route:before{position:absolute;top:12%;bottom:12%;left:calc(var(--neighbor-date-track) + var(--neighbor-track-gap) + var(--neighbor-node-track) / 2);width:1px;background:linear-gradient(transparent,var(--route-line) 18%,var(--route-line) 82%,transparent);content:"";opacity:.64;pointer-events:none}.birthday-neighbor-route[data-density=expanded]{grid-template-rows:minmax(110px,1fr) 72px minmax(110px,1fr)}.birthday-neighbor-route[data-density=compact]{grid-template-rows:minmax(74px,1fr) 48px minmax(74px,1fr);margin-top:10px}.birthday-neighbor-route[data-density=strip]{grid-template-columns:minmax(0,1fr) 40px minmax(0,1fr);grid-template-rows:54px;flex:0 0 54px;margin-top:8px}.birthday-neighbor-route[data-density=strip]:before{inset:50% 10% auto;width:auto;height:1px}.birthday-neighbor-route__node,.birthday-neighbor-route__current{position:relative;z-index:1;display:grid;width:100%;min-width:0;grid-template-columns:var(--neighbor-date-track) var(--neighbor-node-track) minmax(0,1fr);align-items:center;column-gap:var(--neighbor-track-gap)}.birthday-neighbor-route__node{display:grid;width:100%;min-height:74px;padding:6px 4px;border:0;color:var(--route-foreground);background:transparent;cursor:pointer;text-align:left;transition:color .14s ease}.birthday-neighbor-route__node:hover,.birthday-neighbor-route__node:focus-visible{color:#fff;outline:none}.birthday-neighbor-route__node:hover .birthday-neighbor-route__portraits>:first-child,.birthday-neighbor-route__node:focus-visible .birthday-neighbor-route__portraits>:first-child{border-color:var(--route-today);box-shadow:0 0 12px var(--route-glow)}.birthday-neighbor-route__date{grid-column:1;color:var(--route-muted);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.65rem;text-align:right}.birthday-neighbor-route__portraits{position:relative;display:grid;width:52px;height:52px;grid-column:2;justify-self:center;place-items:center}.birthday-neighbor-route__portraits>img,.birthday-neighbor-route__portraits>span{position:absolute;display:grid;width:46px;height:46px;overflow:hidden;border:1px solid var(--route-border);border-radius:50%;background:var(--route-muted-base);object-fit:cover;place-items:center}.birthday-neighbor-route__portraits>:nth-child(n+2){right:-1px;bottom:-1px;width:19px;height:19px}.birthday-neighbor-route__portraits>:nth-child(3){right:11px}.birthday-neighbor-route__portraits>:nth-child(n+4){display:none}.birthday-neighbor-route__copy,.birthday-neighbor-route__current-copy{display:flex;min-width:0;grid-column:3;align-items:baseline;gap:7px}.birthday-neighbor-route__copy strong{min-width:0;overflow:hidden;font-size:.72rem;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.birthday-neighbor-route__copy small{flex:0 0 auto;color:var(--route-muted);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.6rem}.birthday-neighbor-route__current{text-align:left}.birthday-neighbor-route__current-node{width:16px;height:16px;grid-column:2;justify-self:center;border:2px solid var(--route-selected);border-radius:50%;background:var(--dossier-paper);box-shadow:0 0 12px var(--route-glow)}.birthday-neighbor-route__current-copy strong{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.64rem;font-weight:500}.birthday-neighbor-route__current-copy small{color:var(--route-muted);font-size:.62rem}.birthday-neighbor-route[data-density=strip] .birthday-neighbor-route__node{min-height:54px;grid-template-columns:34px minmax(0,1fr);column-gap:6px;padding:3px 2px}.birthday-neighbor-route[data-density=strip] .birthday-neighbor-route__date{display:none}.birthday-neighbor-route[data-density=strip] .birthday-neighbor-route__portraits{grid-column:1;width:30px;height:30px}.birthday-neighbor-route[data-density=strip] .birthday-neighbor-route__portraits>img,.birthday-neighbor-route[data-density=strip] .birthday-neighbor-route__portraits>span{width:30px;height:30px}.birthday-neighbor-route[data-density=strip] .birthday-neighbor-route__portraits>:nth-child(n+2){display:none}.birthday-neighbor-route[data-density=strip] .birthday-neighbor-route__copy{grid-column:2;font-size:.62rem}.birthday-neighbor-route[data-density=strip] .birthday-neighbor-route__current{display:grid;grid-template-columns:1fr;column-gap:0}.birthday-neighbor-route[data-density=strip] .birthday-neighbor-route__current-node{grid-column:1}.birthday-neighbor-route[data-density=strip] .birthday-neighbor-route__current [data-neighbor-date-track],.birthday-neighbor-route[data-density=strip] .birthday-neighbor-route__current-copy{display:none}@keyframes birthday-route-scan{0%{opacity:0;stroke-dashoffset:1}38%{opacity:.85}to{opacity:0;stroke-dashoffset:0}}@keyframes birthday-selection-pulse{0%{opacity:.96;stroke-dasharray:.24 .76;stroke-dashoffset:.24}to{opacity:0;stroke-dasharray:1 0;stroke-dashoffset:0}}@keyframes birthday-cassette-scan{0%{transform:translate(0)}to{transform:translate(430%)}}@media(max-width:620px){.birthday-constellation--embedded .birthday-constellation__body{height:720px}.birthday-constellation__body{grid-template-columns:1fr}.birthday-constellation__stage{min-height:420px;border-right:0;border-bottom:1px solid var(--route-border)}.birthday-constellation__detail{min-height:260px;border-left:0}.birthday-constellation__detail-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:621px)and (max-width:760px){.birthday-neighbor-route{--neighbor-date-track: 40px;--neighbor-node-track: 52px;--neighbor-track-gap: 6px}.birthday-neighbor-route__current-copy{flex-direction:row;gap:3px;white-space:nowrap}.birthday-neighbor-route__current-copy strong,.birthday-neighbor-route__current-copy small{flex:0 0 auto;white-space:nowrap}.birthday-neighbor-route__copy{align-items:flex-start;flex-direction:column;gap:2px}.birthday-neighbor-route__copy strong{width:100%}.birthday-constellation__sky-badge{width:26px}}@media(max-width:520px){.birthday-constellation__header{padding:11px 12px 10px 14px}.birthday-constellation__stage{min-height:390px}.birthday-constellation__node.has-birthday{--node-size: 34px}.birthday-constellation__portrait--primary{width:25px;height:25px}.birthday-constellation__portrait--support{width:13px;height:13px;margin-left:-5px}.birthday-constellation__node:hover .birthday-constellation__portrait--support,.birthday-constellation__node:focus-visible .birthday-constellation__portrait--support{width:17px;height:17px;margin-left:2px}.birthday-constellation__detail-list{grid-template-columns:1fr}.birthday-constellation__sky-badge{width:26px;height:26px}}@media(prefers-reduced-motion:reduce){.birthday-constellation__node,.birthday-constellation__portrait,.birthday-constellation__support-strip,.birthday-constellation__week-track,.birthday-constellation__detail-row{transition:none}.birthday-constellation__route-scan,.birthday-constellation__selection-pulse{animation:none!important}.birthday-constellation__month-control span:after{animation:none}.birthday-constellation__node:hover .birthday-constellation__portrait--primary,.birthday-constellation__node:focus-visible .birthday-constellation__portrait--primary,.birthday-neighbor-route__node:hover,.birthday-neighbor-route__node:focus-visible{transform:none}}.character-archive{--archive-accent: #77d9e7;--archive-accent-alt: var(--accent-strong);--archive-border: color-mix(in srgb, var(--line-strong) 78%, #77d9e7 22%);--archive-content-height: 566px;--archive-surface: color-mix(in srgb, var(--panel-strong) 92%, #111b35 8%);position:relative;width:100%;min-width:0;overflow:hidden;border:1px solid var(--archive-border);border-radius:5px;clip-path:polygon(0 0,calc(100% - 13px) 0,100% 13px,100% 100%,0 100%);color:var(--text-main);background:linear-gradient(90deg,color-mix(in srgb,var(--archive-accent) 72%,transparent),color-mix(in srgb,var(--archive-accent-alt) 64%,transparent)) top / 100% 2px no-repeat,var(--archive-surface);box-shadow:0 20px 52px color-mix(in srgb,#020617 48%,transparent);isolation:isolate;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.character-archive:before{position:absolute;inset:0;z-index:-1;background-image:linear-gradient(90deg,color-mix(in srgb,var(--text-main) 3%,transparent) 1px,transparent 1px),linear-gradient(color-mix(in srgb,var(--text-main) 3%,transparent) 1px,transparent 1px);background-size:48px 48px;content:"";opacity:.28;pointer-events:none}.character-archive button{font:inherit}.character-archive__header{position:relative;z-index:20;display:grid;grid-template-columns:minmax(430px,1fr) auto;align-items:stretch;min-height:64px;border-bottom:1px solid var(--archive-border);background:color-mix(in srgb,var(--panel-strong) 96%,#17233f 4%);box-shadow:inset 0 -1px color-mix(in srgb,var(--text-main) 9%,transparent)}.character-archive__tabs{display:grid;grid-template-columns:repeat(2,minmax(210px,1fr));align-items:stretch;min-width:0;padding-left:0}.character-archive__tab{--tab-accent: var(--archive-accent);position:relative;display:grid;grid-template-columns:24px 32px minmax(0,1fr) auto;min-width:210px;align-items:center;gap:9px;padding:0 18px 0 12px;border:0;border-right:1px solid color-mix(in srgb,var(--archive-border) 54%,transparent);color:color-mix(in srgb,var(--text-muted) 88%,transparent);background:transparent;cursor:pointer;text-align:left;white-space:nowrap}.character-archive__tab:nth-child(2){--tab-accent: var(--archive-accent-alt)}.character-archive__tab:before{position:absolute;top:9px;bottom:9px;left:0;width:3px;background:var(--tab-accent);box-shadow:0 0 12px color-mix(in srgb,var(--tab-accent) 58%,transparent);content:"";opacity:0;transform:scaleY(.55);transition:opacity .14s ease,transform .14s ease}.character-archive__tab:after{position:absolute;right:12px;bottom:0;left:12px;height:2px;background:var(--tab-accent);content:"";opacity:0;transform:scaleX(.6);transition:opacity .14s ease,transform .14s ease}.character-archive__tab[aria-selected=true]{color:var(--text-main);background:color-mix(in srgb,var(--tab-accent) 9%,transparent);clip-path:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,0 100%)}.character-archive__tab[aria-selected=true]:before,.character-archive__tab[aria-selected=true]:after{opacity:1;transform:scaleX(1)}.character-archive__tab[aria-selected=true]:before{transform:scaleY(1)}.character-archive__tab:hover,.character-archive__tab:focus-visible{color:var(--text-main);background:color-mix(in srgb,var(--tab-accent) 7%,transparent);outline:none}.character-archive__tab:focus-visible{box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--tab-accent) 42%,transparent)}.character-archive__tab-index{color:color-mix(in srgb,var(--text-muted) 64%,transparent);font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:.58rem}.character-archive__tab-icon{display:grid;width:32px;height:32px;border:1px solid color-mix(in srgb,var(--archive-border) 70%,transparent);color:color-mix(in srgb,var(--text-muted) 80%,transparent);background:color-mix(in srgb,var(--tab-accent) 5%,transparent);clip-path:polygon(0 0,calc(100% - 6px) 0,100% 6px,100% 100%,0 100%);place-items:center}.character-archive__tab-label{overflow:hidden;font-size:.94rem;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.character-archive__tab-badge-host{display:flex;min-width:0;align-items:center;justify-self:end;pointer-events:none}.character-archive__tab[aria-selected=true] .character-archive__tab-index,.character-archive__tab[aria-selected=true] .character-archive__tab-icon,.character-archive__tab:hover .character-archive__tab-icon,.character-archive__tab:focus-visible .character-archive__tab-icon{border-color:color-mix(in srgb,var(--tab-accent) 68%,var(--archive-border));color:var(--text-main);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--tab-accent) 12%,transparent)}.character-archive__controls{display:flex;min-width:256px;align-items:center;justify-content:flex-end;padding:12px 14px}.character-archive__panels,.character-archive__panel{width:100%;min-width:0;height:var(--archive-content-height)}.character-archive__panel[hidden]{display:none}.character-archive__panel:not([hidden]){animation:character-archive-panel-in .14s ease both}.character-archive .birthday-constellation__month-control,.character-height__header-tools{min-width:0}.character-archive .character-archive__status-cassette{display:grid;grid-template-columns:36px minmax(144px,1fr) 36px;width:228px;min-width:228px;min-height:38px;padding:0;gap:0;overflow:hidden;border:1px solid var(--archive-border);border-radius:0;background:color-mix(in srgb,var(--archive-accent) 6%,transparent);clip-path:polygon(0 0,calc(100% - 7px) 0,100% 7px,100% 100%,0 100%)}.character-height{--height-floor-offset: 64px;width:100%;min-width:0;height:566px;color:var(--text-main)}.character-height__header-tools{align-items:center}.character-height__focus-trigger{min-width:0;padding:6px 9px;overflow:hidden;border-right:1px solid color-mix(in srgb,var(--archive-border) 62%,transparent);border-left:1px solid color-mix(in srgb,var(--archive-border) 62%,transparent);color:var(--text-muted);background:color-mix(in srgb,var(--archive-accent) 7%,transparent);font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:.68rem;text-align:center;text-overflow:ellipsis;white-space:nowrap}.character-height__controls-shell{position:relative;width:228px}.character-height__header-tools .character-height__focus-trigger{display:grid;width:100%;height:36px;grid-template-columns:14px minmax(0,1fr) 12px;align-items:center;gap:5px;text-align:center}.character-height__focus-trigger>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.character-height__focus-menu-icon,.character-height__focus-chevron{color:var(--archive-accent)}.character-height__focus-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:40;display:grid;width:228px;max-height:336px;padding:5px;overflow-x:hidden;overflow-y:auto;border:1px solid var(--archive-border);background:color-mix(in srgb,var(--panel-strong) 96%,#07101f 4%);box-shadow:0 12px 30px color-mix(in srgb,#020617 72%,transparent);scrollbar-color:var(--archive-border) transparent;scrollbar-width:thin}.character-height__focus-menu button{display:grid;width:100%;min-height:34px;grid-template-columns:minmax(0,1fr) auto 14px;align-items:center;gap:7px;padding:6px 8px;border:0;border-bottom:1px solid color-mix(in srgb,var(--archive-border) 28%,transparent);border-radius:0;color:var(--text-main);background:transparent;text-align:left;cursor:pointer}.character-height__focus-menu button:hover,.character-height__focus-menu button:focus-visible,.character-height__focus-menu button[aria-checked=true]{color:var(--text-main);background:color-mix(in srgb,var(--archive-accent) 18%,transparent);outline:1px solid color-mix(in srgb,var(--archive-accent) 62%,transparent);outline-offset:-1px}.character-height__focus-menu button span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.character-height__focus-menu button small{color:var(--text-muted);font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:.58rem;white-space:nowrap}.character-height__header-tools button{display:grid;width:36px;height:36px;padding:0;border:0;border-radius:0;color:var(--text-muted);background:transparent;cursor:pointer;place-items:center}.character-height__header-tools button:hover,.character-height__header-tools button:focus-visible{border-color:var(--archive-accent);color:var(--text-main);background:color-mix(in srgb,var(--archive-accent) 14%,transparent);outline:2px solid color-mix(in srgb,var(--archive-accent) 30%,transparent);outline-offset:1px}.character-height__stage{position:relative;height:510px;overflow:hidden;background:repeating-linear-gradient(to top,transparent 0 21px,color-mix(in srgb,var(--archive-border) 14%,transparent) 21px 22px),color-mix(in srgb,var(--panel-strong) 80%,#07101f 20%)}.character-height__stage:after{position:absolute;right:0;bottom:var(--height-floor-offset);left:0;z-index:1;height:2px;background:var(--accent);box-shadow:0 0 12px color-mix(in srgb,var(--accent) 38%,transparent);content:"";pointer-events:none}.character-height__ruler-line,.character-height__active-line{position:absolute;right:0;left:0;z-index:1;height:1px;pointer-events:none}.character-height__ruler-line{bottom:calc(var(--height-floor-offset) + var(--line-cm) * 2.2px);background:color-mix(in srgb,var(--archive-border) 38%,transparent)}.character-height__ruler-line.is-major{background:color-mix(in srgb,var(--archive-border) 66%,transparent)}.character-height__ruler-line span{position:absolute;top:-8px;left:12px;min-width:44px;color:var(--text-muted);background:color-mix(in srgb,var(--panel-strong) 84%,transparent);font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:.62rem;text-align:center}.character-height__active-line{bottom:calc(var(--height-floor-offset) + var(--active-cm, 124) * 2.2px);z-index:3;height:2px;background:color-mix(in srgb,var(--archive-accent) 84%,transparent);box-shadow:0 0 14px color-mix(in srgb,var(--archive-accent) 54%,transparent);transition:bottom .16s ease,opacity .12s ease}.character-height[data-active-id=""] .character-height__active-line{opacity:0}.character-height__track{position:absolute;inset:0;z-index:4;display:flex;align-items:stretch;overflow-x:auto;overflow-y:hidden;padding:0 76px 0 66px;cursor:grab;scroll-behavior:smooth;scroll-snap-type:x mandatory;scrollbar-width:none;touch-action:pan-x}.character-height__track::-webkit-scrollbar{display:none}.character-height__track.is-dragging{cursor:grabbing;scroll-behavior:auto;scroll-snap-type:none}.character-height[data-focus-id]:not([data-focus-id=""]) .character-height__track{justify-content:center;padding-inline:0;overflow:hidden;cursor:default;scroll-snap-type:none}.character-height__character{position:relative;z-index:2;display:block;flex:0 0 168px;width:168px;height:100%;padding:0;overflow:visible;border:0;color:var(--text-main);background:transparent;cursor:pointer;scroll-snap-align:center}.character-height__ground{position:absolute;bottom:calc(var(--height-floor-offset) - 5px);left:50%;width:74px;height:8px;border:1px solid color-mix(in srgb,var(--archive-border) 52%,transparent);border-radius:50%;background:color-mix(in srgb,#020617 42%,transparent);opacity:.46;transform:translate(-50%);transition:border-color .15s ease,box-shadow .15s ease,opacity .15s ease,width .15s ease}.character-height__character img{position:absolute;bottom:var(--height-floor-offset);left:50%;z-index:2;width:auto;max-width:none;height:var(--render-height);opacity:.76;filter:saturate(.78) brightness(.86);pointer-events:none;transform:translate(calc(-50% + var(--x-offset))) translateY(var(--baseline-offset));transform-origin:center bottom;transition:opacity .16s ease,filter .16s ease,transform .16s ease;user-select:none}.character-height__label{position:absolute;right:5px;bottom:5px;left:5px;z-index:5;display:grid;grid-template-rows:minmax(24px,auto) 16px;align-content:end;min-height:54px;padding:5px 6px 3px;border-top:1px solid color-mix(in srgb,var(--archive-border) 38%,transparent);background:color-mix(in srgb,var(--panel-strong) 72%,transparent);text-align:center;pointer-events:none}.character-height__label strong{align-self:center;font-size:.7rem;font-weight:500;line-height:1.25;overflow-wrap:anywhere}.character-height__label span{color:var(--text-muted);font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:.64rem}.character-height__character:hover,.character-height__character:focus-visible,.character-height__character[aria-pressed=true]{z-index:7;outline:none}.character-height__character:hover img,.character-height__character:focus-visible img,.character-height__character[aria-pressed=true] img{opacity:1;filter:none;transform:translate(calc(-50% + var(--x-offset))) translateY(calc(var(--baseline-offset) - 4px))}.character-height__character:hover .character-height__ground,.character-height__character:focus-visible .character-height__ground,.character-height__character[aria-pressed=true] .character-height__ground{width:92px;border-color:var(--archive-accent);box-shadow:0 0 14px color-mix(in srgb,var(--archive-accent) 52%,transparent);opacity:.9}.character-height__character:focus-visible .character-height__label,.character-height__character[aria-pressed=true] .character-height__label{border-color:var(--archive-accent-alt);background:color-mix(in srgb,var(--accent) 20%,var(--panel-strong) 80%)}@keyframes character-archive-panel-in{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@media(max-width:760px){.character-archive__header{grid-template-columns:minmax(0,1fr) auto}.character-archive__tab{min-width:0;padding-inline:9px}}@media(max-width:620px){.character-archive{--archive-content-height: 720px}.character-archive__header{grid-template-columns:1fr;min-height:116px}.character-archive__tabs{grid-template-columns:repeat(2,minmax(0,1fr));min-height:52px}.character-archive__tab{grid-template-columns:19px 28px minmax(0,1fr) auto;gap:6px;padding-inline:7px;font-size:.78rem}.character-archive__tab-icon{width:28px;height:28px}.character-archive__controls{min-height:52px;justify-content:center;padding:7px 10px;border-top:1px solid color-mix(in srgb,var(--archive-border) 54%,transparent)}.character-height__track{padding-right:44px;padding-left:44px}.character-height__controls-shell,.character-height__focus-menu{width:min(228px,calc(100vw - 20px))}}@media(prefers-reduced-motion:reduce){.character-archive__panel:not([hidden]){animation:none}.character-archive__tab:after,.character-height__track,.character-height__character img,.character-height__ground,.character-height__active-line,.character-height__focus-menu{transition:none}.character-height__character:hover img,.character-height__character:focus-visible img,.character-height__character[aria-pressed=true] img{transform:translate(calc(-50% + var(--x-offset))) translateY(var(--baseline-offset))}}
