@font-face { font-family: Brinewake; src: url("/public/fonts/brinewake-regular.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; } .brine-page { --brine-ink: #163b39; --brine-paper: #ede9df; --brine-rule: #b7bdb0; --brine-red: #a43c29; background: var(--brine-paper); color: var(--brine-ink); font-family: Inter, system-ui, sans-serif; font-size: 14px; line-height: 1.5; font-synthesis: none; } .brine-page * { box-sizing: border-box; } .brine-page [hidden] { display: none !important; } .brine-page :is(h1, h2, p) { margin: 0; } .brine-page a { color: inherit; text-decoration: none; text-underline-offset: 0.25em; } .brine-page a:hover { text-decoration: underline; } .brine-page :is(a, button, input, select, textarea):focus-visible { outline: 2px solid currentColor; outline-offset: 5px; } .brine-page ::selection { background: #b9cc90; color: #163b39; } body:has(.brine-page) > .theme-toggle, body:has(.brine-page) > .theme-preferences { display: none; } .brine-nav, .brine-footer { display: flex; justify-content: space-between; gap: 24px; padding: 26px 4vw; border-bottom: 1px solid var(--brine-rule); font-size: 12px; } .brine-nav > div { display: flex; gap: 30px; flex-wrap: wrap; } .brine-hero { padding: 12px 4vw 0; } .brine-hero h1 { font-family: Brinewake, Georgia, serif; font-size: 18.8vw; letter-spacing: -0.025em; line-height: 1.2; font-weight: 400; padding-bottom: 8px; } .brine-intro { display: flex; justify-content: space-between; gap: 30px; padding: 18px 0 40px; border-top: 1px solid var(--brine-rule); } .brine-intro p:first-child { font-size: 18px; line-height: 1.5; } .brine-intro p:last-child { text-align: right; font-size: 12px; padding-top: 3px; } .brine-tide { position: relative; padding: 48px 6vw 74px; background: #ced6c5; isolation: isolate; } .brine-tide p { position: relative; z-index: 1; font-family: Brinewake, Georgia, serif; font-size: 10vw; line-height: 1.06; letter-spacing: -0.025em; } .brine-tide p:nth-child(2) { text-align: right; } .brine-tide > span { position: absolute; left: 49%; top: 50%; transform: translate(-50%, -48%); font-family: Brinewake, Georgia, serif; font-size: 25vw; line-height: 1; color: #aebdaa; z-index: 0; } .brine-caption { display: flex; justify-content: space-between; gap: 24px; font-size: 11px; padding: 13px 0 52px; } .brine-section-head { display: flex; justify-content: space-between; align-items: baseline; gap: 24px; margin-bottom: 38px; } .brine-section-head h2 { font-family: Inter, system-ui, sans-serif; font-size: 18px; font-weight: 500; letter-spacing: -0.035em; line-height: 1.4; } .brine-section-head > span { font-size: 11px; white-space: nowrap; } .brine-tester { padding: 42px 8vw 32px; background: var(--brine-ink); color: var(--brine-paper); } .brine-controls { display: flex; align-items: end; gap: 36px; font-size: 12px; padding-bottom: 26px; border-bottom: 1px solid #5b7870; } .brine-controls label { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; } .brine-controls label:first-child { min-width: 200px; width: 38%; justify-content: space-between; } .brine-controls output { font-variant-numeric: tabular-nums; } .brine-controls input { width: 100%; accent-color: #cbdab4; cursor: pointer; margin: 0; } .brine-controls select { display: block; width: 100%; font: inherit; color: inherit; background: var(--brine-ink); border: 0; border-bottom: 1px solid #8b9b87; padding: 8px 20px 8px 0; border-radius: 0; } .brine-controls button { font: inherit; color: inherit; background: none; border: 0; border-bottom: 1px solid #8b9b87; padding: 8px 0; cursor: pointer; margin-left: auto; } #brine-text { display: block; width: 100%; height: auto; min-height: 320px; resize: none; overflow: hidden; border: 0; border-radius: 0; background: transparent; color: inherit; font: 400 120px/1.14 Brinewake, Georgia, serif; letter-spacing: -0.018em; padding: 38px 4px 30px; margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; word-break: break-word; font-kerning: normal; } .brine-support { font-size: 11px; color: #c0ccbc; max-width: 660px; } #brine-warning:empty { display: none; } #brine-warning:not(:empty) { padding-top: 8px; color: #f1cb99; } .brine-drawing, .brine-scale, .brine-charset { padding: 52px 8vw; border-bottom: 1px solid var(--brine-rule); } .brine-anatomy { display: grid; grid-template-columns: 1fr 1fr; gap: 9vw; align-items: center; } .brine-loupe { min-width: 0; } .brine-glyph-stage { position: relative; height: 330px; display: flex; align-items: center; justify-content: center; background: #e1e3d8; } #brine-large-glyph { display: block; font-family: Brinewake, Georgia, serif; font-size: 300px; line-height: 1.09; padding-bottom: 0; position: relative; z-index: 1; } .brine-baseline { position: absolute; left: 0; right: 0; top: calc(50% + 82.5px); height: 1px; background: #a0afa0; } .brine-glyph-picks { display: flex; gap: 1px; margin-top: 14px; } .brine-glyph-picks button { font: 400 35px/1.2 Brinewake, Georgia, serif; flex: 1; border: 1px solid transparent; background: none; color: inherit; padding: 7px; cursor: pointer; } .brine-glyph-picks button[aria-pressed="true"] { border-color: var(--brine-ink); background: #e1e3d8; } .brine-notes { max-width: 370px; } .brine-proof-notes { margin-top: 22px; font-size: 11px; border-top: 1px solid var(--brine-rule); padding-top: 12px; } .brine-proof-notes summary { cursor: pointer; text-underline-offset: 0.25em; } .brine-proof-notes summary:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; } .brine-notes p { margin-top: 22px; font-size: 13px; line-height: 1.7; } .brine-notes .brine-note-main { font-family: Brinewake, Georgia, serif; font-size: 34px; line-height: 1.18; letter-spacing: -0.015em; margin-top: 0; min-height: 160px; } .brine-scale > div:not(.brine-section-head) { display: grid; grid-template-columns: 60px 1fr; align-items: baseline; gap: 20px; padding: 20px 0; border-top: 1px solid var(--brine-rule); } .brine-scale > div > span { font-size: 11px; font-variant-numeric: tabular-nums; } .brine-scale > div > p { font-family: Brinewake, Georgia, serif; line-height: 1.18; overflow-wrap: anywhere; } .brine-proof-72 { font-size: 72px; } .brine-proof-48 { font-size: 48px; } .brine-proof-32 { font-size: 32px; } .brine-scale-note { font-size: 12px; max-width: 470px; margin: 32px 0 0 80px !important; line-height: 1.6; } .brine-charset > p { max-width: 630px; font-size: 12px; line-height: 1.7; margin-bottom: 30px; } .brine-glyph-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(65px, 1fr)); border-top: 1px solid var(--brine-rule); border-left: 1px solid var(--brine-rule); } .brine-glyph-grid > span { font: 400 44px/1.6 Brinewake, Georgia, serif; text-align: center; border-right: 1px solid var(--brine-rule); border-bottom: 1px solid var(--brine-rule); padding: 6px 0 12px; } .brine-files { padding: 65px 8vw 48px; background: #ced6c5; } .brine-files h2 { font: 400 clamp(64px, 8vw, 128px) / 1.04 Brinewake, Georgia, serif; letter-spacing: -0.025em; padding-bottom: 46px; } .brine-file-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; } .brine-file-row a { display: flex; flex-direction: column; gap: 14px; border-top: 1px solid var(--brine-ink); padding: 15px 0; font-size: 12px; } .brine-file-row a > span { font: 400 32px/1.2 Brinewake, Georgia, serif; } .brine-files > p { font-size: 11px; line-height: 1.7; max-width: 600px; margin-top: 30px; } .brine-files > p a { text-decoration: underline; } .brine-footer { border: 0; font-size: 11px; } .brine-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; } @media (min-width: 1600px) { .brine-page { max-width: 1600px; margin: auto; } .brine-hero h1 { font-size: 300px; } .brine-tide p { font-size: 160px; } .brine-tide > span { font-size: 400px; } } @media (max-width: 700px) { .brine-nav { padding: 20px 5vw; font-size: 11px; gap: 14px; } .brine-nav > div { gap: 15px; } .brine-nav > div a:last-child { display: none; } .brine-hero { padding: 18px 5vw 0; } .brine-hero h1 { font-size: 18.2vw; letter-spacing: -0.03em; padding-bottom: 20px; line-height: 1.2; } .brine-intro { padding: 16px 0 28px; gap: 15px; } .brine-intro p:first-child { font-size: 14px; } .brine-intro p:last-child { font-size: 9px; } .brine-tide { padding: 45px 4vw 53px; } .brine-tide p { font-size: 10.5vw; line-height: 1.12; } .brine-tide > span { font-size: 31vw; } .brine-caption { font-size: 9px; padding: 12px 0 32px; gap: 15px; } .brine-tester, .brine-drawing, .brine-scale, .brine-charset { padding: 30px 6vw; } .brine-section-head { display: block; margin-bottom: 24px; } .brine-section-head h2 { font-size: 17px; } .brine-section-head > span { display: block; margin-top: 7px; font-size: 10px; } .brine-controls { gap: 18px; flex-wrap: wrap; font-size: 11px; padding-bottom: 18px; } .brine-controls label:first-child { min-width: 0; width: 100%; } .brine-controls label:nth-child(2) { width: 70%; gap: 3px; } .brine-controls button { margin-bottom: 0; } #brine-text { font-size: 72px; min-height: 220px; padding: 28px 2px 20px; line-height: 1.17; } .brine-support { font-size: 10px; line-height: 1.6; } .brine-anatomy { grid-template-columns: 1fr; gap: 28px; } .brine-glyph-stage { height: 290px; } #brine-large-glyph { font-size: 265px; } .brine-baseline { top: calc(50% + 72.875px); } .brine-notes { max-width: none; } .brine-notes .brine-note-main { font-size: 32px; min-height: 0; } .brine-notes p { font-size: 12px; margin-top: 18px; } .brine-scale > div:not(.brine-section-head) { grid-template-columns: 1fr; gap: 9px; padding: 22px 0; } .brine-proof-72 { font-size: 72px; } .brine-scale-note { margin: 24px 0 0 !important; font-size: 11px; } .brine-glyph-grid { grid-template-columns: repeat(auto-fill, minmax(48px, 1fr)); } .brine-glyph-grid > span { font-size: 36px; line-height: 1.7; padding: 5px 0 9px; } .brine-charset > p { font-size: 11px; } .brine-files { padding: 36px 6vw; } .brine-files h2 { font-size: 16vw; padding-bottom: 34px; } .brine-file-row { grid-template-columns: 1fr; gap: 5px; } .brine-file-row a { flex-direction: row; justify-content: space-between; align-items: baseline; padding: 16px 0; gap: 16px; } .brine-file-row a > span { font-size: 28px; } .brine-files > p { margin-top: 25px; font-size: 10px; } .brine-footer { padding: 23px 6vw; font-size: 10px; } } @media (prefers-reduced-motion: no-preference) { .brine-page a, .brine-glyph-picks button { transition: background-color 0.18s ease; } } @media print { .brine-nav, .brine-controls, .brine-footer { display: none; } .brine-page { print-color-adjust: exact; } .brine-files { break-inside: avoid; } }