.projects{--pj-forest:#24422f;--pj-pine:#35603f;--pj-moss:#4f8a5c;--pj-leaf:#7fb673;--pj-sage:#b7d29e;--pj-wheat:#e7cf90;--pj-sun:#f2c14e;--pj-dawn:#f6b27a;--pj-bloom:#ef7f5c;--pj-petal:#e58aa6;--pj-bronze:#7a4e14;--pj-cream:#fbf7ef;--pj-sky:#fbf3e4;--pj-mist:#eef4e2;--pj-aura-ink:var(--pj-forest);--pj-aura-back:var(--color-paper);--pj-dither-back:var(--pj-cream);--pj-dither-bloom:var(--pj-bloom);--pj-dither-leaf:var(--pj-moss);--pj-dither-sun:var(--pj-dawn);--pj-dither-petal:var(--pj-petal);--pj-dither-bronze:var(--pj-bronze);--tx-paper:var(--pj-cream);--tx-ink-bloom:var(--pj-bloom);--tx-ink-petal:var(--pj-petal);--tx-ink-bronze:var(--pj-bronze);--tx-ink-leaf:var(--pj-moss);--tx-ink-sun:var(--pj-dawn);min-height:100dvh;padding:6.25rem var(--spacing-gutter) 2.5rem;isolation:isolate;background:radial-gradient(90% 70% at 50% -8%, color-mix(in srgb, var(--pj-dawn) 34%, transparent), transparent 62%), radial-gradient(70% 80% at 100% 100%, color-mix(in srgb, var(--pj-sun) 18%, transparent), transparent 55%), linear-gradient(180deg, var(--pj-sky), var(--color-paper) 70%);color:var(--pj-forest);flex-direction:column;justify-content:center;align-items:center;gap:clamp(2rem,6vh,4.5rem);margin-top:-4.75rem;display:flex;position:relative;overflow:hidden}.projects .pj-header{text-align:center;flex-direction:column;align-items:center;gap:.9rem;padding-top:7rem;display:flex}.projects .pj-eyebrow{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.34em;color:var(--pj-bloom);font-size:.72rem}.projects .pj-title{aspect-ratio:760/200;width:min(86vw,560px);position:relative}.projects .pj-title-svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.projects .pj-glyph{font-family:var(--font-sans);letter-spacing:-4px;font-size:150px;font-weight:600}.projects .pj-title-core,.projects .pj-title-aura-src{fill:var(--pj-forest)}.projects .pj-aura-flood{flood-color:var(--pj-aura-ink);flood-opacity:.9}@keyframes pj-core-in{0%{opacity:0}to{opacity:1}}.projects .pj-core-in{animation:pj-core-in 1.1s var(--ease-entrance) .1s both}@media (prefers-reduced-motion:reduce){.projects .pj-core-in{animation:none}}.projects .pj-title-lede{max-width:40ch;color:color-mix(in srgb, var(--pj-forest) 66%, transparent);font-size:1rem;line-height:1.5}.projects .pj-row{flex-wrap:wrap;justify-content:center;align-items:stretch;gap:clamp(1rem,2.4vw,2.25rem);width:100%;max-width:1280px;display:flex}.projects .pj-card{isolation:isolate;cursor:pointer;text-align:left;width:clamp(240px,20vw,285px);height:clamp(268px,34vh,324px);color:var(--pj-forest);font:inherit;transition:transform var(--duration-base) var(--ease-entrance);background:0 0;border:0;border-radius:18px;padding:1.6rem;position:relative}.projects .pj-card:hover,.projects .pj-card[data-revealed=true]{transform:translateY(-6px)}.projects .pj-card:focus-visible{outline:3px solid color-mix(in srgb, var(--pj-moss) 70%, transparent);outline-offset:4px}.projects .pj-card-material{z-index:0;filter:url(#pj-warp);box-shadow:0 14px 30px color-mix(in srgb, var(--pj-forest) 16%, transparent);transition:box-shadow var(--duration-base) var(--ease-entrance);border-radius:16px;position:absolute;inset:0}.projects .pj-card:hover .pj-card-material,.projects .pj-card[data-revealed=true] .pj-card-material{box-shadow:0 22px 46px color-mix(in srgb, var(--pj-forest) 24%, transparent)}.projects .pj-card--bloom .pj-card-material{background:color-mix(in srgb, var(--pj-bloom) 24%, var(--pj-cream))}.projects .pj-card--leaf .pj-card-material{background:color-mix(in srgb, var(--pj-leaf) 30%, var(--pj-cream))}.projects .pj-card--sun .pj-card-material{background:color-mix(in srgb, var(--pj-sun) 30%, var(--pj-cream))}.projects .pj-card--petal .pj-card-material{background:color-mix(in srgb, var(--pj-petal) 24%, var(--pj-cream))}.projects .pj-card--bronze .pj-card-material{background:color-mix(in srgb, var(--pj-bronze) 26%, var(--pj-cream))}.projects .pj-card-texture{z-index:1;opacity:.2;pointer-events:none;border-radius:16px;position:absolute;inset:0;overflow:hidden}.projects .pj-card-texture>*{width:100%;height:100%;display:block}.projects .pj-card-plus{z-index:3;font-family:var(--font-mono);color:color-mix(in srgb, var(--pj-forest) 42%, transparent);transition:transform var(--duration-base) var(--ease-entrance), color var(--duration-base) var(--ease-entrance);pointer-events:none;font-size:1.15rem;line-height:1;position:absolute;top:.85rem;right:1.05rem}.projects .pj-card:hover .pj-card-plus,.projects .pj-card[data-revealed=true] .pj-card-plus{color:var(--pj-bloom);transform:rotate(45deg)}.projects .pj-face{z-index:2;flex-direction:column;padding:1.6rem;display:flex;position:absolute;inset:0}.projects .pj-face-front{justify-content:flex-end}.projects .pj-label{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:-.02em;color:var(--pj-forest);font-size:clamp(1.5rem,2vw,1.9rem);font-weight:600;display:block}.projects .pj-kind{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.16em;color:color-mix(in srgb, var(--pj-forest) 55%, transparent);margin-top:.4rem;font-size:.68rem;display:block}.projects .pj-face-desc{background:color-mix(in srgb, var(--pj-cream) 92%, var(--pj-sky));border-radius:16px;justify-content:center;gap:.6rem}.projects .pj-face-desc .pj-desc-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.18em;color:var(--pj-moss);font-size:.66rem}.projects .pj-desc{font-family:var(--font-sans);color:color-mix(in srgb, var(--pj-forest) 82%, transparent);font-size:1rem;line-height:1.55}.projects .pj-card-dither{z-index:4;pointer-events:none;border-radius:16px;position:absolute;inset:0;overflow:hidden}.projects .pj-card-dither>*{width:100%;height:100%}@media (prefers-reduced-motion:reduce){.projects .pj-card,.projects .pj-card-material,.projects .pj-card-plus{transition:none!important}.projects .pj-card:hover,.projects .pj-card[data-revealed=true]{transform:none}.projects .pj-card:hover .pj-card-plus,.projects .pj-card[data-revealed=true] .pj-card-plus{transform:rotate(45deg)}}.projects .pj-desc-list{text-align:left;flex-direction:column;gap:.18rem;margin-top:.55rem;padding:0;list-style:none;display:flex}
