body:has(> .page-back-header) { background:#285b35; }
.page-back-header { position:sticky;top:0;z-index:40;pointer-events:none;width:100%;max-width:1200px;flex-shrink:0;margin:0 auto;padding:20px; }
.page-back-button,.all-projects-button { display:inline-flex;min-height:44px;align-items:center;gap:0;color:white;padding:8px 2px;font:600 16px/1.5 "Inter Tight",sans-serif;text-decoration:none; }
.page-back-button span,.all-projects-button span { position:relative;display:inline-flex;align-items:center;min-height:34px;padding:5px 10px; }
.page-back-button span::after,.all-projects-button span::after { content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(#9bbda2,#9bbda2) right top/0 1px no-repeat,linear-gradient(#9bbda2,#9bbda2) left top/1px 0 no-repeat,linear-gradient(#9bbda2,#9bbda2) left bottom/0 1px no-repeat; }
.page-back-button:hover span::after,.all-projects-button:hover span::after,.page-back-button:focus-visible span::after,.all-projects-button:focus-visible span::after { background-size:100% 1px,1px 100%,100% 1px;animation:navigation-outline .24s ease-out both; }
.page-back-button span::after { background-position:left top,right top,right bottom; }
@keyframes navigation-outline { 0% { background-size:0 1px,1px 0,0 1px; } 40% { background-size:100% 1px,1px 0,0 1px; } 60% { background-size:100% 1px,1px 100%,0 1px; } 100% { background-size:100% 1px,1px 100%,100% 1px; } }
.page-back-button svg,.all-projects-button svg { width:34px;height:34px;padding:7px;border:1px solid #9bbda2;flex-shrink:0;color:#fff;transition:background-color .2s,border-color .2s; }
.page-back-button:hover svg,.all-projects-button:hover svg,.page-back-button:focus-visible svg,.all-projects-button:focus-visible svg { background:#ffffff14;border-color:#e1f0e4; }
.page-back-header+main { padding-top:24px; }
.public-document { display:flex;min-height:calc(100svh - 90px);flex-direction:column;background:#285b35; }
.public-document h1,.legal-page main>h1 { animation:page-enter .6s cubic-bezier(.16,1,.3,1) both; }
.public-document article,.legal-page .document { animation:page-enter .65s .08s cubic-bezier(.16,1,.3,1) both; }
body.legal-page { background:#285b35; }
.legal-page .document,.legal-page .document [data-privacy-open],.public-document article [data-privacy-open] { border-radius:0; }
.project-layout { align-items:stretch; }
.project-sidebar { display:flex;flex-direction:column; }
.project-info { flex:1;display:flex;flex-direction:column; }
.project-sidebar .project-links { margin-top:auto;padding-top:24px; }
@keyframes page-enter { from { opacity:0;transform:translateY(18px);filter:blur(4px); } to { opacity:1;transform:none;filter:blur(0); } }
@media(prefers-reduced-motion:reduce) { .public-document h1,.legal-page main>h1,.public-document article,.legal-page .document { animation:none; }.page-back-button span::after,.all-projects-button span::after { transition:none; } }

.featured-project-card a,.projects-list .project-card .action,.projects-page [data-project-title] a { transition:background-color .2s ease; }
.projects-list .project-card .action:hover,.projects-page [data-project-title] .project-details-link:hover { background-color:#365940; }

.page-back-button { height:50px;pointer-events:auto;transition:gap .28s cubic-bezier(.2,.8,.2,1),background-color .2s,padding .28s; }
.page-back-button span { max-width:90px;white-space:nowrap;overflow:hidden;opacity:1;transform:translateX(0);transition:max-width .28s cubic-bezier(.2,.8,.2,1),opacity .18s,transform .28s,padding .28s; }
.page-back-header[data-scrolled=true] .page-back-button { padding:8px 10px;background:#102519; }
.page-back-header[data-collapsed=true] .page-back-button:not(:focus-visible) { gap:0; }
.page-back-header[data-collapsed=true] .page-back-button:not(:focus-visible) span { max-width:0;padding-left:0;padding-right:0;opacity:0;transform:translateX(-8px); }
@media(prefers-reduced-motion:reduce) { .page-back-button,.page-back-button span,.page-back-button svg,.all-projects-button svg { transition:none; } }

.project-details-link { display:inline-flex;align-items:center;gap:8px;width:fit-content;min-height:32px;margin-top:8px;padding:4px 8px;margin-left:-8px;color:#c6dfcd;font-size:14px;font-weight:600;text-decoration:none;transition:background-color .18s,color .18s; }
.project-details-link:hover,.project-details-link:focus-visible { color:#fff;background:#ffffff14;text-decoration:none; }
.project-card-actions { display:flex;flex-wrap:wrap;margin-top:auto; }
.project-card-actions a { display:flex;flex:1 1 140px;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 12px;font-size:14px;font-weight:700;text-align:center;text-decoration:none; }
.project-card-actions .project-source-action { background:#79a77a;color:#102519; }
.project-card-actions .project-source-action:hover { background:#8ab88a; }
.project-card-actions .project-website-action { background:#386f46;color:#fff; }
.project-card-actions .project-website-action:hover { background:#447e52; }

@media(prefers-reduced-motion:reduce) { .page-back-button span::after,.all-projects-button span::after { animation:none!important; } }

.privacy-dialog,.privacy-dialog label,.privacy-dialog .privacy-option,.privacy-dialog button { border-radius:0; }

#contact .field,#contact button,#contact [role=status],#contact [role=alert] { border-radius:0; }
