/* Project records share the site's finite font, colour and motion presets. */
.project-page,.project-library { overflow-wrap:anywhere; }
.project-opening { display:grid; grid-template-columns:1.1fr 1fr; gap:70px; align-items:center; padding-block:60px 80px; }
.project-back { display:inline-flex; align-items:center; min-height:44px; margin-bottom:38px; font-size:12px; color:var(--muted); text-decoration:underline; text-underline-offset:5px; }
.project-opening .eyebrow { color:var(--gold); margin-bottom:20px; }
.project-opening .chapter-icon { color:var(--gold); border-color:#d8b97870; }
.project-kicker { display:flex; align-items:center; flex-wrap:wrap; gap:14px; font:600 11px/1.7 var(--body); letter-spacing:.025em; }
.project-kicker>.status { margin:0; }
.project-opening .project-kicker { color:var(--muted); margin-bottom:22px; }
.project-opening h1 { font-size:clamp(48px,5.3vw,78px); line-height:1.06; margin:0 0 25px; }
.project-lede { color:var(--muted); font-size:17px; line-height:1.85; margin:0 0 30px; max-width:52ch; }
.project-opening-copy,.project-opening-visual { min-width:0; }
.project-cover { margin:0; border:1px solid #9b8a5a; padding:12px; border-radius:16px; background:#ffffff06; overflow:hidden; }
.project-cover img { display:block; width:100%; height:auto; max-height:650px; object-fit:contain; border-radius:8px; }
.project-seal { display:grid; justify-items:center; align-content:center; min-height:400px; gap:25px; border:1px solid var(--line); border-radius:170px 170px 16px 16px; background:radial-gradient(ellipse at 50% 40%,#d8b9780c,transparent 65%); text-align:center; padding:35px; }
.project-seal img { width:130px; height:130px; background:var(--ivory); padding:22px; border:1px solid var(--gold); border-radius:50%; }
.project-seal p { color:var(--gold); font:600 17px/1.6 var(--body); margin:0; }
.project-seal small { font:600 9px/1.7 var(--body); letter-spacing:.14em; color:var(--muted); }
.project-study { margin:0; padding:25px; border:1px solid var(--line); border-radius:18px; background:linear-gradient(145deg,#124739,#0b3027); box-shadow:0 30px 80px #0000001a; color:var(--ivory); }
.project-study>figcaption { display:flex; align-items:center; gap:14px; padding-bottom:22px; border-bottom:1px solid var(--line); }
.project-study figcaption strong { display:block; font:700 10px/1.6 var(--body); letter-spacing:.12em; color:var(--gold); }
.project-study figcaption small { display:block; font:400 12px/1.6 var(--body); color:var(--muted); margin-top:5px; }
.study-stage { position:relative; min-height:310px; perspective:900px; isolation:isolate; }
.study-grid { position:absolute; width:100%; height:100%; inset:0; z-index:-1; opacity:.18; background-image:linear-gradient(#bdd0bf 1px,transparent 1px),linear-gradient(90deg,#bdd0bf 1px,transparent 1px); background-size:30px 30px; -webkit-mask-image:radial-gradient(ellipse,#000,transparent 65%); mask-image:radial-gradient(ellipse,#000,transparent 65%); }
.study-stage .mini-model { transform:translate(-50%,-35%) rotateX(55deg) rotateZ(var(--model-angle,-35deg)) scale(1.3); }
.study-stage .model-base { background:#8057e8; border-color:#c5adff; box-shadow:14px 19px 35px #00000035; }
.study-index { position:absolute; bottom:15px; right:0; color:var(--muted); font:600 9px/1.7 var(--body); letter-spacing:.16em; }
.study-controls { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:2px 20px; align-items:center; padding-top:15px; border-top:1px solid var(--line); }
.study-controls label { grid-column:1/-1; display:flex; justify-content:space-between; gap:15px; font-size:12px; line-height:1.7; color:var(--muted); }
.study-controls output { min-width:45px; color:var(--gold); text-align:right; font-variant-numeric:tabular-nums; }
.study-controls input { min-width:0; width:100%; min-height:44px; accent-color:var(--gold); }
.project-study :focus-visible { outline-color:var(--lavender); }
.study-reset { min-height:44px; padding:8px; background:transparent; border:0; color:var(--ivory); text-decoration:underline; text-underline-offset:4px; font:600 11px/1.6 var(--body); }
.study-disclosure { margin:12px 0 0; color:var(--muted); font:400 11px/1.8 var(--body); }
.project-sections { border-block:1px solid var(--line); background:#ffffff04; }
.project-sections>.shell { display:flex; flex-wrap:wrap; gap:8px 35px; padding-block:10px; }
.project-sections a { display:flex; align-items:center; min-height:44px; color:var(--muted); font:600 12px/1.7 var(--body); border-bottom:1px solid transparent; }
.project-sections a:hover { border-color:var(--gold); color:var(--ivory); }
.project-layout { display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:80px; padding-block:85px; }
.project-main-copy,.project-sidebar { min-width:0; }
.project-sidebar { display:flex; flex-direction:column; gap:25px; }
.project-facts,.project-milestone { border:1px solid #c0c8b6; border-radius:12px; padding:30px; background:var(--white); }
.project-facts .eyebrow,.project-milestone .eyebrow { color:var(--gold-ink); margin-bottom:17px; }
.project-facts h2,.project-milestone h2 { font-size:30px; line-height:1.15; margin:0 0 25px; }
.project-facts dl { margin:0; font:400 13px/1.75 var(--body); }
.project-facts dl>div { display:flex; justify-content:space-between; gap:15px; border-block-start:1px solid var(--line-light); padding-block:12px; }
.project-facts dt { color:var(--muted-ink); }
.project-facts dd { margin:0; font-weight:600; text-align:right; }
.project-facts ul { list-style:none; margin:18px 0 0; padding:0; }
.project-facts li { position:relative; padding-left:15px; font:400 12px/1.8 var(--body); color:var(--muted-ink); }
.project-facts li+li { margin-top:12px; }
.project-facts li::before { content:''; position:absolute; top:.65em; left:0; width:5px; height:5px; border-radius:50%; background:var(--gold-ink); }
.project-milestone { background:#e7e9db; }
.project-milestone>.chapter-icon { margin-bottom:23px; }
.project-milestone>p:last-child { font-size:14px; line-height:1.85; margin:0; color:var(--muted-ink); }
.project-scene { margin:50px 0 0; padding:26px; border-radius:12px; border:1px solid #bac4b1; background:var(--paper); scroll-margin-top:115px; }
.project-scene-heading .eyebrow { color:var(--gold-ink); margin-bottom:15px; }
.project-scene h2 { font-size:34px; line-height:1.15; margin:0 0 17px; }
.project-scene-heading>p:last-child { color:var(--muted-ink); font-size:14px; line-height:1.8; margin:0 0 24px; }
.project-scene video { display:block; width:min(100%,340px); aspect-ratio:9/16; margin-inline:auto; border-radius:8px; background:var(--ink); }
.project-scene>figcaption { margin-top:20px; color:var(--muted-ink); font-size:12px; line-height:1.8; }
.project-scene figcaption a { color:var(--emerald); text-decoration:underline; text-underline-offset:3px; }
.project-journal>.shell { padding-block:65px 75px; border-top:1px solid #b5c0ac; }
.project-section-heading { display:flex; align-items:end; justify-content:space-between; gap:40px; margin-bottom:48px; }
.project-section-heading .eyebrow { color:var(--gold-ink); margin-bottom:18px; }
.project-section-heading h2 { font-size:clamp(36px,4.5vw,58px); line-height:1.05; margin:0; }
.project-section-heading>p { color:var(--muted-ink); font-size:14px; line-height:1.8; margin:0; max-width:30ch; }
.project-updates { list-style:none; margin:0; padding:0; }
.project-updates>li { display:grid; grid-template-columns:210px minmax(0,1fr); gap:65px; border-top:1px solid #c0c9b7; padding-block:40px; scroll-margin-top:115px; }
.project-update-date { display:flex; flex-direction:column; align-items:start; gap:10px; font:600 12px/1.7 var(--body); color:var(--gold-ink); }
.project-update-date a { display:inline-flex; align-items:center; gap:8px; min-height:44px; color:var(--muted-ink); font:400 11px/1.7 var(--body); text-decoration:underline; text-underline-offset:4px; }
.project-update-date .republic-icon { width:15px; height:15px; }
.project-update-body { min-width:0; }
.project-update-body>h3 { font-size:32px; line-height:1.15; margin:0 0 22px; }
.project-update-body .entry-content { font-size:16px; line-height:1.9; }
.project-update-body .entry-content>:last-child { margin-bottom:0; }
.project-journal-empty { border-block:1px solid #c0c9b7; padding-block:30px; font:400 16px/1.8 var(--body); color:var(--muted-ink); }
.project-journal-pagination { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:15px; border-top:1px solid #c0c9b7; padding-top:20px; font-size:13px; color:var(--muted-ink); }
.project-related>.shell { border-top:1px solid #b5c0ac; padding-block:65px; }
.project-briefing-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.project-briefing { display:flex; align-items:center; gap:18px; padding:25px; border:1px solid #bac4b1; border-radius:10px; background:var(--white); transition:border-color .2s,transform .2s; }
.project-briefing>div { flex:1; min-width:0; }
.project-briefing small { display:block; font-size:9px; font-weight:600; letter-spacing:.12em; color:var(--gold-ink); margin-bottom:10px; }
.project-briefing h3 { font-size:25px; line-height:1.2; margin:0; }
.project-briefing>.republic-icon { width:19px; color:var(--gold-ink); }
.project-briefing:hover { border-color:var(--gold-ink); transform:translateY(-3px); }
.project-actions>.shell { padding-bottom:85px; }
.project-actions .briefing-actions { margin-top:0; margin-bottom:30px; }
.project-library { padding-block:60px 85px; min-height:65vh; }
.project-library .project-back { color:var(--muted-ink); margin-bottom:35px; }
.project-library-heading { max-width:750px; margin-bottom:60px; }
.project-library-heading .eyebrow { color:var(--gold-ink); }
.project-library-heading h1 { font-size:clamp(45px,5.5vw,80px); line-height:1.05; margin:0 0 24px; }
.project-library-heading>p:last-child { font-size:17px; line-height:1.8; color:var(--muted-ink); }
.project-library-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px; }
.project-library-card { min-width:0; border:1px solid #bdc6b3; border-radius:12px; overflow:hidden; background:var(--white); }
.project-library-cover { display:block; }
.project-library-cover img { width:100%; aspect-ratio:16/10; object-fit:cover; }
.project-library-art { height:250px; position:relative; background:var(--emerald-deep); perspective:800px; }
.project-library-art>.mini-model { transform:translate(-50%,-35%) rotateX(55deg) rotateZ(-35deg) scale(1.2); }
.project-library-art>small { position:absolute; bottom:22px; left:25px; font:600 9px/1.7 var(--body); letter-spacing:.12em; color:var(--ivory); }
.project-library-copy { padding:30px; }
.project-library-copy .project-kicker { color:var(--muted-ink); margin-bottom:24px; }
.project-library-copy h2 { font-size:36px; line-height:1.12; margin:0 0 23px; }
.project-library-copy>p { font-size:15px; line-height:1.85; color:var(--muted-ink); margin:0 0 25px; }
.project-library .navigation { margin-top:35px; }
.republic-spacing-compact .project-opening { padding-block:40px 55px; }
.republic-spacing-compact .project-layout { padding-block:55px; }
.republic-spacing-compact .project-journal>.shell,.republic-spacing-compact .project-related>.shell { padding-block:45px; }
@media (max-width:1100px) {
 .project-opening { gap:40px; }
 .project-opening h1 { font-size:clamp(45px,5.5vw,64px); }
 .project-layout { grid-template-columns:minmax(0,1fr) 285px; gap:40px; }
 .project-facts,.project-milestone { padding:24px; }
 .project-study { padding:20px; }
}
@media (max-width:850px) {
 .project-opening { grid-template-columns:minmax(0,1fr); gap:45px; }
 .project-opening-visual { max-width:600px; width:100%; justify-self:center; }
 .project-opening h1 { font-size:clamp(45px,8vw,68px); max-width:15ch; }
 .project-back { margin-bottom:25px; }
 .project-layout { grid-template-columns:minmax(0,1fr); gap:45px; }
 .project-sidebar { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; }
 .project-updates>li { grid-template-columns:160px minmax(0,1fr); gap:30px; }
 .project-briefing-list { grid-template-columns:minmax(0,1fr); }
 .project-section-heading { align-items:start; flex-direction:column; gap:22px; }
 .project-section-heading>p { max-width:none; }
}
@media (max-width:540px) {
 .project-opening { padding-block:30px 45px; }
 .project-opening h1 { font-size:46px; }
 .project-lede { font-size:16px; }
 .project-study { padding:18px; }
 .project-study>figcaption { gap:10px; }
 .project-study .chapter-icon { width:30px; height:30px; flex-basis:30px; }
 .study-stage { min-height:265px; }
 .study-stage .mini-model { transform:translate(-50%,-35%) rotateX(55deg) rotateZ(var(--model-angle,-35deg)) scale(1.05); }
 .study-controls { column-gap:12px; }
 .project-sections>.shell { gap:0 22px; padding-block:8px; }
 .project-sections a { font-size:11px; }
 .project-layout { padding-block:50px; }
 .project-sidebar { grid-template-columns:minmax(0,1fr); }
 .project-facts,.project-milestone { padding:25px; }
 .project-scene { padding:20px; }
 .project-scene h2 { font-size:30px; }
 .project-journal>.shell,.project-related>.shell { padding-block:45px; }
 .project-section-heading { margin-bottom:32px; }
 .project-section-heading h2 { font-size:39px; }
 .project-updates>li { grid-template-columns:minmax(0,1fr); gap:14px; padding-block:28px; }
 .project-update-date { flex-direction:row; align-items:center; justify-content:space-between; gap:15px; }
 .project-update-body>h3 { font-size:29px; }
 .project-briefing { padding:20px; gap:12px; }
 .project-briefing h3 { font-size:23px; }
 .project-actions>.shell { padding-bottom:50px; }
 .project-library { padding-block:30px 55px; }
 .project-library-heading { margin-bottom:35px; }
 .project-library-heading h1 { font-size:46px; }
 .project-library-grid { grid-template-columns:minmax(0,1fr); }
 .project-library-copy { padding:25px; }
 .project-library-copy h2 { font-size:33px; }
}
@media (prefers-reduced-motion:reduce) { .project-briefing { transition:none; } .project-briefing:hover { transform:none; } }
.republic-motion-paused .project-briefing:hover { transform:none; }

/* 1.5 showcase: saved work, goals and native image galleries. */
.project-opening { padding-block:70px 85px; }
.project-opening h1 { font-size:clamp(48px,5.7vw,84px); line-height:1.03; letter-spacing:-.055em; }
.project-opening-actions { display:flex; align-items:center; flex-wrap:wrap; gap:12px 25px; }
.project-journal-link { display:inline-flex; align-items:center; gap:12px; min-height:48px; color:var(--muted); font:500 12px/1.7 var(--body); text-decoration:underline; text-underline-offset:5px; }
.project-journal-link .republic-icon { width:17px; height:17px; color:var(--gold); }
.project-layout--details-only { grid-template-columns:minmax(0,1fr); padding-block:50px; }
.project-layout--details-only .project-sidebar { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); align-items:start; }
.project-inline-study { margin-top:40px; }
.project-goals { border-block:1px solid var(--line); background:var(--emerald-deep); color:var(--ivory); scroll-margin-top:110px; }
.project-goals-layout { display:grid; grid-template-columns:1fr 1.25fr; gap:80px; padding-block:75px; }
.project-goals .eyebrow { color:var(--gold); }
.project-goals h2 { margin:0; font-size:clamp(35px,4.4vw,59px); line-height:1.08; }
.project-goals-list { display:grid; gap:0; margin:0; padding:0; list-style:none; }
.project-goals-list>li { display:grid; grid-template-columns:32px minmax(0,1fr); gap:20px; padding-block:23px; border-top:1px solid #87a18c66; }
.project-goals-list>li:first-child { padding-top:0; border-top:0; }
.project-goals-list>li>span { color:var(--gold); font:600 11px/1.8 var(--body); letter-spacing:.08em; }
.project-goals-list p { margin:0; color:#d7e0d3; font:400 17px/1.8 var(--body); }
.project-gallery-section { padding-block:80px; scroll-margin-top:110px; }
.project-gallery-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:35px 30px; }
.project-gallery-item { min-width:0; margin:0; }
.project-gallery-item:first-child:nth-last-child(odd) { grid-column:1/-1; }
.project-gallery-link { position:relative; display:grid; place-items:center; min-height:160px; border:1px solid #a5b29e; border-radius:10px; background:#e6e9df; overflow:hidden; }
.project-gallery-image { display:block; width:100%; height:auto; max-height:640px; object-fit:contain; }
.project-gallery-open { position:absolute; right:16px; bottom:16px; display:grid; place-items:center; width:44px; height:44px; border:1px solid #d9bf89; border-radius:50%; background:#0b3027ed; color:#f6f3e9; box-shadow:0 3px 15px #091b161f; }
.project-gallery-open .republic-icon { width:20px; height:20px; }
.project-gallery-link:hover { border-color:var(--gold-ink); }
.project-gallery-link:focus-visible { outline:3px solid var(--violet); outline-offset:5px; }
.project-gallery-item>figcaption { display:flex; align-items:start; gap:17px; margin-top:17px; color:var(--muted-ink); }
.project-gallery-number { padding-top:3px; color:var(--gold-ink); font:600 10px/1.8 var(--body); font-variant-numeric:tabular-nums; }
.project-gallery-item>figcaption>p { margin:0; font:400 13px/1.9 var(--body); }
.project-visually-hidden { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.project-lightbox { width:min(1180px,calc(100% - 40px)); max-width:none; max-height:calc(100dvh - 40px); margin:auto; padding:0; border:1px solid #a99561; border-radius:12px; background:#091b16; color:#f6f3e9; overflow:auto; color-scheme:dark; }
.project-lightbox:not([open]) { display:none; }
.project-lightbox::backdrop { background:#030e0be8; }
.project-lightbox-panel { padding:18px 24px 20px; }
.project-lightbox-panel>header { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:16px; }
.project-lightbox-panel>header p { margin:0; color:#d8b978; font:600 11px/1.7 var(--body); letter-spacing:.09em; }
.project-lightbox button { display:inline-flex; align-items:center; justify-content:center; gap:12px; min-width:44px; min-height:44px; padding:10px 15px; border:1px solid #7d8f79; border-radius:5px; background:transparent; color:#f6f3e9; font:500 13px/1.6 var(--body); cursor:pointer; }
.project-lightbox [data-gallery-close] { padding:6px; border-radius:50%; }
.project-lightbox [data-gallery-close]>span { font:300 28px/1 var(--body); }
.project-lightbox button:hover { border-color:#d8b978; background:#d8b9780b; }
.project-lightbox button:disabled { opacity:.4; cursor:default; }
.project-lightbox :is(button,a):focus-visible { outline:3px solid #c5adff; outline-offset:4px; }
.project-lightbox figure { margin:0; }
.project-lightbox [data-gallery-full-image] { display:block; width:100%; height:auto; max-height:68dvh; object-fit:contain; background:#0a241b; border-radius:5px; }
.project-lightbox figcaption { max-width:80ch; margin:18px auto 0; color:#c7d3c5; font:400 14px/1.8 var(--body); text-align:center; white-space:pre-line; }
.project-lightbox-panel>footer { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:15px; margin-top:22px; }
.project-lightbox [data-gallery-original] { display:inline-flex; align-items:center; min-height:44px; color:#d8b978; font:500 12px/1.7 var(--body); text-decoration:underline; text-underline-offset:4px; }
.project-lightbox-status { margin:12px 0 0; color:#ebc9a3; font:400 12px/1.8 var(--body); text-align:center; }
.project-lightbox-status:empty { display:none; }
.republic-spacing-compact .project-gallery-section { padding-block:55px; }
.republic-spacing-compact .project-goals-layout { padding-block:50px; }
@media(max-width:1100px) { .project-goals-layout { gap:45px; } }
@media(max-width:850px) {
 .project-opening { padding-block:45px 60px; }
 .project-opening h1 { font-size:clamp(48px,8.5vw,75px); }
 .project-goals-layout { grid-template-columns:minmax(0,1fr); gap:35px; padding-block:55px; }
 .project-goals h2 br { display:none; }
 .project-goals-list>li:first-child { padding-top:23px; border-top:1px solid #87a18c66; }
 .project-gallery-section { padding-block:60px; }
}
@media(max-width:540px) {
 .project-opening { padding-block:30px 45px; }
 .project-opening h1 { font-size:48px; }
 .project-opening-actions { align-items:start; flex-direction:column; gap:8px; }
 .project-layout--details-only .project-sidebar,.project-gallery-grid { grid-template-columns:minmax(0,1fr); }
 .project-gallery-section { padding-block:45px; }
 .project-gallery-grid { gap:28px; }
 .project-gallery-item:first-child:nth-last-child(odd) { grid-column:auto; }
 .project-goals-layout { padding-block:45px; }
 .project-goals-list p { font-size:16px; }
 .project-lightbox { width:calc(100% - 20px); max-height:calc(100dvh - 20px); border-radius:9px; }
 .project-lightbox-panel { padding:12px 14px 16px; }
 .project-lightbox [data-gallery-full-image] { max-height:60dvh; }
 .project-lightbox-panel>footer { gap:10px; }
 .project-lightbox [data-gallery-original] { order:3; width:100%; justify-content:center; }
 .project-lightbox figcaption { font-size:13px; }
}
