@font-face{font-family:Inter;src:url(/static/inter-400.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Inter;src:url(/static/inter-500.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:Inter;src:url(/static/inter-600.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:Inter;src:url(/static/inter-700.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}
*{box-sizing:border-box}html{color-scheme:light}body{margin:0;color:#062a2e;background:#ecf1ef;font-family:system,Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:16px;line-height:1.5}button,input,textarea{font:inherit}button,a,input,textarea{ -webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #709800;outline-offset:4px}h1,h2,h3,p{margin:0}h1{font-size:clamp(42px,7.6vw,66px);line-height:1.02;letter-spacing:-2.8px;font-weight:850}h2{font-size:32px;line-height:1.15;letter-spacing:-1.2px}h3{font-size:20px;letter-spacing:-.4px}.topbar{max-width:1160px;margin:auto;padding:28px 36px;display:flex;justify-content:space-between;align-items:center}.brand{display:flex;gap:12px;align-items:center;font-size:13px;font-weight:800;letter-spacing:1.7px;text-decoration:none;line-height:1.25}.brand-sub{display:block;font-size:9px;letter-spacing:1.4px;opacity:.65;margin-top:3px}.sound-button,.small-button{font-size:12px;background:transparent;border:1px solid #c9cdc3;border-radius:100px;padding:10px 15px;font-weight:650}.guest-main{max-width:1000px;min-height:650px;margin:auto;padding:30px 36px 34px;display:flex;align-items:center;justify-content:center}.welcome{display:grid;grid-template-columns:1fr 1fr;align-items:center;width:100%;gap:54px}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:800;text-transform:uppercase;margin-bottom:20px;color:#647069;display:flex;align-items:center;gap:8px}.dot{width:7px;height:7px;background:#709800;border-radius:50%;display:inline-block}.accent{color:#4d6a00}.lede{font-size:17px;color:#4f5960;line-height:1.7;margin:22px 0 26px;max-width:360px}.primary,.secondary{border:0;border-radius:14px;padding:17px 22px;font-weight:750;display:flex;align-items:center;justify-content:space-between;gap:25px;min-height:56px;text-decoration:none;width:100%;font-size:15px}.primary{color:#ffffff;background:#062a2e;box-shadow:0 5px 0 #031c1f;transition:transform .15s,box-shadow .15s}.primary:hover{background:#2c443b;transform:translateY(-1px)}.primary:active{transform:translateY(3px);box-shadow:0 2px 0 #031c1f}.secondary{background:#eeeee7;border:1px solid #d8ddd2;color:#062a2e;margin-top:12px;box-shadow:none}.primary .arrow{font-size:22px}.tiny{font-size:11px;color:#6a746c;margin-top:17px;line-height:1.7}.pills{display:flex;gap:8px;margin-top:24px;flex-wrap:wrap}.pill{font-size:10px;font-weight:700;letter-spacing:.2px;padding:7px 11px;border:1px solid #d4d9cd;border-radius:30px}.art{position:relative;min-height:410px;display:flex;align-items:center;justify-content:center}.orbit{position:absolute;width:380px;height:380px;border-radius:50%;border:1px dashed #ccd2c4}.orbit:after{content:"";position:absolute;inset:25px;border:1px solid #e3e6db;border-radius:50%}.ticket{width:270px;background:#b6f034;border:2px solid #062a2e;border-radius:25px;transform:rotate(-9deg);box-shadow:12px 14px 0 #062a2e;z-index:1;overflow:hidden}.ticket-top{padding:24px;display:flex;justify-content:space-between;align-items:center;font-size:9px;letter-spacing:1.6px;font-weight:800;border-bottom:2px dashed #789646}.ticket-art{padding:32px 30px 22px;text-align:center}.wifi-art{height:110px;width:180px;fill:none;stroke:#062a2e;stroke-width:13;stroke-linecap:round}.ticket-label{font-size:35px;font-weight:900;letter-spacing:-1.8px;line-height:1;margin-top:18px}.ticket-bottom{border-top:2px dashed #789646;margin:22px 0 0;padding:17px 22px;display:flex;justify-content:space-between;font-size:9px;font-weight:800;letter-spacing:1.3px}.sticker{position:absolute;z-index:2;background:#d4dfdb;right:0;top:48px;padding:13px 20px;border:2px solid #062a2e;border-radius:8px;transform:rotate(9deg);font-size:12px;font-weight:800;box-shadow:4px 4px 0 #062a2e}.spark{position:absolute;font-size:50px;line-height:1;font-family:Georgia,serif;left:0;top:47px;transform:rotate(15deg)}.art-caption{position:absolute;bottom:0;right:15px;transform:rotate(-7deg);font-family:Georgia,serif;font-style:italic;font-size:16px;color:#67715d}.guest-footer{max-width:1088px;margin:0 auto;padding:25px 36px;border-top:1px solid #dedfd5;display:flex;justify-content:space-between;font-size:11px;color:#727a72}.text-button{font-size:inherit;border:0;background:none;padding:0;color:inherit;text-decoration:underline;text-underline-offset:3px}.flow{width:100%;max-width:460px;animation:arrive .25s ease-out}.progress{display:flex;gap:7px;margin-bottom:30px}.progress i{height:4px;flex:1;background:#dfe2d6;border-radius:9px}.progress i.active{background:#749348}.back{border:0;background:none;color:#737d70;padding:0;margin-bottom:24px;font-size:12px}.flow .lede{max-width:none;margin:17px 0 24px}.steps{list-style:none;margin:26px 0;padding:0;display:grid;gap:19px}.steps li{display:flex;gap:15px;align-items:flex-start;font-size:14px}.number{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:30px;height:30px;border:1px solid #c6ceba;border-radius:50%;font-size:11px;font-weight:800}.steps small{display:block;color:#737c70;font-size:12px;margin-top:3px}.field{display:block;font-size:12px;font-weight:700;margin:20px 0 8px}input,textarea{width:100%;background:#ffffff;color:#062a2e;border:1px solid #ced3c5;border-radius:12px;padding:14px 16px;font-size:16px}input:focus,textarea:focus{border-color:#74864c}textarea{resize:vertical;min-height:140px}input[type=file]{font-size:13px;padding:12px}.field-help{font-size:12px;color:#78816f;margin:9px 0 26px}.choice{display:flex;align-items:center;width:100%;background:#ffffff;border:1px solid #d9ddcf;padding:22px 20px;border-radius:17px;gap:18px;text-align:left;margin-top:13px;color:#062a2e}.choice:hover{border-color:#799641;background:#f0f5e4}.choice-icon{height:52px;width:52px;flex-shrink:0;border-radius:14px;background:#e9defb;display:grid;place-items:center;font-weight:850;font-size:24px}.choice:nth-of-type(2) .choice-icon{background:#e1edb7}.choice strong{font-size:17px}.choice small{display:block;font-size:12px;color:#6d7868;line-height:1.6}.choice .arrow{margin-left:auto;font-size:23px}.answer{border:1px solid #d4dacb;background:#ffffff;border-radius:13px;width:100%;padding:16px;display:flex;gap:13px;align-items:center;color:#062a2e;text-align:left;font-size:14px;margin-top:12px;min-height:60px}.answer:hover{background:#eaf4d4;border-color:#7b924a}.answer-letter{border:1px solid #d0d6c7;width:27px;height:27px;border-radius:8px;font-size:11px;font-weight:700;display:grid;place-items:center;flex-shrink:0}.question-title{font-size:29px;line-height:1.2;margin-bottom:28px}.feedback{font-size:13px;padding:13px 0;color:#566f35;min-height:47px}.reflex-pad{width:100%;height:260px;border:2px solid #062a2e;border-radius:24px;background:#e9d7b7;box-shadow:0 7px 0 #062a2e;color:#062a2e;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:30px;font-weight:800;gap:10px;user-select:none;-webkit-user-select:none}.reflex-pad small{font-size:13px;font-weight:500}.reflex-pad.ready{background:#b6f034}.reflex-pad.waiting{background:#e9d7b7}.result-badge{width:66px;height:66px;display:grid;place-items:center;border:2px solid #062a2e;background:#b6f034;border-radius:22px;transform:rotate(-9deg);font-size:35px;margin:0 auto 24px;box-shadow:4px 4px 0 #062a2e}.result{text-align:center}.result .eyebrow{justify-content:center}.result h1{font-size:43px}.voucher{position:relative;background:#e7f2cf;border:1px solid #bad184;border-radius:20px;padding:23px;margin:25px 0 20px}.voucher:before,.voucher:after{content:"";position:absolute;background:#ecf1ef;border:1px solid #bad184;width:18px;height:18px;border-radius:50%;top:63px}.voucher:before{left:-10px;border-left-color:transparent}.voucher:after{right:-10px;border-right-color:transparent}.voucher-label{font-size:10px;letter-spacing:1.8px;color:#64704e;font-weight:800}.voucher-code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:3px;font-size:clamp(23px,7vw,34px);font-weight:800;background:none;border:0;padding:14px 0 18px;text-align:center;width:100%;user-select:all}.voucher .primary{background:#062a2e;padding:12px 18px;min-height:46px;justify-content:center}.connection{border-top:1px solid #daddcf;margin-top:27px;padding-top:25px;text-align:left}.connection h3{font-size:17px}.connection .steps{margin:20px 0}.qr-details{margin-top:17px;border-top:1px solid #daddcf;padding-top:16px;font-size:12px;text-align:left}.qr-details summary{cursor:pointer;font-weight:650}.qr-details img{display:block;background:white;width:175px;height:175px;margin:18px auto}.notice{position:fixed;left:50%;transform:translateX(-50%);bottom:25px;max-width:calc(100% - 32px);width:max-content;background:#062a2e;color:#f5f7ed;padding:15px 22px;border-radius:14px;z-index:20;font-size:13px;box-shadow:0 5px 25px #062a2e20}.notice[hidden]{display:none}#confetti{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:10}dialog{border:1px solid #ccd3c4;border-radius:22px;max-width:480px;width:calc(100% - 32px);padding:30px;background:#ecf1ef;color:#062a2e}dialog::backdrop{background:#062a2e88}dialog p:not(.eyebrow){font-size:13px;margin:17px 0;color:#616c5c}.close{float:right;border:0;background:none;font-size:27px}.loading{color:#66785c}.error-box{background:#f6e4da;border:1px solid #e6c1a8;padding:14px;border-radius:12px;font-size:13px;margin:15px 0}.admin{background:#ecf1ef}.admin .topbar{max-width:1250px}.admin-main{max-width:1180px;margin:30px auto 60px;padding:0 28px}.admin-title{display:flex;align-items:end;justify-content:space-between;margin:20px 0 28px}.admin h1{font-size:39px;letter-spacing:-1.5px}.admin .eyebrow{margin-bottom:10px}.muted{font-size:13px;color:#737c70}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:28px}.stat{background:#ffffff;border:1px solid #dce0d2;border-radius:17px;padding:22px}.stat:first-child{background:#e7f2cf}.stat strong{display:block;font-size:37px;letter-spacing:-1px}.stat span{font-size:12px;color:#707b60}.admin-grid{display:grid;grid-template-columns:340px 1fr;gap:24px;align-items:start}.panel{background:#ffffff;border:1px solid #dce0d2;border-radius:20px;padding:25px;min-width:0}.panel h2{font-size:22px;letter-spacing:-.6px;margin-bottom:9px}.panel .field{margin-top:18px}.panel .primary{margin-top:17px}.upload-note{font-size:12px;line-height:1.7;color:#738064;margin:10px 0}.filter-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.filter-grid .wide{grid-column:1/-1}.filter-grid .field{margin-top:8px}.filter-grid input{font-size:13px;padding:10px;min-width:0}.filter-actions{display:flex;gap:10px;align-items:center;justify-content:space-between;margin:16px 0 22px}.filter-actions button,.filter-actions a{font-size:12px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap;font-size:12px}th{font-size:10px;text-transform:uppercase;letter-spacing:.6px;color:#7b826f;background:#f4f5ee}td,th{padding:13px 10px;border-bottom:1px solid #eaecdf}td.code{font-family:ui-monospace,monospace}.pagination{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:17px;font-size:11px}.login-panel{max-width:420px;margin:65px auto}.login-panel h1{font-size:30px}.admin-note{margin-top:24px;font-size:11px;line-height:1.7;color:#7c826d}#admin-error{margin-top:12px}#login-error{color:#9d402d;font-size:13px;margin-top:15px}.hidden{display:none!important}@keyframes arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(min-width:1000px){.welcome .primary{max-width:310px}.guest-main{padding-top:40px;padding-bottom:60px}.flow{margin-top:-8px}}@media(max-width:700px){.topbar{padding:20px 23px}.guest-main{padding:9px 24px 35px;min-height:0}.welcome{grid-template-columns:1fr;gap:5px;max-width:420px}.welcome-content{order:2}.welcome .eyebrow{margin-bottom:14px;font-size:10px}.welcome h1{font-size:47px;letter-spacing:-2.3px}.welcome .lede{font-size:14px;line-height:1.65;margin:17px 0 22px}.welcome .pills{margin-top:23px}.art{order:1;min-height:243px;margin-bottom:18px}.orbit{width:229px;height:229px}.ticket{width:166px;border-radius:17px;box-shadow:7px 8px 0 #062a2e;transform:rotate(-8deg)}.ticket-top{padding:11px 13px;font-size:6px;letter-spacing:1px}.ticket-art{padding:16px 16px 7px}.wifi-art{width:100px;height:60px}.ticket-label{font-size:23px;margin-top:8px}.ticket-bottom{font-size:5px;margin-top:10px;padding:9px 13px;letter-spacing:1px}.sticker{right:calc(50% - 152px);top:27px;padding:8px 13px;font-size:9px;box-shadow:3px 3px 0 #062a2e}.spark{left:calc(50% - 137px);top:19px;font-size:37px}.art-caption{font-size:12px;right:calc(50% - 151px);bottom:5px}.guest-footer{margin-top:14px;padding:20px 24px;flex-direction:column;gap:10px;align-items:center;font-size:10px}.flow{padding-top:24px;min-height:520px}.result{padding-top:25px}.result h1{font-size:39px}.flow .lede{font-size:15px}.flow h2{font-size:31px}.progress{margin-bottom:28px}.stats{gap:8px}.stat{padding:14px}.stat strong{font-size:27px}.stat span{font-size:10px}.admin-main{padding:0 18px}.admin-grid{grid-template-columns:1fr}.admin-title{align-items:start;gap:15px}.admin h1{font-size:30px}.admin-title .muted{max-width:130px;font-size:11px}.panel{padding:21px}.admin .topbar{padding:20px 18px}.login-panel{margin:35px auto}.filter-grid{grid-template-columns:1fr}.filter-grid .wide{grid-column:auto}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}#confetti{display:none}}
.result h1{overflow-wrap:anywhere}

.admin-tools{display:grid;gap:12px;justify-items:end}.upload-jump{text-decoration:none;background:#b6f034}.drop-zone{margin-top:20px;padding:17px 13px;border:2px dashed #b8c5a5;border-radius:14px;background:#f5f8ee}.drop-zone.dragging{border-color:#577a2d;background:#e7f2cf}.drop-zone .field{margin-top:0}.drop-zone p{font-size:12px;color:#67775a;margin:8px 0}.drop-zone input{background:#ffffff;font-size:12px;padding:9px}.footer-links{display:flex;gap:20px;align-items:center}#voucher-upload{scroll-margin-top:24px}

/* Markenbasis von creativpixel.de: Petrol, Signalgrün, Inter und Original-Logo. */
body{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#181b20}
.topbar,.admin .topbar{max-width:none;background:#062a2e;color:#fff;padding:19px max(24px,calc((100vw - 1088px)/2));border-bottom:1px solid #ffffff22}
.brand{display:block}.cp-brand{display:block}.cp-logo{display:block;width:218px;height:40px;object-fit:contain;object-position:left}.brand-sub{font-size:9px;letter-spacing:2.2px;margin:1px 0 0 6px;color:#ffffffbf;opacity:1}
.topbar .sound-button,.topbar .small-button{color:#fff;border-color:#ffffff44}.topbar .sound-button[aria-pressed=true]{background:#b6f034;color:#062a2e;border-color:#b6f034}
h1,h2,h3{font-weight:800;color:#062a2e}.primary{border-radius:10px;background:#0c4a52;color:white;box-shadow:0 4px 0 #062a2e}.primary:hover{background:#105c66}.accent{color:#4d6a00}.ticket{border-radius:12px}.ticket-top,.ticket-bottom{border-color:#709800}.sticker{background:#0c4a52;color:#fff;border-radius:4px}.pill{border-radius:5px}.stat,.panel{border-radius:12px}.choice-icon{background:#d4dfdb;border-radius:8px;color:#0c4a52}.choice:nth-of-type(2) .choice-icon{background:#e7f2cf}.eyebrow{color:#4f5960}.guest-main{padding-top:45px}.footer-links a{color:#0c4a52}.result .voucher{color:#062a2e}.access-help{font-size:13px;line-height:1.7;color:#4f5960;margin:18px 0}.invitation-panel{margin-top:24px}.invitation-panel img{width:180px;height:180px;background:#fff;margin:16px 0}.invitation-panel input{font-size:12px}.invitation-panel .secondary{max-width:360px}
@media(max-width:700px){.topbar,.admin .topbar{padding:16px 20px}.cp-logo{width:190px;height:35px}.brand-sub{font-size:8px;letter-spacing:1.8px}.sound-button{padding:9px 11px;font-size:11px}.guest-main{padding-top:16px}.welcome h1{font-size:44px}.admin .cp-logo{width:175px}.admin .brand-sub{font-size:7px;letter-spacing:1px}}

/* Platz für die Bildunterschrift außerhalb des gedrehten Tickets. */
.art{padding-bottom:48px;min-height:480px}.art-caption{bottom:0}
@media(max-width:700px){.art{min-height:278px;padding-bottom:32px}.art-caption{bottom:0}}

.portal-countdown{margin-top:18px;padding:16px;border:1px solid #709800;border-radius:10px;background:#eef7db;font-size:14px}.portal-countdown[hidden]{display:none}.portal-countdown .secondary{font-size:13px;min-height:44px}

/* Deutliche Funkwellen, bewegtes Ticket; stoppt nach vier kurzen Zyklen. */
@keyframes wlan-wave{0%,100%{opacity:.18}40%,70%{opacity:1;filter:drop-shadow(0 0 6px #ffffff)}}
@keyframes wlan-ticket{0%,100%{transform:translateY(0) rotate(-9deg)}50%{transform:translateY(-10px) rotate(-5deg)}}
@keyframes wlan-orbit{0%{transform:scale(.86);opacity:.25}65%{opacity:.9}100%{transform:scale(1.12);opacity:0}}
.welcome .wifi-wave{animation:wlan-wave 1.2s ease-in-out 4}.welcome .wave-2{animation-delay:.16s}.welcome .wave-3{animation-delay:.32s}.welcome .ticket{animation:wlan-ticket 1.2s ease-in-out 4}.welcome .orbit{border:2px solid #709800;animation:wlan-orbit 1.2s ease-out 4}.welcome .orbit:after{border:2px solid #b6f034}
.certificate-teaser{background:#062a2e;color:#b6f034;border-radius:12px;padding:20px;margin:20px 0;transform:rotate(-2deg)}.certificate-teaser strong{display:block;font-size:22px}.certificate-teaser span{display:block;color:#fff;font-size:12px;line-height:1.7;margin-top:8px}
#certificate-dialog{max-width:460px}#certificate-dialog .secondary{margin-top:12px}
@media(prefers-reduced-motion:reduce){.welcome .wifi-wave,.welcome .ticket,.welcome .orbit{animation:none!important}}

/* 1.1.0: Reflexrunden, Zielscheibe, Farbfalle, Diplomkarte, WLAN-Verbindung */
.round-dots{display:flex;gap:6px;margin:-8px 0 18px}.round-dots i{width:34px;height:8px;border-radius:9px;background:#dfe2d6}.round-dots i.done{background:#709800}.round-dots i.now{background:#062a2e}
.reflex-pad{position:relative;overflow:hidden;transition:background .08s}.reflex-pad .pad-text{display:flex;flex-direction:column;align-items:center;gap:10px;pointer-events:none;text-align:center}
.reflex-pad.ready{background:#b6f034;animation:pop .18s ease-out}.reflex-pad.success{background:#e7f2cf}.reflex-pad.armed{background:#f4f5ee}
.reflex-pad.decoy-red{background:#e8826b}.reflex-pad.decoy-blue{background:#8fc3cf}.reflex-pad.decoy-sand{background:#e9d7b7}.reflex-pad.decoy-pink{background:#e9b7d8}.reflex-pad.decoy-dark{background:#0c4a52;color:#f5f7ed}
.reflex-pad.ziel{cursor:crosshair}.target{position:absolute;width:76px;height:76px;margin:-38px 0 0 -38px;border-radius:50%;border:3px solid #062a2e;background:radial-gradient(circle,#062a2e 0 18%,#b6f034 19% 42%,#062a2e 43% 50%,#b6f034 51%);box-shadow:0 4px 0 #062a2e;animation:pop .18s ease-out;padding:0}
.target[hidden]{display:none}
@keyframes pop{from{transform:scale(.6)}to{transform:scale(1)}}
.certificate-card{background:#062a2e;color:#f5f7ed;border-radius:20px;padding:22px;margin:0 0 20px;text-align:left;display:grid;gap:6px}.certificate-card strong{font-size:18px;letter-spacing:-.4px}.certificate-card span{font-size:13px;opacity:.8}.certificate-card .secondary{margin-top:10px}
.connection .primary{margin-top:18px}.connection.highlight{border-top-color:#709800}.connection a:not(.primary):not(.secondary){text-decoration:underline;text-underline-offset:3px}
