/* P2 Projects composition within the retained shell; no imported fonts or private data. */
.page-projects h1,.page-projects h2,.page-projects h3,.page-projects h4{font-family:var(--serif);font-weight:400;letter-spacing:-.025em;line-height:1.18;overflow-wrap:anywhere}
.projects-main{padding-bottom:2.5rem}.projects-heading{padding:2.8rem 0 2.4rem}.projects-heading .eyebrow{font:.73rem/1.5 var(--sans);letter-spacing:.11em;text-transform:uppercase;color:var(--accent);margin:0 0 1.05rem}.projects-heading h1{font-size:clamp(2.7rem,4.3vw,4rem);margin:0 0 1.4rem;max-width:none}.projects-introduction{display:grid;grid-template-columns:1fr 1fr;gap:3rem}.projects-introduction p{margin:0;font-size:1.05rem;max-width:68ch}.projects-introduction p:first-child{font-size:1.18rem;line-height:1.65}.projects-introduction p:last-child{color:var(--quiet)}.collection-note{margin-top:1.5rem;max-width:80ch;color:var(--quiet);font-size:.94rem}.collection-note summary{min-height:44px;cursor:pointer;display:flex;align-items:center;color:var(--accent)}.collection-note p{margin:.5rem 0 1rem}
.field-heading{border-top:2px solid var(--ink);padding-top:1.2rem;margin:0 0 1.4rem;font-size:1.7rem}.featured-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,28rem),1fr));gap:1.5rem 1.75rem;align-items:start}.project-case{min-width:0;background:var(--white);border:1px solid var(--line);border-top:3px solid var(--accent);border-radius:3px;scroll-margin-top:1.25rem}.project-case summary{list-style:none;cursor:pointer;padding:1.6rem 1.8rem 1.2rem;position:relative;max-width:100%}.project-case summary::-webkit-details-marker{display:none}.project-case summary::marker{content:''}.project-case summary:hover .inspect-action{color:var(--accent)}.project-case summary:focus-visible{outline-offset:4px}.project-case .project-period{display:block;color:var(--quiet);font:.75rem/1.5 var(--sans);margin:0 0 1rem}.project-case h3{font-size:clamp(1.45rem,1.85vw,1.85rem);margin:0 0 .9rem;max-width:28ch}.project-lenses{display:flex;flex-wrap:wrap;gap:.3rem .5rem;margin-bottom:1.15rem}.project-lenses>span{font:.68rem/1.45 var(--sans);letter-spacing:.005em;padding:.3rem .48rem;border:1px solid #d5d8cf;background:#f1f1e9;color:#3b5157;border-radius:2px;max-width:100%;overflow-wrap:anywhere}.project-synopsis{display:block;font:1rem/1.65 var(--sans);overflow-wrap:anywhere}.inspect-action{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:44px;margin-top:1.1rem;color:var(--ink);font:600 .83rem/1.5 var(--sans);border-top:1px solid var(--line);padding-top:.65rem}.disclosure-sign{width:1.5rem;height:1.5rem;display:inline-flex;align-items:center;justify-content:center;font:1.35rem var(--sans);flex-shrink:0}.disclosure-sign::before{content:'+'}.project-case[open]>summary .disclosure-sign::before,.browse-library[open]>summary .disclosure-sign::before{content:'−'}.project-case .when-open{display:none}.project-case[open]>summary .when-open{display:inline}.project-case[open]>summary .when-closed{display:none}.project-case[open]{border-top-color:var(--ink);box-shadow:0 5px 15px rgb(24 47 60 / .06)}.project-expanded{margin:0 1.8rem;padding:1rem 0 1.75rem;border-top:1px solid var(--line);scroll-margin-top:1.4rem;font:1rem/1.7 var(--sans);min-width:0;overflow-wrap:anywhere}.project-expanded>h4{font-size:1.2rem;line-height:1.4;margin:0 0 1.3rem;color:var(--quiet);max-width:45ch}.project-expanded p{margin:0 0 1.15rem;max-width:72ch}.invited-depth{border-left:2px solid var(--accent);padding:1rem 0 0 1rem;margin:1.5rem 0}.invited-depth h4{font:600 .85rem/1.5 var(--sans);letter-spacing:0;margin:0 0 .8rem}.project-links{display:flex;flex-wrap:wrap;gap:.5rem 1.2rem;padding:1rem 0 .3rem;border-top:1px solid var(--line);margin:1.4rem 0 0}.project-links a,.related-projects a{color:var(--accent);font-size:.85rem;line-height:1.5;min-height:44px;display:inline-flex;align-items:center;overflow-wrap:anywhere;max-width:100%;text-underline-offset:.2em}.related-projects{margin:1.1rem 0 0;padding-top:1rem;border-top:1px solid var(--line)}.related-projects h4{font:600 .78rem/1.5 var(--sans);letter-spacing:0;margin:0 0 .3rem;color:var(--quiet)}.related-projects a{display:flex;width:fit-content;padding:.3rem 0}.project-case[data-project-id="PRJ-044"]{background:#edf1ed;border-top-color:var(--ink)}.project-case[data-project-id="PRJ-013"]{background:#f0ede5;border-top-width:1px}
.browse-library{border-block:1px solid #b8beb9;margin-top:3.3rem;background:transparent}.browse-library>summary{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem 1.2rem;padding:1.5rem 0;list-style:none;font:600 1.08rem/1.5 var(--sans);color:var(--ink);cursor:pointer}.browse-library>summary::-webkit-details-marker{display:none}.browse-library>summary>.disclosure-sign{margin-left:auto}.library-count{font:.78rem/1.5 var(--sans);color:var(--quiet)}.browse-content{padding:0 0 1.7rem}.browse-content>p{font-size:.95rem;max-width:85ch;margin:0 0 1.5rem;color:var(--quiet)}.project-filters{padding:1.4rem;background:var(--panel);border:1px solid var(--line);margin:0 0 1.6rem}.project-filters fieldset{border:0;padding:0;margin:0 0 1.2rem;min-width:0;display:flex;flex-wrap:wrap;gap:.55rem}.project-filters legend{font:600 .84rem/1.5 var(--sans);padding:0;margin-bottom:.7rem}.project-filters label{display:flex;gap:.6rem;align-items:center;min-height:44px;padding:.55rem .75rem;border:1px solid #b6c0b7;border-radius:3px;font:.8rem/1.5 var(--sans);background:var(--white);cursor:pointer;max-width:100%;overflow-wrap:anywhere}.project-filters label:has(input:checked){background:var(--ink);border-color:var(--ink);color:var(--white)}.project-filters label:has(input:focus-visible){outline:3px solid var(--focus);outline-offset:3px}.project-filters input{accent-color:var(--focus);width:1rem;height:1rem;min-width:1rem;min-height:1rem;margin:0;flex-shrink:0}.project-filters input:focus-visible{outline:0}.filter-feedback{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.8rem;font-size:.86rem}.filter-feedback p{margin:0}.filter-feedback button{min-height:44px;background:transparent;color:var(--ink);border:1px solid #9aaea8;padding:.55rem .9rem;cursor:pointer;border-radius:3px}.filter-help{color:var(--quiet);font-size:.78rem;margin:.8rem 0 0;max-width:90ch}.browse-empty,.browse-exception{padding:1rem;border:1px solid var(--line);background:var(--white)}.browse-exception{border-left:3px solid var(--accent)}
.browse-period{border-top:1px solid var(--line)}.browse-period>summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.2rem .1rem;cursor:pointer;list-style:none}.browse-period>summary::-webkit-details-marker{display:none}.browse-period>summary::before{content:'+';font:1.3rem var(--sans)}.browse-period[open]>summary::before{content:'−'}.browse-period h3{font:600 .97rem/1.5 var(--sans);letter-spacing:0;margin:0;flex:1}.period-count{font:.75rem/1.5 var(--sans);color:var(--quiet);white-space:nowrap}.period-projects{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,24rem),1fr));gap:1rem;align-items:start;padding:0 0 1.5rem}.browse-case{border:1px solid var(--line);border-top:1px solid var(--line);background:var(--white)}.browse-case summary{padding:1.15rem 1.35rem .7rem}.browse-case h3{font-size:1.2rem;max-width:none}.browse-case .project-period{display:none}.browse-case .project-lenses{margin:.65rem 0 .8rem}.browse-case .project-synopsis{font-size:.92rem;line-height:1.65}.browse-case .project-expanded{margin:0 1.35rem;font-size:.94rem}.browse-case .project-expanded>h4{display:none}.browse-case .inspect-action{font-size:.77rem}.browse-case[data-outside-view=true]{border:2px dashed var(--accent)}
.projects-closing{margin:2.8rem 0 1.5rem;max-width:90ch}.projects-closing h2{font-size:1.8rem;margin-bottom:1rem}.projects-closing p{font-size:1rem;margin-bottom:1.3rem;max-width:85ch}.projects-closing nav{display:flex;flex-wrap:wrap;gap:.5rem 1.6rem;align-items:center}.projects-closing a{display:inline-flex;align-items:center;min-height:44px;font-size:.9rem;color:var(--accent)}.projects-closing .contact-action{padding:.65rem 1.1rem;background:var(--ink);color:var(--white);text-decoration:none;border-radius:3px}.project-return{font:.85rem/1.5 var(--sans);margin:1.25rem 0 0}.project-return a{display:inline-flex;min-height:44px;align-items:center;color:var(--accent)}
@media(max-width:950px){.featured-grid{gap:1.25rem}.project-case summary{padding:1.3rem 1.3rem .9rem}.project-expanded{margin:0 1.3rem}.projects-introduction{gap:2rem}.project-lenses>span{font-size:.69rem}.project-case h3{font-size:1.6rem}}
@media(max-width:740px){.projects-heading{padding:2rem 0}.projects-introduction{display:block}.projects-introduction p+p{margin-top:1.1rem}.projects-introduction p:first-child{font-size:1.1rem}.projects-introduction p:last-child{font-size:1rem}.featured-grid{grid-template-columns:1fr;gap:1.3rem}.project-case h3{font-size:1.6rem;max-width:32ch}.project-period{font-size:.77rem}.project-case summary{padding:1.4rem 1.25rem 1rem}.project-expanded{margin:0 1.25rem}.project-lenses>span{font-size:.71rem}.field-heading{font-size:1.6rem}.browse-library{margin-top:2.4rem}.browse-library>summary{font-size:1rem;position:relative;padding-right:2rem}.browse-library>summary>.disclosure-sign{position:absolute;right:0;top:1.5rem}.library-count{flex-basis:100%}.period-projects{grid-template-columns:1fr}.project-filters{padding:1rem}.project-filters label{width:100%;font-size:.85rem}.project-filters fieldset{gap:.5rem}.browse-period h3{font-size:.9rem}.browse-period>summary{flex-wrap:wrap}.browse-case h3{font-size:1.25rem}.projects-closing h2{font-size:1.7rem}}
@media(max-width:370px){.project-case summary{padding:1.15rem 1rem .8rem}.project-expanded{margin:0 1rem}.project-lenses>span{font-size:.72rem}.period-count{white-space:normal}.project-case h3{font-size:1.45rem}}
@media(forced-colors:active){.project-case,.project-filters label{border-color:CanvasText}.project-filters label:has(input:checked){outline:2px solid Highlight}.project-case[open]{outline:1px solid Highlight}.project-lenses>span{border-color:CanvasText}.disclosure-sign{color:CanvasText}}
@media print{.featured-grid,.period-projects{display:block}.project-case{break-inside:avoid;margin-bottom:1rem}.project-case::details-content,.browse-library::details-content,.browse-period::details-content{display:block!important;content-visibility:visible!important}.project-case>*{display:block!important}.project-filters,.inspect-action,.project-links,.related-projects,.projects-footer-link{display:none!important}.browse-library{display:block}.project-case h3{font-size:16pt}.projects-main{width:100%;max-width:none}.project-synopsis{font-size:10pt}}

/* Full-width inline inspection keeps long accounts readable without an empty grid partner. */
.featured-case[open]{grid-column:1/-1}.featured-case[open] .project-synopsis{max-width:86ch}.featured-case[open] .project-expanded>h4{max-width:72ch;font-size:1.35rem}.featured-case .expanded-layout{display:grid;grid-template-columns:minmax(0,2.4fr) minmax(12rem,1fr);gap:2.8rem}.expanded-layout>*{min-width:0}.featured-case .expanded-routes{border-left:1px solid var(--line);padding-left:1.5rem}.featured-case .expanded-routes .project-links{margin-top:0;padding-top:0;border-top:0;flex-direction:column;align-items:flex-start;gap:.15rem}.featured-case .expanded-prose p{max-width:72ch}
@media(max-width:850px){.featured-case .expanded-layout{grid-template-columns:1fr;gap:1.25rem}.featured-case .expanded-routes{border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:1rem}.featured-case .expanded-routes .project-links{flex-direction:row;gap:.5rem 1.25rem}}
@media print{.expanded-layout{display:block!important}}

/* P2-PROJ-01: index-depth cards expose routes, not empty disclosure panels.
   These rules are confined to the new non-disclosing browse shape. */
.project-index-content{padding:1.15rem 1.35rem .7rem;min-width:0}
.project-index-routes{margin:0 1.35rem;padding:0 0 1rem;min-width:0}
.project-index-routes .project-links{margin-top:0;padding-top:.55rem;gap:.25rem 1.1rem}
.project-index-routes .related-projects{margin-top:.55rem;padding-top:.7rem}
.project-index:focus-visible{outline:3px solid var(--focus);outline-offset:4px}
@media(max-width:740px){.project-index-content{padding:1.4rem 1.25rem 1rem}.project-index-routes{margin-inline:1.25rem}}
@media(max-width:370px){.project-index-content{padding:1.15rem 1rem .8rem}.project-index-routes{margin-inline:1rem}}
/* An explicitly removed second introduction block leaves the surviving copy full width. */
.projects-introduction:has(>p:only-child){grid-template-columns:minmax(0,1fr)}
.projects-introduction>p:only-child{max-width:none;color:inherit}
