.lln-root,
.lln-backdrop,
.lln-panel {
--lln-dark: #00244A;
--lln-dark-80: #13375C;
--lln-dark-60: #416487;
--lln-dark-20: #90AAC2;
--lln-cyan: #00AAD4;
--lln-orange: #FF7800;
--lln-surface: #FFFFFF;
--lln-muted: #F4F6FA;
--lln-line: rgba(0, 36, 74, .1);
--lln-backdrop: rgba(0, 26, 54, .62);
--lln-shadow: 0 18px 40px rgba(0, 36, 74, .28);
--lln-ease: cubic-bezier(.2, .7, .2, 1);
--lln-font: 'Rubik', 'Roboto', -apple-system, 'Segoe UI', Arial, sans-serif;
} .lln-trigger {
position: fixed;
left: 0; top: calc(50% - var(--lln-desktop-offset, 80px));
translate: 0 -50%;
z-index: var(--lln-z-trigger, 99990);
display: flex;
align-items: stretch;
justify-content: center;
min-width: 44px;
margin: 0;
padding: 0;
border: 0;
border-left: 4px solid var(--lln-dark);
border-radius: 0 8px 8px 0;
background: linear-gradient(180deg, #FF8A1F 0%, #E86100 100%);
box-shadow: 0 6px 18px rgba(0, 0, 0, .35);
color: #fff;
font-family: var(--lln-font);
cursor: pointer;
opacity: 0;
transition: opacity 200ms var(--lln-ease), transform 160ms var(--lln-ease), border-left-width 160ms var(--lln-ease);
}
.lln-trigger.is-ready { opacity: 1; }
.lln-trigger[hidden] { display: none; }
.lln-trigger:hover {
background: linear-gradient(180deg, #FF9C3D 0%, #F26E00 100%);
border-left-width: 6px;
transform: translateX(2px);
}
.lln-trigger:focus-visible {
outline: 3px solid #fff;
outline-offset: 3px;
}
.lln-trigger:active { transform: scale(.97); transition-duration: 80ms; }
.lln-trigger__desktop {
display: block;
padding: 18px 12px;
writing-mode: vertical-rl;
transform: rotate(180deg);
font: 600 15px/1 var(--lln-font);
letter-spacing: .05em;
white-space: nowrap;
}
.lln-trigger__mobile { display: none; } .lln-open .lln-trigger,
.lln-input-focus .lln-trigger { opacity: 0; pointer-events: none; } .lln-backdrop {
position: fixed;
inset: 0;
z-index: var(--lln-z-backdrop, 100010);
background: var(--lln-backdrop);
opacity: 0;
transition: opacity 180ms var(--lln-ease);
}
.lln-backdrop.is-visible { opacity: 1; }
.lln-backdrop[hidden] { display: none; } .lln-panel {
position: fixed;
left: 24px;
top: 36px;
bottom: 36px;
z-index: var(--lln-z-panel, 100020);
display: flex;
flex-direction: column;
width: 440px;
max-width: calc(100vw - 32px);
max-height: 90vh;
margin: auto 0;
border-radius: 8px;
overflow: hidden;
background: var(--lln-surface);
box-shadow: var(--lln-shadow);
font-family: var(--lln-font);
color: var(--lln-dark);
opacity: 0;
transform: translateX(-24px);
transition: opacity 220ms var(--lln-ease), transform 220ms var(--lln-ease);
}
.lln-panel.is-visible { opacity: 1; transform: none; }
.lln-panel[hidden] { display: none; }
.lln-panel__head {
display: flex;
align-items: flex-start;
gap: 12px;
flex: 0 0 auto;
padding: 20px;
background: var(--lln-dark);
box-shadow: 0 4px 12px rgba(0, 36, 74, .25);
}
.lln-panel__titles { flex: 1; min-width: 0; }
.lln-panel .lln-panel__title {
margin: 0 !important;
padding: 0 !important;
font-family: var(--lln-font) !important;
font-size: 24px !important;
font-weight: 600 !important;
line-height: 1.15 !important;
letter-spacing: normal !important;
text-transform: none !important;
color: #fff !important;
} .lln-panel h2::before,
.lln-panel h2::after { content: none !important; }
.lln-panel__subtitle {
margin: 6px 0 0 !important;
font: 400 14px/1.4 var(--lln-font);
color: rgba(255, 255, 255, .72) !important;
}
.lln-close,
.lln-back {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 8px;
min-width: 44px;
height: 44px;
padding: 0 12px;
border: 0;
border-radius: 4px;
background: rgba(255, 255, 255, .1);
color: #fff;
font: 500 14px/1 var(--lln-font);
cursor: pointer;
transition: background 160ms var(--lln-ease);
}
.lln-close { flex: 0 0 44px; padding: 0; }
.lln-close:hover,
.lln-back:hover { background: rgba(255, 255, 255, .2); }
.lln-close:focus-visible,
.lln-back:focus-visible { outline: 3px solid var(--lln-cyan); outline-offset: 2px; }
.lln-back[hidden] { display: none; }
.lln-panel__body {
flex: 1 1 auto;
overflow-y: auto;
overscroll-behavior: contain;
-webkit-overflow-scrolling: touch;
animation: lln-fade 160ms var(--lln-ease);
}
@keyframes lln-fade {
from { opacity: 0; transform: translateY(8px); }
to { opacity: 1; transform: none; }
} .lln-list { display: flex; flex-direction: column; }
.lln-card {
display: flex !important;
align-items: flex-start;
gap: 14px;
width: 100%;
margin: 0;
padding: 16px 20px;
border: 0;
border-bottom: 1px solid var(--lln-line);
background: var(--lln-surface);
text-align: left;
text-decoration: none;
color: inherit;
font-family: var(--lln-font);
cursor: pointer;
transition: background 160ms var(--lln-ease);
}
.lln-card:hover { background: var(--lln-muted); box-shadow: inset 3px 0 0 var(--lln-cyan); }
.lln-card:focus-visible { outline: 3px solid var(--lln-cyan); outline-offset: -3px; }
.lln-card:active { transform: scale(.995); }
.lln-card__thumb {
flex: 0 0 96px;
width: 96px;
height: 96px;
border-radius: 4px;
object-fit: cover;
background: var(--lln-muted);
}
.lln-card__thumb--empty { display: block; }
.lln-card__text {
display: flex;
flex-direction: column;
gap: 6px;
flex: 1;
min-width: 0;
}
.lln-card__title {
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
font: 600 18px/1.2 var(--lln-font);
color: var(--lln-dark);
overflow-wrap: anywhere;
}
.lln-card__subtitle {
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
overflow: hidden;
font: 400 14px/1.4 var(--lln-font);
color: var(--lln-dark-60);
overflow-wrap: anywhere;
}
.lln-card__date { font: 400 12px/1 var(--lln-font); color: var(--lln-dark-20); }
.lln-card__icon { flex: 0 0 auto; align-self: center; color: var(--lln-cyan); }
.lln-card__icon--ext { color: var(--lln-dark-60); }
.lln-badge {
align-self: flex-start;
padding: 5px 8px;
border-radius: 2px;
font: 700 11px/1 var(--lln-font);
letter-spacing: .08em;
text-transform: uppercase;
color: #fff;
}
.lln-list__end {
margin: 0;
padding: 16px 20px;
text-align: center;
font: 400 13px/1.4 var(--lln-font);
color: var(--lln-dark-20);
} .lln-skeleton { display: flex; gap: 14px; padding: 16px 20px; border-bottom: 1px solid var(--lln-line); }
.lln-skeleton__thumb {
flex: 0 0 96px;
height: 96px;
border-radius: 4px;
background: linear-gradient(90deg, #EDF1F6 0%, #F8FAFC 40%, #EDF1F6 80%);
background-size: 400px 100%;
animation: lln-shimmer 1.2s linear infinite;
}
.lln-skeleton__lines { display: flex; flex-direction: column; gap: 10px; flex: 1; padding-top: 4px; }
.lln-skeleton__lines i { display: block; height: 14px; border-radius: 2px; background: #EDF1F6; }
.lln-skeleton__lines i:first-child { height: 18px; }
.lln-skeleton__lines i:last-child { width: 45%; }
@keyframes lln-shimmer {
from { background-position: -200px 0; }
to { background-position: 400px 0; }
}
.lln-status { margin: 0; padding: 20px; text-align: center; font: 400 14px/1 var(--lln-font); color: var(--lln-dark-60); }
.lln-error {
display: flex;
flex-direction: column;
align-items: center;
gap: 16px;
padding: 40px 32px;
text-align: center;
}
.lln-error__icon {
display: flex;
align-items: center;
justify-content: center;
width: 64px;
height: 64px;
border-radius: 999px;
background: rgba(238, 49, 100, .1);
color: #EE3164;
}
.lln-error h3 { margin: 0 !important; font: 600 22px/1.2 var(--lln-font) !important; color: var(--lln-dark) !important; }
.lln-error h3::before { content: none !important; }
.lln-error p { margin: 0; font: 400 15px/1.6 var(--lln-font); color: var(--lln-dark-60); }
.lln-retry {
min-height: 48px;
padding: 0 22px;
border: 0;
border-radius: 4px;
background: var(--lln-orange);
color: #fff;
font: 700 15px/1 var(--lln-font);
letter-spacing: .06em;
cursor: pointer;
}
.lln-retry:focus-visible { outline: 3px solid var(--lln-cyan); outline-offset: 2px; } .lln-detail { display: flex; flex-direction: column; }
.lln-detail__cover { width: 100%; height: 180px; object-fit: cover; display: block; }
.lln-detail__head { display: flex; flex-direction: column; gap: 12px; padding: 20px 20px 0; }
.lln-detail__meta { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.lln-detail__date { font: 400 13px/1 var(--lln-font); color: var(--lln-dark-20); }
.lln-detail__title {
margin: 0 !important;
font-family: var(--lln-font) !important;
font-size: 26px !important;
font-weight: 600 !important;
line-height: 1.15 !important;
text-transform: none !important;
color: var(--lln-dark) !important;
}
.lln-detail__title::before,
.lln-detail__title::after { content: none !important; }
.lln-detail__body { padding: 16px 20px 20px; font: 400 15px/1.6 var(--lln-font); color: var(--lln-dark-80); }
.lln-detail__body p { margin: 0 0 12px; }
.lln-detail__body ul,
.lln-detail__body ol { margin: 0 0 12px; padding-left: 20px; }
.lln-detail__body li { margin-bottom: 6px; }
.lln-detail__body a { color: var(--lln-cyan); }
.lln-detail__cta { padding: 16px 20px; border-top: 1px solid var(--lln-line); }
.lln-cta {
display: flex !important;
align-items: center;
justify-content: center;
min-height: 48px;
padding: 0 20px;
border-radius: 4px;
background: var(--lln-orange);
color: #fff !important;
font: 700 15px/1 var(--lln-font);
letter-spacing: .06em;
text-decoration: none;
text-align: center;
}
.lln-cta:hover { background: #FF9333; }
.lln-cta:focus-visible { outline: 3px solid var(--lln-cyan); outline-offset: 2px; }
.lln-detail--missing { padding: 40px 20px; text-align: center; color: var(--lln-dark-60); } .lln-gallery { position: relative; margin: 16px 20px 0; }
.lln-gallery__stage {
display: flex;
overflow-x: auto;
scroll-snap-type: x mandatory;
scrollbar-width: none;
border-radius: 4px;
}
.lln-gallery__stage::-webkit-scrollbar { display: none; }
.lln-gallery__stage:focus-visible { outline: 3px solid var(--lln-cyan); outline-offset: 2px; }
.lln-gallery__slide {
position: relative;
flex: 0 0 100%;
margin: 0;
scroll-snap-align: start;
}
.lln-gallery__slide img { display: block; width: 100%; height: 250px; object-fit: cover; }
.lln-gallery__slide figcaption {
position: absolute;
left: 0;
right: 0;
bottom: 0;
padding: 14px 16px;
background: linear-gradient(to top, rgba(0, 36, 74, .85), rgba(0, 36, 74, 0));
font: 400 13px/1.4 var(--lln-font);
color: #fff;
}
.lln-gallery__counter {
position: absolute;
left: 12px;
top: 12px;
z-index: var(--lln-z-gallery, 100030);
padding: 7px 10px;
border-radius: 999px;
background: rgba(0, 36, 74, .7);
font: 500 12px/1 var(--lln-font);
color: #fff;
}
.lln-gallery__nav {
position: absolute;
top: 50%;
transform: translateY(-50%);
z-index: var(--lln-z-gallery, 100030);
display: flex;
align-items: center;
justify-content: center;
width: 44px;
height: 44px;
border: 0;
border-radius: 999px;
background: rgba(0, 36, 74, .72);
color: #fff;
cursor: pointer;
}
.lln-gallery__nav:disabled { opacity: .3; cursor: default; }
.lln-gallery__nav:focus-visible { outline: 3px solid var(--lln-cyan); outline-offset: 2px; }
.lln-gallery__nav--prev { left: 12px; }
.lln-gallery__nav--next { right: 12px; }
.lln-gallery__dots { display: flex; justify-content: center; gap: 6px; padding: 14px 0 0; }
.lln-gallery__dots span { width: 7px; height: 7px; border-radius: 999px; background: rgba(0, 36, 74, .2); transition: width 160ms var(--lln-ease); }
.lln-gallery__dots span.is-active { width: 20px; background: var(--lln-cyan); } html.lln-locked { overflow: hidden; }
html.lln-locked body { position: fixed; width: 100%; overflow: hidden; } @media (max-width: 1024px) {
.lln-panel { width: 400px; }
} @media (max-width: 767px) {
.lln-trigger {
left: 16px;
top: auto;
translate: none;
bottom: calc(var(--lln-mobile-offset, 28px) + env(safe-area-inset-bottom, 0px));
width: 80px;
height: 80px;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 2px;
padding: 0 8px;
border: 0;
border-radius: 18px;
background: linear-gradient(160deg, #FF8A1F 0%, #E86100 100%);
}
.lln-trigger:hover { transform: none; border: 0; }
.lln-trigger__desktop { display: none; }
.lln-trigger__mobile {
display: flex;
flex-direction: column;
align-items: center;
gap: 1px;
}
.lln-trigger__mobile span {
font: 700 12px/14px var(--lln-font);
text-align: center;
}
.lln-panel {
left: 0;
right: 0;
top: auto;
bottom: 0;
width: 100%;
max-width: 100%;
max-height: 90vh;
margin: 0;
border-radius: 16px 16px 0 0;
transform: translateY(16px);
transition-duration: 240ms;
padding-bottom: env(safe-area-inset-bottom, 0px);
}
.lln-panel.is-visible { transform: none; }
.lln-panel__head { padding: 16px; }
.lln-panel .lln-panel__title { font-size: 22px !important; }
.lln-card { padding: 14px 16px; gap: 12px; }
.lln-card__thumb { flex-basis: 84px; width: 84px; height: 84px; }
.lln-card__title { font-size: 17px; }
.lln-gallery { margin: 16px 16px 0; }
.lln-gallery__slide img { height: 220px; } .lln-gallery__nav { display: none; }
} @media (prefers-reduced-motion: reduce) {
.lln-trigger,
.lln-backdrop,
.lln-panel,
.lln-panel__body,
.lln-gallery__dots span {
transition-duration: 120ms !important;
transition-property: opacity !important;
animation: none !important;
transform: none !important;
}
.lln-panel.is-visible,
.lln-trigger:hover,
.lln-trigger:active { transform: none !important; }
.lln-skeleton__thumb { animation: none !important; }
}