/* A local control display, shown only after a valid contact-form submission. */form[data-contact-form] .gff{--gff-accent:#78f9ce;grid-column:1/-1;position:relative;overflow:hidden;isolation:isolate;min-width:0;padding:17px 20px 21px;color:#edf7f5;background:radial-gradient(ellipse at 50% 37%,#163b38 0%,#111f25 44%,#10191f 78%);border-top:1px solid #78f9ce45;border-bottom:1px solid #78f9ce45;text-align:left}form[data-contact-form] .gff[hidden]{display:none}form[data-contact-form] .gff::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:repeating-linear-gradient(0deg,transparent 0 3px,#00000010 3px 4px)}form[data-contact-form] .gff::after{content:"";position:absolute;top:0;left:20%;right:20%;height:1px;background:var(--gff-accent);box-shadow:0 0 18px 2px #78f9ce44;pointer-events:none}.gff .gff-header{display:flex;align-items:center;justify-content:space-between;gap:10px;font:10px "DM Mono",monospace;letter-spacing:.08em;color:#a8c6c5}.gff .gff-step{color:var(--gff-accent);white-space:nowrap}.gff .gff-visual{max-width:480px;margin:6px auto 17px}.gff .gff-map{display:block;width:100%;height:auto;overflow:visible}.gff .gff-grid{fill:none;stroke:#78f9ce;stroke-width:.5;opacity:.075}.gff .gff-wire{fill:none;stroke:#78f9ce;stroke-width:1;opacity:.26}.gff .gff-packet{fill:none;stroke:var(--gff-accent);stroke-width:2.5;stroke-linecap:round;stroke-dasharray:14 88;filter:drop-shadow(0 0 4px #78f9ce88)}.gff .gff-node{fill:#11272c;stroke:var(--gff-accent);stroke-width:1.2}.gff .gff-icon{fill:none;stroke:var(--gff-accent);stroke-width:1.4;stroke-linejoin:round}.gff .gff-core{transform-origin:240px 66px}.gff .gff-orbit{fill:none;stroke:var(--gff-accent);stroke-width:1;stroke-dasharray:22 12 3 12;transform-origin:240px 66px;opacity:.72}.gff .gff-orbit-inner{stroke-dasharray:3 8;opacity:.35}.gff .gff-hex{fill:#163a37;stroke:var(--gff-accent);stroke-width:1.3}.gff .gff-core-mark,.gff .gff-check,.gff .gff-alert{fill:none;stroke:var(--gff-accent);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.gff .gff-check,.gff .gff-alert{display:none}.gff .gff-satellite{fill:none;stroke:var(--gff-accent);stroke-width:1.5;opacity:.6}.gff .gff-beacon{fill:none;stroke:var(--gff-accent);stroke-width:1;transform-box:fill-box;transform-origin:center;opacity:0}.gff .gff-labels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));text-align:center;font:9px "DM Mono",monospace;letter-spacing:.12em;color:#a8c6c5;margin-top:-1px}.gff .gff-status{display:grid;gap:6px;text-align:center}.gff .gff-badge{display:block;font:9px "DM Mono",monospace;letter-spacing:.16em;color:var(--gff-accent)}.gff .gff-badge::before{content:"";display:inline-block;width:5px;height:5px;margin:0 7px 1px 0;border-radius:50%;background:currentColor;box-shadow:0 0 8px #78f9ce66}.gff .gff-title{display:block;font-family:"Raleway",system-ui,sans-serif;font-size:22px;font-weight:600;line-height:1.25;letter-spacing:-.025em;color:#edf7f5}.gff .gff-description{display:block;font-family:"Raleway",system-ui,sans-serif;font-size:12px;font-weight:400;line-height:1.5;letter-spacing:0;text-transform:none;color:#b6cbce}.gff:is([data-state="verify"],[data-state="sending"]) .gff-packet{animation:gff-flow 1.25s linear infinite}.gff:is([data-state="verify"],[data-state="sending"]) .gff-orbit{animation:gff-orbit 9s linear infinite}.gff:is([data-state="verify"],[data-state="sending"]) .gff-orbit-inner{animation-direction:reverse;animation-duration:14s}.gff:is([data-state="verify"],[data-state="sending"]) .gff-beacon{animation:gff-beacon 2.4s ease-out infinite}.gff:is([data-state="verify"],[data-state="sending"]) .gff-beacon-end{animation-delay:1.2s}.gff:is([data-state="verify"],[data-state="sending"]) .gff-satellite{animation:gff-signal 2s ease-in-out infinite}.gff:is([data-state="verify"],[data-state="sending"]) .gff-sat-b{animation-delay:1s}.gff[data-state="verify"] .gff-out,.gff[data-state="verify"] .gff-destination,.gff[data-state="verify"] .gff-beacon-end{opacity:.25;animation:none}.gff[data-state="sent"] .gff-check{display:block;stroke-dasharray:40;animation:gff-confirm .45s ease-out both}.gff[data-state="sent"] .gff-core-mark,.gff[data-state="error"] .gff-core-mark{display:none}.gff[data-state="sent"] .gff-wire{opacity:.65}.gff[data-state="sent"] .gff-packet{stroke-dasharray:none;opacity:.7}form[data-contact-form] .gff[data-state="error"]{--gff-accent:#f0c779}.gff[data-state="error"] .gff-alert{display:block}.gff[data-state="error"] .gff-packet{opacity:0}.gff[data-state="error"] .gff-destination{opacity:.35}@keyframes gff-flow{from{stroke-dashoffset:102}to{stroke-dashoffset:0}}@keyframes gff-orbit{to{transform:rotate(360deg)}}@keyframes gff-beacon{0%{transform:scale(.85);opacity:.5}85%,100%{transform:scale(1.6);opacity:0}}@keyframes gff-signal{0%,100%{opacity:.3}50%{opacity:.85}}@keyframes gff-confirm{from{stroke-dashoffset:40}to{stroke-dashoffset:0}}@media(max-width:480px){form[data-contact-form] .gff{padding:15px 12px 18px}.gff .gff-header{font-size:8px;letter-spacing:.03em}.gff .gff-title{font-size:20px}.gff .gff-visual{margin-top:12px;margin-bottom:16px}.gff .gff-labels{font-size:8px;letter-spacing:.05em}}@media(prefers-reduced-motion:reduce){form[data-contact-form] .gff *,form[data-contact-form] .gff *::before{animation:none!important}.gff .gff-check{stroke-dashoffset:0}}
