/* Project cards use the shared service and process section design tokens. */
body.project-modal-open{overflow:hidden;}
.project-service-link{margin-top:24px;padding-top:18px;border-top:1px solid var(--line);font-size:.86rem;color:var(--muted);}
.project-service-link a{color:var(--text);text-underline-offset:3px;}
.project-service-link a:hover{color:var(--accent);}
.project-dialog{width:min(760px,calc(100% - 32px));max-height:calc(100dvh - 48px);margin:auto;padding:32px;border:1px solid var(--line);border-radius:3px;background:var(--paper-raised);color:var(--text);box-shadow:0 24px 90px rgba(0,0,0,.35);overscroll-behavior:contain;}
.project-dialog::backdrop{background:rgba(5,7,15,.78);backdrop-filter:blur(5px);}
.project-dialog-head{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:24px;}
.project-dialog-close{display:flex;align-items:center;gap:12px;padding:10px 14px;border:1px solid var(--line);border-radius:2px;background:var(--paper-sunken);color:var(--text);font:inherit;font-size:.85rem;cursor:pointer;}
.project-dialog-close:hover{border-color:var(--accent);}
.project-dialog-close span{font-size:1.35rem;line-height:1;}
.project-dialog h2{font-size:clamp(1.35rem,3vw,1.85rem);line-height:1.35;}
.project-dialog .project-content{border-top:0;padding:24px 0 0;}
.project-dialog .project-description,.project-dialog .project-content ul{font-size:.97rem;}
@media(max-width:560px){.project-dialog{padding:22px;max-height:calc(100dvh - 24px);}.project-dialog-head .eyebrow{font-size:.6rem;}}
.project-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);align-items:stretch;}
.project-case{min-width:0;background:var(--paper-raised);}

.project-case summary{display:flex;flex-direction:column;min-height:250px;padding:28px 26px;cursor:pointer;list-style:none;transition:background-color .15s ease;}
.project-case summary::-webkit-details-marker{display:none;}
.project-case summary:hover{background:var(--paper-sunken);}
.project-number{display:block;margin-bottom:22px;color:var(--accent);font-size:.68rem;letter-spacing:.1em;font-weight:700;}
.project-case h3{font-size:1.08rem;line-height:1.45;font-weight:700;}
.project-toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;padding-top:24px;color:var(--muted);font-size:.8rem;}
.project-toggle-icon{position:relative;width:18px;height:18px;flex:none;color:var(--accent);}
.project-toggle-icon::before,.project-toggle-icon::after{content:"";position:absolute;background:currentColor;}
.project-toggle-icon::before{width:12px;height:2px;left:3px;top:8px;}
.project-toggle-icon::after{width:2px;height:12px;left:8px;top:3px;}
.project-hide,.project-case[open] .project-show,.project-case[open] .project-toggle-icon::after{display:none;}
.project-case[open] .project-hide{display:inline;}
.project-case[open] summary{min-height:0;}
.project-content{padding:24px 26px 28px;border-top:1px solid var(--line);}
.project-role{display:block;margin-bottom:12px;font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);}
.project-description{color:var(--muted);font-size:.9rem;line-height:1.7;}
.project-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:18px;}
.project-tags span{padding:4px 8px;border:1px solid var(--line);background:var(--paper-sunken);border-radius:3px;color:var(--muted);font-size:.73rem;line-height:1.5;}
.project-content h4{font-size:.86rem;margin:24px 0 12px;}
.project-content ul{padding-left:18px;color:var(--muted);font-size:.88rem;line-height:1.7;}
.project-content li+li{margin-top:9px;}
@media(max-width:900px){.project-list{grid-template-columns:repeat(2,minmax(0,1fr));}.project-case,.project-case:nth-child(n+4){grid-column:auto;}}
@media(max-width:560px){.project-list{grid-template-columns:minmax(0,1fr);}
.project-case summary{min-height:210px;padding:24px 22px;}.project-content{padding:22px;}}
