.projects-section{position:relative}.project-card{flex-direction:column;height:100%;padding:1px;display:flex}@media (hover:hover){.project-card.tilt-card:hover>.tilt-surface{box-shadow:0 20px 50px #00000059,0 0 0 1px #e8b84b14}}.project-banner{aspect-ratio:41/20;border-radius:calc(var(--r-lg) - 1px) calc(var(--r-lg) - 1px) 0 0;background:var(--bg-card);flex-shrink:0;justify-content:center;align-items:center;width:100%;display:flex;position:relative;overflow:hidden}.project-banner--logo:after,.project-banner--svg:after,.project-banner--icon:after{content:"";pointer-events:none;background:radial-gradient(#0000 40%,#09090f8c 100%);position:absolute;inset:0}.project-art{object-fit:cover;width:100%;height:100%;transition:transform .5s}@media (hover:hover){.project-card:hover .project-art{transform:scale(1.04)}}.project-logo-img{z-index:1;object-fit:contain;max-width:68%;max-height:70%;transition:transform .4s,filter .4s;position:relative}.project-logo-svg{z-index:1;width:150px;height:auto;max-height:60%;transition:transform .4s,filter .4s;position:relative}@media (hover:hover){.project-card:hover .project-logo-img,.project-card:hover .project-logo-svg{filter:drop-shadow(0 0 16px var(--gold-glow));transform:scale(1.06)}}.project-icon-backdrop{object-fit:cover;filter:blur(28px)saturate(1.35);opacity:.75;width:150%;height:150%;position:absolute;inset:-25%}.project-icon{z-index:1;aspect-ratio:1;border-radius:22%;width:auto;height:62%;transition:transform .4s;position:relative;box-shadow:0 10px 28px #00000059}@media (hover:hover){.project-card:hover .project-icon{transform:scale(1.06)rotate(-2deg)}}.project-highlight{z-index:2;border-radius:var(--r-pill);font-family:var(--font-display);letter-spacing:.3px;color:#f5d07a;background:#09090fb8;border:1px solid #e8b84b59;padding:4px 11px;font-size:.72rem;font-weight:700;position:absolute;top:13px;left:13px}.banner-cricket{background:linear-gradient(150deg,#11051f 0%,#260936 50%,#4a1040 100%)}.banner-baseball{background:linear-gradient(150deg,#2b0606 0%,#440a0a 55%,#681010 100%)}.banner-github{background:linear-gradient(150deg,#121110 0%,#1c1917 60%,#26221f 100%)}.banner-bot{background:linear-gradient(150deg,#1a0a2e 0%,#2d1452 55%,#402070 100%)}.project-content{flex-direction:column;flex-grow:1;padding:1.3rem 1.4rem 1.4rem;display:flex}.project-meta{font-family:var(--font-display);letter-spacing:.8px;text-transform:uppercase;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:2px 12px;margin-bottom:.35rem;font-size:.7rem;font-weight:600;display:flex}.project-studio{color:var(--gold-dim)}.project-role{color:var(--text-muted)}.project-title{font-family:var(--font-display);color:var(--text-primary);margin-bottom:.5rem;font-size:1.2rem;font-weight:700}.project-desc{font-family:var(--font-body);color:var(--text-muted);flex-grow:1;margin-bottom:1rem;font-size:.87rem;font-weight:300;line-height:1.65}.project-links{flex-wrap:wrap;gap:8px;margin-top:auto;display:flex}.btn-store{border-radius:var(--r-pill);min-width:0;font-family:var(--font-display);letter-spacing:.3px;white-space:nowrap;color:var(--gold-dim);transition:background var(--t-fast), border-color var(--t-fast), color var(--t-fast), box-shadow var(--t-fast);background:#e8b84b0d;border:1px solid #e8b84b40;flex:120px;justify-content:center;align-items:center;gap:7px;padding:10px 12px;font-size:.8rem;font-weight:600;display:inline-flex}.btn-store-icon{flex-shrink:0;font-size:.95rem}@media (hover:hover){.btn-store:hover{color:var(--gold);border-color:var(--gold);background:#e8b84b1f}}.btn-store--primary{color:#09090f;border-color:var(--gold);background:var(--gold)}@media (hover:hover){.btn-store--primary:hover{color:#09090f;border-color:var(--gold-light);background:var(--gold-light);box-shadow:0 4px 20px var(--gold-glow)}}.btn-store:focus-visible,.btn-projects-toggle:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.archive-heading{font-family:var(--font-display);color:var(--text-primary);margin-bottom:.3rem;font-size:1rem;font-weight:700}.archive-note{color:var(--text-muted);margin-bottom:1rem;font-size:.8rem;line-height:1.55}.archive-list{margin:0;padding:0;list-style:none}.archive-item{border-bottom:1px dashed var(--glass-border);justify-content:space-between;align-items:baseline;gap:1rem;padding:.55rem 0;display:flex}.archive-item:last-child{border-bottom:none}.archive-title{font-family:var(--font-display);color:var(--text-primary);font-size:.88rem;font-weight:600}.archive-genre{color:var(--text-muted);text-align:right;font-size:.78rem}.archive-chips{flex-wrap:wrap;gap:7px;display:flex}.archive-chips .tag-pill{font-size:.74rem}.projects-toggle-row{margin-top:var(--sp-md);justify-content:center;display:flex}.btn-projects-toggle{border-radius:var(--r-pill);font-family:var(--font-display);letter-spacing:.3px;color:var(--text-primary);background:var(--glass-bg);border:1px solid var(--glass-border-gold);cursor:pointer;transition:border-color var(--t-fast), box-shadow var(--t-fast), color var(--t-fast);align-items:center;gap:10px;padding:11px 16px 11px 22px;font-size:.88rem;font-weight:600;display:inline-flex}@media (hover:hover){.btn-projects-toggle:hover{color:var(--gold);border-color:var(--gold);box-shadow:0 6px 24px var(--gold-glow-sm)}}.toggle-chevron{color:var(--gold);transition:transform var(--t-mid);font-size:.8rem}.btn-projects-toggle.is-expanded .toggle-chevron{transform:rotate(180deg)}.toggle-chevron{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}.projects-flags{margin-top:var(--sp-md);gap:14px;display:grid}.projects-flags[data-layout=four]{grid-template-columns:repeat(4,minmax(0,1fr))}.projects-flags[data-layout=two]{grid-template-columns:repeat(2,minmax(0,1fr))}.projects-flags[data-layout=stack]{grid-template-columns:minmax(0,1fr);gap:12px}.projects-flags[data-layout=stack] .project-banner{aspect-ratio:21/10}.projects-flags[data-layout=stack] .project-desc{display:none}.projects-flags[data-layout=stack] .project-content{padding:.8rem .95rem .9rem}.projects-flags[data-layout=stack] .project-flag-foot{padding-top:.5rem}.project-flag{cursor:pointer}.project-flag .project-content{gap:.45rem;padding:1rem 1.05rem 1.05rem}.project-flag .project-meta,.project-flag .project-title,.project-flag .project-desc{margin:0}.project-flag .project-desc{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.project-flag-hit{z-index:3;border-radius:inherit;cursor:pointer;background:0 0;border:0;position:absolute;inset:0}.project-flag-hit:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.project-flag-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.45rem .5rem;margin-top:auto;padding-top:.35rem;display:flex}.project-flag .project-banner,.project-flag .project-highlight{pointer-events:none}.project-flag .project-content{z-index:4;pointer-events:none;position:relative}.project-flag .project-links{z-index:4;pointer-events:auto;flex-wrap:nowrap;gap:6px;margin:0;position:relative}.btn-store--compact{flex:none;padding:.42rem .6rem}.project-flag-open{min-width:0;font-family:var(--font-display);text-align:right;color:var(--gold);flex:auto;justify-content:flex-end;align-items:center;gap:.3rem;font-size:.76rem;font-weight:600;line-height:1.25;display:inline-flex}[data-theme=light] .project-flag-open{color:var(--gold-dim)}.project-flag-open svg{fill:none;stroke:currentColor;stroke-width:2.2px;stroke-linecap:round;width:14px;height:14px;transition:transform var(--t-mid);flex:none}.project-flag:has(.project-flag-hit:focus-visible) .project-flag-open svg{transform:rotate(90deg)}@media (hover:hover){.project-flag:hover .project-flag-open svg{transform:rotate(90deg)}}.projects-rows{gap:1.2rem;margin-top:1.6rem;display:grid}.projects-row{gap:.6rem;min-width:0;display:grid}.projects-row-label{font-family:var(--font-display);letter-spacing:2.5px;text-transform:uppercase;color:var(--text-muted);font-size:.72rem;font-weight:600}.projects-row-items{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px;display:grid}.projects-row-items.is-web{grid-template-columns:repeat(auto-fill,minmax(215px,1fr))}.project-mini{text-align:left;min-width:0;min-height:56px;color:inherit;font:inherit;background:var(--glass-bg);border:1px solid var(--glass-border);cursor:pointer;transition:border-color var(--t-fast), transform var(--t-fast);border-radius:14px;align-items:center;gap:.65rem;padding:.45rem .6rem .45rem .45rem;text-decoration:none;display:flex}@media (hover:hover){.project-mini:hover{border-color:var(--gold-dim);transform:translateY(-2px)}}.project-mini:active{transform:translateY(0)}.project-mini:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.project-mini-art{background:#fff;border-radius:11px;flex:none;width:44px;height:44px;overflow:hidden}.project-mini-art img{object-fit:cover;width:100%;height:100%;display:block}.project-mini.is-wide .project-mini-art{background:#111;border-radius:8px;width:64px;height:42px}.project-mini.is-wide .project-mini-art img{object-position:center top}.project-mini-text{min-width:0}.project-mini-text b{font-family:var(--font-display);white-space:nowrap;text-overflow:ellipsis;font-size:.84rem;font-weight:600;line-height:1.2;display:block;overflow:hidden}.project-mini-text small{color:var(--gold-dim);white-space:nowrap;text-overflow:ellipsis;font-size:.74rem;display:block;overflow:hidden}[data-theme=light] .project-mini-text small{color:var(--gold)}.projects-archive{border-radius:var(--r-lg);border:1px solid var(--glass-border);background:var(--glass-bg);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.2rem 1.6rem;margin-top:1rem;padding:1.3rem 1.5rem;animation:.35s both projects-archive-in;display:grid}@keyframes projects-archive-in{0%{opacity:0;transform:translateY(10px)}}.archive-block{min-width:0}.archive-link{text-decoration:underline;-webkit-text-decoration-color:var(--glass-border-gold);text-decoration-color:var(--glass-border-gold);text-underline-offset:3px}@media (hover:hover){.archive-link:hover{color:var(--gold)}}@media (width<=640px){.projects-archive{padding:1.1rem 1.2rem}}[data-reduced-motion=true] .projects-archive,[data-reduced-motion=true] .project-flag-open svg{transition:none;animation:none}@media (pointer:coarse){.btn-store--compact{width:44px;height:40px}.project-mini{min-height:64px}}
