.project-folder{transition:transform .4s cubic-bezier(.2,.8,.2,1)}.project-folder:hover{transform:translateY(-6px)}.project-folder:hover h3{color:var(--color-primary)}.folder-files{position:absolute;inset:0}.folder-files .file{position:absolute;left:12px;right:12px;height:82%;top:18px;background:var(--color-bg);border:1px solid var(--color-border);opacity:.9;transform-origin:bottom left;transition:transform .45s cubic-bezier(.2,.8,.2,1),opacity .3s}.folder-files .file:nth-child(1){transform:translate(0) rotate(0)}.folder-files .file:nth-child(2){transform:translate(4px,4px) rotate(0)}.folder-files .file:nth-child(3){transform:translate(8px,8px) rotate(0)}.project-folder:hover .folder-files .file:nth-child(1){transform:translate(-6px,-8px) rotate(-1deg)}.project-folder:hover .folder-files .file:nth-child(2){transform:translate(2px,-4px) rotate(1deg)}.project-folder:hover .folder-files .file:nth-child(3){transform:translate(10px,-2px) rotate(-.5deg)}@keyframes file-jitter{0%{transform:translateY(0)}50%{transform:translateY(-1px)}to{transform:translateY(0)}}.project-folder:hover .folder-files{animation:file-jitter .25s ease-in-out}.folder-flap{background:var(--color-surface);border-top:1px solid var(--color-border);box-shadow:inset 0 1px #ffffff4d;transform-origin:top;transition:transform .45s cubic-bezier(.2,.8,.2,1)}.folder-flap:before{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(0,0,0,.04),transparent 40%)}.project-folder{height:clamp(320px,45vw,380px);display:flex;flex-direction:column;justify-content:flex-end;padding-bottom:1.75rem}.tech-row{display:flex;justify-content:space-between;gap:8px;max-height:60px;margin-top:auto;padding-top:.75rem;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--color-muted);border-top:1px dashed var(--color-border);opacity:.85}.file-front:after{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.03) 1px,transparent 1px);background-size:3px 3px;pointer-events:none;opacity:.25}.file-divider{height:1px;width:100%;margin:1.25rem 0 1rem;background:linear-gradient(to right,transparent,var(--color-primary),transparent);opacity:.35}.tech-row{display:flex;flex-wrap:wrap;gap:6px;font-size:11px;text-transform:uppercase}.tech-row span{padding:4px 8px;border:1px solid var(--color-border);background:var(--color-bg);white-space:nowrap}.tech-more{position:absolute;bottom:0;right:0;padding:4px 6px;font-size:10px;background:var(--color-bg);border:1px solid var(--color-border)}.tech-tooltip{position:absolute;bottom:100%;left:50%;transform:translate(-50%) translateY(-8px);min-width:120px;max-width:min(70vw,220px);padding:8px 10px;background:var(--color-surface);border:1px solid var(--color-border);font-size:11px;line-height:1.5;text-transform:none;opacity:0;pointer-events:none;white-space:nowrap;z-index:50;transition:opacity .2s ease,transform .2s ease}.tech-more:hover .tech-tooltip{opacity:1;transform:translate(-50%) translateY(-12px)}.badge-primary{border-color:var(--color-primary);color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 20%,transparent)}#projects-end-title{position:relative;padding-left:1.25rem}#projects-end-title:before{content:"";position:absolute;left:0;top:.2em;bottom:.2em;width:3px;background:var(--color-primary)}@media(max-height:700px){#projects-hero,#projects-index,#projects-end{padding-top:5.5rem;padding-bottom:5.5rem}}html,body{overflow-x:hidden}.summary-row{position:relative;display:flex;flex-wrap:wrap;gap:8px;margin-top:.75rem;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--color-muted)}.summary-badge{padding:4px 10px;border:1px solid var(--color-border);background:var(--color-bg);white-space:nowrap}.summary-more{position:relative;padding:4px 8px;font-size:10px;border:1px solid var(--color-border);background:var(--color-bg);cursor:default}.summary-tooltip{position:absolute;bottom:100%;left:50%;transform:translate(-50%) translateY(-8px);padding:8px 10px;background:var(--color-surface);border:1px solid var(--color-border);font-size:11px;line-height:1.5;white-space:nowrap;opacity:0;pointer-events:none;z-index:40;transition:opacity .2s ease,transform .2s ease}.summary-more:hover .summary-tooltip{opacity:1;transform:translate(-50%) translateY(-12px)}.search-highlight{background:color-mix(in srgb,var(--color-primary) 18%,transparent);color:var(--color-primary);padding:0 4px;font-weight:500;transition:all .2s ease}
