/* Fonts are served from this site. Each latin font comes as a small Swedish subset (Latin-1 and common punctuation) plus the full latin file for the rest. Fraunces is cut to the axis ranges the pages use: wght 400 to 700, SOFT 100, WONK 0. */
@font-face {
  font-family: 'Bricolage Grotesque';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url(/fonts/bricolage-sv.woff2) format('woff2');
  unicode-range: U+0020-007E, U+00A0-00FF, U+2010-2027, U+2030-203A, U+20AC;
}
@font-face {
  font-family: 'Bricolage Grotesque';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url(/fonts/bricolage-latin.woff2) format('woff2');
  unicode-range: U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-200F, U+2028-202F, U+203B-206F, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(/fonts/fraunces-sv.woff2) format('woff2');
  unicode-range: U+0020-007E, U+00A0-00FF, U+2010-2027, U+2030-203A, U+20AC;
}
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(/fonts/fraunces-latin.woff2) format('woff2');
  unicode-range: U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-200F, U+2028-202F, U+203B-206F, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Fraunces';
  font-style: italic;
  font-weight: 400 700;
  font-display: swap;
  src: url(/fonts/fraunces-italic-sv.woff2) format('woff2');
  unicode-range: U+0020-007E, U+00A0-00FF, U+2010-2027, U+2030-203A, U+20AC;
}
@font-face {
  font-family: 'Fraunces';
  font-style: italic;
  font-weight: 400 700;
  font-display: swap;
  src: url(/fonts/fraunces-italic-latin.woff2) format('woff2');
  unicode-range: U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-200F, U+2028-202F, U+203B-206F, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'League Spartan';
  font-style: normal;
  font-weight: 600 700;
  font-display: swap;
  src: url(/fonts/league-spartan-sv.woff2) format('woff2');
  unicode-range: U+0020-007E, U+00A0-00FF, U+2010-2027, U+2030-203A, U+20AC;
}
@font-face {
  font-family: 'League Spartan';
  font-style: normal;
  font-weight: 600 700;
  font-display: swap;
  src: url(/fonts/league-spartan-latin.woff2) format('woff2');
  unicode-range: U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-200F, U+2028-202F, U+203B-206F, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Bricolage Grotesque';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url(/fonts/bricolage-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Bricolage Grotesque';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url(/fonts/bricolage-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Bricolage Grotesque';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(/fonts/bricolage-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Bricolage Grotesque';
  font-style: normal;
  font-weight: 800;
  font-stretch: 100%;
  font-display: swap;
  src: url(/fonts/bricolage-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Fraunces';
  font-style: italic;
  font-weight: 400 700;
  font-display: swap;
  src: url(/fonts/fraunces-italic-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(/fonts/fraunces-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'League Spartan';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/league-spartan-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'League Spartan';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/league-spartan-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Shared tokens for the section lab. Every fragment uses these and nothing else for colour, type and buttons. */
:root{
  --star-gutters:linear-gradient(90deg,#000 calc((100% - var(--container))/2 - 40px),transparent calc((100% - var(--container))/2 - 12px),transparent calc((100% + var(--container))/2 + 12px),#000 calc((100% + var(--container))/2 + 40px));
  --scene-tuck:120px;
  --scene-band:clamp(300px,46vh,620px);
  --navy:#1c234a;
  --navy-deep:#12162f;
  --cream:#fbf6ea;
  --cream-deep:#f4ebdf;
  --ink:#1c234a;
  --muted:#5b5f7a;
  --lilac:#b9b7ee;
  --lilac-soft:#e9e7fb;
  --sun:#f6cf6a;
  --sun-soft:#fdf0c8;
  --sage:#bfe0cd;
  --sage-soft:#e4f3ea;
  --peach:#f3d9c4;
  --tangerine:#ef7b45;
  --tangerine-deep:#c9581f;
  /* Buttons use a slightly lighter orange than the accent, on every page. */
  --btn:#f6925f;
  --btn-deep:#d66d3b;
  --font-sans:'Bricolage Grotesque',system-ui,-apple-system,'Segoe UI',sans-serif;
  --font-serif:'Fraunces',Georgia,serif;
  /* The wordmark "Curious Sleep Lab" is always set in League Spartan, as in Frida's logo. */
  --font-brand:'League Spartan','Bricolage Grotesque',system-ui,sans-serif;
  --container:1200px;
  --gutter:clamp(20px,4vw,56px);
  --radius:20px;
  --radius-pill:999px;
  /* The house shadow: hard, offset, no blur. Use it instead of soft drop shadows. */
  --shadow-hard:0 4px 0 0 var(--navy);
  --shadow-hard-lg:0 6px 0 0 var(--navy);
  --ease:cubic-bezier(.2,.7,.2,1);
}
@media(max-width:1000px){:root{--scene-band:clamp(300px,40vh,460px)}}
@media(max-width:640px){:root{--scene-tuck:72px;--scene-band:clamp(270px,36vh,360px)}}
html{scroll-behavior:smooth}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--font-sans);font-size:1.0625rem;line-height:1.55;-webkit-font-smoothing:antialiased}
.lab-container{width:min(var(--container),100% - 2*var(--gutter));margin-inline:auto}
.lab-h1{font-family:var(--font-serif);font-weight:500;font-size:clamp(2.8rem,7.4vw,6rem);line-height:.98;letter-spacing:-.02em;margin:0}
.lab-h2{font-family:var(--font-sans);font-weight:800;font-size:clamp(2rem,4.6vw,3.4rem);line-height:1.05;letter-spacing:-.03em;margin:0}
.lab-eyebrow{font-size:.75rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
/* The locked button: tangerine pill, navy text, arrow in a navy disc, hard bottom edge. Hover is subtle: 1px lift and the arrow nudges. */
.lab-btn{display:inline-flex;align-items:center;gap:18px;min-height:64px;padding:0 10px 0 30px;border:0;border-radius:var(--radius-pill);background:var(--btn);color:var(--navy);font:inherit;font-weight:700;font-size:1.1rem;text-decoration:none;cursor:pointer;box-shadow:0 4px 0 0 var(--btn-deep);transition:transform .18s var(--ease),box-shadow .18s var(--ease)}
.lab-btn .lab-btn-disc{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--navy);color:#fff;flex:none}
.lab-btn .lab-btn-disc svg{width:20px;height:20px;transition:transform .18s var(--ease)}
.lab-btn:hover{transform:translateY(-1px);box-shadow:0 5px 0 0 var(--btn-deep)}
.lab-btn:hover .lab-btn-disc svg{transform:translateX(2px)}
.lab-btn:active{transform:translateY(2px);box-shadow:0 2px 0 0 var(--btn-deep)}
.lab-btn:focus-visible{outline:3px solid var(--navy);outline-offset:3px}
.lab-btn--lg{min-height:72px;font-size:1.2rem;padding-left:34px}
.lab-btn--lg .lab-btn-disc{width:52px;height:52px}
/* Hard-edged card: the house card style. Playful, no soft shadows. Hover pushes it up a touch like a 3D block. */
.lab-card-hard{border:2px solid var(--navy);border-radius:var(--radius);box-shadow:var(--shadow-hard);transition:transform .18s var(--ease),box-shadow .18s var(--ease)}
.lab-card-hard:hover{transform:translate(-1px,-2px);box-shadow:var(--shadow-hard-lg)}
.lab-squiggle{position:relative;display:inline-block}
.lab-squiggle::after{content:'';position:absolute;left:0;right:0;bottom:-.12em;height:.32em;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 20' preserveAspectRatio='none'%3E%3Cpath d='M2 12c12-10 24-10 36 0s24 10 36 0 24-10 36 0' fill='none' stroke='%23ef7b45' stroke-width='6' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat center/100% 100%}
@media(prefers-reduced-motion:reduce){.lab-btn,.lab-card-hard,.lab-btn .lab-btn-disc svg{transition:none}}

/* The site follows the OS dark mode. Extensions look for this rule to tell a site with its own dark mode. */
@media (prefers-color-scheme:dark){:root{color-scheme:dark}}
:root[data-theme="dark"]{
  color-scheme:dark;
  --navy-deep:#090d24;
  --dark-well:#0b1030;
  --dark-deep-band:#0f1538;
  --dark-ground:#192051;
  --dark-band:#1f275d;
  --dark-ground-raised:#252e69;
  --dark-raise:#2f3879;
  --dark-heading:#eeedfc;
  --dark-text:#f2efe8;
  --dark-muted:#b6b9da;
  --dark-line:#8e90d6;
  --dark-rim:#4b52a6;
  --dark-field:#656bbd;
  --dark-edge:#3b4287;
  --dark-lip:#0f1438;
  --dark-focus:#c6c3fd;
  --lilac:#9c93f1;
  --sun:#dcb149;
  --sage:#66c093;
  --peach:#f2b79b;
  --g-lilac-rim:#b6b0fb;--g-lilac-side:#4e4c8d;
  --g-sun-rim:#e8c365;--g-sun-side:#7c5911;--g-sun-offset:#a98326;
  --g-sage-rim:#8fd7b0;--g-sage-side:#2b654b;
  --g-lilac-fill:#8d84e0;--g-lilac-hi:#a59df5;--g-lilac-lo:#7a70c8;--g-lilac-edge:#9b93ea;
  --g-sun-fill:#c89c39;--g-sun-hi:#dcb350;--g-sun-lo:#be952e;--g-sun-edge:#d4ab4f;
  --g-sage-fill:#55ad81;--g-sage-hi:#6cc598;--g-sage-lo:#3d956a;--g-sage-edge:#6bb991;
  --g-lilac-deep:#2d2b70;--g-sun-deep:#623900;--g-sage-deep:#123f47;
  --g-lilac-line:#766dc0;--g-sun-line:#977523;--g-sage-line:#368d64;
  --dark-name:#d9d7f8;
  --dark-role:#b3b4d7;
  --dark-marks:#e2e3f5;
  --dark-year:#c6c3fd;
  --spotify-green:#1ED760;
  --aurora-line:linear-gradient(90deg,var(--sage),var(--lilac));
  --aurora-text:#a8ecc8;
  --dark-mark:#d98b62;
  --txt-aurora:linear-gradient(100deg,currentColor 12%,oklch(from currentColor .8 .115 292) 88%);
  --spotify-white:url(/images/brand/spotify/spotify-icon-white.svg);
  --aurora-a:url(/images/night/aurora-a.webp);
  --aurora-b:url(/images/night/aurora-b.webp);
  --ridge:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 110' preserveAspectRatio='none'%3E%3Cpath d='M0 34C40 22 70 14 118 26s74 30 122 18 92-34 160-20v86H0Z' fill='%23182058'/%3E%3Cpath d='M0 66c52-16 92-20 140-8s88 20 132 8 86-20 128-6v50H0Z' fill='%230e1438'/%3E%3C/svg%3E");
  --stars-a:radial-gradient(2.2px 2.2px at 97px 61px,#fbf6eab8 45%,transparent 72%),radial-gradient(1.6px 1.6px at 318px 203px,#fbf6ea80 45%,transparent 72%),radial-gradient(3px 3px at 571px 118px,#fbf6ead0 45%,transparent 72%),radial-gradient(1.6px 1.6px at 803px 433px,#d5d3fb90 45%,transparent 72%),radial-gradient(2.4px 2.4px at 1046px 72px,#fbf6eaa8 45%,transparent 72%),radial-gradient(1.6px 1.6px at 211px 611px,#fbf6ea80 45%,transparent 72%),radial-gradient(2.6px 2.6px at 689px 352px,#d5d3fba8 45%,transparent 72%),radial-gradient(1.6px 1.6px at 1189px 528px,#fbf6ea78 45%,transparent 72%),radial-gradient(2px 2px at 432px 781px,#fbf6ea98 45%,transparent 72%),radial-gradient(1.6px 1.6px at 928px 697px,#d5d3fb78 45%,transparent 72%),radial-gradient(3px 3px at 1240px 262px,#fbf6eac0 45%,transparent 72%),radial-gradient(1.8px 1.8px at 54px 404px,#fbf6ea80 45%,transparent 72%),radial-gradient(2.6px 2.6px at 28px 812px,#fbf6eaa8 45%,transparent 72%),radial-gradient(1.6px 1.6px at 66px 190px,#d5d3fb88 45%,transparent 72%),radial-gradient(3px 3px at 131px 655px,#fbf6eab8 45%,transparent 72%),radial-gradient(1.8px 1.8px at 150px 910px,#fbf6ea78 45%,transparent 72%),radial-gradient(1.6px 1.6px at 18px 540px,#d5d3fb70 45%,transparent 72%);
  --stars-b:radial-gradient(1.6px 1.6px at 143px 287px,#fbf6ea78 45%,transparent 72%),radial-gradient(2.2px 2.2px at 712px 94px,#fbf6ea98 45%,transparent 72%),radial-gradient(2.8px 2.8px at 1393px 371px,#d5d3fbb0 45%,transparent 72%),radial-gradient(2.4px 2.4px at 379px 519px,#fbf6eaa8 45%,transparent 72%),radial-gradient(1.6px 1.6px at 1021px 853px,#fbf6ea70 45%,transparent 72%),radial-gradient(2px 2px at 1612px 160px,#d5d3fb88 45%,transparent 72%),radial-gradient(1.6px 1.6px at 866px 476px,#fbf6ea68 45%,transparent 72%),radial-gradient(2.4px 2.4px at 1557px 702px,#fbf6eaa0 45%,transparent 72%),radial-gradient(1.6px 1.6px at 251px 967px,#fbf6ea78 45%,transparent 72%),radial-gradient(1.6px 1.6px at 1211px 1013px,#fbf6ea70 45%,transparent 72%),radial-gradient(2px 2px at 549px 889px,#d5d3fb88 45%,transparent 72%),radial-gradient(1.8px 1.8px at 1378px 620px,#fbf6ea90 45%,transparent 72%),radial-gradient(3px 3px at 1421px 905px,#fbf6eac0 45%,transparent 72%),radial-gradient(1.6px 1.6px at 1366px 150px,#d5d3fb80 45%,transparent 72%),radial-gradient(2px 2px at 44px 760px,#fbf6ea98 45%,transparent 72%),radial-gradient(1.6px 1.6px at 72px 120px,#fbf6ea78 45%,transparent 72%);
  --stars:var(--stars-a),var(--stars-b);
  --stars-size:1277px 1021px,1733px 1117px;
  --ridge-on-ground:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 84' width='1440' height='84'%3E%3Cpath d='M-20 38C12 36 102 32 170 28C238 24 317 14 390 14C463 14 537 26 610 30C683 34 757 41 830 40C903 39 977 27 1050 22C1123 17 1202 11 1270 12C1338 13 1428 27 1460 30V88H-20Z' fill='%2327316d'/%3E%3Cpath d='M-20 38C12 36 102 32 170 28C238 24 317 14 390 14C463 14 537 26 610 30C683 34 757 41 830 40C903 39 977 27 1050 22C1123 17 1202 11 1270 12C1338 13 1428 27 1460 30' fill='none' stroke='%23a9a6f2' stroke-opacity='.34' stroke-width='1.4'/%3E%3Cpath d='M-20 62C17 63 125 71 200 70C275 69 353 60 430 56C507 52 582 47 660 48C738 49 822 59 900 62C978 65 1060 70 1130 68C1200 66 1265 54 1320 52C1375 50 1437 57 1460 58V88H-20ZM88 49L91.9 56.0H90.1L93.7 61.1H91.2L95.1 70H80.9L84.8 61.1H82.3L85.9 56.0H84.1ZM112 45L117.1 54.4H114.8L119.4 61.0H116.2L121.2 71H102.8L107.8 61.0H104.6L109.2 54.4H106.9ZM138 54L141.2 60.3H139.8L142.7 64.5H140.6L143.9 72H132.1L135.4 64.5H133.3L136.2 60.3H134.8ZM560 36L563.5 42.5H561.9L565.0 47.0H562.8L566.3 55H553.7L557.2 47.0H555.0L558.1 42.5H556.5ZM584 30L588.6 38.4H586.5L590.7 44.4H587.8L592.4 54H575.6L580.2 44.4H577.3L581.5 38.4H579.4ZM1000 50L1003.2 56.3H1001.8L1004.7 60.5H1002.6L1005.9 68H994.1L997.4 60.5H995.3L998.2 56.3H996.8ZM1168 48L1172.2 55.9H1170.3L1174.0 61.3H1171.4L1175.6 70H1160.4L1164.6 61.3H1162.0L1165.7 55.9H1163.8ZM1194 40L1199.5 49.9H1197.0L1202.1 57.1H1198.5L1204.1 68H1183.9L1189.5 57.1H1185.9L1191.0 49.9H1188.5ZM1222 44L1225.7 51.1H1224.0L1227.4 55.9H1225.0L1228.7 64H1215.3L1219.0 55.9H1216.6L1220.0 51.1H1218.3ZM1252 44L1255.0 49.1H1253.6L1256.4 53.0H1254.5L1257.5 61H1246.5L1249.5 53.0H1247.6L1250.4 49.1H1249.0ZM1392 37L1396.2 44.7H1394.3L1398.0 50.1H1395.4L1399.6 59H1384.4L1388.6 50.1H1386.0L1389.7 44.7H1387.8Z' fill='%23192051'/%3E%3C/svg%3E");
  --ridge-wash:radial-gradient(44% 100% at 28% 100%,rgb(156 147 241 / .11),transparent 72%),radial-gradient(48% 100% at 76% 100%,rgb(102 192 147 / .09),transparent 72%);
  --ridge-size:max(100%,1440px) auto;
  --ridge-h:170px;
  --ridge-clear:88px;
  --hero-stars:radial-gradient(2.2px 2.2px at 63% 16%,#fbf6eab0 45%,transparent 72%),radial-gradient(1.6px 1.6px at 70% 38%,#fbf6ea88 45%,transparent 72%),radial-gradient(2.8px 2.8px at 77% 9%,#fbf6eac8 45%,transparent 72%),radial-gradient(1.6px 1.6px at 84% 27%,#d5d3fb90 45%,transparent 72%),radial-gradient(2.2px 2.2px at 92% 13%,#fbf6eaa8 45%,transparent 72%),radial-gradient(2.8px 2.8px at 97% 40%,#d5d3fbb8 45%,transparent 72%),radial-gradient(1.8px 1.8px at 66% 60%,#fbf6ea80 45%,transparent 72%),radial-gradient(1.6px 1.6px at 74% 66%,#d5d3fb78 45%,transparent 72%);
  --home-stars:radial-gradient(2.2px 2.2px at 6% 14%,#fbf6eaa8 45%,transparent 72%),radial-gradient(1.6px 1.6px at 14% 42%,#d5d3fb80 45%,transparent 72%),radial-gradient(2.6px 2.6px at 23% 8%,#fbf6eab8 45%,transparent 72%),radial-gradient(1.6px 1.6px at 33% 24%,#fbf6ea78 45%,transparent 72%),radial-gradient(2px 2px at 41% 70%,#d5d3fb88 45%,transparent 72%),radial-gradient(1.6px 1.6px at 4% 76%,#fbf6ea70 45%,transparent 72%),radial-gradient(2.4px 2.4px at 47% 12%,#fbf6eaa0 45%,transparent 72%),radial-gradient(1.6px 1.6px at 52% 46%,#d5d3fb70 45%,transparent 72%),radial-gradient(2px 2px at 28% 90%,#fbf6ea80 45%,transparent 72%),radial-gradient(1.6px 1.6px at 58% 86%,#fbf6ea68 45%,transparent 72%);
  --note-stars:radial-gradient(2.2px 2.2px at 7% 18%,#fbf6eab0 45%,transparent 72%),radial-gradient(1.6px 1.6px at 15% 42%,#d5d3fb88 45%,transparent 72%),radial-gradient(2.8px 2.8px at 11% 66%,#fbf6eab8 45%,transparent 72%),radial-gradient(1.6px 1.6px at 23% 14%,#fbf6ea80 45%,transparent 72%),radial-gradient(2.4px 2.4px at 78% 12%,#fbf6eab0 45%,transparent 72%),radial-gradient(1.6px 1.6px at 86% 38%,#fbf6ea88 45%,transparent 72%),radial-gradient(2.8px 2.8px at 93% 20%,#d5d3fbb8 45%,transparent 72%),radial-gradient(1.8px 1.8px at 90% 62%,#fbf6ea90 45%,transparent 72%);
}
/* Safari on iOS colours the status bar and the overscroll from the body, so it matches the header and the footer. */
:root[data-theme="dark"] body{background:var(--dark-ground)}
:root[data-theme="dark"] ::selection{background:var(--lilac);color:#0b1029}
:root[data-theme="dark"] [data-ground="day"]{
  --cream:var(--dark-ground);--cream-deep:var(--dark-ground-raised);
  --navy:var(--dark-heading);--ink:var(--dark-text);--muted:var(--dark-muted);
  --lilac-soft:var(--dark-ground-raised);--sun-soft:var(--dark-ground-raised);--sage-soft:var(--dark-ground-raised);
  --shadow-hard:0 4px 0 0 var(--dark-edge);--shadow-hard-lg:0 6px 0 0 var(--dark-edge);
}
:root[data-theme="dark"] [data-ground="night"]{--navy:var(--dark-ground);--muted:var(--dark-muted)}
:root[data-theme="dark"] .lab-btn,:root[data-theme="dark"] .lab-card-hard{
  --navy:#141a42;--cream:#fbf6ea;--ink:#141a42;--muted:#3f4468;
  --shadow-hard:0 4px 0 0 var(--dark-edge);--shadow-hard-lg:0 6px 0 0 var(--dark-edge);
}
:root[data-theme="dark"] .lab-btn:focus-visible,:root[data-theme="dark"] .lab-card-hard:focus-visible{outline-color:var(--dark-focus)}
:root[data-theme="dark"] .site-night{background:linear-gradient(var(--navy-deep),#0b1030 42%,var(--navy-deep))}
:root[data-theme="dark"] .site-night::before{background-image:var(--stars);background-size:var(--stars-size);opacity:.85;mask-image:var(--star-gutters)}
@media(max-width:899px){:root[data-theme="dark"]{--ridge-size:900px auto;--ridge-h:110px;--ridge-clear:68px;--home-stars:radial-gradient(2.2px 2.2px at 8% 26px,#fbf6eaa8 45%,transparent 72%),radial-gradient(1.6px 1.6px at 22% 70px,#d5d3fb80 45%,transparent 72%),radial-gradient(2.4px 2.4px at 44% 18px,#fbf6eab0 45%,transparent 72%),radial-gradient(1.6px 1.6px at 62% 54px,#fbf6ea78 45%,transparent 72%),radial-gradient(2px 2px at 84% 30px,#fbf6ea90 45%,transparent 72%),radial-gradient(1.6px 1.6px at 94% 96px,#d5d3fb80 45%,transparent 72%),radial-gradient(1.8px 1.8px at 6% 180px,#fbf6ea70 45%,transparent 72%),radial-gradient(1.6px 1.6px at 95% 250px,#fbf6ea70 45%,transparent 72%);--hero-stars:radial-gradient(2.2px 2.2px at 6% 14px,#fbf6eab0 45%,transparent 72%),radial-gradient(1.6px 1.6px at 15% 46px,#fbf6ea88 45%,transparent 72%),radial-gradient(2.6px 2.6px at 25% 20px,#d5d3fbb0 45%,transparent 72%),radial-gradient(1.6px 1.6px at 35% 54px,#fbf6ea80 45%,transparent 72%),radial-gradient(1.8px 1.8px at 47% 12px,#fbf6ea90 45%,transparent 72%),radial-gradient(2px 2px at 95% 58px,#fbf6ea98 45%,transparent 72%);--note-stars:radial-gradient(2.2px 2.2px at 5% 22px,#fbf6eab0 45%,transparent 72%),radial-gradient(1.6px 1.6px at 11% 58px,#d5d3fb88 45%,transparent 72%),radial-gradient(1.6px 1.6px at 18% 18px,#fbf6ea80 45%,transparent 72%),radial-gradient(1.8px 1.8px at 82% 16px,#fbf6ea90 45%,transparent 72%),radial-gradient(2.4px 2.4px at 90% 52px,#d5d3fba8 45%,transparent 72%),radial-gradient(1.6px 1.6px at 96% 24px,#fbf6ea80 45%,transparent 72%)}}
