diff --git a/index.html b/index.html index e5073b7..7827fdf 100644 --- a/index.html +++ b/index.html @@ -1217,6 +1217,41 @@ .news-teaser { font-size: 0.88rem; margin-bottom: 18px; + display: -webkit-box; + -webkit-line-clamp: 4; + -webkit-box-orient: vertical; + overflow: hidden; + } + + .news-card-header { + display: flex; + justify-content: space-between; + align-items: center; + } + + .news-read-btn { + display: inline-flex; + align-items: center; + gap: 8px; + align-self: flex-start; + margin-top: auto; + padding: 10px 20px; + font-size: 0.72rem; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 0.12em; + color: var(--gold); + border: 1px solid rgba(230, 81, 0, 0.24); + border-radius: 999px; + background: rgba(230, 81, 0, 0.06); + cursor: pointer; + transition: background 0.25s, color 0.25s, border-color 0.25s; + } + + .news-read-btn:hover { + background: var(--gold); + color: #fff; + border-color: var(--gold); } .news-date { @@ -1755,6 +1790,229 @@ padding-top: 8px; } + @keyframes articleFlyIn { + 0% { + opacity: 0; + transform: translateY(60px) scale(0.96); + } + 100% { + opacity: 1; + transform: translateY(0) scale(1); + } + } + + @keyframes articleOverlayIn { + 0% { opacity: 0; } + 100% { opacity: 1; } + } + + #article-overlay { + position: fixed; + inset: 0; + z-index: 9500; + display: none; + align-items: center; + justify-content: center; + padding: 20px; + background: rgba(62, 39, 35, 0.88); + backdrop-filter: blur(18px); + -webkit-backdrop-filter: blur(18px); + } + + #article-overlay.is-open { + display: flex; + animation: articleOverlayIn 0.3s ease-out; + } + + #article-box { + position: relative; + width: 100%; + max-width: 720px; + max-height: 88vh; + display: flex; + flex-direction: column; + background: #fdf6ee; + border-radius: 6px; + border: 1px solid rgba(93, 64, 55, 0.22); + box-shadow: + 0 40px 100px rgba(0, 0, 0, 0.35), + 0 0 0 1px rgba(255, 243, 224, 0.15); + animation: articleFlyIn 0.5s cubic-bezier(0.22, 1, 0.36, 1) forwards; + overflow: hidden; + } + + #article-box .article-rule { + height: 4px; + background: linear-gradient(90deg, var(--gold), var(--gold-hi), var(--gold)); + flex-shrink: 0; + } + + #article-box .article-header { + padding: 32px 40px 0; + text-align: center; + flex-shrink: 0; + border-bottom: 1px solid rgba(93, 64, 55, 0.12); + padding-bottom: 24px; + } + + #article-box .article-header .article-area { + font-family: Georgia, "Times New Roman", serif; + font-size: 0.7rem; + letter-spacing: 0.18em; + text-transform: uppercase; + color: var(--gold); + font-weight: 400; + } + + #article-box .article-header h2 { + font-family: Georgia, "Times New Roman", serif; + font-size: 2rem; + line-height: 1.2; + color: #3e2723; + margin: 12px 0 10px; + font-weight: 400; + } + + #article-box .article-header .article-date { + font-family: Georgia, "Times New Roman", serif; + font-size: 0.78rem; + color: #8d6e63; + font-style: italic; + } + + #article-box .article-body { + padding: 28px 40px 40px; + overflow-y: auto; + flex: 1; + font-family: Georgia, "Times New Roman", serif; + font-size: 1.05rem; + line-height: 1.85; + color: #4e342e; + column-count: 1; + } + + #article-box .article-body::-webkit-scrollbar { + width: 8px; + } + + #article-box .article-body::-webkit-scrollbar-track { + background: rgba(93, 64, 55, 0.06); + } + + #article-box .article-body::-webkit-scrollbar-thumb { + background: rgba(230, 81, 0, 0.25); + border-radius: 4px; + } + + #article-box .article-body::-webkit-scrollbar-thumb:hover { + background: rgba(230, 81, 0, 0.45); + } + + #article-box .article-body h2, + #article-box .article-body h3 { + font-family: Georgia, "Times New Roman", serif; + font-weight: 400; + color: #3e2723; + margin: 28px 0 12px; + line-height: 1.3; + } + + #article-box .article-body h2 { + font-size: 1.35rem; + border-bottom: 1px solid rgba(93, 64, 55, 0.12); + padding-bottom: 8px; + } + + #article-box .article-body h3 { + font-size: 1.15rem; + } + + #article-box .article-body p { + margin-bottom: 16px; + text-align: justify; + hyphens: auto; + } + + #article-box .article-body ul { + margin: 12px 0; + padding-left: 20px; + list-style: disc; + } + + #article-box .article-body li { + margin-bottom: 6px; + } + + #article-box .article-body a.cta { + display: inline-block; + padding: 14px 28px; + background: var(--gold); + color: #fff; + text-decoration: none; + border-radius: 6px; + font-weight: 700; + font-family: "Segoe UI", system-ui, sans-serif; + font-size: 0.85rem; + letter-spacing: 0.04em; + margin-top: 12px; + transition: background 0.25s; + } + + #article-box .article-body a.cta:hover { + background: var(--gold-hi); + } + + #article-box .article-body iframe { + width: 100%; + max-width: 100%; + height: auto; + aspect-ratio: 16 / 9; + border-radius: 6px; + margin: 20px 0; + border: 1px solid rgba(93, 64, 55, 0.12); + } + + #article-close { + position: absolute; + top: 14px; + right: 14px; + width: 36px; + height: 36px; + border-radius: 50%; + border: none; + background: rgba(93, 64, 55, 0.08); + color: #8d6e63; + font-size: 1.2rem; + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + transition: background 0.2s, color 0.2s; + z-index: 2; + } + + #article-close:hover { + background: rgba(230, 81, 0, 0.12); + color: var(--gold); + } + + @media (max-width: 860px) { + #article-box { + max-height: 92vh; + border-radius: 4px; + } + #article-box .article-header { + padding: 24px 20px 18px; + } + #article-box .article-header h2 { + font-size: 1.5rem; + } + #article-box .article-body { + padding: 20px 20px 28px; + font-size: 0.95rem; + } + } + #modal-confirm .confirm-title { font-family: Georgia, "Times New Roman", serif; font-size: 1.6rem; @@ -1941,7 +2199,7 @@