:root {
color-scheme: light dark;
--bg: #faf9f5;
--surface: #ffffff;
--ink: #1a1a1a;
--secondary: #4b4943;
--muted: #868078;
--accent: #a8482b;
--hairline: #e7e3da;
--grid: rgba(26, 26, 26, 0.04);
--font-display: ui-serif, "Iowan Old Style", Georgia, Cambria, "Times New Roman", serif;
--font-ui: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}
:root[data-theme="dark"] {
--bg: #14110d; --surface: #1c1813; --ink: #f0ebe0; --secondary: #cfc7b8;
--muted: #9a9384; --accent: #c25a37; --hairline: #342e25; --grid: rgba(240, 235, 224, 0.05);
}
:root[data-theme="light"] {
--bg: #faf9f5; --surface: #ffffff; --ink: #1a1a1a; --secondary: #4b4943;
--muted: #868078; --accent: #a8482b; --hairline: #e7e3da; --grid: rgba(26, 26, 26, 0.04);
}
* { box-sizing: border-box; }
html, body { height: 100%; }
body {
margin: 0;
min-height: 100vh;
font-family: var(--font-ui);
line-height: 1.5;
color: var(--ink);
background-color: var(--bg);
background-image:
linear-gradient(to right, var(--grid) 1px, transparent 1px),
linear-gradient(to bottom, var(--grid) 1px, transparent 1px);
background-size: 24px 24px;
}
.screen {
min-height: 100vh;
display: flex;
flex-direction: column;
align-items: center;
}
.stage {
flex: 1;
width: 100%;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 2.25rem;
padding: 2rem 1.5rem;
text-align: center;
}
.spinner-tile {
width: 8.5rem;
height: 8.5rem;
display: grid;
place-items: center;
background: var(--surface);
border: 1px solid var(--hairline);
border-radius: 20px;
}
.spinner {
width: 3.1rem;
height: 3.1rem;
border-radius: 50%;
border: 4px solid var(--hairline);
border-top-color: var(--accent);
animation: connect-spin 0.8s linear infinite;
}
.msg {
margin: 0;
max-width: 24ch;
font-family: var(--font-display);
font-weight: 400;
font-size: clamp(1.85rem, 6vw, 2.45rem);
line-height: 1.2;
letter-spacing: -0.01em;
color: var(--ink);
text-wrap: balance;
}
.detail { margin: 0; max-width: 34ch; font-size: 1.02rem; line-height: 1.55; color: var(--secondary); text-wrap: pretty; }
.hint { margin: 0; max-width: 34ch; font-size: 0.9rem; line-height: 1.5; color: var(--muted); text-wrap: pretty; }
.detail a, .hint a { color: var(--accent); }
.contact-hint { display: none; }
.screen.error .contact-hint { display: block; }
.status { display: flex; flex-direction: column; align-items: center; gap: 2.25rem; }
.hosted {
display: flex;
align-items: center;
gap: 0.85rem;
padding: 1rem 1.5rem 2.75rem;
}
.hosted-label {
font-size: 11px;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.18em;
color: var(--secondary);
}
.hosted-logo {
display: inline-flex;
align-items: center;
padding: 0.5rem 0.9rem;
background: var(--surface);
border: 1px solid var(--hairline);
border-radius: 12px;
}
.dfinity-logo { height: 1.1rem; width: auto; color: var(--ink); }
.screen.error .spinner-tile { display: none; }
@keyframes connect-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .spinner { animation: none; } }
@media (prefers-color-scheme: dark) {
:root:not([data-theme="light"]) {
--bg: #14110d; --surface: #1c1813; --ink: #f0ebe0; --secondary: #cfc7b8;
--muted: #9a9384; --accent: #c25a37; --hairline: #342e25; --grid: rgba(240, 235, 224, 0.05);
}
}