.easy-choice{background:linear-gradient(180deg,#fafbfc,#f5f6f8);padding:3rem 1rem;scroll-margin-top:120px}@media screen and (min-width:768px){.easy-choice{padding:4rem 0}}.easy-choice .container{max-width:900px}.easy-choice .title{font-family:"DM Serif Display","Noto Serif TC",Georgia,serif;font-size:clamp(1.875rem,1.5rem + 1.875vw,2.5rem);font-weight:700;color:#8b2252;letter-spacing:-.025em;text-align:center;margin-bottom:.5rem}@media screen and (max-width:768px){.easy-choice .title{font-size:clamp(1.5rem,1.25rem + 1.25vw,2rem)}}.easy-choice .subtitle{font-family:Outfit,Noto Sans TC,system-ui,-apple-system,sans-serif;font-size:clamp(1rem,.9rem + .5vw,1.125rem);color:#6b7280;text-align:center;margin-bottom:2rem}.easy-choice .course-list{display:flex;flex-direction:column;gap:1rem}.easy-choice .no-courses{text-align:center;padding:3rem;color:#6b7280;font-size:clamp(1.125rem,1rem + .625vw,1.25rem)}.easy-choice .course-card{display:flex;align-items:center;gap:1rem;background:#fff;border-radius:16px;box-shadow:0 2px 8px #00000014;border:1px solid rgba(0,0,0,.06);padding:1.25rem;text-decoration:none;transition:all .3s ease}.easy-choice .course-card:hover{box-shadow:0 8px 32px #0000001f;transform:translateY(-2px)}@media screen and (max-width:768px){.easy-choice .course-card{flex-wrap:wrap}}.easy-choice .course-card .rank{font-family:"DM Serif Display","Noto Serif TC",Georgia,serif;font-size:clamp(2.25rem,1.75rem + 2.5vw,3rem);font-weight:700;color:#8b2252;min-width:50px;text-align:center;line-height:1}@media screen and (max-width:768px){.easy-choice .course-card .rank{font-size:clamp(1.875rem,1.5rem + 1.875vw,2.5rem);min-width:40px}}.easy-choice .course-card .course-info{flex:1;min-width:0}.easy-choice .course-card .course-info .course-code{font-family:JetBrains Mono,SF Mono,Fira Code,monospace;font-size:clamp(1.25rem,1.1rem + .75vw,1.5rem);font-weight:700;color:#8b2252;letter-spacing:.025em;margin-bottom:.25rem}@media screen and (max-width:768px){.easy-choice .course-card .course-info .course-code{font-size:clamp(1.125rem,1rem + .625vw,1.25rem)}}.easy-choice .course-card .course-info .course-title{font-family:Outfit,Noto Sans TC,system-ui,-apple-system,sans-serif;font-size:clamp(1rem,.9rem + .5vw,1.125rem);font-weight:500;color:#6b7280;line-height:1.4}@media screen and (max-width:768px){.easy-choice .course-card .course-info .course-title{font-size:clamp(.875rem,.8rem + .35vw,1rem)}}.easy-choice .course-card .workload-section{display:flex;align-items:center;gap:1rem}@media screen and (max-width:768px){.easy-choice .course-card .workload-section{width:100%;justify-content:center;margin-top:.5rem}}.easy-choice .course-card .workload-chart{width:100px;height:100px;position:relative}.easy-choice .course-card .workload-chart .workload-circle{transform:rotate(-90deg)}.easy-choice .course-card .workload-chart .workload-circle .bg-circle{fill:none;stroke:#f5f6f8;stroke-width:8}.easy-choice .course-card .workload-chart .workload-circle .progress-circle{fill:none;stroke:#8b2252;stroke-width:8;stroke-linecap:round;stroke-dasharray:314;stroke-dashoffset:314;transition:stroke-dashoffset 1s cubic-bezier(.4,0,.2,1)}.easy-choice .course-card .workload-chart .chart-label{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center}.easy-choice .course-card .workload-chart .chart-label .label-text{display:block;font-family:Outfit,Noto Sans TC,system-ui,-apple-system,sans-serif;font-size:10px;color:#6b7280;text-transform:uppercase;letter-spacing:.05em;margin-bottom:2px}.easy-choice .course-card .workload-chart .chart-label .label-value{display:block;font-family:JetBrains Mono,SF Mono,Fira Code,monospace;font-size:clamp(1.25rem,1.1rem + .75vw,1.5rem);font-weight:700;color:#8b2252;line-height:1}.good-grade{color:#8b2252;background:#fafbfc;padding-top:3rem;padding-bottom:3rem;scroll-margin-top:120px}.good-grade .container{max-width:1200px}.good-grade .title{font-family:"DM Serif Display","Noto Serif TC",Georgia,serif;font-size:clamp(1.875rem,1.5rem + 1.875vw,2.5rem);font-weight:700;letter-spacing:-.025em;text-align:center;margin-bottom:1.5rem}@media screen and (max-width:768px){.good-grade .title{font-size:clamp(1.5rem,1.25rem + 1.25vw,2rem)}}.good-grade .good-grade-list .google-auto-placed{display:none}.good-grade .good-grade-list{border-bottom:2px solid #e5e7eb;margin-bottom:1rem;justify-content:center!important}.good-grade .good-grade-list .category-list{display:inline-flex}.good-grade .good-grade-list .category-list .category{background-color:transparent;cursor:pointer;padding:.75rem 1.5rem;font-family:Outfit,Noto Sans TC,system-ui,-apple-system,sans-serif;font-weight:500;font-size:clamp(.875rem,.8rem + .35vw,1rem);border-radius:8px 8px 0 0;white-space:nowrap;transition:all .25s ease;position:relative;color:#6b7280}.good-grade .good-grade-list .category-list .category:after{content:"";position:absolute;bottom:-2px;left:0;right:0;height:3px;background:#8b2252;transform:scaleX(0);transition:transform .25s ease}.good-grade .good-grade-list .category-list .category:hover{background-color:#8b22521a;color:#8b2252}.good-grade .good-grade-list .category-list .category.active{color:#8b2252;font-weight:600;background-color:#8b22521a}.good-grade .good-grade-list .category-list .category.active:after{transform:scaleX(1)}.good-grade .slick-container{position:relative;padding:.5rem 4rem 1rem}@media screen and (max-width:768px){.good-grade .slick-container{padding:.5rem 2.5rem 1rem}}.good-grade .slick-container .custom-slick-button{height:48px;width:48px;border-radius:50%;box-shadow:0 8px 32px #0000001f;position:absolute;top:50%;transform:translateY(-50%);z-index:500;cursor:pointer;background-color:#fff;border:1px solid #e5e7eb;transition:all .25s ease}.good-grade .slick-container .custom-slick-button:hover{background-color:#8b2252;border-color:#8b2252}.good-grade .slick-container .custom-slick-button:hover .custom-slick-arrow{border-color:#fff}@media screen and (max-width:768px){.good-grade .slick-container .custom-slick-button{height:36px;width:36px}}.good-grade .slick-container .custom-slick-button.custom-slick-prev{left:0}.good-grade .slick-container .custom-slick-button.custom-slick-prev .custom-slick-arrow{transform:translate(18px,15px) rotate(135deg)}@media screen and (max-width:768px){.good-grade .slick-container .custom-slick-button.custom-slick-prev .custom-slick-arrow{transform:translate(13px,11px) rotate(135deg)}}.good-grade .slick-container .custom-slick-button.custom-slick-next{right:0}.good-grade .slick-container .custom-slick-button.custom-slick-next .custom-slick-arrow{transform:translate(12px,15px) rotate(315deg)}@media screen and (max-width:768px){.good-grade .slick-container .custom-slick-button.custom-slick-next .custom-slick-arrow{transform:translate(9px,11px) rotate(315deg)}}.good-grade .slick-container .custom-slick-button .custom-slick-arrow{position:absolute;border:solid #6b7280;border-width:0 2px 2px 0;display:inline-block;padding:6px;transition:border-color .25s ease}@media screen and (max-width:768px){.good-grade .slick-container .custom-slick-button .custom-slick-arrow{padding:4px}}.good-grade .slick-container .good-grade-content{overflow-x:auto;scroll-behavior:smooth;padding:1.5rem 0}.good-grade .slick-container .good-grade-content::-webkit-scrollbar{height:6px}.good-grade .slick-container .good-grade-content::-webkit-scrollbar-track{background:#e5e7eb;border-radius:3px}.good-grade .slick-container .good-grade-content::-webkit-scrollbar-thumb{background:#9ca3af;border-radius:3px}.good-grade .slick-container .good-grade-content::-webkit-scrollbar-thumb:hover{background:#6b7280}.good-grade .slick-container .good-grade-content .courses-wrapper{display:flex;gap:1.5rem;padding:.5rem}.good-grade .slick-container .good-grade-content .no-courses{display:block;width:100%;text-align:center;padding:3rem 1rem;color:#6b7280;font-size:clamp(1.125rem,1rem + .625vw,1.25rem)}.good-grade .slick-container .good-grade-content .course{flex-shrink:0;width:240px;text-decoration:none;transition:transform .3s ease}.good-grade .slick-container .good-grade-content .course:hover{transform:translateY(-4px)}.good-grade .slick-container .good-grade-content .course:hover .upper-card .focus-card{background:linear-gradient(135deg,#8b2252,#6b1a3f);box-shadow:0 16px 48px #00000029}.good-grade .slick-container .good-grade-content .course .rank{color:#8b2252;font-size:clamp(1.875rem,1.5rem + 1.875vw,2.5rem);font-weight:700;text-align:center;margin-bottom:.5rem;font-family:"DM Serif Display","Noto Serif TC",Georgia,serif}.good-grade .slick-container .good-grade-content .course .upper-card{border-radius:12px;overflow:hidden;margin-bottom:.5rem;box-shadow:0 4px 16px #0000001a}.good-grade .slick-container .good-grade-content .course .upper-card .focus-card{background:linear-gradient(135deg,#d4a5ba,#bb7192);padding:1.25rem;min-height:100px;display:flex;flex-direction:column;justify-content:center;transition:all .35s ease}.good-grade .slick-container .good-grade-content .course .upper-card .focus-card .course-code{font-size:clamp(1.25rem,1.1rem + .75vw,1.5rem);font-weight:700;color:#fff;margin-bottom:.25rem}.good-grade .slick-container .good-grade-content .course .upper-card .focus-card .course-title{font-size:clamp(.75rem,.7rem + .25vw,.875rem);line-height:1.4;color:#fff;opacity:.95}.good-grade .slick-container .good-grade-content .course .gpa-section{background:#fff;border-radius:10px;box-shadow:0 2px 8px #00000014;padding:.75rem;text-align:center}.good-grade .slick-container .good-grade-content .course .gpa-section .gpa-label{font-size:10px;color:#6b7280;margin-bottom:.125rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em}.good-grade .slick-container .good-grade-content .course .gpa-section .gpa-value{color:#8b2252;font-size:clamp(1.25rem,1.1rem + .75vw,1.5rem);font-weight:700;font-style:italic}.index-comment{background:linear-gradient(180deg,#fafbfc,#fdf5f7);color:#8b2252;padding:4rem 0;scroll-margin-top:120px}@media screen and (min-width:768px){.index-comment{padding:5rem 0}}.index-comment .container{max-width:1200px;padding:0 1rem}.index-comment .section-header{text-align:center;margin-bottom:2.5rem}.index-comment .title{font-family:"DM Serif Display","Noto Serif TC",Georgia,serif;font-size:clamp(1.875rem,1.5rem + 1.875vw,2.5rem);font-weight:700;letter-spacing:-.025em;margin-bottom:.75rem;color:#8b2252}@media screen and (min-width:768px){.index-comment .title{font-size:clamp(2.25rem,1.75rem + 2.5vw,3rem)}}.index-comment .subtitle{font-family:Outfit,Noto Sans TC,system-ui,-apple-system,sans-serif;font-size:clamp(1.125rem,1rem + .625vw,1.25rem);color:#6b7280;margin:0}.index-comment .carousel-wrapper{position:relative;padding:0 3.5rem;max-width:100%}@media screen and (max-width:768px){.index-comment .carousel-wrapper{padding:0 2.5rem}}.index-comment .carousel-wrapper .carousel-button{height:52px;width:52px;border-radius:50%;box-shadow:0 8px 32px #0000001f;position:absolute;top:50%;transform:translateY(-50%);z-index:10;cursor:pointer;background:#fff;border:2px solid #e5e7eb;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;justify-content:center}.index-comment .carousel-wrapper .carousel-button:hover{background:#8b2252;border-color:#8b2252;transform:translateY(-50%) scale(1.08)}.index-comment .carousel-wrapper .carousel-button:hover .arrow{border-color:#fff}.index-comment .carousel-wrapper .carousel-button:active{transform:translateY(-50%) scale(.96)}@media screen and (max-width:768px){.index-comment .carousel-wrapper .carousel-button{height:40px;width:40px}}.index-comment .carousel-wrapper .carousel-button.prev{left:.5rem}@media screen and (min-width:768px){.index-comment .carousel-wrapper .carousel-button.prev{left:1rem}}.index-comment .carousel-wrapper .carousel-button.prev .arrow{transform:rotate(135deg);margin-left:4px}.index-comment .carousel-wrapper .carousel-button.next{right:.5rem}@media screen and (min-width:768px){.index-comment .carousel-wrapper .carousel-button.next{right:1rem}}.index-comment .carousel-wrapper .carousel-button.next .arrow{transform:rotate(-45deg);margin-right:4px}.index-comment .carousel-wrapper .carousel-button .arrow{border:solid #6b7280;border-width:0 2.5px 2.5px 0;display:inline-block;padding:6px;transition:border-color .25s ease}@media screen and (max-width:768px){.index-comment .carousel-wrapper .carousel-button .arrow{padding:5px;border-width:0 2px 2px 0}}.index-comment .carousel-wrapper .comments-carousel{overflow-x:auto;scroll-behavior:smooth;padding:1rem 0 2rem;scrollbar-width:none;-ms-overflow-style:none}.index-comment .carousel-wrapper .comments-carousel::-webkit-scrollbar{display:none}.index-comment .carousel-wrapper .comments-carousel .comments-track{display:flex;gap:1.5rem;padding:.5rem 1rem}@media screen and (min-width:768px){.index-comment .carousel-wrapper .comments-carousel .comments-track{padding:.5rem 2rem}}.index-comment .carousel-wrapper .comments-carousel .comment-card{flex-shrink:0;width:320px;background:#fff;border-radius:24px;box-shadow:0 4px 16px #0000001a;border:1px solid rgba(0,0,0,.06);padding:1.5rem;position:relative;transition:all .35s cubic-bezier(.4,0,.2,1);overflow:visible}@media screen and (max-width:480px){.index-comment .carousel-wrapper .comments-carousel .comment-card{width:280px}}.index-comment .carousel-wrapper .comments-carousel .comment-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#8b2252,#ff6b6b);opacity:0;transition:opacity .3s ease;border-radius:24px 24px 0 0}.index-comment .carousel-wrapper .comments-carousel .comment-card:hover{transform:translateY(-8px);box-shadow:0 16px 48px #00000029}.index-comment .carousel-wrapper .comments-carousel .comment-card:hover:before{opacity:1}.index-comment .carousel-wrapper .comments-carousel .comment-card:hover .avatar-wrapper .avatar{transform:scale(1.08)}.index-comment .carousel-wrapper .comments-carousel .comment-card.dummy{opacity:.9}.index-comment .carousel-wrapper .comments-carousel .comment-card .avatar-wrapper{display:flex;justify-content:center;margin-bottom:1rem}.index-comment .carousel-wrapper .comments-carousel .comment-card .avatar-wrapper .avatar{width:72px;height:72px;border-radius:50%;overflow:hidden;background:linear-gradient(135deg,#fdf5f7,#fff);display:flex;align-items:center;justify-content:center;border:3px solid #e5e7eb;box-shadow:0 2px 8px #00000014;transition:transform .3s ease}.index-comment .carousel-wrapper .comments-carousel .comment-card .avatar-wrapper .avatar img{width:58%;height:58%;-o-object-fit:contain;object-fit:contain}.index-comment .carousel-wrapper .comments-carousel .comment-card .card-content{text-align:center}.index-comment .carousel-wrapper .comments-carousel .comment-card .course-tag{display:inline-block;font-family:JetBrains Mono,SF Mono,Fira Code,monospace;font-size:clamp(.875rem,.8rem + .35vw,1rem);font-weight:700;color:#8b2252;background:#8b22521a;padding:.35rem .75rem;border-radius:8px;margin-bottom:1rem;letter-spacing:.02em}.index-comment .carousel-wrapper .comments-carousel .comment-card .comment-text{font-family:Outfit,Noto Sans TC,system-ui,-apple-system,sans-serif;font-size:clamp(.875rem,.8rem + .35vw,1rem);line-height:1.625;color:#6b7280;text-align:left;margin:0;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;min-height:88px}.index-comment .carousel-wrapper .comments-carousel .comment-card .quote-decoration{position:absolute;bottom:.75rem;right:1rem}.index-comment .carousel-wrapper .comments-carousel .comment-card .quote-decoration .quote-mark{font-size:3rem;color:#8b2252;opacity:.12;line-height:1;font-family:Georgia,serif}.index-comment .scroll-hint{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:1rem;color:#9ca3af;font-size:clamp(.875rem,.8rem + .35vw,1rem);font-family:Outfit,Noto Sans TC,system-ui,-apple-system,sans-serif}.index-comment .scroll-hint .hint-arrow{animation:hint-bounce 1.5s ease-in-out infinite}@keyframes hint-bounce{0%,to{transform:translate(0)}50%{transform:translate(6px)}}@media screen and (min-width:1024px){.index-comment .scroll-hint{display:none}}.index-comment .no-comments{text-align:center;padding:4rem 1rem;color:#6b7280;font-size:clamp(1.125rem,1rem + .625vw,1.25rem);font-family:Outfit,Noto Sans TC,system-ui,-apple-system,sans-serif;background:#fff;border-radius:16px;box-shadow:0 2px 8px #00000014;max-width:600px;margin:0 auto}.index-feature{background:linear-gradient(180deg,#f5f6f8,#fafbfc);position:relative;overflow:hidden}.index-feature:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-image:radial-gradient(circle at 20% 80%,rgba(139,34,82,.1) 0%,transparent 50%),radial-gradient(circle at 80% 20%,#ff8e8e 0%,transparent 40%);opacity:.3;pointer-events:none}.index-feature .container{position:relative;z-index:1}.index-feature .title{font-family:"DM Serif Display","Noto Serif TC",Georgia,serif;font-size:clamp(2.25rem,1.75rem + 2.5vw,3rem);font-weight:700;color:#8b2252;letter-spacing:-.025em;text-align:center}@media screen and (max-width:768px){.index-feature .title{font-size:clamp(1.875rem,1.5rem + 1.875vw,2.5rem)}}.index-feature .feature-list{gap:2rem}.index-feature .feature-list .feature{background:#fff;border-radius:20px;box-shadow:0 4px 16px #0000001a;border:1px solid rgba(0,0,0,.06);overflow:hidden;transition:all .35s cubic-bezier(.4,0,.2,1)}.index-feature .feature-list .feature:hover{transform:translateY(-8px);box-shadow:0 16px 48px #00000029}.index-feature .feature-list .feature>.w-full.mb-5{margin:-1.25rem -1.25rem 1.25rem;width:calc(100% + 2.5rem);box-shadow:none;border-radius:0;overflow:hidden}.index-feature .feature-list .feature>.w-full.mb-5 img{width:100%;height:220px;-o-object-fit:cover;object-fit:cover;transition:transform .5s ease}.index-feature .feature-list .feature:hover>.w-full.mb-5 img{transform:scale(1.05)}.index-feature .feature-list .feature .feature-title{font-family:"DM Serif Display","Noto Serif TC",Georgia,serif;font-size:clamp(1.25rem,1.1rem + .75vw,1.5rem);font-weight:600;color:#8b2252;margin-bottom:1rem}.index-feature .feature-list .feature .text-content{font-family:Outfit,Noto Sans TC,system-ui,-apple-system,sans-serif;font-size:clamp(1rem,.9rem + .5vw,1.125rem);color:#6b7280;line-height:1.625}.index-hero{position:relative;min-height:100vh;background-image:url(/media/cityu.jpg);background-size:cover;background-repeat:no-repeat;background-position:center;background-attachment:fixed}@media screen and (max-width:768px){.index-hero{background-attachment:scroll;min-height:auto}}.index-hero .hero-bg-gradient{min-height:100vh;background:linear-gradient(135deg,#fffffff7,#ffffffeb 40%,#ffffffd9,#ffffffb3);padding-top:2rem;padding-bottom:4rem}@media screen and (max-width:768px){.index-hero .hero-bg-gradient{min-height:auto;background:linear-gradient(180deg,#fffffffa,#fffffff2,#ffffffe6)}}.index-hero .hero-bg-gradient .hero-top .menu-toggle{position:relative;display:none;width:32px;height:32px;align-items:center;justify-content:center;cursor:pointer;border-radius:8px;transition:background .2s ease}@media screen and (max-width:768px){.index-hero .hero-bg-gradient .hero-top .menu-toggle{display:flex}}.index-hero .hero-bg-gradient .hero-top .menu-toggle:hover{background:#8b22521a}.index-hero .hero-bg-gradient .hero-top .menu-toggle .line-1,.index-hero .hero-bg-gradient .hero-top .menu-toggle .line-2,.index-hero .hero-bg-gradient .hero-top .menu-toggle .line-3{position:absolute;width:22px;height:2.5px;background-color:#8b2252;border-radius:2px;transition:all .35s cubic-bezier(.68,-.55,.265,1.55)}.index-hero .hero-bg-gradient .hero-top .menu-toggle .line-1{top:8px}.index-hero .hero-bg-gradient .hero-top .menu-toggle .line-2{top:50%;transform:translateY(-50%)}.index-hero .hero-bg-gradient .hero-top .menu-toggle .line-3{bottom:8px}.index-hero .hero-bg-gradient .hero-top .menu-toggle.active .line-1{opacity:0;transform:translateY(6px)}.index-hero .hero-bg-gradient .hero-top .menu-toggle.active .line-2{transform:translateY(-50%) rotate(45deg);background-color:#fff}.index-hero .hero-bg-gradient .hero-top .menu-toggle.active .line-3{transform:translateY(-6px) rotate(-45deg);background-color:#fff}.index-hero .hero-bg-gradient .hero-top button.login{color:#8b2252;background:transparent;border:2px solid transparent;border-radius:12px;padding:.75rem 1.5rem;font-family:Outfit,Noto Sans TC,system-ui,-apple-system,sans-serif;font-weight:600;font-size:clamp(.875rem,.8rem + .35vw,1rem);cursor:pointer;transition:all .25s ease}.index-hero .hero-bg-gradient .hero-top button.login:hover{background:#8b22521a}.index-hero .hero-bg-gradient .hero-top button.register{background:#8b2252;color:#fff;border:none;border-radius:12px;padding:.75rem 1.5rem;font-family:Outfit,Noto Sans TC,system-ui,-apple-system,sans-serif;font-weight:600;font-size:clamp(.875rem,.8rem + .35vw,1rem);cursor:pointer;transition:all .25s ease}.index-hero .hero-bg-gradient .hero-top button.register:hover{background:#a8466f;transform:translateY(-2px);box-shadow:0 4px 16px #0000001a}.index-hero .hero-bg-gradient .hero-top button.register:active{transform:translateY(0)}.index-hero .hero-bg-gradient .hero-top .image-container img.logo-icon{height:56px;width:auto;transition:transform .3s ease}.index-hero .hero-bg-gradient .hero-top .image-container img.logo-icon:hover{transform:scale(1.05)}.index-hero .hero-bg-gradient .hero-title{color:#8b2252;font-family:"DM Serif Display","Noto Serif TC",Georgia,serif;font-size:clamp(3rem,2rem + 5vw,4.5rem);font-weight:700;letter-spacing:-.025em;line-height:1.25;margin-bottom:.5rem;animation:fadeIn .8s ease-out forwards}@media screen and (max-width:768px){.index-hero .hero-bg-gradient .hero-title{font-size:clamp(1.875rem,1.5rem + 1.875vw,2.5rem)}}.index-hero .hero-bg-gradient .subtitle{color:#6b7280;font-family:Outfit,Noto Sans TC,system-ui,-apple-system,sans-serif;font-size:clamp(1.25rem,1.1rem + .75vw,1.5rem);font-weight:400;line-height:1.625;animation:fadeIn .8s ease-out .1s forwards;opacity:0}@media screen and (max-width:768px){.index-hero .hero-bg-gradient .subtitle{font-size:clamp(1rem,.9rem + .5vw,1.125rem)}}.index-hero .hero-bg-gradient .search-input{padding:2rem 0;position:relative;width:100%;max-width:480px;animation:slideUp .6s ease-out .2s forwards;opacity:0}.index-hero .hero-bg-gradient .search-input input.search{width:100%;height:56px;background:#fff;border:2px solid #e5e7eb;border-radius:16px;padding:0 3.5rem 0 1.5rem;font-family:Outfit,Noto Sans TC,system-ui,-apple-system,sans-serif;font-weight:500;font-size:clamp(1rem,.9rem + .5vw,1.125rem);color:#1a1d23;box-shadow:0 4px 16px #0000001a;transition:all .3s ease}.index-hero .hero-bg-gradient .search-input input.search::-moz-placeholder{color:#9ca3af}.index-hero .hero-bg-gradient .search-input input.search::placeholder{color:#9ca3af}.index-hero .hero-bg-gradient .search-input input.search:hover{border-color:#9ca3af}.index-hero .hero-bg-gradient .search-input input.search:focus{border-color:#8b2252;box-shadow:0 8px 32px #0000001f,0 0 0 4px #8b22521a}.index-hero .hero-bg-gradient .search-input img{position:absolute;right:1.25rem;top:50%;transform:translateY(-50%);cursor:pointer;width:22px;height:22px;opacity:.5;transition:all .2s ease}.index-hero .hero-bg-gradient .search-input img:hover{opacity:1;transform:translateY(-50%) scale(1.1)}.index-hero .hero-bg-gradient .hero-nav{animation:slideUp .6s ease-out .3s forwards;opacity:0}.index-hero .hero-bg-gradient .hero-nav .title{color:#1a1d23;font-family:Outfit,Noto Sans TC,system-ui,-apple-system,sans-serif;font-weight:600;font-size:clamp(.875rem,.8rem + .35vw,1rem);text-transform:uppercase;letter-spacing:.05em;margin-bottom:1rem}.index-hero .hero-bg-gradient .hero-nav .course-item{display:inline-flex;align-items:center;background:#8b2252;color:#fff;font-family:Outfit,Noto Sans TC,system-ui,-apple-system,sans-serif;font-weight:600;font-size:clamp(.875rem,.8rem + .35vw,1rem);padding:.75rem 1.25rem;border-radius:12px;text-decoration:none;transition:all .25s ease;box-shadow:0 2px 8px #00000014}.index-hero .hero-bg-gradient .hero-nav .course-item:hover{background:#a8466f;transform:translateY(-2px);box-shadow:0 4px 16px #0000001a}.index-hero .hero-bg-gradient .hero-nav .course-item:active{transform:translateY(0)}@media screen and (max-width:768px){.index-hero .hero-bg-gradient .hero-nav .course-item{font-size:clamp(.875rem,.8rem + .35vw,1rem);padding:.625rem 1rem}}.index-hero .hero-bg-gradient .hero-lang-switch{font-family:Outfit,Noto Sans TC,system-ui,-apple-system,sans-serif;font-size:clamp(.875rem,.8rem + .35vw,1rem);color:#6b7280;animation:fadeIn .6s ease-out .4s forwards;opacity:0}.index-hero .hero-bg-gradient .hero-lang-switch span{margin-right:.5rem}.index-hero .hero-bg-gradient .hero-lang-switch a{color:#8b2252;font-weight:500;text-decoration:none;padding:.25rem .5rem;border-radius:6px;transition:all .2s ease}.index-hero .hero-bg-gradient .hero-lang-switch a:hover{background:#8b22521a;color:#6b1a3f}.index-hero .hero-bg-gradient .bottom-text{font-family:Outfit,Noto Sans TC,system-ui,-apple-system,sans-serif;font-size:clamp(.875rem,.8rem + .35vw,1rem);color:#6b7280;line-height:1.625;animation:fadeIn .6s ease-out .5s forwards;opacity:0}.index-hero .mobile-menu{position:fixed;z-index:99999;top:0;left:0;width:100%;height:100vh;background:linear-gradient(135deg,#8b2252,#6b1a3f);flex-direction:column;opacity:0;display:none;transform:translate(-100%);transition:all .4s cubic-bezier(.4,0,.2,1)}.index-hero .mobile-menu .top{display:flex;align-items:center;padding:1rem 1.5rem;gap:1rem}.index-hero .mobile-menu .top .menu-toggle{position:relative;display:flex;width:32px;height:32px;align-items:center;justify-content:center}.index-hero .mobile-menu .top .menu-toggle .line-1,.index-hero .mobile-menu .top .menu-toggle .line-2,.index-hero .mobile-menu .top .menu-toggle .line-3{position:absolute;width:24px;height:2.5px;background-color:#fff;border-radius:2px;transition:all .35s cubic-bezier(.68,-.55,.265,1.55)}.index-hero .mobile-menu .top .menu-toggle .line-1{top:8px}.index-hero .mobile-menu .top .menu-toggle .line-2{top:50%;transform:translateY(-50%)}.index-hero .mobile-menu .top .menu-toggle .line-3{bottom:8px}.index-hero .mobile-menu .top .menu-toggle.active .line-1{opacity:0}.index-hero .mobile-menu .top .menu-toggle.active .line-2{transform:translateY(-50%) rotate(45deg)}.index-hero .mobile-menu .top .menu-toggle.active .line-3{transform:translateY(-6px) rotate(-45deg)}.index-hero .mobile-menu .top img{height:40px;width:auto}.index-hero .mobile-menu ul.nav-list{width:100%;flex:1;padding:1rem 0;overflow-y:auto}.index-hero .mobile-menu ul.nav-list li{width:100%;display:flex;flex-direction:column}.index-hero .mobile-menu ul.nav-list li a{width:100%;padding:1rem 2rem;text-align:left;color:#fff;font-family:Outfit,Noto Sans TC,system-ui,-apple-system,sans-serif;font-weight:600;font-size:clamp(1.125rem,1rem + .625vw,1.25rem);transition:background .2s ease}.index-hero .mobile-menu ul.nav-list li a:hover{background:#ffffff1a}.index-hero .mobile-menu .bottom{padding:1.5rem;border-top:1px solid rgba(255,255,255,.1)}.index-hero .mobile-menu .bottom p{font-family:Outfit,Noto Sans TC,system-ui,-apple-system,sans-serif;font-weight:500;font-size:clamp(.875rem,.8rem + .35vw,1rem);color:#ffffffb3}.index-hero .mobile-menu.active{opacity:1;display:flex;transform:translate(0)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.index-link{background:#fff;color:#8b2252;padding:4rem 1rem;scroll-margin-top:120px;position:relative}.index-link:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent 0%,#e5e7eb 50%,transparent 100%)}.index-link .container{max-width:1200px;margin:0 auto}.index-link .title{font-family:"DM Serif Display","Noto Serif TC",Georgia,serif;font-size:clamp(2.25rem,1.75rem + 2.5vw,3rem);font-weight:700;color:#8b2252;letter-spacing:-.025em;text-align:center;margin-bottom:.5rem}@media screen and (max-width:768px){.index-link .title{font-size:clamp(1.875rem,1.5rem + 1.875vw,2.5rem)}}.index-link .subtitle{font-family:Outfit,Noto Sans TC,system-ui,-apple-system,sans-serif;font-size:clamp(1.125rem,1rem + .625vw,1.25rem);color:#6b7280;text-align:center;margin-bottom:3rem}.index-link .link-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}@media screen and (max-width:1024px){.index-link .link-grid{grid-template-columns:repeat(2,1fr)}}@media screen and (max-width:640px){.index-link .link-grid{grid-template-columns:1fr;gap:1.5rem}}.index-link .link-card{background:#fff;border-radius:20px;box-shadow:0 4px 16px #0000001a;border:1px solid rgba(0,0,0,.06);overflow:hidden;transition:all .3s ease;position:relative}.index-link .link-card:hover{transform:translateY(-6px);box-shadow:0 16px 48px #00000029}.index-link .link-card:hover .card-header .header-bg{transform:scale(1.05)}.index-link .link-card .card-header{position:relative;height:120px;overflow:hidden}.index-link .link-card .card-header .header-bg{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;transition:transform .5s ease}.index-link .link-card .card-header .header-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.3) 100%)}.index-link .link-card .card-icon{width:72px;height:72px;border-radius:50%;background:#fff;box-shadow:0 8px 32px #0000001f;position:absolute;top:84px;left:50%;transform:translate(-50%);display:flex;align-items:center;justify-content:center;padding:12px;z-index:2}.index-link .link-card .card-icon img{width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.index-link .link-card .card-content{padding:3rem 1.5rem 1.5rem;text-align:center}.index-link .link-card .card-content .card-title{font-family:"DM Serif Display","Noto Serif TC",Georgia,serif;font-size:clamp(1.25rem,1.1rem + .75vw,1.5rem);font-weight:600;color:#1a1d23;margin-bottom:1.25rem}.index-link .link-card .card-content .card-links{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem}.index-link .link-card .card-content .card-links .link-button{display:inline-block;padding:.5rem 1rem;font-family:Outfit,Noto Sans TC,system-ui,-apple-system,sans-serif;font-size:clamp(.875rem,.8rem + .35vw,1rem);font-weight:500;color:#8b2252;background:#8b22521a;border-radius:20px;text-decoration:none;transition:all .25s ease}.index-link .link-card .card-content .card-links .link-button:hover{background:#8b2252;color:#fff;transform:translateY(-2px)}.index-nav{background:linear-gradient(135deg,#8b2252,#a8466f);position:sticky;top:0;z-index:900;box-shadow:0 4px 16px #0000001a}@media screen and (max-width:769px){.index-nav{display:none}}.index-nav nav{gap:.5rem}.index-nav a{color:#ffffffd9;font-family:Outfit,Noto Sans TC,system-ui,-apple-system,sans-serif;font-size:clamp(.875rem,.8rem + .35vw,1rem);font-weight:600;padding:1rem 1.25rem;position:relative;transition:all .25s ease}.index-nav a:after{content:"";position:absolute;bottom:0;left:50%;transform:translate(-50%) scaleX(0);width:calc(100% - 1.5rem);height:3px;background:#fff;border-radius:3px 3px 0 0;transition:transform .25s ease}.index-nav a:hover{color:#fff}.index-nav a:hover:after{transform:translate(-50%) scaleX(1)}body,html{height:100%;font-size:16px;background-color:#fafbfc;color:#1a1d23}body{margin:0;line-height:1.5;overflow:auto;overflow-x:hidden;font-family:Outfit,Noto Sans TC,system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body input:focus,body textarea:focus,body select:focus{outline:none}body h1,body .h1{font-family:"DM Serif Display","Noto Serif TC",Georgia,serif;font-size:clamp(3rem,2rem + 5vw,4.5rem);font-weight:700;line-height:1.25;letter-spacing:-.025em}body h2,body .h2{font-family:"DM Serif Display","Noto Serif TC",Georgia,serif;font-size:clamp(2.25rem,1.75rem + 2.5vw,3rem);font-weight:700;line-height:1.25;letter-spacing:-.025em}body h3,body .h3{font-family:"DM Serif Display","Noto Serif TC",Georgia,serif;font-size:clamp(1.875rem,1.5rem + 1.875vw,2.5rem);font-weight:600;line-height:1.375}body h4,body .h4{font-family:Outfit,Noto Sans TC,system-ui,-apple-system,sans-serif;font-size:clamp(1.5rem,1.25rem + 1.25vw,2rem);font-weight:600;line-height:1.375}body h5,body .h5{font-family:Outfit,Noto Sans TC,system-ui,-apple-system,sans-serif;font-size:clamp(1.25rem,1.1rem + .75vw,1.5rem);font-weight:500;line-height:1.5}body p,body span,body div{font-family:Outfit,Noto Sans TC,system-ui,-apple-system,sans-serif}body blockquote{font-family:"DM Serif Display","Noto Serif TC",Georgia,serif;font-style:italic}body img{max-width:100%;height:auto}body .course-code{font-family:JetBrains Mono,SF Mono,Fira Code,monospace;font-weight:700;letter-spacing:.025em}body a,body button{transition:all .25s cubic-bezier(.4,0,.2,1)}body a{color:#8b2252;text-decoration:none}body a:hover{color:#a8466f}.in-development{display:none!important}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.75rem 1.5rem;font-family:Outfit,Noto Sans TC,system-ui,-apple-system,sans-serif;font-weight:600;font-size:clamp(.875rem,.8rem + .35vw,1rem);border-radius:10px;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);border:none}.btn-primary{background:#8b2252;color:#fff}.btn-primary:hover{background:#a8466f;transform:translateY(-2px);box-shadow:0 4px 16px #0000001a}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:transparent;color:#8b2252;border:2px solid #8b2252}.btn-secondary:hover{background:#8b22521a;transform:translateY(-2px)}.btn-ghost{background:transparent;color:#1a1d23}.btn-ghost:hover{background:#0000000d}.input{width:100%;padding:.875rem 1rem;font-family:Outfit,Noto Sans TC,system-ui,-apple-system,sans-serif;font-size:clamp(1rem,.9rem + .5vw,1.125rem);background:#fff;border:2px solid #e5e7eb;border-radius:10px;transition:all .25s cubic-bezier(.4,0,.2,1)}.input::-moz-placeholder{color:#9ca3af}.input::placeholder{color:#9ca3af}.input:focus{border-color:#8b2252;box-shadow:0 0 0 4px #8b22521a}.input:hover:not(:focus){border-color:#9ca3af}.card{background:#fff;border-radius:16px;box-shadow:0 2px 8px #00000014;border:1px solid rgba(0,0,0,.06);transition:all .3s cubic-bezier(.4,0,.2,1)}.card:hover{box-shadow:0 4px 16px #0000001a;transform:translateY(-4px)}.card-elevated{box-shadow:0 4px 16px #0000001a}.card-elevated:hover{box-shadow:0 8px 32px #0000001f}.pop-course{background:linear-gradient(180deg,#fafbfc,#fdf5f7);color:#8b2252;padding:3rem 1rem;scroll-margin-top:120px}@media screen and (min-width:768px){.pop-course{padding:4rem 0}}.pop-course .container{max-width:1200px}.pop-course .title{font-family:"DM Serif Display","Noto Serif TC",Georgia,serif;font-size:clamp(1.875rem,1.5rem + 1.875vw,2.5rem);font-weight:700;letter-spacing:-.025em;text-align:center;margin-bottom:2rem}@media screen and (max-width:768px){.pop-course .title{font-size:clamp(1.5rem,1.25rem + 1.25vw,2rem)}}.pop-course .featured-course{display:flex;align-items:center;justify-content:space-between;background:linear-gradient(135deg,#8b2252,#6b1a3f);border-radius:16px;padding:1.5rem;margin-bottom:1.5rem;text-decoration:none;box-shadow:0 8px 32px #0000001f;transition:all .3s ease}.pop-course .featured-course:hover{transform:translateY(-4px);box-shadow:0 16px 48px #00000029}.pop-course .featured-course .featured-content{flex:1}.pop-course .featured-course .featured-content .course-header{display:flex;align-items:center;gap:1rem;margin-bottom:.5rem}.pop-course .featured-course .featured-content .course-header .course-code{font-family:JetBrains Mono,SF Mono,Fira Code,monospace;font-size:clamp(1.5rem,1.25rem + 1.25vw,2rem);font-weight:700;color:#fff;letter-spacing:.025em}@media screen and (min-width:768px){.pop-course .featured-course .featured-content .course-header .course-code{font-size:clamp(1.875rem,1.5rem + 1.875vw,2.5rem)}}.pop-course .featured-course .featured-content .course-header .comment-badge{background:#fff;border-radius:10px;padding:.5rem .75rem;display:flex;flex-direction:column;align-items:center}.pop-course .featured-course .featured-content .course-header .comment-badge .badge-label{font-size:10px;color:#6b7280;text-transform:uppercase}.pop-course .featured-course .featured-content .course-header .comment-badge .badge-count{font-family:JetBrains Mono,SF Mono,Fira Code,monospace;font-size:clamp(1.25rem,1.1rem + .75vw,1.5rem);font-weight:700;color:#8b2252;line-height:1}.pop-course .featured-course .featured-content .course-title{font-family:Outfit,Noto Sans TC,system-ui,-apple-system,sans-serif;font-size:clamp(1.125rem,1rem + .625vw,1.25rem);font-weight:500;color:#fff;opacity:.95}.pop-course .featured-course .featured-rank{font-family:"DM Serif Display","Noto Serif TC",Georgia,serif;font-size:4rem;font-weight:700;color:#d4a5ba;opacity:.5;line-height:1}@media screen and (min-width:768px){.pop-course .featured-course .featured-rank{font-size:5rem}}.pop-course .course-grid{display:grid;grid-template-columns:1fr;gap:1rem;margin-bottom:2rem}@media screen and (min-width:768px){.pop-course .course-grid{grid-template-columns:repeat(2,1fr)}}@media screen and (min-width:1024px){.pop-course .course-grid{grid-template-columns:repeat(4,1fr)}}.pop-course .course-grid .course-card{background:linear-gradient(135deg,#d4a5ba,#c789a5);border-radius:14px;cursor:pointer;overflow:hidden;transition:all .3s ease;border:2px solid transparent}.pop-course .course-grid .course-card:hover{transform:translateY(-4px);box-shadow:0 8px 32px #0000001f}.pop-course .course-grid .course-card.active{background:linear-gradient(135deg,#8b2252,#6b1a3f);border-color:#fff3;box-shadow:0 8px 32px #0000001f}.pop-course .course-grid .course-card.active .card-rank{color:#d4a5ba}.pop-course .course-grid .course-card .card-link{display:flex;align-items:center;justify-content:space-between;padding:1.25rem;text-decoration:none}.pop-course .course-grid .course-card .card-content{flex:1}.pop-course .course-grid .course-card .card-content .course-code{font-family:JetBrains Mono,SF Mono,Fira Code,monospace;font-size:clamp(1.125rem,1rem + .625vw,1.25rem);font-weight:700;color:#fff;letter-spacing:.025em;margin-bottom:.25rem}.pop-course .course-grid .course-card .card-content .course-title{font-family:Outfit,Noto Sans TC,system-ui,-apple-system,sans-serif;font-size:clamp(.875rem,.8rem + .35vw,1rem);font-weight:500;color:#fff;opacity:.9;margin-bottom:.5rem;line-height:1.3}.pop-course .course-grid .course-card .card-content .comment-count span{font-size:clamp(.75rem,.7rem + .25vw,.875rem);color:#ffffffb3;background:#ffffff26;padding:.25rem .5rem;border-radius:6px}.pop-course .course-grid .course-card .card-rank{font-family:"DM Serif Display","Noto Serif TC",Georgia,serif;font-size:clamp(2.25rem,1.75rem + 2.5vw,3rem);font-weight:700;color:#ffffff4d;line-height:1}.pop-course .comments-section{display:grid;grid-template-columns:1fr;gap:1.5rem;padding-top:1rem}@media screen and (min-width:768px){.pop-course .comments-section{grid-template-columns:repeat(3,1fr)}}.pop-course .comments-section .comment-card{background:#fff;border-radius:16px;box-shadow:0 4px 16px #0000001a;padding:3rem 1.5rem 1.5rem;position:relative;transition:all .3s ease}.pop-course .comments-section .comment-card:hover{transform:translateY(-4px);box-shadow:0 8px 32px #0000001f}.pop-course .comments-section .comment-card .avatar-wrapper{position:absolute;top:-24px;left:50%;transform:translate(-50%)}.pop-course .comments-section .comment-card .avatar{width:56px;height:56px;border-radius:50%;background:#fff;border:3px solid white;box-shadow:0 4px 16px #0000001a;overflow:hidden;display:flex;align-items:center;justify-content:center}.pop-course .comments-section .comment-card .avatar img{width:70%;height:70%;-o-object-fit:contain;object-fit:contain}.pop-course .comments-section .comment-card .username{font-family:Outfit,Noto Sans TC,system-ui,-apple-system,sans-serif;font-size:clamp(.875rem,.8rem + .35vw,1rem);font-weight:600;color:#1a1d23;text-align:center;margin-bottom:.75rem}.pop-course .comments-section .comment-card .comment-text{font-family:Outfit,Noto Sans TC,system-ui,-apple-system,sans-serif;font-size:clamp(.875rem,.8rem + .35vw,1rem);line-height:1.625;color:#6b7280;max-height:120px;overflow:auto}.pop-course .comments-section .comment-card .comment-text::-webkit-scrollbar{width:4px}.pop-course .comments-section .comment-card .comment-text::-webkit-scrollbar-track{background:#f5f6f8;border-radius:2px}.pop-course .comments-section .comment-card .comment-text::-webkit-scrollbar-thumb{background:#9ca3af;border-radius:2px}.pop-course .comments-section .comment-card .comment-text::-webkit-scrollbar-thumb:hover{background:#6b7280}.pop-course .no-courses{text-align:center;padding:3rem 1rem;color:#6b7280;font-size:clamp(1.125rem,1rem + .625vw,1.25rem);font-family:Outfit,Noto Sans TC,system-ui,-apple-system,sans-serif}
