/* 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{
  --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);
}
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}}
