@font-face{font-family:"Exo 2 Local";src:url("../fonts/Exo2-Variable.ttf") format("truetype");font-weight:100 900;font-display:swap}
:root{--night:222 47% 7%;--deep:223 42% 11%;--panel:221 36% 15%;--line:205 30% 26%;--ink:190 30% 92%;--mute:200 16% 70%;--mint:160 84% 66%;--mint-d:162 60% 40%;--warn:28 90% 66%;--err:2 85% 72%;
--f:"Exo 2 Local","Exo 2","Segoe UI","Noto Sans",system-ui,sans-serif;--m:ui-monospace,"Cascadia Mono","DejaVu Sans Mono",Consolas,monospace;--cut:18px}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:hsl(var(--night));color:hsl(var(--ink));font:400 1.0625rem/1.65 var(--f);overflow-x:hidden;min-height:100dvh}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;background:
linear-gradient(hsl(var(--line)/.22) 1px,transparent 1px) 0 0/64px 64px,linear-gradient(90deg,hsl(var(--line)/.22) 1px,transparent 1px) 0 0/64px 64px,
radial-gradient(80vw 60vh at 85% -10%,hsl(var(--mint)/.11),transparent 60%),radial-gradient(60vw 50vh at -10% 110%,hsl(200 80% 40%/.12),transparent 60%);mask-image:linear-gradient(180deg,#000,rgba(0,0,0,.55))}
main,header,footer{position:relative;z-index:1}
a{color:hsl(var(--mint));text-underline-offset:3px}
a:hover{color:hsl(var(--ink))}
:focus-visible{outline:2px solid hsl(var(--mint));outline-offset:3px}
img,svg{max-width:100%}
h1,h2,h3,h4{font-family:var(--f);line-height:1.08;margin:0 0 .6em;letter-spacing:-.01em;overflow-wrap:anywhere}
h1{font-size:clamp(2.4rem,6.4vw,5.6rem);font-weight:800;text-transform:uppercase;letter-spacing:-.02em}
h2{font-size:clamp(1.7rem,3.4vw,2.8rem);font-weight:700}
h3{font-size:1.3rem;font-weight:700}
p{margin:0 0 1em;max-width:70ch}
.skip{position:absolute;left:-999px;top:8px;background:hsl(var(--mint));color:hsl(var(--night));padding:10px 14px;z-index:100;font-weight:700}
.skip:focus{left:8px}
.wrap{width:min(1240px,100% - 40px);margin-inline:auto}
.mono{font-family:var(--m);font-size:.9rem;letter-spacing:.04em}
.tag{font-family:var(--m);font-size:.85rem;color:hsl(var(--mint));text-transform:uppercase;letter-spacing:.14em;display:inline-flex;gap:.6em;align-items:center}
.tag::before{content:"";width:22px;height:2px;background:currentColor}
/* header */
.top{position:sticky;top:0;z-index:30;background:hsl(var(--night)/.88);backdrop-filter:blur(10px);border-bottom:1px solid hsl(var(--line))}
.top .wrap{display:flex;align-items:center;gap:18px;min-height:70px}
.mark{display:flex;align-items:center;gap:12px;text-decoration:none;color:hsl(var(--ink));font-weight:800;letter-spacing:.18em;font-size:1rem;min-width:0}
.mark svg{flex:none}
.mark small{display:block;font:500 .72rem var(--m);letter-spacing:.1em;color:hsl(var(--mute))}
.nav{margin-left:auto;display:flex;align-items:center;gap:4px}
.nav a,.navbtn{color:hsl(var(--ink));text-decoration:none;padding:10px 12px;font-weight:600;font-size:.98rem;border:1px solid transparent;background:none;font-family:inherit;cursor:pointer;min-height:44px;display:inline-flex;align-items:center}
.nav a[aria-current=page]{color:hsl(var(--mint));border-bottom:2px solid hsl(var(--mint))}
.nav a:hover,.navbtn:hover{color:hsl(var(--mint))}
.lang{font-family:var(--m)!important;border:1px solid hsl(var(--line))!important;clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px)}
.dir{position:relative}
.dirpanel{position:absolute;right:0;top:calc(100% + 10px);width:min(560px,90vw);background:hsl(var(--deep));border:1px solid hsl(var(--mint)/.5);padding:18px;display:grid;grid-template-columns:1fr 1fr;gap:6px;clip-path:polygon(0 0,calc(100% - var(--cut)) 0,100% var(--cut),100% 100%,var(--cut) 100%,0 calc(100% - var(--cut)))}
.dirpanel a{display:block;padding:10px 12px;border-left:2px solid hsl(var(--line));min-width:0}
.dirpanel a span{display:block;font-weight:400;font-size:.88rem;color:hsl(var(--mute))}
.dirpanel a:hover{border-left-color:hsl(var(--mint));background:hsl(var(--panel))}
.menubtn{display:none;margin-left:auto}
@media(max-width:1020px){.menubtn{display:inline-flex;border:1px solid hsl(var(--line))}
.nav{display:none;position:absolute;left:0;right:0;top:100%;background:hsl(var(--deep));flex-direction:column;align-items:stretch;padding:12px 20px 20px;border-bottom:1px solid hsl(var(--mint)/.4);max-height:calc(100dvh - 70px);overflow:auto}
.nav.open{display:flex}.dirpanel{position:static;width:100%;grid-template-columns:1fr;clip-path:none;margin-top:6px}}
/* hero */
.hero{padding:clamp(48px,9vw,120px) 0 60px;border-bottom:1px solid hsl(var(--line))}
.hero h1 em{font-style:normal;color:hsl(var(--mint))}
.hero-lead{font-size:clamp(1.12rem,1.8vw,1.35rem);color:hsl(var(--mute));max-width:58ch}
.gate{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:48px;border:1px solid hsl(var(--line))}
.gate>div{padding:22px;border-right:1px solid hsl(var(--line));min-width:0;position:relative}
.gate>div:last-child{border-right:0}
.gate b{display:block;font-family:var(--m);color:hsl(var(--mint));font-size:.85rem;letter-spacing:.12em;margin-bottom:8px}
.gate>div::after{content:"";position:absolute;right:-7px;top:50%;width:12px;height:12px;background:hsl(var(--night));border:1px solid hsl(var(--mint));transform:translateY(-50%) rotate(45deg);z-index:2}
.gate>div:last-child::after{display:none}
@media(max-width:860px){.gate{grid-template-columns:1fr 1fr}.gate>div:nth-child(2){border-right:0}.gate>div:nth-child(-n+2){border-bottom:1px solid hsl(var(--line))}.gate>div::after{display:none}}
@media(max-width:520px){.gate{grid-template-columns:1fr}.gate>div{border-right:0;border-bottom:1px solid hsl(var(--line))}}
.page-head{padding:clamp(40px,7vw,90px) 0 36px;border-bottom:1px solid hsl(var(--line))}
.page-head h1{font-size:clamp(2.1rem,5vw,4.2rem)}
.coord{font-family:var(--m);color:hsl(var(--mute));font-size:.85rem;margin-bottom:18px;display:flex;flex-wrap:wrap;gap:6px 18px}
/* buttons */
.btn{display:inline-flex;align-items:center;gap:10px;min-height:48px;padding:12px 24px;background:hsl(var(--mint));color:hsl(var(--night));font:700 1rem var(--f);text-decoration:none;border:0;cursor:pointer;clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,12px 100%,0 calc(100% - 12px));transition:transform .2s}
.btn:hover{color:hsl(var(--night));transform:translateY(-2px)}
.btn.ghost{background:transparent;color:hsl(var(--mint));box-shadow:inset 0 0 0 1px hsl(var(--mint))}
.btn[disabled]{opacity:.55;cursor:progress}
.row{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
/* sections */
.sec{padding:clamp(56px,8vw,104px) 0;border-bottom:1px solid hsl(var(--line))}
.split{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(24px,5vw,72px)}
.split>*{min-width:0}
@media(max-width:860px){.split{grid-template-columns:1fr}}
.panel{background:hsl(var(--deep));border:1px solid hsl(var(--line));padding:clamp(20px,3vw,32px);clip-path:polygon(0 0,calc(100% - var(--cut)) 0,100% var(--cut),100% 100%,0 100%);min-width:0}
.ledger{list-style:none;margin:0;padding:0;border-top:1px solid hsl(var(--line))}
.ledger li{display:grid;grid-template-columns:minmax(0,180px) minmax(0,1fr);gap:20px;padding:20px 0;border-bottom:1px solid hsl(var(--line))}
.ledger li>*{min-width:0}
.ledger strong{color:hsl(var(--mint));font-family:var(--m);font-size:.9rem;letter-spacing:.06em;text-transform:uppercase}
@media(max-width:600px){.ledger li{grid-template-columns:1fr;gap:6px}}
.svc{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0;border:1px solid hsl(var(--line))}
.svc>article{padding:clamp(22px,3vw,36px);border-bottom:1px solid hsl(var(--line));min-width:0}
.svc>article:nth-child(odd){border-right:1px solid hsl(var(--line))}
.svc>article:nth-last-child(-n+2){border-bottom:0}
.svc .code{font-family:var(--m);color:hsl(var(--mint));font-size:.85rem}
@media(max-width:760px){.svc{grid-template-columns:1fr}.svc>article{border-right:0!important;border-bottom:1px solid hsl(var(--line))!important}.svc>article:last-child{border-bottom:0!important}}
.block{margin-top:28px}
.check{list-style:none;padding:0;margin:0}
.check li{padding:8px 0 8px 30px;position:relative}
.check li::before{content:"";position:absolute;left:4px;top:.95em;width:10px;height:10px;border:2px solid hsl(var(--mint));transform:rotate(45deg)}
.no li::before{border-color:hsl(var(--warn));border-radius:0;transform:none}
.wide{font-size:clamp(1.4rem,2.6vw,2.1rem);font-weight:600;line-height:1.3;max-width:34ch}
.wide b{color:hsl(var(--mint))}
.svcband{border:1px solid hsl(var(--line));margin-bottom:36px}
.svcband header{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding:22px clamp(18px,3vw,32px);background:hsl(var(--panel));border-bottom:1px solid hsl(var(--line))}
.svcband header h2{margin:0;font-size:clamp(1.5rem,3vw,2.2rem)}
.svcband .cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.svcband .cols>div{padding:clamp(18px,3vw,30px);border-right:1px solid hsl(var(--line));min-width:0}
.svcband .cols>div:last-child{border-right:0}
.svcband h3{font-size:1rem;font-family:var(--m);text-transform:uppercase;letter-spacing:.1em;color:hsl(var(--mint))}
@media(max-width:860px){.svcband .cols{grid-template-columns:1fr}.svcband .cols>div{border-right:0;border-bottom:1px solid hsl(var(--line))}}
/* criteria table */
.tbl{width:100%;border-collapse:collapse;font-size:1rem}
.tbl th,.tbl td{text-align:left;padding:14px 12px;border-bottom:1px solid hsl(var(--line));vertical-align:top}
.tbl th{font-family:var(--m);font-size:.85rem;color:hsl(var(--mint));text-transform:uppercase;letter-spacing:.08em}
.tblwrap{overflow-x:auto;border:1px solid hsl(var(--line))}
@media(max-width:640px){.tbl thead{display:none}.tbl tr{display:block;border-bottom:1px solid hsl(var(--line));padding:8px 0}.tbl td{display:block;border:0;padding:6px 14px}.tbl td::before{content:attr(data-h);display:block;font-family:var(--m);font-size:.8rem;color:hsl(var(--mint))}}
/* faq */
.faq details{border-top:1px solid hsl(var(--line))}
.faq details:last-child{border-bottom:1px solid hsl(var(--line))}
.faq summary{cursor:pointer;list-style:none;padding:20px 44px 20px 0;font-weight:700;font-size:1.12rem;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:6px;top:14px;font:400 1.8rem var(--m);color:hsl(var(--mint))}
.faq details[open] summary::after{content:"−"}
.faq details>div{padding:0 0 20px;color:hsl(var(--mute))}
/* planner */
.planner{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:28px;align-items:start}
.planner>*{min-width:0}
@media(max-width:900px){.planner{grid-template-columns:1fr}}
fieldset{border:1px solid hsl(var(--line));padding:18px 20px;margin:0 0 18px;min-width:0}
legend{font-weight:700;padding:0 8px;font-size:1.05rem}
.opt{display:flex;gap:12px;align-items:flex-start;padding:10px 0;cursor:pointer}
.opt input{width:22px;height:22px;accent-color:hsl(var(--mint));flex:none;margin-top:2px}
.readout{position:sticky;top:90px}
.meter{height:12px;background:hsl(var(--panel));border:1px solid hsl(var(--line));margin:12px 0}
.meter i{display:block;height:100%;width:0;background:hsl(var(--mint));transition:width .3s}
.big{font:800 3.4rem/1 var(--f);color:hsl(var(--mint))}
.gaps li{color:hsl(var(--ink))}
/* resources */
.filters{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:24px}
.filters input[type=search]{flex:1 1 260px}
.chip{min-height:44px;padding:8px 16px;background:transparent;color:hsl(var(--ink));border:1px solid hsl(var(--line));font:600 .95rem var(--f);cursor:pointer}
.chip[aria-pressed=true]{background:hsl(var(--mint));color:hsl(var(--night));border-color:hsl(var(--mint))}
.res{list-style:none;padding:0;margin:0;columns:2 340px;column-gap:24px}
.res li{break-inside:avoid;margin:0 0 24px;padding:22px;background:hsl(var(--deep));border-left:3px solid hsl(var(--mint))}
.res .mono{color:hsl(var(--mute))}
/* forms */
.form{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form>*{min-width:0}
.form .full{grid-column:1/-1}
@media(max-width:640px){.form{grid-template-columns:1fr}}
label{display:block;font-weight:600;margin-bottom:6px}
input[type=text],input[type=email],input[type=tel],input[type=search],textarea,select{width:100%;min-height:48px;padding:12px 14px;background:hsl(var(--night));color:hsl(var(--ink));border:1px solid hsl(var(--line));font:inherit;border-radius:0}
input:focus,textarea:focus,select:focus{border-color:hsl(var(--mint));outline:none;box-shadow:0 0 0 2px hsl(var(--mint)/.35)}
textarea{min-height:150px;resize:vertical}
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.status{padding:14px 16px;border:1px solid hsl(var(--line));font-weight:600}
.status.ok{border-color:hsl(var(--mint));color:hsl(var(--mint))}
.status.bad{border-color:hsl(var(--err));color:hsl(var(--err))}
.note{color:hsl(var(--mute));font-size:.95rem}
.tabs{display:flex;flex-wrap:wrap;gap:0;border:1px solid hsl(var(--line));width:max-content;max-width:100%;margin-bottom:22px}
.tabs button{min-height:48px;padding:10px 20px;background:none;border:0;color:hsl(var(--ink));font:700 1rem var(--f);cursor:pointer}
.tabs button[aria-selected=true]{background:hsl(var(--mint));color:hsl(var(--night))}
.facts{display:grid;gap:0;border:1px solid hsl(var(--line))}
.facts>div{padding:18px 20px;border-bottom:1px solid hsl(var(--line));min-width:0;overflow-wrap:anywhere}
.facts>div:last-child{border-bottom:0}
.facts dt{font-family:var(--m);font-size:.82rem;color:hsl(var(--mint));text-transform:uppercase;letter-spacing:.1em}
.facts dd{margin:4px 0 0}
.warnbox{border:1px dashed hsl(var(--warn));padding:16px 18px;color:hsl(var(--ink))}
.warnbox strong{color:hsl(var(--warn))}
/* footer */
.foot{padding:56px 0 30px;background:hsl(var(--deep))}
.foot .grid{display:grid;grid-template-columns:minmax(0,2fr) repeat(2,minmax(0,1fr));gap:32px}
.foot .grid>*{min-width:0;overflow-wrap:anywhere}
.foot h2{font-size:1rem;font-family:var(--m);text-transform:uppercase;letter-spacing:.12em;color:hsl(var(--mint))}
.foot ul{list-style:none;padding:0;margin:0}.foot li{margin:6px 0}
.foot a{color:hsl(var(--ink))}
.foot .legal{margin-top:40px;padding-top:20px;border-top:1px solid hsl(var(--line));display:flex;flex-wrap:wrap;gap:12px 24px;justify-content:space-between;color:hsl(var(--mute));font-size:.95rem}
.linkbtn{background:none;border:0;color:hsl(var(--mint));font:inherit;text-decoration:underline;cursor:pointer;padding:6px 0;min-height:44px}
@media(max-width:760px){.foot .grid{grid-template-columns:1fr}}
/* cookie */
.cookie{position:fixed;left:16px;right:16px;bottom:16px;z-index:50;max-width:620px;background:hsl(var(--panel));border:1px solid hsl(var(--mint));padding:20px;box-shadow:0 20px 50px hsl(222 60% 3%/.6)}
.cookie h2{font-size:1.15rem}
.cookie .row{margin-top:14px}
.cookie .btn{flex:1 1 200px;justify-content:center}
.err404{font:800 clamp(6rem,22vw,16rem)/1 var(--f);color:transparent;-webkit-text-stroke:2px hsl(var(--mint));margin:0}
.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s,transform .6s}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}}
