diff --git a/index.html b/index.html index 360f308..b878135 100644 --- a/index.html +++ b/index.html @@ -14,42 +14,241 @@ .landing { max-width: 720px; margin: 0 auto; padding: 40px 20px; } .landing h2 { font-size: 22px; font-weight: 700; color: #1a1a2e; margin-bottom: 8px; } .landing p { font-size: 14px; color: #555; line-height: 1.6; margin-bottom: 24px; } -.map-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; } -.map-card { - display: block; background: #fff; border-radius: 8px; padding: 24px; - text-decoration: none; color: #1a1a2e; border: 1px solid #d8dae0; - box-shadow: 0 1px 3px rgba(0,0,0,0.06); transition: box-shadow 0.15s; +.landing p a, .link-list a { color: #2563eb; text-decoration: none; } +.landing p a:hover, .link-list a:hover { text-decoration: underline; } +.landing .intro { font-size: 15px; max-width: 640px; } +#header .header-icon-link { + display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 500; + color: #ccc; text-decoration: none; padding: 5px 8px; border-radius: 4px; +} +#header .header-icon-link:hover { color: #fff; background: rgba(255,255,255,0.12); } +#header .nav-primary { margin-left: 8px; } +@media (max-width: 600px) { + #header .header-icon-link .label { display: none; } +} +.landing section { margin-top: 40px; } +.landing section h2 { font-size: 18px; margin-bottom: 12px; } +.card { + background: #fff; border-radius: 8px; border: 1px solid #d8dae0; + box-shadow: 0 1px 3px rgba(0,0,0,0.06); } -.map-card:hover { box-shadow: 0 4px 12px rgba(0,0,0,0.12); } +.map-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; } +.map-card { display: flex; flex-direction: column; padding: 24px; color: #1a1a2e; } .map-card h3 { font-size: 17px; font-weight: 600; margin-bottom: 8px; } -.map-card p { font-size: 13px; color: #555; line-height: 1.5; margin: 0; } -.landing-footer { margin-top: 32px; font-size: 12px; color: #999; } -.landing-footer a { color: #2563eb; text-decoration: none; } -.landing-footer a:hover { text-decoration: underline; } +.map-card p { font-size: 13px; color: #555; line-height: 1.5; margin: 0 0 18px; flex: 1; } +.map-card .btn { align-self: flex-start; } + +.btn { + display: inline-flex; align-items: center; gap: 7px; background: #2563eb; color: #fff; + font-size: 13px; font-weight: 600; padding: 8px 16px; border-radius: 6px; text-decoration: none; + transition: background 0.15s; +} +.btn:hover { background: #1d4ed8; } +.icon { width: 15px; height: 15px; flex-shrink: 0; fill: currentColor; } + +.paper { padding: 20px 24px; } +.paper-title { font-size: 16px; font-weight: 600; color: #1a1a2e; line-height: 1.45; margin-bottom: 6px; } +.landing .paper p { margin: 0; } +.landing .paper .paper-venue { font-size: 13px; color: #888; } +.paper-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; margin-top: 16px; } +.paper summary { font-size: 13px; color: #555; cursor: pointer; } +.paper details[open] { flex-basis: 100%; } +.paper pre { + margin-top: 10px; padding: 12px; background: #f5f6f9; border: 1px solid #e3e5ea; border-radius: 6px; + font-size: 12px; line-height: 1.5; overflow-x: auto; color: #333; +} +.landing .paper .paper-note { font-size: 12px; color: #999; margin-top: 14px; } + +.link-list { margin: 0; padding-left: 20px; font-size: 14px; color: #555; line-height: 1.6; } +.link-list li { margin-bottom: 6px; } +.link-list li::marker { color: #aaa; } + +.coverage h3 { font-size: 13px; font-weight: 600; color: #888; text-transform: uppercase; letter-spacing: 0.05em; margin: 20px 0 8px; } +.coverage-list { list-style: none; margin: 0; padding: 0; } +.coverage-list li { border-top: 1px solid #eceef2; } +.coverage-list li:first-child { border-top: none; } +.coverage-list a { display: block; padding: 12px 16px; text-decoration: none; color: #1a1a2e; } +.coverage-list a:hover { background: #f7f8fb; } +.coverage-list li:first-child a { border-radius: 8px 8px 0 0; } +.coverage-list li:last-child a { border-radius: 0 0 8px 8px; } +.coverage-title { display: block; font-size: 14px; font-weight: 500; line-height: 1.4; } +.coverage-list a:hover .coverage-title { color: #2563eb; } +.coverage-meta { display: block; font-size: 12px; color: #888; margin-top: 3px; } +.coverage-lang { + display: inline-block; font-size: 10px; font-weight: 600; color: #555; background: #eceef2; + border-radius: 3px; padding: 1px 5px; margin-left: 6px; vertical-align: 1px; +} +.landing .coverage-note { font-size: 13px; margin: 0 0 8px; } +.landing .coverage-checked { font-size: 12px; color: #999; margin: 12px 0 0; }
+Interactive maps showing email infrastructure of ~15,300 municipalities in Germany, Austria, and Switzerland, based on public DNS records and network signals.
+Who runs the official email of your municipality, and how well is it protected against fake senders? Interactive maps of ~15,300 municipalities in Germany, Austria, and Switzerland, based on public DNS records and network signals. They accompany our peer-reviewed SecAssure 2026 paper.
Which provider handles each municipality's official email? Classified by jurisdiction: US cloud (Microsoft, Google, AWS), domestic, or foreign.
- - + Open map → +How well are municipality email domains protected against spoofing? Based on SPF and DMARC configuration.
- -Mario Bischof, David Huser, Alexej Ochsner, Ronald Petrlic, Edy Portmann
+Computer Security. ESORICS 2026 International Workshops (SecAssure 2026), LNCS, Springer, to appear
+@inproceedings{bischof2026email,
+ author = {Bischof, Mario and Huser, David and Ochsner, Alexej and Petrlic, Ronald and Portmann, Edy},
+ title = {Email Provider Dependencies and Email Security in Municipalities Across {Germany}, {Austria}, and {Switzerland}},
+ booktitle = {Computer Security. ESORICS 2026 International Workshops (SecAssure 2026)},
+ series = {Lecture Notes in Computer Science},
+ publisher = {Springer Nature Switzerland},
+ year = {2026},
+ note = {to appear}
+}
+ Accepted manuscript. The Version of Record will be available from Springer once published; use is subject to Springer Nature's Accepted Manuscript terms.
+Maps for other countries, derived from the predecessor mxmap.ch.
+Last checked:
+