:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box;margin:0}html,body{color:#e8dcc3;background:#0a0805;height:100%;font-family:Georgia,Times New Roman,serif;overflow:hidden}#root{width:100%}.canvas-fixed{z-index:0;position:fixed;inset:0}.overlay{z-index:10;position:fixed}h1,h2,h3{letter-spacing:.04em;font-weight:700}button{font:inherit;cursor:pointer}.hub{max-width:26rem;top:18vh;left:4rem}.hub h1{color:#f2e8d0;margin-bottom:.4rem;font-size:2rem}.tagline{color:#cfc4ab;margin-bottom:2rem;font-style:italic}.journey-link{color:inherit;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#14100ab3;border:1px solid #e8b54a59;border-radius:6px;margin-bottom:1rem;padding:1rem 1.2rem;text-decoration:none;transition:border-color .2s,background .2s;display:block}.journey-link:hover{background:#1e180ed9;border-color:#e8b54acc}.journey-title{color:#f2e8d0;font-size:1.1rem;font-weight:700;display:block}.journey-meta{letter-spacing:.15em;text-transform:uppercase;color:#c9a050;margin:.3rem 0 .5rem;font-size:.75rem;display:block}.journey-intro{color:#cfc4ab;font-size:.85rem;line-height:1.5;display:block}.journey-header{color:#e8dcc3;text-shadow:0 1px 4px #000c;justify-content:space-between;align-items:center;padding:1.2rem 2rem;font-size:1.05rem;display:flex;top:0;left:0;right:0}.journey-header a{color:#c9a050;font-size:1.3rem;text-decoration:none}.story-card{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#14100ae0;border:1px solid #e8b54a59;border-radius:6px;width:21rem;padding:1.4rem;transition:opacity .15s linear;top:28vh;right:4rem}.story-card h3{color:#f2e8d0;margin:.2rem 0 .6rem;font-size:1.25rem}.story-card p{color:#cfc4ab;font-size:.9rem;line-height:1.55}.card-date{letter-spacing:.2em;text-transform:uppercase;color:#c9a050;font-size:.7rem}.battle-button{color:#e8b54a;background:#e8b54a26;border:1px solid #e8b54a99;border-radius:4px;margin-top:1rem;padding:.55rem 1rem}.battle-button:hover{background:#e8b54a4d}.timeline-panel{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#14100ad9;border:1px solid #e8b54a59;border-radius:6px;flex-direction:column;gap:.75rem;width:15rem;max-height:80vh;padding:1rem;display:flex;top:50%;left:2rem;transform:translateY(-50%)}.timeline-list{scrollbar-width:thin;scrollbar-color:#e8b54a4d transparent;flex-direction:column;flex:1;gap:.25rem;list-style:none;display:flex;overflow-y:auto}.timeline-item{cursor:pointer;border:1px solid #0000;border-radius:4px;align-items:flex-start;gap:.5rem;padding:.4rem .5rem;transition:background .15s,border-color .15s;display:flex}.timeline-item:hover{background:#e8b54a1a;border-color:#e8b54a4d}.timeline-item--active{background:#e8b54a1f;border-color:#e8b54ab3}.timeline-bullet{color:#e8b54a;background:#e8b54a33;border:1px solid #e8b54a80;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:1.25rem;height:1.25rem;margin-top:.05rem;font-family:Georgia,serif;font-size:.65rem;display:flex}.timeline-item--active .timeline-bullet{color:#f2e8d0;background:#e8b54a80;border-color:#e8b54a}.timeline-info{flex-direction:column;gap:.1rem;min-width:0;display:flex}.timeline-name{color:#e8dcc3;font-size:.8rem;line-height:1.3}.timeline-item--active .timeline-name{color:#f2e8d0;font-weight:700}.timeline-date{letter-spacing:.1em;text-transform:uppercase;color:#c9a050;font-size:.65rem}.timeline-nav{border-top:1px solid #e8b54a33;justify-content:space-between;align-items:center;gap:.5rem;padding-top:.6rem;display:flex}.timeline-nav-btn{color:#e8b54a;background:#e8b54a1a;border:1px solid #e8b54a66;border-radius:4px;padding:.3rem .6rem;font-size:.9rem;transition:background .15s}.timeline-nav-btn:hover{background:#e8b54a40}.timeline-nav-btn:disabled{opacity:.5;cursor:default;pointer-events:none}.timeline-nav-hint{color:#9a8a6a;letter-spacing:.08em;text-align:center;font-size:.65rem}.battle-overlay{z-index:20;pointer-events:none;flex-direction:column;justify-content:space-between;display:flex;position:fixed;inset:0}.battle-header{pointer-events:auto;text-shadow:0 1px 4px #000c;justify-content:space-between;align-items:flex-start;padding:1.2rem 2rem;display:flex}.battle-header h3{color:#f2e8d0;font-size:1.3rem}.battle-close{color:#c9a050;background:0 0;border:none;font-size:1.3rem}.battle-header-right{align-items:center;gap:.8rem;display:flex}.battle-basemap-switcher,.battle-view-switcher{border:1px solid #e8b54a66;border-radius:4px;display:flex;overflow:hidden}.battle-view-btn{color:#c9a050;letter-spacing:.08em;background:#14100ab3;border:none;border-right:1px solid #e8b54a4d;padding:.35rem .7rem;font-size:.75rem;transition:background .15s,color .15s}.battle-view-btn:last-child{border-right:none}.battle-view-btn:hover{color:#e8b54a;background:#e8b54a26}.battle-view-btn--active{color:#e8b54a;background:#e8b54a47;font-weight:700}.topo-attribution{color:#e8dcc380;pointer-events:none;z-index:21;font-size:9px;position:fixed;bottom:7rem;left:1rem}.battle-strengths{flex-wrap:wrap;gap:.7rem;margin-top:.4rem;display:flex}.battle-strength-chip{color:#cfc4ab;letter-spacing:.04em;align-items:center;gap:.35rem;font-size:.72rem;display:inline-flex}.battle-strength-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;box-shadow:0 0 3px #0009}.battle-footer{pointer-events:auto;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#14100ae0;border:1px solid #e8b54a66;border-radius:8px;grid-template-columns:auto 1fr;align-items:center;gap:.4rem .9rem;width:min(720px,100% - 3rem);margin:0 auto 1.6rem;padding:.9rem 1.2rem;display:grid}.battle-play{color:#e8b54a;background:0 0;border:1px solid #e8b54a80;border-radius:4px;width:2.2rem;height:2.2rem;font-size:.95rem}.battle-footer input[type=range]{accent-color:#e8b54a;width:100%}.battle-caption{color:#cfc4ab;grid-column:1/-1;font-size:.9rem;font-style:italic;line-height:1.5}.no-webgl{text-align:center;background:#0a0805;flex-direction:column;justify-content:center;align-items:center;gap:1.2rem;padding:2rem;display:flex;position:fixed;inset:0}.no-webgl h1{color:#e8b54a;letter-spacing:.06em;font-family:Georgia,Times New Roman,serif;font-size:2.4rem}.no-webgl p{color:#cfc4ab;max-width:36rem;font-size:1rem;line-height:1.6}
