:root{--bg: #2a211b;--ink: #f6eedf;--muted: #cdbda3;--panel: rgba(36, 27, 20, .72);--line: rgba(246, 238, 223, .18);--fresh: #ffc46b;--font: "Inter", "Helvetica Neue", Helvetica, Arial, sans-serif}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--ink);font-family:var(--font);overflow:hidden}#scene{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none}.top{position:fixed;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;pointer-events:none}.top>*{pointer-events:auto}.pickers{display:flex;align-items:center;gap:8px;flex-wrap:wrap}select{font:600 15px var(--font);color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:7px 30px 7px 14px;appearance:none;cursor:pointer;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 16px) 50%,calc(100% - 11px) 50%;background-size:5px 5px;background-repeat:no-repeat}select:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--fresh);outline-offset:2px}.vs{color:var(--muted);font-size:13px}.round{width:32px;height:32px;border-radius:50%;border:1px solid var(--line);background:var(--panel);color:var(--ink);font:600 18px var(--font);cursor:pointer;line-height:1}.scale{font-size:13px;color:var(--muted);background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:7px 14px;white-space:nowrap}.scale b{color:var(--ink);font-weight:600}.right{display:flex;align-items:center;gap:8px}.reset{font:600 13px var(--font);color:var(--bg);background:var(--fresh);border:0;border-radius:999px;padding:7px 14px;cursor:pointer;white-space:nowrap}.reset[hidden]{display:none}.income{display:flex;align-items:center;gap:2px;font-size:13px;color:var(--muted);background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:4px 12px;white-space:nowrap}.income input{width:76px;font:600 13px var(--font);color:var(--ink);background:transparent;border:0;border-bottom:1px dashed var(--line);padding:3px 2px;outline:none;font-variant-numeric:tabular-nums}.income input::placeholder{color:var(--muted);font-weight:400}.income input:focus{border-bottom-color:var(--fresh)}.income input.bad{border-bottom-color:#d9573a}.tag.yours i{font-style:normal;font-weight:700;color:#a2422c}.hint{position:fixed;left:50%;bottom:86px;transform:translate(-50%);font-size:12px;color:var(--muted);background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:6px 14px;pointer-events:none;transition:opacity .6s}.hint.gone{opacity:0}.overlays{position:fixed;inset:0;pointer-events:none}.tag{position:absolute;left:0;top:0;transform:translate(-50%,-50%);white-space:nowrap;text-align:center}.tag{transform:translate(-50%,-100%);margin-top:-10px;background:#f3ead6;color:#2d241c;border-radius:6px;padding:8px 14px 9px;box-shadow:0 6px 20px #00000059;font-size:14px;line-height:1.45}.tag:before{content:"";position:absolute;left:50%;bottom:-10px;height:10px;border-left:1px solid rgba(243,234,214,.7)}.tag b{font-weight:700;font-variant-numeric:tabular-nums;transition:color .4s}.tag.jump b{color:#c4561c}.tag .note{display:block;margin-top:3px;font-size:11px;color:#7a6a55}.tag.stale .nums{opacity:.45}.tag.stale .note{color:#a2422c;font-weight:600}.timeline{position:fixed;left:0;right:0;bottom:0;display:flex;align-items:center;gap:16px;padding:14px 22px 20px}.year{font:700 52px/1 var(--font);font-variant-numeric:tabular-nums;letter-spacing:-.02em;min-width:3.1em;text-shadow:0 2px 12px rgba(0,0,0,.4)}.play{width:44px;height:44px;flex:none;border-radius:50%;border:1px solid var(--line);background:var(--panel);cursor:pointer;position:relative}.play:before{content:"";position:absolute;inset:0;margin:auto;width:12px;height:14px;border-left:4px solid var(--ink);border-right:4px solid var(--ink)}.play.paused:before{width:0;height:0;border-left:13px solid var(--ink);border-top:8px solid transparent;border-bottom:8px solid transparent;border-right:0;margin-left:17px}input[type=range]{flex:1;accent-color:var(--fresh);height:28px;cursor:pointer}.speed{flex:none;display:flex;height:32px;border-radius:999px;border:1px solid var(--line);background:var(--panel);padding:2px}.speed button{min-width:36px;border:0;border-radius:999px;background:transparent;color:var(--muted);font:700 13px var(--font);cursor:pointer}.speed button[aria-pressed=true]{color:var(--bg);background:var(--fresh)}body.portrait .tag{transform:translate(-50%);margin-top:8px}body.portrait .hint{bottom:auto;top:var(--under-header, 120px)}body.portrait .tag:before{bottom:auto;top:-8px;height:8px}@media(max-width:640px){.top{flex-direction:column;align-items:stretch;gap:6px;padding:8px 8px 0}.pickers{justify-content:center;flex-wrap:nowrap;gap:6px}.pickers select{max-width:38vw;font-size:13px}.right{flex-wrap:wrap;justify-content:center;gap:5px}.chip,.scale,.income{font-size:12px;padding:5px 9px}.income input{width:62px;font-size:12px}.lang{height:28px}.timeline{flex-wrap:wrap;row-gap:4px}.timeline #scrub{order:9;flex:1 0 100%}.hint{bottom:104px;max-width:86vw;white-space:normal;text-align:center}.caption{font-size:12px;padding:5px 10px}.detail{min-width:0;width:min(300px,92vw);font-size:12px}.about{width:calc(100vw - 16px);padding:16px 16px 12px;font-size:13px}.year{font-size:36px}.timeline{padding:10px 14px 16px;gap:10px}.tag{font-size:12px;padding:6px 10px 7px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}.detail{position:fixed;z-index:20;pointer-events:none;min-width:240px;background:#1c1510eb;border:1px solid var(--line);border-radius:8px;padding:10px 14px 11px;font-size:13px;line-height:1.5;box-shadow:0 8px 24px #0006}.detail[hidden]{display:none}.detail .head{font-weight:700;font-size:14px;margin-bottom:4px}.detail .row{display:flex;justify-content:space-between;gap:18px}.detail .row span{color:var(--muted)}.detail .row b{font-weight:600;font-variant-numeric:tabular-nums}.detail .row.sub{font-size:12px}.detail .row.missing b{color:var(--muted)}.detail .sep{height:1px;background:var(--line);margin:6px 0}.detail .gap{margin-top:5px;font-size:11.5px;color:#f08a6a;font-weight:600}.caption{position:fixed;z-index:5;left:0;right:0;margin:0 auto;width:fit-content;top:64px;transform:translateY(-6px);max-width:min(880px,92vw);box-sizing:border-box;text-align:center;font-size:14px;line-height:1.45;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:7px 16px;opacity:0;pointer-events:none;transition:opacity .5s,transform .5s}.caption.on{opacity:1;transform:none}.chip{font:600 13px var(--font);color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:7px 13px;cursor:pointer;white-space:nowrap}.chip:hover{border-color:var(--fresh)}.toast{position:fixed;z-index:30;left:50%;bottom:96px;transform:translate(-50%);background:var(--fresh);color:var(--bg);font-weight:700;font-size:13px;border-radius:999px;padding:7px 16px;opacity:0;pointer-events:none;transition:opacity .25s}.toast.on{opacity:1}.about{max-width:680px;width:calc(100vw - 32px);max-height:calc(100vh - 48px);overflow:auto;background:#f3ead6;color:#2d241c;border:0;border-radius:10px;padding:22px 28px 18px;font-size:14px;line-height:1.55;box-shadow:0 20px 60px #00000080}.about::backdrop{background:#140e0a8c}.about h2{margin:0 0 8px;font-size:20px}.about h3{margin:16px 0 4px;font-size:15px}.about ul{margin:4px 0;padding-left:20px}.about li{margin:3px 0}.about .small{color:#7a6a55;font-size:12px;margin-top:14px}.about .close{position:sticky;float:right;top:0;font-size:24px;line-height:1;background:none;border:0;color:#5a4a38;cursor:pointer}
