:root {
    --bg: #f7f4eb;
    --ink: #000000;
    --pad: clamp(24px, 5vw, 56px);
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: ui-monospace, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;
    background-color: var(--bg);
    color: var(--ink);
    min-height: 100svh;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 4rem;
    padding: var(--pad);
    -webkit-font-smoothing: antialiased;
}

::selection {
    background: var(--ink);
    color: var(--bg);
}

.logo {
    font-family: Arial, "Helvetica Neue", Helvetica, sans-serif;
    font-size: clamp(3.5rem, 12vw, 9rem);
    font-weight: bold;
    letter-spacing: -0.04em;
    line-height: 1;
    animation: rise 0.7s ease 0.1s both;
}

.logo-dot {
    animation: breathe 4s ease-in-out infinite;
}

.text {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    max-width: 62ch;
    animation: rise 0.7s ease 0.25s both;
}

.text h1,
.text p {
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.7;
    letter-spacing: 0;
}

.p1-line {
    font-size: 0.85rem;
}

.p1-line a {
    color: inherit;
    text-decoration: none;
    opacity: 0.4;
    border-bottom: 1px solid transparent;
    transition: opacity 0.2s ease, border-color 0.2s ease;
}

.p1-line a:hover,
.p1-line a:focus-visible {
    opacity: 1;
    border-bottom-color: var(--ink);
}

@keyframes rise {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
}

/* Editorial homepage. Base styles above are shared by the information pages. */
.home {
    --muted: #69665d;
    --rule: #d3d0c5;
    --sans: Arial, "Helvetica Neue", Helvetica, sans-serif;
    --serif: Georgia, "Times New Roman", serif;
    padding: 0 clamp(24px, 5vw, 76px);
    gap: 0;
    justify-content: flex-start;
}
.home a { color: inherit; text-decoration: none; }
.home [hidden] { display: none !important; }
.home a:focus-visible, .home button:focus-visible, .home input:focus-visible { outline: 2px solid var(--ink); outline-offset: 5px; }
.home .sr-only { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.home .skip-link { position:absolute; top:12px; left:24px; z-index:10; padding:15px; background:var(--ink); color:var(--bg); transform:translateY(-200%); font-size:.8rem; }
.home .skip-link:focus { transform:translateY(0); }
.home .site-header { min-height:106px; display:flex; align-items:center; gap:40px; border-bottom:1px solid var(--rule); }
.home .logo { font-size:46px; letter-spacing:-.07em; line-height:1; animation:none; }
.home .logo-dot { animation:none; }
.header-nav { display:flex; align-items:center; gap:34px; margin-left:auto; }
.header-nav a { min-height:44px; display:inline-flex; align-items:center; font-size:.75rem; position:relative; }
.header-nav a::after { content:""; height:1px; position:absolute; bottom:6px; left:0; right:0; background:currentColor; transform:scaleX(0); transform-origin:left; transition:transform .2s; }
.header-nav a:hover::after { transform:scaleX(1); }
.home .langsw { display:flex; gap:4px; }
.home .langsw button { min-width:40px; min-height:44px; border:0; background:none; font:inherit; font-size:.68rem; cursor:pointer; color:var(--muted); text-underline-offset:6px; }
.home .langsw button.on { color:var(--ink); text-decoration:underline; }
.home-main { width:100%; }
.intro { position:relative; isolation:isolate; background:var(--bg); display:grid; grid-template-columns:1.65fr 1fr; gap:60px; padding:66px 0 62px; }
.eyebrow { font-size:.63rem; letter-spacing:.08em; text-transform:uppercase; font-weight:400; color:var(--muted); line-height:1.7; }
.hero-heading .eyebrow { margin-bottom:24px; }
.home .motto { font-family:var(--sans); font-size:clamp(54px,6.9vw,106px); line-height:1.01; letter-spacing:-.065em; font-weight:400; }
.home .motto span, .home .motto em { display:block; }
.home .motto em { font-family:var(--serif); font-size:1.13em; font-weight:400; letter-spacing:-.065em; line-height:1.02; margin-top:5px; }
.hero-aside { display:flex; flex-direction:column; align-items:flex-start; justify-content:flex-end; max-width:340px; padding:0 0 3px; position:relative; }
.intro-copy { font-family:var(--sans); font-size:16px; line-height:1.75; color:var(--muted); max-width:32ch; }
.home .primary-link { background:var(--ink); color:var(--bg); display:inline-flex; align-items:center; justify-content:space-between; min-height:54px; padding:17px 21px; gap:36px; margin-top:25px; font-size:.72rem; }
.home .primary-link:hover { background:#32312b; }
.link-arrow { font-family:var(--sans); font-weight:400; display:inline-block; transition:transform .2s; }
.primary-link .link-arrow { font-size:20px; line-height:1; }
.independence { font-size:.59rem; color:var(--muted); line-height:1.7; margin-top:19px; }
.molecular-background { position:absolute; inset:0; overflow:hidden; z-index:-1; pointer-events:none; }
.molecular-background img { position:absolute; object-fit:contain; filter:grayscale(1) contrast(1.12); mix-blend-mode:multiply; }
.molecule-sleep { width:420px; height:420px; right:18%; top:-50px; opacity:.065; transform:rotate(-16deg); }
.molecule-glycine { width:170px; height:170px; right:2%; bottom:40px; opacity:.045; transform:rotate(10deg); }
.supplement-index { border-top:1px solid var(--ink); padding:26px 0 46px; }
.index-toolbar { display:flex; justify-content:space-between; align-items:center; gap:30px; margin-bottom:25px; }
.index-title { display:flex; align-items:baseline; flex-wrap:wrap; gap:20px; }
.index-title h2 { font-family:var(--serif); font-size:34px; line-height:1.15; font-style:italic; letter-spacing:-.055em; font-weight:400; }
.index-count { font-size:.63rem; color:var(--muted); }
.index-search { width:350px; display:flex; gap:16px; align-items:center; padding:6px 0 10px; border-bottom:1px solid var(--rule); }
.search-symbol { flex-shrink:0; width:12px; height:12px; border:1px solid var(--muted); border-radius:50%; position:relative; margin-left:3px; }
.search-symbol::after { content:""; width:5px; height:1px; background:var(--muted); position:absolute; right:-4px; bottom:-2px; transform:rotate(45deg); }
.index-search input { width:100%; min-width:0; min-height:30px; color:var(--ink); border:0; border-radius:0; background:transparent; font-family:var(--sans); font-size:14px; }
.index-search input::placeholder { color:var(--muted); opacity:1; }
.category-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0 30px; }
.category-link { min-height:65px; display:flex; align-items:center; gap:17px; border-bottom:1px solid var(--rule); position:relative; }
.category-number { color:var(--muted); font-size:.57rem; }
.category-name { font-family:var(--sans); font-size:17px; line-height:1.35; letter-spacing:-.02em; }
.category-link .link-arrow { font-size:21px; color:var(--muted); margin-left:auto; }
.category-link:hover .link-arrow { color:var(--ink); transform:translate(3px,-3px); }
.category-link:hover .category-name { text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:5px; }
.all-products { display:inline-flex; align-items:center; gap:28px; min-height:44px; margin-top:22px; font-size:.7rem; }
.all-products:hover .link-arrow { transform:translateX(4px); }
.empty-index { padding:32px 0 12px; font-family:var(--sans); max-width:50ch; font-size:15px; line-height:1.7; color:var(--muted); }
.reading-room { position:relative; isolation:isolate; background:var(--bg); border-top:1px solid var(--rule); display:grid; grid-template-columns:1fr 1.5fr; gap:50px; padding:39px 0 53px; overflow:hidden; }
.reading-intro>p { font-family:var(--serif); font-size:32px; font-weight:400; line-height:1.17; letter-spacing:-.035em; max-width:15ch; margin-top:18px; }
.reading-links { display:grid; grid-template-columns:1fr 1fr; gap:40px; }
.reading-link { display:flex; justify-content:space-between; align-items:flex-start; gap:18px; padding:3px 0 10px; }
.reading-link h3 { font-family:var(--sans); font-size:20px; font-weight:400; line-height:1.35; letter-spacing:-.03em; max-width:20ch; }
.reading-link p { margin-top:13px; font-family:var(--sans); color:var(--muted); font-size:13px; line-height:1.7; max-width:24ch; }
.reading-link .link-arrow { font-size:22px; margin-top:1px; }
.reading-link:hover .link-arrow { transform:translate(3px,-3px); }
.reading-molecule { position:absolute; object-fit:contain; width:255px; height:255px; bottom:-95px; right:-30px; opacity:.07; filter:grayscale(1) contrast(1.12); mix-blend-mode:multiply; z-index:-1; pointer-events:none; }
.home .site-foot { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:16px 24px; border-top:1px solid var(--rule); padding:18px 0; font-size:.58rem; color:var(--muted); }
.home .site-foot nav { display:flex; gap:23px; }
.home .site-foot a { display:inline-flex; min-height:44px; align-items:center; }
.home .site-foot a:hover { text-decoration:underline; text-underline-offset:4px; }
.footer-note { margin-left:auto; }
@media(min-width:1600px) {
    .home { padding-inline:max(76px,calc((100% - 1384px) / 2)); }
}
@media(max-width:1080px) {
    .intro { gap:35px; grid-template-columns:1.45fr 1fr; padding-block:52px; }
    .home .motto { font-size:clamp(54px,7.2vw,78px); }
    .intro-copy { font-size:14px; }
    .category-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 27px; }
    .category-link { min-height:61px; }
    .reading-room { grid-template-columns:.8fr 1.5fr; gap:36px; }
    .reading-links { gap:30px; }
    .reading-link h3 { font-size:18px; }
    .footer-note { display:none; }
}
@media(max-width:760px) {
    .home { padding-inline:24px; }
    .home .site-header { min-height:85px; gap:20px; flex-wrap:wrap; }
    .home .logo { font-size:38px; }
    .header-nav { gap:19px; }
    .header-nav a { font-size:.69rem; }
    .home .langsw { gap:0; }
    .home .langsw button { min-width:44px; font-size:.69rem; }
    .intro { grid-template-columns:1fr; gap:28px; padding:43px 0 36px; }
    .hero-heading .eyebrow { margin-bottom:21px; font-size:.57rem; }
    .home .motto { font-size:clamp(43px,9.5vw,70px); }
    .hero-aside { max-width:none; display:grid; grid-template-columns:1fr auto; align-items:center; gap:12px 28px; }
    .intro-copy { max-width:34ch; font-size:14px; }
    .home .primary-link { margin:0; }
    .independence { grid-column:1/-1; margin:0; }
    .molecule-sleep { width:300px; height:300px; right:-8%; top:-5px; opacity:.06; }
    .molecule-glycine { display:none; }
    .index-toolbar { gap:20px; }
    .index-title { gap:12px; }
    .index-title h2 { font-size:31px; }
    .index-search { width:45%; }
    .index-search input { font-size:16px; }
    .category-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 28px; }
    .category-link { min-height:59px; gap:12px; }
    .category-name { font-size:16px; }
    .reading-room { grid-template-columns:1fr; gap:30px; padding-block:30px 40px; }
    .reading-intro { display:flex; align-items:baseline; justify-content:space-between; gap:25px; }
    .reading-intro>p { margin-top:0; font-size:29px; max-width:16ch; }
    .reading-links { gap:30px; }
    .reading-link h3 { font-size:20px; }
}
@media(max-width:540px) {
    .home .site-header { gap:10px; }
    .header-nav { gap:12px; }
    .header-nav a { font-size:.69rem; }
    .home .langsw button { min-width:40px; }
    .intro { gap:25px; }
    .home .motto { font-size:clamp(37px,10.1vw,54px); }
    .home .motto em { font-size:1.34em; line-height:1.1; margin-top:2px; }
    .hero-aside { display:flex; gap:0; align-items:flex-start; }
    .intro-copy { max-width:38ch; line-height:1.7; }
    .home .primary-link { margin-top:20px; min-height:52px; width:100%; }
    .independence { margin-top:14px; font-size:.57rem; }
    .molecule-sleep { width:245px; height:245px; right:-33%; top:-3px; opacity:.06; }
    .supplement-index { padding-top:22px; padding-bottom:32px; }
    .index-toolbar { display:block; margin-bottom:12px; }
    .index-title { justify-content:space-between; }
    .index-title h2 { font-size:33px; }
    .index-search { width:100%; margin-top:20px; padding-bottom:9px; }
    .category-grid { gap:0 23px; }
    .category-link { min-height:57px; gap:0; }
    .category-number { display:none; }
    .category-name { font-size:14px; }
    .category-link .link-arrow { font-size:18px; }
    .all-products { margin-top:17px; font-size:.68rem; }
    .reading-room { gap:25px; padding-block:28px 30px; }
    .reading-intro { display:block; }
    .reading-intro>p { max-width:18ch; margin-top:15px; font-size:30px; }
    .reading-links { grid-template-columns:1fr; gap:0; }
    .reading-link { border-top:1px solid var(--rule); padding:21px 0; gap:28px; }
    .reading-link h3 { font-size:21px; max-width:none; }
    .reading-link p { max-width:none; margin-top:8px; font-size:13px; }
    .reading-molecule { bottom:-60px; right:-70px; opacity:.06; }
    .home .site-foot { padding:14px 0; gap:0 18px; font-size:.56rem; }
    .home .site-foot nav { gap:16px; }
}
@media(max-width:355px) {
    .home .site-header { display:grid; grid-template-columns:1fr auto; gap:0; padding-block:16px 8px; }
    .home .logo { font-size:33px; }
    .header-nav { grid-column:1/-1; grid-row:2; margin-left:0; gap:26px; }
    .header-nav a { font-size:.69rem; }
    .home .langsw { grid-column:2; grid-row:1; }
    .home .langsw button { min-width:44px; font-size:.69rem; }
    .category-grid { column-gap:18px; }
    .category-name { font-size:13px; }
    .home .motto { font-size:33px; }
}
@media(prefers-reduced-motion:reduce) {
    .logo, .logo-dot, .text { animation:none; }
    .home * { transition:none !important; scroll-behavior:auto !important; }
}

@keyframes breathe { 50% { opacity: .25; } }
