aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/styles
diff options
context:
space:
mode:
Diffstat (limited to 'src/styles')
-rw-r--r--src/styles/custom.css133
1 files changed, 133 insertions, 0 deletions
diff --git a/src/styles/custom.css b/src/styles/custom.css
index 4ea2724..a0b0a59 100644
--- a/src/styles/custom.css
+++ b/src/styles/custom.css
@@ -319,6 +319,139 @@ body:has(.parks-controls) .sl-markdown-content p {
color: var(--sl-color-text, inherit);
}
+/* ── 会場の地図(カレンダーで選んだ日の会場) ── */
+.schedule-map-block {
+ margin: 0.8rem 0 1.4rem;
+}
+.schedule-map {
+ height: min(55vh, 24rem);
+ min-height: 16rem;
+ border: 1px solid var(--sl-color-gray-5);
+ border-radius: 8px;
+ /* Leaflet の内部 z-index を閉じ込め、ヘッダーなどに重ならないようにする。 */
+ position: relative;
+ z-index: 0;
+}
+/* StarlightのMarkdown余白ルールがLeafletの各ペインに margin-top を付け、
+ タイルが1行分(約50px)下にずれるため、地図内のペインは余白なしにする。 */
+.schedule-map .leaflet-pane {
+ margin: 0 !important;
+}
+/* Starlightの canvas/svg 向け max-width が描画領域を狭めるため、地図内だけ上書きする。 */
+.schedule-map .leaflet-overlay-pane canvas,
+.schedule-map .leaflet-overlay-pane svg {
+ max-width: none !important;
+ max-height: none !important;
+ margin: 0 !important;
+}
+/* Starlightの画像用スタイル(margin / border / border-radius)がタイルに付くと、
+ 行ずれやタイルごとの枠が出るため打ち消す。 */
+.schedule-map .leaflet-tile {
+ margin: 0 !important;
+ border: 0 !important;
+ border-radius: 0 !important;
+}
+.schedule-map-note {
+ margin: 0.4rem 0 0;
+ color: var(--sl-color-gray-3);
+ font-size: 0.9rem;
+}
+.schedule-map-marker {
+ background: transparent;
+ border: 0;
+}
+.schedule-map-pin {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ width: 30px;
+ height: 30px;
+ border-radius: 50%;
+ background: var(--sl-color-accent, #b0003a);
+ color: #fff;
+ font-size: 15px;
+ line-height: 1;
+ box-shadow: 0 2px 6px rgba(0, 0, 0, 0.35);
+ animation: schedule-pin-glow 1.6s ease-out 2;
+}
+@keyframes schedule-pin-glow {
+ 0% {
+ box-shadow: 0 0 0 0 rgba(255, 214, 0, 0.85), 0 2px 6px rgba(0, 0, 0, 0.35);
+ }
+ 70% {
+ box-shadow: 0 0 0 14px rgba(255, 214, 0, 0), 0 2px 6px rgba(0, 0, 0, 0.35);
+ }
+ 100% {
+ box-shadow: 0 0 0 0 rgba(255, 214, 0, 0), 0 2px 6px rgba(0, 0, 0, 0.35);
+ }
+}
+@media (prefers-reduced-motion: reduce) {
+ .schedule-map-pin {
+ animation: none;
+ }
+}
+.schedule-map-popup-title {
+ display: block;
+ margin-bottom: 0.2rem;
+}
+.schedule-map-popup-list {
+ margin: 0;
+ padding-left: 1.1rem;
+}
+.schedule-map-popup-list li {
+ margin: 0.15rem 0;
+ font-size: 0.9rem;
+}
+.schedule-map-popup-list li span {
+ display: block;
+ color: var(--sl-color-gray-3);
+ font-size: 0.82rem;
+}
+.schedule-map-locate-status {
+ margin: 0.3rem 0 0;
+ color: var(--sl-color-gray-3);
+ font-size: 0.85rem;
+}
+.schedule-locate {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ width: 40px;
+ height: 40px;
+ padding: 0;
+ border: 0;
+ border-radius: 50%;
+ background: #fff;
+ color: #1e88e5;
+ box-shadow: 0 1px 4px rgba(0, 0, 0, 0.35);
+ cursor: pointer;
+}
+.schedule-locate:hover {
+ background: #f0f7ff;
+}
+.schedule-locate.is-active {
+ background: #1e88e5;
+ color: #fff;
+}
+.schedule-locate svg {
+ display: block;
+ width: 20px;
+ height: 20px;
+}
+.schedule-locate-marker {
+ background: transparent;
+ border: 0;
+}
+.schedule-locate-dot {
+ display: block;
+ width: 18px;
+ height: 18px;
+ border: 3px solid #fff;
+ border-radius: 50%;
+ background: #1e88e5;
+ box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.25), 0 0 0 8px rgba(30, 136, 229, 0.18);
+}
+
/* ── 技術的な補足(本文より一段小さい注記。ノートとは区別する) ── */
.tech-note {
margin: 1.6rem 0;