diff --git a/src/pages/index.astro b/src/pages/index.astro index fa75c22..b529620 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -148,16 +148,16 @@ const featuredPortfolio = portfolio.filter(p => p.data.featured).slice(0, 4); const span = 3; const surface = (['yellow', 'purple-soft', 'mint', 'soft'] as const)[i]; return ( - - -

{s.data.subtitle}

-
- เป้าหมาย: - {s.data.objective} -
+ +

{s.data.subtitle}

+
+ เป้าหมาย: + {s.data.objective} +
+
ดูรายละเอียด → - - + + ); })} diff --git a/src/styles/global.css b/src/styles/global.css index fa217aa..3a235cd 100644 --- a/src/styles/global.css +++ b/src/styles/global.css @@ -843,6 +843,34 @@ p { min-height: 380px; display: flex; flex-direction: column; + position: relative; + overflow: hidden; + transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.4s ease; +} + +/* Invisible overlay link — makes the whole tile clickable + without breaking the bento-grid layout (no wrapping) */ +.tile-link-overlay { + position: absolute; + inset: 0; + z-index: 1; + text-decoration: none; + color: inherit; + display: flex; + align-items: flex-end; + padding: 32px; +} +.tile-link-overlay .mega-cta { + margin-top: 0; + font-weight: 700; +} +.bento-tile > *:not(.tile-link-overlay) { + position: relative; + z-index: 2; +} +.bento-tile:hover { + transform: translateY(-4px); + box-shadow: 0 20px 60px rgba(0, 0, 0, 0.08); } /* Make tile-body grow to push CTA to bottom */