@import "https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@500;600;700&family=Noto+Sans+SC:wght@400;500;600&display=swap";:root{color:#302d27;font-synthesis:none;--paper:#f7f5ef;--red:#9f2f24;--muted:#817b70;--line:#ddd6c9;--serif:"Noto Serif SC", "SimSun", serif;background:#f7f5ef;font-family:Noto Sans SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html,#root{max-width:100%;overflow-x:hidden}body{min-width:0;max-width:100%;margin:0;overflow-x:hidden}a{color:inherit}button,input{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.35}a:focus-visible,button:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--red);outline-offset:5px}.app-shell{flex-direction:column;width:100%;max-width:100%;min-height:100dvh;display:flex;overflow-x:hidden}.topbar{flex-shrink:0;justify-content:center;align-items:center;height:104px;padding:0 24px;display:flex}.nav{--nav-height:48px;width:var(--nav-height);height:var(--nav-height);background:#ffffffe0;border-radius:60px;justify-content:space-evenly;align-items:center;gap:4px;padding:0 12px;transition:width .5s .5s;display:flex;position:relative;overflow:visible;box-shadow:0 10px 15px #302d2714}.nav.active{grid-template-columns:repeat(7,minmax(0,1fr));width:min(840px,100vw - 32px);transition-delay:0s;display:grid}.nav a{color:#4d4941;opacity:0;pointer-events:none;white-space:nowrap;border-radius:20px;min-width:0;padding:8px 18px;font-size:13px;text-decoration:none;transition:all .5s;transform:scale(0)}.nav.active a{opacity:1;pointer-events:auto;text-align:center;justify-self:center;transition:opacity .5s .75s,transform .5s .75s;transform:scale(1)}.nav.active a:first-of-type{grid-column:1}.nav.active a:nth-of-type(2){grid-column:2}.nav.active a:nth-of-type(3){grid-column:3}.nav.active a:nth-of-type(4){grid-column:5}.nav.active a:nth-of-type(5){grid-column:6}.nav.active a:nth-of-type(6){grid-column:7}.nav a:hover,.nav a.active{color:#fff;background:var(--red)}.nav-toggle{z-index:2;width:var(--nav-height);height:var(--nav-height);background:var(--red);cursor:pointer;border:0;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:all .5s .5s;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.nav.active .nav-toggle{background:var(--red);width:30px;height:30px;transition-delay:0s;left:50%;transform:translate(-50%,-50%);box-shadow:0 10px 15px #302d2714}.nav-toggle-label{color:#fff;font:600 24px/1 var(--serif);transition:opacity .2s,transform .2s}.nav-toggle:before,.nav-toggle:after{content:"";opacity:0;background:#fff;border-radius:3px;width:24px;height:2.5px;transition:opacity .2s;position:absolute}.nav-toggle:before{transform:translateY(0)rotate(45deg)scale(.6)}.nav-toggle:after{transform:translateY(0)rotate(315deg)scale(.6)}.nav.active .nav-toggle-label{opacity:0;transform:scale(.6)}.nav.active .nav-toggle:before,.nav.active .nav-toggle:after{opacity:1}.canvas{flex:1;align-items:center;padding:52px 0 36px;display:flex}.history-timeline{width:100%;min-width:0;max-width:100%;margin:0}.timeline-toolbar{flex-wrap:wrap;justify-content:center;align-items:center;gap:24px;min-width:0;max-width:100%;padding-top:18px;display:flex}.scale-control{justify-content:center;align-items:center;gap:clamp(8px,1.4vw,18px);min-width:0;display:flex}.scale-control>span{color:var(--muted);margin-right:14px;font-size:11px}.scale-control button{background:0 0;border:0;place-items:center;width:clamp(48px,6vw,72px);height:clamp(48px,6vw,72px);padding:4px;transition:transform .18s;display:grid;position:relative}.scale-control button img{z-index:1;object-fit:contain;width:82%;height:82%;display:block;position:relative}.scale-control button.selected{transform:scale(1.08)}.scale-control button.selected:before{content:"";z-index:0;filter:blur(7px);pointer-events:none;background:radial-gradient(circle,#ffc64de6 0%,#dc97247a 38%,#dc972400 74%);border-radius:50%;animation:2s ease-in-out infinite scaleIconGlow;position:absolute;inset:12%}.scale-control button.selected img{filter:drop-shadow(0 0 5px #ffc446f2)drop-shadow(0 0 12px #b88a3ba6)}@keyframes scaleIconGlow{0%,to{opacity:.58;transform:scale(.86)}50%{opacity:1;transform:scale(1.08)}}.scale-control button:hover{transform:translateY(-1px)scale(1.05)}.timeline-search{will-change:width;border:1px solid #b88a3b;border-radius:999px;order:1;align-items:center;gap:2px;width:42px;min-height:40px;padding:3px;transition:width .32s cubic-bezier(.2,.8,.2,1);display:flex;overflow:hidden}.timeline-search.open{width:240px}.timeline-search input{opacity:0;pointer-events:none;background:0 0;border:0;outline:0;flex:auto;width:0;min-width:0;padding:7px 0;font-size:12px;transition:opacity .16s}.timeline-search.open input{opacity:1;pointer-events:auto;padding-inline:9px}.search-toggle{color:#817b70;background:0 0;border:0;border-radius:50%;flex:0 0 32px;place-items:center;width:32px;height:32px;display:grid}.search-toggle:hover{color:var(--red);background:#eee7d9}.date-jump{border:1px solid #b88a3b;border-radius:999px;order:-1;justify-content:center;align-items:center;gap:2px;width:max-content;min-width:0;max-width:100%;padding:4px 4px 4px 10px;display:flex}.date-jump label{color:var(--muted);align-items:center;gap:6px;font-size:11px;display:flex}.date-jump input{background:0 0;border:0;outline:none;flex:0 0 100px;width:100px;min-width:0;padding:7px 2px;font-size:12px}.date-jump input:focus,.date-jump input:focus-visible{outline:none}.date-jump button,.pan-controls button{border:1px solid var(--line);background:0 0;place-items:center;width:32px;height:32px;display:grid}.date-jump button{border:0;border-radius:50%}.date-jump button[type=submit]{flex:0 0 28px;width:28px;margin-left:-2px}.date-jump label svg{color:#302d27}.date-jump input[type=text]::placeholder{color:#9a9286;opacity:.9}.date-jump input[type=date]::-webkit-calendar-picker-indicator{opacity:0;display:none}.date-calendar-button{color:#817b70;flex:0 0 24px;width:24px!important;height:24px!important}.date-calendar-button:hover,.date-jump button:hover{color:var(--red);background:0 0}.pan-controls button:not(:disabled):hover{border-color:var(--red);color:var(--red)}.date-error{color:var(--red);text-align:right;margin:10px 0 0;font-size:12px}.timeline-viewport{cursor:grab;touch-action:pan-y pinch-zoom;-webkit-user-select:none;user-select:none;width:100%;max-width:100%;height:360px;position:relative;overflow:hidden}.timeline-axis-line{z-index:0;pointer-events:none;background:linear-gradient(90deg,#d6b66a,#a87928);height:3px;position:absolute;top:222.5px;left:0;right:0}.timeline-span{z-index:1;pointer-events:none;background:#4d4a43;border-radius:1px;min-width:20px;height:4px;position:absolute}.timeline-span:before,.timeline-span:after{content:"";background:#4d4a43;border-radius:1px;width:3px;height:14px;position:absolute;top:-10px}.timeline-span:before{left:0}.timeline-span:after{right:0}.timeline-span-label{color:#5c5549;font:500 13px/1.4 var(--serif);white-space:nowrap;position:absolute;top:9px;left:50%;transform:translate(-50%)}.future-message{z-index:1;color:#a87928;font:500 17px/1.8 var(--serif);letter-spacing:2px;text-align:center;pointer-events:none;flex-direction:column;gap:6px;display:flex;position:absolute;top:52px;right:6%}.timeline-viewport.dragging,.timeline-viewport.dragging *{cursor:grabbing}.timeline-viewport:focus,.timeline-viewport:focus-visible{outline:none}.timeline-ruler{z-index:1;pointer-events:none;position:absolute;inset:0;overflow:hidden}.timeline-ruler text{font-family:var(--serif);fill:#ad8032;font-size:12px}.event-point{z-index:2;background:0 0;border:0;width:20px;height:20px;padding:0;position:absolute}.event-dot{background:var(--paper);border:1.5px solid #9b886d;border-radius:50%;width:8px;height:8px;display:block;position:absolute;top:6px;left:6px}.event-point.active .event-dot{background:var(--red);border-color:var(--red);box-shadow:0 0 0 4px #9f2f2410}.event-point:hover .event-dot{background:var(--red)}.event-stem{pointer-events:none;background:#d6cbb7;width:1px;position:absolute;bottom:15px;left:9px}.event-point.active .event-stem{background:#b98569}.event-label{text-align:left;display:block;position:absolute}.event-label time{font:10px/1.3 Georgia, var(--serif);color:#9a8c76;margin-bottom:2px;display:block}.event-label strong{-webkit-line-clamp:2;font:500 13px/1.4 var(--serif);color:#5c5244;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.event-point.active .event-label strong,.event-point:hover .event-label strong{color:var(--red)}.axis-end-label{color:#92806a;pointer-events:none;flex-direction:column;align-items:flex-end;gap:4px;font-size:10px;display:flex;position:absolute;top:268px}.axis-end-label b{color:var(--red);font-weight:500}.axis-empty{text-align:center;color:#9b917f;font:500 14px var(--serif);pointer-events:none;position:absolute;top:120px;left:0;right:0}.timeline-bottom{justify-content:flex-end;align-items:center;gap:16px;padding:7px 0 25px;display:flex}.pan-controls{gap:6px;display:flex}.history-reading{text-align:left;grid-template-columns:fit-content(360px) fit-content(620px);align-items:start;gap:clamp(28px,5vw,64px);width:fit-content;min-width:0;max-width:calc(100% - 48px);min-height:218px;margin:0 auto;padding-top:28px;display:grid}.reading-eyebrow{color:var(--red);justify-content:flex-start;align-items:center;gap:14px;margin:0 0 14px;font-size:10px;line-height:1.7;display:flex}.reading-eyebrow>span{color:var(--muted);font-size:9px}.visible-records{min-width:0}.visible-records button{text-align:left;background:0 0;border:0;justify-content:flex-start;align-items:baseline;gap:16px;width:100%;padding:8px 0;display:flex}.visible-records button>span{color:#978974;white-space:nowrap;flex:0 0 70px;font-size:9px}.visible-records button>b{color:#766b5a;font-size:11px;font-weight:400;line-height:1.7}.visible-records button.selected>b{color:var(--red)}.event-detail{min-width:0}.event-detail h2{font:600 21px/1.65 var(--serif);margin:0 0 13px}.event-detail>p:last-child{color:#807462;max-width:540px;margin:0;font-size:12px;line-height:2}.empty-records{text-align:center;grid-column:1/-1;padding:32px 0}.empty-records p{font:500 16px/1.8 var(--serif);color:#807462}.empty-records span{color:var(--muted);font-size:12px;line-height:1.8}footer{width:min(1240px,100% - 48px);padding:24px 0;padding-bottom:max(24px, env(safe-area-inset-bottom));color:var(--muted);margin:0 auto}.footer-meta{text-align:center;flex-wrap:wrap;justify-content:center;gap:8px 24px;font-size:12px;line-height:1.8;display:flex}.icp-link{white-space:nowrap;text-decoration:none}.icp-link:hover,.icp-link:focus-visible{text-decoration:underline}.police-record{color:inherit;white-space:nowrap;align-items:center;gap:4px;text-decoration:none;display:inline-flex}.police-record:hover,.police-record:focus-visible{text-decoration:underline}.police-record svg{flex:none}@media (width<=900px){.topbar{height:76px}.nav{gap:34px}.canvas{padding:38px 0 24px}.history-reading{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:32px;width:calc(100% - 56px)}}@media (width<=600px){.topbar{height:96px;padding:0 12px}.nav.active{width:calc(100vw - 20px)}.nav.active a{padding-inline:3px;font-size:11px}.nav a{white-space:nowrap;padding-inline:8px;font-size:13px}.canvas{padding-top:28px}.timeline-toolbar{flex-wrap:wrap;gap:16px;padding-top:16px}.scale-control{flex-wrap:wrap;justify-content:center;width:100%}.scale-control button{flex:0 clamp(46px,16vw,64px);width:clamp(46px,16vw,64px);height:clamp(46px,16vw,64px);padding:2px}.scale-control>span{margin-right:6px}.timeline-search{order:2}.timeline-search.open{width:min(240px,58vw)}.date-jump{justify-content:center;gap:0;width:max-content;max-width:calc(100% - 20px);padding-right:2px}.date-jump label{flex:none}.date-jump input{flex:0 0 100px;width:100px;max-width:38vw}.future-message{letter-spacing:1px;font-size:13px;top:58px;right:4%}.event-label strong{font-size:12px}.event-label time{font-size:9px;line-height:1.3}.timeline-ruler text{font-size:10px}.timeline-bottom{flex-wrap:wrap;padding-top:14px}.history-reading{grid-template-columns:minmax(0,1fr);gap:28px;width:calc(100% - 40px);min-height:220px}.event-detail h2{font-size:20px}.visible-records button{padding-block:10px}.empty-records{padding-top:20px}footer{width:calc(100% - 40px)}.footer-meta{gap:6px 16px;font-size:11px}}
