/* Permanent centered banner; purely decorative effects never intercept clicks. */
.public-good-banner{position:relative;isolation:isolate;display:flex;flex-direction:column;align-items:center;gap:17px;margin:0 0 28px;padding:32px 36px 29px;text-align:center;border:1px solid transparent;border-radius:26px;color:var(--ink);overflow:hidden;background:linear-gradient(145deg,#fbfffeee,#fff9,#fbfaffee) padding-box,linear-gradient(110deg,#20a37666,#b8a3fa88,#51d0bc88,#20a37666) border-box;background-size:100% 100%,300% 300%;box-shadow:0 12px 38px #277a5410,inset 0 0 35px #ffffffc0;animation:community-border 12s ease-in-out infinite}
.public-good-banner:before,.public-good-banner:after{content:"";position:absolute;z-index:-1;pointer-events:none;border-radius:50%;filter:blur(24px);opacity:.65;animation:community-aurora 15s ease-in-out infinite alternate}
.public-good-banner:before{inset:-110px auto auto -60px;width:280px;height:280px;background:radial-gradient(circle,#8fe3bb77,transparent 70%)}
.public-good-banner:after{inset:auto -75px -150px auto;width:330px;height:330px;background:radial-gradient(circle,#b3a1ef66,transparent 70%);animation-delay:-7s}
.public-good-symbol{position:relative;display:grid;place-items:center;width:62px;height:62px;flex-shrink:0;border-radius:22px;background:linear-gradient(140deg,#fff,#e4f7ed);color:#168354;border:1px solid #b7e2ca;box-shadow:0 5px 22px #16835414;animation:community-float 7s ease-in-out infinite}
.public-good-symbol:before{content:"";position:absolute;inset:-7px;border:1px solid #29a56c24;border-radius:26px;transform:rotate(12deg)}
.public-good-symbol svg{width:48px;height:48px;filter:drop-shadow(0 2px 3px #16835418)}
.public-good-copy{width:min(100%,860px);min-width:0;position:relative}.public-good-label{display:flex;justify-content:center;align-items:center;gap:8px;color:#247a58;font-size:11px;font-weight:700;margin-bottom:9px}.public-good-label>span{width:6px;height:6px;border-radius:50%;background:#24a36a;box-shadow:0 0 0 4px #24a36a12}
.public-good-copy h2{font-size:clamp(20px,2vw,27px);line-height:1.7;margin:0 0 11px;font-weight:800;color:var(--ink);text-wrap:balance}.public-good-copy p{font-size:12px;line-height:2.15;margin:0;overflow-wrap:anywhere;color:var(--ink)}.public-good-copy .public-good-name{color:#12804c;font-weight:900;font-size:1.18em;text-shadow:0 0 18px #24a36a25}.public-good-copy .public-good-transparency{font-size:11px;margin:9px auto 0;color:#596275;max-width:720px}
.public-good-action{display:flex;flex-direction:column;align-items:center;gap:10px;position:relative}.public-good-action>a{position:relative;isolation:isolate;overflow:hidden;display:flex;align-items:center;justify-content:center;gap:17px;padding:12px 25px;background:linear-gradient(115deg,#13784c,#219a69);color:white;border:1px solid #268b5c;border-radius:13px;text-decoration:none;font-weight:700;font-size:12px;box-shadow:0 5px 17px #1c87542b;transition:transform .25s,box-shadow .25s}.public-good-action>a:before{content:"";position:absolute;inset:-60% auto -60% -65%;width:35%;background:linear-gradient(90deg,transparent,#fff5,transparent);transform:skewX(-22deg);animation:community-shine 8s ease-in-out infinite;pointer-events:none}.public-good-action>a:hover{transform:translateY(-2px);box-shadow:0 8px 24px #1c87543b}.public-good-action>a:focus-visible{outline:3px solid #168354;outline-offset:5px}.public-good-action>span{font-size:10px;color:#596275}
.public-good-lights{position:absolute;inset:0;z-index:-1;pointer-events:none}.public-good-lights i{position:absolute;width:4px;height:4px;border-radius:50%;background:#389a7599;box-shadow:0 0 10px #4ecb9c66;animation:community-sparkle 6s ease-in-out infinite}.public-good-lights i:nth-child(1){top:19%;left:12%}.public-good-lights i:nth-child(2){top:61%;left:6%;animation-delay:-2s}.public-good-lights i:nth-child(3){top:28%;right:10%;animation-delay:-4s}.public-good-lights i:nth-child(4){bottom:16%;right:18%;animation-delay:-1s}.public-good-lights i:nth-child(5){top:12%;right:31%;width:3px;height:3px;animation-delay:-3s}.public-good-lights i:nth-child(6){bottom:19%;left:26%;width:3px;height:3px;animation-delay:-5s}
@keyframes community-border{0%,100%{background-position:0 0,0% 50%}50%{background-position:0 0,100% 50%}}
@keyframes community-aurora{from{transform:translate(0,0) scale(.9)}to{transform:translate(35px,20px) scale(1.15)}}
@keyframes community-float{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-5px) rotate(3deg)}}
@keyframes community-sparkle{0%,100%{opacity:.2;transform:translateY(0) scale(.7)}50%{opacity:.8;transform:translateY(-9px) scale(1)}}
@keyframes community-shine{0%,65%{left:-65%}90%,100%{left:150%}}
.site-visitors{margin:28px 0 22px;padding:24px;border:1px solid var(--line);border-radius:20px;background:linear-gradient(130deg,#ffffffed,#f5faf8);text-align:center}.site-visitors-intro h2{display:inline;font-size:17px;margin:0 6px}.site-visitors-intro p{font-size:11px;color:#596275;margin:4px 0 16px}.visitors-live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#17945c;box-shadow:0 0 0 4px #17945c12}.site-visitors-numbers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-width:600px;margin:auto;gap:16px}.site-visitors-numbers article{display:flex;flex-direction:column;gap:4px;padding:17px;border-radius:15px;background:#fff;border:1px solid #e0eee7}.site-visitors-numbers strong{font-size:30px;color:#168354;font-variant-numeric:tabular-nums}.site-visitors-numbers span{font-size:12px;color:var(--ink)}.site-visitors-numbers small{font-size:10px;color:#596275}.site-visitors-method{font-size:11px;color:#596275;margin:14px auto 0;max-width:640px}.site-visitors-method summary{cursor:pointer}.site-visitors-method p{line-height:2}.site-visitors>#visitors-status{font-size:10px;margin:10px 0 0}
@media(max-width:600px){.public-good-banner{padding:25px 18px 22px;gap:15px;border-radius:20px;margin-bottom:20px}.public-good-copy h2{font-size:20px}.public-good-copy p{font-size:12px;line-height:2.1}.public-good-action{width:100%}.public-good-action>a{width:100%;box-sizing:border-box;padding:12px 14px}.public-good-symbol{width:54px;height:54px;border-radius:19px}.public-good-symbol svg{width:42px;height:42px}.public-good-copy .public-good-transparency{font-size:11px}.site-visitors{padding:20px 14px}.site-visitors-numbers{gap:10px}.site-visitors-numbers article{padding:14px 8px}.site-visitors-numbers strong{font-size:27px}}
@media(prefers-reduced-motion:reduce){.public-good-banner,.public-good-banner:before,.public-good-banner:after,.public-good-symbol,.public-good-action>a:before,.public-good-lights i{animation:none}.public-good-action>a{transition:none}}

.user-analysis{max-width:100%;overflow-wrap:anywhere}.analysis-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0}.analysis-summary article{padding:16px 10px;border:1px solid var(--line);border-radius:14px;background:var(--bg);text-align:center}.analysis-summary strong{display:block;color:var(--green);font-size:25px}.analysis-summary span{font-size:11px}.analysis-skills{display:flex;gap:8px;flex-wrap:wrap}.analysis-table-wrap{overflow-x:auto}.analysis-table{width:100%;border-collapse:collapse;text-align:right;font-size:12px}.analysis-table th,.analysis-table td{padding:10px;border-bottom:1px solid var(--line)}.analysis-month{display:grid;grid-template-columns:70px minmax(0,1fr) 35px;gap:10px;align-items:center;font-size:12px;margin:8px 0}.analysis-month progress{width:100%;height:10px;accent-color:var(--green)}@media(max-width:600px){.analysis-summary{grid-template-columns:1fr}.analysis-summary article{display:flex;align-items:center;justify-content:space-between;gap:12px}.analysis-summary strong{font-size:22px}}

/* Live visitor cards: soft light, a slow status pulse and feedback on value changes. */
.site-visitors{position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(130deg,#f7fffb,#fff 45%,#f7f5ff);box-shadow:0 8px 28px #1683540a}
.site-visitors:before{content:"";position:absolute;z-index:-1;width:260px;height:260px;inset:-180px auto auto 10%;border-radius:50%;background:radial-gradient(circle,#9de3bf55,transparent 70%);pointer-events:none}
.visitors-live-dot{animation:visitors-pulse 3.8s ease-in-out infinite}.site-visitors-numbers article{position:relative;isolation:isolate;overflow:hidden;box-shadow:0 4px 16px #16835408;transition:transform .25s,box-shadow .25s,border-color .25s}.site-visitors-numbers article:before{content:"";position:absolute;inset:0 15% auto;height:2px;background:linear-gradient(90deg,transparent,#46b98599,transparent)}.site-visitors-numbers article:after{content:"";position:absolute;z-index:-1;inset:auto -30px -60px auto;width:160px;height:160px;border-radius:50%;background:radial-gradient(circle,#c9f2df66,transparent 70%);pointer-events:none}.site-visitors-numbers article:hover{transform:translateY(-3px);border-color:#9bd8bb;box-shadow:0 9px 24px #16835414}.site-visitors-numbers strong{display:block;text-shadow:0 2px 18px #24a36a15}
@keyframes visitors-pulse{0%,100%{box-shadow:0 0 0 3px #17945c14}50%{box-shadow:0 0 0 7px #17945c05}}
@media(prefers-reduced-motion:reduce){.visitors-live-dot{animation:none}.site-visitors-numbers article{transition:none}.site-visitors-numbers article:hover{transform:none}}

/* Visitor counters belong to the permanent banner, below its call to action. */
.public-good-banner .site-visitors{width:min(100%,640px);box-sizing:border-box;margin:2px auto 0;padding:17px 0 0;border:0;border-top:1px solid #24936124;border-radius:0;background:transparent;box-shadow:none}.public-good-banner .site-visitors:before{display:none}.public-good-banner .site-visitors-intro h2{font-size:13px}.public-good-banner .site-visitors-intro p{display:none}.public-good-banner .site-visitors-intro{margin-bottom:13px}.public-good-banner .site-visitors-numbers article{padding:12px 15px;background:#ffffffb8}.public-good-banner .site-visitors-numbers strong{font-size:27px}.public-good-banner .site-visitors-method{margin-top:11px;font-size:10px}.public-good-banner .site-visitors>#visitors-status{margin-top:8px;font-size:10px}.public-good-banner .site-visitors-numbers small{font-size:10px}@media(max-width:600px){.public-good-banner .site-visitors-numbers article{padding:11px 6px}.public-good-banner .site-visitors-numbers strong{font-size:25px}.public-good-banner .site-visitors-numbers span{font-size:11px}}

/* Compact notice: short copy, small action and counters directly beneath it. */
.public-good-banner{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:8px 24px;padding:17px 22px;border-radius:17px;margin:0 auto 18px;max-width:1100px;box-sizing:border-box}.public-good-copy{grid-column:1;grid-row:1 / span 2;width:100%;align-self:center}.public-good-copy h2{font-size:16px;line-height:1.7;margin:0 0 6px}.public-good-copy p{font-size:11px;line-height:1.95}.public-good-copy .public-good-name{font-size:1.1em}.public-good-copy .public-good-transparency{font-size:10px;margin-top:5px}.public-good-action{grid-column:2;gap:4px}.public-good-action>a{font-size:11px;padding:8px 18px;border-radius:10px;gap:12px}.public-good-action>span{font-size:9px}.public-good-banner .site-visitors{grid-column:2;width:100%;padding:8px 0 0;margin:0;align-self:start}.public-good-banner .site-visitors-intro{display:none}.public-good-banner .site-visitors-numbers{gap:8px}.public-good-banner .site-visitors-numbers article{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:center;gap:4px;padding:6px 4px;border-radius:10px}.public-good-banner .site-visitors-numbers strong{font-size:19px;line-height:1.4}.public-good-banner .site-visitors-numbers span{font-size:9px}.public-good-banner .site-visitors-numbers small{display:none}.public-good-banner .site-visitors-method{font-size:9px;margin-top:5px}.public-good-banner .site-visitors>#visitors-status{font-size:9px;margin:4px 0 0}.public-good-banner .site-visitors-method p{font-size:10px;line-height:1.8}.public-good-banner:before{width:200px;height:200px}.public-good-banner:after{width:240px;height:240px}.public-good-lights i{opacity:.4}
@media(max-width:760px){.public-good-banner{grid-template-columns:minmax(0,1fr);gap:8px;padding:14px 16px;border-radius:15px}.public-good-copy{grid-column:1;grid-row:auto}.public-good-copy h2{font-size:15px;margin-bottom:5px}.public-good-copy p{font-size:11px;line-height:1.9}.public-good-copy .public-good-transparency{font-size:9px;margin-top:4px}.public-good-action{grid-column:1;width:auto;justify-self:center}.public-good-action>a{width:auto;padding:7px 17px;font-size:10px}.public-good-action>span{font-size:9px}.public-good-banner .site-visitors{grid-column:1;max-width:360px;padding-top:7px}.public-good-banner .site-visitors-numbers article{padding:5px}.public-good-banner .site-visitors-numbers strong{font-size:18px}}

.public-good-banner{padding:12px 18px;gap:5px 20px}.public-good-action>a{padding:6px 16px}.public-good-banner .site-visitors{padding-top:6px}.public-good-banner .site-visitors-numbers strong{font-size:18px}.public-good-banner .site-visitors-method{display:inline-block;padding:0;border:0;background:transparent;margin:3px 0 0;font-size:9px;color:#596275;line-height:1.5}.public-good-banner .site-visitors>#visitors-status{font-size:8px;margin-top:2px;line-height:1.7}@media(max-width:760px){.public-good-banner{padding:12px 14px;gap:7px}}

/* Fill the content column while keeping the compact banner proportions. */
.public-good-banner{width:100%;max-width:none;margin:0 0 18px}.public-good-copy h2{font-size:15px}.public-good-copy p{font-size:10.5px;line-height:1.85}.public-good-copy .public-good-transparency{font-size:9px;line-height:1.7}.banner-cursor-cloud{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none;mix-blend-mode:multiply;opacity:.85}@media(pointer:coarse),(prefers-reduced-motion:reduce){.banner-cursor-cloud{display:none}}

/* The notice belongs only to the homepage. */
.public-good-banner[hidden]{display:none}
