/* dusk.css: the public stylesheet for surfaces that speak as Dusk Research.
   Generated from the brand's sky curve; do not edit by hand. Documented in https://duskresearch.com/design.md.
   Load it once, put the class "dusk" on the page root, and use only the class names and
   tokens that design.md lists. The sky is dark. There is no light mode. */

@font-face{font-family:'DM Serif Text';src:url('https://duskresearch.com/fonts/DMSerifText-Regular-latin.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap;unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'DM Serif Text';src:url('https://duskresearch.com/fonts/DMSerifText-Regular-latin-ext.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap;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:'DM Serif Text';src:url('https://duskresearch.com/fonts/DMSerifText-Italic-latin.woff2') format('woff2');font-weight:400;font-style:italic;font-display:swap;unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Open Runde';src:url('https://duskresearch.com/fonts/OpenRunde-Regular-latin.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Open Runde';src:url('https://duskresearch.com/fonts/OpenRunde-Medium-latin.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'Departure Mono';src:local('Departure Mono'),url('https://duskresearch.com/fonts/DepartureMono-Regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}

:where(.dusk){
  color-scheme:dark;
  /* the sky */
  --dusk-sky-high:#020512;
  --dusk-sky:radial-gradient(ellipse 85% 34% at 50% 100%, rgba(160,126,107,0.120) 0%, rgba(160,126,107,0.117) 10%, rgba(160,126,107,0.108) 20%, rgba(160,126,107,0.094) 30%, rgba(160,126,107,0.078) 40%, rgba(160,126,107,0.060) 50%, rgba(160,126,107,0.042) 60%, rgba(160,126,107,0.026) 70%, rgba(160,126,107,0.012) 80%, rgba(160,126,107,0.003) 90%, rgba(160,126,107,0.000) 100%), linear-gradient(to bottom, #020512 0.00%, #020613 4.35%, #020613 8.70%, #020714 13.04%, #020715 17.39%, #020816 21.74%, #030917 26.09%, #030a19 30.43%, #030b1a 34.78%, #030c1c 39.13%, #040e1e 43.48%, #051020 47.83%, #061223 52.17%, #071425 56.52%, #091728 60.87%, #0b1a2b 65.22%, #0e1d2e 69.57%, #122132 73.91%, #162536 78.26%, #1c2b3b 82.61%, #243141 86.96%, #2e3949 91.30%, #3e4355 95.65%, #715345 100.00%);
  --dusk-stars:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAwIDYwMCIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pZFlNaWQgc2xpY2UiPjxnIGZpbGw9IiNmM2VkZTYiPjxjaXJjbGUgY3g9IjIzOC4wIiBjeT0iMTY4LjYiIHI9IjAuODMiIG9wYWNpdHk9IjAuNDYiLz48Y2lyY2xlIGN4PSI2MjUuNyIgY3k9IjcuMCIgcj0iMC41MSIgb3BhY2l0eT0iMC41OCIvPjxjaXJjbGUgY3g9IjI1OS40IiBjeT0iNDcuNiIgcj0iMS40MCIgb3BhY2l0eT0iMC40MCIvPjxjaXJjbGUgY3g9IjgzNi41IiBjeT0iMTM4LjEiIHI9IjEuMDgiIG9wYWNpdHk9IjAuMjQiLz48Y2lyY2xlIGN4PSI2MzQuOSIgY3k9IjMzOS43IiByPSIwLjk3IiBvcGFjaXR5PSIwLjUzIi8+PGNpcmNsZSBjeD0iNjcxLjQiIGN5PSI2LjgiIHI9IjEuMTgiIG9wYWNpdHk9IjAuNDYiLz48Y2lyY2xlIGN4PSIzMDEuMyIgY3k9IjIuMyIgcj0iMS4yOCIgb3BhY2l0eT0iMC40MCIvPjxjaXJjbGUgY3g9IjcxOC44IiBjeT0iMzQ2LjAiIHI9IjEuMTQiIG9wYWNpdHk9IjAuNjIiLz48Y2lyY2xlIGN4PSIzOTUuMCIgY3k9IjMwMS4wIiByPSIwLjkwIiBvcGFjaXR5PSIwLjYzIi8+PGNpcmNsZSBjeD0iODc4LjkiIGN5PSIxMi44IiByPSIwLjYyIiBvcGFjaXR5PSIwLjI3Ii8+PGNpcmNsZSBjeD0iOTY1LjUiIGN5PSIxMjEuMCIgcj0iMS4wNiIgb3BhY2l0eT0iMC4zMSIvPjxjaXJjbGUgY3g9IjUwNy4yIiBjeT0iMTAwLjciIHI9IjAuODIiIG9wYWNpdHk9IjAuNDUiLz48Y2lyY2xlIGN4PSI1ODQuMyIgY3k9IjM2MS4xIiByPSIxLjExIiBvcGFjaXR5PSIwLjYyIi8+PGNpcmNsZSBjeD0iODU2LjQiIGN5PSI0MTQuMyIgcj0iMS4xMCIgb3BhY2l0eT0iMC4yNCIvPjxjaXJjbGUgY3g9Ijg2MC42IiBjeT0iMzk3LjkiIHI9IjEuMzEiIG9wYWNpdHk9IjAuNDQiLz48Y2lyY2xlIGN4PSI3MTMuOCIgY3k9IjQwLjciIHI9IjEuMjUiIG9wYWNpdHk9IjAuNDUiLz48Y2lyY2xlIGN4PSIyODUuMCIgY3k9IjYuNyIgcj0iMS4yNyIgb3BhY2l0eT0iMC42NSIvPjxjaXJjbGUgY3g9Ijg4LjUiIGN5PSIzMDAuOSIgcj0iMC44NyIgb3BhY2l0eT0iMC4yNCIvPjxjaXJjbGUgY3g9IjI5My45IiBjeT0iMjgzLjEiIHI9IjEuMjkiIG9wYWNpdHk9IjAuMTgiLz48Y2lyY2xlIGN4PSI2MTQuNSIgY3k9IjQuMCIgcj0iMS4xNSIgb3BhY2l0eT0iMC4zMyIvPjxjaXJjbGUgY3g9Ijg4MC45IiBjeT0iNDA3LjkiIHI9IjAuOTUiIG9wYWNpdHk9IjAuNjYiLz48Y2lyY2xlIGN4PSIzMDkuNyIgY3k9IjkuMCIgcj0iMS4wNCIgb3BhY2l0eT0iMC4xOCIvPjxjaXJjbGUgY3g9IjE5Ny40IiBjeT0iMTA5LjQiIHI9IjEuMDUiIG9wYWNpdHk9IjAuMjQiLz48Y2lyY2xlIGN4PSI0Mi40IiBjeT0iMzM5LjUiIHI9IjAuNzgiIG9wYWNpdHk9IjAuNjQiLz48Y2lyY2xlIGN4PSI4OTYuNyIgY3k9Ijk3LjUiIHI9IjAuOTEiIG9wYWNpdHk9IjAuNDIiLz48Y2lyY2xlIGN4PSI2NDMuOSIgY3k9IjE5My4xIiByPSIxLjAwIiBvcGFjaXR5PSIwLjQ3Ii8+PGNpcmNsZSBjeD0iOTQwLjYiIGN5PSIxNTEuNiIgcj0iMC44OSIgb3BhY2l0eT0iMC41MiIvPjxjaXJjbGUgY3g9IjIzNy42IiBjeT0iNjkuNCIgcj0iMS4zOCIgb3BhY2l0eT0iMC40MiIvPjxjaXJjbGUgY3g9IjU0OC40IiBjeT0iMC41IiByPSIwLjg3IiBvcGFjaXR5PSIwLjQ1Ii8+PGNpcmNsZSBjeD0iMjAuMSIgY3k9IjIwMy4wIiByPSIxLjA3IiBvcGFjaXR5PSIwLjE5Ii8+PGNpcmNsZSBjeD0iNjI3LjMiIGN5PSIxMzMuNyIgcj0iMS4xMSIgb3BhY2l0eT0iMC4zNCIvPjxjaXJjbGUgY3g9IjcwNy4wIiBjeT0iMjY2LjMiIHI9IjAuNTIiIG9wYWNpdHk9IjAuMTkiLz48Y2lyY2xlIGN4PSI2NzYuMCIgY3k9IjM5Ny4xIiByPSIwLjczIiBvcGFjaXR5PSIwLjM5Ii8+PGNpcmNsZSBjeD0iNTkyLjciIGN5PSI3Ni4wIiByPSIwLjgzIiBvcGFjaXR5PSIwLjMyIi8+PGNpcmNsZSBjeD0iMzY5LjIiIGN5PSIxOTMuMSIgcj0iMC43NyIgb3BhY2l0eT0iMC4zNSIvPjxjaXJjbGUgY3g9Ijc3Mi4zIiBjeT0iMS45IiByPSIxLjAxIiBvcGFjaXR5PSIwLjUzIi8+PGNpcmNsZSBjeD0iMzEwLjAiIGN5PSI0NC4xIiByPSIxLjIyIiBvcGFjaXR5PSIwLjI4Ii8+PGNpcmNsZSBjeD0iMTg3LjQiIGN5PSIxMjAuNiIgcj0iMS4xMyIgb3BhY2l0eT0iMC4yMSIvPjxjaXJjbGUgY3g9IjMyMi4wIiBjeT0iODEuMCIgcj0iMS4yNSIgb3BhY2l0eT0iMC4zOCIvPjxjaXJjbGUgY3g9Ijg1NS41IiBjeT0iMjkuMyIgcj0iMC44MCIgb3BhY2l0eT0iMC40OSIvPjxjaXJjbGUgY3g9Ijg4NC45IiBjeT0iMTI3LjMiIHI9IjAuNzAiIG9wYWNpdHk9IjAuMjIiLz48Y2lyY2xlIGN4PSI1MjkuNiIgY3k9IjM1LjAiIHI9IjEuMjMiIG9wYWNpdHk9IjAuNTgiLz48Y2lyY2xlIGN4PSIxODMuNiIgY3k9IjYxLjgiIHI9IjEuMjMiIG9wYWNpdHk9IjAuNDgiLz48Y2lyY2xlIGN4PSI4MDYuMyIgY3k9Ijg1LjIiIHI9IjAuNjIiIG9wYWNpdHk9IjAuMzEiLz48Y2lyY2xlIGN4PSI3OTMuOSIgY3k9IjU5LjMiIHI9IjAuODEiIG9wYWNpdHk9IjAuMzciLz48Y2lyY2xlIGN4PSI0MTkuOCIgY3k9IjExMC4xIiByPSIxLjMzIiBvcGFjaXR5PSIwLjI0Ii8+PGNpcmNsZSBjeD0iNC43IiBjeT0iMzg0LjgiIHI9IjEuMjkiIG9wYWNpdHk9IjAuNjUiLz48Y2lyY2xlIGN4PSI0MzQuNCIgY3k9IjM4OS4wIiByPSIxLjMzIiBvcGFjaXR5PSIwLjI3Ii8+PGNpcmNsZSBjeD0iNzQ1LjUiIGN5PSIzMjEuNCIgcj0iMS4xMCIgb3BhY2l0eT0iMC40MiIvPjxjaXJjbGUgY3g9IjI4OS4wIiBjeT0iODMuNyIgcj0iMC43MCIgb3BhY2l0eT0iMC4xOSIvPjxjaXJjbGUgY3g9IjU4OC43IiBjeT0iNjQuNiIgcj0iMS4yMyIgb3BhY2l0eT0iMC4xOCIvPjxjaXJjbGUgY3g9IjkwMy42IiBjeT0iMjQyLjciIHI9IjEuMzMiIG9wYWNpdHk9IjAuNjEiLz48Y2lyY2xlIGN4PSI4OTkuNyIgY3k9IjE4NC4xIiByPSIwLjUxIiBvcGFjaXR5PSIwLjUzIi8+PGNpcmNsZSBjeD0iMTcxLjgiIGN5PSI2OS4wIiByPSIxLjEwIiBvcGFjaXR5PSIwLjQyIi8+PGNpcmNsZSBjeD0iNDEzLjgiIGN5PSIzODIuMiIgcj0iMS4wNSIgb3BhY2l0eT0iMC4zMyIvPjxjaXJjbGUgY3g9IjI1Mi41IiBjeT0iMzM1LjkiIHI9IjAuOTMiIG9wYWNpdHk9IjAuNTUiLz48Y2lyY2xlIGN4PSIzNTEuOCIgY3k9IjM2LjgiIHI9IjAuOTgiIG9wYWNpdHk9IjAuNTciLz48Y2lyY2xlIGN4PSIxNzEuMyIgY3k9IjI5NS44IiByPSIxLjMzIiBvcGFjaXR5PSIwLjU2Ii8+PGNpcmNsZSBjeD0iODIzLjUiIGN5PSIwLjMiIHI9IjEuMDciIG9wYWNpdHk9IjAuNTkiLz48Y2lyY2xlIGN4PSI0OS45IiBjeT0iNTkuNCIgcj0iMC43NCIgb3BhY2l0eT0iMC40MiIvPjxjaXJjbGUgY3g9IjQyMy4wIiBjeT0iMTM2LjYiIHI9IjEuMjAiIG9wYWNpdHk9IjAuMTYiLz48Y2lyY2xlIGN4PSI1NC44IiBjeT0iMTkuMCIgcj0iMC42MSIgb3BhY2l0eT0iMC4xOSIvPjxjaXJjbGUgY3g9Ijk3NC43IiBjeT0iMzMxLjciIHI9IjAuNTgiIG9wYWNpdHk9IjAuNDEiLz48Y2lyY2xlIGN4PSIzMTUuOSIgY3k9Ijc0LjEiIHI9IjAuODIiIG9wYWNpdHk9IjAuNDgiLz48Y2lyY2xlIGN4PSI1ODYuNiIgY3k9IjkxLjAiIHI9IjAuNjciIG9wYWNpdHk9IjAuMzIiLz48Y2lyY2xlIGN4PSIxMjMuOCIgY3k9IjE3My45IiByPSIxLjE0IiBvcGFjaXR5PSIwLjM1Ii8+PGNpcmNsZSBjeD0iNzkuOSIgY3k9IjMxLjciIHI9IjAuODQiIG9wYWNpdHk9IjAuNDYiLz48Y2lyY2xlIGN4PSI3ODIuNiIgY3k9Ijk4LjUiIHI9IjEuMjIiIG9wYWNpdHk9IjAuNDciLz48Y2lyY2xlIGN4PSI0MzEuNiIgY3k9Ijk1LjUiIHI9IjAuOTUiIG9wYWNpdHk9IjAuNTEiLz48Y2lyY2xlIGN4PSI0MjAuNSIgY3k9IjI0Mi45IiByPSIwLjkxIiBvcGFjaXR5PSIwLjI4Ii8+PGNpcmNsZSBjeD0iNTM1LjgiIGN5PSIyNDMuNCIgcj0iMC41NiIgb3BhY2l0eT0iMC4zNyIvPjxjaXJjbGUgY3g9IjQyNS45IiBjeT0iMzQ2LjUiIHI9IjEuMzQiIG9wYWNpdHk9IjAuMzUiLz48L2c+PC9zdmc+");
  --dusk-paper:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMjAwIiBoZWlnaHQ9Ijc2MCI+PGZpbHRlciBpZD0icCI+PGZlVHVyYnVsZW5jZSB0eXBlPSJmcmFjdGFsTm9pc2UiIGJhc2VGcmVxdWVuY3k9IjAuMDMyIiBudW1PY3RhdmVzPSI0IiBzZWVkPSI3IiBzdGl0Y2hUaWxlcz0ic3RpdGNoIi8+PGZlQ29sb3JNYXRyaXggdHlwZT0ic2F0dXJhdGUiIHZhbHVlcz0iMCIvPjwvZmlsdGVyPjxyZWN0IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbHRlcj0idXJsKCNwKSIgb3BhY2l0eT0iMC4xNCIvPjwvc3ZnPg==");
  --dusk-grain:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOTIiIGhlaWdodD0iMTkyIj48ZmlsdGVyIGlkPSJnIj48ZmVUdXJidWxlbmNlIHR5cGU9ImZyYWN0YWxOb2lzZSIgYmFzZUZyZXF1ZW5jeT0iMC45IiBudW1PY3RhdmVzPSIyIiBzdGl0Y2hUaWxlcz0ic3RpdGNoIi8+PGZlQ29sb3JNYXRyaXggdHlwZT0ic2F0dXJhdGUiIHZhbHVlcz0iMCIvPjwvZmlsdGVyPjxyZWN0IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbHRlcj0idXJsKCNnKSIgb3BhY2l0eT0iMC4wNiIvPjwvc3ZnPg==");
  /* the ink, on the sky */
  --dusk-ink:oklch(95% 0.012 75);
  --dusk-ink-2:oklch(82% 0.02 65);
  --dusk-ink-3:oklch(70% 0.035 58);
  --dusk-accent:oklch(84% 0.11 58);
  --dusk-rule:oklch(30% 0.03 262);
  /* the three faces, and no fourth */
  --dusk-font-serif:'DM Serif Text', Georgia, 'Times New Roman', serif;
  --dusk-font-sans:'Open Runde', 'Inter', system-ui, -apple-system, sans-serif;
  --dusk-font-mono:'Departure Mono', ui-monospace, 'SF Mono', Menlo, monospace;
  /* type roles */
  --dusk-type-wordmark:min(clamp(2.75rem, 1.5rem + 6.5vw, 5.5rem), 14vh);
  --dusk-type-title:clamp(2rem, 1.25rem + 3vw, 3rem);
  --dusk-type-lede:clamp(1.25rem, 1.05rem + 0.9vw, 1.5rem);
  --dusk-type-body:clamp(1.0625rem, 1rem + 0.35vw, 1.1875rem);
  --dusk-type-meta:0.8125rem;
  --dusk-type-legal:0.75rem;
  --dusk-leading-tight:1;
  --dusk-leading-lede:1.4;
  --dusk-leading-body:1.5;
  /* rhythm */
  --dusk-space-1:4px; --dusk-space-2:8px; --dusk-space-3:12px; --dusk-space-4:16px;
  --dusk-space-6:24px; --dusk-space-8:32px; --dusk-space-12:48px; --dusk-space-16:64px;
  --dusk-measure:720px;
  --dusk-reading:34ch;
  --dusk-gutter:clamp(20px, 5vw, 48px);
  --dusk-radius:22.7%;
  --dusk-radius-tile:20px;
  --dusk-ease:cubic-bezier(.16,1,.3,1);
  --dusk-dur:1100ms;

  margin:0;min-height:100dvh;overflow-x:clip;
  background:var(--dusk-sky-high);color:var(--dusk-ink);
  font-family:var(--dusk-font-sans);font-size:var(--dusk-type-body);line-height:var(--dusk-leading-body);
  font-synthesis:none;text-rendering:optimizeLegibility;
}
:where(.dusk) *{box-sizing:border-box}
:where(.dusk) a{color:inherit;text-decoration:none;text-underline-offset:.18em}
@media (hover:hover){:where(.dusk) a:hover{text-decoration:underline}}
:where(.dusk) :focus-visible{outline:2px solid var(--dusk-accent);outline-offset:4px}
:where(.dusk) ::selection{background:var(--dusk-accent);color:var(--dusk-sky-high)}

/* The sky: one continuous blend, a faint sun, stars in the upper half, paper, grain. One class. */
.dusk-sky{position:fixed;inset:0;z-index:0;pointer-events:none;width:auto;max-width:none;margin:0;padding:0;
  background-color:var(--dusk-sky-high);
  background-image:var(--dusk-grain),var(--dusk-paper),var(--dusk-stars),var(--dusk-sky);
  background-size:192px 192px,cover,cover,auto,auto;
  background-repeat:repeat,no-repeat,no-repeat,no-repeat,no-repeat;
  background-blend-mode:overlay,soft-light,normal,normal,normal;
}

/* The column: everything Dusk says sits in one left-aligned column of one measure. */
.dusk-page{position:relative;display:grid;grid-template-rows:auto 1fr auto;min-height:100dvh}
.dusk-page>:not(.dusk-sky){position:relative;z-index:1;width:100%;max-width:var(--dusk-measure);margin-inline:auto;padding-inline:var(--dusk-gutter)}
.dusk-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--dusk-space-6);padding-top:calc(env(safe-area-inset-top) + var(--dusk-space-6))}
.dusk-main{align-self:center;padding-block:var(--dusk-space-12) calc(var(--dusk-space-12) + 8vh)}
.dusk-footer{display:flex;align-items:baseline;justify-content:space-between;gap:var(--dusk-space-6);padding-bottom:calc(env(safe-area-inset-bottom) + var(--dusk-space-6))}

/* The mark: always the published asset, in the ink, via a mask so it follows currentColor. */
.dusk-mark{display:block;width:28px;height:28px;flex:0 0 auto;color:var(--dusk-ink);background:currentColor;
  -webkit-mask:url('https://duskresearch.com/mark.svg?v=2') center / contain no-repeat;mask:url('https://duskresearch.com/mark.svg?v=2') center / contain no-repeat}

/* Type roles. The serif names and announces; the sans carries the reading; the mono carries labels, times, versions, legal lines and anything under 16px. */
.dusk-wordmark{margin:0 0 var(--dusk-space-6);font-family:var(--dusk-font-serif);font-weight:400;font-size:var(--dusk-type-wordmark);line-height:var(--dusk-leading-tight);letter-spacing:-.02em;text-transform:lowercase;text-wrap:balance;overflow-wrap:anywhere;min-width:0}
.dusk-title{margin:0;font-family:var(--dusk-font-serif);font-weight:400;font-size:var(--dusk-type-title);line-height:1.05;letter-spacing:-.015em;text-wrap:balance}
.dusk-lede{margin:0;font-family:var(--dusk-font-serif);font-size:var(--dusk-type-lede);line-height:var(--dusk-leading-lede);max-width:48ch;text-wrap:pretty}
.dusk-lede+.dusk-lede{margin-top:var(--dusk-space-2);color:var(--dusk-ink-2)}
.dusk-body{margin:0;font-family:var(--dusk-font-sans);font-size:var(--dusk-type-body);line-height:var(--dusk-leading-body);max-width:65ch;color:var(--dusk-ink-2);text-wrap:pretty}
.dusk-body+.dusk-body{margin-top:var(--dusk-space-4)}
.dusk-meta{margin:0;font-family:var(--dusk-font-mono);font-size:var(--dusk-type-meta);line-height:1.5;letter-spacing:.08em;text-transform:uppercase;color:var(--dusk-ink-3);font-variant-numeric:tabular-nums}
.dusk-meta time,.dusk-meta .dusk-accent{color:var(--dusk-accent)}
.dusk-legal{margin:0;font-family:var(--dusk-font-mono);font-size:var(--dusk-type-legal);line-height:1.5;letter-spacing:.08em;text-transform:uppercase;color:var(--dusk-ink-3)}
.dusk-rule{border:0;border-top:1px solid var(--dusk-rule);margin:var(--dusk-space-8) 0}

/* The index: status, name, one line per project. */
.dusk-index{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--dusk-space-3)}
.dusk-index li{display:grid;grid-template-columns:12ch minmax(0,1fr);gap:0 var(--dusk-space-6);align-items:baseline}
.dusk-index-name{font-family:var(--dusk-font-serif);font-size:1.25rem;line-height:1.2;color:var(--dusk-ink)}
.dusk-meta.is-live{color:var(--dusk-ink)}
.dusk-note{margin:0;font-family:var(--dusk-font-sans);font-size:1rem;line-height:1.5;color:var(--dusk-ink-2);max-width:60ch;text-wrap:pretty;overflow-wrap:anywhere}
.dusk-note.is-ink{color:var(--dusk-ink)}
.dusk-cover{padding-block:var(--dusk-space-8)}
@media (max-height:720px){.dusk-main{align-self:start}}
.dusk-cover>.dusk-note{margin-top:var(--dusk-space-4)}
.dusk-cover .dusk-index{margin-top:var(--dusk-space-8)}
@media (max-width:560px){.dusk-index li{grid-template-columns:1fr;gap:var(--dusk-space-1)}}

/* The index: groups by status, each with one line of what the status means, then a small bento of that group's projects. */
.dusk-group{margin-top:var(--dusk-space-8);display:flex;flex-direction:column;gap:var(--dusk-space-2)}
.dusk-group>.dusk-note{max-width:52ch}
.dusk-group>.dusk-bento{margin-top:var(--dusk-space-3)}
.dusk-mark-app{display:block;width:36px;height:36px;border-radius:9px;flex:0 0 auto}
a.dusk-tile{color:inherit}
.dusk-tile.dusk-tile-project{padding:var(--dusk-space-6)}
.dusk-tile-project>.dusk-tile-head{display:flex;align-items:center;justify-content:space-between;gap:var(--dusk-space-3)}
.dusk-tile-project .dusk-index-name{margin-top:auto;padding-top:var(--dusk-space-6)}
.dusk-tile-project .dusk-note{font-size:.9375rem}
.dusk-tile.dusk-tile-live{padding:0;overflow:hidden}
.dusk-tile-live>img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;object-position:left center}
.dusk-tile-live>.dusk-tile-words{padding:var(--dusk-space-4) var(--dusk-space-6) var(--dusk-space-6);display:flex;flex-direction:column;gap:var(--dusk-space-2)}
.dusk-tile-title{display:flex;align-items:center;gap:var(--dusk-space-3)}
.dusk-tile-title .dusk-mark-app{width:28px;height:28px;border-radius:7px}
.dusk-index-name{font-family:var(--dusk-font-serif);font-size:1.3125rem;line-height:1.2;color:var(--dusk-ink)}
.dusk-tile.dusk-tile-strip{flex-direction:row;align-items:center;gap:var(--dusk-space-4);padding-block:var(--dusk-space-4);flex-wrap:wrap}
.dusk-tile-strip .dusk-mark-app{width:28px;height:28px;border-radius:7px}
.dusk-tile-strip .dusk-note{font-size:.9375rem}
.dusk-tile-strip .dusk-meta{margin-left:auto;text-align:right}
.dusk-tile.is-dim .dusk-index-name,.dusk-tile.is-dim .dusk-note{color:var(--dusk-ink-3)}
.dusk-interstitial{margin:var(--dusk-space-12) 0 0;font-family:var(--dusk-font-serif);font-size:clamp(1.375rem,1.1rem+1.2vw,1.625rem);line-height:1.3;max-width:30ch;text-wrap:balance}
@media (hover:hover){a.dusk-tile:hover{text-decoration:none;background:oklch(27% 0.035 262 / .6)}a.dusk-tile:hover .dusk-index-name{text-decoration:underline;text-underline-offset:.18em}}

/* Documents: the story, a project page. The column starts at the top. */
.dusk-doc{align-self:start;padding-block:var(--dusk-space-16)}
.dusk-doc>.dusk-title{margin-bottom:var(--dusk-space-8)}
.dusk-passages{display:flex;flex-direction:column;gap:var(--dusk-space-8);margin:0}
.dusk-passage{display:grid;grid-template-columns:12ch minmax(0,1fr);gap:0 var(--dusk-space-6);align-items:baseline}
@media (max-width:560px){.dusk-passage{grid-template-columns:1fr;gap:var(--dusk-space-1)}}
.dusk-project-head{display:flex;flex-direction:column;gap:var(--dusk-space-3);margin-bottom:var(--dusk-space-8)}
.dusk-project-head .dusk-lede{color:var(--dusk-ink-2)}

/* The bento: twelve columns of square tiles a step lighter than the sky, no borders. */
.dusk-bento{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px;margin:0}
.dusk-tile{grid-column:span 12;min-width:0;padding:var(--dusk-space-6);border-radius:var(--dusk-radius-tile);background:oklch(24% 0.035 262 / .55);display:flex;flex-direction:column;gap:var(--dusk-space-2);overflow-wrap:anywhere}
.dusk-tile>.dusk-meta{margin-bottom:var(--dusk-space-1)}
.dusk-tile .dusk-note{max-width:none}
.dusk-tile-image{padding:0;overflow:hidden;margin:0}
.dusk-tile-image img{display:block;width:100%;height:auto}
.dusk-tile-idea{justify-content:flex-end;min-height:240px;padding:var(--dusk-space-8)}
.dusk-tile-idea .dusk-title{margin-bottom:var(--dusk-space-2)}
@media (min-width:600px){.dusk-span-4{grid-column:span 4}.dusk-span-5{grid-column:span 5}.dusk-span-6{grid-column:span 6}.dusk-span-7{grid-column:span 7}.dusk-span-8{grid-column:span 8}}
.dusk-facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--dusk-space-4) var(--dusk-space-6)}
.dusk-fact{display:flex;flex-direction:column;gap:2px;min-width:0}
.dusk-fact-value{margin:0;font-family:var(--dusk-font-sans);font-size:1rem;line-height:1.4;color:var(--dusk-ink)}

/* The footer's quiet links: the story or the index, and the lab's profiles. */
.dusk-footer-links{display:flex;align-items:center;gap:var(--dusk-space-6)}
.dusk-social{display:flex;align-items:center;gap:var(--dusk-space-4)}
.dusk-social a{display:block;width:17px;height:17px;color:var(--dusk-ink-3)}
.dusk-social svg{display:block;width:100%;height:100%;fill:currentColor}
@media (hover:hover){.dusk-social a:hover{color:var(--dusk-ink)}}

/* Motion: stillness. One rise on arrival, nothing on scroll. */
@keyframes dusk-rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.dusk-rise{animation:dusk-rise var(--dusk-dur) var(--dusk-ease) both}
.dusk-rise+.dusk-rise{animation-delay:140ms}
.dusk-rise+.dusk-rise+.dusk-rise{animation-delay:240ms}
@media (prefers-reduced-motion:reduce){.dusk-rise{animation:none}}
