{"id":162,"date":"2025-05-17T11:48:26","date_gmt":"2025-05-17T09:48:26","guid":{"rendered":"https:\/\/cad-kompass.de\/?page_id=162"},"modified":"2026-08-31T17:07:34","modified_gmt":"2026-08-31T15:07:34","slug":"homepage","status":"publish","type":"page","link":"https:\/\/cad-kompass.de\/","title":{"rendered":"Homepage"},"content":{"rendered":"\n<!--\nCAD-Kompass Startseite. WordPress: kompletter Block in \"Individuelles HTML\"\n(kein html\/head\/body, Prefix cadu-, font-family: inherit).\n-->\n\n<style>\n    .cadu-page { max-width: 1240px; margin: 0 auto; padding: 0 0 70px; font-family: inherit; color: #334155; line-height: 1.65; }\n    \/* WP-Haertung: entfernt die weisse Luecke zwischen Theme-Menueband und\n       Hero (Astra, GeneratePress, Kadence, Blocksy, Block-Themes). *\/\n    .site-main, .site-content, .content-area, .entry-content,\n    .wp-site-blocks, .wp-block-post-content, .inside-article,\n    .ast-container, .entry-content-wrap, .content-wrap { padding-top: 0 !important; }\n    .entry-content, .wp-block-post-content, .site-main, .site-content { margin-top: 0 !important; }\n    .entry-content > :first-child, .wp-block-post-content > :first-child,\n    .cadu-page:first-child { margin-top: 0 !important; margin-block-start: 0 !important; }\n    .cadu-page *, .cadu-page *::before, .cadu-page *::after { box-sizing: border-box; }\n    .cadu-page p { margin: 0 0 14px; }\n    .cadu-mono { font-family: ui-monospace, \"SF Mono\", Menlo, Consolas, monospace; }\n    .cadu-page a:focus-visible { outline: 2px solid #3f5f75; outline-offset: 2px; }\n    \/* WP-Haertung: Theme unterstreicht sonst alle Links, bei den\n       Ganzflaechen-Karten ganze Absaetze. Haarlinien laufen hier ueber\n       border-bottom, nicht text-decoration. *\/\n    .cadu-page a, .cadu-page a:link, .cadu-page a:visited, .cadu-page a:hover,\n    .cadu-page a:focus, .cadu-page a:active { text-decoration: none !important; }\n    \/* 31px je Seite = 30px Hero-Innenabstand + 1px Hero-Rand, damit der\n       Inhalt mit dem Textbeginn im Hero fluchtet. *\/\n    .cadu-inner { width: calc(100% - 62px); margin: 0 auto; }\n\n    \/* Hero *\/\n    .cadu-hero {\n        position: relative;\n        background: #2f485b;\n        color: #fff;\n        border-radius: 2px;\n        padding: 28px 30px 26px;\n        margin-bottom: 14px;\n        overflow: hidden;\n        border: 1px solid rgba(255,255,255,0.16);\n        box-shadow: inset 0 -1px 0 rgba(255,255,255,0.2);\n    }\n    .cadu-hero::before {\n        content: \"\"; position: absolute; inset: -16px;\n        background-image:\n                linear-gradient(rgba(255,255,255,0.06) 1px, transparent 1px),\n                linear-gradient(90deg, rgba(255,255,255,0.06) 1px, transparent 1px);\n        background-size: 28px 28px; opacity: 0.48; pointer-events: none;\n        transform: translate3d(var(--cadu-grid-x, 0px), var(--cadu-grid-y, 0px), 0);\n        transition: transform 0.5s cubic-bezier(0.2, 0.8, 0.4, 1);\n    }\n    .cadu-hero-text { position: relative; z-index: 2; max-width: 680px; }\n    .cadu-hero-eyebrow { font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.18em; font-weight: 600; color: rgba(255,255,255,0.72); margin-bottom: 8px; }\n    .cadu-hero-title { font-family: \"Iowan Old Style\", \"Palatino Linotype\", Palatino, Georgia, serif; font-size: 2.15rem; font-weight: 600; line-height: 1.15; margin: 0; color: #fff; letter-spacing: 0.002em; }\n    .cadu-hero-sub { margin: 10px 0 0; font-size: 0.95rem; color: rgba(255,255,255,0.88); max-width: 560px; }\n    \/* Kennzahlen als Schriftfeld: Haarlinien-Spalten wie im Plankopf *\/\n    .cadu-inventar {\n        position: relative; z-index: 2;\n        display: flex; flex-wrap: wrap; gap: 10px 0;\n        margin-top: 20px; padding-top: 14px;\n        \/* Haarlinie als Verlauf statt border-top, damit sie vor der Kompassrose auslaeuft *\/\n        background: linear-gradient(90deg, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.2) 45%, rgba(255,255,255,0) 72%) no-repeat 0 0 \/ 100% 1px;\n    }\n    .cadu-inv { text-decoration: none; color: inherit; padding-right: 30px; }\n    .cadu-inv + .cadu-inv { border-left: 1px solid rgba(255,255,255,0.18); padding-left: 30px; }\n    .cadu-inv b { display: block; font-family: ui-monospace, \"SF Mono\", Menlo, Consolas, monospace; font-size: 1.5rem; font-weight: 700; color: #fff; line-height: 1.1; }\n    .cadu-inv span { font-size: 0.64rem; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(255,255,255,0.62); }\n    .cadu-inv:hover span { color: #ffbe3d; }\n    .cadu-compass {\n        position: absolute; z-index: 1; right: -34px; top: 50%;\n        width: 300px; height: 300px; transform: translateY(-50%);\n        display: flex; align-items: center; justify-content: center;\n        opacity: 0.52; pointer-events: none;\n    }\n    .cadu-compass svg { width: 100%; height: 100%; display: block; }\n    .cadu-compass-rose, .cadu-compass-secondary { transform-box: fill-box; transform-origin: center; }\n    .cadu-compass-rose { transition: transform 0.55s cubic-bezier(0.34, 1.2, 0.64, 1); }\n    @media (prefers-reduced-motion: reduce) { .cadu-compass-rose { transition: none; } }\n    @media (prefers-reduced-motion: no-preference) {\n        .cadu-compass-secondary { animation: caduSpinRev 140s linear infinite; }\n    }\n    @keyframes caduSpinRev { to { transform: rotate(-360deg); } }\n\n    \/* Ausguck *\/\n    .cadu-lage {\n        display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap;\n        background: #f3f6f9;\n        border: 1px solid #e2e8f0;\n        border-left: 3px solid #3f5f75;\n        border-radius: 2px;\n        padding: 14px 20px;\n        margin-bottom: 14px;\n        text-decoration: none; color: inherit;\n        transition: background 0.16s ease;\n    }\n    .cadu-lage:hover { background: #ecf1f6; }\n    .cadu-lage-badge { display: inline-flex; align-items: center; gap: 8px; font-size: 0.7rem; font-weight: 700; letter-spacing: 0.14em; color: #1e3548; white-space: nowrap; }\n    \/* Messing-Funken als echtes Element: morst gelegentlich MOIN *\/\n    .cadu-lage-dot { width: 8px; height: 8px; background: #ffbe3d; border-radius: 1px; flex-shrink: 0; transition: box-shadow 0.1s ease, filter 0.1s ease; }\n    .cadu-lage-dot--on { box-shadow: 0 0 0 3px rgba(255,190,61,0.35), 0 0 12px rgba(255,190,61,0.9); filter: brightness(1.5); }\n    .cadu-lage-text { flex: 1 1 300px; font-size: 0.88rem; color: #475569; }\n    .cadu-lage-go { font-size: 0.84rem; font-weight: 600; color: #3f5f75; border-bottom: 1px solid transparent; padding-bottom: 1px; white-space: nowrap; }\n    .cadu-lage:hover .cadu-lage-go { color: #1e3548; border-color: #1e3548; }\n\n    \/* Werkzeugleiste *\/\n    .cadu-quick {\n        display: flex; flex-wrap: wrap;\n        background: #fff;\n        border: 1px solid #d0d0d0;\n        border-radius: 4px;\n        box-shadow: 0 1px 3px rgba(0,0,0,0.03);\n        margin-bottom: 14px;\n        overflow: hidden;\n    }\n    .cadu-quick a {\n        flex: 1 1 0; min-width: 150px;\n        display: flex; align-items: center; gap: 11px;\n        padding: 13px 16px;\n        text-decoration: none; color: inherit;\n        border-left: 1px solid #e8e8e8;\n        transition: background 0.16s ease;\n    }\n    .cadu-quick a:first-child { border-left: none; }\n    .cadu-quick a:hover { background: #f4f7f9; }\n    \/* Kurzbefehl-Kachel statt Icon: wie ein Befehls-Alias in AutoCAD *\/\n    .cadu-quick-code {\n        flex-shrink: 0; min-width: 34px; height: 30px; padding: 0 5px;\n        display: inline-flex; align-items: center; justify-content: center;\n        border: 1px solid #c9d6e0; border-radius: 1px;\n        font-family: ui-monospace, \"SF Mono\", Menlo, Consolas, monospace;\n        font-size: 0.6rem; font-weight: 700; letter-spacing: 0.08em;\n        color: #3f5f75;\n        transition: border-color 0.16s ease, color 0.16s ease;\n    }\n    .cadu-quick a:hover .cadu-quick-code { border-color: #3f5f75; color: #1e3548; }\n    .cadu-quick-name { font-size: 0.82rem; font-weight: 700; color: #1e293b; line-height: 1.25; transition: color 0.16s ease; }\n    .cadu-quick a:hover .cadu-quick-name { color: #1e3548; }\n    .cadu-quick-sub { font-size: 0.66rem; letter-spacing: 0.05em; color: #94a3b8; margin-top: 2px; }\n\n    \/* Logbuch *\/\n    .cadu-log {\n        display: none;\n        align-items: baseline; gap: 8px 14px; flex-wrap: wrap;\n        background: #f3f6f9; border: 1px solid #e2e8f0; border-left: 3px solid #3f5f75; border-radius: 2px;\n        padding: 11px 16px; margin-bottom: 14px;\n        font-size: 0.84rem; color: #334155;\n    }\n    .cadu-log.cadu-log--on { display: flex; }\n    .cadu-log-label { font-size: 0.66rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.12em; color: #7f8c8d; }\n    .cadu-log a { color: #3f5f75; font-weight: 600; text-decoration: none; border-bottom: 1px solid transparent; }\n    .cadu-log a:hover { color: #1e3548; border-color: #1e3548; }\n    .cadu-log-note { margin-left: auto; font-size: 0.7rem; color: #94a3b8; }\n\n    \/* Abschnittskoepfe als Plankopf: Haarlinien-Kopfzeile *\/\n    .cadu-route-head { padding: 26px 0 4px; }\n    .cadu-route-bar { display: flex; align-items: baseline; gap: 16px; flex-wrap: wrap; border-bottom: 1px solid #1e3548; padding-bottom: 9px; margin-bottom: 10px; }\n    .cadu-route-kicker { font-size: 0.68rem; font-weight: 700; letter-spacing: 0.16em; color: #55708a; }\n    .cadu-route-title { font-family: \"Iowan Old Style\", \"Palatino Linotype\", Palatino, Georgia, serif; font-size: 1.5rem; font-weight: 600; color: #1e3548; margin: 0; letter-spacing: 0.002em; }\n    .cadu-route-note { margin-left: auto; font-size: 0.66rem; letter-spacing: 0.1em; color: #94a3b8; }\n    .cadu-route-sub { font-size: 0.9rem; color: #64748b; margin: 0; }\n\n    .cadu-route { position: relative; padding: 20px 0 8px; margin-bottom: 20px; }\n    .cadu-spine { position: absolute; left: 50%; top: 0; bottom: 46px; width: 0; border-left: 2px dashed #c9d6e0; transform: translateX(-1px); }\n    .cadu-spine-fill { position: absolute; left: 50%; top: 0; width: 2px; height: 100%; max-height: calc(100% - 52px); background: #3f5f75; transform: translateX(-1px); }\n    .cadu-js .cadu-spine-fill { height: 0; }\n\n    \/* Das Schiff auf der Kurslinie (nur mit JS und ohne reduced motion) *\/\n    .cadu-ship {\n        display: none;\n        position: absolute; left: 50%; top: 0; z-index: 3;\n        width: 30px; height: 42px;\n        transform: translate(-50%, -60%);\n        pointer-events: none;\n        filter: drop-shadow(0 2px 3px rgba(30,53,72,0.25));\n    }\n    .cadu-ship svg { display: block; width: 100%; height: 100%; }\n    @media (prefers-reduced-motion: no-preference) {\n        .cadu-js .cadu-ship { display: block; }\n    }\n\n    .cadu-wp { position: relative; display: grid; grid-template-columns: 1fr 60px 1fr; align-items: center; margin-bottom: 10px; }\n    .cadu-wp-mark {\n        grid-column: 2; justify-self: center; z-index: 2;\n        width: 20px; height: 20px; border-radius: 50%;\n        background: #fff; border: 2px solid #9db4c4;\n        display: flex; align-items: center; justify-content: center;\n        transition: border-color 0.4s ease, background 0.4s ease;\n    }\n    .cadu-wp-mark::after { content: \"\"; width: 6px; height: 6px; border-radius: 50%; background: transparent; transition: background 0.4s ease; }\n    .cadu-wp.cadu-lit .cadu-wp-mark { border-color: #3f5f75; background: #3f5f75; }\n    .cadu-wp.cadu-lit .cadu-wp-mark::after { background: #ffbe3d; }\n\n    \/* Gravierte Kartenziffer: Serifen-Kontur wie auf einer gestochenen Seekarte *\/\n    .cadu-wp-num { grid-row: 1; user-select: none; align-self: start; margin-top: 2px; }\n    .cadu-wp-num svg { display: block; width: clamp(92px, 9vw, 126px); height: auto; }\n    .cadu-wp-num svg text { opacity: 0.42; transition: opacity 0.4s ease; }\n    .cadu-wp.cadu-lit .cadu-wp-num svg text { opacity: 0.75; }\n    .cadu-wp-num i { display: block; font-style: normal; font-family: ui-monospace, \"SF Mono\", Menlo, Consolas, monospace; font-size: 0.62rem; font-weight: 700; letter-spacing: 0.16em; color: rgba(63,95,117,0.45); margin-top: 4px; }\n    .cadu-wp:nth-child(even) .cadu-wp-num i { text-align: right; }\n    .cadu-wp:nth-child(odd) .cadu-wp-num { grid-column: 3; justify-self: start; padding-left: 34px; text-align: left; }\n    .cadu-wp:nth-child(even) .cadu-wp-num { grid-column: 1; justify-self: end; padding-right: 34px; text-align: right; }\n\n    .cadu-card {\n        display: block; text-decoration: none; color: inherit;\n        background: #fff; border: 1px solid #d0d0d0; border-radius: 4px;\n        box-shadow: 0 1px 3px rgba(0,0,0,0.03);\n        max-width: 470px; width: 100%;\n        overflow: hidden;\n        transition: transform 0.22s ease, box-shadow 0.22s ease;\n    }\n    .cadu-card:hover { transform: translateY(-3px); box-shadow: 0 6px 20px rgba(63,95,117,0.10), 0 2px 6px rgba(0,0,0,0.04); }\n    .cadu-wp:nth-child(odd) .cadu-card { grid-column: 1; grid-row: 1; justify-self: end; }\n    .cadu-wp:nth-child(even) .cadu-card { grid-column: 3; grid-row: 1; justify-self: start; }\n    .cadu-card-head { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; border-bottom: 1px solid #e2e8f0; padding: 11px 18px 8px; }\n    .cadu-card-st { font-size: 0.68rem; font-weight: 700; letter-spacing: 0.12em; color: #55708a; }\n    .cadu-card-spruch { font-size: 0.66rem; letter-spacing: 0.1em; color: #94a3b8; text-transform: uppercase; }\n    .cadu-card-body { padding: 15px 18px 16px; }\n    .cadu-card-title { font-family: \"Iowan Old Style\", \"Palatino Linotype\", Palatino, Georgia, serif; font-size: 1.28rem; font-weight: 600; color: #1e3548; margin: 0 0 8px; }\n    .cadu-card-text { font-size: 0.88rem; color: #475569; margin: 0 0 12px; line-height: 1.6; }\n    .cadu-card-foot { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }\n    .cadu-card-go { font-size: 0.84rem; font-weight: 600; color: #3f5f75; transition: color 0.16s ease; }\n    .cadu-card:hover .cadu-card-go { color: #1e3548; }\n    .cadu-card-n { font-size: 0.68rem; letter-spacing: 0.08em; color: #94a3b8; }\n\n    .cadu-route-end { position: relative; z-index: 2; display: flex; flex-direction: column; align-items: center; gap: 6px; padding-top: 4px; }\n    .cadu-route-end svg { width: 30px; height: 30px; color: #3f5f75; background: #fff; border-radius: 2px; }\n    .cadu-route-end span { font-size: 0.7rem; letter-spacing: 0.12em; color: #55708a; }\n\n    \/* Reveals (nur mit JS und ohne reduced motion) *\/\n    @media (prefers-reduced-motion: no-preference) {\n        .cadu-js .cadu-rev { opacity: 0; transform: translateY(16px); transition: opacity 0.6s ease, transform 0.6s ease; }\n        .cadu-js .cadu-rev.cadu-rev-on { opacity: 1; transform: translateY(0); }\n    }\n\n    \/* Bordwerkstatt *\/\n    .cadu-shop-head { padding: 6px 0 12px; }\n    .cadu-band {\n        background: #f3f6f9;\n        border: 1px solid #e2e8f0;\n        border-radius: 4px;\n        padding: 20px 22px 18px;\n        margin-bottom: 30px;\n    }\n    \/* 190px statt 212px: fuenf Spalten bleiben im schmaleren cadu-inner laenger nebeneinander *\/\n    .cadu-shop-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 0; }\n    .cadu-shop-col { padding: 2px 20px 8px; min-width: 0; border-left: 1px solid #dde6ec; }\n    .cadu-shop-col:first-child { border-left: none; padding-left: 2px; }\n    .cadu-shop-col h3 { font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.12em; color: #55708a; margin: 0 0 8px; }\n    .cadu-shop-col ul { list-style: none; margin: 0; padding: 0; }\n    .cadu-shop-col li { border-top: 1px solid #e4ebf1; }\n    .cadu-shop-col li:first-child { border-top: none; }\n    .cadu-shop-col a { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; text-decoration: none; color: #334155; font-size: 0.85rem; padding: 6px 2px; transition: color 0.15s ease; }\n    .cadu-shop-col a:hover { color: #1e3548; }\n    .cadu-shop-col a:hover .cadu-shop-item { border-color: #9db4c4; }\n    .cadu-shop-item { border-bottom: 1px solid transparent; padding-bottom: 1px; transition: border-color 0.15s ease; min-width: 0; }\n    .cadu-shop-n { font-size: 0.66rem; color: #94a3b8; white-space: nowrap; }\n    \/* Markiert die druckbaren Referenz-Eintraege, unterscheidbar vom Mono-Kurzbefehl rechts durch Groesse und Position *\/\n    .cadu-shop-fmt { font-family: ui-monospace, \"SF Mono\", Menlo, Consolas, monospace; font-size: 0.58rem; letter-spacing: 0.05em; color: #94a3b8; margin-left: 6px; white-space: nowrap; }\n    .cadu-band-foot { display: flex; justify-content: space-between; align-items: baseline; gap: 14px; flex-wrap: wrap; margin-top: 14px; }\n    .cadu-band-foot-note { font-size: 0.8rem; color: #64748b; margin: 0; }\n    .cadu-band-foot a { font-size: 0.84rem; font-weight: 600; color: #3f5f75; text-decoration: none; border-bottom: 1px solid transparent; padding-bottom: 1px; }\n    .cadu-band-foot a:hover { color: #1e3548; border-color: #1e3548; }\n\n    \/* Schiffskasse *\/\n    .cadu-spend { display: grid; grid-template-columns: 1.35fr auto 1fr; gap: 34px; padding: 6px 4px 8px; align-items: stretch; }\n    .cadu-spend-intro { display: flex; flex-direction: column; justify-content: space-between; }\n    .cadu-spend-text { font-size: 0.92rem; color: #475569; line-height: 1.65; margin: 0 0 12px; max-width: 54ch; }\n    .cadu-spend-line { font-size: 0.68rem; letter-spacing: 0.12em; color: #94a3b8; border-top: 1px solid #e2e8f0; padding-top: 10px; }\n    .cadu-qr { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }\n    .cadu-qr-cap { font-size: 0.64rem; letter-spacing: 0.12em; color: #94a3b8; margin-top: 8px; }\n    .cadu-qr-cap + .cadu-qr-cap { margin-top: 4px; font-size: 0.7rem; letter-spacing: 0.02em; color: #64748b; }\n    .cadu-facts { list-style: none; margin: 4px 0 0; padding: 14px 0 0 22px; border-left: 1px solid #e2e8f0; }\n    .cadu-facts li { font-size: 0.78rem; letter-spacing: 0.03em; color: #55708a; padding: 5px 0; }\n    .cadu-facts li::before { content: \"\"; display: inline-block; width: 6px; height: 6px; background: #3f5f75; border-radius: 1px; margin-right: 10px; }\n    .cadu-facts a { color: #3f5f75; text-decoration: none; border-bottom: 1px solid transparent; padding-bottom: 1px; }\n    .cadu-facts a:hover { color: #1e3548; border-color: #1e3548; }\n\n    @media (max-width: 900px) {\n        .cadu-inner { width: 100%; }\n        .cadu-hero { padding: 20px 18px; }\n        .cadu-hero-title { font-size: 1.6rem; }\n        .cadu-inv b { font-size: 1.2rem; }\n        .cadu-compass { width: 210px; height: 210px; right: -54px; opacity: 0.36; }\n        .cadu-route-note { margin-left: 0; flex-basis: 100%; }\n        .cadu-quick { flex-direction: column; }\n        .cadu-quick a { border-left: none; border-top: 1px solid #e8e8e8; }\n        .cadu-quick a:first-child { border-top: none; }\n        .cadu-log-note { margin-left: 0; flex-basis: 100%; }\n        .cadu-spine, .cadu-spine-fill { left: 12px; }\n        .cadu-ship { left: 12px; }\n        .cadu-wp { grid-template-columns: 40px 1fr; margin-bottom: 12px; }\n        .cadu-wp-mark { grid-column: 1; }\n        .cadu-wp-num { display: none; }\n        .cadu-wp:nth-child(odd) .cadu-card, .cadu-wp:nth-child(even) .cadu-card { grid-column: 2; grid-row: 1; justify-self: stretch; max-width: none; }\n        .cadu-route-end { align-items: flex-start; padding-left: 34px; }\n        .cadu-band { padding: 16px; }\n        .cadu-shop-cols { grid-template-columns: 1fr; }\n        .cadu-shop-col { border-left: none; border-top: 1px solid #dde6ec; padding: 12px 2px 8px; }\n        .cadu-shop-col:first-child { border-top: none; padding-top: 2px; }\n        .cadu-inv { padding-right: 20px; }\n        .cadu-inv + .cadu-inv { padding-left: 20px; }\n        .cadu-spend { grid-template-columns: 1fr; gap: 20px; }\n        .cadu-qr { align-items: flex-start; justify-content: flex-start; text-align: left; }\n        .cadu-facts { border-left: none; padding-left: 2px; border-top: 1px solid #e2e8f0; }\n        .cadu-cmd-hint { display: none; }\n    }\n\n    \/* Befehlszeile (Easteregg) *\/\n    .cadu-cmd {\n        position: fixed; left: 50%; bottom: 18px; transform: translateX(-50%);\n        width: min(660px, calc(100vw - 28px)); z-index: 90;\n        font-family: ui-monospace, \"SF Mono\", Menlo, Consolas, monospace;\n    }\n    .cadu-cmd[hidden] { display: none; }\n    .cadu-cmd-panel {\n        background: #1e3548; border: 1px solid rgba(255,255,255,0.22); border-bottom: none;\n        border-radius: 3px 3px 0 0; max-height: min(400px, 55vh); overflow-y: auto;\n        box-shadow: 0 14px 40px rgba(30,53,72,0.35);\n    }\n    .cadu-cmd-panel:empty { display: none; }\n    .cadu-cmd-panel:empty + .cadu-cmd-bar { border-radius: 3px; }\n    .cadu-cmd-row { display: flex; align-items: baseline; gap: 12px; padding: 8px 14px; border-top: 1px solid rgba(255,255,255,0.07); cursor: pointer; }\n    .cadu-cmd-row:first-child { border-top: none; }\n    .cadu-cmd-row b { color: #ffbe3d; font-size: 0.72rem; letter-spacing: 0.08em; min-width: 64px; font-weight: 700; }\n    .cadu-cmd-row span { color: #fff; font-size: 0.78rem; }\n    .cadu-cmd-row i { margin-left: auto; font-style: normal; color: rgba(255,255,255,0.45); font-size: 0.66rem; letter-spacing: 0.06em; white-space: nowrap; }\n    .cadu-cmd-row:hover, .cadu-cmd-row--sel { background: rgba(255,190,61,0.13); }\n    .cadu-cmd-note { padding: 9px 14px; color: rgba(255,255,255,0.55); font-size: 0.68rem; letter-spacing: 0.04em; border-top: 1px solid rgba(255,255,255,0.07); }\n    .cadu-cmd-note--resp { color: #ffd685; font-size: 0.78rem; letter-spacing: 0.02em; }\n    .cadu-cmd-bar {\n        display: flex; align-items: center; gap: 10px;\n        background: #1e3548; border: 1px solid rgba(255,255,255,0.22);\n        border-radius: 0 0 3px 3px; padding: 11px 14px;\n        box-shadow: 0 14px 40px rgba(30,53,72,0.35);\n    }\n    .cadu-cmd-prompt { color: #9db4c4; font-size: 0.74rem; letter-spacing: 0.06em; }\n    .cadu-cmd-input { color: #fff; font-size: 0.82rem; font-weight: 700; letter-spacing: 0.12em; white-space: pre; }\n    .cadu-cmd-caret { width: 8px; height: 15px; background: #ffbe3d; flex-shrink: 0; }\n    @media (prefers-reduced-motion: no-preference) { .cadu-cmd-caret { animation: caduCaret 1.05s steps(1) infinite; } }\n    @keyframes caduCaret { 50% { opacity: 0; } }\n    .cadu-cmd-hint { margin-left: auto; color: rgba(255,255,255,0.38); font-size: 0.6rem; letter-spacing: 0.1em; white-space: nowrap; }\n\n    \/* Befehls-Ziel leuchtet kurz messing auf *\/\n    .cadu-cmd-flash { animation: caduCmdFlash 1.5s ease; }\n    @keyframes caduCmdFlash { 0% { box-shadow: 0 0 0 3px rgba(255,190,61,0.6); } 100% { box-shadow: 0 0 0 3px rgba(255,190,61,0); } }\n\n    \/* STURM (Easteregg) *\/\n    .cadu-hero::after {\n        content: \"\"; position: absolute; inset: -20px; pointer-events: none; opacity: 0;\n        background: repeating-linear-gradient(115deg, rgba(255,255,255,0.16) 0 1px, transparent 1px 9px);\n        transition: opacity 0.5s ease;\n    }\n    @media (prefers-reduced-motion: no-preference) {\n        .cadu-storm .cadu-hero::before { animation: caduGust 0.4s linear infinite; }\n        .cadu-storm .cadu-hero::after { opacity: 1; animation: caduRain 0.4s linear infinite; }\n        .cadu-storm .cadu-compass-rose { transition-duration: 0.16s; }\n        .cadu-storm .cadu-ship svg { animation: caduPitch 0.55s ease-in-out infinite; transform-origin: 50% 60%; }\n    }\n    @keyframes caduGust { 0% { transform: translate3d(0,0,0); } 25% { transform: translate3d(-7px,3px,0); } 50% { transform: translate3d(5px,-4px,0); } 75% { transform: translate3d(-4px,6px,0); } 100% { transform: translate3d(0,0,0); } }\n    @keyframes caduRain { to { background-position: -90px 70px; } }\n    @keyframes caduPitch { 0%, 100% { transform: rotate(-6deg); } 50% { transform: rotate(7deg) translateY(1px); } }\n<\/style>\n\n<div class=\"cadu-page\">\n\n    <!-- Hero -->\n    <header class=\"cadu-hero\" aria-labelledby=\"cadu-title\">\n        <div class=\"cadu-hero-text\">\n            <div class=\"cadu-hero-eyebrow\">CAD-Kompass &middot; Startseite<\/div>\n            <h1 class=\"cadu-hero-title\" id=\"cadu-title\">Auch bei Sturm den Kurs halten.<\/h1>\n            <p class=\"cadu-hero-sub\">Tutorials, Rechner und Nachschlagewerke f&uuml;r AutoCAD und Civil&nbsp;3D im Tiefbau. Dazu jeden Tag die Lage: was sich bei Autodesk tut, und ob es dich betrifft.<\/p>\n        <\/div>\n        <div class=\"cadu-inventar\">\n            <a class=\"cadu-inv\" href=\"#cadu-route\"><b data-count=\"4\">4<\/b><span>Lernbereiche<\/span><\/a>\n            <a class=\"cadu-inv\" href=\"#cadu-werkstatt\"><b data-count=\"18\">18<\/b><span>Rechner<\/span><\/a>\n            <a class=\"cadu-inv\" href=\"#cadu-werkstatt\"><b data-count=\"421\">421<\/b><span>Nachschlage-Eintr&auml;ge<\/span><\/a>\n            <a class=\"cadu-inv\" href=\"#cadu-lage\"><b>1<\/b><span>Lagebericht t&auml;glich<\/span><\/a>\n        <\/div>\n        <div class=\"cadu-compass\" aria-hidden=\"true\">\n            <svg viewBox=\"0 0 200 200\" fill=\"none\" stroke=\"currentColor\">\n                <defs>\n                    <filter id=\"caduNeedleGlow\" x=\"-60%\" y=\"-60%\" width=\"220%\" height=\"220%\">\n                        <feGaussianBlur stdDeviation=\"3\" result=\"caduGlow\"\/>\n                        <feMerge><feMergeNode in=\"caduGlow\"\/><feMergeNode in=\"SourceGraphic\"\/><\/feMerge>\n                    <\/filter>\n                <\/defs>\n                <circle cx=\"100\" cy=\"100\" r=\"96\" stroke=\"rgba(255,255,255,0.32)\" stroke-width=\"1.2\"\/>\n                <circle cx=\"100\" cy=\"100\" r=\"88\" stroke=\"rgba(255,255,255,0.18)\" stroke-width=\"0.8\"\/>\n                <g stroke=\"rgba(255,255,255,0.7)\" stroke-width=\"1.6\">\n                    <line x1=\"100\" y1=\"4\" x2=\"100\" y2=\"16\"\/>\n                    <line x1=\"184\" y1=\"100\" x2=\"196\" y2=\"100\"\/>\n                    <line x1=\"100\" y1=\"184\" x2=\"100\" y2=\"196\"\/>\n                    <line x1=\"4\" y1=\"100\" x2=\"16\" y2=\"100\"\/>\n                <\/g>\n                <g stroke=\"rgba(255,255,255,0.5)\" stroke-width=\"1.2\">\n                    <g transform=\"rotate(30 100 100)\"><line x1=\"100\" y1=\"4\" x2=\"100\" y2=\"13\"\/><\/g>\n                    <g transform=\"rotate(60 100 100)\"><line x1=\"100\" y1=\"4\" x2=\"100\" y2=\"13\"\/><\/g>\n                    <g transform=\"rotate(120 100 100)\"><line x1=\"100\" y1=\"4\" x2=\"100\" y2=\"13\"\/><\/g>\n                    <g transform=\"rotate(150 100 100)\"><line x1=\"100\" y1=\"4\" x2=\"100\" y2=\"13\"\/><\/g>\n                    <g transform=\"rotate(210 100 100)\"><line x1=\"100\" y1=\"4\" x2=\"100\" y2=\"13\"\/><\/g>\n                    <g transform=\"rotate(240 100 100)\"><line x1=\"100\" y1=\"4\" x2=\"100\" y2=\"13\"\/><\/g>\n                    <g transform=\"rotate(300 100 100)\"><line x1=\"100\" y1=\"4\" x2=\"100\" y2=\"13\"\/><\/g>\n                    <g transform=\"rotate(330 100 100)\"><line x1=\"100\" y1=\"4\" x2=\"100\" y2=\"13\"\/><\/g>\n                <\/g>\n                <g fill=\"rgba(255,255,255,0.92)\" stroke=\"none\" font-family=\"ui-monospace, monospace\" font-weight=\"700\" font-size=\"11\" text-anchor=\"middle\">\n                    <text x=\"100\" y=\"29\">N<\/text>\n                    <text x=\"171\" y=\"104\">O<\/text>\n                    <text x=\"100\" y=\"178\">S<\/text>\n                    <text x=\"29\" y=\"104\">W<\/text>\n                <\/g>\n                <g class=\"cadu-compass-secondary\">\n                    <circle cx=\"100\" cy=\"100\" r=\"80\" stroke=\"rgba(255,255,255,0.18)\" stroke-width=\"0.6\" stroke-dasharray=\"2 6\"\/>\n                <\/g>\n                <g class=\"cadu-compass-rose\" data-rose>\n                    <circle cx=\"100\" cy=\"100\" r=\"72\" stroke=\"rgba(255,255,255,0.16)\" stroke-width=\"0.6\" stroke-dasharray=\"3 5\"\/>\n                    <g stroke=\"none\">\n                        <g filter=\"url(#caduNeedleGlow)\">\n                            <polygon points=\"100,18 105,96 100,100\" fill=\"#ffbe3d\"\/>\n                            <polygon points=\"100,18 100,100 95,96\" fill=\"#c47a1e\"\/>\n                        <\/g>\n                        <polygon points=\"182,100 104,105 100,100\" fill=\"rgba(255,255,255,0.85)\"\/>\n                        <polygon points=\"182,100 100,100 104,95\" fill=\"rgba(255,255,255,0.5)\"\/>\n                        <polygon points=\"100,182 105,104 100,100\" fill=\"rgba(255,255,255,0.45)\"\/>\n                        <polygon points=\"100,182 100,100 95,104\" fill=\"rgba(255,255,255,0.25)\"\/>\n                        <polygon points=\"18,100 96,105 100,100\" fill=\"rgba(255,255,255,0.85)\"\/>\n                        <polygon points=\"18,100 100,100 96,95\" fill=\"rgba(255,255,255,0.5)\"\/>\n                    <\/g>\n                    <g stroke=\"none\">\n                        <g transform=\"rotate(45 100 100)\"><polygon points=\"100,42 103,98 100,100\" fill=\"rgba(255,255,255,0.7)\"\/><polygon points=\"100,42 100,100 97,98\" fill=\"rgba(255,255,255,0.4)\"\/><\/g>\n                        <g transform=\"rotate(135 100 100)\"><polygon points=\"100,42 103,98 100,100\" fill=\"rgba(255,255,255,0.6)\"\/><polygon points=\"100,42 100,100 97,98\" fill=\"rgba(255,255,255,0.35)\"\/><\/g>\n                        <g transform=\"rotate(225 100 100)\"><polygon points=\"100,42 103,98 100,100\" fill=\"rgba(255,255,255,0.6)\"\/><polygon points=\"100,42 100,100 97,98\" fill=\"rgba(255,255,255,0.35)\"\/><\/g>\n                        <g transform=\"rotate(315 100 100)\"><polygon points=\"100,42 103,98 100,100\" fill=\"rgba(255,255,255,0.6)\"\/><polygon points=\"100,42 100,100 97,98\" fill=\"rgba(255,255,255,0.35)\"\/><\/g>\n                    <\/g>\n                <\/g>\n                <circle cx=\"100\" cy=\"100\" r=\"9\" fill=\"#2a4a5c\" stroke=\"rgba(255,255,255,0.95)\" stroke-width=\"1.4\"\/>\n                <circle cx=\"100\" cy=\"100\" r=\"2.8\" fill=\"#ffbe3d\"\/>\n            <\/svg>\n        <\/div>\n    <\/header>\n\n    <div class=\"cadu-inner\">\n\n        <!-- Ausguck -->\n        <a class=\"cadu-lage cadu-rev\" href=\"?page_id=2141\" id=\"cadu-lage\">\n            <span class=\"cadu-lage-badge cadu-mono\"><i class=\"cadu-lage-dot\" aria-hidden=\"true\"><\/i>AUSGUCK<\/span>\n            <span class=\"cadu-lage-text\">Jeden Morgen ein Lagebericht: was sich bei Autodesk tut, und ob es dich betrifft. Vorsortiert von einer KI, die Regeln setzt der Kapit&auml;n.<\/span>\n            <span class=\"cadu-lage-go\">Zum Ausguck<\/span>\n        <\/a>\n\n        <!-- Werkzeugleiste -->\n        <nav class=\"cadu-quick cadu-rev\" aria-label=\"Schnellzugriff auf die meistgenutzten Werkzeuge\">\n            <a href=\"?p=1743\" data-cmd-target=\"epsg\">\n                <span class=\"cadu-quick-code\" aria-hidden=\"true\">EPSG<\/span>\n                <span><span class=\"cadu-quick-name\">EPSG-Finder<\/span><br><span class=\"cadu-quick-sub cadu-mono\">Ort &middot; Code<\/span><\/span>\n            <\/a>\n            <a href=\"?p=1751\" data-cmd-target=\"koo\">\n                <span class=\"cadu-quick-code\" aria-hidden=\"true\">KOO<\/span>\n                <span><span class=\"cadu-quick-name\">Koordinaten<\/span><br><span class=\"cadu-quick-sub cadu-mono\">UTM &middot; GMS<\/span><\/span>\n            <\/a>\n            <a href=\"?p=1757\" data-cmd-target=\"sys\">\n                <span class=\"cadu-quick-code\" aria-hidden=\"true\">SYS<\/span>\n                <span><span class=\"cadu-quick-name\">Systemvariablen<\/span><br><span class=\"cadu-quick-sub cadu-mono\">226 Variablen<\/span><\/span>\n            <\/a>\n            <a href=\"?p=1755\" data-cmd-target=\"schacht\">\n                <span class=\"cadu-quick-code\" aria-hidden=\"true\">SCHACHT<\/span>\n                <span><span class=\"cadu-quick-name\">Schachtrechner<\/span><br><span class=\"cadu-quick-sub cadu-mono\">Ma&szlig;e<\/span><\/span>\n            <\/a>\n            <a href=\"?p=2233\" data-cmd-target=\"frei\">\n                <span class=\"cadu-quick-code\" aria-hidden=\"true\">FREI<\/span>\n                <span><span class=\"cadu-quick-name\">Freispiegelrechner<\/span><br><span class=\"cadu-quick-sub cadu-mono\">F&uuml;llgrad<\/span><\/span>\n            <\/a>\n            <a href=\"?p=2225\" data-cmd-target=\"hoai\">\n                <span class=\"cadu-quick-code\" aria-hidden=\"true\">HOAI<\/span>\n                <span><span class=\"cadu-quick-name\">HOAI-Rechner<\/span><br><span class=\"cadu-quick-sub cadu-mono\">Honorar<\/span><\/span>\n            <\/a>\n        <\/nav>\n\n        <!-- Logbuch -->\n        <div class=\"cadu-log\" data-logbuch>\n            <span class=\"cadu-log-label cadu-mono\">Logbuch<\/span>\n            <span data-logbuch-list>Weitermachen, wo du warst:<\/span>\n            <span class=\"cadu-log-note\">Stand aus deinem Browser, das sieht sonst niemand.<\/span>\n        <\/div>\n\n        <!-- Route -->\n        <div class=\"cadu-route-head cadu-rev\" id=\"cadu-route\">\n            <div class=\"cadu-route-bar\">\n                <span class=\"cadu-route-kicker cadu-mono\">DIE ROUTE<\/span>\n                <h2 class=\"cadu-route-title\">Vier Stationen, ein Kurs<\/h2>\n                <span class=\"cadu-route-note cadu-mono\">EINSTIEG FREI W&Auml;HLBAR<\/span>\n            <\/div>\n            <p class=\"cadu-route-sub\">Scroll die Route ab: das Schiff f&auml;hrt mit, die Kurslinie f&uuml;llt sich.<\/p>\n        <\/div>\n        <section class=\"cadu-route\" aria-label=\"Lernroute\" data-route>\n            <div class=\"cadu-spine\" aria-hidden=\"true\"><\/div>\n            <div class=\"cadu-spine-fill\" aria-hidden=\"true\" data-spine-fill><\/div>\n            <div class=\"cadu-ship\" aria-hidden=\"true\" data-ship>\n                <svg viewBox=\"0 0 24 34\">\n                    <line x1=\"8\" y1=\"1\" x2=\"9.6\" y2=\"5\" stroke=\"#9db4c4\" stroke-width=\"1.3\"\/>\n                    <line x1=\"16\" y1=\"1\" x2=\"14.4\" y2=\"5\" stroke=\"#9db4c4\" stroke-width=\"1.3\"\/>\n                    <path d=\"M 12 31.5 L 6.8 21 L 6.8 9 Q 6.8 4.5 12 4.5 Q 17.2 4.5 17.2 9 L 17.2 21 Z\" fill=\"#1e3548\" stroke=\"#fff\" stroke-width=\"1.6\"\/>\n                    <circle cx=\"12\" cy=\"11\" r=\"1.7\" fill=\"#ffbe3d\"\/>\n                <\/svg>\n            <\/div>\n\n            <div class=\"cadu-wp cadu-rev cadu-lit\" data-wp>\n                <span class=\"cadu-wp-mark\" aria-hidden=\"true\"><\/span>\n                <span class=\"cadu-wp-num\" aria-hidden=\"true\"><svg viewBox=\"0 0 130 76\"><text x=\"2\" y=\"62\" font-family=\"Iowan Old Style, Palatino Linotype, Palatino, Georgia, serif\" font-size=\"74\" font-weight=\"600\" letter-spacing=\"4\" fill=\"none\" stroke=\"#3f5f75\" stroke-width=\"1.4\">01<\/text><\/svg><i>KLARMACHEN<\/i><\/span>\n                <a class=\"cadu-card\" href=\"?page_id=60\" data-cmd-target=\"dock\">\n                    <div class=\"cadu-card-head\"><span class=\"cadu-card-st cadu-mono\">ST. 0+000<\/span><span class=\"cadu-card-spruch cadu-mono\">Klarmachen<\/span><\/div>\n                    <div class=\"cadu-card-body\">\n                        <h3 class=\"cadu-card-title\">Trockendock<\/h3>\n                        <p class=\"cadu-card-text\">Rechner, Lizenz, Installation und Grundeinstellungen. Erst klarmachen, dann ablegen: wer hier schludert, zahlt sp&auml;ter mit Wartezeit und Chaos in den Vorlagen.<\/p>\n                        <div class=\"cadu-card-foot\"><span class=\"cadu-card-go\">Kurs setzen<\/span><span class=\"cadu-card-n cadu-mono\">5 THEMEN<\/span><\/div>\n                    <\/div>\n                <\/a>\n            <\/div>\n\n            <div class=\"cadu-wp cadu-rev cadu-lit\" data-wp>\n                <span class=\"cadu-wp-mark\" aria-hidden=\"true\"><\/span>\n                <span class=\"cadu-wp-num\" aria-hidden=\"true\"><svg viewBox=\"0 0 130 76\"><text x=\"2\" y=\"62\" font-family=\"Iowan Old Style, Palatino Linotype, Palatino, Georgia, serif\" font-size=\"74\" font-weight=\"600\" letter-spacing=\"4\" fill=\"none\" stroke=\"#3f5f75\" stroke-width=\"1.4\">02<\/text><\/svg><i>AM RUDER<\/i><\/span>\n                <a class=\"cadu-card\" href=\"?page_id=1483\" data-cmd-target=\"steuer\">\n                    <div class=\"cadu-card-head\"><span class=\"cadu-card-st cadu-mono\">ST. 0+300<\/span><span class=\"cadu-card-spruch cadu-mono\">Am Ruder<\/span><\/div>\n                    <div class=\"cadu-card-body\">\n                        <h3 class=\"cadu-card-title\">Steuerrad<\/h3>\n                        <p class=\"cadu-card-text\">AutoCAD sicher bedienen: zeichnen, &auml;ndern, beschriften. Das Handwerk, auf dem Civil&nbsp;3D aufbaut, ohne das jede Achse zur Geduldsprobe wird.<\/p>\n                        <div class=\"cadu-card-foot\"><span class=\"cadu-card-go\">Kurs setzen<\/span><span class=\"cadu-card-n cadu-mono\">2D-HANDWERK<\/span><\/div>\n                    <\/div>\n                <\/a>\n            <\/div>\n\n            <div class=\"cadu-wp cadu-rev cadu-lit\" data-wp>\n                <span class=\"cadu-wp-mark\" aria-hidden=\"true\"><\/span>\n                <span class=\"cadu-wp-num\" aria-hidden=\"true\"><svg viewBox=\"0 0 130 76\"><text x=\"2\" y=\"62\" font-family=\"Iowan Old Style, Palatino Linotype, Palatino, Georgia, serif\" font-size=\"74\" font-weight=\"600\" letter-spacing=\"4\" fill=\"none\" stroke=\"#3f5f75\" stroke-width=\"1.4\">03<\/text><\/svg><i>AUF KURS<\/i><\/span>\n                <a class=\"cadu-card\" href=\"?page_id=2\" data-cmd-target=\"fahr\">\n                    <div class=\"cadu-card-head\"><span class=\"cadu-card-st cadu-mono\">ST. 0+600<\/span><span class=\"cadu-card-spruch cadu-mono\">Auf Kurs<\/span><\/div>\n                    <div class=\"cadu-card-body\">\n                        <h3 class=\"cadu-card-title\">Fahrwasser<\/h3>\n                        <p class=\"cadu-card-text\">Civil&nbsp;3D Kapitel f&uuml;r Kapitel: vom Gel&auml;ndemodell &uuml;ber Achsen und L&auml;ngsschnitt bis zur Planausgabe. Das Herzst&uuml;ck, aus echten Tiefbau-Projekten erkl&auml;rt.<\/p>\n                        <div class=\"cadu-card-foot\"><span class=\"cadu-card-go\">Kurs setzen<\/span><span class=\"cadu-card-n cadu-mono\">14 KAPITEL<\/span><\/div>\n                    <\/div>\n                <\/a>\n            <\/div>\n\n            <div class=\"cadu-wp cadu-rev cadu-lit\" data-wp>\n                <span class=\"cadu-wp-mark\" aria-hidden=\"true\"><\/span>\n                <span class=\"cadu-wp-num\" aria-hidden=\"true\"><svg viewBox=\"0 0 130 76\"><text x=\"2\" y=\"62\" font-family=\"Iowan Old Style, Palatino Linotype, Palatino, Georgia, serif\" font-size=\"74\" font-weight=\"600\" letter-spacing=\"4\" fill=\"none\" stroke=\"#3f5f75\" stroke-width=\"1.4\">04<\/text><\/svg><i>IN DIE TIEFE<\/i><\/span>\n                <a class=\"cadu-card\" href=\"?page_id=36\" data-cmd-target=\"tief\">\n                    <div class=\"cadu-card-head\"><span class=\"cadu-card-st cadu-mono\">ST. 1+000<\/span><span class=\"cadu-card-spruch cadu-mono\">In die Tiefe<\/span><\/div>\n                    <div class=\"cadu-card-body\">\n                        <h3 class=\"cadu-card-title\">Tiefgang<\/h3>\n                        <p class=\"cadu-card-text\">Dynamo, Data Shortcuts, Stile und Vorlagen: Spezialwissen f&uuml;r gr&ouml;&szlig;ere Projekte und wiederkehrende Aufgaben. Hier wird das Wasser tief, daf&uuml;r tr&auml;gt es auch.<\/p>\n                        <div class=\"cadu-card-foot\"><span class=\"cadu-card-go\">Kurs setzen<\/span><span class=\"cadu-card-n cadu-mono\">8 THEMEN<\/span><\/div>\n                    <\/div>\n                <\/a>\n            <\/div>\n\n            <div class=\"cadu-route-end cadu-rev\">\n                <svg viewBox=\"0 0 30 30\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.6\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\">\n                    <circle cx=\"15\" cy=\"8\" r=\"2.6\"\/>\n                    <line x1=\"15\" y1=\"10.6\" x2=\"15\" y2=\"23\"\/>\n                    <line x1=\"9.5\" y1=\"14\" x2=\"20.5\" y2=\"14\"\/>\n                    <path d=\"M 8 19 C 9.5 23 12 25 15 25.5 C 18 25 20.5 23 22 19\"\/>\n                <\/svg>\n                <span class=\"cadu-mono\">ST. 1+000 &middot; KURS LIEGT AN<\/span>\n            <\/div>\n        <\/section>\n\n        <!-- Bordwerkstatt -->\n        <div class=\"cadu-shop-head cadu-rev\" id=\"cadu-werkstatt\">\n            <div class=\"cadu-route-bar\">\n                <span class=\"cadu-route-kicker cadu-mono\">DIE BORDWERKSTATT<\/span>\n                <h2 class=\"cadu-route-title\">Kostenlose Rechner und Nachschlagewerke<\/h2>\n                <span class=\"cadu-route-note cadu-mono\">18 RECHNER &middot; 2 FINDER &middot; 2 REFERENZEN<\/span>\n            <\/div>\n            <p class=\"cadu-route-sub\">Direkt im Browser, nichts installieren, nichts anmelden. F&uuml;r die Aufgaben, die sonst im Taschenrechner oder in Excel landen.<\/p>\n        <\/div>\n        <section class=\"cadu-band cadu-rev\" aria-label=\"Alle Rechner und Nachschlagewerke\">\n            <div class=\"cadu-shop-cols\">\n                <div class=\"cadu-shop-col\">\n                    <h3>Ma&szlig;e &amp; Koordinaten<\/h3>\n                    <ul>\n                        <li><a href=\"?p=1725\"><span class=\"cadu-shop-item\">Neigungsrechner<\/span><span class=\"cadu-shop-n cadu-mono\">NEI<\/span><\/a><\/li>\n                        <li><a href=\"?p=1696\"><span class=\"cadu-shop-item\">Ma&szlig;stabsrechner<\/span><span class=\"cadu-shop-n cadu-mono\">MST<\/span><\/a><\/li>\n                        <li><a href=\"?p=1734\"><span class=\"cadu-shop-item\">Einheitenrechner<\/span><span class=\"cadu-shop-n cadu-mono\">EIN<\/span><\/a><\/li>\n                        <li><a href=\"?p=2219\"><span class=\"cadu-shop-item\">Rampenrechner<\/span><span class=\"cadu-shop-n cadu-mono\">RAMPE<\/span><\/a><\/li>\n                        <li><a href=\"?p=1751\"><span class=\"cadu-shop-item\">Koordinaten-Umrechner<\/span><span class=\"cadu-shop-n cadu-mono\">KOO<\/span><\/a><\/li>\n                        <li><a href=\"?p=1743\"><span class=\"cadu-shop-item\">EPSG-Finder<\/span><span class=\"cadu-shop-n cadu-mono\">EPSG<\/span><\/a><\/li>\n                    <\/ul>\n                <\/div>\n                <div class=\"cadu-shop-col\">\n                    <h3>Kanal &amp; Rohr<\/h3>\n                    <ul>\n                        <li><a href=\"?p=1749\"><span class=\"cadu-shop-item\">Haltungsrechner<\/span><span class=\"cadu-shop-n cadu-mono\">HAL<\/span><\/a><\/li>\n                        <li><a href=\"?p=2233\"><span class=\"cadu-shop-item\">Freispiegelrechner<\/span><span class=\"cadu-shop-n cadu-mono\">FREI<\/span><\/a><\/li>\n                        <li><a href=\"?p=2207\"><span class=\"cadu-shop-item\">Druckrohrrechner<\/span><span class=\"cadu-shop-n cadu-mono\">DRUCK<\/span><\/a><\/li>\n                        <li><a href=\"?p=1755\"><span class=\"cadu-shop-item\">Schachtrechner<\/span><span class=\"cadu-shop-n cadu-mono\">SCHACHT<\/span><\/a><\/li>\n                        <li><a href=\"?p=2217\"><span class=\"cadu-shop-item\">Regenabflussrechner<\/span><span class=\"cadu-shop-n cadu-mono\">REGEN<\/span><\/a><\/li>\n                    <\/ul>\n                <\/div>\n                <div class=\"cadu-shop-col\">\n                    <h3>Erdbau &amp; Beton<\/h3>\n                    <ul>\n                        <li><a href=\"?p=2215\"><span class=\"cadu-shop-item\">Rohrgrabenaushub<\/span><span class=\"cadu-shop-n cadu-mono\">ROHR<\/span><\/a><\/li>\n                        <li><a href=\"?p=2228\"><span class=\"cadu-shop-item\">Grabenverbau-Rechner<\/span><span class=\"cadu-shop-n cadu-mono\">VERBAU<\/span><\/a><\/li>\n                        <li><a href=\"?p=2212\"><span class=\"cadu-shop-item\">Sch&uuml;ttgutrechner<\/span><span class=\"cadu-shop-n cadu-mono\">SCHUETT<\/span><\/a><\/li>\n                        <li><a href=\"?p=2204\"><span class=\"cadu-shop-item\">Betonrechner<\/span><span class=\"cadu-shop-n cadu-mono\">BETON<\/span><\/a><\/li>\n                    <\/ul>\n                <\/div>\n                <div class=\"cadu-shop-col\">\n                    <h3>Werkstatt &amp; B&uuml;ro<\/h3>\n                    <ul>\n                        <li><a href=\"?p=1753\"><span class=\"cadu-shop-item\">Kurzbefehl-Trainer<\/span><span class=\"cadu-shop-n cadu-mono\">TRAINER<\/span><\/a><\/li>\n                        <li><a href=\"?p=1739\"><span class=\"cadu-shop-item\">DWG-Inspektor<\/span><span class=\"cadu-shop-n cadu-mono\">DWG<\/span><\/a><\/li>\n                        <li><a href=\"?p=2225\"><span class=\"cadu-shop-item\">HOAI-Rechner<\/span><span class=\"cadu-shop-n cadu-mono\">HOAI<\/span><\/a><\/li>\n                    <\/ul>\n                <\/div>\n                <div class=\"cadu-shop-col\">\n                    <h3>Nachschlagen<\/h3>\n                    <ul>\n                        <li><a href=\"?p=1737\" title=\"Interaktives Werkzeug im Browser\"><span class=\"cadu-shop-item\">Befehlsfinder<\/span><span class=\"cadu-shop-n cadu-mono\">BEF<\/span><\/a><\/li>\n                        <li><a href=\"?p=1757\" title=\"Interaktives Werkzeug im Browser\"><span class=\"cadu-shop-item\">Systemvariablen-Finder<\/span><span class=\"cadu-shop-n cadu-mono\">SYS<\/span><\/a><\/li>\n                        <li><a href=\"?p=2492\" title=\"Druckbare A4-Referenz\"><span class=\"cadu-shop-item\">Kurzbefehle-Referenz<span class=\"cadu-shop-fmt\">A4<\/span><\/span><span class=\"cadu-shop-n cadu-mono\">KURZ<\/span><\/a><\/li>\n                        <li><a href=\"?p=2495\" title=\"Druckbare A4-Referenz\"><span class=\"cadu-shop-item\">Systemvariablen-Referenz<span class=\"cadu-shop-fmt\">A4<\/span><\/span><span class=\"cadu-shop-n cadu-mono\">SYSREF<\/span><\/a><\/li>\n                    <\/ul>\n                <\/div>\n            <\/div>\n            <div class=\"cadu-band-foot\">\n                <p class=\"cadu-band-foot-note\">Alles l&auml;uft komplett in deinem Browser: deine Zahlen verlassen den Rechner nicht.<\/p>\n                <a href=\"?page_id=1682\">Zum Tool-Lab<\/a>\n            <\/div>\n        <\/section>\n\n        <!-- Schiffskasse -->\n        <div class=\"cadu-route-head cadu-rev\" id=\"cadu-spenden\">\n            <div class=\"cadu-route-bar\">\n                <span class=\"cadu-route-kicker cadu-mono\">DIE SCHIFFSKASSE<\/span>\n                <h2 class=\"cadu-route-title\">Wenn dir CAD-Kompass weiterhilft<\/h2>\n                <span class=\"cadu-route-note cadu-mono\">FREIWILLIG &middot; PAYPAL<\/span>\n            <\/div>\n        <\/div>\n        <section class=\"cadu-spend cadu-rev\" aria-label=\"Spenden\">\n            <div class=\"cadu-spend-intro\">\n                <p class=\"cadu-spend-text\">Alle Inhalte und Rechner sind kostenlos, und das bleibt so. Die Server und der t&auml;gliche Ausguck kosten trotzdem Geld. Wenn dir die Seite gerade einen Nachmittag Sucherei erspart hat, freut sich die Schiffskasse &uuml;ber einen kleinen Beitrag. Ohne Anmeldung und ohne Gegenleistung, einfach den Code scannen.<\/p>\n                <div class=\"cadu-spend-line cadu-mono\">PAYPAL &middot; EINMALIG &middot; JEDER BETRAG HILFT<\/div>\n            <\/div>\n            <div class=\"cadu-qr\">\n                <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/cad-kompass.de\/wp-content\/uploads\/2026\/08\/Paypal.jpg\" alt=\"PayPal-Spenden-QR-Code fuer CAD-Kompass\" width=\"152\" height=\"152\" style=\"width: 152px; height: 152px; display: block; border: 1px solid #d0d0d0; border-radius: 4px; box-shadow: 0 1px 3px rgba(0,0,0,0.03);\">\n                <div class=\"cadu-qr-cap cadu-mono\">MIT DEM HANDY SCANNEN<\/div>\n                <div class=\"cadu-qr-cap cadu-mono\">ODER PER HAND: PAYPAL@CAD-KOMPASS.DE<\/div>\n            <\/div>\n            <ul class=\"cadu-facts cadu-mono\">\n                <li>Eigene Server in Deutschland<\/li>\n                <li>Keine Tracker, kein Cookie-Banner<\/li>\n                <li>Keine Werbung, keine Affiliate-Links<\/li>\n                <li>Alles kostenlos, ohne Anmeldung<\/li>\n                <li>Ein Mensch aus dem Tiefbau, kein Verlag<\/li>\n                <li>Fragen? <a href=\"mailto:kontakt@cad-kompass.de\">Kontakt zum Kapit&auml;n<\/a><\/li>\n            <\/ul>\n        <\/section>\n\n    <\/div>\n\n    <!-- Befehlszeile (Easteregg) -->\n    <div class=\"cadu-cmd\" data-cmd hidden role=\"group\" aria-label=\"Befehlszeile\">\n        <div class=\"cadu-cmd-panel\" data-cmd-panel aria-live=\"polite\"><\/div>\n        <div class=\"cadu-cmd-bar\">\n            <span class=\"cadu-cmd-prompt\">Befehl:<\/span>\n            <span class=\"cadu-cmd-input\" data-cmd-input><\/span>\n            <span class=\"cadu-cmd-caret\" aria-hidden=\"true\"><\/span>\n            <span class=\"cadu-cmd-hint\">ENTER F&Uuml;HRT AUS &middot; ESC SCHLIESST &middot; HILFE ZEIGT ALLES<\/span>\n        <\/div>\n    <\/div>\n\n<\/div>\n\n<script>\n    (function () {\n        'use strict';\n        var prefersReducedMotion = window.matchMedia ? window.matchMedia('(prefers-reduced-motion: reduce)').matches : false;\n        var hasFinePointer = window.matchMedia ? window.matchMedia('(pointer: fine)').matches : false;\n        var page = document.querySelector('.cadu-page');\n        if (!page) { return; }\n\n        \/* Logbuch *\/\n        (function logbuch() {\n            var bar = page.querySelector('[data-logbuch]');\n            var list = page.querySelector('[data-logbuch-list]');\n            if (!bar) { return; }\n            if (!list) { return; }\n            var hubs = [\n                { slug: 'trockendock', name: 'Trockendock', href: '?page_id=60' },\n                { slug: 'steuerrad', name: 'Steuerrad', href: '?page_id=1483' },\n                { slug: 'fahrwasser', name: 'Fahrwasser', href: '?page_id=2' },\n                { slug: 'tiefgang', name: 'Tiefgang', href: '?page_id=36' }\n            ];\n            var found = [];\n            hubs.forEach(function (hub) {\n                var n = 0;\n                try {\n                    var raw = localStorage.getItem('cadk_hub_' + hub.slug + '_v1');\n                    if (raw) {\n                        var arr = JSON.parse(raw);\n                        if (Object.prototype.toString.call(arr) === '[object Array]') { n = arr.length; }\n                    }\n                } catch (e) { n = 0; }\n                if (n > 0) { found.push({ hub: hub, n: n }); }\n            });\n            if (found.length === 0) { return; }\n            list.textContent = 'Weitermachen, wo du warst: ';\n            found.forEach(function (entry, i) {\n                if (i > 0) { list.appendChild(document.createTextNode(' \u00b7 ')); }\n                var a = document.createElement('a');\n                a.href = entry.hub.href;\n                a.textContent = entry.hub.name;\n                list.appendChild(a);\n                list.appendChild(document.createTextNode(' (' + entry.n + ' erledigt)'));\n            });\n            bar.classList.add('cadu-log--on');\n        })();\n\n        \/* Kurslinie fuellt sich, Schiff faehrt mit *\/\n        var route = page.querySelector('[data-route]');\n        var spineFill = page.querySelector('[data-spine-fill]');\n        var ship = page.querySelector('[data-ship]');\n        var needleRefresh = null;\n        var heroRose = null;\n        page.classList.add('cadu-js');\n\n        function clamp01(v) {\n            if (v < 0) { return 0; }\n            if (v > 1) { return 1; }\n            return v;\n        }\n\n        \/* Bei sehr hohen Fenstern liegen 55% der Fensterhoehe schon hinter dem\n           Routenanfang; Rohwert beim Start abziehen, damit das Schiff immer\n           am Anfang der Linie beginnt. *\/\n        var routeBaseline = 0;\n        if (route) {\n            var r0 = route.getBoundingClientRect();\n            routeBaseline = (window.innerHeight * 0.55 - r0.top) \/ r0.height;\n        }\n\n        var ticking = false;\n        function onScroll() {\n            if (ticking) { return; }\n            ticking = true;\n            requestAnimationFrame(function () {\n                ticking = false;\n                if (route) {\n                    var r = route.getBoundingClientRect();\n                    var mid = window.innerHeight * 0.55;\n                    var raw = (mid - r.top) \/ r.height;\n                    var f = clamp01(raw - routeBaseline);\n                    if (spineFill) { spineFill.style.height = (f * 100).toFixed(1) + '%'; }\n                    if (ship) {\n                        \/* Vor dem Anker beidrehen, nicht in die Schlusszeile fahren *\/\n                        var fShip = Math.min(f, 1 - 84 \/ r.height);\n                        ship.style.top = (fShip * 100).toFixed(2) + '%';\n                    }\n                }\n            });\n        }\n        window.addEventListener('scroll', onScroll, { passive: true });\n        window.addEventListener('resize', onScroll);\n        onScroll();\n\n        \/* Kompassnadel peilt die Karte unter der Maus an *\/\n        (function compassAim() {\n            var compass = page.querySelector('.cadu-compass');\n            if (!compass) { return; }\n            var rose = compass.querySelector('[data-rose]');\n            if (!rose) { return; }\n            var start = page.querySelector('.cadu-card');\n            var current = start;\n\n            function angleTo(el) {\n                if (!el) { return 0; }\n                var c = compass.getBoundingClientRect();\n                if (c.width === 0) { return 0; }\n                var t = el.getBoundingClientRect();\n                var cx = c.left + c.width \/ 2;\n                var cy = c.top + c.height \/ 2;\n                var tx = t.left + t.width \/ 2;\n                var ty = t.top + t.height \/ 2;\n                return Math.atan2(ty - cy, tx - cx) * 180 \/ Math.PI + 90;\n            }\n            function refresh() {\n                if (current) { rose.style.transform = 'rotate(' + angleTo(current).toFixed(2) + 'deg)'; }\n            }\n            needleRefresh = refresh;\n            heroRose = rose;\n            refresh();\n\n            if (prefersReducedMotion) { return; }\n            if (!hasFinePointer) { return; }\n\n            var targets = Array.prototype.slice.call(page.querySelectorAll('.cadu-card, .cadu-quick a'));\n            targets.forEach(function (el) {\n                el.addEventListener('mouseenter', function () { current = el; refresh(); });\n                el.addEventListener('mouseleave', function () { current = start; refresh(); });\n            });\n            var aimTicking = false;\n            function onAimScroll() {\n                if (aimTicking) { return; }\n                aimTicking = true;\n                requestAnimationFrame(function () { aimTicking = false; refresh(); });\n            }\n            window.addEventListener('scroll', onAimScroll, { passive: true });\n            window.addEventListener('resize', onAimScroll);\n        })();\n\n        \/* Hero-Raster leicht parallax zur Maus *\/\n        (function heroParallax() {\n            if (prefersReducedMotion) { return; }\n            if (!hasFinePointer) { return; }\n            var hero = page.querySelector('.cadu-hero');\n            if (!hero) { return; }\n            var lastX = 0, lastY = 0, pTicking = false;\n            function apply() {\n                hero.style.setProperty('--cadu-grid-x', lastX.toFixed(1) + 'px');\n                hero.style.setProperty('--cadu-grid-y', lastY.toFixed(1) + 'px');\n                pTicking = false;\n            }\n            hero.addEventListener('mousemove', function (e) {\n                var rect = hero.getBoundingClientRect();\n                var nx = (e.clientX - rect.left) \/ rect.width - 0.5;\n                var ny = (e.clientY - rect.top) \/ rect.height - 0.5;\n                lastX = nx * -16;\n                lastY = ny * -16;\n                if (!pTicking) { requestAnimationFrame(apply); pTicking = true; }\n            }, { passive: true });\n            hero.addEventListener('mouseleave', function () {\n                lastX = 0; lastY = 0;\n                if (!pTicking) { requestAnimationFrame(apply); pTicking = true; }\n            });\n        })();\n\n        \/* Eastereggs (bewusst eingebaut, kein Debug-Rest) *\/\n\n        \/* STURM: kurzer Seegang, danach schwingt die Nadel zurueck auf Kurs *\/\n        function runSturm() {\n            if (prefersReducedMotion) { return false; }\n            if (page.classList.contains('cadu-storm')) { return true; }\n            page.classList.add('cadu-storm');\n            var wild = null;\n            if (heroRose) {\n                wild = setInterval(function () {\n                    heroRose.style.transform = 'rotate(' + Math.round(Math.random() * 360) + 'deg)';\n                }, 170);\n            }\n            setTimeout(function () {\n                if (wild) { clearInterval(wild); }\n                page.classList.remove('cadu-storm');\n                if (needleRefresh) { needleRefresh(); }\n            }, 4300);\n            return true;\n        }\n\n        \/* Befehlszeile: lostippen genuegt, Vorschlaege zeigen die Befehle *\/\n        (function befehlszeile() {\n            var wrap = page.querySelector('[data-cmd]');\n            var inputEl = page.querySelector('[data-cmd-input]');\n            var panelEl = page.querySelector('[data-cmd-panel]');\n            if (!wrap) { return; }\n            if (!inputEl) { return; }\n            if (!panelEl) { return; }\n\n            var CMDS = [\n                { c: 'NEI', n: 'Neigungsrechner', d: 'Rechner', h: '?p=1725' },\n                { c: 'MST', n: '', d: 'Rechner', h: '?p=1696' },\n                { c: 'EIN', n: 'Einheitenrechner', d: 'Rechner', h: '?p=1734' },\n                { c: 'RAMPE', n: 'Rampenrechner', d: 'Rechner', h: '?p=2219' },\n                { c: 'KOO', n: 'Koordinaten-Umrechner', d: 'Rechner', h: '?p=1751' },\n                { c: 'EPSG', n: 'EPSG-Finder', d: 'Finder', h: '?p=1743' },\n                { c: 'HAL', n: 'Haltungsrechner', d: 'Rechner', h: '?p=1749' },\n                { c: 'FREI', n: 'Freispiegelrechner', d: 'Rechner', h: '?p=2233' },\n                { c: 'DRUCK', n: 'Druckrohrrechner', d: 'Rechner', h: '?p=2207' },\n                { c: 'SCHACHT', n: 'Schachtrechner', d: 'Rechner', h: '?p=1755' },\n                { c: 'REGEN', n: 'Regenabflussrechner', d: 'Rechner', h: '?p=2217' },\n                { c: 'ROHR', n: 'Rohrgrabenaushub', d: 'Rechner', h: '?p=2215' },\n                { c: 'VERBAU', n: 'Grabenverbau-Rechner', d: 'Rechner', h: '?p=2228' },\n                { c: 'SCHUETT', n: '', d: 'Rechner', h: '?p=2212' },\n                { c: 'BETON', n: 'Betonrechner', d: 'Rechner', h: '?p=2204' },\n                { c: 'HOAI', n: 'HOAI-Rechner', d: 'Rechner', h: '?p=2225' },\n                { c: 'TRAINER', n: 'Kurzbefehl-Trainer', d: 'Werkzeug', h: '?p=1753' },\n                { c: 'DWG', n: 'DWG-Inspektor', d: 'Werkzeug', h: '?p=1739' },\n                { c: 'BEF', n: 'Befehlsfinder', d: 'Finder', h: '?p=1737' },\n                { c: 'SYS', n: 'Systemvariablen-Finder', d: 'Finder', h: '?p=1757' },\n                { c: 'KURZ', n: 'Kurzbefehle-Referenz', d: 'Referenz', h: '?p=2492' },\n                { c: 'SYSREF', n: 'Systemvariablen-Referenz', d: 'Referenz', h: '?p=2495' },\n                { c: 'ROUTE', n: 'Die Route', d: 'vier Stationen', t: '#cadu-route .cadu-route-bar', h: '' },\n                { c: 'DOCK', n: 'Trockendock', d: 'Station 01', t: '', h: '?page_id=60' },\n                { c: 'STEUER', n: 'Steuerrad', d: 'Station 02', t: '[data-cmd-target=\"steuer\"]', h: '?page_id=1483' },\n                { c: 'FAHR', n: 'Fahrwasser', d: 'Station 03', t: '[data-cmd-target=\"fahr\"]', h: '?page_id=2' },\n                { c: 'TIEF', n: 'Tiefgang', d: 'Station 04', t: '[data-cmd-target=\"tief\"]', h: '?page_id=36' },\n                { c: 'WERK', n: 'Bordwerkstatt', d: 'alle Rechner', t: '.cadu-band', h: '' },\n                { c: 'LAGE', n: 'Ausguck', d: 'Lagebericht', t: '.cadu-lage', h: '?page_id=2141' },\n                { c: 'KASSE', n: 'Schiffskasse', d: 'Spenden', t: '.cadu-spend', h: '' },\n                { c: 'HILFE', n: 'Alle Befehle zeigen', d: '?', t: '', h: '', help: true }\n            ];\n            \/* Scharfes S und Umlaut ohne rohe Sonderzeichen im Script: *\/\n            CMDS.forEach(function (cm) {\n                if (cm.c === 'MST') { cm.n = 'Ma' + String.fromCharCode(223) + 'stabsrechner'; }\n                if (cm.c === 'SCHUETT') { cm.n = 'Sch' + String.fromCharCode(252) + 'ttgutrechner'; }\n            });\n\n            var SECRETS = {\n                MOIN: 'Moin.',\n                MAYDAY: 'Ruhig bleiben. Kurs halten. Durchatmen hilft: Zen und Zorn.',\n                LINIE: 'Ersten Punkt angeben: ... nicht hier. Linien zeichnen wir im Steuerrad.',\n                ZOOM: 'Schon ganz rausgezoomt. Mehr Karte gibt es nicht.',\n                ANKER: 'Anker faellt. Du bleibst also noch ein bisschen. Freut uns.'\n            };\n\n            var open = false;\n            var buf = '';\n            var sel = 0;\n            var mode = '';\n            var curList = [];\n            var idleTimer = null;\n            var respTimer = null;\n\n            function openBar() { wrap.hidden = false; open = true; }\n            function closeBar() {\n                wrap.hidden = true; open = false; buf = ''; sel = 0; mode = '';\n                inputEl.textContent = ''; panelEl.textContent = '';\n                clearTimeout(idleTimer); clearTimeout(respTimer);\n            }\n            function armIdle() {\n                clearTimeout(idleTimer);\n                idleTimer = setTimeout(closeBar, 15000);\n            }\n            function filtered() {\n                var u = buf.toUpperCase();\n                var list = CMDS.filter(function (cm) {\n                    if (cm.c.indexOf(u) === 0) { return true; }\n                    return cm.n.toUpperCase().indexOf(u) === 0;\n                });\n                \/* Exakter Code-Treffer zuerst, dann Code-Anfang, dann Namens-Anfang *\/\n                list.sort(function (a, b) {\n                    function rank(cm) {\n                        if (cm.c === u) { return 0; }\n                        return cm.c.indexOf(u) === 0 ? 1 : 2;\n                    }\n                    return rank(a) - rank(b);\n                });\n                return list;\n            }\n            function render(list, note) {\n                panelEl.textContent = '';\n                list.forEach(function (cm, i) {\n                    var row = document.createElement('div');\n                    row.className = i === sel ? 'cadu-cmd-row cadu-cmd-row--sel' : 'cadu-cmd-row';\n                    var code = document.createElement('b');\n                    code.textContent = cm.c;\n                    var name = document.createElement('span');\n                    name.textContent = cm.n;\n                    var desc = document.createElement('i');\n                    desc.textContent = cm.d;\n                    row.appendChild(code);\n                    row.appendChild(name);\n                    row.appendChild(desc);\n                    row.addEventListener('click', function () { exec(cm); });\n                    panelEl.appendChild(row);\n                });\n                if (note) {\n                    var nt = document.createElement('div');\n                    nt.className = 'cadu-cmd-note';\n                    nt.textContent = note;\n                    panelEl.appendChild(nt);\n                }\n            }\n            function response(msg) {\n                panelEl.textContent = '';\n                var nt = document.createElement('div');\n                nt.className = 'cadu-cmd-note cadu-cmd-note--resp';\n                nt.textContent = msg;\n                panelEl.appendChild(nt);\n                clearTimeout(respTimer);\n                respTimer = setTimeout(closeBar, 4200);\n            }\n            function update() {\n                inputEl.textContent = buf;\n                curList = mode === 'help' ? CMDS : filtered();\n                render(curList, curList.length === 0 ? 'Unbekannt. HILFE zeigt alle Befehle.' : (mode === 'help' ? 'Nicht alle Befehle stehen auf der Liste.' : ''));\n                armIdle();\n            }\n            function flashTarget(el) {\n                el.scrollIntoView({ behavior: prefersReducedMotion ? 'auto' : 'smooth', block: 'center' });\n                el.classList.remove('cadu-cmd-flash');\n                void el.offsetWidth;\n                el.classList.add('cadu-cmd-flash');\n                setTimeout(function () { el.classList.remove('cadu-cmd-flash'); }, 1600);\n            }\n            function exec(cm) {\n                if (cm.help) {\n                    mode = 'help'; buf = ''; sel = 0;\n                    update();\n                    return;\n                }\n                if (cm.h) {\n                    if (cm.h !== '#') { location.href = cm.h; return; }\n                }\n                var el = cm.t ? document.querySelector(cm.t) : null;\n                if (el) {\n                    closeBar();\n                    flashTarget(el);\n                    return;\n                }\n                response('Legt bald an: ' + cm.n);\n            }\n            function onEnter() {\n                var u = buf.toUpperCase();\n                if (u === 'STURM') {\n                    var ok = runSturm();\n                    if (ok) { closeBar(); } else { response('Heute kein Sturm: reduzierte Bewegung ist aktiv. Kurs liegt trotzdem an.'); }\n                    return;\n                }\n                if (SECRETS[u]) { response(SECRETS[u]); return; }\n                if (curList.length) { exec(curList[Math.min(sel, curList.length - 1)]); return; }\n                if (u === '') { closeBar(); return; }\n                response('Unbekannter Befehl: ' + u + '. HILFE zeigt alle.');\n            }\n\n            document.addEventListener('keydown', function (e) {\n                var tgt = e.target;\n                var tag = tgt ? (tgt.tagName || '') : '';\n                if (tag === 'INPUT') { return; }\n                if (tag === 'TEXTAREA') { return; }\n                if (tag === 'SELECT') { return; }\n                if (tgt ? tgt.isContentEditable : false) { return; }\n                if (e.ctrlKey) { return; }\n                if (e.metaKey) { return; }\n                if (e.altKey) { return; }\n                var k = e.key ? e.key : '';\n                var isLetter = k.length === 1 ? \/[a-zA-Z]\/.test(k) : false;\n                if (!open) {\n                    if (isLetter) {\n                        openBar();\n                        buf = k.toUpperCase(); sel = 0; mode = '';\n                        update();\n                        e.preventDefault();\n                    }\n                    return;\n                }\n                if (k === 'Escape') { closeBar(); e.preventDefault(); return; }\n                if (k === 'Enter') { onEnter(); e.preventDefault(); return; }\n                if (k === 'Backspace') {\n                    buf = buf.slice(0, -1);\n                    if (buf === '') { closeBar(); } else { sel = 0; mode = ''; update(); }\n                    e.preventDefault();\n                    return;\n                }\n                if (k === 'ArrowDown') { sel = Math.min(sel + 1, Math.max(curList.length - 1, 0)); update(); e.preventDefault(); return; }\n                if (k === 'ArrowUp') { sel = Math.max(sel - 1, 0); update(); e.preventDefault(); return; }\n                if (isLetter) { buf = buf + k.toUpperCase(); sel = 0; mode = ''; update(); e.preventDefault(); }\n            });\n            document.addEventListener('click', function (e) {\n                if (!open) { return; }\n                if (wrap.contains(e.target)) { return; }\n                closeBar();\n            });\n        })();\n\n        \/* Morse-Funken: das Messing-Quadrat morst gelegentlich MOIN *\/\n        (function morse() {\n            if (prefersReducedMotion) { return; }\n            var dot = page.querySelector('.cadu-lage-dot');\n            if (!dot) { return; }\n            var UNIT = 150;\n            var CODE = { M: '--', O: '---', I: '..', N: '-.' };\n            var seq = [];\n            'MOIN'.split('').forEach(function (ch) {\n                var sym = CODE[ch] || '';\n                sym.split('').forEach(function (s, si) {\n                    seq.push({ on: s === '.' ? UNIT : UNIT * 3 });\n                    seq.push({ off: si === sym.length - 1 ? UNIT * 3 : UNIT });\n                });\n            });\n            var playing = false;\n            function play() {\n                if (playing) { return; }\n                playing = true;\n                var i = 0;\n                function step() {\n                    if (i >= seq.length) {\n                        playing = false;\n                        dot.classList.remove('cadu-lage-dot--on');\n                        return;\n                    }\n                    var st = seq[i];\n                    i = i + 1;\n                    if (st.on) {\n                        dot.classList.add('cadu-lage-dot--on');\n                        setTimeout(step, st.on);\n                    } else {\n                        dot.classList.remove('cadu-lage-dot--on');\n                        setTimeout(step, st.off);\n                    }\n                }\n                step();\n            }\n            setTimeout(play, 12000);\n            setInterval(play, 200000);\n        })();\n\n        \/* Konsolen-Gruss (console.log ist Absicht, kein Debug-Rest) *\/\n        (function gruss() {\n            try {\n                var lines = [\n                    '            |\\\\',\n                    '            | \\\\',\n                    '            |  \\\\',\n                    '      ______|___\\\\______',\n                    '      \\\\   CAD-KOMPASS  \/',\n                    '  ~~~~~\\\\______________\/~~~~~',\n                    '',\n                    'Moin! Wenn du hier unten liest, bist du vom Fach.',\n                    'Fundstuecke und Ideen gern an den Kapitaen: kontakt@cad-kompass.de',\n                    'PS: Tipp einfach auf der Seite los. Der Befehl HILFE zeigt alles.'\n                ];\n                console.log(lines.join('\\n'));\n            } catch (err) {}\n        })();\n\n        \/* Reveals, Wegpunkte, Zaehler *\/\n        if (typeof window.IntersectionObserver === 'undefined') {\n            page.classList.remove('cadu-js');\n            return;\n        }\n\n        var revObserver = new IntersectionObserver(function (entries) {\n            entries.forEach(function (entry) {\n                if (!entry.isIntersecting) { return; }\n                entry.target.classList.add('cadu-rev-on');\n                revObserver.unobserve(entry.target);\n            });\n        }, { rootMargin: '0px 0px -12% 0px', threshold: 0.05 });\n        Array.prototype.slice.call(page.querySelectorAll('.cadu-rev')).forEach(function (el) { revObserver.observe(el); });\n\n        Array.prototype.slice.call(page.querySelectorAll('[data-wp]')).forEach(function (el) { el.classList.remove('cadu-lit'); });\n        var wpObserver = new IntersectionObserver(function (entries) {\n            entries.forEach(function (entry) {\n                var el = entry.target;\n                if (entry.isIntersecting) { el.classList.add('cadu-lit'); } else {\n                    if (entry.boundingClientRect.top > 0) { el.classList.remove('cadu-lit'); }\n                }\n            });\n        }, { rootMargin: '-30% 0px -45% 0px', threshold: 0 });\n        Array.prototype.slice.call(page.querySelectorAll('[data-wp]')).forEach(function (el) { wpObserver.observe(el); });\n\n        if (!prefersReducedMotion) {\n            var countObserver = new IntersectionObserver(function (entries) {\n                entries.forEach(function (entry) {\n                    if (!entry.isIntersecting) { return; }\n                    var el = entry.target;\n                    countObserver.unobserve(el);\n                    var target = parseInt(el.getAttribute('data-count'), 10);\n                    if (isNaN(target)) { return; }\n                    var start = null;\n                    var dur = 900;\n                    function tick(ts) {\n                        if (start === null) { start = ts; }\n                        var q = clamp01((ts - start) \/ dur);\n                        var eased = 1 - (1 - q) * (1 - q);\n                        el.textContent = String(Math.round(eased * target));\n                        if (q < 1) { requestAnimationFrame(tick); }\n                    }\n                    requestAnimationFrame(tick);\n                });\n            }, { threshold: 0.6 });\n            Array.prototype.slice.call(page.querySelectorAll('[data-count]')).forEach(function (el) { countObserver.observe(el); });\n        }\n    })();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>CAD-Kompass &middot; Startseite Auch bei Sturm den Kurs halten. Tutorials, Rechner und Nachschlagewerke f&uuml;r AutoCAD und Civil&nbsp;3D im Tiefbau. Dazu [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":8,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-162","page","type-page","status-publish","hentry"],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":false,"author_link":"https:\/\/cad-kompass.de\/?author=1"},"uagb_comment_info":0,"uagb_excerpt":"CAD-Kompass &middot; Startseite Auch bei Sturm den Kurs halten. Tutorials, Rechner und Nachschlagewerke f&uuml;r AutoCAD und Civil&nbsp;3D im Tiefbau. Dazu [&hellip;]","_links":{"self":[{"href":"https:\/\/cad-kompass.de\/index.php?rest_route=\/wp\/v2\/pages\/162","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cad-kompass.de\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/cad-kompass.de\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/cad-kompass.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cad-kompass.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=162"}],"version-history":[{"count":73,"href":"https:\/\/cad-kompass.de\/index.php?rest_route=\/wp\/v2\/pages\/162\/revisions"}],"predecessor-version":[{"id":2508,"href":"https:\/\/cad-kompass.de\/index.php?rest_route=\/wp\/v2\/pages\/162\/revisions\/2508"}],"wp:attachment":[{"href":"https:\/\/cad-kompass.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=162"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}