index.html
Rama main · réplica de lectura del repositorio original.
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />
<meta name="theme-color" content="#0f0f10" />
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
<link rel="manifest" href="/manifest.webmanifest" />
<!--
Resolve the user's stored theme preference and apply `.dark` to <html>
before any stylesheet paints, to avoid a flash of the wrong theme.
Storage key and resolution rules MUST stay in sync with
src/lib/theme.tsx (ThemeProvider).
-->
<script>
(() => {
try {
const stored = localStorage.getItem("inkwell:theme");
const mode =
stored === "light" || stored === "dark" || stored === "system"
? stored
: "system";
const resolved =
mode === "system"
? window.matchMedia("(prefers-color-scheme: dark)").matches
? "dark"
: "light"
: mode;
if (resolved === "dark")
document.documentElement.classList.add("dark");
} catch (_) {
/* localStorage unavailable — ThemeProvider will recover. */
}
})();
</script>
<!--
Static boot splash — painted before any JS/CSS bundle loads, then
replaced by React's <InkwellSplash intro={false}> (same sizes, so the
hand-off is invisible). Mirrors src/components/InkwellSplash.tsx,
InkwellMark.tsx and the "Inkwell brand animations" block in
src/index.css — keep geometry, colours and timings in sync.
-->
<style>
#boot-splash {
--bs-bg: #ffffff; --bs-fg: #1c1814; --bs-accent: #e8731f;
position: fixed; inset: 0; display: grid; place-items: center;
overflow: hidden; background: var(--bs-bg); color: var(--bs-fg);
}
.dark #boot-splash { --bs-bg: #121212; --bs-fg: #efe9dc; --bs-accent: #f5893a; }
#boot-splash .bs-stack { position: relative; display: flex; flex-direction: column; align-items: center; gap: 28px; }
#boot-splash .bs-mark { width: 112px; height: 112px; }
#boot-splash .bs-wordmark { height: 44px; width: auto; animation: bs-write 1.1s 0.15s cubic-bezier(0.6, 0.1, 0.3, 1) both; }
#boot-splash .bs-pen { animation: bs-pen 1.6s cubic-bezier(0.45, 0, 0.3, 1) infinite; }
#boot-splash .bs-wave { animation: bs-wave 3.2s linear infinite; }
@keyframes bs-pen { 0%, 100% { transform: translate(0, 0); } 45%, 55% { transform: translate(-3.2px, 4px); } }
@keyframes bs-wave { from { transform: translateX(0); } to { transform: translateX(48px); } }
@keyframes bs-write { from { clip-path: inset(-10% 100% -10% 0); } to { clip-path: inset(-10% 0 -10% 0); } }
@media (prefers-reduced-motion: reduce) {
#boot-splash .bs-wordmark, #boot-splash .bs-pen, #boot-splash .bs-wave { animation: none; }
}
</style>
<title>Inkwell</title>
</head>
<body>
<div id="root">
<div id="boot-splash" role="status" aria-live="polite">
<div class="bs-stack" aria-hidden="true">
<svg aria-hidden="true" class="bs-mark" viewBox="0 0 64 64" fill="none" stroke="currentColor" stroke-width="4" stroke-linecap="round" stroke-linejoin="round">
<clipPath id="bs-clip"><path d="M27 17 V21 C27 25 9 26 9 36 V48 Q9 56 17 56 H47 Q55 56 55 48 V36 C55 26 37 25 37 21 V17 Z" /></clipPath>
<g clip-path="url(#bs-clip)"><path class="bs-wave" fill="var(--bs-accent)" stroke="none" d="M-48 43 q12 -7 24 0 t24 0 t24 0 t24 0 t24 0 t24 0 t24 0 V64 H-48 Z" /></g>
<path d="M23 17 H41 M27 17 V21 C27 25 9 26 9 36 V48 Q9 56 17 56 H47 Q55 56 55 48 V36 C55 26 37 25 37 21 V17" />
<g class="bs-pen"><path d="M50 3 L35 22" /></g>
</svg>
<svg aria-hidden="true" class="bs-wordmark" viewBox="33 450 6480 1548" fill="currentColor"><path d="M430 1077V1794Q430 1825 438 1839Q447 1854 464 1860L500 1869Q517 1877 525 1887Q534 1898 534 1914Q534 1934 521 1945Q508 1956 484 1956H111Q87 1956 74 1945Q61 1934 61 1914Q61 1898 69 1888Q78 1877 94 1870L132 1860Q149 1853 158 1839Q166 1826 166 1794V1251Q166 1225 158 1215Q151 1204 135 1200L84 1197Q68 1191 60 1182Q53 1173 53 1158Q53 1142 63 1131Q73 1120 97 1111L292 1045Q324 1033 343 1028Q362 1023 379 1023Q404 1023 417 1038Q430 1053 430 1077ZM282 881Q207 881 161 840Q116 798 116 732Q116 666 161 625Q207 584 282 584Q357 584 403 625Q449 666 449 732Q449 798 403 840Q357 881 282 881ZM991 1077V1794Q991 1827 999 1842Q1007 1856 1024 1863L1061 1873Q1089 1887 1089 1913Q1089 1956 1042 1956H672Q648 1956 635 1945Q622 1934 622 1914Q622 1898 631 1888Q639 1877 655 1870L693 1860Q710 1854 719 1840Q727 1826 727 1794V1251Q727 1225 719 1215Q712 1204 696 1200L645 1197Q629 1191 621 1182Q614 1173 614 1158Q614 1142 624 1131Q634 1120 658 1111L853 1045Q884 1033 904 1028Q923 1023 941 1023Q965 1023 978 1038Q991 1053 991 1077ZM964 1301 921 1254 963 1216Q1074 1111 1159 1065Q1244 1019 1321 1019Q1433 1019 1494 1090Q1554 1161 1569 1287L1628 1792Q1632 1824 1639 1839Q1646 1854 1664 1860L1699 1870Q1715 1878 1723 1888Q1732 1898 1732 1914Q1732 1934 1719 1945Q1706 1956 1682 1956H1308Q1260 1956 1260 1913Q1260 1887 1289 1873L1327 1863Q1345 1856 1355 1841Q1364 1826 1361 1794L1308 1344Q1298 1263 1267 1224Q1236 1185 1174 1185Q1135 1185 1092 1205Q1049 1225 1000 1269ZM1838 1956Q1814 1956 1802 1945Q1789 1934 1789 1914Q1789 1898 1798 1888Q1806 1877 1823 1869L1860 1860Q1878 1854 1886 1840Q1894 1826 1894 1794V698Q1894 673 1886 662Q1879 651 1863 647L1812 644Q1796 638 1789 629Q1781 620 1781 606Q1781 589 1791 578Q1801 567 1825 558L2020 492Q2052 481 2071 476Q2090 470 2108 470Q2132 470 2145 485Q2158 500 2158 524V1794Q2158 1827 2166 1842Q2174 1856 2191 1863L2228 1873Q2257 1887 2257 1913Q2257 1956 2209 1956ZM2083 1546 2468 1214Q2498 1188 2494 1166Q2490 1143 2456 1133L2421 1123Q2404 1116 2398 1106Q2391 1097 2391 1083Q2391 1063 2405 1052Q2418 1040 2442 1040H2778Q2802 1040 2815 1051Q2828 1062 2828 1082Q2828 1101 2815 1114Q2803 1128 2763 1136Q2714 1146 2674 1167Q2634 1188 2580 1235L2112 1630ZM2414 1302 2747 1797Q2769 1827 2785 1841Q2802 1854 2828 1865Q2849 1877 2859 1889Q2870 1901 2870 1916Q2870 1935 2857 1945Q2844 1956 2820 1956H2432Q2412 1956 2399 1945Q2387 1934 2387 1914Q2387 1901 2393 1892Q2400 1883 2415 1877L2448 1867Q2476 1857 2475 1841Q2475 1824 2450 1788L2231 1460ZM3390 1966H3297Q3269 1966 3248 1950Q3228 1935 3215 1899L2970 1199Q2960 1169 2949 1155Q2937 1141 2922 1135L2889 1125Q2872 1116 2865 1106Q2858 1096 2858 1083Q2858 1062 2872 1051Q2885 1040 2908 1040H3314Q3336 1040 3348 1051Q3359 1062 3359 1081Q3359 1097 3351 1108Q3342 1119 3324 1126L3289 1135Q3255 1145 3252 1166Q3248 1188 3264 1237L3457 1817L3393 1863L3625 1195L3706 1252L3471 1906Q3458 1940 3436 1953Q3415 1966 3390 1966ZM3996 1966H3905Q3878 1966 3857 1950Q3836 1934 3824 1900L3582 1194Q3573 1168 3562 1155Q3551 1142 3535 1136L3504 1126Q3488 1117 3481 1107Q3475 1097 3475 1082Q3475 1040 3522 1040H3919Q3963 1040 3963 1083Q3963 1099 3955 1109Q3946 1118 3928 1126L3888 1136Q3858 1145 3856 1167Q3854 1189 3868 1232L4059 1818L3997 1866L4194 1251Q4211 1199 4203 1172Q4195 1146 4159 1135L4123 1126Q4104 1119 4096 1109Q4087 1099 4087 1083Q4087 1062 4100 1051Q4112 1040 4133 1040H4383Q4407 1040 4420 1051Q4433 1062 4433 1083Q4433 1097 4426 1107Q4419 1117 4400 1126L4374 1134Q4353 1143 4336 1168Q4319 1194 4301 1245L4078 1906Q4066 1940 4044 1953Q4022 1966 3996 1966ZM5329 1384Q5329 1433 5300 1460Q5272 1487 5219 1487H4626V1413H5014Q5062 1413 5062 1367Q5062 1245 5015 1181Q4968 1117 4895 1117Q4837 1117 4792 1152Q4747 1187 4721 1255Q4695 1323 4695 1421Q4695 1609 4781 1704Q4868 1799 5008 1799Q5097 1799 5163 1758Q5229 1717 5259 1651Q5272 1636 5281 1630Q5291 1624 5300 1624Q5313 1624 5320 1635Q5328 1645 5327 1664Q5323 1748 5271 1820Q5219 1892 5128 1935Q5038 1979 4919 1979Q4780 1979 4675 1920Q4571 1862 4513 1757Q4454 1652 4454 1513Q4454 1369 4511 1258Q4569 1146 4675 1082Q4782 1019 4931 1019Q5053 1019 5142 1066Q5231 1114 5280 1196Q5329 1279 5329 1384ZM5804 524V1794Q5804 1826 5812 1840Q5820 1854 5837 1860L5874 1869Q5891 1877 5899 1887Q5907 1898 5907 1914Q5907 1934 5895 1945Q5882 1956 5857 1956H5484Q5461 1956 5448 1945Q5435 1934 5435 1914Q5435 1898 5443 1888Q5452 1877 5468 1869L5505 1860Q5523 1854 5531 1840Q5539 1826 5539 1794V698Q5539 673 5532 662Q5524 651 5508 647L5458 644Q5442 638 5434 629Q5426 620 5426 606Q5426 589 5436 578Q5446 567 5470 558L5666 492Q5697 481 5717 475Q5736 470 5752 470Q5777 470 5790 485Q5804 500 5804 524ZM6389 524V1794Q6389 1826 6397 1840Q6405 1854 6422 1860L6459 1869Q6476 1877 6484 1887Q6492 1898 6492 1914Q6492 1934 6480 1945Q6467 1956 6442 1956H6069Q6046 1956 6033 1945Q6020 1934 6020 1914Q6020 1898 6028 1888Q6037 1877 6053 1869L6090 1860Q6108 1854 6116 1840Q6124 1826 6124 1794V698Q6124 673 6117 662Q6109 651 6093 647L6043 644Q6027 638 6019 629Q6011 620 6011 606Q6011 589 6021 578Q6031 567 6055 558L6251 492Q6282 481 6302 475Q6321 470 6337 470Q6362 470 6375 485Q6389 500 6389 524Z" /></svg>
</div>
<span style="position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)">Loading Inkwell…</span>
</div>
</div>
<script type="module" src="/src/main.tsx"></script>
</body>
</html>