/* Rudra Agri
   Type: four sizes (display, head, body, small). The Home page name is the one exception.
   Space: one scale (8, 16, 24, 40, 64, 112). */

:root{
  --bg:#f9fbf8; --paper:#fff; --ink:#032c28; --green:#2e7d4f; --lime:#d4ee95; --lime-2:#bfde73; --mist:#eef6e2;
  --muted:#47605b; --line:rgba(3,44,40,.15);
  --serif:"Literata",Georgia,serif; --sans:"Poppins",system-ui,sans-serif; --telugu:"Noto Sans Telugu","Poppins",sans-serif;
  --t-display:clamp(2.75rem,6.6vw,5.5rem); --t-head:clamp(1.75rem,3.2vw,2.625rem); --t-body:1.1875rem; --t-small:1rem;
  --s1:8px; --s2:16px; --s3:24px; --s4:40px; --s5:64px; --s6:112px;
  --pad:clamp(20px,4.5vw,56px); --head-h:76px;
  --ease:cubic-bezier(.2,.75,.2,1);
}
@media(max-width:700px){:root{--t-body:1.125rem;--s5:48px;--s6:80px;--head-h:68px}}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:clip}
body{font:400 var(--t-body)/1.55 var(--serif);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;overflow-x:clip}
img,svg{display:block;max-width:100%}
a{color:inherit}
:focus-visible{outline:3px solid var(--lime-2);outline-offset:3px;border-radius:2px}
::selection{background:var(--lime)}

h1,.display{font:500 var(--t-display)/1.03 var(--serif);letter-spacing:-.035em}
h2,.head{font:500 var(--t-head)/1.14 var(--serif);letter-spacing:-.025em}
h3{font:600 var(--t-body)/1.3 var(--serif);letter-spacing:-.01em}
.small,small,figcaption,label,th{font:500 var(--t-small)/1.45 var(--sans)}
p{max-width:62ch}
.muted{color:var(--muted)}
.wrap{max-width:1296px;margin-inline:auto;padding-inline:var(--pad)}

/* links and buttons */
.text-link{font:500 var(--t-small)/1.45 var(--sans);text-decoration:none;color:var(--green);background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat;padding-bottom:3px;transition:background-size .35s var(--ease),color .2s}
.text-link:hover{background-size:0 1px;background-position:100% 100%;color:var(--ink)}
.text-link::after{content:"\2192";display:inline-block;margin-left:8px;transition:transform .3s var(--ease)}
.text-link:hover::after{transform:translateX(5px)}
.text-link.plain::after{content:none}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:54px;padding:0 28px;border:1.5px solid var(--ink);border-radius:6px;background:var(--ink);color:var(--bg);font:500 var(--t-small)/1 var(--sans);text-decoration:none;cursor:pointer;transition:background .25s,color .25s,border-color .25s,transform .15s}
.btn::after{content:"\2192";transition:transform .3s var(--ease)}
.btn:hover{background:var(--green);border-color:var(--green)}
.btn:hover::after{transform:translateX(5px)}
.btn:active{transform:translateY(1px)}
.btn.line{background:transparent;color:var(--ink)}
.btn.line:hover{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.btn.lime{background:var(--lime);color:var(--ink);border-color:var(--lime)}
.btn.lime:hover{background:var(--paper);border-color:var(--paper)}
.btn.bare::after{content:none}
.actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s3);margin-top:var(--s4)}

/* header */
.site-head{position:sticky;top:0;z-index:50;border-bottom:1px solid transparent;transition:border-color .3s}
/* the blur sits on a layer of its own so the phone menu can still cover the whole screen */
.site-head::before{content:"";position:absolute;inset:0;z-index:-1;background:rgba(249,251,248,.93);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.site-head.stuck{border-color:var(--line)}
.site-head .wrap{display:flex;align-items:center;gap:var(--s4);height:var(--head-h)}
.mark{font:600 1.625rem/1 var(--serif);letter-spacing:-.035em;text-decoration:none;white-space:nowrap}
.mark em{font-style:italic;font-weight:400;color:var(--green);margin-left:.16em}
.site-nav{display:flex;gap:28px;margin-left:auto}
.site-nav a{font:500 var(--t-small)/1 var(--sans);text-decoration:none;padding:12px 0;white-space:nowrap;background:linear-gradient(var(--green),var(--green)) 0 calc(100% - 4px)/0 2px no-repeat;transition:background-size .3s var(--ease),color .2s}
.site-nav a:hover,.site-nav a[aria-current]{background-size:100% 2px}
.site-head .btn{min-height:46px;padding:0 20px}
.menu-btn{display:none;margin-left:auto;min-height:46px;padding:0 18px;border:1.5px solid var(--ink);border-radius:6px;background:none;color:var(--ink);font:500 var(--t-small)/1 var(--sans);cursor:pointer}
@media(max-width:1200px){
  .menu-btn{display:block}
  .site-head .btn{display:none}
  .site-nav{position:fixed;inset:var(--head-h) 0 0 0;background:var(--bg);flex-direction:column;gap:0;padding:var(--s3) var(--pad) var(--s5);overflow:auto;transform:translateY(-12px);opacity:0;visibility:hidden;transition:opacity .25s,transform .25s,visibility .25s}
  .site-nav.open{opacity:1;visibility:visible;transform:none}
  .site-nav a{font:500 var(--t-head)/1.2 var(--serif);padding:var(--s2) 0;border-bottom:1px solid var(--line);background:none}
  .site-nav a[aria-current]{color:var(--green)}
}

/* home: first screen */
.hero{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--s5);align-items:end;padding-block:var(--s4) var(--s6)}
.hero-text{container-type:inline-size}
.name{font-size:clamp(4.25rem,17vw,13.5rem);font-size:clamp(4.25rem,31cqw,13.5rem);line-height:1;letter-spacing:-.06em;font-weight:500;white-space:nowrap}
.name .ln{display:block;overflow:hidden;padding:0 .08em .17em 0;margin-bottom:-.3em}
.name .ln:last-child{margin-bottom:-.05em}
.name em{font-style:italic;font-weight:400;color:var(--green);letter-spacing:-.045em}
.ch{display:inline-block;transform:translateY(112%);transition:transform 1s var(--ease);transition-delay:calc(var(--i)*60ms + 80ms)}
.ready .ch{transform:none}
.hero .place{color:var(--green);margin-bottom:var(--s3)}
.hero .say{font-size:var(--t-head);line-height:1.22;letter-spacing:-.02em;max-width:26ch;margin-top:var(--s3)}
.phone{font:500 var(--t-small)/1 var(--sans);text-decoration:none;white-space:nowrap}
.phone:hover{color:var(--green)}
@media(max-width:980px){.hero{grid-template-columns:1fr;gap:var(--s4);padding-top:var(--s3)}.hero .say{max-width:none}}

/* photographs */
figure{margin:0}
figcaption{color:var(--muted);margin-top:var(--s1)}
.shot{position:relative;overflow:hidden;border-radius:4px;background:var(--mist)}
.shot img{width:100%;height:100%;object-fit:cover;transform:scale(1.14);transition:transform 1.5s var(--ease)}
.shot::after{content:"";position:absolute;inset:0;background:var(--mist);transform-origin:50% 0;transition:transform 1.1s cubic-bezier(.75,0,.2,1)}
.shot.in::after{transform:scaleY(0)}
.shot.in img{transform:none}
.r45{aspect-ratio:4/5}.r32{aspect-ratio:3/2}.r21{aspect-ratio:21/9}.r11{aspect-ratio:1}
@media(max-width:700px){.r21{aspect-ratio:3/2}}

/* page heads */
.page-head{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--s5);align-items:end;padding-block:var(--s5)}
.page-head p{margin-top:var(--s3)}
.page-head.solo{grid-template-columns:1fr}
.page-head.solo h1{max-width:14ch}
@media(max-width:980px){.page-head{grid-template-columns:1fr;gap:var(--s4);padding-block:var(--s4)}}

/* sections: title on the left, content on the right */
.sect{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:var(--s5);padding-block:var(--s6);border-top:1px solid var(--line)}
.sect>header{position:sticky;top:calc(var(--head-h) + var(--s3));align-self:start}
.sect.even{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
.sect>header p{margin-top:var(--s3);color:var(--muted)}
.sect.wide{grid-template-columns:1fr;gap:var(--s4)}
.sect.wide>header{position:static}
@media(max-width:980px){.sect,.sect.even{grid-template-columns:1fr;gap:var(--s4)}.sect>header{position:static}}
.note{font:500 var(--t-small)/1.45 var(--sans);color:var(--green);margin-top:var(--s3);padding-left:var(--s2);border-left:2px solid var(--lime-2)}
.stack>*+*{margin-top:var(--s3)}

/* rows */
.rows{list-style:none;border-bottom:1px solid var(--line)}
.rows>li{display:grid;grid-template-columns:3rem minmax(0,1fr) minmax(0,1.5fr);gap:var(--s3);padding-block:var(--s3);border-top:1px solid var(--line);align-items:baseline}
.rows>li:first-child{border-top:0;padding-top:0}
.rows .n{font:500 var(--t-small)/1.6 var(--sans);color:var(--green)}
.rows p{color:var(--muted)}
.rows.two>li{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr)}
.rows.pic>li{grid-template-columns:120px minmax(0,1fr) minmax(0,1.5fr);align-items:center}
.rows.pic .shot,.rows.pic .glyph{width:120px;aspect-ratio:1}
.rows .glyph{background:var(--mist);border-radius:4px;display:grid;place-items:center}
.rows .glyph svg{width:62%}
.rows h3 small{display:block;color:var(--muted);font-weight:400;margin-top:2px}
.rows.pic h3{font:500 var(--t-head)/1.14 var(--serif);letter-spacing:-.025em}
.rows.pic h3 small{color:var(--green);margin-top:4px}
@media(max-width:700px){
  .rows>li,.rows.two>li{grid-template-columns:2.25rem minmax(0,1fr);row-gap:6px}
  .rows>li>p{grid-column:2}
  .rows.two>li{grid-template-columns:1fr}.rows.two>li>p{grid-column:1}
  .rows.pic>li{grid-template-columns:88px minmax(0,1fr)}.rows.pic .shot,.rows.pic .glyph{width:88px;grid-row:span 2}
  .rows.pic>li>p{grid-column:2}
}

/* plain statement list */
.lines{list-style:none;border-bottom:1px solid var(--line)}
.lines li{padding-block:var(--s3);border-top:1px solid var(--line)}
.lines li:first-child{border-top:0;padding-top:0}

/* big link rows */
.ways{list-style:none;border-bottom:1px solid var(--line)}
.ways a{display:flex;justify-content:space-between;align-items:center;gap:var(--s3);padding:var(--s4) var(--s2);margin-inline:calc(var(--s2)*-1);border-top:1px solid var(--line);text-decoration:none;transition:background .3s,padding .35s var(--ease)}
.ways a span{font:500 var(--t-head)/1.15 var(--serif);letter-spacing:-.025em}
.ways a small{color:var(--muted);display:block;margin-top:6px}
.ways a::after{content:"\2192";font:400 var(--t-head)/1 var(--sans);color:var(--green);transition:transform .35s var(--ease)}
.ways a:hover{background:var(--mist);padding-inline:var(--s3)}
.ways a:hover::after{transform:translateX(8px)}

/* numbers */
.figures{list-style:none}
.figures li{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--s3);align-items:baseline;padding-block:var(--s3);border-top:1px solid var(--line)}
.figures li:first-child{border-top:0;padding-top:0}
.figures b{font:500 var(--t-display)/1 var(--serif);letter-spacing:-.04em}
.figures span{color:var(--muted)}
@media(max-width:700px){.figures li{grid-template-columns:1fr;gap:var(--s1)}}

/* crop gallery that moves sideways */
.gal{border-top:1px solid var(--line)}
.gal-pin{padding-block:var(--s6)}
.gal-head{display:flex;justify-content:space-between;align-items:end;gap:var(--s3);margin-bottom:var(--s4);width:100%;flex-wrap:wrap}
.gal-head h2{white-space:nowrap}
.gal-track{display:flex;gap:var(--s3);padding-inline:var(--pad);overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--pad);scrollbar-width:none}
.gal-track::-webkit-scrollbar{display:none}
.tile{flex:0 0 min(74vw,340px);scroll-snap-align:start;text-decoration:none}
.tile .shot,.tile .glyph{aspect-ratio:4/5}
.tile .glyph{background:var(--mist);border-radius:4px;display:grid;place-items:center}
.tile .glyph svg{width:46%}
.tile h3{font:500 var(--t-head)/1.1 var(--serif);letter-spacing:-.025em;margin-top:var(--s2)}
.tile small{color:var(--green)}
.tile p{color:var(--muted);margin-top:6px}
.tile:hover .shot.in img{transform:scale(1.05)}
@media(min-width:981px) and (prefers-reduced-motion:no-preference){
  .gal.pinned .gal-pin{position:sticky;top:var(--head-h);height:calc(100svh - var(--head-h));display:flex;flex-direction:column;justify-content:center;overflow:hidden;padding-block:var(--s4)}
  .gal.pinned .gal-track{overflow:visible;scroll-snap-type:none;will-change:transform}
  .gal.pinned .tile{flex-basis:clamp(260px,24vw,360px)}
  .gal.pinned .tile .shot,.gal.pinned .tile .glyph{aspect-ratio:auto;height:min(46svh,440px)}
}

/* circular model */
.loop{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s5);align-items:center}
.loop svg{width:100%;max-width:500px;overflow:visible}
.node{cursor:pointer}
.node circle{fill:var(--paper);stroke:var(--ink);stroke-width:1.5;transition:fill .3s}
.node text{font:500 13px var(--sans);fill:var(--ink);text-anchor:middle;pointer-events:none;transition:fill .3s}
.node:hover circle{fill:var(--mist)}
.node.on circle{fill:var(--ink)}.node.on text{fill:var(--lime)}
.loop-text{min-height:11em}
.loop-text h3{font:500 var(--t-head)/1.14 var(--serif);letter-spacing:-.025em;margin:var(--s1) 0 var(--s2)}
.loop-text p{color:var(--muted)}
.loop-text small{color:var(--green)}
.dots{display:flex;gap:var(--s1);margin-top:var(--s3)}
.dots button{width:44px;height:44px;border:0;background:none;cursor:pointer;position:relative}
.dots button::before{content:"";position:absolute;left:4px;right:4px;top:20px;height:4px;border-radius:2px;background:var(--line);transition:background .3s}
.dots button:hover::before{background:var(--lime-2)}
.dots button.on::before{background:var(--green)}
@media(max-width:980px){.loop{grid-template-columns:1fr;gap:var(--s4)}.loop svg{margin-inline:auto}.loop-text{min-height:13em}}

/* line drawings */
.ink{fill:none;stroke:var(--ink);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ink .f1{fill:var(--lime)}.ink .f2{fill:var(--lime-2)}.ink .f3{fill:var(--paper)}.ink .f4{fill:var(--mist)}
.ink .thin{stroke-width:1.2}.ink .nos{stroke:none}
.draw .d{stroke-dasharray:1}
.draw:not(.in) .d{stroke-dashoffset:1;fill-opacity:0}
.draw.in .d{animation:drawIn 1.6s ease both}
@keyframes drawIn{from{stroke-dashoffset:1;fill-opacity:0}60%{fill-opacity:.2}to{stroke-dashoffset:0;fill-opacity:1}}
.sway{animation:sway 4.5s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:50% 100%}
.spin{animation:spin 40s linear infinite;transform-box:fill-box;transform-origin:50% 50%}
.drift{animation:drift 26s linear infinite}
.pulse{animation:pulse 2.4s ease-in-out infinite;transform-box:fill-box;transform-origin:50% 50%}
.fall{animation:fall 3.2s linear infinite}
@keyframes sway{from{transform:rotate(-3.5deg)}to{transform:rotate(3.5deg)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes drift{from{transform:translateX(-140px)}to{transform:translateX(700px)}}
@keyframes pulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.35);opacity:.55}}
@keyframes fall{from{transform:translateY(-14px);opacity:0}30%{opacity:1}to{transform:translateY(26px);opacity:0}}
.plate{background:var(--mist);border-radius:4px;padding:var(--s2)}

/* map */
.map path.state{fill:var(--mist);stroke:var(--ink);stroke-width:1.6;stroke-linejoin:round;transition:fill .35s;cursor:default}
.map path.state:hover{fill:var(--lime)}
.map text{font:500 14px var(--sans);fill:var(--ink)}
.map text.big{font:italic 400 20px var(--serif);pointer-events:none}
.map circle.city{fill:var(--ink)}
.map circle.ring{fill:none;stroke:var(--green);stroke-width:1.5}

/* tabs */
.tabs{display:flex;flex-wrap:wrap;gap:var(--s1);margin-bottom:var(--s3)}
.tab{min-height:48px;padding:0 20px;border:1.5px solid var(--line);border-radius:6px;background:none;color:var(--ink);font:500 var(--t-small)/1 var(--sans);cursor:pointer;transition:background .25s,border-color .25s,color .25s}
.tab:hover{border-color:var(--ink)}
.tab.on{background:var(--ink);border-color:var(--ink);color:var(--lime)}
.rows.swap>li{animation:up .45s var(--ease) both}
@keyframes up{from{opacity:0;transform:translateY(10px)}}

/* three-column lists */
.cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s4)}
.cols h3{padding-bottom:var(--s2);border-bottom:1.5px solid var(--ink);margin-bottom:var(--s1)}
.cols ul{list-style:none}
.cols li{padding-block:12px;border-bottom:1px solid var(--line);color:var(--muted)}
@media(max-width:800px){.cols{grid-template-columns:1fr}}

/* materiality matrix */
.matrix-wrap{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:var(--s4);align-items:start}
.matrix{position:relative;aspect-ratio:1/.84;margin:0 0 var(--s4) var(--s4);border:1px solid var(--line);border-radius:4px;background:
  linear-gradient(var(--line) 1px,transparent 1px) 0 0/100% 33.33%,
  linear-gradient(90deg,var(--line) 1px,transparent 1px) 0 0/33.33% 100%,
  linear-gradient(45deg,var(--paper) 0%,var(--mist) 55%,var(--lime) 100%)}
.matrix .ax{position:absolute;font:500 var(--t-small)/1 var(--sans);color:var(--muted);white-space:nowrap}
.matrix .ax.x{bottom:calc(var(--s4)*-1 + 8px);left:0;right:0;text-align:center}
.matrix .ax.y{left:calc(var(--s4)*-1 + 14px);top:50%;transform:translate(-50%,-50%) rotate(-90deg)}
.dot{position:absolute;width:36px;height:36px;margin:-18px 0 0 -18px;border-radius:50%;display:grid;place-items:center;font:600 var(--t-small)/1 var(--sans);cursor:pointer;border:1.5px solid var(--ink);transform:scale(0);transition:transform .5s cubic-bezier(.3,1.5,.5,1),box-shadow .25s}
.matrix.in .dot{transform:scale(1)}
.dot.E{background:var(--lime-2)}.dot.S{background:var(--ink);color:var(--lime)}.dot.G{background:var(--paper)}
.dot.hot,.dot:hover{transform:scale(1.3)!important;box-shadow:0 6px 18px rgba(3,44,40,.25);z-index:3}
.key{display:flex;flex-wrap:wrap;gap:var(--s2);margin-bottom:var(--s2)}
.key span{display:flex;gap:8px;align-items:center}
.key i{width:16px;height:16px;border-radius:50%;border:1.5px solid var(--ink)}
.topics{list-style:none}
.topics li{display:flex;gap:12px;align-items:center;padding:6px 8px;border-radius:4px;transition:background .2s}
.topics li.hot{background:var(--lime)}
.topics i{font:600 var(--t-small)/1 var(--sans);font-style:normal;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;border:1.5px solid var(--ink);flex:none}
.topics i.E{background:var(--lime-2)}.topics i.S{background:var(--ink);color:var(--lime)}.topics i.G{background:var(--paper)}
@media(max-width:980px){.matrix-wrap{grid-template-columns:1fr}.dot{width:30px;height:30px;margin:-15px 0 0 -15px}}

/* people */
.people{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s4)}
.person .shot{aspect-ratio:4/5;margin-bottom:var(--s3)}
.person .shot img{object-position:50% 20%}
.person h3{font:500 var(--t-head)/1.14 var(--serif);letter-spacing:-.025em}
.person small{color:var(--green);display:block;margin:4px 0 var(--s2)}
.person p{color:var(--muted);margin-bottom:var(--s2)}
@media(max-width:700px){.people{grid-template-columns:1fr}}

/* form */
form{display:grid;gap:var(--s3)}
label{display:grid;gap:var(--s1)}
input,select,textarea{font:400 var(--t-body)/1.3 var(--serif);color:var(--ink);background:var(--paper);border:1.5px solid var(--line);border-radius:6px;padding:14px 16px;min-height:56px;width:100%;transition:border-color .2s}
input:hover,select:hover,textarea:hover{border-color:var(--muted)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px var(--lime)}
#formMsg{color:var(--green);min-height:1.5em}
.contact-lines{list-style:none}
.contact-lines li{padding-block:var(--s2);border-top:1px solid var(--line)}
.contact-lines li:first-child{border-top:0;padding-top:0}
.contact-lines small{display:block;color:var(--muted);margin-bottom:2px}
.contact-lines a{font:500 var(--t-head)/1.2 var(--serif);letter-spacing:-.02em;text-decoration:none;overflow-wrap:anywhere}
.contact-lines a:hover{color:var(--green)}

/* language switch */
.lang{display:inline-flex;gap:var(--s1);margin-bottom:var(--s3)}
.lang button{min-height:48px;padding:0 20px;border:1.5px solid var(--line);border-radius:6px;background:none;color:var(--ink);font:500 var(--t-small)/1 var(--telugu);cursor:pointer;transition:background .25s,border-color .25s,color .25s}
.lang button:hover{border-color:var(--ink)}
.lang button.on{background:var(--ink);border-color:var(--ink);color:var(--lime)}
body.te [data-te]{font-family:var(--telugu);letter-spacing:0;line-height:1.45}

/* footer */
.ask{background:var(--ink);color:var(--bg);padding-block:var(--s6)}
.ask .wrap{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--s5);align-items:end}
.ask h2{font-size:var(--t-display);line-height:1.03;letter-spacing:-.035em;max-width:11ch}
.ask a.big{display:block;font:500 var(--t-head)/1.3 var(--serif);letter-spacing:-.02em;text-decoration:none;color:var(--lime);overflow-wrap:anywhere}
.ask a.big:hover{color:var(--paper)}
@media(max-width:980px){.ask .wrap{grid-template-columns:1fr;gap:var(--s4)}}
.site-foot{background:var(--ink);color:rgba(249,251,248,.72);border-top:1px solid rgba(212,238,149,.2);padding-block:var(--s4)}
.site-foot .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--s3) var(--s5)}
.site-foot nav{display:flex;flex-wrap:wrap;gap:var(--s1) var(--s3)}
.site-foot a{font:500 var(--t-small)/1.45 var(--sans);color:var(--bg);text-decoration:none;padding-block:10px}
.site-foot a:hover{color:var(--lime)}
.site-foot p{font:400 var(--t-small)/1.6 var(--sans);max-width:none;flex-basis:100%}

/* WhatsApp button that stays on screen */
.wa{position:fixed;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));z-index:40;display:inline-flex;align-items:center;gap:10px;height:56px;padding:0 22px 0 16px;border-radius:28px;background:var(--ink);color:var(--lime);border:1.5px solid var(--lime);font:500 var(--t-small)/1 var(--sans);text-decoration:none;box-shadow:0 8px 24px rgba(3,44,40,.22);transition:background .25s,color .25s,transform .2s}
.wa svg{width:28px;height:28px;flex:none}
.wa:hover{background:var(--lime);color:var(--ink);transform:translateY(-2px)}
.wa:active{transform:none}
@media(max-width:700px){.wa{width:56px;padding:0;justify-content:center}.wa span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}}
.menu-open .wa{display:none}

/* two roads: drag to compare */
.roads{position:relative;aspect-ratio:960/376;border:1px solid var(--line);border-radius:4px;overflow:hidden;background:var(--paper)}
.roads-layer{position:absolute;inset:0}
.roads-layer svg{width:100%;height:100%}
.roads-layer.ours{background:var(--mist);clip-path:inset(0 0 0 var(--x))}
.ink.faded{stroke:#93a5a0}.ink.faded .f1,.ink.faded .f2{fill:#e8ede4}
.roads-tag{position:absolute;top:var(--s2);padding:6px 12px;border-radius:4px;background:var(--bg);border:1px solid var(--line);pointer-events:none}
.roads-tag.left{left:var(--s2)}.roads-tag.right{right:var(--s2);background:var(--ink);color:var(--lime);border-color:var(--ink)}
.roads-bar{position:absolute;top:0;bottom:0;left:var(--x);width:2px;margin-left:-1px;background:var(--ink);pointer-events:none}
.roads-bar i{position:absolute;top:50%;left:50%;width:48px;height:48px;margin:-24px 0 0 -24px;border-radius:50%;background:var(--ink);border:2px solid var(--lime);display:grid;place-items:center;transition:transform .2s}
.roads-bar i::before{content:"\2039\00a0\203A";color:var(--lime);font:500 1.25rem/1 var(--sans)}
.roads:hover .roads-bar i{transform:scale(1.08)}
.roads input{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;min-height:0;border:0;opacity:0;cursor:ew-resize;touch-action:pan-y}
.roads:has(input:focus-visible){outline:3px solid var(--lime-2);outline-offset:3px}
@media(max-width:700px){.roads-bar i{width:40px;height:40px;margin:-20px 0 0 -20px}.roads-tag{top:8px;padding:4px 8px}.roads-tag.left{left:8px}.roads-tag.right{right:8px}}
.cols.two{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:800px){.cols.two{grid-template-columns:1fr}}

/* ripple */
.ripple{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:var(--s5);align-items:center}
.ripple svg{width:100%;max-width:480px;margin-inline:auto;overflow:visible}
.ring{fill:transparent;stroke:var(--ink);stroke-width:1.2;cursor:pointer;transition:fill .5s}
.ring.on{fill:var(--lime)}
.badge circle{fill:var(--paper);stroke:var(--ink);stroke-width:1.5;transition:fill .3s}
.badge text{font:600 15px var(--sans);fill:var(--ink);text-anchor:middle;transition:fill .3s}
.badge.on circle{fill:var(--ink)}.badge.on text{fill:var(--lime)}
.wave{fill:none;stroke:var(--green);stroke-width:1.5;transform-box:fill-box;transform-origin:50% 50%;animation:wave 4.5s ease-out infinite}
@keyframes wave{from{transform:scale(.05);opacity:.9}to{transform:scale(1);opacity:0}}
.ripple .rows>li{padding-inline:var(--s2);margin-inline:calc(var(--s2)*-1);border-radius:4px;cursor:default;transition:background .3s}
.ripple .rows>li:first-child{padding-top:var(--s3)}
.ripple .rows>li.on{background:var(--mist)}
@media(max-width:980px){.ripple{grid-template-columns:1fr;gap:var(--s4)}}

/* gentle fade as sections arrive */
.rv{opacity:0;transform:translateY(10px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.rv.in{opacity:1;transform:none}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .rv{opacity:1;transform:none}.ch{transform:none}.wave{display:none}.shot::after{display:none}.shot img{transform:none}.dot{transform:scale(1)}
  .draw .d{stroke-dashoffset:0!important;fill-opacity:1!important}
}
