File size: 4,674 Bytes
d787a09 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 | /* ParaPilot design system — editorial-legal refinement on Tailwind utilities.
Trustworthy editorial: deep navy ink + warm brass accent on cream paper,
serif display headings, generous whitespace, light + dark. */
:root {
/* Editorial-legal palette: deep navy ink + warm brass accent. */
--pp-accent: 47 74 115; /* navy */
--pp-accent-strong: 26 42 71; /* deep navy */
--pp-violet: 166 124 82; /* warm brass */
}
html { scroll-behavior: smooth; }
body {
font-family: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI",
Roboto, Helvetica, Arial, sans-serif;
font-feature-settings: "cv02", "cv03", "cv04", "cv11";
-webkit-font-smoothing: antialiased;
text-rendering: optimizeLegibility;
}
/* Editorial display headings — serif. */
h1, h2, .pp-serif {
font-family: ui-serif, "Iowan Old Style", "Palatino Linotype", Palatino,
Georgia, "Times New Roman", serif;
letter-spacing: -0.005em;
}
/* Subtle page background wash (light + dark). */
.pp-bg {
background-image:
radial-gradient(60rem 60rem at 110% -10%, rgb(var(--pp-violet) / 0.10), transparent 55%),
radial-gradient(50rem 50rem at -10% 0%, rgb(var(--pp-accent) / 0.08), transparent 50%);
}
.dark .pp-bg {
background-image:
radial-gradient(60rem 60rem at 110% -10%, rgb(var(--pp-violet) / 0.14), transparent 55%),
radial-gradient(50rem 50rem at -10% 0%, rgb(var(--pp-accent) / 0.16), transparent 50%);
}
/* Gradient brand text (navy -> brass). */
.pp-gradient-text {
background-image: linear-gradient(
100deg, rgb(var(--pp-accent-strong)), rgb(var(--pp-violet))
);
-webkit-background-clip: text;
background-clip: text;
color: transparent;
}
/* Card — warm paper. */
.pp-card {
border-radius: 1rem;
border: 1px solid rgb(223 213 196); /* warm taupe */
background: rgb(255 253 248 / 0.9); /* warm white */
backdrop-filter: blur(6px);
box-shadow: 0 1px 2px rgb(40 33 22 / 0.05), 0 10px 28px -14px rgb(40 33 22 / 0.16);
}
.dark .pp-card {
border-color: rgb(72 66 55 / 0.7); /* warm slate */
background: rgb(24 28 38 / 0.6); /* warm dark */
box-shadow: 0 1px 2px rgb(0 0 0 / 0.3), 0 8px 28px -14px rgb(0 0 0 / 0.6);
}
/* Stepper rail. */
.pp-rail::before {
content: "";
position: absolute;
left: 1.05rem;
top: 1.5rem;
bottom: 1.5rem;
width: 2px;
background: linear-gradient(
to bottom, rgb(var(--pp-accent) / 0.5), rgb(var(--pp-violet) / 0.4)
);
}
/* Step node button. */
.pp-step {
transition: transform .12s ease, box-shadow .12s ease, border-color .12s ease,
background-color .12s ease;
}
.pp-step:hover { transform: translateY(-1px); }
.pp-step[data-active="true"] {
border-color: rgb(var(--pp-accent-strong));
box-shadow: 0 0 0 3px rgb(var(--pp-accent) / 0.18);
}
/* Step index bubble. */
.pp-bubble {
display: grid;
place-items: center;
width: 2.15rem;
height: 2.15rem;
border-radius: 999px;
font-weight: 600;
font-size: 0.85rem;
color: white;
background: linear-gradient(135deg, rgb(var(--pp-accent)), rgb(var(--pp-violet)));
box-shadow: 0 4px 12px -4px rgb(var(--pp-accent) / 0.6);
}
.pp-bubble--sub {
background: linear-gradient(135deg, rgb(180 132 70), rgb(146 99 45)); /* brass -> bronze */
box-shadow: 0 4px 12px -4px rgb(146 99 45 / 0.5);
}
/* Inline citation chip. */
.pp-cite {
display: inline-flex;
align-items: center;
justify-content: center;
min-width: 1.15rem;
height: 1.15rem;
padding: 0 0.3rem;
margin: 0 0.08rem;
border-radius: 0.4rem;
font-size: 0.68rem;
font-weight: 700;
line-height: 1;
vertical-align: super;
color: rgb(var(--pp-accent-strong));
background: rgb(var(--pp-accent) / 0.12);
text-decoration: none;
transition: background-color .12s ease;
}
.pp-cite:hover { background: rgb(var(--pp-accent) / 0.24); }
/* Confidence meter. */
.pp-meter { height: 0.5rem; border-radius: 999px; background: rgb(228 220 205); overflow: hidden; }
.dark .pp-meter { background: rgb(60 54 45); }
.pp-meter > span {
display: block; height: 100%;
background: linear-gradient(90deg, rgb(var(--pp-accent)), rgb(var(--pp-violet)));
}
/* htmx loading affordance. */
.htmx-indicator { opacity: 0; transition: opacity .15s ease; }
.htmx-request .htmx-indicator { opacity: 1; }
.htmx-request.htmx-indicator { opacity: 1; }
/* Fade-in for swapped content. */
@keyframes pp-fade-in {
from { opacity: 0; transform: translateY(4px); }
to { opacity: 1; transform: translateY(0); }
}
.pp-fade { animation: pp-fade-in .22s ease both; }
/* Focus ring. */
.pp-focus:focus-visible {
outline: none;
box-shadow: 0 0 0 3px rgb(var(--pp-accent) / 0.4);
}
|