.site-menu{display:none}.image-preview{position:relative;width:100%;padding:0;border:0;background:none;color:inherit;cursor:zoom-in}.preview-hint{position:absolute;right:12px;bottom:12px;padding:6px 10px;border-radius:20px;background:#15161bd9;color:white;font:12px system-ui}.image-preview:focus-visible{outline:2px solid #9aa9e9;outline-offset:5px}.site-image-dialog{width:min(1040px,92vw);max-height:90dvh;padding:22px;border:1px solid #8885;border-radius:20px;background:var(--bg,var(--paper,#17171c));color:var(--ink,#eee);overflow:auto}.site-image-dialog::backdrop{background:#000a}.site-image-dialog>button{display:block;margin:0 0 12px auto;min-width:44px;min-height:44px;cursor:pointer;border-radius:50%;border:1px solid #8888;color:inherit;background:none;font-size:25px}.site-image-dialog img{width:100%;height:auto;max-height:70vh;object-fit:contain}.site-image-dialog p{font-size:13px}.simple-main{max-width:1040px;width:calc(100% - 40px);margin:70px auto 90px}.simple-main h1{font-size:clamp(32px,5vw,52px);line-height:1.3}.simple-main>p{color:var(--muted)}.simple-main section{margin:32px 0;max-width:740px}.simple-main section p{line-height:1.9}.experiment-grid,.book-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:42px 0}.experiment-grid article{padding:28px;border:1px solid var(--line,#8885);border-radius:18px;background:var(--paper)}.experiment-grid h2{font-size:26px;line-height:1.5}.experiment-grid p,.experiment-grid small{color:var(--muted);font-size:14px}.experiment-grid small{display:block;margin-top:24px;font-size:12px}.experiment-grid button,.experiment-grid a{display:inline-block;min-height:44px;padding:10px 0;color:var(--ink);background:none;border:0;font:inherit;cursor:pointer}.book-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.book-grid>a{text-decoration:none;color:var(--ink)}.book-tile{min-height:240px;padding:24px;background:var(--paper);border:1px solid var(--line);border-left:5px solid var(--accent,#8292c6);display:flex;flex-direction:column;justify-content:space-between}.book-tile span,.book-tile small{font-size:12px;color:var(--muted)}.book-grid p{font-size:14px}.project-state{opacity:.8;font-size:11px!important}.section-quote{padding-top:48px!important;padding-bottom:48px!important;margin-top:50px!important;margin-bottom:50px!important}footer{gap:20px;flex-wrap:wrap}header nav:not(.nav-shell){flex-wrap:wrap;gap:14px}a:focus-visible,button:focus-visible{outline:2px solid #8395d3;outline-offset:4px}
@media(max-width:760px){.site-menu{display:block;border:1px solid #8885;border-radius:24px;padding:10px 16px;background:transparent;color:inherit;min-height:44px;margin-left:auto}.nav-core{position:relative;overflow:visible!important}.nav-shell{overflow:visible!important}.nav-core .nav-links{display:none!important}.nav-core .nav-links.menu-open{display:flex!important;position:absolute;top:calc(100% + 12px);left:0;right:0;background:var(--bg,var(--paper,#17171c));border:1px solid #8885;box-shadow:0 12px 35px #0003;border-radius:20px;padding:14px;flex-direction:column;align-items:stretch;max-height:70vh;overflow:auto}.nav-core .nav-links a{display:block;padding:12px 16px}.nav-core .brand{display:flex;font-size:14px;white-space:nowrap}.nav-core{gap:8px!important}.experiment-grid{grid-template-columns:1fr}.book-grid{grid-template-columns:1fr 1fr;gap:16px}.book-tile{min-height:210px;padding:16px}.simple-main{margin-top:40px}.site-header nav:not(.nav-shell){font-size:13px}.section-quote{margin-top:28px!important;margin-bottom:28px!important;padding-top:32px!important;padding-bottom:32px!important}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
.site-header nav:not(.nav-shell){display:flex;align-items:center;justify-content:flex-end;gap:14px}.experiment-grid article{display:flex;flex-direction:column}.experiment-grid article>p{min-height:3.8em}.experiment-grid article>small{margin-top:auto;padding-top:24px}.experiment-grid article>h2{margin-top:28px}
/* Matching, quiet actions for the homepage discovery entry points. */
html .hero-explore,
html #projects .button-row:has(> [data-open-search]){gap:12px}
html .hero-explore>a,
html .hero-explore>button,
html #projects .button-row:has(> [data-open-search])>a,
html #projects .button-row:has(> [data-open-search])>button{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:120px;height:44px;min-height:44px;padding:0 20px;border:1px solid var(--hairline,#8885);border-radius:999px;background:transparent;color:var(--ink);font-family:inherit;font-size:14px;font-weight:500;line-height:1;letter-spacing:.04em;text-decoration:none;opacity:1;box-shadow:none;cursor:pointer;transition:background-color .18s ease,border-color .18s ease}
html .hero-explore>a:hover,
html .hero-explore>button:hover,
html #projects .button-row:has(> [data-open-search])>a:hover,
html #projects .button-row:has(> [data-open-search])>button:hover{background:var(--paper);border-color:var(--soft-ink);transform:none}
html .hero-explore>.home-explore-button{font-size:14px}

.project-image-link{display:block;position:relative;width:100%;cursor:pointer}.nav-shell>.nav-core{width:100%;box-sizing:border-box}
