/* identity-document security print: guilloche, wave microprint and seal watermarks, faded with masks */
.wm{position:relative;isolation:isolate;overflow:hidden}
.wm::before{content:"";position:absolute;z-index:-1;width:720px;height:720px;right:-200px;top:-180px;background:url(/assets/guilloche.svg?v=2) center/contain no-repeat;opacity:.5;
  -webkit-mask-image:radial-gradient(closest-side,#000 60%,transparent 100%);mask-image:radial-gradient(closest-side,#000 60%,transparent 100%)}
.wm::after{content:"";position:absolute;z-index:-1;inset:0;background:url(/assets/waves.svg?v=2) 0 0/240px 120px repeat;opacity:.5;
  -webkit-mask-image:linear-gradient(180deg,#000 0%,transparent 70%);mask-image:linear-gradient(180deg,#000 0%,transparent 70%)}
.seal-wm{position:absolute;z-index:-1;width:220px;height:220px;background:url(/assets/seal.svg?v=2) center/contain no-repeat;opacity:.14;transform:rotate(-14deg);pointer-events:none}
.microline{font-family:var(--mono);font-size:9px;letter-spacing:.3em;color:var(--accent);opacity:.6;white-space:nowrap;overflow:hidden;user-select:none;margin-top:28px}

/* sub-page hero */
.page-hero{padding:72px 0 56px;border-bottom:1px solid var(--line)}
.page-hero h1{font-size:clamp(34px,4.6vw,56px);max-width:20ch}
.page-hero .lede{margin-bottom:0}
.crumbs{font-size:14px;color:var(--dim);margin:0 0 18px}
.crumbs a{color:var(--muted);text-decoration:none}
.crumbs a:hover{color:var(--accent)}
.navlinks a[aria-current="page"]{color:var(--ink);font-weight:600}

/* about */
.facts{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.fact{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:22px}
.fact b{display:block;font-size:22px;letter-spacing:-.01em;margin-bottom:4px}
.fact span{color:var(--muted);font-size:15px}
.idcard{position:relative;isolation:isolate;overflow:hidden;background:#fbfcfa;border:1px solid var(--line2);border-radius:16px;padding:22px 24px;aspect-ratio:1.586/1;max-width:460px;width:100%;display:grid;grid-template-columns:96px 1fr;grid-template-rows:auto 1fr auto;gap:10px 18px}
.idcard::before{content:"";position:absolute;inset:-30%;z-index:-1;background:url(/assets/guilloche.svg?v=2) 70% 40%/120% no-repeat;opacity:.5}
.idcard::after{content:"";position:absolute;inset:0;z-index:-1;background:url(/assets/waves.svg?v=2) 0 0/180px 90px repeat;opacity:.35}
.idcard .hd{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-weight:700}
.idcard .ph{background:#dfe5e1;border-radius:8px;display:grid;place-items:center;color:#8a9893}
.idcard .ph svg{width:40px;height:40px}
.idcard dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:4px 12px;font-size:13px;align-content:start}
.idcard dt{color:var(--dim);text-transform:uppercase;font-size:10.5px;letter-spacing:.1em;padding-top:2px}
.idcard dd{margin:0;font-weight:600}
.idcard .mz{grid-column:1/-1;font-family:var(--mono);font-size:12px;letter-spacing:.1em;color:var(--ink);background:rgba(255,255,255,.75);border-radius:6px;padding:6px 8px;line-height:1.5;overflow:hidden;white-space:nowrap}
.idcard .stamp{position:absolute;right:18px;bottom:52px;width:88px;height:88px;background:url(/assets/seal.svg?v=2) center/contain no-repeat;opacity:.25;transform:rotate(-12deg)}

/* contact */
.contact-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:start}
.form{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:28px}
.form label{display:block;font-size:14.5px;font-weight:600;margin:0 0 6px}
.form input,.form select,.form textarea{width:100%;font:inherit;font-size:15.5px;color:var(--ink);background:var(--bg);border:1px solid var(--line2);border-radius:10px;padding:12px 14px;margin:0 0 18px}
.form input:focus,.form select:focus,.form textarea:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}
.form textarea{min-height:130px;resize:vertical}
.form .row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form .err{color:var(--cm-red);font-size:14px;margin:-10px 0 14px}
.form .hint{color:var(--dim);font-size:13.5px;margin:14px 0 0}
.form button.btn{cursor:pointer;font-family:inherit}
.channels{display:grid;gap:14px}
.channel{display:flex;gap:16px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:20px}
.channel .ico{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;background:var(--surface);border:1.5px solid var(--line2);color:var(--accent);flex:0 0 auto}
.channel .ico svg{width:20px;height:20px}
.channel h3{margin:0 0 4px;font-size:17px}
.channel p{margin:0;color:var(--muted);font-size:15px}
.channel a{color:var(--accent);font-weight:600;text-decoration:none}

/* faq page */
.faq-cats{display:grid;grid-template-columns:240px 1fr;gap:40px;align-items:start}
.faq-toc{position:sticky;top:96px;display:grid;gap:4px}
.faq-toc a{color:var(--muted);text-decoration:none;padding:8px 12px;border-radius:8px;font-size:15px}
.faq-toc a:hover{background:var(--surface);color:var(--accent)}
.faq-group{margin-bottom:44px;scroll-margin-top:90px}
.faq-group h2{font-size:26px;margin-bottom:16px}

/* verification flow */
.flow{display:grid;grid-template-columns:320px 1fr;gap:32px;align-items:start}
.steps-nav{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.steps-nav button{all:unset;box-sizing:border-box;width:100%;cursor:pointer;display:grid;grid-template-columns:34px 1fr;gap:12px;align-items:center;padding:11px 14px;border-radius:12px;border:1px solid transparent;color:var(--muted);font-size:15.5px;transition:background .3s,border-color .3s,color .3s}
.steps-nav button:hover{background:var(--surface)}
.steps-nav button:focus-visible{outline:2px solid var(--accent)}
.steps-nav .no{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:700;border:1.5px solid var(--line2);color:var(--dim);background:var(--surface);transition:all .3s}
.steps-nav .done .no{background:var(--ok);border-color:var(--ok);color:#fff}
.steps-nav .active button{background:var(--surface);border-color:var(--line2);color:var(--ink);font-weight:600}
.steps-nav .active .no{border-color:var(--accent);color:var(--accent)}
.stage{position:relative;isolation:isolate;overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:20px;min-height:470px;padding:26px}
.stage::before{content:"";position:absolute;z-index:-1;right:-160px;bottom:-220px;width:540px;height:540px;background:url(/assets/guilloche.svg?v=2) center/contain no-repeat;opacity:.45;
  -webkit-mask-image:radial-gradient(closest-side,#000 30%,transparent 100%);mask-image:radial-gradient(closest-side,#000 30%,transparent 100%)}
.stage-top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}
.stage-top .t{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-weight:700}
.ctrl{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--muted);border:1px solid var(--line2);border-radius:8px;padding:6px 12px;background:var(--surface)}
.ctrl:hover{border-color:var(--accent);color:var(--accent)}
.ctrl:focus-visible{outline:2px solid var(--accent)}
.progress{height:4px;background:var(--surface2);border-radius:4px;overflow:hidden;margin-bottom:24px}
.progress i{display:block;height:100%;width:0;background:var(--accent);transition:width .5s ease}
.scene{display:none}
.scene.on{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:center;animation:fadein .5s ease}
@keyframes fadein{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.scene h2{font-size:26px;margin:0 0 10px}
.scene p{color:var(--muted);font-size:16px;line-height:1.65;margin:0 0 14px}
.rec{font-family:var(--mono);font-size:12.5px;color:var(--muted);background:var(--surface2);border-radius:10px;padding:12px 14px;line-height:1.7}
.rec b{color:var(--ink);font-weight:600}
.viz{position:relative;min-height:320px;display:grid;place-items:center}
.flow-detail article{display:grid;grid-template-columns:60px 1fr 1fr;gap:20px;padding:26px 0;border-top:1px solid var(--line)}
.flow-detail .n{font-family:var(--mono);font-size:28px;color:var(--accent);font-weight:700}
.flow-detail h3{margin:0 0 6px;font-size:19px}
.flow-detail p{margin:0;color:var(--muted);font-size:15.5px}
.flow-detail .lbl{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);font-weight:700;margin-bottom:4px}

/* scene drawings: solid fills and strokes only, no glow */
.phone-f{width:170px;height:300px;border:2px solid var(--ink);border-radius:28px;padding:10px;background:var(--surface)}
.phone-f .scr{height:100%;border-radius:19px;background:var(--surface2);position:relative;overflow:hidden;display:grid;place-items:center}
.mini-card{width:210px;aspect-ratio:1.586/1;border-radius:10px;border:1px solid var(--line2);background:#fbfcfa;position:relative;isolation:isolate;overflow:hidden;padding:10px;display:grid;grid-template-columns:46px 1fr;grid-template-rows:1fr auto;gap:6px 10px}
.mini-card::before{content:"";position:absolute;inset:-40%;z-index:-1;background:url(/assets/guilloche.svg?v=2) 60% 40%/110% no-repeat;opacity:.45}
.mini-card .ph{background:#dfe5e1;border-radius:5px}
.mini-card .ln{display:grid;gap:6px;align-content:start}
.mini-card .ln i{height:6px;border-radius:3px;background:#cfd6d2}
.mini-card .ln i:nth-child(2){width:70%}.mini-card .ln i:nth-child(3){width:85%}
.mini-card .mz{grid-column:1/-1;font-family:var(--mono);font-size:7.5px;letter-spacing:.04em;color:var(--ink);line-height:1.35;white-space:nowrap;overflow:hidden}
.cardwrap{position:relative}
.phone-f .mini-card{width:128px;padding:7px;grid-template-columns:30px 1fr;gap:4px 6px}
.phone-f .mini-card .ln i{height:4px}
.phone-f .mini-card .mz{font-size:5px}
.frame{position:absolute;border:2.5px solid var(--accent);border-radius:14px;animation:snap 2.4s ease-in-out infinite}
@keyframes snap{0%{inset:-28px;opacity:.15}45%,100%{inset:-9px;opacity:1}}
.shutter{position:absolute;inset:-9px;border-radius:14px;background:#fff;opacity:0;animation:shut 2.4s ease-in-out infinite}
@keyframes shut{0%,55%{opacity:0}60%{opacity:.7}75%,100%{opacity:0}}
.mrz-big{font-family:var(--mono);font-size:13px;letter-spacing:.06em;background:var(--surface2);border-radius:10px;padding:14px;line-height:1.85;position:relative;overflow:hidden;width:100%;white-space:nowrap}
.mrz-big .cur{position:absolute;top:0;bottom:0;width:2px;background:var(--accent);animation:scanh 2.6s linear infinite}
@keyframes scanh{from{left:0}to{left:100%}}
.mrz-big mark{background:var(--ok-soft);color:var(--ok);font-weight:700;border-radius:3px}
.chk{display:flex;gap:8px;align-items:center;font-size:14px;color:var(--muted);margin-top:10px;opacity:0;animation:rowin .4s ease forwards}
.chk svg{width:16px;height:16px;color:var(--ok);flex:0 0 auto}
.oval{width:160px;height:200px;border-radius:50%;border:2.5px dashed var(--line2);position:relative;display:grid;place-items:center}
.oval .head{width:90px;height:116px;border-radius:50%/45%;background:#dfe5e1;animation:turn 3.6s ease-in-out infinite}
@keyframes turn{0%,100%{transform:none}25%{transform:translateX(-14px) rotate(-6deg)}60%{transform:translateX(14px) rotate(6deg)}}
.oval .arc{position:absolute;inset:-9px;border-radius:50%;border:3px solid transparent;border-top-color:var(--ok);border-right-color:var(--ok);animation:spin 3.6s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.prompt{position:absolute;bottom:-38px;left:50%;transform:translateX(-50%);font-size:13.5px;font-weight:600;color:var(--accent);white-space:nowrap}
.match{display:flex;align-items:center;gap:16px}
.match .p{width:96px;height:120px;border-radius:10px;background:#dfe5e1;display:grid;place-items:center;color:#8a9893;border:1px solid var(--line2)}
.match .p svg{width:44px;height:44px}
.match .cap{display:block;text-align:center;font-size:12.5px;color:var(--dim);margin-top:6px}
.match .link{width:64px;height:2px;background:var(--line2);position:relative}
.match .link::after{content:"";position:absolute;left:0;top:0;height:2px;width:0;background:var(--accent);animation:fill 2.4s ease infinite}
@keyframes fill{60%,100%{width:100%}}
.score{margin-top:26px;width:280px}
.score .bar{height:10px;border-radius:6px;background:var(--surface2);overflow:hidden}
.score .bar i{display:block;height:100%;background:var(--ok);width:0;animation:score 2.2s ease .3s forwards}
@keyframes score{to{width:93%}}
.score .lab{display:flex;justify-content:space-between;font-size:13px;color:var(--muted);margin-bottom:6px}
.score .thr{position:relative;height:0}
.score .thr::after{content:"";position:absolute;left:80%;top:-10px;width:2px;height:10px;background:var(--ink)}
.chain{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:center}
.blk{width:100px;border:1.5px solid var(--line2);border-radius:10px;background:var(--surface);padding:8px;font-family:var(--mono);font-size:10.5px;color:var(--muted);line-height:1.5}
.blk b{display:block;color:var(--ink);font-size:11px}
.blk.new{border-color:var(--accent);animation:slidein 2.8s ease infinite}
@keyframes slidein{0%{opacity:0;transform:translateX(30px)}35%,100%{opacity:1;transform:none}}
.chain .lk{width:14px;height:2px;background:var(--line2)}
.reviewer{display:grid;gap:12px;width:290px}
.rv{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px}
.rv .av{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);font-weight:700;font-size:13px;flex:0 0 auto}
.rv small{display:block;color:var(--dim);font-size:12.5px}
.rv .st{margin-left:auto;font-size:12.5px;font-weight:700;white-space:nowrap}
.approve{justify-self:start;background:var(--ok);color:#fff;border-radius:9px;padding:9px 16px;font-weight:600;font-size:14px;animation:press 3s ease infinite}
@keyframes press{0%,55%{opacity:.5}62%{transform:scale(.96);opacity:1}70%,100%{transform:none;opacity:1}}
.result{position:relative;font-family:var(--mono);font-size:13px;background:var(--ink);color:#d7e1ea;border-radius:12px;padding:16px 18px;line-height:1.75;width:100%}
.result .s{color:#9ee6b8}.result .k{color:#7cc4ff}.result .c{color:#7d8fa1}
.seal-big{position:absolute;right:-14px;top:-30px;width:116px;height:116px;background:#fff url(/assets/seal.svg?v=2) center/contain no-repeat;border-radius:50%;opacity:0;animation:stamp 3s ease .4s forwards}
@keyframes stamp{0%{opacity:0;transform:scale(1.35) rotate(-12deg)}35%,100%{opacity:1;transform:scale(1) rotate(-12deg)}}

@media(max-width:940px){
  .facts{grid-template-columns:1fr 1fr}
  .contact-grid,.faq-cats,.flow{grid-template-columns:1fr}
  .faq-toc{position:static;grid-template-columns:1fr 1fr}
  .scene.on{grid-template-columns:1fr}
  .flow-detail article{grid-template-columns:44px 1fr}
  .flow-detail article > div:last-child{grid-column:2}
  .steps-nav{grid-template-columns:1fr 1fr}
}
@media(max-width:560px){
  .facts,.form .row{grid-template-columns:1fr}.seal-big{right:0}
  .steps-nav{grid-template-columns:repeat(8,1fr);gap:4px}
  .steps-nav button{grid-template-columns:1fr;justify-items:center;padding:6px 0;font-size:0;border:none}
  .steps-nav .active button{background:none}
  .stage{padding:20px}
  .idcard{aspect-ratio:auto;grid-template-columns:72px 1fr;padding:18px}
}
@media(prefers-reduced-motion:reduce){.chk,.seal-big{opacity:1}.score .bar i{width:93%}}

.case{position:relative;isolation:isolate;overflow:hidden}
.case::after{content:"";position:absolute;z-index:-1;right:-40px;bottom:-40px;width:200px;height:200px;background:url(/assets/seal.svg?v=2) center/contain no-repeat;opacity:.12;transform:rotate(-14deg)}
.closing{position:relative;isolation:isolate;overflow:hidden}
.closing::before{content:"";position:absolute;z-index:-1;left:50%;top:50%;width:680px;height:680px;transform:translate(-50%,-50%);background:url(/assets/guilloche.svg?v=2) center/contain no-repeat;opacity:.18;filter:brightness(0) invert(1)}
.strip{position:relative;isolation:isolate}
