*,:after,:before{box-sizing:border-box}body,html{height:100%;margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:var(--font-ui);font-size:var(--text-base);line-height:1.55;min-height:100vh;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;transition:background-color .32s ease,color .32s ease}body:before{content:"";position:fixed;inset:0;pointer-events:none;background:var(--grain);z-index:0;transition:opacity .32s ease}a{color:var(--accent-text);text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}button{cursor:pointer;font-family:inherit}::selection{background:var(--accent-glow);color:var(--ink)}:focus-visible{outline:2px solid var(--accent-text);outline-offset:2px;border-radius:2px}h1,h2,h3,h4{font-family:var(--font-display);font-weight:500;letter-spacing:-.02em;color:var(--ink);margin:0;line-height:1.15}p{color:var(--ink-2);margin:0}:root{--breakpoint-wide:900px;--map-panel-narrow-max-h:60vh;--map-panel-wide-width:360px;--map-header-offset:60px;--map-footer-offset:0px;--map-control-top:calc(var(--sp-5) + var(--sp-5) + var(--text-2xl) + var(--sp-4));--color-focus-ring:var(--accent-text);--p-cenozoic:#f0c87a;--p-cretaceous:#7fc97f;--p-jurassic:#45a679;--p-triassic:#b08a5b;--p-permian:#d97a5f;--p-carboniferous:#6b9ec9;--p-devonian:#c98a6b;--p-silurian:#b3c97f;--p-ordovician:#5fa39c;--p-cambrian:#8a8c5f;--font-display:"Fraunces","Source Serif 4",Georgia,serif;--font-body:"Source Serif 4",Georgia,serif;--font-ui:"Inter",system-ui,sans-serif;--font-mono:"JetBrains Mono",ui-monospace,monospace;--text-xs:11px;--text-sm:12.5px;--text-base:14px;--text-md:15.5px;--text-lg:18px;--text-xl:22px;--text-2xl:28px;--text-3xl:38px;--text-display:56px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--sp-7:48px;--sp-8:64px;--sp-9:96px;--r-sm:4px;--r-md:6px;--r-lg:10px;--r-xl:16px;--r-pill:999px}[data-mode=study]{--bg:#0f0c08;--bg-deep:#07060a;--bg-paper:#16120c;--surface:#1c1812;--surface-2:#221d15;--surface-overlay:rgba(28,24,18,0.88);--surface-deep:#0a0805;--ink:#f1e6cf;--ink-2:#e0d2b5;--muted:#a89878;--muted-2:#6e6248;--line:#2c251a;--line-soft:#1f1a12;--line-strong:#4a3f2c;--accent:#e8a559;--accent-deep:#d97f2c;--accent-soft:rgba(232,165,89,0.08);--accent-glow:rgba(232,165,89,0.22);--accent-text:var(--accent);--rust:#d96a52;--moss:#92b378;--slate:#7a93ae;--shadow-xs:0 1px 2px rgba(0,0,0,0.5);--shadow-sm:0 2px 8px rgba(0,0,0,0.55),0 1px 2px rgba(0,0,0,0.4);--shadow-md:0 6px 18px rgba(0,0,0,0.6),0 2px 6px rgba(0,0,0,0.4);--shadow-lg:0 18px 44px rgba(0,0,0,0.7),0 6px 14px rgba(0,0,0,0.5);--shadow-inset:inset 0 1px 0 rgba(255,220,160,0.05);--grain:radial-gradient(ellipse 90% 60% at 50% 110%,rgba(232,165,89,0.06),transparent 65%),radial-gradient(ellipse 60% 40% at 50% -10%,rgba(232,165,89,0.04),transparent 70%),repeating-linear-gradient(178deg,transparent,transparent 24px,rgba(232,165,89,0.018) 0,rgba(232,165,89,0.018) 25px);--map-ocean:#0a0a10;--map-land:#1f1a12;--map-land-2:#2a2218;--map-border:#3d3325}[data-mode=discover]{--bg:#fff7e6;--bg-deep:#f7ecd2;--bg-paper:#ffffff;--surface:#ffffff;--surface-2:#fffaf0;--surface-overlay:rgba(255,255,255,0.88);--surface-deep:#f7ecd2;--ink:#1d2a4d;--ink-2:#2c3a5f;--muted:#5a6786;--muted-2:#8a95ad;--line:#ffd180;--line-soft:#ffe6b8;--line-strong:#f0a040;--accent:#ff7043;--accent-deep:#e0532a;--accent-soft:rgba(255,112,67,0.10);--accent-glow:rgba(255,112,67,0.18);--accent-text:#c4441f;--rust:#d9532e;--moss:#6a9a52;--slate:#5a7090;--shadow-xs:0 1px 2px rgba(29,42,77,0.05);--shadow-sm:0 2px 6px rgba(29,42,77,0.08);--shadow-md:0 6px 16px rgba(29,42,77,0.12);--shadow-lg:0 12px 28px rgba(29,42,77,0.16);--shadow-overlay:0 4px 18px rgba(29,42,77,0.16);--shadow-inset:inset 0 1px 0 rgba(255,255,255,0.7);--grain:radial-gradient(ellipse 80% 50% at 50% 0%,rgba(255,220,170,0.5),transparent 60%),repeating-linear-gradient(178deg,transparent,transparent 22px,rgba(255,112,67,0.022) 0,rgba(255,112,67,0.022) 23px);--map-ocean:#e6dcc4;--map-land:#f7ecd2;--map-land-2:#f0e0b8;--map-border:#c4a878;--color-bg:#fff7e6;--color-fg:#1d2a4d;--color-muted:#5a6786;--color-accent:#ff7043;--color-border:#ffd180;--color-surface:#ffffff;--color-surface-translucent:rgba(255,255,255,0.88);--font-body:var(--font-nunito),system-ui,sans-serif;--font-display:var(--font-fredoka),var(--font-nunito),system-ui,sans-serif;--font-ui:var(--font-nunito),system-ui,sans-serif;--text-base:18px;--text-lg:22px;--text-xl:28px;--text-2xl:38px;--leading-body:1.6;--space-1:6px;--space-2:12px;--space-3:18px;--space-4:24px;--space-5:36px;--space-6:48px;--space-7:72px;--space-8:96px;--radius-sm:8px;--radius-md:16px;--radius-lg:24px;--container-max:960px;--touch-target-min:44px}.page-root{position:relative;height:100dvh;min-height:100vh;overflow:hidden}.map-stage{position:absolute;inset:0;z-index:0}.chrome-bottom,.chrome-top{left:0;right:0;background:var(--surface);background:var(--surface-overlay);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.chrome-top{position:fixed;top:0;z-index:10;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--shadow-md)}[data-mode=study] .chrome-top{background:var(--surface-overlay);box-shadow:0 1px 0 var(--accent-glow),var(--shadow-md)}[data-mode=discover] .chrome-top{background:rgba(255,247,230,.93)}.chrome-bottom{position:fixed;bottom:0;z-index:1;box-shadow:var(--shadow-md)}.page-root .mapboxgl-ctrl-bottom-left,.page-root .mapboxgl-ctrl-bottom-right{bottom:calc(var(--map-footer-offset, 0px) + var(--sp-2))}.map-controls-bar{position:absolute;bottom:var(--sp-4);left:var(--sp-4);right:var(--sp-4);z-index:5;display:flex;align-items:flex-end;gap:var(--sp-3);transition:padding-left .25s,right .25s}.map-controls-bar[data-sidebar-open=true]{padding-left:264px}.map-controls-bar[data-panel-open=true]{right:316px}@keyframes dinodig-slide-in-right{0%{opacity:0;transform:translateX(16px)}to{opacity:1;transform:translateX(0)}}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--line);border-radius:99px;border:2px solid var(--bg)}::-webkit-scrollbar-thumb:hover{background:var(--line-strong)}