All checks were successful
Build & Deploy / build-and-deploy (push) Successful in 43s
All text, borders and QR codes now render in blue-ink on cream paper. ink #1A1714 → #1E3A8A, ink-muted warm → cool blue-gray, rule-strong + QR fgColor updated to match. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
78 lines
2.1 KiB
CSS
78 lines
2.1 KiB
CSS
@import url("https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,300..900;1,9..144,300..900&family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap");
|
|
|
|
@tailwind base;
|
|
@tailwind components;
|
|
@tailwind utilities;
|
|
|
|
@layer base {
|
|
:root {
|
|
color-scheme: light;
|
|
}
|
|
html,
|
|
body {
|
|
background: #f5f0e6;
|
|
color: #1e3a8a;
|
|
font-family: "Inter", "Söhne", system-ui, -apple-system, sans-serif;
|
|
font-feature-settings: "ss01", "cv11";
|
|
-webkit-font-smoothing: antialiased;
|
|
-moz-osx-font-smoothing: grayscale;
|
|
text-rendering: optimizeLegibility;
|
|
}
|
|
/* Paper grain — fibrous noise, warm brown tint, multiply */
|
|
body::before {
|
|
content: "";
|
|
position: fixed;
|
|
inset: 0;
|
|
pointer-events: none;
|
|
z-index: 0;
|
|
background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='320' height='320'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.78' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.12 0 0 0 0 0.1 0 0 0 0 0.08 0 0 0 0.7 0'/></filter><rect width='100%' height='100%' filter='url(%23n)' opacity='0.32'/></svg>");
|
|
mix-blend-mode: multiply;
|
|
opacity: 0.6;
|
|
}
|
|
#root {
|
|
position: relative;
|
|
z-index: 1;
|
|
min-height: 100vh;
|
|
}
|
|
h1,
|
|
h2,
|
|
h3,
|
|
h4 {
|
|
font-family: "Fraunces", "GT Sectra", Georgia, serif;
|
|
font-weight: 500;
|
|
letter-spacing: -0.01em;
|
|
}
|
|
code,
|
|
pre,
|
|
.mono {
|
|
font-family: "JetBrains Mono", "Berkeley Mono", ui-monospace, monospace;
|
|
}
|
|
/* Selection: modern blue ink on paper */
|
|
::selection {
|
|
background: #1d4ed8;
|
|
color: #f5f0e6;
|
|
}
|
|
}
|
|
|
|
@layer utilities {
|
|
/* Thin ruled line — evokes paper stationery */
|
|
.rule {
|
|
border-bottom: 1px solid #dcd3be;
|
|
}
|
|
.rule-strong {
|
|
border-bottom: 1px solid #1e3a8a;
|
|
}
|
|
/* Envelope: subtle diagonal flap hint used on panels */
|
|
.paper-panel {
|
|
background: #f5f0e6;
|
|
border: 1px solid #dcd3be;
|
|
box-shadow:
|
|
0 1px 0 rgba(26, 23, 20, 0.04),
|
|
0 1px 3px rgba(26, 23, 20, 0.06);
|
|
}
|
|
.paper-panel-deep {
|
|
background: #ebe4d4;
|
|
border: 1px solid #dcd3be;
|
|
}
|
|
}
|