/* Shared Photography / Studio project navigation. */
:root { --project-column: 17.5rem; --project-offset: 0px; }
body:has(.project-switcher[open]) { --project-offset: var(--project-column); }
.project-switcher { position: fixed; inset: 1.1rem auto auto 1rem; z-index: 60; color: var(--ink, #241c16); font-family: Inter, system-ui, sans-serif; }
.project-switcher > summary { list-style: none; cursor: pointer; display: flex; gap: .7rem; align-items: center; border: 1px solid #88765466; border-radius: 999px; min-height: 3.35rem; padding: .35rem 1.1rem .35rem .45rem; background: linear-gradient(#fff0d9, #ebcfa8); color: #241c16; box-shadow: 0 12px 30px #1a141025, inset 0 1px #fff8ee; }
.project-switcher > summary::-webkit-details-marker { display: none; }
.project-glyph { width: 2.15rem; height: 2.15rem; flex: none; border-radius: 50%; background: radial-gradient(circle at 38% 32%, #f7f4ee 0 18%, transparent 19%), conic-gradient(from 210deg, #9b4d2f, #5d7344, #c4a35a, #9b4d2f); box-shadow: inset 0 0 0 3px #14131188; }
.project-wordmark { display: flex; flex-direction: column; font: 1.1rem/1.05 "Iowan Old Style", Georgia, serif; }
.project-wordmark small { margin-top: .25rem; font: .62rem/1.2 system-ui, sans-serif; }
.project-caret { margin-left: .5rem; }
.project-switcher[open] { inset: 0 auto 0 0; width: var(--project-column); background: var(--paper, #ebe0c4); }
.project-switcher[open]::after { content: ''; position: absolute; top: 0; left: calc(100% - 1px); bottom: 0; width: 19px; background: var(--paper, #ebe0c4); clip-path: polygon(0 0,57.130% 0.000%,61.957% 0.556%,66.692% 1.111%,71.264% 1.667%,75.609% 2.222%,79.661% 2.778%,83.363% 3.333%,86.660% 3.889%,89.503% 4.444%,91.850% 5.000%,93.666% 5.556%,94.923% 6.111%,95.602% 6.667%,95.692% 7.222%,95.190% 7.778%,94.103% 8.333%,92.444% 8.889%,90.236% 9.444%,87.509% 10.000%,84.301% 10.556%,80.658% 11.111%,76.631% 11.667%,72.275% 12.222%,67.652% 12.778%,62.828% 13.333%,57.869% 13.889%,52.846% 14.444%,47.829% 15.000%,42.888% 15.556%,38.093% 16.111%,33.509% 16.667%,29.200% 17.222%,25.225% 17.778%,21.638% 18.333%,18.487% 18.889%,15.815% 19.444%,13.655% 20.000%,12.035% 20.556%,10.973% 21.111%,10.480% 21.667%,10.557% 22.222%,11.200% 22.778%,12.392% 23.333%,14.111% 23.889%,16.326% 24.444%,19.001% 25.000%,22.089% 25.556%,25.541% 26.111%,29.301% 26.667%,33.309% 27.222%,37.501% 27.778%,41.810% 28.333%,46.170% 28.889%,50.511% 29.444%,54.767% 30.000%,58.871% 30.556%,62.758% 31.111%,66.370% 31.667%,69.651% 32.222%,72.549% 32.778%,75.020% 33.333%,77.027% 33.889%,78.539% 34.444%,79.532% 35.000%,79.993% 35.556%,79.913% 36.111%,79.295% 36.667%,78.149% 37.222%,76.493% 37.778%,74.354% 38.333%,71.764% 38.889%,68.764% 39.444%,65.401% 40.000%,61.728% 40.556%,57.803% 41.111%,53.687% 41.667%,49.444% 42.222%,45.142% 42.778%,40.848% 43.333%,36.630% 43.889%,32.556% 44.444%,28.690% 45.000%,25.095% 45.556%,21.828% 46.111%,18.944% 46.667%,16.490% 47.222%,14.508% 47.778%,13.032% 48.333%,12.091% 48.889%,11.702% 49.444%,11.878% 50.000%,12.620% 50.556%,13.924% 51.111%,15.775% 51.667%,18.150% 52.222%,21.020% 52.778%,24.347% 53.333%,28.087% 53.889%,32.188% 54.444%,36.594% 55.000%,41.246% 55.556%,46.076% 56.111%,51.020% 56.667%,56.005% 57.222%,60.964% 57.778%,65.824% 58.333%,70.519% 58.889%,74.980% 59.444%,79.146% 60.000%,82.955% 60.556%,86.356% 61.111%,89.298% 61.667%,91.741% 62.222%,93.650% 62.778%,94.997% 63.333%,95.765% 63.889%,95.942% 64.444%,95.527% 65.000%,94.526% 65.556%,92.954% 66.111%,90.834% 66.667%,88.198% 67.222%,85.083% 67.778%,81.536% 68.333%,77.606% 68.889%,73.352% 69.444%,68.835% 70.000%,64.118% 70.556%,59.272% 71.111%,54.364% 71.667%,49.464% 72.222%,44.643% 72.778%,39.969% 73.333%,35.507% 73.889%,31.320% 74.444%,27.466% 75.000%,23.999% 75.556%,20.965% 76.111%,18.405% 76.667%,16.353% 77.222%,14.833% 77.778%,13.863% 78.333%,13.454% 78.889%,13.604% 79.444%,14.308% 80.000%,15.550% 80.556%,17.305% 81.111%,19.541% 81.667%,22.221% 82.222%,25.299% 82.778%,28.724% 83.333%,32.440% 83.889%,36.386% 84.444%,40.499% 85.000%,44.712% 85.556%,48.958% 86.111%,53.168% 86.667%,57.277% 87.222%,61.218% 87.778%,64.928% 88.333%,68.349% 88.889%,71.426% 89.444%,74.110% 90.000%,76.357% 90.556%,78.131% 91.111%,79.404% 91.667%,80.153% 92.222%,80.366% 92.778%,80.038% 93.333%,79.172% 93.889%,77.780% 94.444%,75.882% 95.000%,73.505% 95.556%,70.685% 96.111%,67.464% 96.667%,63.890% 97.222%,60.017% 97.778%,55.904% 98.333%,51.613% 98.889%,47.210% 99.444%,42.763% 100.000%,0 100%); pointer-events: none; }
.project-switcher[open] > summary { margin: 1.1rem 1.1rem 1.7rem; border-color: transparent; border-radius: 0; background: transparent; box-shadow: none; padding: .35rem 0; color: inherit; }
.project-switcher[open] .project-caret { transform: rotate(180deg); }
.project-panel { padding: 0 1.35rem 1.5rem; max-height: calc(100dvh - 7rem); overflow-y: auto; }
.project-label { font-size: .64rem; letter-spacing: .16em; text-transform: uppercase; color: var(--muted, #64594c); margin: 0 0 1rem; }
.project-links { display: grid; gap: .35rem; }
.project-links a { display: flex; gap: 1rem; align-items: center; min-height: 2.75rem; padding: .6rem .4rem; text-decoration: none; color: inherit; font-size: .73rem; letter-spacing: .1em; text-transform: uppercase; overflow-wrap: anywhere; }
.project-links a::before { content: attr(data-initial); width: 1rem; flex: none; font: 1rem Georgia, serif; color: var(--muted, #64594c); }
.project-links a[aria-current] { background: #5d73441c; border-radius: 4px; }
.project-links a[aria-current]::after { content: '❧'; margin-left: auto; font: 1.5rem Georgia,serif; color: var(--muted, #64594c); }
.project-links a:hover { background: #5d73441c; }
.project-foot { margin-top: 3rem; font: 1rem/1.5 Georgia,serif; color: var(--muted, #64594c); }
.project-switcher :focus-visible { outline: 3px solid #a85a32; outline-offset: 4px; }
html[data-theme='dark'] .project-switcher > summary { background: linear-gradient(#574130,#3d2a1d); color: #f6efe4; border-color: #d7b68a60; }
html[data-theme='dark'] .project-switcher[open] > summary { background: transparent; border-color: transparent; }
@media (max-width: 48rem) {
 :root { --project-column: 15rem; }
 /* At phone widths, reserve space above the page rather than cover it or squeeze it. */
 body:has(.project-switcher[open]) { --project-offset: 0px; }
 .project-switcher[open] { position: relative; width: 100%; inset: auto; padding: 1px 0; }
 .project-switcher[open]::after { display: none; }
 .project-panel { max-height: none; }
 .project-links { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .project-foot { margin-top: 1rem; }
}
