html{font-size:18px}body{background-color:#fcfbf7;color:#334155;line-height:1.75}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#f1f5f9}::-webkit-scrollbar-thumb{background:#7da086;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#5c7a64}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}.scrollbar-hide::-webkit-scrollbar{display:none}.reveal{opacity:0;transform:translateY(30px);transition:all .8s cubic-bezier(0.16,1,0.3,1)}.reveal.active{opacity:1;transform:translateY(0)}.reveal[data-delay="1"]{transition-delay:.1s}.reveal[data-delay="2"]{transition-delay:.2s}.reveal[data-delay="3"]{transition-delay:.3s}.reveal[data-delay="4"]{transition-delay:.4s}.reveal[data-delay="5"]{transition-delay:.5s}.card-line{width:0;height:3px;background:linear-gradient(90deg,#7da086,#10b981);transition:width .5s ease}.group:hover .card-line{width:100%}.blob-shape{border-radius:60% 40% 30% 70% / 60% 30% 70% 40%}@keyframes smooth-float{0,100%{transform:translateY(0) scale(1) rotate(0)}50%{transform:translateY(-12px) scale(1.02) rotate(1deg)}}.animate-smooth-float{animation:smooth-float 6s ease-in-out infinite;will-change:transform}.nav-link{position:relative}.nav-link::after{content:'';position:absolute;bottom:-4px;left:0;width:0;height:2px;background:#10b981;transition:width .3s ease}.nav-link:hover::after{width:100%}*:focus-visible{outline:2px solid #7da086;outline-offset:2px}.ui-dialog{background-color:#fff !important;border:1px solid rgba(209,199,184,0.3) !important;border-radius:1rem !important;font-family:"Noto Sans TC",Inter,sans-serif !important;font-size:1rem !important;color:#334155 !important;box-shadow:0 25px 50px -12px rgba(44,62,53,0.15) !important;transition:transform .25s cubic-bezier(0.16,1,0.3,1),opacity .25s ease !important}.ui-popup-show .ui-dialog{opacity:1 !important;transform:scale(1) !important}.ui-popup-focus .ui-dialog,.ui-popup-modal .ui-dialog{box-shadow:0 25px 60px -15px rgba(44,62,53,0.25) !important}.ui-dialog-header{border-bottom:1px solid rgba(209,199,184,0.3) !important}.ui-dialog-title{font-family:"Noto Sans TC",Inter,sans-serif !important;font-size:1.15rem !important;font-weight:700 !important;color:#2c3e35 !important;padding:1.25rem 1.5rem !important}.ui-dialog-close{top:1rem !important;right:1rem !important;font-size:1.5rem !important;color:#94a3b8 !important;opacity:.6 !important;transition:all .2s ease !important;border-radius:.5rem !important}.ui-dialog-close:hover,.ui-dialog-close:focus{color:#2c3e35 !important;opacity:1 !important;background:rgba(209,199,184,0.2) !important}.ui-dialog-body{padding:1.5rem !important;text-align:left !important;line-height:1.85 !important;font-size:1rem !important}.ui-dialog-footer{padding:0 1.5rem 1.5rem !important}.ui-dialog-footer button{font-family:"Noto Sans TC",Inter,sans-serif !important;font-size:.95rem !important;font-weight:500 !important;padding:.625rem 1.75rem !important;border-radius:9999px !important;border:1px solid rgba(209,199,184,0.5) !important;color:#334155 !important;background:#fff !important;transition:all .2s ease !important;cursor:pointer !important}.ui-dialog-footer button:hover,.ui-dialog-footer button:focus{background:#fcfbf7 !important;border-color:#7da086 !important;color:#2c3e35 !important}.ui-dialog-footer button.ui-dialog-autofocus{color:#fff !important;background:#7da086 !important;border-color:#7da086 !important}.ui-dialog-footer button.ui-dialog-autofocus:hover,.ui-dialog-footer button.ui-dialog-autofocus:focus{background:#2c3e35 !important;border-color:#2c3e35 !important}.ui-popup-backdrop{background:rgba(44,62,53,0.4) !important;backdrop-filter:blur(4px) !important;-webkit-backdrop-filter:blur(4px) !important}.ui-dialog-loading::after{box-shadow:0 -10px 0 1px #7da086,10px 0 0 0 #10b981,0 10px 0 0 #d1c7b8,-10px 0 0 0 #7da086,-7px -7px 0 .5px #10b981,7px -7px 0 1.5px #7da086,7px 7px 0 0 #d1c7b8,-7px 7px 0 0 #10b981 !important}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:opacity .3s ease}.card-line{transition:width 1s ease}.animate-smooth-float{animation:smooth-float-gentle 12s ease-in-out infinite}@keyframes smooth-float-gentle{0,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}.nav-link::after{transition:width .6s ease}}