.lc-site-nav { overflow-x: auto; }
.lc-site-nav > a { position: relative; flex-shrink: 0; }
.lc-site-nav > a[aria-current="page"]::after {
    content: ""; position: absolute; bottom: 0; left: 0; right: 0;
    height: 2px; background: currentColor;
}
.lc-announcement {
    position: fixed; inset: 0; margin: auto; height: fit-content;
    box-sizing: border-box; width: min(480px, calc(100% - 32px));
    max-height: calc(100vh - 48px); padding: 28px; border: 0;
    border-radius: 12px; overflow-y: auto; color: inherit;
}
.lc-announcement:not([open]) { display: none; }
.lc-announcement::backdrop { background: rgba(0, 0, 0, .4); }
.lc-announcement h2 { margin: 0 36px 20px 0; font-size: 22px; line-height: 1.4; overflow-wrap: anywhere; }
.lc-announcement-close { position: absolute; top: 12px; right: 12px; font-size: 28px; }
.lc-announcement-content { white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.8; }
.mdui-theme-layout-dark .lc-announcement { background: #424242; color: #fff; }
.lc-sakura {
    position: fixed; inset: 0; overflow: hidden; pointer-events: none;
    z-index: 1999; contain: strict;
}
.lc-sakura-petal {
    position: absolute; top: -24px; left: var(--left); width: var(--size); height: calc(var(--size) * .7);
    border-radius: 90% 10% 85% 15%; background: linear-gradient(135deg, #ffe5ee, #f6a7c5);
    opacity: .65; pointer-events: none;
    animation: lc-sakura-fall var(--duration) var(--delay) linear infinite;
}
@keyframes lc-sakura-fall {
    0% { transform: translate3d(0, -24px, 0) rotate(0deg); }
    35% { transform: translate3d(var(--drift), 35vh, 0) rotate(135deg); }
    70% { transform: translate3d(calc(var(--drift) * -.4), 70vh, 0) rotate(260deg); }
    100% { transform: translate3d(var(--drift), calc(100vh + 48px), 0) rotate(400deg); }
}
@media (prefers-reduced-motion: reduce) {
    .lc-sakura { display: none; }
    .lc-sakura-petal { animation: none; }
}
.lc-tools { padding-top: 16px; }
.lc-tools-heading { margin: 8px 0 24px; }
.lc-tools-heading h1 { margin: 0 0 8px; font-size: 24px; }
.lc-tools-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.lc-tool-card { padding: 24px; border-radius: 8px; }
.lc-tool-card h2 { margin: 0 0 12px; font-size: 20px; }
.lc-tool-description { opacity: .65; line-height: 1.6; margin: 0 0 16px; }
.lc-tool-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.lc-tool-result { margin-top: 16px; line-height: 1.8; white-space: pre-wrap; overflow-wrap: anywhere; }
.lc-tool-card .mdui-textfield { padding-top: 8px; }
@media (max-width: 960px) { .lc-tools-grid { grid-template-columns: 1fr; } }
@media (max-width: 600px) {
    .lc-site-nav > a { min-width: 0; padding-left: 12px; padding-right: 12px; }
    .lc-tool-card { padding: 20px; }
}

/* School badge, music switch and campus links */
.lc-brand { display: flex !important; align-items: center; gap: 10px; min-width: 0; }
.lc-brand-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lc-school-badge { width: 36px; height: 36px; flex-shrink: 0; border-radius: 50%; overflow: hidden; background: rgba(255,255,255,.16); display: grid; place-items: center; }
.lc-school-logo { width: 100%; height: 100%; object-fit: contain; background: #fff; }
.lc-school-logo[hidden], .lc-school-fallback[hidden] { display: none !important; }
.lc-links-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 20px; }
.lc-link-card { display: block; color: inherit; text-decoration: none; border-radius: 8px; }
.lc-link-card:focus-visible { outline: 3px solid currentColor; outline-offset: 3px; }
.lc-link-media { position: relative; aspect-ratio: 16 / 9; background: rgba(128,128,128,.12); display: grid; place-items: center; overflow: hidden; }
.lc-link-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.lc-link-media img[hidden] { display: none; }
.lc-link-placeholder { font-size: 48px; opacity: .35; }
.lc-link-name { padding: 18px 20px; font-size: 18px; line-height: 1.5; overflow-wrap: anywhere; }
.lc-links-empty { padding: 24px; text-align: center; opacity: .7; }
.lc-links-empty[hidden] { display: none; }
@media (max-width: 960px) { .lc-links-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 600px) { .lc-links-grid { grid-template-columns: 1fr; } .lc-brand { max-width: calc(100% - 112px); font-size: 18px; } .lc-school-badge { width: 32px; height: 32px; } }
