/* ECSTA.SI additive improvements. Kept separate so the original visual system remains intact. */
.skip-link{position:fixed;left:1rem;top:1rem;z-index:200;transform:translateY(-160%);background:var(--acid);color:#080808;padding:.8rem 1rem;font:700 .72rem/1 "IBM Plex Mono",monospace;text-transform:uppercase;text-decoration:none;transition:transform .18s ease}.skip-link:focus{transform:translateY(0)}
:where(a,button,input,textarea,select):focus-visible{outline:3px solid var(--acid);outline-offset:4px}
[hidden]{display:none!important}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.links{min-width:0}.links a[aria-current="page"]{color:var(--ink)}
.project,.tool-card{color:inherit;text-decoration:none}.project{transition:background .2s ease}.project:hover{background:rgba(255,255,255,.025)}.project:hover .art{transform:translateY(-4px)}.art{transition:transform .22s ease}
.tool-grid>a{min-height:320px;border:1px solid var(--line);background:var(--surface);padding:1.4rem;display:flex;flex-direction:column;justify-content:space-between;text-decoration:none;transition:transform .2s ease,border-color .2s ease}.tool-grid>a:hover{transform:translateY(-5px);border-color:var(--acid)}.tool-grid>a p{color:var(--muted);line-height:1.5}
.process-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.process-step{min-height:300px;padding:1.5rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column;justify-content:space-between}.process-step h3{margin:1rem 0;font:900 clamp(1.8rem,3vw,3.2rem)/.92 "Archivo Black",sans-serif;text-transform:uppercase;letter-spacing:-.055em}.process-step p{margin:0;color:var(--muted);line-height:1.55}.process-step:hover{background:var(--acid);color:#080808}.process-step:hover p,.process-step:hover .mono{color:#292a25}
.now-strip{display:grid;grid-template-columns:1fr auto;gap:2rem;align-items:center;padding:1.5rem;border:1px solid var(--line);background:var(--surface);text-decoration:none}.now-strip strong{display:block;margin-top:.4rem;font-size:clamp(1.2rem,2vw,1.8rem)}.now-strip:hover{border-color:var(--acid)}
.form-intro{color:#cbc8bf;line-height:1.65;max-width:36rem}.form-note{color:var(--muted);font-size:.84rem;line-height:1.5}.enquiry-actions{display:flex;gap:.7rem;flex-wrap:wrap;align-items:center}.form-status{min-height:1.4em;margin:.8rem 0 0;color:var(--acid);font:600 .68rem/1.4 "IBM Plex Mono",monospace}.field input:invalid:not(:placeholder-shown),.field textarea:invalid:not(:placeholder-shown){border-color:var(--orange)}
.now-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.now-card{border:1px solid var(--line);background:var(--surface);padding:1.5rem;min-height:260px}.now-card h2{margin:.7rem 0;font:900 clamp(2rem,4vw,4rem)/.92 "Archivo Black",sans-serif;text-transform:uppercase;letter-spacing:-.06em}.now-card p,.now-card li{color:#cbc8bf;line-height:1.6}.now-card ul{padding-left:1.2rem}.updated{display:inline-flex;align-items:center;gap:.5rem}.updated:before{content:"";width:.55rem;height:.55rem;border-radius:50%;background:var(--acid);box-shadow:0 0 18px var(--acid)}
.meta-row{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:1.5rem}.meta-pill{border:1px solid var(--line);padding:.45rem .6rem;font:600 .62rem/1 "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
/* Lab expansion */
.lab-directory{padding-bottom:clamp(4rem,7vw,7rem)}.lab-index{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.lab-index a{min-height:180px;padding:1.2rem;background:var(--surface);display:flex;flex-direction:column;text-decoration:none;transition:background .18s ease,color .18s ease,transform .18s ease}.lab-index a:hover{background:var(--acid);color:#080808;transform:translateY(-4px)}.lab-index a>span{font:700 .68rem/1 "IBM Plex Mono",monospace;color:var(--muted)}.lab-index a>strong{margin:auto 0 .8rem;font:900 clamp(1.35rem,2.2vw,2.2rem)/.92 "Archivo Black",sans-serif;text-transform:uppercase;letter-spacing:-.05em}.lab-index a>small{font:600 .62rem/1.3 "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.08em}.lab-index a:hover>span{color:#303126}.left-actions{justify-content:flex-start}.acid-output{background:var(--acid)}.dark-mono{color:#333}.result-surface{background:#d8d7d0}.analysis-card{width:min(94%,760px);display:grid;gap:1.5rem}.score-line{display:flex;justify-content:space-between;align-items:end;gap:1rem}.score-line strong{display:block;font:900 clamp(4rem,10vw,9rem)/.75 "Archivo Black",sans-serif;letter-spacing:-.08em}.verdict{max-width:14rem;text-align:right;font:700 .7rem/1.4 "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.08em}.meter{height:18px;border:2px solid #080808;background:transparent;overflow:hidden}.meter i{display:block;width:0;height:100%;background:#080808;transition:width .35s ease}.flag-list{display:flex;gap:.45rem;flex-wrap:wrap;margin-top:.8rem}.flag-list span{border:1px solid #080808;padding:.45rem .55rem;font:700 .62rem/1.2 "IBM Plex Mono",monospace;text-transform:uppercase}.result-copy{margin:.75rem 0 0;padding:1rem;border-left:5px solid #080808;font-size:clamp(1rem,2vw,1.35rem);line-height:1.55}.scope-controls{display:grid;gap:1.2rem}.range-row{display:grid;gap:.65rem;font:600 .68rem/1.3 "IBM Plex Mono",monospace;text-transform:uppercase;letter-spacing:.06em}.range-row span{display:flex;justify-content:space-between;gap:1rem}.range-row input{width:100%;accent-color:var(--acid)}.check-row{display:flex;gap:.75rem;align-items:center;color:#cbc8bf;font-size:.95rem}.check-row input{width:1.1rem;height:1.1rem;accent-color:var(--acid)}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);border:2px solid #080808}.stat{padding:1rem;border-right:2px solid #080808}.stat:last-child{border-right:0}.stat span{display:block;font:700 .62rem/1 "IBM Plex Mono",monospace;text-transform:uppercase}.stat strong{display:block;margin-top:.55rem;font:900 clamp(1.8rem,4vw,3.5rem)/.9 "Archivo Black",sans-serif}.finding-list{margin:.8rem 0 0;padding-left:1.2rem}.finding-list li{margin:.5rem 0;line-height:1.45}.constraint-output{background:var(--orange)}.constraint-card{width:min(92%,760px);background:#080808;color:var(--ink);padding:clamp(1.4rem,4vw,3rem);box-shadow:22px 22px 0 rgba(0,0,0,.18)}.constraint-card>small{font:700 .62rem/1 "IBM Plex Mono",monospace;color:var(--acid)}.constraint-card h3{margin:1rem 0 2rem;font:900 clamp(2.4rem,6vw,6rem)/.82 "Archivo Black",sans-serif;text-transform:uppercase;letter-spacing:-.07em}.constraint-card dl{margin:0;display:grid;gap:1rem}.constraint-card dl>div{padding-top:1rem;border-top:1px solid var(--line)}.constraint-card dt{font:700 .62rem/1 "IBM Plex Mono",monospace;color:var(--acid);text-transform:uppercase;letter-spacing:.08em}.constraint-card dd{margin:.55rem 0 0;font-size:clamp(1rem,2vw,1.3rem);line-height:1.45}.lab-more{margin-top:1rem}.lab-more strong{max-width:60rem}.tool-shell .button{white-space:normal}
@media(max-width:1100px){.process-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:1000px){.lab-index{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.links{max-width:70vw;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:none}.links::-webkit-scrollbar{display:none}.links a{white-space:nowrap}.links a:not(.nav-cta){display:inline-flex!important}.links{gap:.75rem}.nav-cta{display:none!important}.process-grid,.now-grid{grid-template-columns:1fr}.now-strip{grid-template-columns:1fr}.enquiry-actions{align-items:stretch}.enquiry-actions .button{width:100%}.lab-index{grid-template-columns:1fr}.lab-index a{min-height:130px}.score-line{align-items:flex-start;flex-direction:column}.score-line strong{font-size:4.5rem}.verdict{text-align:left}.stat-grid{grid-template-columns:1fr}.stat{border-right:0;border-bottom:2px solid #080808}.stat:last-child{border-bottom:0}.constraint-card{box-shadow:12px 12px 0 rgba(0,0,0,.18)}}
@media(prefers-reduced-motion:reduce){.project:hover .art,.tool-grid>a:hover,.button:hover,.lab-index a:hover{transform:none}.meter i{transition:none}}