@import "tailwindcss"; @theme inline { --font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji", sans-serif; --font-display: var(--font-sans); --font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Monaco, Consolas, monospace;} :root { --bg: #ffffff; --bg-elevated: #ffffff; --bg-hover: #f7f9f9; --bg-active: #eff3f4; --panel: #ffffff; --panel-strong: #ffffff; --line: #eff3f4; --line-strong: #cfd9de; --ink: #0f1419; --ink-soft: #536471; --ink-mute: #8b98a5; --accent: #1d9bf0; --accent-hover: #1a8cd8; --accent-press: #177cc1; --accent-soft: rgb(29 155 240 / 10%); --accent-text: #ffffff; --alert: #f4212e; --alert-soft: rgb(244 33 46 / 10%); --like: #f91880; --like-soft: rgb(249 24 128 / 10%); --accent-on-ink: #1d9bf0; --ring: rgb(29 155 240 / 35%); --shadow: rgb(15 20 25 / 6%); --shadow-strong: rgb(15 20 25 / 12%); --brand-shadow: rgb(29 155 240 / 22%); --theme-switch-x: 50%; --theme-switch-y: 50%; color-scheme: light;} [data-theme="dark"] { --bg: #0b0f14; --bg-elevated: #10151b; --bg-hover: #141a21; --bg-active: #18212a; --panel: #0b0f14; --panel-strong: #121820; --line: #26323d; --line-strong: #44515d; --ink: #d8dee5; --ink-soft: #8b98a5; --ink-mute: #687480; --accent: #1d9bf0; --accent-hover: #1a8cd8; --accent-press: #177cc1; --accent-soft: rgb(29 155 240 / 18%); --accent-text: #ffffff; --alert: #f4212e; --alert-soft: rgb(244 33 46 / 18%); --like: #f91880; --like-soft: rgb(249 24 128 / 18%); --ring: rgb(29 155 240 / 45%); --shadow: rgb(0 0 0 / 60%); --shadow-strong: rgb(0 0 0 / 80%); --brand-shadow: rgb(29 155 240 / 36%); color-scheme: dark;} html,body { min-height: 100%;} html { scrollbar-gutter: stable;} body { background: var(--bg); font-feature-settings: "ss01" on, "cv11" on;} ::selection { background: color-mix(in srgb, var(--accent) 28%, transparent); color: var(--ink);} * { -webkit-tap-highlight-color: transparent;} *:focus-visible { outline: 2px solid var(--ring); outline-offset: 2px; border-radius: 4px;} button,a { -webkit-user-select: none; user-select: none;} input,textarea { -webkit-user-select: text; user-select: text;} /* Subtle thin scrollbar for app-owned internal scroll panes. */.custom-scrollbar::-webkit-scrollbar { width: 10px; height: 10px;} .custom-scrollbar::-webkit-scrollbar-track { background: transparent;} .custom-scrollbar::-webkit-scrollbar-thumb { background: color-mix(in srgb, var(--ink-soft) 30%, transparent); border-radius: 999px; border: 2px solid var(--bg);} .custom-scrollbar::-webkit-scrollbar-thumb:hover { background: color-mix(in srgb, var(--ink-soft) 55%, transparent);} [data-theme="dark"] .mapboxgl-ctrl-group { background: var(--bg-elevated); border: 1px solid var(--line-strong); box-shadow: 0 10px 28px var(--shadow);} [data-theme="dark"] .mapboxgl-ctrl-group button { background-color: var(--bg-elevated);} [data-theme="dark"] .mapboxgl-ctrl-group button + button { border-top-color: var(--line);} [data-theme="dark"] .mapboxgl-ctrl-group button:not(:disabled):hover { background-color: var(--bg-hover);} [data-theme="dark"] .mapboxgl-ctrl-group .mapboxgl-ctrl-icon { filter: invert(0.88);} @keyframes theme-circle-transition { 0% { clip-path: circle( 0% at var(--theme-switch-x, 50%) var(--theme-switch-y, 50%) ); } 100% { clip-path: circle( 150% at var(--theme-switch-x, 50%) var(--theme-switch-y, 50%) ); }} @keyframes birdclaw-load-sway { 0%, 100% { transform: translateY(0) rotate(-2deg) scale(1); } 40% { transform: translateY(-5px) rotate(3deg) scale(1.04); } 70% { transform: translateY(1px) rotate(-1deg) scale(0.99); }} @keyframes birdclaw-load-glow { 0%, 100% { opacity: 0.24; transform: scale(0.82); } 50% { opacity: 0.46; transform: scale(1.08); }} .birdclaw-state { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 168px;} .birdclaw-mark::before { content: ""; position: absolute; inset: 16%; z-index: -1; border-radius: 999px; background: var(--accent-soft); filter: blur(14px); opacity: 0.34;} .birdclaw-mark-animated { animation: birdclaw-load-sway 1.7s ease-in-out infinite; transform-origin: 50% 56%;} .birdclaw-mark-animated::before { animation: birdclaw-load-glow 1.7s ease-in-out infinite;} .today-pdf-meta { display: none;} html.theme-transition { view-transition-name: theme;} html.theme-transition [data-theme-transition-target] { view-transition-name: theme-toggle;} /* View transition pseudo-element. */html.theme-transition::view-transition-old(theme) { animation: none; mix-blend-mode: normal; z-index: 1;} /* View transition pseudo-element. */html.theme-transition::view-transition-new(theme) { animation: theme-circle-transition 0.45s ease-out forwards; mix-blend-mode: normal; z-index: 2;} /* View transition pseudo-element. */html.theme-transition::view-transition-old(theme-toggle) { animation: none; mix-blend-mode: normal; opacity: 0;} /* View transition pseudo-element. */html.theme-transition::view-transition-new(theme-toggle) { animation: none; mix-blend-mode: normal; z-index: 3;} @media (prefers-reduced-motion: reduce) { /* View transition pseudo-element. */ html.theme-transition::view-transition-old(theme) { animation: none !important; } /* View transition pseudo-element. */ html.theme-transition::view-transition-new(theme) { animation: none !important; } /* View transition pseudo-element. */ html.theme-transition::view-transition-old(theme-toggle), html.theme-transition::view-transition-new(theme-toggle) { animation: none !important; } .birdclaw-mark-animated, .birdclaw-mark-animated::before { animation: none !important; }} @media print { html.today-pdf-route, html.today-pdf-route body { min-height: auto !important; background: #fff !important; color: #0f1419 !important; } html.today-pdf-route body * { box-shadow: none !important; text-shadow: none !important; } html.today-pdf-route aside, html.today-pdf-route button, html.today-pdf-route input, html.today-pdf-route .today-screen-only { display: none !important; } html.today-pdf-route main { width: 100% !important; max-width: none !important; border: 0 !important; background: #fff !important; } .today-pdf-root { min-height: auto !important; color: #0f1419 !important; } .today-pdf-header { position: static !important; z-index: auto !important; border-bottom: 1px solid #d8dee5 !important; background: #fff !important; backdrop-filter: none !important; } .today-pdf-meta { display: flex !important; flex-wrap: wrap; gap: 0.35rem; padding: 0 1rem 0.75rem; font-size: 12px; color: #536471; } .today-pdf-root article { padding: 1rem !important; font-size: 12pt !important; line-height: 1.55 !important; color: #0f1419 !important; } .today-pdf-root article p, .today-pdf-root article li, .today-pdf-root article h1, .today-pdf-root article h2, .today-pdf-root article h3 { break-inside: avoid; color: #0f1419 !important; } .today-pdf-root a { color: #0f1419 !important; text-decoration: underline; }}
@import "tailwindcss";
@theme inline {
--font-sans:
-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue",
Arial, "Apple Color Emoji", "Segoe UI Emoji", sans-serif;
--font-display: var(--font-sans);
--font-mono:
ui-monospace, SFMono-Regular, "SF Mono", Menlo, Monaco, Consolas, monospace;
}
:root {
--bg: #ffffff;
--bg-elevated: #ffffff;
--bg-hover: #f7f9f9;
--bg-active: #eff3f4;
--panel: #ffffff;
--panel-strong: #ffffff;
--line: #eff3f4;
--line-strong: #cfd9de;
--ink: #0f1419;
--ink-soft: #536471;
--ink-mute: #8b98a5;
--accent: #1d9bf0;
--accent-hover: #1a8cd8;
--accent-press: #177cc1;
--accent-soft: rgb(29 155 240 / 10%);
--accent-text: #ffffff;
--alert: #f4212e;
--alert-soft: rgb(244 33 46 / 10%);
--like: #f91880;
--like-soft: rgb(249 24 128 / 10%);
--accent-on-ink: #1d9bf0;
--ring: rgb(29 155 240 / 35%);
--shadow: rgb(15 20 25 / 6%);
--shadow-strong: rgb(15 20 25 / 12%);
--brand-shadow: rgb(29 155 240 / 22%);
--theme-switch-x: 50%;
--theme-switch-y: 50%;
color-scheme: light;
}
[data-theme="dark"] {
--bg: #0b0f14;
--bg-elevated: #10151b;
--bg-hover: #141a21;
--bg-active: #18212a;
--panel: #0b0f14;
--panel-strong: #121820;
--line: #26323d;
--line-strong: #44515d;
--ink: #d8dee5;
--ink-soft: #8b98a5;
--ink-mute: #687480;
--accent: #1d9bf0;
--accent-hover: #1a8cd8;
--accent-press: #177cc1;
--accent-soft: rgb(29 155 240 / 18%);
--accent-text: #ffffff;
--alert: #f4212e;
--alert-soft: rgb(244 33 46 / 18%);
--like: #f91880;
--like-soft: rgb(249 24 128 / 18%);
--ring: rgb(29 155 240 / 45%);
--shadow: rgb(0 0 0 / 60%);
--shadow-strong: rgb(0 0 0 / 80%);
--brand-shadow: rgb(29 155 240 / 36%);
color-scheme: dark;
}
html,
body {
min-height: 100%;
}
html {
scrollbar-gutter: stable;
}
body {
background: var(--bg);
font-feature-settings: "ss01" on, "cv11" on;
}
::selection {
background: color-mix(in srgb, var(--accent) 28%, transparent);
color: var(--ink);
}
* {
-webkit-tap-highlight-color: transparent;
}
*:focus-visible {
outline: 2px solid var(--ring);
outline-offset: 2px;
border-radius: 4px;
}
button,
a {
-webkit-user-select: none;
user-select: none;
}
input,
textarea {
-webkit-user-select: text;
user-select: text;
}
/* Subtle thin scrollbar for app-owned internal scroll panes. */
.custom-scrollbar::-webkit-scrollbar {
width: 10px;
height: 10px;
}
.custom-scrollbar::-webkit-scrollbar-track {
background: transparent;
}
.custom-scrollbar::-webkit-scrollbar-thumb {
background: color-mix(in srgb, var(--ink-soft) 30%, transparent);
border-radius: 999px;
border: 2px solid var(--bg);
}
.custom-scrollbar::-webkit-scrollbar-thumb:hover {
background: color-mix(in srgb, var(--ink-soft) 55%, transparent);
}
[data-theme="dark"] .mapboxgl-ctrl-group {
background: var(--bg-elevated);
border: 1px solid var(--line-strong);
box-shadow: 0 10px 28px var(--shadow);
}
[data-theme="dark"] .mapboxgl-ctrl-group button {
background-color: var(--bg-elevated);
}
[data-theme="dark"] .mapboxgl-ctrl-group button + button {
border-top-color: var(--line);
}
[data-theme="dark"] .mapboxgl-ctrl-group button:not(:disabled):hover {
background-color: var(--bg-hover);
}
[data-theme="dark"] .mapboxgl-ctrl-group .mapboxgl-ctrl-icon {
filter: invert(0.88);
}
@keyframes theme-circle-transition {
0% {
clip-path: circle(
0% at var(--theme-switch-x, 50%) var(--theme-switch-y, 50%)
);
}
100% {
clip-path: circle(
150% at var(--theme-switch-x, 50%) var(--theme-switch-y, 50%)
);
}
}
@keyframes birdclaw-load-sway {
0%,
100% {
transform: translateY(0) rotate(-2deg) scale(1);
}
40% {
transform: translateY(-5px) rotate(3deg) scale(1.04);
}
70% {
transform: translateY(1px) rotate(-1deg) scale(0.99);
}
}
@keyframes birdclaw-load-glow {
0%,
100% {
opacity: 0.24;
transform: scale(0.82);
}
50% {
opacity: 0.46;
transform: scale(1.08);
}
}
.birdclaw-state {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
min-height: 168px;
}
.birdclaw-mark::before {
content: "";
position: absolute;
inset: 16%;
z-index: -1;
border-radius: 999px;
background: var(--accent-soft);
filter: blur(14px);
opacity: 0.34;
}
.birdclaw-mark-animated {
animation: birdclaw-load-sway 1.7s ease-in-out infinite;
transform-origin: 50% 56%;
}
.birdclaw-mark-animated::before {
animation: birdclaw-load-glow 1.7s ease-in-out infinite;
}
.today-pdf-meta {
display: none;
}
html.theme-transition {
view-transition-name: theme;
}
html.theme-transition [data-theme-transition-target] {
view-transition-name: theme-toggle;
}
/* View transition pseudo-element. */
html.theme-transition::view-transition-old(theme) {
animation: none;
mix-blend-mode: normal;
z-index: 1;
}
/* View transition pseudo-element. */
html.theme-transition::view-transition-new(theme) {
animation: theme-circle-transition 0.45s ease-out forwards;
mix-blend-mode: normal;
z-index: 2;
}
/* View transition pseudo-element. */
html.theme-transition::view-transition-old(theme-toggle) {
animation: none;
mix-blend-mode: normal;
opacity: 0;
}
/* View transition pseudo-element. */
html.theme-transition::view-transition-new(theme-toggle) {
animation: none;
mix-blend-mode: normal;
z-index: 3;
}
@media (prefers-reduced-motion: reduce) {
/* View transition pseudo-element. */
html.theme-transition::view-transition-old(theme) {
animation: none !important;
}
/* View transition pseudo-element. */
html.theme-transition::view-transition-new(theme) {
animation: none !important;
}
/* View transition pseudo-element. */
html.theme-transition::view-transition-old(theme-toggle),
html.theme-transition::view-transition-new(theme-toggle) {
animation: none !important;
}
.birdclaw-mark-animated,
.birdclaw-mark-animated::before {
animation: none !important;
}
}
@media print {
html.today-pdf-route,
html.today-pdf-route body {
min-height: auto !important;
background: #fff !important;
color: #0f1419 !important;
}
html.today-pdf-route body * {
box-shadow: none !important;
text-shadow: none !important;
}
html.today-pdf-route aside,
html.today-pdf-route button,
html.today-pdf-route input,
html.today-pdf-route .today-screen-only {
display: none !important;
}
html.today-pdf-route main {
width: 100% !important;
max-width: none !important;
border: 0 !important;
background: #fff !important;
}
.today-pdf-root {
min-height: auto !important;
color: #0f1419 !important;
}
.today-pdf-header {
position: static !important;
z-index: auto !important;
border-bottom: 1px solid #d8dee5 !important;
background: #fff !important;
backdrop-filter: none !important;
}
.today-pdf-meta {
display: flex !important;
flex-wrap: wrap;
gap: 0.35rem;
padding: 0 1rem 0.75rem;
font-size: 12px;
color: #536471;
}
.today-pdf-root article {
padding: 1rem !important;
font-size: 12pt !important;
line-height: 1.55 !important;
color: #0f1419 !important;
}
.today-pdf-root article p,
.today-pdf-root article li,
.today-pdf-root article h1,
.today-pdf-root article h2,
.today-pdf-root article h3 {
break-inside: avoid;
color: #0f1419 !important;
}
.today-pdf-root a {
color: #0f1419 !important;
text-decoration: underline;
}
}