@font-face {
    font-family: 'Outfit-Bold';
    font-weight: 700;
    font-style: normal;
    font-display: swap;
    src: url(../fonts/Outfit-Bold.woff2) format("woff2"), url(../fonts/Outfit-Bold.woff) format("woff");
}
@font-face {
    font-family: 'Outfit-Medium';
    font-weight: 500;
    font-style: normal;
    font-display: swap;
    src: url(../fonts/Outfit-Medium.woff2) format("woff2"), url(../fonts/Outfit-Medium.woff) format("woff");
}
@font-face {
    font-family: 'Google Sans';
    font-weight: 400;
    font-style: normal;
    font-display: swap;
    src: url(../fonts/GoogleSans-Regular.woff2) format("woff2"), url(../fonts/GoogleSans-Regular.woff) format("woff");
}
  
* {
    box-sizing: border-box;
}
  
body {
    font-family: "Google Sans", system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, "Open Sans", "Helvetica Neue", sans-serif, serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 24px;

    position: relative;
    color: #0E2340;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    background-color: #fff;
}
  
input:focus,button:focus {
    outline: none;
}
  
body,h1,h2,h3,h4,h5,h6,p,ul,ol {
    margin: 0;
    padding: 0;
}
  
table {
    border-collapse: collapse;
}
  
li {
    list-style: none;
}
  
article,aside,figure,footer,header,main,nav,section {
    display: block;
}
  
a {
    display: inline-block;
  
    cursor: pointer;
    text-decoration: none;
    color: #0E2340;
}
  
a,a:hover,a:visited {
    outline: none;
}
  
html {
    -ms-text-size-adjust: 100%;
    -webkit-text-size-adjust: 100%;
    background-color: #fff;
}
  
img {
    width: 100%;
    max-width: 100%;
  
    transition: opacity ease 0.25s;
    vertical-align: middle;
  
    opacity: 1;
}
  
img[data-src] {
    opacity: 0;
}
  
input {
    border: none;
    background: 0 0;
}
  
::-webkit-input-placeholder {
    color: #9da8ba;
    font-size: 15px;
}
  
::-moz-placeholder {
    color: #9da8ba;
    font-size: 15px;
}
  
:-ms-input-placeholder {
    color: #9da8ba;
    font-size: 15px;
}
  
input[type="checkbox"] {
    display: none;
}
  
.coverlink {
    position: absolute;
    z-index: 3;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}
  
.wrapper {
    padding: 0 16px;
}
/* header */
.header {
    position: relative;
    height: 56px;
    box-shadow: 0 2px 16px 2px rgba(14, 35, 64, 0.04);
}
.logo {
    display: block;
    width: 130px;
    height: 56px;
    background-image: url(../images/logo.svg);
    background-repeat: no-repeat;
    background-size: 130px 28px;
    background-position: center;
}
.opacitybg {
    display: none;
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    top: 0;
    z-index: 1002;
    background-image: linear-gradient(rgba(0, 0, 0, 0) 10%, rgba(0, 0, 0, .6));
    transition: all ease .25s;
}
.topmenu-box {
    position: absolute;
    z-index: 1004;
    top: 19px;
    right: 16px;
    width: 20px;
    height: 16px;
}
.menu-icon {
    position: relative;
    z-index: 1000;
    display: block;
    width: 14px;
    height: 2px;
    border-radius: 2px;
    background-color: #147AEE;
}
.menu-icon::before {
    position: absolute;
    top: 7px;
    left: 0;
    content: '';
    transition: all ease .25s;
    width: 20px;
    height: 2px;
    border-radius: 2px;
    background-color: #147AEE;
}
.menu-icon::after {
    position: absolute;
    top: 14px;
    left: 0;
    content: '';
    transition: all ease .25s;
    width: 10px;
    height: 2px;
    border-radius: 2px;
    background-color: #147AEE;
}
#topmenu:checked ~ .opacitybg {
    display: block;
}
#topmenu:checked ~ .topmenu-box .menu-icon {
    background: 0 0;
}
#topmenu:checked ~ .topmenu-box .menu-icon::before {
    transform: rotate(45deg);
}
#topmenu:checked ~ .topmenu-box .menu-icon::after {
    width: 20px;
    transform: rotate(-45deg);
    transform-origin: 1px -2px;
}
#topmenu:checked ~ .navfix-ls {
    height: auto;
    padding-top: 16px;
    padding-bottom: 42px;
    flex-direction: column;
    align-items: flex-start;
}
.navfix-ls {
    position: absolute;
    z-index: 1003;
    right: 0;
    left: 0;
    background-color: #fff;
    box-shadow: 0px 12px 12px 0px rgba(0, 0, 0, 0.06);
    border-radius: 0 0 12px 12px;
    height: 0;
    overflow: hidden;
    transition: all ease 0.25s;
}
.navfix-item {
    font-family: 'Outfit-Medium';
    display: flex;
    align-items: center;
    height: 44px;
    padding: 0 16px;
    transition: all 0.3s ease;
    cursor: pointer;
}

.navfix-ls .navfix-item:last-child:hover {
    color: #147AEE;
}

.dropdown-container {
    flex-direction: column;
    align-items: flex-start;
    height: auto;
    padding: 16px 16px 6px 16px;
}

.dropdown-trigger {
    margin-bottom: 12px;
}

.navfix-dropdown {
    position: static;
}

.navfix-dropdown a {
    display: block;
    width: 100%;
    padding: 8px 0 8px 20px;
    color: #6F7685;
    font-size: 14px;
    line-height: 18px;
}
.navfix-dropdown a:hover {
    color: #147AEE;
}

/* footer */
.footer {
    background-color: #f5f7fa;
    padding: 32px 0;
    margin-top: 60px;
    text-align: center;
}
.footer-logo {
    display: block;
    width: 157px;
    height: 34px;
    margin: 0 auto 20px;
}
.footer-nav {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 16px;
}
.nav-link {
    font-family: 'Outfit-Medium';
    font-size: 14px;
    line-height: 18px;
    transition: color 0.3s ease;
}

.nav-link:hover {
    color: #147AEE;
}
.footer-line {
    height: 1px;
    background-color: rgba(14, 35, 64, 0.06);
    margin: 20px auto;
}
.footer-copyright {
    font-size: 12px;
    color: rgba(111, 118, 133, 0.80);
    line-height: 16px;
}
/* archive */
.archive-page {
    min-height: calc(100vh - 300px);
    padding-top: 24px;
}

/* 404 page */
.hacks-tl.archive-hacks-tl {
    font-size: 28px;
}
.not-find {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-top: 40px;
}
.icon-not {
    width: 300px;
    stroke: #2d6bb2d4;
}
.not-info {
    display: flex;
    flex-direction: column;
    align-items: center;
  
    margin-top: 32px;
}
.not-info h1 {
    font-family: 'Outfit-Bold';
    font-size: 30px;
    line-height: 40px;
    margin-bottom: 6px;
}
.not-info p {
    color: #666;
    margin-bottom: 24px;
}
.not-info a {
    background-color: #147AEE;
    color: #fff;
    padding: 10px 24px;
    width: 180px;
    text-align: center;
  
    border-radius: 32px;
    font-weight: 700;
    transition: all 0.3s ease;
    cursor: pointer;
}

.not-info a:hover {
    background-color: #0E5BB8;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(20, 122, 238, 0.3);
}
.not-info a:hover {
    text-decoration: underline;
}



/* index */
.hacks-bg {
    background: linear-gradient(0deg, rgba(249, 249, 249, 0.00) 0%, #F6FBFF 100%);
}
.hacks-box {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 20px;
    padding-top: 24px;
    margin-bottom: 24px;
}
.icon-hacks {
    width: 32px;
    height: 32px;
}
.hacks-tl {
    font-family: 'Outfit-Bold';
    font-size: 32px;
    line-height: 1;
    text-align: center;
}
.hacks-desc {
    font-size: 16px;
    line-height: 22px;
    letter-spacing: 0.1px;
    color: #6F7685;
    text-align: center;
}

.cate-ls {
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    gap: 16px;
}
.cate-item {
    position: relative;
    height: 168px;
    border-radius: 24px;
    background: #F6F8FB;
    padding: 32px;
    transition: all 0.3s ease;
    cursor: pointer;
    overflow: hidden;
}

.cate-item:hover {
    background: #F0F4F8;
}
.cate-img {
    position: absolute;
    width: 130px;
    height: 130px;
    object-fit: cover;
   
    right: -8px;
    bottom: 0;
    transition: transform 0.3s ease;
}

.cate-item:hover .cate-img {
    transform: scale(1.08);
}
.cate-info {
    width: 180px;
}
.cate-tl {
    font-family: 'Outfit-Bold';
    font-size: 20px;
    line-height: 1;
}
.cate-desc {
    font-size: 16px;
    line-height: 22px;
    letter-spacing: 0.1px;
    margin-top: 12px;
}
.index-ads {
    margin: 24px 0;
}
.common-tl {
    font-family: 'Outfit-Bold';
    font-size: 24px;
    line-height: 1;
    text-align: center;
    margin-bottom: 24px;
}

.lastest-box {
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.lastest-ls {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.lastest-item {
    position: relative;
    display: flex;
    align-items: center;
    gap: 16px;
    transition: all 0.3s ease;
    cursor: pointer;
    padding: 8px;
    border-radius: 8px;
}

.lastest-item:hover {
    background: rgba(20, 122, 238, 0.05);
    transform: translateX(4px);
}
.lastest-pic {
    position: relative;
    width: 100px;
    height: 100px;
    border-radius: 12px;
    /* background: lightgray 0px -32.452px / 100% 149.978% no-repeat; */
    overflow: hidden;
}
.public-piccon {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.lastest-item:hover .public-piccon,
.just-item:hover .public-piccon,
.guide-item:hover .public-piccon,
.lastest-feature:hover .public-piccon {
    transform: scale(1.08);
}

.lastest-info {
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex: 1;
}
.lastest-tag {
    color: #147AEE;
    font-family: 'Outfit-Medium';
    font-size: 12px;
    line-height: 1;
    letter-spacing: 1.44px;
}
.lastest-tl {
    font-family: 'Outfit-Medium';
    font-weight: 500;
    font-size: 16px;
    line-height: 20px;
    
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    text-overflow: ellipsis;
    overflow: hidden;
}
.lastest-feature {
    position: relative;
    display: flex;
    gap: 16px;
    align-items: center;
    transition: all 0.3s ease;
}
.feature-pic {
    position: relative;
    flex: 0 0 100px;
    width: 100px;
    height: 100px;
    border-radius: 12px;
    overflow: hidden;
}
.feature-info {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.feature-tag {
    color: #147AEE;
    font-family: 'Outfit-Medium';
    font-size: 12px;
    line-height: 1;
    letter-spacing: 1.44px;
}
.feature-tl {
    font-family: 'Outfit-Medium';
    font-weight: 500;
    font-size: 16px;
    line-height: 20px;

    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    text-overflow: ellipsis;
    overflow: hidden;
}

.guide-bg {
    position: relative;
    background: linear-gradient(0deg, #FFF 0%, #FBF8F4 100%);
    overflow: hidden;
}
.guide-bg-icon {
    width: 100%;
    position: absolute;
    top: 30px;
    left: 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    display: none;
}
.guide-left {
    width: 858px;
    height: 378px;
}
.guide-right {
    width: 828px;
    height: 302px;
}

.guide-top {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 16px;
    padding-top: 24px;
}
.guide-ls {
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    gap: 16px;
}
.guide-item {
    display: flex;
    position: relative;
    border-radius: 24px;
    border-radius: 12px;
    border: 1px solid #EEE;
    transition: all 0.3s ease;
    cursor: pointer;
}
.guide-item:hover {
    box-shadow: 0 6px 20px rgba(14, 35, 64, 0.12);
}
.guide-pic {
    position: relative;
    width: 150px;
    height: auto;
    border-radius: 12px 0 0 12px;
    overflow: hidden;
}

.guide-item:hover .guide-pic {
    overflow: hidden;
}
.guide-info {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 16px;
}
.guide-tag {
    font-family: 'Outfit-Medium';
    font-size: 12px;
    line-height: 1;
    letter-spacing: 1.44px;
    color: #147AEE;
}
.guide-tl {
    font-family: 'Outfit-Medium';
    font-weight: 500;
    font-size: 18px;
    line-height: 22px;
}
.guide-desc {
    font-size: 14px;
    line-height: 20px;
    color: #6F7685;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    text-overflow: ellipsis;
    overflow: hidden;
}
.guide-btn {
    border: 2px solid #0E2340;
    display: flex;
    width: 100%;
    padding: 10px 24px;
    justify-content: center;
    align-items: center;
    margin: 24px auto 0;
    gap: 12px;
    border-radius: 32px;
    transition: all 0.3s ease;
}
.guide-btn span {
    font-family: 'Outfit-Medium';
    font-size: 18px;
    line-height: 26px;
}
.icon-arrow {
    width: 24px;
    height: 24px;
    fill: #0E2340;
    transition: all 0.3s ease;
}
.guide-btn:hover {
    border-color: #147AEE;
    background-color: #147AEE;
    color: #fff;
}
.guide-btn:hover .icon-arrow {
    fill: #fff;
}

.just-ls {
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    gap: 16px;
}
.just-item {
    padding-bottom: 16px;
    border-bottom: 1px dashed #EEE;
}
.just-con {
    position: relative;
    display: flex;
    align-items: center;
    gap: 16px;
}
.just-pic {
    position: relative;
    flex: 0 0 100px;
    width: 100px;
    height: 100px;
    border-radius: 12px;
    overflow: hidden;
}
.just-info {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.just-tag {
    font-family: 'Outfit-Medium';
    font-size: 12px;
    line-height: 1;
    letter-spacing: 1.44px;
    color: #147AEE;
}
.just-tl {
    font-family: 'Outfit-Medium';
    font-weight: 500;
    font-size: 16px;
    line-height: 20px;

    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    text-overflow: ellipsis;
    overflow: hidden;
}
.just-author {
    font-size: 14px;
    line-height: 20px;
    color: #6F7685;
    letter-spacing: 0.1px;
}

/* category */
.category-page {
    display: flex;
    flex-direction: column;
    gap: 24px;
}
.breadcrumb {
    display: none;
}
.page-tl {
    font-family: 'Outfit-Bold';
    font-size: 26px;
    line-height: 30px;
    margin-top: 24px;
}
.content-tl {
    font-family: 'Outfit-Bold';
    font-size: 26px;
    line-height: 26px;
}
.category-page .feature-info {
    width: 100%;
    align-items: flex-start;
}
.category-page .feature-tl {
    text-align: left;
}
.category-page .just-ls,
.topic-page .just-ls {
    grid-template-columns: repeat(1, 1fr);
    gap: 16px;
}
.category-page .just-item,
.topic-page .just-item {
    padding-bottom: 16px;
}
.great-cate-ls {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
}
.great-cate-item {
    position: relative;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
    background-color: #F9FAFB;
    padding: 12px;
    border-radius: 12px;
}
.great-cate-info {
    display: flex;
    align-items: center;
    gap: 16px;
}
.great-cate-img {
    width: 40px;
    height: 40px;
    transition: all 0.3s ease;
}
.great-cate-tl {
    font-family: 'Outfit-Medium';
    font-weight: 500;
    font-size: 16px;
    line-height: 20px;
}
.icon-great-next {
    width: 20px;
    height: 20px;
    fill: #147AEE;
    display: none;
    transition: all 0.3s ease;
}
.great-cate-item:hover {
    background-color: #F0F4F8;
}
.great-cate-item:hover .great-cate-img {
    transform: scale(1.08);
}
.great-cate-item:hover .icon-great-next {
    transform: translateX(4px);
}

.pageright {
    display: none;
}
.cate-right-ls {
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    gap: 16px;
    margin-top: 24px;
    margin-bottom: 24px;
}
.cate-right-item {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 24px 24px 24px 32px;
    border-radius: 20px;
    background: #F9FAFB;
    transition: all 0.3s ease;
}
.cate-right-info {
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.cate-right-tl {
    color: #0E2340;
    font-family: 'Outfit-Bold';
    font-size: 20px;
    line-height: 24px;
}
.cate-right-btn {
    display: flex;
    width: 79px;
    padding: 7px 16px;
    justify-content: center;
    align-items: center;
    gap: 4px;
    border-radius: 32px;
    border: 1px solid #ddd;
    
    font-family: "Google Sans";
    font-weight: 700;
    font-size: 14px;
    line-height: 18px;
    transition: all 0.3s ease;
}
.cate-right-pic {
    position: relative;
    width: 104px;
    height: 104px;
    overflow: hidden;
    transition: all 0.3s ease;
}
.cate-right-item:hover {
    background-color: #F0F4F8;
}
.cate-right-item:hover .cate-right-btn {
    border-color: #147AEE;
    background-color: #147AEE;
    color: #fff;
}
.cate-right-item:hover .cate-right-pic {
    transform: scale(1.08);
}
/* topic */
.topic-page {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.topic-list {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
    overflow: hidden;
}
  
.topic-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    border-bottom: 1px solid #eee;
    cursor: pointer;
}
  
.topic-title {
    font-family: 'Outfit-Bold';
    font-size: 18px;
    line-height: 1;
}
.topic-icon {
    width: 18px;
    height: 18px;
}
.topic-toggle {
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    transition: transform 0.3s ease;
}
.topic-toggle.active {
    transform: rotate(180deg);
}
.topic-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease-out;
}
.topic-content.active {
    max-height: 1000px;
}
.topic-item {
    position: relative;
    border-bottom: 1px solid #eee;
    padding: 14px 20px 14px 36px;
    cursor: pointer;
    transition: all 0.3s ease;
}
.topic-item::before {
    content: '';
    position: absolute;
    left: 20px;
    top: 22px;
    width: 6px;
    height: 6px;
    background-color: #333;
    border-radius: 50%;
}
  
.topic-item:hover {
    padding-left: 45px;
}

.topic-article {
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.topic-article h2 {
    font-family: 'Outfit-Bold';
    font-size: 22px;
    line-height: 24px;
}
.topic-article h3 {
    font-family: 'Outfit-Bold';
    font-size: 18px;
    line-height: 24px;
}
.topic-article img {
    width: 100%;
    height: auto;
    max-height: 300px;
    object-fit: cover;
    border-radius: 12px;
}
.topic-article p {
    font-size: 16px;
    line-height: 28px;
    letter-spacing: 0.1px;
}
.topic-article ul {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding-left: 16px;
}
.topic-article li {
    font-size: 16px;
    line-height: 28px;
    list-style: disc;
    padding-left: 6px;
    color: #333;
}

.topic-recommend {
    font-weight: 700;
}
.recommend-tag {
    font-family: 'BluuNext', sans-serif, serif;
    font-size: 16px;
    font-weight: 700;
    background-color: #f0fa81;
    border-radius: 16px;
    color: #eb5369;
    
    padding: 6px 12px;
    display: none;
}
.recommend-link {
    display: block;
    stroke: #5246f5;
}
.recommend-special {
    display: inline-flex;
    align-items: center;
    color: #5246f5;
}
.icon-recommend-arrow {
    width: 16px;
    height: 16px;
}

.hot-topic {
    background-color: #F9FAFB;
    padding: 24px;
    border-radius: 12px;
}
.topic-article .hot-tag {
    margin: 0 0 10px 0;
}
.topic-article .hot-tl {
    font-family: 'Outfit-Bold';
    font-size: 20px;
    padding-left: 0;
    border-left: none;
    margin: 0 0 20px 0;
}
.hot-ls {
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.hot-link {
    position: relative;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-family: 'Outfit-Medium';
    font-weight: 500;
    font-size: 18px;
    transition: all 0.3s ease;
    padding-left: 20px;
    cursor: pointer;
}

.hot-link:hover {
    color: #147AEE;
    transform: translateX(4px);
}
.hot-link::before {
    content: '';
    position: absolute;
    left: 0;
    top: 10px;
    width: 8px;
    height: 8px;
    background-color: #333;
    border-radius: 50%;
}
.hot-link span {
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
}
.icon-hot-aright {
    flex: 0 0 24px;
    width: 24px;
    height: 24px;
    fill: #333;
    margin-left: 12px;
}
.hot-link:hover {
    color: #147AEE;
}
.hot-link:hover::before {
    background-color: #147AEE;
}
.hot-link:hover .icon-hot-aright {
    fill: #147AEE;
}



/* guide */
.banner {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 260px;
    background: linear-gradient(0deg, rgba(14, 35, 64, 0.40) 0%, rgba(14, 35, 64, 0.30) 50%, rgba(14, 35, 64, 0.20) 100%), url(../images/guide-index.png) lightgray 0px -15px / 100% 136.471% no-repeat;
    border-radius: 16px;
    margin-top: 24px;
}
.banner-info {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
    padding: 0 24px;
}
.icon-guide {
    width: 30px;
    height: 30px;
}
.banner-tl {
    color: #FFF;
    font-family: 'Outfit-Bold';
    font-size: 30px;
    line-height: 1;
}
.banner-desc {
    color: #FFF;
    opacity: 0.75;
    font-family: "Google Sans";
    font-size: 16px;
    line-height: 20px;
    letter-spacing: 0.1px;
    text-align: center;
}

.guide-page {
    display: flex;
    flex-direction: column;
    gap: 24px;
}
.guide-index-tl {
    font-family: 'Outfit-Bold';
    font-size: 48px;
    line-height: 1;
    text-align: center;
    margin-bottom: 56px;
}

.location-ls {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
}
.location-item {
    position: relative;
    height: 160px;
    border-radius: 24px;
    overflow: hidden;
}

.location-item::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 60%;
    background: linear-gradient(0deg, rgba(0, 0, 0, 0.6) 0%, rgba(0, 0, 0, 0.3) 50%, rgba(0, 0, 0, 0) 100%);
    z-index: 1;
}
.location-img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: all 0.3s ease;
}
.location-tl {
    position: absolute;
    bottom: 16px;
    left: 16px;

    color: #FFF;
    font-family: 'Outfit-Bold';
    font-size: 20px;
    line-height: 1;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
    z-index: 2;
}
.location-item:hover .location-img {
    transform: scale(1.08);
}

.state-box {
    display: flex;
    flex-direction: column;
    gap: 48px;
}
.state-block {
    display: flex;
    flex-direction: column;
    gap: 24px;
}
.state-bl-tl {
    font-family: 'Outfit-Bold';
    font-size: 26px;
    line-height: 1;
    text-align: center;
}
.state-ls {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
}
.state-item {
    position: relative;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 18px 16px;
    border-radius: 8px;
    background: #F9FAFB;
    gap: 12px;
    transition: all 0.3s ease;
}
.state-item:hover .state-tl {
    color: #147AEE;
}
.state-item:hover .icon-next {
    transform: translateX(4px);
}
.state-ads {
    grid-column: 1 / -1;
    margin: 12px 0;
}
.state-tl {
    color: #0E2340;
    font-family: 'Outfit-Medium';
    font-size: 16px;
    line-height: 20px;
    transition: all 0.3s ease;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    text-overflow: ellipsis;
    overflow: hidden;

}
.state-info {
    display: flex;
    align-items: center;
    gap: 14px;
}
.state-num {
    color: #6F7685;
    font-size: 16px;
    line-height: 20px;
    display: none;
}
.icon-next {    
    width: 8px;
    height: 12px;
    transition: all 0.3s ease;
}
  
/* area */
.area-page {
    display: flex;
    flex-direction: column;
    gap: 24px;
}
.area-desc {
    padding: 16px;
    border-radius: 12px;
    border: 1px solid #EEE;
    font-size: 14px;
    line-height: 24px;
    letter-spacing: 0.1px;
}

.area-ls {
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    gap: 16px;
}
.area-item {
    position: relative;

    display: flex;
    flex-direction: column;
    align-items: flex-start;

    border-radius: 16px;
    border: 1px solid #EEE;
    box-shadow: 0 2px 16px 2px rgba(0, 0, 0, 0.08);
    overflow: hidden;
}
.area-ads {
    margin: 8px 0;
}
.area-pic {
    position: relative;
    width: 100%;
    height: 160px;
    overflow: hidden;
    transition: all 0.3s ease;
}
.area-item:hover .public-piccon {
    transform: scale(1.08);
}
.area-item:hover .area-tl {
    color: #147AEE;
}
.area-tag {
    position: absolute;
    max-width: 296px;
    left: 16px;
    top: 16px;

    display: flex;
    padding: 6px 10px;
    justify-content: center;
    align-items: center;
    gap: 4px;
    background-color: #fff;
    border-radius: 32px;
    z-index: 1;
}
.icon-tag {
    flex: 0 0 7px;
    width: 7px;
    height: 12px;
    fill: #198F9B;
}
.tag-tl {
    color: #0E2340;
    font-family: 'Outfit-Bold';
    font-size: 12px;
    line-height: 14px;
    text-transform: capitalize;
}
.area-info {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 13px;
    padding: 16px;
}
.area-tl {
    font-family: 'Outfit-Bold';
    font-size: 20px;
    line-height: 26px;

    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    text-overflow: ellipsis;
    overflow: hidden;
    transition: all 0.3s ease;
}
.area-mark {
    display: flex;
    align-items: center;
    gap: 6px;
}
.icon-mark {
    width: 16px;
    height: 16px;
}
.area-text {
    font-family: 'Outfit-Medium';
    font-size: 14px;
    line-height: 18px;
    letter-spacing: 0.1px;

    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    text-overflow: ellipsis;
    overflow: hidden;
}
.area-bot {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
}
.area-bot-left {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 12px;
    border-radius: 8px;
    background: linear-gradient(90deg, #FAFAFA 0%, #FFF 100%);
}
.area-bot-item {
    display: flex;
    align-items: center;
    gap: 10px;
}
.icon-address, .icon-time {
    width: 12px;
    height: 14px;
}
.time-text {
    color: #6F7685;
    font-size: 14px;
    line-height: 1;
    letter-spacing: 0.1px;

    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    text-overflow: ellipsis;
    overflow: hidden;
}
.area-btn {
    display: flex;
    align-items: center;
    padding: 10px 16px;
    gap: 6px;
    border-radius: 8px;
    background: #273C59;
    display: none;
    transition: all 0.3s ease;
    cursor: pointer;
}

.area-btn:hover {
    background: #1A2B42;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(39, 60, 89, 0.3);
}
.area-btn span {
    color: #FFF;
    font-family: 'Outfit-Medium';
    font-size: 14px;
    line-height: 20px;
}
.icon-btn-next {
    width: 16px;
    height: 16px;
    fill: #fff;
}

.popular-ls {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 22px;
}
.popular-item {
    position: relative;
    height: 200px;
    border-radius: 16px;
    background: linear-gradient(0deg, rgba(14, 35, 64, 0.75) 0%, rgba(14, 35, 64, 0.00) 50%);
    overflow: hidden;
    transition: all 0.3s ease;
    cursor: pointer;
}

.popular-item:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 25px rgba(14, 35, 64, 0.25);
}

.popular-item:hover .icon-popular-arrow {
    opacity: 1;
    transform: translateX(4px);
}
.popular-info {
    position: absolute;
    left: 20px;
    right: 20px;
    bottom: 20px;
    z-index: 1;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
}
.popular-tl {
    color: #FFF;
    font-family: 'Outfit-Bold';
    font-size: 24px;
    line-height: 28px;
}
.icon-popular-arrow {
    width: 36px;
    height: 36px;
    fill: #fff;
    opacity: 0.5;
    transition: all 0.3s ease;
}

.pageright .state-ls {
    margin-top: 32px;
    grid-template-columns: repeat(1, 1fr);
    gap: 8px;
}

/* attractions */
.attr-page {
    display: flex;
    flex-direction: column;
    gap: 24px;
}
.attr-box {
    display: flex;
    flex-direction: column;
    gap: 24px;
}
.attr-info {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 20px 12px 12px;
    border-radius: 32px;
    border: 1px solid #EEE;
    width: fit-content;
}
.icon-attr {
    width: 20px;
    height: 20px;
}
.attr-desc {
    color: #198F9B;
    font-family: 'Outfit-Medium';
    font-size: 14px;
    line-height: 18px;
    letter-spacing: 0.1px;
}
.attr-img {
    width: 100%;
    max-height: 300px;
    object-fit: cover;
}
.attr-detail-box {
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    gap: 20px;

    padding: 24px;
    border-radius: 12px;
    border: 1px solid #EEE;
}
.attr-detail {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding-bottom: 20px;
    border-bottom: 1px dashed #EEE;
}
.attr-detail-tl {
    font-family: 'Outfit-Bold';
    font-size: 20px;
    line-height: 24px;
}
.attr-detail-ls {
    display: flex;
    flex-direction: column;
    gap: 10px;
    height: 100%;
}
.attr-detail:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.attr-detail-item {
    display: flex;
    align-items: center;
    gap: 10px;
}
.icon-attr-detail {
    flex: 0 0 16px;
    width: 16px;
    height: 16px;
}
.icon-attr-share {
    width: 10px;
    height: 10px;
}
.attr-detail-item span {
    font-size: 14px;
    line-height: 20px;
}

.attr-detail p {
    color: #333;
    font-family: "Google Sans";
    font-size: 14px;
    line-height: 24px;
    letter-spacing: 0.1px;
}

.attr-topic {
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.attr-topic h2 {
    font-family: 'Outfit-Bold';
    font-size: 22px;
    line-height: 24px;
}
.attr-topic h3 {
    font-family: 'Outfit-Bold';
    font-size: 18px;
    line-height: 24px;
}
.attr-topic p {
    color: #333;
    font-family: "Google Sans";
    font-size: 16px;
    line-height: 28px;
    letter-spacing: 0.1px;
}
.attr-topic ul {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding-left: 16px;
}
.attr-topic li {
    font-size: 16px;
    line-height: 28px;
    list-style: disc;
    padding-left: 6px;
    color: #333;
}

.attr-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 12px 24px;
    border-radius: 12px;
    background: #0E2340;
    transition: all 0.3s ease;
    cursor: pointer;
}

.attr-btn:hover {
    background: #1A2B42;
    box-shadow: 0 6px 20px rgba(14, 35, 64, 0.3);
}
.attr-btn:hover .icon-next-attr {
    transform: translateX(4px);
}
.attr-btn span {
    color: #FFF;
    font-family: 'Outfit-Bold';
    font-size: 18px;
    line-height: 20px;
}
.icon-next-attr {
    width: 24px;
    height: 24px;
    fill: #fff;
    transition: all 0.3s ease;
}

.attr-ls {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
}
.attr-item {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.attr-pic {
    position: relative;
    width: 100%;
    height: 164px;
    border-radius: 12px;
    overflow: hidden;
    transition: all 0.3s ease;
}

.attr-item:hover .attr-pic {
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15);
}
.attr-item:hover .public-piccon {
    transform: scale(1.05);
}
.attr-item:hover .attr-tl {
    color: #147AEE;
}
.attr-tl {
    font-family: 'Outfit-Medium';
    font-weight: 500;
    font-size: 16px;
    line-height: 20px;
    transition: all 0.3s ease;

    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    text-overflow: ellipsis;
    overflow: hidden;
}


@media screen and (min-width:768px) {
    .wrapper {
        max-width: 728px;
        margin: 0 auto;
        padding-left: 0;
        padding-right: 0;
    }
    /* header */
    .header {
        height: 64px;
    }
    .header .wrapper {
        display: flex;
        justify-content: space-between;
        align-items: center;
    }
    .logo {
        width: 148px;
        height: 64px;
        background-size: 148px 32px;
    }
    .topmenu-box {
        display: none;
    }
    .navfix-ls {
        position: static;
        height: 44px;
        box-shadow: none;
        display: flex;
        gap: 48px;
        overflow: visible;
    }
    .navfix-item {
        font-size: 16px;
        line-height: 20px;
        padding: 0;
    }
    .dropdown-container {
        position: relative;
        justify-content: center;
        align-items: center;
        cursor: pointer;
    }
    .dropdown-trigger {
        margin-bottom: 0;
    }

    .navfix-dropdown {
        position: absolute;
        top: 100%;
        left: 50%;
        transform: translateX(-50%);
        background: #fff;
        border-radius: 8px;
        box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
        min-width: 180px;
        opacity: 0;
        visibility: hidden;
        transition: all 0.3s ease;
        z-index: 1000;
        padding: 8px 0;
        margin-top: 8px;
        pointer-events: none;
    }
    .navfix-dropdown::before {
        content: '';
        position: absolute;
        top: -8px;
        left: 0;
        right: 0;
        height: 8px;
        background: transparent;
    }
    
    .dropdown-container:hover .navfix-dropdown,
    .navfix-dropdown:hover {
        opacity: 1;
        visibility: visible;
        transform: translateX(-50%) translateY(0);
        pointer-events: auto;
    }
    .navfix-dropdown a {
        display: block;
        padding: 12px 16px;
        color: #0E2340;
        text-decoration: none;
        transition: background-color 0.2s ease;
    }
    .navfix-dropdown a:hover {
        background-color: #f5f7fa;
        color: #0066cc;
    }

    
    /* footer */
    .footer {
        padding: 48px 0;
        margin-top: 120px;
    }
    .footer-logo {
        width: 259px;
        height: 56px;
        margin-bottom: 24px;
    }
    .footer-nav {
        gap: 56px;
    }
    .nav-link {
        font-size: 16px;
        line-height: 36px;
    }
    .footer-line {
        margin: 32px auto;
    }
    .footer-copyright {
        font-size: 14px;
        line-height: 20px;
    }

    /* 404 page */
    .hacks-tl.archive-hacks-tl {
        font-size: 44px;
    }
    .not-find {
        margin-top: 72px;
        margin-bottom: 72px;
    }
    .icon-not {
        width: 514px;
        height: 162px;
    }
    .not-find h1 {
        font-size: 36px;
        line-height: 44px;
        margin-bottom: 12px;
    }
    .not-find p {
        font-size: 18px;
    }

    /* index */
    .cate-ls {
        grid-template-columns: repeat(2, 1fr);
    }

    .lastest-box {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
    }
    .lastest-feature {
        display: none;
    }

    /* category */
    .breadcrumb {
        display: flex;
        align-items: center;
        gap: 14px;
        margin-top: 40px;
    }
    .breadcrumb a {    
        font-size: 14px;
        line-height: 20px;
        color: #6F7685;
    }
    .icon-breadcrumb {
        width: 6px;
        height: 10px;
        fill: #0E2340;
    }
    .breadcrumb a:hover {
        text-decoration: underline;
        color: #147AEE;
    }
    .category-page,
    .guide-page,
    .area-page,
    .attr-page,
    .topic-page {
        gap: 32px;
    }
    .page-tl {
        font-size: 32px;
        line-height: 36px;
        margin-top: 0;
    }
    
    .great-cate-ls {
        gap: 24px;
    }
    .great-cate-tl {
        font-size: 20px;
        line-height: 24px;
    }
    .great-cate-img {
        width: 48px;
        height: 48px;
    }
    .icon-great-next {
        display: block;
    }
    
    .category-page .just-ls,
    .topic-page .just-ls {
        gap: 24px;
    }
    .category-page .just-item,
    .topic-page .just-item {
        padding-bottom: 24px;
    }

    /* topic */
    .topic-title {
        font-size: 20px;
    }
    .topic-article {
        gap: 24px;
    }
    .topic-article h2 {
        font-size: 24px;
        line-height: 26px;
    }
    .topic-article h3 {
        font-size: 20px;
        line-height: 24px;
    }
    .topic-recommend {
        display: flex;
        align-items: center;
        gap: 10px;
    }
    .recommend-link {
        margin-top: 0;
        font-size: 18px;
    }
    .recommend-link:hover .recommend-special {
        text-decoration: underline;
    }
    .recommend-tag {
        display: block;
    }
    .hot-topic {
        padding: 32px;
    }
    .topic-article .hot-tl {
        font-size: 24px;
    }

    /* guide */
    .banner {
        margin-top: 0;
        background: linear-gradient(0deg, rgba(14, 35, 64, 0.45) 0%, rgba(14, 35, 64, 0.35) 40%, rgba(14, 35, 64, 0.25) 100%), url(../images/guide-index.png) lightgray 0px -82px / 100% 206.471% no-repeat;
    }
    .banner-info {
        gap: 24px;
    }
    .icon-guide {
        width: 37px;
        height: 36px;
    }
    .banner-tl {
        font-size: 48px;
    }
    .banner-desc {
        font-size: 18px;
        line-height: 26px;
    }
    .location-ls {
        grid-template-columns: repeat(4, 1fr);
    }
    .location-item {
        height: 170px;
        background: linear-gradient(0deg, rgba(14, 35, 64, 0.75) 0%, rgba(14, 35, 64, 0.45) 25%, rgba(14, 35, 64, 0.00) 55%);
    }
    .location-tl {
        bottom: 24px;
        left: 24px;
    
        font-size: 28px;
        text-shadow: 0 3px 6px rgba(0, 0, 0, 0.4);
    }
    .state-ls {
        grid-template-columns: repeat(3, 1fr);
    }
    .state-ads {
        margin: 20px 0;
    }
    .state-num {
        display: inline;
    }

    /* area */
    .area-desc {
        padding: 20px;
    }
    .area-item {
        flex-direction: row;
        align-items: center;
    }
    .area-ads {
        margin: 16px 0;
    }
    .area-pic {
        width: 200px;
        height: 200px;
    }
    .area-tag {
        max-width: 168px;
    }
    .tag-tl {
        display: -webkit-box;
        -webkit-line-clamp: 1;
        -webkit-box-orient: vertical;
        text-overflow: ellipsis;
        overflow: hidden;
    }
    .area-info {
        padding: 20px;
        align-items: stretch;
    }
    .area-btn {
        display: flex;
    }
    
    /* attractions */
    .attr-detail-box {
        grid-template-columns: repeat(3, 1fr);
    }
    .attr-detail {
        gap: 32px;
        padding-bottom: 0;
        border-bottom: none;
        border-right: 1px dashed #EEE;
    }
    .attr-detail-ls {
        gap: 20px;
        padding-right: 20px;
    }
    .attr-detail:last-child {
        border-right: none;
    }
    .attr-detail:last-child .attr-detail-ls {
        padding-right: 0;
    }
    
    .attr-ls {
        grid-template-columns: repeat(4, 1fr);
    }
    .attr-tl {
        font-size: 18px;
        line-height: 22px;
    }
    .attr-btn {
        padding: 20px 28px;
    }

    .attr-topic {
        gap: 24px;
    }
    .attr-topic h2 {
        font-size: 24px;
        line-height: 26px;
    }
    .attr-topic h3 {
        font-size: 20px;
        line-height: 24px;
    }

}
@media screen and (min-width:1200px) {
    .wrapper {
        max-width: 1100px;
    }
    .pagecontent {
        display: flex;
    }
    .pageleft {
        flex: 0 0 728px;

        width: 728px;
        margin-top: 40px;
    }
    .pageright {
        display: block;
        flex: 1;
        padding-left: 72px;
        margin-top: 40px;
    }

    .breadcrumb {
        margin-top: 0;
    }

    /* index */
    .hacks-bg {
        height: 290px;
    }
    .hacks-box {
        gap: 24px;
        padding-top: 40px;
        margin-bottom: 56px;
    }
    .icon-hacks {
        width: 64px;
        height: 64px;
    }
    .hacks-tl {
        font-size: 64px;
    }
    .hacks-desc {
        font-size: 18px;
        line-height: 26px;
    }
    
    .cate-ls {
        grid-template-columns: repeat(2, 1fr);
    }
    .cate-info {
        width: 190px;
    }
    .cate-tl {
        font-size: 24px;
    }
    
    .index-ads {
        margin: 64px 0;
    }
    .common-tl {
        font-size: 48px;
        margin-bottom: 56px;
    }
    
    .guide-bg-icon {
        display: flex;
    }
    .guide-top {
        padding-top: 56px;
        gap: 24px;
    }
    .guide-ls {
        grid-template-columns: repeat(2, 1fr);
        gap: 24px;
    }
    .guide-item {
        display: block;
    }
    .guide-pic {
        width: 100%;
        height: 160px;
        border-radius: 12px 12px 0 0;
    }
    .guide-info {
        padding: 24px;
    }
    .guide-tl {
        font-size: 20px;
        line-height: 24px;
    }
    .guide-btn {
        width: 542px;
        padding: 15px 24px;
        margin-top: 56px;
    }
    
    .just-ls {
        grid-template-columns: repeat(1, 1fr);
        gap: 32px 40px;
    }
    .just-item {
        padding-bottom: 40px;
    }
    .just-con {
        gap: 24px;
    }
    .just-pic {
        flex: 0 0 225px;
        width: 225px;
        height: 140px;
    }
    .just-tl {
        font-size: 20px;
        line-height: 24px;
    }
    .lastest-box {
        display: flex;
        flex-direction: row;
        gap: 40px;
    }
    .lastest-ls {
        gap: 24px;
    }
    .lastest-tl {
        font-size: 18px;
        line-height: 22px;
    }
    .lastest-feature {
        display: flex;
        flex-direction: column;
        width: 400px;
        gap: 24px;
    }
    .feature-pic {
        flex: 0 0 224px;
        width: 400px;
        height: 224px;
    }
    .feature-info {
        align-items: center;
    }
    
    .feature-tl {
        font-size: 24px;
        line-height: 32px;
        text-align: center;
    }
    .cate-ls {
        grid-template-columns: repeat(3, 1fr);
    }
    .guide-ls {
        grid-template-columns: repeat(4, 1fr);
    }
    .just-ls {
        grid-template-columns: repeat(2, 1fr);
    }
}

