.project-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin:28px 0 0}@media (max-width:640px){.project-grid{grid-template-columns:1fr;gap:10px}}.pg-card{position:relative;overflow:hidden;border-radius:8px;aspect-ratio:4/3;background-color:var(--bg-secondary);border:1px solid var(--border);cursor:default;transition:border-color .25s ease}.pg-card:hover{border-color:var(--border-strong)}[data-mode=neobrutalist] .pg-card{border-width:3px;box-shadow:8px 8px 0 var(--border-strong);transition:border-color .2s ease,transform .18s ease,box-shadow .18s ease}[data-mode=neobrutalist] .pg-card:hover{transform:translate(-4px,-4px);box-shadow:12px 12px 0 var(--border-strong)}.pg-card-img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease,filter .35s ease}.pg-card:hover .pg-card-img{transform:scale(1.04);filter:brightness(.5)}.pg-card-title-bar{position:absolute;bottom:0;left:0;right:0;padding:28px 18px 16px;background:linear-gradient(0deg,#000000c7 0,#0000);color:#fff;font-size:.95rem;font-weight:600;letter-spacing:-.01em;pointer-events:none;transition:opacity .2s ease}.pg-card:hover .pg-card-title-bar{opacity:0}.pg-card-panel{position:absolute;bottom:0;left:0;right:0;padding:24px 20px 20px;background:#06060ceb;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-top:1px solid #ffffff14}[data-theme=light] .pg-card-panel{background:var(--bg-glass);border-top:1px solid var(--border)}[data-mode=neobrutalist] .pg-card-panel{border-top:3px solid var(--border-strong)}.pg-panel-title{font-size:1rem;font-weight:700;color:var(--text);margin:0 0 8px;letter-spacing:-.02em}.pg-panel-caption{font-size:.82rem;line-height:1.6;color:var(--text-muted);margin:0 0 14px}.pg-panel-link{display:inline-block;font-size:.78rem;font-weight:600;letter-spacing:.04em;color:var(--text);text-decoration:none;border-bottom:1px solid var(--border-strong);padding-bottom:1px;transition:border-color .2s ease}.pg-panel-link:hover{border-color:var(--text)}@media (max-width:640px){.pg-card-title-bar span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pg-card-panel{position:static;transform:none!important;background:var(--bg-card);border-top:1px solid var(--border);border-radius:0 0 7px 7px}.pg-card{aspect-ratio:unset}.pg-card-img{aspect-ratio:4/3;height:auto}.pg-card:hover .pg-card-img{transform:none;filter:none}}.section-links{border-top:1px solid var(--border);margin:0}.section-link-row{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);text-decoration:none;color:var(--text);transition:color .2s ease,background-color .2s ease;margin:0 -2px;padding:22px 2px;border-radius:2px}.section-link-row:hover{color:var(--text)}.section-link-label{font-size:clamp(1.8rem,4.5vw,2.8rem);font-weight:800;letter-spacing:-.03em;line-height:1}.section-link-arrow{font-size:clamp(1.2rem,2.5vw,1.6rem);color:var(--text-muted);display:inline-block;transition:transform .25s ease,color .2s ease}.section-link-row:hover .section-link-arrow{transform:translateX(7px);color:var(--text)}.trash-row{background:none;border:none;width:100%;text-align:left;cursor:pointer;font-family:inherit;padding:22px 2px}@keyframes lid-wobble{0%,to{transform:rotate(0deg) translateY(0)}20%{transform:rotate(-12deg) translateY(-3px)}45%{transform:rotate(8deg) translateY(-5px)}65%{transform:rotate(-5deg) translateY(-2px)}82%{transform:rotate(3deg) translateY(-1px)}}.trash-label{display:flex;align-items:center}.trash-text{display:inline-block;max-width:0;overflow:hidden;white-space:nowrap;opacity:0;padding-right:.35em;transition:max-width .4s cubic-bezier(.4,0,.2,1),opacity .22s ease}.trash-row:hover .trash-text{max-width:300px;opacity:1}.trash-icon{display:inline-block;transform-origin:center bottom;flex-shrink:0}.trash-row:hover .trash-icon{animation:lid-wobble .45s ease-in-out forwards}.trash-icon svg{display:block}.slop-overlay{position:fixed;inset:0;background:#080808;z-index:9999;-webkit-clip-path:circle(0 at var(--cx) var(--cy));clip-path:circle(0 at var(--cx) var(--cy));transition:-webkit-clip-path .5s cubic-bezier(.55,0,.1,1);transition:clip-path .5s cubic-bezier(.55,0,.1,1);transition:clip-path .5s cubic-bezier(.55,0,.1,1),-webkit-clip-path .5s cubic-bezier(.55,0,.1,1);pointer-events:none}.slop-overlay.active{-webkit-clip-path:circle(150% at var(--cx) var(--cy));clip-path:circle(150% at var(--cx) var(--cy));pointer-events:all}[data-mode=neobrutalist] .section-links{border-top:4px solid var(--border-strong)}[data-mode=neobrutalist] .section-link-row{border-bottom:4px solid var(--border-strong)}[data-mode=neobrutalist] .section-link-label{text-shadow:4px 4px 0 var(--heading-shadow)}[data-mode=neobrutalist][data-theme=dark] .section-link-label{transition:text-shadow .25s ease}[data-mode=neobrutalist] .section-link-arrow{color:var(--text);font-weight:900;-webkit-text-stroke:.04em currentColor}.home-page{min-height:100vh;position:relative}.home-content{position:relative;z-index:2;max-width:var(--layout-max-width);margin:0 auto;padding:0 var(--layout-padding-x) 80px}.home-backdrop{display:none}[data-theme=dark] .home-backdrop{display:block;position:fixed;top:-20vh;left:50%;transform:translateX(-50%);width:80vw;height:140vh;z-index:1;background:#0000008c;border-radius:50%;filter:blur(80px);pointer-events:none}.hero-section{padding-top:calc(60px + 10vw);padding-bottom:6vw}.hero-name{font-size:clamp(3.2rem,9vw,7.5rem);font-weight:900;letter-spacing:-.04em;line-height:.95;color:var(--text);margin:0 0 1.4rem}.hero-sub{font-size:clamp(.9rem,1.8vw,1.05rem);color:var(--text-muted);font-weight:400;letter-spacing:.01em;margin:0;max-width:380px;line-height:1.65}.home-section{padding:var(--layout-padding-x) 0 0}.section-eyebrow{font-size:.7rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--text-faint);margin:0}.home-footer{padding-top:32px;padding-bottom:16px}.home-footer .icons{display:flex;align-items:center;gap:0;margin:0;padding:0}[data-mode=neobrutalist] .hero-name{text-shadow:5px 5px 0 var(--heading-shadow)}[data-mode=neobrutalist][data-theme=dark] .hero-name{transition:text-shadow .25s ease}[data-mode=neobrutalist] .hero-sub{font-weight:700;color:var(--text)}[data-mode=neobrutalist] .section-eyebrow{font-weight:800;color:var(--text)}