*{box-sizing:border-box;margin:0;padding:0}:root{--paper:#efe6d4;--ink:#241f2a;--red:#b3262b;--gold:#c98d17;--blue:#3f7fb3;--card:#fbf7ee}html,body{height:100%;color:var(--ink);background:var(--paper);overflow:hidden}body{-webkit-font-smoothing:antialiased;font-family:Iowan Old Style,Palatino Linotype,Palatino,Georgia,serif}canvas{touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block;position:fixed;inset:0}button{font:inherit;color:inherit}.mono{text-transform:uppercase;letter-spacing:.24em;font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:11px}#cap{text-align:center;text-shadow:0 0 18px var(--paper), 0 0 6px var(--paper);pointer-events:none;opacity:0;filter:blur(8px);padding:0 clamp(16px,11vw,170px);font-size:clamp(20px,2.3vw,32px);font-style:italic;line-height:1.35;transition:opacity 1.2s,filter 1.2s,transform 1.2s;position:fixed;bottom:10vh;left:0;right:0;transform:translateY(10px)}#cap.show{opacity:1;filter:blur();transform:none}#prog{background:linear-gradient(90deg, #1d1b26, var(--red) 60%, var(--gold));opacity:.55;width:0;height:2px;position:fixed;bottom:0;left:0}#hud{z-index:6;pointer-events:none;opacity:0;transition:opacity .8s;position:fixed;bottom:18px;left:22px}body.playing #hud{opacity:1}body.playing #hud button{pointer-events:auto}#year{font-variant-numeric:lining-nums tabular-nums;color:#241f2ac7;letter-spacing:.02em;text-shadow:0 0 10px var(--paper);margin:0 0 8px 2px;font-size:clamp(30px,3.4vw,46px)}#hud .row{align-items:center;gap:14px;display:flex}#pause{background:var(--paper);min-width:108px}#hint{color:#241f2a8c;text-shadow:0 0 8px var(--paper)}@media (width<=640px){#hint{display:none}}.chrome{color:#241f2ab3;cursor:pointer;background:0 0;border:1px solid #241f2a40;border-radius:20px;padding:8px 12px;transition:border-color .3s,color .3s,opacity .6s}.chrome:hover,.chrome:focus-visible{color:var(--ink);border-color:#241f2ab3}#top{z-index:6;gap:10px;display:flex;position:fixed;top:20px;right:22px}#lang span{opacity:.4;transition:opacity .3s}#lang span.on{opacity:1}#back{pointer-events:none;opacity:0;position:fixed;top:20px;left:22px}body.playing #back{pointer-events:auto;opacity:1}#again{pointer-events:none;cursor:pointer;opacity:0;background:0 0;border:1px solid #241f2a59;border-radius:24px;padding:11px 22px;transition:opacity 1.4s,background .3s,color .3s;position:fixed;bottom:4.5vh;left:50%;transform:translate(-50%)}#again.show{pointer-events:auto;opacity:1}#again:hover{color:var(--paper);background:var(--ink)}#intro{z-index:5;text-align:center;background:radial-gradient(#f4ecdc 0%,#e9dfca 100%);flex-direction:column;justify-content:center;align-items:center;gap:18px;padding:0 6vw;transition:opacity 1.6s,visibility 1.6s;display:flex;position:fixed;inset:0}#intro.gone{visibility:hidden;opacity:0}#intro h1{letter-spacing:.02em;font-size:clamp(54px,9vw,120px);font-style:italic;font-weight:400}#intro svg{width:min(460px,70vw);height:70px;overflow:visible}#intro svg path{fill:none;stroke:#1d1b26;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:900;stroke-dashoffset:900px;animation:3.4s cubic-bezier(.6,.1,.3,1) infinite ecg}#intro svg path.r{opacity:.8;stroke:var(--red);animation-delay:.25s}@keyframes ecg{0%{stroke-dashoffset:900px}60%{stroke-dashoffset:0;opacity:1}to{stroke-dashoffset:0;opacity:0}}#intro .who{letter-spacing:.04em;font-size:clamp(18px,1.8vw,24px)}#intro .tagline{color:#241f2abf;font-size:clamp(16px,1.6vw,21px);font-style:italic}#intro .paths{align-items:baseline;gap:22px;margin-top:10px;display:flex}#intro .sep{color:#241f2a4d;font-size:clamp(26px,3vw,40px)}.path{cursor:pointer;background:0 0;border:none;padding:4px 6px;font-size:clamp(30px,3.6vw,48px);font-style:italic;position:relative}.path:after{content:"";background:var(--red);transform-origin:0;height:1.5px;transition:transform .5s;position:absolute;bottom:0;left:6px;right:6px;transform:scaleX(0)}.path:not(:disabled):hover:after,.path:not(:disabled):focus-visible:after{transform:scaleX(1)}.path:disabled{color:#241f2a59;cursor:default}.path small{vertical-align:middle;font-style:normal}#intro .call{color:#241f2a73;animation:2.6s ease-in-out infinite breathe}@keyframes breathe{50%{opacity:.35}}#cards{pointer-events:none;position:fixed;inset:0}#cards.off{display:none}.card{opacity:0;will-change:transform;width:min(360px,100vw - 32px);transition:opacity .8s;position:absolute;top:0;left:0}.card.shown{opacity:1}.card .tag{color:#241f2abf;letter-spacing:.18em;white-space:nowrap;pointer-events:auto;cursor:pointer;border:none;border-left:1.5px solid var(--red);background:#efe6d4bf;padding:4px 8px;font-size:10px;transition:color .3s,background .3s}.card .tag:hover,.card .tag:focus-visible,.card.open .tag{color:var(--ink);background:#f4ecdcf2}.card.open .tag{pointer-events:none;opacity:0;height:0;padding-block:0;overflow:hidden}.card .body{opacity:0;transform-origin:50% 0;grid-template-rows:0fr;margin-top:10px;transition:grid-template-rows .6s,transform .95s cubic-bezier(.25,1.3,.4,1),opacity .4s;display:grid;position:relative;transform:perspective(1400px)rotateX(-90deg)rotate(-1deg)}.card.open .body{pointer-events:auto;opacity:1;grid-template-rows:1fr;transform:perspective(1400px)rotateX(0)rotate(-1deg)}.card .body:before{z-index:1;content:"";background:#d6c496b3;width:84px;height:20px;margin-left:-42px;position:absolute;top:-9px;left:50%;transform:rotate(-2deg);box-shadow:0 1px 2px #00000014}.card .inner{scrollbar-width:thin;background:var(--card);border-radius:2px;min-height:0;transition:padding .6s;position:relative;overflow:hidden;box-shadow:inset 0 1px #fff9,0 12px 28px -8px #3c281459,0 2px 5px #3c28141f}.card .inner:after{pointer-events:none;content:"";background:linear-gradient(#0000 49.6%,#785a3217 50%,#0000 51.5%);position:absolute;inset:0}.card.open .inner{overscroll-behavior:contain;max-height:58vh;padding:20px 20px 16px;overflow-y:auto}.card .kind{color:var(--red);letter-spacing:.14em;justify-content:space-between;gap:12px;font-size:10px;display:flex}.card .kind .when{color:#241f2a99;white-space:nowrap}.card .route{color:var(--blue);letter-spacing:.08em;margin-top:8px;font-size:9.5px;line-height:1.6}.card .route.online{color:var(--gold)}.card section{margin-top:14px}.card section+section{border-top:1px dashed #241f2a40;padding-top:12px}.card h3{font-size:21px;font-weight:500;line-height:1.15}.card .role{margin-top:2px;font-size:16px;font-style:italic}.card .dates{color:#241f2a99;letter-spacing:.12em;flex-wrap:wrap;align-items:center;gap:5px 8px;margin:7px 0 6px;font-size:10px;display:flex}.card .badge{border:1px solid;border-radius:99px;padding:1px 7px;font-size:9px}.card .badge.away{color:var(--blue)}.card .sum{font-size:15px;line-height:1.45}.card ul{color:#241f2ae0;margin:7px 0 0 1.1em;font-size:14px;line-height:1.4}.card li+li{margin-top:3px}.card li::marker{color:var(--red);content:"✕  ";font-size:9px}@media (prefers-reduced-motion:reduce){#intro svg path,#intro .call{stroke-dashoffset:0;animation:none}}#cards.overview .card .nm{display:none}#cards.overview .card.open .nm,#cards.overview .card .tag:hover .nm,#cards.overview .card .tag:focus-visible .nm{display:inline}.card.open,.card:hover,.card:focus-within{z-index:2}#intro.instant{transition:none}
