/* Dhara Technology · site.css */
@font-face{font-family:'Inter Tight';src:url('/assets/fonts/inter-tight-var.woff2') format('woff2');font-weight:300 600;font-style:normal;font-display:swap}
@font-face{font-family:'Inter';src:url('/assets/fonts/inter-var.woff2') format('woff2');font-weight:400 600;font-style:normal;font-display:swap}

:root{
  --ground:#F5F7FA;--paper:#FFFFFF;--ink:#141C2E;--muted:#4A5468;--soft:#5A6478;
  --rule:#141C2E;--hair:#CDD3DD;--teal:#1B2A4A;--teal-d:#111C33;--ochre:#2174A8;--ochre-t:#1A5F8C;
  --river:#2E8BC0;--sand:#7FC4EC;--mint:#B4BDCC;
  --w:1240px;--pad:40px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--ground);color:var(--ink);font-family:'Inter',system-ui,sans-serif;font-size:17px;line-height:1.6;text-rendering:optimizeLegibility}
img,svg{display:block}
a{color:var(--teal)}a:hover{color:var(--teal-d)}
:focus-visible{outline:2px solid var(--teal);outline-offset:3px}
.skip{position:absolute;left:-9999px;top:0}.skip:focus{left:16px;top:16px;background:var(--paper);padding:10px 14px;z-index:10}
.w{max-width:var(--w);margin:0 auto;padding:0 var(--pad)}
@media (max-width:640px){:root{--pad:20px}}
.d{font-family:'Inter Tight',system-ui,sans-serif;letter-spacing:-0.03em}
.lab{font-size:12px;font-weight:500;letter-spacing:0.12em;text-transform:uppercase;color:var(--soft);margin:0}
.lab.t{color:var(--teal)}
.m{color:var(--muted)}
.num{font-family:'Inter Tight',sans-serif;font-weight:300;color:var(--ochre);font-feature-settings:'tnum';font-size:72px;line-height:1;display:inline-block}
h1,h2,h3{font-family:'Inter Tight',system-ui,sans-serif;letter-spacing:-0.03em;font-weight:500;margin:0}
h1{font-size:clamp(44px,7.6vw,108px);line-height:0.98;max-width:1080px}
h2{font-size:clamp(30px,3.4vw,44px);line-height:1.08}
h3{font-size:21px}
p{margin:0}

/* Header */
.hdr .w{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;padding-top:24px;padding-bottom:24px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink)}
.brand img{display:block;height:40px;width:auto}
.ftr .brand img{height:auto;width:180px}
.brand span{font-family:'Inter Tight',sans-serif;font-size:21px;font-weight:600;letter-spacing:-0.02em}
.brand span i{font-style:normal;font-weight:400}
.nav{display:flex;flex-wrap:wrap;gap:4px 28px}
.nav a{position:relative;color:var(--ink);text-decoration:none;font-size:15px;padding:12px 0}
.nav a::after{content:'';position:absolute;left:0;right:0;bottom:6px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .35s cubic-bezier(.2,.7,.2,1)}
.nav a:hover::after,.nav a[aria-current=page]::after{transform:scaleX(1)}
.nav a[aria-current=page]{color:var(--teal)}

/* Markets bar */
.mbar{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.mbar .w{display:flex;flex-wrap:wrap;align-items:center;gap:10px 36px;padding-top:13px;padding-bottom:13px;font-size:14px}
.mk{display:inline-flex;align-items:center;gap:9px}
.mk b{font-weight:500}.mk time{font-feature-settings:'tnum';color:var(--muted)}
.dot{width:8px;height:8px;border-radius:50%;border:1px solid #8C96A8}
.mk.open .dot{background:var(--teal);border-color:var(--teal);animation:pulse 2.4s ease-out infinite}
.mk.open .st{color:var(--teal)}.mk .st{color:var(--soft)}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(27,42,74,.45)}70%{box-shadow:0 0 0 7px rgba(27,42,74,0)}100%{box-shadow:0 0 0 0 rgba(27,42,74,0)}}
.mbar .note{margin-left:auto;font-size:12px;color:var(--soft)}

/* Buttons and links */
.btn{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 26px;border:1px solid var(--ink);color:var(--ink);background:transparent;font:500 15px/1 'Inter',sans-serif;text-decoration:none;cursor:pointer;isolation:isolate;transition:color .3s,transform .12s}
.btn::before{content:'';position:absolute;inset:0;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .4s cubic-bezier(.2,.7,.2,1);z-index:-1}
.btn:hover{color:var(--ground)}.btn:hover::before{transform:scaleX(1)}
.btn.p{background:var(--teal);border-color:var(--teal);color:var(--ground)}
.btn.p::before{background:var(--teal-d)}
.btn:active{transform:scale(.98)}
.lnk{position:relative;display:inline-flex;align-items:center;gap:10px;min-height:44px;font-size:15px;font-weight:500;color:var(--teal);text-decoration:none}
.lnk::after{content:'';position:absolute;left:0;right:0;bottom:10px;height:1px;background:currentColor;transform-origin:left;transition:transform .35s cubic-bezier(.2,.7,.2,1)}
.lnk:hover::after{transform:scaleX(.35)}
.lnk .ar{transition:transform .3s}.lnk:hover .ar{transform:translateX(4px)}
.acts{display:flex;flex-wrap:wrap;gap:12px}

/* Sections */
.sec{position:relative;display:flex;flex-wrap:wrap;gap:24px 48px;padding:96px 0;border-top:1px solid var(--rule)}
.sec.first{border-top:0}
.sl{flex:1 1 220px;max-width:300px}
.sl .lab{margin-top:12px}
.sc{flex:999 1 600px;min-width:0}
[data-glow]{--mx:-999px}
[data-glow]::after{content:'';position:absolute;left:0;right:0;top:-1px;height:2px;pointer-events:none;background:radial-gradient(220px 2px at var(--mx) 50%,var(--teal),transparent);opacity:0;transition:opacity .3s}
[data-glow]:hover::after{opacity:1}

.hero{padding:112px 0 24px}
.hero .lede{display:flex;flex-wrap:wrap;gap:32px 64px;margin-top:48px;align-items:flex-end}
.hero .lede p{flex:1 1 420px;max-width:620px;font-size:20px;line-height:1.55;color:var(--muted)}
.hero-lines{display:block;width:100%;height:200px;margin-top:40px}
.hero-lines path{transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.phero{padding:104px 0 72px;border-top:1px solid var(--rule)}
.phero p.m{margin-top:40px;font-size:20px;max-width:640px}
.phero .lab,.hero .lab{margin-bottom:32px}

/* Draw-in */
.draw{stroke-dasharray:1;stroke-dashoffset:1;animation:draw 2.4s cubic-bezier(.6,0,.2,1) forwards}
@keyframes draw{to{stroke-dashoffset:0}}

/* Rows */
.rows{border-bottom:1px solid var(--hair)}
.row{position:relative;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px 32px;padding:22px 0;border-top:1px solid var(--hair);text-decoration:none;color:var(--ink);transition:padding .3s cubic-bezier(.2,.7,.2,1),color .2s}
.row::before{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(260px 90px at var(--mx,-999px) 50%,rgba(27,42,74,.07),transparent);opacity:0;transition:opacity .3s}
.row:hover::before{opacity:1}
a.row:hover{color:var(--teal);padding-left:10px}
.row .t{font-family:'Inter Tight',sans-serif;letter-spacing:-0.03em;font-size:24px}
.row .x{color:var(--muted);font-size:15px}
.row .ar{color:var(--teal);opacity:0;transform:translateX(-6px);transition:all .3s}
a.row:hover .ar{opacity:1;transform:none}
.row.split .t{flex:1 1 280px;min-width:0;font-size:25px;font-weight:500}
.row.split .x{flex:2 1 380px;min-width:0;font-size:17px}

/* Columns */
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:40px}
.col{position:relative;border-top:1px solid var(--rule);padding-top:18px;display:flex;flex-direction:column;gap:8px;transition:border-color .3s}
.col::before{content:'';position:absolute;left:0;top:-1px;height:2px;width:100%;background:var(--teal);transform:scaleX(0);transform-origin:left;transition:transform .45s cubic-bezier(.2,.7,.2,1)}
.col:hover::before{transform:scaleX(1)}
.col p{font-size:16px;color:var(--muted)}
.quote{margin-top:64px;font-family:'Inter Tight',sans-serif;letter-spacing:-0.03em;font-size:30px;line-height:1.25;max-width:780px}

/* Lifecycle */
.trk{position:relative;height:1px;background:var(--rule);margin:30px 0 0}
.tick{position:absolute;top:-6px;width:1px;height:13px;background:var(--rule)}
.pt{position:absolute;top:-5px;left:0;width:11px;height:11px;margin-left:-5px;border-radius:50%;background:var(--teal);animation:travel 14s linear infinite;transition:left .5s cubic-bezier(.2,.7,.2,1)}
.trk.hold .pt{animation:none}
@keyframes travel{from{left:0}to{left:100%}}
.stg{list-style:none;padding:0;margin:18px 0 0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px}
.stg li{cursor:default;padding:8px 0;border-top:2px solid transparent;transition:border-color .3s}
.stg li:hover,.stg li:focus-within{border-top-color:var(--teal)}
.stg .t{display:block;font-family:'Inter Tight',sans-serif;letter-spacing:-0.03em;font-size:20px;font-weight:500}
.stg .x{font-size:14px;color:var(--muted)}
.stg-cap{margin-top:20px;min-height:28px;font-size:15px;color:var(--teal)}
@media (max-width:760px){.stg{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Teal band */
.band{background:var(--teal);color:var(--ground)}
.band .w{padding-top:120px;padding-bottom:120px}
.band .lab{color:var(--sand);margin-bottom:32px}
.band .big{font-family:'Inter Tight',sans-serif;letter-spacing:-0.03em;font-size:clamp(32px,4vw,54px);line-height:1.08;max-width:980px}
.band p.s{margin-top:36px;max-width:600px;color:#D6DFEB}

.strip{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;padding:32px 0;border-bottom:1px solid var(--rule)}
.close{padding:128px 0}
.close h2{font-size:clamp(36px,5vw,64px);line-height:1.04;max-width:900px}
.close .acts{margin-top:40px;align-items:center}

/* Services */
.svc .three{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:28px 40px;margin-top:28px}
.ul{margin:0;padding:0;list-style:none}
.ul li{padding:10px 0;border-top:1px solid var(--hair)}
.ul.b{border-bottom:1px solid var(--hair)}
.ul.b li{padding:14px 0}
.ai{display:flex;gap:14px;align-items:baseline;margin-top:28px;padding-top:14px;border-top:1px solid var(--teal)}
.oc{font-family:'Inter Tight',sans-serif;letter-spacing:-0.03em;font-size:22px;line-height:1.35}

/* Coverage map */
.mapbox{overflow-x:auto;margin-top:40px}
.map{border-collapse:collapse;min-width:820px;width:100%}
.map th,.map td{border-top:1px solid var(--hair);padding:0}
.map thead th{border-top:1px solid var(--rule);font-size:13px;font-weight:500;text-align:center}
.map tbody th{text-align:left}
.map tr:last-child th,.map tr:last-child td{border-bottom:1px solid var(--rule)}
.map button{appearance:none;border:0;background:transparent;font:inherit;color:inherit;cursor:pointer;width:100%;min-height:52px;padding:12px 8px 12px 0;text-align:inherit}
.map thead button{text-align:center;padding:12px 4px;border-bottom:2px solid transparent}
.map tbody th button{font-family:'Inter Tight',sans-serif;letter-spacing:-0.02em;font-size:19px}
.map td{text-align:center;height:56px;transition:background .2s}
.cv{display:inline-block;width:12px;height:12px;border-radius:50%;background:var(--teal);transition:transform .25s,background .25s}
.nc{display:inline-block;width:12px;height:12px;border-radius:50%;border:1px solid #D3D9E2}
.map.focus .cv{background:#C9D1DC}
.map td.lit{background:rgba(27,42,74,.06)}
.map td.lit .cv{background:var(--teal);transform:scale(1.35)}
.map .on button{color:var(--teal);font-weight:600}
.map thead .on button{border-bottom-color:var(--teal)}
.mapcap{margin-top:28px;font-family:'Inter Tight',sans-serif;letter-spacing:-0.02em;font-size:22px;line-height:1.4;max-width:880px;min-height:62px}

/* Markets board */
.board-wrap{background:var(--ink);color:var(--ground)}
.board-wrap .w{padding-top:72px;padding-bottom:88px}
.board{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));border-top:1px solid #33405A;border-left:1px solid #33405A;margin-top:32px}
.tile{position:relative;overflow:hidden;padding:28px 24px 32px;border-right:1px solid #33405A;border-bottom:1px solid #33405A;display:flex;flex-direction:column;gap:8px;transition:background .35s}
.tile .code{font-family:'Inter Tight',sans-serif;font-weight:300;font-size:64px;line-height:1;letter-spacing:-0.04em;transition:transform .35s}
.tile .n{font-family:'Inter Tight',sans-serif;letter-spacing:-0.02em;font-size:20px;font-weight:500}
.tile .x{font-size:14px;color:#B3BDCB}
.tile::after{content:'';position:absolute;left:0;bottom:22px;height:1px;width:40%;background:var(--sand);transform:translateX(-110%);opacity:0}
.tile:hover{background:var(--teal)}
.tile:hover .code{transform:translateX(6px)}
.tile:hover::after{opacity:1;animation:tape 1.6s linear infinite}
@keyframes tape{from{transform:translateX(-110%)}to{transform:translateX(260%)}}

/* Gates */
.gates{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;padding-top:56px;margin-top:48px}
.gates::before{content:'';position:absolute;left:0;right:0;top:27px;height:1px;background:var(--rule)}
.gate{position:relative;display:flex;flex-direction:column;gap:6px}
.gate::before{content:'';position:absolute;left:0;top:-48px;width:2px;height:40px;background:var(--rule);transition:background .3s,width .3s}
.gate.k::before{background:var(--teal);width:4px}
.gates:hover .gate::before{background:var(--teal);width:4px}
.gates:hover .gate:nth-child(2)::before{transition-delay:.15s}
.gates:hover .gate:nth-child(3)::before{transition-delay:.3s}
.gate .d{font-size:24px;font-weight:500}
@media (max-width:760px){.gates{grid-template-columns:1fr}.gates::before,.gate::before{display:none}}

/* Ticks */
.tk{display:flex;gap:16px;align-items:flex-start;padding:16px 0;border-top:1px solid var(--hair)}
.tk svg{flex:0 0 auto;margin-top:5px}
.chk{stroke-dasharray:1;stroke-dashoffset:1}
.in .chk{animation:draw .9s ease-out forwards}

/* About */
.core{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:36px}
.core .col .L{font-family:'Inter Tight',sans-serif;font-size:148px;line-height:.9;font-weight:300;color:var(--teal);transition:transform .4s cubic-bezier(.2,.7,.2,1)}
.core .col:hover .L{transform:translateY(-6px)}
.core h3{margin-top:20px;font-size:24px}

/* Insights */
.art{display:flex;flex-wrap:wrap;gap:24px 48px;padding:80px 0;border-top:1px solid var(--rule)}
.ol{margin:28px 0 0;padding:0;list-style:none;counter-reset:n}
.ol li{counter-increment:n;display:flex;gap:18px;padding:14px 0;border-top:1px solid var(--hair)}
.ol li::before{content:counter(n,decimal-leading-zero);font-family:'Inter Tight',sans-serif;font-size:14px;font-weight:500;color:var(--ochre);min-width:24px;padding-top:2px;font-feature-settings:'tnum'}
.win{display:grid;grid-template-columns:56px 1fr;align-items:center;gap:8px 16px;margin-top:36px}
.bar{height:28px;background:var(--ink);transform-origin:left;transform:scaleX(0)}
.bar.k{background:var(--teal)}
.in .bar{animation:grow 1.4s cubic-bezier(.6,0,.2,1) forwards}
.in .bar.k{animation-delay:.35s}
@keyframes grow{to{transform:scaleX(1)}}
.split2{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-top:36px;border-top:1px solid var(--rule)}
.split2>div{padding:16px 16px 16px 0}.split2>div+div{border-left:1px solid var(--hair);padding-left:16px}

/* Article */
.prose{max-width:720px}
.prose h2{font-size:30px;margin:56px 0 16px}
.prose p{margin:0 0 18px;font-size:18px;line-height:1.7}
.prose ul{margin:0 0 18px;padding-left:20px;font-size:18px;line-height:1.7}
.prose .src{margin-top:56px;padding-top:20px;border-top:1px solid var(--rule);font-size:15px}
.prose .src li{margin-bottom:6px}
.meta{display:flex;flex-wrap:wrap;gap:6px 24px;margin-top:32px;font-size:14px;color:var(--soft)}

/* Forms */
.f{display:flex;flex-direction:column;gap:6px}
.f label{font-size:13px;font-weight:500;letter-spacing:.04em}
.in-f{min-height:48px;padding:10px 0;border:0;border-bottom:1px solid var(--ink);background:transparent;font:inherit;font-size:18px;color:var(--ink);width:100%;border-radius:0;transition:border-color .2s}
.in-f:hover{border-bottom-color:var(--teal)}
.in-f:focus{outline:none;border-bottom:2px solid var(--teal)}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:28px 40px}
form.frm{display:flex;flex-direction:column;gap:28px}
.ck{display:flex;align-items:center;gap:14px;min-height:48px;border-top:1px solid var(--hair);cursor:pointer;transition:background .2s}
.ck:hover{background:rgba(27,42,74,.05)}
.ck input{width:18px;height:18px;accent-color:var(--teal);margin:0}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.notice{padding:18px 22px;border:1px solid var(--teal);color:var(--teal);display:none}
.notice.show{display:block}
.pay{margin-top:48px;padding:24px 28px;border:1px solid var(--teal)}

/* Q&A */
.qa{border-bottom:1px solid var(--hair)}
.qa details{border-top:1px solid var(--hair)}
.qa details:first-child{border-top-color:var(--rule)}
.qa summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:24px;padding:22px 0;font-family:'Inter Tight',sans-serif;letter-spacing:-0.02em;font-size:22px;font-weight:500;transition:color .2s}
.qa summary::-webkit-details-marker{display:none}
.qa summary::after{content:'+';color:var(--teal);font-weight:300;font-size:28px;line-height:1;transition:transform .3s}
.qa details[open] summary::after{transform:rotate(45deg)}
.qa summary:hover{color:var(--teal)}
.qa details p{padding:0 0 22px;max-width:720px;color:var(--muted)}

/* Legal */
.legal{max-width:760px}
.legal h2{font-size:26px;margin:44px 0 12px}
.legal p,.legal li{font-size:17px;line-height:1.7}
.legal p{margin:0 0 14px}
.legal ul{padding-left:20px;margin:0 0 14px}
.legal dl{display:grid;grid-template-columns:200px 1fr;gap:10px 24px;margin:0}
.legal dt{color:var(--soft)}.legal dd{margin:0}
@media (max-width:640px){.legal dl{grid-template-columns:1fr}.legal dt{margin-top:8px}}

/* Footer */
.ftr{border-top:1px solid var(--rule);font-size:15px}
.ftr .w{padding-top:56px;padding-bottom:40px}
.ftr .top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:40px}
.ftr nav{display:flex;flex-direction:column;gap:8px}
.ftr .navs{display:flex;flex-wrap:wrap;gap:56px}
.ftr a{color:var(--ink);text-decoration:none}.ftr a:hover{color:var(--teal)}
.ftr .bot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;margin-top:56px;padding-top:20px;border-top:1px solid var(--hair);font-size:13px;color:var(--muted)}
.ftr .bot span:last-child{display:flex;gap:20px}

/* Flip numerals */
.flip .ch{display:inline-block;transform-origin:50% 60%}
.flip.in .ch{animation:flip .7s cubic-bezier(.2,.7,.2,1) both}
@keyframes flip{0%{transform:perspective(400px) rotateX(-90deg);opacity:0}60%{opacity:1}100%{transform:none;opacity:1}}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .draw,.chk{stroke-dashoffset:0}.bar{transform:none}
  .pt{left:50%}
}

/* Phone refinements */
@media (max-width:640px){
  .hdr .w{padding-top:18px;padding-bottom:14px}
  .nav{gap:0 18px}.nav a{font-size:14px;padding:10px 0}
  .mbar .w{gap:6px 18px;font-size:13px}.mbar .note,.mbar .lab{display:none}
  .hero{padding-top:64px}.phero{padding:64px 0 48px}
  .sec{padding:64px 0}.num{font-size:56px}
  .close{padding:88px 0}
}
