body { font-family: 'Inter', sans-serif; }
        .glass-nav { background: rgba(255, 255, 255, 0.95); backdrop-filter: blur(10px); }
        
        /* 裝飾性色塊動畫 */
        @keyframes blob {
            0% { transform: translate(0px, 0px) scale(1); }
            33% { transform: translate(30px, -50px) scale(1.1); }
            66% { transform: translate(-20px, 20px) scale(0.9); }
            100% { transform: translate(0px, 0px) scale(1); }
        }
        .animate-blob { animation: blob 7s infinite; }
        .animation-delay-2000 { animation-delay: 2s; }


/* Revision 1: full-width photographic hero banner */
.tc-hero { min-height: 620px; margin-top: 76px; background: #17232a; }
.tc-hero-bg { position:absolute; inset:0; background-image:url('../cover.png'); background-size:cover; background-position:center 48%; filter:blur(0.8px); transform:scale(1.015); }
.tc-hero-overlay { position:absolute; inset:0; background:linear-gradient(90deg,rgba(13,25,32,.78) 0%,rgba(13,25,32,.52) 48%,rgba(13,25,32,.16) 100%); }
.tc-hero-title { color:#f8fafc; font-size:clamp(2rem,3.8vw,3.25rem); line-height:1.1; max-width:720px; }
.tc-hero-desc { color:#f8fafc; font-size:clamp(1rem,1.25vw,1.125rem); line-height:1.65; font-weight:500; text-shadow:0 1px 10px rgba(0,0,0,.22); }
.tc-footer { background:#293943; }
.tc-footer-contact-panel { background:#22313a; border-top:1px solid rgba(255,255,255,.12); }
.tc-footer-layout { align-items:start; }
.tc-footer-form { min-width:0; }
.tc-footer-navigation { min-width:0; }
.tc-footer-nav-list a { display:inline-block; padding:2px 0; }
.tc-form-field { border-radius:4px; min-height:46px; }
.tc-form-submit { border-radius:4px; min-width:140px; }
@media (min-width:1024px) { .tc-footer-navigation { border-left:1px solid rgba(255,255,255,.14); padding-left:clamp(24px,4vw,64px); } }
.tc-floating-contact { position:fixed; right:24px; bottom:24px; z-index:80; display:inline-flex; align-items:center; justify-content:center; gap:10px; padding:16px 24px; border-radius:999px; color:#fff; background:#168447; box-shadow:0 8px 24px rgba(0,0,0,.22); font-weight:700; text-decoration:none; transition:background .2s ease,transform .2s ease,box-shadow .2s ease; }
.tc-floating-contact:hover { background:#116b38; transform:translateY(-2px); box-shadow:0 10px 28px rgba(0,0,0,.28); }
.tc-floating-contact:focus-visible { outline:3px solid #fbbf24; outline-offset:3px; }
@media (max-width:640px) { .tc-hero-title { font-size:clamp(1.8rem,8vw,2.35rem); } .tc-hero { min-height:540px; } .tc-hero-bg { background-position:58% center; } .tc-hero-overlay { background:linear-gradient(90deg,rgba(13,25,32,.76),rgba(13,25,32,.44)); } .tc-floating-contact { right:14px; bottom:14px; padding:13px 18px; } }


/* Showcase layout fix: five equal-size cards, 3 on the first row and 2 centered below. */
#portfolioGrid.tc-portfolio-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-items: stretch;
}
#portfolioGrid.tc-portfolio-grid > .flex { min-width: 0; width: 100%; }
#portfolioGrid.tc-portfolio-grid > .flex > .relative { height: 240px; flex: 0 0 240px; }
#portfolioGrid.tc-portfolio-grid > .flex > .p-6 { flex: 1 0 auto; padding: 18px 16px; }
#portfolioGrid.tc-portfolio-grid h3 { font-size: 1rem; line-height: 1.4; overflow-wrap: anywhere; }
@media (min-width: 768px) {
  #portfolioGrid.tc-portfolio-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  #portfolioGrid.tc-portfolio-grid > .flex { grid-column: span 3; }
  #portfolioGrid.tc-portfolio-grid > .flex:nth-child(1),
  #portfolioGrid.tc-portfolio-grid > .flex:nth-child(2),
  #portfolioGrid.tc-portfolio-grid > .flex:nth-child(3) { grid-column: span 2; }
  #portfolioGrid.tc-portfolio-grid > .flex:nth-child(4) { grid-column: 2 / span 2; }
  #portfolioGrid.tc-portfolio-grid > .flex:nth-child(5) { grid-column: 4 / span 2; }
}
@media (max-width: 767px) {
  #portfolioGrid.tc-portfolio-grid > .flex > .relative { height: 220px; flex-basis: 220px; }
}
